Sudden unexplained error during guix pull: "channel dependency has an invalid introduction field"

  • Open
  • quality assurance status badge
Details
3 participants
  • Josselin Poiret
  • N. Y.
  • Simon Tournier
Owner
unassigned
Submitted by
N. Y.
Severity
normal
N
(address . bug-guix@gnu.org)
CAEavL=Wrpc=RtEGO5c1QXo27Y7o7-174je1hkOqjcgMp=mT+gw@mail.gmail.com
Hi all,

I am suddenly having errors with guix pull while pulling my own custom
channels, after upgrading guix yesterday. My custom channels has not
changed since early April. I am sure I was able to pull from my custom
channels when I last upgraded around early June.

The error is "channel dependency has an invalid introduction field," but
the introduction fields of my custom channels have the same form as those I
use for GNU guix and nonguix channels which I can pull without errors; and
the channel introductions and GPG fingerprints are unchanged from the last
time I was able to pull successfully (I have the channels.scm file under
version control).

There are two private channels. Including either of them are sufficient to
replicate the error; at least one is necessary to replicate the error.

Command line output:

ning@bluecoral ~/roamdb/notes/tasks$ guix pull
Updating channel 'guix' from Git repository at '
Updating channel 'nonguix' from Git repository at '
Updating channel 'ninguix' from Git repository at '
/home/ning/.cache/guix/checkouts/y6rzf466if75ebhoqonk2dqs6ac5d75tvkvziqptmqvawztuphda/.guix-channel:10:4:
error: channel dependency has an invalid introduction field

ning@bluecoral ~/roamdb/notes/tasks$ guix --version
guix (GNU Guix) b94cbbbce70f59b795526a0ed305facf041e6faa
Copyright (C) 2023 the Guix authors
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
Toggle quote (1 lines)
>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

ning@bluecoral ~/roamdb/notes/tasks$ cat ~/.config/guix/channels.scm
(list (channel
(name 'guix)
(branch "master")
(introduction
(make-channel-introduction
"9edb3f66fd807b096b48283debdcddccfea34bad"
(openpgp-fingerprint
"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"))))
(channel
(name 'nonguix)
(branch "master")
(introduction
(make-channel-introduction
"897c1a470da759236cc11798f4e0a5f7d4d59fbc"
(openpgp-fingerprint
"2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5"))))
(channel
(name 'ninguix)
(branch "main")
(introduction
(make-channel-introduction
"3f7eb8b5064445d72649b1b27f714b86f3946a9a"
(openpgp-fingerprint
"4523 A758 035C 5177 7A8F 1E1F 2CB0 E8CD 7035 5FB7"))))
(channel
(name 'ninguix-private)
(url "git@github.com:ning-y/ninguix-private.git")
(branch "main")
(introduction
(make-channel-introduction
"01f91f7dba5a4949a0719e0ff0e85bb8b0050128"
(openpgp-fingerprint
"4523 A758 035C 5177 7A8F 1E1F 2CB0 E8CD 7035 5FB7")))))
Attachment: file
S
S
Simon Tournier wrote on 19 Jun 2023 16:44
87edm7a4vc.fsf@gmail.com
Hi,

On Wed, 14 Jun 2023 at 01:56, "N. Y." <ningyuan.sg@gmail.com> wrote:

Toggle quote (5 lines)
> Updating channel 'ninguix' from Git repository at '
> https://github.com/ning-y/ninguix'...
> /home/ning/.cache/guix/checkouts/y6rzf466if75ebhoqonk2dqs6ac5d75tvkvziqptmqvawztuphda/.guix-channel:10:4:
> error: channel dependency has an invalid introduction field

[...]

Toggle quote (10 lines)
> (channel
> (name 'ninguix)
> (url "https://github.com/ning-y/ninguix")
> (branch "main")
> (introduction
> (make-channel-introduction
> "3f7eb8b5064445d72649b1b27f714b86f3946a9a"
> (openpgp-fingerprint
> "4523 A758 035C 5177 7A8F 1E1F 2CB0 E8CD 7035 5FB7"))))

The branch ’keyring’ seems empty, is it expected? I mean the manual
reads:

Additionally, your channel must provide all the OpenPGP keys
that were ever mentioned in .guix-authorizations, stored as .key
files, which can be either binary or “ASCII-armored”. By
default, those .key files are searched for in the branch named
keyring but you can specify a different branch name in
.guix-channel like so:


Cheers,
simon
N
(name . Simon Tournier)(address . zimon.toutoune@gmail.com)(address . 64059@debbugs.gnu.org)
CAEavL=UK+yn8dcB0mEZK-4EtpqDk5UCEgL5ujsscSpaTA=UthQ@mail.gmail.com
Hi Simon,

Thanks for taking a look! The keyring branch doesn't seem empty on my end,

Maybe it looks empty because it is an orphan branch? I always had it as an
orphan branch though (that part never changed) and it had worked before.

On Tue, Jun 20, 2023, 00:36 Simon Tournier <zimon.toutoune@gmail.com> wrote:

Toggle quote (38 lines)
> Hi,
>
> On Wed, 14 Jun 2023 at 01:56, "N. Y." <ningyuan.sg@gmail.com> wrote:
>
> > Updating channel 'ninguix' from Git repository at '
> > https://github.com/ning-y/ninguix'...
> >
> /home/ning/.cache/guix/checkouts/y6rzf466if75ebhoqonk2dqs6ac5d75tvkvziqptmqvawztuphda/.guix-channel:10:4:
> > error: channel dependency has an invalid introduction field
>
> [...]
>
> > (channel
> > (name 'ninguix)
> > (url "https://github.com/ning-y/ninguix")
> > (branch "main")
> > (introduction
> > (make-channel-introduction
> > "3f7eb8b5064445d72649b1b27f714b86f3946a9a"
> > (openpgp-fingerprint
> > "4523 A758 035C 5177 7A8F 1E1F 2CB0 E8CD 7035 5FB7"))))
>
> The branch ’keyring’ seems empty, is it expected? I mean the manual
> reads:
>
> Additionally, your channel must provide all the OpenPGP keys
> that were ever mentioned in .guix-authorizations, stored as .key
> files, which can be either binary or “ASCII-armored”. By
> default, those .key files are searched for in the branch named
> keyring but you can specify a different branch name in
> .guix-channel like so:
>
>
> https://guix.gnu.org/manual/devel/en/guix.html#Specifying-Channel-Authorizations
>
> Cheers,
> simon
>
Attachment: file
N
(address . 64059@debbugs.gnu.org)(name . Simon Tournier)(address . zimon.toutoune@gmail.com)
CAEavL=X=mEHOjr8irpbNQFO=9JYG=j0Qjiag1NjcAEOeUL9YyQ@mail.gmail.com
I was able to pull my custom channels without error after pinning the GNU
f2e98587 (21 May). The Guix CLI version for this commit was version
d884fc9e2efecfba09af4694f5a13ad7fc6f704f.

(channel
(name 'guix)
; (branch "master")
(commit "f2e98587ec72b5f5c2ec79956ced129350396bab")
(introduction
(make-channel-introduction
"9edb3f66fd807b096b48283debdcddccfea34bad"
(openpgp-fingerprint
"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"))))

ning@bluecoral ~/repos/guix$ guix --version
guix (GNU Guix) d884fc9e2efecfba09af4694f5a13ad7fc6f704f
Copyright (C) 2023 the Guix authors
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
Toggle quote (1 lines)
>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

On Mon, Jun 19, 2023 at 5:21?PM N. Y. <ningyuan.sg@gmail.com> wrote:

Toggle quote (50 lines)
> Hi Simon,
>
> Thanks for taking a look! The keyring branch doesn't seem empty on my end,
> though. https://github.com/ning-y/ninguix/tree/keyring
>
> Maybe it looks empty because it is an orphan branch? I always had it as an
> orphan branch though (that part never changed) and it had worked before.
>
> On Tue, Jun 20, 2023, 00:36 Simon Tournier <zimon.toutoune@gmail.com>
> wrote:
>
>> Hi,
>>
>> On Wed, 14 Jun 2023 at 01:56, "N. Y." <ningyuan.sg@gmail.com> wrote:
>>
>> > Updating channel 'ninguix' from Git repository at '
>> > https://github.com/ning-y/ninguix'...
>> >
>> /home/ning/.cache/guix/checkouts/y6rzf466if75ebhoqonk2dqs6ac5d75tvkvziqptmqvawztuphda/.guix-channel:10:4:
>> > error: channel dependency has an invalid introduction field
>>
>> [...]
>>
>> > (channel
>> > (name 'ninguix)
>> > (url "https://github.com/ning-y/ninguix")
>> > (branch "main")
>> > (introduction
>> > (make-channel-introduction
>> > "3f7eb8b5064445d72649b1b27f714b86f3946a9a"
>> > (openpgp-fingerprint
>> > "4523 A758 035C 5177 7A8F 1E1F 2CB0 E8CD 7035 5FB7"))))
>>
>> The branch ’keyring’ seems empty, is it expected? I mean the manual
>> reads:
>>
>> Additionally, your channel must provide all the OpenPGP keys
>> that were ever mentioned in .guix-authorizations, stored as .key
>> files, which can be either binary or “ASCII-armored”. By
>> default, those .key files are searched for in the branch named
>> keyring but you can specify a different branch name in
>> .guix-channel like so:
>>
>>
>> https://guix.gnu.org/manual/devel/en/guix.html#Specifying-Channel-Authorizations
>>
>> Cheers,
>> simon
>>
>
Attachment: file
J
J
Josselin Poiret wrote on 20 Jun 2023 11:19
87y1ke4hja.fsf@jpoiret.xyz
Hi Ning,

"N. Y." <ningyuan.sg@gmail.com> writes:

Toggle quote (7 lines)
> The error is "channel dependency has an invalid introduction field," but
> the introduction fields of my custom channels have the same form as those I
> use for GNU guix and nonguix channels which I can pull without errors; and
> the channel introductions and GPG fingerprints are unchanged from the last
> time I was able to pull successfully (I have the channels.scm file under
> version control).

I've purposefully added this new error to warn users that their
.guix-channel's introduction forms were erroneous. Previously, they
were silently being dropped. The formats in a channels.scm file and in
the .guix-channel file are *not* the same! Please see "(guix) Declaring
Channel Dependencies" for an example of the format.

Best,
--
Josselin Poiret
-----BEGIN PGP SIGNATURE-----

iQHEBAEBCgAuFiEEOSSM2EHGPMM23K8vUF5AuRYXGooFAmSRbzkQHGRldkBqcG9p
cmV0Lnh5egAKCRBQXkC5Fhcaiik2C/0URzm2xFjsbCyph5j6/cAaetYIh8bhXzbk
Ad/TePZM5DCAocNyeIIs/NFT1ENlmXEm+vAp6YiSc0nD+VFSDSNyjHHirDVaRQhu
WDNtnRPSWg/BmjS3LVpaii2aQVHwBrua343UU2fzMHBxgryd5GBzGkexkoueE+y0
mmEprLzhzocn+fLSIhqrebrbWmqi5MKpVRt3aWAL3feslB61EuCt8d+YSLj8oyYN
M4yycr4741/+cM6d0T83jXdoDcxO30h4uD3Hl2uWVSPkTkYA5riTkcAYw1mElxMN
gXCSrOkQfXZp6Ns8A00XeVjA4D1E9LDBpVujRkaUzNlfRrTwFbW4NbYOGaYZ3bhd
mRzWbBQqDDPIsUsMMlUXqS4OMBjIaof5NHFMyTNALKChxjDORFEEgokMgLBK/oHL
rQjvud+EG1SoJ8f3SXTVf1gfmJwn0a+P4u1lbzIhH11LoQYpzj/72PvEawgjIOU1
3r5EaIZwGR0eJ7WG92OvgptAv3edrOI=
=fW08
-----END PGP SIGNATURE-----

N
(name . Josselin Poiret)(address . dev@jpoiret.xyz)(address . 64059@debbugs.gnu.org)
CAEavL=XM9cpGYzi16mhCX9Rf2OAt=FuCsdvB=fusVaM4hrOvxA@mail.gmail.com
Hi Josselin,

Thank you so much for your help! Indeed, the .channels.scm files of my
custom channels had invalid introduction fields. That's on me --- I
should've read the error message more carefully!

Best regards,
Ning

On Tue, Jun 20, 2023 at 9:19?AM Josselin Poiret <dev@jpoiret.xyz> wrote:

Toggle quote (24 lines)
> Hi Ning,
>
> "N. Y." <ningyuan.sg@gmail.com> writes:
>
> > The error is "channel dependency has an invalid introduction field," but
> > the introduction fields of my custom channels have the same form as
> those I
> > use for GNU guix and nonguix channels which I can pull without errors;
> and
> > the channel introductions and GPG fingerprints are unchanged from the
> last
> > time I was able to pull successfully (I have the channels.scm file under
> > version control).
>
> I've purposefully added this new error to warn users that their
> .guix-channel's introduction forms were erroneous. Previously, they
> were silently being dropped. The formats in a channels.scm file and in
> the .guix-channel file are *not* the same! Please see "(guix) Declaring
> Channel Dependencies" for an example of the format.
>
> Best,
> --
> Josselin Poiret
>
Attachment: file
?