unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#40514] Should we shrink the installer by a gig or so?
@ 2020-04-08 20:56 Tobias Geerinckx-Rice via Guix-patches via
  2020-04-08 21:01 ` [bug#40514] [PATCH] vm: Transparently compress iso9660 images Tobias Geerinckx-Rice via Guix-patches via
  0 siblings, 1 reply; 4+ messages in thread
From: Tobias Geerinckx-Rice via Guix-patches via @ 2020-04-08 20:56 UTC (permalink / raw)
  To: 40514

[-- Attachment #1: Type: text/plain, Size: 1353 bytes --]

Guix,

I've met at least someone who was worried that Guix wouldn't 
support their System ‘because the installer fell back to text 
mode’.  They didn't mean nomodeset: obviously a 1.5-GiB ISO must 
be hiding a full desktop somewhere, not just the interface of a 
text-mode netinstaller image about 2.5% its total size:

  $ du -h Downloads/trisquel-netinst_8.0_amd64.iso
  37M	…

  $ du -h /gnu/store/l005v0ssz34gz5mrg3vpr51sq8sry8wp-image.iso
  1.5G	…

Now I'm not suggesting we add Gnome (yet), but how about reducing 
the size by 60% for 1.1.0?

  du -h /gnu/store/jcpg5wsflpymiq3vx929wq2cr0qbw44f-image.iso
  561M	…

Our CD image finally fits on a CD!  Remember those?  I try not to.

It also fits onto the ~100 1-‘GB’ USB drives I have in a box and 
can now finally give away as Guix installers.

Zisofs is a somewhat obscure, Linux-specific extension to Rock 
Ridge that transparently (de)compresses file data using zlib.  Our 
linux-libre already supports it.  As far as the system is 
concerned it's just a regular iso9660 file system.

Unlike squashfs (with which I'm currently playing) it requires 
zero further changes to the creation or boot process that could 
introduce new bugs.  Hence I'm hopeful that this can be tested and 
merged in time for the next release.

Kind regards,

T G-R

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [bug#40514] [PATCH] vm: Transparently compress iso9660 images.
  2020-04-08 20:56 [bug#40514] Should we shrink the installer by a gig or so? Tobias Geerinckx-Rice via Guix-patches via
@ 2020-04-08 21:01 ` Tobias Geerinckx-Rice via Guix-patches via
  2020-04-09 21:34   ` Danny Milosavljevic
  0 siblings, 1 reply; 4+ messages in thread
From: Tobias Geerinckx-Rice via Guix-patches via @ 2020-04-08 21:01 UTC (permalink / raw)
  To: 40514

* gnu/build/vm.scm (make-iso9660-image): Use the ‘--zisofs’ xorriso
filter at the highest compression settings for supported directories.
---
 gnu/build/vm.scm | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
index 79eed48c1f..972eb4bdf9 100644
--- a/gnu/build/vm.scm
+++ b/gnu/build/vm.scm
@@ -533,6 +533,24 @@ GRUB configuration and OS-DRV as the stuff in it."
                 ;; Set all timestamps to 1.
                 "-volume_date" "all_file_dates" "=1"
 
+                ;; ‘zisofs’ compression reduces the total image size by ~60%.
+                "-zisofs" "level=9:block_size=128k" ; highest compression
+                ;; It's transparent to our Linux-Libre kernel but not to GRUB.
+                ;; Don't compress the kernel, initrd, and other files read by
+                ;; grub.cfg, as well as common already-compressed file names.
+                "-find" "/" "-type" "f"
+                ;; XXX Even after "--" above, and despite documentation claiming
+                ;; otherwise, "-or" is stolen by grub-mkrescue which then chokes
+                ;; on it (as ‘-o …’) and dies.  Don't use "-or".
+                "-not" "-wholename" "/boot/*"
+                "-not" "-wholename" "/System/*"
+                "-not" "-name" "unicode.pf2"
+                "-not" "-name" "bzImage"
+                "-not" "-name" "*.gz"   ; initrd & all man pages
+                "-not" "-name" "*.png"  ; includes grub-image.png
+                "-exec" "set_filter" "--zisofs"
+                "--"
+
                 "-volid" (string-upcase volume-id)
                 (if volume-uuid
                     `("-volume_date" "uuid"
-- 
2.25.2

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [bug#40514] [PATCH] vm: Transparently compress iso9660 images.
  2020-04-08 21:01 ` [bug#40514] [PATCH] vm: Transparently compress iso9660 images Tobias Geerinckx-Rice via Guix-patches via
@ 2020-04-09 21:34   ` Danny Milosavljevic
  2020-04-10  0:02     ` bug#40514: " Tobias Geerinckx-Rice via Guix-patches via
  0 siblings, 1 reply; 4+ messages in thread
From: Danny Milosavljevic @ 2020-04-09 21:34 UTC (permalink / raw)
  To: 40514; +Cc: me

[-- Attachment #1: Type: text/plain, Size: 2016 bytes --]

Hi T G-R,

On Wed,  8 Apr 2020 23:01:32 +0200
Tobias Geerinckx-Rice via Guix-patches via <guix-patches@gnu.org> wrote:

> * gnu/build/vm.scm (make-iso9660-image): Use the ‘--zisofs’ xorriso
> filter at the highest compression settings for supported directories.
> ---
>  gnu/build/vm.scm | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 
> diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
> index 79eed48c1f..972eb4bdf9 100644
> --- a/gnu/build/vm.scm
> +++ b/gnu/build/vm.scm
> @@ -533,6 +533,24 @@ GRUB configuration and OS-DRV as the stuff in it."
>                  ;; Set all timestamps to 1.
>                  "-volume_date" "all_file_dates" "=1"
>  
> +                ;; ‘zisofs’ compression reduces the total image size by ~60%.
> +                "-zisofs" "level=9:block_size=128k" ; highest compression
> +                ;; It's transparent to our Linux-Libre kernel but not to GRUB.
> +                ;; Don't compress the kernel, initrd, and other files read by
> +                ;; grub.cfg, as well as common already-compressed file names.
> +                "-find" "/" "-type" "f"
> +                ;; XXX Even after "--" above, and despite documentation claiming
> +                ;; otherwise, "-or" is stolen by grub-mkrescue which then chokes
> +                ;; on it (as ‘-o …’) and dies.  Don't use "-or".
> +                "-not" "-wholename" "/boot/*"
> +                "-not" "-wholename" "/System/*"
> +                "-not" "-name" "unicode.pf2"
> +                "-not" "-name" "bzImage"
> +                "-not" "-name" "*.gz"   ; initrd & all man pages
> +                "-not" "-name" "*.png"  ; includes grub-image.png
> +                "-exec" "set_filter" "--zisofs"
> +                "--"
> +
>                  "-volid" (string-upcase volume-id)
>                  (if volume-uuid
>                      `("-volume_date" "uuid"

LGTM!

Tested it and it works, and I see no downside either.

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#40514: [PATCH] vm: Transparently compress iso9660 images.
  2020-04-09 21:34   ` Danny Milosavljevic
@ 2020-04-10  0:02     ` Tobias Geerinckx-Rice via Guix-patches via
  0 siblings, 0 replies; 4+ messages in thread
From: Tobias Geerinckx-Rice via Guix-patches via @ 2020-04-10  0:02 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: 40514-done

[-- Attachment #1: Type: text/plain, Size: 323 bytes --]

Danny,

Danny Milosavljevic 写道:
> Tested it and it works

Thanks!  Pushed as 26c1bd9dfafb5a954d2174b7a000304cd7ae6345.

> and I see no downside either.

We can now fit a Gnome 3 desktop on an image the size of the 
previous installer.  I'm sure someone considers that a downside.

Kind regards,

T G-R

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-04-10  0:03 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-08 20:56 [bug#40514] Should we shrink the installer by a gig or so? Tobias Geerinckx-Rice via Guix-patches via
2020-04-08 21:01 ` [bug#40514] [PATCH] vm: Transparently compress iso9660 images Tobias Geerinckx-Rice via Guix-patches via
2020-04-09 21:34   ` Danny Milosavljevic
2020-04-10  0:02     ` bug#40514: " Tobias Geerinckx-Rice via Guix-patches via

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).