From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pjotr Prins Subject: Re: updating list of substitutes Date: Tue, 21 Apr 2015 12:02:16 +0200 Message-ID: <20150421100216.GA16981@thebird.nl> References: <20150421064525.GA15795@thebird.nl> <87a8y1q49z.fsf@gnu.org> <20150421084028.GB16564@thebird.nl> <20150421091958.GA3636@debian.math.u-bordeaux1.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:57682) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YkV1C-0006GG-2h for guix-devel@gnu.org; Tue, 21 Apr 2015 06:03:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YkV16-0007r8-54 for guix-devel@gnu.org; Tue, 21 Apr 2015 06:03:02 -0400 Received: from mail.thebird.nl ([95.154.246.10]:56206) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YkV15-0007q9-VK for guix-devel@gnu.org; Tue, 21 Apr 2015 06:02:56 -0400 Content-Disposition: inline In-Reply-To: <20150421091958.GA3636@debian.math.u-bordeaux1.fr> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: guix-devel@gnu.org On Tue, Apr 21, 2015 at 11:19:58AM +0200, Andreas Enge wrote: > On Tue, Apr 21, 2015 at 10:40:28AM +0200, Pjotr Prins wrote: > > How do I recreate the exact same system from Hydra? Even now if I > > install the exact same Ruby-2.2.1 it will install different packages > > compared to yesterday. > > I am lost here. If you use a fixed release or git commit of guix, ruby-2.2.1 > should be the same yesterday and today. ls /gnu/store/*ruby-2.2.1* /gnu/store/gy1dnlh6qhwd40admi3b1mr4r9cn8bww-ruby-2.2.1 ls /var/guix/profiles/per-user/wrk/guix-profile-2-link/bin/ruby /var/guix/profiles/per-user/wrk/guix-profile-2-link/bin/ruby -> /gnu/store/gy1dnlh6qhwd40admi3b1mr4r9cn8bww-ruby-2.2.1/bin/ruby A few days later I install ruby-1.8.7 followed by guix package -i ruby-2.2.1 The following package will be upgraded: ruby 1.8.7-p374 -> 2.2.1 /gnu/store/z8kf6hgln4a7xf68pdnlibl3vcg5rl15-ruby-2.2.1 The following derivations will be built: /gnu/store/7k8nsgpvaafljk1wcnpiq3sm0vns64ck-profile.drv /gnu/store/b8pasb4kj50x696bln6jpq4myhzkbrg0-ca-certificate-bundle.drv /gnu/store/5hnj1f5i41a6vp4xshhrzqcf27vaf0y7-info-dir.drv The following files will be downloaded: /gnu/store/z8kf6hgln4a7xf68pdnlibl3vcg5rl15-ruby-2.2.1 /gnu/store/xgfynxf3nscq41n27mnd1lf1hb21fc7w-openssl-1.0.2 So openssl has changed the install. That is not reproducible installs in my book. > The only thing that could happen, if I understand things correctly, is that > with non-deterministic builds and assuming that ruby-2.2.1 has been garbage > collected and rebuilt on hydra, we would have a new store item on hydra > with the same directory name (including the hash), but different content. > However, if your machine has kept the old package, it should not be > redownloaded, as it is the hash in the directory name that counts and not > some hash over its contents. The solution here would be deterministic builds. > > As I understand Ludovic's answer, the database cannot be regenerated because > the store may contain corrupted items from a failed and aborted build. Adding > a package to the database in a last step appears to ensure atomicity of the > operation. Yes. In that case, we should make sure that we know an atomic build has been completed - also outside the DB. I am not saying what guix does is wrong. I am saying there are instances where you WANT to rebuild the DB. Pj.