summaryrefslogtreecommitdiff
path: root/packages/ipkg/ipkg-0.99.163/patch-ipkg-localfilename
diff options
context:
space:
mode:
Diffstat (limited to 'packages/ipkg/ipkg-0.99.163/patch-ipkg-localfilename')
-rw-r--r--packages/ipkg/ipkg-0.99.163/patch-ipkg-localfilename29
1 files changed, 29 insertions, 0 deletions
diff --git a/packages/ipkg/ipkg-0.99.163/patch-ipkg-localfilename b/packages/ipkg/ipkg-0.99.163/patch-ipkg-localfilename
new file mode 100644
index 0000000000..41f17fd954
--- /dev/null
+++ b/packages/ipkg/ipkg-0.99.163/patch-ipkg-localfilename
@@ -0,0 +1,29 @@
+--- ipkg-0.99.163.orig/ipkg_download.c Thu Apr 20 20:18:29 2006
++++ ipkg-0.99.163/ipkg_download.c Thu Jan 18 05:54:52 2007
+@@ -108,6 +108,7 @@
+ {
+ int err;
+ char *url;
++ char *filename;
+
+ if (pkg->src == NULL) {
+ ipkg_message(conf,IPKG_ERROR, "ERROR: Package %s (parent %s) is not available from any configured src.\n",
+@@ -117,11 +118,16 @@
+
+ sprintf_alloc(&url, "%s/%s", pkg->src->value, pkg->filename);
+
+- /* XXX: BUG: The pkg->filename might be something like
++ /* The pkg->filename might be something like
+ "../../foo.ipk". While this is correct, and exactly what we
+ want to use to construct url above, here we actually need to
+ use just the filename part, without any directory. */
+- sprintf_alloc(&pkg->local_filename, "%s/%s", dir, pkg->filename);
++ filename = strrchr(pkg->filename, '/');
++ if(NULL == filename)
++ filename = pkg->filename;
++ else
++ filename++;
++ sprintf_alloc(&pkg->local_filename, "%s/%s", dir, filename);
+
+ err = ipkg_download(conf, url, pkg->local_filename);
+ free(url);