supervision - discussion about system services, daemon supervision, init, runlevel management, and tools such as s6 and runit
 help / color / mirror / Atom feed
From: "Laurent Bercot" <ska-supervision@skarnet.org>
To: "Joshua Ismael Haase Hernández" <hahj87@gmail.com>
Cc: supervision@list.skarnet.org
Subject: Re: s6 v2.9.2.0 compiles only disabling execline
Date: Thu, 08 Oct 2020 09:05:32 +0000	[thread overview]
Message-ID: <em8504d681-56b3-4d35-bac6-759fb396897d@elzian> (raw)
In-Reply-To: <CA+ypG2YS9hr+AWgtzj4Q1csqeMiUPM8qiC9JytisUWoE2+p_ug@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2389 bytes --]

>Which advantages does this design bring to the table?

  - Header files are execline/*.h, it's logical to put static library
files in execline/*.a

  - /lib and /usr/lib are places where the dynamic linker looks for
shared libraries. Despite sharing the name "library", static and shared
libraries are not at all the same kind of object, they're not used for
the same purpose (shared libraries are run-time, static libraries are
build-time), so they should not be put in the same places. It is a
design mistake of a linker to look for static libraries in /lib and
/usr/lib, and a historical mistake of FHS not to have specified a
different default place for static libraries.

  - /usr/lib/foobar is traditionally used to host other files that are
related to the foobar package, such as unexported executable files
("libexec") or other read-only data. It is a naturally appropriate place
to put static libraries from the foobar package.

  Using /usr/lib/foobar as the default place to put libfoobar.a was my
attempt to organize files more rationally than FHS does and ld
encourages, but unfortunately people don't read INSTALL files or
./configure --help carefully (:P) and they're surprised when things
deviate ever so slightly from the lemming herd of all the autoconf-using
software - you're neither the first one to have trouble with this, nor
the last one.

  I guess it's my bad for pushing policy instead of sticking to 
mechanism.
I'll change the default in future versions of skarnet.org packages.


>Why do some versions can compile without changes and some can't?

  It's not the case.
  If you previously managed to build skarnet.org software without
specifying --libdir=/usr/lib or --with-lib=/usr/lib/foobar, then
chances are you already had an old version of libfoobar.a installed in 
/usr/lib/foobar (and linked against it), or you specified
--disable-allstatic and linked against libfoobar.so (which is in /lib
or /usr/lib). In the latter case, your build is correct; but in the
former, it accidentally succeeded and you didn't use the version of
libfoobar that you were aiming for.

  Which is, to me, a much bigger problem than hitting a build-time error.
I don't know how many incorrect builds have accidentally passed and are
currently running out there; this is reason enough to change the 
default.

--
  Laurent

      reply	other threads:[~2020-10-08  9:05 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-07 20:52 Joshua Ismael Haase Hernández
2020-10-07 21:30 ` Joshua Ismael Haase Hernández
2020-10-08  0:22 ` Laurent Bercot
2020-10-08  4:15   ` Joshua Ismael Haase Hernández
2020-10-08  9:05     ` Laurent Bercot [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=em8504d681-56b3-4d35-bac6-759fb396897d@elzian \
    --to=ska-supervision@skarnet.org \
    --cc=hahj87@gmail.com \
    --cc=supervision@list.skarnet.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).