presenting the Rawhide Downgrade to past date script

The this script gets the latest updates via dnf log files and reversed the system back to a given date in time, that is still in the logfile.

Presenting the Rawhide Downgrade to past date script

It’s far from perfect, but tries it’s best.  You need to install koji package first:  „dnf install koji

Most likely outcome: some packages will be missing, because koji can’t find them and some will be double present, with different versions and you end up in a collision. Remove the higher version files manually and do „dnf downgrade ./*rpm

Usage: scriptname {timestamp}

#!/bin/bash

grep "Upgraded:" /var/log/dnf.rpm.log | sort -r > /tmp/liste

mkdir rpmdownload
cd rpmdownload

if [ "" == "$1" ]; then

	echo "Keine Zeit angegeben.. benutze 4.2.2021"
	since=$(date --date="2021-02-04T00:00:00+0100" "+%s")

else 
	since=$(date --date="$1" "+%s")

fi

packs=""

declare -A old = ()

IFS=$'\n'
for line in $(cat /tmp/liste)
do 

	date=$(echo $line|sed -e "s/ .*//g")
	pkg=$(echo $line|sed -e "s/^.*: //g")
	
	time=$(date --date="$date" "+%s")

	if [ $time -gt $since ]; then 
	
		echo "$date => OK => $pkg"
		
		koji download-build --rpm $pkg
		basename=$(rpm -q --queryformat="%{Name}" ./$pgk)

		if [ "${old[$basename]}" != "" ]; then
			echo "found old entry ${old[$basename]}";
			rm -f ${old[$basename]}
		fi 

		$old[$basename]="$pkg"
		packs="$packs $pkg"
		
	else 
	
		echo "$date => IGNORE => $pkg"
	fi
	
done

if [ "$packs" != "" ]; then

	dnf -y downgrade ./*rpm
	
fi 

When is it usefull?

If something, you don’t know of, broke the system by Updates and you need to undo tons of downgrades. Happend to pinephones on the 8th of February 2021.

Fedora 30: dnf segfaults wegen zchunks

Ja wir haben den 1. April, heißt aber nicht, daß alle Meldungen gleich auf einem Pseudobayrischen Verschlüsselungsmodus laufen  müssen 😀

Leider sind meine Nachrichten nicht dem 1.April geschuldet, sondern dem Umstand, daß DNF kleinere Probleme unter Fedora 30 hat. Um genau zu sein, hat die librepo das Problem und kann zeitweise keine Updates vom Fedora 30 Testrepo empfangen, weil die Metadaten als zchunk kommen, also komprimiert. Dafür gabs eigentlich einen Fix, aber der wurde durch ein Update der librepo zunichte gemacht, der ein noch größeres Loch aufriss, als er stopfte. Passiert halt mal.

Betroffene User sollen einfach mal zchunks in der dnf.conf abschalten und solange warten, bis die Patche durchgelaufen sind :

„I have submitted a fix[2] for the bug, but for now any F30 users need to do one of the following:
* Wait until the next updates push is out. It won’t have zchunk metadata, so updates will work normally again.
* Set zchunk=False in /etc/dnf/dnf.conf. This will force dnf to fall back to non-zchunk metadata, bypassing the bug.
Many apologies for the inconvenience.“

[2] https://github.com/rpm-software-management/librepo/pull/148

Dann macht das einfach mal, wenn Ihr schon Fedora 30 benutzt 😉

DNF Optionen für Eillige

Wer kennt das nicht: Der 9 Uhr Termin rückt unaufhaltsam näher, aber am Konferenzort gibt es kein oder nur mobiles Internet per Hotspot. Das Laptop will aber unbedingt noch Updates einspielen! Die Zeit drängt, was tun ?

Das Internet ist doch nicht so ubiquitär wie man denkt

So allgegenwärtig wie man es gern hätte, ist es zumindest in Deutschen Ballungsräumen eben doch nicht zu haben, in Schweden auf einer Bergwandertour dagegen schon, da könnt ihr nebenbei NetFlix in 4k streamen.

Zurück zu unserem Problem:  Was machen also? Na klar, wir laden die Updates erstmal nur und spielen die dann später ein, wenn wir da sind.

Das geht so : Schritt 1

sudo dnf update -y –downloadonly

Nun lädt dnf zu hause erstmal nur die Pakete und lagert Sie auf der Platte ein. Man kann den PC abschalten. Am Tagungsort kommt dann Schritt 2:

sudo dnf -C update

Jetzt versucht dnf nicht erst in Netz die Repoquellen zu ziehen, sondern arbeitet lokal,  aus dem Cache halt.

Problem gelöst. Während Ihr Euch entspannt dem „Meeting“ widmet, spielt Eurer LinuxLaptop locker seine Updates ein.

Kann es auch zu Problemen kommen?

In der Theorie … JA . Es kann nämlich sein, daß Eurer Laptop mit dem neuen Softwarestand nicht funktionieren möchte. Das Risiko hat man ja immer. Im Kernelbereich geht es noch, weil die letzten zwei Versionen vorgehalten werden und wegupdaten kann er die ja auf dem Meeting ohne Netz nicht, aber für alle anderen Programme gilt das nicht. Startet also bspw. Thunderbird mit dem neuesten Stand nicht sauber, kann man das ohne Netz nur beheben, wenn man ein altes Paket bereit gelegt hat. Das würde wohl auch unter Backup fallen.

… ich hatte da grade eine Idee. Laßt mich mal machen 😉