Project:Systemd/Maintenance
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.
/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:
user $
git clone git://anongit.freedesktop.org/systemd/systemd
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