diff options
Diffstat (limited to 'dev-util/android-tools')
13 files changed, 473 insertions, 279 deletions
diff --git a/dev-util/android-tools/Manifest b/dev-util/android-tools/Manifest index 551510bf1aad..a0025f84e65a 100644 --- a/dev-util/android-tools/Manifest +++ b/dev-util/android-tools/Manifest @@ -1,11 +1,5 @@ -DIST android-tools-31.0.0p1.tar.xz 25135336 BLAKE2B abef4fa611541370d6c745c3f6df8f0326074ef23d4e656ab19443484b5459531fab0544936177397dece12b79ff37189003e818e49bfc4bb3d47e98955b917f SHA512 40bded59614a6d0543e5011038b7f1c6abcb64f0daa71a13175ecb75fe42cb9985ed3a6301d73ee8d4ea20e2c98e3ed8130824ee74dcebe75bc0d7f3052c9d3b -DIST android-tools-31.0.3-disable-werror-boringssl.patch 1815 BLAKE2B 63e911ba27e2995a11b27e2e1501c5e881d694c5477a216cb910bf1c9c1bf9f9fedffa864748ea4df668a1008124501f7815997304bc355e4ee105bf9b61f75f SHA512 db626d3680ec9f18be394bb2720c8bc7e380aac227ae6f1058476edb83784343f653afc583b06e7a2acd3f2ff500fa37d613d5efca4a9a24daedbf61b5b84015 -DIST android-tools-31.0.3-install-e2fsdroid-ext2simg.patch 2164 BLAKE2B 7f0b43ff5ae820101628399540f3e5b87bf69224f4a61a6b76b8b6b3b06f8e7162a6c1e7ee43eee928cfa96824f5efff72317b4bbfe160d8e72d96aa84e0a1d6 SHA512 d5fd63c108ca6b880b1b79cf362468335f19fad7bf2042fb667b56e34dc95acc47e1bf9c9e72be1d2bd8252a529cd49eb030d141bf735524bdaeb85482d544a9 DIST android-tools-31.0.3-no-gtest.patch 3152 BLAKE2B da71e3cba87b21ffcb144602a06d7e269faabd173233363b757cd2191c051f8d3281f591117d4551d7acc029d6e2d421f702f9f836dfe0dec6c676aa39a2d9fe SHA512 a28d2264bf40c420a279acf1f4c3b4588d96ce2d6e2d6d322abbde62d773804bef10dc33f13dd52c7de80ace6c58f91ae28f5d4e8e97dfae4d2a8473d8537423 -DIST android-tools-31.0.3.tar.xz 25768908 BLAKE2B e8ca8ff93fcd3936f447926769d7b45194dd96ad99cddd570183a1cbae34dbf49a23e0c53d9eb8f5c25dd09717e1f160829752dc7ebc9404c804b48de8de9889 SHA512 d2c16325b190f77a8ffa38de18ae1aea4bf6848926620f25d14873dc4a3fda3fe2b13349fa2eee197b960ca65738a4a1d2c1f28cf8286ab79e73502e7a8e6357 -DIST android-tools-31.0.3_p1-install-e2fsdroid-ext2simg.patch 2075 BLAKE2B f30c99f2b60acac239f6c604d1cfe36ca49a74884f54fce85dba3bf9aae0f73abc5c8ba6b5232772e73aefe75813170c3427cf769e3f0f5e1b962b4ec606d4e4 SHA512 2f706384e1709fc6cc7b5e9183051fb15aaf9d188d23c072d449052ed2297d0e47222e53aaee3709e8bdc3e1b88481307b4b0c0e904bafe444f3fc0c3ad3e0e7 -DIST android-tools-31.0.3p1.tar.xz 25760004 BLAKE2B 1ae58daed61b82180a5a40efa6a67b64b2ce12f4397442663700a4b970f3493576e468dcf8a4c0351c6d7d8c13def1fb0621f9c680d1c41461cbf458e862ccec SHA512 a811eb1d7682b8807f7c110beb83ff234e65fe0f20127466dbd173ea13e68260def8891b4598d5776489af9ff8aeb9f0a19086f49b6df27f68ba63096688afa1 -DIST android-tools-dont-install-license.patch 1016 BLAKE2B da65a414d046995358e91a0ca037951bc9c5a3e790b3b2151716b234c2943301ecef4ed248914235736ddd949f772311bf823e9b3b3f1980b7a5c4b72e5bcd47 SHA512 747728723941091caa17c66e68e88d2145a2ff037e6f5724f89f680d2ce6f4031efebcda7dbcc5b459ca4f5f9ddbf4ba04b0451b9939d19eaf2fa9d9ab727284 -DIST android-tools-fix-gcc11.patch 137252 BLAKE2B 0e80aab92cb69e3223f81834d53c1d84aef866787261305fd539cb8cb75a21361c65f091b2f7d83f6f8236816f43510f4f0f8b51dee4b03d99af31c78dc53a79 SHA512 fb4d8d13f9022f0472c81fe6b9252000d93ba5f77b84d7ac7d6846753078b6fdac0687fcb7157e445bba02cbf008ea3744d84e8fc5d534ee3807f61674e3238c -DIST android-tools-install-e2fsdroid-ext2simg.patch 2164 BLAKE2B 7f0b43ff5ae820101628399540f3e5b87bf69224f4a61a6b76b8b6b3b06f8e7162a6c1e7ee43eee928cfa96824f5efff72317b4bbfe160d8e72d96aa84e0a1d6 SHA512 d5fd63c108ca6b880b1b79cf362468335f19fad7bf2042fb667b56e34dc95acc47e1bf9c9e72be1d2bd8252a529cd49eb030d141bf735524bdaeb85482d544a9 -DIST android-tools-no-gtest.patch 3152 BLAKE2B da71e3cba87b21ffcb144602a06d7e269faabd173233363b757cd2191c051f8d3281f591117d4551d7acc029d6e2d421f702f9f836dfe0dec6c676aa39a2d9fe SHA512 a28d2264bf40c420a279acf1f4c3b4588d96ce2d6e2d6d322abbde62d773804bef10dc33f13dd52c7de80ace6c58f91ae28f5d4e8e97dfae4d2a8473d8537423 +DIST android-tools-33.0.3.tar.xz 25300756 BLAKE2B 4254f0ab8657966cf56e2a7c3e9a3d889dfa9f26e61d8b46480bb74c5a8be33494f450827e3b2db4087006b3160892e6a846ef33719870cbbd032647cfc3ce78 SHA512 78c8141f5f13f1c0e5da474e1d79760a612e911519af4e9f21c0e5005f2ce99f3aeacf16f3fcdfe1250fc795a88190fa243592e1066a2156e1fd8d2b9c3d7f71 +DIST android-tools-34.0.0.tar.xz 37882448 BLAKE2B 19698c08dd650abba61e5cad9f7474ee3993f5b1fd2f173221560e5ccfc1677093758c325833993a68058c1427e132986b009f9e69a1eae9c4447053920b6feb SHA512 2d24cd95df7da1efa902fab3c848e2ebf09d3335fac61e667b19e1892e95c30a850413d354ceda72a402014623bbda4154cc33fb93a62c31fece8857efbbd596 +DIST android-tools-34.0.1.tar.xz 37904276 BLAKE2B 6b4d31dadbc646d52c8abd65602264dc16127eb36286d23be447539b0d9b46154592a04af37b3e7617933e62529e953b958db8cb77622e72cfe5ab176f822437 SHA512 413ddcca9a461d1c0a12d7fd19b9d8955619b281e1153318ed961bec17ad92bec103671abc8d63525bc83669376f37c11c887cc4cada85719120dff6c3951274 +DIST android-tools-34.0.5.tar.xz 19389824 BLAKE2B a86ad9d22c356d2b3d0d85dd17e5540b5d105a286dd07946659dac4ab6d1e8285eecbbf0377c542ac6ca78e0af8df320a97e24ea2b735bbec66a2d2b23d2099c SHA512 2edea0c7a4c2f63531a8b5f518ed4dc9c315d08d8b23d3fac3b7024e2297860465f6df9fad43c9925fb80b5a50f5f3f4744886b552818bf3e961ba0372212496 diff --git a/dev-util/android-tools/android-tools-31.0.0_p1.ebuild b/dev-util/android-tools/android-tools-31.0.0_p1.ebuild deleted file mode 100644 index b322fd0f0ba5..000000000000 --- a/dev-util/android-tools/android-tools-31.0.0_p1.ebuild +++ /dev/null @@ -1,95 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{7..9} ) - -inherit cmake python-r1 - -DESCRIPTION="Android platform tools (adb, fastboot, and mkbootimg)" -HOMEPAGE="https://github.com/nmeum/android-tools/ https://developer.android.com/" - -MY_PV="${PV//_/}" -SRC_URI="https://github.com/nmeum/android-tools/releases/download/${MY_PV}/${PN}-${MY_PV}.tar.xz - https://dev.gentoo.org/~zmedico/dist/android-tools-31.0.0_p1-no-gtest.patch -> ${PN}-no-gtest.patch - https://dev.gentoo.org/~zmedico/dist/android-tools-31.0.0_p1-fix-gcc11.patch -> ${PN}-fix-gcc11.patch - https://dev.gentoo.org/~zmedico/dist/android-tools-31.0.0_p1-dont-install-license.patch -> ${PN}-dont-install-license.patch - https://dev.gentoo.org/~zmedico/dist/android-tools-31.0.0_p1-install-e2fsdroid-ext2simg.patch -> ${PN}-install-e2fsdroid-ext2simg.patch -" -S="${WORKDIR}/${PN}-${MY_PV}" - -# The entire source code is Apache-2.0, except for fastboot which is BSD-2. -LICENSE="Apache-2.0 BSD-2" -SLOT="0" -KEYWORDS="amd64 ~arm ~arm64 x86 ~x86-linux" -IUSE="python" -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -# dev-libs/libpcre only required for e2fsdroid -DEPEND=" - app-arch/brotli:= - app-arch/lz4:= - app-arch/zstd:= - dev-libs/libpcre2:= - >=dev-libs/protobuf-3.0.0:= - sys-libs/zlib:= - virtual/libusb:1= -" -RDEPEND="${DEPEND} - python? ( ${PYTHON_DEPS} ) -" -BDEPEND=" - dev-lang/go -" - -DOCS=() - -src_prepare() { - eapply "${DISTDIR}/${PN}-no-gtest.patch" - cd "${S}/vendor/core" || die - eapply "${S}/patches/core/0011-Remove-the-useless-dependency-on-gtest.patch" - cd "${S}/vendor/libziparchive" || die - eapply "${S}/patches/libziparchive/0004-Remove-the-useless-dependency-on-gtest.patch" - cd "${S}" - eapply "${DISTDIR}/${PN}-fix-gcc11.patch" - cd "${S}/vendor/boringssl" || die - eapply "${S}/patches/boringssl/0001-Fix-mismatch-between-header-and-implementation-of-bn_sqr_comba8.patch" - eapply "${S}/patches/boringssl/0002-Use-an-unsized-helper-for-truncated-SHA-512-variants.patch" - eapply "${S}/patches/boringssl/0003-Fix-unnecessarily-direction-specific-tests-in-cipher_tests.txt.patch" - eapply "${S}/patches/boringssl/0004-Test-empty-EVP_CIPHER-inputs-and-fix-exact-memcpy-overlap.patch" - eapply "${S}/patches/boringssl/0005-Make-words-in-crypto-fipsmodule-modes-actually-words.patch" - eapply "${S}/patches/boringssl/0006-Move-load-store-helpers-to-crypto-internal.h.patch" - eapply "${S}/patches/boringssl/0007-Fold-ripemd-internal.h-into-ripemd.c.patch" - eapply "${S}/patches/boringssl/0008-Pull-HASH_TRANSFORM-out-of-md32_common.h.patch" - eapply "${S}/patches/boringssl/0009-Make-md32_common.h-single-included-and-use-an-unsized-helper-for-SHA-256.patch" - eapply "${S}/patches/boringssl/0010-Fix-array-parametes-warnings.patch" - cd "${S}" - eapply "${DISTDIR}/${PN}-dont-install-license.patch" - eapply "${DISTDIR}/${PN}-install-e2fsdroid-ext2simg.patch" - rm -r patches || die - cmake_src_prepare -} - -src_configure() { - local mycmakeargs=( - # Statically link the bundled boringssl - -DBUILD_SHARED_LIBS=OFF - ) - cmake_src_configure -} - -src_compile() { - export GOCACHE="${T}/go-build" - export GOFLAGS="-mod=vendor" - cmake_src_compile -} - -src_install() { - cmake_src_install - use python && python_foreach_impl python_newexe vendor/mkbootimg/mkbootimg.py mkbootimg - docinto adb - dodoc vendor/adb/*.{txt,TXT} - docinto fastboot - dodoc vendor/core/fastboot/README.md -} diff --git a/dev-util/android-tools/android-tools-31.0.3_p1.ebuild b/dev-util/android-tools/android-tools-33.0.3-r1.ebuild index 0f1abac32b14..155cf7f10a4b 100644 --- a/dev-util/android-tools/android-tools-31.0.3_p1.ebuild +++ b/dev-util/android-tools/android-tools-33.0.3-r1.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -PYTHON_COMPAT=( python3_{7..10} ) +PYTHON_COMPAT=( python3_{9..11} ) inherit cmake python-r1 @@ -13,16 +13,14 @@ HOMEPAGE="https://github.com/nmeum/android-tools/ https://developer.android.com/ MY_PV="${PV//_/}" SRC_URI="https://github.com/nmeum/android-tools/releases/download/${MY_PV}/${PN}-${MY_PV}.tar.xz https://dev.gentoo.org/~zmedico/dist/${PN}-31.0.3-no-gtest.patch - https://dev.gentoo.org/~zmedico/dist/${PN}-31.0.3-disable-werror-boringssl.patch - https://dev.gentoo.org/~zmedico/dist/${PN}-31.0.3_p1-install-e2fsdroid-ext2simg.patch " S="${WORKDIR}/${PN}-${MY_PV}" # The entire source code is Apache-2.0, except for fastboot which is BSD-2. LICENSE="Apache-2.0 BSD-2" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~x86-linux" -IUSE="python" +KEYWORDS="amd64 ~arm ~arm64 x86" +IUSE="python udev" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" # dev-libs/libpcre only required for e2fsdroid @@ -36,28 +34,30 @@ DEPEND=" virtual/libusb:1= " RDEPEND="${DEPEND} + udev? ( dev-util/android-udev-rules ) python? ( ${PYTHON_DEPS} ) " BDEPEND=" dev-lang/go + dev-lang/perl " DOCS=() src_prepare() { eapply "${DISTDIR}/${PN}-31.0.3-no-gtest.patch" + cd "${S}/vendor/core" || die eapply "${S}/patches/core/0011-Remove-the-useless-dependency-on-gtest.patch" + cd "${S}/vendor/libziparchive" || die eapply "${S}/patches/libziparchive/0004-Remove-the-useless-dependency-on-gtest.patch" - cd "${S}" - eapply "${DISTDIR}/${PN}-31.0.3-disable-werror-boringssl.patch" - cd "${S}/vendor/boringssl" || die - eapply "${S}/patches/boringssl/0011-Disable-Werror.patch" + cd "${S}/vendor/adb" || die - eapply "${FILESDIR}/${PN}-31.0.3_p1-gcc12.patch" - cd "${S}" - eapply "${DISTDIR}/${PN}-31.0.3_p1-install-e2fsdroid-ext2simg.patch" + eapply "${FILESDIR}/${P}-adb-0023-Update-usage-of-usbdevfs_urb-to-match-new-kernel-UAP.patch" + eapply "${FILESDIR}/${P}-adb-gcc-13.patch" + + cd "${S}" || die rm -r patches || die cmake_src_prepare } diff --git a/dev-util/android-tools/android-tools-31.0.3.ebuild b/dev-util/android-tools/android-tools-34.0.0.ebuild index bb938d9eeee1..d8ca6ca82456 100644 --- a/dev-util/android-tools/android-tools-31.0.3.ebuild +++ b/dev-util/android-tools/android-tools-34.0.0.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -PYTHON_COMPAT=( python3_{7..10} ) +PYTHON_COMPAT=( python3_{9..11} ) inherit cmake python-r1 @@ -12,17 +12,15 @@ HOMEPAGE="https://github.com/nmeum/android-tools/ https://developer.android.com/ MY_PV="${PV//_/}" SRC_URI="https://github.com/nmeum/android-tools/releases/download/${MY_PV}/${PN}-${MY_PV}.tar.xz - https://dev.gentoo.org/~zmedico/dist/${P}-no-gtest.patch - https://dev.gentoo.org/~zmedico/dist/${P}-install-e2fsdroid-ext2simg.patch - https://dev.gentoo.org/~zmedico/dist/${P}-disable-werror-boringssl.patch + https://dev.gentoo.org/~zmedico/dist/${PN}-31.0.3-no-gtest.patch " S="${WORKDIR}/${PN}-${MY_PV}" # The entire source code is Apache-2.0, except for fastboot which is BSD-2. LICENSE="Apache-2.0 BSD-2" SLOT="0" -KEYWORDS="amd64 ~arm ~arm64 x86 ~x86-linux" -IUSE="python" +KEYWORDS="amd64 ~arm ~arm64 x86" +IUSE="python udev" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" # dev-libs/libpcre only required for e2fsdroid @@ -36,26 +34,26 @@ DEPEND=" virtual/libusb:1= " RDEPEND="${DEPEND} + udev? ( dev-util/android-udev-rules ) python? ( ${PYTHON_DEPS} ) " BDEPEND=" dev-lang/go + dev-lang/perl " DOCS=() src_prepare() { - eapply "${DISTDIR}/${P}-no-gtest.patch" + eapply "${DISTDIR}/${PN}-31.0.3-no-gtest.patch" + cd "${S}/vendor/core" || die eapply "${S}/patches/core/0011-Remove-the-useless-dependency-on-gtest.patch" + cd "${S}/vendor/libziparchive" || die eapply "${S}/patches/libziparchive/0004-Remove-the-useless-dependency-on-gtest.patch" - cd "${S}" - eapply "${DISTDIR}/${P}-install-e2fsdroid-ext2simg.patch" - eapply "${DISTDIR}/${P}-disable-werror-boringssl.patch" - cd "${S}/vendor/boringssl" || die - eapply "${S}/patches/boringssl/0011-Disable-Werror.patch" - cd "${S}" + + cd "${S}" || die rm -r patches || die cmake_src_prepare } @@ -76,7 +74,19 @@ src_compile() { src_install() { cmake_src_install - use python && python_foreach_impl python_newexe vendor/mkbootimg/mkbootimg.py mkbootimg + rm "${ED}/usr/bin/mkbootimg" || die + rm "${ED}/usr/bin/unpack_bootimg" || die + rm "${ED}/usr/bin/repack_bootimg" || die + rm "${ED}/usr/bin/mkdtboimg" || die + rm "${ED}/usr/bin/avbtool" || die + + if use python; then + python_foreach_impl python_newexe vendor/mkbootimg/mkbootimg.py mkbootimg + python_foreach_impl python_newexe vendor/mkbootimg/unpack_bootimg.py unpack_bootimg + python_foreach_impl python_newexe vendor/mkbootimg/repack_bootimg.py repack_bootimg + python_foreach_impl python_newexe vendor/libufdt/utils/src/mkdtboimg.py mkdtboimg + python_foreach_impl python_newexe vendor/avb/avbtool.py avbtool + fi docinto adb dodoc vendor/adb/*.{txt,TXT} docinto fastboot diff --git a/dev-util/android-tools/android-tools-34.0.1.ebuild b/dev-util/android-tools/android-tools-34.0.1.ebuild new file mode 100644 index 000000000000..022d6d2fc5be --- /dev/null +++ b/dev-util/android-tools/android-tools-34.0.1.ebuild @@ -0,0 +1,99 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..11} ) + +inherit flag-o-matic cmake python-r1 + +DESCRIPTION="Android platform tools (adb, fastboot, and mkbootimg)" +HOMEPAGE="https://github.com/nmeum/android-tools/ https://developer.android.com/" + +MY_PV="${PV//_/}" +SRC_URI="https://github.com/nmeum/android-tools/releases/download/${MY_PV}/${PN}-${MY_PV}.tar.xz + https://dev.gentoo.org/~zmedico/dist/${PN}-31.0.3-no-gtest.patch +" +S="${WORKDIR}/${PN}-${MY_PV}" + +# The entire source code is Apache-2.0, except for fastboot which is BSD-2. +LICENSE="Apache-2.0 BSD-2" +SLOT="0" +KEYWORDS="amd64 ~arm arm64 x86" +IUSE="python udev" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +# dev-libs/libpcre only required for e2fsdroid +DEPEND=" + app-arch/brotli:= + app-arch/lz4:= + app-arch/zstd:= + dev-libs/libpcre2:= + >=dev-libs/protobuf-3.0.0:= + sys-libs/zlib:= + virtual/libusb:1= +" +RDEPEND="${DEPEND} + udev? ( dev-util/android-udev-rules ) + python? ( ${PYTHON_DEPS} ) +" +BDEPEND=" + dev-lang/go + dev-lang/perl +" + +DOCS=() + +src_prepare() { + eapply "${DISTDIR}/${PN}-31.0.3-no-gtest.patch" + eapply "${FILESDIR}/${PN}-34.0.0-protobuf.patch" + eapply "${FILESDIR}/${PN}-34.0.1-include-algorithm.patch" + + cd "${S}/vendor/core" || die + eapply "${S}/patches/core/0011-Remove-the-useless-dependency-on-gtest.patch" + + cd "${S}/vendor/libziparchive" || die + eapply "${S}/patches/libziparchive/0004-Remove-the-useless-dependency-on-gtest.patch" + + cd "${S}" || die + rm -r patches || die + cmake_src_prepare +} + +src_configure() { + # bug 905713 + use elibc_musl && append-flags -D_LARGEFILE64_SOURCE + + local mycmakeargs=( + # Statically link the bundled boringssl + -DBUILD_SHARED_LIBS=OFF + ) + cmake_src_configure +} + +src_compile() { + export GOCACHE="${T}/go-build" + export GOFLAGS="-mod=vendor" + cmake_src_compile +} + +src_install() { + cmake_src_install + rm "${ED}/usr/bin/mkbootimg" || die + rm "${ED}/usr/bin/unpack_bootimg" || die + rm "${ED}/usr/bin/repack_bootimg" || die + rm "${ED}/usr/bin/mkdtboimg" || die + rm "${ED}/usr/bin/avbtool" || die + + if use python; then + python_foreach_impl python_newexe vendor/mkbootimg/mkbootimg.py mkbootimg + python_foreach_impl python_newexe vendor/mkbootimg/unpack_bootimg.py unpack_bootimg + python_foreach_impl python_newexe vendor/mkbootimg/repack_bootimg.py repack_bootimg + python_foreach_impl python_newexe vendor/libufdt/utils/src/mkdtboimg.py mkdtboimg + python_foreach_impl python_newexe vendor/avb/avbtool.py avbtool + fi + docinto adb + dodoc vendor/adb/*.{txt,TXT} + docinto fastboot + dodoc vendor/core/fastboot/README.md +} diff --git a/dev-util/android-tools/android-tools-34.0.5.ebuild b/dev-util/android-tools/android-tools-34.0.5.ebuild new file mode 100644 index 000000000000..7df559af43f4 --- /dev/null +++ b/dev-util/android-tools/android-tools-34.0.5.ebuild @@ -0,0 +1,99 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) + +inherit cmake python-r1 + +DESCRIPTION="Android platform tools (adb, fastboot, and mkbootimg)" +HOMEPAGE="https://github.com/nmeum/android-tools/ https://developer.android.com/" + +MY_PV="${PV//_/}" +SRC_URI="https://github.com/nmeum/android-tools/releases/download/${MY_PV}/${PN}-${MY_PV}.tar.xz + https://dev.gentoo.org/~zmedico/dist/${PN}-31.0.3-no-gtest.patch +" +S="${WORKDIR}/${PN}-${MY_PV}" + +# The entire source code is Apache-2.0, except for fastboot which is BSD-2. +LICENSE="Apache-2.0 BSD-2" +SLOT="0" +KEYWORDS="amd64 ~arm arm64 x86" +IUSE="python udev" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +# dev-libs/libpcre only required for e2fsdroid +DEPEND=" + app-arch/brotli:= + app-arch/lz4:= + app-arch/zstd:= + dev-libs/libpcre2:= + >=dev-libs/protobuf-3.0.0:= + sys-libs/zlib:= + virtual/libusb:1= +" +RDEPEND="${DEPEND} + udev? ( dev-util/android-udev-rules ) + python? ( ${PYTHON_DEPS} ) +" +BDEPEND=" + dev-lang/go + dev-lang/perl +" + +DOCS=() + +src_prepare() { + eapply "${DISTDIR}/${PN}-31.0.3-no-gtest.patch" + + cd "${S}/vendor/core" || die + eapply "${S}/patches/core/0011-Remove-the-useless-dependency-on-gtest.patch" + + cd "${S}/vendor/libziparchive" || die + eapply "${S}/patches/libziparchive/0004-Remove-the-useless-dependency-on-gtest.patch" + + cd "${S}" || die + rm -r patches || die + cmake_src_prepare +} + +src_configure() { + local mycmakeargs=( + # Statically link the bundled boringssl + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ + -DCMAKE_C_FLAGS="$CFLAGS" \ + -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON \ + -Dprotobuf_MODULE_COMPATIBLE=ON + -DBUILD_SHARED_LIBS=OFF + ) + cmake_src_configure +} + +src_compile() { + export GOCACHE="${T}/go-build" + export GOFLAGS="-mod=vendor" + cmake_src_compile +} + +src_install() { + cmake_src_install + rm "${ED}/usr/bin/mkbootimg" || die + rm "${ED}/usr/bin/unpack_bootimg" || die + rm "${ED}/usr/bin/repack_bootimg" || die + rm "${ED}/usr/bin/mkdtboimg" || die + rm "${ED}/usr/bin/avbtool" || die + + if use python; then + python_foreach_impl python_newexe vendor/mkbootimg/mkbootimg.py mkbootimg + python_foreach_impl python_newexe vendor/mkbootimg/unpack_bootimg.py unpack_bootimg + python_foreach_impl python_newexe vendor/mkbootimg/repack_bootimg.py repack_bootimg + python_foreach_impl python_newexe vendor/libufdt/utils/src/mkdtboimg.py mkdtboimg + python_foreach_impl python_newexe vendor/avb/avbtool.py avbtool + fi + docinto adb + dodoc vendor/adb/*.{txt,TXT} + docinto fastboot + dodoc vendor/core/fastboot/README.md +} diff --git a/dev-util/android-tools/files/android-tools-31.0.3_p1-gcc12.patch b/dev-util/android-tools/files/android-tools-31.0.3_p1-gcc12.patch deleted file mode 100644 index aa313daf9042..000000000000 --- a/dev-util/android-tools/files/android-tools-31.0.3_p1-gcc12.patch +++ /dev/null @@ -1,15 +0,0 @@ -From 752fc3bd9a971858dbb7b51a0ef0289232e67e58 Mon Sep 17 00:00:00 2001 -From: Mike Lothian <mike@fireburn.co.uk> -Date: Sat, 14 May 2022 02:01:18 +0100 -Subject: [PATCH] Add functional include - ---- a/tls/include/adb/tls/tls_connection.h -+++ b/tls/include/adb/tls/tls_connection.h -@@ -19,6 +19,7 @@ - #include <stddef.h> - #include <stdint.h> - -+#include <functional> - #include <string_view> - #include <vector> - diff --git a/dev-util/android-tools/files/android-tools-33.0.3-adb-0023-Update-usage-of-usbdevfs_urb-to-match-new-kernel-UAP.patch b/dev-util/android-tools/files/android-tools-33.0.3-adb-0023-Update-usage-of-usbdevfs_urb-to-match-new-kernel-UAP.patch new file mode 100644 index 000000000000..25572574d834 --- /dev/null +++ b/dev-util/android-tools/files/android-tools-33.0.3-adb-0023-Update-usage-of-usbdevfs_urb-to-match-new-kernel-UAP.patch @@ -0,0 +1,120 @@ +https://github.com/anatol/android-tools/blob/2f8405a47909861c9359fe4797e7b4a0fba4dc12/patches/adb/0023-Update-usage-of-usbdevfs_urb-to-match-new-kernel-UAP.patch +https://github.com/nmeum/android-tools/issues/74 +https://bugs.gentoo.org/876328 + +From c830c90995fc0877348e2ed9cdeccf9b739138d2 Mon Sep 17 00:00:00 2001 +From: Anatol Pomozov <anatol.pomozov@gmail.com> +Date: Mon, 10 Oct 2022 10:47:57 -0700 +Subject: [PATCH] Update usage of usbdevfs_urb to match new kernel UAPI +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Linux kernel API has been changed by commit 94dfc73e7cf4 ("treewide: uapi: Replace zero-length arrays with flexible-array members") +where zero-length array iso_frame_desc in struct usbdevfs_urb was replaced with a proper flexible-array member. + +Current USB API usage causes a compilation error at Linux 6.0: + +In file included from /home/mae/.cache/kiss/proc/121205/build/android-tools/vendor/adb/client/usb_linux.cpp:28: +/usr/include/linux/usbdevice_fs.h:134:41: error: flexible array member ‘usbdevfs_urb::iso_frame_desc’ not at end of ‘struct usb_handle’ + 134 | struct usbdevfs_iso_packet_desc iso_frame_desc[]; + | ^~~~~~~~~~~~~~ +/home/mae/.cache/kiss/proc/121205/build/android-tools/vendor/adb/client/usb_linux.cpp:76:18: note: next member ‘usbdevfs_urb usb_handle::urb_out’ declared here + 76 | usbdevfs_urb urb_out; + | ^~~~~~~ +/home/mae/.cache/kiss/proc/121205/build/android-tools/vendor/adb/client/usb_linux.cpp:61:8: note: in the definition of ‘struct usb_handle’ + 61 | struct usb_handle { + | ^~~~~~~~~~ + +Fix it by using pointers to a struct with flexible-array members. +Current fix works both with the old and the new API. + +See https://github.com/nmeum/android-tools/issues/74 for more context. + +Tested: built on Linux against kernel 5.19 and 6.0; 'adb shell' over USB +cable +Acked-by: Gustavo A. R. Silva gustavoars@kernel.org +Change-Id: I7f0f7b35d9a3ab980d3520b541b60c7857a6b101 +Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com> +--- a/client/usb_linux.cpp ++++ b/client/usb_linux.cpp +@@ -71,8 +71,8 @@ struct usb_handle { + unsigned zero_mask; + unsigned writeable = 1; + +- usbdevfs_urb urb_in; +- usbdevfs_urb urb_out; ++ usbdevfs_urb *urb_in; ++ usbdevfs_urb *urb_out; + + bool urb_in_busy = false; + bool urb_out_busy = false; +@@ -303,7 +303,7 @@ static int usb_bulk_write(usb_handle* h, const void* data, int len) { + std::unique_lock<std::mutex> lock(h->mutex); + D("++ usb_bulk_write ++"); + +- usbdevfs_urb* urb = &h->urb_out; ++ usbdevfs_urb* urb = h->urb_out; + memset(urb, 0, sizeof(*urb)); + urb->type = USBDEVFS_URB_TYPE_BULK; + urb->endpoint = h->ep_out; +@@ -342,7 +342,7 @@ static int usb_bulk_read(usb_handle* h, void* data, int len) { + std::unique_lock<std::mutex> lock(h->mutex); + D("++ usb_bulk_read ++"); + +- usbdevfs_urb* urb = &h->urb_in; ++ usbdevfs_urb* urb = h->urb_in; + memset(urb, 0, sizeof(*urb)); + urb->type = USBDEVFS_URB_TYPE_BULK; + urb->endpoint = h->ep_in; +@@ -387,7 +387,7 @@ static int usb_bulk_read(usb_handle* h, void* data, int len) { + } + D("[ urb @%p status = %d, actual = %d ]", out, out->status, out->actual_length); + +- if (out == &h->urb_in) { ++ if (out == h->urb_in) { + D("[ reap urb - IN complete ]"); + h->urb_in_busy = false; + if (urb->status != 0) { +@@ -396,7 +396,7 @@ static int usb_bulk_read(usb_handle* h, void* data, int len) { + } + return urb->actual_length; + } +- if (out == &h->urb_out) { ++ if (out == h->urb_out) { + D("[ reap urb - OUT compelete ]"); + h->urb_out_busy = false; + h->cv.notify_all(); +@@ -500,10 +500,10 @@ void usb_kick(usb_handle* h) { + ** but this ensures that a reader blocked on REAPURB + ** will get unblocked + */ +- ioctl(h->fd, USBDEVFS_DISCARDURB, &h->urb_in); +- ioctl(h->fd, USBDEVFS_DISCARDURB, &h->urb_out); +- h->urb_in.status = -ENODEV; +- h->urb_out.status = -ENODEV; ++ ioctl(h->fd, USBDEVFS_DISCARDURB, h->urb_in); ++ ioctl(h->fd, USBDEVFS_DISCARDURB, h->urb_out); ++ h->urb_in->status = -ENODEV; ++ h->urb_out->status = -ENODEV; + h->urb_in_busy = false; + h->urb_out_busy = false; + h->cv.notify_all(); +@@ -519,6 +519,8 @@ int usb_close(usb_handle* h) { + + D("-- usb close %p (fd = %d) --", h, h->fd); + ++ delete h->urb_in; ++ delete h->urb_out; + delete h; + + return 0; +@@ -572,6 +574,8 @@ static void register_device(const char* dev_name, const char* dev_path, unsigned + usb->ep_out = ep_out; + usb->zero_mask = zero_mask; + usb->max_packet_size = max_packet_size; ++ usb->urb_in = new usbdevfs_urb; ++ usb->urb_out = new usbdevfs_urb; + + // Initialize mark so we don't get garbage collected after the device scan. + usb->mark = true; diff --git a/dev-util/android-tools/files/android-tools-33.0.3-adb-gcc-13.patch b/dev-util/android-tools/files/android-tools-33.0.3-adb-gcc-13.patch new file mode 100644 index 000000000000..4ba2c9a49c31 --- /dev/null +++ b/dev-util/android-tools/files/android-tools-33.0.3-adb-gcc-13.patch @@ -0,0 +1,25 @@ +https://bugs.gentoo.org/875575 +https://android-review.googlesource.com/c/platform/packages/modules/adb/+/2399311 + +From ddffab649b12dce1502d63711836b58d007f6a28 Mon Sep 17 00:00:00 2001 +From: Heiko Becker <heirecka@exherbo.org> +Date: Mon, 23 Jan 2023 23:09:52 +0100 +Subject: [PATCH] Fix build with gcc 13 by including <cstdint> + +Like other versions before, gcc 13 moved some includes around and as a +result <cstdint> is no longer transitively included. Explicitly include +it for uint{32,64}_t. + +Test: local build +Change-Id: I05a27726b05427c486fd01b013dba4d698abac97 +--- a/file_sync_protocol.h ++++ b/file_sync_protocol.h +@@ -16,6 +16,8 @@ + + #pragma once + ++#include <cstdint> ++ + #define MKID(a, b, c, d) ((a) | ((b) << 8) | ((c) << 16) | ((d) << 24)) + + #define ID_LSTAT_V1 MKID('S', 'T', 'A', 'T') diff --git a/dev-util/android-tools/files/android-tools-34.0.0-protobuf.patch b/dev-util/android-tools/files/android-tools-34.0.0-protobuf.patch new file mode 100644 index 000000000000..d7aa309410a4 --- /dev/null +++ b/dev-util/android-tools/files/android-tools-34.0.0-protobuf.patch @@ -0,0 +1,41 @@ +https://bugs.gentoo.org/912789 +https://github.com/nmeum/android-tools/commit/c5eae90a06072c6982e483f8154e490b47e620f7 +https://github.com/nmeum/android-tools/pull/120#issuecomment-1621066529 + +--- a/vendor/CMakeLists.txt ++++ b/vendor/CMakeLists.txt +@@ -73,6 +73,8 @@ + pkg_check_modules(libzstd REQUIRED IMPORTED_TARGET libzstd) + ++find_package(Protobuf CONFIG) + find_package(Protobuf REQUIRED) ++set(PROTOBUF_LIBRARIES protobuf::libprotobuf) + set(THREADS_PREFER_PTHREAD_FLAG ON) + find_package(Threads REQUIRED) + +--- a/vendor/extras/libjsonpb/parse/jsonpb.cpp ++++ b/vendor/extras/libjsonpb/parse/jsonpb.cpp +@@ -50,8 +50,10 @@ + if (!status.ok()) { + #if GOOGLE_PROTOBUF_VERSION < 3016000 + return MakeError<std::string>(status.error_message().as_string()); +-#else ++#elif GOOGLE_PROTOBUF_VERSION < 4022000 + return MakeError<std::string>(status.message().as_string()); ++#else ++ return MakeError<std::string>(std::string(status.message())); + #endif + } + return ErrorOr<std::string>(std::move(json)); +@@ -67,8 +69,10 @@ + if (!status.ok()) { + #if GOOGLE_PROTOBUF_VERSION < 3016000 + return MakeError<std::monostate>(status.error_message().as_string()); +-#else ++#elif GOOGLE_PROTOBUF_VERSION < 4022000 + return MakeError<std::monostate>(status.message().as_string()); ++#else ++ return MakeError<std::monostate>(std::string(status.message())); + #endif + } + if (!message->ParseFromString(binary)) { diff --git a/dev-util/android-tools/files/android-tools-34.0.1-include-algorithm.patch b/dev-util/android-tools/files/android-tools-34.0.1-include-algorithm.patch new file mode 100644 index 000000000000..79bd52c4c634 --- /dev/null +++ b/dev-util/android-tools/files/android-tools-34.0.1-include-algorithm.patch @@ -0,0 +1,45 @@ +From 805c7e385123c6c142c8fec941406fea62af4459 Mon Sep 17 00:00:00 2001 +From: Christopher Fore <csfore@posteo.net> +Date: Sat, 9 Dec 2023 15:07:12 -0500 +Subject: [PATCH] dev-util/android-tools: Add patch to fix compilation on GCC 14 + +https://github.com/gentoo/gentoo/pull/34201 +--- + +diff --git a/vendor/adb/client/incremental_utils.cpp b/vendor/adb/client/incremental_utils.cpp +index 2f6958b..67f21a1 100644 +--- a/vendor/adb/client/incremental_utils.cpp ++++ b/vendor/adb/client/incremental_utils.cpp +@@ -24,6 +24,7 @@ + #include <ziparchive/zip_archive.h> + #include <ziparchive/zip_writer.h> + ++#include <algorithm> + #include <array> + #include <cinttypes> + #include <numeric> +diff --git a/vendor/core/fs_mgr/liblp/super_layout_builder.cpp b/vendor/core/fs_mgr/liblp/super_layout_builder.cpp +index 37f28e1..0db82e5 100644 +--- a/vendor/core/fs_mgr/liblp/super_layout_builder.cpp ++++ b/vendor/core/fs_mgr/liblp/super_layout_builder.cpp +@@ -17,6 +17,8 @@ + + #include <liblp/liblp.h> + ++#include <algorithm> ++ + #include "images.h" + #include "utility.h" + #include "writer.h" +diff --git a/vendor/core/fs_mgr/liblp/utility.cpp b/vendor/core/fs_mgr/liblp/utility.cpp +index d8e171b..70c7b79 100644 +--- a/vendor/core/fs_mgr/liblp/utility.cpp ++++ b/vendor/core/fs_mgr/liblp/utility.cpp +@@ -25,6 +25,7 @@ + #include <sys/ioctl.h> + #endif + ++#include <algorithm> + #include <map> + #include <string> + #include <vector> diff --git a/dev-util/android-tools/files/make-tarballs.sh b/dev-util/android-tools/files/make-tarballs.sh deleted file mode 100755 index 5a0a775c1290..000000000000 --- a/dev-util/android-tools/files/make-tarballs.sh +++ /dev/null @@ -1,128 +0,0 @@ -#!/bin/bash -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# Create the various tarballs we need. GoB does not provide stable archives (unlike github), -# and some repos are uselessly fat, so we have to create things by hand. Fun times. - -set -e - -die() { - echo "error: $*" >&2 - exit 1 -} - -fetch_boringssl() { - local ver=$1 tag=$2 - local content hash - - echo "checking boringssl in ${tag}" - content=$(wget -nv "https://android.googlesource.com/platform/external/boringssl/+/${tag}/BORINGSSL_REVISION?format=TEXT" -O -) - hash=$(echo "${content}" | base64 -d) - echo "using boringssl ${hash}" - - local tar="${DISTDIR}/boringssl-${hash}.tar.gz" - if [[ ! -e ${tar} ]] ; then - # We use github as it provides stable tarballs. GoB does not (includes timestamps). - # https://boringssl.googlesource.com/boringssl/+archive/${hash}.tar.gz - wget -c "https://github.com/google/boringssl/archive/${hash}.tar.gz" -O "${tar}" - fi - - du -h "${tar}" -} - -# The extras repo has ballooned to ~200MB, so we have to strip the large useless -# files and random binaries. -fetch_extras() { - local ver=$1 tag=$2 - local tar="${DISTDIR}/android-tools-${ver}-extras.tar.xz" - - if [[ ! -e ${tar} ]] ; then - local prune=( - ioshark - memory_replay - perfprofd - simpleperf - ) - local dir="${tag}-extras" - rm -rf "${dir}" - mkdir "${dir}" - cd "${dir}" - - wget "https://android.googlesource.com/platform/system/extras/+archive/${tag}.tar.gz" -O extras.tar.gz - tar xf extras.tar.gz - rm -rf "${prune[@]}" extras.tar.gz - - cd .. - tar cf - "${dir}" | xz -9 > "${dir}.tar.xz" - rm -rf "${dir}" - - mv "${dir}.tar.xz" "${tar}" - fi - - du -h "${tar}" -} - -# Since the GoB archive is unstable, we might as well rewrite it into xz to shrink. -fetch_selinux() { - local ver=$1 tag=$2 - local tar="${DISTDIR}/android-tools-${ver}-selinux.tar.xz" - - if [[ ! -e ${tar} ]] ; then - wget "https://android.googlesource.com/platform/external/selinux/+archive/${tag}.tar.gz" -O - | zcat | xz > "${tar}" - fi - - du -h "${tar}" -} - -# Since the GoB archive is unstable, we might as well rewrite it into xz to shrink. -fetch_f2fs() { - local ver=$1 tag=$2 - local tar="${DISTDIR}/android-tools-${ver}-f2fs-tools.tar.xz" - - if [[ ! -e ${tar} ]] ; then - wget "https://android.googlesource.com/platform/external/f2fs-tools/+archive/${tag}.tar.gz" -O - | zcat | xz > "${tar}" - fi - - du -h "${tar}" -} - -usage() { - local status=$1 - - [[ ${status} -eq 1 ]] && exec 1>&2 - - cat <<-EOF - Usage: $0 <android version> - - To find the next available version, consult: - https://git.archlinux.org/svntogit/community.git/log/trunk?h=packages/android-tools - - They have some helper scripts for building the files directly. - - Example: - $0 android-8.1.0_r1 - EOF - - exit ${status} -} - -main() { - [[ $# -ne 1 ]] && usage 1 - [[ $1 == "-h" || $1 == "--help" ]] && usage 0 - - if [[ -z ${DISTDIR} ]] ; then - eval $(portageq -v envvar DISTDIR) - fi - if [[ -z ${DISTDIR} ]] ; then - die "Please set \$DISTDIR first" - fi - - local ver="${1#android-}" - local tag="android-${ver}" - fetch_boringssl "${ver}" "${tag}" - fetch_extras "${ver}" "${tag}" - fetch_selinux "${ver}" "${tag}" - fetch_f2fs "${ver}" "${tag}" -} -main "$@" diff --git a/dev-util/android-tools/metadata.xml b/dev-util/android-tools/metadata.xml index 3eaea76d509f..e9527752ee29 100644 --- a/dev-util/android-tools/metadata.xml +++ b/dev-util/android-tools/metadata.xml @@ -6,8 +6,7 @@ <changelog>https://android.googlesource.com/platform/packages/modules/adb/+log</changelog> <doc>https://android.googlesource.com/platform/packages/modules/adb/+/HEAD/OVERVIEW.TXT</doc> <remote-id type="cpe">cpe:/a:google:android_debug_bridge</remote-id> - <remote-id type="github">android/platform_system_core</remote-id> - <remote-id type="launchpad">ubuntu</remote-id> + <remote-id type="github">nmeum/android-tools</remote-id> </upstream> <maintainer type="person"> <email>zmedico@gentoo.org</email> |