Package: src:pristine-tar
Version: 1.50
Severity: important
Tags: sid
control: affects -1 src:xz-utils

xz-utils 5.5.1alpha is currently in experimental.
A user visible change is that xz will by default use the "multi threaded
mode" (-T1 -> -T0). This means that the archive will contain the block
size information (cu flag in xz -lvv) and so the resulting archive is no
longer binary identical comparing with the previous versions.

The patch attached adds -T1 argument if nothing was set. It also tries
to set the paramter while creating the delta (I hope it does that).

Sebastian
>From ea404fcd433147bd8328836fe96928b8643a56f6 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <sebast...@breakpoint.cc>
Date: Mon, 5 Feb 2024 22:10:07 +0100
Subject: [PATCH] pristine-xz: Add -T1 if nothing was specified.

Signed-off-by: Sebastian Andrzej Siewior <sebast...@breakpoint.cc>
---
 pristine-xz | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/pristine-xz b/pristine-xz
index 48f9fd363391..2046578db82a 100755
--- a/pristine-xz
+++ b/pristine-xz
@@ -256,11 +256,12 @@ sub predict_xz_args {
     # (even when --block-size or --block-list is specified)
     if ($xz->{summary}->{size_in_blocks} eq 'yes') {
       # All -T values >1 produce the same output.
-      # 0 behaves the same as 1 on single core systems.
       # Use as many threads as we have CPU affinities, with a minimum of 2.
       my @affinities = Sys::CpuAffinity::getAffinity($$);
       my $threads = @affinities > 2 ? @affinities : 2;
       push @$common, "-T$threads";
+    } else {
+      push @$common, "-T1";
     }
   }
   my $possible_args = [];
@@ -402,6 +403,7 @@ sub genxz {
   }
 
   my @params = split(' ', $delta->{params});
+  my $threads_set = 0;
   while (@params) {
     my $param = shift @params;
 
@@ -415,13 +417,22 @@ sub genxz {
       next if $param eq '--check=sha256';
       next if $param =~ /^(--block-list=[0-9,]+)$/;
       next if $param =~ /^-T[0-9]+$/;
+      if ($param =~ /^-T[0-9]+$/) {
+			$threads_set = 1;
+			next;
+		}
     } elsif ($delta->{program} eq 'pixz') {
       next if $param eq '-t';
     }
     die "paranoia check failed on params from delta ($param)";
   }
+
   @params = split(' ', $delta->{params});
 
+  if (!$threads_set) {
+    push @params, '-T1';
+  }
+
   doit($program, @params, $file);
 }
 
-- 
2.43.0

Reply via email to