unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
* List available versions of package.
@ 2019-06-10 18:27 Philippe Veber
  2019-06-10 21:31 ` Tobias Geerinckx-Rice
  0 siblings, 1 reply; 11+ messages in thread
From: Philippe Veber @ 2019-06-10 18:27 UTC (permalink / raw)
  To: help-guix

Hi all,

I'm getting started with guix, and so far it's been just fine. I would like
to see all available versions for a given package. Is there a command that
would help me with that?

Cheers,
  Philippe.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: List available versions of package.
  2019-06-10 18:27 List available versions of package Philippe Veber
@ 2019-06-10 21:31 ` Tobias Geerinckx-Rice
  2019-06-11  7:43   ` Philippe Veber
  0 siblings, 1 reply; 11+ messages in thread
From: Tobias Geerinckx-Rice @ 2019-06-10 21:31 UTC (permalink / raw)
  To: Philippe Veber; +Cc: help-guix

[-- Attachment #1: Type: text/plain, Size: 715 bytes --]

Philippe,

Philippe Veber wrote:
> I'm getting started with guix, and so far it's been just fine.

Welcome!

> I would like to see all available versions for a given package.
> Is there a command that would help me with that?

There is:

  $ guix package --list-available=^glibc$
  glibc	2.25	out,debug,static 
  gnu/packages/base.scm:921:2
  glibc	2.22	out,debug,static 
  gnu/packages/base.scm:980:2
  …

For easier interactive use, you can use the short option ‘-A’.

Note that this option takes a regular expression as argument. 
That makes it powerful, but means you'll have to enclose the name 
in ‘^…$’ if you want to match one specific package.

Kind regards,

T G-R

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: List available versions of package.
  2019-06-10 21:31 ` Tobias Geerinckx-Rice
@ 2019-06-11  7:43   ` Philippe Veber
  2019-06-22 11:26     ` Philippe Veber
  0 siblings, 1 reply; 11+ messages in thread
From: Philippe Veber @ 2019-06-11  7:43 UTC (permalink / raw)
  To: Tobias Geerinckx-Rice; +Cc: help-guix

Hello Tobias, and thanks a lot for your answer!

So as I understand it, the distribution at a given moment contains only a
few versions (often one), and not all that have been specified at some
point. For instance, with your command I obtain:

$ guix package --list-available=^bowtie$
bowtie 2.3.4.3 out gnu/packages/bioinformatics.scm:1505:2

while I could check on guix git log that there has been more versions of
this bowtie program :

$ git log packages/bioinformatics.scm | grep "gnu: bowtie"
    gnu: bowtie: Update to 2.3.4.3.
    gnu: bowtie: Use 'modify-phases'.
    gnu: bowtie: Update to 2.3.2.
    gnu: bowtie: Update to 2.2.9.
    gnu: bowtie: Update to 2.2.6.

My use case is to be able to run old versions of software (like you've
never heard that before, right ;o)?) so is it correct to think that I have
to write a manifest file and then use a :

guix environment --manifest bowtie_2.2.9.scm -- bowtie2 ...

?
If so, I'm not absolutely clear on the contents of the manifest file. I
tried to get inspiration from the section on "Inferiors" [0], and wrote
this:

%% bowtie_2.2.9.scm %%%%%%%%%%%%%
(use-modules (guix inferior) (guix channels)
             (srfi srfi-1))   ;for 'first'

(define channels
  ;; This is the old revision from which we want to
  ;; extract guile-json.
  (list (channel
         (name 'guix)
         (url "https://git.savannah.gnu.org/git/guix.git")
         (commit
          "2642231b39d2f642364e96222690afce7c986bb6"))))

(define inferior
  ;; An inferior representing the above revision.
  (inferior-for-channels channels))

(packages->manifest
 (list (first (lookup-inferior-packages inferior "bowtie"))))
%%%%%%%%%%%%%%%

but got the following result:

$ guix environment --manifest=bowtie_2.2.9.scm -- bowtie2 --version
Mise à jour du canal « guix » depuis le dépôt Git «
https://git.savannah.gnu.org/git/guix.git »...
ice-9/eval.scm:223:20: In procedure proc:
erreur : %guix-register-program : variable non liée
conseil : Auriez-vous oublié un `use-modules' ?

Sorry for the french translation, but I assume you got that a module is
missing (BTW, that might mean that the example given in the manual section
for inferiors is missing it too). So for now I'm stuck, any help will be
much appreciated!

Cheers,
  Philippe.






[0] https://www.gnu.org/software/guix/manual/en/guix.html#Inferiors



Le lun. 10 juin 2019 à 23:31, Tobias Geerinckx-Rice <me@tobias.gr> a écrit :

> Philippe,
>
> Philippe Veber wrote:
> > I'm getting started with guix, and so far it's been just fine.
>
> Welcome!
>
> > I would like to see all available versions for a given package.
> > Is there a command that would help me with that?
>
> There is:
>
>   $ guix package --list-available=^glibc$
>   glibc 2.25    out,debug,static
>   gnu/packages/base.scm:921:2
>   glibc 2.22    out,debug,static
>   gnu/packages/base.scm:980:2
>   …
>
> For easier interactive use, you can use the short option ‘-A’.
>
> Note that this option takes a regular expression as argument.
> That makes it powerful, but means you'll have to enclose the name
> in ‘^…$’ if you want to match one specific package.
>
> Kind regards,
>
> T G-R
>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: List available versions of package.
  2019-06-11  7:43   ` Philippe Veber
@ 2019-06-22 11:26     ` Philippe Veber
  2019-06-22 19:08       ` Tobias Geerinckx-Rice
  2019-06-22 22:46       ` Ricardo Wurmus
  0 siblings, 2 replies; 11+ messages in thread
From: Philippe Veber @ 2019-06-22 11:26 UTC (permalink / raw)
  To: Tobias Geerinckx-Rice; +Cc: help-guix

Hello everyone,

FWIW, I tried the exact example given in the manual [0] and it failed,
although for a different reason. It does a lot of work until it reaches an
exception (the build of profile.drv fails). Could someone confirm this
should work? Also, is it expected that packages from guix commits dating
from a few years ago will still work in this setting? Thanks!

ph.

[0] https://www.gnu.org/software/guix/manual/en/guix.html#Inferiors

Le mar. 11 juin 2019 à 09:43, Philippe Veber <philippe.veber@gmail.com> a
écrit :

> Hello Tobias, and thanks a lot for your answer!
>
> So as I understand it, the distribution at a given moment contains only a
> few versions (often one), and not all that have been specified at some
> point. For instance, with your command I obtain:
>
> $ guix package --list-available=^bowtie$
> bowtie 2.3.4.3 out gnu/packages/bioinformatics.scm:1505:2
>
> while I could check on guix git log that there has been more versions of
> this bowtie program :
>
> $ git log packages/bioinformatics.scm | grep "gnu: bowtie"
>     gnu: bowtie: Update to 2.3.4.3.
>     gnu: bowtie: Use 'modify-phases'.
>     gnu: bowtie: Update to 2.3.2.
>     gnu: bowtie: Update to 2.2.9.
>     gnu: bowtie: Update to 2.2.6.
>
> My use case is to be able to run old versions of software (like you've
> never heard that before, right ;o)?) so is it correct to think that I have
> to write a manifest file and then use a :
>
> guix environment --manifest bowtie_2.2.9.scm -- bowtie2 ...
>
> ?
> If so, I'm not absolutely clear on the contents of the manifest file. I
> tried to get inspiration from the section on "Inferiors" [0], and wrote
> this:
>
> %% bowtie_2.2.9.scm %%%%%%%%%%%%%
> (use-modules (guix inferior) (guix channels)
>              (srfi srfi-1))   ;for 'first'
>
> (define channels
>   ;; This is the old revision from which we want to
>   ;; extract guile-json.
>   (list (channel
>          (name 'guix)
>          (url "https://git.savannah.gnu.org/git/guix.git")
>          (commit
>           "2642231b39d2f642364e96222690afce7c986bb6"))))
>
> (define inferior
>   ;; An inferior representing the above revision.
>   (inferior-for-channels channels))
>
> (packages->manifest
>  (list (first (lookup-inferior-packages inferior "bowtie"))))
> %%%%%%%%%%%%%%%
>
> but got the following result:
>
> $ guix environment --manifest=bowtie_2.2.9.scm -- bowtie2 --version
> Mise à jour du canal « guix » depuis le dépôt Git «
> https://git.savannah.gnu.org/git/guix.git »...
> ice-9/eval.scm:223:20: In procedure proc:
> erreur : %guix-register-program : variable non liée
> conseil : Auriez-vous oublié un `use-modules' ?
>
> Sorry for the french translation, but I assume you got that a module is
> missing (BTW, that might mean that the example given in the manual section
> for inferiors is missing it too). So for now I'm stuck, any help will be
> much appreciated!
>
> Cheers,
>   Philippe.
>
>
>
>
>
>
> [0] https://www.gnu.org/software/guix/manual/en/guix.html#Inferiors
>
>
>
> Le lun. 10 juin 2019 à 23:31, Tobias Geerinckx-Rice <me@tobias.gr> a
> écrit :
>
>> Philippe,
>>
>> Philippe Veber wrote:
>> > I'm getting started with guix, and so far it's been just fine.
>>
>> Welcome!
>>
>> > I would like to see all available versions for a given package.
>> > Is there a command that would help me with that?
>>
>> There is:
>>
>>   $ guix package --list-available=^glibc$
>>   glibc 2.25    out,debug,static
>>   gnu/packages/base.scm:921:2
>>   glibc 2.22    out,debug,static
>>   gnu/packages/base.scm:980:2
>>   …
>>
>> For easier interactive use, you can use the short option ‘-A’.
>>
>> Note that this option takes a regular expression as argument.
>> That makes it powerful, but means you'll have to enclose the name
>> in ‘^…$’ if you want to match one specific package.
>>
>> Kind regards,
>>
>> T G-R
>>
>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: List available versions of package.
  2019-06-22 11:26     ` Philippe Veber
@ 2019-06-22 19:08       ` Tobias Geerinckx-Rice
  2019-06-26 18:32         ` Philippe Veber
  2019-06-22 22:46       ` Ricardo Wurmus
  1 sibling, 1 reply; 11+ messages in thread
From: Tobias Geerinckx-Rice @ 2019-06-22 19:08 UTC (permalink / raw)
  To: Philippe Veber; +Cc: help-guix

[-- Attachment #1: Type: text/plain, Size: 1026 bytes --]

Philippe,

Le mar. 11 juin 2019 à 09:43, Philippe Veber 
<philippeveber@gmail.com> a écrit :
> Hello Tobias, and thanks a lot for your answer!

I completely missed this reply.  I am so sorry.

Philippe Veber wrote:
> Hello everyone,
>
> FWIW, I tried the exact example given in the manual [0] and it 
> failed,
> although for a different reason. It does a lot of work until it 
> reaches an
> exception (the build of profile.drv fails). Could someone 
> confirm this
> should work?

Pasting the contents of that first code box into ‘foo’ and running 
‘guix environment -m foo’ works fine for me on today's guix.

Could you tell us which command you're using and what the result 
is?

> Also, is it expected that packages from guix commits dating
> from a few years ago will still work in this setting? Thanks!

I'm not sure.  There have been some watershed moments in those 
years, and I don't know how well inferiors would isolate those 
changes, if at all.

Kind regards,

T G-R

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: List available versions of package.
  2019-06-22 11:26     ` Philippe Veber
  2019-06-22 19:08       ` Tobias Geerinckx-Rice
@ 2019-06-22 22:46       ` Ricardo Wurmus
  2019-06-26 18:43         ` Philippe Veber
  2019-07-02 15:48         ` Leo Famulari
  1 sibling, 2 replies; 11+ messages in thread
From: Ricardo Wurmus @ 2019-06-22 22:46 UTC (permalink / raw)
  To: Philippe Veber; +Cc: help-guix


Hi Philippe,

> Also, is it expected that packages from guix commits dating
> from a few years ago will still work in this setting? Thanks!

Commits before the introduction of inferiors likely won’t work,
unfortunately.

For running old versions I recommend writing new package variants
instead and including them in a channel.  Using inferiors is a good idea
when you want to reproduce a Guix environment that somebody else (or
your younger self) recorded, but I would not recommend them as a way to
make past software variants available.  If you are not interested in a
particular old state of the world but only care about a particular
version of a single piece of software (that may be built with current
toolchains and libraries) then package variants are a better idea.

For bioinfo package variants also take a look at the guix-bimsb channel:

    https://github.com/BIMSBbioinfo/guix-bimsb

(I should update the README to recommend using channels instead of
GUIX_PACKAGE_PATH…)

--
Ricardo

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: List available versions of package.
  2019-06-22 19:08       ` Tobias Geerinckx-Rice
@ 2019-06-26 18:32         ` Philippe Veber
  0 siblings, 0 replies; 11+ messages in thread
From: Philippe Veber @ 2019-06-26 18:32 UTC (permalink / raw)
  To: Tobias Geerinckx-Rice; +Cc: help-guix

Hi Tobias,

Le mar. 11 juin 2019 à 09:43, Philippe Veber
> <philippeveber@gmail.com> a écrit :
> > Hello Tobias, and thanks a lot for your answer!
>
> I completely missed this reply.  I am so sorry.
>

Really no worries, and thanks for lending your help!


>
> Philippe Veber wrote:
> > Hello everyone,
> >
> > FWIW, I tried the exact example given in the manual [0] and it
> > failed,
> > although for a different reason. It does a lot of work until it
> > reaches an
> > exception (the build of profile.drv fails). Could someone
> > confirm this
> > should work?
>
> Pasting the contents of that first code box into ‘foo’ and running
> ‘guix environment -m foo’ works fine for me on today's guix.
>
> Could you tell us which command you're using and what the result
> is?
>

The command is

guix environment --manifest=manifest.scm

and the log is available here:

https://gist.github.com/pveber/c6e9437f4964ec9f00e7f1ec6cccce52


>
> > Also, is it expected that packages from guix commits dating
> > from a few years ago will still work in this setting? Thanks!
>
> I'm not sure.  There have been some watershed moments in those
> years, and I don't know how well inferiors would isolate those
> changes, if at all.
>

Ok, that limitation makes a lot of sense. I think I'll follow Ricardo's
advice to enable installation of old versions. Again, thanks a lot!

ph.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: List available versions of package.
  2019-06-22 22:46       ` Ricardo Wurmus
@ 2019-06-26 18:43         ` Philippe Veber
  2019-06-26 20:25           ` Ricardo Wurmus
  2019-07-02 15:48         ` Leo Famulari
  1 sibling, 1 reply; 11+ messages in thread
From: Philippe Veber @ 2019-06-26 18:43 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: help-guix

Hi Ricardo,


> Also, is it expected that packages from guix commits dating
> > from a few years ago will still work in this setting? Thanks!
>
> Commits before the introduction of inferiors likely won’t work,
> unfortunately.
>

Sounds natural, thanks for the confirmation.


> For running old versions I recommend writing new package variants
> instead and including them in a channel.  Using inferiors is a good idea
> when you want to reproduce a Guix environment that somebody else (or
> your younger self) recorded, but I would not recommend them as a way to
> make past software variants available.  If you are not interested in a
> particular old state of the world but only care about a particular
> version of a single piece of software (that may be built with current
> toolchains and libraries) then package variants are a better idea.
>

Alright, thanks! One question though: I suppose dependencies of these
packages have to be maintained in the same channel right? Otherwise, if I
rely on packages from guix distribution, they can be dropped or updated to
an incompatible version at any moment. That scares me a little, because it
could break my channel anytime, or am I mistaken?


>
> For bioinfo package variants also take a look at the guix-bimsb channel:
>
>     https://github.com/BIMSBbioinfo/guix-bimsb
>
> (I should update the README to recommend using channels instead of
> GUIX_PACKAGE_PATH…)
>

Looks interesting for me! I'll ping you there for further questions!


> --
> Ricardo
>
>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: List available versions of package.
  2019-06-26 18:43         ` Philippe Veber
@ 2019-06-26 20:25           ` Ricardo Wurmus
  2019-06-30 11:50             ` Philippe Veber
  0 siblings, 1 reply; 11+ messages in thread
From: Ricardo Wurmus @ 2019-06-26 20:25 UTC (permalink / raw)
  To: Philippe Veber; +Cc: help-guix


Philippe Veber <philippe.veber@gmail.com> writes:

> I suppose dependencies of these
> packages have to be maintained in the same channel right? Otherwise, if I
> rely on packages from guix distribution, they can be dropped or updated to
> an incompatible version at any moment. That scares me a little, because it
> could break my channel anytime, or am I mistaken?

This is correct; it’s the Linux model of API stability: you need to make
sure that your code remains compatible.

-- 
Ricardo

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: List available versions of package.
  2019-06-26 20:25           ` Ricardo Wurmus
@ 2019-06-30 11:50             ` Philippe Veber
  0 siblings, 0 replies; 11+ messages in thread
From: Philippe Veber @ 2019-06-30 11:50 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: help-guix

Alright, thanks for all the clarifications!

Le mer. 26 juin 2019 à 22:25, Ricardo Wurmus <rekado@elephly.net> a écrit :

>
> Philippe Veber <philippe.veber@gmail.com> writes:
>
> > I suppose dependencies of these
> > packages have to be maintained in the same channel right? Otherwise, if I
> > rely on packages from guix distribution, they can be dropped or updated
> to
> > an incompatible version at any moment. That scares me a little, because
> it
> > could break my channel anytime, or am I mistaken?
>
> This is correct; it’s the Linux model of API stability: you need to make
> sure that your code remains compatible.
>
> --
> Ricardo
>
>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: List available versions of package.
  2019-06-22 22:46       ` Ricardo Wurmus
  2019-06-26 18:43         ` Philippe Veber
@ 2019-07-02 15:48         ` Leo Famulari
  1 sibling, 0 replies; 11+ messages in thread
From: Leo Famulari @ 2019-07-02 15:48 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: help-guix

On Sun, Jun 23, 2019 at 12:46:35AM +0200, Ricardo Wurmus wrote:
> Hi Philippe,
> > Also, is it expected that packages from guix commits dating
> > from a few years ago will still work in this setting? Thanks!
> 
> Commits before the introduction of inferiors likely won’t work,
> unfortunately.

Additionally, at least a few source code tarballs of old package
versions will no longer be available online, at least not at the URLs in
our package definitions. There are source code archive fallbacks that
Guix will use but no guarantee they contain what you will need.

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2019-07-02 15:48 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-06-10 18:27 List available versions of package Philippe Veber
2019-06-10 21:31 ` Tobias Geerinckx-Rice
2019-06-11  7:43   ` Philippe Veber
2019-06-22 11:26     ` Philippe Veber
2019-06-22 19:08       ` Tobias Geerinckx-Rice
2019-06-26 18:32         ` Philippe Veber
2019-06-22 22:46       ` Ricardo Wurmus
2019-06-26 18:43         ` Philippe Veber
2019-06-26 20:25           ` Ricardo Wurmus
2019-06-30 11:50             ` Philippe Veber
2019-07-02 15:48         ` Leo Famulari

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).