]> git.ipfire.org Git - people/pmueller/ipfire-3.x.git/blame - systemd/systemd.nm
systemd: Generate machine-id on first run.
[people/pmueller/ipfire-3.x.git] / systemd / systemd.nm
CommitLineData
c8ef6def 1###############################################################################
802ea3af
MT
2# IPFire.org - An Open Source Firewall Solution #
3# Copyright (C) - IPFire Development Team <info@ipfire.org> #
c8ef6def
SS
4###############################################################################
5
802ea3af 6name = systemd
8823e1f9 7version = 221
b6b0f37a 8release = 5
c8ef6def 9
802ea3af
MT
10maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
11groups = System/Base
12url = http://www.freedesktop.org/wiki/Software/systemd
13license = GPLv2+
14summary = A System and Service Manager.
c8ef6def 15
802ea3af
MT
16description
17 systemd is a system and service manager for Linux, compatible with
c8ef6def 18 SysV and LSB init scripts.
802ea3af
MT
19end
20
8823e1f9
SS
21source_dl = http://www.freedesktop.org/software/systemd/
22sources = %{thisapp}.tar.xz
802ea3af
MT
23
24build
6793fec1
MT
25 unitdir = %{prefix}/lib/systemd/system
26
802ea3af 27 requires
b329a155 28 attr-devel
802ea3af 29 audit-devel
2d01364a 30 cryptsetup-luks-devel >= 1.4.2
802ea3af 31 dbus-devel
fe6e3719
SS
32 docbook-utils
33 docbook-xsl
8823e1f9 34 elfutils-devel
bfabb323 35 gettext-devel
2d01364a
SS
36 glib2-devel
37 gobject-introspection-devel >= 1.31
38 gperf
39 hwdata
802ea3af 40 intltool
7e97512a 41 kmod-devel >= 15
2a824e90 42 libacl-devel
2d01364a 43 libblkid-devel
802ea3af 44 libcap-devel
4990bf7f 45 libgcrypt-devel
8823e1f9 46 libmount-devel
802ea3af 47 libselinux-devel
4990bf7f 48 libuuid-devel
8823e1f9 49 m4
802ea3af 50 pam-devel
2d01364a 51 pciutils-devel
63af7a71
SS
52 python3-devel
53 python3-lxml
2d01364a 54 usbutils
53a325cb 55 vala
6793fec1 56 xz-devel
8823e1f9 57 zlib-devel
802ea3af
MT
58 end
59
60 configure_options += \
63af7a71 61 PYTHON=%{python3} \
7f84cbd5
SS
62 --with-sysvinit-path= \
63 --with-sysvrcnd-path= \
8823e1f9
SS
64 --enable-introspection \
65 --enable-zlib \
4cdcf127 66 --enable-compat-libs \
8823e1f9
SS
67 --disable-smack \
68 --disable-backlight \
69 --disable-firstboot \
70 --disable-hibernate \
71 --disable-importd \
72 --disable-libiptc \
73 --disable-machined \
7e97512a 74 --disable-networkd \
8823e1f9 75 --disable-resolved \
7e97512a
SS
76 --disable-sysusers \
77 --disable-timesyncd \
8823e1f9
SS
78 --disable-timedated \
79 --disable-polkit \
80 --disable-kdbus \
2d01364a 81 --disable-static
802ea3af
MT
82
83 prepare_cmds
8823e1f9 84 %{create_groups}
802ea3af
MT
85 end
86
802ea3af 87 install_cmds
755fe986
SS
88 # Create folder in log to store the journal.
89 mkdir -pv %{BUILDROOT}/var/log/journal
90
802ea3af 91 # Create sysv compatible symlinks.
6793fec1
MT
92 mkdir -pv %{BUILDROOT}%{sbindir}
93 ln -svf ../lib/systemd/systemd %{BUILDROOT}/%{sbindir}/init
94 ln -svf ../lib/systemd/systemd %{BUILDROOT}/%{bindir}/systemd
95 ln -svf ../bin/systemctl %{BUILDROOT}/%{sbindir}/reboot
96 ln -svf ../bin/systemctl %{BUILDROOT}/%{sbindir}/halt
97 ln -svf ../bin/systemctl %{BUILDROOT}/%{sbindir}/poweroff
98 ln -svf ../bin/systemctl %{BUILDROOT}/%{sbindir}/shutdown
802ea3af
MT
99
100 # Create empty machine-id file.
101 touch %{BUILDROOT}/etc/machine-id
102
103 # Copy locale and console settings
6793fec1
MT
104 mkdir -pv %{BUILDROOT}%{sysconfdir}
105 cp -vf %{DIR_SOURCE}/{locale,vconsole}.conf %{BUILDROOT}%{sysconfdir}
802ea3af
MT
106
107 # Recreate all targets
0976fbe4
SS
108 rm -rfv %{BUILDROOT}/%{sysconfdir}/systemd/system/*.target.wants
109 for i in basic.target.wants default.target.wants dbus.target.wants getty.target.wants \
110 multi-user.target.wants syslog.target.wants; do
111 mkdir -pv %{BUILDROOT}/%{sysconfdir}/systemd/system/${i} || exit 1
6793fec1 112 done
802ea3af
MT
113
114 # Remove runlevel targets and graphical.target
6793fec1
MT
115 rm -rfv %{BUILDROOT}%{unitdir}/runlevel*
116 rm -rfv %{BUILDROOT}%{unitdir}/graphical.target
802ea3af 117
2d01364a
SS
118 # Remove service files for utmp update.
119 rm -rvf %{BUILDROOT}%{unitdir}/systemd-update-utmp-*.service
120 rm -rvf %{BUILDROOT}%{unitdir}/shutdown.target.wants/systemd-update-utmp-*.service
121
802ea3af 122 # Set default target to multi-user
6793fec1 123 ln -svf multi-user.target %{BUILDROOT}%{unitdir}/default.target
802ea3af
MT
124
125 # Replace absolute symlinks by relative ones.
6793fec1 126 cd %{BUILDROOT}%{unitdir}/../user
7f84cbd5 127 for i in bluetooth local-fs paths printer remote-fs shutdown smartcard sockets sound swap timers; do
6793fec1
MT
128 ln -svf ../system/${i}.target ${i}.target || exit 1
129 done
130
802ea3af
MT
131 # Remove tmpfile for X11
132 rm -rfv %{BUILDROOT}/usr/lib/tmpfiles.d/x11.conf
133
7f84cbd5
SS
134 # Remove unneeded stuff for xdg
135 rm -rfv %{BUILDROOT}/etc/xdg
136
137 # Remove unneeded stuff for rpm.
138 rm -rvf %{BUILDROOT}/etc/rpm
8823e1f9 139 rm -rvf %{BUILDROOT}/usr/lib/rpm
755fe986
SS
140
141 # Use journald. Enable the import of kernel messages.
142 # Stop forwarding to a syslog daemon.
143 sed \
144 -e "s/^#ForwardToSyslog=.*$/ForwardToSyslog=no/" \
145 -e "s/^#ImportKernel=.*$/ImportKernel=yes/" \
146 -i %{BUILDROOT}/etc/systemd/journald.conf
f2ada565
SS
147
148 # Install legacy tmpfile to autocreate /run/lock on startup.
149 install -v -m 644 %{DIR_APP}/tmpfiles.d/legacy.conf %{BUILDROOT}%{prefix}/lib/tmpfiles.d/
4f209325
MT
150
151 # Remove udev rules for "predictable" network device renaming.
152 # http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/
153 rm -vf %{BUILDROOT}/usr/lib/udev/rules.d/80-net-name-slot.rules
8823e1f9
SS
154
155 # Create journald related folders.
156 mkdir -pv %{BUILDROOT}/run/log/journal
157 chown root:systemd-journal %{BUILDROOT}/run/log/journal
158
159 mkdir -pv %{BUILDROOT}/var/log/journal
160 chown root:systemd-journal %{BUILDROOT}/var/log/journal
802ea3af
MT
161 end
162end
163
8823e1f9
SS
164create_groups
165 # Create groups for udev.
166 getent group cdrom >/dev/null || groupadd -g 11 cdrom || :
167 getent group tape >/dev/null || groupadd -g 33 tape || :
168 getent group dialout >/dev/null || groupadd -g 18 dialout || :
169 getent group floppy >/dev/null || groupadd -g 19 floppy || :
747db4fd
SS
170 getent group input >/dev/null || groupadd -r input || :
171 getent group utmp >/dev/null || groupadd -r -g 22 utmp || :
8823e1f9
SS
172
173 # Create group for journald.
174 getent group systemd-journal >/dev/null || /usr/sbin/groupadd -r systemd-journal
175end
176
802ea3af
MT
177packages
178 package %{name}
2d01364a
SS
179 groups += Base
180
6793fec1
MT
181 prerequires += authconfig
182
514357ad
SS
183 requires
184 dbus
2d01364a 185 hwdata
514357ad 186 python-cairo
1d40b321 187 python-dbus
7f84cbd5 188 python-gobject3
519776fd 189 %{name}-libs=%{thisver}
214d8f27 190 %{name}-units=%{thisver}
514357ad
SS
191 util-linux>=2.19
192 end
1d40b321 193
216fde50
SS
194 provides
195 /bin/systemd
196 /sbin/halt
197 /sbin/init
198 /sbin/poweroff
199 /sbin/reboot
200 /sbin/shutdown
2d01364a 201
755fe986 202 syslog
2d01364a 203 udev = %{thisver}
216fde50
SS
204 end
205
6793fec1 206 conflicts
7f84cbd5 207 bash-completion < 2.1
2d01364a 208 dracut < 019
6793fec1 209 filesystem < 002
755fe986 210 rsyslog < 5.8.6-4
6793fec1
MT
211 upstart
212 end
ef438375 213
2d01364a
SS
214 obsoletes
215 udev < 183
216 end
217
218 configfiles
219 /etc/locale.conf
220 /etc/machine-id
221 /etc/systemd/journald.conf
222 /etc/systemd/logind.conf
223 /etc/systemd/system.conf
224 /etc/systemd/user.conf
225 /etc/udev/udev.conf
226 /etc/vconsole.conf
227 end
228
229 script prein
8823e1f9 230 %{create_groups}
2d01364a
SS
231 end
232
1d40b321 233 script postin
1d40b321 234 # Reexec systemd daemon.
6793fec1 235 /usr/bin/systemctl daemon-reexec > /dev/null 2>&1 || :
1d40b321
SS
236
237 # Make sure pam_systemd is enabled
6793fec1
MT
238 if ! grep -q pam_systemd /etc/pam.d/system-auth-ac ; then
239 authconfig --update --nostart >/dev/null 2>&1 || :
1d40b321
SS
240
241 # Try harder
6793fec1 242 grep -q pam_systemd /etc/pam.d/system-auth-ac || authconfig --updateall --nostart >/dev/null 2>&1 || :
1d40b321 243 fi
5e462903
MT
244
245 /usr/bin/systemctl enable \
246 getty@.service \
50affca1 247 remote-fs.target \
5e462903
MT
248 systemd-readahead-replay.service \
249 systemd-readahead-collect.service \
250 >/dev/null 2>&1 || :
1d40b321
SS
251 end
252
2d01364a
SS
253 script preup
254 # Be sure to stop the old udev before updating.
255 /usr/bin/systemctl stop udev.service udev-trigger.service \
256 udev-control.socket udev-kernel.socket >/dev/null 2>&1 || :
8823e1f9
SS
257
258 %{create_groups}
2d01364a
SS
259 end
260
1d40b321 261 script postup
56f48716
SS
262 # Re-exec systemd after update.
263 /usr/bin/systemctl daemon-reexec
264
1d40b321 265 # Restart login service after update
5e462903 266 /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || :
6793fec1 267 /usr/bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || :
755fe986
SS
268
269 # Use the new journald configuration file and restart the service.
270 if ! grep -xq ImportKernel=yes /etc/systemd/journald.conf ; then
271 mv /etc/systemd/journald.conf.paknew /etc/systemd/journald.conf
272 /usr/bin/systemctl restart systemd-journald.service >/dev/null 2>&1 || :
273 fi
1d40b321 274 end
2d01364a
SS
275
276 # Be sure to start the new udev after everything is done.
277 script posttransup
278 /usr/bin/systemctl start systemd-udev.service >/dev/null 2>&1 || :
279 end
802ea3af 280 end
1f9bc2f0 281
802ea3af
MT
282 # Package information for systemd-units
283 package %{name}-units
284 summary = Configuration files, directories and installation tool for systemd.
285 description
286 This package contains all needed configuration files, directories
287 and installation / configuration tool for systemd.
288 end
1f9bc2f0 289
5e38e9bb
SS
290 prerequires
291 /bin/sh
292 coreutils
293 end
294
6793fec1 295 provides
802ea3af 296 /bin/systemctl
802ea3af 297 end
1d40b321 298
6793fec1
MT
299 conflicts
300 filesystem < 002
1d40b321
SS
301 end
302
6793fec1
MT
303 files
304 %{sysconfdir}/etc/systemd/system
305 %{sysconfdir}/tmpfiles.d
306 %{sysconfdir}/bash_completion.d/systemctl-bash-completion.sh
307 %{unitdir}
308 %{bindir}/systemctl
309 %{bindir}/systemd-tmpfiles
310 %{mandir}/man1/systemctl.*
1d40b321
SS
311 end
312
313 script postup
314 # Reload service files
6793fec1 315 /usr/bin/systemctl daemon-reload > /dev/null 2>&1 || :
1d40b321 316 end
802ea3af 317 end
1f9bc2f0 318
1191e383
SS
319 package %{name}-libs
320 template LIBS
519776fd
SS
321
322 groups += Base
323
324 prerequires
325 /etc/nsswitch.conf
326 end
327
328 provides
329 nss-myhostname = %{thisver}
330 end
331
332 obsoletes
333 nss-myhostname <= 0.3-3
334 end
335
336 conflicts
519776fd
SS
337 # Ensure that the version of systemd matches systemd-libs.
338 systemd > %{thisver}
339 systemd < %{thisver}
340 end
341
342 # Add myhostname to the hosts line of /etc/nsswitch.conf
343 script postin
344 if [ -f "/etc/nsswitch.conf" ]; then
345 sed -i.bak -e '
346 /^hosts:/ !b
347 /\<myhostname\>/ b
348 s/[[:blank:]]*$/ myhostname/
349 ' /etc/nsswitch.conf
350 fi
351 end
352
353 # Remove myhostname from the hosts line of /etc/nsswitch.conf
354 script postun
355 if [ -f "/etc/nsswitch.conf" ]; then
356 sed -i.bak -e '
357 /^hosts:/ !b
358 s/[[:blank:]]\+myhostname\>//
359 ' /etc/nsswitch.conf
360 fi
361 end
1191e383
SS
362 end
363
4cdcf127
SS
364 package %{name}-compat-libs
365 summary = systemd compatibility libraries.
366 description
367 Compatibility libraries for systemd. If your package requires this
368 package, you need to update your link options and build.
369 end
370
371 requires
372 %{name}-libs = %{thisver}
373 end
374
375 files
376 %{libdir}/libsystemd-daemon.so.*
377 %{libdir}/libsystemd-login.so.*
378 %{libdir}/libsystemd-journal.so.*
379 %{libdir}/libsystemd-id128.so.*
380 end
381 end
382
802ea3af
MT
383 package %{name}-devel
384 template DEVEL
6793fec1 385
4cdcf127
SS
386 requires += %{name}-compat-libs = %{thisver}
387
6793fec1 388 files += %{prefix}/lib/pakfire/macros/
802ea3af 389 end
1f9bc2f0 390
2d01364a
SS
391 package libudev
392 summary = Libraries for adding libudev support to applications.
393 description
394 This package contains the libraries that make it easier to use libudev
395 functionality from applications.
396 end
397 license = LGPLv2+
398
399 conflicts
400 filesystem < 002
401 end
402
403 files
1191e383 404 %{libdir}/lib*udev*.so.*
2d01364a
SS
405 %{libidr}/girepository*/
406 end
407 end
408
409 package libudev-devel
410 summary = Header files for adding libudev support to applications.
411 description
412 This package contains the header and pkg-config files for developing
413 applications using libudev functionality.
414 end
415 license = LGPLv2+
416
417 conflicts
418 filesystem < 002
419 end
420
421 files
a8aa3ead 422 %{libdir}/lib*udev*.so
73eb4724 423 %{libdir}/pkgconfig/lib*udev.pc
2d01364a 424 %{libdir}/pkgconfig/gudev*
a8aa3ead 425 %{includedir}/lib*udev.h
2d01364a
SS
426 %{includedir}/gudev*
427 %{datadir}/gir-*
428 %{datadir}/gtk-doc/html/gudev
429 end
430 end
431
63af7a71
SS
432 package python3-%{name}
433 template PYTHON3
434 end
435
1f9bc2f0
MT
436 package %{name}-debuginfo
437 template DEBUGINFO
438 end
802ea3af 439end