]> git.ipfire.org Git - people/amarx/ipfire-3.x.git/blob - systemd/systemd.nm
0b8e604e2624ae296bf9d3803af00b52f53360e9
[people/amarx/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 = 3
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 usbutils
53 vala
54 xz-devel
55 zlib-devel
56 end
57
58 configure_options += \
59 --with-sysvinit-path= \
60 --with-sysvrcnd-path= \
61 --enable-introspection \
62 --enable-zlib \
63 --enable-compat-libs \
64 --disable-smack \
65 --disable-backlight \
66 --disable-firstboot \
67 --disable-hibernate \
68 --disable-importd \
69 --disable-libiptc \
70 --disable-machined \
71 --disable-networkd \
72 --disable-resolved \
73 --disable-sysusers \
74 --disable-timesyncd \
75 --disable-timedated \
76 --disable-polkit \
77 --disable-kdbus \
78 --disable-static
79
80 prepare_cmds
81 %{create_groups}
82 end
83
84 install_cmds
85 # Create folder in log to store the journal.
86 mkdir -pv %{BUILDROOT}/var/log/journal
87
88 # Create sysv compatible symlinks.
89 mkdir -pv %{BUILDROOT}%{sbindir}
90 ln -svf ../lib/systemd/systemd %{BUILDROOT}/%{sbindir}/init
91 ln -svf ../lib/systemd/systemd %{BUILDROOT}/%{bindir}/systemd
92 ln -svf ../bin/systemctl %{BUILDROOT}/%{sbindir}/reboot
93 ln -svf ../bin/systemctl %{BUILDROOT}/%{sbindir}/halt
94 ln -svf ../bin/systemctl %{BUILDROOT}/%{sbindir}/poweroff
95 ln -svf ../bin/systemctl %{BUILDROOT}/%{sbindir}/shutdown
96
97 # Create empty machine-id file.
98 touch %{BUILDROOT}/etc/machine-id
99
100 # Copy locale and console settings
101 mkdir -pv %{BUILDROOT}%{sysconfdir}
102 cp -vf %{DIR_SOURCE}/{locale,vconsole}.conf %{BUILDROOT}%{sysconfdir}
103
104 # Recreate all targets
105 rm -rfv %{BUILDROOT}/%{sysconfdir}/systemd/system/*.target.wants
106 for i in basic.target.wants default.target.wants dbus.target.wants getty.target.wants \
107 multi-user.target.wants syslog.target.wants; do
108 mkdir -pv %{BUILDROOT}/%{sysconfdir}/systemd/system/${i} || exit 1
109 done
110
111 # Remove runlevel targets and graphical.target
112 rm -rfv %{BUILDROOT}%{unitdir}/runlevel*
113 rm -rfv %{BUILDROOT}%{unitdir}/graphical.target
114
115 # Remove service files for utmp update.
116 rm -rvf %{BUILDROOT}%{unitdir}/systemd-update-utmp-*.service
117 rm -rvf %{BUILDROOT}%{unitdir}/shutdown.target.wants/systemd-update-utmp-*.service
118
119 # Set default target to multi-user
120 ln -svf multi-user.target %{BUILDROOT}%{unitdir}/default.target
121
122 # Replace absolute symlinks by relative ones.
123 cd %{BUILDROOT}%{unitdir}/../user
124 for i in bluetooth local-fs paths printer remote-fs shutdown smartcard sockets sound swap timers; do
125 ln -svf ../system/${i}.target ${i}.target || exit 1
126 done
127
128 # Remove tmpfile for X11
129 rm -rfv %{BUILDROOT}/usr/lib/tmpfiles.d/x11.conf
130
131 # Remove unneeded stuff for xdg
132 rm -rfv %{BUILDROOT}/etc/xdg
133
134 # Remove unneeded stuff for rpm.
135 rm -rvf %{BUILDROOT}/etc/rpm
136 rm -rvf %{BUILDROOT}/usr/lib/rpm
137
138 # Use journald. Enable the import of kernel messages.
139 # Stop forwarding to a syslog daemon.
140 sed \
141 -e "s/^#ForwardToSyslog=.*$/ForwardToSyslog=no/" \
142 -e "s/^#ImportKernel=.*$/ImportKernel=yes/" \
143 -i %{BUILDROOT}/etc/systemd/journald.conf
144
145 # Install legacy tmpfile to autocreate /run/lock on startup.
146 install -v -m 644 %{DIR_APP}/tmpfiles.d/legacy.conf %{BUILDROOT}%{prefix}/lib/tmpfiles.d/
147
148 # Remove udev rules for "predictable" network device renaming.
149 # http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/
150 rm -vf %{BUILDROOT}/usr/lib/udev/rules.d/80-net-name-slot.rules
151
152 # Create journald related folders.
153 mkdir -pv %{BUILDROOT}/run/log/journal
154 chown root:systemd-journal %{BUILDROOT}/run/log/journal
155
156 mkdir -pv %{BUILDROOT}/var/log/journal
157 chown root:systemd-journal %{BUILDROOT}/var/log/journal
158 end
159 end
160
161 create_groups
162 # Create groups for udev.
163 getent group cdrom >/dev/null || groupadd -g 11 cdrom || :
164 getent group tape >/dev/null || groupadd -g 33 tape || :
165 getent group dialout >/dev/null || groupadd -g 18 dialout || :
166 getent group floppy >/dev/null || groupadd -g 19 floppy || :
167 getent group input >/dev/null || groupadd -r input || :
168 getent group utmp >/dev/null || groupadd -r -g 22 utmp || :
169
170 # Create group for journald.
171 getent group systemd-journal >/dev/null || /usr/sbin/groupadd -r systemd-journal
172 end
173
174 packages
175 package %{name}
176 groups += Base
177
178 prerequires += authconfig
179
180 requires
181 dbus
182 hwdata
183 python-cairo
184 python-dbus
185 python-gobject3
186 %{name}-libs=%{thisver}
187 %{name}-units=%{thisver}
188 util-linux>=2.19
189 end
190
191 provides
192 /bin/systemd
193 /sbin/halt
194 /sbin/init
195 /sbin/poweroff
196 /sbin/reboot
197 /sbin/shutdown
198
199 syslog
200 udev = %{thisver}
201 end
202
203 conflicts
204 bash-completion < 2.1
205 dracut < 019
206 filesystem < 002
207 rsyslog < 5.8.6-4
208 upstart
209 end
210
211 obsoletes
212 udev < 183
213 end
214
215 configfiles
216 /etc/locale.conf
217 /etc/machine-id
218 /etc/systemd/journald.conf
219 /etc/systemd/logind.conf
220 /etc/systemd/system.conf
221 /etc/systemd/user.conf
222 /etc/udev/udev.conf
223 /etc/vconsole.conf
224 end
225
226 script prein
227 %{create_groups}
228 end
229
230 script postin
231 # Generate Machine ID.
232 /usr/bin/systemd-machine-id-setup > /dev/null 2>&1 || :
233
234 # Reexec systemd daemon.
235 /usr/bin/systemctl daemon-reexec > /dev/null 2>&1 || :
236
237 # Make sure pam_systemd is enabled
238 if ! grep -q pam_systemd /etc/pam.d/system-auth-ac ; then
239 authconfig --update --nostart >/dev/null 2>&1 || :
240
241 # Try harder
242 grep -q pam_systemd /etc/pam.d/system-auth-ac || authconfig --updateall --nostart >/dev/null 2>&1 || :
243 fi
244
245 /usr/bin/systemctl enable \
246 getty@.service \
247 remote-fs.target \
248 systemd-readahead-replay.service \
249 systemd-readahead-collect.service \
250 >/dev/null 2>&1 || :
251 end
252
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 || :
257
258 %{create_groups}
259 end
260
261 script postup
262 # Re-exec systemd after update.
263 /usr/bin/systemctl daemon-reexec
264
265 # Restart login service after update
266 /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || :
267 /usr/bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || :
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
274 end
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
280 end
281
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
289
290 prerequires
291 /bin/sh
292 coreutils
293 end
294
295 provides
296 /bin/systemctl
297 end
298
299 conflicts
300 filesystem < 002
301 end
302
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.*
311 end
312
313 script postup
314 # Reload service files
315 /usr/bin/systemctl daemon-reload > /dev/null 2>&1 || :
316 end
317 end
318
319 package %{name}-libs
320 template LIBS
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
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
362 end
363
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
383 package %{name}-devel
384 template DEVEL
385
386 requires += %{name}-compat-libs = %{thisver}
387
388 files += %{prefix}/lib/pakfire/macros/
389 end
390
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
404 %{libdir}/lib*udev*.so.*
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
422 %{libdir}/lib*udev*.so
423 %{libdir}/pkgconfig/lib*udev.pc
424 %{libdir}/pkgconfig/gudev*
425 %{includedir}/lib*udev.h
426 %{includedir}/gudev*
427 %{datadir}/gir-*
428 %{datadir}/gtk-doc/html/gudev
429 end
430 end
431
432 package %{name}-debuginfo
433 template DEBUGINFO
434 end
435 end