From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: Re: How to install an old package version? Date: Fri, 28 Dec 2018 16:03:33 +0100 Message-ID: <87a7kp4rsq.fsf@elephly.net> References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([208.118.235.92]:32855) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gctyo-0005EK-Pd for help-guix@gnu.org; Fri, 28 Dec 2018 10:23:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gctqh-0004cq-Mt for help-guix@gnu.org; Fri, 28 Dec 2018 10:15:00 -0500 Received: from sender-of-o53.zoho.com ([135.84.80.218]:21842) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gctfs-0002ae-7y for help-guix@gnu.org; Fri, 28 Dec 2018 10:03:44 -0500 In-reply-to: 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: cdelia@dc.uba.ar Cc: help-guix@gnu.org 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 =E2=80=9Cresolving=E2=80=9D happens. Guix is a collection of Scheme var= iables whose values are package objects. These package objects refer to the values of other Scheme variables in Guix. So a package that depends on =E2=80=9Cpython=E2=80=9D actually references the value of the =E2=80=9Cpyth= on=E2=80=9D variable. This means that replacing a package in the dependency graph requires more effort. Adding the package definition itself won=E2=80=99t 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 =E2=80=9Cpython=E2=80=9D with =E2=80=9Cmy/python=E2=80=9D recur= sively. 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 =E2=80=9Cinferior=E2=80=9D Guix.= See my other message and/or the manual. I suggest using manifests for this instead of doing this manually. -- Ricardo