Cuirass specification complains about missing guix channel when a non-guix channel gets a new commit alone

  • Done
  • quality assurance status badge
Details
2 participants
  • david larsson
  • Mathieu Othacehe
Owner
unassigned
Submitted by
david larsson
Severity
normal

Debbugs page

david larsson wrote 4 years ago
(address . bug-guix@gnu.org)(address . othacehe@gnu.org)
84ca18e0b2b187d1d19db714d2617119@selfhosted.xyz
Hi!

My specification that doesn't work is this:

(define %cuirass-specs3
#~(
list
(specification
(name "my-pkgs")
(build '(manifests . ((my-config . "manifests/user1.scm"))))
(channels
(list (channel
(name 'guix)
(branch "master"))
(channel
(name 'my-config)
(url "file:///home/cuirass/my-guixsd-config.sh")
;;(url
(branch "master"))
(channel
(name 'my-guix-packages)
(url
;;(url "file:///home/user1/src/my-guix-packages")
(branch "master"))
))
;;(priority 1)
(systems '("x86_64-linux")))))

It was converted to the new format from this:

I simply cant make anything work except building the hello package using
only guix. When "my-guix-packages" is updated the evaluation fails with
the message that at least one channel needs to be named Guix. I tried
making guix a channel dependency of my-guix-packages via committing a
.guix-channel file with 'guix as a dependency to it but that caused
other errors and surely isn't the correct way to solve the problem
anyway.

Any ideas how to fix this or if I need to change my spec?


Best regards,
David Larsson
Mathieu Othacehe wrote 4 years ago
(name . david larsson)(address . david.larsson@selfhosted.xyz)(address . 47164@debbugs.gnu.org)
87im5f4a6w.fsf@gnu.org
Hello David,

Toggle quote (2 lines)
> (build '(manifests . ((my-config . "manifests/user1.scm"))))

I have changed the manifest argument format recently. This should now
be:

Toggle snippet (3 lines)
(build '(manifests "manifests/user"))

Toggle quote (6 lines)
> (channels
> (list (channel
> (name 'guix)
> (url "https://git.savannah.gnu.org/git/guix.git")
> (branch "master"))

You should prefer using %default-guix-channel here.

Toggle quote (6 lines)
> (channel
> (name 'my-config)
> (url "file:///home/cuirass/my-guixsd-config.sh")
> ;;(url
> "https://github.com/methuselah-0/my-guixsd-config.sh.git")

The problem is that this repository is not really a channel. When
Cuirass tries to build this channel, it tries to build all the scheme
file as if they were module definitions and fails.

This works for me:

Toggle snippet (14 lines)
(list
(specification
(name "my-pkgs")
(build '(manifests "manifests/user"))
(channels
(list %default-guix-channel
(channel
(name 'my-config)
(url "https://gitlab.com/mothacehe/test-channel.git"))
(channel
(name 'my-guix-packages)
(url "https://github.com/methuselah-0/my-guix-packages.git"))))))

where test-channel is a dummy channel repository that contains your
manifest file. I removed the .scm extension so that Cuirass does not
try to build it, but I this is not an acceptable solution in the long
term.

We would need to find a way to tell Cuirass not to build this channel or
something like that.

Thanks,

Mathieu
Mathieu Othacehe wrote 4 years ago
(name . david larsson)(address . david.larsson@selfhosted.xyz)(address . 47164@debbugs.gnu.org)
87y2eb2uo3.fsf@gnu.org
Also note that you can now use this specification:

Toggle snippet (11 lines)
(list
(specification
(namee "my-pkgs")
(build '(channels my-guix-packages))
(channels
(list %default-guix-channel
(channel
(name 'my-guix-packages)
(url "https://github.com/methuselah-0/my-guix-packages.git"))))))

to have Cuirass build all the packages in your personal channel and rely
on the build farm at https://ci.guix.gnu.orgto build all the other
packages.

Thanks,

Mathieu
david larsson wrote 4 years ago
(name . Mathieu Othacehe)(address . othacehe@gnu.org)(address . 47164@debbugs.gnu.org)
37fcb7b2e2469c93ebf03e82e9b1306b@selfhosted.xyz
On 2021-03-25 14:47, Mathieu Othacehe wrote:
Toggle quote (61 lines)
> Hello David,
>
>> (build '(manifests . ((my-config . "manifests/user1.scm"))))
>
> I have changed the manifest argument format recently. This should now
> be:
>
> --8<---------------cut here---------------start------------->8---
> (build '(manifests "manifests/user"))
> --8<---------------cut here---------------end--------------->8---
>
>> (channels
>> (list (channel
>> (name 'guix)
>> (url "https://git.savannah.gnu.org/git/guix.git")
>> (branch "master"))
>
> You should prefer using %default-guix-channel here.
>
>> (channel
>> (name 'my-config)
>> (url "file:///home/cuirass/my-guixsd-config.sh")
>> ;;(url
>>
>> "https://github.com/methuselah-0/my-guixsd-config.sh.git")
>
> The problem is that this repository is not really a channel. When
> Cuirass tries to build this channel, it tries to build all the scheme
> file as if they were module definitions and fails.
>
> This works for me:
>
> --8<---------------cut here---------------start------------->8---
> (list
> (specification
> (name "my-pkgs")
> (build '(manifests "manifests/user"))
> (channels
> (list %default-guix-channel
> (channel
> (name 'my-config)
> (url "https://gitlab.com/mothacehe/test-channel.git"))
> (channel
> (name 'my-guix-packages)
> (url
> "https://github.com/methuselah-0/my-guix-packages.git"))))))
> --8<---------------cut here---------------end--------------->8---
>
> where test-channel is a dummy channel repository that contains your
> manifest file. I removed the .scm extension so that Cuirass does not
> try to build it, but I this is not an acceptable solution in the long
> term.
>
> We would need to find a way to tell Cuirass not to build this channel
> or
> something like that.
>
> Thanks,
>
> Mathieu

Hi,
Thanks. I forked ur test-channel and updated my specs accordingly and it
only works the first evaluation, until I push a new commit to the config
channel, then Im getting this:

Backtrace:
In ice-9/boot-9.scm:
1736:10 15 (with-exception-handler _ _ #:unwind? _ # _)
In unknown file:
14 (apply-smob/0 #<thunk 7f7b52185ec0>)
In ice-9/boot-9.scm:
718:2 13 (call-with-prompt _ _ #<procedure default-prompt-handle?>)
In ice-9/eval.scm:
619:8 12 (_ #(#(#<directory (guile-user) 7f7b5217ec80>)))
In cuirass/ui.scm:
104:10 11 (run-cuirass-command _ . _)
In ice-9/boot-9.scm:
152:2 10 (with-fluid* _ _ _)
152:2 9 (with-fluid* _ _ _)
In ice-9/eval.scm:
293:34 8 (_ #(#(#(#(#(#(#(#<directory (cuiras?> ?)) ?) ?) ?) ?) ?))
In ice-9/boot-9.scm:
1736:10 7 (with-exception-handler _ _ #:unwind? _ # _)
In guix/store.scm:
636:37 6 (thunk)
In ice-9/eval.scm:
159:9 5 (_ #(#(#<directory (cuirass scripts evaluate) 7f7?> ?) ?))
196:35 4 (_ #(#(#<directory (cuirass scripts evaluate) 7f7?> ?) ?))
In guix/channels.scm:
911:32 3 (channel-instances->derivation _)
871:36 2 (channel-instances->manifest (#<<channel-instance> cha?>))
759:6 1 (channel-instance-derivations (#<<channel-instance> ch?>))
In ice-9/boot-9.scm:
1669:16 0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1669:16: In procedure raise-exception:
ERROR:
1. &message: "'guix' channel is lacking"
2. &fix-hint: "Make sure your list of channels\ncontains one channel
named @code{guix} providing the core of Guix."
3. &error-location: #<<location> file: "guix/channels.scm" line: 557
column: 18>



Best regards,
David
Mathieu Othacehe wrote 4 years ago
(name . david larsson)(address . david.larsson@selfhosted.xyz)(address . 47164@debbugs.gnu.org)
87h7kzb0bu.fsf@gnu.org
Hello David,

Toggle quote (4 lines)
> Thanks. I forked ur test-channel and updated my specs accordingly and it only
> works the first evaluation, until I push a new commit to the config channel,
> then Im getting this:

Ludo experienced the same issue. I fixed it with
ac29d37e2ffd7a85adfcac9be4d5bce018289bec and updated the Cuirass package
accordingly.

Mathieu
david larsson wrote 4 years ago
(name . Mathieu Othacehe)(address . othacehe@gnu.org)
403de7c9256ae23713a5c39ad088f424@selfhosted.xyz
Toggle quote (7 lines)
> Ludo experienced the same issue. I fixed it with
> ac29d37e2ffd7a85adfcac9be4d5bce018289bec and updated the Cuirass
> package
> accordingly.
>
> Mathieu

Awesome, thank you!

// David
Mathieu Othacehe wrote 4 years ago
(name . david larsson)(address . david.larsson@selfhosted.xyz)(address . 47164-done@debbugs.gnu.org)
87k0puvtnj.fsf@gnu.org
Hey,

Toggle quote (2 lines)
> Awesome, thank you!

As you confirmed on IRC that it fixed the situation, closing this one.

Thanks,

Mathieu
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 47164@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 47164
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help