all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Tomáš Čech" <sleep_walker@gnu.org>
To: guix-devel <guix-devel@gnu.org>
Subject: Re: ‘guix publish’ now compresses archives
Date: Tue, 19 Jul 2016 08:29:15 +0200	[thread overview]
Message-ID: <20160719062915.3cdpmb6xhcg3l6mw@venom> (raw)
In-Reply-To: <878twytwlp.fsf@gnu.org>

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

On Tue, Jul 19, 2016 at 12:22:42AM +0200, Ludovic Courtès wrote:
>Hi!
>
>‘guix publish --compression’ can now compress archives in gzip format,
>using zlib, which makes it much more usable in real life.  See commit
>4a1fc562ae5eedf40f6ae4eabe30580b0983b8f6.
>
>‘guix publish’ is cache-friendly: it uses /nar/gzip URLs for gzipped
>archives, and /nar for uncompressed archives.  That way, even if ‘guix
>publish’ is restarted with different compression parameters, previously
>announced /nar/* URLs remain valid.
>
>Please try it and report back.
>
>To recap, the difficulty with all this is that we couldn’t just call out
>the ‘gzip’ command because ‘guix publish’ uses threads, and threads and
>fork(2) don’t go together well.  So we needed zlib bindings, and when
>discussing it earlier with Dave, I thought we’d have to wrap zlib’s
>low-level API, which is painful, so we were sad and all.  Next we had
>this hydra.gnu.org outage, which entailed more sadness.
>
>Then I realized that zlib has this high-level ‘gz’ API, which is easy
>and does what we need; hence, (guix zlib) provides bindings to that.
>The only limitation is that it needs a file descriptor as its source or
>sink and cannot compress into memory.  That’s enough for ‘guix publish’
>though.
>
>Comments welcome!

When I saw archive improvement I remembered I have a comment about
that (but not associated to compression).

Recently when Snappy and Flatpak news flew around the world I saw some
people were thinking about Guix as possible and cleaner alternative to
new package types.

As I am happy to see enthusiasm about Guix, I don't think that current
archive format is usable for distribution of binary packages of
whatever origin. Problem is that we have package definition as part of
package manager GIT snapshot or local files but this information is
not distributed along with the package archive.

If this area is interesting for us, we can do better. It would be
great to be able to verify such archive, maintain the reproducibility
or provide recipe how to bake missing dependencies.

I was thinking that we could (and should) add some optional support
for metadata which could describe the origin of the package. It could
contain:
 - Guix GIT revision used
 - differences against GIT revision
 - local package recipe
 - exported dependency tree of package recipes
 - optionally URL where missing dependencies can be found

What do you think?

S_W

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  reply	other threads:[~2016-07-19  6:29 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-18 22:22 ‘guix publish’ now compresses archives Ludovic Courtès
2016-07-19  6:29 ` Tomáš Čech [this message]
2016-07-19 10:03   ` Pjotr Prins
2016-07-19 13:15   ` Ludovic Courtès
2016-07-19 13:42     ` Tomáš Čech
2016-07-19 14:23       ` Ricardo Wurmus
2016-07-19 15:50         ` Tomáš Čech
2016-07-20 11:20           ` Ricardo Wurmus
2016-07-20 13:05             ` Tomáš Čech
2016-07-20 13:12               ` Thompson, David
2016-07-20 16:10                 ` Tomáš Čech
2016-07-21  5:33                 ` Ricardo Wurmus
2016-07-21 15:58                   ` Thompson, David
2016-07-21  5:53               ` Ricardo Wurmus
2016-07-21 20:50                 ` Tomáš Čech
2016-07-21 10:12 ` Andy Wingo
2016-07-21 12:43   ` Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160719062915.3cdpmb6xhcg3l6mw@venom \
    --to=sleep_walker@gnu.org \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.