Patchwork [1/1] zlib: put shared libraries in base_libdir

login
register
mail settings
Submitter Joe Slater
Date May 14, 2013, 11:35 p.m.
Message ID <1368574528-28247-2-git-send-email-jslater@windriver.com>
Download mbox | patch
Permalink /patch/49905/
State New
Headers show

Comments

Joe Slater - May 14, 2013, 11:35 p.m.
We put the shared libraries in base_libdir because at least
one library under base_libdir, pam_cracklib.so, needs them
and will cause a qa warning when it is built.
---
 meta/recipes-core/zlib/zlib_1.2.7.bb |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)
Saul Wold - May 15, 2013, 8:47 a.m.
On 05/15/2013 02:35 AM, Joe Slater wrote:
> We put the shared libraries in base_libdir because at least
> one library under base_libdir, pam_cracklib.so, needs them
> and will cause a qa warning when it is built.
> ---
>   meta/recipes-core/zlib/zlib_1.2.7.bb |   14 ++++++++++++++
>   1 files changed, 14 insertions(+), 0 deletions(-)
>
> diff --git a/meta/recipes-core/zlib/zlib_1.2.7.bb b/meta/recipes-core/zlib/zlib_1.2.7.bb
> index 803fec3..f5deba1 100644
> --- a/meta/recipes-core/zlib/zlib_1.2.7.bb
> +++ b/meta/recipes-core/zlib/zlib_1.2.7.bb
> @@ -6,6 +6,8 @@ SECTION = "libs"
>   LICENSE = "Zlib"
>   LIC_FILES_CHKSUM = "file://zlib.h;beginline=4;endline=23;md5=94d1b5a40dadd127f3351471727e66a9"
>
> +PR = "r1"
> +
>   SRC_URI = "http://www.zlib.net/${BPN}-${PV}.tar.bz2 \
>              file://remove.ldconfig.call.patch \
>              "
> @@ -22,6 +24,18 @@ do_compile (){
>
>   do_install() {
>   	oe_runmake DESTDIR=${D} install
> +
> +	# move the shared libraries to avoid possible qa warnings
> +	#
> +	case ${PN} in
> +		zlib-native*)
> +			;;

This should really be handled by using the classing mechanism to extend 
the do_install specificaly for the "target" class. The following will 
append to the do_install for the target class.

do_install_append_class-target() {}

You should also protect against the case where base_libdir == libdir 
which some distro can set.

I am also still investigating if this is an appropriate move from it's 
default location, I guess I need to understand further why pam_cracklib 
is causing a QA Warning, can you provide the warning please.

Thanks
	Sau!

> +		*)
> +			mkdir -p ${D}/${base_libdir}
> +			mv ${D}/${libdir}/libz.so.* ${D}/${base_libdir}
> +			tmp=`readlink ${D}/${libdir}/libz.so`
> +			ln -sf ../../${base_libdir}/$tmp ${D}/${libdir}/libz.so
> +	esac
>   }
>
>   BBCLASSEXTEND = "native nativesdk"
>
Phil Blundell - May 15, 2013, 9:54 a.m.
On Tue, 2013-05-14 at 16:35 -0700, Joe Slater wrote:
> We put the shared libraries in base_libdir because at least
> one library under base_libdir, pam_cracklib.so, needs them
> and will cause a qa warning when it is built.

Which warning are you getting?  From the description it sounds like
unsafe-references-in-binaries but that one has been disabled since
2fb58da56e8e7044de21fd10fe9164d204587236.

p.
Mark Hatle - May 15, 2013, 1:08 p.m.
On 5/15/13 4:54 AM, Phil Blundell wrote:
> On Tue, 2013-05-14 at 16:35 -0700, Joe Slater wrote:
>> We put the shared libraries in base_libdir because at least
>> one library under base_libdir, pam_cracklib.so, needs them
>> and will cause a qa warning when it is built.
>
> Which warning are you getting?  From the description it sounds like
> unsafe-references-in-binaries but that one has been disabled since
> 2fb58da56e8e7044de21fd10fe9164d204587236.

We have that enabled in our builds.  We do so because we have customers who 
still want the root, /usr split.

--Mark

> p.
>
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
Slater, Joseph - May 15, 2013, 7:50 p.m.
> -----Original Message-----
> From: openembedded-core-bounces@lists.openembedded.org [mailto:openembedded-core-
> bounces@lists.openembedded.org] On Behalf Of Mark Hatle
> Sent: Wednesday, May 15, 2013 6:08 AM
> To: openembedded-core@lists.openembedded.org
> Subject: Re: [OE-core] [PATCH 1/1] zlib: put shared libraries in base_libdir
> 
> On 5/15/13 4:54 AM, Phil Blundell wrote:
> > On Tue, 2013-05-14 at 16:35 -0700, Joe Slater wrote:
> >> We put the shared libraries in base_libdir because at least
> >> one library under base_libdir, pam_cracklib.so, needs them
> >> and will cause a qa warning when it is built.
> >
> > Which warning are you getting?  From the description it sounds like
> > unsafe-references-in-binaries but that one has been disabled since
> > 2fb58da56e8e7044de21fd10fe9164d204587236.
> 
> We have that enabled in our builds.  We do so because we have customers who
> still want the root, /usr split.

Yes, this is it:

WARNING: QA Issue: libpam: /lib64/security/pam_cracklib.so, installed in the base_prefix,
requires a shared library under exec_prefix
(/usr): libz.so.1 => /usr/lib64/libz.so.1 (0x00000000dead5000)

Joe

> 
> --Mark
> 
> > p.
> >
> >
> >
> > _______________________________________________
> > Openembedded-core mailing list
> > Openembedded-core@lists.openembedded.org
> > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
> >
> 
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Phil Blundell - May 15, 2013, 8:44 p.m.
On Wed, 2013-05-15 at 19:50 +0000, Slater, Joseph wrote:
> Yes, this is it:
> 
> WARNING: QA Issue: libpam: /lib64/security/pam_cracklib.so, installed in the base_prefix,
> requires a shared library under exec_prefix
> (/usr): libz.so.1 => /usr/lib64/libz.so.1 (0x00000000dead5000)

Presumably pam_cracklib.so can't go in /usr due to reasons, right?

p.
Slater, Joseph - May 15, 2013, 11 p.m.
> -----Original Message-----
> From: Phil Blundell [mailto:pb@pbcl.net]
> Sent: Wednesday, May 15, 2013 1:45 PM
> To: Slater, Joseph
> Cc: Hatle, Mark; openembedded-core@lists.openembedded.org
> Subject: Re: [OE-core] [PATCH 1/1] zlib: put shared libraries in base_libdir
> 
> On Wed, 2013-05-15 at 19:50 +0000, Slater, Joseph wrote:
> > Yes, this is it:
> >
> > WARNING: QA Issue: libpam: /lib64/security/pam_cracklib.so, installed in the
> base_prefix,
> > requires a shared library under exec_prefix
> > (/usr): libz.so.1 => /usr/lib64/libz.so.1 (0x00000000dead5000)
> 
> Presumably pam_cracklib.so can't go in /usr due to reasons, right?

Maybe it could, but all of its buddies are in /lib64/security and it might
get lonely.  At least we know that moving libz.so.* does not cause any
new problems because that's how we've been building for a long time.

Joe


> 
> p.
>

Patch

diff --git a/meta/recipes-core/zlib/zlib_1.2.7.bb b/meta/recipes-core/zlib/zlib_1.2.7.bb
index 803fec3..f5deba1 100644
--- a/meta/recipes-core/zlib/zlib_1.2.7.bb
+++ b/meta/recipes-core/zlib/zlib_1.2.7.bb
@@ -6,6 +6,8 @@  SECTION = "libs"
 LICENSE = "Zlib"
 LIC_FILES_CHKSUM = "file://zlib.h;beginline=4;endline=23;md5=94d1b5a40dadd127f3351471727e66a9"
 
+PR = "r1"
+
 SRC_URI = "http://www.zlib.net/${BPN}-${PV}.tar.bz2 \
            file://remove.ldconfig.call.patch \
            "
@@ -22,6 +24,18 @@  do_compile (){
 
 do_install() {
 	oe_runmake DESTDIR=${D} install
+
+	# move the shared libraries to avoid possible qa warnings
+	#
+	case ${PN} in
+		zlib-native*)
+			;;
+		*)
+			mkdir -p ${D}/${base_libdir}
+			mv ${D}/${libdir}/libz.so.* ${D}/${base_libdir}
+			tmp=`readlink ${D}/${libdir}/libz.so`
+			ln -sf ../../${base_libdir}/$tmp ${D}/${libdir}/libz.so
+	esac
 }
 
 BBCLASSEXTEND = "native nativesdk"