From 680f8bf8ae8a850327d68fb24c7ee0c8631d2e45 Mon Sep 17 00:00:00 2001 From: Qing He Date: Thu, 29 Jul 2010 18:34:42 +0800 Subject: attr: various improvements changes: - separate the build system to ea-acl.inc, it is also used by upcoming acl (ea stands for extended attributes) - the .so.* is moved to /lib, so it can be used by packages like udev - change absolute symbolic links to relative path, code inspired by udev - manual fix to .la Signed-off-by: Qing He --- meta/packages/attr/attr.inc | 43 ++++---------------------- meta/packages/attr/attr_2.4.44.bb | 2 +- meta/packages/attr/ea-acl.inc | 35 +++++++++++++++++++++ meta/packages/attr/files/relative-libdir.patch | 23 ++++++++++++++ 4 files changed, 65 insertions(+), 38 deletions(-) create mode 100644 meta/packages/attr/ea-acl.inc create mode 100644 meta/packages/attr/files/relative-libdir.patch (limited to 'meta') diff --git a/meta/packages/attr/attr.inc b/meta/packages/attr/attr.inc index 69b7442f7..da7924631 100644 --- a/meta/packages/attr/attr.inc +++ b/meta/packages/attr/attr.inc @@ -9,43 +9,12 @@ LIC_FILES_CHKSUM = "file://doc/COPYING;md5=2d0aa14b3fce4694e4f615e30186335f \ file://attr/attr.c;endline=17;md5=be0403261f0847e5f43ed5b08d19593c \ file://libattr/libattr.c;endline=17;md5=7970f77049f8fa1199fff62a7ab724fb" -DEPENDS = "gettext" +SRC_URI = "http://nongnu.askapache.com/attr/${BP}.src.tar.gz" -SRC_URI = "http://nongnu.askapache.com/attr/${BPN}-${PV}.src.tar.gz" +require ea-acl.inc -inherit autotools - -# the package comes with a custom config.h.in, it cannot be -# overwritten by autoheader -export AUTOHEADER = "true" -EXTRA_OECONF = "INSTALL_USER=root INSTALL_GROUP=root" - -# absolute path will be used in ln -s if PKG_LIB_DIR and -# PKG_DEVLIB_DIR are different -EXTRA_OEMAKE = "PKG_LIB_DIR=${libdir} PKG_DEVLIB_DIR=${libdir}" - -do_install () { - oe_runmake install install-lib install-dev DIST_ROOT="${D}" +# libdir should point to .la +do_install_append() { + sed -i ${D}${libdir}/libattr.la -e \ + s,^libdir=\'${base_libdir}\'$,libdir=\'${libdir}\', } - -PACKAGES = "${PN} ${PN}-doc ${PN}-dbg ${PN}-locale lib${PN} lib${PN}-dev lib${PN}-doc" - -FILES_${PN} = "${bindir}" - -FILES_${PN}-dbg = "${bindir}/.debug" - -FILES_${PN}-doc = "${docdir} \ - ${mandir}/man1 \ - ${mandir}/man5" - -FILES_lib${PN} = "${libdir}/lib*.so.*" - -FILES_lib${PN}-dev = "${includedir} \ - ${libdir}/lib*.so \ - ${libdir}/lib*.a \ - ${libdir}/lib*.la" - -FILES_lib${PN}-doc = "${mandir}/man2 \ - ${mandir}/man3" - -BBCLASSEXTEND = "native" diff --git a/meta/packages/attr/attr_2.4.44.bb b/meta/packages/attr/attr_2.4.44.bb index f63d23835..0b21b33dc 100644 --- a/meta/packages/attr/attr_2.4.44.bb +++ b/meta/packages/attr/attr_2.4.44.bb @@ -1,6 +1,6 @@ require attr.inc -PR = "r0" +PR = "r1" SRC_URI += "file://memory-leak-in-copy.patch \ file://memory-leak2.patch \ diff --git a/meta/packages/attr/ea-acl.inc b/meta/packages/attr/ea-acl.inc new file mode 100644 index 000000000..77fa2b4fd --- /dev/null +++ b/meta/packages/attr/ea-acl.inc @@ -0,0 +1,35 @@ +# this build system is mostly shared by attr and acl + +DEPENDS =+ "gettext" + +SRC_URI += "file://relative-libdir.patch;striplevel=0" + +inherit autotools + +# the package comes with a custom config.h.in, it cannot be +# overwritten by autoheader +export AUTOHEADER = "true" +EXTRA_OECONF = "INSTALL_USER=root INSTALL_GROUP=root" + +EXTRA_OEMAKE = "PKG_LIB_DIR=${base_libdir} PKG_DEVLIB_DIR=${libdir}" + +do_install () { + oe_runmake install install-lib install-dev DIST_ROOT="${D}" +} + +PACKAGES =+ "lib${PN} lib${PN}-dev lib${PN}-doc" + +FILES_lib${PN} = "${base_libdir}/lib*.so.*" + +FILES_lib${PN}-dev = "${includedir} \ + ${libdir}/lib*.so \ + ${libdir}/lib*.a \ + ${libdir}/lib*.la \ + ${base_libdir}/lib*.so \ + ${base_libdir}/lib*.a \ + ${base_libdir}/lib*.la" + +FILES_lib${PN}-doc = "${mandir}/man2 \ + ${mandir}/man3" + +BBCLASSEXTEND = "native" diff --git a/meta/packages/attr/files/relative-libdir.patch b/meta/packages/attr/files/relative-libdir.patch new file mode 100644 index 000000000..f989dd0cc --- /dev/null +++ b/meta/packages/attr/files/relative-libdir.patch @@ -0,0 +1,23 @@ +use relative path in symbolic links, or it fails in staging +sed expression from udev + +7/29/2010 - created by Qing He + +diff -u include.orig/buildmacros include/buildmacros +--- include.orig/buildmacros 2010-07-29 17:39:48.000000000 +0800 ++++ include/buildmacros 2010-07-29 18:20:34.000000000 +0800 +@@ -88,9 +88,11 @@ + ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \ + ../$(INSTALL) -T so_base $(LIBNAME).lai $(PKG_LIB_DIR); \ + if test "x$(PKG_DEVLIB_DIR)" != "x$(PKG_LIB_DIR)" ; then \ +- ../$(INSTALL) -S $(PKG_DEVLIB_DIR)/$(LIBNAME).a $(PKG_LIB_DIR)/$(LIBNAME).a; \ +- ../$(INSTALL) -S $(PKG_DEVLIB_DIR)/$(LIBNAME).la $(PKG_LIB_DIR)/$(LIBNAME).la; \ +- ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).so $(PKG_DEVLIB_DIR)/$(LIBNAME).so; \ ++ rel_lib_prefix=$$(echo $(PKG_LIB_DIR) | sed 's,\(^/\|\)[^/][^/]*,..,g'); \ ++ ../$(INSTALL) -S $$rel_lib_prefix$(PKG_DEVLIB_DIR)/$(LIBNAME).a $(PKG_LIB_DIR)/$(LIBNAME).a; \ ++ ../$(INSTALL) -S $$rel_lib_prefix$(PKG_DEVLIB_DIR)/$(LIBNAME).la $(PKG_LIB_DIR)/$(LIBNAME).la; \ ++ rel_devlib_prefix=$$(echo $(PKG_DEVLIB_DIR) | sed 's,\(^/\|\)[^/][^/]*,..,g'); \ ++ ../$(INSTALL) -S $$rel_devlib_prefix$(PKG_LIB_DIR)/$(LIBNAME).so $(PKG_DEVLIB_DIR)/$(LIBNAME).so; \ + fi + else + INSTALL_LTLIB_DEV = $(INSTALL_LTLIB_STATIC) -- cgit v1.2.3