2018-08-21 2:29 GMT-03:00 Laurent Bercot:
>>
>> Say this is the compiler's 'standard' headers directory (i.e. normally
>> /usr/include). Then, it is likely also the location of the files of
>> the same name supplied by the libc, and in that case, 'make install'
>> would overwrite them. Or, if the directory is handled by a package
>> manager and files are 'owned' by packages, this would result in file
>> collisions or similar.
>
>  That's normal and expected.
>  Those files provide libc functionality, so they're meant to replace
> libc files if installed into /usr/include.

Oh. That's kind of drastic. I re-read the documentation of nsss and
utmps, in case I missed it the first time, and still think none of it
suggests that this is the intended behaviour. The system consistency
argument is a good one, though, and getting these packages to install
in parallel with libc headers is doable at packaging time, so OK I
guess. But I think that more explicitly warning that 'make install'
will likely overwrite libc files with the 'configure' script's
defaults would be better.

>  The exact same pattern happens with utmps, which replaces the
> libc's <utmpx.h> header, and you didn't seem to have a problem
> with it at the time. :)

That's because I didn't notice :P I wanted to see what the effect of
--enable-nsss was on packages of the s6 stack, found surprising that
it didn't affect the C code, not even #include directives, looked at
the 'configure' script, found that it didn't add -I options either,
wondered how could that possibly work, and finally realized where the
nsss headers were installed by default.

Thanks,
G.

Reply via email to