meson: use install_emptydir() and drop meson-make-symlink.sh

The script is mostly equivalent to 'mkdir -p' and 'ln -sfr'.
Let's replace it with install_emptydir() builtin function and
inline meson call.
This commit is contained in:
Yu Watanabe
2023-08-08 10:38:47 +09:00
committed by Luca Boccassi
parent 653c90ec0e
commit 9289e093ae
25 changed files with 81 additions and 164 deletions

View File

@@ -51,8 +51,7 @@ if conf.get('ENABLE_HWDB') == 1
install_dir : udevhwdbdir)
if install_sysconfdir
meson.add_install_script('sh', '-c',
mkdir_p.format(sysconfdir / 'udev/hwdb.d'))
install_emptydir(sysconfdir / 'udev/hwdb.d')
meson.add_install_script('sh', '-c',
'test -n "$DESTDIR" || @0@/systemd-hwdb update'.format(bindir))

View File

@@ -84,9 +84,7 @@ foreach tuple : manpages
output : htmlalias,
command : [ln, '-fs', html, '@OUTPUT@'])
if want_html
dst = docdir / 'html' / htmlalias
cmd = 'ln -fs @0@ $DESTDIR@1@'.format(html, dst)
meson.add_install_script('sh', '-c', cmd)
meson.add_install_script(sh, '-c', ln_s.format(html, docdir / 'html' / htmlalias))
p2 += link
endif
html_pages += link
@@ -157,9 +155,7 @@ foreach tuple : xsltproc.found() ? [['systemd.directives', '7', systemd_directiv
output : htmlalias,
command : [ln, '-fs', html, '@OUTPUT@'])
if want_html
dst = docdir / 'html' / htmlalias
cmd = 'ln -fs @0@ $DESTDIR@1@'.format(html, dst)
meson.add_install_script('sh', '-c', cmd)
meson.add_install_script(sh, '-c', ln_s.format(html, docdir / 'html' / htmlalias))
p2 += link
endif
html_pages += link

View File

@@ -111,6 +111,7 @@ endif
prefixdir_noslash = '/' + prefixdir.strip('/')
bindir = prefixdir / get_option('bindir')
sbindir = prefixdir / (split_bin ? 'sbin' : 'bin')
sbin_to_bin = split_bin ? '../bin/' : ''
libdir = prefixdir / get_option('libdir')
sysconfdir = prefixdir / get_option('sysconfdir')
includedir = prefixdir / get_option('includedir')
@@ -642,10 +643,8 @@ env = find_program('env')
rsync = find_program('rsync', required : false)
diff = find_program('diff')
find = find_program('find')
meson_make_symlink = project_source_root + '/tools/meson-make-symlink.sh'
mkdir_p = 'mkdir -p $DESTDIR/@0@'
mkdir_p_mode = 'mkdir -p $DESTDIR/@0@ -m @1@'
ln_s = ln.full_path() + ' -frsT -- "${DESTDIR:-}@0@" "${DESTDIR:-}@1@"'
# If -Dxxx-path option is found, use that. Otherwise, check in $PATH,
# /usr/sbin, /sbin, and fall back to the default from middle column.
@@ -2781,8 +2780,7 @@ install_data('LICENSE.GPL2',
install_subdir('LICENSES',
install_dir : docdir)
meson.add_install_script('sh', '-c', mkdir_p.format(systemdstatedir))
meson.add_install_script('sh', '-c', 'touch $DESTDIR@0@'.format(prefixdir))
install_emptydir(systemdstatedir)
############################################################

View File

@@ -14,8 +14,7 @@ if conf.get('ENABLE_NETWORKD') == 1
install_dir : networkdir)
if install_sysconfdir
meson.add_install_script('sh', '-c',
mkdir_p.format(sysconfdir / 'systemd/network'))
install_emptydir(sysconfdir / 'systemd/network')
endif
endif

View File

@@ -10,10 +10,8 @@ executables += [
]
if conf.get('ENABLE_BINFMT') == 1
meson.add_install_script('sh', '-c',
mkdir_p.format(binfmtdir))
install_emptydir(binfmtdir)
if install_sysconfdir
meson.add_install_script('sh', '-c',
mkdir_p.format(sysconfdir / 'binfmt.d'))
install_emptydir(sysconfdir / 'binfmt.d')
endif
endif

View File

@@ -201,20 +201,21 @@ install_data('org.freedesktop.systemd1.conf',
install_data('org.freedesktop.systemd1.service',
install_dir : dbussystemservicedir)
meson.add_install_script('sh', '-c', mkdir_p.format(systemshutdowndir))
meson.add_install_script('sh', '-c', mkdir_p.format(systemsleepdir))
meson.add_install_script('sh', '-c', mkdir_p.format(systemgeneratordir))
meson.add_install_script('sh', '-c', mkdir_p.format(usergeneratordir))
install_emptydir(systemshutdowndir)
install_emptydir(systemsleepdir)
install_emptydir(systemgeneratordir)
install_emptydir(usergeneratordir)
if install_sysconfdir
meson.add_install_script('sh', '-c', mkdir_p.format(pkgsysconfdir / 'system'))
meson.add_install_script('sh', '-c', mkdir_p.format(pkgsysconfdir / 'user'))
meson.add_install_script('sh', '-c', mkdir_p.format(sysconfdir / 'xdg/systemd'))
install_emptydir(pkgsysconfdir / 'system')
install_emptydir(pkgsysconfdir / 'user')
install_emptydir(sysconfdir / 'xdg/systemd')
meson.add_install_script(sh, '-c', ln_s.format(pkgsysconfdir / 'user',
sysconfdir / 'xdg/systemd/user'))
endif
meson.add_install_script(meson_make_symlink,
libexecdir / 'systemd',
sbindir / 'init')
install_emptydir(sbindir)
meson.add_install_script(sh, '-c', ln_s.format(libexecdir / 'systemd', sbindir / 'init'))
############################################################

View File

@@ -15,9 +15,11 @@ executables += [
# Protecting files from the distro in /usr doesn't make sense since they can be trivially accessed otherwise,
# so don't restrict the access mode in /usr. That doesn't apply to /etc, so we do restrict the access mode
# there.
meson.add_install_script('sh', '-c', mkdir_p.format(credstoredir))
install_emptydir(credstoredir)
if install_sysconfdir
# Keep in sync with tmpfiles.d/credstore.conf
meson.add_install_script('sh', '-c', mkdir_p_mode.format(sysconfdir / 'credstore', '0700'))
meson.add_install_script('sh', '-c', mkdir_p_mode.format(sysconfdir / 'credstore.encrypted', '0700'))
install_emptydir(sysconfdir / 'credstore',
install_mode : 'rwx------')
install_emptydir(sysconfdir / 'credstore.encrypted',
install_mode : 'rwx------')
endif

View File

@@ -10,7 +10,8 @@ executables += [
]
if conf.get('HAVE_BLKID') == 1
meson.add_install_script(meson_make_symlink,
bindir / 'systemd-dissect',
sbindir / 'mount.ddi')
install_emptydir(sbindir)
meson.add_install_script(sh, '-c',
ln_s.format(bindir / 'systemd-dissect',
sbindir / 'mount.ddi'))
endif

View File

@@ -10,7 +10,8 @@ executables += [
]
if conf.get('ENABLE_ENVIRONMENT_D') == 1
meson.add_install_script(meson_make_symlink,
sysconfdir / 'environment',
environmentdir / '99-environment.conf')
install_emptydir(environmentdir)
meson.add_install_script(sh, '-c',
ln_s.format(sysconfdir / 'environment',
environmentdir / '99-environment.conf'))
endif

View File

@@ -7,6 +7,6 @@ executables += [
},
]
meson.add_install_script(meson_make_symlink,
systemgeneratordir / 'systemd-fstab-generator',
libexecdir / 'systemd-sysroot-fstab-check')
meson.add_install_script(sh, '-c',
ln_s.format(systemgeneratordir / 'systemd-fstab-generator',
libexecdir / 'systemd-sysroot-fstab-check'))

View File

@@ -113,10 +113,7 @@ if conf.get('ENABLE_REMOTE') == 1 and conf.get('HAVE_MICROHTTPD') == 1
install_dir : pkgdatadir / 'gatewayd')
if get_option('create-log-dirs')
meson.add_install_script('sh', '-c',
mkdir_p.format('/var/log/journal/remote'))
meson.add_install_script('sh', '-c',
'''chown 0:0 $DESTDIR/var/log/journal/remote &&
chmod 755 $DESTDIR/var/log/journal/remote || :''')
install_emptydir('/var/log/journal/remote',
install_mode : [ 'rwxr-xr-x', 'root', 'root' ])
endif
endif

View File

@@ -184,13 +184,8 @@ if install_sysconfdir_samples
endif
if get_option('create-log-dirs')
meson.add_install_script(
'sh', '-c',
mkdir_p.format('/var/log/journal'))
meson.add_install_script(
'sh', '-c',
'''chown 0:0 $DESTDIR/var/log/journal &&
chmod 755 $DESTDIR/var/log/journal || :''')
install_emptydir('/var/log/journal',
install_mode : [ 'rwxr-xr-x', 'root', 'root' ])
if get_option('adm-group')
meson.add_install_script(
'sh', '-c',

View File

@@ -44,8 +44,7 @@ if want_kernel_install
install_dir : kerneldir)
if install_sysconfdir
meson.add_install_script('sh', '-c',
mkdir_p.format(sysconfdir / 'kernel/install.d'))
install_emptydir(sysconfdir / 'kernel/install.d')
endif
endif

View File

@@ -10,10 +10,8 @@ executables += [
]
if conf.get('HAVE_KMOD') == 1
meson.add_install_script('sh', '-c',
mkdir_p.format(modulesloaddir))
install_emptydir(modulesloaddir)
if install_sysconfdir
meson.add_install_script('sh', '-c',
mkdir_p.format(sysconfdir / 'modules-load.d'))
install_emptydir(sysconfdir / 'modules-load.d')
endif
endif

View File

@@ -9,5 +9,5 @@ executables += [
},
]
meson.add_install_script(meson_make_symlink,
'systemd-mount', bindir / 'systemd-umount')
meson.add_install_script(sh, '-c', ln_s.format(bindir / 'systemd-mount',
bindir / 'systemd-umount'))

View File

@@ -220,13 +220,14 @@ if conf.get('ENABLE_RESOLVE') == 1
install_data('resolv.conf',
install_dir : libexecdir)
meson.add_install_script(meson_make_symlink,
bindir / 'resolvectl',
sbindir / 'resolvconf')
install_emptydir(sbindir)
meson.add_install_script(sh, '-c',
ln_s.format(bindir / 'resolvectl',
sbindir / 'resolvconf'))
meson.add_install_script(meson_make_symlink,
bindir / 'resolvectl',
bindir / 'systemd-resolve')
meson.add_install_script(sh, '-c',
ln_s.format(bindir / 'resolvectl',
bindir / 'systemd-resolve'))
endif
custom_target(

View File

@@ -10,7 +10,6 @@ executables += [
]
if conf.get('ENABLE_SYSEXT') == 1
meson.add_install_script(meson_make_symlink,
bindir / 'systemd-sysext',
bindir / 'systemd-confext')
meson.add_install_script(sh, '-c', ln_s.format(bindir / 'systemd-sysext',
bindir / 'systemd-confext'))
endif

View File

@@ -75,7 +75,8 @@ executables += [
foreach alias : (['halt', 'poweroff', 'reboot', 'shutdown'] +
(conf.get('HAVE_SYSV_COMPAT') == 1 ? ['runlevel', 'telinit'] : []))
meson.add_install_script(meson_make_symlink,
bindir / 'systemctl',
sbindir / alias)
install_emptydir(sbindir)
meson.add_install_script(sh, '-c',
ln_s.format(bindir / 'systemctl',
sbindir / alias))
endforeach

View File

@@ -247,9 +247,8 @@ executables += [
},
]
meson.add_install_script(meson_make_symlink,
bindir / 'udevadm',
libexecdir / 'systemd-udevd')
meson.add_install_script(sh, '-c', ln_s.format(bindir / 'udevadm',
libexecdir / 'systemd-udevd'))
if install_sysconfdir_samples
install_data('udev.conf',
@@ -268,6 +267,5 @@ udev_pc = custom_target(
install_dir : pkgconfigdatadir)
if install_sysconfdir
meson.add_install_script('sh', '-c',
mkdir_p.format(sysconfdir / 'udev/rules.d'))
install_emptydir(sysconfdir / 'udev/rules.d')
endif

View File

@@ -21,6 +21,5 @@ custom_target(
install_dir : sysctldir)
if install_sysconfdir
meson.add_install_script('sh', '-c',
mkdir_p.format(sysconfdir / 'sysctl.d'))
install_emptydir(sysconfdir / 'sysctl.d')
endif

Some files were not shown because too many files have changed in this diff Show More