pacman/lib/libalpm
Nagy Gabor 72c0ab5c51 Resolvedeps rework
I divided resolvedeps into 2 functions. The new _alpm_resolvedep function
will resolve one dependency, for example the 'foo>=1.0-1' dependency.  It
can be useful in sync_addtarget refactoring.

The resolvedeps parameters were changed, to be coherent with recursedeps:
* the target-list is an alpm_list* instead of alpm_list**. This is OK,
  because alpm_list_add == alpm_list_add_last
* syncpkg param was removed. list contains the to-be-installed packages,
  resolvedeps will add the required dependencies into this list
* trans param was removed, it was used in QUESTION() only, which can be used
  on the main (handle->trans) transaction only (because the front-end cannot
  access our pseudo-transactions at all!).

The patch fixes some wrong dynamic pmdepmissing_t usage.

I did a behavior change (and sync1003.py was modified accordingly), which
needs some explanation: The old resolvedeps didn't elect packages from
'remove' list. I've dropped this because I don't want that 2nd excluding
list param. In fact, in real life, we ~never need this rule. Resolvedeps is
called before checkconflicts, so only -Su's %REPLACES% packages are sitting
in 'remove' list. This means, that we have the replacement packages in our
target list. Usually "foo replaces bar" means, that bar isn't in our repos
any more, so resolvedeps *cannot* elect it; but usually it won't try it at
all, because foo is in the target list, and it is expected to satisfy
'bar>=1.0-1'-like dependencies too. Since checkdeps and checkconflicts is
done after resolvedeps, this cannot cause any harm.

Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu>
Signed-off-by: Dan McGee <dan@archlinux.org>
2008-07-07 21:12:55 -05:00
..
po Merge branch 'maint' 2008-06-19 08:51:36 -05:00
.gitignore Remove unnecessary entries from .gitignore files 2007-07-16 16:49:28 -04:00
Makefile.am Refactor pkg_load/parse_descfile into a new backend file 2008-05-11 20:07:55 -05:00
add.c Get rid of double / in database paths. 2008-06-04 16:25:27 -05:00
add.h Update GNU GPL boilerplate and copyright dates 2007-12-10 22:55:39 -06:00
alpm.c Remove unnecessary header file, move one macro to util.c 2008-04-06 20:20:20 -05:00
alpm.h Reimplement TotalDownload functionality 2008-06-04 15:38:53 -05:00
alpm_list.c Cleanup usages of alpm_list_find and alpm_list_remove. 2008-05-13 15:49:02 -05:00
alpm_list.h Cleanup usages of alpm_list_find and alpm_list_remove. 2008-05-13 15:49:02 -05:00
backup.c memleak fix: ensure backup fname isn't lost if unused 2008-03-23 16:55:52 -05:00
backup.h Update GNU GPL boilerplate and copyright dates 2007-12-10 22:55:39 -06:00
be_files.c Use access() instead of stat() when possible 2008-06-15 22:52:27 -05:00
be_package.c Don't display filename on -Qip operation. 2008-06-04 16:25:31 -05:00
cache.c Fix rewinddir regression by cleaning up db_scan 2008-05-13 18:44:13 -05:00
cache.h Update GNU GPL boilerplate and copyright dates 2007-12-10 22:55:39 -06:00
conflict.c Remove an outdated exception check in file conflict code 2008-05-13 15:49:02 -05:00
conflict.h New _alpm_conflict_dup function 2008-01-27 11:54:25 -06:00
db.c Use correct C type for file sizes 2008-06-04 15:38:47 -05:00
db.h Fix rewinddir regression by cleaning up db_scan 2008-05-13 18:44:13 -05:00
delta.c Use correct C type for file sizes 2008-06-04 15:38:47 -05:00
delta.h Use correct C type for file sizes 2008-06-04 15:38:47 -05:00
deps.c Resolvedeps rework 2008-07-07 21:12:55 -05:00
deps.h Resolvedeps rework 2008-07-07 21:12:55 -05:00
dload.c Use correct C type for file sizes 2008-06-04 15:38:47 -05:00
dload.h Remove unnecessary import in dload.h 2008-04-10 20:53:28 -05:00
error.c Fix some fallout from the delta/download changes 2008-04-26 13:03:53 -05:00
graph.h Use correct C type for file sizes 2008-06-04 15:38:47 -05:00
group.c Cleanup usages of alpm_list_find and alpm_list_remove. 2008-05-13 15:49:02 -05:00
group.h Cleanup usages of alpm_list_find and alpm_list_remove. 2008-05-13 15:49:02 -05:00
handle.c Reimplement TotalDownload functionality 2008-06-04 15:38:53 -05:00
handle.h Reimplement TotalDownload functionality 2008-06-04 15:38:53 -05:00
log.c Remove unnecessary header file, move one macro to util.c 2008-04-06 20:20:20 -05:00
log.h Update GNU GPL boilerplate and copyright dates 2007-12-10 22:55:39 -06:00
md5.c libalpm/md5: Fix license header 2008-06-03 21:31:31 -05:00
md5.h libalpm/md5: Fix license header 2008-06-03 21:31:31 -05:00
package.c New _alpm_dep_edge function 2008-07-07 21:04:16 -05:00
package.h Use correct C type for file sizes 2008-06-04 15:38:47 -05:00
remove.c Fix for remove052.py by moving recursedeps before checkdeps. 2008-05-29 06:37:20 -05:00
remove.h Update GNU GPL boilerplate and copyright dates 2007-12-10 22:55:39 -06:00
sync.c Resolvedeps rework 2008-07-07 21:12:55 -05:00
sync.h pmsyncpkg_t cleanup 2008-01-27 12:05:33 -06:00
trans.c Use access() instead of stat() when possible 2008-06-15 22:52:27 -05:00
trans.h Remove trans->targets 2008-03-10 18:57:36 -05:00
util.c Use access() instead of stat() when possible 2008-06-15 22:52:27 -05:00
util.h Remove unnecessary NULL check in FREE() macro 2008-04-19 15:59:40 -05:00