Merge branch 'configure-systemd-units-based-on-build-options' of https://github.com/naglis/MPD

This commit is contained in:
Max Kellermann 2023-11-02 10:43:02 +01:00
commit 65a3062f45
6 changed files with 28 additions and 11 deletions

View File

@ -1,5 +1,22 @@
systemd_unit_conf = configuration_data()
systemd_unit_conf.set('prefix', get_option('prefix'))
address_families = ['AF_INET', 'AF_INET6', 'AF_UNIX']
if get_option('smbclient').enabled()
# AF_NETLINK is required by libsmbclient, or it will exit() .. *sigh*
address_families += 'AF_NETLINK'
endif
systemd_unit_conf.set('address_families', ' '.join(address_families))
systemd_socket_conf = configuration_data()
listen_streams = []
if get_option('local_socket')
listen_streams += 'ListenStream=%t/mpd/socket'
endif
if get_option('tcp')
listen_streams += 'ListenStream=6600'
endif
systemd_socket_conf.set('listen_streams', '\n'.join(listen_streams))
subdir('system')
subdir('user')

View File

@ -12,8 +12,10 @@ if systemd_system_unit_dir == ''
systemd_system_unit_dir = join_paths(get_option('prefix'), 'lib', 'systemd', 'system')
endif
install_data(
'mpd.socket',
configure_file(
input: 'mpd.socket.in',
output: 'mpd.socket',
configuration: systemd_socket_conf,
install_dir: systemd_system_unit_dir,
)

View File

@ -27,8 +27,7 @@ NoNewPrivileges=yes
ProtectKernelTunables=yes
ProtectControlGroups=yes
ProtectKernelModules=yes
# AF_NETLINK is required by libsmbclient, or it will exit() .. *sigh*
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX AF_NETLINK
RestrictAddressFamilies=@address_families@
RestrictNamespaces=yes
[Install]

View File

@ -1,6 +1,5 @@
[Socket]
ListenStream=%t/mpd/socket
ListenStream=6600
@listen_streams@
Backlog=5
KeepAlive=true
PassCredentials=true

View File

@ -12,9 +12,10 @@ if systemd_user_unit_dir == ''
systemd_user_unit_dir = join_paths(get_option('prefix'), 'lib', 'systemd', 'user')
endif
# copy the system socket unit to the "user" directory
install_data(
join_paths('..', 'system', 'mpd.socket'),
configure_file(
input: join_paths('..', 'system', 'mpd.socket.in'),
output: 'mpd.socket',
configuration: systemd_socket_conf,
install_dir: systemd_user_unit_dir,
)

View File

@ -28,8 +28,7 @@ ProtectSystem=yes
NoNewPrivileges=yes
ProtectKernelTunables=yes
ProtectControlGroups=yes
# AF_NETLINK is required by libsmbclient, or it will exit() .. *sigh*
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX AF_NETLINK
RestrictAddressFamilies=@address_families@
RestrictNamespaces=yes
# Note that "ProtectKernelModules=yes" is missing in the user unit