Accepting request 955799 from Base:System

- Drop enablement symlink migration support of SysV init scripts
  And let's finish reducing the support of SysV init scripts to its minimum.

- spec: fix dependencies for mini variants
  Make sure that all mini variants won't be installed in real systems and won't
  be involved when building medias with kiwi. Note that sub-packages that
  requires systemd (such as udev) don't need any special treatment since the
  specific deps are inherited from the main (mini) package.
- spec: simplify systemd-mini-doc dependencies by assuming that the doc
  sub-package can't be a build requirement for other packages.
- spec: libsystemd-mini and libudev-mini need to provide libsystemd and libudev
  respectively

- Rename systemd-sysvinit into systemd-sysvcompat
  systemd-sysvinit was probably provided to allow systems to switch from
  sysvinit to systemd by overwriting /sbin/init with a link to systemd. But this
  isn't very useful anymore due to the fact that sysvinit is not supported since
  several years. Therefore the subpackage contains now the files needed to keep
  backward compatibility with SysV init scripts (most notably sysv-generator)
  and has been renamed accordingly. The few files that are not specific to
  sysvinit (such as /bin/init) have been moved to the main package.
  Normally this new subpackage shouldn't be needed (since all packages use
  systemd unit files) unless a 3rd party application is installed and still
  relies on SysV init scripts.

- systemd.spec: explicitely turn on/off build options
  Hence a feature can't be accidentally turned on/off because its dep is pulled
  in or removed due to another feature being turned on/off.

OBS-URL: https://build.opensuse.org/request/show/955799
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=348
This commit is contained in:
Dominique Leuenberger 2022-02-19 18:21:14 +00:00 committed by Git OBS Bridge
parent d69ef23914
commit 499a776e27
5 changed files with 190 additions and 308 deletions

View File

@ -30,10 +30,6 @@
%dir %{_journalcatalogdir} %dir %{_journalcatalogdir}
%dir %{_localstatedir}/lib/systemd %dir %{_localstatedir}/lib/systemd
%dir %{_localstatedir}/lib/systemd/catalog %dir %{_localstatedir}/lib/systemd/catalog
%if %{with sysvcompat}
%dir %{_localstatedir}/lib/systemd/migrated
%dir %{_localstatedir}/lib/systemd/sysv-convert
%endif
%dir %{_modprobedir} %dir %{_modprobedir}
%dir %{_modulesloaddir} %dir %{_modulesloaddir}
%dir %{_prefix}/lib/kernel %dir %{_prefix}/lib/kernel
@ -82,13 +78,6 @@
%dir %{_unitdir}/reboot.target.wants %dir %{_unitdir}/reboot.target.wants
%dir %{_unitdir}/remote-fs.target.wants %dir %{_unitdir}/remote-fs.target.wants
%dir %{_unitdir}/rescue.target.wants %dir %{_unitdir}/rescue.target.wants
%if %{with sysvcompat}
%dir %{_unitdir}/runlevel1.target.wants
%dir %{_unitdir}/runlevel2.target.wants
%dir %{_unitdir}/runlevel3.target.wants
%dir %{_unitdir}/runlevel4.target.wants
%dir %{_unitdir}/runlevel5.target.wants
%endif
%dir %{_unitdir}/shutdown.target.wants %dir %{_unitdir}/shutdown.target.wants
%dir %{_unitdir}/sockets.target.wants %dir %{_unitdir}/sockets.target.wants
%dir %{_unitdir}/sysinit.target.wants %dir %{_unitdir}/sysinit.target.wants
@ -236,6 +225,7 @@
%endif %endif
%{_mandir}/man1/busctl.1.gz %{_mandir}/man1/busctl.1.gz
%{_mandir}/man1/hostnamectl.1.gz %{_mandir}/man1/hostnamectl.1.gz
%{_mandir}/man1/init.1.gz
%{_mandir}/man1/journalctl.1.gz %{_mandir}/man1/journalctl.1.gz
%{_mandir}/man1/localectl.1.gz %{_mandir}/man1/localectl.1.gz
%{_mandir}/man1/loginctl.1.gz %{_mandir}/man1/loginctl.1.gz
@ -347,9 +337,13 @@
%{_mandir}/man7/systemd.syntax.7.gz %{_mandir}/man7/systemd.syntax.7.gz
%{_mandir}/man7/systemd.time.7.gz %{_mandir}/man7/systemd.time.7.gz
%{_mandir}/man8/30-systemd-environment-d-generator.8.gz %{_mandir}/man8/30-systemd-environment-d-generator.8.gz
%{_mandir}/man8/halt.8.gz
%{_mandir}/man8/kernel-install.8.gz %{_mandir}/man8/kernel-install.8.gz
%{_mandir}/man8/pam_systemd.8.gz %{_mandir}/man8/pam_systemd.8.gz
%{_mandir}/man8/poweroff.8.gz
%{_mandir}/man8/rc-local.service.8.gz %{_mandir}/man8/rc-local.service.8.gz
%{_mandir}/man8/reboot.8.gz
%{_mandir}/man8/shutdown.8.gz
%{_mandir}/man8/systemd-ask-password-console.path.8.gz %{_mandir}/man8/systemd-ask-password-console.path.8.gz
%{_mandir}/man8/systemd-ask-password-console.service.8.gz %{_mandir}/man8/systemd-ask-password-console.service.8.gz
%{_mandir}/man8/systemd-ask-password-wall.path.8.gz %{_mandir}/man8/systemd-ask-password-wall.path.8.gz
@ -389,9 +383,6 @@
%{_mandir}/man8/systemd-hostnamed.8.gz %{_mandir}/man8/systemd-hostnamed.8.gz
%{_mandir}/man8/systemd-hostnamed.service.8.gz %{_mandir}/man8/systemd-hostnamed.service.8.gz
%{_mandir}/man8/systemd-hybrid-sleep.service.8.gz %{_mandir}/man8/systemd-hybrid-sleep.service.8.gz
%{_mandir}/man8/systemd-initctl.8.gz
%{_mandir}/man8/systemd-initctl.service.8.gz
%{_mandir}/man8/systemd-initctl.socket.8.gz
%{_mandir}/man8/systemd-journald-audit.socket.8.gz %{_mandir}/man8/systemd-journald-audit.socket.8.gz
%{_mandir}/man8/systemd-journald-dev-log.socket.8.gz %{_mandir}/man8/systemd-journald-dev-log.socket.8.gz
%{_mandir}/man8/systemd-journald-varlink@.socket.8.gz %{_mandir}/man8/systemd-journald-varlink@.socket.8.gz
@ -416,7 +407,6 @@
%{_mandir}/man8/systemd-quotacheck.service.8.gz %{_mandir}/man8/systemd-quotacheck.service.8.gz
%{_mandir}/man8/systemd-random-seed.8.gz %{_mandir}/man8/systemd-random-seed.8.gz
%{_mandir}/man8/systemd-random-seed.service.8.gz %{_mandir}/man8/systemd-random-seed.service.8.gz
%{_mandir}/man8/systemd-rc-local-generator.8.gz
%{_mandir}/man8/systemd-reboot.service.8.gz %{_mandir}/man8/systemd-reboot.service.8.gz
%{_mandir}/man8/systemd-remount-fs.8.gz %{_mandir}/man8/systemd-remount-fs.8.gz
%{_mandir}/man8/systemd-remount-fs.service.8.gz %{_mandir}/man8/systemd-remount-fs.service.8.gz
@ -436,7 +426,6 @@
%{_mandir}/man8/systemd-system-update-generator.8.gz %{_mandir}/man8/systemd-system-update-generator.8.gz
%{_mandir}/man8/systemd-sysusers.8.gz %{_mandir}/man8/systemd-sysusers.8.gz
%{_mandir}/man8/systemd-sysusers.service.8.gz %{_mandir}/man8/systemd-sysusers.service.8.gz
%{_mandir}/man8/systemd-sysv-generator.8.gz
%{_mandir}/man8/systemd-time-wait-sync.8.gz %{_mandir}/man8/systemd-time-wait-sync.8.gz
%{_mandir}/man8/systemd-time-wait-sync.service.8.gz %{_mandir}/man8/systemd-time-wait-sync.service.8.gz
%{_mandir}/man8/systemd-timedated.8.gz %{_mandir}/man8/systemd-timedated.8.gz
@ -450,7 +439,6 @@
%{_mandir}/man8/systemd-tmpfiles.8.gz %{_mandir}/man8/systemd-tmpfiles.8.gz
%{_mandir}/man8/systemd-update-done.8.gz %{_mandir}/man8/systemd-update-done.8.gz
%{_mandir}/man8/systemd-update-done.service.8.gz %{_mandir}/man8/systemd-update-done.service.8.gz
%{_mandir}/man8/systemd-update-utmp-runlevel.service.8.gz
%{_mandir}/man8/systemd-update-utmp.8.gz %{_mandir}/man8/systemd-update-utmp.8.gz
%{_mandir}/man8/systemd-update-utmp.service.8.gz %{_mandir}/man8/systemd-update-utmp.service.8.gz
%{_mandir}/man8/systemd-user-sessions.8.gz %{_mandir}/man8/systemd-user-sessions.8.gz
@ -470,6 +458,11 @@
%{_prefix}/lib/kernel/install.d/00-entry-directory.install %{_prefix}/lib/kernel/install.d/00-entry-directory.install
%{_prefix}/lib/kernel/install.d/50-depmod.install %{_prefix}/lib/kernel/install.d/50-depmod.install
%{_prefix}/lib/kernel/install.d/90-loaderentry.install %{_prefix}/lib/kernel/install.d/90-loaderentry.install
%{_sbindir}/halt
%{_sbindir}/init
%{_sbindir}/poweroff
%{_sbindir}/reboot
%{_sbindir}/shutdown
%{_sysconfdir}/xdg/systemd/user %{_sysconfdir}/xdg/systemd/user
%{_sysctldir}/99-sysctl.conf %{_sysctldir}/99-sysctl.conf
%{_systemd_user_env_generator_dir}/30-systemd-environment-d-generator %{_systemd_user_env_generator_dir}/30-systemd-environment-d-generator
@ -500,9 +493,6 @@
%{_systemd_util_dir}/systemd-growfs %{_systemd_util_dir}/systemd-growfs
%{_systemd_util_dir}/systemd-hibernate-resume %{_systemd_util_dir}/systemd-hibernate-resume
%{_systemd_util_dir}/systemd-hostnamed %{_systemd_util_dir}/systemd-hostnamed
%if %{with sysvcompat}
%{_systemd_util_dir}/systemd-initctl
%endif
%{_systemd_util_dir}/systemd-journald %{_systemd_util_dir}/systemd-journald
%{_systemd_util_dir}/systemd-localed %{_systemd_util_dir}/systemd-localed
%{_systemd_util_dir}/systemd-logind %{_systemd_util_dir}/systemd-logind
@ -518,10 +508,6 @@
%{_systemd_util_dir}/systemd-socket-proxyd %{_systemd_util_dir}/systemd-socket-proxyd
%{_systemd_util_dir}/systemd-sulogin-shell %{_systemd_util_dir}/systemd-sulogin-shell
%{_systemd_util_dir}/systemd-sysctl %{_systemd_util_dir}/systemd-sysctl
%if %{with sysvcompat}
%{_systemd_util_dir}/systemd-sysv-convert
%{_systemd_util_dir}/systemd-sysv-install
%endif
%{_systemd_util_dir}/systemd-time-wait-sync %{_systemd_util_dir}/systemd-time-wait-sync
%{_systemd_util_dir}/systemd-timedated %{_systemd_util_dir}/systemd-timedated
%{_systemd_util_dir}/systemd-timesyncd %{_systemd_util_dir}/systemd-timesyncd
@ -570,14 +556,8 @@
%{_systemdgeneratordir}/systemd-getty-generator %{_systemdgeneratordir}/systemd-getty-generator
%{_systemdgeneratordir}/systemd-gpt-auto-generator %{_systemdgeneratordir}/systemd-gpt-auto-generator
%{_systemdgeneratordir}/systemd-hibernate-resume-generator %{_systemdgeneratordir}/systemd-hibernate-resume-generator
%if %{with sysvcompat}
%{_systemdgeneratordir}/systemd-rc-local-generator
%endif
%{_systemdgeneratordir}/systemd-run-generator %{_systemdgeneratordir}/systemd-run-generator
%{_systemdgeneratordir}/systemd-system-update-generator %{_systemdgeneratordir}/systemd-system-update-generator
%if %{with sysvcompat}
%{_systemdgeneratordir}/systemd-sysv-generator
%endif
%if ! 0%{?bootstrap} %if ! 0%{?bootstrap}
%{_systemdgeneratordir}/systemd-veritysetup-generator %{_systemdgeneratordir}/systemd-veritysetup-generator
%endif %endif
@ -628,9 +608,6 @@
%{_unitdir}/getty.target %{_unitdir}/getty.target
%{_unitdir}/getty@.service %{_unitdir}/getty@.service
%{_unitdir}/graphical.target %{_unitdir}/graphical.target
%if %{with sysvcompat}
%{_unitdir}/graphical.target.wants/systemd-update-utmp-runlevel.service
%endif
%{_unitdir}/halt.target %{_unitdir}/halt.target
%{_unitdir}/hibernate.target %{_unitdir}/hibernate.target
%{_unitdir}/hybrid-sleep.target %{_unitdir}/hybrid-sleep.target
@ -651,18 +628,11 @@
%{_unitdir}/local-fs-pre.target %{_unitdir}/local-fs-pre.target
%{_unitdir}/local-fs.target %{_unitdir}/local-fs.target
%{_unitdir}/local-fs.target.wants/tmp.mount %{_unitdir}/local-fs.target.wants/tmp.mount
%if %{with sysvcompat}
%{_unitdir}/local-fs.target.wants/var-lock.mount
%{_unitdir}/local-fs.target.wants/var-run.mount
%endif
%{_unitdir}/modprobe@.service %{_unitdir}/modprobe@.service
%{_unitdir}/multi-user.target %{_unitdir}/multi-user.target
%{_unitdir}/multi-user.target.wants/after-local.service %{_unitdir}/multi-user.target.wants/after-local.service
%{_unitdir}/multi-user.target.wants/getty.target %{_unitdir}/multi-user.target.wants/getty.target
%{_unitdir}/multi-user.target.wants/systemd-logind.service %{_unitdir}/multi-user.target.wants/systemd-logind.service
%if %{with sysvcompat}
%{_unitdir}/multi-user.target.wants/systemd-update-utmp-runlevel.service
%endif
%{_unitdir}/multi-user.target.wants/systemd-user-sessions.service %{_unitdir}/multi-user.target.wants/systemd-user-sessions.service
%{_unitdir}/network-online.target %{_unitdir}/network-online.target
%{_unitdir}/network-pre.target %{_unitdir}/network-pre.target
@ -675,9 +645,6 @@
%{_unitdir}/proc-sys-fs-binfmt_misc.automount %{_unitdir}/proc-sys-fs-binfmt_misc.automount
%{_unitdir}/proc-sys-fs-binfmt_misc.mount %{_unitdir}/proc-sys-fs-binfmt_misc.mount
%{_unitdir}/quotaon.service %{_unitdir}/quotaon.service
%if %{with sysvcompat}
%{_unitdir}/rc-local.service
%endif
%{_unitdir}/reboot.target %{_unitdir}/reboot.target
%if ! 0%{?bootstrap} %if ! 0%{?bootstrap}
%{_unitdir}/remote-cryptsetup.target %{_unitdir}/remote-cryptsetup.target
@ -689,19 +656,7 @@
%endif %endif
%{_unitdir}/rescue.service %{_unitdir}/rescue.service
%{_unitdir}/rescue.target %{_unitdir}/rescue.target
%if %{with sysvcompat}
%{_unitdir}/rescue.target.wants/systemd-update-utmp-runlevel.service
%endif
%{_unitdir}/rpcbind.target %{_unitdir}/rpcbind.target
%if %{with sysvcompat}
%{_unitdir}/runlevel0.target
%{_unitdir}/runlevel1.target
%{_unitdir}/runlevel2.target
%{_unitdir}/runlevel3.target
%{_unitdir}/runlevel4.target
%{_unitdir}/runlevel5.target
%{_unitdir}/runlevel6.target
%endif
%{_unitdir}/serial-getty@.service %{_unitdir}/serial-getty@.service
%{_unitdir}/shutdown.target %{_unitdir}/shutdown.target
%{_unitdir}/sigpwr.target %{_unitdir}/sigpwr.target
@ -709,9 +664,6 @@
%{_unitdir}/slices.target %{_unitdir}/slices.target
%{_unitdir}/smartcard.target %{_unitdir}/smartcard.target
%{_unitdir}/sockets.target %{_unitdir}/sockets.target
%if %{with sysvcompat}
%{_unitdir}/sockets.target.wants/systemd-initctl.socket
%endif
%{_unitdir}/sockets.target.wants/systemd-journald-dev-log.socket %{_unitdir}/sockets.target.wants/systemd-journald-dev-log.socket
%{_unitdir}/sockets.target.wants/systemd-journald.socket %{_unitdir}/sockets.target.wants/systemd-journald.socket
%{_unitdir}/sound.target %{_unitdir}/sound.target
@ -783,10 +735,6 @@
%{_unitdir}/systemd-hibernate.service %{_unitdir}/systemd-hibernate.service
%{_unitdir}/systemd-hostnamed.service %{_unitdir}/systemd-hostnamed.service
%{_unitdir}/systemd-hybrid-sleep.service %{_unitdir}/systemd-hybrid-sleep.service
%if %{with sysvcompat}
%{_unitdir}/systemd-initctl.service
%{_unitdir}/systemd-initctl.socket
%endif
%{_unitdir}/systemd-journal-catalog-update.service %{_unitdir}/systemd-journal-catalog-update.service
%{_unitdir}/systemd-journal-flush.service %{_unitdir}/systemd-journal-flush.service
%{_unitdir}/systemd-journald-dev-log.socket %{_unitdir}/systemd-journald-dev-log.socket
@ -820,9 +768,6 @@
%{_unitdir}/systemd-tmpfiles-setup-dev.service %{_unitdir}/systemd-tmpfiles-setup-dev.service
%{_unitdir}/systemd-tmpfiles-setup.service %{_unitdir}/systemd-tmpfiles-setup.service
%{_unitdir}/systemd-update-done.service %{_unitdir}/systemd-update-done.service
%if %{with sysvcompat}
%{_unitdir}/systemd-update-utmp-runlevel.service
%endif
%{_unitdir}/systemd-update-utmp.service %{_unitdir}/systemd-update-utmp.service
%{_unitdir}/systemd-user-sessions.service %{_unitdir}/systemd-user-sessions.service
%{_unitdir}/systemd-vconsole-setup.service %{_unitdir}/systemd-vconsole-setup.service
@ -839,14 +784,15 @@
%{_unitdir}/user-runtime-dir@.service %{_unitdir}/user-runtime-dir@.service
%{_unitdir}/user.slice %{_unitdir}/user.slice
%{_unitdir}/user@.service %{_unitdir}/user@.service
%if %{with sysvcompat}
%{_unitdir}/var-lock.mount
%{_unitdir}/var-run.mount
%endif
%if ! 0%{?bootstrap} %if ! 0%{?bootstrap}
%{_unitdir}/veritysetup-pre.target %{_unitdir}/veritysetup-pre.target
%{_unitdir}/veritysetup.target %{_unitdir}/veritysetup.target
%endif %endif
%if %{with split_usr} %if %{with split_usr}
/bin/systemctl /bin/systemctl
/sbin/halt
/sbin/init
/sbin/poweroff
/sbin/reboot
/sbin/shutdown
%endif %endif

45
files.sysvcompat Normal file
View File

@ -0,0 +1,45 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%dir %{_unitdir}/runlevel1.target.wants
%dir %{_unitdir}/runlevel2.target.wants
%dir %{_unitdir}/runlevel3.target.wants
%dir %{_unitdir}/runlevel4.target.wants
%dir %{_unitdir}/runlevel5.target.wants
%{_mandir}/man8/runlevel.8.gz
%{_mandir}/man8/systemd-initctl.8.gz
%{_mandir}/man8/systemd-initctl.service.8.gz
%{_mandir}/man8/systemd-initctl.socket.8.gz
%{_mandir}/man8/systemd-rc-local-generator.8.gz
%{_mandir}/man8/systemd-sysv-generator.8.gz
%{_mandir}/man8/systemd-update-utmp-runlevel.service.8.gz
%{_mandir}/man8/telinit.8.gz
%{_sbindir}/runlevel
%{_sbindir}/telinit
%{_systemd_util_dir}/systemd-initctl
%{_systemd_util_dir}/systemd-sysv-install
%{_systemdgeneratordir}/systemd-rc-local-generator
%{_systemdgeneratordir}/systemd-sysv-generator
%{_unitdir}/graphical.target.wants/systemd-update-utmp-runlevel.service
%{_unitdir}/local-fs.target.wants/var-lock.mount
%{_unitdir}/local-fs.target.wants/var-run.mount
%{_unitdir}/multi-user.target.wants/systemd-update-utmp-runlevel.service
%{_unitdir}/rc-local.service
%{_unitdir}/rescue.target.wants/systemd-update-utmp-runlevel.service
%{_unitdir}/runlevel0.target
%{_unitdir}/runlevel1.target
%{_unitdir}/runlevel2.target
%{_unitdir}/runlevel3.target
%{_unitdir}/runlevel4.target
%{_unitdir}/runlevel5.target
%{_unitdir}/runlevel6.target
%{_unitdir}/sockets.target.wants/systemd-initctl.socket
%{_unitdir}/systemd-initctl.service
%{_unitdir}/systemd-initctl.socket
%{_unitdir}/systemd-update-utmp-runlevel.service
%{_unitdir}/var-lock.mount
%{_unitdir}/var-run.mount
%if %{with split_usr}
/sbin/runlevel
/sbin/telinit
%endif

View File

@ -1,120 +0,0 @@
#!/bin/bash
info() {
echo "$(basename $0): $*"
}
warn() {
echo >&2 "$(basename $0): warning, $*"
}
usage() {
echo >&2 "usage: $(basename $0) --apply <service> [<service> ...]"
}
if [ "$UID" != "0" ]; then
warn "need to be root, aborting"
exit 1
fi
if [ $# -lt 2 ]; then
usage
exit 1
fi
database_lookup() {
local service unused
# 'priority' field is not used but is kept for backward compat reason.
while read service unused; do
if [ $service == $1 ]; then
return 0
fi
done </var/lib/systemd/sysv-convert/database
return 1
}
database_add() {
# Write a dumb priority as it is not used.
echo "$1 $2 50" >>/var/lib/systemd/sysv-convert/database
}
# Initialize the database.
if [ ! -e /var/lib/systemd/sysv-convert/database ]; then
touch /var/lib/systemd/sysv-convert/database
fi
case "$1" in
--save)
# --save is kept for backward compatibility.
;;
--apply)
shift
for service in $@; do
# For backward compat we accept the name of the
# service with or without the unit type suffix. If the
# suffix is not there, assume .service type.
case "$service" in
*.*) initscript="${service%.*}" ;;
*) initscript="$service"
service="$service.service"
esac
# Did we already migrate this service during a previous update ?
database_lookup $initscript &&
continue
# Sanity check.
unit="/usr/lib/systemd/system/$service"
if [ ! -f "$unit" ]; then
warn "$unit not found, skipping"
continue
fi
# Mark the service as processed to make sure we will do the migration only
# once. This is important especially for packages that keep their init
# scripts around even if they're no more used. Since the saved info won't
# be reused again we simply use an invalid runlevel and add the service
# in the db only once.
database_add $initscript -1
# Some services were renamed during the transition from SySV init to
# systemd (bsc#1181788). Rather than letting packages fixing that
# themselves by hacking our database directly, let's hard-code renames
# here. Not really nice but that's the least worst solution.
case $initscript in
ntpd) initscript=ntp ;;
esac
# The package is introducing new services and never has any sysv init
# scripts (bsc#982303).
if [ ! -r /etc/init.d/$initscript ] &&
[ ! -r /etc/init.d/boot.$initscript ]; then
continue
fi
for rcnd in rc2.d rc3.d rc4.d rc5.d boot.d; do
# Was the sysvinit script enabled ? (bsc#982211)
case $rcnd in
boot.d) [ -L /etc/rc.d/boot.d/S??boot.$initscript ] || continue ;;
*) [ -L /etc/rc.d/$rcnd/S??$initscript ] || continue
esac
case $rcnd in
boot.d) runlevel=3 ;;
*) runlevel=${rcnd:2:1}
esac
target=runlevel$runlevel.target
info "enabling $unit (wanted by $target)..."
mkdir -p "/etc/systemd/system/$target.wants"
ln -sf $unit /etc/systemd/system/$target.wants/$service
done
done
;;
*)
usage
exit 1
esac

View File

@ -1,3 +1,51 @@
-------------------------------------------------------------------
Thu Feb 17 18:30:12 UTC 2022 - Franck Bui <fbui@suse.com>
- Drop enablement symlink migration support of SysV init scripts
And let's finish reducing the support of SysV init scripts to its minimum.
-------------------------------------------------------------------
Mon Feb 14 15:11:04 UTC 2022 - Franck Bui <fbui@suse.com>
- spec: fix dependencies for mini variants
Make sure that all mini variants won't be installed in real systems and won't
be involved when building medias with kiwi. Note that sub-packages that
requires systemd (such as udev) don't need any special treatment since the
specific deps are inherited from the main (mini) package.
- spec: simplify systemd-mini-doc dependencies by assuming that the doc
sub-package can't be a build requirement for other packages.
- spec: libsystemd-mini and libudev-mini need to provide libsystemd and libudev
respectively
-------------------------------------------------------------------
Mon Feb 14 07:39:12 UTC 2022 - Franck Bui <fbui@suse.com>
- Rename systemd-sysvinit into systemd-sysvcompat
systemd-sysvinit was probably provided to allow systems to switch from
sysvinit to systemd by overwriting /sbin/init with a link to systemd. But this
isn't very useful anymore due to the fact that sysvinit is not supported since
several years. Therefore the subpackage contains now the files needed to keep
backward compatibility with SysV init scripts (most notably sysv-generator)
and has been renamed accordingly. The few files that are not specific to
sysvinit (such as /bin/init) have been moved to the main package.
Normally this new subpackage shouldn't be needed (since all packages use
systemd unit files) unless a 3rd party application is installed and still
relies on SysV init scripts.
-------------------------------------------------------------------
Mon Feb 14 07:31:49 UTC 2022 - Franck Bui <fbui@suse.com>
- systemd.spec: explicitely turn on/off build options
Hence a feature can't be accidentally turned on/off because its dep is pulled
in or removed due to another feature being turned on/off.
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Feb 4 15:22:43 UTC 2022 - Franck Bui <fbui@suse.com> Fri Feb 4 15:22:43 UTC 2022 - Franck Bui <fbui@suse.com>

View File

@ -16,11 +16,6 @@
# #
#
# The git repository used to track all Suse specific changes can be
# found at: https://github.com/openSUSE/systemd.
#
%global flavor @BUILD_FLAVOR@%{nil} %global flavor @BUILD_FLAVOR@%{nil}
%if "%{flavor}" == "mini" %if "%{flavor}" == "mini"
@ -35,6 +30,12 @@
%define suse_version +suse.82.g117bd7f14a %define suse_version +suse.82.g117bd7f14a
%define _testsuitedir /usr/lib/systemd/tests %define _testsuitedir /usr/lib/systemd/tests
# Similar to %%with but returns true/false. The 'true' value can be redefined
# when a second parameter is passed.
%define __when_1() %{expand:%%{?with_%{1}:true}%%{!?with_%{1}:false}}
%define __when_2() %{expand:%%{?with_%{1}:%{2}}%%{!?with_%{1}:false}}
%define when() %{expand:%%__when_%# %{*}}
%if 0%{?bootstrap} %if 0%{?bootstrap}
%bcond_with coredump %bcond_with coredump
%bcond_with importd %bcond_with importd
@ -132,8 +133,15 @@ BuildRequires: gnu-efi
%if 0%{?bootstrap} %if 0%{?bootstrap}
#!BuildIgnore: dbus-1 #!BuildIgnore: dbus-1
Requires: this-is-only-for-build-envs
Provides: systemd = %{version}-%{release} Provides: systemd = %{version}-%{release}
Conflicts: systemd
# Don't consider the mini flavors when building kiwi medias. This conflict is
# automatically inherited by sub-packages requiring systemd (such as udev).
Conflicts: kiwi
# This dependency is used to ensure that the mini flavors are selected only
# inside OBS builds (where this dependency is ignored) and don't get installed
# on real systems.
Requires: this-is-only-for-build-envs
%else %else
# the buildignore is important for bootstrapping # the buildignore is important for bootstrapping
#!BuildIgnore: udev #!BuildIgnore: udev
@ -157,16 +165,16 @@ Requires(post): findutils
Requires(post): systemd-presets-branding Requires(post): systemd-presets-branding
Requires(post): pam-config >= 0.79-5 Requires(post): pam-config >= 0.79-5
%endif %endif
%if 0%{?bootstrap}
Conflicts: kiwi
Conflicts: systemd
%endif
Conflicts: filesystem < 11.5 Conflicts: filesystem < 11.5
Conflicts: mkinitrd < 2.7.0 Conflicts: mkinitrd < 2.7.0
Provides: sbin_init
Provides: sysvinit:/sbin/init
Conflicts: sbin_init
Conflicts: sysvinit Conflicts: sysvinit
Provides: systemd-logger = %{version}-%{release} Provides: systemd-logger = %{version}-%{release}
Obsoletes: systemd-logger < %{version}-%{release} Obsoletes: systemd-logger < %{version}-%{release}
Provides: systemd-sysvinit = %{version}-%{release}
Obsoletes: systemd-sysvinit < %{version}-%{release}
Provides: systemd-analyze = %{version}-%{release} Provides: systemd-analyze = %{version}-%{release}
Obsoletes: pm-utils <= 1.4.1 Obsoletes: pm-utils <= 1.4.1
Obsoletes: suspend <= 1.0 Obsoletes: suspend <= 1.0
@ -175,7 +183,6 @@ Source0: systemd-v%{version}%{suse_version}.tar.xz
Source1: systemd-rpmlintrc Source1: systemd-rpmlintrc
Source2: systemd-user Source2: systemd-user
%if %{with sysvcompat} %if %{with sysvcompat}
Source3: systemd-sysv-convert
Source4: systemd-sysv-install Source4: systemd-sysv-install
%endif %endif
Source5: tmpfiles-suse.conf Source5: tmpfiles-suse.conf
@ -192,11 +199,17 @@ Source201: files.udev
Source202: files.container Source202: files.container
Source203: files.network Source203: files.network
Source204: files.devel Source204: files.devel
Source205: files.sysvcompat
#
# All changes backported from upstream are tracked by the git repository, which
# can be found at: https://github.com/openSUSE/systemd.
#
# Patches listed below are openSUSE specific and should be kept at its # Patches listed below are openSUSE specific and should be kept at its
# minimum. We try hard to push our changes to upstream but sometimes they are # minimum. We try hard to push our changes to upstream but sometimes they are
# only relevant for SUSE distros. Special rewards for those who will manage to # only relevant for SUSE distros. Special rewards for those who will manage to
# get rid of one of them ! # get rid of one of them !
#
Patch1: 0001-restore-var-run-and-var-lock-bind-mount-if-they-aren.patch Patch1: 0001-restore-var-run-and-var-lock-bind-mount-if-they-aren.patch
Patch2: 0002-rc-local-fix-ordering-startup-for-etc-init.d-boot.lo.patch Patch2: 0002-rc-local-fix-ordering-startup-for-etc-init.d-boot.lo.patch
Patch3: 0003-strip-the-domain-part-from-etc-hostname-when-setting.patch Patch3: 0003-strip-the-domain-part-from-etc-hostname-when-setting.patch
@ -228,8 +241,8 @@ drop-in replacement for sysvinit.
Summary: HTML documentation for systemd Summary: HTML documentation for systemd
License: LGPL-2.1-or-later License: LGPL-2.1-or-later
%if 0%{?bootstrap} %if 0%{?bootstrap}
Provides: systemd-doc = %{version}-%{release}
Conflicts: systemd-doc Conflicts: systemd-doc
Requires: this-is-only-for-build-envs
%else %else
Supplements: (systemd and patterns-base-documentation) Supplements: (systemd and patterns-base-documentation)
%endif %endif
@ -256,23 +269,32 @@ Conflicts: libudev-devel
Development headers and files for libsystemd and libudev libraries for Development headers and files for libsystemd and libudev libraries for
developing and building applications linking to these libraries. developing and building applications linking to these libraries.
%package sysvinit %if %{with sysvcompat}
Summary: System V init tools %package sysvcompat
Summary: SySV and LSB init script support for systemd (deprecated)
License: LGPL-2.1-or-later License: LGPL-2.1-or-later
Requires: %{name} = %{version}-%{release} Requires: %{name} = %{version}-%{release}
Provides: sbin_init Provides: systemd-sysvinit:%{_sbindir}/runlevel
Conflicts: sbin_init Provides: systemd-sysvinit:%{_sbindir}/telinit
Provides: systemd-sysvinit = %{version}-%{release}
Provides: sysvinit:/sbin/init
%description sysvinit %description sysvcompat
Drop-in replacement of System V init tools. This package ships the necessary files that enable minimal SysV and LSB init
scripts support in systemd. It also contains the obsolete SysV init tools
telinit(8) and runlevel(8). You should consider using systemctl(1) instead.
Unless you have a 3rd party application installed on your system that still
relies on such scripts, this package should not be needed at all.
Please note that the content of this package is considered as deprecated.
%endif
%package -n libsystemd0%{?mini} %package -n libsystemd0%{?mini}
Summary: Component library for systemd Summary: Component library for systemd
License: LGPL-2.1-or-later License: LGPL-2.1-or-later
%if 0%{?bootstrap} %if 0%{?bootstrap}
Conflicts: kiwi
Conflicts: libsystemd0 Conflicts: libsystemd0
Provides: libsystemd0 = %{version}-%{release}
Requires: this-is-only-for-build-envs Requires: this-is-only-for-build-envs
%endif %endif
@ -310,17 +332,14 @@ Requires: group(kvm)
Requires(post): sed Requires(post): sed
Requires(post): coreutils Requires(post): coreutils
Requires(postun):coreutils Requires(postun):coreutils
Conflicts: ConsoleKit < 0.4.1 Conflicts: ConsoleKit < 0.4.1
Conflicts: dracut < 044.1 Conflicts: dracut < 044.1
Conflicts: filesystem < 11.5 Conflicts: filesystem < 11.5
Conflicts: mkinitrd < 2.7.0 Conflicts: mkinitrd < 2.7.0
Conflicts: util-linux < 2.16 Conflicts: util-linux < 2.16
%if 0%{?bootstrap} %if 0%{?bootstrap}
Provides: udev = %{version}-%{release}
Conflicts: udev Conflicts: udev
# avoid kiwi picking it for bootstrap Provides: udev = %{version}-%{release}
Requires: this-is-only-for-build-envs
%endif %endif
%description -n udev%{?mini} %description -n udev%{?mini}
@ -336,8 +355,7 @@ License: LGPL-2.1-or-later
%if 0%{?bootstrap} %if 0%{?bootstrap}
Conflicts: kiwi Conflicts: kiwi
Conflicts: libudev1 Conflicts: libudev1
Provides: libudev1 Provides: libudev1 = %{version}-%{release}
# avoid kiwi picking it for bootstrap
Requires: this-is-only-for-build-envs Requires: this-is-only-for-build-envs
%endif %endif
@ -369,8 +387,10 @@ Provides: nss-mymachines = %{version}-%{release}
Provides: systemd-container = %{version}-%{release} Provides: systemd-container = %{version}-%{release}
Provides: systemd:%{_bindir}/systemd-nspawn Provides: systemd:%{_bindir}/systemd-nspawn
%if 0%{?bootstrap} %if 0%{?bootstrap}
Conflicts: kiwi
Conflicts: systemd-container Conflicts: systemd-container
Provides: systemd-container = %{version}-%{release} Provides: systemd-container = %{version}-%{release}
Requires: this-is-only-for-build-envs
%endif %endif
%description container %description container
@ -625,13 +645,21 @@ Have fun with these services at your own risk.
-Dsplit-bin=true \ -Dsplit-bin=true \
-Dsystem-uid-max=499 \ -Dsystem-uid-max=499 \
-Dsystem-gid-max=499 \ -Dsystem-gid-max=499 \
-Dadm-group=false \
-Dwheel-group=false \
-Dgshadow=false \
-Ddefault-hierarchy=unified \
-Ddefault-kill-user-processes=false \
-Dldconfig=false \
-Dpamconfdir=no \ -Dpamconfdir=no \
-Dpamlibdir=%{_pam_moduledir} \ -Dpamlibdir=%{_pam_moduledir} \
-Dxinitrcdir=%{_distconfdir}/X11/xinit/xinitrc.d \ -Dxinitrcdir=%{_distconfdir}/X11/xinit/xinitrc.d \
-Drpmmacrosdir=no \ -Drpmmacrosdir=no \
-Dcertificate-root=%{_sysconfdir}/pki/systemd \ -Dcertificate-root=%{_sysconfdir}/pki/systemd \
-Ddefault-hierarchy=unified \ %if %{without sysvcompat}
-Ddefault-kill-user-processes=false \ -Dsysvinit-path= \
-Dsysvrcnd-path= \
%endif
-Drc-local=/etc/init.d/boot.local \ -Drc-local=/etc/init.d/boot.local \
-Dcreate-log-dirs=false \ -Dcreate-log-dirs=false \
-Dbump-proc-sys-fs-nr-open=false \ -Dbump-proc-sys-fs-nr-open=false \
@ -643,17 +671,6 @@ Have fun with these services at your own risk.
-Dima=false \ -Dima=false \
-Delfutils=auto \ -Delfutils=auto \
-Doomd=false \ -Doomd=false \
%if %{with experimental}
-Dpstore=true \
-Drepart=true \
-Dhomed=true \
-Duserdb=true \
%else
-Dpstore=false \
-Drepart=false \
-Dhomed=false \
-Duserdb=false \
%endif
%if 0%{?bootstrap} %if 0%{?bootstrap}
-Dbashcompletiondir=no \ -Dbashcompletiondir=no \
-Dzshcompletiondir=no \ -Dzshcompletiondir=no \
@ -665,53 +682,28 @@ Have fun with these services at your own risk.
-Dman=true \ -Dman=true \
-Dhtml=true \ -Dhtml=true \
%endif %endif
%if %{without coredump} -Dcoredump=%{when coredump} \
-Dcoredump=false \ -Dimportd=%{when importd} \
%endif -Dmachined=%{when machined} \
%if %{without sd_boot} -Dnetworkd=%{when networkd} \
-Defi=false \ -Dportabled=%{when portabled} \
-Dgnu-efi=false \ -Dremote=%{when journal_remote} \
%else \
-Defi=true \ -Defi=%{when sd_boot} \
-Dgnu-efi=true \ -Dgnu-efi=%{when sd_boot} \
%endif \
%if %{without importd} -Dresolve=%{when resolved} \
-Dimportd=false \
%endif
%if %{without journal_remote}
-Dremote=false \
%endif
%if %{without portabled}
-Dportabled=false \
%endif
%if %{without machined}
-Dmachined=false \
%endif
%if %{without networkd}
-Dnetworkd=false \
%endif
%if %{without resolved}
-Dresolve=false \
%else
-Ddns-servers='' \ -Ddns-servers='' \
-Ddefault-dnssec=no \ -Ddefault-dnssec=no \
-Ddns-over-tls=openssl \ -Ddns-over-tls=%{when resolved openssl} \
%endif \
%if %{without sysvcompat} -Dpstore=%{when experimental} \
-Dsysvinit-path= \ -Drepart=%{when experimental} \
-Dsysvrcnd-path= \ -Dhomed=%{when experimental} \
%endif -Duserdb=%{when experimental} \
%if %{with testsuite} \
-Dtests=unsafe \ -Dtests=%{when testsuite unsafe} \
-Dinstall-tests=true \ -Dinstall-tests=%{when testsuite}
%else
-Dtests=false \
-Dinstall-tests=false \
%endif
-Dadm-group=false \
-Dwheel-group=false \
-Dgshadow=false \
-Dldconfig=false
%meson_build %meson_build
@ -727,10 +719,6 @@ rm %{buildroot}%{_mandir}/man1/resolvconf.1*
%endif %endif
%if %{with sysvcompat} %if %{with sysvcompat}
mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/sysv-convert
mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/migrated
install -m0755 -D %{SOURCE3} %{buildroot}/%{_systemd_util_dir}/systemd-sysv-convert
install -m0755 -D %{SOURCE4} %{buildroot}/%{_systemd_util_dir}/systemd-sysv-install install -m0755 -D %{SOURCE4} %{buildroot}/%{_systemd_util_dir}/systemd-sysv-install
%endif %endif
@ -751,12 +739,13 @@ mkdir -p %{buildroot}/{bin,sbin}
# Legacy paths # Legacy paths
ln -s ../usr/bin/udevadm %{buildroot}/sbin/ ln -s ../usr/bin/udevadm %{buildroot}/sbin/
ln -s ../usr/bin/systemctl %{buildroot}/bin/ ln -s ../usr/bin/systemctl %{buildroot}/bin/
# Legacy sysvinit tools
ln -s ../usr/lib/systemd/systemd %{buildroot}/sbin/init ln -s ../usr/lib/systemd/systemd %{buildroot}/sbin/init
ln -s ../usr/bin/systemctl %{buildroot}/sbin/reboot ln -s ../usr/bin/systemctl %{buildroot}/sbin/reboot
ln -s ../usr/bin/systemctl %{buildroot}/sbin/halt ln -s ../usr/bin/systemctl %{buildroot}/sbin/halt
ln -s ../usr/bin/systemctl %{buildroot}/sbin/shutdown ln -s ../usr/bin/systemctl %{buildroot}/sbin/shutdown
ln -s ../usr/bin/systemctl %{buildroot}/sbin/poweroff ln -s ../usr/bin/systemctl %{buildroot}/sbin/poweroff
# Legacy sysvinit tools
%if %{with sysvcompat} %if %{with sysvcompat}
ln -s ../usr/bin/systemctl %{buildroot}/sbin/telinit ln -s ../usr/bin/systemctl %{buildroot}/sbin/telinit
ln -s ../usr/bin/systemctl %{buildroot}/sbin/runlevel ln -s ../usr/bin/systemctl %{buildroot}/sbin/runlevel
@ -1269,36 +1258,10 @@ fi
%license LICENSE.LGPL2.1 %license LICENSE.LGPL2.1
%include %{SOURCE204} %include %{SOURCE204}
%files sysvinit %if %{with sysvcompat}
%files sysvcompat
%defattr(-,root,root,-) %defattr(-,root,root,-)
%if %{with split_usr} %include %{SOURCE205}
/sbin/halt
/sbin/init
/sbin/poweroff
/sbin/reboot
/sbin/shutdown
%if %{with sysvcompat}
/sbin/telinit
/sbin/runlevel
%endif
%endif
%{_sbindir}/halt
%{_sbindir}/init
%{_sbindir}/poweroff
%{_sbindir}/reboot
%{_sbindir}/shutdown
%if %{with sysvcompat}
%{_sbindir}/runlevel
%{_sbindir}/telinit
%endif
%if ! 0%{?bootstrap}
%{_mandir}/man1/init.1.gz
%{_mandir}/man8/halt.8.gz
%{_mandir}/man8/poweroff.8.gz
%{_mandir}/man8/reboot.8.gz
%{_mandir}/man8/runlevel.8.gz
%{_mandir}/man8/shutdown.8.gz
%{_mandir}/man8/telinit.8.gz
%endif %endif
%files -n libsystemd0%{?mini} %files -n libsystemd0%{?mini}