Skip to content

Instantly share code, notes, and snippets.

@deeplow
Last active June 29, 2024 18:31
Show Gist options
  • Save deeplow/90b84b215a10f84317ed03f4203f86c2 to your computer and use it in GitHub Desktop.
Save deeplow/90b84b215a10f84317ed03f4203f86c2 to your computer and use it in GitHub Desktop.
fedora dist-upgrade attempt
diff --git a/vmupdate/agent/source/dnf/dnf_api.py b/vmupdate/agent/source/dnf/dnf_api.py
index 814e6a7..a44734e 100644
--- a/vmupdate/agent/source/dnf/dnf_api.py
+++ b/vmupdate/agent/source/dnf/dnf_api.py
@@ -19,6 +19,7 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
# USA.
+import sys
import subprocess
import dnf
from dnf.yum.rpmtrans import TransactionDisplay
@@ -78,13 +79,27 @@ class DNF(DNFCLI):
result = ProcessResult()
try:
- self.log.debug("Performing package upgrade...")
- self.base.upgrade_all()
+ if version_upgrade:
+ self.log.debug("Performing a version upgrade...")
+ self.base.conf.releasever = version_upgrade
+
+ # refresh repos with the newly updated releasever
+ # self.base.read_all_repos()
+ # self.base.fill_sack()
+ self.base.distro_sync()
+ else:
+ self.log.debug("Performing package upgrade...")
+
+ self.base.upgrade_all() # possibly ignore
+
+ print('enabled repos', file=sys.stderr)
+ for repo in self.base.repos.iter_enabled():
+ print(f'repoid {repo.metalink}', file=sys.stderr)
# fill empty `Command line` column in dnf history
self.base.cmds = ["qubes-vm-update"]
- self.base.resolve()
+ self.base.resolve(allow_erasing = bool(version_upgrade))
trans = self.base.transaction
if not trans:
self.log.info("No packages to upgrade, quitting.")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment