From 1bcbcc3c81e768165305c5369046c11d1e53afae Mon Sep 17 00:00:00 2001 From: guinux Date: Wed, 20 Mar 2013 10:03:22 +0100 Subject: [PATCH] fix 2 bugs and autosyncfirst pamac --- pamac-install | 2 +- pamac/config.py | 2 ++ pamac/main.py | 70 ++++++++++++++++++++++++++----------------------- 3 files changed, 40 insertions(+), 34 deletions(-) diff --git a/pamac-install b/pamac-install index dd1ac83..e07b9b3 100755 --- a/pamac-install +++ b/pamac-install @@ -26,7 +26,7 @@ def install(pkgnames): if not pkgname in transaction.localpkgs.keys(): transaction.to_add.append(pkgname) pkg_to_install.append(transaction.syncpkgs[pkgname]) - main.check_conflicts(pkg_to_install) + main.check_conflicts('normal', pkg_to_install) if transaction.to_add: if transaction.init_transaction(noconflicts = True, needed =True): for pkgname in transaction.to_add: diff --git a/pamac/config.py b/pamac/config.py index cbc28d1..89d37e8 100644 --- a/pamac/config.py +++ b/pamac/config.py @@ -192,3 +192,5 @@ if 'HoldPkg' in pacman_conf.options: holdpkg = pacman_conf.options['HoldPkg'] if 'SyncFirst' in pacman_conf.options: syncfirst = pacman_conf.options['SyncFirst'] +if not 'pamac' in syncfirst: + syncfirst.append('pamac') diff --git a/pamac/main.py b/pamac/main.py index 958adf1..9d9425e 100644 --- a/pamac/main.py +++ b/pamac/main.py @@ -432,9 +432,9 @@ def check_conflicts(mode, pkg_list): error = '' pkgs = transaction.handle.get_localdb().search('linux3') installed_linux = [] - for i in pkgs: - if len(i.name) == 7: - installed_linux.append(i.name) + for item in pkgs: + if len(item.name) == 7: + installed_linux.append(item.name) for to_install in transaction.to_add: if 'linux3' in to_install: if len(to_install) == 7: @@ -517,21 +517,23 @@ def check_conflicts(mode, pkg_list): provide = pyalpm.find_satisfier(transaction.localpkgs.values(), conflict) if provide: if provide.name != pkg.name: - required = pkg.compute_requiredby() - if required: - str_required = '' - for i in required: - if str_required: - str_required += ', ' - str_required += i - if error: - error += '\n' - error += '{} conflicts with {} but cannot be removed because it is needed by {}'.format(provide.name, pkg.name, str_required) - elif not provide.name in transaction.to_remove: - transaction.to_remove.append(provide.name) - if warning: - warning += '\n' - warning += pkg.name+' conflicts with '+provide.name + new_provide = pyalpm.find_satisfier([transaction.syncpkgs[provide.name]], conflict) + if new_provide: + required = pkg.compute_requiredby() + if required: + str_required = '' + for item in required: + if str_required: + str_required += ', ' + str_required += item + if error: + error += '\n' + error += '{} conflicts with {} but cannot be removed because it is needed by {}'.format(provide.name, pkg.name, str_required) + elif not provide.name in transaction.to_remove: + transaction.to_remove.append(provide.name) + if warning: + warning += '\n' + warning += pkg.name+' conflicts with '+provide.name provide = pyalpm.find_satisfier(depends[0], conflict) if provide: if not common.format_pkg_name(conflict) == pkg.name: @@ -548,21 +550,23 @@ def check_conflicts(mode, pkg_list): provide = pyalpm.find_satisfier(depends[0], conflict) if provide: if provide.name != pkg.name: - required = pkg.compute_requiredby() - if required: - str_required = '' - for i in required: - if str_required: - str_required += ', ' - str_required += i - if error: - error += '\n' - error += '{} conflicts with {} but cannot be removed because it is needed by {}'.format(provide.name, pkg.name, str_required) - elif not provide.name in transaction.to_remove: - transaction.to_remove.append(pkg.name) - if warning: - warning += '\n' - warning += provide.name+' conflicts with '+pkg.name + new_provide = pyalpm.find_satisfier([transaction.syncpkgs[pkg.name]], conflict) + if new_provide: + required = pkg.compute_requiredby() + if required: + str_required = '' + for item in required: + if str_required: + str_required += ', ' + str_required += item + if error: + error += '\n' + error += '{} conflicts with {} but cannot be removed because it is needed by {}'.format(provide.name, pkg.name, str_required) + elif not provide.name in transaction.to_remove: + transaction.to_remove.append(pkg.name) + if warning: + warning += '\n' + warning += provide.name+' conflicts with '+pkg.name if mode == 'updating': for pkg in transaction.syncpkgs.values(): for replace in pkg.replaces: