###############################################################################
name = systemd
-version = 37
-release = 4
+version = 201
+release = 1
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
groups = System/Base
source_dl = http://cgit.freedesktop.org/systemd/systemd/snapshot/
build
+ unitdir = %{prefix}/lib/systemd/system
+
requires
+ attr-devel
audit-devel
automake
autoconf
- cryptsetup-luks-devel
+ cryptsetup-luks-devel >= 1.4.2
dbus-devel
docbook-utils
docbook-xsl
- gperf
gettext-devel
+ glib2-devel
+ gobject-introspection-devel >= 1.31
+ gperf
+ hwdata
intltool
+ kmod-devel >= 5
libacl-devel
+ libblkid-devel
libcap-devel
+ libgcrypt-devel
libselinux-devel
libtool
- libudev-devel>=172
+ libuuid-devel
pam-devel
+ pciutils-devel
+ usbutils
vala
+ xz-devel
end
configure_options += \
- --sysconfdir=/etc \
- --libexecdir=%{libdir} \
- --with-rootdir= \
- --with-distro=ipfire \
- --with-udevrulesdir=/lib/udev/rules.d/ \
- --with-pamlibdir=/%{lib}/security
+ --with-sysvinit-path= \
+ --with-sysvrcnd-path= \
+ --enable-introspection=yes \
+ --disable-static
prepare_cmds
./autogen.sh ac
end
- test
- make check
- end
-
install_cmds
+ # Create folder in log to store the journal.
+ mkdir -pv %{BUILDROOT}/var/log/journal
+
# Create sysv compatible symlinks.
- mkdir -pv %{BUILDROOT}/sbin
- ln -svf ../bin/systemd %{BUILDROOT}/sbin/init
- ln -svf ../bin/systemctl %{BUILDROOT}/sbin/reboot
- ln -svf ../bin/systemctl %{BUILDROOT}/sbin/halt
- ln -svf ../bin/systemctl %{BUILDROOT}/sbin/poweroff
- ln -svf ../bin/systemctl %{BUILDROOT}/sbin/shutdown
+ 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}/etc
- cp -vf %{DIR_SOURCE}/locale.conf %{BUILDROOT}/etc/
- cp -vf %{DIR_SOURCE}/vconsole.conf %{BUILDROOT}/etc/
+ mkdir -pv %{BUILDROOT}%{sysconfdir}
+ cp -vf %{DIR_SOURCE}/{locale,vconsole}.conf %{BUILDROOT}%{sysconfdir}
# Recreate all targets
- rm -rfv %{BUILDROOT}/etc/systemd/system/*.target.wants
- mkdir -pv %{BUILDROOT}/lib/systemd/system/basic.target.wants
- mkdir -pv %{BUILDROOT}/lib/systemd/system/default.target.wants
- mkdir -pv %{BUILDROOT}/lib/systemd/system/dbus.target.wants
- mkdir -pv %{BUILDROOT}/lib/systemd/system/syslog.target.wants
+ 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}/lib/systemd/system/runlevel*
- rm -rfv %{BUILDROOT}/lib/systemd/system/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
- cd %{BUILDROOT}/lib/systemd/system && ln -svf multi-user.target default.target
+ ln -svf multi-user.target %{BUILDROOT}%{unitdir}/default.target
# Replace absolute symlinks by relative ones.
- cd %{BUILDROOT}/usr/lib/systemd/user/ && ln -svf ../../../../lib/systemd/system/bluetooth.target bluetooth.target
- cd %{BUILDROOT}/usr/lib/systemd/user/ && ln -svf ../../../../lib/systemd/system/local-fs.target local-fs.target
- cd %{BUILDROOT}/usr/lib/systemd/user/ && ln -svf ../../../../lib/systemd/system/printer.target printer.target
- cd %{BUILDROOT}/usr/lib/systemd/user/ && ln -svf ../../../../lib/systemd/system/shutdown.target shutdown.target
- cd %{BUILDROOT}/usr/lib/systemd/user/ && ln -svf ../../../../lib/systemd/system/sockets.target sockets.target
- cd %{BUILDROOT}/usr/lib/systemd/user/ && ln -svf ../../../../lib/systemd/system/sound.target sound.target
- cd %{BUILDROOT}/usr/lib/systemd/user/ && ln -svf ../../../../lib/systemd/system/swap.target swap.target
+ 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 symlink for xdg
- rm -rfv %{BUILDROOT}/etc/xdg/systemd
+ # Remove unneeded stuff for xdg
+ rm -rfv %{BUILDROOT}/etc/xdg
+
+ # Remove unneeded stuff for rpm.
+ rm -rvf %{BUILDROOT}/etc/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/
end
end
packages
package %{name}
+ groups += Base
+
+ prerequires += authconfig
+
requires
dbus
+ hwdata
python-cairo
python-dbus
+ python-gobject3
%{name}-units=%{thisver}
- udev>=172
util-linux>=2.19
end
- prerequires += authconfig
- conflicts += upstart
+ 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 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 || :
+ end
script postin
# Generate Machine ID.
- /bin/systemd-machine-id-setup > /dev/null 2>&1 || :
+ /usr/bin/systemd-machine-id-setup > /dev/null 2>&1 || :
# Reexec systemd daemon.
- /bin/systemctl daemon-reexec > /dev/null 2>&1 || :
+ /usr/bin/systemctl daemon-reexec > /dev/null 2>&1 || :
# Make sure pam_systemd is enabled
- if ! /bin/grep -q pam_systemd /etc/pam.d/system-auth-ac ; then
- /usr/sbin/authconfig --update --nostart >/dev/null 2>&1 || :
+ if ! grep -q pam_systemd /etc/pam.d/system-auth-ac ; then
+ authconfig --update --nostart >/dev/null 2>&1 || :
# Try harder
- /bin/grep -q pam_systemd /etc/pam.d/system-auth-ac || /usr/sbin/authconfig --updateall --nostart >/dev/null 2>&1 || :
+ 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 || :
end
script postup
# Restart login service after update
- /bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || :
+ /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
coreutils
end
- files
- /etc/systemd/system
- /etc/tmpfiles.d
- /etc/bash_completion.d/systemctl-bash-completion.sh
- /lib/systemd/system
+ provides
/bin/systemctl
- /bin/systemd-tmpfiles
- /usr/share/man/man1/systemctl.*
end
- script postin
- # Enable default services.
- /bin/systemctl enable \
- getty@.service \
- remote-fs.target > /dev/null 2>&1 || :
+ conflicts
+ filesystem < 002
end
- script preun
- # Disable default services.
- /bin/systemctl disable \
- getty@.service \
- remote-fs.target > /dev/null 2>&1 || :
+ 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
- /bin/systemctl daemon-reload > /dev/null 2>&1 || :
+ /usr/bin/systemctl daemon-reload > /dev/null 2>&1 || :
end
end
+ package %{name}-libs
+ template LIBS
+ end
+
package %{name}-devel
template DEVEL
+
+ 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 %{name}-debuginfo