all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Pjotr Prins <pjotr.public12@thebird.nl>
To: Konrad Hinsen <konrad.hinsen@fastmail.net>
Cc: guix-devel@gnu.org
Subject: Re: Reproducible environments
Date: Tue, 6 Oct 2015 14:00:43 +0200	[thread overview]
Message-ID: <20151006120043.GB11759@thebird.nl> (raw)
In-Reply-To: <22035.42892.444833.212704@Konrad-Hinsens-MacBook-Pro-2.local>

Hi Konrad,

On Tue, Oct 06, 2015 at 12:50:52PM +0200, Konrad Hinsen wrote:
> Hi everyone,
> 
> I am exploring the use of Guix for reproducible environments in scientific computing. My goals are very similar to those described in the paper "Reproducible and User-Controlled Software Environments in HPC with Guix".
> 
> Section 4.1 of that paper says that a given environment, defined by a Guix profile, can be reproduced given (1) a manifest and (2) the Guix commit defining all the packages.
> 
> Problem #1: After reading the manual twice, I still don't see how I can tell "guix package" to use a given Guix commit.

At this point (correct me if I am wrong), the route to take is to
checkout a commit of the Guix source tree (with packages). The SHA
value is captured on Hydra in the build itself. That is the only way
to fully reproduce GUIX as a point in time. And use guix package using
that tree.

See the revision of this package: http://hydra.gnu.org/build/694326#tabs-buildinputs

There is a similar discussion on the NIX mailing list about this right
now.

> Problem #2: What if my profile contains packages from several Guix commits (typically for getting specific older versions)? Or if it contains packages defined outside of the Guix distribution, in Guile modules on GUIX_PACKAGE_PATH?

You'd have to create a new profile that is tied to above build to be
fully reprocible. Managing multiple profiles is pretty
straightforward (using the -p switch). I use a compile profile for
guix, for example, containing gcc etc.

> If my understanding of Guix is correct, all the required information for rebuilding everything identically is available at a lower level, in the derivation files. Would it be feasible to collect all the derivation files underlying a profile in a tar archive, and then have them rebuilt and added to a fresh profile in an automatized way?

I don't think we need that functionality when you accept that a git
source tree of GUIX contains all the information you need. Maybe
others have ideas to make use a bit more convenient for end-users
without git - but the current setup works for me to recreate software
packages.

Note that you can also tar ball a binary package with all its
dependencies (using guix archive) and distribute that. That is 
reproducible at the binary level. That may be more useful for end-users.

Pj.
-- 

  reply	other threads:[~2015-10-06 12:03 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-06 10:50 Reproducible environments Konrad Hinsen
2015-10-06 12:00 ` Pjotr Prins [this message]
2015-10-06 16:59   ` Konrad Hinsen
2015-10-06 18:59     ` Pjotr Prins
2015-10-07 12:11     ` Ludovic Courtès
2015-10-06 16:44 ` 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=20151006120043.GB11759@thebird.nl \
    --to=pjotr.public12@thebird.nl \
    --cc=guix-devel@gnu.org \
    --cc=konrad.hinsen@fastmail.net \
    /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.