Let's say you've upgraded to tracker-3.4 and it doesn't work. You could mask tracker-3.4, but it depends on tracker-miners-3.4 so you'll have to mask that too. There may be other dependencies that you'd have to mask too. What you'd really rather do is go back in time. Let's see how we can do this with Gentoo Build Publisher.
See where you are now.
$ gbp list lighthouse
...
[* ] 10466 09/24/22 07:43:16
[* ] 10469 09/24/22 10:09:51
[* P ] 10471 09/24/22 11:55:14
We're currently at build 10471
and we think that's the one that pulled in
tracker-3.4. Let's be sure:
$ gbp status lighthouse 10471
Build: lighthouse/10471
BuildDate: Sat Sep 24 11:43:45 2022 -0500
Submitted: Sat Sep 24 11:55:14 2022 -0500
Completed: Sat Sep 24 11:59:01 2022 -0500
Published: yes
Keep: no
Tags:
Packages-built:
app-misc/tracker-3.4.0
app-misc/tracker-miners-3.4.0
gnome-extra/gnome-user-docs-43.0
gui-libs/libwpe-1.14.0
gui-libs/wpebackend-fdo-1.14.0
media-gfx/eog-43.0
media-gfx/gnome-font-viewer-43.0
net-libs/glib-networking-2.74.0
Yes, that's the one. Let's see what would happen if we went back from build
10471
to 10469
:
$ gbp diff lighthouse 10471 10469
diff -r lighthouse/10471 lighthouse/10469
--- a/lighthouse/10471 Sat Sep 24 11:43:45 2022 -0500
+++ b/lighthouse/10469 Sat Sep 24 10:04:09 2022 -0500
-app-misc/tracker-3.4.0-1
+app-misc/tracker-3.3.3-4
-app-misc/tracker-miners-3.4.0-1
+app-misc/tracker-miners-3.3.1-3
-gnome-extra/gnome-user-docs-43.0-1
+gnome-extra/gnome-user-docs-42.0-2
-gui-libs/libwpe-1.14.0-1
+gui-libs/libwpe-1.12.3-1
-gui-libs/wpebackend-fdo-1.14.0-1
+gui-libs/wpebackend-fdo-1.12.1-1
-media-gfx/eog-43.0-1
+media-gfx/eog-42.3-3
-media-gfx/gnome-font-viewer-43.0-1
+media-gfx/gnome-font-viewer-42.0-3
-net-libs/glib-networking-2.74.0-1
+net-libs/glib-networking-2.72.2-3
Ok, that would downgrade tracker and tracker-miners (and some other things). Let's assume that's what we want. So how do we go back? Easy:
$ gbp publish lighthouse 10469
This points Gentoo Build Publisher at build 10469
. However we'll need to
emerge --sync
to point our local portage to it. However portage, by
default, won't let us go back in time.
$ sudo emerge --sync --quiet
>>>
>>> SERVER OUT OF DATE: rsync://gbp/repos/lighthouse/gentoo
>>>
>>> In order to force sync, remove '/var/db/repos/gentoo/metadata/timestamp.chk'.
>>>
No need to worry. It even tells us what to do.
$ sudo rm /var/db/repos/gentoo/metadata/timestamp.chk
$ sudo emerge --sync --quiet
Then we can do an emerge "update" as usual:
$ sudo emerge -DuvaN --getbinpkg @world
These are the packages that would be merged, in order:
Calculating dependencies... done!
[binary N ] app-portage/elt-patches-20220831-1::gentoo 54 KiB
[binary UD ] gui-libs/libwpe-1.12.3-1:1.0::gentoo [1.14.0:1.0::gentoo] 66 KiB
[binary UD ] gui-libs/wpebackend-fdo-1.12.1-1:1.0::gentoo [1.14.0:1.0::gentoo] 57 KiB
[binary UD ] net-libs/glib-networking-2.72.2-3::gentoo [2.74.0::gentoo] USE="gnome ssl -libproxy -test" 162 KiB
[ebuild UD ] gnome-extra/gnome-user-docs-42.0::gentoo [43.0::gentoo] USE="-test" 0 KiB
[binary UD ] app-misc/tracker-3.3.3-4:3/0::gentoo [3.4.0:3/0::gentoo] USE="-gtk-doc -miners -stemmer -test" 752 KiB
[binary UD ] app-misc/tracker-miners-3.3.1-3:3::gentoo [3.4.0:3::gentoo] USE="(seccomp) -cue -exif -ffmpeg -gif -gsf -gstreamer -iptc -iso -jpeg -networkmanager -pdf -playlist -raw -rss -test -tiff -upower -xml -xmp -xps" 683 KiB
[binary UD ] media-gfx/eog-42.3-3:1::gentoo [43.0:1::gentoo] USE="exif introspection jpeg svg -gtk-doc -lcms -tiff -xmp" 1,181 KiB
[binary UD ] media-gfx/gnome-font-viewer-42.0-3::gentoo [43.0::gentoo] 179 KiB
Total: 9 packages (8 downgrades, 1 new, 8 binaries), Size of downloads: 3,132 KiB
Would you like to merge these packages? [Yes/No]
We might want to tag this build as well.
$ gbp tag lighthouse 10469 good-tracker
In a subsequent article we'll explore using tags with Gentoo Build Publisher.