В bentoo доступны android-tools-7.0.0_r24

На праздниках дошли руки доделать app-mobilephone/android-tools-7.0.0_r24

Этот пакет интересен несколькими особенностями. Во первых у google adb и fastboot идут частью Android Studio. Во вторых исходники в git и это не один репозиторий. А главное google не использует стандартные для GNU/Linux autoconf/automake/Makefile.

Пришлось изобретать способ доставки исходников. В результате получился !=9999 пакет который тем не менее берет исходники из разных репозиториев git. А вот за огромную работу по адаптации к нормальны инструментам сборки следует благодарить ребят из VoidLinux.

Оставлю тут для истории:

# Copyright 1999-2017 The Bentoo Authors. All rights reserved.
# Distributed under the terms of the GNU General Public License v3 or later
# $Id$

EAPI="6"
inherit git-r3 systemd udev

KEYWORDS="~amd64 ~x86 ~arm-linux ~x86-linux"
DESCRIPTION="Android platform tools (adb and fastboot)"
HOMEPAGE="https://sites.google.com/a/android.com/tools/"
SRC_URI=""

# Now use branch "android-7.0.0_r24"
MY_VER="${PV/p/r}"
MY_B="android-${MY_VER}"

# The entire source code is Apache-2.0, except for fastboot which is BSD.
LICENSE="Apache-2.0 BSD"
SLOT="0"
IUSE=""

RDEPEND="virtual/udev"

DEPEND="${RDEPEND}"

S="${WORKDIR}"

src_unpack() {
    EGIT_CLONE_TYPE="mirror"

    local r
    for r in system/core system/extras external/libselinux external/f2fs-tools external/gtest external/safe-iop; do
        EGIT_REPO_URI="https://android.googlesource.com/platform/${r}"
        EGIT_CHECKOUT_DIR="${WORKDIR}/${r}"
        EGIT_BRANCH="${MY_B}"
        EGIT_COMMIT="$EGIT_BRANCH"
        git-r3_src_unpack
        unset EGIT_REPO_URI EGIT_CHECKOUT_DIR EGIT_BRANCH EGIT_COMMIT
    done
}

src_prepare() {
    ipatch push . "${FILESDIR}"/${P}-musl-fixes.patch
    ipatch push . "${FILESDIR}"/${P}-Makefile.patch

    eapply_user
}

src_install() {
    exeinto /usr/bin
    doexe "${WORKDIR}"/system/core/adb/adb
    doexe "${WORKDIR}"/system/core/fastboot/fastboot
    dodoc "${WORKDIR}"/system/core/adb/NOTICE "${WORKDIR}"/system/core/adb/{OVERVIEW,SERVICES,SYNC}.TXT
    # udev rules
    udev_dorules "${FILESDIR}"/51-android.rules
    # systemd unit file
    systemd_dounit "${FILESDIR}"/adb.service
}

pkg_postinst() {
    elog "Android Debug Bridge (adb) is a command-line tool used to communicate with and control"
    elog "Android device over a USB link from a computer. Fastboot is a command line tool used"
    elog "to directly flash the filesystem in Android devices from a host via USB."
    elog
}

Comments