Re: s6-ftrig-wait is not relocatable

From: Buck Evan <buck_at_yelp.com>
Date: Wed, 14 Oct 2015 09:47:42 -0700

On Wed, Oct 14, 2015 at 3:09 AM, Laurent Bercot <ska-skaware_at_skarnet.org>
wrote:

> On 14/10/2015 02:58, Buck Evan wrote:
>
>> The packaging system I'm targeting (pypi wheels =X) are built binaries
>> that
>> are relocated arbitrarily, so the "run-time installation path" is entirely
>> unknown at compile time.
>>
>
> I don't understand. How is that even supposed to work?


These packages get installed to a prefix that's determined at install time
($VIRTUAL_ENV).


> If packages
> want to install files in /etc, they can't?


They get installed to $VIRTUAL_ENV/etc
Binaries handle this by using paths relative to themselves.



> If you need to access
> binaries, how do you know what to put in your PATH?
>

$VIRTUAL_ENV/bin is prepended to $PATH.



> Making everything fully static makes everything but this one bit work
>> though.
>>
>


> Not really: execline and s6 binaries expect to be able to spawn other
> execline and s6 binaries, some of which are found via PATH search, some
> of which are in /usr/libexec/s6 or something, depending on your
> ./configure options. If you don't know your run-time installation paths,
> things will *appear* to work, but be subtly broken.


The deafult ./configure options for execline seem to put everything in
$PREFIX/bin, which is on the PATH.
Those bits work.

I have a pretty extensive test suite for my system that's built atop s6,
and the only part that explodes is the access of leapseconds.dat

This feels counter to the "allstatic" strategy that s6 uses by default.
Would you be opposed to converting the leapseconds.dat to a .c format
during the build, and statically linking it?
Received on Wed Oct 14 2015 - 16:47:42 UTC

This archive was generated by hypermail 2.3.0 : Sun May 09 2021 - 19:38:49 UTC