diff options
-rw-r--r-- | recipes/opkg/opkg.inc | 5 | ||||
-rw-r--r-- | recipes/opkg/opkg/opkg-intercept-cleanup.patch | 47 |
2 files changed, 50 insertions, 2 deletions
diff --git a/recipes/opkg/opkg.inc b/recipes/opkg/opkg.inc index ba58c42a15..c880dd660e 100644 --- a/recipes/opkg/opkg.inc +++ b/recipes/opkg/opkg.inc @@ -4,10 +4,11 @@ SECTION = "base" LICENSE = "GPL" DEPENDS = "curl gpgme" PV = "0.1.6+svnr${SRCREV}" -INC_PR = "r14" +INC_PR = "r15" SRC_URI = "svn://opkg.googlecode.com/svn;module=trunk;proto=http \ - file://opkg_unarchive.patch;patch=1;maxrev=201" + file://opkg_unarchive.patch;patch=1;maxrev=201 \ + file://opkg-intercept-cleanup.patch;patch=1" SRC_URI += "file://configure" diff --git a/recipes/opkg/opkg/opkg-intercept-cleanup.patch b/recipes/opkg/opkg/opkg-intercept-cleanup.patch new file mode 100644 index 0000000000..12893e3852 --- /dev/null +++ b/recipes/opkg/opkg/opkg-intercept-cleanup.patch @@ -0,0 +1,47 @@ +--- + libopkg/opkg_cmd.c | 13 +++++++++---- + 1 file changed, 9 insertions(+), 4 deletions(-) + +--- trunk.orig/libopkg/opkg_cmd.c ++++ trunk/libopkg/opkg_cmd.c +@@ -19,6 +19,7 @@ + #include "includes.h" + #include <dirent.h> + #include <glob.h> ++#include <unistd.h> + + #include "opkg_conf.h" + #include "opkg_cmd.h" +@@ -350,7 +351,6 @@ static opkg_intercept_t opkg_prep_interc + + static int opkg_finalize_intercepts(opkg_intercept_t ctx) + { +- char *cmd; + DIR *dir; + int err = 0; + +@@ -376,6 +376,10 @@ static int opkg_finalize_intercepts(opkg + err = errno; + perror (de->d_name); + } ++ if (unlink (path)) { ++ err = errno; ++ perror (path); ++ } + } + free (path); + } +@@ -383,9 +387,10 @@ static int opkg_finalize_intercepts(opkg + } else + perror (ctx->statedir); + +- sprintf_alloc (&cmd, "rm -rf %s", ctx->statedir); +- err = system (cmd); +- free (cmd); ++ if (rmdir (ctx->statedir)) { ++ err = errno; ++ perror (ctx->statedir); ++ } + + free (ctx->statedir); + free (ctx); |