[source] opkg: clarify messages and errors related to downloads

LEDE Commits lede-commits at lists.infradead.org
Wed Feb 1 07:08:19 PST 2017


jow pushed a commit to source.git, branch lede-17.01:
https://git.lede-project.org/d7cae5f0b45847c0cd5f9c67a552cb6fe2e1fdc3

commit d7cae5f0b45847c0cd5f9c67a552cb6fe2e1fdc3
Author: Hannu Nyman <hannu.nyman at iki.fi>
AuthorDate: Mon Jan 23 11:40:29 2017 +0200

    opkg: clarify messages and errors related to downloads
    
    Clarify opkg's messages related to downloads:
    
    * more visible error message for package list download failure
    * separate error message for signature file download error
    * if wget returns 4, signal the network error more clearly
    * remove '.' from end of filenames and URLs
    
    * try signature check only if the package list was downloaded ok.
    
    Signed-off-by: Hannu Nyman <hannu.nyman at iki.fi>
---
 package/system/opkg/Makefile                       |  2 +-
 .../opkg/patches/290-clarify-download-errors.patch | 61 ++++++++++++++++++++++
 2 files changed, 62 insertions(+), 1 deletion(-)

diff --git a/package/system/opkg/Makefile b/package/system/opkg/Makefile
index 15d4ea0..39e6b4d 100644
--- a/package/system/opkg/Makefile
+++ b/package/system/opkg/Makefile
@@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/version.mk
 include $(INCLUDE_DIR)/feeds.mk
 
 PKG_NAME:=opkg
-PKG_RELEASE:=16
+PKG_RELEASE:=17
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=http://git.yoctoproject.org/git/opkg
diff --git a/package/system/opkg/patches/290-clarify-download-errors.patch b/package/system/opkg/patches/290-clarify-download-errors.patch
new file mode 100644
index 0000000..5512f67
--- /dev/null
+++ b/package/system/opkg/patches/290-clarify-download-errors.patch
@@ -0,0 +1,61 @@
+--- a/libopkg/opkg_cmd.c
++++ b/libopkg/opkg_cmd.c
+@@ -85,6 +85,7 @@ opkg_update_cmd(int argc, char **argv)
+      char *tmp;
+      int err;
+      int failures;
++     int pkglist_dl_error;
+      char *lists_dir;
+      pkg_src_list_elt_t *iter;
+      pkg_src_t *src;
+@@ -130,15 +131,19 @@ 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);
++	  pkglist_dl_error = 0;
+ 	  if (opkg_download(url, list_file_name, NULL, NULL, 0)) {
+ 	       failures++;
++	       pkglist_dl_error = 1;
++	       opkg_msg(NOTICE, "*** Failed to download the package list from %s\n\n",
++			    url);
+ 	  } else {
+-	       opkg_msg(NOTICE, "Updated list of available packages in %s.\n",
++	       opkg_msg(NOTICE, "Updated list of available packages in %s\n",
+ 			    list_file_name);
+ 	  }
+ 	  free(url);
+ #if defined(HAVE_GPGME) || defined(HAVE_OPENSSL) || defined(HAVE_USIGN)
+-          if (conf->check_signature) {
++          if (pkglist_dl_error == 0 && conf->check_signature) {
+               /* download detached signitures to verify the package lists */
+               /* get the url for the sig file */
+               if (src->extra_data)	/* debian style? */
+@@ -156,7 +161,7 @@ opkg_update_cmd(int argc, char **argv)
+               err = opkg_download(url, tmp_file_name, NULL, NULL, 0);
+               if (err) {
+                   failures++;
+-                  opkg_msg(NOTICE, "Signature check failed.\n");
++                  opkg_msg(NOTICE, "Signature file download failed.\n");
+               } else {
+                   err = opkg_verify_file (list_file_name, tmp_file_name);
+                   if (err == 0)
+--- a/libopkg/opkg_download.c
++++ b/libopkg/opkg_download.c
+@@ -91,7 +91,7 @@ opkg_download(const char *src, const cha
+     char *src_base = basename(src_basec);
+     char *tmp_file_location;
+ 
+-    opkg_msg(NOTICE,"Downloading %s.\n", src);
++    opkg_msg(NOTICE,"Downloading %s\n", src);
+ 
+     if (str_starts_with(src, "file:")) {
+ 	const char *file_src = src + 5;
+@@ -175,6 +175,8 @@ opkg_download(const char *src, const cha
+ 
+       if (res) {
+ 	opkg_msg(ERROR, "Failed to download %s, wget returned %d.\n", src, res);
++	if (res == 4)
++	    opkg_msg(ERROR, "Check your network settings and connectivity.\n\n");
+ 	free(tmp_file_location);
+ 	return -1;
+       }



More information about the lede-commits mailing list