Time to downgrade my main desktop finally came. This time I decided to provide more details about process as my system uses Rawhide with set of external repositories (RPM Fusion (official + my rebuilds), few COPR ones etc).
So first step is to enable caching because dnf by default erases all downloaded packages. And downgrade involves fetching many of them. Edit ‘/etc/dnf/dnf.conf’ file and add “keepcache=1” line there.
First try:
10:48 root@puchatek:hrw# dnf --releasever 24 --disablerepo rawhide --enablerepo fedora --enablerepo updates distro-sync --best --allowerasing
Error: package python2-deltarpm-3.6-17.fc25.x86_64 requires deltarpm(x86-64) = 3.6-17.fc25, but none of the providers can be installed.
package libcrypt-nss-2.24.90-6.fc26.x86_64 requires glibc(x86-64) = 2.24.90-6.fc26, but none of the providers can be installed.
package gmp-c++-1:6.1.1-1.fc25.x86_64 requires gmp(x86-64) = 1:6.1.1-1.fc25, but none of the providers can be installed.
package iproute-tc-4.7.0-1.fc26.x86_64 requires iproute(x86-64) = 4.7.0-1.fc26, but none of the providers can be installed.
package ffmpeg-libs-3.1.1-1.fc26.x86_64 requires libvpx.so.4()(64bit), but none of the providers can be installed.
package pcre-cpp-8.39-3.fc26.x86_64 requires pcre(x86-64) = 8.39-3.fc26, but none of the providers can be installed.
package perl-libintl-perl-1.26-1.fc25.x86_64 requires perl(:MODULE_COMPAT_5.24.0), but none of the providers can be installed.
package python3-rpm-4.13.0-0.rc1.46.fc26.x86_64 requires rpm(x86-64) = 4.13.0-0.rc1.46.fc26, but none of the providers can be installed.
package systemd-pam-231-4.fc26.x86_64 requires systemd = 231-4.fc26, but none of the providers can be installed.
package libvirt-libs-2.2.0-1.fc26.x86_64 requires libxenlight.so.4.7()(64bit), but none of the providers can be installed.
package glibc-2.24.90-6.fc26.i686 requires glibc-common = 2.24.90-6.fc26, but none of the providers can be installed.
package python2-rpm-4.13.0-0.rc1.46.fc26.x86_64 requires rpm(x86-64) = 4.13.0-0.rc1.46.fc26, but none of the providers can be installed.
nothing provides libhogweed.so.2()(64bit) needed by ffmpeg-libs-2.6.3-1.fc22.x86_64.
package ffmpeg-libs-3.1.1-1.fc26.x86_64 requires libvpx.so.4()(64bit), but none of the providers can be installed
As you see there is set of blockers. One of them is “ffmpeg-libs” from RPM Fusion, others are from normal Fedora repositories. One of reasons can be that packages got split/renamed since F24. Let’s try to handle some of them:
10:52 root@puchatek:hrw# dnf --releasever 24 --disablerepo rawhide --enablerepo fedora --enablerepo updates --best --allowerasing downgrade rpm glibc
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
rpm-python x86_64 4.13.0-0.rc1.27.fc24 fedora 102 k
rpm-python3 x86_64 4.13.0-0.rc1.27.fc24 fedora 102 k
Removing:
libcrypt-nss i686 2.24.90-6.fc26 @rawhide 34 k
libcrypt-nss x86_64 2.24.90-6.fc26 @rawhide 36 k
python2-rpm x86_64 4.13.0-0.rc1.46.fc26 @rawhide 182 k
python3-rpm x86_64 4.13.0-0.rc1.46.fc26 @rawhide 190 k
Downgrading:
glibc i686 2.23.1-10.fc24 updates 4.3 M
glibc x86_64 2.23.1-10.fc24 updates 3.6 M
glibc-common x86_64 2.23.1-10.fc24 updates 862 k
glibc-devel i686 2.23.1-10.fc24 updates 936 k
glibc-devel x86_64 2.23.1-10.fc24 updates 936 k
glibc-headers x86_64 2.23.1-10.fc24 updates 501 k
glibc-langpack-en x86_64 2.23.1-10.fc24 updates 276 k
glibc-langpack-pl x86_64 2.23.1-10.fc24 updates 133 k
glibc-static x86_64 2.23.1-10.fc24 updates 1.5 M
rpm x86_64 4.13.0-0.rc1.27.fc24 fedora 513 k
rpm-build x86_64 4.13.0-0.rc1.27.fc24 fedora 139 k
rpm-build-libs x86_64 4.13.0-0.rc1.27.fc24 fedora 117 k
rpm-libs x86_64 4.13.0-0.rc1.27.fc24 fedora 295 k
rpm-plugin-selinux x86_64 4.13.0-0.rc1.27.fc24 fedora 54 k
rpm-plugin-systemd-inhibit x86_64 4.13.0-0.rc1.27.fc24 fedora 54 k
Transaction Summary
================================================================================
Install 2 Packages
Remove 4 Packages
Downgrade 15 Packages
Total download size: 14 M
Is this ok [y/N]:
Went fine. So next set of blockers goes:
10:54 root@puchatek:hrw# dnf --releasever 24 --disablerepo rawhide --enablerepo fedora --enablerepo updates --best --allowerasing downgrade *deltarpm* gmp* iproute*
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
python-deltarpm x86_64 3.6-15.fc24 fedora 37 k
Removing:
gmp-c++ x86_64 1:6.1.1-1.fc25 @rawhide 23 k
iproute-tc x86_64 4.7.0-1.fc26 @rawhide 660 k
python2-deltarpm x86_64 3.6-17.fc25 @rawhide 44 k
Downgrading:
deltarpm x86_64 3.6-15.fc24 fedora 89 k
gmp i686 1:6.1.1-1.fc24 updates 305 k
gmp x86_64 1:6.1.1-1.fc24 updates 315 k
gmp-devel x86_64 1:6.1.1-1.fc24 updates 185 k
iproute x86_64 4.4.0-3.fc24 fedora 658 k
iptables x86_64 1.4.21-16.fc24 fedora 425 k
iptables-services x86_64 1.4.21-16.fc24 fedora 53 k
Transaction Summary
================================================================================
Install 1 Package
Remove 3 Packages
Downgrade 7 Packages
Total download size: 2.0 M
Is this ok [y/N]: y
Downloading Packages:
(1/8): deltarpm-3.6-15.fc24.x86_64.rpm 139 kB/s | 89 kB 00:00
(2/8): gmp-6.1.1-1.fc24.x86_64.rpm 384 kB/s | 315 kB 00:00
(3/8): gmp-6.1.1-1.fc24.i686.rpm 320 kB/s | 305 kB 00:00
(4/8): gmp-devel-6.1.1-1.fc24.x86_64.rpm 445 kB/s | 185 kB 00:00
(5/8): iptables-services-1.4.21-16.fc24.x86_64. 437 kB/s | 53 kB 00:00
(6/8): python-deltarpm-3.6-15.fc24.x86_64.rpm 303 kB/s | 37 kB 00:00
(7/8): iptables-1.4.21-16.fc24.x86_64.rpm 1.0 MB/s | 425 kB 00:00
(8/8): iproute-4.4.0-3.fc24.x86_64.rpm 1.1 MB/s | 658 kB 00:00
--------------------------------------------------------------------------------
Total 475 kB/s | 2.0 MB 00:04
Running transaction check
Transaction check succeeded.
Running transaction test
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Error: Transaction check error:
file /usr/lib64/libip4tc.so.0.1.0 from install of iptables-1.4.21-16.fc24.x86_64 conflicts with file from package iptables-libs-1.6.0-2.fc25.x86_64
file /usr/lib64/libip6tc.so.0.1.0 from install of iptables-1.4.21-16.fc24.x86_64 conflicts with file from package iptables-libs-1.6.0-2.fc25.x86_64
file /usr/lib64/libiptc.so.0.0.0 from install of iptables-1.4.21-16.fc24.x86_64 conflicts with file from package iptables-libs-1.6.0-2.fc25.x86_64
Error Summary
-------------
So let’s go level deeper with packaging:
10:56 root@puchatek:packages# rpm -e iptables-libs
error: Failed dependencies:
iptables-libs(x86-64) = 1.6.0-2.fc25 is needed by (installed) iptables-1.6.0-2.fc25.x86_64
libip4tc.so.0()(64bit) is needed by (installed) iptables-1.6.0-2.fc25.x86_64
libip4tc.so.0()(64bit) is needed by (installed) systemd-231-4.fc26.x86_64
libip4tc.so.0()(64bit) is needed by (installed) systemd-container-231-4.fc26.x86_64
libip6tc.so.0()(64bit) is needed by (installed) iptables-1.6.0-2.fc25.x86_64
libxtables.so.11()(64bit) is needed by (installed) iptables-1.6.0-2.fc25.x86_64
libxtables.so.11()(64bit) is needed by (installed) iproute-tc-4.7.0-1.fc26.x86_64
10:57 root@puchatek:packages# rpm -e iptables-libs --nodeps iproute-tc
10:57 root@puchatek:packages# rpm --oldpackage -U iptables-1.4.21-16.fc24.x86_64.rpm
And repeat previous dnf command as it works this time.
So next set of blockers has to go:
11:00 root@puchatek:packages# dnf --releasever 24 --disablerepo rawhide --enablerepo fedora --enablerepo updates --best --allowerasing downgrade systemd* libvirt* pcre*
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
systemd-compat-libs x86_64 229-13.fc24 updates 152 k
Removing:
libvirt-libs x86_64 2.2.0-1.fc26 @rawhide 22 M
pcre-cpp x86_64 8.39-3.fc26 @rawhide 39 k
perl-Sys-Virt x86_64 2.2.0-1.fc26 @rawhide 824 k
systemd-pam x86_64 231-4.fc26 @rawhide 282 k
Downgrading:
libvirt x86_64 1.3.3.2-1.fc24 updates 47 k
libvirt-client x86_64 1.3.3.2-1.fc24 updates 4.4 M
libvirt-daemon x86_64 1.3.3.2-1.fc24 updates 619 k
libvirt-daemon-config-network x86_64 1.3.3.2-1.fc24 updates 47 k
libvirt-daemon-config-nwfilter x86_64 1.3.3.2-1.fc24 updates 50 k
libvirt-daemon-driver-interface x86_64 1.3.3.2-1.fc24 updates 90 k
libvirt-daemon-driver-libxl x86_64 1.3.3.2-1.fc24 updates 163 k
libvirt-daemon-driver-lxc x86_64 1.3.3.2-1.fc24 updates 724 k
libvirt-daemon-driver-network x86_64 1.3.3.2-1.fc24 updates 241 k
libvirt-daemon-driver-nodedev x86_64 1.3.3.2-1.fc24 updates 89 k
libvirt-daemon-driver-nwfilter x86_64 1.3.3.2-1.fc24 updates 114 k
libvirt-daemon-driver-qemu x86_64 1.3.3.2-1.fc24 updates 528 k
libvirt-daemon-driver-secret x86_64 1.3.3.2-1.fc24 updates 82 k
libvirt-daemon-driver-storage x86_64 1.3.3.2-1.fc24 updates 274 k
libvirt-daemon-driver-uml x86_64 1.3.3.2-1.fc24 updates 98 k
libvirt-daemon-driver-vbox x86_64 1.3.3.2-1.fc24 updates 197 k
libvirt-daemon-driver-xen x86_64 1.3.3.2-1.fc24 updates 161 k
libvirt-daemon-kvm x86_64 1.3.3.2-1.fc24 updates 46 k
libvirt-daemon-qemu x86_64 1.3.3.2-1.fc24 updates 46 k
libvirt-python x86_64 1.3.3-3.fc24 updates 255 k
pcre i686 8.39-3.fc24 updates 413 k
pcre x86_64 8.39-3.fc24 updates 404 k
pcre-devel x86_64 8.39-3.fc24 updates 544 k
pcre2 x86_64 10.21-6.fc24 updates 414 k
qemu x86_64 2:2.6.1-1.fc24 updates 63 k
qemu-common x86_64 2:2.6.1-1.fc24 updates 323 k
qemu-img x86_64 2:2.6.1-1.fc24 updates 828 k
qemu-kvm x86_64 2:2.6.1-1.fc24 updates 62 k
qemu-system-aarch64 x86_64 2:2.6.1-1.fc24 updates 2.5 M
qemu-system-alpha x86_64 2:2.6.1-1.fc24 updates 1.9 M
qemu-system-arm x86_64 2:2.6.1-1.fc24 updates 2.5 M
qemu-system-cris x86_64 2:2.6.1-1.fc24 updates 1.4 M
qemu-system-lm32 x86_64 2:2.6.1-1.fc24 updates 1.4 M
qemu-system-m68k x86_64 2:2.6.1-1.fc24 updates 1.9 M
qemu-system-microblaze x86_64 2:2.6.1-1.fc24 updates 2.7 M
qemu-system-mips x86_64 2:2.6.1-1.fc24 updates 8.4 M
qemu-system-moxie x86_64 2:2.6.1-1.fc24 updates 1.4 M
qemu-system-or32 x86_64 2:2.6.1-1.fc24 updates 1.4 M
qemu-system-ppc x86_64 2:2.6.1-1.fc24 updates 6.8 M
qemu-system-s390x x86_64 2:2.6.1-1.fc24 updates 1.7 M
qemu-system-sh4 x86_64 2:2.6.1-1.fc24 updates 3.7 M
qemu-system-sparc x86_64 2:2.6.1-1.fc24 updates 3.3 M
qemu-system-tricore x86_64 2:2.6.1-1.fc24 updates 1.4 M
qemu-system-unicore32 x86_64 2:2.6.1-1.fc24 updates 1.4 M
qemu-system-x86 x86_64 2:2.6.1-1.fc24 updates 4.5 M
qemu-system-xtensa x86_64 2:2.6.1-1.fc24 updates 2.7 M
qemu-user x86_64 2:2.6.1-1.fc24 updates 8.3 M
systemd x86_64 229-13.fc24 updates 5.1 M
systemd-container x86_64 229-13.fc24 updates 1.0 M
systemd-devel x86_64 229-13.fc24 updates 288 k
systemd-libs i686 229-13.fc24 updates 482 k
systemd-libs x86_64 229-13.fc24 updates 457 k
systemd-udev x86_64 229-13.fc24 updates 1.2 M
xen-libs x86_64 4.6.3-4.fc24 updates 574 k
Transaction Summary
================================================================================
Install 1 Package
Remove 4 Packages
Downgrade 54 Packages
Total download size: 80 M
Is this ok [y/N]:
[..]
Error: Transaction check error:
file /usr/lib64/libpcre32.so.0.0.7 from install of pcre-8.39-3.fc24.x86_64 conflicts with file from package pcre-utf32-8.39-3.fc26.x86_64
file /usr/lib64/libpcre16.so.0.2.7 from install of pcre-8.39-3.fc24.x86_64 conflicts with file from package pcre-utf16-8.39-3.fc26.x86_64
Let’s go back to rpm:
11:14 root@puchatek:packages# rpm -e pcre-utf16 pcre-utf32 --nodeps
11:14 root@puchatek:packages# dnf --releasever 24 --disablerepo rawhide --enablerepo fedora --enablerepo updates --best --allowerasing downgrade -y "pcre*"
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Removing:
pcre-cpp x86_64 8.39-3.fc26 @rawhide 39 k
Downgrading:
pcre i686 8.39-3.fc24 updates 413 k
pcre x86_64 8.39-3.fc24 updates 404 k
pcre-devel x86_64 8.39-3.fc24 updates 544 k
pcre2 x86_64 10.21-6.fc24 updates 414 k
Transaction Summary
================================================================================
Remove 1 Package
Downgrade 4 Packages
Total size: 1.7 M
Downloading Packages:
[..]
Complete!
Now previous dnf command succeddes.
Last blocker is “perl-libintl-perl” package. In F24 it was named “perl-libintl” so dnf is not able to handle downgrading. Simplest way is removal of it. Will install removed packages later.
11:23 root@puchatek:packages# dnf remove perl-libintl-perl Dependencies resolved.
================================================================================
Package Arch Version Repository
Size
================================================================================
Removing:
libpaper x86_64 1.1.24-12.fc24 @rawhide 83 k
mutt x86_64 5:1.7.0-1.fc26 @rawhide 5.4 M
perl-Class-Inspector noarch 1.28-15.fc25 @rawhide 57 k
perl-Class-Method-Modifiers noarch 2.12-3.fc25 @rawhide 100 k
perl-Class-MethodMaker x86_64 2.24-6.fc25 @rawhide 20 M
perl-Convert-BinHex noarch 1.125-3.fc25 @rawhide 98 k
perl-Data-Perl noarch 0.002009-7.fc25 @rawhide 89 k
perl-Devel-GlobalDestruction noarch 0.13-7.fc25 @rawhide 17 k
perl-Exporter-Tiny noarch 0.042-6.fc25 @rawhide 78 k
perl-File-ShareDir noarch 1.102-7.fc25 @rawhide 19 k
perl-Filter-Simple noarch 0.92-365.fc25 @rawhide 50 k
perl-GnuPG-Interface noarch 0.52-5.fc25 @rawhide 136 k
perl-Import-Into noarch 1.002005-3.fc25 @rawhide 20 k
perl-List-MoreUtils x86_64 0.416-1.fc25 @rawhide 200 k
perl-MIME-tools noarch 5.508-1.fc26 @rawhide 508 k
perl-MailTools noarch 2.18-2.fc25 @rawhide 193 k
perl-Moo noarch 2.002004-1.fc25 @rawhide 180 k
perl-MooX-HandlesVia noarch 0.001008-6.fc25 @rawhide 43 k
perl-MooX-late noarch 0.015-9.fc25 @rawhide 37 k
perl-Net-IDN-Encode x86_64 2.300-4.fc25 @rawhide 292 k
perl-Role-Tiny noarch 2.000003-3.fc25 @rawhide 39 k
perl-SelfLoader noarch 1.23-378.fc26 @rawhide 23 k
perl-Text-Balanced noarch 2.03-365.fc25 @rawhide 153 k
perl-Type-Tiny noarch 1.000005-7.fc25 @rawhide 581 k
perl-Unicode-EastAsianWidth noarch 1.33-8.fc25 @rawhide 13 k
perl-libintl-perl x86_64 1.26-1.fc25 @rawhide 4.2 M
perl-strictures noarch 2.000003-2.fc25 @rawhide 34 k
pgp-tools x86_64 2.2-3.fc25 @rawhide 449 k
texinfo x86_64 6.1-3.fc25 @rawhide 4.5 M
tokyocabinet x86_64 1.4.48-6.fc24 @rawhide 1.3 M
urlview x86_64 0.9-19.20131022git08767a.fc24
@rawhide 49 k
Transaction Summary
================================================================================
Remove 31 Packages
Installed size: 39 M
Is this ok [y/N]: y
Ok. All blockers removed. Time to call distro-sync:
11:24 root@puchatek:packages# dnf --releasever 24 --disablerepo rawhide --enablerepo fedora --enablerepo updates distro-sync --best --allowerasing
[.. long list of packages ..]
Transaction Summary
================================================================================
Install 11 Packages
Upgrade 13 Packages
Remove 4 Packages
Downgrade 2224 Packages
Total size: 2.1 G
Total download size: 2.1 G
Is this ok [y/N]:
[..]
Error: Transaction check error:
file /usr/lib64/liblua-5.3.so from install of lua-5.3.3-2.fc24.x86_64 conflicts with file from package lua-libs-5.3.3-3.fc25.x86_64
This is less fun… RPM needs Lua to work. So I went around. Unpacked Lua package from F24, then “rpm -e —nodeps lua-libs” and copied “lib64” from just unpacked package directly into system. Then downgraded “lua” using dnf.
Next step? Distro sync of course. This time it works. Now kernel needs to be taken care of.
I had 4.6.0 kernel installed from I have no idea when. Booted it and it allowed me to remove all “4.8-rc” kernels I got from rawhide. Then simple “dnf install kernel” to get 4.7.2 from updates repo and after one more reboot I got:
15:52 hrw@puchatek:~$ lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: Fedora
Description: Fedora release 24 (Twenty Four)
Release: 24
Codename: TwentyFour
As you see it took far more time than I expected it will. I learnt that ‘keepcache’ is not enabled (had to fetch 2GB of packages again), found ‘minrate’ dnf config option which helps me avoid slow Austrian mirror.