]> code.ossystems Code Review - openembedded-core.git/commitdiff
attr: various improvements
authorQing He <qing.he@intel.com>
Thu, 29 Jul 2010 10:34:42 +0000 (18:34 +0800)
committerRichard Purdie <rpurdie@linux.intel.com>
Fri, 6 Aug 2010 17:28:26 +0000 (18:28 +0100)
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 <qing.he@intel.com>
meta/packages/attr/attr.inc
meta/packages/attr/attr_2.4.44.bb
meta/packages/attr/ea-acl.inc [new file with mode: 0644]
meta/packages/attr/files/relative-libdir.patch [new file with mode: 0644]

index 69b7442f7e0caf0e278badb22d88965c38c315c2..da7924631e1ecfa5d24ac987333906dc2281f7fa 100644 (file)
@@ -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"
index f63d238350df07b936040ed303ca16f0e9c83838..0b21b33dcf0f2718ada11df0b260f057f933c44e 100644 (file)
@@ -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 (file)
index 0000000..77fa2b4
--- /dev/null
@@ -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 (file)
index 0000000..f989dd0
--- /dev/null
@@ -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 <qing.he@intel.com>
+
+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)