############################################################################### # IPFire.org - An Open Source Firewall Solution # # Copyright (C) - IPFire Development Team # ############################################################################### name = systemd version = 221 release = 4 maintainer = Stefan Schantl groups = System/Base url = http://www.freedesktop.org/wiki/Software/systemd license = GPLv2+ summary = A System and Service Manager. description systemd is a system and service manager for Linux, compatible with SysV and LSB init scripts. end source_dl = http://www.freedesktop.org/software/systemd/ sources = %{thisapp}.tar.xz build unitdir = %{prefix}/lib/systemd/system requires attr-devel audit-devel cryptsetup-luks-devel >= 1.4.2 dbus-devel docbook-utils docbook-xsl elfutils-devel gettext-devel glib2-devel gobject-introspection-devel >= 1.31 gperf hwdata intltool kmod-devel >= 15 libacl-devel libblkid-devel libcap-devel libgcrypt-devel libmount-devel libselinux-devel libuuid-devel m4 pam-devel pciutils-devel python3-devel python3-lxml usbutils vala xz-devel zlib-devel end configure_options += \ PYTHON=%{python3} \ --with-sysvinit-path= \ --with-sysvrcnd-path= \ --enable-introspection \ --enable-zlib \ --enable-compat-libs \ --disable-smack \ --disable-backlight \ --disable-firstboot \ --disable-hibernate \ --disable-importd \ --disable-libiptc \ --disable-machined \ --disable-networkd \ --disable-resolved \ --disable-sysusers \ --disable-timesyncd \ --disable-timedated \ --disable-polkit \ --disable-kdbus \ --disable-static prepare_cmds %{create_groups} end install_cmds # Create folder in log to store the journal. mkdir -pv %{BUILDROOT}/var/log/journal # Create sysv compatible symlinks. mkdir -pv %{BUILDROOT}%{sbindir} ln -svf ../lib/systemd/systemd %{BUILDROOT}/%{sbindir}/init ln -svf ../lib/systemd/systemd %{BUILDROOT}/%{bindir}/systemd ln -svf ../bin/systemctl %{BUILDROOT}/%{sbindir}/reboot ln -svf ../bin/systemctl %{BUILDROOT}/%{sbindir}/halt ln -svf ../bin/systemctl %{BUILDROOT}/%{sbindir}/poweroff ln -svf ../bin/systemctl %{BUILDROOT}/%{sbindir}/shutdown # Create empty machine-id file. touch %{BUILDROOT}/etc/machine-id # Copy locale and console settings mkdir -pv %{BUILDROOT}%{sysconfdir} cp -vf %{DIR_SOURCE}/{locale,vconsole}.conf %{BUILDROOT}%{sysconfdir} # Recreate all targets rm -rfv %{BUILDROOT}/%{sysconfdir}/systemd/system/*.target.wants for i in basic.target.wants default.target.wants dbus.target.wants getty.target.wants \ multi-user.target.wants syslog.target.wants; do mkdir -pv %{BUILDROOT}/%{sysconfdir}/systemd/system/${i} || exit 1 done # Remove runlevel targets and graphical.target rm -rfv %{BUILDROOT}%{unitdir}/runlevel* rm -rfv %{BUILDROOT}%{unitdir}/graphical.target # Remove service files for utmp update. rm -rvf %{BUILDROOT}%{unitdir}/systemd-update-utmp-*.service rm -rvf %{BUILDROOT}%{unitdir}/shutdown.target.wants/systemd-update-utmp-*.service # Set default target to multi-user ln -svf multi-user.target %{BUILDROOT}%{unitdir}/default.target # Replace absolute symlinks by relative ones. cd %{BUILDROOT}%{unitdir}/../user for i in bluetooth local-fs paths printer remote-fs shutdown smartcard sockets sound swap timers; do ln -svf ../system/${i}.target ${i}.target || exit 1 done # Remove tmpfile for X11 rm -rfv %{BUILDROOT}/usr/lib/tmpfiles.d/x11.conf # Remove unneeded stuff for xdg rm -rfv %{BUILDROOT}/etc/xdg # Remove unneeded stuff for rpm. rm -rvf %{BUILDROOT}/etc/rpm rm -rvf %{BUILDROOT}/usr/lib/rpm # Use journald. Enable the import of kernel messages. # Stop forwarding to a syslog daemon. sed \ -e "s/^#ForwardToSyslog=.*$/ForwardToSyslog=no/" \ -e "s/^#ImportKernel=.*$/ImportKernel=yes/" \ -i %{BUILDROOT}/etc/systemd/journald.conf # Install legacy tmpfile to autocreate /run/lock on startup. install -v -m 644 %{DIR_APP}/tmpfiles.d/legacy.conf %{BUILDROOT}%{prefix}/lib/tmpfiles.d/ # Remove udev rules for "predictable" network device renaming. # http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/ rm -vf %{BUILDROOT}/usr/lib/udev/rules.d/80-net-name-slot.rules # Create journald related folders. mkdir -pv %{BUILDROOT}/run/log/journal chown root:systemd-journal %{BUILDROOT}/run/log/journal mkdir -pv %{BUILDROOT}/var/log/journal chown root:systemd-journal %{BUILDROOT}/var/log/journal end end create_groups # Create groups for udev. getent group cdrom >/dev/null || groupadd -g 11 cdrom || : getent group tape >/dev/null || groupadd -g 33 tape || : getent group dialout >/dev/null || groupadd -g 18 dialout || : getent group floppy >/dev/null || groupadd -g 19 floppy || : getent group input >/dev/null || groupadd -r input || : getent group utmp >/dev/null || groupadd -r -g 22 utmp || : # Create group for journald. getent group systemd-journal >/dev/null || /usr/sbin/groupadd -r systemd-journal end packages package %{name} groups += Base prerequires += authconfig requires dbus hwdata python-cairo python-dbus python-gobject3 %{name}-libs=%{thisver} %{name}-units=%{thisver} util-linux>=2.19 end provides /bin/systemd /sbin/halt /sbin/init /sbin/poweroff /sbin/reboot /sbin/shutdown syslog udev = %{thisver} end conflicts bash-completion < 2.1 dracut < 019 filesystem < 002 rsyslog < 5.8.6-4 upstart end obsoletes udev < 183 end configfiles /etc/locale.conf /etc/machine-id /etc/systemd/journald.conf /etc/systemd/logind.conf /etc/systemd/system.conf /etc/systemd/user.conf /etc/udev/udev.conf /etc/vconsole.conf end script prein %{create_groups} end script postin # Generate Machine ID. /usr/bin/systemd-machine-id-setup > /dev/null 2>&1 || : # Reexec systemd daemon. /usr/bin/systemctl daemon-reexec > /dev/null 2>&1 || : # Make sure pam_systemd is enabled if ! grep -q pam_systemd /etc/pam.d/system-auth-ac ; then authconfig --update --nostart >/dev/null 2>&1 || : # Try harder grep -q pam_systemd /etc/pam.d/system-auth-ac || authconfig --updateall --nostart >/dev/null 2>&1 || : fi /usr/bin/systemctl enable \ getty@.service \ remote-fs.target \ systemd-readahead-replay.service \ systemd-readahead-collect.service \ >/dev/null 2>&1 || : end script preup # Be sure to stop the old udev before updating. /usr/bin/systemctl stop udev.service udev-trigger.service \ udev-control.socket udev-kernel.socket >/dev/null 2>&1 || : %{create_groups} end script postup # Re-exec systemd after update. /usr/bin/systemctl daemon-reexec # Restart login service after update /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : /usr/bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || : # Use the new journald configuration file and restart the service. if ! grep -xq ImportKernel=yes /etc/systemd/journald.conf ; then mv /etc/systemd/journald.conf.paknew /etc/systemd/journald.conf /usr/bin/systemctl restart systemd-journald.service >/dev/null 2>&1 || : fi end # Be sure to start the new udev after everything is done. script posttransup /usr/bin/systemctl start systemd-udev.service >/dev/null 2>&1 || : end end # Package information for systemd-units package %{name}-units summary = Configuration files, directories and installation tool for systemd. description This package contains all needed configuration files, directories and installation / configuration tool for systemd. end prerequires /bin/sh coreutils end provides /bin/systemctl end conflicts filesystem < 002 end files %{sysconfdir}/etc/systemd/system %{sysconfdir}/tmpfiles.d %{sysconfdir}/bash_completion.d/systemctl-bash-completion.sh %{unitdir} %{bindir}/systemctl %{bindir}/systemd-tmpfiles %{mandir}/man1/systemctl.* end script postup # Reload service files /usr/bin/systemctl daemon-reload > /dev/null 2>&1 || : end end package %{name}-libs template LIBS groups += Base prerequires /etc/nsswitch.conf end provides nss-myhostname = %{thisver} end obsoletes nss-myhostname <= 0.3-3 end conflicts # Ensure that the version of systemd matches systemd-libs. systemd > %{thisver} systemd < %{thisver} end # Add myhostname to the hosts line of /etc/nsswitch.conf script postin if [ -f "/etc/nsswitch.conf" ]; then sed -i.bak -e ' /^hosts:/ !b /\/ b s/[[:blank:]]*$/ myhostname/ ' /etc/nsswitch.conf fi end # Remove myhostname from the hosts line of /etc/nsswitch.conf script postun if [ -f "/etc/nsswitch.conf" ]; then sed -i.bak -e ' /^hosts:/ !b s/[[:blank:]]\+myhostname\>// ' /etc/nsswitch.conf fi end end package %{name}-compat-libs summary = systemd compatibility libraries. description Compatibility libraries for systemd. If your package requires this package, you need to update your link options and build. end requires %{name}-libs = %{thisver} end files %{libdir}/libsystemd-daemon.so.* %{libdir}/libsystemd-login.so.* %{libdir}/libsystemd-journal.so.* %{libdir}/libsystemd-id128.so.* end end package %{name}-devel template DEVEL requires += %{name}-compat-libs = %{thisver} files += %{prefix}/lib/pakfire/macros/ end package libudev summary = Libraries for adding libudev support to applications. description This package contains the libraries that make it easier to use libudev functionality from applications. end license = LGPLv2+ conflicts filesystem < 002 end files %{libdir}/lib*udev*.so.* %{libidr}/girepository*/ end end package libudev-devel summary = Header files for adding libudev support to applications. description This package contains the header and pkg-config files for developing applications using libudev functionality. end license = LGPLv2+ conflicts filesystem < 002 end files %{libdir}/lib*udev*.so %{libdir}/pkgconfig/lib*udev.pc %{libdir}/pkgconfig/gudev* %{includedir}/lib*udev.h %{includedir}/gudev* %{datadir}/gir-* %{datadir}/gtk-doc/html/gudev end end package python3-%{name} template PYTHON3 end package %{name}-debuginfo template DEBUGINFO end end