From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zachary Kanfer Subject: Re: How do I make a manifest file that installs a specific version of a dependency? Date: Sun, 12 Mar 2017 19:50:07 -0400 Message-ID: References: <87shmi17wy.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=001a113c5e7264dab8054a914292 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:47833) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cnDFw-00012T-7j for help-guix@gnu.org; Sun, 12 Mar 2017 19:50:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cnDFv-00044t-50 for help-guix@gnu.org; Sun, 12 Mar 2017 19:50:32 -0400 In-Reply-To: <87shmi17wy.fsf@gnu.org> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org Sender: "Help-Guix" To: =?UTF-8?Q?Ludovic_Court=C3=A8s?= Cc: help-guix@gnu.org --001a113c5e7264dab8054a914292 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Thanks for responding. When I run this, I got this error: Directory '/gnu/store/jvj247prbwy1jn20svy4ls5yjscpmiss-xdg-mime-database/share/mime/p= ackages' does not exist! My manifest file only installs racket and icedtea@2.6.6:jdk. If I rerun the same command, I get "nothing to be done". As a side note, is this the commonly recommended way to structure the manifest file? The documentation for `guix package -m` instead says to use `use-package-modules`, and doesn't mention anything about `specification->package+output`. On Sun, Mar 12, 2017 at 5:50 PM, Ludovic Court=C3=A8s wrote: > Hello, > > Zachary Kanfer skribis: > > > Running `guix package -m` on a file with this line `(list icedtea-2.6 > > "jdk")` gives an error "In procedure module-lookup: Unbound variable: > > icedtea-2.6". > > > > I get the same error for the following lines: > > > > `(list icedtea-2.6.6 "jdk")` > > `(list icedtea@2.6.6 "jdk")` > > > > `guix package -s icedtea` reports that there is a version 2.6.6. How do= I > > specify this in a manifest file? Thanks. > > You should use =E2=80=98specification->package=E2=80=99 as discussed at > the-Configuration-System.html#index-specification_002d_003epackage>. > > The =E2=80=98specification->package=E2=80=99 procedure takes a spec like = those you=E2=80=99d > write on the =E2=80=98guix package -i=E2=80=99 command line, and returns = the > corresponding package. =E2=80=98specification->package+output=E2=80=99 w= orks similarly > but also returns the specified output (the part that comes after the > colon). > > So your manifest would look something like: > > (use-modules (gnu)) > > (packages->manifest > (map (compose list specification->package+output) > '("icedtea@2.6.6:jdk" "emacs" "vim" =E2=80=A6))) > > HTH! > > Ludo=E2=80=99. > --001a113c5e7264dab8054a914292 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Thanks for responding. When I run this, I got this er= ror:

Directory '/gnu/store/jvj247prbwy1jn20svy4ls5yjscpmiss-xdg-= mime-database/share/mime/packages' does not exist!

My= manifest file only installs racket and icedtea@2.6.6:jdk. If I rerun the s= ame command, I get "nothing to be done".

= As a side note, is this the commonly recommended way to structure the manif= est file? The documentation for `guix package -m` instead says to use `use-= package-modules`, and doesn't mention anything about `specification->= ;package+output`.

On Sun, Mar 12, 2017 at 5:50 PM, Ludovic Court=C3=A8s <ludo@gnu.org&g= t; wrote:
Hello,

Zachary Kanfer <zkanfer@gmail.com> skribis:

> Running `guix package -m` on a file with this line `(list icedtea-2.6<= br> > "jdk")` gives an error "In procedure module-lookup: Unb= ound variable:
> icedtea-2.6".
>
> I get the same error for the following lines:
>
> `(list icedtea-2.6.6 "jdk")`
> `(list icedtea@2.6.6 "jdk")`
>
> `guix package -s icedtea` reports that there is a version 2.6.6. How d= o I
> specify this in a manifest file? Thanks.

You should use =E2=80=98specification->package=E2=80=99 as discus= sed at
<
https://www.gnu.org/software/guix/manual/ht= ml_node/Using-the-Configuration-System.html#index-specification_0= 02d_003epackage>.

The =E2=80=98specification->package=E2=80=99 procedure takes a spec like= those you=E2=80=99d
write on the =E2=80=98guix package -i=E2=80=99 command line, and returns th= e
corresponding package.=C2=A0 =E2=80=98specification->package+output= =E2=80=99 works similarly
but also returns the specified output (the part that comes after the
colon).

So your manifest would look something like:

=C2=A0 (use-modules (gnu))

=C2=A0 (packages->manifest
=C2=A0 =C2=A0(map (compose list specification->package+output)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 '("icedtea@2.6.6:jdk" "emacs= " "vim" =E2=80=A6)))

HTH!

Ludo=E2=80=99.

--001a113c5e7264dab8054a914292--