COMMENT = Android debugging tools V = 35.0.1 DISTNAME = android-tools-${V} PKGNAME = adb-${V} CATEGORIES = devel HOMEPAGE = https://developer.android.com/tools/help/adb.html SITES = https://github.com/nmeum/android-tools/releases/download/${V}/ EXTRACT_SUFX = .tar.xz # Apache License v2.0 PERMIT_PACKAGE = Yes WANTLIB += c brotlicommon brotlidec brotlienc lz4 pcre2-8 WANTLIB += pthread protobuf usb-1.0 z zstd LIB_DEPENDS = archivers/brotli \ archivers/lz4 \ archivers/zstd \ devel/libusb1 \ devel/pcre2 \ devel/protobuf MODULES = devel/cmake BUILD_DEPENDS = lang/go RUN_DEPENDS = lang/python/3 CONFIGURE_ARGS = -DANDROID_TOOLS_PATCH_VENDOR=OFF \ -DCMAKE_INSTALL_PREFIX=${PREFIX} # Go (boringssl err_data_generate.go) needs a writable cache dir MAKE_ENV += GOCACHE=/tmp/adb-gocache NO_TEST = Yes # Create OpenBSD compat stubs for Linux-specific headers not in the tarball. post-patch: mkdir -p ${WRKSRC}/vendor/compat/sys ${WRKSRC}/vendor/compat/linux printf '/* OpenBSD stub: major/minor/makedev are in sys/types.h */\n' \ > ${WRKSRC}/vendor/compat/sys/sysmacros.h printf '#pragma once\n#include \n' \ >> ${WRKSRC}/vendor/compat/sys/sysmacros.h printf '/* OpenBSD stub for linux/capability.h */\n#pragma once\n' \ > ${WRKSRC}/vendor/compat/linux/capability.h printf '#include \ntypedef uint32_t __u32;\n' \ >> ${WRKSRC}/vendor/compat/linux/capability.h printf '#define _LINUX_CAPABILITY_VERSION_3 0x20080522\n' \ >> ${WRKSRC}/vendor/compat/linux/capability.h printf '#define _LINUX_CAPABILITY_U32S_3 2\n' \ >> ${WRKSRC}/vendor/compat/linux/capability.h printf '#define VFS_CAP_REVISION_1 0x01000000\n' \ >> ${WRKSRC}/vendor/compat/linux/capability.h printf '#define VFS_CAP_REVISION_2 0x02000000\n' \ >> ${WRKSRC}/vendor/compat/linux/capability.h printf '#define VFS_CAP_REVISION_3 0x03000000\n' \ >> ${WRKSRC}/vendor/compat/linux/capability.h printf '#define VFS_CAP_REVISION_MASK 0xff000000\n' \ >> ${WRKSRC}/vendor/compat/linux/capability.h printf '#define VFS_CAP_FLAGS_EFFECTIVE 0x000001\n' \ >> ${WRKSRC}/vendor/compat/linux/capability.h printf 'struct vfs_cap_data { __u32 magic_etc; struct { __u32 permitted, inheritable; } data[2]; };\n' \ >> ${WRKSRC}/vendor/compat/linux/capability.h printf 'struct vfs_ns_cap_data { __u32 magic_etc; struct { __u32 permitted, inheritable; } data[2]; __u32 rootid; };\n' \ >> ${WRKSRC}/vendor/compat/linux/capability.h printf '/* OpenBSD compat: add mempcpy (GNU extension) via #include_next wrapper */\n' \ > ${WRKSRC}/vendor/compat/string.h printf '#pragma once\n#include_next \n' \ >> ${WRKSRC}/vendor/compat/string.h printf '#ifndef mempcpy\n' \ >> ${WRKSRC}/vendor/compat/string.h printf 'static inline void *mempcpy(void *dst, const void *src, size_t n) {\n' \ >> ${WRKSRC}/vendor/compat/string.h printf '\treturn (char *)memcpy(dst, src, n) + n;\n' \ >> ${WRKSRC}/vendor/compat/string.h printf '}\n#endif\n' \ >> ${WRKSRC}/vendor/compat/string.h cp ${FILESDIR}/fastboot_usb_libusb.cpp \ ${WRKSRC}/vendor/core/fastboot/usb_libusb.cpp cp ${FILESDIR}/adb_usb_openbsd.cpp \ ${WRKSRC}/vendor/adb/client/usb_openbsd.cpp .include