Subject: Re: bug#26316: Enable threaded compression of source tarballs

From: Kei Kebreau <[email-masked]>
Date: Fri, 31 Mar 2017 19:56:18 -0400

Leo Famulari <[email-masked]> writes:

> On Fri, Mar 31, 2017 at 02:15:36PM -0400, Kei Kebreau wrote:
>> Leo Famulari <[email-masked]> writes:
>> > Subject: [PATCH] packages: Enable threaded compression of source tarballs.
>
>> > -                                      "cvfa" #$output
>> > +                                      "cvf" #$output
>> > +                                      ;; The bootstrap xz does not support
>> > + ;; threaded compression (introduced in
>> > + ;; 5.2.0), but it ignores the extra flag.
>> > + (string-append "--use-compress-program="
>> > + #+xz "/bin/xz --threads=0")
>
> One question I have is about the removal of 'cvfa'. Here is the relevant
> documentation:
>
> -a, --auto-compress
>              Use archive suffix to determine the compression
> 	     program.
>
> AFAICT, we only build XZ archives, so it's okay to remove 'a' and
> hard-code the use of xz. Is that correct?
>

The surrounding code definitely seems to suggest that. Reading "up" the
code from the gexp->derivation call I can find hardcoded xz usage in the
tarxz-name procedure and this bit:

(mlet %store-monad ((tar ->     (lookup-input "tar"))
                  ->(xz ->      (lookup-input "xz"))
  (only xz here!)/  (patch ->   (lookup-input "patch"))
                    (locales -> (lookup-input "locales"))
                    (decomp ->  (lookup-input decompression-type))
                    (patches    (sequence %store-monad
                                          (map instantiate-patch patches))))

>> >                                        ;; avoid non-determinism in
>> > the archive
>> >                                        "--mtime=@0"
>> >                                        "--owner=root:0"
>> 
>> LGTM.
>
> Thanks! This does mean rebuilding the world, so we'd need to save it for
> the next core-updates cycle.