Magellan Linux

Annotation of /smage/trunk/core/systemd/systemd-242-r6.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 14421 - (hide annotations) (download)
Tue Jul 14 10:59:31 2020 UTC (3 years, 10 months ago) by niro
File size: 34561 byte(s)
-disable gtk
1 niro 14419 # $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 niro 14421 ENABLE_GTK=0
33 niro 14419
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