From 8fe1b550905c906afa6e8ffd0e1bb93e661763c4 Mon Sep 17 00:00:00 2001 From: artoo Date: Sat, 20 Jun 2026 12:47:27 +0200 Subject: [PATCH] udev standalone install --- meson.build | 13 ++++++---- meson_options.txt | 3 +++ rules.d/meson.build | 4 ++-- shell-completion/bash/meson.build | 40 ------------------------------- shell-completion/zsh/meson.build | 33 ------------------------- src/core/meson.build | 5 ---- src/hwdb/meson.build | 2 +- src/libudev/meson.build | 9 ++++++- src/udev/meson.build | 8 +++---- src/udev/udevd.c | 2 +- test/meson.build | 2 +- 11 files changed, 29 insertions(+), 92 deletions(-) diff --git a/meson.build b/meson.build index ff11c0c10c..172bd1dc96 100644 --- a/meson.build +++ b/meson.build @@ -96,6 +96,7 @@ conf.set10('HAVE_SPLIT_BIN', split_bin, description : 'bin and sbin directories are separate') have_standalone_binaries = get_option('standalone-binaries') +have_standalone_udev = get_option('standalone-udev') conf.set10('CREATE_LOG_DIRS', get_option('create-log-dirs')) @@ -128,7 +129,7 @@ includedir = prefixdir / get_option('includedir') datadir = prefixdir / get_option('datadir') localstatedir = '/' / get_option('localstatedir') -libexecdir = prefixdir / 'lib/systemd' +libexecdir = bindir libexecdir_to_bin = '../../bin/' pkglibdir = libdir / 'systemd' @@ -2465,7 +2466,6 @@ subdir('shell-completion/zsh') subdir('sysctl.d') subdir('sysusers.d') subdir('tmpfiles.d') -subdir('units') install_subdir('factory/etc', install_dir : factorydir) @@ -2487,6 +2487,11 @@ install_data('LICENSE.GPL2', install_subdir('LICENSES', install_dir : docdir) +install_data('LICENSE.GPL2', + 'LICENSE.LGPL2.1', + install_tag : 'udev', + install_dir : datadir / 'doc/udev') + ##################################################################### # Ensure that changes to the docs/ directory do not break the @@ -2700,10 +2705,10 @@ udev_targets = [] foreach bin : udev_binaries udev_targets += executables_by_name.get(bin, []) endforeach -alias_target('udev', buildable_rules, udev_targets, udev_units) +alias_target('udev', buildable_rules, udev_targets) if conf.get('ENABLE_HWDB') == 1 - alias_target('hwdb', auto_suspend_rules, executables_by_name.get('systemd-hwdb'), hwdb_units) + alias_target('hwdb', auto_suspend_rules, executables_by_name.get('udev-hwdb')) endif alt_time_epoch = run_command('date', '-Is', '-u', '-d', f'@@time_epoch@', check : false) diff --git a/meson_options.txt b/meson_options.txt index b5856dd8f8..868048ad7c 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -576,3 +576,6 @@ option('default-mountfsd-trusted-directories', type : 'boolean', value: false, option('default-oci-registry', type : 'string', value : 'docker.io', description : 'Default OCI registry name') + +option('standalone-udev', type : 'boolean', value : false, + description : 'build standalone version of udev') diff --git a/rules.d/meson.build b/rules.d/meson.build index aa469ef7a7..8c56d96b04 100644 --- a/rules.d/meson.build +++ b/rules.d/meson.build @@ -2,7 +2,8 @@ install_data( 'README', - install_dir : udevrulesdir) + install_dir : udevrulesdir, + install_tag : 'udev') rules = [ [files('60-autosuspend.rules', @@ -67,7 +68,6 @@ rules_in = [ ['50-udev-default.rules'], ['60-persistent-storage.rules'], ['64-btrfs.rules'], - ['99-systemd.rules'], ['70-uaccess.rules', conf.get('ENABLE_LOGIND') == 1 and conf.get('HAVE_ACL') == 1], ['71-seat.rules', conf.get('ENABLE_LOGIND') == 1], diff --git a/shell-completion/bash/meson.build b/shell-completion/bash/meson.build index cddf742059..0181111975 100644 --- a/shell-completion/bash/meson.build +++ b/shell-completion/bash/meson.build @@ -20,47 +20,7 @@ custom_target( install_dir : bashcompletiondir) foreach item : [ - ['bootctl', ''], - ['busctl', ''], - ['coredumpctl', 'ENABLE_COREDUMP'], - ['homectl', 'ENABLE_HOMED'], - ['hostnamectl', 'ENABLE_HOSTNAMED'], - ['importctl', 'ENABLE_IMPORTD'], - ['journalctl', ''], - ['kernel-install', 'ENABLE_KERNEL_INSTALL'], - ['localectl', 'ENABLE_LOCALED'], - ['loginctl', 'ENABLE_LOGIND'], - ['machinectl', 'ENABLE_MACHINED'], - ['networkctl', 'ENABLE_NETWORKD'], - ['oomctl', 'ENABLE_OOMD'], - ['portablectl', 'ENABLE_PORTABLED'], - ['resolvectl', 'ENABLE_RESOLVE'], - ['run0', ''], - ['storagectl', ''], - ['systemd-analyze', ''], - ['systemd-cat', ''], - ['systemd-cgls', ''], - ['systemd-cgtop', ''], - ['systemd-confext', 'ENABLE_SYSEXT'], - ['systemd-creds', ''], - ['systemd-cryptenroll', 'HAVE_LIBCRYPTSETUP'], - ['systemd-delta', ''], - ['systemd-detect-virt', ''], - ['systemd-dissect', 'HAVE_BLKID'], - ['systemd-hwdb', 'ENABLE_HWDB'], - ['systemd-id128', ''], - ['systemd-nspawn', 'ENABLE_NSPAWN'], - ['systemd-path', ''], - ['systemd-resolve', 'ENABLE_RESOLVE'], - ['systemd-run', ''], - ['systemd-sysext', 'ENABLE_SYSEXT'], - ['systemd-sysinstall', 'ENABLE_SYSINSTALL'], - ['systemd-vmspawn', 'ENABLE_VMSPAWN'], - ['systemd-vpick', ''], - ['timedatectl', 'ENABLE_TIMEDATED'], ['udevadm', ''], - ['userdbctl', 'ENABLE_USERDB'], - ['varlinkctl', ''], ] if item[1] == '' or conf.get(item[1]) == 1 diff --git a/shell-completion/zsh/meson.build b/shell-completion/zsh/meson.build index f10ba7be61..5758d95479 100644 --- a/shell-completion/zsh/meson.build +++ b/shell-completion/zsh/meson.build @@ -15,40 +15,7 @@ custom_target( install_dir : zshcompletiondir) foreach item : [ - ['_bootctl', ''], - ['_busctl', ''], - ['_coredumpctl', 'ENABLE_COREDUMP'], - ['_hostnamectl', 'ENABLE_HOSTNAMED'], - ['_journalctl', ''], - ['_kernel-install', 'ENABLE_KERNEL_INSTALL'], - ['_localectl', 'ENABLE_LOCALED'], - ['_loginctl', 'ENABLE_LOGIND'], - ['_machinectl', 'ENABLE_MACHINED'], - ['_networkctl', 'ENABLE_NETWORKD'], - ['_oomctl', 'ENABLE_OOMD'], - ['_resolvectl', 'ENABLE_RESOLVE'], - ['_run0', ''], - ['_sd_bus_address', ''], - ['_sd_hosts_or_user_at_host', ''], - ['_sd_machines', 'ENABLE_MACHINED'], - ['_sd_outputmodes', ''], - ['_sd_unit_files', ''], - ['_storagectl', ''], - ['_systemd', ''], - ['_systemd-analyze', ''], - ['_systemd-delta', ''], - ['_systemd-hwdb', 'ENABLE_HWDB'], - ['_systemd-id128', ''], - ['_systemd-inhibit', 'ENABLE_LOGIND'], - ['_systemd-nspawn', ''], - ['_systemd-path', ''], - ['_systemd-run', ''], - ['_systemd-sysinstall', 'ENABLE_SYSINSTALL'], - ['_systemd-tmpfiles', 'ENABLE_TMPFILES'], - ['_timedatectl', 'ENABLE_TIMEDATED'], ['_udevadm', ''], - ['_userdbctl', ''], - ['_varlinkctl', ''], ] if item[1] == '' or conf.get(item[1]) == 1 diff --git a/src/core/meson.build b/src/core/meson.build index af50a2a4fa..c24a37b725 100644 --- a/src/core/meson.build +++ b/src/core/meson.build @@ -304,11 +304,6 @@ if install_sysconfdir install_dir : sysconfdir / 'xdg/systemd') endif -assert(fs.parent(sbindir) / 'lib/systemd' == libexecdir) -install_symlink('init', - pointing_to : '../lib/systemd/systemd', - install_dir : sbindir) - ############################################################ core_test_template = test_template + { diff --git a/src/hwdb/meson.build b/src/hwdb/meson.build index 57ace3ad44..96c0b185d0 100644 --- a/src/hwdb/meson.build +++ b/src/hwdb/meson.build @@ -2,7 +2,7 @@ executables += [ executable_template + { - 'name' : 'systemd-hwdb', + 'name' : 'udev-hwdb', 'public' : true, 'conditions' : ['ENABLE_HWDB'], 'sources' : files('hwdb.c'), diff --git a/src/libudev/meson.build b/src/libudev/meson.build index 854628aed4..ffed0018e6 100644 --- a/src/libudev/meson.build +++ b/src/libudev/meson.build @@ -25,6 +25,13 @@ libudev_sym_path = libudev_dir_path / 'libudev.sym' install_headers('libudev.h') libudev_h_path = libudev_dir_path / 'libudev.h' +if have_standalone_udev + install_data( + libudev_h_path, + install_dir: includedir, + install_tag: 'libudev-devel') +endif + libudev_basic = static_library( 'udev-basic', libudev_sources, @@ -42,5 +49,5 @@ libudev_pc = custom_target( output : 'libudev.pc', command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'], install : pkgconfiglibdir != 'no', - install_tag : 'devel', + install_tag : 'libudev-devel', install_dir : pkgconfiglibdir) diff --git a/src/udev/meson.build b/src/udev/meson.build index 375645e759..ea353f5600 100644 --- a/src/udev/meson.build +++ b/src/udev/meson.build @@ -256,9 +256,9 @@ executables += [ }, ] -install_symlink('systemd-udevd', - pointing_to : libexecdir_to_bin + 'udevadm', - install_dir : libexecdir, +install_symlink('udevd', + pointing_to : bindir / 'udevadm', + install_dir : bindir, install_tag : 'udev') if install_sysconfdir_samples @@ -275,7 +275,7 @@ udev_pc = custom_target( output : 'udev.pc', command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'], install : pkgconfigdatadir != 'no', - install_tag : 'devel', + install_tag : 'udev-devel', install_dir : pkgconfigdatadir) if install_sysconfdir diff --git a/src/udev/udevd.c b/src/udev/udevd.c index 4cbc481c76..ca2e207ead 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c @@ -67,7 +67,7 @@ int run_udevd(int argc, char *argv[]) { if (arg_daemonize) { pid_t pid; - log_info("Starting systemd-udevd version " GIT_VERSION); + log_info("Starting udevd version " GIT_VERSION); /* connect /dev/null to stdin, stdout, stderr */ if (log_get_max_level() < LOG_DEBUG) { diff --git a/test/meson.build b/test/meson.build index fd3dba3a60..8284b24615 100644 --- a/test/meson.build +++ b/test/meson.build @@ -40,7 +40,7 @@ endif ############################################################ if want_tests != 'false' and conf.get('ENABLE_HWDB') == 1 - exe = executables_by_name.get('systemd-hwdb') + exe = executables_by_name.get('udev-hwdb') test('hwdb-test', files('hwdb-test.sh'), suite : 'dist', -- 2.54.0