Re: How to install an old package version?

2018-12-28 Thread Ricardo Wurmus


Hi cdelia,

> How does guix resolves de dependency tree in those cases? Say I need a
> previous package X version, that depends on an earlier package Y
> version that the one that is defined on the "main" guix.

No “resolving” happens.  Guix is a collection of Scheme variables whose
values are package objects.  These package objects refer to the values
of other Scheme variables in Guix.  So a package that depends on
“python” actually references the value of the “python” variable.

This means that replacing a package in the dependency graph requires
more effort.  Adding the package definition itself won’t be enough.  You
would need to use the input rewriting API to rewrite the full dependency
graph of the packages that you are interested in, replacing every
instance of “python” with “my/python” recursively.

Obviously, this would result in packages for which we cannot provide
binaries.

>> Alternatively, you can use a guix git checkout on a specific commit
>> that
>> still has python-2.7.10, but it's probably not what you want.
>
> So, to avoid recursive definition of packages: Could I checkout an
> earlier guix revision, install the package and then checkout the
> latest guix version?
> Would that work or it will bring other kind of dragons?

You can do this in a manifest and using an “inferior” Guix.  See my
other message and/or the manual.  I suggest using manifests for this
instead of doing this manually.

--
Ricardo




Re: How to install an old package version?

2018-12-27 Thread cdelia

Hi!

real newbie to guix here!

You have to make your own package for this version, that would look 
like

this:

(define-public python-2.7.10
 (package
   (inherit python)
   (version "2.7.10")
   (source (origin
 (inherit (package-source python-2.7))
 (uri (string-append "https://www.python.org/ftp/python/;;
 version "/Python-" version ".tar.xz"))
 (sha256 (base32 "some-letters-and-numbers"))

and to put it to a file from GUIX_PACKAGE_PATH.
See (info "(guix) Package Modules") for details.



This brings me some doubts.

How does guix resolves de dependency tree in those cases? Say I need a 
previous package X version, that depends on an earlier package Y version 
that the one that is defined on the "main" guix.


Do I have to do the sema that Alex suggests so guix can resolve it? I 
guess that'll be the answer. But in that case I'll maybe find myself in 
a time consuming recursive package definition.


Alternatively, you can use a guix git checkout on a specific commit 
that

still has python-2.7.10, but it's probably not what you want.


So, to avoid recursive definition of packages: Could I checkout an 
earlier guix revision, install the package and then checkout the latest 
guix version?

Would that work or it will bring other kind of dragons?

If that's the case, it could be done automatically. Does anybody try to 
do it, so we can simple specify the version of the package to install in 
"guix package" cmd?





Re: How to install an old package version?

2016-08-12 Thread Alex Kost
Hartmut Goebel (2016-08-11 22:16 +0300) wrote:

> Hi,
>
> I'm curious about how to install an old package version with guix.
>
> Example for what I mean:
>
> In e.g Debian, the list of available packages is separate from
> apt-get (et al.). So I can query all available versions of a package
> and install the version I need:
>
>  $ apt-cache madison nginx
>  nginx | 1.9.10-1~bpo8+3 | http://debian.mirror.lrz.de/debian/
> jessie-backports/ma
>  nginx | 1.6.2-5+deb8u2 | http://security.debian.org/ jessie/
> updates/main amd64 Pa
>
>
> Now in guix, the list of available packages is build into guix, there
> is no external cache. So how can I e.g. install python-2.7.10 after I
> installed guix 0.11.0, which only defines python-2.7.11?

You have to make your own package for this version, that would look like
this:

(define-public python-2.7.10
  (package
(inherit python)
(version "2.7.10")
(source (origin
  (inherit (package-source python-2.7))
  (uri (string-append "https://www.python.org/ftp/python/;
  version "/Python-" version ".tar.xz"))
  (sha256 (base32 "some-letters-and-numbers"))

and to put it to a file from GUIX_PACKAGE_PATH.
See (info "(guix) Package Modules") for details.

Alternatively, you can use a guix git checkout on a specific commit that
still has python-2.7.10, but it's probably not what you want.

-- 
Alex



How to install an old package version?

2016-08-11 Thread Hartmut Goebel
Hi,

I'm curious about how to install an old package version with guix.

Example for what I mean:

In e.g Debian, the list of available packages is separate from apt-get
(et al.). So I can query all available versions of a package and install
the version I need:

 $ apt-cache madison nginx
 nginx | 1.9.10-1~bpo8+3 | http://debian.mirror.lrz.de/debian/
jessie-backports/ma
 nginx | 1.6.2-5+deb8u2 | http://security.debian.org/
jessie/updates/main amd64 Pa

Now in guix, the list of available packages is build into guix, there is
no external cache. So how can I e.g. install python-2.7.10 after I
installed guix 0.11.0, which only defines python-2.7.11?

-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog:
http://www.goebel-consult.de/blog/bewertung-pgp-verschlusselung-bei-web.de-und-gmx

Kolumne:
http://www.cissp-gefluester.de/2012-04-compliance-bringt-keine-sicherheit