From 4d04be40fb1c87e8e608ec8d7d1207f91b6fe138 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Wed, 27 Mar 2019 16:26:48 -0700 Subject: [PATCH] libimobiledevice: Update to latest git Upstream makes seriously infrequent updates whereas they have an active git repository with important bugfixes. Also fixed compilation without deprecated OpenSSL APIs. Signed-off-by: Rosen Penev --- libs/libimobiledevice/Makefile | 34 +++---- .../patches/010-openssl-deprecated.patch | 88 +++++++++++++++++++ 2 files changed, 100 insertions(+), 22 deletions(-) create mode 100644 libs/libimobiledevice/patches/010-openssl-deprecated.patch diff --git a/libs/libimobiledevice/Makefile b/libs/libimobiledevice/Makefile index b0d49838e..ae33b568e 100644 --- a/libs/libimobiledevice/Makefile +++ b/libs/libimobiledevice/Makefile @@ -8,30 +8,29 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libimobiledevice -PKG_VERSION:=1.2.1 -PKG_RELEASE:=2 +PKG_SOURCE_DATE:=2019-02-16 +PKG_SOURCE_VERSION:=0584aa90c93ff6ce46927b8d67887cb987ab9545 +PKG_RELEASE:=1 -PKG_MAINTAINER:=Lukasz Baj +PKG_MAINTAINER:= PKG_LICENSE:=LGPL-2.1+ PKG_LICENSE_FILES:=COPYING.LESSER -PKG_SOURCE_PROTO:=git -PKG_SOURCE_URL:=https://github.com/libimobiledevice/libimobiledevice.git -PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) -PKG_SOURCE_VERSION:=13bf235cac2201747de11652cf14fe2714ca0718 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz -PKG_MIRROR_HASH:=4e8892b27f20216f86d69b36ad2229fca87cdf0a10f8d3e145d01841a492562a +PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_DATE).tar.gz +PKG_SOURCE_URL:=https://codeload.github.com/libimobiledevice/libimobiledevice/tar.gz/$(PKG_SOURCE_VERSION)? +PKG_HASH:=286e294aad60ef04a39ce70512a0e816415167c982f3e6c2988d9a6b8c5ee29b +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_VERSION) PKG_FIXUP:=autoreconf PKG_INSTALL:=1 +PKG_BUILD_PARALLEL:=1 include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/nls.mk -include ../../lang/python/python-package.mk define Package/libimobiledevice/Default TITLE:=A library that talks to Apple devices. - URL:=http://www.libimobiledevice.org/ + URL:=https://www.libimobiledevice.org/ endef define Package/libimobiledevice/Default/description @@ -62,17 +61,8 @@ define Package/libimobiledevice-utils/description This package contains the libimobiledevice utilities. endef -CONFIGURE_VARS += \ - libusbmuxd_CFLAGS="-I$(STAGING_DIR)/usr/include" \ - libusbmuxd_LIBS="-L$(STAGING_DIR)/usr/lib -lusbmuxd" \ - openssl_CFLAGS=" " \ - openssl_LIBS="-L$(STAGING_DIR)/usr/lib -lssl -lcrypto" - -CONFIGURE_ARGS += \ - --without-cython \ - --disable-largefile - -TARGET_LDFLAGS += -Wl,-rpath-link=$(STAGING_DIR)/usr/lib +CONFIGURE_VARS += ac_cv_sys_file_offset_bits=64 +CONFIGURE_ARGS += --without-cython define Build/InstallDev $(INSTALL_DIR) $(1)/usr/include diff --git a/libs/libimobiledevice/patches/010-openssl-deprecated.patch b/libs/libimobiledevice/patches/010-openssl-deprecated.patch new file mode 100644 index 000000000..e6a5459f4 --- /dev/null +++ b/libs/libimobiledevice/patches/010-openssl-deprecated.patch @@ -0,0 +1,88 @@ +--- a/common/userpref.c ++++ b/common/userpref.c +@@ -37,6 +37,7 @@ + #include + #include + #ifdef HAVE_OPENSSL ++#include + #include + #include + #include +@@ -73,6 +74,11 @@ const ASN1_ARRAY_TYPE pkcs1_asn1_tab[] = { + }; + #endif + ++#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#define X509_set1_notBefore X509_set_notBefore ++#define X509_set1_notAfter X509_set_notAfter ++#endif ++ + #ifdef WIN32 + #define DIR_SEP '\\' + #define DIR_SEP_S "\\" +@@ -420,9 +426,9 @@ userpref_error_t pair_record_generate_keys_and_certs(plist_t pair_record, key_da + /* set key validity */ + ASN1_TIME* asn1time = ASN1_TIME_new(); + ASN1_TIME_set(asn1time, time(NULL)); +- X509_set_notBefore(root_cert, asn1time); ++ X509_set1_notBefore(root_cert, asn1time); + ASN1_TIME_set(asn1time, time(NULL) + (60 * 60 * 24 * 365 * 10)); +- X509_set_notAfter(root_cert, asn1time); ++ X509_set1_notAfter(root_cert, asn1time); + ASN1_TIME_free(asn1time); + + /* use root public key for root cert */ +@@ -453,9 +459,9 @@ userpref_error_t pair_record_generate_keys_and_certs(plist_t pair_record, key_da + /* set key validity */ + ASN1_TIME* asn1time = ASN1_TIME_new(); + ASN1_TIME_set(asn1time, time(NULL)); +- X509_set_notBefore(host_cert, asn1time); ++ X509_set1_notBefore(host_cert, asn1time); + ASN1_TIME_set(asn1time, time(NULL) + (60 * 60 * 24 * 365 * 10)); +- X509_set_notAfter(host_cert, asn1time); ++ X509_set1_notAfter(host_cert, asn1time); + ASN1_TIME_free(asn1time); + + /* use host public key for host cert */ +@@ -533,9 +539,9 @@ userpref_error_t pair_record_generate_keys_and_certs(plist_t pair_record, key_da + + ASN1_TIME* asn1time = ASN1_TIME_new(); + ASN1_TIME_set(asn1time, time(NULL)); +- X509_set_notBefore(dev_cert, asn1time); ++ X509_set1_notBefore(dev_cert, asn1time); + ASN1_TIME_set(asn1time, time(NULL) + (60 * 60 * 24 * 365 * 10)); +- X509_set_notAfter(dev_cert, asn1time); ++ X509_set1_notAfter(dev_cert, asn1time); + ASN1_TIME_free(asn1time); + + EVP_PKEY* pkey = EVP_PKEY_new(); +--- a/src/idevice.c ++++ b/src/idevice.c +@@ -36,6 +36,7 @@ + #include + #ifdef HAVE_OPENSSL + #include ++#include + #include + + #else +@@ -49,6 +50,10 @@ + + #ifdef HAVE_OPENSSL + ++#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#define TLS_method TLSv1_method ++#endif ++ + #if OPENSSL_VERSION_NUMBER < 0x10002000L + static void SSL_COMP_free_compression_methods(void) + { +@@ -721,7 +726,7 @@ LIBIMOBILEDEVICE_API idevice_error_t idevice_connection_enable_ssl(idevice_conne + } + BIO_set_fd(ssl_bio, (int)(long)connection->data, BIO_NOCLOSE); + +- SSL_CTX *ssl_ctx = SSL_CTX_new(TLSv1_method()); ++ SSL_CTX *ssl_ctx = SSL_CTX_new(TLS_method()); + if (ssl_ctx == NULL) { + debug_info("ERROR: Could not create SSL context."); + BIO_free(ssl_bio);