#include "opkg_conf.h"
#include "opkg_cmd.h"
#include "opkg_message.h"
-#include "release.h"
#include "pkg.h"
#include "pkg_dest.h"
#include "pkg_parse.h"
print_pkg(pkg_t *pkg)
{
char *version = pkg_version_str_alloc(pkg);
+ printf("%s - %s", pkg->name, version);
+ if (conf->size)
+ printf(" - %lu", pkg->size);
if (pkg->description)
- printf("%s - %s - %s\n", pkg->name, version, pkg->description);
- else
- printf("%s - %s\n", pkg->name, version);
+ printf(" - %s", pkg->description);
+ printf("\n");
free(version);
}
char *tmp;
int err;
int failures;
+ int pkglist_dl_error;
char *lists_dir;
pkg_src_list_elt_t *iter;
pkg_src_t *src;
}
- for (iter = void_list_first(&conf->dist_src_list); iter; iter = void_list_next(&conf->dist_src_list, iter)) {
- char *url, *list_file_name;
-
- src = (pkg_src_t *)iter->data;
-
- sprintf_alloc(&url, "%s/dists/%s/Release", src->value, src->name);
-
- sprintf_alloc(&list_file_name, "%s/%s", lists_dir, src->name);
- err = opkg_download(url, list_file_name, NULL, NULL, 0);
- if (!err) {
- opkg_msg(NOTICE, "Downloaded release files for dist %s.\n",
- src->name);
- release_t *release = release_new();
- err = release_init_from_file(release, list_file_name);
- if (!err) {
- if (!release_comps_supported(release, src->extra_data))
- err = -1;
- }
- if (!err) {
- err = release_download(release, src, lists_dir, tmp);
- }
- release_deinit(release);
- if (err)
- unlink(list_file_name);
- }
-
- if (err)
- failures++;
-
- free(list_file_name);
- free(url);
- }
-
for (iter = void_list_first(&conf->pkg_src_list); iter; iter = void_list_next(&conf->pkg_src_list, iter)) {
char *url, *list_file_name;
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)
- if (conf->check_signature) {
+#if defined(HAVE_GPGME) || defined(HAVE_OPENSSL) || defined(HAVE_USIGN)
+ 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? */
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)
else
opkg_msg(NOTICE, "Signature check failed.\n");
}
- if (err) {
+ if (err && !conf->force_signature) {
/* The signature was wrong so delete it */
opkg_msg(NOTICE, "Remove wrong Signature file.\n");
unlink (tmp_file_name);