Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package android-tools for openSUSE:Factory checked in at 2026-09-22 20:52:30 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/android-tools (Old) and /work/SRC/openSUSE:Factory/.android-tools.new.383539 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "android-tools" Tue Sep 22 20:52:30 2026 rev:30 rq:1379725 version:37.0.0 Changes: -------- --- /work/SRC/openSUSE:Factory/android-tools/android-tools.changes 2026-08-09 21:46:19.920764527 +0200 +++ /work/SRC/openSUSE:Factory/.android-tools.new.383539/android-tools.changes 2026-09-22 20:52:55.453459667 +0200 @@ -1,0 +2,13 @@ +Tue Sep 15 10:02:50 UTC 2026 - [email protected] + +- Add fix-rust-based-mDNS-backend.patch + * Add option to enable new Rust based mDNS backend +- Add fix-protobuf-36-absl-log-macros.patch + * adb: keep libbase logging macros after protobuf includes +- Add vendor.tar.zst for rust based mDNS backend +- Add prepare.sh - helper script for creating vendor.tar.zst + (required until the next version includes PR 209) +- Create specpart with "Provides: bundled(rust-crate:_name_) = x.y" +- Remove fix-mdns-references.patch (obsolete) + +------------------------------------------------------------------- Old: ---- fix-mdns-references.patch New: ---- _service fix-protobuf-36-absl-log-macros.patch fix-rust-based-mDNS-backend.patch prepare.sh vendor.tar.zst ----------(Old B)---------- Old:- Create specpart with "Provides: bundled(rust-crate:_name_) = x.y" - Remove fix-mdns-references.patch (obsolete) ----------(Old E)---------- ----------(New B)---------- New: * Add option to enable new Rust based mDNS backend - Add fix-protobuf-36-absl-log-macros.patch * adb: keep libbase logging macros after protobuf includes New: - Add fix-rust-based-mDNS-backend.patch * Add option to enable new Rust based mDNS backend ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ android-tools.spec ++++++ --- /var/tmp/diff_new_pack.v8SMNx/_old 2026-09-22 20:52:57.072527549 +0200 +++ /var/tmp/diff_new_pack.v8SMNx/_new 2026-09-22 20:52:57.074527633 +0200 @@ -23,6 +23,11 @@ %bcond_with bundled_libfmt %bcond_with bundled_libusb %endif +%if 0%{?suse_version} < 1699 +%bcond_without bundled_corrosion +%else +%bcond_with bundled_corrosion +%endif Name: android-tools Version: 37.0.0 @@ -32,13 +37,20 @@ # https://developer.android.com/tools/releases/platform-tools URL: https://github.com/nmeum/android-tools Source0: %{url}/releases/download/%{version}/%{name}-%{version}.tar.xz -# PATCH-FIX-OPENSUSE fix-mdns-references.patch [email protected] -- Remove all references to mDNS from the man page -Patch0: fix-mdns-references.patch +Source1: vendor.tar.zst +Source99: prepare.sh +# PATCH-FEATURE-UPSTREAM fix-rust-based-mDNS-backend.patch -- based on PR 209 +Patch0: fix-rust-based-mDNS-backend.patch +# PATCH-FIX-OPENSUSE fix-protobuf-36-absl-log-macros.patch -- based on arch linux patch +# https://gitlab.archlinux.org/archlinux/packaging/packages/android-tools/-/raw/03fecd370e9633927b8157ab94a7db11e7b8cf16/protobuf-36-absl-log-macros.patch +Patch1: fix-protobuf-36-absl-log-macros.patch +BuildRequires: cargo BuildRequires: cmake >= 3.12 BuildRequires: llvm-gold BuildRequires: ninja BuildRequires: pkgconfig BuildRequires: python-rpm-macros +BuildRequires: zstd BuildRequires: pkgconfig(gtest) BuildRequires: pkgconfig(libbrotlicommon) BuildRequires: pkgconfig(liblz4) @@ -57,10 +69,11 @@ Provides: adb = 1.0.41 Provides: avbtool = 1.4.0 Provides: sload_f2fs = 1.16.0 -Provides: bundled(boringssl) +Provides: bundled(boringssl) = 0.20260113.d32c35e ExcludeArch: ppc ppc64 s390x %if 0%{?suse_version} < 1600 -BuildRequires: clang15 +BuildRequires: gcc11 +BuildRequires: gcc11-PIE BuildRequires: gcc11-c++ BuildRequires: python311-base Requires: python311-base @@ -69,6 +82,9 @@ BuildRequires: python3-base Requires: python3-base %endif +%if %{without bundled_corrosion} +BuildRequires: cmake(Corrosion) >= 0.6.1 +%endif %if %{with bundled_libfmt} Provides: bundled(fmt) = 12.0.0 %else @@ -101,7 +117,7 @@ This package contains the Android dynamic partition tools. %prep -%autosetup -p1 +%autosetup -a1 -p1 # fix empty adb man page title %define man_date %(LC_ALL=C date -u -d@$SOURCE_DATE_EPOCH '+%%B %%Y') @@ -112,8 +128,8 @@ %define __builder ninja %cmake \ %if 0%{?suse_version} < 1600 - -DCMAKE_C_COMPILER=clang-15 \ - -DCMAKE_CXX_COMPILER=clang++-15 \ + -DCMAKE_C_COMPILER=gcc-11 \ + -DCMAKE_CXX_COMPILER=g++-11 \ %else -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ @@ -121,6 +137,10 @@ %ifarch %{ix86} -DOPENSSL_NO_ASM=ON \ %endif + -DANDROID_TOOLS_ADB_ENABLE_MDNS=ON \ +%if %{with bundled_corrosion} + -DANDROID_TOOLS_USE_BUNDLED_CORROSION=ON \ +%endif %if %{with bundled_libfmt} -DANDROID_TOOLS_USE_BUNDLED_FMT=ON \ %endif @@ -131,6 +151,17 @@ -DBUILD_SHARED_LIBS=OFF %cmake_build +# create specpart with "Provides: bundled(rust-crate:_name_) = x.y.z" +# (based in part on fedora's %%cargo_vendor_manifest) +pushd ../vendor/adb/client/adbmdns +CARGO_HOME=.cargo cargo tree --workspace --offline --edges normal,build \ + --no-dedupe --all-features --prefix none --format "{p}" \ + | grep -v "$(pwd)" | sed -e "s: (proc-macro)::" | sort -u \ + | sed -E -e 's/^(.*) v(.*)$/Provides: bundled(rust-crate:\1) =\n\2/' \ + | sed -e '1n;s/-/_/g;n' | sed -e 'N;s/\n/ /' | tee rust-crate.specpart +test -d "%{?specpartsdir}" && cp -p rust-crate.specpart %{specpartsdir} +popd + %install %cmake_install @@ -140,6 +171,7 @@ # fix non-executable-script chmod 0755 %{buildroot}%{_datadir}/%{name}/mkbootimg/gki/generate_gki_certificate.py +# note: check when support for Leap < 16.0 (sle?) can be removed (eol) # fix env-script-interpreter (Leap < 16.0 requires special handling) %if 0%{?suse_version} < 1600 %define python3_fix_shebang_path(+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-=) \ ++++++ _service ++++++ <services> <service name="download_files" mode="manual"/> <service name="cargo_vendor" mode="manual"> <param name="src">android-tools-*.tar.xz</param> <param name="custom-root">vendor/adb/client/adbmdns</param> <param name="update">true</param> <param name="filter">true</param> </service> </services> ++++++ fix-protobuf-36-absl-log-macros.patch ++++++ >From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Felix Yan <[email protected]> Date: Thu, 27 Aug 2026 16:00:00 +0800 Subject: [PATCH] adb: keep libbase logging macros after protobuf includes Protobuf 36's descriptor.h includes absl/log/log.h, which defines the short LOG and VLOG macros. Several adb sources include generated protobuf headers after adb's libbase logging/trace headers; those protobuf headers then replace adb's macros and make adb_trace.h's LOG(DEBUG) expand as Abseil logging, where DEBUG is not a valid severity. sysdeps.h is the first include for most adb translation units. Extend its existing protobuf-first include to cover descriptor.h as well, so Abseil's short logging macros are seen before android-base/logging.h and adb_trace.h install adb's macros. Include sysdeps.h first from mdns_tracker.cpp too, matching the rest of adb host sources. This keeps adb's logging behavior intact and avoids per-include macro save/restore blocks. --- vendor/adb/client/mdns_tracker.cpp | 2 ++ vendor/adb/sysdeps.h | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/vendor/adb/client/mdns_tracker.cpp b/vendor/adb/client/mdns_tracker.cpp index 92ef35086b18..0f21f5054164 100644 --- a/vendor/adb/client/mdns_tracker.cpp +++ b/vendor/adb/client/mdns_tracker.cpp @@ -14,6 +14,8 @@ * limitations under the License. */ +#include "sysdeps.h" + #include "mdns_tracker.h" #include <list> diff --git a/vendor/adb/sysdeps.h b/vendor/adb/sysdeps.h index 970e7cf27b4d..da2a8830317e 100644 --- a/vendor/adb/sysdeps.h +++ b/vendor/adb/sysdeps.h @@ -24,9 +24,12 @@ # undef _WIN32 #endif -// Include this protobuf header first, because it uses some write() calls -// that we will redefine later. Not all modules that include sysdeps.h use -// protobufs, so only include it if it exists. +// Include protobuf headers first, because they expose Abseil's LOG/VLOG macros +// and use some write() calls that we will redefine later. Not all modules that +// include sysdeps.h use protobufs, so only include them if they exist. +#if __has_include("google/protobuf/descriptor.h") +#include "google/protobuf/descriptor.h" +#endif #if __has_include("google/protobuf/io/coded_stream.h") #include "google/protobuf/io/coded_stream.h" #endif ++++++ fix-rust-based-mDNS-backend.patch ++++++ ++++ 4447 lines (skipped) ++++++ prepare.sh ++++++ #!/usr/bin/bash # # sudo zypper in osc obs-service-cargo # f=android-tools-37.0.0 rm -rf ${f} tar xf ${f}.tar.xz patch -p1 -d ${f} -i ../fix-rust-based-mDNS-backend.patch mv -v ${f}.tar.xz ${f}.tar.xz.org tar cfJ ${f}.tar.xz ${f} rm -rf ${f} osc service manualrun cargo_vendor rm -v ${f}.tar.xz mv -v ${f}.tar.xz.org ${f}.tar.xz
