[pacman-dev] AUR pacman package fixes bug 9395 - comments?
Bryan Ischo
bji-keyword-pacman.3644cb at www.ischo.com
Tue Dec 30 18:22:40 EST 2008
Hi all. I'm sorry I didn't post to this list earlier about this issue;
I kind of forgot that there was a pacman-dev list and I added my
comments to the bug, not realizing that I should post here too.
Anyway, I have created a patch for pacman 3.2.1 which changes the
behavior of pacman when it encounters unresolvable dependencies during a
sync.
The current behavior is that any time a package to be upgraded has a
dependency that cannot be resolved, pacman asks if the user would like
to ignore the missing dependency and install the package anyway. If the
user answers yes, the sync proceeds, resulting in broken dependencies.
If the user answers no, then the sync fails immediately.
This situation can be quite common if you use the IgnorePkg/IgnoreGroup
feature, because any package which depends on an upgrade to an ignored
package cannot be sync'd, and thus the user is forced to ignore more and
more packages to prevent sync -Su from being impossible to complete.
My patch causes pacman to, instead of issuing a force/fail question when
an unresolvable dependency is discovered, keep track of which packages
that it would upgrade cannot be upgraded for this reason, and issue a
single question to the user at the end of the package resolution step,
of this form:
:: the following packages cannot be upgraded due to unresolvable
dependencies:
package1,
package2,
package3,
etc.
Do you want to skip these packages for this upgrade? [Y/n]
If the user answers yes, then the offending packages will simply be
removed from the sync operation and the remainder of the sync can occur
as normal. If the user answers no, then the sync cannot proceed, and it
fails.
So this changes the "force/fail" question into a "skip/fail" question,
which I think is better. In fact, I can't think of any disadvantages to
doing it this way - can you?
I don't have a patch to submit for this; instead I've created a patch as
part of an AUR submission that produces a new version of pacman with the
behavior I have described. I think this is an easier way for users to
test this feature. But I would be more than happy to submit a patch to
this list directly for this issue if it is the preferred means of
getting this change into the official pacman sources. A question I have
though, is exactly what should be patched? The NEWS file, configure.ac,
etc? Or just the code? I ask because my patch introduces what I
believe to be an incompatibility in libalpm with the previous version
(because a new "question" has been added, that amounts to an addition to
the API), which requires a new libalpm version number, so there are lots
of files in the pacman source that need to be patched to effect this.
Should I submit a patch to this list that takes pacman-3.2.1 to
pacman-3.3.0 (with libalpm 4.0)? Or should I just submit the actual
header and source file changes (plus man page and other documentation
changes, I am sure) in a patch to this list?
Any questions, concerns, comments, or other feedback about this patch
would be most appreciated.
The bug in question is at: http://bugs.archlinux.org/task/9395
The AUR package that I have created is at:
http://aur.archlinux.org/packages.php?ID=11182
Thanks, and best wishes,
Bryan
More information about the pacman-dev
mailing list