Index: head/devel/android-tools-adb/Makefile =================================================================== --- head/devel/android-tools-adb/Makefile (revision 453203) +++ head/devel/android-tools-adb/Makefile (revision 453204) @@ -1,116 +1,106 @@ # $FreeBSD$ PORTNAME= android-tools-adb DISTVERSIONPREFIX= android- -DISTVERSION?= 8.0.0_r4 -PORTREVISION?= 1 +DISTVERSION?= 8.0.0_r24 +PORTREVISION?= 0 CATEGORIES= devel comms -.ifndef EXTRA_PATCHES -PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/ -PATCHFILES+= 46de1d7f03b7.patch:-p1 -PATCHFILES+= 5d002b8d6ae0.patch:-p1 -.endif - MAINTAINER= jbeich@FreeBSD.org COMMENT= Android debug bridge command line tool LICENSE= APACHE20 USE_GITHUB= yes GH_ACCOUNT= android GH_PROJECT= platform_system_core # Emulate GH_COMMIT without causing desync .ifdef DISTVERSIONSUFFIX GH_REVISION= ${DISTVERSIONSUFFIX:S/-g//} # snapshot .else -GH_REVISION= f6a78079a81a # generated by: make update-revision +GH_REVISION= 6cd85e2a8934 # generated by: make update-revision .endif CONFLICTS_INSTALL?= ${PORTNAME}-devel-* - -.ifndef EXTRA_PATCHES -EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-base_include_android-base_logging.h -.endif USES= compiler:c++14-lang pkgconfig ssl uidfix BUILD_WRKSRC= ${WRKSRC}/adb INSTALL_WRKSRC= ${BUILD_WRKSRC} TEST_WRKSRC= ${BUILD_WRKSRC} CPPFLAGS+= -D_GLIBCXX_USE_C99 # XXX ports/193528 MAKEFILE?= ${.CURDIR}/files/Makefile MAKE_ENV= BINDIR="${PREFIX}/bin" EXTRADIR="${FILESDIR}" \ FILESDIR="${DOCSDIR}" REVISION="${GH_REVISION}" ALL_TARGET= all TEST_TARGET= test PLIST_FILES= bin/adb PORTDOCS= * OPTIONS_DEFINE+=MDNSRESPONDER BASH DOCS TEST TEST_PYTHON OPTIONS_DEFAULT=MDNSRESPONDER OPTIONS_SUB= yes .if make(makesum) # for optional distfiles .MAKEFLAGS: WITH="${OPTIONS_DEFINE}" .endif BASH_GH_ACCOUNT= mbrubeck:bashcomp BASH_GH_PROJECT= android-completion:bashcomp BASH_GH_TAGNAME= c1b0656:bashcomp BASH_PLIST_FILES= etc/bash_completion.d/adb BASH_VARS= LICENSE+=MIT LICENSE_COMB=multi DOCS_MAKE_ARGS_OFF= FILES="" FILESDIR="" MDNSRESPONDER_LIB_DEPENDS= libdns_sd.so:net/mDNSResponder MDNSRESPONDER_USES= localbase:ldflags MDNSRESPONDER_LDFLAGS= -ldns_sd MDNSRESPONDER_MAKE_ENV_OFF= MDNSEXT=_unsupported TEST_BUILD_DEPENDS+= googlemock>=1.6.0:devel/googlemock \ googletest>=1.6.0:devel/googletest TEST_ALL_TARGET= adb_test TEST_PYTHON_DESC= ${TEST_DESC:S/tests/python &/} TEST_PYTHON_GH_PROJECT= platform_development:development TEST_PYTHON_BUILD_DEPENDS=${PYTHON_PKGNAMEPREFIX}mock>0:devel/py-mock TEST_PYTHON_USES= python:2.7,build post-patch: # XXX Hidden by poudriere/tinderbox, see lindev(4) for FreeBSD < 11.0 @if [ ! -e /dev/full ]; then \ ${REINPLACE_CMD} -e '/TEST/s/[^ ]*ENOSPC/DISABLED_&/' \ ${WRKSRC}/adb/adb_io_test.cpp; \ fi pre-install-TEST-on: do-test pre-install-TEST_PYTHON-on: # XXX python tests may leave behind running adb server ${SETENV} PATH=${BUILD_WRKSRC}:${PATH} \ PYTHONPATH=${WRKSRC_development}/python-packages \ ${PYTHON_CMD} -m unittest discover -vs ${BUILD_WRKSRC} post-install-BASH-on: ${MKDIR} ${STAGEDIR}${PREFIX}/${BASH_PLIST_FILES:H} ${INSTALL_DATA} ${WRKSRC_bashcomp}/android \ ${STAGEDIR}${PREFIX}/${BASH_PLIST_FILES} update-revision: # https://developer.github.com/v3/repos/commits/#get-a-single-commit # Pretend to be curl(1) for pretty-printed JSON to help parse with sed(1) @${REINPLACE_CMD} -i '' -e "/^GH_REVISION.*$@/s/=.*/= $$(\ ${SETENV} HTTP_USER_AGENT=curl ${FETCH_CMD} -qo- \ https://api.github.com/repos/${GH_ACCOUNT}/${GH_PROJECT}/commits/${GH_TAGNAME} | \ ${SED} -n '/sha/ { s/.*\"\([0-9a-f]\{12\}\).*/\1/p; q; }' \ ) # generated by: make $@/" \ ${.CURDIR}/Makefile .include # XXX Work around !target(makesum) .ifndef DISTVERSIONSUFFIX makesum: update-revision .endif Index: head/devel/android-tools-adb/distinfo =================================================================== --- head/devel/android-tools-adb/distinfo (revision 453203) +++ head/devel/android-tools-adb/distinfo (revision 453204) @@ -1,11 +1,11 @@ -TIMESTAMP = 1498603192 -SHA256 (android-platform_system_core-android-8.0.0_r4_GH0.tar.gz) = 3eb686edb1ccaa7312fb195b65c413823a6d60442d519c499c18b2d18c3094a9 -SIZE (android-platform_system_core-android-8.0.0_r4_GH0.tar.gz) = 5115403 +TIMESTAMP = 1502781926 +SHA256 (android-platform_system_core-android-8.0.0_r24_GH0.tar.gz) = 6b55a409e6c03f58add5a0d13765ebcb6aee7ecef6452ef5d780228209cb8a3a +SIZE (android-platform_system_core-android-8.0.0_r24_GH0.tar.gz) = 5190913 SHA256 (mbrubeck-android-completion-c1b0656_GH0.tar.gz) = ca3311ba47a5edd56c929ac9aae57c02c2c3f1636519c5f67abb00b6e3ecd75c SIZE (mbrubeck-android-completion-c1b0656_GH0.tar.gz) = 5967 -SHA256 (android-platform_development-android-8.0.0_r4_GH0.tar.gz) = b6399cc349a332ef818f5041dd39742322bcf96d54663ec8a11e38cb5271096c -SIZE (android-platform_development-android-8.0.0_r4_GH0.tar.gz) = 93751770 +SHA256 (android-platform_development-android-8.0.0_r24_GH0.tar.gz) = 1477bab3bfe7202ab7bc716a20deb99e5c151d69df44a6a478e7de2cf10acb4d +SIZE (android-platform_development-android-8.0.0_r24_GH0.tar.gz) = 93766075 SHA256 (46de1d7f03b7.patch) = 93bf49a9a93f2b660f39041f8dbd179ea8f1170c1bebeee42f7df1dc1c393579 SIZE (46de1d7f03b7.patch) = 12346 SHA256 (5d002b8d6ae0.patch) = 0d105587abea3afbfd320a95be3f8532f213778a6f699150c4d4477334c9eef2 SIZE (5d002b8d6ae0.patch) = 1385 Index: head/devel/android-tools-adb/files/Makefile =================================================================== --- head/devel/android-tools-adb/files/Makefile (revision 453203) +++ head/devel/android-tools-adb/files/Makefile (revision 453204) @@ -1,156 +1,156 @@ # $FreeBSD$ PROG_CXX=adb NO_MAN= BINDIR?=/usr/bin FILESDIR?=${DOCDIR}/${PROG} FILES= *.[Tt][Xx][Tt] SRCS+= adb.cpp SRCS+= adb_auth_host.cpp SRCS+= adb_client.cpp SRCS+= adb_io.cpp SRCS+= adb_listeners.cpp SRCS+= adb_trace.cpp SRCS+= adb_utils.cpp SRCS+= bugreport.cpp SRCS+= commandline.cpp SRCS+= console.cpp SRCS+= diagnose_usb.cpp SRCS+= fdevent.cpp SRCS+= file_sync_client.cpp SRCS+= line_printer.cpp SRCS+= services.cpp SRCS+= shell_service_protocol.cpp SRCS+= socket_spec.cpp SRCS+= ../adb/sockets.cpp SRCS+= sysdeps_unix.cpp SRCS+= transport.cpp SRCS+= transport_local.cpp SRCS+= transport_mdns${MDNSEXT}.cpp SRCS+= transport_usb.cpp TEST_SRCS+= adb_io_test.cpp TEST_SRCS+= adb_listeners_test.cpp TEST_SRCS+= adb_utils_test.cpp TEST_SRCS+= bugreport_test.cpp TEST_SRCS+= fdevent_test.cpp TEST_SRCS+= shell_service_protocol_test.cpp TEST_SRCS+= socket_spec_test.cpp TEST_SRCS+= socket_test.cpp TEST_SRCS+= sysdeps_test.cpp TEST_SRCS+= transport_test.cpp .PATH: ${.CURDIR}/client SRCS+= main.cpp SRCS+= usb_libusb.cpp .PATH: ${.CURDIR}/sysdeps SRCS+= errno.cpp TEST_SRCS+= stat_test.cpp .PATH: ${.CURDIR}/sysdeps/posix SRCS+= network.cpp .PATH: ${.CURDIR}/../base SRCS+= file.cpp SRCS+= logging.cpp SRCS+= parsenetaddress.cpp SRCS+= quick_exit.cpp SRCS+= stringprintf.cpp SRCS+= strings.cpp TEST_SRCS+= file_test.cpp TEST_SRCS+= logging_test.cpp TEST_SRCS+= parsenetaddress_test.cpp TEST_SRCS+= quick_exit_test.cpp TEST_SRCS+= stringprintf_test.cpp TEST_SRCS+= strings_test.cpp TEST_SRCS+= test_main.cpp TEST_SRCS+= test_utils.cpp .PATH: ${.CURDIR}/../libcrypto_utils SRCS+= android_pubkey.c .PATH: ${.CURDIR}/../libcrypto_utils/tests TEST_SRCS+= android_pubkey_test.cpp .PATH: ${.CURDIR}/../libcutils SRCS+= socket_inaddr_any_server_unix.c SRCS+= socket_local_client_unix.c SRCS+= socket_local_server_unix.c SRCS+= socket_network_client_unix.c SRCS+= ../libcutils/sockets.cpp SRCS+= load_file.c SRCS+= threads.c # XXX Obsolete after 10.2 or r279980/r280329 CPPFLAGS.sockets.cpp+= -o ${.TARGET} # required by base/file.cpp .PATH: ${.CURDIR}/../liblog SRCS+= config_read.c SRCS+= config_write.c SRCS+= fake_log_device.c SRCS+= fake_writer.c SRCS+= local_logger.c SRCS+= logger_lock.c SRCS+= logger_name.c SRCS+= logger_write.c SRCS+= logprint.c SRCS+= stderr_write.c REVISION?= $$(${GIT} rev-parse --short=12 HEAD 2>/dev/null || echo unknown) -CPPFLAGS+= -DADB_REVISION="\"${REVISION}-android\"" +CPPFLAGS+= -DADB_VERSION="\"26.0.0 rc1-${REVISION}-android\"" CPPFLAGS+= -DADB_HOST=1 CPPFLAGS+= -DHAVE_FORKEXEC=1 CPPFLAGS+= -DHAVE_SYMLINKS CPPFLAGS+= -DHAVE_TERMIO_H CPPFLAGS+= -DHAVE_SYS_SOCKET_H CPPFLAGS+= -D_FILE_OFFSET_BITS=64 CPPFLAGS+= -DFAKE_LOG_DEVICE=1 CPPFLAGS+= -I${.CURDIR} CPPFLAGS+= -I${.CURDIR}/../include CPPFLAGS+= -I${.CURDIR}/../base/include CPPFLAGS+= -I${.CURDIR}/../libcrypto_utils/include CPPFLAGS+= ${CPPFLAGS.${.IMPSRC:T}} CPPFLAGS+= $$(${PKG_CONFIG} libcrypto --cflags 2>/dev/null) CPPFLAGS+= $$(${PKG_CONFIG} libusb-1.0 --cflags 2>/dev/null) CXXFLAGS+= -std=gnu++14 .ifndef COMPILE.c CFLAGS+= ${CPPFLAGS} CXXFLAGS+= ${CPPFLAGS} .endif TEST_CPPFLAGS+= $$(${GTEST_CONFIG} --cppflags) TEST_CPPFLAGS+= $$(${GMOCK_CONFIG} --cppflags) .for f in ${TEST_SRCS} CPPFLAGS.${f}+= ${TEST_CPPFLAGS} .endfor LDADD+= $$(${PKG_CONFIG} libcrypto --libs 2>/dev/null || echo -lcrypto) LDADD+= $$(${PKG_CONFIG} libusb-1.0 --libs 2>/dev/null || echo -lusb) LDADD+= -lz \-lpthread DPADD+= ${LIBCRYPTO} ${LIBPTHREAD} ${LIBUSB} ${LIBZ} TEST_LDADD+= $$(${GTEST_CONFIG} --libs --ldflags) TEST_LDADD+= $$(${GMOCK_CONFIG} --libs --ldflags) TEST_OBJS+= ${TEST_SRCS:R:S/$/.o/} CLEANFILES+= ${PROG}_test ${TEST_OBJS} GIT?= git GTEST_CONFIG?= gtest-config GMOCK_CONFIG?= gmock-config PKG_CONFIG?= pkg-config beforeinstall: ${INSTALL} -d ${DESTDIR}${FILESDIR} .include test: ${PROG}_test @for f in ${.ALLSRC}; do ./$$f; done ${PROG}_test: ${OBJS:Nmain.o:Ncommandline.o} ${TEST_OBJS} ${CXX} ${CPPFLAGS} ${CXXFLAGS} ${LDFLAGS} -o $@ $> ${LDADD} ${TEST_LDADD} Index: head/devel/android-tools-adb/files/patch-adb_client_usb__libusb.cpp =================================================================== --- head/devel/android-tools-adb/files/patch-adb_client_usb__libusb.cpp (revision 453203) +++ head/devel/android-tools-adb/files/patch-adb_client_usb__libusb.cpp (revision 453204) @@ -1,30 +1,130 @@ --- adb/client/usb_libusb.cpp.orig 2017-06-20 10:50:27 UTC +++ adb/client/usb_libusb.cpp @@ -22,13 +22,14 @@ #include #include +#include #include #include #include #include #include -#include +#include #include #include @@ -89,7 +89,11 @@ struct transfer_info { }; namespace libusb { +#if defined(__linux__) || defined(__APPLE__) struct usb_handle : public ::usb_handle { +#else +struct usb_handle { +#endif usb_handle(const std::string& device_address, const std::string& serial, unique_device_handle&& device_handle, uint8_t interface, uint8_t bulk_in, uint8_t bulk_out, size_t zero_mask, size_t max_packet_size) +@@ -152,7 +156,14 @@ struct usb_handle : public ::usb_handle { + static auto& usb_handles = *new std::unordered_map>(); + static auto& usb_handles_mutex = *new std::mutex(); + ++#if defined(LIBUSB_API_VERSION) && LIBUSB_API_VERSION >= 0x01000102 + static libusb_hotplug_callback_handle hotplug_handle; ++#else ++static std::thread* device_poll_thread = nullptr; ++static bool terminate_device_poll_thread = false; ++static auto& device_poll_mutex = *new std::mutex(); ++static auto& device_poll_cv = *new std::condition_variable(); ++#endif + + static std::string get_device_address(libusb_device* device) { + return StringPrintf("usb:%d:%d", libusb_get_bus_number(device), +@@ -380,6 +391,7 @@ static void process_device(libusb_device* device) { + LOG(INFO) << "registered new usb device '" << device_serial << "'"; + } + ++#if defined(LIBUSB_API_VERSION) && LIBUSB_API_VERSION >= 0x01000102 + static std::atomic connecting_devices(0); + + static void device_connected(libusb_device* device) { +@@ -449,7 +461,31 @@ static int hotplug_callback(libusb_context*, libusb_de + hotplug_queue.Push({event, device}); + return 0; + } ++#else ++static void poll_for_devices() { ++ libusb_device** list; ++ adb_thread_setname("device poll"); ++ while (true) { ++ const ssize_t device_count = libusb_get_device_list(nullptr, &list); + ++ LOG(VERBOSE) << "found " << device_count << " attached devices"; ++ ++ for (ssize_t i = 0; i < device_count; ++i) { ++ process_device(list[i]); ++ } ++ ++ libusb_free_device_list(list, 1); ++ ++ adb_notify_device_scan_complete(); ++ ++ std::unique_lock lock(device_poll_mutex); ++ if (device_poll_cv.wait_for(lock, 500ms, []() { return terminate_device_poll_thread; })) { ++ return; ++ } ++ } ++} ++#endif ++ + void usb_init() { + LOG(DEBUG) << "initializing libusb..."; + int rc = libusb_init(nullptr); +@@ -457,6 +493,7 @@ void usb_init() { + LOG(FATAL) << "failed to initialize libusb: " << libusb_error_name(rc); + } + ++#if defined(LIBUSB_API_VERSION) && LIBUSB_API_VERSION >= 0x01000102 + // Register the hotplug callback. + rc = libusb_hotplug_register_callback( + nullptr, static_cast(LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED | +@@ -467,6 +504,7 @@ void usb_init() { + if (rc != LIBUSB_SUCCESS) { + LOG(FATAL) << "failed to register libusb hotplug callback"; + } ++#endif + + // Spawn a thread for libusb_handle_events. + std::thread([]() { +@@ -475,10 +513,28 @@ void usb_init() { + libusb_handle_events(nullptr); + } + }).detach(); ++ ++#if !defined(LIBUSB_API_VERSION) || LIBUSB_API_VERSION < 0x01000102 ++ std::unique_lock lock(device_poll_mutex); ++ device_poll_thread = new std::thread(poll_for_devices); ++#endif + } + + void usb_cleanup() { ++#if defined(LIBUSB_API_VERSION) && LIBUSB_API_VERSION >= 0x01000102 + libusb_hotplug_deregister_callback(nullptr, hotplug_handle); ++#else ++ { ++ std::unique_lock lock(device_poll_mutex); ++ terminate_device_poll_thread = true; ++ ++ if (!device_poll_thread) { ++ return; ++ } ++ } ++ device_poll_cv.notify_all(); ++ device_poll_thread->join(); ++#endif + } + + // Dispatch a libusb transfer, unlock |device_lock|, and then wait for the result. Index: head/devel/android-tools-adb/files/patch-base_include_android-base_logging.h =================================================================== --- head/devel/android-tools-adb/files/patch-base_include_android-base_logging.h (revision 453203) +++ head/devel/android-tools-adb/files/patch-base_include_android-base_logging.h (revision 453204) @@ -1,11 +1,20 @@ --- base/include/android-base/logging.h.orig 2015-09-29 18:07:07 UTC +++ base/include/android-base/logging.h @@ -25,6 +25,8 @@ #endif #endif +#include + #include #include #include +@@ -321,7 +321,7 @@ struct LogAbortAfterFullExpr { + // DCHECKs are debug variants of CHECKs only enabled in debug builds. Generally + // CHECK should be used unless profiling identifies a CHECK as being in + // performance critical code. +-#if defined(NDEBUG) && !defined(__clang_analyzer__) ++#if defined(NDEBUG) && !defined(__clang_analyzer__) || !defined(__ANDROID__) + static constexpr bool kEnableDChecks = false; + #else + static constexpr bool kEnableDChecks = true; Index: head/devel/android-tools-adb-devel/Makefile =================================================================== --- head/devel/android-tools-adb-devel/Makefile (revision 453203) +++ head/devel/android-tools-adb-devel/Makefile (revision 453204) @@ -1,18 +1,17 @@ # $FreeBSD$ # Hint: git describe --abbrev=12 --match android-o-preview-4 DISTVERSION= o-preview-4-4534 DISTVERSIONSUFFIX= -g612b47630f6f PKGNAMESUFFIX= -devel CONFLICTS_INSTALL= ${PORTNAME}-[0-9]* MASTERDIR= ${.CURDIR}/../android-tools-adb DISTINFO_FILE= ${.CURDIR}/distinfo -EXTRA_PATCHES= ${.CURDIR}/files/patch-* GH_MYTAG= ${DISTVERSIONPREFIX}${DISTVERSION:C/-[0-9]*$//} TEST_PYTHON_GH_TAGNAME= ${GH_MYTAG}-62-g417a8e237642:development .include "${MASTERDIR}/Makefile" Index: head/devel/android-tools-adb-devel/files/patch-adb_client_usb__libusb.cpp =================================================================== --- head/devel/android-tools-adb-devel/files/patch-adb_client_usb__libusb.cpp (revision 453203) +++ head/devel/android-tools-adb-devel/files/patch-adb_client_usb__libusb.cpp (nonexistent) @@ -1,102 +0,0 @@ ---- adb/client/usb_libusb.cpp.orig 2017-06-20 10:50:27 UTC -+++ adb/client/usb_libusb.cpp -@@ -152,7 +156,14 @@ struct usb_handle : public ::usb_handle { - static auto& usb_handles = *new std::unordered_map>(); - static auto& usb_handles_mutex = *new std::mutex(); - -+#if defined(LIBUSB_API_VERSION) && LIBUSB_API_VERSION >= 0x01000102 - static libusb_hotplug_callback_handle hotplug_handle; -+#else -+static std::thread* device_poll_thread = nullptr; -+static bool terminate_device_poll_thread = false; -+static auto& device_poll_mutex = *new std::mutex(); -+static auto& device_poll_cv = *new std::condition_variable(); -+#endif - - static std::string get_device_address(libusb_device* device) { - return StringPrintf("usb:%d:%d", libusb_get_bus_number(device), -@@ -380,6 +391,7 @@ static void process_device(libusb_device* device) { - LOG(INFO) << "registered new usb device '" << device_serial << "'"; - } - -+#if defined(LIBUSB_API_VERSION) && LIBUSB_API_VERSION >= 0x01000102 - static std::atomic connecting_devices(0); - - static void device_connected(libusb_device* device) { -@@ -449,7 +461,31 @@ static int hotplug_callback(libusb_context*, libusb_de - hotplug_queue.Push({event, device}); - return 0; - } -+#else -+static void poll_for_devices() { -+ libusb_device** list; -+ adb_thread_setname("device poll"); -+ while (true) { -+ const ssize_t device_count = libusb_get_device_list(nullptr, &list); - -+ LOG(VERBOSE) << "found " << device_count << " attached devices"; -+ -+ for (ssize_t i = 0; i < device_count; ++i) { -+ process_device(list[i]); -+ } -+ -+ libusb_free_device_list(list, 1); -+ -+ adb_notify_device_scan_complete(); -+ -+ std::unique_lock lock(device_poll_mutex); -+ if (device_poll_cv.wait_for(lock, 500ms, []() { return terminate_device_poll_thread; })) { -+ return; -+ } -+ } -+} -+#endif -+ - void usb_init() { - LOG(DEBUG) << "initializing libusb..."; - int rc = libusb_init(nullptr); -@@ -457,6 +493,7 @@ void usb_init() { - LOG(FATAL) << "failed to initialize libusb: " << libusb_error_name(rc); - } - -+#if defined(LIBUSB_API_VERSION) && LIBUSB_API_VERSION >= 0x01000102 - // Register the hotplug callback. - rc = libusb_hotplug_register_callback( - nullptr, static_cast(LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED | -@@ -467,6 +504,7 @@ void usb_init() { - if (rc != LIBUSB_SUCCESS) { - LOG(FATAL) << "failed to register libusb hotplug callback"; - } -+#endif - - // Spawn a thread for libusb_handle_events. - std::thread([]() { -@@ -475,10 +513,28 @@ void usb_init() { - libusb_handle_events(nullptr); - } - }).detach(); -+ -+#if !defined(LIBUSB_API_VERSION) || LIBUSB_API_VERSION < 0x01000102 -+ std::unique_lock lock(device_poll_mutex); -+ device_poll_thread = new std::thread(poll_for_devices); -+#endif - } - - void usb_cleanup() { -+#if defined(LIBUSB_API_VERSION) && LIBUSB_API_VERSION >= 0x01000102 - libusb_hotplug_deregister_callback(nullptr, hotplug_handle); -+#else -+ { -+ std::unique_lock lock(device_poll_mutex); -+ terminate_device_poll_thread = true; -+ -+ if (!device_poll_thread) { -+ return; -+ } -+ } -+ device_poll_cv.notify_all(); -+ device_poll_thread->join(); -+#endif - } - - // Dispatch a libusb transfer, unlock |device_lock|, and then wait for the result. Property changes on: head/devel/android-tools-adb-devel/files/patch-adb_client_usb__libusb.cpp ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/devel/android-tools-adb-devel/files/patch-base_include_android-base_logging.h =================================================================== --- head/devel/android-tools-adb-devel/files/patch-base_include_android-base_logging.h (revision 453203) +++ head/devel/android-tools-adb-devel/files/patch-base_include_android-base_logging.h (nonexistent) @@ -1,11 +0,0 @@ ---- base/include/android-base/logging.h.orig 2015-09-29 18:07:07 UTC -+++ base/include/android-base/logging.h -@@ -321,7 +321,7 @@ struct LogAbortAfterFullExpr { - // DCHECKs are debug variants of CHECKs only enabled in debug builds. Generally - // CHECK should be used unless profiling identifies a CHECK as being in - // performance critical code. --#if defined(NDEBUG) && !defined(__clang_analyzer__) -+#if defined(NDEBUG) && !defined(__clang_analyzer__) || !defined(__ANDROID__) - static constexpr bool kEnableDChecks = false; - #else - static constexpr bool kEnableDChecks = true; Property changes on: head/devel/android-tools-adb-devel/files/patch-base_include_android-base_logging.h ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/devel/android-tools-fastboot/Makefile =================================================================== --- head/devel/android-tools-fastboot/Makefile (revision 453203) +++ head/devel/android-tools-fastboot/Makefile (revision 453204) @@ -1,91 +1,92 @@ # $FreeBSD$ PORTNAME= android-tools-fastboot DISTVERSIONPREFIX= android- -DISTVERSION?= 8.0.0_r4 -PORTREVISION?= 1 +DISTVERSION?= 8.0.0_r24 +PORTREVISION?= 0 CATEGORIES= devel sysutils MASTER_SITES= https://anonscm.debian.org/cgit/android-tools/android-tools.git/plain/debian/:manpage DISTFILES= fastboot.1?id=706e754:manpage EXTRACT_ONLY= ${DISTFILES:N*\:manpage:C/:.*//} MAINTAINER= jbeich@FreeBSD.org COMMENT= Android Fastboot protocol CLI tool LICENSE= APACHE20 BSD2CLAUSE PD LICENSE_COMB= multi LICENSE_FILE_PD= ${WRKSRC}/libselinux/NOTICE LIB_DEPENDS= libpcre.so:devel/pcre USE_GITHUB= yes GH_ACCOUNT= android jbeich:extras,libselinux GH_PROJECT= platform_system_core platform_system_extras:extras \ platform_external_libselinux:libselinux GH_TAGNAME?= android-7.1.2_r17:libselinux GH_SUBDIR= libselinux:libselinux # Emulate GH_COMMIT without causing desync .ifdef DISTVERSIONSUFFIX GH_REVISION= ${DISTVERSIONSUFFIX:S/-g//} # snapshot .else -GH_REVISION= f6a78079a81a # generated by: make update-revision +GH_REVISION= 6cd85e2a8934 # generated by: make update-revision .endif CONFLICTS_INSTALL?= ${PORTNAME}-devel-* USES= compiler:c++11-lib pkgconfig uidfix BUILD_WRKSRC= ${WRKSRC}/fastboot INSTALL_WRKSRC= ${BUILD_WRKSRC} +CPPFLAGS+= -D_GLIBCXX_USE_C99 # XXX ports/193528 MAKEFILE?= ${.CURDIR}/files/Makefile MAKE_ENV= BINDIR="${PREFIX}/bin" EXTRADIR="${FILESDIR}" \ FILESDIR="${DOCSDIR}" REVISION="${GH_REVISION}" \ MANDIR="${PREFIX}/man/man" \ LIBPCRE="${LOCALBASE}/lib/libpcre.a" PLIST_FILES= bin/fastboot \ man/man1/fastboot.1.gz PORTDOCS= * SUB_FILES= pkg-message OPTIONS_DEFINE= BASH DOCS OPTIONS_SUB= yes .if make(makesum) # for optional distfiles .MAKEFLAGS: WITH="${OPTIONS_DEFINE}" .endif BASH_GH_ACCOUNT= mbrubeck:bashcomp BASH_GH_PROJECT= android-completion:bashcomp BASH_GH_TAGNAME= c1b0656:bashcomp BASH_PLIST_FILES= etc/bash_completion.d/fastboot BASH_VARS= LICENSE+=MIT DOCS_MAKE_ARGS_OFF= FILES="" FILESDIR="" post-extract: @${CP} ${_DISTDIR}/${DISTFILES:M*\:manpage:C/:.*//} \ ${BUILD_WRKSRC}/${DISTFILES:M*\:manpage:C/\?.*//} # Adjust paths relative to core @(cd ${WRKSRC_extras} && ${COPYTREE_SHARE} . ${WRKSRC}) post-install-BASH-on: ${MKDIR} ${STAGEDIR}${PREFIX}/${BASH_PLIST_FILES:H} ${INSTALL_DATA} ${WRKSRC_bashcomp}/android \ ${STAGEDIR}${PREFIX}/${BASH_PLIST_FILES} update-revision: # https://developer.github.com/v3/repos/commits/#get-a-single-commit # Pretend to be curl(1) for pretty-printed JSON to help parse with sed(1) @${REINPLACE_CMD} -i '' -e "/^GH_REVISION.*$@/s/=.*/= $$(\ ${SETENV} HTTP_USER_AGENT=curl ${FETCH_CMD} -qo- \ https://api.github.com/repos/${GH_ACCOUNT}/${GH_PROJECT}/commits/${GH_TAGNAME} | \ ${SED} -n '/sha/ { s/.*\"\([0-9a-f]\{12\}\).*/\1/p; q; }' \ ) # generated by: make $@/" \ ${.CURDIR}/Makefile .include # XXX Work around !target(makesum) .ifndef DISTVERSIONSUFFIX makesum: update-revision .endif Index: head/devel/android-tools-fastboot/distinfo =================================================================== --- head/devel/android-tools-fastboot/distinfo (revision 453203) +++ head/devel/android-tools-fastboot/distinfo (revision 453204) @@ -1,11 +1,11 @@ -TIMESTAMP = 1495068953 +TIMESTAMP = 1502781926 SHA256 (fastboot.1?id=706e754) = 2af01b064440952a82f1602691a0fecc030302722a71444946fb70d9c423d283 SIZE (fastboot.1?id=706e754) = 5906 -SHA256 (android-platform_system_core-android-8.0.0_r4_GH0.tar.gz) = 3eb686edb1ccaa7312fb195b65c413823a6d60442d519c499c18b2d18c3094a9 -SIZE (android-platform_system_core-android-8.0.0_r4_GH0.tar.gz) = 5115403 -SHA256 (jbeich-platform_system_extras-android-8.0.0_r4_GH0.tar.gz) = 83d4a27f5ffa434688b62d00fcc33edd352bdc523f8b7fcbc3e8d0c1453b1c41 -SIZE (jbeich-platform_system_extras-android-8.0.0_r4_GH0.tar.gz) = 192575526 +SHA256 (android-platform_system_core-android-8.0.0_r24_GH0.tar.gz) = 6b55a409e6c03f58add5a0d13765ebcb6aee7ecef6452ef5d780228209cb8a3a +SIZE (android-platform_system_core-android-8.0.0_r24_GH0.tar.gz) = 5190913 +SHA256 (jbeich-platform_system_extras-android-8.0.0_r24_GH0.tar.gz) = 3cd5069ada498e1fc69c531d00b145c5391484a69a09c1334c185d88ed6034b1 +SIZE (jbeich-platform_system_extras-android-8.0.0_r24_GH0.tar.gz) = 193208820 SHA256 (jbeich-platform_external_libselinux-android-7.1.2_r17_GH0.tar.gz) = 659e43d3e14b4f4fe8955975ad268310bfad0529f408fb33342ed70ae0d456c7 SIZE (jbeich-platform_external_libselinux-android-7.1.2_r17_GH0.tar.gz) = 59763 SHA256 (mbrubeck-android-completion-c1b0656_GH0.tar.gz) = ca3311ba47a5edd56c929ac9aae57c02c2c3f1636519c5f67abb00b6e3ecd75c SIZE (mbrubeck-android-completion-c1b0656_GH0.tar.gz) = 5967 Index: head/devel/android-tools-fastboot/files/Makefile =================================================================== --- head/devel/android-tools-fastboot/files/Makefile (revision 453203) +++ head/devel/android-tools-fastboot/files/Makefile (revision 453204) @@ -1,141 +1,141 @@ # $FreeBSD$ PROG_CXX=fastboot BINDIR?=/usr/bin FILESDIR?=${DOCDIR}/${PROG} FILES= *.md SRCS+= bootimg_utils.cpp SRCS+= engine.cpp SRCS+= fastboot.cpp SRCS+= ../fastboot/fs.cpp SRCS+= protocol.cpp SRCS+= socket.cpp SRCS+= tcp.cpp SRCS+= udp.cpp SRCS+= util.cpp .PATH: ${EXTRADIR} SRCS+= usb_freebsd.cpp # required by fastboot .PATH: ${.CURDIR}/../adb SRCS+= diagnose_usb.cpp # required by fastboot, diagnose_usb and libziparchive .PATH: ${.CURDIR}/../base SRCS+= errors_unix.cpp SRCS+= file.cpp SRCS+= logging.cpp SRCS+= parsenetaddress.cpp SRCS+= stringprintf.cpp SRCS+= strings.cpp # required by fastboot .PATH: ${.CURDIR}/../ext4_utils SRCS+= allocate.c SRCS+= contents.c SRCS+= crc16.c SRCS+= ext4_sb.c SRCS+= ext4_utils.c SRCS+= ext4fixup.c SRCS+= extent.c SRCS+= indirect.c SRCS+= make_ext4fs.c SRCS+= sha1.c SRCS+= wipe.c # required by fastboot .PATH: ${.CURDIR}/../libcutils SRCS+= android_get_control_file.cpp SRCS+= ../libcutils/sockets.cpp SRCS+= socket_inaddr_any_server_unix.c SRCS+= socket_network_client_unix.c SRCS+= sockets_unix.cpp CPPFLAGS.sockets.cpp+= -o ${.TARGET} # XXX pre-r279980 # required by base and libutils .PATH: ${.CURDIR}/../liblog SRCS+= config_read.c SRCS+= config_write.c SRCS+= fake_log_device.c SRCS+= fake_writer.c SRCS+= local_logger.c SRCS+= logger_lock.c SRCS+= logger_name.c SRCS+= logger_write.c SRCS+= logprint.c SRCS+= stderr_write.c SRCS+= test_utils.cpp # required by ext4_utils .PATH: ${.CURDIR}/../libselinux/src SRCS+= callbacks.c SRCS+= check_context.c SRCS+= freecon.c SRCS+= init.c SRCS+= label.c SRCS+= label_android_property.c SRCS+= label_file.c SRCS+= label_support.c CPPFLAGS.label_file.c+= -D_WITH_GETLINE # required by fastboot and ext4_utils .PATH: ${.CURDIR}/../libsparse SRCS+= backed_block.c SRCS+= output_file.c SRCS+= sparse.c SRCS+= sparse_crc32.c SRCS+= sparse_err.c -SRCS+= sparse_read.c +SRCS+= sparse_read.cpp # required by libziparchive .PATH: ${.CURDIR}/../libutils SRCS+= FileMap.cpp # required by fastboot .PATH: ${.CURDIR}/../libziparchive SRCS+= zip_archive.cc REVISION?= $$(${GIT} rev-parse --short=12 HEAD 2>/dev/null || echo unknown) -CPPFLAGS+= -DFASTBOOT_REVISION="\"${REVISION}-android\"" +CPPFLAGS+= -DFASTBOOT_VERSION="\"26.0.0 rc1-${REVISION}-android\"" CPPFLAGS+= -Doff64_t=off_t CPPFLAGS+= -Dftruncate64=ftruncate CPPFLAGS+= -Dlseek64=lseek CPPFLAGS+= -Dmmap64=mmap CPPFLAGS+= -Dpread64=pread CPPFLAGS+= -DFAKE_LOG_DEVICE=1 CPPFLAGS+= -I${.CURDIR} CPPFLAGS+= -I${.CURDIR}/../include CPPFLAGS+= -I${.CURDIR}/../adb CPPFLAGS+= -I${.CURDIR}/../mkbootimg CPPFLAGS+= -I${.CURDIR}/../base/include CPPFLAGS+= -I${.CURDIR}/../ext4_utils/include CPPFLAGS+= -I${.CURDIR}/../f2fs_utils CPPFLAGS+= -I${.CURDIR}/../libselinux/include CPPFLAGS+= -I${.CURDIR}/../libsparse/include CPPFLAGS+= ${CPPFLAGS.${.IMPSRC:T}} CPPFLAGS+= $$(${PKG_CONFIG} libpcre --cflags 2>/dev/null) CPPFLAGS+= $$(${PKG_CONFIG} libusb-1.0 --cflags 2>/dev/null) CXXFLAGS+= -D__STDC_LIMIT_MACROS # DragonFly CXXFLAGS+= -std=gnu++11 .ifndef COMPILE.c CFLAGS+= ${CPPFLAGS} CXXFLAGS+= ${CPPFLAGS} .endif LDADD+= $$(${PKG_CONFIG} libpcre --libs 2>/dev/null || echo -lpcre) LDADD+= $$(${PKG_CONFIG} libusb-1.0 --libs 2>/dev/null || echo -lusb) LDADD+= -lz \-lpthread DPADD+= ${LIBPCRE} ${LIBPTHREAD} ${LIBUSB} ${LIBZ} GIT?= git PKG_CONFIG?= pkg-config beforeinstall: ${INSTALL} -d ${DESTDIR}${FILESDIR} .include Index: head/devel/android-tools-fastboot/files/patch-libsparse_sparse__read.cpp =================================================================== --- head/devel/android-tools-fastboot/files/patch-libsparse_sparse__read.cpp (nonexistent) +++ head/devel/android-tools-fastboot/files/patch-libsparse_sparse__read.cpp (revision 453204) @@ -0,0 +1,10 @@ +--- libsparse/sparse_read.cpp.orig 2017-06-20 10:50:27 UTC ++++ libsparse/sparse_read.cpp +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include // memset + #include + + #include Property changes on: head/devel/android-tools-fastboot/files/patch-libsparse_sparse__read.cpp ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/devel/android-tools-fastboot-devel/Makefile =================================================================== --- head/devel/android-tools-fastboot-devel/Makefile (revision 453203) +++ head/devel/android-tools-fastboot-devel/Makefile (revision 453204) @@ -1,19 +1,18 @@ # $FreeBSD$ # Hint: git describe --abbrev=12 --match android-o-preview-2 DISTVERSION= o-preview-2-332 DISTVERSIONSUFFIX= -gd1e9e7bc06f0 PORTREVISION= 1 PKGNAMESUFFIX= -devel GH_MYTAG= ${DISTVERSIONPREFIX}${DISTVERSION:C/-[0-9]*$//} GH_TAGNAME= ${GH_MYTAG}-50-gebf42931:extras \ ${GH_MYTAG}-43-ga63b41e:libselinux CONFLICTS_INSTALL= ${PORTNAME}-[0-9]* MASTERDIR= ${.CURDIR}/../android-tools-fastboot DISTINFO_FILE= ${.CURDIR}/distinfo -EXTRA_PATCHES= ${.CURDIR}/files/patch-* .include "${MASTERDIR}/Makefile" Index: head/devel/android-tools-fastboot-devel/files/patch-libsparse_sparse__read.cpp =================================================================== --- head/devel/android-tools-fastboot-devel/files/patch-libsparse_sparse__read.cpp (revision 453203) +++ head/devel/android-tools-fastboot-devel/files/patch-libsparse_sparse__read.cpp (nonexistent) @@ -1,10 +0,0 @@ ---- libsparse/sparse_read.cpp.orig 2017-06-20 10:50:27 UTC -+++ libsparse/sparse_read.cpp -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include // memset - #include - - #include Property changes on: head/devel/android-tools-fastboot-devel/files/patch-libsparse_sparse__read.cpp ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property