guix-devel
[Top][All Lists]
Advanced

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

Re: Guix direct checkout hacking


From: Giovanni Biscuolo
Subject: Re: Guix direct checkout hacking
Date: Sat, 16 Mar 2019 15:39:56 +0100

Hi Danny,

Danny Milosavljevic <address@hidden> writes:

> Hi,
>
> On Sat, 16 Mar 2019 12:24:27 +0100
> Giovanni Biscuolo <address@hidden> wrote:
>
>> I regurarly "git pull" in $GUIX_CHECKOUT and then "guix environment
>> guix": is it sufficient and necessary to "/.bootstrap" and then
>> "/.configure" every time I enter the environment in order to have a
>> working build environment?
>
> Not really.  Only if dependencies get added or removed,

bootstrap deps or packages deps (inputs)?

> or some variables in the Makefiles get added or removed.

OK, got it thanks

> Personally, I'm too lazy to bootstrap every time.  But I ./configure
> pretty often ("./configure --localstatedir=/var").

uh: --localstatedir is **mandatory**

it defaults to /usr/local/var [1] as documented in GNU Coding Standards
7.2.5 [2] while I thought it defaulted to /var (GNU Coding Standards
it's another *really should* read to be a proficient Guix hacker, no?)

should we better document in
https://www.gnu.org/software/guix/manual/en/html_node/The-Store.html#The-Store?
that if not specified --localstatedir defaults to /usr/local/var as for
above mentioned coding standards?

>> Do I really need to "make check" every time I "activate" the devel
>> environment or after every "git pull" of my $GUIX_CHECKOUT?
>
> Not really, but later on, it's nice to know whether your change broke
> something or whether it was broken to begin with.  Personally, I don't
> run "make check" until I need to.  I often need to backtrack then :)

OK, got it thanks

>> Do I neeed to regurarly "make clean-go" to get rid of compiled .go or I
>> can ignore this step? If this step should be regurarly done: when?
>> (this is not documented, just my curiosity)

[...]

> In the real world, I don't delete all ".go" file every time--it would
> take way too long to recompile.
>
> But if there are strange things happening later, I delete them and
> run "make" in order to rebuild them.

OK got it, thanks

>> I start the build daemon in the environment:
>> 
>>   sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild
>
> I never do this since the build daemon almost never changes.  So I just
> use the system build daemon.

eh... got in now, too :-)
I thought I needed to start a separate daemon to be able to build, see [2]

>> error: failed to run download program 
>> '/home/giovanni/{git}/giovanni.biscuolo.net/guix/nix/scripts/download': 
>> Permission denied
>
> Hmm, what are the permissions of that file?

-rwxr-xr-x 1 giovanni giovanni 272 Mar 16 15:08 nix/scripts/download

> Did you generate it using the same user ? (via ./configure, I think).

yes

OK, so I reconfigured via "./configure --localstatedir=/var" and now:

--8<---------------cut here---------------start------------->8---
address@hidden: time ./pre-inst-env guix build --verbosity=5 hello
guix build: error: getting attributes of path 
`/gnu/store/hbdalsf5lpf01x4dcknwx6xbn6n5km6k-hello-2.10.tar.gz': No such file 
or directory

Some deprecated features have been used.  Set the environment
variable GUILE_WARN_DEPRECATED to "detailed" and rerun the
program to get more information.  Set it to "no" to suppress
this message
--8<---------------cut here---------------end--------------->8---

solved this with

--8<---------------cut here---------------start------------->8---
address@hidden: guix gc --verify
reading the store...
checking path existence...
path `/gnu/store/5c88v80zi7gm928ajn739lnz5vc7vkfg-glibc-2.28.tar.xz' 
disappeared, removing from database...
path `/gnu/store/hbdalsf5lpf01x4dcknwx6xbn6n5km6k-hello-2.10.tar.gz' 
disappeared, removing from database...
--8<---------------cut here---------------end--------------->8---

and now hello builds


Thanks!


[1] I fully realized this when running
--8<---------------cut here---------------start------------->8---
address@hidden: ./pre-inst-env guix build hello
guix build: error: failed to connect to 
`/usr/local/var/guix/daemon-socket/socket': Connection refused
--8<---------------cut here---------------end--------------->8---
in the "guix build" environment

[2] 
https://www.gnu.org/prep/standards/html_node/Directory-Variables.html#Directory-Variables

-- 
Giovanni Biscuolo

Xelera IT Infrastructures

Attachment: signature.asc
Description: PGP signature


reply via email to

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