[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Package variant defined in manifest not visible by Guix
From: |
Philippe SWARTVAGHER |
Subject: |
Re: Package variant defined in manifest not visible by Guix |
Date: |
Wed, 18 Aug 2021 10:57:39 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0 |
Hello,
Le 16/08/2021 à 16:34, Ricardo Wurmus a écrit :
> There seems to be a small misunderstanding. You defined a package
> variant, but that’s not a manifest. A manifest describes the complete
> contents of a profile; i.e. it’s a list of packages that Guix should
> install.
>
> Here are three different ways that should work for you:
>
> 1) Build a single package from a file.
>
> Now we can build the package specified in the file:
>
> guix build --file=this-file.scm
>
>
> 2) Build a whole manifest from a file.
>
> Here the file must evaluate to a manifest value, not just a single
> package.
Ok, I was missing the line to evaluate to a manifest, instead of a
single package.
> Then build the profile from the manifest file:
>
> guix build --manifest=this-file.scm
>
>
> 3) Create a module and use it however you want.
>
> You can make the custom package available to any Guix command by
> putting it into a Guile module and then informing Guix about the
> module. This is a little more effort as you need more boilerplate
> code to define the module (and the file name needs to match the moule
> header, etc).
>
> Hope this helps!
Sure, it helps ! Thanks a lot ! However, I still have some questions:
- I don't really see the difference, or more precisely: the difference
of goal, between defining the package in a simple file (solution 1) and
using a manifest (solution 2).
- The following command builds the package as defined in the *file*,
without running tests:
guix build -c 2 -f starpu-maxnodes1-file.scm
--without-tests=starpu-maxnodes1
So package transformations seem to work. However:
guix build -c 2 -f starpu-maxnodes1-file.scm chameleon
--with-input=starpu=starpu-maxnodes1 --with-input=openblas=mkl
--without-tests=starpu-maxnodes1
doesn't work: starpu-maxnodes1 is an unknown package...
The same happens if I use a manifest instead of a file to define
starpu-maxnodes1:
guix build -c 2 -m starpu-maxnodes1.scm --with-input=openmpi=nmad
--without-tests=starpu-maxnodes1
works (without running tests), however:
guix build -c 2 -m starpu-maxnodes1.scm chameleon
--with-input=starpu=starpu-maxnodes1 --with-input=openblas=mkl
--with-input=openmpi=nmad --without-tests=starpu-maxnodes1
doesn't.
I guess I have to put all transformations of several packages in a
single manifest, one cannot combine manifest and CLI options; packages
defined in manifest aren't available for use in CLI transformations
(although the working --without-tests seems to be a counter argument).
Am I right ?
Thanks again for your help !
--
Philippe SWARTVAGHER
PhD Student
TADaaM team, Inria Bordeaux Sud-Ouest