* [PATCH 2/7] bitbake.conf: fix libexecdir packaging
2013-04-29 15:26 [PATCH 1/7] bitbake.conf: fix definition of ${libexecdir} Enrico Scholz
@ 2013-04-29 15:26 ` Enrico Scholz
2013-04-29 15:26 ` [PATCH 3/7] connman: " Enrico Scholz
` (5 subsequent siblings)
6 siblings, 0 replies; 14+ messages in thread
From: Enrico Scholz @ 2013-04-29 15:26 UTC (permalink / raw)
To: openembedded-core; +Cc: Enrico Scholz
${libexecdir}/* wildcard can match everything in ${libdir} which
causes packaging of unwanted files. Remove this wildcard and specify
libexec binaries manually
Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
---
meta/conf/bitbake.conf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 9b864ec..501025e 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -271,7 +271,7 @@ PACKAGES = "${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE
PACKAGES_DYNAMIC = "^${PN}-locale-.*"
FILES = ""
-FILES_${PN} = "${bindir}/* ${sbindir}/* ${libexecdir}/* ${libdir}/lib*${SOLIBS} \
+FILES_${PN} = "${bindir}/* ${sbindir}/* ${libdir}/lib*${SOLIBS} \
${sysconfdir} ${sharedstatedir} ${localstatedir} \
${base_bindir}/* ${base_sbindir}/* \
${base_libdir}/*${SOLIBS} \
--
1.8.1.4
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH 3/7] connman: fix libexecdir packaging
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 ` Enrico Scholz
2013-04-29 15:26 ` [PATCH 4/7] eglibc: " Enrico Scholz
` (4 subsequent siblings)
6 siblings, 0 replies; 14+ messages in thread
From: Enrico Scholz @ 2013-04-29 15:26 UTC (permalink / raw)
To: openembedded-core; +Cc: Enrico Scholz
${libexecdir}/* wildcard can match everything in ${libdir} which
causes packaging of unwanted files. Remove this wildcard and specify
libexec binaries manually
Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
---
meta/recipes-connectivity/connman/connman.inc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/recipes-connectivity/connman/connman.inc b/meta/recipes-connectivity/connman/connman.inc
index afc361c..fea4b8e 100644
--- a/meta/recipes-connectivity/connman/connman.inc
+++ b/meta/recipes-connectivity/connman/connman.inc
@@ -131,7 +131,7 @@ RDEPENDS_${PN}-tests = "python-dbus python-pygobject python-textutils python-sub
FILES_${PN}-client = "${bindir}/connmanctl"
-FILES_${PN} = "${bindir}/* ${sbindir}/* ${libexecdir}/* ${libdir}/lib*.so.* \
+FILES_${PN} = "${bindir}/* ${sbindir}/* ${libdir}/lib*.so.* \
${libdir}/connman/plugins \
${sysconfdir} ${sharedstatedir} ${localstatedir} \
${base_bindir}/* ${base_sbindir}/* ${base_libdir}/*.so* ${datadir}/${PN} \
--
1.8.1.4
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH 4/7] eglibc: fix libexecdir packaging
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 ` Enrico Scholz
2013-04-29 15:26 ` [PATCH 5/7] uclibc: " Enrico Scholz
` (3 subsequent siblings)
6 siblings, 0 replies; 14+ messages in thread
From: Enrico Scholz @ 2013-04-29 15:26 UTC (permalink / raw)
To: openembedded-core; +Cc: Enrico Scholz
${libexecdir}/* wildcard can match everything in ${libdir} which
causes packaging of unwanted files. Remove this wildcard and specify
libexec binaries manually
Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
---
meta/recipes-core/eglibc/eglibc-package.inc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/recipes-core/eglibc/eglibc-package.inc b/meta/recipes-core/eglibc/eglibc-package.inc
index f144273..10160f5 100644
--- a/meta/recipes-core/eglibc/eglibc-package.inc
+++ b/meta/recipes-core/eglibc/eglibc-package.inc
@@ -33,7 +33,7 @@ RPROVIDES_${PN}-pcprofile = "glibc-pcprofile"
RPROVIDES_${PN}-dbg = "glibc-dbg"
libc_baselibs = "${base_libdir}/libcrypt*.so.* ${base_libdir}/libcrypt-*.so ${base_libdir}/libc.so.* ${base_libdir}/libc-*.so ${base_libdir}/libm*.so.* ${base_libdir}/libm-*.so ${base_libdir}/ld*.so.* ${base_libdir}/ld-*.so ${base_libdir}/libpthread*.so.* ${base_libdir}/libpthread-*.so ${base_libdir}/libresolv*.so.* ${base_libdir}/libresolv-*.so ${base_libdir}/librt*.so.* ${base_libdir}/librt-*.so ${base_libdir}/libutil*.so.* ${base_libdir}/libutil-*.so ${base_libdir}/libnsl*.so.* ${base_libdir}/libnsl-*.so ${base_libdir}/libnss_files*.so.* ${base_libdir}/libnss_files-*.so ${base_libdir}/libnss_compat*.so.* ${base_libdir}/libnss_compat-*.so ${base_libdir}/libnss_dns*.so.* ${base_libdir}/libnss_dns-*.so ${base_libdir}/libdl*.so.* ${base_libdir}/libdl-*.so ${base_libdir}/libanl*.so.* ${base_libdir}/libanl-*.so ${base_libdir}/libBrokenLocale*.so.* ${base_libdir}/libBrokenLocale-*.so"
-FILES_${PN} = "${libc_baselibs} ${libexecdir}/* ${@base_conditional('USE_LDCONFIG', '1', '${base_sbindir}/ldconfig ${sysconfdir}/ld.so.conf', '', d)}"
+FILES_${PN} = "${libc_baselibs} ${@base_conditional('USE_LDCONFIG', '1', '${base_sbindir}/ldconfig ${sysconfdir}/ld.so.conf', '', d)} ${libexecdir}/pt_chown"
FILES_ldd = "${bindir}/ldd"
FILES_libsegfault = "${base_libdir}/libSegFault*"
FILES_libcidn = "${base_libdir}/libcidn-*.so ${base_libdir}/libcidn.so.*"
--
1.8.1.4
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH 5/7] uclibc: fix libexecdir packaging
2013-04-29 15:26 [PATCH 1/7] bitbake.conf: fix definition of ${libexecdir} Enrico Scholz
` (2 preceding siblings ...)
2013-04-29 15:26 ` [PATCH 4/7] eglibc: " Enrico Scholz
@ 2013-04-29 15:26 ` Enrico Scholz
2013-04-29 15:26 ` [PATCH 6/7] gstreamer: " Enrico Scholz
` (2 subsequent siblings)
6 siblings, 0 replies; 14+ messages in thread
From: Enrico Scholz @ 2013-04-29 15:26 UTC (permalink / raw)
To: openembedded-core; +Cc: Enrico Scholz
${libexecdir}/* wildcard can match everything in ${libdir} which
causes packaging of unwanted files. Remove this wildcard and specify
libexec binaries manually
Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
---
meta/recipes-core/uclibc/uclibc-package.inc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/recipes-core/uclibc/uclibc-package.inc b/meta/recipes-core/uclibc/uclibc-package.inc
index c1815f9..d4426bb 100644
--- a/meta/recipes-core/uclibc/uclibc-package.inc
+++ b/meta/recipes-core/uclibc/uclibc-package.inc
@@ -34,4 +34,4 @@ FILES_${PN}-dev += "\
${includedir}/*.h ${includedir}/*/*.h \
"
FILES_${PN} = "${sysconfdir} ${uclibc_baselibs} /sbin/ldconfig \
- ${libexecdir} ${datadir}/zoneinfo ${libdir}/locale"
+ ${libexecdir}/pt_chown ${datadir}/zoneinfo ${libdir}/locale"
--
1.8.1.4
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH 6/7] gstreamer: fix libexecdir packaging
2013-04-29 15:26 [PATCH 1/7] bitbake.conf: fix definition of ${libexecdir} Enrico Scholz
` (3 preceding siblings ...)
2013-04-29 15:26 ` [PATCH 5/7] uclibc: " Enrico Scholz
@ 2013-04-29 15:26 ` 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
6 siblings, 0 replies; 14+ messages in thread
From: Enrico Scholz @ 2013-04-29 15:26 UTC (permalink / raw)
To: openembedded-core; +Cc: Enrico Scholz
${libexecdir}/* wildcard can match everything in ${libdir} which
causes packaging of unwanted files. Remove this wildcard and specify
libexec binaries manually
Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
---
meta/recipes-multimedia/gstreamer/gstreamer_0.10.36.bb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer_0.10.36.bb b/meta/recipes-multimedia/gstreamer/gstreamer_0.10.36.bb
index 90b1982..49d1065 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer_0.10.36.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer_0.10.36.bb
@@ -37,6 +37,6 @@ oe_runconf_prepend() {
RRECOMMENDS_${PN}_qemux86 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi"
RRECOMMENDS_${PN}_qemux86-64 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi"
-FILES_${PN} += " ${libdir}/gstreamer-0.10/*.so"
+FILES_${PN} += " ${libdir}/gstreamer-0.10/*.so ${libexecdir}/gstreamer-0.10/gst-plugin-scanner"
FILES_${PN}-dev += " ${libdir}/gstreamer-0.10/*.la ${libdir}/gstreamer-0.10/*.a"
FILES_${PN}-dbg += " ${libdir}/gstreamer-0.10/.debug/ ${libexecdir}/gstreamer-0.10/.debug/"
--
1.8.1.4
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH 7/7] gamin: fix libexecdir packaging
2013-04-29 15:26 [PATCH 1/7] bitbake.conf: fix definition of ${libexecdir} Enrico Scholz
` (4 preceding siblings ...)
2013-04-29 15:26 ` [PATCH 6/7] gstreamer: " Enrico Scholz
@ 2013-04-29 15:26 ` Enrico Scholz
2013-04-29 15:33 ` [PATCH 1/7] bitbake.conf: fix definition of ${libexecdir} Burton, Ross
6 siblings, 0 replies; 14+ messages in thread
From: Enrico Scholz @ 2013-04-29 15:26 UTC (permalink / raw)
To: openembedded-core; +Cc: Enrico Scholz
${libexecdir}/* wildcard can match everything in ${libdir} which
causes packaging of unwanted files. Remove this wildcard and specify
libexec binaries manually
Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
---
meta/recipes-extended/gamin/gamin_0.1.10.bb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/recipes-extended/gamin/gamin_0.1.10.bb b/meta/recipes-extended/gamin/gamin_0.1.10.bb
index 375d265..e7e7842 100644
--- a/meta/recipes-extended/gamin/gamin_0.1.10.bb
+++ b/meta/recipes-extended/gamin/gamin_0.1.10.bb
@@ -24,7 +24,7 @@ inherit autotools pkgconfig
EXTRA_OECONF = "--without-python"
PACKAGES += "lib${BPN} lib${BPN}-dev"
-FILES_${PN} = "${libexecdir}"
+FILES_${PN} = "${libexecdir}/gam_server"
FILES_${PN}-dbg += "${libexecdir}/.debug"
FILES_lib${BPN} = "${libdir}/lib*.so.*"
FILES_lib${BPN}-dev = "${includedir} ${libdir}/pkgconfig ${libdir}/lib*.la \
--
1.8.1.4
^ permalink raw reply related [flat|nested] 14+ messages in thread* Re: [PATCH 1/7] bitbake.conf: fix definition of ${libexecdir}
2013-04-29 15:26 [PATCH 1/7] bitbake.conf: fix definition of ${libexecdir} Enrico Scholz
` (5 preceding siblings ...)
2013-04-29 15:26 ` [PATCH 7/7] gamin: " Enrico Scholz
@ 2013-04-29 15:33 ` Burton, Ross
2013-04-29 15:52 ` Enrico Scholz
6 siblings, 1 reply; 14+ messages in thread
From: Burton, Ross @ 2013-04-29 15:33 UTC (permalink / raw)
To: Enrico Scholz; +Cc: openembedded-core
Hi,
I agree with dropping $libdir and hard-coding "lib", but have you done
a world oe-core build with buildhistory to verify that nothing else
moved around?
Ross
^ permalink raw reply [flat|nested] 14+ messages in thread* Re: [PATCH 1/7] bitbake.conf: fix definition of ${libexecdir}
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
0 siblings, 1 reply; 14+ messages in thread
From: Enrico Scholz @ 2013-04-29 15:52 UTC (permalink / raw)
To: openembedded-core
"Burton, Ross" <ross.burton-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
writes:
> I agree with dropping $libdir and hard-coding "lib", but have you done
> a world oe-core build
no; I do not have the resources for this :( I did a static analysis of
recent recipes and fixed the obvious things.
Change will cause probably some silent breakage which can not be detected
by static analysis. E.g. the last /usr/libexec -> /usr/lib/${BPN} change
broke dropbear sftp which remained undetected for more than a half year.
We are at the beginning of a new release cycle which is a good time for
this change.
> with buildhistory to verify that nothing else moved around?
Things *are* expected to move around. E.g. /usr/lib/openssh/sftp-server
becomes /usr/lib/sftp-server now.
Enrico
^ permalink raw reply [flat|nested] 14+ messages in thread* Re: [PATCH 1/7] bitbake.conf: fix definition of ${libexecdir}
2013-04-29 15:52 ` Enrico Scholz
@ 2013-04-29 16:20 ` Burton, Ross
2013-04-29 17:03 ` Enrico Scholz
0 siblings, 1 reply; 14+ messages in thread
From: Burton, Ross @ 2013-04-29 16:20 UTC (permalink / raw)
To: Enrico Scholz; +Cc: openembedded-core
Hi,.
On 29 April 2013 16:52, Enrico Scholz <enrico.scholz@sigma-chemnitz.de> wrote:
>> with buildhistory to verify that nothing else moved around?
>
> 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. On Debian:
$ 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.
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 Fedora.
I'm really not liking dropping the executables into a directory that
on non-multilib is the same as libdir. 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):
+export libexecdir = "${exec_prefix}/lib/${BPN}"
Ross
^ permalink raw reply [flat|nested] 14+ messages in thread* Re: [PATCH 1/7] bitbake.conf: fix definition of ${libexecdir}
2013-04-29 16:20 ` Burton, Ross
@ 2013-04-29 17:03 ` Enrico Scholz
2013-04-29 22:33 ` Saul Wold
0 siblings, 1 reply; 14+ messages in thread
From: Enrico Scholz @ 2013-04-29 17:03 UTC (permalink / raw)
To: openembedded-core
"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.
> $ 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.
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
> 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).
> 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
Enrico
^ permalink raw reply [flat|nested] 14+ messages in thread* Re: [PATCH 1/7] bitbake.conf: fix definition of ${libexecdir}
2013-04-29 17:03 ` Enrico Scholz
@ 2013-04-29 22:33 ` Saul Wold
2013-04-29 23:15 ` Enrico Scholz
0 siblings, 1 reply; 14+ messages in thread
From: Saul Wold @ 2013-04-29 22:33 UTC (permalink / raw)
To: Enrico Scholz; +Cc: Patches and discussions about the oe-core layer
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
>
>
^ permalink raw reply [flat|nested] 14+ messages in thread* Re: [PATCH 1/7] bitbake.conf: fix definition of ${libexecdir}
2013-04-29 22:33 ` Saul Wold
@ 2013-04-29 23:15 ` Enrico Scholz
2013-04-30 9:34 ` Phil Blundell
0 siblings, 1 reply; 14+ messages in thread
From: Enrico Scholz @ 2013-04-29 23:15 UTC (permalink / raw)
To: Saul Wold; +Cc: Patches and discussions about the oe-core layer
Saul Wold <sgw@linux.intel.com> 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.
Yes; automake calls this
pkglibexecdir = $(libexecdir)/@PACKAGE@
and lot of packages are using it already to install their files.
> 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).
Yes; but this is thing of the package, not of the distribution. When a
distribution thinks, a package pollutes $(libexecdir), the distribution
can fix *this* package. But $(libexecdir) provided by the distribution
must never contain the package name.
>> 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}
$(libexecdir) has the same meaning like $(bindir); so why do we not have
bindir = $(prefix)/bin/${BPN}
?
Again: $(libexecdir) must be the same for every package. All major
linux distributions follow this; why should oe differ from this rule?
>>> 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.
Nobody forbids this and it is completely fine and suggested that
packages install their files below $(pkglibexecdir). But Debian
defines libexecdir as /usr/lib (plus an optional multiarch tag from
DEB_HOST_MULTIARCH (whatever this is)).
> Since I did the last libexecdir change, I will start to investigate
> changing libexecdir to be ${exec_prefix}/lib/${BPN}.
This is a no-go because it breaks the GNU standard like the recent
value. fwiw, my preferences for libexecdir are (in this order):
1. ${prefix}/libexec
--> clean separation, commonly used, but not FHS compliant (unless
somebody interprets "/usr/lib<qual> : Alternate format libraries
(optional)" with '<qual>=exec')
2. ${prefix}/lib
--> follows the Debian way and is 100% FHS compliant, but might
pollute ${libdir} and might introduce regressions in oe packaging
3. ${prefix}/lib/libexec
--> clean separation, probably FHS compliant, but smells hacky
> The concern I have with this will be plugins and other executable
> binaries created in a multilib environment.
Plugins (aka "libraries to be loaded") are not interesting (they do not
belong into ${libexecdir}). Executables within ${libexecdir} are to be
handled like these in ${bindir}, so that a proper libexecdir won't cause
any new multilib issue.
Enrico
^ permalink raw reply [flat|nested] 14+ messages in thread