[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
signature.asc
Description: PGP signature