--- /dev/null
+#!/usr/bin/python3
+
+import itertools
+import shlex
+import subprocess
+
+def _(*args):
+ print(shlex.join(args))
+ subprocess.run(args, check=True)
+
+def clean():
+ _("rpm", "--rebuilddb")
+ _("dnf", "clean", "all")
+
+def update_disabled(repos):
+ args = ["dnf", "update", "-y"] + list(itertools.chain(*[("--disablerepo", r) for r in repos]))
+ _(*args)
+
+def update_enabled(repos):
+ args = ["dnf", "update", "-y", "--disablerepo=*"] + list(itertools.chain(*[("--enablerepo", r) for r in repos]))
+ _(*args)
+
+clean()
+
+problematic_repos = ["copr:copr.fedorainfracloud.org:mlampe:emacs-30", "okay", "extras"]
+
+update_disabled(problematic_repos)
+
+failed = []
+
+for r in problematic_repos:
+ try:
+ update_enabled([r])
+ except Exception as e:
+ failed.append(r)
+ print(f"fail {r}: {e}")
+
+print(f"failed {failed}")