summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/systemd/systemd_239.bb
diff options
context:
space:
mode:
authorChen Qi <Qi.Chen@windriver.com>2018-07-17 10:05:11 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-07-18 10:18:42 +0100
commitada8a5d9175b141b4fe532f542f5c1f7ffa26d88 (patch)
tree64af2142c781c13ee7669004b615d41cfb787f92 /meta/recipes-core/systemd/systemd_239.bb
parent219eed186d32b01a7132233c5110c08055ed6e27 (diff)
downloadpoky-ada8a5d9175b141b4fe532f542f5c1f7ffa26d88.tar.gz
systemd: upgrade to 239
Upgrade systemd to 239. 1. Patch Changes * Rebased Patches 0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch 0003-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch 0006-Make-root-s-home-directory-configurable.patch 0027-remove-nobody-user-group-checking.patch 0011-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch 0013-add-fallback-parse_printf_format-implementation.patch 0014-src-basic-missing.h-check-for-missing-strndupa.patch 0015-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch 0016-src-basic-missing.h-check-for-missing-__compar_fn_t-.patch 0017-Include-netinet-if_ether.h.patch 0019-Do-not-enable-nss-tests-if-nss-systemd-is-not-enable.patch 0022-don-t-use-glibc-specific-qsort_r.patch 0024-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch 0026-Use-uintmax_t-for-handling-rlim_t.patch 0030-fix-missing-of-__register_atfork-for-non-glibc-build.patch 0031-fix-missing-ULONG_LONG_MAX-definition-in-case-of-mus.patch 0001-core-device.c-Change-the-default-device-timeout-to-2.patch 0001-Remove-fstack-protector-flags-to-workaround-musl-bui.patch * Dropped Patches and Reasons 0001-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch This patch is dropped because the problem has been fixed by binutils upstream. And this workaround could be dropped. https://sourceware.org/bugzilla/show_bug.cgi?id=18548 0007-Revert-rules-remove-firmware-loading-rules.patch 0008-Revert-udev-remove-userspace-firmware-loading-suppor.patch These two patches are dropped because they are for kernel < 3.7. But the current minimal requirement of kernel to build systemd is as below. REQUIREMENTS: Linux kernel >= 3.13 Linux kernel >= 4.2 for unified cgroup hierarchy support So these two patches no long make any sense. Also remove non-exist firmware-path option 0009-remove-duplicate-include-uchar.h.patch 0010-check-for-uchar.h-in-meson.build.patch These two patches are dropped because musl has implemented uchar.h. See commit below from musl repo. """ ab9672ae73248f51e30f4553c4b8878525e46383 implement uchar.h (C11 UTF-16/32 conversion) interfaces """ 0018-check-for-missing-canonicalize_file_name.patch The above patch is dropped because current systemd does not need canonicalize_file_name. 0025-Define-_PATH_WTMPX-and-_PATH_UTMPX-if-not-defined.patch The above patch is dropped because utmp makes no sense in musl. Check code below from musl. include/utmp.h:#define _PATH_UTMP "/dev/null/utmp" And utmp PACKAGECONFIG has been explicitly disabled for musl. So we don't need this patch. 0032-memfd.patch 0033-basic-macros-rename-noreturn-into-_noreturn_-8456.patch libmount.patch 0034-Fix-format-truncation-compile-failure-by-typecasting.patch The above patches are dropped because they are backported patches. And current systemd has contained these patches. 0036-time-util-fix-build-with-gcc8-Werror-format-truncati.patch The above patch is dropped because it has been merged and is now in new version. * Newly Added Patch 0005-include-gshadow-only-if-ENABLE_GSHADOW-is-1.patch This patch is added to fix build for musl. 0019-Do-not-disable-buffering-when-writing-to-oom_score_a.patch This patch is added to fix the following error which caused system unable to boot up. systemd-udevd.service: Failed to adjust OOM setting: Invalid argument dbus.service: Failed to adjust OOM setting: Invalid argument 0020-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch This patch is added to fix segment fault error on musl systems. 0001-login-use-parse_uid-when-unmounting-user-runtime-dir.patch This patch is backported to solve a race condition between user-runtime-dir@xxx.service stop and user deletion. 2. PACKAGECONFIG and Dependency Changes * Add a new PACKAGECONFIG item 'gshadow'. Enable it by default for glibc but disable it by default for musl. This is because musl does not provide gshadow.h. * Add a new PACKAGECONFIG item 'portabled'. Default to disable it because it's still experimental, according to the announcement letter. """ Currently, the support is still experimental, but this is expected to change soon. Reflecting this experimental state, the "portablectl" binary is not installed into /usr/bin yet. """ * Change 'kmod' from a hard dependency to a PACKAGECONFIG item. Default to enable it. * Change 'acl' from a hard dependency to a PACKAGECONFIG item. Default to enable it. * Remove 'readline' from DEPENDS. systemd does not need it. * Remove 'libcgroup' from DEPENDS. The dependency on libcgroup has been removed from systemd a long time ago. We now remove this unnecessary dependency from DEPENDS. 3. update-alternatives changes The utilities like shutdown, poweroff, etc. are now created as symlinks at do_install. So there's no need to use update-alternatives mechanism anymore to create the symlinks now. In addtion, I don't think we now support multiple init systems at one running system, so there's really no need to use update-alternatives mechanism here. Also update the FILES_${PN} to include these files to avoid QA issue. (From OE-Core rev: 597f4645faf61486eb1d2ab73f3d974460ab9466) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core/systemd/systemd_239.bb')
-rw-r--r--meta/recipes-core/systemd/systemd_239.bb589
1 files changed, 589 insertions, 0 deletions
diff --git a/meta/recipes-core/systemd/systemd_239.bb b/meta/recipes-core/systemd/systemd_239.bb
new file mode 100644
index 0000000000..7822548993
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd_239.bb
@@ -0,0 +1,589 @@
1require systemd.inc
2
3PROVIDES = "udev"
4
5PE = "1"
6
7DEPENDS = "intltool-native gperf-native libcap util-linux"
8
9SECTION = "base/shell"
10
11inherit useradd pkgconfig meson perlnative update-rc.d update-alternatives qemu systemd gettext bash-completion manpages distro_features_check
12
13# As this recipe builds udev, respect systemd being in DISTRO_FEATURES so
14# that we don't build both udev and systemd in world builds.
15REQUIRED_DISTRO_FEATURES = "systemd"
16
17SRC_URI += "file://touchscreen.rules \
18 file://00-create-volatile.conf \
19 file://init \
20 file://0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch \
21 file://0002-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch \
22 file://0003-implment-systemd-sysv-install-for-OE.patch \
23 file://0004-rules-whitelist-hd-devices.patch \
24 file://0005-Make-root-s-home-directory-configurable.patch \
25 file://0006-remove-nobody-user-group-checking.patch \
26 file://0007-rules-watch-metadata-changes-in-ide-devices.patch \
27 file://0008-Do-not-enable-nss-tests-if-nss-systemd-is-not-enable.patch \
28 file://0009-nss-mymachines-Build-conditionally-when-ENABLE_MYHOS.patch \
29 file://0001-login-use-parse_uid-when-unmounting-user-runtime-dir.patch \
30 "
31SRC_URI_append_qemuall = " file://0001-core-device.c-Change-the-default-device-timeout-to-2.patch"
32
33# patches made for musl are only applied on TCLIBC is musl
34SRC_URI += "${SRC_URI_MUSL}"
35SRC_URI_MUSL = "file://0001-Use-getenv-when-secure-versions-are-not-available.patch \
36 file://0002-don-t-use-glibc-specific-qsort_r.patch \
37 file://0003-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch \
38 file://0004-add-fallback-parse_printf_format-implementation.patch \
39 file://0005-include-gshadow-only-if-ENABLE_GSHADOW-is-1.patch \
40 file://0006-src-basic-missing.h-check-for-missing-strndupa.patch \
41 file://0007-Include-netinet-if_ether.h.patch \
42 file://0008-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch \
43 file://0009-add-missing-FTW_-macros-for-musl.patch \
44 file://0010-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch \
45 file://0011-src-basic-missing.h-check-for-missing-__compar_fn_t-.patch \
46 file://0012-fix-missing-of-__register_atfork-for-non-glibc-build.patch \
47 file://0013-Use-uintmax_t-for-handling-rlim_t.patch \
48 file://0014-fix-missing-ULONG_LONG_MAX-definition-in-case-of-mus.patch \
49 file://0015-test-hexdecoct.c-Include-missing.h-for-strndupa.patch \
50 file://0016-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch \
51 file://0017-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch \
52 file://0018-Define-glibc-compatible-basename-for-non-glibc-syste.patch \
53 file://0019-Do-not-disable-buffering-when-writing-to-oom_score_a.patch \
54 file://0020-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch \
55 "
56
57# Workaround undefined reference to `__stack_chk_fail_local' on qemux86 and qemuppc for musl
58SRC_URI_append_libc-musl_qemux86 = " file://0001-Remove-fstack-protector-flags-to-workaround-musl-bui.patch"
59SRC_URI_append_libc-musl_qemuppc = " file://0001-Remove-fstack-protector-flags-to-workaround-musl-bui.patch"
60
61PAM_PLUGINS = " \
62 pam-plugin-unix \
63 pam-plugin-loginuid \
64 pam-plugin-keyinit \
65"
66
67PACKAGECONFIG ??= " \
68 ${@bb.utils.filter('DISTRO_FEATURES', 'efi ldconfig pam selinux usrmerge', d)} \
69 ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'rfkill', '', d)} \
70 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xkbcommon', '', d)} \
71 acl \
72 backlight \
73 binfmt \
74 firstboot \
75 gshadow \
76 hibernate \
77 hostnamed \
78 ima \
79 kmod \
80 localed \
81 logind \
82 machined \
83 myhostname \
84 networkd \
85 nss \
86 polkit \
87 quotacheck \
88 randomseed \
89 resolved \
90 smack \
91 sysusers \
92 timedated \
93 timesyncd \
94 utmp \
95 vconsole \
96 xz \
97"
98
99PACKAGECONFIG_remove_libc-musl = " \
100 gshadow \
101 localed \
102 myhostname \
103 nss \
104 resolved \
105 selinux \
106 smack \
107 sysusers \
108 utmp \
109"
110
111# Use the upstream systemd serial-getty@.service and rely on
112# systemd-getty-generator instead of using the OE-core specific
113# systemd-serialgetty.bb - not enabled by default.
114PACKAGECONFIG[serial-getty-generator] = ""
115
116PACKAGECONFIG[acl] = "-Dacl=true,-Dacl=false,acl"
117PACKAGECONFIG[audit] = "-Daudit=true,-Daudit=false,audit"
118PACKAGECONFIG[backlight] = "-Dbacklight=true,-Dbacklight=false"
119PACKAGECONFIG[binfmt] = "-Dbinfmt=true,-Dbinfmt=false"
120PACKAGECONFIG[bzip2] = "-Dbzip2=true,-Dbzip2=false,bzip2"
121PACKAGECONFIG[coredump] = "-Dcoredump=true,-Dcoredump=false"
122PACKAGECONFIG[cryptsetup] = "-Dlibcryptsetup=true,-Dlibcryptsetup=false,cryptsetup"
123PACKAGECONFIG[dbus] = "-Ddbus=true,-Ddbus=false,dbus"
124PACKAGECONFIG[efi] = "-Defi=true,-Defi=false"
125PACKAGECONFIG[elfutils] = "-Delfutils=true,-Delfutils=false,elfutils"
126PACKAGECONFIG[firstboot] = "-Dfirstboot=true,-Dfirstboot=false"
127# Sign the journal for anti-tampering
128PACKAGECONFIG[gcrypt] = "-Dgcrypt=true,-Dgcrypt=false,libgcrypt"
129PACKAGECONFIG[gshadow] = "-Dgshadow=true,-Dgshadow=false"
130PACKAGECONFIG[hibernate] = "-Dhibernate=true,-Dhibernate=false"
131PACKAGECONFIG[hostnamed] = "-Dhostnamed=true,-Dhostnamed=false"
132PACKAGECONFIG[ima] = "-Dima=true,-Dima=false"
133# importd requires curl/xz/zlib/bzip2/gcrypt
134PACKAGECONFIG[importd] = "-Dimportd=true,-Dimportd=false"
135# Update NAT firewall rules
136PACKAGECONFIG[iptc] = "-Dlibiptc=true,-Dlibiptc=false,iptables"
137PACKAGECONFIG[journal-upload] = "-Dlibcurl=true,-Dlibcurl=false,curl"
138PACKAGECONFIG[kmod] = "-Dkmod=true,-Dkmod=false,kmod"
139PACKAGECONFIG[ldconfig] = "-Dldconfig=true,-Dldconfig=false"
140PACKAGECONFIG[libidn] = "-Dlibidn=true,-Dlibidn=false,libidn"
141PACKAGECONFIG[localed] = "-Dlocaled=true,-Dlocaled=false"
142PACKAGECONFIG[logind] = "-Dlogind=true,-Dlogind=false"
143PACKAGECONFIG[lz4] = "-Dlz4=true,-Dlz4=false,lz4"
144PACKAGECONFIG[machined] = "-Dmachined=true,-Dmachined=false"
145PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxslt-native xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
146PACKAGECONFIG[microhttpd] = "-Dmicrohttpd=true,-Dmicrohttpd=false,libmicrohttpd"
147PACKAGECONFIG[myhostname] = "-Dmyhostname=true,-Dmyhostname=false"
148PACKAGECONFIG[networkd] = "-Dnetworkd=true,-Dnetworkd=false"
149PACKAGECONFIG[nss] = "-Dnss-systemd=true,-Dnss-systemd=false"
150PACKAGECONFIG[pam] = "-Dpam=true,-Dpam=false,libpam,${PAM_PLUGINS}"
151PACKAGECONFIG[polkit] = "-Dpolkit=true,-Dpolkit=false"
152PACKAGECONFIG[portabled] = "-Dportabled=true,-Dportabled=false"
153PACKAGECONFIG[qrencode] = "-Dqrencode=true,-Dqrencode=false,qrencode"
154PACKAGECONFIG[quotacheck] = "-Dquotacheck=true,-Dquotacheck=false"
155PACKAGECONFIG[randomseed] = "-Drandomseed=true,-Drandomseed=false"
156PACKAGECONFIG[resolved] = "-Dresolve=true,-Dresolve=false"
157PACKAGECONFIG[rfkill] = "-Drfkill=true,-Drfkill=false"
158# libseccomp is found in meta-security
159PACKAGECONFIG[seccomp] = "-Dseccomp=true,-Dseccomp=false,libseccomp"
160PACKAGECONFIG[selinux] = "-Dselinux=true,-Dselinux=false,libselinux,initscripts-sushell"
161PACKAGECONFIG[smack] = "-Dsmack=true,-Dsmack=false"
162PACKAGECONFIG[sysusers] = "-Dsysusers=true,-Dsysusers=false"
163PACKAGECONFIG[time-epoch] = "-Dtime-epoch=0,,"
164PACKAGECONFIG[timedated] = "-Dtimedated=true,-Dtimedated=false"
165PACKAGECONFIG[timesyncd] = "-Dtimesyncd=true,-Dtimesyncd=false"
166PACKAGECONFIG[usrmerge] = "-Dsplit-usr=false,-Dsplit-usr=true"
167PACKAGECONFIG[utmp] = "-Dutmp=true,-Dutmp=false"
168PACKAGECONFIG[valgrind] = "-DVALGRIND=1,,valgrind"
169PACKAGECONFIG[vconsole] = "-Dvconsole=true,-Dvconsole=false,,${PN}-vconsole-setup"
170# Verify keymaps on locale change
171PACKAGECONFIG[xkbcommon] = "-Dxkbcommon=true,-Dxkbcommon=false,libxkbcommon"
172PACKAGECONFIG[xz] = "-Dxz=true,-Dxz=false,xz"
173PACKAGECONFIG[zlib] = "-Dzlib=true,-Dzlib=false,zlib"
174
175# Helper variables to clarify locations. This mirrors the logic in systemd's
176# build system.
177rootprefix ?= "${root_prefix}"
178rootlibdir ?= "${base_libdir}"
179rootlibexecdir = "${rootprefix}/lib"
180
181# This links udev statically with systemd helper library.
182# Otherwise udev package would depend on systemd package (which has the needed shared library),
183# and always pull it into images.
184EXTRA_OEMESON += "-Dlink-udev-shared=false"
185
186EXTRA_OEMESON += "-Dnobody-user=nobody \
187 -Dnobody-group=nobody \
188 -Droothomedir=${ROOT_HOME} \
189 -Drootlibdir=${rootlibdir} \
190 -Drootprefix=${rootprefix} \
191 -Dsysvrcnd-path=${sysconfdir} \
192 "
193
194# Hardcode target binary paths to avoid using paths from sysroot
195EXTRA_OEMESON += "-Dkexec-path=${sbindir}/kexec \
196 -Dkill-path=${base_bindir}/kill \
197 -Dkmod-path=${base_bindir}/kmod \
198 -Dmount-path=${base_bindir}/mount \
199 -Dquotacheck-path=${sbindir}/quotacheck \
200 -Dquotaon-path=${sbindir}/quotaon \
201 -Dsulogin-path=${base_sbindir}/sulogin \
202 -Dumount-path=${base_bindir}/umount"
203
204do_install() {
205 meson_do_install
206 install -d ${D}/${base_sbindir}
207 if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then
208 # Provided by a separate recipe
209 rm ${D}${systemd_unitdir}/system/serial-getty* -f
210 fi
211
212 # Provide support for initramfs
213 [ ! -e ${D}/init ] && ln -s ${rootlibexecdir}/systemd/systemd ${D}/init
214 [ ! -e ${D}/${base_sbindir}/udevd ] && ln -s ${rootlibexecdir}/systemd/systemd-udevd ${D}/${base_sbindir}/udevd
215
216 # Create machine-id
217 # 20:12 < mezcalero> koen: you have three options: a) run systemd-machine-id-setup at install time, b) have / read-only and an empty file there (for stateless) and c) boot with / writable
218 touch ${D}${sysconfdir}/machine-id
219
220 install -d ${D}${sysconfdir}/udev/rules.d/
221 install -d ${D}${sysconfdir}/tmpfiles.d
222 install -m 0644 ${WORKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d/
223 install -d ${D}${libdir}/pkgconfig
224 install -m 0644 ${B}/src/udev/udev.pc ${D}${libdir}/pkgconfig/
225
226 install -m 0644 ${WORKDIR}/00-create-volatile.conf ${D}${sysconfdir}/tmpfiles.d/
227
228 if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then
229 install -d ${D}${sysconfdir}/init.d
230 install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/systemd-udevd
231 sed -i s%@UDEVD@%${rootlibexecdir}/systemd/systemd-udevd% ${D}${sysconfdir}/init.d/systemd-udevd
232 fi
233
234 chown root:systemd-journal ${D}/${localstatedir}/log/journal
235
236 # Delete journal README, as log can be symlinked inside volatile.
237 rm -f ${D}/${localstatedir}/log/README
238
239 install -d ${D}${systemd_unitdir}/system/graphical.target.wants
240 install -d ${D}${systemd_unitdir}/system/multi-user.target.wants
241 install -d ${D}${systemd_unitdir}/system/poweroff.target.wants
242 install -d ${D}${systemd_unitdir}/system/reboot.target.wants
243 install -d ${D}${systemd_unitdir}/system/rescue.target.wants
244
245 # Create symlinks for systemd-update-utmp-runlevel.service
246 if ${@bb.utils.contains('PACKAGECONFIG', 'utmp', 'true', 'false', d)}; then
247 ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/graphical.target.wants/systemd-update-utmp-runlevel.service
248 ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/multi-user.target.wants/systemd-update-utmp-runlevel.service
249 ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/poweroff.target.wants/systemd-update-utmp-runlevel.service
250 ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/reboot.target.wants/systemd-update-utmp-runlevel.service
251 ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/rescue.target.wants/systemd-update-utmp-runlevel.service
252 fi
253
254 # Enable journal to forward message to syslog daemon
255 sed -i -e 's/.*ForwardToSyslog.*/ForwardToSyslog=yes/' ${D}${sysconfdir}/systemd/journald.conf
256 # Set the maximium size of runtime journal to 64M as default
257 sed -i -e 's/.*RuntimeMaxUse.*/RuntimeMaxUse=64M/' ${D}${sysconfdir}/systemd/journald.conf
258
259 # this file is needed to exist if networkd is disabled but timesyncd is still in use since timesyncd checks it
260 # for existence else it fails
261 if [ -s ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf ]; then
262 ${@bb.utils.contains('PACKAGECONFIG', 'networkd', ':', 'sed -i -e "\$ad /run/systemd/netif/links 0755 root root -" ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf', d)}
263 fi
264 if ! ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'true', 'false', d)}; then
265 echo 'L! ${sysconfdir}/resolv.conf - - - - ../run/systemd/resolve/resolv.conf' >>${D}${exec_prefix}/lib/tmpfiles.d/etc.conf
266 echo 'd /run/systemd/resolve 0755 root root -' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf
267 echo 'f /run/systemd/resolve/resolv.conf 0644 root root' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf
268 ln -s ../run/systemd/resolve/resolv.conf ${D}${sysconfdir}/resolv-conf.systemd
269 else
270 sed -i -e "s%^L! /etc/resolv.conf.*$%L! /etc/resolv.conf - - - - ../run/systemd/resolve/resolv.conf%g" ${D}${exec_prefix}/lib/tmpfiles.d/etc.conf
271 ln -s ../run/systemd/resolve/resolv.conf ${D}${sysconfdir}/resolv-conf.systemd
272 fi
273 install -Dm 0755 ${S}/src/systemctl/systemd-sysv-install.SKELETON ${D}${systemd_unitdir}/systemd-sysv-install
274
275 # If polkit is setup fixup permissions and ownership
276 if ${@bb.utils.contains('PACKAGECONFIG', 'polkit', 'true', 'false', d)}; then
277 if [ -d ${D}${datadir}/polkit-1/rules.d ]; then
278 chmod 700 ${D}${datadir}/polkit-1/rules.d
279 chown polkitd:root ${D}${datadir}/polkit-1/rules.d
280 fi
281 fi
282}
283
284
285python populate_packages_prepend (){
286 systemdlibdir = d.getVar("rootlibdir")
287 do_split_packages(d, systemdlibdir, '^lib(.*)\.so\.*', 'lib%s', 'Systemd %s library', extra_depends='', allow_links=True)
288}
289PACKAGES_DYNAMIC += "^lib(udev|systemd|nss).*"
290
291PACKAGES =+ "\
292 ${PN}-gui \
293 ${PN}-vconsole-setup \
294 ${PN}-initramfs \
295 ${PN}-analyze \
296 ${PN}-kernel-install \
297 ${PN}-rpm-macros \
298 ${PN}-binfmt \
299 ${PN}-zsh-completion \
300 ${PN}-xorg-xinitrc \
301 ${PN}-container \
302 ${PN}-extra-utils \
303"
304
305SUMMARY_${PN}-container = "Tools for containers and VMs"
306DESCRIPTION_${PN}-container = "Systemd tools to spawn and manage containers and virtual machines."
307
308SYSTEMD_PACKAGES = "${@bb.utils.contains('PACKAGECONFIG', 'binfmt', '${PN}-binfmt', '', d)}"
309SYSTEMD_SERVICE_${PN}-binfmt = "systemd-binfmt.service"
310
311USERADD_PACKAGES = "${PN} ${PN}-extra-utils"
312USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '--system -d / -M --shell /bin/nologin systemd-journal-gateway;', '', d)}"
313USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '--system -d / -M --shell /bin/nologin systemd-journal-remote;', '', d)}"
314USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'journal-upload', '--system -d / -M --shell /bin/nologin systemd-journal-upload;', '', d)}"
315USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'timesyncd', '--system -d / -M --shell /bin/nologin systemd-timesync;', '', d)}"
316USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'networkd', '--system -d / -M --shell /bin/nologin systemd-network;', '', d)}"
317USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'coredump', '--system -d / -M --shell /bin/nologin systemd-coredump;', '', d)}"
318USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'resolved', '--system -d / -M --shell /bin/nologin systemd-resolve;', '', d)}"
319USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'polkit', '--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 polkitd;', '', d)}"
320GROUPADD_PARAM_${PN} = "-r systemd-journal"
321USERADD_PARAM_${PN}-extra-utils += "--system -d / -M --shell /bin/nologin systemd-bus-proxy;"
322
323FILES_${PN}-analyze = "${bindir}/systemd-analyze"
324
325FILES_${PN}-initramfs = "/init"
326RDEPENDS_${PN}-initramfs = "${PN}"
327
328FILES_${PN}-gui = "${bindir}/systemadm"
329
330FILES_${PN}-vconsole-setup = "${rootlibexecdir}/systemd/systemd-vconsole-setup \
331 ${systemd_unitdir}/system/systemd-vconsole-setup.service \
332 ${systemd_unitdir}/system/sysinit.target.wants/systemd-vconsole-setup.service"
333
334RDEPENDS_${PN}-kernel-install += "bash"
335FILES_${PN}-kernel-install = "${bindir}/kernel-install \
336 ${sysconfdir}/kernel/ \
337 ${exec_prefix}/lib/kernel \
338 "
339FILES_${PN}-rpm-macros = "${exec_prefix}/lib/rpm \
340 "
341
342FILES_${PN}-xorg-xinitrc = "${sysconfdir}/X11/xinit/xinitrc.d/*"
343
344FILES_${PN}-zsh-completion = "${datadir}/zsh/site-functions"
345
346FILES_${PN}-binfmt = "${sysconfdir}/binfmt.d/ \
347 ${exec_prefix}/lib/binfmt.d \
348 ${rootlibexecdir}/systemd/systemd-binfmt \
349 ${systemd_unitdir}/system/proc-sys-fs-binfmt_misc.* \
350 ${systemd_unitdir}/system/systemd-binfmt.service"
351RRECOMMENDS_${PN}-binfmt = "kernel-module-binfmt-misc"
352
353RRECOMMENDS_${PN}-vconsole-setup = "kbd kbd-consolefonts kbd-keymaps"
354
355FILES_${PN}-container = "${sysconfdir}/dbus-1/system.d/org.freedesktop.import1.conf \
356 ${sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf \
357 ${base_bindir}/machinectl \
358 ${bindir}/systemd-nspawn \
359 ${nonarch_libdir}/systemd/import-pubring.gpg \
360 ${systemd_system_unitdir}/busnames.target.wants/org.freedesktop.import1.busname \
361 ${systemd_system_unitdir}/busnames.target.wants/org.freedesktop.machine1.busname \
362 ${systemd_system_unitdir}/local-fs.target.wants/var-lib-machines.mount \
363 ${systemd_system_unitdir}/machine.slice \
364 ${systemd_system_unitdir}/machines.target \
365 ${systemd_system_unitdir}/org.freedesktop.import1.busname \
366 ${systemd_system_unitdir}/org.freedesktop.machine1.busname \
367 ${systemd_system_unitdir}/systemd-importd.service \
368 ${systemd_system_unitdir}/systemd-machined.service \
369 ${systemd_system_unitdir}/dbus-org.freedesktop.machine1.service \
370 ${systemd_system_unitdir}/var-lib-machines.mount \
371 ${rootlibexecdir}/systemd/systemd-import \
372 ${rootlibexecdir}/systemd/systemd-importd \
373 ${rootlibexecdir}/systemd/systemd-journal-gatewayd \
374 ${rootlibexecdir}/systemd/systemd-journal-remote \
375 ${rootlibexecdir}/systemd/systemd-journal-upload \
376 ${rootlibexecdir}/systemd/systemd-machined \
377 ${rootlibexecdir}/systemd/systemd-pull \
378 ${exec_prefix}/lib/tmpfiles.d/systemd-nspawn.conf \
379 ${systemd_system_unitdir}/systemd-nspawn@.service \
380 ${libdir}/libnss_mymachines.so.2 \
381 ${datadir}/dbus-1/system-services/org.freedesktop.import1.service \
382 ${datadir}/dbus-1/system-services/org.freedesktop.machine1.service \
383 ${datadir}/dbus-1/system.d/org.freedesktop.import1.conf \
384 ${datadir}/dbus-1/system.d/org.freedesktop.machine1.conf \
385 ${datadir}/polkit-1/actions/org.freedesktop.import1.policy \
386 ${datadir}/polkit-1/actions/org.freedesktop.machine1.policy \
387 "
388
389FILES_${PN}-extra-utils = "\
390 ${base_bindir}/systemd-escape \
391 ${base_bindir}/systemd-inhibit \
392 ${bindir}/systemd-detect-virt \
393 ${bindir}/systemd-path \
394 ${bindir}/systemd-run \
395 ${bindir}/systemd-cat \
396 ${bindir}/systemd-delta \
397 ${bindir}/systemd-cgls \
398 ${bindir}/systemd-cgtop \
399 ${bindir}/systemd-stdio-bridge \
400 ${base_bindir}/systemd-ask-password \
401 ${base_bindir}/systemd-tty-ask-password-agent \
402 ${systemd_unitdir}/system/systemd-ask-password-console.path \
403 ${systemd_unitdir}/system/systemd-ask-password-console.service \
404 ${systemd_unitdir}/system/systemd-ask-password-wall.path \
405 ${systemd_unitdir}/system/systemd-ask-password-wall.service \
406 ${systemd_unitdir}/system/sysinit.target.wants/systemd-ask-password-console.path \
407 ${systemd_unitdir}/system/sysinit.target.wants/systemd-ask-password-wall.path \
408 ${systemd_unitdir}/system/multi-user.target.wants/systemd-ask-password-wall.path \
409 ${rootlibexecdir}/systemd/systemd-resolve-host \
410 ${rootlibexecdir}/systemd/systemd-ac-power \
411 ${rootlibexecdir}/systemd/systemd-activate \
412 ${rootlibexecdir}/systemd/systemd-bus-proxyd \
413 ${systemd_unitdir}/system/systemd-bus-proxyd.service \
414 ${systemd_unitdir}/system/systemd-bus-proxyd.socket \
415 ${rootlibexecdir}/systemd/systemd-socket-proxyd \
416 ${rootlibexecdir}/systemd/systemd-reply-password \
417 ${rootlibexecdir}/systemd/systemd-sleep \
418 ${rootlibexecdir}/systemd/system-sleep \
419 ${systemd_unitdir}/system/systemd-hibernate.service \
420 ${systemd_unitdir}/system/systemd-hybrid-sleep.service \
421 ${systemd_unitdir}/system/systemd-suspend.service \
422 ${systemd_unitdir}/system/sleep.target \
423 ${rootlibexecdir}/systemd/systemd-initctl \
424 ${systemd_unitdir}/system/systemd-initctl.service \
425 ${systemd_unitdir}/system/systemd-initctl.socket \
426 ${systemd_unitdir}/system/sockets.target.wants/systemd-initctl.socket \
427 ${rootlibexecdir}/systemd/system-generators/systemd-gpt-auto-generator \
428 ${rootlibexecdir}/systemd/systemd-cgroups-agent \
429"
430
431CONFFILES_${PN} = "${sysconfdir}/machine-id \
432 ${sysconfdir}/systemd/coredump.conf \
433 ${sysconfdir}/systemd/journald.conf \
434 ${sysconfdir}/systemd/logind.conf \
435 ${sysconfdir}/systemd/system.conf \
436 ${sysconfdir}/systemd/user.conf"
437
438FILES_${PN} = " ${base_bindir}/* \
439 ${base_sbindir}/shutdown \
440 ${base_sbindir}/halt \
441 ${base_sbindir}/poweroff \
442 ${base_sbindir}/runlevel \
443 ${base_sbindir}/telinit \
444 ${base_sbindir}/resolvconf \
445 ${base_sbindir}/reboot \
446 ${base_sbindir}/init \
447 ${datadir}/dbus-1/services \
448 ${datadir}/dbus-1/system-services \
449 ${datadir}/polkit-1 \
450 ${datadir}/${BPN} \
451 ${datadir}/factory \
452 ${sysconfdir}/dbus-1/ \
453 ${sysconfdir}/machine-id \
454 ${sysconfdir}/modules-load.d/ \
455 ${sysconfdir}/pam.d/ \
456 ${sysconfdir}/sysctl.d/ \
457 ${sysconfdir}/systemd/ \
458 ${sysconfdir}/tmpfiles.d/ \
459 ${sysconfdir}/xdg/ \
460 ${sysconfdir}/init.d/README \
461 ${sysconfdir}/resolv-conf.systemd \
462 ${rootlibexecdir}/systemd/* \
463 ${systemd_unitdir}/* \
464 ${base_libdir}/security/*.so \
465 /cgroup \
466 ${bindir}/systemd* \
467 ${bindir}/busctl \
468 ${bindir}/coredumpctl \
469 ${bindir}/localectl \
470 ${bindir}/hostnamectl \
471 ${bindir}/resolvectl \
472 ${bindir}/timedatectl \
473 ${bindir}/bootctl \
474 ${bindir}/kernel-install \
475 ${exec_prefix}/lib/tmpfiles.d/*.conf \
476 ${exec_prefix}/lib/systemd \
477 ${exec_prefix}/lib/modules-load.d \
478 ${exec_prefix}/lib/sysctl.d \
479 ${exec_prefix}/lib/sysusers.d \
480 ${exec_prefix}/lib/environment.d \
481 ${localstatedir} \
482 ${nonarch_base_libdir}/udev/rules.d/70-uaccess.rules \
483 ${nonarch_base_libdir}/udev/rules.d/71-seat.rules \
484 ${nonarch_base_libdir}/udev/rules.d/73-seat-late.rules \
485 ${nonarch_base_libdir}/udev/rules.d/99-systemd.rules \
486 ${nonarch_base_libdir}/modprobe.d/systemd.conf \
487 ${datadir}/dbus-1/system.d/org.freedesktop.timedate1.conf \
488 ${datadir}/dbus-1/system.d/org.freedesktop.locale1.conf \
489 ${datadir}/dbus-1/system.d/org.freedesktop.network1.conf \
490 ${datadir}/dbus-1/system.d/org.freedesktop.resolve1.conf \
491 ${datadir}/dbus-1/system.d/org.freedesktop.systemd1.conf \
492 ${datadir}/dbus-1/system.d/org.freedesktop.hostname1.conf \
493 ${datadir}/dbus-1/system.d/org.freedesktop.login1.conf \
494 ${datadir}/dbus-1/system.d/org.freedesktop.timesync1.conf \
495 ${datadir}/dbus-1/system.d/org.freedesktop.portable1.conf \
496 "
497
498FILES_${PN}-dev += "${base_libdir}/security/*.la ${datadir}/dbus-1/interfaces/ ${sysconfdir}/rpm/macros.systemd"
499
500RDEPENDS_${PN} += "kmod dbus util-linux-mount udev (= ${EXTENDPKGV}) util-linux-agetty"
501RDEPENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', '', 'systemd-serialgetty', d)}"
502RDEPENDS_${PN} += "volatile-binds update-rc.d"
503
504RRECOMMENDS_${PN} += "systemd-extra-utils \
505 systemd-compat-units udev-hwdb \
506 util-linux-fsck e2fsprogs-e2fsck \
507 kernel-module-autofs4 kernel-module-unix kernel-module-ipv6 \
508 os-release \
509"
510
511INSANE_SKIP_${PN} += "dev-so libdir"
512INSANE_SKIP_${PN}-dbg += "libdir"
513INSANE_SKIP_${PN}-doc += " libdir"
514
515PACKAGES =+ "udev udev-hwdb"
516
517RPROVIDES_udev = "hotplug"
518
519RDEPENDS_udev-hwdb += "udev"
520
521FILES_udev += "${base_sbindir}/udevd \
522 ${rootlibexecdir}/systemd/systemd-udevd \
523 ${rootlibexecdir}/udev/accelerometer \
524 ${rootlibexecdir}/udev/ata_id \
525 ${rootlibexecdir}/udev/cdrom_id \
526 ${rootlibexecdir}/udev/collect \
527 ${rootlibexecdir}/udev/findkeyboards \
528 ${rootlibexecdir}/udev/keyboard-force-release.sh \
529 ${rootlibexecdir}/udev/keymap \
530 ${rootlibexecdir}/udev/mtd_probe \
531 ${rootlibexecdir}/udev/scsi_id \
532 ${rootlibexecdir}/udev/v4l_id \
533 ${rootlibexecdir}/udev/keymaps \
534 ${rootlibexecdir}/udev/rules.d/*.rules \
535 ${sysconfdir}/udev \
536 ${sysconfdir}/init.d/systemd-udevd \
537 ${systemd_unitdir}/system/*udev* \
538 ${systemd_unitdir}/system/*.wants/*udev* \
539 ${base_bindir}/udevadm \
540 ${datadir}/bash-completion/completions/udevadm \
541 "
542
543FILES_udev-hwdb = "${rootlibexecdir}/udev/hwdb.d"
544
545INITSCRIPT_PACKAGES = "udev"
546INITSCRIPT_NAME_udev = "systemd-udevd"
547INITSCRIPT_PARAMS_udev = "start 03 S ."
548
549python __anonymous() {
550 if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d):
551 d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1")
552}
553
554ALTERNATIVE_${PN} = "resolv-conf"
555
556ALTERNATIVE_TARGET[resolv-conf] = "${sysconfdir}/resolv-conf.systemd"
557ALTERNATIVE_LINK_NAME[resolv-conf] = "${sysconfdir}/resolv.conf"
558ALTERNATIVE_PRIORITY[resolv-conf] ?= "50"
559
560pkg_postinst_${PN} () {
561 sed -e '/^hosts:/s/\s*\<myhostname\>//' \
562 -e 's/\(^hosts:.*\)\(\<files\>\)\(.*\)\(\<dns\>\)\(.*\)/\1\2 myhostname \3\4\5/' \
563 -i $D${sysconfdir}/nsswitch.conf
564}
565
566pkg_prerm_${PN} () {
567 sed -e '/^hosts:/s/\s*\<myhostname\>//' \
568 -e '/^hosts:/s/\s*myhostname//' \
569 -i $D${sysconfdir}/nsswitch.conf
570}
571
572PACKAGE_WRITE_DEPS += "qemu-native"
573pkg_postinst_udev-hwdb () {
574 if test -n "$D"; then
575 if ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'true','false', d)}; then
576 ${@qemu_run_binary(d, '$D', '${base_bindir}/udevadm')} hwdb --update \
577 --root $D
578 chown root:root $D${sysconfdir}/udev/hwdb.bin
579 else
580 $INTERCEPT_DIR/postinst_intercept delay_to_first_boot ${PKG} mlprefix=${MLPREFIX}
581 fi
582 else
583 udevadm hwdb --update
584 fi
585}
586
587pkg_prerm_udev-hwdb () {
588 rm -f $D${sysconfdir}/udev/hwdb.bin
589}