Magellan Linux

Contents of /smage/branches/alx07x-stable/core/systemd/systemd-242-r6.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 15135 - (show annotations) (download)
Fri Aug 7 07:28:05 2020 UTC (3 years, 8 months ago) by niro
File size: 34561 byte(s)
-release branches/alx07x-stable
1 # $Id$
2
3 PNAME="systemd"
4 PVER="242"
5 PBUILD="r6"
6
7 # 1=enable dev split packages
8 # 0=disable dev split packages
9 ENABLE_DEV_PACKAGES="1"
10
11 SPLIT_PACKAGES="libsystemd-shared systemd-systemctl libudev udev nss-myhostname libsystemd systemd-coredump systemd systemd-tools"
12
13 # dev packages
14 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
15 then
16 SPLIT_PACKAGES+=" libudev-dev udev-dev nss-myhostname-dev systemd-dev"
17 fi
18
19 PCAT="sys-apps"
20 HOMEPAGE="http://www.freedesktop.org/wiki/Software/systemd"
21
22 # enable or disable sysvinit support
23 # 1=yes, 0=no
24 SYSVINIT_SUPPORT=0
25
26 # enable or disable busybox support
27 # 1=yes, 0=no
28 BUSYBOX_SUPPORT=0
29
30 # disable gtk until build with libgee is fixed
31 # 1=yes, 0=no
32 ENABLE_GTK=0
33
34 # export this variables for preinstall
35 SPECIAL_VARS="SYSVINIT_SUPPORT BUSYBOX_SUPPORT"
36 # and this functions too
37 SPECIAL_FUNCTIONS="pkg_setup"
38
39 GLIB2_DEPEND=">= dev-libs/glib2-2.64"
40 GLIBC_DEPEND=">= virtual/glibc"
41 LIBGCC_DEPEND=">= sys-libs/libgcc-8.3"
42 XZ_DEPEND=">= virtual/xz-utils"
43 LIBGCRYPT_DEPEND=">= app-crypt/libgcrypt-1.8"
44 LIBGPGERROR_DEPEND=">= app-crypt/libgpg-error-1.38"
45 LIBNOTIFY_DEPEND=">= x11-libs/libnotify-0.7"
46 LIBGEE_DEPEND=">= dev-libs/libgee-0.20"
47 LIBCAP_DEPEND=">= sys-libs/libcap-2.36"
48 ELFUTILS_DEPEND=">= dev-libs/elfutils-libs-0.176"
49 LIBBLKID_DEPEND=">= sys-libs/libblkid-2.35"
50 COMMON_DEPEND="${GLIBC_DEPEND}
51 ${LIBGCC_DEPEND}
52 ${LIBCAP_DEPEND}"
53
54 DAEMON_DEPEND="${COMMON_DEPEND}
55 ${GLIB2_DEPEND}
56 >= virtual/procps
57 >= sys-apps/util-linux-2.35
58 >= sys-apps/kmod-27"
59 COREDUMP_DEPEND="${COMMON_DEPEND}
60 ${LIBGCRYPT_DEPEND}
61 ${LIBGPGERROR_DEPEND}
62 ${ELFUTILS_DEPEND}"
63 SYSTEMCTL_DEPEND="${COMMON_DEPEND}"
64
65 LIBUDEV_DEPEND="${COMMON_DEPEND}"
66 NSS_DEPEND="${COMMON_DEPEND}
67 ${LIBGCRYPT_DEPEND}
68 ${LIBGPGERROR_DEPEND}"
69 LIBSYSTEMD_DEPEND="${COMMON_DEPEND}
70 ${LIBGCRYPT_DEPEND}
71 ${LIBGPGERROR_DEPEND}
72 ${XZ_DEPEND}"
73 LIBSYSTEMD_SHARED_DEPEND="${COMMON_DEPEND}
74 ${LIBGCRYPT_DEPEND}
75 ${LIBBLKID_DEPEND}"
76
77 # only /etc/os-release is supported from now on
78 SYSTEMD_DEPEND="${DAEMON_DEPEND}
79 ${XZ_DEPEND}
80 ${LIBGCRYPT_DEPEND}
81 ${LIBGPGERROR_DEPEND}
82 >= sys-apps/mage-release-1
83 >= sys-apps/dbus-1.12
84 >= dev-libs/dbus-glib-0.110
85 >= virtual/shadow"
86
87 TOOLS_DEPEND=">= dev-python/python3-dbus-1.2
88 >= sys-apps/polkit-0.116"
89
90 UDEV_DEPEND="${DAEMON_DEPEND}
91 >= dev-libs/libusb-compat-0.1.5
92 >= virtual/usbutils
93 >= virtual/pciutils
94 >= sys-libs/libuuid-2.35
95 >= sys-fs/libgudev-233"
96
97 PYTHON_DEPEND=">= dev-lang/python3-3.7
98 >= dev-python/python3-lxml-4.5"
99
100 if [[ ${ENABLE_GTK} = 1 ]]
101 then
102 TOOLS_DEPEND="${TOOLS_DEPEND}
103 >= x11-libs/gtk3+-3.24
104 ${LIBGEE_DEPEND}
105 ${LIBNOTIFY_DEPEND}"
106 fi
107
108 # busybox supports requires sysvinit support
109 if [[ ${BUSYBOX_SUPPORT} = 1 ]]
110 then
111 [[ ${SYSVINIT_SUPPORT} != 1 ]] && SYSVINIT_SUPPORT=1
112 fi
113
114 if [[ ${SYSVINIT_SUPPORT} = 1 ]]
115 then
116 SYSTEMD_DEPEND="${SYSTEMD_DEPEND}
117 >= sys-apps/sysvinit-2.88"
118 fi
119
120 SDEPEND="${LIBUDEV_DEPEND}
121 ${NSS_DEPEND}
122 ${LIBSYSTEMD_DEPEND}
123 ${LIBSYSTEMD_SHARED_DEPEND}
124 ${SYSTEMCTL_DEPEND}
125 ${SYSTEMD_DEPEND}
126 ${TOOLS_DEPEND}
127 ${UDEV_DEPEND}
128 ${PYTHON_DEPEND}
129 ${COREDUMP_DEPEND}
130 >= app-text/docbook-xsl-stylesheets-1.76
131 >= app-text/docbook-xml-dtd42-4.2
132 >= app-text/docbook-xml-dtd45-4.5
133 >= dev-libs/libcgroup-0.41
134 >= dev-libs/libxslt-1.1.32
135 >= dev-lang/vala-0.48
136 >= dev-util/intltool-0.51
137 >= dev-util/gperf-3.1
138 >= virtual/kernel-headers
139 >= dev-libs/glib2-dev-2.64
140 >= sys-libs/libgcc-dev-8.3
141 >= app-crypt/libgcrypt-dev-1.8
142 >= app-crypt/libgpg-error-dev-1.38
143 >= dev-libs/libgee-dev-0.20
144 >= sys-apps/util-linux-dev-2.35
145 >= sys-apps/kmod-dev-27
146 >= sys-apps/dbus-dev-1.12
147 >= dev-libs/dbus-glib-dev-0.110
148 >= sys-libs/libcap-dev-2.36
149 >= dev-libs/libusb-compat-dev-0.1.5
150 >= sys-libs/libuuid-dev-2.35
151 >= sys-fs/libgudev-dev-233
152 >= x11-libs/gtk3+-dev-3.24
153 >= dev-libs/libxslt-dev-1.1.26
154 >= x11-libs/libnotify-dev-0.7
155 >= dev-libs/elfutils-libs-dev-0.176
156 >= sys-libs/glibc-locale-us-2"
157
158 SRCFILE="v${PVER}.tar.gz"
159 SRCDIR="${BUILDDIR}/${PNAME}-${PVER}"
160
161 UDEV_CONFIG_PVER="20151110-1"
162 UDEV_CONFIG_SRCFILE="config-udev-${UDEV_CONFIG_PVER}.tar.bz2"
163 UDEV_CONFIG_SRCDIR="${BUILDDIR}/config-udev-${UDEV_CONFIG_PVER}"
164
165 if [[ ${ENABLE_GTK} = 1 ]]
166 then
167 UI_PVER="3"
168 UI_SRCFILE="${PNAME}-ui-${UI_PVER}.tar.xz"
169 UI_SRCDIR="${BUILDDIR}/${PNAME}-ui-${UI_PVER}"
170 fi
171
172 sminclude multilib python3 mtools meson cleanutils udev alx
173 msetfeature "!check"
174
175 # requires += to get injection files included
176 SRC_URI+=(
177 https://github.com/${PNAME}/${PNAME}/archive/${SRCFILE}
178 mirror://${PNAME}/${SRCFILE}
179 mirror://udev/${UDEV_CONFIG_SRCFILE}
180 mirror://${PNAME}/${PNAME}-239-magellan-configurable-getty-2.patch
181 mirror://${PNAME}/${PNAME}-234-getty-busybox-compat.patch
182 mirror://${PNAME}/${PNAME}-236-uucp-group.patch
183 mirror://${PNAME}/${PNAME}-233-systemd-user-pam.patch
184 mirror://${PNAME}/${PNAME}-242-socket-util-put-a-limit-on-the-loop-to-flush-connections.patch
185 mirror://${PNAME}/${PNAME}-242-network-logs-link-state-change.patch
186 mirror://${PNAME}/${PNAME}-242-network-drop-invalid-assertion.patch
187 mirror://${PNAME}/${PNAME}-242-network-fix-assertion-when-link-get-carrier.patch
188 mirror://${PNAME}/${PNAME}-242-network-do-not-use-ordered_set_printf-for-DOMAINS-or-ROUTE_DOMAINS.patch
189 mirror://${PNAME}/${PNAME}-242-network-honor-MTUBytes-setting.patch
190 mirror://${PNAME}/${PNAME}-242-network-bump-MTU-bytes-only-when-MTUBytes-is-not-set.patch
191 mirror://${PNAME}/${PNAME}-242-core-set-fs.file-max-sysctl-to-LONG_MAX-rather-than-ULONG_MAX.patch
192 mirror://${PNAME}/${PNAME}-242-cgroup-util-kill-also-threads.patch
193 mirror://${PNAME}/${PNAME}-242-random-util-rename-err-to-success.patch
194 mirror://${PNAME}/${PNAME}-242-util-lib-fix-a-typo-in-rdrand.patch
195 mirror://${PNAME}/${PNAME}-242-random-util-eat-up-bad-RDRAND-values-seen-on-amd-cpus.patch
196 mirror://${PNAME}/${PNAME}-242-gcc9-network-silence-strncpy-warnings.patch
197 mirror://${PNAME}/${PNAME}-242-networkd-fix-link-up.patch
198 mirror://${PNAME}/${PNAME}-242-network-do-not-send-ipv6-token-to-kernel.patch
199 )
200
201 if [[ ${ENABLE_GTK} = 1 ]]
202 then
203 SRC_URI+=( http://www.freedesktop.org/software/${PNAME}/${UI_SRCFILE} )
204 fi
205
206 UP2SEPERATOR="v"
207 UP2DATE="updatecmd https://github.com/systemd/systemd/releases | highesttarball gz"
208
209 split_info_libudev()
210 {
211 DESCRIPTION="Dynamic library to access udev device information."
212 DEPEND="${LIBUDEV_DEPEND}"
213 PCAT="sys-fs"
214 }
215
216 split_info_libudev-dev()
217 {
218 DESCRIPTION="Development files for libudev."
219 DEPEND=">= sys-fs/libudev-${PVER}"
220 PCAT="sys-fs"
221 }
222
223 split_info_udev()
224 {
225 DESCRIPTION="A Userspace Implementation for dynamic /dev nodes."
226 DEPEND="${UDEV_DEPEND}
227 == sys-fs/libudev-${PVER}
228 == sys-libs/libsystemd-shared-${PVER}
229 == sys-apps/systemd-systemctl-${PVER}"
230 PCAT="sys-fs"
231 }
232
233 split_info_udev-dev()
234 {
235 DESCRIPTION="Development files for udev."
236 DEPEND=">= sys-fs/udev-${PVER}"
237 PCAT="sys-fs"
238 }
239
240 split_info_nss-myhostname()
241 {
242 DESCRIPTION="glibc plugin for local system host name resolution."
243 DEPEND="${NSS_DEPEND}"
244 PCAT="net-dns"
245 }
246
247 split_info_nss-myhostname-dev()
248 {
249 DESCRIPTION="Development files for nss-myhostname."
250 DEPEND=">= net-dns/nss-myhostname-${PVER}"
251 PCAT="net-dns"
252 }
253
254 split_info_libsystemd()
255 {
256 DESCRIPTION="systemd library."
257 DEPEND="${LIBSYSTEMD_DEPEND}"
258 PCAT="sys-libs"
259 }
260
261 split_info_libsystemd-shared()
262 {
263 DESCRIPTION="systemd shared helper library."
264 DEPEND="${LIBSYSTEMD_SHARED_DEPEND}"
265 PCAT="sys-libs"
266 }
267
268 split_info_systemd-systemctl()
269 {
270 DESCRIPTION="systemd services control utility."
271 DEPEND="${SYSTEMCTL_DEPEND}
272 == sys-libs/libsystemd-shared-${PVER}"
273 }
274
275 split_info_systemd-coredump()
276 {
277 DESCRIPTION="systemd coredump utility."
278 DEPEND="${COREDUMP_DEPEND}
279 == sys-libs/libsystemd-shared-${PVER}"
280 }
281
282 split_info_systemd()
283 {
284 DESCRIPTION="System and Session Manager."
285 DEPEND="${SYSTEMD_DEPEND}
286 == sys-libs/libsystemd-${PVER}
287 == sys-libs/libsystemd-shared-${PVER}
288 == net-dns/nss-myhostname-${PVER}
289 == sys-apps/systemd-systemctl-${PVER}
290 == sys-fs/udev-${PVER}"
291 # ignore with alx
292 # == sys-apps/systemd-coredump-${PVER}
293 # systemd >=195 provides now full syslog facilities
294 PROVIDE="virtual/syslog"
295 }
296
297 split_info_systemd-dev()
298 {
299 DESCRIPTION="Development files for systemd."
300 DEPEND="== sys-fs/libudev-dev-${PVER}
301 == net-dns/nss-myhostname-dev-${PVER}
302 == sys-fs/udev-dev-${PVER}
303 >= sys-apps/systemd-dev-${PVER}"
304 }
305
306 split_info_systemd-tools()
307 {
308 local gtkdesc
309 [[ ${ENABLE_GTK} = 1 ]] && gtkdesc="for gtk3/gnome and "
310
311 DESCRIPTION="Systemd utilites ${gtkdesc}for analysing the boot process."
312 DEPEND="== sys-apps/systemd-${PVER}
313 == sys-libs/libsystemd-shared-${PVER}
314 ${TOOLS_DEPEND}"
315 }
316
317 pkg_setup()
318 {
319 # adding lock group
320 mgroupadd -o "-g 54" lock
321 # adding journal group/users
322 mgroupadd -o "-g 190" systemd-journal
323 mgroupadd -o "-g 191" systemd-journal-gateway
324 museradd -o "-u 191 -g systemd-journal-gateway -d /var/log/journal -s /bin/false" systemd-journal-gateway
325 mgroupadd -o "-g 196" systemd-journal-remote
326 museradd -o "-u 196 -g systemd-journal-remote -d /var/log/journal/remote -s /bin/false" systemd-journal-remote
327 mgroupadd -o "-g 197" systemd-journal-upload
328 museradd -o "-u 197 -g systemd-journal-upload -d /var/log/journal/upload -s /bin/false" systemd-journal-upload
329 # adding other systemd group/users
330 mgroupadd -o "-g 192" systemd-timesync
331 museradd -o "-u 192 -g systemd-timesync -l -d / -s /bin/false" systemd-timesync
332 mgroupadd -o "-g 193" systemd-network
333 museradd -o "-u 193 -g systemd-network -l -d / -s /bin/false" systemd-network
334 mgroupadd -o "-g 194" systemd-resolve
335 museradd -o "-u 194 -g systemd-resolve -l -d / -s /bin/false" systemd-resolve
336 mgroupadd -o "-g 195" systemd-bus-proxy
337 museradd -o "-u 195 -g systemd-bus-proxy -l -d / -s /bin/false" systemd-bus-proxy
338 }
339
340 src_prepare()
341 {
342 munpack ${SRCFILE} || die
343 oldmunpack ${UDEV_CONFIG_SRCFILE} || die
344 if [[ ${ENABLE_GTK} = 1 ]]
345 then
346 SRCDIR="${UI_SRCDIR}" munpack ${UI_SRCFILE} || die
347 fi
348
349 # upstream patches:
350 mpatch ${PNAME}-242-socket-util-put-a-limit-on-the-loop-to-flush-connections.patch || die
351 mpatch ${PNAME}-242-network-logs-link-state-change.patch || die
352 mpatch ${PNAME}-242-network-drop-invalid-assertion.patch || die
353 mpatch ${PNAME}-242-network-fix-assertion-when-link-get-carrier.patch || die
354 mpatch ${PNAME}-242-network-do-not-use-ordered_set_printf-for-DOMAINS-or-ROUTE_DOMAINS.patch || die
355 mpatch ${PNAME}-242-network-honor-MTUBytes-setting.patch || die
356 mpatch ${PNAME}-242-network-bump-MTU-bytes-only-when-MTUBytes-is-not-set.patch || die
357 mpatch ${PNAME}-242-core-set-fs.file-max-sysctl-to-LONG_MAX-rather-than-ULONG_MAX.patch || die
358 mpatch ${PNAME}-242-cgroup-util-kill-also-threads.patch || die
359 mpatch ${PNAME}-242-random-util-rename-err-to-success.patch || die
360 mpatch ${PNAME}-242-util-lib-fix-a-typo-in-rdrand.patch || die
361 mpatch ${PNAME}-242-random-util-eat-up-bad-RDRAND-values-seen-on-amd-cpus.patch || die
362 # see: https://github.com/systemd/systemd/issues/12534
363 # and: https://github.com/systemd/systemd/pull/12501/commits
364 mpatch ${PNAME}-242-gcc9-network-silence-strncpy-warnings.patch || die
365 # fix network issues with linux >=5.2
366 # see: https://github.com/openbmc/meta-phosphor/commit/8c4686c5d242ae045a79dfb768af54361c462e6a#diff-35c58658e98bb1f53d6d7230203e1a6e
367 mpatch ${PNAME}-242-networkd-fix-link-up.patch || die
368 mpatch ${PNAME}-242-network-do-not-send-ipv6-token-to-kernel.patch || die
369
370 # magellan-only: use a configurable getty
371 mpatch ${PNAME}-239-magellan-configurable-getty-2.patch || die
372
373 # fix busybox compat, agetty options unknown
374 mpatch ${PNAME}-234-getty-busybox-compat.patch || die
375
376 # replace dialout group with uucp for ttys
377 mpatch ${PNAME}-236-uucp-group.patch || die
378
379 # honor pam system-auth
380 mpatch ${PNAME}-233-systemd-user-pam.patch || die
381
382 # fix rootlink install location
383 sed -i "s:^\(udevdir=\).*:\1/usr/lib/udev:" ${UDEV_CONFIG_SRCDIR}/Makefile || die
384 }
385
386 src_compile()
387 {
388 local myconf
389
390 meson_setup_builddir || die
391
392 # fixes build errors, enforce utf-8
393 export LC_ALL=en_US.UTF-8
394
395 # disable dnssec
396 myconf+=" $(meson_opt default-dnssec no)"
397
398 # disable kill user processes as this will prevent screen and tmux from working correctly
399 # see: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=825394
400 # https://bugs.freedesktop.org/show_bug.cgi?id=94508
401 # https://bbs.archlinux.org/viewtopic.php?id=204307
402 # https://github.com/systemd/systemd/issues/2900
403 myconf+=" $(meson_opt kill-user-processes false)"
404
405 # no rpm macros
406 myconf+=" $(meson_opt rpmmacrosdir no)"
407
408 meson_configure \
409 --libexecdir=/usr/lib \
410 --localstatedir=/var \
411 $(meson_opt pamlibdir /usr/'$(mlibdir)'/security) \
412 $(meson_opt ima false) \
413 $(meson_opt audit false) \
414 $(meson_opt selinux false) \
415 $(meson_opt qrencode false) \
416 $(meson_opt pam false) \
417 $(meson_opt xz false) \
418 $(meson_opt acl false) \
419 $(meson_opt libcryptsetup false) \
420 $(meson_opt sysvinit-path /etc/rc.d/init.d) \
421 $(meson_opt sysvrcnd-path /etc/rc.d) \
422 $(meson_opt loadkeys-path /usr/bin/loadkeys) \
423 $(meson_opt setfont-path /usr/bin/setfont) \
424 $(meson_opt tty-gid 4) \
425 $(meson_opt sysusers true) \
426 ${myconf} \
427 || die
428
429 mninja || die
430
431 if [[ ${ENABLE_GTK} = 1 ]]
432 then
433 SRCDIR="${UI_SRCDIR}" mconfigure || die
434 SRCDIR="${UI_SRCDIR}" mmake || die
435 fi
436 }
437
438 src_install_systemd()
439 {
440 DESTDIR=${BINDIR} mninja install || die
441
442 # keep some directories
443 mkeepdir /run || die
444 mkeepdir /etc/modules-load.d || die
445 mkeepdir /etc/sysctl.d || die
446 mkeepdir /etc/tmpfiles.d || die
447 mkeepdir /etc/binfmt.d || die
448
449 # make sure the shutdown/sleep drop-in dirs exist
450 mkeepdir /usr/lib/systemd/system-shutdown || die
451 mkeepdir /usr/lib/systemd/system-sleep || die
452
453 # make sure the NTP units dir exists
454 mkeepdir /usr/lib/systemd/ntp-units.d || die
455
456 # make sure directories in /var exist
457 mkeepdir /var/lib/systemd/coredump || die
458 mkeepdir /var/lib/systemd/catalog || die
459 mkeepdir /var/lib/systemd/backlight || die
460 mkeepdir /var/lib/systemd/rfkill || die
461 mkeepdir /var/log/journal || die
462
463 if [[ ${SYSVINIT_SUPPORT} != 1 ]]
464 then
465 echo "Include SysV init Compat symlinks"
466 # create SysV compatibility symlinks. systemctl/systemd are smart
467 # enough to detect in which way they are called.
468 minstalldir /usr/sbin || die
469 mlink ../lib/systemd/systemd /usr/sbin/init || die
470 local i
471 for i in reboot halt poweroff shutdown telinit runlevel
472 do
473 mlink ../bin/systemctl /usr/sbin/${i} || die
474 done
475 else
476 echo "Using sysvinit package for SysV compat"
477 fi
478
479 # we create all wants links manually at installation time to make sure
480 # they are not owned and hence overriden by mage after the user deleted
481 # them.
482 rm -r ${BINDIR}/etc/systemd/system/*.target.wants || die
483 # but make sure these directories are properly owned
484 mkeepdir /usr/lib/systemd/system/basic.target.wants || die
485 mkeepdir /usr/lib/systemd/system/default.target.wants || die
486 mkeepdir /usr/lib/systemd/system/dbus.target.wants || die
487 mkeepdir /usr/lib/systemd/system/syslog.target.wants || die
488 # make sure the user generators dir exists too
489 mkeepdir /usr/lib/systemd/user-generators || die
490 mkeepdir /usr/lib/systemd/system-generators || die
491
492 # we have no rpm, remove config macros
493 #mdelete -r /etc/rpm || die
494
495 minstalldocs DISTRO_PORTING LICENSE README TODO || die
496
497 # remove files which are owned by other packages
498 mdelete /etc/systemd/coredump.conf || die
499 mdelete /usr/bin/coredumpctl || die
500 mdelete /usr/bin/systemctl || die
501 mdelete /usr/bin/systemd-analyze || die
502 mdelete /usr/bin/kernel-install || die
503 mdelete -r /etc/udev || die
504 mdelete /usr/bin/udevadm || die
505 mdelete /usr/include/libudev.h || die
506 mdelete /usr/lib/sysctl.d/50-coredump.conf || die
507 mdelete /usr/lib/systemd/systemd-coredump || die
508 mdelete /usr/lib/systemd/systemd-udevd || die
509 mdelete /usr/lib/systemd/system/systemd-udevd-control.socket || die
510 mdelete /usr/lib/systemd/system/systemd-udevd-kernel.socket || die
511 mdelete /usr/lib/systemd/system/systemd-udevd.service || die
512 mdelete /usr/lib/systemd/system/systemd-udev-settle.service || die
513 mdelete /usr/lib/systemd/system/systemd-udev-trigger.service || die
514 mdelete /usr/lib/systemd/libsystemd-shared-\*.so || die
515 mdelete -r /usr/lib/udev || die
516 mdelete /usr/$(mlibdir)/libudev\* || die
517 mdelete /usr/$(mlibdir)/libnss_myhostname\* || die
518 mdelete /usr/$(mlibdir)/libsystemd.\* || die
519 mdelete /usr/$(mlibdir)/pkgconfig/libudev.pc || die
520 if [[ $(mlibdir) != lib ]]
521 then
522 mdelete /usr/lib/libudev\* || die
523 mdelete /usr/lib/libnss_myhostname\* || die
524 mdelete /usr/lib/libsystemd.\* || die
525 mdelete /usr/lib/pkgconfig/libudev.pc || die
526 fi
527 mdelete /usr/share/man/man1/coredumpctl.1 || die
528 mdelete /usr/share/man/man1/systemctl.1 || die
529 mdelete /usr/share/man/man5/coredump.conf.5 || die
530 mdelete /usr/share/man/man5/coredump.conf.d.5 || die
531 mdelete /usr/share/man/man8/systemd-coredump.8 || die
532 mdelete /usr/share/man/man7/udev.7 || die
533 mdelete /usr/share/man/man8/systemd-udevd.8 || die
534 mdelete /usr/share/man/man8/udevadm.8 || die
535 mdelete /usr/share/man/man8/nss-myhostname.8 || die
536 mdelete /usr/share/pkgconfig/udev.pc || die
537
538 # install udev rule for systemd
539 all-abis minstalludevrule ${BUILDDIR}/build-$(mabi)/rules/99-systemd.rules || die
540
541 # ghost own runtime generated config files
542 minstalldir /etc/X11/xorg.conf.d || die
543 memptyfile /etc/X11/xorg.conf.d/00-keyboard.conf || die
544 memptyfile /etc/machine-id || die
545 memptyfile /etc/machine-info || die
546 # and set CONFIG_PROTECT_MASK for them
547 minstalldir /etc/env.d || die
548 MCONFIG=/etc/env.d/02systemd
549 mclearconfig || die
550 maddconfig 'CONFIG_PROTECT_IGNORE="/etc/machine-id /etc/machine-info /etc/X11/xorg.conf.d/00-keyboard.conf"' || die
551
552 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
553 then
554 mdelete -r /usr/include || die
555 mdelete -r /usr/share/bash-completion || die
556 mdelete -r /usr/share/doc || die
557 mdelete -r /usr/share/man || die
558 mdelete -r /usr/share/pkgconfig || die
559 mdelete -r /usr/share/zsh || die
560 #mdelete -r /usr/$(mlibdir)/rpm || die
561 mdelete -r /usr/$(mlibdir)/pkgconfig || die
562 if [[ $(mlibdir) != lib ]]
563 then
564 #mdelete -r /usr/$(mlibdir)/rpm || die
565 mdelete -r /usr/$(mlibdir)/pkgconfig || die
566 fi
567 fi
568
569 # alx only - mount /var/log with a tmpfs
570 mcinjectfile var-log.mount /usr/lib/systemd/system || die
571 mlink ../var-log.mount /usr/lib/systemd/system/local-fs.target.wants/var-log.mount || die
572
573 # alx only - do not wait for all interfaces to become online, just exit successfully if at least one interface is online
574 local MCONFIG="/etc/systemd/system/systemd-networkd-wait-online.service.d/override.conf"
575 mclearconfig
576 maddconfig '[Service]'
577 maddconfig '# must be cleared before it can actually be overridden'
578 maddconfig 'ExecStart='
579 maddconfig 'ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any'
580 }
581
582 src_install_systemd-dev()
583 {
584 DESTDIR=${BINDIR} mninja install || die
585 minstalldocs DISTRO_PORTING LICENSE README TODO || die
586
587 # remove files which are owned by other packages
588 mdelete /usr/include/libudev.h || die
589 mdelete /usr/$(mlibdir)/pkgconfig/libudev.pc || die
590 if [[ $(mlibdir) != lib ]]
591 then
592 mdelete /usr/lib/pkgconfig/libudev.pc || die
593 fi
594 mdelete /usr/share/man/man1/coredumpctl.1 || die
595 mdelete /usr/share/man/man5/coredump.conf.5 || die
596 mdelete /usr/share/man/man5/coredump.conf.d.5 || die
597 mdelete /usr/share/man/man8/systemd-coredump.8 || die
598 mdelete /usr/share/man/man7/udev.7 || die
599 mdelete /usr/share/man/man8/systemd-udevd.8 || die
600 mdelete /usr/share/man/man8/udevadm.8 || die
601 mdelete /usr/share/man/man8/nss-myhostname.8 || die
602 mdelete /usr/share/pkgconfig/udev.pc || die
603
604 # usr/$(mlibdir)/rpm
605 # $([[ $(mlibdir) != lib ]] && echo 'usr/lib/rpm')
606 zapmost ${BINDIR} \
607 usr/include \
608 usr/share/bash-completion \
609 usr/share/doc \
610 usr/share/man \
611 usr/share/pkgconfig \
612 usr/share/zsh \
613 usr/$(mlibdir)/pkgconfig \
614 $([[ $(mlibdir) != lib ]] && echo 'usr/lib/pkgconfig') \
615 || die
616 }
617
618 src_install_systemd-coredump()
619 {
620 DESTDIR=${BINDIR} mninja install || die
621
622 zapmost ${BINDIR} \
623 etc/systemd/coredump.conf \
624 usr/bin/coredumpctl \
625 usr/lib/sysctl.d/50-coredump.conf \
626 usr/lib/systemd/systemd-coredump \
627 usr/share/man/man1/coredumpctl.1 \
628 usr/share/man/man5/coredump.conf.5 \
629 usr/share/man/man5/coredump.conf.d.5 \
630 usr/share/man/man8/systemd-coredump.8 \
631 || die
632 }
633
634 src_install_systemd-systemctl()
635 {
636 DESTDIR=${BINDIR} mninja install || die
637
638 zapmost ${BINDIR} \
639 usr/bin/systemctl \
640 usr/share/man/man1/systemctl.1 \
641 || die
642 }
643
644 src_install_systemd-tools()
645 {
646 if [[ ${ENABLE_GTK} = 1 ]]
647 then
648 SRCDIR="${UI_SRCDIR}" mmake DESTDIR=${BINDIR} install || die
649 fi
650
651 all-abis minstallexec ${BUILDDIR}/build-$(mabi)/systemd-analyze || die
652 all-abis minstallexec ${SRCDIR}-$(mabi)/src/kernel-install/kernel-install || die
653 }
654
655 src_install_libudev()
656 {
657 DESTDIR=${BINDIR} mninja install || die
658
659 # cleanup all files but the libudev owned ones
660 zapmost ${BINDIR} \
661 usr/include/libudev.h \
662 usr/$(mlibdir)/libudev\* \
663 usr/$(mlibdir)/pkgconfig/libudev.pc \
664 $([[ $(mlibdir) != lib ]] && echo 'usr/lib/libudev*') \
665 $([[ $(mlibdir) != lib ]] && echo 'usr/lib/pkgconfig/libudev.pc') \
666 || die
667
668 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
669 then
670 mdelete -r /usr/include || die
671 mdelete -r /usr/$(mlibdir)/pkgconfig || die
672 fi
673 }
674
675 src_install_libudev-dev()
676 {
677 DESTDIR=${BINDIR} mninja install || die
678
679 # cleanup all files but the libudev owned ones
680 zapmost ${BINDIR} \
681 usr/include/libudev.h \
682 usr/$(mlibdir)/pkgconfig/libudev.pc \
683 $([[ $(mlibdir) != lib ]] && echo 'usr/lib/pkgconfig/libudev.pc') \
684 || die
685 }
686
687 src_install_udev()
688 {
689 DESTDIR=${BINDIR} mninja install || die
690
691 # cleanup all files but the udev owned ones
692 zapmost ${BINDIR} \
693 etc/udev \
694 usr/bin/udevadm \
695 usr/lib/systemd/systemd-udevd \
696 usr/lib/systemd/system/systemd-udevd-control.socket \
697 usr/lib/systemd/system/systemd-udevd-kernel.socket \
698 usr/lib/systemd/system/systemd-udevd.service \
699 usr/lib/systemd/system/systemd-udev-settle.service \
700 usr/lib/systemd/system/systemd-udev-trigger.service \
701 usr/lib/udev \
702 usr/share/man/man7/udev.7 \
703 usr/share/man/man8/systemd-udevd.8 \
704 usr/share/man/man8/udevadm.8 \
705 usr/share/pkgconfig/udev.pc \
706 || die
707
708 # remove udev rule for systemd
709 mdelete /usr/lib/udev/rules.d/99-systemd.rules || die
710
711 minstalldocs LICENSE* NEWS README TODO || die
712
713 # install our config
714 cd ${UDEV_CONFIG_SRCDIR}
715 make DESTDIR=${BINDIR} install || die
716 if [[ ${SYSVINIT_SUPPORT} = 1 ]]
717 then
718 # install sysvinit rc. script
719 make DESTDIR=${BINDIR} install-sysvinit || die
720 fi
721
722 # create symlinks for these utilities to /sbin
723 minstalldir /usr/sbin || die
724 # where multipath-tools expect them to be
725 mlink ../lib/udev/scsi_id /usr/sbin/ || die
726
727 # mark some dirs undeletable
728 mkeepdir /etc/udev/rules.d || die
729 mkeepdir /usr/lib/udev/state || die
730
731 # CONFIG_PROTECT_MASK for /etc/udev/rules.d
732 minstalldir /etc/env.d || die
733 MCONFIG="/etc/env.d/02udev"
734 mclearconfig || die
735 maddconfig 'CONFIG_PROTECT_MASK="/etc/udev/rules.d"' || die
736
737 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
738 then
739 mdelete -r /usr/share || die
740 fi
741 }
742
743 src_install_udev-dev()
744 {
745 DESTDIR=${BINDIR} mninja install || die
746
747 # cleanup all files but the udev owned ones
748 zapmost ${BINDIR} \
749 usr/share/man/man7/udev.7 \
750 usr/share/man/man8/systemd-udevd.8 \
751 usr/share/man/man8/udevadm.8 \
752 usr/share/pkgconfig/udev.pc \
753 || die
754
755 minstalldocs LICENSE* NEWS README TODO || die
756 }
757
758 src_install_nss-myhostname()
759 {
760 DESTDIR=${BINDIR} mninja install || die
761
762 # cleanup all files but the nss-myhostname owned ones
763 zapmost ${BINDIR} \
764 usr/$(mlibdir)/libnss_myhostname\* \
765 $([[ $(mlibdir) != lib ]] && echo 'usr/lib/libnss_myhostname*') \
766 usr/share/man/man8/nss-myhostname.8 \
767 || die
768
769 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
770 then
771 mdelete -r /usr/share || die
772 fi
773 }
774
775 src_install_nss-myhostname-dev()
776 {
777 DESTDIR=${BINDIR} mninja install || die
778
779 # cleanup all files but the nss-myhostname owned ones
780 zapmost ${BINDIR} \
781 usr/share/man/man8/nss-myhostname.8 \
782 || die
783 }
784
785 src_install_libsystemd()
786 {
787 DESTDIR=${BINDIR} mninja install || die
788
789 # cleanup all files but the libsystem owned ones
790 zapmost ${BINDIR} \
791 usr/$(mlibdir)/libsystemd.\* \
792 $([[ $(mlibdir) != lib ]] && echo 'usr/lib/libsystemd.*') \
793 || die
794 }
795
796 src_install_libsystemd-shared()
797 {
798 DESTDIR=${BINDIR} mninja install || die
799
800 # cleanup all files but the libsystem-shared owned ones
801 zapmost ${BINDIR} \
802 usr/lib/systemd/libsystemd-shared-\*.so \
803 || die
804 }
805
806 preinstall_udev()
807 {
808 if [[ ! -z $(magequery -n hotplug) ]]
809 then
810 echo -e ${COLRED}
811 echo -e "Error: sys-apps/hotplug is installed!!"
812 echo -e "hotplug is now fully provided by udev itself and it is not recommend to use this anymore."
813 echo -e "Please uninstall sys-apps/hotplug first!"
814 echo -e ${COLDEFAULT}
815 die "sys-apps/hotplug found!"
816 fi
817
818 # move udev state
819 if [ ! -L ${MROOT}/lib ]
820 then
821 if [[ -d ${MROOT}/lib/udev-state ]]
822 then
823 mv -f ${MROOT}/lib/udev-state/* ${MROOT}/usr/lib/udev/state/
824 rm -r ${MROOT}/lib/udev-state
825 fi
826 if [[ -d ${MROOT}/lib/udev/state ]]
827 then
828 mv -f ${MROOT}/lib/udev/state/* ${MROOT}/usr/lib/udev/state/
829 rm -r ${MROOT}/lib/udev/state
830 fi
831 fi
832
833 # remove deprecated udev devices dir
834 if [[ -d ${MROOT}/lib/udev/devices ]]
835 then
836 rm -r ${MROOT}/lib/udev/devices
837 fi
838 if [[ -d ${MROOT}/usr/lib/udev/devices ]]
839 then
840 rm -r ${MROOT}/usr/lib/udev/devices
841 fi
842
843 if [[ -f ${MROOT}/etc/udev/udev.config ]] &&
844 [[ ! -f ${MROOT}/etc/udev/udev.rules ]]
845 then
846 mv -f ${MROOT}/etc/udev/udev.config ${MROOT}/etc/udev/udev.rules
847 fi
848
849 # delete the old udev.hotplug symlink if it is present
850 if [[ -h ${MROOT}/etc/hotplug.d/default/udev.hotplug ]]
851 then
852 rm -f ${MROOT}/etc/hotplug.d/default/udev.hotplug
853 fi
854
855 # delete the old wait_for_sysfs.hotplug symlink if it is present
856 if [[ -h ${MROOT}/etc/hotplug.d/default/05-wait_for_sysfs.hotplug ]]
857 then
858 rm -f ${MROOT}/etc/hotplug.d/default/05-wait_for_sysfs.hotplug
859 fi
860
861 # delete the old 10-udev.hotplug symlink if it is present
862 if [[ -h ${MROOT}/etc/hotplug.d/default/10-udev.hotplug ]]
863 then
864 rm -f ${MROOT}/etc/hotplug.d/default/10-udev.hotplug
865 fi
866
867 # delete the deprectated udev-late rc-script
868 [[ -x ${MROOT}/sbin/rc-config ]] && ${MROOT}/sbin/rc-config del udev-late
869
870 # delete obsolete hotplug.dev script
871 if [[ -f ${MROOT}/etc/dev.d/net/hotplug.dev ]]
872 then
873 rm -f ${MROOT}/etc/dev.d/net/hotplug.dev
874 fi
875
876 # delete deprecated pnp-aliases
877 if [[ -f ${MROOT}/etc/modprobe.d/pnp-aliases ]]
878 then
879 rm -f ${MROOT}/etc/modprobe.d/pnp-aliases
880 fi
881
882 # delete deprecated blacklist
883 if [[ -f ${MROOT}/etc/udev/blacklist ]]
884 then
885 rm -f ${MROOT}/etc/udev/blacklist
886 fi
887
888 # delete all udev.rules which are moved from /etc/udev to /lib/udev
889 local rule
890 for rule in 40-arch-s390.rules \
891 61-persistent-storage-edd.rules \
892 75-persistent-net-generator.rules \
893 64-md-raid.rules \
894 65-permissions.rules \
895 64-device-mapper.rules \
896 40-alsa.rules \
897 40-zaptel.rules \
898 60-persistent-input.rules \
899 40-arch-ia64.rules \
900 05-udev-early.rules \
901 40-arch-ppc.rules \
902 60-cdrom_id.rules \
903 40-pilot-links.rules \
904 95-udev-late.rules \
905 40-magellan.rules \
906 50-udev-default.rules \
907 80-drivers.rules \
908 30-kernel-compat.rules \
909 40-video.rules \
910 60-persistent-storage-tape.rules \
911 75-cd-aliases-generator.rules \
912 60-persistent-storage.rules
913 do
914 # delete obsolete hotplug.dev script
915 if [[ -f ${MROOT}/etc/udev/rules.d/${rule} ]]
916 then
917 rm -f ${MROOT}/etc/udev/rules.d/${rule}
918 fi
919 done
920
921 echo "Network device naming is now controlled by udev's net_setup_link"
922 echo "builtin. Refer to the NETWORK LINK CONFIGURATION section of the"
923 echo "udev manpage for a full description."
924 if [ -e ${MROOT}/etc/udev/rules.d/80-net-name-slot.rules ]
925 then
926 echo
927 echo "Renaming old 80-net-name-slot.rules to 80-net-setup-link.rules in order"
928 echo "to preserve existing network naming behavior."
929 mv -v ${MROOT}/etc/udev/rules.d/80-net-name-slot.rules \
930 ${MROOT}/etc/udev/rules.d/80-net-setup-link.rules
931 fi
932 }
933
934 postinstall_udev()
935 {
936 [[ ! -d ${MROOT}/run ]] && install -d ${MROOT}/run
937
938 # systemd
939 if [[ -x /usr/bin/systemctl ]] && [[ -z ${MROOT} ]] && [[ ${MROOT} != / ]]
940 then
941 # reload config
942 systemctl daemon-reload
943
944 # try to kill
945 if ! systemctl stop systemd-udevd.service systemd-udevd-control.socket systemd-udevd-kernel.socket >/dev/null 2>&1
946 then
947 # kill daemon if we are not in a chroot
948 if [[ /proc/1/exe ]] && [[ -d /proc/1/root ]]
949 then
950 if [[ $(stat -Lc '%%D-%%i' /) = $(stat -Lc '%%D-%%i' /proc/1/root) ]]
951 then
952 udevadm control --exit 2>&1
953 fi
954 fi
955 fi
956 # start the daemon
957 if ! systemctl start systemd-udevd.service >/dev/null 2>&1
958 then
959 # start daemon if we are not in a chroot
960 if [[ -f /proc/1/exe ]] && [[ -d /proc/1/root ]]
961 then
962 if [[ $(stat -Lc '%%D-%%i' /) = $(stat -Lc '%%D-%%i' /proc/1/root) ]]
963 then
964 /usr/lib/systemd/systemd-udevd --daemon
965 fi
966 fi
967 fi
968
969 # sysV
970 else
971 # after install/uprade, udev *must* be reloaded if already running
972 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] &&
973 [[ -n $(pidof systemd-udevd) ]] && [[ ${MAGE_BOOTSTRAP} != true ]]
974 then
975 echo "MROOT=/; restarting udev daemon ..."
976 # support old installations too
977 killall -15 udevd &> /dev/null
978 killall -15 systemd-udevd &> /dev/null
979 sleep 1
980 killall -9 systemd-udevd &> /dev/null
981 killall -9 udevd &> /dev/null
982 /usr/lib/systemd/systemd-udevd --daemon
983 fi
984 fi
985
986 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
987 then
988 # update hwdb
989 udevadm hwdb --update > /dev/null 2>&1
990 fi
991 }
992
993 postinstall_nss-myhostname()
994 {
995 # add myhostname to the hosts line of /etc/nsswitch.conf
996 if [ -f ${MROOT}/etc/nsswitch.conf ]
997 then
998 sed -i -e '
999 /^hosts:/ !b
1000 /\<myhostname\>/ b
1001 s/[[:blank:]]*$/ myhostname/
1002 ' ${MROOT}/etc/nsswitch.conf
1003 fi
1004 }
1005
1006 postremove_nss-myhostname()
1007 {
1008 # remove myhostname from the hosts line of /etc/nsswitch.conf
1009 if [ ! -e ${MROOT}/usr/$(mlibdir)/libnss_myhostname.so.* ]
1010 then
1011 if [ -f ${MROOT}/etc/nsswitch.conf ]
1012 then
1013 sed -i -e '
1014 /^hosts:/ !b
1015 s/[[:blank:]]\+myhostname\>//
1016 ' ${MROOT}/etc/nsswitch.conf
1017 fi
1018 fi
1019 }
1020
1021 preinstall_systemd()
1022 {
1023 if [[ ${SYSVINIT_SUPPORT} != 1 ]]
1024 then
1025 if [[ ! -z $(magequery -n sysvinit) ]]
1026 then
1027 echo -e ${COLRED}
1028 echo -e "Error: sys-apps/sysvinit is installed!!"
1029 echo -e "sysvinit is now replaced by systemd which is the new default init system."
1030 echo -e "Please uninstall sys-apps/sysvinit first!"
1031 echo -e ${COLDEFAULT}
1032 die "sys-apps/sysvinit found!"
1033 fi
1034 fi
1035
1036 # adding users
1037 pkg_setup
1038
1039 # fix broken systemd installations, where
1040 # /usr/lib/systemd/systemd is a directory and not the daemon-exec
1041 if [ -d ${MROOT}/usr/lib/systemd/systemd ]
1042 then
1043 rm -r ${MROOT}/usr/lib/systemd/systemd
1044 fi
1045
1046 # rename configuration files that changed their names
1047 if [ -f ${MROOT}/etc/systemd/systemd-logind.conf ]
1048 then
1049 mv -n ${MROOT}/etc/systemd/{systemd-,}logind.conf
1050 fi
1051 if [ -f ${MROOT}/etc/systemd/systemd-journald.conf ]
1052 then
1053 mv -n ${MROOT}/etc/systemd/{systemd-,}journald.conf
1054 fi
1055
1056 # move old stuff around in /var/lib
1057 if [ -f ${MROOT}/var/lib/random-seed ]
1058 then
1059 [ -d ${MROOT}/var/lib/systemd ] || install -d ${MROOT}/var/lib/systemd
1060 mv -n ${MROOT}/var/lib/random-seed ${MROOT}/var/lib/systemd/random-seed
1061 fi
1062 if [ -f ${MROOT}/var/lib/backlight ]
1063 then
1064 [ -d ${MROOT}/var/lib/systemd ] || install -d ${MROOT}/var/lib/systemd
1065 mv -n ${MROOT}/var/lib/backlight ${MROOT}/var/lib/systemd/backlight
1066 fi
1067 }
1068
1069 postinstall_systemd()
1070 {
1071 # remove deprecated compat libraries
1072 local lib
1073 for lib in daemon id128 journal login
1074 do
1075 if [[ -n $(magequery -n libsystemd-${lib}) ]]
1076 then
1077 echo "Uninstalling deprecated 'libsystemd-${lib}'"
1078 mage uninstall libsystemd-${lib}
1079 fi
1080 done
1081
1082 # try to read default runlevel from the old inittab if it exists
1083 local runlevel
1084 runlevel=$(awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' ${MROOT}/etc/inittab 2> /dev/null)
1085 local target
1086 if [[ -z ${runlevel} ]]
1087 then
1088 target="/usr/lib/systemd/system/graphical.target"
1089 else
1090 target="/usr/lib/systemd/system/runlevel${runlevel}.target"
1091 fi
1092 # and symlink what we found to the new-style default.target
1093 ln -snf ${target} ${MROOT}/etc/systemd/system/default.target
1094
1095 # convert modules.autoload
1096 if [ -f ${MROOT}/etc/modules.autoload ]
1097 then
1098 local modules
1099 # get only lines which are not commented or empty;
1100 # if we get any items than the modules.autoload is in use
1101 modules=$(sed -e '/^#/d' -e '/^$/d' ${MROOT}/etc/modules.autoload)
1102 if [[ ! -z ${modules} ]]
1103 then
1104 [ ! -d ${MROOT}/etc/modules-load.d ] && install -d ${MROOT}/etc/modules-load.d
1105 echo -e "# Converted by systemd install from /etc/modules.autoload\n#\n#" \
1106 > ${MROOT}/etc/modules-load.d/modules.autoload.conf
1107 cat ${MROOT}/etc/modules.autoload \
1108 >> ${MROOT}/etc/modules-load.d/modules.autoload.conf
1109 fi
1110 fi
1111
1112 # check mtab and replace with a symlink if required
1113 if [[ ! -L ${MROOT}/etc/mtab ]] || \
1114 [[ $(readlink ${MROOT}/etc/mtab) != /proc/self/mounts ]]
1115 then
1116 ln -snf /proc/self/mounts ${MROOT}/etc/mtab
1117 fi
1118
1119 # check for timesync symlink and remove it, must be a directory from now on
1120 if [[ -L ${MROOT}/var/lib/systemd/timesync ]]
1121 then
1122 rm ${MROOT}/var/lib/systemd/timesync
1123 fi
1124
1125 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
1126 then
1127 # create machine-id
1128 if [ ! -s /etc/machine-id ]
1129 then
1130 systemd-machine-id-setup
1131 fi
1132 # create a random-seed
1133 /usr/lib/systemd/systemd-random-seed save
1134
1135 # allow detect-virt to be run by unprivileged code
1136 setcap cap_dac_override,cap_sys_ptrace+ep /usr/bin/systemd-detect-virt
1137
1138 # restart systemd daemon
1139 systemctl daemon-reexec
1140
1141 # restart systemd-logind daemon
1142 systemctl try-restart systemd-logind.service
1143
1144 # update journal catalog
1145 journalctl --update-catalog > /dev/null 2>&1
1146
1147 # create missing tmpfiles
1148 systemd-tmpfiles --create > /dev/null 2>&1
1149
1150 # set acls for wheel and adm group
1151 if [ -x /usr/bin/setfacl ]
1152 then
1153 /usr/bin/setfacl -Rnm g:wheel:rx,d:g:wheel:rx,g:adm:rx,d:g:adm:rx /var/log/journal/ > /dev/null 2>&1
1154 fi
1155
1156 # enable the services we install by default.
1157 systemctl enable \
1158 getty@tty1.service \
1159 remote-fs.target \
1160 systemd-timesyncd.service
1161 #systemd-readahead-replay.service
1162 #systemd-readahead-collect.service
1163 #console-getty.service
1164 #console-shell.service
1165 #debug-shell.service
1166 #systemd-networkd.service
1167 fi
1168
1169 echo
1170 echo "with >=systemd-216 coredumps are no longer sent to the journal by default."
1171 echo "To re-enable:"
1172 echo ' echo >/etc/sysctl.d/50-coredump.conf \'
1173 echo ' "kernel.core_pattern=|/usr/lib/systemd/systemd-coredump %p %u %g %s %t %e"'
1174 echo
1175
1176 if [[ ${SYSVINIT_SUPPORT} = 1 ]]
1177 then
1178 echo
1179 echo "systemd has been installed to /usr/lib/systemd/systemd. Please ensure you append"
1180 echo "init=/usr/lib/systemd/systemd to your kernel command line in your bootloader."
1181 echo
1182 fi
1183 }
1184