Patchwork busybox: busybox wget -P option ignored

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

Comments

Amy Fong - July 17, 2012, 2:30 p.m.
busybox wget testing fails
    
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 |   30 ++++++++++++++++++++++++++++++
 busybox_1.19.4.bb                    |    3 ++-
 2 files changed, 32 insertions(+), 1 deletion(-)
Saul Wold - July 20, 2012, 3:54 a.m.
On 07/17/2012 07:30 AM, Amy Fong wrote:
> busybox wget testing fails
>
> 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 |   30 ++++++++++++++++++++++++++++++
>   busybox_1.19.4.bb                    |    3 ++-
>   2 files changed, 32 insertions(+), 1 deletion(-)
>
> 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..3003965
> --- /dev/null
> +++ b/meta/recipes-core/busybox/busybox-1.19.4/wget_dl_dir_fix.patch
> @@ -0,0 +1,30 @@
> +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>
> +Upstream-Status: Submitted
> +---
> + 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 \
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
>

Merged into OE-Core

Thanks
	Sau!

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..3003965
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox-1.19.4/wget_dl_dir_fix.patch
@@ -0,0 +1,30 @@ 
+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>
+Upstream-Status: Submitted
+---
+ 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 \