[OE-core] [PATCH] opkg: add patch to make sure that D is empty when executing postinst scripts on target

Martin Jansa martin.jansa at gmail.com
Mon Dec 19 08:04:17 UTC 2011


Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
---
 .../opkg/opkg/offlineroot_varname.patch            |   33 +++++++++++++++-----
 meta/recipes-devtools/opkg/opkg_svn.bb             |    4 +-
 2 files changed, 27 insertions(+), 10 deletions(-)

diff --git a/meta/recipes-devtools/opkg/opkg/offlineroot_varname.patch b/meta/recipes-devtools/opkg/opkg/offlineroot_varname.patch
index a67f389..73600e3 100644
--- a/meta/recipes-devtools/opkg/opkg/offlineroot_varname.patch
+++ b/meta/recipes-devtools/opkg/opkg/offlineroot_varname.patch
@@ -1,20 +1,37 @@
 OE uses D as the offline install directory in its scripts, not PKG_ROOT.
+D is expected to be empty on when offline_root is not used.
 
 Upstream-Status: Inappropriate [OE specific usage]
 
 RP 2011/12/15
 
-Index: trunk/libopkg/pkg.c
-===================================================================
---- trunk.orig/libopkg/pkg.c	2011-12-15 15:58:39.000000000 +0000
-+++ trunk/libopkg/pkg.c	2011-12-15 20:04:50.109992736 +0000
-@@ -1280,7 +1280,7 @@
+Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
+
+diff --git a/libopkg/pkg.c b/libopkg/pkg.c
+index 6ccbde2..7d16f84 100644
+--- a/libopkg/pkg.c
++++ b/libopkg/pkg.c
+@@ -1250,6 +1250,7 @@ pkg_run_script(pkg_t *pkg, const char *script, const char *args)
+      int err;
+      char *path;
+      char *cmd;
++     char *pkg_root;
+ 
+      if (conf->noaction)
+ 	     return 0;
+@@ -1280,8 +1281,13 @@ pkg_run_script(pkg_t *pkg, const char *script, const char *args)
  
       opkg_msg(INFO, "Running script %s.\n", path);
  
 -     setenv("PKG_ROOT",
-+     setenv("D",
- 	    pkg->dest ? pkg->dest->root_dir : conf->default_dest->root_dir, 1);
+-	    pkg->dest ? pkg->dest->root_dir : conf->default_dest->root_dir, 1);
++     pkg_root=pkg->dest ? pkg->dest->root_dir : conf->default_dest->root_dir;
++     setenv("PKG_ROOT", pkg_root, 1);
++     if (conf->offline_root) {
++       setenv("D", pkg_root, 1);
++     } else {
++       setenv("D", "", 1);
++     }
  
       if (! file_exists(path)) {
-
+ 	  free(path);
diff --git a/meta/recipes-devtools/opkg/opkg_svn.bb b/meta/recipes-devtools/opkg/opkg_svn.bb
index dbdfc7e..065a2cb 100644
--- a/meta/recipes-devtools/opkg/opkg_svn.bb
+++ b/meta/recipes-devtools/opkg/opkg_svn.bb
@@ -13,7 +13,7 @@ SRC_URI = "svn://opkg.googlecode.com/svn;module=trunk;proto=http \
            file://add_vercmp.patch \
            file://add_uname_support.patch \
            file://fix_installorder.patch \
-           file://offline_postinstall.patch\
+           file://offline_postinstall.patch \
            file://offlineroot_varname.patch \
            file://track_parents.patch \
 "
@@ -22,7 +22,7 @@ S = "${WORKDIR}/trunk"
 
 SRCREV = "633"
 PV = "0.1.8+svnr${SRCPV}"
-PR = "r3"
+PR = "r4"
 
 PACKAGES =+ "libopkg${PKGSUFFIX}-dev libopkg${PKGSUFFIX} update-alternatives-cworth${PKGSUFFIX}"
 
-- 
1.7.8





More information about the Openembedded-core mailing list