[systemd-devel] [patch] Fix AC_PATH_PROG usage in configure.ac for systems with (still) bin vs. sbin distiction

Samuli Suominen ssuominen at gentoo.org
Mon Mar 10 05:13:38 PDT 2014


On 10/03/14 13:23, Michael Olbrich wrote:
> On Sun, Mar 09, 2014 at 08:49:58PM +0100, Michael Biebl wrote:
>> 2014-03-08 8:52 GMT+01:00 Samuli Suominen <ssuominen at gentoo.org>:
>>> If eg. setcap is in /sbin and user is building as a normal user without
>>> $PATH having /sbin, the build system
>>> will default to /usr/sbin/setcap as it's defined in AC_PATH_PROG and
>>> fail during the build with 'setcap: command not found'
>>>
>>> For example, my $PATH as normal user:
>>>
>>> $ echo $PATH
>>> /usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.8.2
>>>
>>> I see Debian and Ubuntu carries a patch that changes these hardcoded
>>> paths to what they have, but that's equally
>>> unwise.
>> We do patch those defaults so we don't have to actually build-depend
>> on all those packages.
>> Your patch doesn't really help with that.
> You don't need a patch for that. Just set the corresponding configure cache
> value:
> export ac_cv_path_QUOTAON=/sbin/quotaon
> [...]
> ./configure ...
>
>

I'm aware of the possibility for exporting ac_cv_ values (those that are
present in eg. config.log after ./configure)

But the problem for what the patch was submitted remains, when setcap
is in /sbin/setcap instead of /usr/sbin/setcap, and the build system lacks
the capability of checking sbin directories, it will set it to wrong value,
and then try to *use it* during the build:
Makefile.am:    -$(SETCAP) cap_dac_override,cap_sys_ptrace=ep
$(DESTDIR)$(bindir)/systemd-detect-virt
resulting in a 'command not found' message, however because it's
prefixed with -
it's non-fatal, but that's how you miss it to begin with.

Why not search sbin directories, if the patch is this easy?


More information about the systemd-devel mailing list