/
githubmirror
/
fwupd
Обзор
Документация
Войти
/
githubmirror
/
fwupd
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.0.21
data/meson.build
222 строки
6 KB
shuihan-001
build: Add support for ttyUSB device in fwupd.service file
17 июн 2026, 10:02
17 июн 2026, 10:02
fc34d68
Код
Авторство
О чём код?
subdir('bios-settings.d') subdir('pki') subdir('remotes.d') subdir('icons') if get_option('bash_completion') subdir('bash-completion') endif if get_option('fish_completion') subdir('fish-completion') endif if get_option('tests') subdir('device-tests') endif if build_daemon subdir('motd') endif if get_option('tests') if build_daemon subdir('tests') endif endif if build_standalone install_data( ['fwupd.conf'], install_tag: 'runtime', install_dir: join_paths(sysconfdir, 'fwupd'), install_mode: 'rw-r-----', ) plugin_quirks += files('cfi.quirk', 'ds20.quirk', 'power.quirk', 'vendors.quirk') endif if get_option('metainfo') custom_target( 'metainfo', input: 'org.freedesktop.fwupd.metainfo.xml', output: 'org.freedesktop.fwupd.metainfo.xml', command: [generate_metainfo, '@INPUT@', '@OUTPUT@'], install: true, install_tag: 'doc', install_dir: join_paths(datadir, 'metainfo'), ) install_data( ['org.freedesktop.fwupd.svg'], install_tag: 'doc', install_dir: join_paths(datadir, 'icons', 'hicolor', 'scalable', 'apps'), ) endif if build_daemon install_data( ['org.freedesktop.fwupd.conf'], install_tag: 'runtime', install_dir: join_paths(datadir, 'dbus-1', 'system.d'), ) build_conf = configuration_data() build_conf.set('libexecdir', libexecdir) if libsystemd.found() build_conf.set('bindir', bindir) build_conf.set('datadir', datadir) build_conf.set('localstatedir', localstatedir) build_conf.set('systemd_service', 'SystemdService=fwupd.service') rw_directories = [] if allow_uefi rw_directories += [ '-/boot/efi', '-/boot/EFI', '-/boot/grub', '-/efi/EFI', '-/sys/firmware/efi/efivars', ] endif # not using ConfigurationDirectory further down if get_option('prefix') != '/usr' rw_directories += join_paths(sysconfdir, 'fwupd') endif dynamic_options = [] dynamic_options += ['ReadWritePaths=' + ' '.join(rw_directories)] #pull configuration/cache/state from /etc and /var only if prefix is /usr if get_option('prefix') == '/usr' dynamic_options += 'ConfigurationDirectory=fwupd' dynamic_options += 'StateDirectory=fwupd' dynamic_options += 'CacheDirectory=fwupd' endif device_allows = [ 'block-sd', 'block-sr', 'char-aux', 'char-cpu/*', 'char-drm', 'char-gpiochip', 'char-hidraw', 'char-mei', 'char-mtd', 'char-tpm', 'char-usb', 'char-usb_device', ] if allow_flashrom device_allows += ['char-mem'] endif if cc.has_header( 'linux/nvme_ioctl.h', required: false, ) device_allows += ['char-nvme'] endif if allow_uefi # for BLKSSZGET device_allows += ['block-blkext'] endif if get_option('plugin_modem_manager').allowed() device_allows += ['char-wwan_port'] device_allows += ['char-ttyUSB'] endif foreach device_allow : device_allows dynamic_options += ['DeviceAllow=' + device_allow + ' rw'] endforeach # allow-list, see `systemd-analyze syscall-filter` for what each group adds syscall_filter = [ '@basic-io', '@file-system', '@io-event', '@ipc', '@network-io', '@process', '@sync', '@signal', # for g_local_file_monitor_new '@timer', # for usbi_create_timer '@chown', # for sqlite3Step 'ioctl', 'uname', 'fadvise64', 'sysinfo', # for sysconf 'madvise', # for mtrim 'mremap', # for g_realloc 'splice', 'vmsplice', 'copy_file_range', # for g_file_copy ] if allow_flashrom syscall_filter += ['@raw-io'] endif dynamic_options += ['SystemCallFilter=' + ' '.join(syscall_filter)] if supported_build dynamic_options += ['Environment="FWUPD_SYSCALL_FILTER=systemd"'] dynamic_options += ['SystemCallErrorNumber=EPERM'] else # to debug what additional syscalls are required, we set SystemCallErrorNumber=SIGSYS # and then can do `coredumpctl debug` and get the syscall number with `(gdb) p $rax` dynamic_options += ['SystemCallErrorNumber=SIGSYS'] endif if not supported_build dynamic_options += ['Environment="G_DEBUG=fatal-criticals"'] endif build_conf.set('dynamic_options', '\n'.join(dynamic_options)) build_conf.set('motd_dir', motd_dir) # replace @dynamic_options@ configure_file( input: 'fwupd.service.in', output: 'fwupd.service', configuration: build_conf, install: true, install_tag: 'runtime', install_dir: systemdunitdir, ) # for various plugins install_data( ['fwupd-i2c.conf'], install_tag: 'runtime', install_dir: systemd_modules_load_dir, ) # for activation configure_file( input: 'fwupd.shutdown.in', output: 'fwupd.shutdown', configuration: build_conf, install: true, install_tag: 'runtime', install_dir: systemd_shutdown_dir, ) else build_conf.set('systemd_service', '') endif configure_file( input: 'org.freedesktop.fwupd.service.in', output: 'org.freedesktop.fwupd.service', configuration: build_conf, install: true, install_tag: 'runtime', install_dir: join_paths(datadir, 'dbus-1', 'system-services'), ) if launchctl.found() con2 = configuration_data() con2.set('libexecdir', libexecdir) con2.set('dbus_socket_address', get_option('dbus_socket_address')) configure_file( input: 'org.freedesktop.fwupd.plist', output: 'org.freedesktop.fwupd.plist', configuration: con2, install_tag: 'runtime', install_dir: get_option('launchd_agent_dir'), ) endif endif