Magellan Linux

Contents of /smage/trunk/core/systemd/systemd-255.4-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 18098 - (show annotations) (download)
Fri Mar 22 11:56:25 2024 UTC (2 months ago) by niro
File size: 53056 byte(s)
-removed disabled state, dracut handles new systemd versions properly
1 # $Id$
2
3 PNAME="systemd"
4 PVER="255.4"
5 PBUILD="r1"
6
7 # add '-stable' to include minor backports version or nothing for only major releases
8 SYSTEMD_BRANCH="-stable"
9
10 # 1=enable lib32 split packages
11 # 0=disable lib32 split packages
12 ENABLE_LIB32_PACKAGES="1"
13
14 # 1=enable dev split packages
15 # 0=disable dev split packages
16 ENABLE_DEV_PACKAGES="1"
17
18 # enable or disable sysvinit support
19 # 1=yes, 0=no
20 SYSVINIT_SUPPORT=0
21
22 # enable or disable busybox support
23 # 1=yes, 0=no
24 BUSYBOX_SUPPORT=1
25
26 # enable or disable acl support
27 # 1=yes, 0=no
28 ACL_SUPPORT=0
29
30 # enable or disable cryptsetup support
31 # 1=yes, 0=no
32 CRYPTSETUP_SUPPORT=0
33
34 # enable or disable iptables support
35 # 1=yes, 0=no
36 IPTABLES_SUPPORT=0
37
38 # enable or disable pam support
39 # 1=yes, 0=no
40 PAM_SUPPORT=1
41
42 SPLIT_PACKAGES="libsystemd-core libsystemd-shared systemd-systemctl libudev udev libnss-myhostname libnss-mymachines libnss-resolve libnss-systemd libsystemd systemd-coredump systemd systemd-tools"
43 if [[ ${PAM_SUPPORT} = 1 ]]
44 then
45 SPLIT_PACKAGES+=" pam-systemd"
46 fi
47
48 # lib32 packages
49 if [[ ${ENABLE_LIB32_PACKAGES} = 1 ]]
50 then
51 SPLIT_PACKAGES+=" libsystemd-core-lib32 libsystemd-shared-lib32 libudev-lib32 libsystemd-lib32 libnss-myhostname-lib32 libnss-mymachines-lib32 libnss-resolve-lib32 libnss-systemd-lib32"
52 if [[ ${PAM_SUPPORT} = 1 ]]
53 then
54 SPLIT_PACKAGES+=" pam-systemd-lib32"
55 fi
56 fi
57
58 # dev packages
59 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
60 then
61 SPLIT_PACKAGES+=" libudev-dev udev-dev libnss-myhostname-dev libnss-mymachines-dev libnss-resolve-dev libnss-systemd-dev systemd-systemctl-dev systemd-coredump-dev systemd-dev"
62 fi
63
64 PCAT="sys-apps"
65 HOMEPAGE="http://www.freedesktop.org/wiki/Software/systemd"
66
67 # pam file versions
68 PAMD_USER_REV=1.2
69
70 # export this variables for preinstall
71 SPECIAL_VARS="SYSVINIT_SUPPORT BUSYBOX_SUPPORT"
72 # and this functions too
73 SPECIAL_FUNCTIONS="pkg_setup"
74
75 GLIBC_DEPEND=">= virtual/glibc"
76 GLIBC_LIB32_DEPEND=">= virtual/glibc-lib32"
77 GLIBC_DEV_DEPEND=">= virtual/glibc-dev"
78 LIBGCC_DEPEND=">= sys-libs/libgcc-13.1"
79 LIBGCC_LIB32_DEPEND=">= sys-libs/libgcc-lib32-13.1"
80 LIBGCC_DEV_DEPEND=">= sys-libs/libgcc-dev-13.1"
81 ACL_DEPEND=">= sys-apps/acl-2.3"
82 ACL_LIB32_DEPEND=">= sys-apps/acl-lib32-2.3"
83 ACL_DEV_DEPEND=">= sys-apps/acl-dev-2.3"
84 PROCPS_DEPEND=">= virtual/procps"
85 ZLIB_DEPEND=">= sys-libs/zlib-1.2.13"
86 ZLIB_LIB32_DEPEND=">= sys-libs/zlib-lib32-1.2.13"
87 ZLIB_DEV_DEPEND=">= sys-libs/zlib-dev-1.2.13"
88 BZIP2_DEPEND=">= app-arch/bzip2-1.0.8"
89 BZIP2_LIB32_DEPEND=">= app-arch/bzip2-lib32-1.0.8"
90 BZIP2_DEV_DEPEND=">= app-arch/bzip2-dev-1.0.8"
91 # we need the actual lib here, not the busybox counterpart of the utils
92 XZ_DEPEND=">= app-arch/liblzma-5.4"
93 XZ_LIB32_DEPEND=">= app-arch/liblzma-lib32-5.4"
94 XZ_DEV_DEPEND=">= app-arch/liblzma-dev-5.4"
95 LZ4_DEPEND=">= app-arch/lz4-1.9"
96 LZ4_LIB32_DEPEND=">= app-arch/lz4-lib32-1.9"
97 LZ4_DEV_DEPEND=">= app-arch/lz4-dev-1.9"
98 ZSTD_DEPEND=">= app-arch/zstd-1.5"
99 ZSTD_LIB32_DEPEND=">= app-arch/zstd-lib32-1.5"
100 ZSTD_DEV_DEPEND=">= app-arch/zstd-dev-1.5"
101 #LIBGCRYPT_DEPEND=">= app-crypt/libgcrypt-1.8"
102 LIBXCRYPT_DEPEND=">= sys-libs/libxcrypt-4.4"
103 LIBXCRYPT_LIB32_DEPEND=">= sys-libs/libxcrypt-lib32-4.4"
104 LIBXCRYPT_DEV_DEPEND=">= sys-libs/libxcrypt-dev-4.4"
105 LIBCAP_DEPEND=">= sys-libs/libcap-2.69"
106 LIBCAP_LIB32_DEPEND=">= sys-libs/libcap-lib32-2.69"
107 LIBCAP_DEV_DEPEND=">= sys-libs/libcap-dev-2.69"
108 ELFUTILS_DEPEND=">= dev-libs/elfutils-libs-0.189"
109 ELFUTILS_LIB32_DEPEND=">= dev-libs/elfutils-libs-lib32-0.189"
110 ELFUTILS_DEV_DEPEND=">= dev-libs/elfutils-dev-0.189"
111 LIBBLKID_DEPEND=">= sys-libs/libblkid-2.39"
112 LIBBLKID_LIB32_DEPEND=">= sys-libs/libblkid-lib32-2.39"
113 LIBMOUNT_DEPEND=">= sys-libs/libmount-2.39"
114 LIBMOUNT_LIB32_DEPEND=">= sys-libs/libmount-lib32-2.39"
115 LIBUUID_DEPEND=">= sys-libs/libuuid-2.39"
116 LIBUUID_LIB32_DEPEND=">= sys-libs/libuuid-lib32-2.39"
117 LIBIDN_DEPEND=">= net-dns/libidn2-2.3"
118 LIBIDN_LIB32_DEPEND=">= net-dns/libidn2-lib32-2.3"
119 LIBIDN_DEV_DEPEND=">= net-dns/libidn2-dev-2.3"
120 UTILLINUX_DEPEND=">= sys-apps/util-linux-2.39"
121 UTILLINUX_DEV_DEPEND=">= sys-apps/util-linux-dev-2.39"
122 KMOD_DEPEND=" >= sys-apps/kmod-30"
123 KMOD_LIB32_DEPEND=" >= sys-apps/kmod-lib32-30"
124 KMOD_DEV_DEPEND=" >= sys-apps/kmod-dev-30"
125 PAM_DEPEND=">= sys-libs/pam-1.6"
126 PAM_LIB32_DEPEND=">= sys-libs/pam-lib32-1.6"
127 PAM_DEV_DEPEND=">= sys-libs/pam-dev-1.6"
128 IPTABLES_DEPEND=">= net-misc/iptables-1.8"
129 IPTABLES_LIB32_DEPEND=">= net-misc/iptables-lib32-1.8"
130 IPTABLES_DEV_DEPEND=">= net-misc/iptables-dev-1.8"
131 OPENSSL_DEPEND=">= dev-libs/openssl-3.1"
132 OPENSSL_LIB32_DEPEND=">= dev-libs/openssl-lib32-3.1"
133 OPENSSL_DEV_DEPEND=">= dev-libs/openssl-dev-3.1"
134 CRYPTSETUP_DEPEND=">= sys-fs/cryptsetup-2.6"
135 CRYPTSETUP_LIB32_DEPEND=">= sys-fs/cryptsetup-lib32-2.6"
136 CRYPTSETUP_DEV_DEPEND=">= sys-fs/cryptsetup-dev-2.6"
137 COMMON_DEPEND="${GLIBC_DEPEND}
138 ${LIBGCC_DEPEND}
139 ${LIBCAP_DEPEND}"
140 COMMON_LIB32_DEPEND="${GLIBC_LIB32_DEPEND}
141 ${LIBGCC_LIB32_DEPEND}
142 ${LIBCAP_LIB32_DEPEND}"
143 DAEMON_DEPEND="${COMMON_DEPEND}
144 ${PROCPS_DEPEND}
145 ${UTILLINUX_DEPEND}
146 ${KMOD_DEPEND}"
147 if [[ ${ACL_SUPPORT} = 1 ]]
148 then
149 DAEMON_DEPEND="${DAEMON_DEPEND}
150 ${ACL_DEPEND}"
151 fi
152 COREDUMP_DEPEND="${COMMON_DEPEND}
153 ${LIBXCRYPT_DEPEND}
154 ${ELFUTILS_DEPEND}"
155 SYSTEMCTL_DEPEND="${COMMON_DEPEND}
156 ${LIBIDN_DEPEND}"
157 LIBUDEV_DEPEND="${COMMON_DEPEND}"
158 LIBUDEV_LIB32_DEPEND="${COMMON_LIB32_DEPEND}"
159 NSS_DEPEND="${COMMON_DEPEND}"
160 NSS_LIB32_DEPEND="${COMMON_LIB32_DEPEND}"
161 LIBSYSTEMD_DEPEND="${COMMON_DEPEND}
162 ${LIBXCRYPT_DEPEND}
163 ${XZ_DEPEND}
164 ${LZ4_DEPEND}
165 ${ZSTD_DEPEND}"
166 LIBSYSTEMD_LIB32_DEPEND="${COMMON_LIB32_DEPEND}
167 ${LIBXCRYPT_LIB32_DEPEND}
168 ${XZ_LIB32_DEPEND}
169 ${LZ4_LIB32_DEPEND}
170 ${ZSTD_LIB32_DEPEND}"
171 LIBSYSTEMD_SHARED_DEPEND="${COMMON_DEPEND}
172 ${LIBXCRYPT_DEPEND}
173 ${LIBBLKID_DEPEND}
174 ${OPENSSL_DEPEND}
175 ${XZ_DEPEND}
176 ${LZ4_DEPEND}
177 ${ZSTD_DEPEND}
178 ${KMOD_DEPEND}
179 ${LIBMOUNT_DEPEND}"
180 if [[ ${ACL_SUPPORT} = 1 ]]
181 then
182 LIBSYSTEMD_SHARED_DEPEND="${LIBSYSTEMD_SHARED_DEPEND}
183 ${ACL_DEPEND}"
184 fi
185 if [[ ${IPTABLES_SUPPORT} = 1 ]]
186 then
187 LIBSYSTEMD_SHARED_DEPEND="${LIBSYSTEMD_SHARED_DEPEND}
188 ${IPTABLES_DEPEND}"
189 fi
190 if [[ ${PAM_SUPPORT} = 1 ]]
191 then
192 LIBSYSTEMD_SHARED_DEPEND="${LIBSYSTEMD_SHARED_DEPEND}
193 ${PAM_DEPEND}"
194 fi
195 LIBSYSTEMD_SHARED_LIB32_DEPEND="${COMMON_LIB32_DEPEND}
196 ${LIBXCRYPT_LIB32_DEPEND}
197 ${LIBBLKID_LIB32_DEPEND}
198 ${OPENSSL_LIB32_DEPEND}
199 ${XZ_LIB32_DEPEND}
200 ${LZ4_LIB32_DEPEND}
201 ${ZSTD_LIB32_DEPEND}
202 ${KMOD_LIB32_DEPEND}
203 ${LIBMOUNT_LIB32_DEPEND}"
204 if [[ ${ACL_SUPPORT} = 1 ]]
205 then
206 LIBSYSTEMD_SHARED_LIB32_DEPEND="${LIBSYSTEMD_SHARED_LIB32_DEPEND}
207 ${ACL_LIB32_DEPEND}"
208 fi
209 if [[ ${IPTABLES_SUPPORT} = 1 ]]
210 then
211 LIBSYSTEMD_SHARED_LIB32_DEPEND="${LIBSYSTEMD_SHARED_LIB32_DEPEND}
212 ${IPTABLES_LIB32_DEPEND}"
213 fi
214 if [[ ${PAM_SUPPORT} = 1 ]]
215 then
216 LIBSYSTEMD_SHARED_LIB32_DEPEND="${LIBSYSTEMD_SHARED_LIB32_DEPEND}
217 ${PAM_LIB32_DEPEND}"
218 fi
219 LIBSYSTEMD_CORE_DEPEND="${COMMON_DEPEND}
220 ${KMOD_DEPEND}
221 ${LIBMOUNT_DEPEND}"
222 if [[ ${PAM_SUPPORT} = 1 ]]
223 then
224 LIBSYSTEMD_CORE_DEPEND="${LIBSYSTEMD_CORE_DEPEND}
225 ${PAM_DEPEND}"
226 fi
227 LIBSYSTEMD_CORE_LIB32_DEPEND="${COMMON_LIB32_DEPEND}
228 ${KMOD_LIB32_DEPEND}
229 ${LIBMOUNT_LIB32_DEPEND}"
230 if [[ ${PAM_SUPPORT} = 1 ]]
231 then
232 LIBSYSTEMD_CORE_LIB32_DEPEND="${LIBSYSTEMD_CORE_LIB32_DEPEND}
233 ${PAM_LIB32_DEPEND}"
234 fi
235 LIBSYSTEMD_NSS_DEPEND="${COMMON_DEPEND}
236 ${LIBXCRYPT_DEPEND}"
237 LIBSYSTEMD_NSS_LIB32_DEPEND="${COMMON_LIB32_DEPEND}
238 ${LIBXCRYPT_LIB32_DEPEND}"
239 PAMMODULE_DEPEND="${LIBCAP_DEPEND}
240 ${LIBGCC_DEPEND}
241 ${LIBXCRYPT_DEPEND}
242 ${PAM_DEPEND}"
243 PAMMODULE_LIB32_DEPEND="${LIBCAP_LIB32_DEPEND}
244 ${LIBGCC_LIB32_DEPEND}
245 ${LIBXCRYPT_LIB32_DEPEND}
246 ${PAM_LIB32_DEPEND}"
247
248 # only /etc/os-release is supported from now on
249 SYSTEMD_DEPEND="${DAEMON_DEPEND}
250 ${ZLIB_DEPEND}
251 ${BZIP2_DEPEND}
252 ${XZ_DEPEND}
253 ${LZ4_DEPEND}
254 ${ZSTD_DEPEND}
255 ${LIBXCRYPT_DEPEND}
256 ${LIBIDN_DEPEND}
257 ${OPENSSL_DEPEND}
258 ${CRYPTSETUP_SUPPORT}
259 >= sys-apps/mage-release-1
260 >= sys-apps/dbus-1.14
261 >= net-libs/libcurl-8.1
262 >= virtual/shadow"
263 if [[ ${PAM_SUPPORT} = 1 ]]
264 then
265 SYSTEMD_DEPEND="${SYSTEMD_DEPEND}
266 ${PAM_DEPEND}"
267 fi
268
269 TOOLS_DEPEND=">= sys-apps/polkit-0.122"
270
271 UDEV_DEPEND="${DAEMON_DEPEND}
272 ${LIBUUID_DEPEND}"
273 # >= virtual/usbutils
274 # >= virtual/pciutils
275
276 PYTHON_DEPEND=">= dev-lang/python3-3.11
277 >= dev-python/python3-lxml-4.9
278 >= dev-python/python3-jinja2-3.1"
279
280 ## busybox supports requires sysvinit support
281 #if [[ ${BUSYBOX_SUPPORT} = 1 ]]
282 #then
283 # [[ ${SYSVINIT_SUPPORT} != 1 ]] && SYSVINIT_SUPPORT=1
284 #fi
285
286 if [[ ${SYSVINIT_SUPPORT} = 1 ]]
287 then
288 SYSTEMD_DEPEND="${SYSTEMD_DEPEND}
289 >= sys-apps/sysvinit-2.88"
290 fi
291
292 SDEPEND="${LIBUDEV_DEPEND}
293 ${NSS_DEPEND}
294 ${LIBSYSTEMD_DEPEND}
295 ${LIBSYSTEMD_SHARED_DEPEND}
296 ${LIBSYSTEMD_CORE_DEPEND}
297 ${SYSTEMCTL_DEPEND}
298 ${SYSTEMD_DEPEND}
299 ${TOOLS_DEPEND}
300 ${UDEV_DEPEND}
301 ${PYTHON_DEPEND}
302 ${COREDUMP_DEPEND}
303 >= app-text/docbook-xsl-stylesheets-1.76
304 >= app-text/docbook-xml-dtd42-4.2
305 >= app-text/docbook-xml-dtd45-4.5
306 >= dev-libs/libxslt-1.1.38
307 >= dev-util/intltool-0.51
308 >= dev-util/gperf-3.1
309 >= virtual/kernel-headers"
310 if [[ ${ENABLE_LIB32_PACKAGES} = 1 ]]
311 then
312 SDEPEND="${SDEPEND}
313 ${LIBUDEV_LIB32_DEPEND}
314 ${NSS_LIB32_DEPEND}
315 ${LIBSYSTEMD_LIB32_DEPEND}
316 ${LIBSYSTEMD_SHARED_LIB32_DEPEND}
317 ${LIBSYSTEMD_CORE_LIB32_DEPEND}"
318 fi
319 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
320 then
321 SDEPEND="${SDEPEND}
322 ${GLIBC_DEV_DEPEND}
323 ${LIBGCC_DEV_DEPEND}
324 ${ZLIB_DEV_DEPEND}
325 ${BZIP2_DEV_DEPEND}
326 ${XZ_DEV_DEPEND}
327 ${LZ4_DEV_DEPEND}
328 ${ZSTD_DEV_DEPEND}
329 ${LIBXCRYPT_DEV_DEPEND}
330 ${LIBCAP_DEV_DEPEND}
331 ${ELFUTILS_DEV_DEPEND}
332 ${LIBIDN_DEV_DEPEND}
333 ${UTILLINUX_DEV_DEPEND}
334 ${KMOD_DEV_DEPEND}
335 ${OPENSSL_DEV_DEPEND}
336 >= sys-libs/glibc-locale-us-2"
337 if [[ ${ACL_SUPPORT} = 1 ]]
338 then
339 SDEPEND="${SDEPEND}
340 ${ACL_DEV_DEPEND}"
341 fi
342 if [[ ${IPTABLES_SUPPORT} = 1 ]]
343 then
344 SDEPEND="${SDEPEND}
345 ${IPTABLES_DEV_DEPEND}"
346 fi
347 if [[ ${PAM_SUPPORT} = 1 ]]
348 then
349 SDEPEND="${SDEPEND}
350 ${PAM_DEV_DEPEND}"
351 fi
352 fi
353
354 SRCFILE="v${PVER}.tar.gz"
355 SRCDIR="${BUILDDIR}/${PNAME}${SYSTEMD_BRANCH}-${PVER}"
356
357 UDEV_CONFIG_PVER="20151110-1"
358 UDEV_CONFIG_SRCFILE="config-udev-${UDEV_CONFIG_PVER}.tar.bz2"
359 UDEV_CONFIG_SRCDIR="${BUILDDIR}/config-udev-${UDEV_CONFIG_PVER}"
360
361 sminclude multilib python3 mtools meson cleanutils udev alx
362 msetfeature "!check"
363
364 # requires += to get injection files included
365 SRC_URI+=(
366 https://github.com/${PNAME}/${PNAME}${SYSTEMD_BRANCH}/archive/${SRCFILE}
367 mirror://${PNAME}/${SRCFILE}
368 mirror://udev/${UDEV_CONFIG_SRCFILE}
369 mirror://${PNAME}/${PNAME}-255-magellan-configurable-getty.patch
370 mirror://${PNAME}/${PNAME}-253-uucp-group.patch
371 mirror://${PNAME}/login-manager.pamd
372 mirror://${PNAME}/systemd-user.pamd-${PAMD_USER_REV}
373 )
374 if [[ ${BUSYBOX_SUPPORT} = 1 ]]
375 then
376 SRC_URI+=( mirror://${PNAME}/${PNAME}-254-getty-busybox-compat.patch )
377 fi
378
379 UP2SEPERATOR="v"
380 UP2DATE="updatecmd https://github.com/systemd/systemd${SYSTEMD_BRANCH}/tags | highesttarball gz"
381
382 split_info_libudev()
383 {
384 DESCRIPTION="Dynamic library to access udev device information."
385 DEPEND="${LIBUDEV_DEPEND}"
386 PCAT="sys-fs"
387 }
388
389 split_info_libudev-lib32()
390 {
391 DESCRIPTION="Dynamic library to access udev device information - 32bit."
392 DEPEND="${LIBUDEV_LIB32_DEPEND}
393 == sys-fs/libudev-${PVER}"
394 PCAT="sys-fs"
395 }
396
397 split_info_libudev-dev()
398 {
399 DESCRIPTION="Development files for libudev."
400 DEPEND="== sys-fs/libudev-${PVER}"
401 if [[ ${ENABLE_LIB32_PACKAGES} = 1 ]]
402 then
403 DEPEND="${DEPEND}
404 == sys-fs/libudev-lib32-${PVER}"
405 fi
406 PCAT="sys-fs"
407 }
408
409 split_info_udev()
410 {
411 DESCRIPTION="A Userspace Implementation for dynamic /dev nodes."
412 DEPEND="${UDEV_DEPEND}
413 == sys-fs/libudev-${PVER}
414 == sys-libs/libsystemd-shared-${PVER}
415 == sys-apps/systemd-systemctl-${PVER}"
416 PCAT="sys-fs"
417 }
418
419 split_info_udev-dev()
420 {
421 DESCRIPTION="Development files for udev."
422 DEPEND="== sys-fs/libudev-dev-${PVER}
423 == sys-fs/udev-${PVER}"
424 PCAT="sys-fs"
425 }
426
427 split_info_libnss-myhostname()
428 {
429 DESCRIPTION="NSS plugin for local system host name resolution."
430 DEPEND="${NSS_DEPEND}"
431 PCAT="net-dns"
432 }
433
434 split_info_libnss-myhostname-lib32()
435 {
436 DESCRIPTION="NSS plugin for local system host name resolution - 32bit."
437 DEPEND="${NSS_LIB32_DEPEND}
438 == net-dns/libnss-myhostname-${PVER}"
439 PCAT="net-dns"
440 }
441
442 split_info_libnss-myhostname-dev()
443 {
444 DESCRIPTION="Development files for libnss-myhostname."
445 DEPEND="== net-dns/libnss-myhostname-${PVER}"
446 if [[ ${ENABLE_LIB32_PACKAGES} = 1 ]]
447 then
448 DEPEND="${DEPEND}
449 == net-dns/libnss-myhostname-lib32-${PVER}"
450 fi
451 PCAT="net-dns"
452 }
453
454 split_info_libnss-mymachines()
455 {
456 DESCRIPTION="NSS plugin for local container host name resolution."
457 DEPEND="${NSS_DEPEND}"
458 PCAT="net-dns"
459 }
460
461 split_info_libnss-mymachines-lib32()
462 {
463 DESCRIPTION="NSS plugin for local container host name resolution - 32bit."
464 DEPEND="${NSS_LIB32_DEPEND}
465 == net-dns/libnss-mymachines-${PVER}"
466 PCAT="net-dns"
467 }
468
469 split_info_libnss-mymachines-dev()
470 {
471 DESCRIPTION="Development files for libnss-mymachines."
472 DEPEND="== net-dns/libnss-mymachines-${PVER}"
473 if [[ ${ENABLE_LIB32_PACKAGES} = 1 ]]
474 then
475 DEPEND="${DEPEND}
476 == net-dns/libnss-mymachines-lib32-${PVER}"
477 fi
478 PCAT="net-dns"
479 }
480
481 split_info_libnss-resolve()
482 {
483 DESCRIPTION="NSS plugin for host name resolution via systemd-resolved."
484 DEPEND="${NSS_DEPEND}"
485 PCAT="net-dns"
486 }
487
488 split_info_libnss-resolve-lib32()
489 {
490 DESCRIPTION="NSS plugin for host name resolution via systemd-resolved - 32bit."
491 DEPEND="${NSS_LIB32_DEPEND}
492 == net-dns/libnss-resolve-${PVER}"
493 PCAT="net-dns"
494 }
495
496 split_info_libnss-resolve-dev()
497 {
498 DESCRIPTION="Development files for libnss-resolve."
499 DEPEND="== net-dns/libnss-resolve-${PVER}"
500 if [[ ${ENABLE_LIB32_PACKAGES} = 1 ]]
501 then
502 DEPEND="${DEPEND}
503 == net-dns/libnss-resolve-lib32-${PVER}"
504 fi
505 PCAT="net-dns"
506 }
507
508 split_info_libnss-systemd()
509 {
510 DESCRIPTION="NSS plugin for dynamic user and group name resolution."
511 DEPEND="${NSS_DEPEND}
512 ${LIBXCRYPT_DEPEND}"
513 PCAT="net-dns"
514 }
515
516 split_info_libnss-systemd-lib32()
517 {
518 DESCRIPTION="NSS plugin for dynamic user and group name resolution - 32bit."
519 DEPEND="${NSS_LIB32_DEPEND}
520 ${LIBXCRYPT_LIB32_DEPEND}
521 == net-dns/libnss-systemd-${PVER}"
522 PCAT="net-dns"
523 }
524
525 split_info_libnss-systemd-dev()
526 {
527 DESCRIPTION="Development files for libnss-systemd."
528 DEPEND="== net-dns/libnss-systemd-${PVER}"
529 if [[ ${ENABLE_LIB32_PACKAGES} = 1 ]]
530 then
531 DEPEND="${DEPEND}
532 == net-dns/libnss-systemd-lib32-${PVER}"
533 fi
534 PCAT="net-dns"
535 }
536
537 split_info_libsystemd()
538 {
539 DESCRIPTION="systemd library."
540 DEPEND="${LIBSYSTEMD_DEPEND}"
541 PCAT="sys-libs"
542 }
543
544 split_info_libsystemd-lib32()
545 {
546 DESCRIPTION="systemd library - 32bit."
547 DEPEND="${LIBSYSTEMD_LIB32_DEPEND}
548 == sys-libs/libsystemd-${PVER}"
549 PCAT="sys-libs"
550 }
551
552 split_info_libsystemd-shared()
553 {
554 DESCRIPTION="systemd shared helper library."
555 DEPEND="${LIBSYSTEMD_SHARED_DEPEND}"
556 PCAT="sys-libs"
557 }
558
559 split_info_libsystemd-shared-lib32()
560 {
561 DESCRIPTION="systemd shared helper library - 32bit."
562 DEPEND="${LIBSYSTEMD_SHARED_LIB32_DEPEND}
563 == sys-libs/libsystemd-shared-${PVER}"
564 PCAT="sys-libs"
565 }
566
567 split_info_libsystemd-core()
568 {
569 DESCRIPTION="systemd core functions library."
570 DEPEND="${LIBSYSTEMD_CORE_DEPEND}
571 == sys-libs/libsystemd-shared-${PVER}"
572 PCAT="sys-libs"
573 }
574
575 split_info_libsystemd-core-lib32()
576 {
577 DESCRIPTION="systemd core functions library - 32bit."
578 DEPEND="${LIBSYSTEMD_CORE_LIB32_DEPEND}
579 == sys-libs/libsystemd-core-${PVER}
580 == sys-libs/libsystemd-shared-lib32-${PVER}"
581 PCAT="sys-libs"
582 }
583
584 split_info_systemd-systemctl()
585 {
586 DESCRIPTION="systemd services control utility."
587 DEPEND="${SYSTEMCTL_DEPEND}
588 == sys-libs/libsystemd-shared-${PVER}"
589 }
590
591 split_info_systemd-systemctl-dev()
592 {
593 DESCRIPTION="Development files for systemd-systemctl."
594 DEPEND="== sys-apps/systemd-systemctl-${PVER}"
595 }
596
597 split_info_systemd-coredump()
598 {
599 DESCRIPTION="systemd coredump utility."
600 DEPEND="${COREDUMP_DEPEND}
601 == sys-libs/libsystemd-shared-${PVER}"
602 }
603
604 split_info_systemd-coredump-dev()
605 {
606 DESCRIPTION="Development files for systemd-coredump."
607 DEPEND="${COREDUMP_DEPEND}
608 == sys-apps/systemd-coredump-${PVER}"
609 }
610
611 split_info_pam-systemd()
612 {
613 DESCRIPTION="pam module for systemd."
614 DEPEND="${PAMMODULE_DEPEND}"
615 PCAT="sys-libs"
616 }
617
618 split_info_pam-systemd-lib32()
619 {
620 DESCRIPTION="pam module for systemd - 32bit."
621 DEPEND="${PAMMODULE_LIB32_DEPEND}"
622 PCAT="sys-libs"
623 }
624
625 split_info_systemd()
626 {
627 DESCRIPTION="System and Session Manager."
628 DEPEND="${SYSTEMD_DEPEND}
629 == sys-libs/libsystemd-${PVER}
630 == sys-libs/libsystemd-shared-${PVER}
631 == sys-libs/libsystemd-core-${PVER}
632 == net-dns/libnss-myhostname-${PVER}
633 == net-dns/libnss-mymachines-${PVER}
634 == net-dns/libnss-resolve-${PVER}
635 == net-dns/libnss-systemd-${PVER}
636 == net-dns/libnss-myhostname-${PVER}
637 == sys-apps/systemd-coredump-${PVER}
638 == sys-apps/systemd-systemctl-${PVER}
639 == sys-fs/udev-${PVER}"
640 if [[ ${PAM_SUPPORT} = 1 ]]
641 then
642 DEPEND="${DEPEND}
643 == sys-libs/pam-systemd-${PVER}"
644 fi
645 # systemd >=195 provides now full syslog facilities
646 PROVIDE="virtual/syslog"
647 }
648
649 split_info_systemd-dev()
650 {
651 DESCRIPTION="Development files for systemd."
652 DEPEND="== sys-fs/libudev-dev-${PVER}
653 == net-dns/libnss-myhostname-dev-${PVER}
654 == net-dns/libnss-mymachines-dev-${PVER}
655 == net-dns/libnss-resolve-dev-${PVER}
656 == net-dns/libnss-systemd-dev-${PVER}
657 == sys-fs/udev-dev-${PVER}
658 == sys-apps/systemd-coredump-dev-${PVER}
659 == sys-apps/systemd-systemctl-dev-${PVER}
660 == sys-apps/systemd-${PVER}"
661 if [[ ${PAM_SUPPORT} = 1 ]]
662 then
663 DEPEND="${DEPEND}
664 == sys-libs/pam-systemd-${PVER}"
665 fi
666 if [[ ${ENABLE_LIB32_PACKAGES} = 1 ]]
667 then
668 DEPEND="${DEPEND}
669 == sys-libs/libsystemd-lib32-${PVER}
670 == sys-libs/libsystemd-shared-lib32-${PVER}
671 == sys-libs/libsystemd-core-lib32-${PVER}
672 == net-dns/libnss-myhostname-lib32-${PVER}
673 == net-dns/libnss-mymachines-lib32-${PVER}
674 == net-dns/libnss-resolve-lib32-${PVER}
675 == net-dns/libnss-systemd-lib32-${PVER}"
676 if [[ ${PAM_SUPPORT} = 1 ]]
677 then
678 DEPEND="${DEPEND}
679 == sys-libs/pam-systemd-lib32-${PVER}"
680 fi
681 fi
682 }
683
684 split_info_systemd-tools()
685 {
686 DESCRIPTION="Systemd utilites for analysing the boot process."
687 DEPEND="== sys-apps/systemd-${PVER}
688 == sys-libs/libsystemd-shared-${PVER}
689 == sys-libs/libsystemd-core-${PVER}
690 ${TOOLS_DEPEND}"
691 }
692
693 pkg_setup()
694 {
695 # adding lock group
696 mgroupadd -o "-g 54" lock
697 # adding journal group/users
698 mgroupadd -o "-g 190" systemd-journal
699 mgroupadd -o "-g 191" systemd-journal-gateway
700 museradd -o "-u 191 -g systemd-journal-gateway -d /var/log/journal -s /bin/false" systemd-journal-gateway
701 mgroupadd -o "-g 196" systemd-journal-remote
702 museradd -o "-u 196 -g systemd-journal-remote -d /var/log/journal/remote -s /bin/false" systemd-journal-remote
703 mgroupadd -o "-g 197" systemd-journal-upload
704 museradd -o "-u 197 -g systemd-journal-upload -d /var/log/journal/upload -s /bin/false" systemd-journal-upload
705 # adding other systemd group/users
706 mgroupadd -o "-g 192" systemd-timesync
707 museradd -o "-u 192 -g systemd-timesync -l -d / -s /bin/false" systemd-timesync
708 mgroupadd -o "-g 193" systemd-network
709 museradd -o "-u 193 -g systemd-network -l -d / -s /bin/false" systemd-network
710 mgroupadd -o "-g 194" systemd-resolve
711 museradd -o "-u 194 -g systemd-resolve -l -d / -s /bin/false" systemd-resolve
712 mgroupadd -o "-g 195" systemd-bus-proxy
713 museradd -o "-u 195 -g systemd-bus-proxy -l -d / -s /bin/false" systemd-bus-proxy
714 }
715
716 src_prepare()
717 {
718 munpack ${SRCFILE} || die
719 oldmunpack ${UDEV_CONFIG_SRCFILE} || die
720
721 # magellan-only: use a configurable getty
722 mpatch ${PNAME}-255-magellan-configurable-getty.patch || die
723
724 if [[ ${BUSYBOX_SUPPORT} = 1 ]]
725 then
726 # remove agetty options which are incompatible with busybox getty
727 mpatch ${PNAME}-254-getty-busybox-compat.patch || die
728 fi
729
730 # replace dialout group with uucp for ttys
731 mpatch ${PNAME}-253-uucp-group.patch || die
732
733 # remove unneeded groups
734 all-abis "sed -i -e 's/GROUP=\"render\"/GROUP=\"video\"/' -e 's/GROUP=\"sgx\", //' rules.d/50-udev-default.rules.in || die"
735
736 # fix rootlink install location
737 sed -i "s:^\(udevdir=\).*:\1/usr/lib/udev:" ${UDEV_CONFIG_SRCDIR}/Makefile || die
738 }
739
740 src_compile()
741 {
742 local myconf
743
744 meson_setup_builddir || die
745
746 # fixes build errors, enforce utf-8
747 export LC_ALL=en_US.UTF-8
748
749 # disable dnssec
750 myconf+=" $(meson_opt default-dnssec no)"
751
752 # use openssl for dns-over-tls
753 myconf+=" $(meson_opt dns-over-tls openssl)"
754
755 # disable kill user processes as this will prevent screen and tmux from working correctly
756 # see: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=825394
757 # https://bugs.freedesktop.org/show_bug.cgi?id=94508
758 # https://bbs.archlinux.org/viewtopic.php?id=204307
759 # https://github.com/systemd/systemd/issues/2900
760 myconf+=" $(meson_opt default-kill-user-processes false)"
761
762 # no rpm macros
763 myconf+=" $(meson_opt rpmmacrosdir no)"
764
765 # pam support
766 if [[ ${PAM_SUPPORT} = 1 ]]
767 then
768 myconf+=" $(meson_opt pam true)"
769 myconf+=" $(meson_opt pamlibdir /usr/'$(mlibdir)'/security)"
770 else
771 myconf+=" $(meson_opt pam false)"
772 fi
773
774 # acl support
775 [[ ${ACL_SUPPORT} = 1 ]] && myconf+=" $(meson_opt acl true)" || myconf+=" $(meson_opt acl false)"
776
777 # iptables support
778 [[ ${IPTABLES_SUPPORT} = 1 ]] && myconf+=" $(meson_opt libiptc true)" || myconf+=" $(meson_opt libiptc false)"
779
780 # cryptsetup support
781 [[ ${CRYPTSETUP_SUPPORT} = 1 ]] && myconf+=" $(meson_opt libcryptsetup true)" || myconf+=" $(meson_opt libcryptsetup false)"
782
783 meson_configure \
784 --libexecdir=/usr/lib \
785 --localstatedir=/var \
786 $(meson_opt mode release) \
787 $(meson_opt ima false) \
788 $(meson_opt audit false) \
789 $(meson_opt selinux false) \
790 $(meson_opt qrencode false) \
791 $(meson_opt xz true) \
792 $(meson_opt lz4 true) \
793 $(meson_opt zstd true) \
794 $(meson_opt sysvinit-path /etc/rc.d/init.d) \
795 $(meson_opt sysvrcnd-path /etc/rc.d) \
796 $(meson_opt loadkeys-path /usr/bin/loadkeys) \
797 $(meson_opt setfont-path /usr/bin/setfont) \
798 $(meson_opt tty-gid 4) \
799 $(meson_opt sysusers true) \
800 $(meson_opt man true) \
801 ${myconf} \
802 || die
803
804 mninja || die
805 }
806
807 src_install_systemd()
808 {
809 DESTDIR=${BINDIR} mninja install || die
810
811 # keep some directories
812 mkeepdir /run || die
813 mkeepdir /etc/modules-load.d || die
814 mkeepdir /etc/sysctl.d || die
815 mkeepdir /etc/tmpfiles.d || die
816 mkeepdir /etc/binfmt.d || die
817
818 # make sure the shutdown/sleep drop-in dirs exist
819 mkeepdir /usr/lib/systemd/system-shutdown || die
820 mkeepdir /usr/lib/systemd/system-sleep || die
821
822 # make sure the NTP units dir exists
823 mkeepdir /usr/lib/systemd/ntp-units.d || die
824
825 # make sure directories in /var exist
826 mkeepdir /var/lib/systemd/coredump || die
827 mkeepdir /var/lib/systemd/catalog || die
828 mkeepdir /var/lib/systemd/backlight || die
829 mkeepdir /var/lib/systemd/rfkill || die
830 mkeepdir /var/log/journal || die
831
832 if [[ ${SYSVINIT_SUPPORT} != 1 ]]
833 then
834 echo "Include SysV init Compat symlinks"
835 # create SysV compatibility symlinks. systemctl/systemd are smart
836 # enough to detect in which way they are called.
837 minstalldir /usr/sbin || die
838 mlink ../lib/systemd/systemd /usr/sbin/init || die
839 local i
840 for i in reboot halt poweroff shutdown telinit runlevel
841 do
842 mlink ../bin/systemctl /usr/sbin/${i} || die
843 done
844 else
845 echo "Using sysvinit package for SysV compat"
846 fi
847
848 # we create all wants links manually at installation time to make sure
849 # they are not owned and hence overriden by mage after the user deleted
850 # them.
851 # rm -r ${BINDIR}/etc/systemd/system/*.target.wants || die
852 # but make sure these directories are properly owned
853 mkeepdir /usr/lib/systemd/system/basic.target.wants || die
854 mkeepdir /usr/lib/systemd/system/default.target.wants || die
855 mkeepdir /usr/lib/systemd/system/dbus.target.wants || die
856 mkeepdir /usr/lib/systemd/system/syslog.target.wants || die
857 # make sure the user generators dir exists too
858 mkeepdir /usr/lib/systemd/user-generators || die
859 mkeepdir /usr/lib/systemd/system-generators || die
860
861 # login-manager pam policy - force register kdm, gdm etc with pam_systemd
862 if [[ ${PAM_SUPPORT} = 1 ]]
863 then
864 minstallpam login-manager.pamd login-manager || die
865 minstallpam systemd-user.pamd-${PAMD_USER_REV} systemd-user || die
866 else
867 if [[ -d ${BINDIR}/usr/lib/pam.d ]]
868 then
869 mdelete -r /usr/lib/pam.d || die
870 fi
871 fi
872
873 # we have no rpm, remove config macros
874 #mdelete -r /etc/rpm || die
875
876 minstalldocs DISTRO_PORTING LICENSE README TODO || die
877
878 # remove files which are owned by other packages
879 mdelete /etc/systemd/coredump.conf || die
880 mdelete /usr/bin/coredumpctl || die
881 mdelete /usr/bin/systemctl || die
882 mdelete /usr/bin/systemd-analyze || die
883 mdelete /usr/bin/kernel-install || die
884 mdelete -r /etc/udev || die
885 mdelete /usr/bin/udevadm || die
886 mdelete /usr/include/libudev.h || die
887 mdelete /usr/lib/sysctl.d/50-coredump.conf || die
888 mdelete /usr/lib/systemd/systemd-coredump || die
889 mdelete /usr/lib/systemd/systemd-udevd || die
890 mdelete /usr/lib/systemd/system/systemd-udevd-control.socket || die
891 mdelete /usr/lib/systemd/system/systemd-udevd-kernel.socket || die
892 mdelete /usr/lib/systemd/system/systemd-udevd.service || die
893 mdelete /usr/lib/systemd/system/systemd-udev-settle.service || die
894 mdelete /usr/lib/systemd/system/systemd-udev-trigger.service || die
895 mdelete /usr/$(mlibdir)/systemd/libsystemd-shared-\*.so || die
896 mdelete /usr/$(mlibdir)/systemd/libsystemd-core-\*.so || die
897 mdelete -r /usr/lib/udev || die
898 mdelete /usr/$(mlibdir)/libudev\* || die
899 mdelete /usr/$(mlibdir)/libnss_\* || die
900 mdelete /usr/$(mlibdir)/libsystemd.\* || die
901 mdelete /usr/$(mlibdir)/pkgconfig/libudev.pc || die
902 if [[ ${PAM_SUPPORT} = 1 ]]
903 then
904 mdelete /usr/$(mlibdir)/security/pam_systemd.so || die
905 fi
906 if [[ $(MABI=m32 mlibdir) != lib ]]
907 then
908 mdelete /usr/$(MABI=m32 mlibdir)/libudev\* || die
909 mdelete /usr/$(MABI=m32 mlibdir)/libnss_\* || die
910 mdelete /usr/$(MABI=m32 mlibdir)/libsystemd.\* || die
911 mdelete /usr/$(MABI=m32 mlibdir)/pkgconfig/libudev.pc || die
912 mdelete /usr/$(MABI=m32 mlibdir)/systemd/libsystemd-shared-\*.so || die
913 mdelete /usr/$(MABI=m32 mlibdir)/systemd/libsystemd-core-\*.so || die
914 if [[ ${PAM_SUPPORT} = 1 ]]
915 then
916 mdelete /usr/$(MABI=m32 mlibdir)/security/pam_systemd.so || die
917 fi
918 fi
919 mdelete /usr/share/man/man1/coredumpctl.1 || die
920 mdelete /usr/share/man/man1/systemctl.1 || die
921 mdelete /usr/share/man/man5/coredump.conf.5 || die
922 mdelete /usr/share/man/man5/coredump.conf.d.5 || die
923 mdelete /usr/share/man/man8/systemd-coredump.8 || die
924 mdelete /usr/share/man/man7/udev.7 || die
925 mdelete /usr/share/man/man8/systemd-udevd.8 || die
926 mdelete /usr/share/man/man8/udevadm.8 || die
927 mdelete /usr/share/man/man8/libnss_myhostname.\*
928 mdelete /usr/share/man/man8/libnss_mymachines.\*
929 mdelete /usr/share/man/man8/libnss_resolve.\*
930 mdelete /usr/share/man/man8/libnss_systemd.\*
931 mdelete /usr/share/man/man8/nss-myhostname.8 || die
932 mdelete /usr/share/man/man8/nss-mymachines.8 || die
933 mdelete /usr/share/man/man8/nss-resolve.8 || die
934 mdelete /usr/share/man/man8/nss-systemd.8 || die
935 mdelete /usr/share/pkgconfig/udev.pc || die
936
937 # install udev rule for systemd
938 all-abis minstalludevrule ${BUILDDIR}/build-$(mabi)/rules.d/99-systemd.rules || die
939
940 # ghost own runtime generated config files
941 minstalldir /etc/X11/xorg.conf.d || die
942 memptyfile /etc/X11/xorg.conf.d/00-keyboard.conf || die
943 memptyfile /etc/machine-id || die
944 memptyfile /etc/machine-info || die
945 # and set CONFIG_PROTECT_MASK for them
946 minstalldir /etc/env.d || die
947 MCONFIG=/etc/env.d/02systemd
948 mclearconfig || die
949 maddconfig 'CONFIG_PROTECT_IGNORE="/etc/machine-id /etc/machine-info /etc/X11/xorg.conf.d/00-keyboard.conf"' || die
950
951 # fix an issue with mage4 which cannot handle '\' in filenames
952 if [ -f "${BINDIR}/usr/lib/systemd/system/system-systemd\x2dcryptsetup.slice" ]
953 then
954 mv "${BINDIR}/usr/lib/systemd/system/system-systemd\x2dcryptsetup.slice" \
955 ${BINDIR}/usr/lib/systemd/system/system-systemdx2dcryptsetup.slice || die
956 fi
957
958 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
959 then
960 mdelete -r /usr/include || die
961 mdelete -r /usr/share/bash-completion || die
962 mdelete -r /usr/share/doc || die
963 mdelete -r /usr/share/locale || die
964 mdelete -r /usr/share/man || die
965 mdelete -r /usr/share/pkgconfig || die
966 mdelete -r /usr/share/zsh || die
967 mdelete -r /usr/$(mlibdir)/pkgconfig || die
968 if [[ $(MABI=m32 mlibdir) != lib ]]
969 then
970 mdelete -r /usr/$(MABI=m32 mlibdir)/pkgconfig || die
971 fi
972 fi
973
974 # alx only - mount /var/log with a tmpfs
975 mcinjectfile var-log.mount /usr/lib/systemd/system || die
976 mlink ../var-log.mount /usr/lib/systemd/system/local-fs.target.wants/var-log.mount || die
977
978 # alx only - do not wait for all interfaces to become online, just exit successfully if at least one interface is online
979 local MCONFIG="/etc/systemd/system/systemd-networkd-wait-online.service.d/override.conf"
980 mclearconfig
981 maddconfig '[Service]'
982 maddconfig '# must be cleared before it can actually be overridden'
983 maddconfig 'ExecStart='
984 maddconfig 'ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any'
985 }
986
987 src_install_systemd-dev()
988 {
989 DESTDIR=${BINDIR} mninja install || die
990 minstalldocs DISTRO_PORTING LICENSE README TODO || die
991
992 # remove files which are owned by other packages
993 mdelete /usr/include/libudev.h || die
994 mdelete /usr/$(mlibdir)/pkgconfig/libudev.pc || die
995 if [[ $(MABI=m32 mlibdir) != lib ]]
996 then
997 mdelete /usr/$(MABI=m32 mlibdir)/pkgconfig/libudev.pc || die
998 fi
999 mdelete /usr/share/man/man1/coredumpctl.1 || die
1000 mdelete /usr/share/man/man5/coredump.conf.5 || die
1001 mdelete /usr/share/man/man5/coredump.conf.d.5 || die
1002 mdelete /usr/share/man/man8/systemd-coredump.8 || die
1003 mdelete /usr/share/man/man7/udev.7 || die
1004 mdelete /usr/share/man/man8/systemd-udevd.8 || die
1005 mdelete /usr/share/man/man8/udevadm.8 || die
1006 mdelete /usr/share/man/man8/libnss_myhostname.\*
1007 mdelete /usr/share/man/man8/libnss_mymachines.\*
1008 mdelete /usr/share/man/man8/libnss_resolve.\*
1009 mdelete /usr/share/man/man8/libnss_systemd.\*
1010 mdelete /usr/share/man/man8/nss-myhostname.8 || die
1011 mdelete /usr/share/man/man8/nss-mymachines.8 || die
1012 mdelete /usr/share/man/man8/nss-resolve.8 || die
1013 mdelete /usr/share/man/man8/nss-systemd.8 || die
1014 mdelete /usr/share/pkgconfig/udev.pc || die
1015
1016 zapmost ${BINDIR} \
1017 usr/include \
1018 usr/share/bash-completion \
1019 usr/share/doc \
1020 usr/share/locale \
1021 usr/share/man \
1022 usr/share/pkgconfig \
1023 usr/share/zsh \
1024 usr/$(mlibdir)/pkgconfig \
1025 $([[ $(MABI=m32 mlibdir) != lib ]] && echo "usr/$(MABI=m32 mlibdir)/pkgconfig") \
1026 || die
1027 }
1028
1029 src_install_systemd-coredump()
1030 {
1031 DESTDIR=${BINDIR} mninja install || die
1032
1033 zapmost ${BINDIR} \
1034 etc/systemd/coredump.conf \
1035 usr/bin/coredumpctl \
1036 usr/lib/sysctl.d/50-coredump.conf \
1037 usr/lib/systemd/systemd-coredump \
1038 usr/share/man/man1/coredumpctl.1 \
1039 usr/share/man/man5/coredump.conf.5 \
1040 usr/share/man/man5/coredump.conf.d.5 \
1041 usr/share/man/man8/systemd-coredump.8 \
1042 || die
1043
1044 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1045 then
1046 mdelete -r /usr/share/man || die
1047 fi
1048 }
1049
1050 src_install_systemd-coredump-dev()
1051 {
1052 DESTDIR=${BINDIR} mninja install || die
1053
1054 zapmost ${BINDIR} \
1055 usr/share/man/man1/coredumpctl.1 \
1056 usr/share/man/man5/coredump.conf.5 \
1057 usr/share/man/man5/coredump.conf.d.5 \
1058 usr/share/man/man8/systemd-coredump.8 \
1059 || die
1060 }
1061
1062 src_install_systemd-systemctl()
1063 {
1064 DESTDIR=${BINDIR} mninja install || die
1065
1066 zapmost ${BINDIR} \
1067 usr/bin/systemctl \
1068 usr/share/man/man1/systemctl.1 \
1069 || die
1070
1071 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1072 then
1073 mdelete -r /usr/share || die
1074 fi
1075 }
1076
1077 src_install_systemd-systemctl-dev()
1078 {
1079 DESTDIR=${BINDIR} mninja install || die
1080
1081 zapmost ${BINDIR} \
1082 usr/share/man/man1/systemctl.1 \
1083 || die
1084 }
1085
1086 src_install_systemd-tools()
1087 {
1088 all-abis minstallexec ${BUILDDIR}/build-$(mabi)/systemd-analyze || die
1089 all-abis minstallexec ${BUILDDIR}/build-$(mabi)/kernel-install || die
1090 }
1091
1092 src_install_libudev()
1093 {
1094 DESTDIR=${BINDIR} mninja install || die
1095
1096 # cleanup all files but the libudev owned ones
1097 zapmost ${BINDIR} \
1098 usr/include/libudev.h \
1099 usr/$(mlibdir)/libudev\* \
1100 usr/$(mlibdir)/pkgconfig/libudev.pc \
1101 $([[ ${ENABLE_LIB32_PACKAGES} != 1 ]] && [[ $(MABI=m32 mlibdir) != lib ]] && echo "usr/$(MABI=m32 mlibdir)/libudev*") \
1102 $([[ ${ENABLE_LIB32_PACKAGES} != 1 ]] && [[ $(MABI=m32 mlibdir) != lib ]] && echo "usr/$(MABI=m32 mlibdir)/pkgconfig/libudev.pc") \
1103 || die
1104
1105 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1106 then
1107 mdelete -r /usr/include || die
1108 mdelete -r /usr/$(mlibdir)/pkgconfig || die
1109 if [[ ${ENABLE_LIB32_PACKAGES} != 1 ]] && [[ $(MABI=m32 mlibdir) != lib ]]
1110 then
1111 mdelete -r /usr/$(MABI=m32 mlibdir)/pkgconfig || die
1112 fi
1113 fi
1114 }
1115
1116 src_install_libudev-lib32()
1117 {
1118 DESTDIR=${BINDIR} mninja install || die
1119
1120 # cleanup all files but the libudev owned ones
1121 zapmost ${BINDIR} \
1122 usr/$(MABI=m32 mlibdir)/libudev\* \
1123 usr/$(MABI=m32 mlibdir)/pkgconfig/libudev.pc \
1124 || die
1125
1126 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1127 then
1128 mdelete -r /usr/$(MABI=m32 mlibdir)/pkgconfig || die
1129 fi
1130 }
1131
1132 src_install_libudev-dev()
1133 {
1134 DESTDIR=${BINDIR} mninja install || die
1135
1136 # cleanup all files but the libudev owned ones
1137 zapmost ${BINDIR} \
1138 usr/include/libudev.h \
1139 usr/$(mlibdir)/pkgconfig/libudev.pc \
1140 $([[ $(MABI=m32 mlibdir) != lib ]] && echo "usr/$(MABI=m32 mlibdir)/pkgconfig/libudev.pc") \
1141 || die
1142 }
1143
1144 src_install_udev()
1145 {
1146 DESTDIR=${BINDIR} mninja install || die
1147
1148 # cleanup all files but the udev owned ones
1149 zapmost ${BINDIR} \
1150 etc/udev \
1151 usr/bin/udevadm \
1152 usr/lib/systemd/systemd-udevd \
1153 usr/lib/systemd/system/systemd-udevd-control.socket \
1154 usr/lib/systemd/system/systemd-udevd-kernel.socket \
1155 usr/lib/systemd/system/systemd-udevd.service \
1156 usr/lib/systemd/system/systemd-udev-settle.service \
1157 usr/lib/systemd/system/systemd-udev-trigger.service \
1158 usr/lib/udev \
1159 usr/share/man/man7/udev.7 \
1160 usr/share/man/man8/systemd-udevd.8 \
1161 usr/share/man/man8/udevadm.8 \
1162 usr/share/pkgconfig/udev.pc \
1163 || die
1164
1165 # remove udev rule for systemd
1166 mdelete /usr/lib/udev/rules.d/99-systemd.rules || die
1167
1168 minstalldocs LICENSE* NEWS README TODO || die
1169
1170 # install our config
1171 cd ${UDEV_CONFIG_SRCDIR}
1172 make DESTDIR=${BINDIR} install || die
1173 if [[ ${SYSVINIT_SUPPORT} = 1 ]]
1174 then
1175 # install sysvinit rc. script
1176 make DESTDIR=${BINDIR} install-sysvinit || die
1177 fi
1178
1179 # create symlinks for these utilities to /sbin
1180 minstalldir /usr/sbin || die
1181 # where multipath-tools expect them to be
1182 mlink ../lib/udev/scsi_id /usr/sbin/ || die
1183
1184 # mark some dirs undeletable
1185 mkeepdir /etc/udev/rules.d || die
1186 mkeepdir /usr/lib/udev/state || die
1187
1188 # CONFIG_PROTECT_MASK for /etc/udev/rules.d
1189 minstalldir /etc/env.d || die
1190 MCONFIG="/etc/env.d/02udev"
1191 mclearconfig || die
1192 maddconfig 'CONFIG_PROTECT_MASK="/etc/udev/rules.d"' || die
1193
1194 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1195 then
1196 mdelete -r /usr/share || die
1197 fi
1198 }
1199
1200 src_install_udev-dev()
1201 {
1202 DESTDIR=${BINDIR} mninja install || die
1203
1204 # cleanup all files but the udev owned ones
1205 zapmost ${BINDIR} \
1206 usr/share/man/man7/udev.7 \
1207 usr/share/man/man8/systemd-udevd.8 \
1208 usr/share/man/man8/udevadm.8 \
1209 usr/share/pkgconfig/udev.pc \
1210 || die
1211
1212 minstalldocs LICENSE* NEWS README TODO || die
1213 }
1214
1215 src_install_libnss-myhostname()
1216 {
1217 DESTDIR=${BINDIR} mninja install || die
1218
1219 # cleanup all files but the libnss-myhostname owned ones
1220 zapmost ${BINDIR} \
1221 usr/$(mlibdir)/libnss_myhostname\* \
1222 $([[ $(MABI=m32 mlibdir) != lib ]] && echo "usr/$(MABI=m32 mlibdir)/libnss_myhostname*") \
1223 usr/share/man/man8/libnss_myhostname.\* \
1224 usr/share/man/man8/nss-myhostname.8 \
1225 || die
1226
1227 if [[ ${ENABLE_LIB32_PACKAGES} = 1 ]]
1228 then
1229 mdelete -r /usr/$(MABI=m32 mlibdir) || die
1230 fi
1231
1232 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1233 then
1234 mdelete -r /usr/share || die
1235 fi
1236 }
1237
1238 src_install_libnss-myhostname-lib32()
1239 {
1240 DESTDIR=${BINDIR} mninja install || die
1241
1242 # cleanup all files but the libnss-myhostname-lib32 owned ones
1243 zapmost ${BINDIR} \
1244 usr/$(MABI=m32 mlibdir)/libnss_myhostname\* \
1245 || die
1246 }
1247
1248 src_install_libnss-myhostname-dev()
1249 {
1250 DESTDIR=${BINDIR} mninja install || die
1251
1252 # cleanup all files but the nss-myhostname-dev owned ones
1253 zapmost ${BINDIR} \
1254 usr/share/man/man8/libnss_myhostname.\* \
1255 usr/share/man/man8/nss-myhostname.8 \
1256 || die
1257 }
1258
1259 src_install_libnss-mymachines()
1260 {
1261 DESTDIR=${BINDIR} mninja install || die
1262
1263 # cleanup all files but the libnss-mymachines owned ones
1264 zapmost ${BINDIR} \
1265 usr/$(mlibdir)/libnss_mymachines\* \
1266 $([[ $(MABI=m32 mlibdir) != lib ]] && echo "usr/$(MABI=m32 mlibdir)/libnss_mymachines*") \
1267 usr/share/man/man8/libnss_mymachines.\* \
1268 usr/share/man/man8/nss-mymachines.8 \
1269 || die
1270
1271 if [[ ${ENABLE_LIB32_PACKAGES} = 1 ]]
1272 then
1273 mdelete -r /usr/$(MABI=m32 mlibdir) || die
1274 fi
1275
1276 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1277 then
1278 mdelete -r /usr/share || die
1279 fi
1280 }
1281
1282 src_install_libnss-mymachines-lib32()
1283 {
1284 DESTDIR=${BINDIR} mninja install || die
1285
1286 # cleanup all files but the libnss-mymachines-lib32 owned ones
1287 zapmost ${BINDIR} \
1288 usr/$(MABI=m32 mlibdir)/libnss_mymachines\* \
1289 || die
1290 }
1291
1292 src_install_libnss-mymachines-dev()
1293 {
1294 DESTDIR=${BINDIR} mninja install || die
1295
1296 # cleanup all files but the nss-mymachines-dev owned ones
1297 zapmost ${BINDIR} \
1298 usr/share/man/man8/libnss_mymachines.\* \
1299 usr/share/man/man8/nss-mymachines.8 \
1300 || die
1301 }
1302
1303 src_install_libnss-resolve()
1304 {
1305 DESTDIR=${BINDIR} mninja install || die
1306
1307 # cleanup all files but the libnss-resolve owned ones
1308 zapmost ${BINDIR} \
1309 usr/$(mlibdir)/libnss_resolve\* \
1310 $([[ $(MABI=m32 mlibdir) != lib ]] && echo "usr/$(MABI=m32 mlibdir)/libnss_resolve*") \
1311 usr/share/man/man8/libnss_resolve.\* \
1312 usr/share/man/man8/nss-resolve.8 \
1313 || die
1314
1315 if [[ ${ENABLE_LIB32_PACKAGES} = 1 ]]
1316 then
1317 mdelete -r /usr/$(MABI=m32 mlibdir) || die
1318 fi
1319
1320 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1321 then
1322 mdelete -r /usr/share || die
1323 fi
1324 }
1325
1326 src_install_libnss-resolve-lib32()
1327 {
1328 DESTDIR=${BINDIR} mninja install || die
1329
1330 # cleanup all files but the libnss-resolve-lib32 owned ones
1331 zapmost ${BINDIR} \
1332 usr/$(MABI=m32 mlibdir)/libnss_resolve\* \
1333 || die
1334 }
1335
1336 src_install_libnss-resolve-dev()
1337 {
1338 DESTDIR=${BINDIR} mninja install || die
1339
1340 # cleanup all files but the nss-resolved-dev owned ones
1341 zapmost ${BINDIR} \
1342 usr/share/man/man8/libnss_resolve.\* \
1343 usr/share/man/man8/nss-resolve.8 \
1344 || die
1345 }
1346
1347 src_install_libnss-systemd()
1348 {
1349 DESTDIR=${BINDIR} mninja install || die
1350
1351 # cleanup all files but the libnss-systemd owned ones
1352 zapmost ${BINDIR} \
1353 usr/$(mlibdir)/libnss_systemd\* \
1354 $([[ $(MABI=m32 mlibdir) != lib ]] && echo "usr/$(MABI=m32 mlibdir)/libnss_systemd*") \
1355 usr/share/man/man8/libnss_systemd.\* \
1356 usr/share/man/man8/nss-systemd.8 \
1357 || die
1358
1359 if [[ ${ENABLE_LIB32_PACKAGES} = 1 ]]
1360 then
1361 mdelete -r /usr/$(MABI=m32 mlibdir) || die
1362 fi
1363
1364 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1365 then
1366 mdelete -r /usr/share || die
1367 fi
1368 }
1369
1370 src_install_libnss-systemd-lib32()
1371 {
1372 DESTDIR=${BINDIR} mninja install || die
1373
1374 # cleanup all files but the libnss-systemd-lib32 owned ones
1375 zapmost ${BINDIR} \
1376 usr/$(MABI=m32 mlibdir)/libnss_systemd\* \
1377 || die
1378 }
1379
1380 src_install_libnss-systemd-dev()
1381 {
1382 DESTDIR=${BINDIR} mninja install || die
1383
1384 # cleanup all files but the nss-systemd-dev owned ones
1385 zapmost ${BINDIR} \
1386 usr/share/man/man8/libnss_systemd.\* \
1387 usr/share/man/man8/nss-systemd.8 \
1388 || die
1389 }
1390
1391 src_install_libsystemd()
1392 {
1393 DESTDIR=${BINDIR} mninja install || die
1394
1395 # cleanup all files but the libsystem owned ones
1396 zapmost ${BINDIR} \
1397 usr/$(mlibdir)/libsystemd.\* \
1398 $([[ ${ENABLE_LIB32_PACKAGES} != 1 ]] && [[ $(MABI=m32 mlibdir) != lib ]] && echo "usr/$(MABI=m32 mlibdir)/libsystemd.*") \
1399 || die
1400 }
1401
1402 src_install_libsystemd-lib32()
1403 {
1404 DESTDIR=${BINDIR} mninja install || die
1405
1406 # cleanup all files but the libsystem owned ones
1407 zapmost ${BINDIR} \
1408 usr/$(MABI=m32 mlibdir)/libsystemd.\* \
1409 || die
1410 }
1411
1412 src_install_libsystemd-shared()
1413 {
1414 DESTDIR=${BINDIR} mninja install || die
1415
1416 # cleanup all files but the libsystem-shared owned ones
1417 zapmost ${BINDIR} \
1418 usr/$(mlibdir)/systemd/libsystemd-shared-\*.so \
1419 $([[ ${ENABLE_LIB32_PACKAGES} != 1 ]] && [[ $(MABI=m32 mlibdir) != lib ]] && echo "usr/$(MABI=m32 mlibdir)/systemd/libsystemd-shared-*.so") \
1420 || die
1421 }
1422
1423 src_install_libsystemd-shared-lib32()
1424 {
1425 DESTDIR=${BINDIR} mninja install || die
1426
1427 # cleanup all files but the libsystem-shared owned ones
1428 zapmost ${BINDIR} \
1429 usr/$(MABI=m32 mlibdir)/systemd/libsystemd-shared-\*.so \
1430 || die
1431 }
1432
1433 src_install_libsystemd-core()
1434 {
1435 DESTDIR=${BINDIR} mninja install || die
1436
1437 # cleanup all files but the libsystem-core owned ones
1438 zapmost ${BINDIR} \
1439 usr/lib/systemd/libsystemd-core-\*.so \
1440 $([[ ${ENABLE_LIB32_PACKAGES} != 1 ]] && [[ $(MABI=m32 mlibdir) != lib ]] && echo "usr/$(MABI=m32 mlibdir)/systemd/libsystemd-core-*.so") \
1441 || die
1442 }
1443
1444 src_install_libsystemd-core-lib32()
1445 {
1446 DESTDIR=${BINDIR} mninja install || die
1447
1448 # cleanup all files but the libsystem-core owned ones
1449 zapmost ${BINDIR} \
1450 usr/$(MABI=m32 mlibdir)/systemd/libsystemd-core-\*.so \
1451 || die
1452 }
1453
1454 src_install_pam-systemd()
1455 {
1456 DESTDIR=${BINDIR} mninja install || die
1457
1458 # cleanup all files but the pam-systemd owned ones
1459 zapmost ${BINDIR} \
1460 usr/$(mlibdir)/security/pam_systemd.so \
1461 $([[ ${ENABLE_LIB32_PACKAGES} != 1 ]] && [[ $(MABI=m32 mlibdir) != lib ]] && echo "usr/$(MABI=m32 mlibdir)/security/pam_systemd.so") \
1462 || die
1463 }
1464
1465 src_install_pam-systemd-lib32()
1466 {
1467 DESTDIR=${BINDIR} mninja install || die
1468
1469 # cleanup all files but the pam-systemd owned ones
1470 zapmost ${BINDIR} \
1471 usr/$(MABI=m32 mlibdir)/security/pam_systemd.so \
1472 || die
1473 }
1474
1475 preinstall_udev()
1476 {
1477 if [[ ! -z $(magequery -n hotplug) ]]
1478 then
1479 echo -e ${COLRED}
1480 echo -e "Error: sys-apps/hotplug is installed!!"
1481 echo -e "hotplug is now fully provided by udev itself and it is not recommend to use this anymore."
1482 echo -e "Please uninstall sys-apps/hotplug first!"
1483 echo -e ${COLDEFAULT}
1484 die "sys-apps/hotplug found!"
1485 fi
1486
1487 # move udev state
1488 if [ ! -L ${MROOT}/lib ]
1489 then
1490 if [[ -d ${MROOT}/lib/udev-state ]]
1491 then
1492 mv -f ${MROOT}/lib/udev-state/* ${MROOT}/usr/lib/udev/state/
1493 rm -r ${MROOT}/lib/udev-state
1494 fi
1495 if [[ -d ${MROOT}/lib/udev/state ]]
1496 then
1497 mv -f ${MROOT}/lib/udev/state/* ${MROOT}/usr/lib/udev/state/
1498 rm -r ${MROOT}/lib/udev/state
1499 fi
1500 fi
1501
1502 # remove deprecated udev devices dir
1503 if [[ -d ${MROOT}/lib/udev/devices ]]
1504 then
1505 rm -r ${MROOT}/lib/udev/devices
1506 fi
1507 if [[ -d ${MROOT}/usr/lib/udev/devices ]]
1508 then
1509 rm -r ${MROOT}/usr/lib/udev/devices
1510 fi
1511
1512 if [[ -f ${MROOT}/etc/udev/udev.config ]] &&
1513 [[ ! -f ${MROOT}/etc/udev/udev.rules ]]
1514 then
1515 mv -f ${MROOT}/etc/udev/udev.config ${MROOT}/etc/udev/udev.rules
1516 fi
1517
1518 # delete the old udev.hotplug symlink if it is present
1519 if [[ -h ${MROOT}/etc/hotplug.d/default/udev.hotplug ]]
1520 then
1521 rm -f ${MROOT}/etc/hotplug.d/default/udev.hotplug
1522 fi
1523
1524 # delete the old wait_for_sysfs.hotplug symlink if it is present
1525 if [[ -h ${MROOT}/etc/hotplug.d/default/05-wait_for_sysfs.hotplug ]]
1526 then
1527 rm -f ${MROOT}/etc/hotplug.d/default/05-wait_for_sysfs.hotplug
1528 fi
1529
1530 # delete the old 10-udev.hotplug symlink if it is present
1531 if [[ -h ${MROOT}/etc/hotplug.d/default/10-udev.hotplug ]]
1532 then
1533 rm -f ${MROOT}/etc/hotplug.d/default/10-udev.hotplug
1534 fi
1535
1536 # delete the deprectated udev-late rc-script
1537 [[ -x ${MROOT}/sbin/rc-config ]] && ${MROOT}/sbin/rc-config del udev-late
1538
1539 # delete obsolete hotplug.dev script
1540 if [[ -f ${MROOT}/etc/dev.d/net/hotplug.dev ]]
1541 then
1542 rm -f ${MROOT}/etc/dev.d/net/hotplug.dev
1543 fi
1544
1545 # delete deprecated pnp-aliases
1546 if [[ -f ${MROOT}/etc/modprobe.d/pnp-aliases ]]
1547 then
1548 rm -f ${MROOT}/etc/modprobe.d/pnp-aliases
1549 fi
1550
1551 # delete deprecated blacklist
1552 if [[ -f ${MROOT}/etc/udev/blacklist ]]
1553 then
1554 rm -f ${MROOT}/etc/udev/blacklist
1555 fi
1556
1557 # delete all udev.rules which are moved from /etc/udev to /lib/udev
1558 local rule
1559 for rule in 40-arch-s390.rules \
1560 61-persistent-storage-edd.rules \
1561 75-persistent-net-generator.rules \
1562 64-md-raid.rules \
1563 65-permissions.rules \
1564 64-device-mapper.rules \
1565 40-alsa.rules \
1566 40-zaptel.rules \
1567 60-persistent-input.rules \
1568 40-arch-ia64.rules \
1569 05-udev-early.rules \
1570 40-arch-ppc.rules \
1571 60-cdrom_id.rules \
1572 40-pilot-links.rules \
1573 95-udev-late.rules \
1574 40-magellan.rules \
1575 50-udev-default.rules \
1576 80-drivers.rules \
1577 30-kernel-compat.rules \
1578 40-video.rules \
1579 60-persistent-storage-tape.rules \
1580 75-cd-aliases-generator.rules \
1581 60-persistent-storage.rules
1582 do
1583 # delete obsolete hotplug.dev script
1584 if [[ -f ${MROOT}/etc/udev/rules.d/${rule} ]]
1585 then
1586 rm -f ${MROOT}/etc/udev/rules.d/${rule}
1587 fi
1588 done
1589
1590 echo "Network device naming is now controlled by udev's net_setup_link"
1591 echo "builtin. Refer to the NETWORK LINK CONFIGURATION section of the"
1592 echo "udev manpage for a full description."
1593 if [ -e ${MROOT}/etc/udev/rules.d/80-net-name-slot.rules ]
1594 then
1595 echo
1596 echo "Renaming old 80-net-name-slot.rules to 80-net-setup-link.rules in order"
1597 echo "to preserve existing network naming behavior."
1598 mv -v ${MROOT}/etc/udev/rules.d/80-net-name-slot.rules \
1599 ${MROOT}/etc/udev/rules.d/80-net-setup-link.rules
1600 fi
1601 }
1602
1603 postinstall_udev()
1604 {
1605 [[ ! -d ${MROOT}/run ]] && install -d ${MROOT}/run
1606
1607 # systemd
1608 if [[ -x /usr/bin/systemctl ]] && [[ -z ${MROOT} ]] && [[ ${MROOT} != / ]]
1609 then
1610 # reload config
1611 systemctl daemon-reload
1612
1613 # try to kill
1614 if ! systemctl stop systemd-udevd.service systemd-udevd-control.socket systemd-udevd-kernel.socket >/dev/null 2>&1
1615 then
1616 # kill daemon if we are not in a chroot
1617 if [[ /proc/1/exe ]] && [[ -d /proc/1/root ]]
1618 then
1619 if [[ $(stat -Lc '%%D-%%i' /) = $(stat -Lc '%%D-%%i' /proc/1/root) ]]
1620 then
1621 udevadm control --exit 2>&1
1622 fi
1623 fi
1624 fi
1625 # start the daemon
1626 if ! systemctl start systemd-udevd.service >/dev/null 2>&1
1627 then
1628 # start daemon if we are not in a chroot
1629 if [[ -f /proc/1/exe ]] && [[ -d /proc/1/root ]]
1630 then
1631 if [[ $(stat -Lc '%%D-%%i' /) = $(stat -Lc '%%D-%%i' /proc/1/root) ]]
1632 then
1633 /usr/lib/systemd/systemd-udevd --daemon
1634 fi
1635 fi
1636 fi
1637
1638 # sysV
1639 else
1640 # after install/uprade, udev *must* be reloaded if already running
1641 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] &&
1642 [[ -n $(pidof systemd-udevd) ]] && [[ ${MAGE_BOOTSTRAP} != true ]]
1643 then
1644 echo "MROOT=/; restarting udev daemon ..."
1645 # support old installations too
1646 killall -15 udevd &> /dev/null
1647 killall -15 systemd-udevd &> /dev/null
1648 sleep 1
1649 killall -9 systemd-udevd &> /dev/null
1650 killall -9 udevd &> /dev/null
1651 /usr/lib/systemd/systemd-udevd --daemon
1652 fi
1653 fi
1654
1655 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
1656 then
1657 # update hwdb
1658 systemd-hwdb update > /dev/null 2>&1
1659 fi
1660 }
1661
1662 postinstall_libnss-myhostname()
1663 {
1664 # add myhostname to the hosts line of /etc/nsswitch.conf
1665 if [ -f ${MROOT}/etc/nsswitch.conf ]
1666 then
1667 sed -i -e '
1668 /^hosts:/ !b
1669 /\<myhostname\>/ b
1670 s/[[:blank:]]*$/ myhostname/
1671 ' ${MROOT}/etc/nsswitch.conf
1672 fi
1673 }
1674
1675 postremove_libnss-myhostname()
1676 {
1677 # remove myhostname from the hosts line of /etc/nsswitch.conf
1678 if [ ! -e ${MROOT}/usr/$(mlibdir)/libnss_myhostname.so.* ]
1679 then
1680 if [ -f ${MROOT}/etc/nsswitch.conf ]
1681 then
1682 sed -i -e '
1683 /^hosts:/ !b
1684 s/[[:blank:]]\+myhostname\>//
1685 ' ${MROOT}/etc/nsswitch.conf
1686 fi
1687 fi
1688 }
1689
1690 preinstall_systemd()
1691 {
1692 if [[ ${SYSVINIT_SUPPORT} != 1 ]]
1693 then
1694 if [[ ! -z $(magequery -n sysvinit) ]]
1695 then
1696 echo -e ${COLRED}
1697 echo -e "Error: sys-apps/sysvinit is installed!!"
1698 echo -e "sysvinit is now replaced by systemd which is the new default init system."
1699 echo -e "Please uninstall sys-apps/sysvinit first!"
1700 echo -e ${COLDEFAULT}
1701 die "sys-apps/sysvinit found!"
1702 fi
1703 fi
1704
1705 # adding users
1706 pkg_setup
1707
1708 # fix broken systemd installations, where
1709 # /usr/lib/systemd/systemd is a directory and not the daemon-exec
1710 if [ -d ${MROOT}/usr/lib/systemd/systemd ]
1711 then
1712 rm -r ${MROOT}/usr/lib/systemd/systemd
1713 fi
1714
1715 # rename configuration files that changed their names
1716 if [ -f ${MROOT}/etc/systemd/systemd-logind.conf ]
1717 then
1718 mv -n ${MROOT}/etc/systemd/{systemd-,}logind.conf
1719 fi
1720 if [ -f ${MROOT}/etc/systemd/systemd-journald.conf ]
1721 then
1722 mv -n ${MROOT}/etc/systemd/{systemd-,}journald.conf
1723 fi
1724
1725 # move old stuff around in /var/lib
1726 if [ -f ${MROOT}/var/lib/random-seed ]
1727 then
1728 [ -d ${MROOT}/var/lib/systemd ] || install -d ${MROOT}/var/lib/systemd
1729 mv -n ${MROOT}/var/lib/random-seed ${MROOT}/var/lib/systemd/random-seed
1730 fi
1731 if [ -f ${MROOT}/var/lib/backlight ]
1732 then
1733 [ -d ${MROOT}/var/lib/systemd ] || install -d ${MROOT}/var/lib/systemd
1734 mv -n ${MROOT}/var/lib/backlight ${MROOT}/var/lib/systemd/backlight
1735 fi
1736 }
1737
1738 postinstall_systemd()
1739 {
1740 # fix an issue with mage4 which cannot handle '\' in filenames
1741 if [ -f ${MROOT}/usr/lib/systemd/system/system-systemdx2dcryptsetup.slice ]
1742 then
1743 echo "fixing '${MROOT}/usr/lib/systemd/system/system-systemdx2dcryptsetup.slice' for mage"
1744 mv ${MROOT}/usr/lib/systemd/system/system-systemdx2dcryptsetup.slice \
1745 "${MROOT}/usr/lib/systemd/system/system-systemd\x2dcryptsetup.slice" || die
1746 fi
1747
1748 # remove deprecated compat libraries
1749 local lib
1750 for lib in daemon id128 journal login
1751 do
1752 if [[ -n $(magequery -n libsystemd-${lib}) ]]
1753 then
1754 echo "Uninstalling deprecated 'libsystemd-${lib}'"
1755 mage uninstall libsystemd-${lib}
1756 fi
1757 done
1758
1759 # nss-myhostname was renamed to libnss-myhostname
1760 if [[ -n $(magequery -n nss-myhostname) ]]
1761 then
1762 echo "Uninstalling deprecated 'nss-myhostname' which was renamed to 'libnss-myhostname'"
1763 mage uninstall nss-myhostname
1764 fi
1765
1766 # try to read default runlevel from the old inittab if it exists
1767 local runlevel
1768 runlevel=$(awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' ${MROOT}/etc/inittab 2> /dev/null)
1769 local target
1770 if [[ -z ${runlevel} ]]
1771 then
1772 target="/usr/lib/systemd/system/graphical.target"
1773 else
1774 target="/usr/lib/systemd/system/runlevel${runlevel}.target"
1775 fi
1776 # and symlink what we found to the new-style default.target
1777 ln -snf ${target} ${MROOT}/etc/systemd/system/default.target
1778
1779 # convert modules.autoload
1780 if [ -f ${MROOT}/etc/modules.autoload ]
1781 then
1782 local modules
1783 # get only lines which are not commented or empty;
1784 # if we get any items than the modules.autoload is in use
1785 modules=$(sed -e '/^#/d' -e '/^$/d' ${MROOT}/etc/modules.autoload)
1786 if [[ ! -z ${modules} ]]
1787 then
1788 [ ! -d ${MROOT}/etc/modules-load.d ] && install -d ${MROOT}/etc/modules-load.d
1789 echo -e "# Converted by systemd install from /etc/modules.autoload\n#\n#" \
1790 > ${MROOT}/etc/modules-load.d/modules.autoload.conf
1791 cat ${MROOT}/etc/modules.autoload \
1792 >> ${MROOT}/etc/modules-load.d/modules.autoload.conf
1793 fi
1794 fi
1795
1796 # check mtab and replace with a symlink if required
1797 if [[ ! -L ${MROOT}/etc/mtab ]] || \
1798 [[ $(readlink ${MROOT}/etc/mtab) != /proc/self/mounts ]]
1799 then
1800 ln -snf /proc/self/mounts ${MROOT}/etc/mtab
1801 fi
1802
1803 # check for timesync symlink and remove it, must be a directory from now on
1804 if [[ -L ${MROOT}/var/lib/systemd/timesync ]]
1805 then
1806 rm ${MROOT}/var/lib/systemd/timesync
1807 if [[ -d ${MROOT}/var/lib/private/systemd/timesync ]]
1808 then
1809 mv ${MROOT}/var/lib/private/systemd/timesync ${MROOT}/var/lib/systemd/timesync
1810 fi
1811 fi
1812
1813 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
1814 then
1815 # create machine-id
1816 if [ ! -s /etc/machine-id ]
1817 then
1818 systemd-machine-id-setup
1819 fi
1820 # create a random-seed
1821 /usr/lib/systemd/systemd-random-seed save
1822
1823 # allow detect-virt to be run by unprivileged code
1824 setcap cap_dac_override,cap_sys_ptrace+ep /usr/bin/systemd-detect-virt
1825
1826 # restart systemd daemon
1827 systemctl daemon-reexec
1828
1829 # restart systemd-logind daemon
1830 systemctl try-restart systemd-logind.service
1831
1832 # update journal catalog
1833 journalctl --update-catalog > /dev/null 2>&1
1834
1835 # create missing tmpfiles
1836 systemd-tmpfiles --create > /dev/null 2>&1
1837
1838 # set acls for wheel and adm group
1839 if [ -x /usr/bin/setfacl ]
1840 then
1841 /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
1842 fi
1843
1844 # enable the services we install by default.
1845 systemctl enable \
1846 getty@tty1.service \
1847 remote-fs.target \
1848 systemd-timesyncd.service
1849 #systemd-readahead-replay.service
1850 #systemd-readahead-collect.service
1851 #console-getty.service
1852 #console-shell.service
1853 #debug-shell.service
1854 #systemd-networkd.service
1855 fi
1856
1857 echo
1858 echo "with >=systemd-216 coredumps are no longer sent to the journal by default."
1859 echo "To re-enable:"
1860 echo ' echo >/etc/sysctl.d/50-coredump.conf \'
1861 echo ' "kernel.core_pattern=|/usr/lib/systemd/systemd-coredump %p %u %g %s %t %e"'
1862 echo
1863
1864 if [[ ${SYSVINIT_SUPPORT} = 1 ]]
1865 then
1866 echo
1867 echo "systemd has been installed to /usr/lib/systemd/systemd. Please ensure you append"
1868 echo "init=/usr/lib/systemd/systemd to your kernel command line in your bootloader."
1869 echo
1870 fi
1871 }
1872
1873 preremove_systemd()
1874 {
1875 # fix an issue with mage4 which cannot handle '\' in filenames
1876 if [ -f "${MROOT}/usr/lib/systemd/system/system-systemd\x2dcryptsetup.slice" ]
1877 then
1878 echo "fixing '${MROOT}/usr/lib/systemd/system/system-systemd\x2dcryptsetup.slice' for mage"
1879 mv "${MROOT}/usr/lib/systemd/system/system-systemd\x2dcryptsetup.slice" \
1880 ${MROOT}/usr/lib/systemd/system/system-systemdx2dcryptsetup.slice || die
1881 fi
1882 }
1883
1884 postremove_systemd()
1885 {
1886 # move this file back if it exists after package removal, it is than there from an upgrade
1887 # fix an issue with mage4 which cannot handle '\' in filenames
1888 if [ -f ${MROOT}/usr/lib/systemd/system/system-systemdx2dcryptsetup.slice ]
1889 then
1890 echo "fixing '${MROOT}/usr/lib/systemd/system/system-systemdx2dcryptsetup.slice' for mage"
1891 mv ${MROOT}/usr/lib/systemd/system/system-systemdx2dcryptsetup.slice \
1892 "${MROOT}/usr/lib/systemd/system/system-systemd\x2dcryptsetup.slice" || die
1893 fi
1894 }