[ar71xx] create firmware image for the WRT160NL board (thanks to Gerry Rozema)
[openwrt-10.03/.git] / package / opkg / patches / 001-use-wget
1 diff -urN opkg-4993/configure.ac opkg-4993.new/configure.ac
2 --- opkg-4993/configure.ac      2009-05-17 18:15:52.000000000 +0200
3 +++ opkg-4993.new/configure.ac  2009-05-17 18:17:09.000000000 +0200
4 @@ -26,9 +26,16 @@
5  
6  # Checks for libraries
7  
8 -# check for libcurl
9 -PKG_CHECK_MODULES(CURL, libcurl)
10 +AC_ARG_ENABLE(curl,
11 +    AC_HELP_STRING([--enable-curl], [Enable use of libcurl instead of wget
12 +      [[default=yes]] ]),
13 +    [want_curl="$enableval"], [want_curl="yes"])
14  
15 +if test "x$want_curl" = "xyes"; then
16 +  # check for libcurl
17 +  PKG_CHECK_MODULES(CURL, libcurl)
18 +  AC_DEFINE(HAVE_CURL, 1, [Define if you want to use libcurl instead of wget])
19 +fi
20  
21  
22  dnl **********
23 diff -urN opkg-4993/libopkg/opkg.c opkg-4993.new/libopkg/opkg.c
24 --- opkg-4993/libopkg/opkg.c    2009-05-17 18:15:50.000000000 +0200
25 +++ opkg-4993.new/libopkg/opkg.c        2009-05-17 18:17:09.000000000 +0200
26 @@ -1019,8 +1019,9 @@
27  
28    return package;
29  }
30 -
31 +#ifdef HAVE_CURL
32  #include <curl/curl.h>
33 +#endif
34  /**
35   * @brief Check the accessibility of repositories. It will try to access the repository to check if the respository is accessible throught current network status. 
36   * @param opkg The opkg_t
37 @@ -1070,6 +1071,7 @@
38      repositories--;
39  
40      err = opkg_download(opkg->conf, iter1->data, "/dev/null", NULL, NULL);
41 +    #ifdef HAVE_CURL
42      if (!(err == CURLE_OK || 
43                 err == CURLE_HTTP_RETURNED_ERROR || 
44                 err == CURLE_FILE_COULDNT_READ_FILE ||
45 @@ -1078,6 +1080,7 @@
46                 )) {
47             ret++;
48      }
49 +    #endif
50      str_list_elt_deinit(iter1);
51      free(iter1);
52    }
53 diff -urN opkg-4993/libopkg/opkg_download.c opkg-4993.new/libopkg/opkg_download.c
54 --- opkg-4993/libopkg/opkg_download.c   2009-05-17 18:15:50.000000000 +0200
55 +++ opkg-4993.new/libopkg/opkg_download.c       2009-05-17 18:17:09.000000000 +0200
56 @@ -17,7 +17,9 @@
57     General Public License for more details.
58  */
59  #include "config.h"
60 +#ifdef HAVE_CURL
61  #include <curl/curl.h>
62 +#endif
63  #ifdef HAVE_GPGME
64  #include <gpgme.h>
65  #endif
66 @@ -77,6 +79,7 @@
67         setenv("no_proxy", conf->no_proxy, 1);
68      }
69  
70 +#ifdef HAVE_CURL
71      CURL *curl;
72      CURLcode res;
73      FILE * file = fopen (tmp_file_location, "w");
74 @@ -123,6 +126,31 @@
75          free(src_basec);
76         return -1;
77      }
78 +#else /* if wget is selected */
79 +    char *cmd;
80 +    /* XXX: BUG rewrite to use execvp or else busybox's internal wget -Jamey 7/23/2002 */
81 +    sprintf_alloc(&cmd, "wget --passive-ftp %s %s%s %s%s -P %s %s",
82 +                 (conf->http_proxy || conf->ftp_proxy) ? "--proxy=on" : "",
83 +                 conf->proxy_user ? "--proxy-user=" : "",
84 +                 conf->proxy_user ? conf->proxy_user : "",
85 +                 conf->proxy_passwd ? "--proxy-passwd=" : "",
86 +                 conf->proxy_passwd ? conf->proxy_passwd : "",
87 +                 conf->tmp_dir,
88 +                 src);
89 +    err = xsystem(cmd);
90 +    if (err) {
91 +       if (err != -1) {
92 +           opkg_message(conf,OPKG_ERROR, "%s: ERROR: Command failed with return value %d: `%s'\n",
93 +                   __FUNCTION__, err, cmd);
94 +       } 
95 +       unlink(tmp_file_location);
96 +       free(tmp_file_location);
97 +       free(src_basec);
98 +       free(cmd);
99 +       return EINVAL;
100 +    }
101 +    free(cmd);
102 +#endif
103  
104      err = file_move(tmp_file_location, dest_file_name);
105