>>>>> Joey Hess <jo...@debian.org> writes:

    > Vincent Ladeuil wrote:
    >> But, the option name is now --block-list instead of --block-split.

    > Won't use of this option cause the paranoia check to fail when
    > reproducing the xz file, unless it's whitelisted there?

Ouch. Dang, I thought my tests covered that, obviously not :-/

Fixed (and also added --check={crc64,none} while I was there).

    > (Also, changelog,

Done in the attached patch ?

    > git commit etc would be useful.)

Not sure what you mean here, I'm using bzr (based on
bzr+ssh://bazaar.launchpad.net/+branch/pristine-tar/) not git :-}

https://code.launchpad.net/~vcs-imports/pristine-tar/trunk is an import
from git://git.kitenet.net/pristine-tar/ though so there should be a
way...

In the mean time, I've pushed my branch at
bzr+ssh://bazaar.launchpad.net/~vila/pristine-tar/677250-parse-xz or
https://code.launchpad.net/~vila/pristine-tar/677250-parse-xz/ for human
readers.

I'm also quite a noob at packaging but I'm eager to learn...

    Vincent

P.S.: I'll be in vacations for a week starting tonight.

   modified      debian/changelog
   modified      pristine-xz
                                                                        

=== modified file 'debian/changelog'
--- debian/changelog	2012-06-19 13:28:41 +0000
+++ debian/changelog	2012-07-12 06:52:07 +0000
@@ -1,9 +1,8 @@
 pristine-tar (1.26) UNRELEASED; urgency=low
 
   * pristine-xz: Use xz --robot to extract information from xz files,
-    avoiding the need to do more expensive guessing. Will also later
-    allow supporting files needing --block-split (once upstream xz
-    provides that option; a patch has been submitted).
+    avoiding the need to do more expensive guessing. Support --block-list
+    when available to reproduce multi blocks files.
     Closes: #677250 Thanks, Vincent Ladeuil
 
  -- Joey Hess <jo...@debian.org>  Tue, 19 Jun 2012 09:24:30 -0400

=== modified file 'pristine-xz'
--- pristine-xz	2012-06-19 13:28:41 +0000
+++ pristine-xz	2012-07-12 07:33:57 +0000
@@ -168,7 +168,7 @@
 sub predict_xz_args {
 	my ($xz) = @_;
 	my $presets = undef;
-	my $block_split = undef;
+	my $block_list = undef;
 	my $blocks = $xz->{blocks};
 	if (scalar(@$blocks)) {
 		# There is at least one block. We assume the same compression
@@ -199,13 +199,13 @@
 		}
 		if (scalar(@$blocks) > 1) {
 			# Gather the block uncompressed sizes
-			$block_split = join(',', map {$_->{uncompressed_size}}
+			$block_list = join(',', map {$_->{uncompressed_size}}
 					    @$blocks);
 		}
 	}
-	# FIXME: none is missing
 	my %check_kwd_of = 
-		(CRC32 => 'crc32',
+		(None => 'none',
+		 CRC32 => 'crc32',
 		 CRC64 => 'crc64',
 		 'SHA-256' => 'sha256',
 		);
@@ -215,11 +215,8 @@
 
 	my $possible_args = [];
 	my $common = ["--check=$check_kwd", "-z"];
-	# FIXME: --block-split is not (yet) part of xz-utils upstream
-	if (0 && defined($block_split)) {
-		# We put the block list in front of the parameters to make it
-		# easier to filter it later.
-		unshift @$common, "--block-split=$block_split";
+	if (defined($block_list)) {
+		unshift @$common, "--block-list=$block_list";
 	}
 	foreach my $preset (@$presets) {
 		push @$possible_args, [@$common, "-$preset"];
@@ -350,8 +347,11 @@
 
 		next if $param=~/^(-[0-9]e?)$/;
 		next if $param eq '-z';
+		next if $param eq '--check=none';
 		next if $param eq '--check=crc32';
+		next if $param eq '--check=crc64';
 		next if $param eq '--check=sha256';
+		next if $param=~/^(--block-list=[0-9,]+)$/;
 		die "paranoia check failed on params from delta (@params)";
 	}
 	@params=split(' ', $delta->{params});


Reply via email to