Patchwork busybox: busybox wget -P option ignored

login
register
mail settings
Submitter Amy Fong
Date July 17, 2012, 2:12 p.m.
Message ID <20120717141241.GA21603@windriver.com>
Download mbox | patch
Permalink /patch/32259/
State New
Headers show

Comments

Amy Fong - July 17, 2012, 2:12 p.m.
busybox wget -P option ignored
    
In cases where busybox wget is invoked with -P <...> and the url ends
in "/", the download directory is ignored (ie the file index.html is
implied), this change enables the -P option for those urls.
    
Signed-off-by: Amy Fong <amy.fong@windriver.com>
---
 busybox-1.19.4/wget_dl_dir_fix.patch |   24 ++++++++++++++++++++++++
 busybox_1.19.4.bb                    |    3 ++-
 2 files changed, 26 insertions(+), 1 deletion(-)
Paul Eggleton - July 17, 2012, 2:23 p.m.
Hi Amy,

On Tuesday 17 July 2012 10:12:41 Amy Fong wrote:
>  busybox-1.19.4/wget_dl_dir_fix.patch |   24 ++++++++++++++++++++++++

For this inner patch, could you please add Signed-off-by and Upstream-Status?

https://wiki.yoctoproject.org/wiki/Best_Known_Methods_%28BKMs%29_for_Package_Updating#Patch_Upstreaming

Thanks,
Paul

Patch

diff --git a/meta/recipes-core/busybox/busybox-1.19.4/wget_dl_dir_fix.patch b/meta/recipes-core/busybox/busybox-1.19.4/wget_dl_dir_fix.patch
new file mode 100644
index 0000000..5f46fed
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox-1.19.4/wget_dl_dir_fix.patch
@@ -0,0 +1,24 @@ 
+---
+ networking/wget.c |   10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+--- a/networking/wget.c
++++ b/networking/wget.c
+@@ -589,10 +589,14 @@
+ 	if (!(option_mask32 & WGET_OPT_OUTNAME)) {
+ 		G.fname_out = bb_get_last_path_component_nostrip(target.path);
+ 		/* handle "wget http://kernel.org//" */
+-		if (G.fname_out[0] == '/' || !G.fname_out[0])
+-			G.fname_out = (char*)"index.html";
++		if (G.fname_out[0] == '/' || !G.fname_out[0]) {
++			/* bug: if we provide a default name, we should still look at -P option */
++			if (G.dir_prefix)
++				G.fname_out = fname_out_alloc = concat_path_file(G.dir_prefix, "index.html");
++			else
++				G.fname_out = (char*)"index.html";
+ 		/* -P DIR is considered only if there was no -O FILE */
+-		else {
++		} else {
+ 			if (G.dir_prefix)
+ 				G.fname_out = fname_out_alloc = concat_path_file(G.dir_prefix, G.fname_out);
+ 			else {
diff --git a/meta/recipes-core/busybox/busybox_1.19.4.bb b/meta/recipes-core/busybox/busybox_1.19.4.bb
index 5b3f356..8a06497 100644
--- a/meta/recipes-core/busybox/busybox_1.19.4.bb
+++ b/meta/recipes-core/busybox/busybox_1.19.4.bb
@@ -1,5 +1,5 @@ 
 require busybox.inc
-PR = "r7"
+PR = "r8"
 
 SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
            file://B921600.patch \
@@ -8,6 +8,7 @@  SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
            file://run-parts.in.usr-bin.patch \
            file://watch.in.usr-bin.patch \
            file://busybox-udhcpc-no_deconfig.patch \
+           file://wget_dl_dir_fix.patch \
            file://find-touchscreen.sh \
            file://busybox-cron \
            file://busybox-httpd \