From: Luca Boccassi Date: Thu, 9 Jan 2025 21:37:26 +0000 (+0000) Subject: meson: add install tags for udev and hwdb X-Git-Tag: v258-rc1~1646 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8442ac9c0264ac7beb5afd6c3bf922030a6edaf3;p=thirdparty%2Fsystemd.git meson: add install tags for udev and hwdb Allows building and installing them individually, like other existing components --- diff --git a/.github/workflows/build_test.sh b/.github/workflows/build_test.sh index 113af704a80..986e30c595d 100755 --- a/.github/workflows/build_test.sh +++ b/.github/workflows/build_test.sh @@ -135,6 +135,9 @@ $CC --version meson --version ninja --version +# TODO: drop once minimum meson version is bumped to 0.62 or newer +find . -type f -name meson.build -exec sed -i 's/install_emptydir(\(.*\), install_tag : .*)/install_emptydir(\1)/g' '{}' '+' + for args in "${ARGS[@]}"; do SECONDS=0 diff --git a/.github/workflows/unit_tests.sh b/.github/workflows/unit_tests.sh index 4433d847ce2..7275a72dc5f 100755 --- a/.github/workflows/unit_tests.sh +++ b/.github/workflows/unit_tests.sh @@ -32,6 +32,8 @@ function info() { } function run_meson() { + # TODO: drop once minimum meson version is bumped to 0.62 or newer + find . -type f -name meson.build -exec sed -i 's/install_emptydir(\(.*\), install_tag : .*)/install_emptydir(\1)/g' '{}' '+' if ! meson "$@"; then find . -type f -name meson-log.txt -exec cat '{}' + return 1 diff --git a/hwdb.d/meson.build b/hwdb.d/meson.build index b69b6d8f251..e7dfd0bea2d 100644 --- a/hwdb.d/meson.build +++ b/hwdb.d/meson.build @@ -45,17 +45,20 @@ if conf.get('ENABLE_HWDB') == 1 command : make_autosuspend_rules_py, capture : true, install : true, - install_dir: udevhwdbdir) + install_dir: udevhwdbdir, + install_tag: 'hwdb') install_data(hwdb_files_notest, hwdb_files_test, - install_dir : udevhwdbdir) + install_dir : udevhwdbdir, + install_tag: 'hwdb') if install_sysconfdir - install_emptydir(sysconfdir / 'udev/hwdb.d') + install_emptydir(sysconfdir / 'udev/hwdb.d', install_tag : 'hwdb') meson.add_install_script(sh, '-c', - 'test -n "$DESTDIR" || @0@/systemd-hwdb update'.format(bindir)) + 'test -n "$DESTDIR" || @0@/systemd-hwdb update'.format(bindir), + install_tag: 'hwdb') endif if want_tests != 'false' diff --git a/rules.d/meson.build b/rules.d/meson.build index 61165fd86f4..e8eb26c5753 100644 --- a/rules.d/meson.build +++ b/rules.d/meson.build @@ -49,7 +49,8 @@ all_rules = [] foreach tuple : rules if tuple.length() == 1 or tuple[1] install_data(tuple[0], - install_dir : udevrulesdir) + install_dir : udevrulesdir, + install_tag : 'udev') all_rules += tuple[0] endif endforeach @@ -76,7 +77,8 @@ foreach tuple : rules_in output: tuple[0], command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'], install : want, - install_dir : udevrulesdir) + install_dir : udevrulesdir, + install_tag : 'udev') if want all_rules += rule diff --git a/src/hwdb/meson.build b/src/hwdb/meson.build index 385ed854d62..57ace3ad44d 100644 --- a/src/hwdb/meson.build +++ b/src/hwdb/meson.build @@ -8,5 +8,6 @@ executables += [ 'sources' : files('hwdb.c'), 'link_with' : udev_link_with, 'install_rpath' : udev_rpath, + 'install_tag' : 'hwdb', }, ] diff --git a/src/udev/meson.build b/src/udev/meson.build index 5d5cc33a499..cff396e0828 100644 --- a/src/udev/meson.build +++ b/src/udev/meson.build @@ -132,6 +132,7 @@ udev_plugin_template = executable_template + { 'link_with' : udev_link_with, 'install_rpath' : udev_rpath, 'install_dir' : udevlibexecdir, + 'install_tag' : 'udev', } udev_common_template = { @@ -155,6 +156,7 @@ executables += [ 'link_with' : [libudevd_core], 'dependencies' : udev_dependencies, 'install_rpath' : udev_rpath, + 'install_tag' : 'udev', }, udev_plugin_template + { 'name' : 'ata_id', @@ -254,13 +256,16 @@ executables += [ ] meson.add_install_script(sh, '-c', ln_s.format(bindir / 'udevadm', - libexecdir / 'systemd-udevd')) + libexecdir / 'systemd-udevd'), + install_tag : 'udev') if install_sysconfdir_samples install_data('udev.conf', - install_dir : configfiledir / 'udev') + install_dir : configfiledir / 'udev', + install_tag : 'udev') install_data('iocost/iocost.conf', - install_dir : configfiledir / 'udev') + install_dir : configfiledir / 'udev', + install_tag : 'udev') endif udev_pc = custom_target( @@ -273,5 +278,5 @@ udev_pc = custom_target( install_dir : pkgconfigdatadir) if install_sysconfdir - install_emptydir(sysconfdir / 'udev/rules.d') + install_emptydir(sysconfdir / 'udev/rules.d', install_tag : 'udev') endif diff --git a/units/meson.build b/units/meson.build index 805991dfe49..caae65fea0f 100644 --- a/units/meson.build +++ b/units/meson.build @@ -102,6 +102,7 @@ units = [ { 'file' : 'initrd-udevadm-cleanup-db.service', 'conditions' : ['ENABLE_INITRD'], + 'install_tag' : 'udev', }, { 'file' : 'initrd-usr-fs.target', @@ -365,6 +366,7 @@ units = [ 'file' : 'systemd-hwdb-update.service.in', 'conditions' : ['ENABLE_HWDB'], 'symlinks' : ['sysinit.target.wants/'], + 'install_tag' : 'hwdb', }, { 'file' : 'systemd-hybrid-sleep.service.in', @@ -718,27 +720,38 @@ units = [ 'conditions' : ['ENABLE_TMPFILES'], 'symlinks' : ['sysinit.target.wants/'], }, - { 'file' : 'systemd-udev-load-credentials.service' }, - { 'file' : 'systemd-udev-settle.service' }, + { + 'file' : 'systemd-udev-load-credentials.service', + 'install_tag' : 'udev', + }, + { + 'file' : 'systemd-udev-settle.service', + 'install_tag' : 'udev', + }, { 'file' : 'systemd-udev-trigger.service', 'symlinks' : ['sysinit.target.wants/'], + 'install_tag' : 'udev', }, { 'file' : 'systemd-udevd-control.socket', 'symlinks' : ['sockets.target.wants/'], + 'install_tag' : 'udev', }, { 'file' : 'systemd-udevd-kernel.socket', 'symlinks' : ['sockets.target.wants/'], + 'install_tag' : 'udev', }, { 'file' : 'systemd-udevd-varlink.socket', 'symlinks' : ['sockets.target.wants/'], + 'install_tag' : 'udev', }, { 'file' : 'systemd-udevd.service.in', 'symlinks' : ['sysinit.target.wants/'], + 'install_tag' : 'udev', }, { 'file' : 'systemd-update-done.service.in', @@ -848,23 +861,27 @@ foreach unit : units output : name, command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'], install : install, - install_dir : systemunitdir) + install_dir : systemunitdir, + install_tag : unit.get('install_tag', '')) elif install install_data(source, - install_dir : systemunitdir) + install_dir : systemunitdir, + install_tag : unit.get('install_tag', '')) endif if install foreach target : unit.get('symlinks', []) if target.endswith('/') - install_emptydir(systemunitdir / target) + install_emptydir(systemunitdir / target, install_tag : unit.get('install_tag', '')) meson.add_install_script(sh, '-c', ln_s.format(systemunitdir / name, - systemunitdir / target / name)) + systemunitdir / target / name), + install_tag : unit.get('install_tag', '')) else meson.add_install_script(sh, '-c', ln_s.format(systemunitdir / name, - systemunitdir / target)) + systemunitdir / target), + install_tag : unit.get('install_tag', '')) endif endforeach endif