[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Cannot build personal channel derivation during guix pull
From: |
Marek Paśnikowski |
Subject: |
Re: Cannot build personal channel derivation during guix pull |
Date: |
Fri, 26 Jan 2024 22:32:44 +0100 |
23.01.2024 16:17:48 CET Marek Paśnikowski:
> Dear All
>
> This is my first attempt to connect to my personal Guix channel. After
> ironing out server-side inadequacies in my configuration code, I
> encountered a very resilient, cryptic error.
>
> After one day of experimentation, where nothing I did made the error change,
> I turn to your experience and knowledge. Could I ask to take a look at my
> repository ( hosted on https://git.marekpasnikowski.pl/channel.git , branch
> wip-channel - master has incorrect parens in authorization code ) and see
> if I missed anything in the file structure?
>
> Also, I would appreciate a confirmation whether the channel can be pulled on
> your system. I do keep in mind a possibility of a local impurity or cache
> poison.
>
> Here is my current channels.scm:
>
> ( list
> ( channel
> ( name 'guix )
> ( branch "master" )
> ( url "https://git.savannah.gnu.org/git/guix.git" )
> ( introduction
> ( make-channel-introduction
> "9edb3f66fd807b096b48283debdcddccfea34bad"
> ( openpgp-fingerprint
> "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA" ) ) ) )
> ( channel
> ( name 'personal-channel )
> ( branch "wip-channel" )
> ( introduction
> ( make-channel-introduction
> "f8ccfe8f3e5c8bafe06665cbd4b0c9301e1a64b6"
> ( openpgp-fingerprint
> "590E 500F E39D 26B3 E60B 743B 6D81 B120 7711 899F" ) ) )
> ( url "https://git.marekpasnikowski.pl/git/channel.git" ) ) )
>
> And this is the COMPLETE build log I receive every single time:
>
> $ zcat /var/log/guix/drvs/hg/15jjf4dr5z7lsfvcj07z2mrw69kzvp-personal-
> channel.drv.gz
>
> (repl-version 0 1 1)
> (exception unbound-variable (value #f) (value "Unbound variable: ~S") (value
> (channel)) (value #f))
SOLVED
I am tired of still having to deal with this, so please forgive for using the
minimal words to share the solution.
I have experimentally, in three reproduction cycles, found out the following
"Laws of Guix Channel":
1. .guix-channel file must exist in the top directory, and must include as
dependencies all other channels implied with (use-modules) or #:use-module in
the file tree.
2. All .scm files in the file tree must be proper modules.
3. .guix-authorizations in the top directory is optional.
On top of this, Guix does not care if the given directory is version tracked.
In my case, I was able to use my "secrets" directory (which is a plain,
external subfolder), as a dependency of my channel, with no issues.
Thank you Felix, for making me aware of how to integrate the channels.scm file
into the home-configuration data structure cleanly. I will use this
information in future.
Thank you Clement for taking a look at my code. Even if your comments were not
directly helpful, they were indeed a valuable input in my experimentation
logic.
PS: If you are curious, here is a link to the code commit which documents this
chain of error-solutions. Do note that the description chronology is reversed,
due to git's behaviour when squashing. The referenced commits are archived in
the museum-fix-channel-pull branch.
https://git.marekpasnikowski.pl/channel.git/commit/?
id=223caedde6ea3c4fb3a5c285a0f70ea443dd7ef0
signature.asc
Description: This is a digitally signed message part.