Project:Systemd/Maintenance

From Gentoo Wiki
Jump to:navigation Jump to:search

sys-apps/systemd ebuild maintenance tips.

Live ebuild

Please remember to keep the live ebuild in sync with newest release, and the other way around. This includes copying keywords to the live ebuild.

Subslot

The subslot should be a sum of SONAMEs of all libraries that are suitable for linking to, that is: libudev, libgudev, libsystemd-*.

After changing the subslot, please remember to update virtual/udev as well. The any-of dep in the virtual should list all the subslots of systemd that have libudev/libgudev SONAME matching the virtual.

CODE Example library listing
/usr/lib64/libsystemd-daemon.so.0
/usr/lib64/libudev.so.1
/usr/lib64/libgudev-1.0.so.0
/usr/lib64/libsystemd-id128.so.0
/usr/lib64/libsystemd-journal.so.0
/usr/lib64/libsystemd-login.so.0

For example, the subslot for the above set would be: 0+1+0+0+0+0 = 1.

Small changes and breaking changes

If you'd like to make a small change that requires revbump but alone doesn't deserve one, do it on the live ebuild. We'll copy it when doing next revbump/release.

If you'd like to make a potentially breaking change, do it on the live ebuild first. This will ensure it gets some testing from our brave users before we unleash it globally.

Version bumps

When preparing for a version bump, always check at least NEWS, configure.ac and Makefile.am.

user $git diff v206..v207 NEWS configure.ac Makefile.am

Preferably, start off the live ebuild which can have some pending changes already:

user $unifdef -ULIVE -B -t systemd-9999.ebuild > systemd-207.ebuild

Remember to sync your changes back to the live ebuild as well!

Always reboot and test new systemd before committing it!

Backporting patches

Please limit your backports to regression fixes and other important bug fixes. Avoid backporting cosmetic changes, new features, and especially avoid backporting patches that change the API/ABI.

If you need to backport patches, use our systemd.git fork for that.

If you don't have systemd clone yet:

The, add us as another remote in your repo:

user $git remote add gentoo git@github.com:gentoo/systemd.git
user $git fetch --all

If that's the first backport for the version, you will need to start the branch for it:

user $git branch gentoo-207 v207

Check the proper branch out and cherry-pick any patches you need:

user $git checkout gentoo-207
user $git cherry-pick 625f65ad929cb293aeb 0a74184d5bc2cb50360cc

Then, re-create all the patches and rename them to match PV:

user $git format-patch v207
user $for a in *.patch; do mv $a 207-$a; done

Please remember to push your changes back, so that others could backport more on top of your patch stack!

user $git push -u gentoo gentoo-207