[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!
>