From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:48031) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1izSK7-0007ld-8G for guix-patches@gnu.org; Wed, 05 Feb 2020 16:35:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1izSK5-0000X8-U8 for guix-patches@gnu.org; Wed, 05 Feb 2020 16:35:03 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:40916) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1izSK5-0000WK-Or for guix-patches@gnu.org; Wed, 05 Feb 2020 16:35:01 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1izSK5-0000XU-Mo for guix-patches@gnu.org; Wed, 05 Feb 2020 16:35:01 -0500 Subject: [bug#38390] [bug #38390] Building bootstrap Gash and Gash-Utils Resent-Message-ID: From: Ludovic =?UTF-8?Q?Court=C3=A8s?= References: <87lfpj7etb.fsf@ngyro.com> <875zgltnp1.fsf@gnu.org> <87sgjpqf38.fsf@ngyro.com> Date: Wed, 05 Feb 2020 22:33:53 +0100 In-Reply-To: <87sgjpqf38.fsf@ngyro.com> (Timothy Sample's message of "Wed, 05 Feb 2020 09:32:59 -0500") Message-ID: <87imkklnwe.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Timothy Sample Cc: 38390@debbugs.gnu.org, Jan Nieuwenhuizen Hello! Timothy Sample skribis: > Ludovic Court=C3=A8s writes: [...] >> Woow, that is very nice! So all of a sudden there=E2=80=99s an extra bu= nch of >> binary seeds we can get rid of, woohoo! I didn=E2=80=99t expect that ev= en bzip2 >> and xz would be implemented. > > I don=E2=80=99t think we could get rid of any binaries just yet. We need= Guile > to run Bootar and we can=E2=80=99t get Guile without the statically linked > =E2=80=9Ctar=E2=80=9D, =E2=80=9Cxz=E2=80=9D, =E2=80=9Cmkdir=E2=80=9D, and= =E2=80=9Cbash=E2=80=9D. This just removes some references to > them. Although, it occurred to me that we could get something like > Bootar (perhaps further simplified) to run on Mes, in which case we > could use a statically linked Mes to unpack and wrap Guile. That would > let us get rid of =E2=80=9C%bootstrap-executables=E2=80=9D. (Note howeve= r that I tried > running Bootar in Mes for fun, and the extractor script =E2=80=93 once it= was > simplified =E2=80=93 caused a segfault.) Oh cool. Being able to run Guile code on Mes sounds like a worthy goal longer-term anyway, so hopefully we=E2=80=99ll get there! > BZip2 and XZ just barely work, by the way. I implemented BZip2, but I > skipped over all the CRC checking. XZ has a bug when called with input > from stdin, which is how Gash-Utils tries to call it. Heh, not so bad. >>> +(define (make-bootstrap-phases version scripts modules) >>> + "Create a form that modifies the standard GNU build phases so that >>> +they build simple Guile programs using only the bootstrap Guile. The >>> +'.in' files in the directory MODULES are configured with VERSION, the >>> +'.in' files in the directory SCRIPTS are configured with the bootstrap >>> +Guile and its module and object directories, and the Scheme files in t= he >>> +directory MODULES are compiled and installed." >>> + `(modify-phases %standard-phases >>> + (replace 'configure >> >> Should this be factorized out in a (guix build gnu-bootstrap) module or >> similar? That would keep build-side code separate and would avoid >> making =E2=80=98commencement.scm=E2=80=99 bigger. > > I would be happy to do that. It=E2=80=99s nice having everything in one = place, > but having a bootstrap build system would certainly make the packages > clearer. I suppose it could also get rid of the implicit inputs for us > and use =E2=80=9C%bootstrap-guile=E2=80=9D by default. I doesn=E2=80=99t have to be a full-blown build system, because there might= be as much boilerplate as actual code, but simply moving the definitions of phases in a separate file could help keep commencement.scm clear. >> I guess the only thing that remains to be done is changing the temporary >> URLs to the self-extracting script & co., right? > > Yup. I=E2=80=99ll release both packages soon. Great, thank you! Ludo=E2=80=99.