diff options
author | Mike Gilbert <floppymaster@gmail.com> | 2018-01-04 07:14:20 -0500 |
---|---|---|
committer | Sven Eden <yamakuzure@gmx.net> | 2018-05-30 07:49:49 +0200 |
commit | 58a14cca587139fc8992631844e7e062b9c77386 (patch) | |
tree | 1a12c115f0d6760d2a8f436cf83160bb432e4e58 /meson.build | |
parent | e3be95f4c8e19c644a6da25d3f0a085905a2fa6f (diff) |
meson: don't search PATH for telinit (#7770)
On a typical system running systemd, the telinit in PATH is very likely to be a symlink
to systemctl. Setting TELINIT to this may result in an infinite recursion if telinit is called
and sd_booted() == 0. This may commonly occur in a chroot environment.
Bug: https://bugs.gentoo.org/642724
[zj:
The path was originally hardcoded as "/lib/upstart/telinit", but was made configurable without
changing the default in 4ad61fd1806dde23d2c99043b4bed91a196d2c82. Then the default was
changed to `/lib/sysvinit/telinit` in abaaabf40a9891014ed4c402d7beb5a67ac256b1. Then it
started being autodetected when meson support was added in
5c23128daba7236a6080383b2a5649033cfef85c. This patch restores the behaviour that was
implemented in configure.ac at the time of its removal.]
Diffstat (limited to 'meson.build')
-rw-r--r-- | meson.build | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/meson.build b/meson.build index 93b27be19..e0e1f8478 100644 --- a/meson.build +++ b/meson.build @@ -486,7 +486,7 @@ foreach decl : [['IFLA_INET6_ADDR_GEN_MODE', 'linux/if_link.h'], ['IN6_ADDR_GEN_MODE_STABLE_PRIVACY', 'linux/if_link.h'], ['IFLA_VRF_TABLE', 'linux/if_link.h'], ['IFLA_MACVLAN_FLAGS', 'linux/if_link.h'], - ['IFLA_IPVLAN_MODE', 'linux/if_link.h'], + ['IFLA_IPVLAN_FLAGS', 'linux/if_link.h'], ['IFLA_PHYS_PORT_ID', 'linux/if_link.h'], ['IFLA_BOND_AD_INFO', 'linux/if_link.h'], ['IFLA_VLAN_PROTOCOL', 'linux/if_link.h'], @@ -501,6 +501,7 @@ foreach decl : [['IFLA_INET6_ADDR_GEN_MODE', 'linux/if_link.h'], ['IFLA_BRPORT_PROXYARP', 'linux/if_link.h'], ['IFLA_BRPORT_LEARNING_SYNC', 'linux/if_link.h'], ['IFLA_BR_VLAN_DEFAULT_PVID', 'linux/if_link.h'], + ['IPVLAN_F_PRIVATE', 'linux/if_link.h'], ['NDA_IFINDEX', 'linux/neighbour.h'], ['IFA_FLAGS', 'linux/if_addr.h'], ['FRA_UID_RANGE', 'linux/fib_rules.h'], @@ -517,17 +518,17 @@ foreach ident : ['secure_getenv', '__secure_getenv'] endforeach foreach ident : [ - ['memfd_create', '''#define _GNU_SOURCE -// #include <sys/mman.h>'''], - ['gettid', '''#include <sys/types.h>'''], - ['pivot_root', '''#include <stdlib.h>'''], # no known header declares pivot_root - ['name_to_handle_at', '''#define _GNU_SOURCE -// #include <sys/types.h> + ['memfd_create', '''#include <sys/mman.h>'''], + ['gettid', '''#include <sys/types.h> +// #include <unistd.h>'''], + ['pivot_root', '''#include <stdlib.h> + #include <unistd.h>'''], # no known header declares pivot_root + ['name_to_handle_at', '''#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h>'''], - ['setns', '''#define _GNU_SOURCE -// #include <sched.h>'''], - ['renameat2', '''#include <stdio.h>'''], + ['setns', '''#include <sched.h>'''], + ['renameat2', '''#include <stdio.h> +// #include <fcntl.h>'''], ['kcmp', '''#include <linux/kcmp.h>'''], ['keyctl', '''#include <sys/types.h> #include <keyutils.h>'''], @@ -538,11 +539,11 @@ foreach ident : [ ['explicit_bzero' , '''#include <string.h>'''], ] - have = cc.has_function(ident[0], prefix : ident[1]) + have = cc.has_function(ident[0], prefix : ident[1], args : '-D_GNU_SOURCE') conf.set10('HAVE_' + ident[0].to_upper(), have) endforeach -if cc.has_function('getrandom', prefix : '''#include <sys/random.h>''') +if cc.has_function('getrandom', prefix : '''#include <sys/random.h>''', args : '-D_GNU_SOURCE') conf.set10('USE_SYS_RANDOM_H', true) conf.set10('HAVE_GETRANDOM', true) else @@ -572,8 +573,7 @@ mkdir_p = 'mkdir -p $DESTDIR/@0@' # if -Dxxx-path option is found, use that. Otherwise, check in $PATH, # /usr/sbin, /sbin, and fall back to the default from middle column. #if 0 /// elogind has a bit different list and some adaptions -# progs = [['telinit', '/lib/sysvinit/telinit'], -# ['quotaon', '/usr/sbin/quotaon' ], +# progs = [['quotaon', '/usr/sbin/quotaon' ], # ['quotacheck', '/usr/sbin/quotacheck' ], # ['kill', '/usr/bin/kill' ], # ['kmod', '/usr/bin/kmod' ], @@ -606,6 +606,8 @@ foreach prog : progs substs.set(name, path) endforeach +conf.set_quoted('TELINIT', get_option('telinit-path')) + if run_command('ln', '--relative', '--help').returncode() != 0 error('ln does not support --relative') endif @@ -2796,6 +2798,8 @@ install_data('README', #endif // 0 'LICENSE.GPL2', 'LICENSE.LGPL2.1', + 'TRANSIENT-SETTINGS.md', + 'UIDS-GIDS.md', 'src/libelogind/sd-bus/GVARIANT-SERIALIZATION', install_dir : docdir) |