From: Saul Wold <sgw@linux.intel.com>
To: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Cc: Patches and discussions about the oe-core layer
<openembedded-core@lists.linuxtogo.org>
Subject: Re: [PATCH 1/7] bitbake.conf: fix definition of ${libexecdir}
Date: Mon, 29 Apr 2013 15:33:07 -0700 [thread overview]
Message-ID: <517EF523.2060405@linux.intel.com> (raw)
In-Reply-To: <lyehdtjmkw.fsf@ensc-virt.intern.sigma-chemnitz.de>
On 04/29/2013 10:03 AM, Enrico Scholz wrote:
> "Burton, Ross" <ross.burton-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
> writes:
>
>>> Things *are* expected to move around. E.g. /usr/lib/openssh/sftp-server
>>> becomes /usr/lib/sftp-server now.
>>
>> Right, so don't use Debian as a rationale for this approach.
>
> Debian defines libexecdir to be /usr/lib (+multiarch). It might set
> sometimes per-package '--libexecdir=${libexecdir}/<package>' configure
> options, but libexecdir is always /usr/lib there.
>
As I read though this, a couple things I noted from some of the
available information, the GNU Directory section you quoted earlier
actually suggests a package-name directory should be included.
The definition of ‘libexecdir’ is the same for all packages, so you
should install your data in a subdirectory thereof. Most packages
install their data under $(libexecdir)/package-name/, possibly within
additional subdirectories thereof, such as $(libexecdir)/package-
name/machine/version.
And as you pointed out below, the FHS also touches on having a
sub-directory for applications to use for non-user object and internal
binaries (like plugins).
>
>> $ ls /usr/lib/openssh/
>> sftp-server ssh-keysign ssh-pkcs11-helper
>>
>> For reference, on Fedora this binary is /usr/libexec/openssh/sftp-server,
>> with the split between dropping binaries directly into /usr/libexec or
>> using a subdirectory apparently arbitrary.
>
> Placing openssh helpers in own subdirectory can make sense when
> there are alternative implementations. Nevertheless, programs
> expect ${libexecdir}/sftp-server there.
>
There seems to be a specific case here with openssh and dropbear having
alternatives for similar binaries provided by multiple packages, then we
should handle that special case.
> Every recipe using libexecdir must be investigated whether it is placing
> only private files into it (--> candidate for ${pkglibexecdir}), or
> whether files are part of its public api (--> must be directly below
> ${libexecdir}).
>
>
>> Every package that I looked at on Debian is using
>> /usr/lib/[packagenameish]/[binary]. /usr/lib/upower/upowerd.
>> /usr/lib/telepathy/telepathy-gabble. I say packagenameish as it's
>> often changed to be a more general name - i.e. all of the Telepathy
>> backends use /usr/lib/telepathy.
>>
>> There are no *executables*, only libraries, in /usr/lib on Debian or
>
> I do not have Debian for reference; but Ubuntu-12.04 (only a minimal,
> GUI-less installation) has
>
> /usr/lib/command-not-found
> /usr/lib/pt_chown
>
> and
>
> /usr/lib/sftp-server -> openssh/sftp-server
>
This could be done via the update-alternatives mechanism in the oe-core
space.
>
>
>> Fedora.
>
> Fedora has /usr/libexec with lot of executables directly below it.
>
>
>> I'm really not liking dropping the executables into a directory that
>> on non-multilib is the same as libdir.
>
> When we want to follow FHS strictly, nothing prevents us from placing
> files into /usr/lib.
>
> /usr/lib includes object files, libraries, and internal binaries
> that are not intended to be executed directly by users or shell
> scripts.
>
> Applications may use a single subdirectory under /usr/lib. If an
> application uses a subdirectory, all architecture-dependent data
> exclusively used by the application must be placed within that
> subdirectory.
>
>
> When we really do not want executables under ${libdir}, we can set
>
> libexecdir = ${prefix}/lib/libexec
>
> (which might be a good setting for world-builds to detect some kind of
> libexecdir related problems).
>
I prefer what Ross suggested, fixing libexecdir to be
${exec_prefix}/lib/${BPN}
>
>> If we want to be like the half of the world that does the same as
>> Fedora then we can revert back to /usr/libexec. Or we can be like
>> the half of the world that does the same as Debian and use something
>> similar to ${prefix}/lib/$(DEB_SOURCE_PACKAGE) (as used in CDBS and
>> Debhelper):
>
> Debian does *not* include the package name since mid 2011
>
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=541458
>
I just looked at a Debian build and /usr/lib is abound with package
directories. So given the direction we already have going with the half
that does ${prefix}/lib/${package name} makes the most sense. We are
not exactly Fedora nor Debian, OE-Core is an embedded system, we are
doing our best to match with the FHS as LSB is one of the design features.
Since I did the last libexecdir change, I will start to investigate
changing libexecdir to be ${exec_prefix}/lib/${BPN}. The concern I have
with this will be plugins and other executable binaries created in a
multilib environment.
Sau!
>
> Enrico
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
>
next prev parent reply other threads:[~2013-04-29 22:53 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-29 15:26 [PATCH 1/7] bitbake.conf: fix definition of ${libexecdir} Enrico Scholz
2013-04-29 15:26 ` [PATCH 2/7] bitbake.conf: fix libexecdir packaging Enrico Scholz
2013-04-29 15:26 ` [PATCH 3/7] connman: " Enrico Scholz
2013-04-29 15:26 ` [PATCH 4/7] eglibc: " Enrico Scholz
2013-04-29 15:26 ` [PATCH 5/7] uclibc: " Enrico Scholz
2013-04-29 15:26 ` [PATCH 6/7] gstreamer: " Enrico Scholz
2013-04-29 15:26 ` [PATCH 7/7] gamin: " Enrico Scholz
2013-04-29 15:33 ` [PATCH 1/7] bitbake.conf: fix definition of ${libexecdir} Burton, Ross
2013-04-29 15:52 ` Enrico Scholz
2013-04-29 16:20 ` Burton, Ross
2013-04-29 17:03 ` Enrico Scholz
2013-04-29 22:33 ` Saul Wold [this message]
2013-04-29 23:15 ` Enrico Scholz
2013-04-30 9:34 ` Phil Blundell
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=517EF523.2060405@linux.intel.com \
--to=sgw@linux.intel.com \
--cc=enrico.scholz@sigma-chemnitz.de \
--cc=openembedded-core@lists.linuxtogo.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