Xen 4.20.0~rc2+1-gfcde5e0de8-1~exp1 for Debian Experimental

This starts off as a copy of the 'last known good' checklist. Update stuff on the go, kthxbye

  • Create a salsa gitlab issue about the package update, where we will paste the result of this checklist into when we're done, for historical purposes. #70 (closed)
  • Look at upstream, what's in the staging-x.y (in this case master branch) branch now?
  • Wait for upstream ci pipeleine to succeed and for stable-x.yz to advance, see https://gitlab.com/xen-project/hardware/xen/-/commits/staging?ref_type=HEADS
  • pick upstream commit that we're going to advance the packaging to (git describe upstream/master) -> 4.20.0-rc2-1-gfcde5e0de8
  • choose full target version number -> 4.20.0~rc2+1-gfcde5e0de8-1~exp1
  • Find out if there's additional packaging changes or things related to open BTS bugs we need to do, and insert checklist items for them at the right place.
  • fetch upstream into packaging working copy
  • look through new upstream changes, assemble list of XSA info for the changelog -> already in final format! see also https://xenbits.xen.org/xsa/
  Significant changes:
  * Update to new upstream version 4.20.0~rc2+1-gfcde5e0de8.

  Changes related to upgrading to Xen 4.20:
  * debian/control: adjust to 4.20
  * Refresh remaining patches if needed
  * debian: ship the new xsd_glue ocaml plugin in xen-utils-V

  Packaging minor fixes and improvements:
  * d/copyright: update year to 2025
  * debian: convert xen-doc to architecture all
  * d/control: mark libxen-dev as Multi-Arch: same
  * d/control: remove versioned dpkg-dev from Build-Depends
  * d/rules: remove environment variables no longer needed for reproducible
    builds
  * d/rules: disable debug build for xen tools
  * update lintian overrides
  • create upstream/xyz tag, git tag -s upstream/4.20.0_rc2+1-gfcde5e0de8 -m "Tag current upstream master branch for Debian baseline" 4.20.0-rc2-1-gfcde5e0de8
  • look at the current state of the packaging repo; do we have the right starting point? (like, the debian/xyz tag of previous upload)
  • Switch to a work in progress branch, like wip/experimental (or, hard reset wip/experimental to match experimental)`
  • Do gdr new-upstream magic -> git debrebase -fupstream-not-ff new-upstream 4.20.0~rc2+1-gfcde5e0de8-1~exp1
  • Apply packaging patches for the new version
  • Set changelog to release to unstable: dch --release --distribution experimental
  • Write the debian/changelog entry. Just look at the previous ones for formatting examples.
  • Git commit changelog: debian/changelog: finish 4.20.0~rc2+1-gfcde5e0de8-1~exp1
  • Launder branch: git debrebase
  • Have gdr update the debian/patches stuff git debrebase make-patches
  • Push the upstream/xyz tag to salsa git push <remote> upstream/4.20.0_rc2+1-gfcde5e0de8
  • Push the wip branch to salsa, and let gitlab-ci also build it git push <remote> --force-with-lease
  • Create orig.tar.whatever -> git-deborig
  • Create source package using dgit build-source. It should say: "nothing quilty to commit, ok."
  • Do a local build sbuild -d experimental -c unstable-amd64 xen_4.20.0~rc2+1-gfcde5e0de8-1~exp1.dsc
  • Smoke test, e.g. reboot a physical server with it, move some domU to it, do some live migrate, some restart etc.
  • Take a proper break
  • Check for any failures in salsa pipeline
  • Triple check debian/changelog for stupid errors
  • Do git debrebase conclude
  • Do git debrebase make-patches (so that dgit does not do it in a different way itself... note to future myself: what's going on here?)
  • Push wip/experimental to salsa if you're not the one doing the next step git push --force-with-lease -o ci.skip
  • Merge WIP branch that is now finalized into the real branch (e.g. git switch experimental; git merge --ff-only wip/experimental) so that whoever looks in our repo always sees something that corresponds to the current package in Debian.
  • git push <remote>
  • Double check that you now ended up with wip/experimental and experimental being at the same point in git history (note: remove this later?)
  • Upload: dgit push-source
  • Push archive/debian/sdf and debian/xyz tag to salsa
  • Wait for ACCEPTED
  • Wait for buildds to complete https://buildd.debian.org/status/package.php?p=xen&suite=experimental
  • Wait for the new version to actually end up in experimental
  • Move all of this to the salsa issue and remove it from the pad
Edited by Maximilian Engelhardt