1*4882a593Smuzhiyun################################################################################ 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# systemd 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun################################################################################ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun# When updating systemd, take care of the following: 8*4882a593Smuzhiyun# - Check if the requirements have changed (see README), in particular 9*4882a593Smuzhiyun# arch and headers 10*4882a593Smuzhiyun# - If yes, propagate the dependencies to BR2_INIT_SYSTEMD 11*4882a593Smuzhiyun# - If the required kernel options have changed, update the Config.in 12*4882a593Smuzhiyun# help text and the list of KCONFIG_ENABLE_OPT. 13*4882a593Smuzhiyun# - Check if there are new meson_options. Make sure all options are set 14*4882a593Smuzhiyun# explicitly (usually to default value). 15*4882a593Smuzhiyun# - If there are new services: 16*4882a593Smuzhiyun# - create new options for them (if they really are optional); 17*4882a593Smuzhiyun# - create a new _USER if necessary; 18*4882a593Smuzhiyun# - create new directory (with _PERMISSIONS) if necessary. 19*4882a593Smuzhiyun# - Diff sysusers.d with the previous version 20*4882a593Smuzhiyun# - Diff factory/etc/nsswitch.conf with the previous version 21*4882a593Smuzhiyun# (details are often sprinkled around in README and manpages) 22*4882a593SmuzhiyunSYSTEMD_VERSION = 250.4 23*4882a593SmuzhiyunSYSTEMD_SITE = $(call github,systemd,systemd-stable,v$(SYSTEMD_VERSION)) 24*4882a593SmuzhiyunSYSTEMD_LICENSE = \ 25*4882a593Smuzhiyun LGPL-2.1+, \ 26*4882a593Smuzhiyun GPL-2.0+ (udev), \ 27*4882a593Smuzhiyun Public Domain (few source files, see LICENSES/README.md), \ 28*4882a593Smuzhiyun BSD-2-Clause (eBPF instruction mini library), \ 29*4882a593Smuzhiyun BSD-3-Clause (tools/chromiumos), \ 30*4882a593Smuzhiyun CC0-1.0 (few source files, see LICENSES/README.md), \ 31*4882a593Smuzhiyun GPL-2.0 with Linux-syscall-note (linux kernel headers), \ 32*4882a593Smuzhiyun MIT (few source files, see LICENSES/README.md), \ 33*4882a593Smuzhiyun OFL-1.1 (Heebo fonts) 34*4882a593SmuzhiyunSYSTEMD_LICENSE_FILES = \ 35*4882a593Smuzhiyun LICENSE.GPL2 \ 36*4882a593Smuzhiyun LICENSE.LGPL2.1 \ 37*4882a593Smuzhiyun LICENSES/BSD-2-Clause.txt \ 38*4882a593Smuzhiyun LICENSES/BSD-3-Clause.txt \ 39*4882a593Smuzhiyun LICENSES/CC0-1.0.txt \ 40*4882a593Smuzhiyun LICENSES/LGPL-2.0-or-later.txt \ 41*4882a593Smuzhiyun LICENSES/Linux-syscall-note.txt \ 42*4882a593Smuzhiyun LICENSES/lookup3-public-domain.txt \ 43*4882a593Smuzhiyun LICENSES/MIT.txt \ 44*4882a593Smuzhiyun LICENSES/murmurhash2-public-domain.txt \ 45*4882a593Smuzhiyun LICENSES/OFL-1.1.txt \ 46*4882a593Smuzhiyun LICENSES/README.md 47*4882a593SmuzhiyunSYSTEMD_CPE_ID_VENDOR = systemd_project 48*4882a593SmuzhiyunSYSTEMD_INSTALL_STAGING = YES 49*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES = \ 50*4882a593Smuzhiyun $(BR2_COREUTILS_HOST_DEPENDENCY) \ 51*4882a593Smuzhiyun $(if $(BR2_PACKAGE_BASH_COMPLETION),bash-completion) \ 52*4882a593Smuzhiyun host-gperf \ 53*4882a593Smuzhiyun host-python-jinja2 \ 54*4882a593Smuzhiyun kmod \ 55*4882a593Smuzhiyun libcap \ 56*4882a593Smuzhiyun util-linux-libs \ 57*4882a593Smuzhiyun $(TARGET_NLS_DEPENDENCIES) 58*4882a593Smuzhiyun 59*4882a593SmuzhiyunSYSTEMD_SELINUX_MODULES = systemd udev xdg 60*4882a593Smuzhiyun 61*4882a593SmuzhiyunSYSTEMD_PROVIDES = udev 62*4882a593Smuzhiyun 63*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += \ 64*4882a593Smuzhiyun -Ddefault-hierarchy=unified \ 65*4882a593Smuzhiyun -Didn=true \ 66*4882a593Smuzhiyun -Dima=false \ 67*4882a593Smuzhiyun -Dkexec-path=/usr/sbin/kexec \ 68*4882a593Smuzhiyun -Dkmod-path=/usr/bin/kmod \ 69*4882a593Smuzhiyun -Dldconfig=false \ 70*4882a593Smuzhiyun -Dlink-boot-shared=true \ 71*4882a593Smuzhiyun -Dloadkeys-path=/usr/bin/loadkeys \ 72*4882a593Smuzhiyun -Dman=false \ 73*4882a593Smuzhiyun -Dmount-path=/usr/bin/mount \ 74*4882a593Smuzhiyun -Dmode=release \ 75*4882a593Smuzhiyun -Dnss-systemd=true \ 76*4882a593Smuzhiyun -Dquotacheck-path=/usr/sbin/quotacheck \ 77*4882a593Smuzhiyun -Dquotaon-path=/usr/sbin/quotaon \ 78*4882a593Smuzhiyun -Drootlibdir='/usr/lib' \ 79*4882a593Smuzhiyun -Dsetfont-path=/usr/bin/setfont \ 80*4882a593Smuzhiyun -Dsplit-bin=true \ 81*4882a593Smuzhiyun -Dsplit-usr=false \ 82*4882a593Smuzhiyun -Dsulogin-path=/usr/sbin/sulogin \ 83*4882a593Smuzhiyun -Dsystem-gid-max=999 \ 84*4882a593Smuzhiyun -Dsystem-uid-max=999 \ 85*4882a593Smuzhiyun -Dsysvinit-path= \ 86*4882a593Smuzhiyun -Dsysvrcnd-path= \ 87*4882a593Smuzhiyun -Dtelinit-path= \ 88*4882a593Smuzhiyun -Dtests=false \ 89*4882a593Smuzhiyun -Dtmpfiles=true \ 90*4882a593Smuzhiyun -Dumount-path=/usr/bin/umount \ 91*4882a593Smuzhiyun -Dutmp=false 92*4882a593Smuzhiyun 93*4882a593Smuzhiyunifeq ($(BR2_nios2),y) 94*4882a593Smuzhiyun# Nios2 ld emits warnings, make warnings not to be treated as errors 95*4882a593SmuzhiyunSYSTEMD_LDFLAGS = $(TARGET_LDFLAGS) -Wl,--no-fatal-warnings 96*4882a593Smuzhiyunendif 97*4882a593Smuzhiyun 98*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_ACL),y) 99*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += acl 100*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dacl=true 101*4882a593Smuzhiyunelse 102*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dacl=false 103*4882a593Smuzhiyunendif 104*4882a593Smuzhiyun 105*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LESS),y) 106*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Durlify=true 107*4882a593Smuzhiyunelse 108*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Durlify=false 109*4882a593Smuzhiyunendif 110*4882a593Smuzhiyun 111*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBAPPARMOR),y) 112*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += libapparmor 113*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dapparmor=true 114*4882a593Smuzhiyunelse 115*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dapparmor=false 116*4882a593Smuzhiyunendif 117*4882a593Smuzhiyun 118*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_AUDIT),y) 119*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += audit 120*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Daudit=true 121*4882a593Smuzhiyunelse 122*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Daudit=false 123*4882a593Smuzhiyunendif 124*4882a593Smuzhiyun 125*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_CRYPTSETUP),y) 126*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += cryptsetup 127*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dlibcryptsetup=true -Dlibcryptsetup-plugins=true 128*4882a593Smuzhiyunelse 129*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dlibcryptsetup=false -Dlibcryptsetup-plugins=false 130*4882a593Smuzhiyunendif 131*4882a593Smuzhiyun 132*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_ELFUTILS),y) 133*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += elfutils 134*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Delfutils=true 135*4882a593Smuzhiyunelse 136*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Delfutils=false 137*4882a593Smuzhiyunendif 138*4882a593Smuzhiyun 139*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_IPTABLES),y) 140*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += iptables 141*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dlibiptc=true 142*4882a593Smuzhiyunelse 143*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dlibiptc=false 144*4882a593Smuzhiyunendif 145*4882a593Smuzhiyun 146*4882a593Smuzhiyun# Both options can't be selected at the same time so prefer libidn2 147*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBIDN2),y) 148*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += libidn2 149*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dlibidn2=true -Dlibidn=false 150*4882a593Smuzhiyunelse ifeq ($(BR2_PACKAGE_LIBIDN),y) 151*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += libidn 152*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dlibidn=true -Dlibidn2=false 153*4882a593Smuzhiyunelse 154*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dlibidn=false -Dlibidn2=false 155*4882a593Smuzhiyunendif 156*4882a593Smuzhiyun 157*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBSECCOMP),y) 158*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += libseccomp 159*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dseccomp=true 160*4882a593Smuzhiyunelse 161*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dseccomp=false 162*4882a593Smuzhiyunendif 163*4882a593Smuzhiyun 164*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBXKBCOMMON),y) 165*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += libxkbcommon 166*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dxkbcommon=true 167*4882a593Smuzhiyunelse 168*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dxkbcommon=false 169*4882a593Smuzhiyunendif 170*4882a593Smuzhiyun 171*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_BZIP2),y) 172*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += bzip2 173*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dbzip2=true 174*4882a593Smuzhiyunelse 175*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dbzip2=false 176*4882a593Smuzhiyunendif 177*4882a593Smuzhiyun 178*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_ZSTD),y) 179*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += zstd 180*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dzstd=true 181*4882a593Smuzhiyunelse 182*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dzstd=false 183*4882a593Smuzhiyunendif 184*4882a593Smuzhiyun 185*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LZ4),y) 186*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += lz4 187*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dlz4=true 188*4882a593Smuzhiyunelse 189*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dlz4=false 190*4882a593Smuzhiyunendif 191*4882a593Smuzhiyun 192*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LINUX_PAM),y) 193*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += linux-pam 194*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dpam=true 195*4882a593Smuzhiyunelse 196*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dpam=false 197*4882a593Smuzhiyunendif 198*4882a593Smuzhiyun 199*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBFDISK),y) 200*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dfdisk=true 201*4882a593Smuzhiyunelse 202*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dfdisk=false 203*4882a593Smuzhiyunendif 204*4882a593Smuzhiyun 205*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_VALGRIND),y) 206*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += valgrind 207*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dvalgrind=true 208*4882a593Smuzhiyunelse 209*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dvalgrind=false 210*4882a593Smuzhiyunendif 211*4882a593Smuzhiyun 212*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_XZ),y) 213*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += xz 214*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dxz=true 215*4882a593Smuzhiyunelse 216*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dxz=false 217*4882a593Smuzhiyunendif 218*4882a593Smuzhiyun 219*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_ZLIB),y) 220*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += zlib 221*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dzlib=true 222*4882a593Smuzhiyunelse 223*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dzlib=false 224*4882a593Smuzhiyunendif 225*4882a593Smuzhiyun 226*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBCURL),y) 227*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += libcurl 228*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dlibcurl=true 229*4882a593Smuzhiyunelse 230*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dlibcurl=false 231*4882a593Smuzhiyunendif 232*4882a593Smuzhiyun 233*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBGCRYPT),y) 234*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += libgcrypt 235*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Ddefault-dnssec=allow-downgrade -Dgcrypt=true 236*4882a593Smuzhiyunelse 237*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Ddefault-dnssec=no -Dgcrypt=false 238*4882a593Smuzhiyunendif 239*4882a593Smuzhiyun 240*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_P11_KIT),y) 241*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += p11-kit 242*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dp11kit=true 243*4882a593Smuzhiyunelse 244*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dp11kit=false 245*4882a593Smuzhiyunendif 246*4882a593Smuzhiyun 247*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_PCRE2),y) 248*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += pcre2 249*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dpcre2=true 250*4882a593Smuzhiyunelse 251*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dpcre2=false 252*4882a593Smuzhiyunendif 253*4882a593Smuzhiyun 254*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBBLKID),y) 255*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dblkid=true 256*4882a593Smuzhiyunelse 257*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dblkid=false 258*4882a593Smuzhiyunendif 259*4882a593Smuzhiyun 260*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_UTIL_LINUX_NOLOGIN),y) 261*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dnologin-path=/sbin/nologin 262*4882a593Smuzhiyunelse 263*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dnologin-path=/bin/false 264*4882a593Smuzhiyunendif 265*4882a593Smuzhiyun 266*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_INITRD),y) 267*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dinitrd=true 268*4882a593Smuzhiyunelse 269*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dinitrd=false 270*4882a593Smuzhiyunendif 271*4882a593Smuzhiyun 272*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_KERNELINSTALL),y) 273*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dkernel-install=true 274*4882a593Smuzhiyunelse 275*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dkernel-install=false 276*4882a593Smuzhiyunendif 277*4882a593Smuzhiyun 278*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_ANALYZE),y) 279*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Danalyze=true 280*4882a593Smuzhiyunelse 281*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Danalyze=false 282*4882a593Smuzhiyunendif 283*4882a593Smuzhiyun 284*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_JOURNAL_REMOTE),y) 285*4882a593Smuzhiyun# remote also depends on libcurl, this is already added above. 286*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += libmicrohttpd 287*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dremote=true -Dmicrohttpd=true 288*4882a593SmuzhiyunSYSTEMD_REMOTE_USER = systemd-journal-remote -1 systemd-journal-remote -1 * - - - systemd Journal Remote 289*4882a593Smuzhiyunelse 290*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dremote=false -Dmicrohttpd=false 291*4882a593Smuzhiyunendif 292*4882a593Smuzhiyun 293*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBQRENCODE),y) 294*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += libqrencode 295*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dqrencode=true 296*4882a593Smuzhiyunelse 297*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dqrencode=false 298*4882a593Smuzhiyunendif 299*4882a593Smuzhiyun 300*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBSELINUX),y) 301*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += libselinux 302*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dselinux=true 303*4882a593Smuzhiyunelse 304*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dselinux=false 305*4882a593Smuzhiyunendif 306*4882a593Smuzhiyun 307*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_HWDB),y) 308*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dhwdb=true 309*4882a593Smuzhiyundefine SYSTEMD_BUILD_HWDB 310*4882a593Smuzhiyun $(HOST_DIR)/bin/udevadm hwdb --update --root $(TARGET_DIR) 311*4882a593Smuzhiyunendef 312*4882a593SmuzhiyunSYSTEMD_TARGET_FINALIZE_HOOKS += SYSTEMD_BUILD_HWDB 313*4882a593Smuzhiyundefine SYSTEMD_RM_HWDB_SRV 314*4882a593Smuzhiyun rm -rf $(TARGET_DIR)/$(HOST_EUDEV_SYSCONFDIR)/udev/hwdb.d/ 315*4882a593Smuzhiyunendef 316*4882a593SmuzhiyunSYSTEMD_ROOTFS_PRE_CMD_HOOKS += SYSTEMD_RM_HWDB_SRV 317*4882a593Smuzhiyunelse 318*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dhwdb=false 319*4882a593Smuzhiyunendif 320*4882a593Smuzhiyun 321*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_BINFMT),y) 322*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dbinfmt=true 323*4882a593Smuzhiyunelse 324*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dbinfmt=false 325*4882a593Smuzhiyunendif 326*4882a593Smuzhiyun 327*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_VCONSOLE),y) 328*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dvconsole=true 329*4882a593Smuzhiyunelse 330*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dvconsole=false 331*4882a593Smuzhiyunendif 332*4882a593Smuzhiyun 333*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_QUOTACHECK),y) 334*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dquotacheck=true 335*4882a593Smuzhiyunelse 336*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dquotacheck=false 337*4882a593Smuzhiyunendif 338*4882a593Smuzhiyun 339*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_SYSUSERS),y) 340*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dsysusers=true 341*4882a593Smuzhiyunelse 342*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dsysusers=false 343*4882a593Smuzhiyunendif 344*4882a593Smuzhiyun 345*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_FIRSTBOOT),y) 346*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dfirstboot=true 347*4882a593Smuzhiyunelse 348*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dfirstboot=false 349*4882a593Smuzhiyunendif 350*4882a593Smuzhiyun 351*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_RANDOMSEED),y) 352*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Drandomseed=true 353*4882a593Smuzhiyunelse 354*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Drandomseed=false 355*4882a593Smuzhiyunendif 356*4882a593Smuzhiyun 357*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_BACKLIGHT),y) 358*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dbacklight=true 359*4882a593Smuzhiyunelse 360*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dbacklight=false 361*4882a593Smuzhiyunendif 362*4882a593Smuzhiyun 363*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_RFKILL),y) 364*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Drfkill=true 365*4882a593Smuzhiyunelse 366*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Drfkill=false 367*4882a593Smuzhiyunendif 368*4882a593Smuzhiyun 369*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_LOGIND),y) 370*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dlogind=true 371*4882a593SmuzhiyunSYSTEMD_LOGIND_PERMISSIONS = /var/lib/systemd/linger d 755 0 0 - - - - - 372*4882a593Smuzhiyunelse 373*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dlogind=false 374*4882a593Smuzhiyunendif 375*4882a593Smuzhiyun 376*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_MACHINED),y) 377*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dmachined=true -Dnss-mymachines=true 378*4882a593SmuzhiyunSYSTEMD_MACHINED_PERMISSIONS = /var/lib/machines d 700 0 0 - - - - - 379*4882a593Smuzhiyunelse 380*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dmachined=false -Dnss-mymachines=false 381*4882a593Smuzhiyunendif 382*4882a593Smuzhiyun 383*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_IMPORTD),y) 384*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dimportd=true 385*4882a593Smuzhiyunelse 386*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dimportd=false 387*4882a593Smuzhiyunendif 388*4882a593Smuzhiyun 389*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_HOMED),y) 390*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dhomed=true 391*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += cryptsetup openssl 392*4882a593SmuzhiyunSYSTEMD_HOMED_PERMISSIONS = /var/lib/systemd/home d 755 0 0 - - - - - 393*4882a593Smuzhiyunelse 394*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dhomed=false 395*4882a593Smuzhiyunendif 396*4882a593Smuzhiyun 397*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_HOSTNAMED),y) 398*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dhostnamed=true 399*4882a593Smuzhiyunelse 400*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dhostnamed=false 401*4882a593Smuzhiyunendif 402*4882a593Smuzhiyun 403*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_MYHOSTNAME),y) 404*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dnss-myhostname=true 405*4882a593Smuzhiyunelse 406*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dnss-myhostname=false 407*4882a593Smuzhiyunendif 408*4882a593Smuzhiyun 409*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_TIMEDATED),y) 410*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dtimedated=true 411*4882a593Smuzhiyunelse 412*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dtimedated=false 413*4882a593Smuzhiyunendif 414*4882a593Smuzhiyun 415*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_LOCALED),y) 416*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dlocaled=true 417*4882a593Smuzhiyunelse 418*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dlocaled=false 419*4882a593Smuzhiyunendif 420*4882a593Smuzhiyun 421*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_REPART),y) 422*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Drepart=true 423*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += openssl 424*4882a593Smuzhiyunelse 425*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Drepart=false 426*4882a593Smuzhiyunendif 427*4882a593Smuzhiyun 428*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_USERDB),y) 429*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Duserdb=true 430*4882a593Smuzhiyunelse 431*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Duserdb=false 432*4882a593Smuzhiyunendif 433*4882a593Smuzhiyun 434*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_COREDUMP),y) 435*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dcoredump=true 436*4882a593SmuzhiyunSYSTEMD_COREDUMP_USER = systemd-coredump -1 systemd-coredump -1 * - - - systemd core dump processing 437*4882a593SmuzhiyunSYSTEMD_COREDUMP_PERMISSIONS = /var/lib/systemd/coredump d 755 0 0 - - - - - 438*4882a593Smuzhiyunelse 439*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dcoredump=false 440*4882a593Smuzhiyunendif 441*4882a593Smuzhiyun 442*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_PSTORE),y) 443*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dpstore=true 444*4882a593SmuzhiyunSYSTEMD_PSTORE_PERMISSIONS = /var/lib/systemd/pstore d 755 0 0 - - - - - 445*4882a593Smuzhiyunelse 446*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dpstore=false 447*4882a593Smuzhiyunendif 448*4882a593Smuzhiyun 449*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_OOMD),y) 450*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Doomd=true 451*4882a593SmuzhiyunSYSTEMD_OOMD_USER = systemd-oom -1 systemd-oom -1 * - - - systemd Userspace OOM Killer 452*4882a593Smuzhiyunelse 453*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Doomd=false 454*4882a593Smuzhiyunendif 455*4882a593Smuzhiyun 456*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_POLKIT),y) 457*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dpolkit=true 458*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += polkit 459*4882a593Smuzhiyunelse 460*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dpolkit=false 461*4882a593Smuzhiyunendif 462*4882a593Smuzhiyun 463*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_PORTABLED),y) 464*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dportabled=true 465*4882a593Smuzhiyunelse 466*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dportabled=false 467*4882a593Smuzhiyunendif 468*4882a593Smuzhiyun 469*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_SYSEXT),y) 470*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dsysext=true 471*4882a593Smuzhiyunelse 472*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dsysext=false 473*4882a593Smuzhiyunendif 474*4882a593Smuzhiyun 475*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_NETWORKD),y) 476*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dnetworkd=true 477*4882a593SmuzhiyunSYSTEMD_NETWORKD_USER = systemd-network -1 systemd-network -1 * - - - systemd Network Management 478*4882a593SmuzhiyunSYSTEMD_NETWORKD_DHCP_IFACE = $(call qstrip,$(BR2_SYSTEM_DHCP)) 479*4882a593Smuzhiyunifneq ($(SYSTEMD_NETWORKD_DHCP_IFACE),) 480*4882a593Smuzhiyundefine SYSTEMD_INSTALL_NETWORK_CONFS 481*4882a593Smuzhiyun sed s/SYSTEMD_NETWORKD_DHCP_IFACE/$(SYSTEMD_NETWORKD_DHCP_IFACE)/ \ 482*4882a593Smuzhiyun $(SYSTEMD_PKGDIR)/dhcp.network > \ 483*4882a593Smuzhiyun $(TARGET_DIR)/etc/systemd/network/$(SYSTEMD_NETWORKD_DHCP_IFACE).network 484*4882a593Smuzhiyunendef 485*4882a593Smuzhiyunendif 486*4882a593Smuzhiyunelse 487*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dnetworkd=false 488*4882a593Smuzhiyunendif 489*4882a593Smuzhiyun 490*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_RESOLVED),y) 491*4882a593Smuzhiyundefine SYSTEMD_INSTALL_RESOLVCONF_HOOK 492*4882a593Smuzhiyun ln -sf ../run/systemd/resolve/resolv.conf \ 493*4882a593Smuzhiyun $(TARGET_DIR)/etc/resolv.conf 494*4882a593Smuzhiyunendef 495*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dnss-resolve=true -Dresolve=true 496*4882a593SmuzhiyunSYSTEMD_RESOLVED_USER = systemd-resolve -1 systemd-resolve -1 * - - - systemd Resolver 497*4882a593Smuzhiyunelse 498*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dnss-resolve=false -Dresolve=false 499*4882a593Smuzhiyunendif 500*4882a593Smuzhiyun 501*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBOPENSSL),y) 502*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += \ 503*4882a593Smuzhiyun -Dgnutls=false \ 504*4882a593Smuzhiyun -Dopenssl=true \ 505*4882a593Smuzhiyun -Ddns-over-tls=openssl \ 506*4882a593Smuzhiyun -Ddefault-dns-over-tls=opportunistic 507*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += openssl 508*4882a593Smuzhiyunelse ifeq ($(BR2_PACKAGE_GNUTLS),y) 509*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += \ 510*4882a593Smuzhiyun -Dgnutls=true \ 511*4882a593Smuzhiyun -Dopenssl=false \ 512*4882a593Smuzhiyun -Ddns-over-tls=gnutls \ 513*4882a593Smuzhiyun -Ddefault-dns-over-tls=opportunistic 514*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += gnutls 515*4882a593Smuzhiyunelse 516*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += \ 517*4882a593Smuzhiyun -Dgnutls=false \ 518*4882a593Smuzhiyun -Dopenssl=false \ 519*4882a593Smuzhiyun -Ddns-over-tls=false \ 520*4882a593Smuzhiyun -Ddefault-dns-over-tls=no 521*4882a593Smuzhiyunendif 522*4882a593Smuzhiyun 523*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_TIMESYNCD),y) 524*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dtimesyncd=true 525*4882a593SmuzhiyunSYSTEMD_TIMESYNCD_USER = systemd-timesync -1 systemd-timesync -1 * - - - systemd Time Synchronization 526*4882a593SmuzhiyunSYSTEMD_TIMESYNCD_PERMISSIONS = /var/lib/systemd/timesync d 755 systemd-timesync systemd-timesync - - - - - 527*4882a593Smuzhiyunelse 528*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dtimesyncd=false 529*4882a593Smuzhiyunendif 530*4882a593Smuzhiyun 531*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_SMACK_SUPPORT),y) 532*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dsmack=true 533*4882a593Smuzhiyunelse 534*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dsmack=false 535*4882a593Smuzhiyunendif 536*4882a593Smuzhiyun 537*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_HIBERNATE),y) 538*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dhibernate=true 539*4882a593Smuzhiyunelse 540*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dhibernate=false 541*4882a593Smuzhiyunendif 542*4882a593Smuzhiyun 543*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_BOOT),y) 544*4882a593SmuzhiyunSYSTEMD_INSTALL_IMAGES = YES 545*4882a593SmuzhiyunSYSTEMD_DEPENDENCIES += gnu-efi 546*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += \ 547*4882a593Smuzhiyun -Defi=true \ 548*4882a593Smuzhiyun -Dgnu-efi=true \ 549*4882a593Smuzhiyun -Defi-cc=$(TARGET_CC) \ 550*4882a593Smuzhiyun -Defi-ld=bfd \ 551*4882a593Smuzhiyun -Defi-libdir=$(STAGING_DIR)/usr/lib \ 552*4882a593Smuzhiyun -Defi-includedir=$(STAGING_DIR)/usr/include/efi 553*4882a593Smuzhiyun 554*4882a593SmuzhiyunSYSTEMD_BOOT_EFI_ARCH = $(call qstrip,$(BR2_PACKAGE_SYSTEMD_BOOT_EFI_ARCH)) 555*4882a593Smuzhiyundefine SYSTEMD_INSTALL_BOOT_FILES 556*4882a593Smuzhiyun $(INSTALL) -D -m 0644 $(@D)/build/src/boot/efi/systemd-boot$(SYSTEMD_BOOT_EFI_ARCH).efi \ 557*4882a593Smuzhiyun $(BINARIES_DIR)/efi-part/EFI/BOOT/boot$(SYSTEMD_BOOT_EFI_ARCH).efi 558*4882a593Smuzhiyun $(INSTALL) -D -m 0644 $(SYSTEMD_PKGDIR)/boot-files/loader.conf \ 559*4882a593Smuzhiyun $(BINARIES_DIR)/efi-part/loader/loader.conf 560*4882a593Smuzhiyun $(INSTALL) -D -m 0644 $(SYSTEMD_PKGDIR)/boot-files/buildroot.conf \ 561*4882a593Smuzhiyun $(BINARIES_DIR)/efi-part/loader/entries/buildroot.conf 562*4882a593Smuzhiyunendef 563*4882a593Smuzhiyun 564*4882a593Smuzhiyunelse 565*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Defi=false -Dgnu-efi=false 566*4882a593Smuzhiyunendif # BR2_PACKAGE_SYSTEMD_BOOT == y 567*4882a593Smuzhiyun 568*4882a593SmuzhiyunSYSTEMD_FALLBACK_HOSTNAME = $(call qstrip,$(BR2_TARGET_GENERIC_HOSTNAME)) 569*4882a593Smuzhiyunifneq ($(SYSTEMD_FALLBACK_HOSTNAME),) 570*4882a593SmuzhiyunSYSTEMD_CONF_OPTS += -Dfallback-hostname=$(SYSTEMD_FALLBACK_HOSTNAME) 571*4882a593Smuzhiyunendif 572*4882a593Smuzhiyun 573*4882a593Smuzhiyundefine SYSTEMD_INSTALL_INIT_HOOK 574*4882a593Smuzhiyun ln -fs "$(call qstrip,$(BR2_PACKAGE_SYSTEMD_DEFAULT_TARGET))" \ 575*4882a593Smuzhiyun $(TARGET_DIR)/usr/lib/systemd/system/default.target 576*4882a593Smuzhiyunendef 577*4882a593Smuzhiyun 578*4882a593Smuzhiyundefine SYSTEMD_INSTALL_MACHINEID_HOOK 579*4882a593Smuzhiyun touch $(TARGET_DIR)/etc/machine-id 580*4882a593Smuzhiyunendef 581*4882a593Smuzhiyun 582*4882a593SmuzhiyunSYSTEMD_POST_INSTALL_TARGET_HOOKS += \ 583*4882a593Smuzhiyun SYSTEMD_INSTALL_INIT_HOOK \ 584*4882a593Smuzhiyun SYSTEMD_INSTALL_MACHINEID_HOOK 585*4882a593Smuzhiyun 586*4882a593Smuzhiyundefine SYSTEMD_INSTALL_IMAGES_CMDS 587*4882a593Smuzhiyun $(SYSTEMD_INSTALL_BOOT_FILES) 588*4882a593Smuzhiyunendef 589*4882a593Smuzhiyun 590*4882a593Smuzhiyundefine SYSTEMD_PERMISSIONS 591*4882a593Smuzhiyun /var/spool d 755 0 0 - - - - - 592*4882a593Smuzhiyun /var/lib d 755 0 0 - - - - - 593*4882a593Smuzhiyun /var/lib/private d 700 0 0 - - - - - 594*4882a593Smuzhiyun /var/log/private d 700 0 0 - - - - - 595*4882a593Smuzhiyun /var/cache/private d 700 0 0 - - - - - 596*4882a593Smuzhiyun $(SYSTEMD_LOGIND_PERMISSIONS) 597*4882a593Smuzhiyun $(SYSTEMD_MACHINED_PERMISSIONS) 598*4882a593Smuzhiyun $(SYSTEMD_HOMED_PERMISSIONS) 599*4882a593Smuzhiyun $(SYSTEMD_COREDUMP_PERMISSIONS) 600*4882a593Smuzhiyun $(SYSTEMD_PSTORE_PERMISSIONS) 601*4882a593Smuzhiyun $(SYSTEMD_TIMESYNCD_PERMISSIONS) 602*4882a593Smuzhiyunendef 603*4882a593Smuzhiyun 604*4882a593Smuzhiyundefine SYSTEMD_USERS 605*4882a593Smuzhiyun # udev user groups 606*4882a593Smuzhiyun - - render -1 * - - - DRI rendering nodes 607*4882a593Smuzhiyun - - sgx -1 * - - - SGX device nodes 608*4882a593Smuzhiyun # systemd user groups 609*4882a593Smuzhiyun - - systemd-journal -1 * - - - Journal 610*4882a593Smuzhiyun $(SYSTEMD_REMOTE_USER) 611*4882a593Smuzhiyun $(SYSTEMD_COREDUMP_USER) 612*4882a593Smuzhiyun $(SYSTEMD_OOMD_USER) 613*4882a593Smuzhiyun $(SYSTEMD_NETWORKD_USER) 614*4882a593Smuzhiyun $(SYSTEMD_RESOLVED_USER) 615*4882a593Smuzhiyun $(SYSTEMD_TIMESYNCD_USER) 616*4882a593Smuzhiyunendef 617*4882a593Smuzhiyun 618*4882a593Smuzhiyundefine SYSTEMD_INSTALL_NSSCONFIG_HOOK 619*4882a593Smuzhiyun $(SED) '/^passwd:/ {/systemd/! s/$$/ systemd/}' \ 620*4882a593Smuzhiyun -e '/^group:/ {/systemd/! s/$$/ [SUCCESS=merge] systemd/}' \ 621*4882a593Smuzhiyun -e '/^shadow:/ {/systemd/! s/$$/ systemd/}' \ 622*4882a593Smuzhiyun -e '/^gshadow:/ {/systemd/! s/$$/ systemd/}' \ 623*4882a593Smuzhiyun $(if $(BR2_PACKAGE_SYSTEMD_RESOLVED), \ 624*4882a593Smuzhiyun -e '/^hosts:/ s/[[:space:]]*mymachines//' \ 625*4882a593Smuzhiyun -e '/^hosts:/ {/resolve/! s/files/resolve [!UNAVAIL=return] files/}' ) \ 626*4882a593Smuzhiyun $(if $(BR2_PACKAGE_SYSTEMD_MYHOSTNAME), \ 627*4882a593Smuzhiyun -e '/^hosts:/ {/myhostname/! s/files/files myhostname/}' ) \ 628*4882a593Smuzhiyun $(if $(BR2_PACKAGE_SYSTEMD_MACHINED), \ 629*4882a593Smuzhiyun -e '/^hosts:/ {/mymachines/! s/^\(hosts:[[:space:]]*\)/\1mymachines /}' ) \ 630*4882a593Smuzhiyun $(TARGET_DIR)/etc/nsswitch.conf 631*4882a593Smuzhiyunendef 632*4882a593Smuzhiyun 633*4882a593SmuzhiyunSYSTEMD_TARGET_FINALIZE_HOOKS += \ 634*4882a593Smuzhiyun SYSTEMD_INSTALL_NSSCONFIG_HOOK \ 635*4882a593Smuzhiyun SYSTEMD_INSTALL_RESOLVCONF_HOOK 636*4882a593Smuzhiyun 637*4882a593Smuzhiyunifneq ($(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)),) 638*4882a593Smuzhiyun# systemd provides multiple units to autospawn getty as neede 639*4882a593Smuzhiyun# * getty@.service to start a getty on normal TTY 640*4882a593Smuzhiyun# * sertial-getty@.service to start a getty on serial lines 641*4882a593Smuzhiyun# * console-getty.service for generic /dev/console 642*4882a593Smuzhiyun# * container-getty@.service for a getty on /dev/pts/* 643*4882a593Smuzhiyun# 644*4882a593Smuzhiyun# the generator systemd-getty-generator will 645*4882a593Smuzhiyun# * read the console= kernel command line parameter 646*4882a593Smuzhiyun# * enable one of the above units depending on what it finds 647*4882a593Smuzhiyun# 648*4882a593Smuzhiyun# Systemd defaults to enablinb getty@tty1.service 649*4882a593Smuzhiyun# 650*4882a593Smuzhiyun# What we want to do 651*4882a593Smuzhiyun# * Enable a getty on $BR2_TARGET_GENERIC_TTY_PATH 652*4882a593Smuzhiyun# * Set the baudrate for all units according to BR2_TARGET_GENERIC_GETTY_BAUDRATE 653*4882a593Smuzhiyun# * Always enable a getty on the console using systemd-getty-generator 654*4882a593Smuzhiyun# (backward compatibility with previous releases of buildroot) 655*4882a593Smuzhiyun# 656*4882a593Smuzhiyun# What we do 657*4882a593Smuzhiyun# * disable getty@tty1 (enabled by upstream systemd) 658*4882a593Smuzhiyun# * enable getty@xxx if $BR2_TARGET_GENERIC_TTY_PATH is a tty 659*4882a593Smuzhiyun# * enable serial-getty@xxx for other $BR2_TARGET_GENERIC_TTY_PATH 660*4882a593Smuzhiyun# * rewrite baudrates if a baudrate is provided 661*4882a593Smuzhiyundefine SYSTEMD_INSTALL_SERVICE_TTY 662*4882a593Smuzhiyun mkdir -p $(TARGET_DIR)/usr/lib/systemd/system/getty@.service.d; \ 663*4882a593Smuzhiyun printf '[Install]\nDefaultInstance=\n' \ 664*4882a593Smuzhiyun >$(TARGET_DIR)/usr/lib/systemd/system/getty@.service.d/buildroot-console.conf; \ 665*4882a593Smuzhiyun if [ $(BR2_TARGET_GENERIC_GETTY_PORT) = "console" ]; \ 666*4882a593Smuzhiyun then \ 667*4882a593Smuzhiyun : ; \ 668*4882a593Smuzhiyun elif echo $(BR2_TARGET_GENERIC_GETTY_PORT) | egrep -q 'tty[0-9]*$$'; \ 669*4882a593Smuzhiyun then \ 670*4882a593Smuzhiyun printf '[Install]\nDefaultInstance=%s\n' \ 671*4882a593Smuzhiyun $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)) \ 672*4882a593Smuzhiyun >$(TARGET_DIR)/usr/lib/systemd/system/getty@.service.d/buildroot-console.conf; \ 673*4882a593Smuzhiyun else \ 674*4882a593Smuzhiyun mkdir -p $(TARGET_DIR)/usr/lib/systemd/system/serial-getty@.service.d;\ 675*4882a593Smuzhiyun printf '[Install]\nDefaultInstance=%s\n' \ 676*4882a593Smuzhiyun $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)) \ 677*4882a593Smuzhiyun >$(TARGET_DIR)/usr/lib/systemd/system/serial-getty@.service.d/buildroot-console.conf;\ 678*4882a593Smuzhiyun fi; \ 679*4882a593Smuzhiyun if [ $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE)) -gt 0 ] ; \ 680*4882a593Smuzhiyun then \ 681*4882a593Smuzhiyun $(SED) 's/115200/$(BR2_TARGET_GENERIC_GETTY_BAUDRATE),115200/' $(TARGET_DIR)/lib/systemd/system/getty@.service; \ 682*4882a593Smuzhiyun $(SED) 's/115200/$(BR2_TARGET_GENERIC_GETTY_BAUDRATE),115200/' $(TARGET_DIR)/lib/systemd/system/serial-getty@.service; \ 683*4882a593Smuzhiyun $(SED) 's/115200/$(BR2_TARGET_GENERIC_GETTY_BAUDRATE),115200/' $(TARGET_DIR)/lib/systemd/system/console-getty@.service; \ 684*4882a593Smuzhiyun $(SED) 's/115200/$(BR2_TARGET_GENERIC_GETTY_BAUDRATE),115200/' $(TARGET_DIR)/lib/systemd/system/container-getty@.service; \ 685*4882a593Smuzhiyun fi 686*4882a593Smuzhiyunendef 687*4882a593Smuzhiyunendif 688*4882a593Smuzhiyun 689*4882a593Smuzhiyundefine SYSTEMD_INSTALL_PRESET 690*4882a593Smuzhiyun $(INSTALL) -D -m 644 $(SYSTEMD_PKGDIR)/80-buildroot.preset $(TARGET_DIR)/usr/lib/systemd/system-preset/80-buildroot.preset 691*4882a593Smuzhiyunendef 692*4882a593Smuzhiyun 693*4882a593Smuzhiyundefine SYSTEMD_INSTALL_INIT_SYSTEMD 694*4882a593Smuzhiyun $(SYSTEMD_INSTALL_PRESET) 695*4882a593Smuzhiyun $(SYSTEMD_INSTALL_SERVICE_TTY) 696*4882a593Smuzhiyun $(SYSTEMD_INSTALL_NETWORK_CONFS) 697*4882a593Smuzhiyunendef 698*4882a593Smuzhiyun 699*4882a593Smuzhiyunifeq ($(BR2_ENABLE_LOCALE_PURGE),y) 700*4882a593Smuzhiyun# Go through all files with scheme <basename>.<langext>.catalog 701*4882a593Smuzhiyun# and remove those where <langext> is not in LOCALE_NOPURGE 702*4882a593Smuzhiyundefine SYSTEMD_LOCALE_PURGE_CATALOGS 703*4882a593Smuzhiyun for cfile in `find $(TARGET_DIR)/usr/lib/systemd/catalog -name '*.*.catalog'`; \ 704*4882a593Smuzhiyun do \ 705*4882a593Smuzhiyun basename=$${cfile##*/}; \ 706*4882a593Smuzhiyun basename=$${basename%.catalog}; \ 707*4882a593Smuzhiyun langext=$${basename#*.}; \ 708*4882a593Smuzhiyun [ "$$langext" = "$${basename}" ] && continue; \ 709*4882a593Smuzhiyun expr '$(LOCALE_NOPURGE)' : ".*\b$${langext}\b" >/dev/null && continue; \ 710*4882a593Smuzhiyun rm -f "$$cfile"; \ 711*4882a593Smuzhiyun done 712*4882a593Smuzhiyunendef 713*4882a593SmuzhiyunSYSTEMD_ROOTFS_PRE_CMD_HOOKS += SYSTEMD_LOCALE_PURGE_CATALOGS 714*4882a593Smuzhiyunendif 715*4882a593Smuzhiyun 716*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_CATALOGDB),y) 717*4882a593Smuzhiyundefine SYSTEMD_UPDATE_CATALOGS 718*4882a593Smuzhiyun $(HOST_DIR)/bin/journalctl --root=$(TARGET_DIR) --update-catalog 719*4882a593Smuzhiyun install -D $(TARGET_DIR)/var/lib/systemd/catalog/database \ 720*4882a593Smuzhiyun $(TARGET_DIR)/usr/share/factory/var/lib/systemd/catalog/database 721*4882a593Smuzhiyun rm $(TARGET_DIR)/var/lib/systemd/catalog/database 722*4882a593Smuzhiyun ln -sf /usr/share/factory/var/lib/systemd/catalog/database \ 723*4882a593Smuzhiyun $(TARGET_DIR)/var/lib/systemd/catalog/database 724*4882a593Smuzhiyun grep -q '^L /var/lib/systemd/catalog/database' $(TARGET_DIR)/usr/lib/tmpfiles.d/var.conf || \ 725*4882a593Smuzhiyun printf "\nL /var/lib/systemd/catalog/database\n" >> $(TARGET_DIR)/usr/lib/tmpfiles.d/var.conf 726*4882a593Smuzhiyunendef 727*4882a593SmuzhiyunSYSTEMD_ROOTFS_PRE_CMD_HOOKS += SYSTEMD_UPDATE_CATALOGS 728*4882a593Smuzhiyunendif 729*4882a593Smuzhiyun 730*4882a593Smuzhiyundefine SYSTEMD_RM_CATALOG_UPDATE_SERVICE 731*4882a593Smuzhiyun rm -rf $(TARGET_DIR)/usr/lib/systemd/catalog \ 732*4882a593Smuzhiyun $(TARGET_DIR)/usr/lib/systemd/system/systemd-journal-catalog-update.service \ 733*4882a593Smuzhiyun $(TARGET_DIR)/usr/lib/systemd/system/*/systemd-journal-catalog-update.service 734*4882a593Smuzhiyunendef 735*4882a593SmuzhiyunSYSTEMD_ROOTFS_PRE_CMD_HOOKS += SYSTEMD_RM_CATALOG_UPDATE_SERVICE 736*4882a593Smuzhiyun 737*4882a593Smuzhiyundefine SYSTEMD_CREATE_TMPFILES_HOOK 738*4882a593Smuzhiyun HOST_SYSTEMD_TMPFILES=$(HOST_DIR)/bin/systemd-tmpfiles \ 739*4882a593Smuzhiyun $(SYSTEMD_PKGDIR)/fakeroot_tmpfiles.sh $(TARGET_DIR) 740*4882a593Smuzhiyunendef 741*4882a593SmuzhiyunSYSTEMD_ROOTFS_PRE_CMD_HOOKS += SYSTEMD_CREATE_TMPFILES_HOOK 742*4882a593Smuzhiyun 743*4882a593Smuzhiyundefine SYSTEMD_PRESET_ALL 744*4882a593Smuzhiyun $(HOST_DIR)/bin/systemctl --root=$(TARGET_DIR) preset-all 745*4882a593Smuzhiyunendef 746*4882a593SmuzhiyunSYSTEMD_ROOTFS_PRE_CMD_HOOKS += SYSTEMD_PRESET_ALL 747*4882a593Smuzhiyun 748*4882a593SmuzhiyunSYSTEMD_CONF_ENV = $(HOST_UTF8_LOCALE_ENV) 749*4882a593SmuzhiyunSYSTEMD_NINJA_ENV = $(HOST_UTF8_LOCALE_ENV) 750*4882a593Smuzhiyun 751*4882a593Smuzhiyundefine SYSTEMD_LINUX_CONFIG_FIXUPS 752*4882a593Smuzhiyun $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS) 753*4882a593Smuzhiyun $(call KCONFIG_ENABLE_OPT,CONFIG_CGROUPS) 754*4882a593Smuzhiyun $(call KCONFIG_ENABLE_OPT,CONFIG_INOTIFY_USER) 755*4882a593Smuzhiyun $(call KCONFIG_ENABLE_OPT,CONFIG_SIGNALFD) 756*4882a593Smuzhiyun $(call KCONFIG_ENABLE_OPT,CONFIG_TIMERFD) 757*4882a593Smuzhiyun $(call KCONFIG_ENABLE_OPT,CONFIG_EPOLL) 758*4882a593Smuzhiyun $(call KCONFIG_ENABLE_OPT,CONFIG_UNIX) 759*4882a593Smuzhiyun $(call KCONFIG_ENABLE_OPT,CONFIG_SYSFS) 760*4882a593Smuzhiyun $(call KCONFIG_ENABLE_OPT,CONFIG_PROC_FS) 761*4882a593Smuzhiyun $(call KCONFIG_ENABLE_OPT,CONFIG_FHANDLE) 762*4882a593Smuzhiyun 763*4882a593Smuzhiyun $(call KCONFIG_ENABLE_OPT,CONFIG_NET_NS) 764*4882a593Smuzhiyun 765*4882a593Smuzhiyun $(call KCONFIG_DISABLE_OPT,CONFIG_SYSFS_DEPRECATED) 766*4882a593Smuzhiyun 767*4882a593Smuzhiyun $(call KCONFIG_ENABLE_OPT,CONFIG_AUTOFS_FS) 768*4882a593Smuzhiyun $(call KCONFIG_ENABLE_OPT,CONFIG_AUTOFS4_FS) 769*4882a593Smuzhiyun $(call KCONFIG_ENABLE_OPT,CONFIG_TMPFS_POSIX_ACL) 770*4882a593Smuzhiyun $(call KCONFIG_ENABLE_OPT,CONFIG_TMPFS_XATTR) 771*4882a593Smuzhiyunendef 772*4882a593Smuzhiyun 773*4882a593Smuzhiyun# We need a very minimal host variant, so we disable as much as possible. 774*4882a593SmuzhiyunHOST_SYSTEMD_CONF_OPTS = \ 775*4882a593Smuzhiyun -Dsplit-bin=true \ 776*4882a593Smuzhiyun -Dsplit-usr=false \ 777*4882a593Smuzhiyun --prefix=/usr \ 778*4882a593Smuzhiyun --libdir=lib \ 779*4882a593Smuzhiyun --sysconfdir=/etc \ 780*4882a593Smuzhiyun --localstatedir=/var \ 781*4882a593Smuzhiyun -Dmode=release \ 782*4882a593Smuzhiyun -Dutmp=false \ 783*4882a593Smuzhiyun -Dhibernate=false \ 784*4882a593Smuzhiyun -Dldconfig=false \ 785*4882a593Smuzhiyun -Dresolve=false \ 786*4882a593Smuzhiyun -Defi=false \ 787*4882a593Smuzhiyun -Dtpm=false \ 788*4882a593Smuzhiyun -Denvironment-d=false \ 789*4882a593Smuzhiyun -Dbinfmt=false \ 790*4882a593Smuzhiyun -Drepart=false \ 791*4882a593Smuzhiyun -Dcoredump=false \ 792*4882a593Smuzhiyun -Dpstore=false \ 793*4882a593Smuzhiyun -Doomd=false \ 794*4882a593Smuzhiyun -Dlogind=false \ 795*4882a593Smuzhiyun -Dhostnamed=false \ 796*4882a593Smuzhiyun -Dlocaled=false \ 797*4882a593Smuzhiyun -Dmachined=false \ 798*4882a593Smuzhiyun -Dportabled=false \ 799*4882a593Smuzhiyun -Dsysext=false \ 800*4882a593Smuzhiyun -Duserdb=false \ 801*4882a593Smuzhiyun -Dhomed=false \ 802*4882a593Smuzhiyun -Dnetworkd=false \ 803*4882a593Smuzhiyun -Dtimedated=false \ 804*4882a593Smuzhiyun -Dtimesyncd=false \ 805*4882a593Smuzhiyun -Dremote=false \ 806*4882a593Smuzhiyun -Dcreate-log-dirs=false \ 807*4882a593Smuzhiyun -Dnss-myhostname=false \ 808*4882a593Smuzhiyun -Dnss-mymachines=false \ 809*4882a593Smuzhiyun -Dnss-resolve=false \ 810*4882a593Smuzhiyun -Dnss-systemd=false \ 811*4882a593Smuzhiyun -Dfirstboot=false \ 812*4882a593Smuzhiyun -Drandomseed=false \ 813*4882a593Smuzhiyun -Dbacklight=false \ 814*4882a593Smuzhiyun -Dvconsole=false \ 815*4882a593Smuzhiyun -Dquotacheck=false \ 816*4882a593Smuzhiyun -Dsysusers=false \ 817*4882a593Smuzhiyun -Dtmpfiles=true \ 818*4882a593Smuzhiyun -Dimportd=false \ 819*4882a593Smuzhiyun -Dhwdb=false \ 820*4882a593Smuzhiyun -Drfkill=false \ 821*4882a593Smuzhiyun -Dman=false \ 822*4882a593Smuzhiyun -Dhtml=false \ 823*4882a593Smuzhiyun -Dsmack=false \ 824*4882a593Smuzhiyun -Dpolkit=false \ 825*4882a593Smuzhiyun -Dblkid=false \ 826*4882a593Smuzhiyun -Didn=false \ 827*4882a593Smuzhiyun -Dadm-group=false \ 828*4882a593Smuzhiyun -Dwheel-group=false \ 829*4882a593Smuzhiyun -Dzlib=false \ 830*4882a593Smuzhiyun -Dgshadow=false \ 831*4882a593Smuzhiyun -Dima=false \ 832*4882a593Smuzhiyun -Dtests=false \ 833*4882a593Smuzhiyun -Dglib=false \ 834*4882a593Smuzhiyun -Dacl=false \ 835*4882a593Smuzhiyun -Dsysvinit-path='' \ 836*4882a593Smuzhiyun -Dinitrd=false \ 837*4882a593Smuzhiyun -Dxdg-autostart=false \ 838*4882a593Smuzhiyun -Dkernel-install=false \ 839*4882a593Smuzhiyun -Danalyze=false \ 840*4882a593Smuzhiyun -Dlibcryptsetup=false \ 841*4882a593Smuzhiyun -Daudit=false \ 842*4882a593Smuzhiyun -Dzstd=false 843*4882a593Smuzhiyun 844*4882a593SmuzhiyunHOST_SYSTEMD_DEPENDENCIES = \ 845*4882a593Smuzhiyun $(BR2_COREUTILS_HOST_DEPENDENCY) \ 846*4882a593Smuzhiyun host-util-linux \ 847*4882a593Smuzhiyun host-patchelf \ 848*4882a593Smuzhiyun host-libcap \ 849*4882a593Smuzhiyun host-gperf \ 850*4882a593Smuzhiyun host-python-jinja2 851*4882a593Smuzhiyun 852*4882a593SmuzhiyunHOST_SYSTEMD_NINJA_ENV = DESTDIR=$(HOST_DIR) 853*4882a593Smuzhiyun 854*4882a593Smuzhiyun# Fix RPATH After installation 855*4882a593Smuzhiyun# * systemd provides a install_rpath instruction to meson because the binaries 856*4882a593Smuzhiyun# need to link with libsystemd which is not in a standard path 857*4882a593Smuzhiyun# * meson can only replace the RPATH, not append to it 858*4882a593Smuzhiyun# * the original rpath is thus lost. 859*4882a593Smuzhiyun# * the original path had been tweaked by buildroot via LDFLAGS to add 860*4882a593Smuzhiyun# $(HOST_DIR)/lib 861*4882a593Smuzhiyun# * thus re-tweak rpath after the installation for all binaries that need it 862*4882a593SmuzhiyunHOST_SYSTEMD_HOST_TOOLS = busctl journalctl systemctl systemd-* udevadm 863*4882a593Smuzhiyun 864*4882a593Smuzhiyundefine HOST_SYSTEMD_FIX_RPATH 865*4882a593Smuzhiyun for f in $(addprefix $(HOST_DIR)/bin/,$(HOST_SYSTEMD_HOST_TOOLS)); do \ 866*4882a593Smuzhiyun [ -e $$f ] || continue; \ 867*4882a593Smuzhiyun $(HOST_DIR)/bin/patchelf --set-rpath $(HOST_DIR)/lib:$(HOST_DIR)/lib/systemd $${f} \ 868*4882a593Smuzhiyun || exit 1; \ 869*4882a593Smuzhiyun done 870*4882a593Smuzhiyunendef 871*4882a593SmuzhiyunHOST_SYSTEMD_POST_INSTALL_HOOKS += HOST_SYSTEMD_FIX_RPATH 872*4882a593Smuzhiyun 873*4882a593Smuzhiyun$(eval $(meson-package)) 874*4882a593Smuzhiyun$(eval $(host-meson-package)) 875