systemd/debian
Michael Biebl 928e4fd7be Drop Breaks for packages shipping rcS init scripts
This transition was completed in stretch.
2017-06-19 16:05:59 +02:00
..
extra debian/extra/checkout-upstream: Rebase PR against master 2017-04-26 08:56:21 +02:00
patches hwdb: Use path_join() to generate the hwdb_bin path 2017-06-01 16:09:31 +02:00
source No longer necessary with gbp 2014-04-26 10:25:11 +02:00
tests Split upstream tests into systemd-tests binary package 2017-04-08 11:40:37 +02:00
changelog Release version 233-8 to experimental 2017-05-29 14:14:32 +02:00
compat Bump debhelper compatibility level to 10 2017-05-26 15:15:23 +02:00
control Drop Breaks for packages shipping rcS init scripts 2017-06-19 16:05:59 +02:00
copyright Update Homepage and the URLs in debian/copyright to use https 2017-01-22 08:18:14 +01:00
gbp.conf debian/gbp.conf: Enable dch options "full" and "multimaint-merge" 2016-07-14 14:08:55 +02:00
git-cherry-pick git-cherry-pick: Actually use cherry-pick for picking 2017-03-08 11:05:54 -03:00
libnss-myhostname.install Move a few files into their correct packages 2015-07-08 18:49:15 +02:00
libnss-myhostname.lintian-overrides Override package-name-doesnt-match-sonames lintian warning for libnss-* 2017-03-03 18:48:14 +01:00
libnss-myhostname.postinst nss-my*.postinst: configure at the end of the hosts line, not before files. 2015-07-27 15:06:21 +02:00
libnss-myhostname.postrm libnss-*.prerm: Remove possible [key=value] options from NSS modules as well 2016-09-20 13:25:28 +02:00
libnss-mymachines.install Move a few files into their correct packages 2015-07-08 18:49:15 +02:00
libnss-mymachines.lintian-overrides Override package-name-doesnt-match-sonames lintian warning for libnss-* 2017-03-03 18:48:14 +01:00
libnss-mymachines.postinst nss-my*.postinst: configure at the end of the hosts line, not before files. 2015-07-27 15:06:21 +02:00
libnss-mymachines.postrm libnss-*.prerm: Remove possible [key=value] options from NSS modules as well 2016-09-20 13:25:28 +02:00
libnss-resolve.install Add libnss-resolve package 2015-11-11 11:20:27 +01:00
libnss-resolve.lintian-overrides Override package-name-doesnt-match-sonames lintian warning for libnss-* 2017-03-03 18:48:14 +01:00
libnss-resolve.postinst libnss-resolve.postinst: Skip dns fallback if resolve is present 2016-10-02 08:35:38 +02:00
libnss-resolve.postrm libnss-*.prerm: Remove possible [key=value] options from NSS modules as well 2016-09-20 13:25:28 +02:00
libnss-systemd.install Package libnss-systemd 2016-11-30 14:24:24 +01:00
libnss-systemd.lintian-overrides Override package-name-doesnt-match-sonames lintian warning for libnss-* 2017-03-03 18:48:14 +01:00
libnss-systemd.postinst Package libnss-systemd 2016-11-30 14:24:24 +01:00
libnss-systemd.postrm Package libnss-systemd 2016-11-30 14:24:24 +01:00
libpam-systemd.install Clean up Debian specific file installation 2015-01-22 09:46:15 +01:00
libpam-systemd.postinst Add pam-auth-update calls to libpam-systemd's postinst and prerm 2010-09-01 21:10:41 +02:00
libpam-systemd.prerm Do proper refcounting of the PAM module package on prerm 2014-04-26 12:38:03 +02:00
libsystemd0.install Install the new combined libsystemd0 library 2014-07-16 23:29:00 +02:00
libsystemd0.symbols Cleanup version numbers in symbols file a little 2017-03-02 13:04:05 +01:00
libsystemd-dev.install Strip leading / for consistencies sake 2016-09-27 21:38:24 +02:00
libudev1-udeb.install Add .install files for the udev packages 2013-07-18 16:54:10 +02:00
libudev1.install Add .install files for the udev packages 2013-07-18 16:54:10 +02:00
libudev1.symbols Add Build-Depends-Package to libudev1.symbols and libsystemd0.symbols 2016-07-08 11:42:31 +02:00
libudev-dev.install Strip leading / for consistencies sake 2016-09-27 21:38:24 +02:00
libudev-dev.maintscript libudev-dev: Transition doc symlink -> dir too 2015-06-29 17:32:06 +02:00
README.Debian debian/README.Debian: Document how to generate a shutdown log 2016-11-21 10:32:49 +01:00
README.source debian/README.source: Update patch and changelog handling to current reality 2017-02-13 22:04:22 +01:00
rules Drop Breaks for packages shipping rcS init scripts 2017-06-19 16:05:59 +02:00
shlibs.local.in debian/shlibs.local.in: More precisely define version of internal shared lib 2016-09-25 23:08:22 +02:00
systemd-container.install Install D-Bus policy files in /usr 2017-03-03 13:06:48 +01:00
systemd-container.maintscript Install D-Bus policy files in /usr 2017-03-03 13:06:48 +01:00
systemd-container.postinst Install D-Bus policy files in /usr 2017-03-03 13:06:48 +01:00
systemd-container.postrm Enable machines.target by default 2016-11-14 16:30:20 -03:00
systemd-coredump.install Move systemd-coredump socket and service into systemd-coredump binary package 2016-02-27 12:02:30 +01:00
systemd-coredump.postinst debian/systemd-coredump.postinst: Do daemon-reload before starting systemd-coredump 2016-04-25 09:00:29 +02:00
systemd-coredump.prerm systemd-coredump.{prerm,postinst}: Fix order 2016-03-14 17:13:22 +01:00
systemd-journal-remote.install Install new journal-upload.conf man pages in systemd-journal-remote 2016-11-04 00:37:36 +01:00
systemd-journal-remote.postinst Add necessary system groups for systemd-journal-remote 2015-08-30 20:38:56 +02:00
systemd-sysv.install Add systemd-sysv package which ships the symlinks that replaces sysvinit 2010-07-07 22:01:32 +02:00
systemd-sysv.links Update /sbin/init symlink. The systemd binary was moved to $pkglibdir. 2012-03-06 18:07:25 +01:00
systemd-sysv.postinst systemd-sysv.postinst: Adjust syntax for better portability 2015-03-26 08:30:11 +01:00
systemd-tests.install Split upstream tests into systemd-tests binary package 2017-04-08 11:40:37 +02:00
systemd-tests.lintian-overrides Move the lintian overrides to the systemd-tests package as well 2017-04-14 00:11:47 +02:00
systemd.bug-control Register interest in the status of dracut and initramfs-tools in reportbug template 2016-10-17 20:44:50 -03:00
systemd.bug-script Drop fallback for older reportbug versions when attaching files 2016-12-21 20:20:45 +01:00
systemd.dirs Don't enable persistent storage of journal log files. 2013-01-19 15:40:12 +01:00
systemd.install Install new systemd-umount and /usr/lib/environment.d/ 2017-03-02 11:06:14 +01:00
systemd.links Drop sigpwr-container-shutdown.service 2016-07-20 16:31:09 +02:00
systemd.lintian-overrides Quiesce possibly-insecure-handling-of-tmp-files lintian warning 2014-12-28 12:05:28 +01:00
systemd.maintscript Drop no longer needed maintainer scripts migration code 2017-03-03 14:06:16 +01:00
systemd.NEWS systemd.NEWS: Point out that alternatively rcS scripts can be moved to rc[2-5] 2016-08-25 11:08:25 +02:00
systemd.postinst Restart journald on upgrades 2017-03-06 01:04:20 +01:00
systemd.postrm Don't fail in postrm during cleanup if directories don't exist 2015-04-29 16:02:05 +02:00
systemd.preinst console-shell.service got removed upstream in v233 2017-03-03 15:33:54 +01:00
systemd.prerm Update the checks which test if systemd is the active init. 2013-06-20 01:17:00 +02:00
systemd.triggers Trigger a systemctl daemon-reload when init scripts are installed or removed 2015-04-08 10:54:30 +02:00
udev-udeb.dirs Remove obsolete debian/udev*.dirs entries 2013-07-18 20:34:39 +02:00
udev-udeb.install Split out udev rule to name USB network interfaces by MAC address into 73-usb-net-by-mac.rules 2016-05-11 22:48:37 +02:00
udev.bug-control Include the state of the udev package when filing a bug against systemd, and vice versa 2015-10-29 01:25:03 +01:00
udev.bug-script Drop fallback for older reportbug versions when attaching files 2016-12-21 20:20:45 +01:00
udev.init Drop upstart jobs for udev 2017-03-02 13:51:22 +01:00
udev.install Move systemd.link(5) to udev package 2017-03-12 12:32:01 +01:00
udev.links Drop udev-finish 2015-09-04 08:09:38 +02:00
udev.maintscript Drop no longer needed maintainer scripts migration code 2017-03-03 14:06:16 +01:00
udev.NEWS debian/udev.NEWS: Reformat old entry 2016-07-14 14:09:59 +02:00
udev.postinst Drop no longer needed maintainer scripts migration code 2017-03-03 14:06:16 +01:00
udev.postrm Remove /var/log/udev on purge 2014-04-26 22:57:48 +02:00
udev.preinst Remove obsolete udev maintainer script checks 2016-02-08 23:21:36 +01:00
udev.prerm Stop testing for unknown arguments in udev maintainer scripts 2015-12-10 15:58:53 +01:00
udev.README.Debian Disable 99-default.link instead of the udev rule for disabling persistent interface names 2016-11-15 08:53:06 +01:00
udev.triggers Switch the hwdb trigger to interest-noawait 2013-07-21 15:33:42 +02:00
watch debian/watch: Adjust to new upstream release model of only providing the github tag tarballs 2015-07-08 07:06:30 +02:00

Building from source
--------------------
Install “git-buildpackage” and run the following steps:

  gbp clone git+ssh://git.debian.org/git/pkg-systemd/systemd.git
  cd systemd
  gbp buildpackage

We recommend you use pbuilder to make sure you build in a clean environment:

  gbp buildpackage --git-pbuilder

Changelog
---------
The systemd package uses gbp dch for automatically generating
debian/changelog entries from the corresponding git commits. This makes
cherry-picking, merging, and rebasing much simpler.

Thus, for any packaging change *don't* modify debian/changelog, just write a
meaningful git commit log with proper bug references (such as "Closes: #12345"
on the last line). For doing a release, run

  gbp dch --auto

then beautify the generated debian/changelog, then run the usual "dch -r" and
"debcommit -ar --sign-tags".

Patch handling
--------------
The systemd package uses gbp pq for maintaining patches with a git-like
workflow in a "patch-queue/<branch>" local branch and then exporting them as
quilt series.  For working on patches you run

  gbp pq import --force

Then you are in the patch-queue branch and can git log, commit, cherry-pick
upstream commits, rebase, etc. there. After you are done, run

  gbp pq export

which will put you back into master and update debian/patches/ (including
series). You need to git add etc. new patches, possibly other
packaging changes, and then git commit as usual.

systemd uses gbp pq's "topic" branches for organizing patches; for simplicity
(as this is the most common operation), upstream cherry-picks go into the
"empty" topic (i. e. directly into debian/patches/), while Debian specific
patches go into "Gbp-Pq: Topic debian" (i. e. debian/patches/debian/).

Rebasing patches to a new upstream version
------------------------------------------
gbp pq's "rebase" command does not work very conveniently as it fails on merge
conflicts. First, ensure you are in the master branch:

  git checkout master  # in case you aren't already

Now, do one of

 (1) To import a new upstream release into the existing master branch for unstable,
do:

  gbp pq import --force
  gbp pq switch   # switch back to master from patch-queue/master
  gbp import-orig [...]
  gbp pq switch   # switch to patch-queue/master
  git rebase master

 (2) To import a new upstream release into a new branch for Debian experimental, do:

  git branch experimental
  git checkout experimental
  editor debian/gbp.conf  # set "debian-branch=experimental"
  gbp import-orig [...]
  git branch patch-queue/experimental patch-queue/master
  git checkout patch-queue/experimental
  git rebase experimental

Now resolve all the conflicts, skip obsolete patches, etc. When you are done, run

  gbp pq export

Note that our debian/gbp.conf disables patch numbers.

Cherry-picking upstream patches
-------------------------------
You can add the systemd upstream branch as an additional remote to the Debian
packaging branch. Call it "github" or similar to avoid confusing it with the
already existing "upstream" branch from git-buildpackage:

  git remote add github https://github.com/systemd/systemd.git
  git fetch github -n

Now you can look at the upstream log and cherry-pick patches into the
patch-queue branch:

  gbp pq import --force
  git log github/master
  git cherry-pick 123DEADBEEF

debian/git-cherry-pick is a nice tool to automate all that:

  debian/git-cherry-pick 123DEADBEEF 987654 AFFE99
  git checkout master  # switch back from patch-queue branch