From d96e8a93b096a8671c5a7940f2f2bb1b08d37e7d Mon Sep 17 00:00:00 2001 From: orbea Date: Tue, 23 Apr 2024 07:17:27 -0700 Subject: app-pda/libimobiledevice: add 1.3.0-r4, 1.3.0_p20240201, drop 1.3.0-r3 Signed-off-by: orbea --- app-pda/libimobiledevice/Manifest | 1 + .../files/libimobiledevice-1.3.0-cython3.patch | 48 +++++++++ .../files/libimobiledevice-1.3.0-libressl.patch | 31 ++---- ...libimobiledevice-1.3.0_p20240201-libressl.patch | 23 ++++ .../libimobiledevice-1.3.0_p20240201_time_h.patch | 10 ++ .../libimobiledevice-1.3.0-r3.ebuild | 116 --------------------- .../libimobiledevice-1.3.0-r4.ebuild | 116 +++++++++++++++++++++ .../libimobiledevice-1.3.0_p20240201.ebuild | 77 ++++++++++++++ 8 files changed, 284 insertions(+), 138 deletions(-) create mode 100644 app-pda/libimobiledevice/files/libimobiledevice-1.3.0-cython3.patch create mode 100644 app-pda/libimobiledevice/files/libimobiledevice-1.3.0_p20240201-libressl.patch create mode 100644 app-pda/libimobiledevice/files/libimobiledevice-1.3.0_p20240201_time_h.patch delete mode 100644 app-pda/libimobiledevice/libimobiledevice-1.3.0-r3.ebuild create mode 100644 app-pda/libimobiledevice/libimobiledevice-1.3.0-r4.ebuild create mode 100644 app-pda/libimobiledevice/libimobiledevice-1.3.0_p20240201.ebuild diff --git a/app-pda/libimobiledevice/Manifest b/app-pda/libimobiledevice/Manifest index 1a1995a..c02e6d5 100644 --- a/app-pda/libimobiledevice/Manifest +++ b/app-pda/libimobiledevice/Manifest @@ -1 +1,2 @@ DIST libimobiledevice-1.3.0.tar.bz2 733949 BLAKE2B 40717280bb3424c7431aa93d06d10de817e6761acf2b19948d80b691cfb4dd4ef0e31b81c8458eed29a43c8c8aa256da7baa3648fb785cfbdb7316daaba119a3 SHA512 7b22040552a6561729c79c0846f571b0e608abb7c297567d2ecfdd1718ce86df08a5e34ba51f209bdee96a1917da15e7ba3aaef1d289a951d1d3470b1f89e6a8 +DIST libimobiledevice-1.3.0_p20240201.tar.gz 405723 BLAKE2B 5f3672e6b3c180440c215d9411eb2f21fe9451d822707e5b11ffff6693dccabfb5d184ef35f36bce2af508cbdebb656923927558ef39669825679a8ebf3cc8ee SHA512 d3746b7e0803840489593c9a3d8c8b16f6d4be5e2cd5c947d05be31e49c095c6503ef9150c886a87c68f4694bc6c1bfba96c4578789adc8f165a6391d0e4918f diff --git a/app-pda/libimobiledevice/files/libimobiledevice-1.3.0-cython3.patch b/app-pda/libimobiledevice/files/libimobiledevice-1.3.0-cython3.patch new file mode 100644 index 0000000..c7b8cf0 --- /dev/null +++ b/app-pda/libimobiledevice/files/libimobiledevice-1.3.0-cython3.patch @@ -0,0 +1,48 @@ +https://bugs.gentoo.org/898666 +https://github.com/libimobiledevice/libimobiledevice/pull/1521 + +--- a/cython/installation_proxy.pxi ++++ b/cython/installation_proxy.pxi +@@ -27,7 +27,7 @@ cdef extern from "libimobiledevice/installation_proxy.h": + instproxy_error_t instproxy_restore(instproxy_client_t client, char *appid, plist.plist_t client_options, instproxy_status_cb_t status_cb, void *user_data) + instproxy_error_t instproxy_remove_archive(instproxy_client_t client, char *appid, plist.plist_t client_options, instproxy_status_cb_t status_cb, void *user_data) + +-cdef void instproxy_notify_cb(plist.plist_t command, plist.plist_t status, void *py_callback) with gil: ++cdef void instproxy_notify_cb(plist.plist_t command, plist.plist_t status, void *py_callback) noexcept: + (py_callback)(plist.plist_t_to_node(command, False), plist.plist_t_to_node(status, False)) + + cdef class InstallationProxyError(BaseError): + +From deba42ba94c13517ebdbe7a4d8177ab47a9589a5 Mon Sep 17 00:00:00 2001 +From: IridiumXOR +Date: Thu, 11 Jan 2024 22:00:39 +0100 +Subject: [PATCH 2/3] Fix np_notify_cb for Cython 3 noexcept error + +--- a/cython/notification_proxy.pxi ++++ b/cython/notification_proxy.pxi +@@ -70,7 +70,7 @@ NP_ITDBPREP_DID_END = C_NP_ITDBPREP_DID_END + NP_LANGUAGE_CHANGED = C_NP_LANGUAGE_CHANGED + NP_ADDRESS_BOOK_PREF_CHANGED = C_NP_ADDRESS_BOOK_PREF_CHANGED + +-cdef void np_notify_cb(const_char_ptr notification, void *py_callback): ++cdef void np_notify_cb(const_char_ptr notification, void *py_callback) noexcept: + (py_callback)(notification) + + cdef class NotificationProxyError(BaseError): + +From 7739a4bf61a0fa549646d6062978f126a1ff06fa Mon Sep 17 00:00:00 2001 +From: IridiumXOR +Date: Thu, 11 Jan 2024 22:03:07 +0100 +Subject: [PATCH 3/3] Fix idevice_event_cb for Cython 3 noexcept error + +--- a/cython/imobiledevice.pyx ++++ b/cython/imobiledevice.pyx +@@ -94,7 +94,7 @@ cdef class iDeviceEvent: + def __get__(self): + return self._c_event.conn_type + +-cdef void idevice_event_cb(const_idevice_event_t c_event, void *user_data) with gil: ++cdef void idevice_event_cb(const_idevice_event_t c_event, void *user_data) noexcept: + cdef iDeviceEvent event = iDeviceEvent.__new__(iDeviceEvent) + event._c_event = c_event + (user_data)(event) diff --git a/app-pda/libimobiledevice/files/libimobiledevice-1.3.0-libressl.patch b/app-pda/libimobiledevice/files/libimobiledevice-1.3.0-libressl.patch index 0957c91..9f13402 100644 --- a/app-pda/libimobiledevice/files/libimobiledevice-1.3.0-libressl.patch +++ b/app-pda/libimobiledevice/files/libimobiledevice-1.3.0-libressl.patch @@ -1,25 +1,12 @@ -From 170e1c445e8c930f4ee9dddfb9f1bcf24c089962 Mon Sep 17 00:00:00 2001 -From: Nikias Bassen -Date: Thu, 6 Aug 2020 20:43:08 +0200 -Subject: [PATCH] idevice: Fix build with LibreSSL - -Upstream-Status: Accepted -[https://github.com/libimobiledevice/libimobiledevice/commit/170e1c445e8c930f4ee9dddfb9f1bcf24c089962] -Signed-off-by: Stefan Strogin ---- - src/idevice.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/idevice.c b/src/idevice.c -index fea1e03f..47c9ab4d 100644 ---- a/src/idevice.c -+++ b/src/idevice.c -@@ -1015,7 +1015,7 @@ LIBIMOBILEDEVICE_API idevice_error_t idevice_connection_enable_ssl(idevice_conne - return ret; +--- a/common/userpref.c ++++ b/common/userpref.c +@@ -627,7 +627,9 @@ userpref_error_t pair_record_generate_keys_and_certs(plist_t pair_record, key_da + } } --#if OPENSSL_VERSION_NUMBER >= 0x10100000L -+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) - SSL_CTX_set_security_level(ssl_ctx, 0); - #endif ++#ifndef LIBRESSL_VERSION_NUMBER + X509V3_EXT_cleanup(); ++#endif + X509_free(dev_cert); + EVP_PKEY_free(pubkey); diff --git a/app-pda/libimobiledevice/files/libimobiledevice-1.3.0_p20240201-libressl.patch b/app-pda/libimobiledevice/files/libimobiledevice-1.3.0_p20240201-libressl.patch new file mode 100644 index 0000000..6b1ad26 --- /dev/null +++ b/app-pda/libimobiledevice/files/libimobiledevice-1.3.0_p20240201-libressl.patch @@ -0,0 +1,23 @@ +--- a/3rd_party/libsrp6a-sha512/t_math.c ++++ b/3rd_party/libsrp6a-sha512/t_math.c +@@ -720,7 +720,7 @@ BigIntegerModExp(BigInteger r, BigInteger b, BigInteger e, BigInteger m, BigInte + else if(a == NULL) { + BN_mod_exp(r, b, e, m, c); + } +-#if OPENSSL_VERSION_NUMBER >= 0x00906000 ++#if OPENSSL_VERSION_NUMBER >= 0x00906000 && !defined(LIBRESSL_VERSION_NUMBER) + else if(B > 0 && B < ULONG_MAX) { /* 0.9.6 and above has mont_word optimization */ + BN_mod_exp_mont_word(r, B, e, m, c, a); + } +--- a/common/userpref.c ++++ b/common/userpref.c +@@ -627,7 +627,9 @@ userpref_error_t pair_record_generate_keys_and_certs(plist_t pair_record, key_da + } + } + ++#ifndef LIBRESSL_VERSION_NUMBER + X509V3_EXT_cleanup(); ++#endif + X509_free(dev_cert); + + EVP_PKEY_free(pubkey); diff --git a/app-pda/libimobiledevice/files/libimobiledevice-1.3.0_p20240201_time_h.patch b/app-pda/libimobiledevice/files/libimobiledevice-1.3.0_p20240201_time_h.patch new file mode 100644 index 0000000..b158c97 --- /dev/null +++ b/app-pda/libimobiledevice/files/libimobiledevice-1.3.0_p20240201_time_h.patch @@ -0,0 +1,10 @@ +--- a/tools/afcclient.c ++++ b/tools/afcclient.c +@@ -36,6 +36,7 @@ + #include + #include + #include ++#include + + #ifdef WIN32 + #include diff --git a/app-pda/libimobiledevice/libimobiledevice-1.3.0-r3.ebuild b/app-pda/libimobiledevice/libimobiledevice-1.3.0-r3.ebuild deleted file mode 100644 index f994417..0000000 --- a/app-pda/libimobiledevice/libimobiledevice-1.3.0-r3.ebuild +++ /dev/null @@ -1,116 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{9..11} ) - -inherit autotools python-r1 - -DESCRIPTION="Support library to communicate with Apple iPhone/iPod Touch devices" -HOMEPAGE="https://www.libimobiledevice.org/" -SRC_URI="https://github.com/libimobiledevice/libimobiledevice/releases/download/${PV}/${P}.tar.bz2" - -# While COPYING* doesn't mention 'or any later version', all the headers do, hence use + -LICENSE="GPL-2+ LGPL-2.1+" -SLOT="0/1.0-6" # based on SONAME of libimobiledevice-1.0.so -KEYWORDS="amd64 ~arm ~arm64 ~loong ppc ~ppc64 ~riscv x86" -IUSE="doc gnutls python static-libs" -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -RDEPEND=" - >=app-pda/libplist-2.2.0:= =app-pda/libusbmuxd-2.0.2:= - gnutls? ( - dev-libs/libgcrypt:0 - >=dev-libs/libtasn1-1.1 - >=net-libs/gnutls-2.2.0 - ) - !gnutls? ( - dev-libs/openssl:0= - ) - python? ( - ${PYTHON_DEPS} - app-pda/libplist[python(-),${PYTHON_USEDEP}] - ) -" -DEPEND=" - ${RDEPEND} -" -# /dev/null || die - econf "${myeconfargs[@]}" "${@}" - popd >/dev/null || die - } - - do_configure_python() { - # Bug 567916 - local -x PYTHON_LDFLAGS="$(python_get_LIBS)" - do_configure "$@" - } - - do_configure --without-cython - use python && python_foreach_impl do_configure_python -} - -src_compile() { - python_compile() { - emake -C "${BUILD_DIR}"/cython \ - VPATH="${S}/cython:$1/cython" \ - imobiledevice_la_LIBADD="$1/src/libimobiledevice-1.0.la" - } - - emake -C "${BUILD_DIR}" - use python && python_foreach_impl python_compile "${BUILD_DIR}" - - if use doc; then - doxygen "${BUILD_DIR}"/doxygen.cfg || die - fi -} - -src_install() { - python_install() { - emake -C "${BUILD_DIR}/cython" install \ - DESTDIR="${D}" \ - VPATH="${S}/cython:$1/cython" - } - - emake -C "${BUILD_DIR}" install DESTDIR="${D}" - use python && python_foreach_impl python_install "${BUILD_DIR}" - use doc && dodoc docs/html/* - - if use python; then - insinto /usr/include/${PN}/cython - doins cython/imobiledevice.pxd - fi - - find "${D}" -name '*.la' -delete || die -} diff --git a/app-pda/libimobiledevice/libimobiledevice-1.3.0-r4.ebuild b/app-pda/libimobiledevice/libimobiledevice-1.3.0-r4.ebuild new file mode 100644 index 0000000..32e70f4 --- /dev/null +++ b/app-pda/libimobiledevice/libimobiledevice-1.3.0-r4.ebuild @@ -0,0 +1,116 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11} ) + +inherit autotools python-r1 + +DESCRIPTION="Support library to communicate with Apple iPhone/iPod Touch devices" +HOMEPAGE="https://www.libimobiledevice.org/" +SRC_URI="https://github.com/libimobiledevice/libimobiledevice/releases/download/${PV}/${P}.tar.bz2" + +# While COPYING* doesn't mention 'or any later version', all the headers do, hence use + +LICENSE="GPL-2+ LGPL-2.1+" +SLOT="0/1.0-6" # based on SONAME of libimobiledevice-1.0.so +KEYWORDS="amd64 ~arm ~arm64 ~loong ppc ~ppc64 ~riscv x86" +IUSE="doc gnutls python static-libs" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +RDEPEND=" + >=app-pda/libplist-2.2.0:= =app-pda/libusbmuxd-2.0.2:= + gnutls? ( + dev-libs/libgcrypt:0 + >=dev-libs/libtasn1-1.1 + >=net-libs/gnutls-2.2.0 + ) + !gnutls? ( + dev-libs/openssl:0= + ) + python? ( + ${PYTHON_DEPS} + app-pda/libplist[python(-),${PYTHON_USEDEP}] + ) +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + virtual/pkgconfig + doc? ( app-text/doxygen ) + python? ( dev-python/cython[${PYTHON_USEDEP}] ) +" + +BUILD_DIR="${S}_build" + +PATCHES=( + "${FILESDIR}/${P}-libressl.patch" + "${FILESDIR}/${P}-slibtool.patch" + "${FILESDIR}/${P}-missing_libflags.patch" #787962 + "${FILESDIR}/${P}-python.patch" + "${FILESDIR}"/${P}-cython3.patch # Bug #898666 +) + +src_prepare() { + default + eautoreconf +} + +src_configure() { + local ECONF_SOURCE=${S} + + local myeconfargs=( $(use_enable static-libs static) ) + use gnutls && myeconfargs+=( --disable-openssl ) + + do_configure() { + mkdir -p "${BUILD_DIR}" || die + pushd "${BUILD_DIR}" >/dev/null || die + econf "${myeconfargs[@]}" "${@}" + popd >/dev/null || die + } + + do_configure_python() { + # Bug 567916 + local -x PYTHON_LDFLAGS="$(python_get_LIBS)" + do_configure "$@" + } + + do_configure --without-cython + use python && python_foreach_impl do_configure_python +} + +src_compile() { + python_compile() { + emake -C "${BUILD_DIR}"/cython \ + VPATH="${S}/cython:$1/cython" \ + imobiledevice_la_LIBADD="$1/src/libimobiledevice-1.0.la" + } + + emake -C "${BUILD_DIR}" + use python && python_foreach_impl python_compile "${BUILD_DIR}" + + if use doc; then + doxygen "${BUILD_DIR}"/doxygen.cfg || die + fi +} + +src_install() { + python_install() { + emake -C "${BUILD_DIR}/cython" install \ + DESTDIR="${D}" \ + VPATH="${S}/cython:$1/cython" + } + + emake -C "${BUILD_DIR}" install DESTDIR="${D}" + use python && python_foreach_impl python_install "${BUILD_DIR}" + use doc && dodoc docs/html/* + + if use python; then + insinto /usr/include/${PN}/cython + doins cython/imobiledevice.pxd + fi + + find "${D}" -name '*.la' -delete || die +} diff --git a/app-pda/libimobiledevice/libimobiledevice-1.3.0_p20240201.ebuild b/app-pda/libimobiledevice/libimobiledevice-1.3.0_p20240201.ebuild new file mode 100644 index 0000000..944188f --- /dev/null +++ b/app-pda/libimobiledevice/libimobiledevice-1.3.0_p20240201.ebuild @@ -0,0 +1,77 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools + +MY_COMMIT=73b6fd183872096f20e6d1007429546a317a7cb1 + +DESCRIPTION="Support library to communicate with Apple iPhone/iPod Touch devices" +HOMEPAGE="https://www.libimobiledevice.org/" +SRC_URI="https://github.com/libimobiledevice/libimobiledevice/archive/${MY_COMMIT}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}"/${PN}-${MY_COMMIT} + +# While COPYING* doesn't mention 'or any later version', all the headers do, hence use + +LICENSE="GPL-2+ LGPL-2.1+" +SLOT="0/1.0-6" # based on SONAME of libimobiledevice-1.0.so +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86" +IUSE="doc gnutls readline static-libs" + +RDEPEND=" + app-pda/libimobiledevice-glue:= + >=app-pda/libplist-2.3:= + >=app-pda/libusbmuxd-2.0.2:= + gnutls? ( + dev-libs/libgcrypt:0 + >=dev-libs/libtasn1-1.1 + >=net-libs/gnutls-2.2.0 + ) + !gnutls? ( + dev-libs/openssl:0= + ) + readline? ( sys-libs/readline:= ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + doc? ( app-text/doxygen ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-1.3.0_p20240201-libressl.patch + "${FILESDIR}"/${PN}-1.3.0_p20240201_time_h.patch +) + +src_prepare() { + default + echo ${PV}-${MY_COMMIT} > .tarball-version + eautoreconf +} + +src_configure() { + local myeconfargs=( + --without-cython + $(use_enable static-libs static) + ) + use gnutls && myeconfargs+=( --disable-openssl ) + # --with-readline also causes readline to not be used + use readline || myeconfargs+=( --without-readline ) + econf "${myeconfargs[@]}" +} + +src_compile() { + emake + + if use doc; then + doxygen doxygen.cfg || die + fi +} + +src_install() { + emake install DESTDIR="${D}" + + use doc && dodoc docs/html/* + + find "${D}" -name '*.la' -delete || die +} -- cgit v1.2.3-65-gdbad