diff --git a/pkg.info b/pkg.info index 5ba29f3..7e08980 100644 --- a/pkg.info +++ b/pkg.info @@ -1,27 +1,43 @@ name: udev description: Userspace device file manager -version: "258.1" +version: "258.2" revision: 1 url: https://github.com/systemd/systemd license: GPL-2.0-or-later,LGPL-2.1-or-later architecture: any type: source -depends: +make_depends: - acl - - bash - - gcc-libs - - glibc + - bash-completion + - docbook-xsl-nons + - gperf - hwdata + - intltool - kbd - kmod - - libcap - - util-linux -make_depends: - - gperf + - libxcrypt - meson - python-jinja + - rsync + - util-linux downloads: - url: https://github.com/systemd/systemd/archive/v${BPM_PKG_VERSION}/systemd-${BPM_PKG_VERSION}.tar.gz extract_to: ${BPM_SOURCE} extract_strip_components: 1 - checksum: 8eb34eaf2f78330217280bd7a923578f37e28d3f3ac5168e336ebc9cad84a34d + checksum: 05208e76bf1f9b369b1a8159e6631ef67c82f2d27c21e931962026a79bf4ba64 +split_packages: + - name: udev + depends: + - acl + - bash + - hwdata + - kbd + - kmod + - libudev + - util-linux + - name: libudev + description: Udev library for enumerating and introspecting local devices + depends: + - gcc-libs + - glibc + - libcap diff --git a/source-files/artix-standalone-install.patch b/source-files/artix-standalone-install.patch new file mode 100644 index 0000000..c0bee8d --- /dev/null +++ b/source-files/artix-standalone-install.patch @@ -0,0 +1,475 @@ +From 1b6f23440c6f3e5888cce8874a388bad5a002a7c Mon Sep 17 00:00:00 2001 +From: artoo +Date: Mon, 10 Nov 2025 15:19:15 +0100 +Subject: [PATCH 1/1] artix standalone install + +--- + factory/templates/meson.build | 2 ++ + meson.build | 22 +++++++++++++---- + rules.d/meson.build | 3 +-- + shell-completion/bash/meson.build | 39 ++----------------------------- + shell-completion/zsh/meson.build | 31 ++---------------------- + src/core/meson.build | 5 ---- + src/hwdb/meson.build | 2 +- + src/libudev/meson.build | 9 ++++++- + src/sysusers/meson.build | 3 ++- + src/tmpfiles/meson.build | 3 ++- + src/udev/meson.build | 8 +++---- + src/udev/udevd.c | 2 +- + sysusers.d/meson.build | 4 ++-- + test/meson.build | 6 ++--- + tmpfiles.d/legacy.conf.in | 3 --- + tmpfiles.d/meson.build | 9 +++---- + 16 files changed, 51 insertions(+), 100 deletions(-) + +diff --git a/factory/templates/meson.build b/factory/templates/meson.build +index 3db9f255b9..e54c0c3f3b 100644 +--- a/factory/templates/meson.build ++++ b/factory/templates/meson.build +@@ -7,6 +7,7 @@ custom_target( + output : 'locale.conf', + command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'], + install : true, ++ install_tag : 'etmpfiles', + install_dir : factory_etc_dir) + + custom_target( +@@ -14,4 +15,5 @@ custom_target( + output : 'vconsole.conf', + command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'], + install : true, ++ install_tag : 'etmpfiles', + install_dir : factory_etc_dir) +diff --git a/meson.build b/meson.build +index 238b935372..2014e1e8ee 100644 +--- a/meson.build ++++ b/meson.build +@@ -132,7 +132,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' + +@@ -2769,7 +2769,6 @@ subdir('shell-completion/zsh') + subdir('sysctl.d') + subdir('sysusers.d') + subdir('tmpfiles.d') +-subdir('units') + + install_subdir('factory/etc', + install_dir : factorydir) +@@ -2791,6 +2790,21 @@ 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') ++ ++install_data('LICENSE.GPL2', ++ 'LICENSE.LGPL2.1', ++ install_tag : 'etmpfiles', ++ install_dir : datadir / 'doc/etmpfiles') ++ ++install_data('LICENSE.GPL2', ++ 'LICENSE.LGPL2.1', ++ install_tag : 'esysusers', ++ install_dir : datadir / 'doc/esysusers') ++ + install_emptydir(systemdstatedir) + + ##################################################################### +@@ -2946,10 +2960,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', '@@0@'.format(time_epoch), +diff --git a/rules.d/meson.build b/rules.d/meson.build +index 933a84859a..8e190a834a 100644 +--- a/rules.d/meson.build ++++ b/rules.d/meson.build +@@ -2,7 +2,7 @@ + + install_data( + 'README', +- install_dir : udevrulesdir) ++ install_dir : udevrulesdir, install_tag : 'udev') + + rules = [ + [files('60-autosuspend.rules', +@@ -63,7 +63,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 6a547a5e69..67ef541aae 100644 +--- a/shell-completion/bash/meson.build ++++ b/shell-completion/bash/meson.build +@@ -17,47 +17,12 @@ custom_target( + install : bashcompletiondir != 'no', + install_dir : bashcompletiondir) + +-items = [['busctl', ''], +- ['journalctl', ''], +- ['systemd-analyze', ''], +- ['systemd-cat', ''], +- ['systemd-cgls', ''], +- ['systemd-cgtop', ''], +- ['systemd-creds', ''], +- ['systemd-delta', ''], +- ['systemd-detect-virt', ''], +- ['systemd-id128', ''], +- ['systemd-nspawn', 'ENABLE_NSPAWN'], +- ['systemd-path', ''], +- ['systemd-run', ''], +- ['systemd-vpick', ''], +- ['udevadm', ''], +- ['bootctl', ''], +- ['run0', ''], +- ['coredumpctl', 'ENABLE_COREDUMP'], +- ['homectl', 'ENABLE_HOMED'], +- ['hostnamectl', 'ENABLE_HOSTNAMED'], +- ['importctl', 'ENABLE_IMPORTD'], +- ['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'], +- ['systemd-cryptenroll', 'HAVE_LIBCRYPTSETUP'], +- ['systemd-confext', 'ENABLE_SYSEXT'], +- ['systemd-dissect', 'HAVE_BLKID'], +- ['systemd-resolve', 'ENABLE_RESOLVE'], +- ['systemd-sysext', 'ENABLE_SYSEXT'], +- ['systemd-vmspawn', 'ENABLE_VMSPAWN'], +- ['timedatectl', 'ENABLE_TIMEDATED'], +- ['userdbctl', 'ENABLE_USERDB']] ++items = [['udevadm', '']] + + foreach item : items + if bashcompletiondir != 'no' and (item[1] == '' or conf.get(item[1]) == 1) + install_data(item[0], ++ install_tag : 'udev', + install_dir : bashcompletiondir) + endif + endforeach +diff --git a/shell-completion/zsh/meson.build b/shell-completion/zsh/meson.build +index 4de28388ce..63ad624af5 100644 +--- a/shell-completion/zsh/meson.build ++++ b/shell-completion/zsh/meson.build +@@ -12,39 +12,12 @@ custom_target( + install : zshcompletiondir != 'no', + install_dir : zshcompletiondir) + +-items = [['_busctl', ''], +- ['_journalctl', ''], +- ['_systemd-analyze', ''], +- ['_systemd-delta', ''], +- ['_systemd-nspawn', ''], +- ['_systemd', ''], +- ['_systemd-path', ''], +- ['_systemd-run', ''], +- ['_run0', ''], +- ['_udevadm', ''], +- ['_varlinkctl', ''], +- ['_kernel-install', 'ENABLE_KERNEL_INSTALL'], +- ['_sd_bus_address', ''], +- ['_sd_hosts_or_user_at_host', ''], +- ['_sd_outputmodes', ''], +- ['_sd_unit_files', ''], +- ['_sd_machines', ''], +- ['_bootctl', ''], +- ['_coredumpctl', 'ENABLE_COREDUMP'], +- ['_hostnamectl', 'ENABLE_HOSTNAMED'], +- ['_localectl', 'ENABLE_LOCALED'], +- ['_loginctl', 'ENABLE_LOGIND'], +- ['_machinectl', 'ENABLE_MACHINED'], +- ['_networkctl', 'ENABLE_NETWORKD'], +- ['_oomctl', 'ENABLE_OOMD'], +- ['_systemd-inhibit', 'ENABLE_LOGIND'], +- ['_resolvectl', 'ENABLE_RESOLVE'], +- ['_systemd-tmpfiles', 'ENABLE_TMPFILES'], +- ['_timedatectl', 'ENABLE_TIMEDATED']] ++items = [['_udevadm', '']] + + foreach item : items + if zshcompletiondir != 'no' and (item[1] == '' or conf.get(item[1]) == 1) + install_data(item[0], ++ install_tag : 'udev', + install_dir : zshcompletiondir) + endif + endforeach +diff --git a/src/core/meson.build b/src/core/meson.build +index 8bb0054c14..7ef92ca00b 100644 +--- a/src/core/meson.build ++++ b/src/core/meson.build +@@ -288,11 +288,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 eb9dda79ae..e45d25c71b 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_binaries ++ 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/sysusers/meson.build b/src/sysusers/meson.build +index e2e82889e7..2c184f8350 100644 +--- a/src/sysusers/meson.build ++++ b/src/sysusers/meson.build +@@ -12,10 +12,11 @@ executables += [ + 'dependencies' : libaudit, + }, + executable_template + { +- 'name' : 'systemd-sysusers.standalone', ++ 'name' : 'esysusers', + 'public' : true, + 'sources' : files('sysusers.c'), + 'c_args' : '-DSTANDALONE', ++ 'install_tag' : 'esysusers', + 'link_with' : [ + libc_wrapper_static, + libbasic_static, +diff --git a/src/tmpfiles/meson.build b/src/tmpfiles/meson.build +index a973d16f5c..195b0f7456 100644 +--- a/src/tmpfiles/meson.build ++++ b/src/tmpfiles/meson.build +@@ -20,10 +20,11 @@ executables += [ + 'dependencies' : libacl, + }, + executable_template + { +- 'name' : 'systemd-tmpfiles.standalone', ++ 'name' : 'etmpfiles', + 'public' : true, + 'sources' : systemd_tmpfiles_sources + systemd_tmpfiles_extract_sources, + 'c_args' : '-DSTANDALONE', ++ 'install_tag' : 'etmpfiles', + 'link_with' : [ + libc_wrapper_static, + libbasic_static, +diff --git a/src/udev/meson.build b/src/udev/meson.build +index 908bec8b1d..d6fa6529d8 100644 +--- a/src/udev/meson.build ++++ b/src/udev/meson.build +@@ -257,9 +257,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 +@@ -276,7 +276,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 fd16654127..5cbbd8a8f5 100644 +--- a/src/udev/udevd.c ++++ b/src/udev/udevd.c +@@ -55,7 +55,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/sysusers.d/meson.build b/sysusers.d/meson.build +index 84fadfe3f7..22dfd09c05 100644 +--- a/sysusers.d/meson.build ++++ b/sysusers.d/meson.build +@@ -7,12 +7,11 @@ files = [['README', true], + + foreach tuple : files + if enable_sysusers and tuple[1] +- install_data(tuple[0], install_dir : sysusersdir) ++ install_data(tuple[0], install_dir : sysusersdir, install_tag : 'esysusers') + endif + endforeach + + in_files = [['basic.conf', true], +- ['systemd-journal.conf', true], + ['systemd-network.conf', conf.get('ENABLE_NETWORKD') == 1], + ['systemd-resolve.conf', conf.get('ENABLE_RESOLVE') == 1], + ['systemd-timesync.conf', conf.get('ENABLE_TIMESYNCD') == 1]] +@@ -24,5 +23,6 @@ foreach tuple : in_files + output: file, + command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'], + install : enable_sysusers and tuple[1], ++ install_tag : 'esysusers', + install_dir : sysusersdir) + endforeach +diff --git a/test/meson.build b/test/meson.build +index 4cdd2f4303..7af045afb2 100644 +--- a/test/meson.build ++++ b/test/meson.build +@@ -16,7 +16,7 @@ if conf.get('ENABLE_SYSUSERS') == 1 + suite : 'sysusers') + + if have_standalone_binaries +- exe = executables_by_name.get('systemd-sysusers.standalone') ++ exe = executables_by_name.get('esysusers') + test('test-sysusers.standalone', + test_sysusers_sh, + # https://github.com/mesonbuild/meson/issues/2681 +@@ -38,7 +38,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', +@@ -94,7 +94,7 @@ if want_tests != 'false' and conf.get('ENABLE_TMPFILES') == 1 + suite : 'tmpfiles') + + if have_standalone_binaries +- exe = executables_by_name.get('systemd-tmpfiles.standalone') ++ exe = executables_by_name.get('etmpfiles') + test('test-systemd-tmpfiles.standalone', + test_systemd_tmpfiles_py, + args : exe.full_path(), +diff --git a/tmpfiles.d/legacy.conf.in b/tmpfiles.d/legacy.conf.in +index cdef21fa9b..03798c953e 100644 +--- a/tmpfiles.d/legacy.conf.in ++++ b/tmpfiles.d/legacy.conf.in +@@ -13,9 +13,6 @@ + + d /run/lock 0755 root root - + L /var/lock - - - - ../run/lock +-{% if CREATE_LOG_DIRS %} +-L$ /var/log/README - - - - ../..{{DOC_DIR}}/README.logs +-{% endif %} + + {% if HAVE_SYSV_COMPAT %} + # /run/lock/subsys is used for serializing SysV service execution, and +diff --git a/tmpfiles.d/meson.build b/tmpfiles.d/meson.build +index 203eb7bb55..0c689008e9 100644 +--- a/tmpfiles.d/meson.build ++++ b/tmpfiles.d/meson.build +@@ -6,14 +6,12 @@ endif + + files = [['README'], + ['home.conf'], +- ['journal-nocow.conf'], + ['portables.conf', 'ENABLE_PORTABLED'], + ['systemd-network.conf', 'ENABLE_NETWORKD'], + ['systemd-nologin.conf', 'HAVE_PAM'], + ['systemd-nspawn.conf', 'ENABLE_MACHINED'], + ['systemd-pstore.conf', 'ENABLE_PSTORE'], + ['systemd-resolve.conf', 'ENABLE_RESOLVE'], +- ['systemd-tmp.conf'], + ['tmp.conf'], + ['x11.conf'], + ['provision.conf'], +@@ -22,7 +20,7 @@ files = [['README'], + + foreach f : files + if f.length() == 1 or conf.get(f[1]) == 1 +- install_data(f[0], install_dir : tmpfilesdir) ++ install_data(f[0], install_dir : tmpfilesdir, install_tag : 'etmpfiles') + else + message('Not installing tmpfiles.d/@0@ because @1@ is @2@' + .format(f[0], f[1], conf.get(f[1], 0))) +@@ -33,12 +31,10 @@ in_files = [ + ['20-systemd-shell-extra.conf', 'LINK_SHELL_EXTRA_DROPIN'], + ['20-systemd-osc-context.conf', 'LINK_OSC_CONTEXT_DROPIN'], + ['20-systemd-ssh-generator.conf', 'ENABLE_SSH_PROXY_CONFIG'], +- ['20-systemd-stub.conf', 'ENABLE_EFI'], + ['20-systemd-userdb.conf', 'ENABLE_SSH_USERDB_CONFIG'], + ['etc.conf'], + ['legacy.conf'], + ['static-nodes-permissions.conf'], +- ['systemd.conf'], + ['var.conf'], + ] + +@@ -49,6 +45,7 @@ foreach f : in_files + output: f[0], + command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'], + install : true, ++ install_tag : 'etmpfiles', + install_dir : tmpfilesdir) + else + message('Not installing tmpfiles.d/@0@ because @1@ is @2@' +@@ -57,5 +54,5 @@ foreach f : in_files + endforeach + + if install_sysconfdir +- install_emptydir(sysconfdir / 'tmpfiles.d') ++ install_emptydir(sysconfdir / 'tmpfiles.d', install_tag : 'etmpfiles') + endif +-- +2.51.2 + diff --git a/source.sh b/source.sh index b6c1ff2..c27e4af 100644 --- a/source.sh +++ b/source.sh @@ -2,57 +2,175 @@ # BPM Expects the source code to be extracted into the automatically created 'source' directory which can be accessed using $BPM_SOURCE # BPM Expects the output files to be present in the automatically created 'output' directory which can be accessed using $BPM_OUTPUT +# The prepare function is executed in the root of the temp directory +# This function is used for putting downloaded files to the correct location or applying patches +prepare() { + cd "$BPM_SOURCE" + patch -Np1 -i "$BPM_WORKDIR"/artix-standalone-install.patch +} + # The build function is executed in the source directory # This function is used to compile the source code build() { + # Replace 'render' group with 'video' and remove 'sgx' group from default udev rules sed -i -e 's/GROUP="render"/GROUP="video"/' -e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in - sed '/systemd-sysctl/s/^/#/' -i rules.d/99-systemd.rules.in - sed '/NETWORK_DIRS/s/systemd/udev/' -i src/libsystemd/sd-network/network-util.h - mkdir build - cd build - - meson setup --prefix=/usr \ - --buildtype=release \ - -Dmode=release \ - -Ddev-kvm-mode=0660 \ + meson setup --prefix=/usr \ + --buildtype=release \ + -Dmode=release \ + -Dsbat-distro='tide' \ + -Dsbat-distro-summary='Tide Linux' \ + -Dsbat-distro-pkgname='udev' \ + -Dsbat-distro-version="${BPM_PKG_VERSION}" \ -Dlink-udev-shared=false \ - -Dlogind=false \ - -Dvconsole=false .. \ + -Dlink-boot-shared=false \ + -Dsysusers=false \ + -Dtmpfiles=false \ + -Dblkid=enabled \ + -Dkmod=enabled \ + -Dgshadow=false \ + -Ddefault-keymap='us' \ + -Dman=enabled \ + -Dhtml=disabled \ + -Ddns-servers='' \ + -Dntp-servers='' \ + -Defi=false \ + -Dbootloader=disabled \ + -Dkernel-install=false \ + -Dukify=disabled \ + -Dsysvinit-path= \ + -Dsysvrcnd-path= \ + -Ddefault-dnssec=no \ + -Ddefault-llmnr=no \ + -Ddefault-mdns=no \ + -Dsshconfdir=no \ + -Dadm-group=false \ + -Danalyze=false \ + -Dapparmor=disabled \ + -Daudit=disabled \ + -Dbacklight=false \ + -Dbinfmt=false \ + -Dbzip2=disabled \ + -Dcoredump=false \ + -Ddbus=disabled \ + -Delfutils=disabled \ + -Denvironment-d=false \ + -Dfdisk=disabled \ + -Dgcrypt=disabled \ + -Dglib=disabled \ + -Dgnutls=disabled \ + -Dhibernate=false \ + -Dhostnamed=false \ + -Didn=false \ + -Dima=false \ + -Dinitrd=false \ + -Dfirstboot=false \ + -Dldconfig=false \ + -Dlibcryptsetup=disabled \ + -Dlibcurl=disabled \ + -Dlibfido2=disabled \ + -Dlibidn=disabled \ + -Dlibidn2=disabled \ + -Dlibiptc=disabled \ + -Dlocaled=false \ + -Dlogind=false \ + -Dlz4=disabled \ + -Dmachined=false \ + -Dmicrohttpd=disabled \ + -Dnetworkd=false \ + -Dnss-myhostname=false \ + -Dnss-resolve=disabled \ + -Dnss-systemd=false \ + -Doomd=false \ + -Dopenssl=disabled \ + -Dp11kit=disabled \ + -Dpam=disabled \ + -Dpcre2=disabled \ + -Dpolkit=disabled \ + -Dportabled=false \ + -Dpstore=false \ + -Dpwquality=disabled \ + -Drandomseed=false \ + -Dresolve=false \ + -Drfkill=false \ + -Dseccomp=disabled \ + -Dsmack=false \ + -Dstoragetm=false \ + -Dsysext=false \ + -Dtimedated=false \ + -Dtimesyncd=false \ + -Dtpm=false \ + -Dqrencode=disabled \ + -Dquotacheck=false \ + -Duserdb=false \ + -Dutmp=false \ + -Dvconsole=false \ + -Dvmspawn=disabled \ + -Dwheel-group=false \ + -Dxdg-autostart=false \ + -Dxkbcommon=disabled \ + -Dxz=disabled \ + -Dzlib=disabled \ + -Dzstd=disabled \ + -Dbpf-framework=disabled \ + -Dpasswdqc=disabled \ + -Dselinux=disabled \ + -Dxenctrl=disabled \ + -Dlibcryptsetup-plugins=disabled \ + -Drepart=disabled \ + -Dsysupdate=disabled \ + -Dimportd=disabled \ + -Dhomed=disabled \ + -Dremote=disabled \ + -Dnss-mymachines=disabled \ + -Dtpm2=disabled \ + -Dshellprofiledir=no \ + build - export udev_helpers=$(grep "'name' :" ../src/udev/meson.build | awk '{print $3}' | tr -d ",'" | grep -v 'udevadm') - ninja udevadm systemd-hwdb \ - $(ninja -n | grep -Eo '(src/(lib)?udev|rules.d|hwdb.d)/[^ ]*') \ - $(realpath libudev.so --relative-to .) \ - $udev_helpers + local targets=( + udev:shared_library + src/libudev/libudev.pc + + udevadm + {ata_id,cdrom_id,dmi_memory_id,fido_id,iocost,mtd_probe,scsi_id,v4l_id} + rules.d/{50-udev-default,60-persistent-storage,64-btrfs}.rules + udev-hwdb + hwdb.d/60-autosuspend-chromiumos.hwdb + src/udev/udev.pc + man/{libudev.3,udev.conf.5,hwdb.7,udev.7,udevadm.8,iocost.conf.5,systemd-hwdb.8} + ) + meson compile -C build "${targets[@]}" } # The package function is executed in the source directory # This function is used to move the compiled files into the output directory -package() { - cd build - - export udev_helpers=$(grep "'name' :" ../src/udev/meson.build | awk '{print $3}' | tr -d ",'" | grep -v 'udevadm') +package_udev() { + meson install -C build --destdir="$BPM_OUTPUT" --no-rebuild --tags udev,udev-devel,hwdb - install -dm644 "$BPM_OUTPUT"/usr/{bin,sbin,lib,include} - install -dm644 "$BPM_OUTPUT"/usr/{lib,share}/pkgconfig - install -m755 -d "$BPM_OUTPUT"/{usr/lib,etc}/udev/{hwdb.d,rules.d,network} - install -m755 -d "$BPM_OUTPUT"/usr/{lib,share}/pkgconfig - install -m755 udevadm "$BPM_OUTPUT"/usr/bin/ - install -m755 systemd-hwdb "$BPM_OUTPUT"/usr/bin/udev-hwdb - ln -sfn ../bin/udevadm "$BPM_OUTPUT"/usr/sbin/udevd - cp -a libudev.so{,*[0-9]} "$BPM_OUTPUT"/usr/lib/ - install -m644 ../src/libudev/libudev.h "$BPM_OUTPUT"/usr/include/ - install -m644 src/libudev/*.pc "$BPM_OUTPUT"/usr/lib/pkgconfig/ - install -m644 src/udev/*.pc "$BPM_OUTPUT"/usr/share/pkgconfig/ - install -m644 ../src/udev/udev.conf "$BPM_OUTPUT"/etc/udev/ - install -m644 rules.d/* ../rules.d/README "$BPM_OUTPUT"/usr/lib/udev/rules.d/ - install -m644 $(find ../rules.d/*.rules -not -name '*power-switch*') "$BPM_OUTPUT"/usr/lib/udev/rules.d/ - install -m644 hwdb.d/* ../hwdb.d/{*.hwdb,README} "$BPM_OUTPUT"/usr/lib/udev/hwdb.d/ - install -m755 $udev_helpers "$BPM_OUTPUT"/usr/lib/udev - install -m644 ../network/99-default.link "$BPM_OUTPUT"/usr/lib/udev/network + # Install man pages + for manpage in udev.conf.5 iocost.conf.5 udev.7 udevadm.8; do + x=${manpage##*.} + install -Dm644 build/man/"$manpage" -t "$BPM_OUTPUT"/usr/share/man/man$x/ + done + install -Dm644 build/man/systemd-hwdb.8 "$BPM_OUTPUT"/usr/share/man/man8/udev-hwdb.8 + + # Install esvm service install -Dm644 "$BPM_WORKDIR"/udevd.esv "$BPM_OUTPUT"/etc/esvm/services/udevd.esv install -Dm755 "$BPM_WORKDIR"/udevd.sh "$BPM_OUTPUT"/etc/esvm/scripts/udevd.sh + + # Install BPM hook install -Dm644 "$BPM_WORKDIR"/udev-hwdb.bpmhook "$BPM_OUTPUT"/var/lib/bpm/hooks/udev-hwdb.bpmhook - install -Dm644 ../LICENSE.{GPL2,LGPL2.1} -t "$BPM_OUTPUT"/usr/share/licenses/udev/ + + # Install package license + install -Dm644 "$BPM_SOURCE"/LICENSE.{GPL2,LGPL2.1} -t "$BPM_OUTPUT"/usr/share/licenses/udev/ +} + +package_libudev() { + meson install -C build --destdir="$BPM_OUTPUT" --no-rebuild --tags libudev,libudev-devel + + # Install man page + install -Dm644 build/man/libudev.3 -t "$BPM_OUTPUT"/usr/share/man/man3/ + + # Install package license + install -Dm644 "$BPM_SOURCE"/LICENSE.{GPL2,LGPL2.1} -t "$BPM_OUTPUT"/usr/share/licenses/udev/ }