[pacman-dev] [PATCH] Fix bug 9395 by allowing pacman to remove unresolvable packages from a transaction

Bryan Ischo bji-keyword-pacman.3644cb at www.ischo.com
Sun Jan 11 23:25:19 EST 2009

Hi, forgive me if I'm doing this wrong, I'm new to git and this is the 
first time I've tried to supply a git patch to this list.  My patch is 
attached to this email - is that the correct way to send it to the list?

Some notes on this patch:

- It is based on the current git sources instead of the release version 
of the code as was my previous patch on this same topic
- It takes into consideration the following feedback from the list on my 
previous patch:
  - Fixed static function names (static void _alpm_xxx -> static void xxx)
  - Removed the prompt that asks the user if they want to un-ignore 
packages that have upgrades for the current transaction.  The reasoning 
is that if the user didn't want to ignore the package, they wouldn't 
have put them in their IgnorePkg list, so why ask them during an 
upgrade?  Instead just expect the user to remove packages from IgnorePkg 
that they don't actually want to ignore.
  - Removed the NoIgnorePrompt configuration option that I had 
previously added since instead I'm just removing that prompt altogether
  - Fixed the issue where if a top-level package is depended upon by 
unresolvable top-level packages, it would be removed from the 
transaction, whereas really it should be retained
  - Fixed the infinite loop when there are dependency loops
- Added a few new test cases to pactest: ignore001,ignore002, and 
ignore003, which test some new ignore package functionality
- Changed the expected results of some existing test cases 
(provision020, provision022, sync021, sync1008, and sync300) because 
with the new functionality, pacman succeeds in cases where it used to 
fail (simply ignoring packages which cannot be upgraded instead of 
issuing an error) even though the results are the same, and also, 
because the new behavior means that there is no way to sync a group that 
has a package that is ignored in it (it used to work if the user said 
'yes' to the prompt that I have removed, now there is no such prompt and 
thus no opportunity to un-ignore the offending package)
- And one VERY IMPORTANT note: this change means that the release 
version of libalpm needs to be increased, so it should be libalpm.so.4 
instead of libalpm.so.3.  This is because a new callback prompt was 
added and an old one removed.  The latter shouldn't affect existing 
front-end (they just won't get asked a question that they used to get 
asked), but the former will likely break any front-end by sending a 
callback with a new "Transaction Conversation" identifier.

Comments welcome!


-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: 0001-Changed-behavior-of-transactions-to-optionally-remov.patch
URL: <http://archlinux.org/pipermail/pacman-dev/attachments/20090112/03a80c5f/attachment-0001.diff>

More information about the pacman-dev mailing list