Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package thin-provisioning-tools for 
openSUSE:Factory checked in at 2026-08-17 16:55:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/thin-provisioning-tools (Old)
 and      /work/SRC/openSUSE:Factory/.thin-provisioning-tools.new.1258 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "thin-provisioning-tools"

Mon Aug 17 16:55:33 2026 rev:36 rq:1371324 version:1.3.3

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/thin-provisioning-tools/thin-provisioning-tools.changes
  2026-06-25 10:51:59.774554017 +0200
+++ 
/work/SRC/openSUSE:Factory/.thin-provisioning-tools.new.1258/thin-provisioning-tools.changes
        2026-08-17 16:55:37.064900622 +0200
@@ -1,0 +2,18 @@
+Sat Aug 15 20:08:48 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Refresh the vendored Rust crates: 62 changed version, two
+  added (jiff-core, palette_math), three dropped (fast-srgb8 and
+  the proc-macro-error2 pair); upstream sources are unchanged.
+- Re-derive License from the crates actually linked into the
+  shipped binary: Apache-2.0 AND GPL-3.0-only AND MIT AND
+  MPL-2.0 AND Unicode-3.0, and install each linked crate's
+  licence text next to COPYING.
+- Move %check into a separate "test" multibuild flavour, so a
+  test failure no longer blocks the binaries that the 88
+  dependent packages build against.
+- Add thin-provisioning-tools-tests-clap-single-alias.patch: the
+  refreshed clap renders "alias" instead of "aliases" for a single
+  alias, which broke two hardcoded thin_delta help assertions
+  (gh#jthornber/thin-provisioning-tools#328).
+
+-------------------------------------------------------------------

New:
----
  _multibuild
  thin-provisioning-tools-tests-clap-single-alias.patch

----------(New B)----------
  New:  dependent packages build against.
- Add thin-provisioning-tools-tests-clap-single-alias.patch: the
  refreshed clap renders "alias" instead of "aliases" for a single
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ thin-provisioning-tools.spec ++++++
--- /var/tmp/diff_new_pack.FqOUUX/_old  2026-08-17 16:55:38.629955709 +0200
+++ /var/tmp/diff_new_pack.FqOUUX/_new  2026-08-17 16:55:38.635955920 +0200
@@ -16,38 +16,127 @@
 #
 
 
-Name:           thin-provisioning-tools
+%global flavor @BUILD_FLAVOR@%{nil}
+%if "%{flavor}" == "test"
+%define psuffix -test
+%global debug_package %{nil}
+%bcond_without test
+%else
+%define psuffix %{nil}
+%bcond_with test
+%endif
+%define origname thin-provisioning-tools
+Name:           %{origname}%{psuffix}
 Version:        1.3.3
 Release:        0
 Summary:        Thin Provisioning Tools
-License:        GPL-3.0-only
+# Legal-Review-Notice: upstream itself is GPL-3.0-only (COPYING), but every
+# shipped tool is a symlink to one statically linked Rust binary
+# (pdata_tools), so the binary also contains the vendored crates.
+# Re-derived on this re-vendor with "cargo tree --offline -p thinp -e normal"
+# over the refreshed vendor.tar.zst: 77 of the 212 vendored crates are
+# actually linked. Build-only and dev-only crates are deliberately excluded
+# because their code is not in the binary - notably bindgen (BSD-3-Clause),
+# clang-sys (Apache-2.0) and libloading (ISC), which devicemapper-sys uses
+# only to generate FFI bindings at build time, and r-efi, whose
+# LGPL-2.1-or-later option is UEFI-target-only and absent from the Linux
+# graph.
+# Where a crate offers a choice we elect MIT: it is on offer from every
+# dual/multi-licensed crate in the linked set, so a single election covers
+# all of them and no Zlib, 0BSD, BSD-2-Clause, Unlicense or BSL-1.0
+# obligation is taken on. Only the unavoidable licences are declared:
+#  - GPL-3.0-only  upstream itself
+#  - MIT           12 crates offering nothing else (console, data-encoding,
+#                  indicatif, libudev-sys, nix, nom, quick-xml, retry,
+#                  simd-adler32, strsim, udev, unit-prefix), plus every
+#                  crate for which MIT was elected
+#  - Apache-2.0    exitcode 1.1.2, which offers no alternative
+#  - MPL-2.0       devicemapper 0.34.8 and devicemapper-sys 0.3.3, reached
+#                  through the thin_migrate tool
+#  - Unicode-3.0   unicode-ident 1.0.24, whose expression is an AND
+# Compatibility, flagged rather than silently assumed: Apache-2.0 and
+# MPL-2.0 are each one-way compatible with GPLv3, so the combined binary is
+# distributable and is effectively GPL-3.0-only as a whole; the reverse
+# direction is not claimed. MPL-2.0 section 3.2 source availability is
+# satisfied because the complete vendor.tar.zst ships in the src.rpm.
+# The licence text of every linked crate that ships one is installed below
+# %%{_defaultlicensedir} (crc32c 0.6.8 declares MIT OR Apache-2.0 but ships
+# no licence file of its own).
+License:        Apache-2.0 AND GPL-3.0-only AND MIT AND MPL-2.0 AND Unicode-3.0
 URL:            https://github.com/jthornber/thin-provisioning-tools/
-Source0:        %{name}-%{version}.tar.zst
+Source0:        %{origname}-%{version}.tar.zst
 Source1:        vendor.tar.zst
+# PATCH-FIX-UPSTREAM thin-provisioning-tools-tests-clap-single-alias.patch 
gh#jthornber/thin-provisioning-tools#328
+# clap 4.6.2 renders "alias" rather than "aliases" for an option with
+# exactly one alias, and tests/thin_delta.rs hardcodes the old wording.
+# Upstream CI never sees it because it builds from the committed
+# Cargo.lock, which pins clap 4.6.1; we re-resolve (cargo_vendor
+# update=true), so we get the newer clap and the two help assertions fail.
+Patch0:         thin-provisioning-tools-tests-clap-single-alias.patch
 BuildRequires:  cargo-packaging
 BuildRequires:  clang-devel
 BuildRequires:  pkgconfig
-BuildRequires:  suse-module-tools
 BuildRequires:  pkgconfig(devmapper)
 BuildRequires:  pkgconfig(libudev)
+# Everything below is main-flavour only. The test flavour builds no binary
+# package at all, so guard the declarations themselves and not just %%files:
+# rpmbuild would drop a package that has no %%files, but OBS reads the
+# declarations when it schedules, and an unguarded one would advertise a
+# competing provider of thin-provisioning-tools from the test flavour.
+%if %{without test}
+BuildRequires:  fdupes
+BuildRequires:  suse-module-tools
 Requires(post): coreutils
 Requires(postun): coreutils
 Conflicts:      device-mapper < 1.02.115
+%endif
 
 %description
 A suite of tools for thin provisioning on Linux.
 
 %prep
-%autosetup -a1
+%autosetup -p1 -a1 -n %{origname}-%{version}
 
 %build
+%if %{without test}
 %{cargo_build}
+%endif
 
+%if %{with test}
+%check
+# %%check was 267s of a 376s build (71%%), and 88 packages build-depend on
+# this, so a test flake stalled a large fan-out. It now runs in its own
+# flavour, which builds no binary package. Note there is no %%build here on
+# purpose: cargo test compiles in the test profile anyway, so running
+# %%cargo_build first would only add a throwaway release compile.
+%{cargo_test}
+%endif
+
+%if %{without test}
 %install
 make install STRIP="/bin/true" MANPATH=%{buildroot}%{_mandir} 
BINDIR=%{buildroot}%{_sbindir}
 
-%check
-%{cargo_test}
+# The binary statically links the vendored crates, and MIT and Apache-2.0
+# both require their notice to travel with it, while upstream's COPYING
+# covers only the GPL-3.0 part. Ship the licence text of each crate that is
+# genuinely linked; the list is derived at build time so it cannot go stale
+# across a re-vendor. Installed straight into the buildroot rather than
+# staged for %%license, so that %%fdupes can collapse the many byte-identical
+# copies of the stock Apache-2.0 and MIT texts (~500 KB of pure duplication
+# otherwise, which rpmlint scores as files-duplicated-waste).
+install -Dpm 0644 COPYING %{buildroot}%{_defaultlicensedir}/%{origname}/COPYING
+cargo tree --offline --quiet -e normal --prefix none \
+    | awk 'NF >= 2 { print $1 "-" substr($2, 2) }' | sort -u > 
vendor-licenses.list
+test -s vendor-licenses.list
+while read -r crate; do
+    test -d "vendor/$crate" || continue
+    for f in "vendor/$crate"/LICENSE* "vendor/$crate"/COPYING* \
+             "vendor/$crate"/NOTICE* "vendor/$crate"/UNLICENSE*; do
+        test -f "$f" && install -Dpm 0644 "$f" \
+            
"%{buildroot}%{_defaultlicensedir}/%{origname}/vendor/$crate/${f##*/}"
+    done
+done < vendor-licenses.list
+%fdupes %{buildroot}%{_defaultlicensedir}/%{origname}/vendor
 
 %post
 %{?regenerate_initrd_post}
@@ -60,7 +149,7 @@
 
 %files
 %doc README.md
-%license COPYING
+%license %{_defaultlicensedir}/%{origname}
 %{_sbindir}/cache_check
 %{_sbindir}/cache_dump
 %{_sbindir}/cache_metadata_size
@@ -106,4 +195,5 @@
 %{_mandir}/man8/thin_restore.8%{?ext_man}
 %{_mandir}/man8/thin_rmap.8%{?ext_man}
 %{_mandir}/man8/thin_trim.8%{?ext_man}
+%endif
 

++++++ _multibuild ++++++
<multibuild>
  <flavor>test</flavor>
</multibuild>

++++++ thin-provisioning-tools-tests-clap-single-alias.patch ++++++
diff --git a/tests/thin_delta.rs b/tests/thin_delta.rs
index eb17811..26452f0 100644
--- a/tests/thin_delta.rs
+++ b/tests/thin_delta.rs
@@ -23,8 +23,8 @@ Options:
   -m, --metadata-snap    Use metadata snapshot
       --root1 <BLOCKNR>  The root block for the first thin volume to diff
       --root2 <BLOCKNR>  The root block for the second thin volume to diff
-      --thin1 <DEV_ID>   The numeric identifier for the first thin volume to 
diff [aliases: --snap1]
-      --thin2 <DEV_ID>   The numeric identifier for the second thin volume to 
diff [aliases: --snap2]
+      --thin1 <DEV_ID>   The numeric identifier for the first thin volume to 
diff [alias: --snap1]
+      --thin2 <DEV_ID>   The numeric identifier for the second thin volume to 
diff [alias: --snap2]
   -V, --version          Print version
       --verbose          Provide extra information on the mappings";
 

++++++ vendor.tar.zst ++++++
/work/SRC/openSUSE:Factory/thin-provisioning-tools/vendor.tar.zst 
/work/SRC/openSUSE:Factory/.thin-provisioning-tools.new.1258/vendor.tar.zst 
differ: char 7, line 1

Reply via email to