opkg: switch to own fork to improve memory usage
[openwrt/staging/yousong.git] / package / system / opkg / patches / 071-use_gzipped_pkg_list.patch
diff --git a/package/system/opkg/patches/071-use_gzipped_pkg_list.patch b/package/system/opkg/patches/071-use_gzipped_pkg_list.patch
deleted file mode 100644 (file)
index e102868..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
---- a/libopkg/opkg.c
-+++ b/libopkg/opkg.c
-@@ -592,49 +592,8 @@ opkg_update_package_lists(opkg_progress_
-                                     src->gzip ? "Packages.gz" : "Packages");
-               sprintf_alloc(&list_file_name, "%s/%s", lists_dir, src->name);
--              if (src->gzip) {
--                      FILE *in, *out;
--                      struct _curl_cb_data cb_data;
--                      char *tmp_file_name = NULL;
--
--                      sprintf_alloc(&tmp_file_name, "%s/%s.gz", tmp,
--                                    src->name);
--
--                      opkg_msg(INFO, "Downloading %s to %s...\n", url,
--                                      tmp_file_name);
--
--                      cb_data.cb = progress_callback;
--                      cb_data.progress_data = &pdata;
--                      cb_data.user_data = user_data;
--                      cb_data.start_range =
--                          100 * sources_done / sources_list_count;
--                      cb_data.finish_range =
--                          100 * (sources_done + 1) / sources_list_count;
--
--                      err = opkg_download(url, tmp_file_name,
--                                        (curl_progress_func) curl_progress_cb,
--                                        &cb_data, 0);
--                      if (err == 0) {
--                              opkg_msg(INFO, "Inflating %s...\n",
--                                              tmp_file_name);
--                              in = fopen(tmp_file_name, "r");
--                              out = fopen(list_file_name, "w");
--                              if (in && out)
--                                      unzip(in, out);
--                              else
--                                      err = 1;
--                              if (in)
--                                      fclose(in);
--                              if (out)
--                                      fclose(out);
--                              unlink(tmp_file_name);
--                      }
--                      free(tmp_file_name);
--              } else
--                      err = opkg_download(url, list_file_name, NULL, NULL, 0);
--
--              if (err) {
-+              if (opkg_download(url, list_file_name, NULL, NULL, 0)) {
-                       opkg_msg(ERROR, "Couldn't retrieve %s\n", url);
-                       result = -1;
-               }
---- a/libopkg/opkg_cmd.c
-+++ b/libopkg/opkg_cmd.c
-@@ -162,30 +162,7 @@ opkg_update_cmd(int argc, char **argv)
-             sprintf_alloc(&url, "%s/%s", src->value, src->gzip ? "Packages.gz" : "Packages");
-         sprintf_alloc(&list_file_name, "%s/%s", lists_dir, src->name);
--        if (src->gzip) {
--            char *tmp_file_name;
--            FILE *in, *out;
--
--            sprintf_alloc (&tmp_file_name, "%s/%s.gz", tmp, src->name);
--            err = opkg_download(url, tmp_file_name, NULL, NULL, 0);
--            if (err == 0) {
--                 opkg_msg(NOTICE, "Inflating %s.\n", url);
--                 in = fopen (tmp_file_name, "r");
--                 out = fopen (list_file_name, "w");
--                 if (in && out)
--                      unzip (in, out);
--                 else
--                      err = 1;
--                 if (in)
--                      fclose (in);
--                 if (out)
--                      fclose (out);
--                 unlink (tmp_file_name);
--            }
--            free(tmp_file_name);
--        } else
--            err = opkg_download(url, list_file_name, NULL, NULL, 0);
--        if (err) {
-+        if (opkg_download(url, list_file_name, NULL, NULL, 0)) {
-              failures++;
-         } else {
-              opkg_msg(NOTICE, "Updated list of available packages in %s.\n",
---- a/libopkg/pkg_hash.c
-+++ b/libopkg/pkg_hash.c
-@@ -29,6 +29,7 @@
- #include "sprintf_alloc.h"
- #include "file_util.h"
- #include "libbb/libbb.h"
-+#include "libbb/gzip.h"
- void
- pkg_hash_init(void)
-@@ -106,8 +107,15 @@ pkg_hash_add_from_file(const char *file_
-       char *buf;
-       const size_t len = 4096;
-       int ret = 0;
-+      struct gzip_handle zh;
-+
-+      if (src && src->gzip) {
-+              fp = gzip_fdopen(&zh, file_name);
-+      }
-+      else {
-+              fp = fopen(file_name, "r");
-+      }
--      fp = fopen(file_name, "r");
-       if (fp == NULL) {
-               opkg_perror(ERROR, "Failed to open %s", file_name);
-               return -1;
-@@ -155,6 +163,9 @@ pkg_hash_add_from_file(const char *file_
-       free(buf);
-       fclose(fp);
-+      if (src && src->gzip)
-+              gzip_close(&zh);
-+
-       return ret;
- }