diff mbox series

[bug#48173] maint: Do not xz-compress ISO images.

Message ID 20210502211648.5830-1-ludo@gnu.org
State Accepted
Headers show
Series [bug#48173] maint: Do not xz-compress ISO images. | expand

Checks

Context Check Description
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

Ludovic Courtès May 2, 2021, 9:16 p.m. UTC
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.
---
 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’.

Comments

Julien Lepiller May 3, 2021, 12:15 a.m. UTC | #1
Le Sun,  2 May 2021 23:16:48 +0200,
Ludovic Courtès <ludo@gnu.org> a écrit :

> 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?

> ---
>  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 :)

>  
>  @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.

> 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?
François May 3, 2021, 7:50 a.m. UTC | #2
On Mon, May 03, 2021 at 02:15:22AM +0200, Julien Lepiller wrote:
> 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)
Ludovic Courtès May 3, 2021, 3:39 p.m. UTC | #3
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?

Thanks for commenting!

Ludo’.
Ludovic Courtès May 3, 2021, 3:54 p.m. UTC | #4
Julien Lepiller <julien@lepiller.eu> skribis:

> 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’.
Julien Lepiller May 3, 2021, 4:35 p.m. UTC | #5
Le 3 mai 2021 11:39:03 GMT-04:00, "Ludovic Courtès" <ludo@gnu.org> a écrit :
>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 :)

>
>Thanks for commenting!
>
>Ludo’.
Maxim Cournoyer May 4, 2021, 3:35 a.m. UTC | #6
Hi,

Julien Lepiller <julien@lepiller.eu> writes:

[...]

>>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
diff mbox series

Patch

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