X-Git-Url: https://git.librecmc.org/?p=oweals%2Fopkg-lede.git;a=blobdiff_plain;f=libopkg%2Fopkg_install.c;h=72c63ab84c24a3d40e5e62df3f464f3ee486c98e;hp=020b691877e70edd6cc59443de2b3d09eb1a19f9;hb=396c9ed8f22850bb2c4065181fcc1875a20fbf12;hpb=d9150d59a75023bc996a101208e4eb28fbe4ec56 diff --git a/libopkg/opkg_install.c b/libopkg/opkg_install.c index 020b691..72c63ab 100644 --- a/libopkg/opkg_install.c +++ b/libopkg/opkg_install.c @@ -15,12 +15,12 @@ General Public License for more details. */ -#include "includes.h" -#include -#include -#include +#include "config.h" + +#include #include #include +#include #include "pkg.h" #include "pkg_hash.h" @@ -453,25 +453,29 @@ opkg_install_check_downgrade(pkg_t *pkg, pkg_t *old_pkg, int message) } if (cmp > 0) { - opkg_msg(NOTICE, - "Not downgrading package %s on %s from %s to %s.\n", - old_pkg->name, old_pkg->dest->name, old_version, new_version); + if(!conf->download_only) + opkg_msg(NOTICE, + "Not downgrading package %s on %s from %s to %s.\n", + old_pkg->name, old_pkg->dest->name, old_version, new_version); rc = 1; } else if (cmp < 0) { - opkg_msg(NOTICE, "%s%s on %s from %s to %s...\n", - message_out, pkg->name, old_pkg->dest->name, old_version, new_version); + if(!conf->download_only) + opkg_msg(NOTICE, "%s%s on %s from %s to %s...\n", + message_out, pkg->name, old_pkg->dest->name, old_version, new_version); pkg->dest = old_pkg->dest; rc = 0; } else /* cmp == 0 */ { if (conf->force_reinstall) { - opkg_msg(NOTICE, "Reinstalling %s (%s) on %s...\n", - pkg->name, new_version, old_pkg->dest->name); + if(!conf->download_only) + opkg_msg(NOTICE, "Reinstalling %s (%s) on %s...\n", + pkg->name, new_version, old_pkg->dest->name); pkg->dest = old_pkg->dest; rc = 0; } else { - opkg_msg(NOTICE, "%s (%s) already install on %s." - " Not reinstalling.\n", - pkg->name, new_version, old_pkg->dest->name); + if(!conf->download_only) + opkg_msg(NOTICE, "%s (%s) already install on %s." + " Not reinstalling.\n", + pkg->name, new_version, old_pkg->dest->name); rc = 1; } } @@ -487,8 +491,9 @@ opkg_install_check_downgrade(pkg_t *pkg, pkg_t *old_pkg, int message) strncpy( message_out,"Installing ",strlen("Installing ") ); char *version = pkg_version_str_alloc(pkg); - opkg_msg(NOTICE, "%s%s (%s) to %s...\n", message_out, - pkg->name, version, pkg->dest->name); + if(!conf->download_only) + opkg_msg(NOTICE, "%s%s (%s) to %s...\n", message_out, + pkg->name, version, pkg->dest->name); free(version); return 0; } @@ -1232,7 +1237,7 @@ opkg_install_pkg(pkg_t *pkg, int from_upgrade) pkg->state_want = SW_INSTALL; if (old_pkg){ - old_pkg->state_want = SW_DEINSTALL; /* needed for check_data_file_clashes of dependences */ + old_pkg->state_want = SW_DEINSTALL; /* needed for check_data_file_clashes of dependencies */ } err = check_conflicts_for(pkg); @@ -1251,7 +1256,15 @@ opkg_install_pkg(pkg_t *pkg, int from_upgrade) return -1; if (pkg->local_filename == NULL) { - err = opkg_download_pkg(pkg, conf->tmp_dir); + if(!conf->cache && conf->download_only){ + char cwd[4096]; + if(getcwd(cwd, sizeof(cwd)) != NULL) + err = opkg_download_pkg(pkg, cwd); + else + return -1; + } else { + err = opkg_download_pkg(pkg, conf->tmp_dir); + } if (err) { opkg_msg(ERROR, "Failed to download %s. " "Perhaps you need to run 'opkg update'?\n", @@ -1329,6 +1342,14 @@ opkg_install_pkg(pkg_t *pkg, int from_upgrade) free(file_sha256); } #endif + if(conf->download_only) { + if (conf->nodeps == 0) { + err = satisfy_dependencies_for(pkg); + if (err) + return -1; + } + return 0; + } if (pkg->tmp_unpack_dir == NULL) { if (unpack_pkg_control_files(pkg) == -1) {