###############################################################################
name = systemd
-version = 204
-release = 5
+version = 239
+release = 1
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
groups = System/Base
SysV and LSB init scripts.
end
-source_dl = http://cgit.freedesktop.org/systemd/systemd/snapshot/
+source_dl = https://github.com/%{name}/%{name}/archive/v%{version}.tar.gz#/
build
unitdir = %{prefix}/lib/systemd/system
+ # The tools which are shipped by systemd requires an rpath to
+ # the libsystemd-shared binary to run properly. So the macro for
+ # removing any rpath's have to be disabled.
+ MACRO_FIX_LIBTOOL = # Do nothing
+
requires
+ # Testsuite
+ /usr/bin/getfacl
+ /usr/bin/mount
+ /usr/bin/tree
+ /usr/bin/umount
+
attr-devel
- audit-devel
- automake
- autoconf
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 >= 5
+ intltool >= 0.51.0
+ kmod-devel >= 15
libacl-devel
libblkid-devel
libcap-devel
libgcrypt-devel
- libselinux-devel
- libtool
+ libmount-devel
libuuid-devel
+ m4
+ meson
+ ninja >= 1.5
pam-devel
pciutils-devel
+ python3-devel
+ python3-lxml
usbutils
vala
xz-devel
+ zlib-devel
end
- configure_options += \
- --with-sysvinit-path= \
- --with-sysvrcnd-path= \
- --enable-introspection=yes \
- --disable-static
+ export LD_LIBRARY_PATH = %{DIR_APP}/.libs
+
+ configure_options = \
+ -Dsysvinit-path= \
+ -Dsysvrcnd-path= \
+ -Dzlib=true \
+ -Dsmack=false \
+ -Dbacklight=false \
+ -Dfirstboot=false \
+ -Dhibernate=false \
+ -Dimportd=false \
+ -Dlibiptc=false \
+ -Dmachined=false \
+ -Dnetworkd=false \
+ -Dresolve=false \
+ -Dportabled=false \
+ -Dsysusers=false \
+ -Dtimesyncd=false \
+ -Dtimedated=false \
+ -Dpolkit=false \
+ -Dstatic=false
prepare_cmds
- ./autogen.sh ac
+ %{create_groups}
+ end
+
+ build
+ # Call meson and pass configure options.
+ meson --buildtype=plain %{configure_options} . build
+
+ # Call ninja to start build
+ ninja -v %{PARALLELISMFLAGS} -C build
+ end
+
+ test
+ # Create dummy machine-id file, which is required for some tests.
+ touch %{sysconfdir}/machine-id
+
+ # Generate temporary machine-id, which is required at least by the id128 test.
+ systemd-machine-id-setup
+
+ # Run the testsuite.
+ ninja test -v %{PARALLELISMFLAGS} -C build || true
end
- install_cmds
+ install
+ # Export destdir.
+ export DESTDIR=%{BUILDROOT}
+
+ # Call ninja to perform installation
+ ninja install -v %{PARALLELISMFLAGS} -C build
+
# Create folder in log to store the journal.
mkdir -pv %{BUILDROOT}/var/log/journal
ln -svf ../system/${i}.target ${i}.target || exit 1
done
+ # Remove .so file for the shared library, it's not supposed to be used for anything.
+ rm -rvf %{BUILDROOT}%{prefix}/lib/systemd/libsystemd-shared.so
+
# Remove tmpfile for X11
rm -rfv %{BUILDROOT}/usr/lib/tmpfiles.d/x11.conf
+ # Drop X11 related config files
+ rm -rvf %{BUILDROOT}%{sysconfdir}/X11
+
# 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
+
+ # Drop ZSH related files
+ rm -rvf %{BUILDROOT}%{datadir}/zsh
# Use journald. Enable the import of kernel messages.
# Stop forwarding to a syslog daemon.
# 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
+
+ # Don't let udev set up any networking
+ rm -vf %{BUILDROOT}/usr/lib/udev/rules.d/80-net-setup-link.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
+
+ # Create empty environment file.
+ touch %{BUILDROOT}%{sysconfdir}/environment
+ 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
+
+quality-agent
+ whitelist_rpath
+ %{prefix}/lib/systemd
end
end
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 || :
+ %{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 || :
/usr/bin/systemctl enable \
getty@.service \
+ serial-getty@.service \
remote-fs.target \
systemd-readahead-replay.service \
systemd-readahead-collect.service \
# 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 || :
mv /etc/systemd/journald.conf.paknew /etc/systemd/journald.conf
/usr/bin/systemctl restart systemd-journald.service >/dev/null 2>&1 || :
fi
+
+ # Enable spawning getty's on serial devices.
+ systemctl enable serial-getty@.service >/dev/null 2>&1 || :
end
# Be sure to start the new udev after everything is done.
obsoletes
nss-myhostname <= 0.3-3
+ systemd-compat-libs < 230
end
conflicts