diff options
-rw-r--r-- | lib/libalpm/package.c | 6 | ||||
-rw-r--r-- | lib/libalpm/sync.c | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/lib/libalpm/package.c b/lib/libalpm/package.c index 2686c00c..85d76151 100644 --- a/lib/libalpm/package.c +++ b/lib/libalpm/package.c @@ -459,6 +459,12 @@ int _alpm_pkg_splitname(char *target, char *name, char *version, int witharch) if((p = _alpm_pkgname_has_arch(tmp))) { *p = '\0'; } + if(witharch) { + /* trim architecture */ + if((p = _alpm_pkgname_has_arch(tmp))) { + *p = 0; + } + } p = tmp + strlen(tmp); diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c index b7ebe6b4..52de2660 100644 --- a/lib/libalpm/sync.c +++ b/lib/libalpm/sync.c @@ -324,7 +324,7 @@ int _alpm_sync_addtarget(pmtrans_t *trans, pmdb_t *db_local, pmlist_t *dbs_sync, local = _alpm_db_get_pkgfromcache(db_local, spkg->name); if(local) { cmp = _alpm_versioncmp(local->version, spkg->version); - if(cmp > 0) { + if(cmp > 0 && !spkg->force) { /* local version is newer -- get confirmation before adding */ int resp = 0; QUESTION(trans, PM_TRANS_CONV_LOCAL_NEWER, local, NULL, NULL, &resp); |