help-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: rolling back only a single package


From: Tonton
Subject: Re: rolling back only a single package
Date: Fri, 28 Dec 2018 12:35:47 +0100

Hello, and welcome :)

For packages where multiple versions are defined you can choose with
address@hidden e.g. address@hidden for the oldest guile on my system. A
simple way to see the versions is with the 'guix package --show=packagename'
flag. e.g. 'guix package --show=guile' will give you an entry per guile
version available.

It seems you are looking for a version of a package where the previous
definition was not kept on upgrade. Most likely because guix so far has not
kept old versions of leaf packages (i.e. packages with no dependencies);
which is why guile and python have several versions but xmobar has none.

I think the choice to not keep old definitions is to ease maintenance. But
this might be a valid discussion to have as we move towards 1.0. Maybe we
should have a policy of keeping one old version when we upgrade, as a kind of
fallback.

It occurs to me that maybe this is not a problem because of functional/purity
aspect of guix, and the package just needs a better definition? idk.

As a quick fix for xmobar I see it was updated to 0.28 in commit
ccd4fd3f2a614996bff5436cc22e4715a7eb1f31 and only two lines were changed. I
would create a file ~/my-guix-pakcages/my-xmobar.scm and put the following in
it:

-------------------------------------------------------------------------------------------------
(define-module (my-xmobar) ;; The name "my-xmobar" have to be 
                                               ;; the same as the filename
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (gnu packages)
  #:use-module (gnu packages wm))

(define-public my-xmobar
  (package
    (inherit xmobar)
    (name "xmobar")
    (version "0.27")
    (source (origin
             (method url-fetch)
               (uri (string-append "mirror://hackage/package/xmobar/"
                                   name "-" version ".tar.gz"))
              (sha256
               (base32
                "0agx490q6sbmv3vfq33ys8dsrgwizj3bmha4i1pkxz5wp5q8cx3l"))))))
-------------------------------------------------------------------------------------------------

Then add the file to your shells $GUIX_PACKAGE_PATH like 
'export GUIX_PACKAGE_PATH=~/my-guix-pakcages/:$GUIX_PACKAGE_PATH'
in your .profile or similar. Open a new shell and run:
guix package -i address@hidden

Hope that helps. :)

Tonton

On Thu, 27 Dec 2018 16:52:23 -0300
address@hidden wrote:

> Hi,
> 
> I upgraded guix a couple of days ago, installed some things and now I 
> found that xmobar just keeps segfaulting.
> 
> Switching to specific generation it's really cool, but in this case 
> would "uninstall" all the software that it's between the 
> update-generation and the current one.
> 
> So, there is any way to just downgrade a single package (resolving it 
> dependencies) with out doing a full switch?
> 
> I guess this it's connected to 
> https://lists.gnu.org/archive/html/help-guix/2016-08/msg00028.html
> 
> And I could also switch and then manually re install. But maybe there is 
> a standard or automatic way to do it.
> 
> Thanks!
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]