help-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Guix as a non-optional dependency in another project, and Guix resou


From: pelzflorian (Florian Pelz)
Subject: Re: Guix as a non-optional dependency in another project, and Guix resources requirements.
Date: Wed, 27 Mar 2024 12:22:40 +0100
User-agent: Gnus/5.13 (Gnus v5.13)

Hi there.  Some corrections.

Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> writes:
> On Mon, 25 Mar 2024 18:34:18 +0100
> "pelzflorian (Florian Pelz)" <pelzflorian@pelzflorian.de> wrote:
>> Hello, what you intend does sound very interesting.  As for “guix
>> time-machine”, I do not see the problem [...]
> Let's say a user install Guix 1.4.0 and GNU Boot use a guix commit after
> v1.4.0, as I understand guix time-machine will fail.

No, it does not fail.

I just tried from a pre-v1.4.0 installer to time-machine
--commit=9f11c33b6d2c16e710fa2ef3c74f985e2b885350,

commit 9f11c33b6d2c16e710fa2ef3c74f985e2b885350
Author: Sou Bunnbu (宋文武) <iyzsong@gmail.com>
Date:   Sat Mar 16 13:14:37 2024 +0800

    gnu: Add logtalk.
    
    * gnu/packages/prolog.scm (logtalk): New package.
    
    Change-Id: I99e04e70b32c498b5da1f094752279e4668f3865

I can run logtalk binaries.


>> I do not know, but maybe the Autotools of Guix itself use something
>> like this to deal with “make -j4”.
> My question was more about the user interface and if it was the right
> thing to do. As for the code implementing it[1], it was pretty easy to
> do for me and it integrates fine with the current GNU Boot structure: if
> users run './autogen.sh && ./configure' they can still use the scripts
> manually, so this avoids too much invasive changes.

So from reading the Guix build machinery, Makefile.am runs

https://git.savannah.gnu.org/cgit/guix.git/plain/build-aux/compile-all.scm

and they use (getenv "MAKEFLAGS") to check if make gets any --jobserver
flag that specifies the number of parallel compilations.  This seems
slightly nicer than a non-standard configure option, but is also more
complicated in that Makefile.am calls out to compile-all.scm to do the
work.

Presumably Guix developers like writing Scheme more than writing shell
scripts.


> And we also already merged code to update Guix:
> https://git.savannah.gnu.org/cgit/gnuboot.git/tree/resources/dependencies/guix
> https://git.savannah.gnu.org/cgit/gnuboot.git/tree/resources/scripts/misc/guix.sh
> but this is not run automatically, and not mentioned in the
> documentation either. So users that know about it could run it manually
> but that's pretty much it.

Yes, I read in your scripts you check the Guix caches.  Of course guix
shell and time-machine modify not only the store but also the caches,
I’ve said it wrong.

But GNU Boot calling “guix time-machine” and thereby modifying the user
.cache directory is OK, in my opinion.

Why do you need so many different Guix versions?  Are there regressions
or is it just that you have tried building different parts of Libreboot
with different versions of Guix?


> And the idea is to try to integrate Guix as a required dependency with
> the least amount of changes. So it will probably be done to build some
> tools first like with this branch:
> https://git.savannah.gnu.org/cgit/gnuboot.git/log/?h=GNUtoo/guix-configure

That is, you move Libreboot’s build system stepwise towards using guix
build instead.  Sounds good from outside; I have not perused all the
links throughly.  It is very interesting, though.

Regards,
Florian



reply via email to

[Prev in Thread] Current Thread [Next in Thread]