systemd: base "ListenStream" on build options

Make `mpd.socket` configurable based on build options, so that e.g.
`ListenStream=6600` is not added if `tcp` option is not enabled.
This commit is contained in:
naglis 2023-09-15 22:04:38 +03:00
parent 9bb67ae7f0
commit df069bc456
4 changed files with 19 additions and 7 deletions

View File

@ -1,5 +1,15 @@
systemd_unit_conf = configuration_data() systemd_unit_conf = configuration_data()
systemd_unit_conf.set('prefix', get_option('prefix')) systemd_unit_conf.set('prefix', get_option('prefix'))
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('system')
subdir('user') 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') systemd_system_unit_dir = join_paths(get_option('prefix'), 'lib', 'systemd', 'system')
endif endif
install_data( configure_file(
'mpd.socket', input: 'mpd.socket.in',
output: 'mpd.socket',
configuration: systemd_socket_conf,
install_dir: systemd_system_unit_dir, install_dir: systemd_system_unit_dir,
) )

View File

@ -1,6 +1,5 @@
[Socket] [Socket]
ListenStream=%t/mpd/socket @listen_streams@
ListenStream=6600
Backlog=5 Backlog=5
KeepAlive=true KeepAlive=true
PassCredentials=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') systemd_user_unit_dir = join_paths(get_option('prefix'), 'lib', 'systemd', 'user')
endif endif
# copy the system socket unit to the "user" directory configure_file(
install_data( input: join_paths('..', 'system', 'mpd.socket.in'),
join_paths('..', 'system', 'mpd.socket'), output: 'mpd.socket',
configuration: systemd_socket_conf,
install_dir: systemd_user_unit_dir, install_dir: systemd_user_unit_dir,
) )