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@iki.fi>
This commit is contained in:
parent
6cb8e30837
commit
7ba2062744
2 changed files with 62 additions and 1 deletions
|
@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/version.mk
|
||||||
include $(INCLUDE_DIR)/feeds.mk
|
include $(INCLUDE_DIR)/feeds.mk
|
||||||
|
|
||||||
PKG_NAME:=opkg
|
PKG_NAME:=opkg
|
||||||
PKG_RELEASE:=16
|
PKG_RELEASE:=17
|
||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=http://git.yoctoproject.org/git/opkg
|
PKG_SOURCE_URL:=http://git.yoctoproject.org/git/opkg
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
Loading…
Reference in a new issue