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