From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: Re: Installing Guix on foreign distros Date: Thu, 11 Feb 2016 06:44:38 +0100 Message-ID: <8760xvvm0p.fsf@elephly.net> References: <20160206113802.GA17867@thebird.nl> <87mvre2eyz.fsf@gnu.org> <87wpqhu0t1.fsf@dustycloud.org> <20160208104530.GA26946@crashnator.suse.cz> <87zivbxggp.fsf@dustycloud.org> <87lh6vx9v0.fsf@dustycloud.org> <20160208204350.GA29053@thebird.nl> <87k2mekw5z.fsf_-_@gnu.org> <20160210085301.GG26946@crashnator.suse.cz> <20160210124452.GA27325@novena-choice-citizen.lan> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:41543) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aTk3d-0005kI-Nw for guix-devel@gnu.org; Thu, 11 Feb 2016 00:44:50 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aTk3a-0006Tb-Gj for guix-devel@gnu.org; Thu, 11 Feb 2016 00:44:49 -0500 Received: from sender163-mail.zoho.com ([74.201.84.163]:25245) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aTk3a-0006TK-73 for guix-devel@gnu.org; Thu, 11 Feb 2016 00:44:46 -0500 In-reply-to: <20160210124452.GA27325@novena-choice-citizen.lan> 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: Jookia <166291@gmail.com> Cc: guix-devel Jookia <166291@gmail.com> writes: > On Wed, Feb 10, 2016 at 09:53:01AM +0100, Tomáš Čech wrote: >> I'm trying to push that to the main distribution but for that the >> package may need some more work because I need to get rid of foreign >> binaries (the ones in >> $PREFIX/share/guile/site/2.0/gnu/packages/bootstrap/). So `zypper in >> guix' for all openSUSE users is still my goal. >> >> Any help on that from Guix side would be appreciated. >> >> Besides this, thanks to our the OBS I should be able to setup build >> for other RPM distributions (Fedora, CentOS) but it wasn't my focus >> now. >> >> Best regards, >> >> Tomas > > I brought this up a bit earlier in IRC but you could rebuild the bootstrap > binaries- but then they'd just be identical to the ones shipped. So are they > really foreign then? I wonder: can you *really* rebuild them? Would that not require reproducible builds, something that we try to achieve with Guix? These tarballs come from their upstream release servers, if I’m not mistaken. Since the bootstrapping step starts with statically linked binaries of tar (and some other tools) and the tarballs that are then unpacked with that binary of tar, I don’t see how these binaries could possibly be reproduced *exactly* on a foreign distro and seamlessly replace the bundled binaries. It would be amazing and quite a surprise if you *were* able to rebuild them and thus reproduce them bit for bit. ~~ I wished we could reduce the number of bootstrap binaries down to little more than just Guile and an old C compiler, i.e. implement a subset of tar in Guile and use that to unpack the tarballs, then use the simple C compiler to compile an old version of GCC (without C++), then use that version of GCC to compile a GCC capable of building C++, then use that GCC to build a modern GCC... Since Guile is mostly written in Guile (and it is probably somewhat easier to come to a point to trust it) there may be value in trying to bootstrap from even less. ~~ Practically speaking, though, you probably cannot get around the bootstrap binaries — not unless there was a way to arbitrarily manipulate hashes or sneakily “seed” hashes at a certain level into the graph (e.g. tell Guix that the binaries of GCC that are in the system always have a particular hash even if they do not). I don’t think a system like this would be desirable in general as it undermines reproducibility and trust. (I do see that something like this might be useful for a shoddy port to MacOS, but ... ugh! What’s the point in that!) ~~ Rambling Ricardo