[PATCH] maint: Do not xz-compress ISO images.

  • Done
  • quality assurance status badge
Details
4 participants
  • François
  • Julien Lepiller
  • Ludovic Courtès
  • Maxim Cournoyer
Owner
unassigned
Submitted by
Ludovic Courtès
Severity
normal
L
L
Ludovic Courtès wrote on 2 May 2021 23:16
(address . guix-patches@gnu.org)
20210502211648.5830-1-ludo@gnu.org
The xz-compressed image is 23% smaller than the original ISO image (with
built-in zlib compression), but the extra decompression step is
unconventional and often a hindrance for users. See discussion at

* Makefile.am (release): Do not compress ISO images.
* doc/guix.texi (USB Stick and DVD Installation): Remove ".xz" suffix
from URL and file name.
(Copying to a USB Stick, Burning on a DVD): Remove introductory words,
@enumerate, and first item.
---
Makefile.am | 6 +++---
doc/guix.texi | 30 +++---------------------------
2 files changed, 6 insertions(+), 30 deletions(-)

Hi!

This takes the simple step of providing plain ISOs only (rather than
.iso + .iso.xz as some suggested).

One advantage is that, unless I’m mistaken, this can be done without
breaking string freeze.

We’ll also have to update https://guix.gnu.org/en/download on the
release day.

Thoughts?

Ludo’.

Toggle diff (91 lines)
diff --git a/Makefile.am b/Makefile.am
index 8d059eb033..623b1c497f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -886,9 +886,9 @@ release: dist-with-updated-version all
echo "failed to produced Guix installation image for $$system" >&2 ; \
exit 1 ; \
fi ; \
- xz < "$$image" > "$(releasedir)/$(GUIX_SYSTEM_IMAGE_BASE).$$system.iso.xz.tmp" ; \
- mv "$(releasedir)/$(GUIX_SYSTEM_IMAGE_BASE).$$system.iso.xz.tmp" \
- "$(releasedir)/$(GUIX_SYSTEM_IMAGE_BASE).$$system.iso.xz" ; \
+ cp "$$image" "$(releasedir)/$(GUIX_SYSTEM_IMAGE_BASE).$$system.iso.tmp" ; \
+ mv "$(releasedir)/$(GUIX_SYSTEM_IMAGE_BASE).$$system.iso.tmp" \
+ "$(releasedir)/$(GUIX_SYSTEM_IMAGE_BASE).$$system.iso" ; \
done
# Generate the VM images.
for system in $(GUIX_SYSTEM_VM_SYSTEMS) ; do \
diff --git a/doc/guix.texi b/doc/guix.texi
index 2fe7ad3a2a..3460c58cbc 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -2099,7 +2099,7 @@ about their support in GNU/Linux.
An ISO-9660 installation image that can be written to a USB stick or
burnt to a DVD can be downloaded from
-@indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.xz},
+@indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso},
where you can replace @code{x86_64-linux} with one of:
@table @code
@@ -2115,8 +2115,8 @@ Make sure to download the associated @file{.sig} file and to verify the
authenticity of the image against it, along these lines:
@example
-$ wget @value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.xz.sig
-$ gpg --verify guix-system-install-@value{VERSION}.x86_64-linux.iso.xz.sig
+$ wget @value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.sig
+$ gpg --verify guix-system-install-@value{VERSION}.x86_64-linux.iso.sig
@end example
If that command fails because you do not have the required public key,
@@ -2140,17 +2140,6 @@ It is meant to be copied @emph{as is} to a large-enough USB stick or DVD.
@unnumberedsubsec Copying to a USB Stick
-To copy the image to a USB stick, follow these steps:
-
-@enumerate
-@item
-Decompress the image using the @command{xz} command:
-
-@example
-xz -d guix-system-install-@value{VERSION}.x86_64-linux.iso.xz
-@end example
-
-@item
Insert a USB stick of 1@tie{}GiB or more into your machine, and determine
its device name. Assuming that the USB stick is known as @file{/dev/sdX},
copy the image with:
@@ -2161,21 +2150,9 @@ sync
@end example
Access to @file{/dev/sdX} usually requires root privileges.
-@end enumerate
@unnumberedsubsec Burning on a DVD
-To copy the image to a DVD, follow these steps:
-
-@enumerate
-@item
-Decompress the image using the @command{xz} command:
-
-@example
-xz -d guix-system-install-@value{VERSION}.x86_64-linux.iso.xz
-@end example
-
-@item
Insert a blank DVD into your machine, and determine
its device name. Assuming that the DVD drive is known as @file{/dev/srX},
copy the image with:
@@ -2185,7 +2162,6 @@ growisofs -dvd-compat -Z /dev/srX=guix-system-install-@value{VERSION}.x86_64-lin
@end example
Access to @file{/dev/srX} usually requires root privileges.
-@end enumerate
@unnumberedsubsec Booting
--
2.31.1
L
L
Ludovic Courtès wrote on 3 May 2021 00:34
control message for bug #47297
(address . control@debbugs.gnu.org)
87tunkzrxe.fsf@gnu.org
block 47297 by 48173
quit
J
J
Julien Lepiller wrote on 3 May 2021 02:15
Re: [PATCH] maint: Do not xz-compress ISO images.
(name . Ludovic Courtès)(address . ludo@gnu.org)
20210503021522.2e33ac49@tachikoma.lepiller.eu
Le Sun, 2 May 2021 23:16:48 +0200,
Ludovic Courtès <ludo@gnu.org> a écrit :

Toggle quote (11 lines)
> The xz-compressed image is 23% smaller than the original ISO image
> (with built-in zlib compression), but the extra decompression step is
> unconventional and often a hindrance for users. See discussion at
> <https://lists.gnu.org/archive/html/guix-devel/2021-04/msg00497.html>.
>
> * Makefile.am (release): Do not compress ISO images.
> * doc/guix.texi (USB Stick and DVD Installation): Remove ".xz" suffix
> from URL and file name.
> (Copying to a USB Stick, Burning on a DVD): Remove introductory words,
> @enumerate, and first item.

I have to ask about the patch title: what does "maint" mean?

Toggle quote (59 lines)
> ---
> Makefile.am | 6 +++---
> doc/guix.texi | 30 +++---------------------------
> 2 files changed, 6 insertions(+), 30 deletions(-)
>
> Hi!
>
> This takes the simple step of providing plain ISOs only (rather than
> .iso + .iso.xz as some suggested).
>
> One advantage is that, unless I’m mistaken, this can be done without
> breaking string freeze.
>
> We’ll also have to update <https://guix.gnu.org/en/download> on the
> release day.
>
> Thoughts?
>
> Ludo’.
>
> diff --git a/Makefile.am b/Makefile.am
> index 8d059eb033..623b1c497f 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -886,9 +886,9 @@ release: dist-with-updated-version all
> echo "failed to produced Guix installation image for
> $$system" >&2 ; \ exit 1 ;
> \ fi ;
> \
> - xz < "$$image" >
> "$(releasedir)/$(GUIX_SYSTEM_IMAGE_BASE).$$system.iso.xz.tmp"
> ; \
> - mv
> "$(releasedir)/$(GUIX_SYSTEM_IMAGE_BASE).$$system.iso.xz.tmp"
> \
> -
> "$(releasedir)/$(GUIX_SYSTEM_IMAGE_BASE).$$system.iso.xz" ;
> \
> + cp "$$image"
> "$(releasedir)/$(GUIX_SYSTEM_IMAGE_BASE).$$system.iso.tmp" ; \
> + mv
> "$(releasedir)/$(GUIX_SYSTEM_IMAGE_BASE).$$system.iso.tmp"
> \
> + "$(releasedir)/$(GUIX_SYSTEM_IMAGE_BASE).$$system.iso"
> ; \ done
> # Generate the VM images.
> for system in $(GUIX_SYSTEM_VM_SYSTEMS) ; do
> \ diff --git a/doc/guix.texi b/doc/guix.texi
> index 2fe7ad3a2a..3460c58cbc 100644
> --- a/doc/guix.texi
> +++ b/doc/guix.texi
> @@ -2099,7 +2099,7 @@ about their support in GNU/Linux.
>
> An ISO-9660 installation image that can be written to a USB stick or
> burnt to a DVD can be downloaded from
> -@indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.xz},
> +@indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso},
> where you can replace @code{x86_64-linux} with one of:

Sorry, this actually breaks string freeze. Now for something like this,
we could grant an exception? It's not like it's too hard to fix, even
manually and even if you don't know the language :)

Toggle quote (14 lines)
>
> @table @code
> @@ -2115,8 +2115,8 @@ Make sure to download the associated
> @file{.sig} file and to verify the authenticity of the image against
> it, along these lines:
> @example
> -$ wget
> @value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.xz.sig
> -$ gpg --verify
> guix-system-install-@value{VERSION}.x86_64-linux.iso.xz.sig +$ wget
> @value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.sig
> +$ gpg --verify
> guix-system-install-@value{VERSION}.x86_64-linux.iso.sig @end example

Even that example actually breaks it: examples can contain comments
that should be translated, so po4a lets translators do whatever they
want with them. Again, it's easy to fix.

Toggle quote (16 lines)
> If that command fails because you do not have the required public
> key, @@ -2140,17 +2140,6 @@ It is meant to be copied @emph{as is} to
> a large-enough USB stick or DVD. @unnumberedsubsec Copying to a USB
> Stick
> -To copy the image to a USB stick, follow these steps:
> -
> -@enumerate
> -@item
> -Decompress the image using the @command{xz} command:
> -
> -@example
> -xz -d guix-system-install-@value{VERSION}.x86_64-linux.iso.xz
> -@end example
> -
> -@item

Now removing text is fine :)

LGTM, but what should we do about the strings?
F
F
François wrote on 3 May 2021 09:50
Re: [bug#48173] [PATCH] maint: Do not xz-compress ISO images.
(name . Julien Lepiller)(address . julien@lepiller.eu)
20210503075027.4egwuyvltjiaa7qv@noop.avalenn.eu
On Mon, May 03, 2021 at 02:15:22AM +0200, Julien Lepiller wrote:
Toggle quote (2 lines)
> LGTM, but what should we do about the strings?

sed -i 's/\.iso\.xz/.iso/g' po/doc/guix-manual.*.po

and add that to the patch�?

(notwithstanding some misunderstanding related to how translation works
as I know nothing about that)
L
L
Ludovic Courtès wrote on 3 May 2021 17:39
Re: bug#48173: [PATCH] maint: Do not xz-compress ISO images.
(name . Julien Lepiller)(address . julien@lepiller.eu)
87zgxbygh4.fsf_-_@gnu.org
Hi Julien,

Julien Lepiller <julien@lepiller.eu> skribis:

Toggle quote (14 lines)
>> --- a/doc/guix.texi
>> +++ b/doc/guix.texi
>> @@ -2099,7 +2099,7 @@ about their support in GNU/Linux.
>>
>> An ISO-9660 installation image that can be written to a USB stick or
>> burnt to a DVD can be downloaded from
>> -@indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.xz},
>> +@indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso},
>> where you can replace @code{x86_64-linux} with one of:
>
> Sorry, this actually breaks string freeze. Now for something like this,
> we could grant an exception? It's not like it's too hard to fix, even
> manually and even if you don't know the language :)

In what sense does it break the string freeze?

I understand translations would appear as below 100% on Weblate, but I
checked guix.{fr,es,de}.info and they all read well after this change.

Am I missing something?

Thanks for commenting!

Ludo’.
L
L
Ludovic Courtès wrote on 3 May 2021 17:54
(name . Julien Lepiller)(address . julien@lepiller.eu)
87v97zyfru.fsf_-_@gnu.org
Julien Lepiller <julien@lepiller.eu> skribis:

Toggle quote (2 lines)
> I have to ask about the patch title: what does "maint" mean?

It means “maintenance”. Some GNU packages use this convention to
categorize changes related to “maintenance” in a broad sense, things
that are not user-visible.

Thanks for paying attention. ;-)

Ludo’.
J
J
Julien Lepiller wrote on 3 May 2021 18:35
(name . Ludovic Courtès)(address . ludo@gnu.org)
AD4584FB-D80D-4559-BDA7-F2A6C6D9DA09@lepiller.eu
Le 3 mai 2021 11:39:03 GMT-04:00, "Ludovic Courtès" <ludo@gnu.org> a écrit :
Toggle quote (29 lines)
>Hi Julien,
>
>Julien Lepiller <julien@lepiller.eu> skribis:
>
>>> --- a/doc/guix.texi
>>> +++ b/doc/guix.texi
>>> @@ -2099,7 +2099,7 @@ about their support in GNU/Linux.
>>>
>>> An ISO-9660 installation image that can be written to a USB stick
>or
>>> burnt to a DVD can be downloaded from
>>>
>-@indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.xz},
>>>
>+@indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso},
>>> where you can replace @code{x86_64-linux} with one of:
>>
>> Sorry, this actually breaks string freeze. Now for something like
>this,
>> we could grant an exception? It's not like it's too hard to fix, even
>> manually and even if you don't know the language :)
>
>In what sense does it break the string freeze?
>
>I understand translations would appear as below 100% on Weblate, but I
>checked guix.{fr,es,de}.info and they all read well after this change.
>
>Am I missing something?

po4a is not that intelligent. The result will be either the old translated string, or the new English string.

But it's fine. We already have a similar change on version-1.3.0, so go ahead and push this, I'll take care of weblate :)

Toggle quote (4 lines)
>
>Thanks for commenting!
>
>Ludo’.
M
M
Maxim Cournoyer wrote on 4 May 2021 05:35
(name . Julien Lepiller)(address . julien@lepiller.eu)
87bl9rmarm.fsf_-_@gmail.com
Hi,

Julien Lepiller <julien@lepiller.eu> writes:

[...]

Toggle quote (13 lines)
>>In what sense does it break the string freeze?
>>
>>I understand translations would appear as below 100% on Weblate, but I
>>checked guix.{fr,es,de}.info and they all read well after this change.
>>
>>Am I missing something?
>
> po4a is not that intelligent. The result will be either the old
> translated string, or the new English string.
>
> But it's fine. We already have a similar change on version-1.3.0, so
> go ahead and push this, I'll take care of weblate :)

I've pushed this to version-1.3.0, along a slightly edited version of a
a diff Julien shared earlier that fixed an issue with building the doc
after recent changes.

Thank you both!

Closing.

Maxim
Closed
?