solver with NO connection to libypp
authorStefan Schubert <schubi@suse.de>
Tue, 13 Dec 2005 13:24:46 +0000 (13:24 +0000)
committerStefan Schubert <schubi@suse.de>
Tue, 13 Dec 2005 13:24:46 +0000 (13:24 +0000)
726 files changed:
zypp/solver/Makefile.am
zypp/solver/detail/.deps/Arch.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/Channel.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/Dependency.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/Edition.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/Importance.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/Match.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/MultiWorld.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/OrDependency.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/Package.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/PackageUpdate.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/Packman.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/Pending.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/QueueItem.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/QueueItemBranch.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/QueueItemConflict.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/QueueItemGroup.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/QueueItemInstall.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/QueueItemRequire.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/QueueItemUninstall.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/Resolvable.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/ResolvableAndDependency.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/Resolver.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/ResolverContext.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/ResolverInfo.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/ResolverInfoChildOf.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/ResolverInfoConflictsWith.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/ResolverInfoContainer.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/ResolverInfoDependsOn.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/ResolverInfoMisc.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/ResolverInfoMissingReq.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/ResolverInfoNeededBy.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/ResolverInfoObsoletes.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/ResolverQueue.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/Section.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/ServiceWorld.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/Spec.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/StoreWorld.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/Subscription.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/UndumpWorld.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/Version.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/World.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/XmlNode.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/XmlParser.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/debug.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/extract.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/libzypp.Plo [new file with mode: 0644]
zypp/solver/detail/.deps/utils.Plo [new file with mode: 0644]
zypp/solver/detail/.libs/libzypp_solver_detail.a [new file with mode: 0644]
zypp/solver/detail/Arch.cc [new file with mode: 0644]
zypp/solver/detail/Arch.h [new file with mode: 0644]
zypp/solver/detail/ChangeLog [new file with mode: 0644]
zypp/solver/detail/Channel.cc [new file with mode: 0644]
zypp/solver/detail/Channel.h [new file with mode: 0644]
zypp/solver/detail/ChannelPtr.h [new file with mode: 0644]
zypp/solver/detail/Dependency.cc [new file with mode: 0644]
zypp/solver/detail/Dependency.h [new file with mode: 0644]
zypp/solver/detail/DependencyPtr.h [new file with mode: 0644]
zypp/solver/detail/Edition.cc [new file with mode: 0644]
zypp/solver/detail/Edition.h [new file with mode: 0644]
zypp/solver/detail/EditionPtr.h [new file with mode: 0644]
zypp/solver/detail/Hash.h [new file with mode: 0644]
zypp/solver/detail/Importance.cc [new file with mode: 0644]
zypp/solver/detail/Importance.h [new file with mode: 0644]
zypp/solver/detail/Makefile.am [new file with mode: 0644]
zypp/solver/detail/Match.cc [new file with mode: 0644]
zypp/solver/detail/Match.h [new file with mode: 0644]
zypp/solver/detail/MatchPtr.h [new file with mode: 0644]
zypp/solver/detail/MultiWorld.cc [new file with mode: 0644]
zypp/solver/detail/MultiWorld.h [new file with mode: 0644]
zypp/solver/detail/MultiWorldPtr.h [new file with mode: 0644]
zypp/solver/detail/OrDependency.cc [new file with mode: 0644]
zypp/solver/detail/OrDependency.h [new file with mode: 0644]
zypp/solver/detail/OrDependencyPtr.h [new file with mode: 0644]
zypp/solver/detail/Package.cc [new file with mode: 0644]
zypp/solver/detail/Package.h [new file with mode: 0644]
zypp/solver/detail/PackagePtr.h [new file with mode: 0644]
zypp/solver/detail/PackageUpdate.cc [new file with mode: 0644]
zypp/solver/detail/PackageUpdate.h [new file with mode: 0644]
zypp/solver/detail/PackageUpdatePtr.h [new file with mode: 0644]
zypp/solver/detail/Packman.cc [new file with mode: 0644]
zypp/solver/detail/Packman.h [new file with mode: 0644]
zypp/solver/detail/PackmanPtr.h [new file with mode: 0644]
zypp/solver/detail/Pending.cc [new file with mode: 0644]
zypp/solver/detail/Pending.h [new file with mode: 0644]
zypp/solver/detail/PendingPtr.h [new file with mode: 0644]
zypp/solver/detail/QueueItem.cc [new file with mode: 0644]
zypp/solver/detail/QueueItem.h [new file with mode: 0644]
zypp/solver/detail/QueueItemBranch.cc [new file with mode: 0644]
zypp/solver/detail/QueueItemBranch.h [new file with mode: 0644]
zypp/solver/detail/QueueItemBranchPtr.h [new file with mode: 0644]
zypp/solver/detail/QueueItemConflict.cc [new file with mode: 0644]
zypp/solver/detail/QueueItemConflict.h [new file with mode: 0644]
zypp/solver/detail/QueueItemConflictPtr.h [new file with mode: 0644]
zypp/solver/detail/QueueItemGroup.cc [new file with mode: 0644]
zypp/solver/detail/QueueItemGroup.h [new file with mode: 0644]
zypp/solver/detail/QueueItemGroupPtr.h [new file with mode: 0644]
zypp/solver/detail/QueueItemInstall.cc [new file with mode: 0644]
zypp/solver/detail/QueueItemInstall.h [new file with mode: 0644]
zypp/solver/detail/QueueItemInstallPtr.h [new file with mode: 0644]
zypp/solver/detail/QueueItemPtr.h [new file with mode: 0644]
zypp/solver/detail/QueueItemRequire.cc [new file with mode: 0644]
zypp/solver/detail/QueueItemRequire.h [new file with mode: 0644]
zypp/solver/detail/QueueItemRequirePtr.h [new file with mode: 0644]
zypp/solver/detail/QueueItemUninstall.cc [new file with mode: 0644]
zypp/solver/detail/QueueItemUninstall.h [new file with mode: 0644]
zypp/solver/detail/QueueItemUninstallPtr.h [new file with mode: 0644]
zypp/solver/detail/Resolvable.cc [new file with mode: 0644]
zypp/solver/detail/Resolvable.h [new file with mode: 0644]
zypp/solver/detail/ResolvableAndDependency.cc [new file with mode: 0644]
zypp/solver/detail/ResolvableAndDependency.h [new file with mode: 0644]
zypp/solver/detail/ResolvableAndDependencyPtr.h [new file with mode: 0644]
zypp/solver/detail/ResolvablePtr.h [new file with mode: 0644]
zypp/solver/detail/Resolver.cc [new file with mode: 0644]
zypp/solver/detail/Resolver.h [new file with mode: 0644]
zypp/solver/detail/ResolverContext.cc [new file with mode: 0644]
zypp/solver/detail/ResolverContext.h [new file with mode: 0644]
zypp/solver/detail/ResolverContextPtr.h [new file with mode: 0644]
zypp/solver/detail/ResolverInfo.cc [new file with mode: 0644]
zypp/solver/detail/ResolverInfo.h [new file with mode: 0644]
zypp/solver/detail/ResolverInfoChildOf.cc [new file with mode: 0644]
zypp/solver/detail/ResolverInfoChildOf.h [new file with mode: 0644]
zypp/solver/detail/ResolverInfoChildOfPtr.h [new file with mode: 0644]
zypp/solver/detail/ResolverInfoConflictsWith.cc [new file with mode: 0644]
zypp/solver/detail/ResolverInfoConflictsWith.h [new file with mode: 0644]
zypp/solver/detail/ResolverInfoConflictsWithPtr.h [new file with mode: 0644]
zypp/solver/detail/ResolverInfoContainer.cc [new file with mode: 0644]
zypp/solver/detail/ResolverInfoContainer.h [new file with mode: 0644]
zypp/solver/detail/ResolverInfoContainerPtr.h [new file with mode: 0644]
zypp/solver/detail/ResolverInfoDependsOn.cc [new file with mode: 0644]
zypp/solver/detail/ResolverInfoDependsOn.h [new file with mode: 0644]
zypp/solver/detail/ResolverInfoDependsOnPtr.h [new file with mode: 0644]
zypp/solver/detail/ResolverInfoMisc.cc [new file with mode: 0644]
zypp/solver/detail/ResolverInfoMisc.h [new file with mode: 0644]
zypp/solver/detail/ResolverInfoMiscPtr.h [new file with mode: 0644]
zypp/solver/detail/ResolverInfoMissingReq.cc [new file with mode: 0644]
zypp/solver/detail/ResolverInfoMissingReq.h [new file with mode: 0644]
zypp/solver/detail/ResolverInfoMissingReqPtr.h [new file with mode: 0644]
zypp/solver/detail/ResolverInfoNeededBy.cc [new file with mode: 0644]
zypp/solver/detail/ResolverInfoNeededBy.h [new file with mode: 0644]
zypp/solver/detail/ResolverInfoNeededByPtr.h [new file with mode: 0644]
zypp/solver/detail/ResolverInfoObsoletes.cc [new file with mode: 0644]
zypp/solver/detail/ResolverInfoObsoletes.h [new file with mode: 0644]
zypp/solver/detail/ResolverInfoObsoletesPtr.h [new file with mode: 0644]
zypp/solver/detail/ResolverInfoPtr.h [new file with mode: 0644]
zypp/solver/detail/ResolverPtr.h [new file with mode: 0644]
zypp/solver/detail/ResolverQueue.cc [new file with mode: 0644]
zypp/solver/detail/ResolverQueue.h [new file with mode: 0644]
zypp/solver/detail/ResolverQueuePtr.h [new file with mode: 0644]
zypp/solver/detail/Section.cc [new file with mode: 0644]
zypp/solver/detail/Section.h [new file with mode: 0644]
zypp/solver/detail/ServiceWorld.cc [new file with mode: 0644]
zypp/solver/detail/ServiceWorld.h [new file with mode: 0644]
zypp/solver/detail/ServiceWorldPtr.h [new file with mode: 0644]
zypp/solver/detail/Spec.cc [new file with mode: 0644]
zypp/solver/detail/Spec.h [new file with mode: 0644]
zypp/solver/detail/SpecPtr.h [new file with mode: 0644]
zypp/solver/detail/StoreWorld.cc [new file with mode: 0644]
zypp/solver/detail/StoreWorld.h [new file with mode: 0644]
zypp/solver/detail/StoreWorldPtr.h [new file with mode: 0644]
zypp/solver/detail/Subscription.cc [new file with mode: 0644]
zypp/solver/detail/Subscription.h [new file with mode: 0644]
zypp/solver/detail/UndumpWorld.cc [new file with mode: 0644]
zypp/solver/detail/UndumpWorld.h [new file with mode: 0644]
zypp/solver/detail/UndumpWorldPtr.h [new file with mode: 0644]
zypp/solver/detail/Version.cc [new file with mode: 0644]
zypp/solver/detail/Version.h [new file with mode: 0644]
zypp/solver/detail/World.cc [new file with mode: 0644]
zypp/solver/detail/World.h [new file with mode: 0644]
zypp/solver/detail/WorldPtr.h [new file with mode: 0644]
zypp/solver/detail/XmlNode.cc [new file with mode: 0644]
zypp/solver/detail/XmlNode.h [new file with mode: 0644]
zypp/solver/detail/XmlNodePtr.h [new file with mode: 0644]
zypp/solver/detail/XmlParser.cc [new file with mode: 0644]
zypp/solver/detail/XmlParser.h [new file with mode: 0644]
zypp/solver/detail/debug.cc [new file with mode: 0644]
zypp/solver/detail/debug.h [new file with mode: 0644]
zypp/solver/detail/extract.cc [new file with mode: 0644]
zypp/solver/detail/extract.h [new file with mode: 0644]
zypp/solver/detail/libzypp_solver.h [new file with mode: 0644]
zypp/solver/detail/utils.cc [new file with mode: 0644]
zypp/solver/detail/utils.h [new file with mode: 0644]
zypp/solver/testsuite/.deps/deptestomatic.Po [new file with mode: 0644]
zypp/solver/testsuite/.deps/deptestomatic_multi.Po [new file with mode: 0644]
zypp/solver/testsuite/.deps/edition.Po [new file with mode: 0644]
zypp/solver/testsuite/.deps/edition_single.Po [new file with mode: 0644]
zypp/solver/testsuite/.deps/spec.Po [new file with mode: 0644]
zypp/solver/testsuite/.deps/spec_single.Po [new file with mode: 0644]
zypp/solver/testsuite/.deps/utils.Po [new file with mode: 0644]
zypp/solver/testsuite/.deps/utils_single.Po [new file with mode: 0644]
zypp/solver/testsuite/Makefile.am [new file with mode: 0644]
zypp/solver/testsuite/config/Makefile.am [new file with mode: 0644]
zypp/solver/testsuite/config/default.exp [new file with mode: 0644]
zypp/solver/testsuite/config/unix.exp [new file with mode: 0644]
zypp/solver/testsuite/config/unknown.exp [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/README [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-1-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-1-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-1-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-1-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-1-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-1-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-2-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-2-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-2-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-2-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-2-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-2-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-3-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-3-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-3-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-3-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-3-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-3-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-4-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-4-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-4-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-4-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-4-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-4-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-5-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-5-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-5-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-5-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-5-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-5-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-6-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-6-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-6-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-6-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-6-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-6-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-7-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-7-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-7-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-7-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-7-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-7-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-8-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-8-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-8-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-8-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-8-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-8-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-9-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-9-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-9-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-9-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-9-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-9-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-packages.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-packages.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-packages.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-system.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-system.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-01simple-system.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-01-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-01-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-01-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-01-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-01-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-01-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-02-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-02-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-02-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-02-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-02-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-02-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-03-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-03-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-03-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-03-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-03-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-03-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-04-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-04-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-04-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-04-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-04-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-04-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-05-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-05-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-05-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-05-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-05-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-05-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-06-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-06-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-06-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-06-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-06-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-06-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-07-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-07-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-07-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-07-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-07-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-07-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-08-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-08-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-08-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-08-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-08-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-08-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-09-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-09-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-09-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-09-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-09-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-09-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-10-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-10-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-10-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-10-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-10-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-10-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-11-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-11-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-11-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-11-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-11-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-11-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-12-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-12-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-12-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-12-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-12-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-12-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-13-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-13-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-13-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-13-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-13-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-13-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-14-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-14-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-14-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-14-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-14-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-14-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-packages.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-packages.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-packages.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-system.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-system.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-02conflict-system.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-03alternatives-packages.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-03alternatives-packages.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-03alternatives-packages.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-03alternatives-system.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-03alternatives-system.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-03alternatives-system.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-01-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-01-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-01-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-01-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-01-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-01-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-02-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-02-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-02-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-02-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-02-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-02-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-03-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-03-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-03-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-04-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-04-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-04-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-04-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-04-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-04-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-05-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-05-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-05-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-05-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-05-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-05-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-06-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-06-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-06-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-06-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-06-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-06-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-07-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-07-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-07-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-07-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-07-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-07-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-08-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-08-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-08-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-08-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-08-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-08-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-09-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-09-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-09-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-09-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-09-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-09-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-10-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-10-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-10-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-10-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-10-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-10-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-11-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-11-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-11-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-11-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-11-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-11-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-packages.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-packages.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-packages.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-system.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-system.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-system.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-1-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-1-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-1-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-1-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-1-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-1-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-2-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-2-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-2-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-2-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-2-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-2-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-3-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-3-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-3-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-3-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-3-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-3-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-4-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-4-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-4-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-4-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-4-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-4-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-packages.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-packages.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-packages.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-system.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-system.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-05reallive-system.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-06upgrade-packages.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-06upgrade-packages.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-06upgrade-packages.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-06upgrade-system.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-06upgrade-system.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-06upgrade-system.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-06upgrade-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-06upgrade-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-06upgrade-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-06upgrade-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-06upgrade-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-06upgrade-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-1-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-1-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-1-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-1-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-1-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-1-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-2-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-2-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-2-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-2-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-2-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-2-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-3-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-3-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-3-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-3-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-3-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-3-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-4-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-4-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-4-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-4-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-4-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-4-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-packages.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-packages.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-packages.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-system.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-system.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-alternatives-system.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-1-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-1-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-1-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-1-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-1-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-1-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-2-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-2-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-2-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-2-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-2-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-2-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-3-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-3-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-3-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-3-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-3-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-3-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-4-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-4-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-4-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-4-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-4-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-4-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-5-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-5-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-5-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-5-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-5-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-5-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-packages.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-packages.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-packages.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-system.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-system.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-bug21829-system.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-corcircle-packages.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-corcircle-packages.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-corcircle-packages.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-corcircle-system.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-corcircle-system.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-corcircle-system.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-corcircle-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-corcircle-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-corcircle-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-corcircle-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-corcircle-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-corcircle-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-packages.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-packages.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-packages.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-system.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-system.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-system.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-packages.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-packages.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-packages.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-system.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-system.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-system.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-packages.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-packages.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-packages.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-system.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-system.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-system.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-packages.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-packages.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-packages.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-system.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-system.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-system.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-packages.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-packages.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-packages.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-system.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-system.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-system.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-packages.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-packages.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-packages.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-system.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-system.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-system.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-packages.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-packages.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-packages.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-system.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-system.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-system.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-01-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-01-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-01-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-01-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-01-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-01-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-02-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-02-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-02-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-03-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-03-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-03-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-04-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-04-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-04-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-05-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-05-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-05-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-05-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-05-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-05-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-06-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-06-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-06-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-07-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-07-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-07-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-07-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-07-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-07-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-08-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-08-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-08-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-08-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-08-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-08-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-09-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-09-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-09-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-09-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-09-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-09-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-10-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-10-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-10-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-10-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-10-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-10-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-11-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-11-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-11-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-11-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-11-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-11-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-packages.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-packages.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-packages.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-system.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-system.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-system.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-packages.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-packages.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-packages.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-system.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-system.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-system.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-xfree-packages.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-xfree-packages.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-xfree-packages.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-xfree-system.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-xfree-system.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-xfree-system.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-xfree-test.diff [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-xfree-test.err [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-xfree-test.mistake [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-xfree-test.out [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-xfree-test.solution [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/exercise-xfree-test.xml [new file with mode: 0644]
zypp/solver/testsuite/deptestomatic/makesolution.sh [new file with mode: 0755]
zypp/solver/testsuite/deptestomatic_multi.cc [new file with mode: 0644]
zypp/solver/testsuite/edition_single.cc [new file with mode: 0644]
zypp/solver/testsuite/lib/Makefile.am [new file with mode: 0644]
zypp/solver/testsuite/lib/solver_init.exp [new file with mode: 0644]
zypp/solver/testsuite/libzypp_solver.test/Makefile.am [new file with mode: 0644]
zypp/solver/testsuite/libzypp_solver.test/multi_test.exp [new file with mode: 0644]
zypp/solver/testsuite/libzypp_solver.test/single_test.exp [new file with mode: 0644]
zypp/solver/testsuite/single.out/Makefile.am [new file with mode: 0644]
zypp/solver/testsuite/single.out/edition.err [new file with mode: 0644]
zypp/solver/testsuite/single.out/edition.out [new file with mode: 0644]
zypp/solver/testsuite/single.out/spec.err [new file with mode: 0644]
zypp/solver/testsuite/single.out/spec.out [new file with mode: 0644]
zypp/solver/testsuite/single.out/utils.err [new file with mode: 0644]
zypp/solver/testsuite/single.out/utils.out [new file with mode: 0644]
zypp/solver/testsuite/spec_single.cc [new file with mode: 0644]
zypp/solver/testsuite/utils_single.cc [new file with mode: 0644]

index 350656d..650c127 100644 (file)
@@ -1,7 +1,7 @@
 ## Process this file with automake to produce Makefile.in
 ## ##################################################
 
-SUBDIRS =
+SUBDIRS = detail
 
 ## ##################################################
 
diff --git a/zypp/solver/detail/.deps/Arch.Plo b/zypp/solver/detail/.deps/Arch.Plo
new file mode 100644 (file)
index 0000000..b7de3ec
--- /dev/null
@@ -0,0 +1,400 @@
+Arch.lo Arch.o: Arch.cc /usr/include/YaST2/y2util/stringutil.h \
+  /usr/include/c++/4.0.2/cstdio \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/stdio.h /usr/include/bits/types.h \
+  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
+  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+  /usr/include/bits/wchar.h /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/cstdarg \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/string.h \
+  /usr/include/xlocale.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/vector \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_vector.h \
+  /usr/include/c++/4.0.2/bits/stl_bvector.h \
+  /usr/include/c++/4.0.2/bits/vector.tcc /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/bits/char_traits.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/list /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc /usr/include/sys/utsname.h \
+  /usr/include/bits/utsname.h ../../../zypp/solver/detail/Arch.h \
+  /usr/include/c++/4.0.2/map /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/utils.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h
+
+/usr/include/YaST2/y2util/stringutil.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/cstdarg:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/vector:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_vector.h:
+
+/usr/include/c++/4.0.2/bits/stl_bvector.h:
+
+/usr/include/c++/4.0.2/bits/vector.tcc:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+/usr/include/sys/utsname.h:
+
+/usr/include/bits/utsname.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/utils.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
diff --git a/zypp/solver/detail/.deps/Channel.Plo b/zypp/solver/detail/.deps/Channel.Plo
new file mode 100644 (file)
index 0000000..53fbc5b
--- /dev/null
@@ -0,0 +1,571 @@
+Channel.lo Channel.o: Channel.cc /usr/include/YaST2/y2util/stringutil.h \
+  /usr/include/c++/4.0.2/cstdio \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/stdio.h /usr/include/bits/types.h \
+  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
+  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+  /usr/include/bits/wchar.h /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/cstdarg \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/string.h \
+  /usr/include/xlocale.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/vector \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_vector.h \
+  /usr/include/c++/4.0.2/bits/stl_bvector.h \
+  /usr/include/c++/4.0.2/bits/vector.tcc /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/bits/char_traits.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/list /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/Channel.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/World.h \
+  ../../../zypp/solver/detail/MultiWorldPtr.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/Match.h \
+  ../../../zypp/solver/detail/MatchPtr.h \
+  ../../../zypp/solver/detail/Importance.h \
+  ../../../zypp/solver/detail/Pending.h \
+  ../../../zypp/solver/detail/PendingPtr.h \
+  ../../../zypp/solver/detail/Packman.h \
+  ../../../zypp/solver/detail/PackmanPtr.h \
+  ../../../zypp/solver/detail/Package.h \
+  ../../../zypp/solver/detail/PackagePtr.h \
+  ../../../zypp/solver/detail/PackageUpdatePtr.h \
+  ../../../zypp/solver/detail/Section.h \
+  ../../../zypp/solver/detail/PackageUpdate.h
+
+/usr/include/YaST2/y2util/stringutil.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/cstdarg:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/vector:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_vector.h:
+
+/usr/include/c++/4.0.2/bits/stl_bvector.h:
+
+/usr/include/c++/4.0.2/bits/vector.tcc:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/Channel.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/World.h:
+
+../../../zypp/solver/detail/MultiWorldPtr.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/Match.h:
+
+../../../zypp/solver/detail/MatchPtr.h:
+
+../../../zypp/solver/detail/Importance.h:
+
+../../../zypp/solver/detail/Pending.h:
+
+../../../zypp/solver/detail/PendingPtr.h:
+
+../../../zypp/solver/detail/Packman.h:
+
+../../../zypp/solver/detail/PackmanPtr.h:
+
+../../../zypp/solver/detail/Package.h:
+
+../../../zypp/solver/detail/PackagePtr.h:
+
+../../../zypp/solver/detail/PackageUpdatePtr.h:
+
+../../../zypp/solver/detail/Section.h:
+
+../../../zypp/solver/detail/PackageUpdate.h:
diff --git a/zypp/solver/detail/.deps/Dependency.Plo b/zypp/solver/detail/.deps/Dependency.Plo
new file mode 100644 (file)
index 0000000..c961eda
--- /dev/null
@@ -0,0 +1,526 @@
+Dependency.lo Dependency.o: Dependency.cc \
+  /usr/include/YaST2/y2util/stringutil.h /usr/include/c++/4.0.2/cstdio \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/stdio.h /usr/include/bits/types.h \
+  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
+  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+  /usr/include/bits/wchar.h /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/cstdarg \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/string.h \
+  /usr/include/xlocale.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/vector \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_vector.h \
+  /usr/include/c++/4.0.2/bits/stl_bvector.h \
+  /usr/include/c++/4.0.2/bits/vector.tcc /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/bits/char_traits.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/list /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/Dependency.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/OrDependency.h \
+  ../../../zypp/solver/detail/Version.h
+
+/usr/include/YaST2/y2util/stringutil.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/cstdarg:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/vector:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_vector.h:
+
+/usr/include/c++/4.0.2/bits/stl_bvector.h:
+
+/usr/include/c++/4.0.2/bits/vector.tcc:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/Dependency.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/OrDependency.h:
+
+../../../zypp/solver/detail/Version.h:
diff --git a/zypp/solver/detail/.deps/Edition.Plo b/zypp/solver/detail/.deps/Edition.Plo
new file mode 100644 (file)
index 0000000..13ceedd
--- /dev/null
@@ -0,0 +1,505 @@
+Edition.lo Edition.o: Edition.cc /usr/include/YaST2/y2util/stringutil.h \
+  /usr/include/c++/4.0.2/cstdio \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/stdio.h /usr/include/bits/types.h \
+  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
+  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+  /usr/include/bits/wchar.h /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/cstdarg \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/string.h \
+  /usr/include/xlocale.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/vector \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_vector.h \
+  /usr/include/c++/4.0.2/bits/stl_bvector.h \
+  /usr/include/c++/4.0.2/bits/vector.tcc /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/bits/char_traits.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/list /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/Edition.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/Arch.h /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/Version.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h
+
+/usr/include/YaST2/y2util/stringutil.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/cstdarg:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/vector:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_vector.h:
+
+/usr/include/c++/4.0.2/bits/stl_bvector.h:
+
+/usr/include/c++/4.0.2/bits/vector.tcc:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/Edition.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/Version.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
diff --git a/zypp/solver/detail/.deps/Importance.Plo b/zypp/solver/detail/.deps/Importance.Plo
new file mode 100644 (file)
index 0000000..460da13
--- /dev/null
@@ -0,0 +1,412 @@
+Importance.lo Importance.o: Importance.cc \
+  /usr/include/YaST2/y2util/stringutil.h /usr/include/c++/4.0.2/cstdio \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/stdio.h /usr/include/bits/types.h \
+  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
+  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+  /usr/include/bits/wchar.h /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/cstdarg \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/string.h \
+  /usr/include/xlocale.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/vector \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_vector.h \
+  /usr/include/c++/4.0.2/bits/stl_bvector.h \
+  /usr/include/c++/4.0.2/bits/vector.tcc /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/bits/char_traits.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/list /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/Importance.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/debug.h
+
+/usr/include/YaST2/y2util/stringutil.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/cstdarg:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/vector:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_vector.h:
+
+/usr/include/c++/4.0.2/bits/stl_bvector.h:
+
+/usr/include/c++/4.0.2/bits/vector.tcc:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/Importance.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/debug.h:
diff --git a/zypp/solver/detail/.deps/Match.Plo b/zypp/solver/detail/.deps/Match.Plo
new file mode 100644 (file)
index 0000000..3c22bd7
--- /dev/null
@@ -0,0 +1,570 @@
+Match.lo Match.o: Match.cc /usr/include/YaST2/y2util/stringutil.h \
+  /usr/include/c++/4.0.2/cstdio \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/stdio.h /usr/include/bits/types.h \
+  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
+  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+  /usr/include/bits/wchar.h /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/cstdarg \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/string.h \
+  /usr/include/xlocale.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/vector \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_vector.h \
+  /usr/include/c++/4.0.2/bits/stl_bvector.h \
+  /usr/include/c++/4.0.2/bits/vector.tcc /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/bits/char_traits.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/list /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/Match.h /usr/include/YaST2/y2util/Ustring.h \
+  /usr/include/c++/4.0.2/iostream /usr/include/c++/4.0.2/ostream \
+  /usr/include/c++/4.0.2/ios /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/MatchPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/Arch.h /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/Importance.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/World.h \
+  ../../../zypp/solver/detail/MultiWorldPtr.h \
+  ../../../zypp/solver/detail/Pending.h \
+  ../../../zypp/solver/detail/PendingPtr.h \
+  ../../../zypp/solver/detail/Packman.h \
+  ../../../zypp/solver/detail/PackmanPtr.h \
+  ../../../zypp/solver/detail/Package.h \
+  ../../../zypp/solver/detail/PackagePtr.h \
+  ../../../zypp/solver/detail/PackageUpdatePtr.h \
+  ../../../zypp/solver/detail/Section.h \
+  ../../../zypp/solver/detail/PackageUpdate.h
+
+/usr/include/YaST2/y2util/stringutil.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/cstdarg:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/vector:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_vector.h:
+
+/usr/include/c++/4.0.2/bits/stl_bvector.h:
+
+/usr/include/c++/4.0.2/bits/vector.tcc:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/Match.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/MatchPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/Importance.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/World.h:
+
+../../../zypp/solver/detail/MultiWorldPtr.h:
+
+../../../zypp/solver/detail/Pending.h:
+
+../../../zypp/solver/detail/PendingPtr.h:
+
+../../../zypp/solver/detail/Packman.h:
+
+../../../zypp/solver/detail/PackmanPtr.h:
+
+../../../zypp/solver/detail/Package.h:
+
+../../../zypp/solver/detail/PackagePtr.h:
+
+../../../zypp/solver/detail/PackageUpdatePtr.h:
+
+../../../zypp/solver/detail/Section.h:
+
+../../../zypp/solver/detail/PackageUpdate.h:
diff --git a/zypp/solver/detail/.deps/MultiWorld.Plo b/zypp/solver/detail/.deps/MultiWorld.Plo
new file mode 100644 (file)
index 0000000..e648deb
--- /dev/null
@@ -0,0 +1,589 @@
+MultiWorld.lo MultiWorld.o: MultiWorld.cc \
+  /usr/include/YaST2/y2util/stringutil.h /usr/include/c++/4.0.2/cstdio \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/stdio.h /usr/include/bits/types.h \
+  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
+  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+  /usr/include/bits/wchar.h /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/cstdarg \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/string.h \
+  /usr/include/xlocale.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/vector \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_vector.h \
+  /usr/include/c++/4.0.2/bits/stl_bvector.h \
+  /usr/include/c++/4.0.2/bits/vector.tcc /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/bits/char_traits.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/list /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/MultiWorld.h \
+  ../../../zypp/solver/detail/MultiWorldPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/ServiceWorldPtr.h \
+  ../../../zypp/solver/detail/World.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/Match.h \
+  ../../../zypp/solver/detail/MatchPtr.h \
+  ../../../zypp/solver/detail/Importance.h \
+  ../../../zypp/solver/detail/Pending.h \
+  ../../../zypp/solver/detail/PendingPtr.h \
+  ../../../zypp/solver/detail/Packman.h \
+  ../../../zypp/solver/detail/PackmanPtr.h \
+  ../../../zypp/solver/detail/Package.h \
+  ../../../zypp/solver/detail/PackagePtr.h \
+  ../../../zypp/solver/detail/PackageUpdatePtr.h \
+  ../../../zypp/solver/detail/Section.h \
+  ../../../zypp/solver/detail/PackageUpdate.h \
+  ../../../zypp/solver/detail/ServiceWorld.h \
+  ../../../zypp/solver/detail/StoreWorld.h \
+  ../../../zypp/solver/detail/ResolvableAndDependency.h \
+  ../../../zypp/solver/detail/ResolvableAndDependencyPtr.h
+
+/usr/include/YaST2/y2util/stringutil.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/cstdarg:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/vector:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_vector.h:
+
+/usr/include/c++/4.0.2/bits/stl_bvector.h:
+
+/usr/include/c++/4.0.2/bits/vector.tcc:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/MultiWorld.h:
+
+../../../zypp/solver/detail/MultiWorldPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/ServiceWorldPtr.h:
+
+../../../zypp/solver/detail/World.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/Match.h:
+
+../../../zypp/solver/detail/MatchPtr.h:
+
+../../../zypp/solver/detail/Importance.h:
+
+../../../zypp/solver/detail/Pending.h:
+
+../../../zypp/solver/detail/PendingPtr.h:
+
+../../../zypp/solver/detail/Packman.h:
+
+../../../zypp/solver/detail/PackmanPtr.h:
+
+../../../zypp/solver/detail/Package.h:
+
+../../../zypp/solver/detail/PackagePtr.h:
+
+../../../zypp/solver/detail/PackageUpdatePtr.h:
+
+../../../zypp/solver/detail/Section.h:
+
+../../../zypp/solver/detail/PackageUpdate.h:
+
+../../../zypp/solver/detail/ServiceWorld.h:
+
+../../../zypp/solver/detail/StoreWorld.h:
+
+../../../zypp/solver/detail/ResolvableAndDependency.h:
+
+../../../zypp/solver/detail/ResolvableAndDependencyPtr.h:
diff --git a/zypp/solver/detail/.deps/OrDependency.Plo b/zypp/solver/detail/.deps/OrDependency.Plo
new file mode 100644 (file)
index 0000000..3033399
--- /dev/null
@@ -0,0 +1,523 @@
+OrDependency.lo OrDependency.o: OrDependency.cc \
+  /usr/include/YaST2/y2util/stringutil.h /usr/include/c++/4.0.2/cstdio \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/stdio.h /usr/include/bits/types.h \
+  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
+  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+  /usr/include/bits/wchar.h /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/cstdarg \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/string.h \
+  /usr/include/xlocale.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/vector \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_vector.h \
+  /usr/include/c++/4.0.2/bits/stl_bvector.h \
+  /usr/include/c++/4.0.2/bits/vector.tcc /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/bits/char_traits.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/list /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/OrDependency.h /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h
+
+/usr/include/YaST2/y2util/stringutil.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/cstdarg:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/vector:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_vector.h:
+
+/usr/include/c++/4.0.2/bits/stl_bvector.h:
+
+/usr/include/c++/4.0.2/bits/vector.tcc:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/OrDependency.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
diff --git a/zypp/solver/detail/.deps/Package.Plo b/zypp/solver/detail/.deps/Package.Plo
new file mode 100644 (file)
index 0000000..1756ebe
--- /dev/null
@@ -0,0 +1,560 @@
+Package.lo Package.o: Package.cc ../../../zypp/solver/detail/utils.h \
+  /usr/include/sys/types.h /usr/include/features.h \
+  /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/bits/typesizes.h /usr/include/time.h /usr/include/endian.h \
+  /usr/include/bits/endian.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/bits/sigset.h \
+  /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/sched.h \
+  /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/c++/4.0.2/cstddef \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/bits/stdio_lim.h /usr/include/c++/4.0.2/cstdlib \
+  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+  /usr/include/bits/waitstatus.h /usr/include/alloca.h \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+  /usr/include/c++/4.0.2/clocale /usr/include/locale.h \
+  /usr/include/bits/locale.h /usr/include/langinfo.h \
+  /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/signal.h \
+  /usr/include/bits/initspin.h /usr/include/bits/sigthread.h \
+  /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+  /usr/include/bits/environments.h /usr/include/bits/confname.h \
+  /usr/include/getopt.h /usr/include/c++/4.0.2/cctype \
+  /usr/include/ctype.h /usr/include/c++/4.0.2/bits/postypes.h \
+  /usr/include/c++/4.0.2/cwchar /usr/include/c++/4.0.2/ctime \
+  /usr/include/stdint.h /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/Version.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Spec.h /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/Package.h \
+  ../../../zypp/solver/detail/PackagePtr.h \
+  ../../../zypp/solver/detail/PackageUpdatePtr.h \
+  ../../../zypp/solver/detail/Section.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/PackageUpdate.h \
+  ../../../zypp/solver/detail/Importance.h \
+  ../../../zypp/solver/detail/World.h \
+  ../../../zypp/solver/detail/MultiWorldPtr.h \
+  ../../../zypp/solver/detail/Match.h \
+  ../../../zypp/solver/detail/MatchPtr.h \
+  ../../../zypp/solver/detail/Pending.h \
+  ../../../zypp/solver/detail/PendingPtr.h \
+  ../../../zypp/solver/detail/Packman.h \
+  ../../../zypp/solver/detail/PackmanPtr.h
+
+../../../zypp/solver/detail/utils.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/Version.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/Package.h:
+
+../../../zypp/solver/detail/PackagePtr.h:
+
+../../../zypp/solver/detail/PackageUpdatePtr.h:
+
+../../../zypp/solver/detail/Section.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/PackageUpdate.h:
+
+../../../zypp/solver/detail/Importance.h:
+
+../../../zypp/solver/detail/World.h:
+
+../../../zypp/solver/detail/MultiWorldPtr.h:
+
+../../../zypp/solver/detail/Match.h:
+
+../../../zypp/solver/detail/MatchPtr.h:
+
+../../../zypp/solver/detail/Pending.h:
+
+../../../zypp/solver/detail/PendingPtr.h:
+
+../../../zypp/solver/detail/Packman.h:
+
+../../../zypp/solver/detail/PackmanPtr.h:
diff --git a/zypp/solver/detail/.deps/PackageUpdate.Plo b/zypp/solver/detail/.deps/PackageUpdate.Plo
new file mode 100644 (file)
index 0000000..bdadb02
--- /dev/null
@@ -0,0 +1,552 @@
+PackageUpdate.lo PackageUpdate.o: PackageUpdate.cc \
+  /usr/include/YaST2/y2util/stringutil.h /usr/include/c++/4.0.2/cstdio \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/stdio.h /usr/include/bits/types.h \
+  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
+  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+  /usr/include/bits/wchar.h /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/cstdarg \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/string.h \
+  /usr/include/xlocale.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/vector \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_vector.h \
+  /usr/include/c++/4.0.2/bits/stl_bvector.h \
+  /usr/include/c++/4.0.2/bits/vector.tcc /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/bits/char_traits.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/list /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc /usr/include/libgen.h \
+  ../../../zypp/solver/detail/utils.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/PackageUpdate.h \
+  ../../../zypp/solver/detail/PackageUpdatePtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/Spec.h /usr/include/YaST2/y2util/Ustring.h \
+  /usr/include/c++/4.0.2/iostream /usr/include/c++/4.0.2/ostream \
+  /usr/include/c++/4.0.2/ios /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/PackagePtr.h \
+  ../../../zypp/solver/detail/Importance.h \
+  ../../../zypp/solver/detail/Package.h \
+  ../../../zypp/solver/detail/Section.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h
+
+/usr/include/YaST2/y2util/stringutil.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/cstdarg:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/vector:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_vector.h:
+
+/usr/include/c++/4.0.2/bits/stl_bvector.h:
+
+/usr/include/c++/4.0.2/bits/vector.tcc:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+/usr/include/libgen.h:
+
+../../../zypp/solver/detail/utils.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/PackageUpdate.h:
+
+../../../zypp/solver/detail/PackageUpdatePtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/PackagePtr.h:
+
+../../../zypp/solver/detail/Importance.h:
+
+../../../zypp/solver/detail/Package.h:
+
+../../../zypp/solver/detail/Section.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
diff --git a/zypp/solver/detail/.deps/Packman.Plo b/zypp/solver/detail/.deps/Packman.Plo
new file mode 100644 (file)
index 0000000..7cbfd2d
--- /dev/null
@@ -0,0 +1,333 @@
+Packman.lo Packman.o: Packman.cc /usr/include/YaST2/y2util/stringutil.h \
+  /usr/include/c++/4.0.2/cstdio \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/stdio.h /usr/include/bits/types.h \
+  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
+  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+  /usr/include/bits/wchar.h /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/cstdarg \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/string.h \
+  /usr/include/xlocale.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/vector \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_vector.h \
+  /usr/include/c++/4.0.2/bits/stl_bvector.h \
+  /usr/include/c++/4.0.2/bits/vector.tcc /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/bits/char_traits.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/list /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/Packman.h \
+  ../../../zypp/solver/detail/PackmanPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/debug.h
+
+/usr/include/YaST2/y2util/stringutil.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/cstdarg:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/vector:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_vector.h:
+
+/usr/include/c++/4.0.2/bits/stl_bvector.h:
+
+/usr/include/c++/4.0.2/bits/vector.tcc:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/Packman.h:
+
+../../../zypp/solver/detail/PackmanPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/debug.h:
diff --git a/zypp/solver/detail/.deps/Pending.Plo b/zypp/solver/detail/.deps/Pending.Plo
new file mode 100644 (file)
index 0000000..e06d107
--- /dev/null
@@ -0,0 +1,313 @@
+Pending.lo Pending.o: Pending.cc ../../../zypp/solver/detail/Pending.h \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/bits/char_traits.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  ../../../zypp/solver/detail/PendingPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h
+
+../../../zypp/solver/detail/Pending.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+../../../zypp/solver/detail/PendingPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
diff --git a/zypp/solver/detail/.deps/QueueItem.Plo b/zypp/solver/detail/.deps/QueueItem.Plo
new file mode 100644 (file)
index 0000000..7afeab1
--- /dev/null
@@ -0,0 +1,531 @@
+QueueItem.lo QueueItem.o: QueueItem.cc \
+  ../../../zypp/solver/detail/QueueItem.h /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/QueueItemPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/ResolverContextPtr.h \
+  ../../../zypp/solver/detail/ResolverInfo.h /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/ResolverInfoPtr.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/string /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h \
+  ../../../zypp/solver/detail/ResolverContext.h
+
+../../../zypp/solver/detail/QueueItem.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/QueueItemPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/ResolverContextPtr.h:
+
+../../../zypp/solver/detail/ResolverInfo.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/ResolverInfoPtr.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+../../../zypp/solver/detail/ResolverContext.h:
diff --git a/zypp/solver/detail/.deps/QueueItemBranch.Plo b/zypp/solver/detail/.deps/QueueItemBranch.Plo
new file mode 100644 (file)
index 0000000..0957b5d
--- /dev/null
@@ -0,0 +1,547 @@
+QueueItemBranch.lo QueueItemBranch.o: QueueItemBranch.cc \
+  ../../../zypp/solver/detail/QueueItemBranch.h \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/QueueItemBranchPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/QueueItem.h \
+  ../../../zypp/solver/detail/QueueItemPtr.h \
+  ../../../zypp/solver/detail/ResolverContextPtr.h \
+  ../../../zypp/solver/detail/ResolverInfo.h /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/ResolverInfoPtr.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/string /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h \
+  ../../../zypp/solver/detail/Resolver.h \
+  ../../../zypp/solver/detail/ResolverPtr.h \
+  ../../../zypp/solver/detail/ResolverQueue.h \
+  ../../../zypp/solver/detail/ResolverQueuePtr.h
+
+../../../zypp/solver/detail/QueueItemBranch.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/QueueItemBranchPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/QueueItem.h:
+
+../../../zypp/solver/detail/QueueItemPtr.h:
+
+../../../zypp/solver/detail/ResolverContextPtr.h:
+
+../../../zypp/solver/detail/ResolverInfo.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/ResolverInfoPtr.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+../../../zypp/solver/detail/Resolver.h:
+
+../../../zypp/solver/detail/ResolverPtr.h:
+
+../../../zypp/solver/detail/ResolverQueue.h:
+
+../../../zypp/solver/detail/ResolverQueuePtr.h:
diff --git a/zypp/solver/detail/.deps/QueueItemConflict.Plo b/zypp/solver/detail/.deps/QueueItemConflict.Plo
new file mode 100644 (file)
index 0000000..486fd5f
--- /dev/null
@@ -0,0 +1,627 @@
+QueueItemConflict.lo QueueItemConflict.o: QueueItemConflict.cc \
+  ../../../config.h ../../../zypp/solver/detail/QueueItemConflict.h \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/QueueItemConflictPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/QueueItem.h \
+  ../../../zypp/solver/detail/QueueItemPtr.h \
+  ../../../zypp/solver/detail/ResolverContextPtr.h \
+  ../../../zypp/solver/detail/ResolverInfo.h /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/ResolverInfoPtr.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/string /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h \
+  ../../../zypp/solver/detail/QueueItemBranch.h \
+  ../../../zypp/solver/detail/QueueItemBranchPtr.h \
+  ../../../zypp/solver/detail/QueueItemInstall.h \
+  ../../../zypp/solver/detail/QueueItemInstallPtr.h \
+  ../../../zypp/solver/detail/QueueItemUninstall.h \
+  ../../../zypp/solver/detail/QueueItemUninstallPtr.h \
+  ../../../zypp/solver/detail/Version.h \
+  ../../../zypp/solver/detail/World.h \
+  ../../../zypp/solver/detail/MultiWorldPtr.h \
+  ../../../zypp/solver/detail/Match.h \
+  ../../../zypp/solver/detail/MatchPtr.h \
+  ../../../zypp/solver/detail/Importance.h \
+  ../../../zypp/solver/detail/Pending.h \
+  ../../../zypp/solver/detail/PendingPtr.h \
+  ../../../zypp/solver/detail/Packman.h \
+  ../../../zypp/solver/detail/PackmanPtr.h \
+  ../../../zypp/solver/detail/Package.h \
+  ../../../zypp/solver/detail/PackagePtr.h \
+  ../../../zypp/solver/detail/PackageUpdatePtr.h \
+  ../../../zypp/solver/detail/Section.h \
+  ../../../zypp/solver/detail/PackageUpdate.h \
+  ../../../zypp/solver/detail/ResolverContext.h \
+  ../../../zypp/solver/detail/ResolverInfoConflictsWith.h \
+  ../../../zypp/solver/detail/ResolverInfoConflictsWithPtr.h \
+  ../../../zypp/solver/detail/ResolverInfoContainer.h \
+  ../../../zypp/solver/detail/ResolverInfoContainerPtr.h \
+  ../../../zypp/solver/detail/ResolverInfoMisc.h \
+  ../../../zypp/solver/detail/ResolverInfoMiscPtr.h \
+  ../../../zypp/solver/detail/ResolverInfoObsoletes.h \
+  ../../../zypp/solver/detail/ResolverInfoObsoletesPtr.h
+
+../../../config.h:
+
+../../../zypp/solver/detail/QueueItemConflict.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/QueueItemConflictPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/QueueItem.h:
+
+../../../zypp/solver/detail/QueueItemPtr.h:
+
+../../../zypp/solver/detail/ResolverContextPtr.h:
+
+../../../zypp/solver/detail/ResolverInfo.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/ResolverInfoPtr.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+../../../zypp/solver/detail/QueueItemBranch.h:
+
+../../../zypp/solver/detail/QueueItemBranchPtr.h:
+
+../../../zypp/solver/detail/QueueItemInstall.h:
+
+../../../zypp/solver/detail/QueueItemInstallPtr.h:
+
+../../../zypp/solver/detail/QueueItemUninstall.h:
+
+../../../zypp/solver/detail/QueueItemUninstallPtr.h:
+
+../../../zypp/solver/detail/Version.h:
+
+../../../zypp/solver/detail/World.h:
+
+../../../zypp/solver/detail/MultiWorldPtr.h:
+
+../../../zypp/solver/detail/Match.h:
+
+../../../zypp/solver/detail/MatchPtr.h:
+
+../../../zypp/solver/detail/Importance.h:
+
+../../../zypp/solver/detail/Pending.h:
+
+../../../zypp/solver/detail/PendingPtr.h:
+
+../../../zypp/solver/detail/Packman.h:
+
+../../../zypp/solver/detail/PackmanPtr.h:
+
+../../../zypp/solver/detail/Package.h:
+
+../../../zypp/solver/detail/PackagePtr.h:
+
+../../../zypp/solver/detail/PackageUpdatePtr.h:
+
+../../../zypp/solver/detail/Section.h:
+
+../../../zypp/solver/detail/PackageUpdate.h:
+
+../../../zypp/solver/detail/ResolverContext.h:
+
+../../../zypp/solver/detail/ResolverInfoConflictsWith.h:
+
+../../../zypp/solver/detail/ResolverInfoConflictsWithPtr.h:
+
+../../../zypp/solver/detail/ResolverInfoContainer.h:
+
+../../../zypp/solver/detail/ResolverInfoContainerPtr.h:
+
+../../../zypp/solver/detail/ResolverInfoMisc.h:
+
+../../../zypp/solver/detail/ResolverInfoMiscPtr.h:
+
+../../../zypp/solver/detail/ResolverInfoObsoletes.h:
+
+../../../zypp/solver/detail/ResolverInfoObsoletesPtr.h:
diff --git a/zypp/solver/detail/.deps/QueueItemGroup.Plo b/zypp/solver/detail/.deps/QueueItemGroup.Plo
new file mode 100644 (file)
index 0000000..c7c40ed
--- /dev/null
@@ -0,0 +1,535 @@
+QueueItemGroup.lo QueueItemGroup.o: QueueItemGroup.cc \
+  ../../../zypp/solver/detail/QueueItemGroup.h \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/QueueItemGroupPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/QueueItem.h \
+  ../../../zypp/solver/detail/QueueItemPtr.h \
+  ../../../zypp/solver/detail/ResolverContextPtr.h \
+  ../../../zypp/solver/detail/ResolverInfo.h /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/ResolverInfoPtr.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/string /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h
+
+../../../zypp/solver/detail/QueueItemGroup.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/QueueItemGroupPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/QueueItem.h:
+
+../../../zypp/solver/detail/QueueItemPtr.h:
+
+../../../zypp/solver/detail/ResolverContextPtr.h:
+
+../../../zypp/solver/detail/ResolverInfo.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/ResolverInfoPtr.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
diff --git a/zypp/solver/detail/.deps/QueueItemInstall.Plo b/zypp/solver/detail/.deps/QueueItemInstall.Plo
new file mode 100644 (file)
index 0000000..9bee677
--- /dev/null
@@ -0,0 +1,633 @@
+QueueItemInstall.lo QueueItemInstall.o: QueueItemInstall.cc \
+  ../../../config.h ../../../zypp/solver/detail/QueueItemInstall.h \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/QueueItemInstallPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/QueueItem.h \
+  ../../../zypp/solver/detail/QueueItemPtr.h \
+  ../../../zypp/solver/detail/ResolverContextPtr.h \
+  ../../../zypp/solver/detail/ResolverInfo.h /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/ResolverInfoPtr.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/string /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h \
+  ../../../zypp/solver/detail/QueueItemUninstall.h \
+  ../../../zypp/solver/detail/QueueItemUninstallPtr.h \
+  ../../../zypp/solver/detail/QueueItemRequire.h \
+  ../../../zypp/solver/detail/QueueItemRequirePtr.h \
+  ../../../zypp/solver/detail/QueueItemConflict.h \
+  ../../../zypp/solver/detail/QueueItemConflictPtr.h \
+  ../../../zypp/solver/detail/ResolverContext.h \
+  ../../../zypp/solver/detail/ResolverInfoConflictsWith.h \
+  ../../../zypp/solver/detail/ResolverInfoConflictsWithPtr.h \
+  ../../../zypp/solver/detail/ResolverInfoContainer.h \
+  ../../../zypp/solver/detail/ResolverInfoContainerPtr.h \
+  ../../../zypp/solver/detail/ResolverInfoMisc.h \
+  ../../../zypp/solver/detail/ResolverInfoMiscPtr.h \
+  ../../../zypp/solver/detail/ResolverInfoNeededBy.h \
+  ../../../zypp/solver/detail/ResolverInfoNeededByPtr.h \
+  ../../../zypp/solver/detail/Version.h \
+  ../../../zypp/solver/detail/World.h \
+  ../../../zypp/solver/detail/MultiWorldPtr.h \
+  ../../../zypp/solver/detail/Match.h \
+  ../../../zypp/solver/detail/MatchPtr.h \
+  ../../../zypp/solver/detail/Importance.h \
+  ../../../zypp/solver/detail/Pending.h \
+  ../../../zypp/solver/detail/PendingPtr.h \
+  ../../../zypp/solver/detail/Packman.h \
+  ../../../zypp/solver/detail/PackmanPtr.h \
+  ../../../zypp/solver/detail/Package.h \
+  ../../../zypp/solver/detail/PackagePtr.h \
+  ../../../zypp/solver/detail/PackageUpdatePtr.h \
+  ../../../zypp/solver/detail/Section.h \
+  ../../../zypp/solver/detail/PackageUpdate.h \
+  ../../../zypp/solver/detail/ResolvableAndDependency.h \
+  ../../../zypp/solver/detail/ResolvableAndDependencyPtr.h
+
+../../../config.h:
+
+../../../zypp/solver/detail/QueueItemInstall.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/QueueItemInstallPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/QueueItem.h:
+
+../../../zypp/solver/detail/QueueItemPtr.h:
+
+../../../zypp/solver/detail/ResolverContextPtr.h:
+
+../../../zypp/solver/detail/ResolverInfo.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/ResolverInfoPtr.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+../../../zypp/solver/detail/QueueItemUninstall.h:
+
+../../../zypp/solver/detail/QueueItemUninstallPtr.h:
+
+../../../zypp/solver/detail/QueueItemRequire.h:
+
+../../../zypp/solver/detail/QueueItemRequirePtr.h:
+
+../../../zypp/solver/detail/QueueItemConflict.h:
+
+../../../zypp/solver/detail/QueueItemConflictPtr.h:
+
+../../../zypp/solver/detail/ResolverContext.h:
+
+../../../zypp/solver/detail/ResolverInfoConflictsWith.h:
+
+../../../zypp/solver/detail/ResolverInfoConflictsWithPtr.h:
+
+../../../zypp/solver/detail/ResolverInfoContainer.h:
+
+../../../zypp/solver/detail/ResolverInfoContainerPtr.h:
+
+../../../zypp/solver/detail/ResolverInfoMisc.h:
+
+../../../zypp/solver/detail/ResolverInfoMiscPtr.h:
+
+../../../zypp/solver/detail/ResolverInfoNeededBy.h:
+
+../../../zypp/solver/detail/ResolverInfoNeededByPtr.h:
+
+../../../zypp/solver/detail/Version.h:
+
+../../../zypp/solver/detail/World.h:
+
+../../../zypp/solver/detail/MultiWorldPtr.h:
+
+../../../zypp/solver/detail/Match.h:
+
+../../../zypp/solver/detail/MatchPtr.h:
+
+../../../zypp/solver/detail/Importance.h:
+
+../../../zypp/solver/detail/Pending.h:
+
+../../../zypp/solver/detail/PendingPtr.h:
+
+../../../zypp/solver/detail/Packman.h:
+
+../../../zypp/solver/detail/PackmanPtr.h:
+
+../../../zypp/solver/detail/Package.h:
+
+../../../zypp/solver/detail/PackagePtr.h:
+
+../../../zypp/solver/detail/PackageUpdatePtr.h:
+
+../../../zypp/solver/detail/Section.h:
+
+../../../zypp/solver/detail/PackageUpdate.h:
+
+../../../zypp/solver/detail/ResolvableAndDependency.h:
+
+../../../zypp/solver/detail/ResolvableAndDependencyPtr.h:
diff --git a/zypp/solver/detail/.deps/QueueItemRequire.Plo b/zypp/solver/detail/.deps/QueueItemRequire.Plo
new file mode 100644 (file)
index 0000000..1b901f3
--- /dev/null
@@ -0,0 +1,640 @@
+QueueItemRequire.lo QueueItemRequire.o: QueueItemRequire.cc \
+  /usr/include/YaST2/y2util/stringutil.h /usr/include/c++/4.0.2/cstdio \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/stdio.h /usr/include/bits/types.h \
+  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
+  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+  /usr/include/bits/wchar.h /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/cstdarg \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/string.h \
+  /usr/include/xlocale.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/vector \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_vector.h \
+  /usr/include/c++/4.0.2/bits/stl_bvector.h \
+  /usr/include/c++/4.0.2/bits/vector.tcc /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/bits/char_traits.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/list /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/QueueItemRequire.h \
+  ../../../zypp/solver/detail/QueueItemRequirePtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/QueueItem.h \
+  ../../../zypp/solver/detail/QueueItemPtr.h \
+  ../../../zypp/solver/detail/ResolverContextPtr.h \
+  ../../../zypp/solver/detail/ResolverInfo.h /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/ResolverInfoPtr.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h \
+  ../../../zypp/solver/detail/QueueItemBranch.h \
+  ../../../zypp/solver/detail/QueueItemBranchPtr.h \
+  ../../../zypp/solver/detail/QueueItemUninstall.h \
+  ../../../zypp/solver/detail/QueueItemUninstallPtr.h \
+  ../../../zypp/solver/detail/QueueItemInstall.h \
+  ../../../zypp/solver/detail/QueueItemInstallPtr.h \
+  ../../../zypp/solver/detail/ResolverContext.h \
+  ../../../zypp/solver/detail/ResolverInfoDependsOn.h \
+  ../../../zypp/solver/detail/ResolverInfoDependsOnPtr.h \
+  ../../../zypp/solver/detail/ResolverInfoContainer.h \
+  ../../../zypp/solver/detail/ResolverInfoContainerPtr.h \
+  ../../../zypp/solver/detail/ResolverInfoMisc.h \
+  ../../../zypp/solver/detail/ResolverInfoMiscPtr.h \
+  ../../../zypp/solver/detail/ResolverInfoNeededBy.h \
+  ../../../zypp/solver/detail/ResolverInfoNeededByPtr.h \
+  ../../../zypp/solver/detail/Version.h \
+  ../../../zypp/solver/detail/World.h \
+  ../../../zypp/solver/detail/MultiWorldPtr.h \
+  ../../../zypp/solver/detail/Match.h \
+  ../../../zypp/solver/detail/MatchPtr.h \
+  ../../../zypp/solver/detail/Importance.h \
+  ../../../zypp/solver/detail/Pending.h \
+  ../../../zypp/solver/detail/PendingPtr.h \
+  ../../../zypp/solver/detail/Packman.h \
+  ../../../zypp/solver/detail/PackmanPtr.h \
+  ../../../zypp/solver/detail/Package.h \
+  ../../../zypp/solver/detail/PackagePtr.h \
+  ../../../zypp/solver/detail/PackageUpdatePtr.h \
+  ../../../zypp/solver/detail/Section.h \
+  ../../../zypp/solver/detail/PackageUpdate.h
+
+/usr/include/YaST2/y2util/stringutil.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/cstdarg:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/vector:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_vector.h:
+
+/usr/include/c++/4.0.2/bits/stl_bvector.h:
+
+/usr/include/c++/4.0.2/bits/vector.tcc:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/QueueItemRequire.h:
+
+../../../zypp/solver/detail/QueueItemRequirePtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/QueueItem.h:
+
+../../../zypp/solver/detail/QueueItemPtr.h:
+
+../../../zypp/solver/detail/ResolverContextPtr.h:
+
+../../../zypp/solver/detail/ResolverInfo.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/ResolverInfoPtr.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+../../../zypp/solver/detail/QueueItemBranch.h:
+
+../../../zypp/solver/detail/QueueItemBranchPtr.h:
+
+../../../zypp/solver/detail/QueueItemUninstall.h:
+
+../../../zypp/solver/detail/QueueItemUninstallPtr.h:
+
+../../../zypp/solver/detail/QueueItemInstall.h:
+
+../../../zypp/solver/detail/QueueItemInstallPtr.h:
+
+../../../zypp/solver/detail/ResolverContext.h:
+
+../../../zypp/solver/detail/ResolverInfoDependsOn.h:
+
+../../../zypp/solver/detail/ResolverInfoDependsOnPtr.h:
+
+../../../zypp/solver/detail/ResolverInfoContainer.h:
+
+../../../zypp/solver/detail/ResolverInfoContainerPtr.h:
+
+../../../zypp/solver/detail/ResolverInfoMisc.h:
+
+../../../zypp/solver/detail/ResolverInfoMiscPtr.h:
+
+../../../zypp/solver/detail/ResolverInfoNeededBy.h:
+
+../../../zypp/solver/detail/ResolverInfoNeededByPtr.h:
+
+../../../zypp/solver/detail/Version.h:
+
+../../../zypp/solver/detail/World.h:
+
+../../../zypp/solver/detail/MultiWorldPtr.h:
+
+../../../zypp/solver/detail/Match.h:
+
+../../../zypp/solver/detail/MatchPtr.h:
+
+../../../zypp/solver/detail/Importance.h:
+
+../../../zypp/solver/detail/Pending.h:
+
+../../../zypp/solver/detail/PendingPtr.h:
+
+../../../zypp/solver/detail/Packman.h:
+
+../../../zypp/solver/detail/PackmanPtr.h:
+
+../../../zypp/solver/detail/Package.h:
+
+../../../zypp/solver/detail/PackagePtr.h:
+
+../../../zypp/solver/detail/PackageUpdatePtr.h:
+
+../../../zypp/solver/detail/Section.h:
+
+../../../zypp/solver/detail/PackageUpdate.h:
diff --git a/zypp/solver/detail/.deps/QueueItemUninstall.Plo b/zypp/solver/detail/.deps/QueueItemUninstall.Plo
new file mode 100644 (file)
index 0000000..34833a2
--- /dev/null
@@ -0,0 +1,595 @@
+QueueItemUninstall.lo QueueItemUninstall.o: QueueItemUninstall.cc \
+  ../../../zypp/solver/detail/QueueItemUninstall.h \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/QueueItemUninstallPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/QueueItem.h \
+  ../../../zypp/solver/detail/QueueItemPtr.h \
+  ../../../zypp/solver/detail/ResolverContextPtr.h \
+  ../../../zypp/solver/detail/ResolverInfo.h /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/ResolverInfoPtr.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/string /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h \
+  ../../../zypp/solver/detail/QueueItemRequire.h \
+  ../../../zypp/solver/detail/QueueItemRequirePtr.h \
+  ../../../zypp/solver/detail/ResolverContext.h \
+  ../../../zypp/solver/detail/ResolverInfoMissingReq.h \
+  ../../../zypp/solver/detail/ResolverInfoMissingReqPtr.h \
+  ../../../zypp/solver/detail/World.h \
+  ../../../zypp/solver/detail/MultiWorldPtr.h \
+  ../../../zypp/solver/detail/Match.h \
+  ../../../zypp/solver/detail/MatchPtr.h \
+  ../../../zypp/solver/detail/Importance.h \
+  ../../../zypp/solver/detail/Pending.h \
+  ../../../zypp/solver/detail/PendingPtr.h \
+  ../../../zypp/solver/detail/Packman.h \
+  ../../../zypp/solver/detail/PackmanPtr.h \
+  ../../../zypp/solver/detail/Package.h \
+  ../../../zypp/solver/detail/PackagePtr.h \
+  ../../../zypp/solver/detail/PackageUpdatePtr.h \
+  ../../../zypp/solver/detail/Section.h \
+  ../../../zypp/solver/detail/PackageUpdate.h \
+  ../../../zypp/solver/detail/Version.h
+
+../../../zypp/solver/detail/QueueItemUninstall.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/QueueItemUninstallPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/QueueItem.h:
+
+../../../zypp/solver/detail/QueueItemPtr.h:
+
+../../../zypp/solver/detail/ResolverContextPtr.h:
+
+../../../zypp/solver/detail/ResolverInfo.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/ResolverInfoPtr.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+../../../zypp/solver/detail/QueueItemRequire.h:
+
+../../../zypp/solver/detail/QueueItemRequirePtr.h:
+
+../../../zypp/solver/detail/ResolverContext.h:
+
+../../../zypp/solver/detail/ResolverInfoMissingReq.h:
+
+../../../zypp/solver/detail/ResolverInfoMissingReqPtr.h:
+
+../../../zypp/solver/detail/World.h:
+
+../../../zypp/solver/detail/MultiWorldPtr.h:
+
+../../../zypp/solver/detail/Match.h:
+
+../../../zypp/solver/detail/MatchPtr.h:
+
+../../../zypp/solver/detail/Importance.h:
+
+../../../zypp/solver/detail/Pending.h:
+
+../../../zypp/solver/detail/PendingPtr.h:
+
+../../../zypp/solver/detail/Packman.h:
+
+../../../zypp/solver/detail/PackmanPtr.h:
+
+../../../zypp/solver/detail/Package.h:
+
+../../../zypp/solver/detail/PackagePtr.h:
+
+../../../zypp/solver/detail/PackageUpdatePtr.h:
+
+../../../zypp/solver/detail/Section.h:
+
+../../../zypp/solver/detail/PackageUpdate.h:
+
+../../../zypp/solver/detail/Version.h:
diff --git a/zypp/solver/detail/.deps/Resolvable.Plo b/zypp/solver/detail/.deps/Resolvable.Plo
new file mode 100644 (file)
index 0000000..0882352
--- /dev/null
@@ -0,0 +1,529 @@
+Resolvable.lo Resolvable.o: Resolvable.cc \
+  /usr/include/YaST2/y2util/stringutil.h /usr/include/c++/4.0.2/cstdio \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/stdio.h /usr/include/bits/types.h \
+  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
+  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+  /usr/include/bits/wchar.h /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/cstdarg \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/string.h \
+  /usr/include/xlocale.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/vector \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_vector.h \
+  /usr/include/c++/4.0.2/bits/stl_bvector.h \
+  /usr/include/c++/4.0.2/bits/vector.tcc /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/bits/char_traits.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/list /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h
+
+/usr/include/YaST2/y2util/stringutil.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/cstdarg:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/vector:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_vector.h:
+
+/usr/include/c++/4.0.2/bits/stl_bvector.h:
+
+/usr/include/c++/4.0.2/bits/vector.tcc:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
diff --git a/zypp/solver/detail/.deps/ResolvableAndDependency.Plo b/zypp/solver/detail/.deps/ResolvableAndDependency.Plo
new file mode 100644 (file)
index 0000000..a57fc4e
--- /dev/null
@@ -0,0 +1,540 @@
+ResolvableAndDependency.lo ResolvableAndDependency.o:  \
+ ResolvableAndDependency.cc ../../../config.h \
+  /usr/include/YaST2/y2util/stringutil.h /usr/include/c++/4.0.2/cstdio \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/stdio.h /usr/include/bits/types.h \
+  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
+  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+  /usr/include/bits/wchar.h /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/cstdarg \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/string.h \
+  /usr/include/xlocale.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/vector \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_vector.h \
+  /usr/include/c++/4.0.2/bits/stl_bvector.h \
+  /usr/include/c++/4.0.2/bits/vector.tcc /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/bits/char_traits.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/list /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/ResolvableAndDependency.h \
+  /usr/include/c++/4.0.2/map /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/ResolvableAndDependencyPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h ../../../zypp/solver/detail/debug.h
+
+../../../config.h:
+
+/usr/include/YaST2/y2util/stringutil.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/cstdarg:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/vector:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_vector.h:
+
+/usr/include/c++/4.0.2/bits/stl_bvector.h:
+
+/usr/include/c++/4.0.2/bits/vector.tcc:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/ResolvableAndDependency.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/ResolvableAndDependencyPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+../../../zypp/solver/detail/debug.h:
diff --git a/zypp/solver/detail/.deps/Resolver.Plo b/zypp/solver/detail/.deps/Resolver.Plo
new file mode 100644 (file)
index 0000000..dfa2dc9
--- /dev/null
@@ -0,0 +1,603 @@
+Resolver.lo Resolver.o: Resolver.cc \
+  ../../../zypp/solver/detail/Resolver.h /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/ResolverPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/ResolverQueue.h /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/ResolverQueuePtr.h \
+  ../../../zypp/solver/detail/ResolverContextPtr.h \
+  ../../../zypp/solver/detail/QueueItem.h \
+  ../../../zypp/solver/detail/QueueItemPtr.h \
+  ../../../zypp/solver/detail/ResolverInfo.h \
+  ../../../zypp/solver/detail/ResolverInfoPtr.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/string /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h \
+  ../../../zypp/solver/detail/ResolverContext.h \
+  ../../../zypp/solver/detail/Version.h \
+  ../../../zypp/solver/detail/World.h \
+  ../../../zypp/solver/detail/MultiWorldPtr.h \
+  ../../../zypp/solver/detail/Match.h \
+  ../../../zypp/solver/detail/MatchPtr.h \
+  ../../../zypp/solver/detail/Importance.h \
+  ../../../zypp/solver/detail/Pending.h \
+  ../../../zypp/solver/detail/PendingPtr.h \
+  ../../../zypp/solver/detail/Packman.h \
+  ../../../zypp/solver/detail/PackmanPtr.h \
+  ../../../zypp/solver/detail/Package.h \
+  ../../../zypp/solver/detail/PackagePtr.h \
+  ../../../zypp/solver/detail/PackageUpdatePtr.h \
+  ../../../zypp/solver/detail/Section.h \
+  ../../../zypp/solver/detail/PackageUpdate.h \
+  ../../../zypp/solver/detail/StoreWorld.h \
+  ../../../zypp/solver/detail/ResolvableAndDependency.h \
+  ../../../zypp/solver/detail/ResolvableAndDependencyPtr.h \
+  ../../../zypp/solver/detail/MultiWorld.h \
+  ../../../zypp/solver/detail/ServiceWorldPtr.h
+
+../../../zypp/solver/detail/Resolver.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/ResolverPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/ResolverQueue.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/ResolverQueuePtr.h:
+
+../../../zypp/solver/detail/ResolverContextPtr.h:
+
+../../../zypp/solver/detail/QueueItem.h:
+
+../../../zypp/solver/detail/QueueItemPtr.h:
+
+../../../zypp/solver/detail/ResolverInfo.h:
+
+../../../zypp/solver/detail/ResolverInfoPtr.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+../../../zypp/solver/detail/ResolverContext.h:
+
+../../../zypp/solver/detail/Version.h:
+
+../../../zypp/solver/detail/World.h:
+
+../../../zypp/solver/detail/MultiWorldPtr.h:
+
+../../../zypp/solver/detail/Match.h:
+
+../../../zypp/solver/detail/MatchPtr.h:
+
+../../../zypp/solver/detail/Importance.h:
+
+../../../zypp/solver/detail/Pending.h:
+
+../../../zypp/solver/detail/PendingPtr.h:
+
+../../../zypp/solver/detail/Packman.h:
+
+../../../zypp/solver/detail/PackmanPtr.h:
+
+../../../zypp/solver/detail/Package.h:
+
+../../../zypp/solver/detail/PackagePtr.h:
+
+../../../zypp/solver/detail/PackageUpdatePtr.h:
+
+../../../zypp/solver/detail/Section.h:
+
+../../../zypp/solver/detail/PackageUpdate.h:
+
+../../../zypp/solver/detail/StoreWorld.h:
+
+../../../zypp/solver/detail/ResolvableAndDependency.h:
+
+../../../zypp/solver/detail/ResolvableAndDependencyPtr.h:
+
+../../../zypp/solver/detail/MultiWorld.h:
+
+../../../zypp/solver/detail/ServiceWorldPtr.h:
diff --git a/zypp/solver/detail/.deps/ResolverContext.Plo b/zypp/solver/detail/.deps/ResolverContext.Plo
new file mode 100644 (file)
index 0000000..db02577
--- /dev/null
@@ -0,0 +1,601 @@
+ResolverContext.lo ResolverContext.o: ResolverContext.cc \
+  /usr/include/values.h /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/bits/stdio_lim.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/float.h \
+  /usr/include/YaST2/y2util/stringutil.h /usr/include/c++/4.0.2/cstdio \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/stdio.h /usr/include/bits/types.h \
+  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
+  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+  /usr/include/bits/wchar.h /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+  /usr/include/c++/4.0.2/cstdarg /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/string.h \
+  /usr/include/xlocale.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/vector \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits /usr/include/c++/4.0.2/cstdlib \
+  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+  /usr/include/bits/waitstatus.h /usr/include/sys/types.h \
+  /usr/include/sys/select.h /usr/include/bits/select.h \
+  /usr/include/sys/sysmacros.h /usr/include/alloca.h \
+  /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_vector.h \
+  /usr/include/c++/4.0.2/bits/stl_bvector.h \
+  /usr/include/c++/4.0.2/bits/vector.tcc /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/bits/char_traits.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/list /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/ResolverContext.h \
+  /usr/include/c++/4.0.2/map /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/ResolverContextPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/ResolverInfo.h \
+  ../../../zypp/solver/detail/ResolverInfoPtr.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h \
+  ../../../zypp/solver/detail/ResolverInfoMisc.h \
+  ../../../zypp/solver/detail/ResolverInfoMiscPtr.h \
+  ../../../zypp/solver/detail/ResolverInfoContainer.h \
+  ../../../zypp/solver/detail/ResolverInfoContainerPtr.h \
+  ../../../zypp/solver/detail/World.h \
+  ../../../zypp/solver/detail/MultiWorldPtr.h \
+  ../../../zypp/solver/detail/Match.h \
+  ../../../zypp/solver/detail/MatchPtr.h \
+  ../../../zypp/solver/detail/Importance.h \
+  ../../../zypp/solver/detail/Pending.h \
+  ../../../zypp/solver/detail/PendingPtr.h \
+  ../../../zypp/solver/detail/Packman.h \
+  ../../../zypp/solver/detail/PackmanPtr.h \
+  ../../../zypp/solver/detail/Package.h \
+  ../../../zypp/solver/detail/PackagePtr.h \
+  ../../../zypp/solver/detail/PackageUpdatePtr.h \
+  ../../../zypp/solver/detail/Section.h \
+  ../../../zypp/solver/detail/PackageUpdate.h
+
+/usr/include/values.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/float.h:
+
+/usr/include/YaST2/y2util/stringutil.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/cstdarg:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/vector:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_vector.h:
+
+/usr/include/c++/4.0.2/bits/stl_bvector.h:
+
+/usr/include/c++/4.0.2/bits/vector.tcc:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/ResolverContext.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/ResolverContextPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/ResolverInfo.h:
+
+../../../zypp/solver/detail/ResolverInfoPtr.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+../../../zypp/solver/detail/ResolverInfoMisc.h:
+
+../../../zypp/solver/detail/ResolverInfoMiscPtr.h:
+
+../../../zypp/solver/detail/ResolverInfoContainer.h:
+
+../../../zypp/solver/detail/ResolverInfoContainerPtr.h:
+
+../../../zypp/solver/detail/World.h:
+
+../../../zypp/solver/detail/MultiWorldPtr.h:
+
+../../../zypp/solver/detail/Match.h:
+
+../../../zypp/solver/detail/MatchPtr.h:
+
+../../../zypp/solver/detail/Importance.h:
+
+../../../zypp/solver/detail/Pending.h:
+
+../../../zypp/solver/detail/PendingPtr.h:
+
+../../../zypp/solver/detail/Packman.h:
+
+../../../zypp/solver/detail/PackmanPtr.h:
+
+../../../zypp/solver/detail/Package.h:
+
+../../../zypp/solver/detail/PackagePtr.h:
+
+../../../zypp/solver/detail/PackageUpdatePtr.h:
+
+../../../zypp/solver/detail/Section.h:
+
+../../../zypp/solver/detail/PackageUpdate.h:
diff --git a/zypp/solver/detail/.deps/ResolverInfo.Plo b/zypp/solver/detail/.deps/ResolverInfo.Plo
new file mode 100644 (file)
index 0000000..d406c9b
--- /dev/null
@@ -0,0 +1,519 @@
+ResolverInfo.lo ResolverInfo.o: ResolverInfo.cc \
+  /usr/include/c++/4.0.2/map /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstring \
+  /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/bits/stdio_lim.h /usr/include/c++/4.0.2/cstdlib \
+  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+  /usr/include/bits/waitstatus.h /usr/include/endian.h \
+  /usr/include/bits/endian.h /usr/include/sys/types.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/time.h \
+  /usr/include/sys/select.h /usr/include/bits/select.h \
+  /usr/include/bits/sigset.h /usr/include/bits/time.h \
+  /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+  /usr/include/bits/sched.h /usr/include/alloca.h \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+  /usr/include/c++/4.0.2/clocale /usr/include/locale.h \
+  /usr/include/bits/locale.h /usr/include/langinfo.h \
+  /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/signal.h \
+  /usr/include/bits/initspin.h /usr/include/bits/sigthread.h \
+  /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+  /usr/include/bits/environments.h /usr/include/bits/confname.h \
+  /usr/include/getopt.h /usr/include/c++/4.0.2/cctype \
+  /usr/include/ctype.h /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/ResolverInfo.h /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/ResolverInfoPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/string /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/ResolverInfo.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/ResolverInfoPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
diff --git a/zypp/solver/detail/.deps/ResolverInfoChildOf.Plo b/zypp/solver/detail/.deps/ResolverInfoChildOf.Plo
new file mode 100644 (file)
index 0000000..c62c14a
--- /dev/null
@@ -0,0 +1,532 @@
+ResolverInfoChildOf.lo ResolverInfoChildOf.o: ResolverInfoChildOf.cc \
+  /usr/include/c++/4.0.2/map /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstring \
+  /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/bits/stdio_lim.h /usr/include/c++/4.0.2/cstdlib \
+  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+  /usr/include/bits/waitstatus.h /usr/include/endian.h \
+  /usr/include/bits/endian.h /usr/include/sys/types.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/time.h \
+  /usr/include/sys/select.h /usr/include/bits/select.h \
+  /usr/include/bits/sigset.h /usr/include/bits/time.h \
+  /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+  /usr/include/bits/sched.h /usr/include/alloca.h \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+  /usr/include/c++/4.0.2/clocale /usr/include/locale.h \
+  /usr/include/bits/locale.h /usr/include/langinfo.h \
+  /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/signal.h \
+  /usr/include/bits/initspin.h /usr/include/bits/sigthread.h \
+  /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+  /usr/include/bits/environments.h /usr/include/bits/confname.h \
+  /usr/include/getopt.h /usr/include/c++/4.0.2/cctype \
+  /usr/include/ctype.h /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/ResolverInfoChildOf.h \
+  ../../../zypp/solver/detail/ResolverInfoChildOfPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/ResolverInfoPtr.h \
+  ../../../zypp/solver/detail/ResolverInfoContainer.h \
+  /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/ResolverInfoContainerPtr.h \
+  ../../../zypp/solver/detail/ResolverInfo.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/string /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/ResolverInfoChildOf.h:
+
+../../../zypp/solver/detail/ResolverInfoChildOfPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/ResolverInfoPtr.h:
+
+../../../zypp/solver/detail/ResolverInfoContainer.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/ResolverInfoContainerPtr.h:
+
+../../../zypp/solver/detail/ResolverInfo.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
diff --git a/zypp/solver/detail/.deps/ResolverInfoConflictsWith.Plo b/zypp/solver/detail/.deps/ResolverInfoConflictsWith.Plo
new file mode 100644 (file)
index 0000000..80f1a5d
--- /dev/null
@@ -0,0 +1,532 @@
+ResolverInfoConflictsWith.lo ResolverInfoConflictsWith.o:  \
+ ResolverInfoConflictsWith.cc /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstring \
+  /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/bits/stdio_lim.h /usr/include/c++/4.0.2/cstdlib \
+  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+  /usr/include/bits/waitstatus.h /usr/include/endian.h \
+  /usr/include/bits/endian.h /usr/include/sys/types.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/time.h \
+  /usr/include/sys/select.h /usr/include/bits/select.h \
+  /usr/include/bits/sigset.h /usr/include/bits/time.h \
+  /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+  /usr/include/bits/sched.h /usr/include/alloca.h \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+  /usr/include/c++/4.0.2/clocale /usr/include/locale.h \
+  /usr/include/bits/locale.h /usr/include/langinfo.h \
+  /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/signal.h \
+  /usr/include/bits/initspin.h /usr/include/bits/sigthread.h \
+  /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+  /usr/include/bits/environments.h /usr/include/bits/confname.h \
+  /usr/include/getopt.h /usr/include/c++/4.0.2/cctype \
+  /usr/include/ctype.h /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/ResolverInfo.h /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/ResolverInfoPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/string /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h \
+  ../../../zypp/solver/detail/ResolverInfoConflictsWith.h \
+  ../../../zypp/solver/detail/ResolverInfoConflictsWithPtr.h \
+  ../../../zypp/solver/detail/ResolverInfoContainer.h \
+  ../../../zypp/solver/detail/ResolverInfoContainerPtr.h
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/ResolverInfo.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/ResolverInfoPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+../../../zypp/solver/detail/ResolverInfoConflictsWith.h:
+
+../../../zypp/solver/detail/ResolverInfoConflictsWithPtr.h:
+
+../../../zypp/solver/detail/ResolverInfoContainer.h:
+
+../../../zypp/solver/detail/ResolverInfoContainerPtr.h:
diff --git a/zypp/solver/detail/.deps/ResolverInfoContainer.Plo b/zypp/solver/detail/.deps/ResolverInfoContainer.Plo
new file mode 100644 (file)
index 0000000..3b20d5b
--- /dev/null
@@ -0,0 +1,527 @@
+ResolverInfoContainer.lo ResolverInfoContainer.o:  \
+ ResolverInfoContainer.cc /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstring \
+  /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/bits/stdio_lim.h /usr/include/c++/4.0.2/cstdlib \
+  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+  /usr/include/bits/waitstatus.h /usr/include/endian.h \
+  /usr/include/bits/endian.h /usr/include/sys/types.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/time.h \
+  /usr/include/sys/select.h /usr/include/bits/select.h \
+  /usr/include/bits/sigset.h /usr/include/bits/time.h \
+  /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+  /usr/include/bits/sched.h /usr/include/alloca.h \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+  /usr/include/c++/4.0.2/clocale /usr/include/locale.h \
+  /usr/include/bits/locale.h /usr/include/langinfo.h \
+  /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/signal.h \
+  /usr/include/bits/initspin.h /usr/include/bits/sigthread.h \
+  /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+  /usr/include/bits/environments.h /usr/include/bits/confname.h \
+  /usr/include/getopt.h /usr/include/c++/4.0.2/cctype \
+  /usr/include/ctype.h /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/ResolverInfoContainer.h \
+  /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/ResolverInfoContainerPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/ResolverInfo.h \
+  ../../../zypp/solver/detail/ResolverInfoPtr.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/string /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/ResolverInfoContainer.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/ResolverInfoContainerPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/ResolverInfo.h:
+
+../../../zypp/solver/detail/ResolverInfoPtr.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
diff --git a/zypp/solver/detail/.deps/ResolverInfoDependsOn.Plo b/zypp/solver/detail/.deps/ResolverInfoDependsOn.Plo
new file mode 100644 (file)
index 0000000..b94d002
--- /dev/null
@@ -0,0 +1,532 @@
+ResolverInfoDependsOn.lo ResolverInfoDependsOn.o:  \
+ ResolverInfoDependsOn.cc /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstring \
+  /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/bits/stdio_lim.h /usr/include/c++/4.0.2/cstdlib \
+  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+  /usr/include/bits/waitstatus.h /usr/include/endian.h \
+  /usr/include/bits/endian.h /usr/include/sys/types.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/time.h \
+  /usr/include/sys/select.h /usr/include/bits/select.h \
+  /usr/include/bits/sigset.h /usr/include/bits/time.h \
+  /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+  /usr/include/bits/sched.h /usr/include/alloca.h \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+  /usr/include/c++/4.0.2/clocale /usr/include/locale.h \
+  /usr/include/bits/locale.h /usr/include/langinfo.h \
+  /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/signal.h \
+  /usr/include/bits/initspin.h /usr/include/bits/sigthread.h \
+  /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+  /usr/include/bits/environments.h /usr/include/bits/confname.h \
+  /usr/include/getopt.h /usr/include/c++/4.0.2/cctype \
+  /usr/include/ctype.h /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/ResolverInfo.h /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/ResolverInfoPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/string /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h \
+  ../../../zypp/solver/detail/ResolverInfoDependsOn.h \
+  ../../../zypp/solver/detail/ResolverInfoDependsOnPtr.h \
+  ../../../zypp/solver/detail/ResolverInfoContainer.h \
+  ../../../zypp/solver/detail/ResolverInfoContainerPtr.h
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/ResolverInfo.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/ResolverInfoPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+../../../zypp/solver/detail/ResolverInfoDependsOn.h:
+
+../../../zypp/solver/detail/ResolverInfoDependsOnPtr.h:
+
+../../../zypp/solver/detail/ResolverInfoContainer.h:
+
+../../../zypp/solver/detail/ResolverInfoContainerPtr.h:
diff --git a/zypp/solver/detail/.deps/ResolverInfoMisc.Plo b/zypp/solver/detail/.deps/ResolverInfoMisc.Plo
new file mode 100644 (file)
index 0000000..e67b0f9
--- /dev/null
@@ -0,0 +1,531 @@
+ResolverInfoMisc.lo ResolverInfoMisc.o: ResolverInfoMisc.cc \
+  /usr/include/c++/4.0.2/map /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstring \
+  /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/bits/stdio_lim.h /usr/include/c++/4.0.2/cstdlib \
+  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+  /usr/include/bits/waitstatus.h /usr/include/endian.h \
+  /usr/include/bits/endian.h /usr/include/sys/types.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/time.h \
+  /usr/include/sys/select.h /usr/include/bits/select.h \
+  /usr/include/bits/sigset.h /usr/include/bits/time.h \
+  /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+  /usr/include/bits/sched.h /usr/include/alloca.h \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+  /usr/include/c++/4.0.2/clocale /usr/include/locale.h \
+  /usr/include/bits/locale.h /usr/include/langinfo.h \
+  /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/signal.h \
+  /usr/include/bits/initspin.h /usr/include/bits/sigthread.h \
+  /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+  /usr/include/bits/environments.h /usr/include/bits/confname.h \
+  /usr/include/getopt.h /usr/include/c++/4.0.2/cctype \
+  /usr/include/ctype.h /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/ResolverInfo.h /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/ResolverInfoPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/string /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h \
+  ../../../zypp/solver/detail/ResolverInfoMisc.h \
+  ../../../zypp/solver/detail/ResolverInfoMiscPtr.h \
+  ../../../zypp/solver/detail/ResolverInfoContainer.h \
+  ../../../zypp/solver/detail/ResolverInfoContainerPtr.h
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/ResolverInfo.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/ResolverInfoPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+../../../zypp/solver/detail/ResolverInfoMisc.h:
+
+../../../zypp/solver/detail/ResolverInfoMiscPtr.h:
+
+../../../zypp/solver/detail/ResolverInfoContainer.h:
+
+../../../zypp/solver/detail/ResolverInfoContainerPtr.h:
diff --git a/zypp/solver/detail/.deps/ResolverInfoMissingReq.Plo b/zypp/solver/detail/.deps/ResolverInfoMissingReq.Plo
new file mode 100644 (file)
index 0000000..a16a2fe
--- /dev/null
@@ -0,0 +1,526 @@
+ResolverInfoMissingReq.lo ResolverInfoMissingReq.o:  \
+ ResolverInfoMissingReq.cc /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstring \
+  /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/bits/stdio_lim.h /usr/include/c++/4.0.2/cstdlib \
+  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+  /usr/include/bits/waitstatus.h /usr/include/endian.h \
+  /usr/include/bits/endian.h /usr/include/sys/types.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/time.h \
+  /usr/include/sys/select.h /usr/include/bits/select.h \
+  /usr/include/bits/sigset.h /usr/include/bits/time.h \
+  /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+  /usr/include/bits/sched.h /usr/include/alloca.h \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+  /usr/include/c++/4.0.2/clocale /usr/include/locale.h \
+  /usr/include/bits/locale.h /usr/include/langinfo.h \
+  /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/signal.h \
+  /usr/include/bits/initspin.h /usr/include/bits/sigthread.h \
+  /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+  /usr/include/bits/environments.h /usr/include/bits/confname.h \
+  /usr/include/getopt.h /usr/include/c++/4.0.2/cctype \
+  /usr/include/ctype.h /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/ResolverInfo.h /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/ResolverInfoPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/string /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h \
+  ../../../zypp/solver/detail/ResolverInfoMissingReq.h \
+  ../../../zypp/solver/detail/ResolverInfoMissingReqPtr.h
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/ResolverInfo.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/ResolverInfoPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+../../../zypp/solver/detail/ResolverInfoMissingReq.h:
+
+../../../zypp/solver/detail/ResolverInfoMissingReqPtr.h:
diff --git a/zypp/solver/detail/.deps/ResolverInfoNeededBy.Plo b/zypp/solver/detail/.deps/ResolverInfoNeededBy.Plo
new file mode 100644 (file)
index 0000000..0739751
--- /dev/null
@@ -0,0 +1,531 @@
+ResolverInfoNeededBy.lo ResolverInfoNeededBy.o: ResolverInfoNeededBy.cc \
+  /usr/include/c++/4.0.2/map /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstring \
+  /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/bits/stdio_lim.h /usr/include/c++/4.0.2/cstdlib \
+  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+  /usr/include/bits/waitstatus.h /usr/include/endian.h \
+  /usr/include/bits/endian.h /usr/include/sys/types.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/time.h \
+  /usr/include/sys/select.h /usr/include/bits/select.h \
+  /usr/include/bits/sigset.h /usr/include/bits/time.h \
+  /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+  /usr/include/bits/sched.h /usr/include/alloca.h \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+  /usr/include/c++/4.0.2/clocale /usr/include/locale.h \
+  /usr/include/bits/locale.h /usr/include/langinfo.h \
+  /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/signal.h \
+  /usr/include/bits/initspin.h /usr/include/bits/sigthread.h \
+  /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+  /usr/include/bits/environments.h /usr/include/bits/confname.h \
+  /usr/include/getopt.h /usr/include/c++/4.0.2/cctype \
+  /usr/include/ctype.h /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/ResolverInfo.h /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/ResolverInfoPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/string /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h \
+  ../../../zypp/solver/detail/ResolverInfoNeededBy.h \
+  ../../../zypp/solver/detail/ResolverInfoNeededByPtr.h \
+  ../../../zypp/solver/detail/ResolverInfoContainer.h \
+  ../../../zypp/solver/detail/ResolverInfoContainerPtr.h
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/ResolverInfo.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/ResolverInfoPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+../../../zypp/solver/detail/ResolverInfoNeededBy.h:
+
+../../../zypp/solver/detail/ResolverInfoNeededByPtr.h:
+
+../../../zypp/solver/detail/ResolverInfoContainer.h:
+
+../../../zypp/solver/detail/ResolverInfoContainerPtr.h:
diff --git a/zypp/solver/detail/.deps/ResolverInfoObsoletes.Plo b/zypp/solver/detail/.deps/ResolverInfoObsoletes.Plo
new file mode 100644 (file)
index 0000000..9bd400a
--- /dev/null
@@ -0,0 +1,532 @@
+ResolverInfoObsoletes.lo ResolverInfoObsoletes.o:  \
+ ResolverInfoObsoletes.cc /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstring \
+  /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/bits/stdio_lim.h /usr/include/c++/4.0.2/cstdlib \
+  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+  /usr/include/bits/waitstatus.h /usr/include/endian.h \
+  /usr/include/bits/endian.h /usr/include/sys/types.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/time.h \
+  /usr/include/sys/select.h /usr/include/bits/select.h \
+  /usr/include/bits/sigset.h /usr/include/bits/time.h \
+  /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+  /usr/include/bits/sched.h /usr/include/alloca.h \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+  /usr/include/c++/4.0.2/clocale /usr/include/locale.h \
+  /usr/include/bits/locale.h /usr/include/langinfo.h \
+  /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/signal.h \
+  /usr/include/bits/initspin.h /usr/include/bits/sigthread.h \
+  /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+  /usr/include/bits/environments.h /usr/include/bits/confname.h \
+  /usr/include/getopt.h /usr/include/c++/4.0.2/cctype \
+  /usr/include/ctype.h /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/ResolverInfo.h /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/ResolverInfoPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/string /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h \
+  ../../../zypp/solver/detail/ResolverInfoObsoletes.h \
+  ../../../zypp/solver/detail/ResolverInfoObsoletesPtr.h \
+  ../../../zypp/solver/detail/ResolverInfoContainer.h \
+  ../../../zypp/solver/detail/ResolverInfoContainerPtr.h
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/ResolverInfo.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/ResolverInfoPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+../../../zypp/solver/detail/ResolverInfoObsoletes.h:
+
+../../../zypp/solver/detail/ResolverInfoObsoletesPtr.h:
+
+../../../zypp/solver/detail/ResolverInfoContainer.h:
+
+../../../zypp/solver/detail/ResolverInfoContainerPtr.h:
diff --git a/zypp/solver/detail/.deps/ResolverQueue.Plo b/zypp/solver/detail/.deps/ResolverQueue.Plo
new file mode 100644 (file)
index 0000000..e846a7d
--- /dev/null
@@ -0,0 +1,592 @@
+ResolverQueue.lo ResolverQueue.o: ResolverQueue.cc \
+  /usr/include/c++/4.0.2/map /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstring \
+  /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/bits/stdio_lim.h /usr/include/c++/4.0.2/cstdlib \
+  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+  /usr/include/bits/waitstatus.h /usr/include/endian.h \
+  /usr/include/bits/endian.h /usr/include/sys/types.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/time.h \
+  /usr/include/sys/select.h /usr/include/bits/select.h \
+  /usr/include/bits/sigset.h /usr/include/bits/time.h \
+  /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+  /usr/include/bits/sched.h /usr/include/alloca.h \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+  /usr/include/c++/4.0.2/clocale /usr/include/locale.h \
+  /usr/include/bits/locale.h /usr/include/langinfo.h \
+  /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/signal.h \
+  /usr/include/bits/initspin.h /usr/include/bits/sigthread.h \
+  /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+  /usr/include/bits/environments.h /usr/include/bits/confname.h \
+  /usr/include/getopt.h /usr/include/c++/4.0.2/cctype \
+  /usr/include/ctype.h /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/ResolverQueue.h /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/ResolverQueuePtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/ResolverContextPtr.h \
+  ../../../zypp/solver/detail/QueueItem.h \
+  ../../../zypp/solver/detail/QueueItemPtr.h \
+  ../../../zypp/solver/detail/ResolverInfo.h \
+  ../../../zypp/solver/detail/ResolverInfoPtr.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/string /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h \
+  ../../../zypp/solver/detail/QueueItemBranch.h \
+  ../../../zypp/solver/detail/QueueItemBranchPtr.h \
+  ../../../zypp/solver/detail/QueueItemConflict.h \
+  ../../../zypp/solver/detail/QueueItemConflictPtr.h \
+  ../../../zypp/solver/detail/QueueItemGroup.h \
+  ../../../zypp/solver/detail/QueueItemGroupPtr.h \
+  ../../../zypp/solver/detail/QueueItemInstall.h \
+  ../../../zypp/solver/detail/QueueItemInstallPtr.h \
+  ../../../zypp/solver/detail/QueueItemRequire.h \
+  ../../../zypp/solver/detail/QueueItemRequirePtr.h \
+  ../../../zypp/solver/detail/QueueItemUninstall.h \
+  ../../../zypp/solver/detail/QueueItemUninstallPtr.h \
+  ../../../zypp/solver/detail/ResolverContext.h \
+  ../../../zypp/solver/detail/Version.h \
+  /usr/include/YaST2/y2util/stringutil.h /usr/include/c++/4.0.2/cstdarg \
+  /usr/include/c++/4.0.2/vector /usr/include/c++/4.0.2/bits/stl_vector.h \
+  /usr/include/c++/4.0.2/bits/stl_bvector.h \
+  /usr/include/c++/4.0.2/bits/vector.tcc
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/ResolverQueue.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/ResolverQueuePtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/ResolverContextPtr.h:
+
+../../../zypp/solver/detail/QueueItem.h:
+
+../../../zypp/solver/detail/QueueItemPtr.h:
+
+../../../zypp/solver/detail/ResolverInfo.h:
+
+../../../zypp/solver/detail/ResolverInfoPtr.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+../../../zypp/solver/detail/QueueItemBranch.h:
+
+../../../zypp/solver/detail/QueueItemBranchPtr.h:
+
+../../../zypp/solver/detail/QueueItemConflict.h:
+
+../../../zypp/solver/detail/QueueItemConflictPtr.h:
+
+../../../zypp/solver/detail/QueueItemGroup.h:
+
+../../../zypp/solver/detail/QueueItemGroupPtr.h:
+
+../../../zypp/solver/detail/QueueItemInstall.h:
+
+../../../zypp/solver/detail/QueueItemInstallPtr.h:
+
+../../../zypp/solver/detail/QueueItemRequire.h:
+
+../../../zypp/solver/detail/QueueItemRequirePtr.h:
+
+../../../zypp/solver/detail/QueueItemUninstall.h:
+
+../../../zypp/solver/detail/QueueItemUninstallPtr.h:
+
+../../../zypp/solver/detail/ResolverContext.h:
+
+../../../zypp/solver/detail/Version.h:
+
+/usr/include/YaST2/y2util/stringutil.h:
+
+/usr/include/c++/4.0.2/cstdarg:
+
+/usr/include/c++/4.0.2/vector:
+
+/usr/include/c++/4.0.2/bits/stl_vector.h:
+
+/usr/include/c++/4.0.2/bits/stl_bvector.h:
+
+/usr/include/c++/4.0.2/bits/vector.tcc:
diff --git a/zypp/solver/detail/.deps/Section.Plo b/zypp/solver/detail/.deps/Section.Plo
new file mode 100644 (file)
index 0000000..8f67247
--- /dev/null
@@ -0,0 +1,412 @@
+Section.lo Section.o: Section.cc /usr/include/YaST2/y2util/stringutil.h \
+  /usr/include/c++/4.0.2/cstdio \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/stdio.h /usr/include/bits/types.h \
+  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
+  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+  /usr/include/bits/wchar.h /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/cstdarg \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/string.h \
+  /usr/include/xlocale.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/vector \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_vector.h \
+  /usr/include/c++/4.0.2/bits/stl_bvector.h \
+  /usr/include/c++/4.0.2/bits/vector.tcc /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/bits/char_traits.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/list /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/Section.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/debug.h
+
+/usr/include/YaST2/y2util/stringutil.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/cstdarg:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/vector:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_vector.h:
+
+/usr/include/c++/4.0.2/bits/stl_bvector.h:
+
+/usr/include/c++/4.0.2/bits/vector.tcc:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/Section.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/debug.h:
diff --git a/zypp/solver/detail/.deps/ServiceWorld.Plo b/zypp/solver/detail/.deps/ServiceWorld.Plo
new file mode 100644 (file)
index 0000000..4421476
--- /dev/null
@@ -0,0 +1,571 @@
+ServiceWorld.lo ServiceWorld.o: ServiceWorld.cc \
+  ../../../zypp/solver/detail/ServiceWorld.h \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  ../../../zypp/solver/detail/ServiceWorldPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/StoreWorld.h /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/list /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/ResolvableAndDependency.h \
+  ../../../zypp/solver/detail/ResolvableAndDependencyPtr.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h \
+  ../../../zypp/solver/detail/PackmanPtr.h \
+  ../../../zypp/solver/detail/World.h \
+  ../../../zypp/solver/detail/MultiWorldPtr.h \
+  ../../../zypp/solver/detail/Match.h \
+  ../../../zypp/solver/detail/MatchPtr.h \
+  ../../../zypp/solver/detail/Importance.h \
+  ../../../zypp/solver/detail/Pending.h \
+  ../../../zypp/solver/detail/PendingPtr.h \
+  ../../../zypp/solver/detail/Packman.h \
+  ../../../zypp/solver/detail/Package.h \
+  ../../../zypp/solver/detail/PackagePtr.h \
+  ../../../zypp/solver/detail/PackageUpdatePtr.h \
+  ../../../zypp/solver/detail/Section.h \
+  ../../../zypp/solver/detail/PackageUpdate.h
+
+../../../zypp/solver/detail/ServiceWorld.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+../../../zypp/solver/detail/ServiceWorldPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/StoreWorld.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/ResolvableAndDependency.h:
+
+../../../zypp/solver/detail/ResolvableAndDependencyPtr.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+../../../zypp/solver/detail/PackmanPtr.h:
+
+../../../zypp/solver/detail/World.h:
+
+../../../zypp/solver/detail/MultiWorldPtr.h:
+
+../../../zypp/solver/detail/Match.h:
+
+../../../zypp/solver/detail/MatchPtr.h:
+
+../../../zypp/solver/detail/Importance.h:
+
+../../../zypp/solver/detail/Pending.h:
+
+../../../zypp/solver/detail/PendingPtr.h:
+
+../../../zypp/solver/detail/Packman.h:
+
+../../../zypp/solver/detail/Package.h:
+
+../../../zypp/solver/detail/PackagePtr.h:
+
+../../../zypp/solver/detail/PackageUpdatePtr.h:
+
+../../../zypp/solver/detail/Section.h:
+
+../../../zypp/solver/detail/PackageUpdate.h:
diff --git a/zypp/solver/detail/.deps/Spec.Plo b/zypp/solver/detail/.deps/Spec.Plo
new file mode 100644 (file)
index 0000000..915f18d
--- /dev/null
@@ -0,0 +1,486 @@
+Spec.lo Spec.o: Spec.cc ../../../zypp/solver/detail/Spec.h \
+  /usr/include/c++/4.0.2/list /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstring \
+  /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/bits/stdio_lim.h /usr/include/c++/4.0.2/cstdlib \
+  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+  /usr/include/bits/waitstatus.h /usr/include/endian.h \
+  /usr/include/bits/endian.h /usr/include/sys/types.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/time.h \
+  /usr/include/sys/select.h /usr/include/bits/select.h \
+  /usr/include/bits/sigset.h /usr/include/bits/time.h \
+  /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+  /usr/include/bits/sched.h /usr/include/alloca.h \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+  /usr/include/c++/4.0.2/clocale /usr/include/locale.h \
+  /usr/include/bits/locale.h /usr/include/langinfo.h \
+  /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/signal.h \
+  /usr/include/bits/initspin.h /usr/include/bits/sigthread.h \
+  /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+  /usr/include/bits/environments.h /usr/include/bits/confname.h \
+  /usr/include/getopt.h /usr/include/c++/4.0.2/cctype \
+  /usr/include/ctype.h /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/string /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h
+
+../../../zypp/solver/detail/Spec.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
diff --git a/zypp/solver/detail/.deps/StoreWorld.Plo b/zypp/solver/detail/.deps/StoreWorld.Plo
new file mode 100644 (file)
index 0000000..daf99a8
--- /dev/null
@@ -0,0 +1,588 @@
+StoreWorld.lo StoreWorld.o: StoreWorld.cc ../../../config.h \
+  /usr/include/YaST2/y2util/stringutil.h /usr/include/c++/4.0.2/cstdio \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/stdio.h /usr/include/bits/types.h \
+  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
+  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+  /usr/include/bits/wchar.h /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/cstdarg \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/string.h \
+  /usr/include/xlocale.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/vector \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_vector.h \
+  /usr/include/c++/4.0.2/bits/stl_bvector.h \
+  /usr/include/c++/4.0.2/bits/vector.tcc /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/bits/char_traits.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/list /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/Version.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/Packman.h \
+  ../../../zypp/solver/detail/PackmanPtr.h \
+  ../../../zypp/solver/detail/StoreWorld.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/ResolvableAndDependency.h \
+  ../../../zypp/solver/detail/ResolvableAndDependencyPtr.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/World.h \
+  ../../../zypp/solver/detail/MultiWorldPtr.h \
+  ../../../zypp/solver/detail/Match.h \
+  ../../../zypp/solver/detail/MatchPtr.h \
+  ../../../zypp/solver/detail/Importance.h \
+  ../../../zypp/solver/detail/Pending.h \
+  ../../../zypp/solver/detail/PendingPtr.h \
+  ../../../zypp/solver/detail/Package.h \
+  ../../../zypp/solver/detail/PackagePtr.h \
+  ../../../zypp/solver/detail/PackageUpdatePtr.h \
+  ../../../zypp/solver/detail/Section.h \
+  ../../../zypp/solver/detail/PackageUpdate.h \
+  ../../../zypp/solver/detail/debug.h
+
+../../../config.h:
+
+/usr/include/YaST2/y2util/stringutil.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/cstdarg:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/vector:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_vector.h:
+
+/usr/include/c++/4.0.2/bits/stl_bvector.h:
+
+/usr/include/c++/4.0.2/bits/vector.tcc:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/Version.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/Packman.h:
+
+../../../zypp/solver/detail/PackmanPtr.h:
+
+../../../zypp/solver/detail/StoreWorld.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/ResolvableAndDependency.h:
+
+../../../zypp/solver/detail/ResolvableAndDependencyPtr.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/World.h:
+
+../../../zypp/solver/detail/MultiWorldPtr.h:
+
+../../../zypp/solver/detail/Match.h:
+
+../../../zypp/solver/detail/MatchPtr.h:
+
+../../../zypp/solver/detail/Importance.h:
+
+../../../zypp/solver/detail/Pending.h:
+
+../../../zypp/solver/detail/PendingPtr.h:
+
+../../../zypp/solver/detail/Package.h:
+
+../../../zypp/solver/detail/PackagePtr.h:
+
+../../../zypp/solver/detail/PackageUpdatePtr.h:
+
+../../../zypp/solver/detail/Section.h:
+
+../../../zypp/solver/detail/PackageUpdate.h:
+
+../../../zypp/solver/detail/debug.h:
diff --git a/zypp/solver/detail/.deps/Subscription.Plo b/zypp/solver/detail/.deps/Subscription.Plo
new file mode 100644 (file)
index 0000000..f6ad0a9
--- /dev/null
@@ -0,0 +1,494 @@
+Subscription.lo Subscription.o: Subscription.cc \
+  /usr/include/YaST2/y2util/stringutil.h /usr/include/c++/4.0.2/cstdio \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/stdio.h /usr/include/bits/types.h \
+  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
+  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+  /usr/include/bits/wchar.h /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/cstdarg \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/string.h \
+  /usr/include/xlocale.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/vector \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_vector.h \
+  /usr/include/c++/4.0.2/bits/stl_bvector.h \
+  /usr/include/c++/4.0.2/bits/vector.tcc /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/bits/char_traits.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/list /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/Subscription.h /usr/include/sys/time.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/debug.h
+
+/usr/include/YaST2/y2util/stringutil.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/cstdarg:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/vector:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_vector.h:
+
+/usr/include/c++/4.0.2/bits/stl_bvector.h:
+
+/usr/include/c++/4.0.2/bits/vector.tcc:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/Subscription.h:
+
+/usr/include/sys/time.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/debug.h:
diff --git a/zypp/solver/detail/.deps/UndumpWorld.Plo b/zypp/solver/detail/.deps/UndumpWorld.Plo
new file mode 100644 (file)
index 0000000..c0a3566
--- /dev/null
@@ -0,0 +1,573 @@
+UndumpWorld.lo UndumpWorld.o: UndumpWorld.cc \
+  ../../../zypp/solver/detail/UndumpWorld.h /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  ../../../zypp/solver/detail/UndumpWorldPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/StoreWorld.h /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/list /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/ResolvableAndDependency.h \
+  ../../../zypp/solver/detail/ResolvableAndDependencyPtr.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h \
+  ../../../zypp/solver/detail/PackmanPtr.h \
+  ../../../zypp/solver/detail/World.h \
+  ../../../zypp/solver/detail/MultiWorldPtr.h \
+  ../../../zypp/solver/detail/Match.h \
+  ../../../zypp/solver/detail/MatchPtr.h \
+  ../../../zypp/solver/detail/Importance.h \
+  ../../../zypp/solver/detail/Pending.h \
+  ../../../zypp/solver/detail/PendingPtr.h \
+  ../../../zypp/solver/detail/Packman.h \
+  ../../../zypp/solver/detail/Package.h \
+  ../../../zypp/solver/detail/PackagePtr.h \
+  ../../../zypp/solver/detail/PackageUpdatePtr.h \
+  ../../../zypp/solver/detail/Section.h \
+  ../../../zypp/solver/detail/PackageUpdate.h \
+  ../../../zypp/solver/detail/extract.h
+
+../../../zypp/solver/detail/UndumpWorld.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+../../../zypp/solver/detail/UndumpWorldPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/StoreWorld.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/ResolvableAndDependency.h:
+
+../../../zypp/solver/detail/ResolvableAndDependencyPtr.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+../../../zypp/solver/detail/PackmanPtr.h:
+
+../../../zypp/solver/detail/World.h:
+
+../../../zypp/solver/detail/MultiWorldPtr.h:
+
+../../../zypp/solver/detail/Match.h:
+
+../../../zypp/solver/detail/MatchPtr.h:
+
+../../../zypp/solver/detail/Importance.h:
+
+../../../zypp/solver/detail/Pending.h:
+
+../../../zypp/solver/detail/PendingPtr.h:
+
+../../../zypp/solver/detail/Packman.h:
+
+../../../zypp/solver/detail/Package.h:
+
+../../../zypp/solver/detail/PackagePtr.h:
+
+../../../zypp/solver/detail/PackageUpdatePtr.h:
+
+../../../zypp/solver/detail/Section.h:
+
+../../../zypp/solver/detail/PackageUpdate.h:
+
+../../../zypp/solver/detail/extract.h:
diff --git a/zypp/solver/detail/.deps/Version.Plo b/zypp/solver/detail/.deps/Version.Plo
new file mode 100644 (file)
index 0000000..bb90f03
--- /dev/null
@@ -0,0 +1,508 @@
+Version.lo Version.o: Version.cc /usr/include/YaST2/y2util/stringutil.h \
+  /usr/include/c++/4.0.2/cstdio \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/stdio.h /usr/include/bits/types.h \
+  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
+  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+  /usr/include/bits/wchar.h /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/cstdarg \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/string.h \
+  /usr/include/xlocale.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/vector \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_vector.h \
+  /usr/include/c++/4.0.2/bits/stl_bvector.h \
+  /usr/include/c++/4.0.2/bits/vector.tcc /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/bits/char_traits.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/list /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/Version.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/debug.h
+
+/usr/include/YaST2/y2util/stringutil.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/cstdarg:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/vector:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_vector.h:
+
+/usr/include/c++/4.0.2/bits/stl_bvector.h:
+
+/usr/include/c++/4.0.2/bits/vector.tcc:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/Version.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/debug.h:
diff --git a/zypp/solver/detail/.deps/World.Plo b/zypp/solver/detail/.deps/World.Plo
new file mode 100644 (file)
index 0000000..000af74
--- /dev/null
@@ -0,0 +1,562 @@
+World.lo World.o: World.cc /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstring \
+  /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/bits/stdio_lim.h /usr/include/c++/4.0.2/cstdlib \
+  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+  /usr/include/bits/waitstatus.h /usr/include/endian.h \
+  /usr/include/bits/endian.h /usr/include/sys/types.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/time.h \
+  /usr/include/sys/select.h /usr/include/bits/select.h \
+  /usr/include/bits/sigset.h /usr/include/bits/time.h \
+  /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+  /usr/include/bits/sched.h /usr/include/alloca.h \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+  /usr/include/c++/4.0.2/clocale /usr/include/locale.h \
+  /usr/include/bits/locale.h /usr/include/langinfo.h \
+  /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/signal.h \
+  /usr/include/bits/initspin.h /usr/include/bits/sigthread.h \
+  /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+  /usr/include/bits/environments.h /usr/include/bits/confname.h \
+  /usr/include/getopt.h /usr/include/c++/4.0.2/cctype \
+  /usr/include/ctype.h /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/World.h /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/MultiWorldPtr.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/string /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Channel.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h ../../../zypp/solver/detail/Match.h \
+  ../../../zypp/solver/detail/MatchPtr.h \
+  ../../../zypp/solver/detail/Importance.h \
+  ../../../zypp/solver/detail/Pending.h \
+  ../../../zypp/solver/detail/PendingPtr.h \
+  ../../../zypp/solver/detail/Packman.h \
+  ../../../zypp/solver/detail/PackmanPtr.h \
+  ../../../zypp/solver/detail/Package.h \
+  ../../../zypp/solver/detail/PackagePtr.h \
+  ../../../zypp/solver/detail/PackageUpdatePtr.h \
+  ../../../zypp/solver/detail/Section.h \
+  ../../../zypp/solver/detail/PackageUpdate.h \
+  ../../../zypp/solver/detail/Subscription.h /usr/include/sys/time.h \
+  ../../../zypp/solver/detail/Version.h
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/World.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/MultiWorldPtr.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+../../../zypp/solver/detail/Match.h:
+
+../../../zypp/solver/detail/MatchPtr.h:
+
+../../../zypp/solver/detail/Importance.h:
+
+../../../zypp/solver/detail/Pending.h:
+
+../../../zypp/solver/detail/PendingPtr.h:
+
+../../../zypp/solver/detail/Packman.h:
+
+../../../zypp/solver/detail/PackmanPtr.h:
+
+../../../zypp/solver/detail/Package.h:
+
+../../../zypp/solver/detail/PackagePtr.h:
+
+../../../zypp/solver/detail/PackageUpdatePtr.h:
+
+../../../zypp/solver/detail/Section.h:
+
+../../../zypp/solver/detail/PackageUpdate.h:
+
+../../../zypp/solver/detail/Subscription.h:
+
+/usr/include/sys/time.h:
+
+../../../zypp/solver/detail/Version.h:
diff --git a/zypp/solver/detail/.deps/XmlNode.Plo b/zypp/solver/detail/.deps/XmlNode.Plo
new file mode 100644 (file)
index 0000000..518eb69
--- /dev/null
@@ -0,0 +1,372 @@
+XmlNode.lo XmlNode.o: XmlNode.cc ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/c++/4.0.2/list /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstring \
+  /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/bits/stdio_lim.h /usr/include/c++/4.0.2/cstdlib \
+  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+  /usr/include/bits/waitstatus.h /usr/include/endian.h \
+  /usr/include/bits/endian.h /usr/include/sys/types.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/time.h \
+  /usr/include/sys/select.h /usr/include/bits/select.h \
+  /usr/include/bits/sigset.h /usr/include/bits/time.h \
+  /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+  /usr/include/bits/sched.h /usr/include/alloca.h \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+  /usr/include/c++/4.0.2/clocale /usr/include/locale.h \
+  /usr/include/bits/locale.h /usr/include/langinfo.h \
+  /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/signal.h \
+  /usr/include/bits/initspin.h /usr/include/bits/sigthread.h \
+  /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+  /usr/include/bits/environments.h /usr/include/bits/confname.h \
+  /usr/include/getopt.h /usr/include/c++/4.0.2/cctype \
+  /usr/include/ctype.h /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/bits/char_traits.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
diff --git a/zypp/solver/detail/.deps/XmlParser.Plo b/zypp/solver/detail/.deps/XmlParser.Plo
new file mode 100644 (file)
index 0000000..821adb3
--- /dev/null
@@ -0,0 +1,542 @@
+XmlParser.lo XmlParser.o: XmlParser.cc ../../../config.h \
+  /usr/include/ctype.h /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/bits/types.h \
+  /usr/include/bits/wordsize.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/bits/typesizes.h /usr/include/endian.h \
+  /usr/include/bits/endian.h /usr/include/xlocale.h /usr/include/assert.h \
+  ../../../zypp/solver/detail/XmlParser.h /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/c++/4.0.2/cstddef \
+  /usr/include/string.h /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/bits/stdio_lim.h /usr/include/c++/4.0.2/cstdlib \
+  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+  /usr/include/bits/waitstatus.h /usr/include/sys/types.h \
+  /usr/include/time.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/bits/sigset.h \
+  /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/sched.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+  /usr/include/c++/4.0.2/clocale /usr/include/locale.h \
+  /usr/include/bits/locale.h /usr/include/langinfo.h \
+  /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/signal.h \
+  /usr/include/bits/initspin.h /usr/include/bits/sigthread.h \
+  /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+  /usr/include/bits/environments.h /usr/include/bits/confname.h \
+  /usr/include/getopt.h /usr/include/c++/4.0.2/cctype \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/Channel.h /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/bits/char_traits.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/Package.h \
+  ../../../zypp/solver/detail/PackagePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/PackageUpdatePtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/Section.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependency.h \
+  ../../../zypp/solver/detail/PackageUpdate.h \
+  ../../../zypp/solver/detail/Importance.h \
+  ../../../zypp/solver/detail/utils.h ../../../zypp/solver/detail/debug.h
+
+../../../config.h:
+
+/usr/include/ctype.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/assert.h:
+
+../../../zypp/solver/detail/XmlParser.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/include/string.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/Channel.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/Package.h:
+
+../../../zypp/solver/detail/PackagePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/PackageUpdatePtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/Section.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependency.h:
+
+../../../zypp/solver/detail/PackageUpdate.h:
+
+../../../zypp/solver/detail/Importance.h:
+
+../../../zypp/solver/detail/utils.h:
+
+../../../zypp/solver/detail/debug.h:
diff --git a/zypp/solver/detail/.deps/debug.Plo b/zypp/solver/detail/.deps/debug.Plo
new file mode 100644 (file)
index 0000000..6064ab1
--- /dev/null
@@ -0,0 +1,322 @@
+debug.lo debug.o: debug.cc /usr/include/YaST2/y2util/stringutil.h \
+  /usr/include/c++/4.0.2/cstdio \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/stdio.h /usr/include/bits/types.h \
+  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
+  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+  /usr/include/bits/wchar.h /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/cstdarg \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/string.h \
+  /usr/include/xlocale.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/vector \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_vector.h \
+  /usr/include/c++/4.0.2/bits/stl_bvector.h \
+  /usr/include/c++/4.0.2/bits/vector.tcc /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/bits/char_traits.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/list /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  ../../../zypp/solver/detail/debug.h
+
+/usr/include/YaST2/y2util/stringutil.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/cstdarg:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/vector:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_vector.h:
+
+/usr/include/c++/4.0.2/bits/stl_bvector.h:
+
+/usr/include/c++/4.0.2/bits/vector.tcc:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+../../../zypp/solver/detail/debug.h:
diff --git a/zypp/solver/detail/.deps/extract.Plo b/zypp/solver/detail/.deps/extract.Plo
new file mode 100644 (file)
index 0000000..2fd8b32
--- /dev/null
@@ -0,0 +1,553 @@
+extract.lo extract.o: extract.cc ../../../zypp/solver/detail/extract.h \
+  ../../../zypp/solver/detail/Channel.h /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/string /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/Pending.h \
+  ../../../zypp/solver/detail/PendingPtr.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  ../../../zypp/solver/detail/Package.h \
+  ../../../zypp/solver/detail/PackagePtr.h \
+  ../../../zypp/solver/detail/PackageUpdatePtr.h \
+  ../../../zypp/solver/detail/Section.h \
+  ../../../zypp/solver/detail/Match.h \
+  ../../../zypp/solver/detail/MatchPtr.h \
+  ../../../zypp/solver/detail/Importance.h \
+  ../../../zypp/solver/detail/PackmanPtr.h \
+  ../../../zypp/solver/detail/XmlParser.h \
+  ../../../zypp/solver/detail/utils.h ../../../zypp/solver/detail/debug.h
+
+../../../zypp/solver/detail/extract.h:
+
+../../../zypp/solver/detail/Channel.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/Pending.h:
+
+../../../zypp/solver/detail/PendingPtr.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+../../../zypp/solver/detail/Package.h:
+
+../../../zypp/solver/detail/PackagePtr.h:
+
+../../../zypp/solver/detail/PackageUpdatePtr.h:
+
+../../../zypp/solver/detail/Section.h:
+
+../../../zypp/solver/detail/Match.h:
+
+../../../zypp/solver/detail/MatchPtr.h:
+
+../../../zypp/solver/detail/Importance.h:
+
+../../../zypp/solver/detail/PackmanPtr.h:
+
+../../../zypp/solver/detail/XmlParser.h:
+
+../../../zypp/solver/detail/utils.h:
+
+../../../zypp/solver/detail/debug.h:
diff --git a/zypp/solver/detail/.deps/libzypp.Plo b/zypp/solver/detail/.deps/libzypp.Plo
new file mode 100644 (file)
index 0000000..9ce06a8
--- /dev/null
@@ -0,0 +1 @@
+# dummy
diff --git a/zypp/solver/detail/.deps/utils.Plo b/zypp/solver/detail/.deps/utils.Plo
new file mode 100644 (file)
index 0000000..8c57f32
--- /dev/null
@@ -0,0 +1,376 @@
+utils.lo utils.o: utils.cc /usr/include/sys/mman.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/bits/types.h \
+  /usr/include/bits/wordsize.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/bits/typesizes.h /usr/include/bits/mman.h \
+  /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
+  /usr/include/wchar.h /usr/include/bits/wchar.h /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/fcntl.h \
+  /usr/include/bits/fcntl.h /usr/include/sys/types.h /usr/include/time.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/sys/select.h /usr/include/bits/select.h \
+  /usr/include/bits/sigset.h /usr/include/bits/time.h \
+  /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+  /usr/include/bits/sched.h /usr/include/sys/stat.h \
+  /usr/include/bits/stat.h /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/xlocale.h /usr/include/alloca.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h /usr/include/ctype.h \
+  /usr/include/string.h /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/utils.h /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/c++/4.0.2/cstddef \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/signal.h \
+  /usr/include/bits/initspin.h /usr/include/bits/sigthread.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/c++/4.0.2/bits/postypes.h \
+  /usr/include/c++/4.0.2/cwchar /usr/include/c++/4.0.2/ctime \
+  /usr/include/stdint.h /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc /usr/include/zlib.h \
+  /usr/include/zconf.h ../../../zypp/solver/detail/debug.h
+
+/usr/include/sys/mman.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/bits/mman.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/fcntl.h:
+
+/usr/include/bits/fcntl.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/sys/stat.h:
+
+/usr/include/bits/stat.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/alloca.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/ctype.h:
+
+/usr/include/string.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/utils.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/zlib.h:
+
+/usr/include/zconf.h:
+
+../../../zypp/solver/detail/debug.h:
diff --git a/zypp/solver/detail/.libs/libzypp_solver_detail.a b/zypp/solver/detail/.libs/libzypp_solver_detail.a
new file mode 100644 (file)
index 0000000..bf50e42
Binary files /dev/null and b/zypp/solver/detail/.libs/libzypp_solver_detail.a differ
diff --git a/zypp/solver/detail/Arch.cc b/zypp/solver/detail/Arch.cc
new file mode 100644 (file)
index 0000000..c3bed6a
--- /dev/null
@@ -0,0 +1,249 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Arch.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * Definition of 'edition'
+ *  contains epoch-version-release-arch
+ *  and comparision functions
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <y2util/stringutil.h>
+#include <sys/utsname.h>
+
+#include <zypp/solver/detail/Arch.h>
+#include <zypp/solver/detail/utils.h>
+
+#if 0
+static char *known_archs[] = {
+    "", "*", "?",                      // noarch, any, unknown
+    "i386", "i486", "i586", "i686", 
+    "x86-64", "x86_64", "ia32e", "athlon",
+    "ppc", "ppc64",
+    "s390", "s390x",
+    "ia64",
+    "sparc", "sparc64"
+};
+#endif
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+static const string system_arch (void);
+static const string canonical_arch (const string & arch);
+
+//---------------------------------------------------------------------------
+
+const Arch * Arch::Unknown = Arch::create ("unknown");
+const Arch * Arch::Any = Arch::create ("any");
+const Arch * Arch::Noarch = Arch::create ("noarch");
+const Arch * Arch::System = Arch::create (system_arch ());
+
+//---------------------------------------------------------------------------
+// architecture stuff
+
+static const string
+canonical_arch (const string & arch)
+{
+    typedef struct { char *from; char *to; } canonical;
+    // convert machine string to known_arch
+static canonical canonical_archs[] = {
+    { "noarch",  "noarch" },
+    { "unknown", "unknown" },
+    { "any",    "any" },
+    { "all",     "any" },
+    { "i386",    "i386" },
+    { "ix86",    "i386" }, /* OpenPKG uses this */
+    { "i486",    "i486" },
+    { "i586",    "i586" },
+    { "i686",    "i686" },
+    { "x86_64",  "x86_64" },
+    { "ia32e",   "ia32e" },
+    { "athlon",  "athlon" },
+    { "ppc",     "ppc" },
+    { "ppc64",   "ppc64" },
+    { "s390",    "s390" },
+    { "s390x",   "s390x" },
+    { "ia64",    "ia64" },
+    { "sparc",   "sparc" },
+    { "sun4c",   "sparc" },
+    { "sun4d",   "sparc" },
+    { "sun4m",   "sparc" },
+    { "sparc64", "sparc64" },
+    { "sun4u",   "sparc64" },
+    { "sparcv9", "sparc64" },
+    { 0 }
+};
+
+    for (canonical *ptr = canonical_archs; ptr->from; ptr++) {
+       if (arch == ptr->from) {
+           return ptr->to;
+       }
+    }
+
+    return "canonical";
+}
+
+
+static const string
+system_arch (void)
+{
+    static struct utsname buf;
+    static bool checked = false;
+
+    if (!checked) {
+       if (uname (&buf) < 0) {
+           return NULL;
+       }
+       checked = true;
+    }
+
+    return string (buf.machine);
+}
+
+
+//---------------------------------------------------------------------------
+
+const string
+Arch::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+const string
+Arch::toString ( const Arch & arch )
+{
+    return arch._arch;
+}
+
+
+ostream &
+Arch::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream & os, const Arch & arch)
+{
+    return os << arch.asString();
+}
+
+//---------------------------------------------------------------------------
+
+Arch::Arch( const string & a)
+    : _arch (a)
+{
+}
+
+
+const Arch *
+Arch::create (const string & arch)
+{
+typedef std::map<const std::string, const Arch *> ArchTable;
+
+    static ArchTable table;
+    ArchTable::iterator pos = table.find (arch);
+    if (pos != table.end()) {
+       return pos->second;
+    }
+    const Arch *new_arch = new Arch(canonical_arch (arch));
+    table.insert (ArchTable::value_type (arch, new_arch));
+
+    return new_arch;
+}
+
+
+ArchList
+Arch::getCompatList () const
+{
+    typedef struct {
+       const char *arch;
+       const char *compat_arch;
+    } ArchAndCompatArch;
+
+    /* _NOARCH should never be listed in this table (other than as the
+     * terminator), as it will automatically be added.  Every architecture
+     * is implicitly compatible with itself.  Compatible architectures
+     * should be listed in most-preferred to least-preferred order. */
+
+    static ArchAndCompatArch compat_table[] = {
+       { "i486",    "i386" },
+       { "i586",    "i486" },
+       { "i586",    "i386" },
+       { "i686",    "i586" },
+       { "i686",    "i486" },
+       { "i686",    "i386" },
+       { "athlon",  "i686" },
+       { "athlon",  "i586" },
+       { "athlon",  "i486" },
+       { "athlon",  "i386" },
+       { "x86_64",  "i686" },
+       { "x86_64",  "i586" },
+       { "x86_64",  "i486" },
+       { "x86_64",  "i386" },
+       { "x86_64",  "athlon" },
+       { "x86_64",  "ia32e" },
+       { "ppc64",   "ppc" },
+       { "s390x",   "s390" },
+       { "sparc64", "sparc" },
+       { 0 }
+    };
+
+
+    ArchAndCompatArch *iter;
+    ArchList ret;
+
+    ret.push_back (this);                      // be compatible with yourself
+
+    iter = compat_table;
+    while (iter->arch != NULL) {
+        if (_arch == iter->arch) {
+           ret.push_back (create (iter->compat_arch));
+       }
+        iter++;
+    }
+
+    return ret;
+}
+
+
+int
+Arch::getCompatScore (const ArchList & archlist) const
+{
+    int score = 0;
+
+    for (ArchList::const_iterator iter = archlist.begin(); iter != archlist.end(); iter++) {
+       if (*iter == this) {
+           return score;
+       }
+        score++;
+    }
+    return -1;
+}
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/Arch.h b/zypp/solver/detail/Arch.h
new file mode 100644 (file)
index 0000000..af876b5
--- /dev/null
@@ -0,0 +1,91 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Arch.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * Definition of 'edition'
+ *  contains epoch-version-release-arch
+ *  and comparision functions
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _Arch_h
+#define _Arch_h
+
+#include <iosfwd>
+#include <list>
+#include <map>
+#include <string>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+class Arch;
+typedef std::list<const Arch *> ArchList;
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : Arch
+/**
+ *
+ **/
+class Arch {
+
+  private:
+
+    std::string _arch;
+
+    explicit Arch( const std::string & a = "" );
+
+  public:
+    static const Arch *Any;
+    static const Arch *Unknown;
+    static const Arch *Noarch;
+    static const Arch *System;
+
+    static const Arch *create ( const std::string & arch );            // factory
+    virtual ~Arch() {};
+
+    // ---------------------------------- I/O
+
+    static const std::string toString ( const Arch & arch );
+
+    virtual std::ostream & dumpOn( std::ostream & str ) const;
+
+    friend std::ostream& operator<< ( std::ostream &, const Arch & arch);
+
+    const std::string asString ( void ) const;
+
+    // ---------------------------------- accessors
+
+    // ---------------------------------- methods
+
+    bool isAny (void) const { return this == Any; }
+    bool isUnknown (void) const { return this == Unknown; }
+    bool isNoarch (void) const { return this == Noarch; }
+
+    ArchList getCompatList () const;
+    int getCompatScore (const ArchList & archlist) const;
+
+};
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _Arch_h
diff --git a/zypp/solver/detail/ChangeLog b/zypp/solver/detail/ChangeLog
new file mode 100644 (file)
index 0000000..f637131
--- /dev/null
@@ -0,0 +1,9076 @@
+2005-06-22  Tambet Ingo  <tambet@ximian.com>
+
+       Backport changes from the stable branch:
+
+       2005-05-12  James Willcox  <james@ximian.com>
+
+       * rc-rollback.c: (file_changes_to_xml), (get_file_changes),
+       (rc_rollback_restore_files):
+
+       Store symlink targets, and restore them after rollback.
+
+       2005-04-27  James Willcox  <james@ximian.com>
+
+       * rc-rpmman.c: (rc_rpmman_find_system_headers_v4),
+       (rc_rpmman_query), (load_rpm_syms):
+       * rc-rpmman.h: add headerLink
+
+       Ref the headers in rc_rpmman_find_system_headers_v4, as rpm
+       unrefs them after each iteration.
+
+2005-06-22  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-rpmman.c: Update the dependency creation functions.
+       Add support to RPM 4.4.
+
+       * rc-resolvable-match.c (rc_resolvable_match_equal): Check the type
+       of the dependency in case it's set.
+       (rc_resolvable_match_test): Update the dependency creation functions.
+
+       * Makefile.am: Remove atom, precondition and solution from the build
+       for now. Add support for RPM 4.4.
+
+       * rc-resolvable-dep.c: Add type information RCResolvableDep.
+       (dep_new): ditto.
+       (dep_equal): Compare type as well.
+       (rc_resolvable_dep_new): ditto.
+       (rc_resolvable_dep_new_from_spec): Ditto.
+       (rc_resolvable_dep_get_type): Provide accessor for type.
+
+       * rc-debman-general.c (rc_debman_fill_depends): Update the
+       rc_resolvable_dep_new call to use the new API.
+
+       * rc-debman.c (rc_debman_query_file): Ditto.
+
+       * rc-rollback.c (resolvable_match_cb, get_action_from_xml_node): Ditto.
+
+       * rc-dep-or.c (rc_dep_or_new_provide): Ditto.
+
+       * rc-world.c (rc_world_get_resolvable_with_constraint): Ditto.
+       
+       * rc-extract-packages.c (fill_debian_package): Ditto.
+
+       * rc-xml.c (parse_dep_attrs) 
+       (rc_xml_node_to_resolvable_dep_internal): Ditto.
+
+2005-06-08  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-solution.c:
+       * rc-solution.h:
+       * rc-atom.c:
+       * rc-atom.h:
+       * rc-precondition.c:
+       * rc-precondition.h: Add.
+
+       * Makefile.am: Add new files to the build.
+
+2005-05-23  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-world-service.c (rc_world_service_serialize) 
+       (rc_world_service_unserialize): Implement.
+
+2005-05-19  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-world-local-dir.c (serialize_local_dir_cb) 
+       (rc_world_local_dir_serialize_fn, unserialize_local_dir_cb)
+       (rc_world_local_dir_unserialize_fn): Implement serialization.
+       (rc_world_local_dir_class_init): Register serialization functions to
+       vtable.
+
+       * rc-world.c (rc_world_sync): Don't sync if we're operating on
+       unserialized world.
+       (rc_world_sync_conditional): Ditto.
+       (rc_world_refresh): Ditto for refresh.
+       (rc_world_can_transact_resolvable): Ditto for transact.
+       (serialize_lock, rc_world_serialize, rc_world_to_file) 
+       (rc_world_unserialize, rc_world_from_file): Implement RCWorld
+       serialization/unserialization.
+
+       * rc-world-system.c (serialize_system_cb) 
+       (rc_world_system_serialize, unserialize_system_cb) 
+       (rc_world_system_unserialize): Implement serialization.
+       (rc_world_system_class_init): Register serialization functions to
+       vtable.
+
+       * rc-xml.c (rc_resolvable_dep_to_xml_node): Fix ResolvableSpec casting.
+
+       * rc-world-multi.c (serialize_multi_cb) 
+       (rc_world_multi_serialize_fn, rc_world_multi_unserialize_fn):
+       Implement serialization and unserialization.
+       (rc_world_multi_class_init): Register serialization functions
+       to vtable.
+
+2005-05-18  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-version-rpm.h: New file.
+
+       * rc-version-rpm.c: New file.
+
+       * rc-version-deb.h: New file.
+
+       * rc-version-deb.c: New file.
+
+       * rc-rpmman.c (read_patch_parents): Use the new versioning API.
+       Remove version parser and comparer from here.
+
+       * Makefile.am: Build rc-version-deb.[ch] and rc-version-rpm.[ch].
+
+       * rc-debman.c (query_all_read_line_cb): Use the new versioning API.
+       (rc_debman_version_compare): Remove from here.
+       (rc_debman_parse_version_wrapper): Remove.
+
+       * rc-version.h: Add version related packman capabilites here as
+       version properties. Update API declarations.
+
+       * rc-dep-or.c (rc_dep_string_to_or_dep_slist): Use the new versioning
+       API.
+
+       * rc-version.c: Remove the barely working, non extensible versioning
+       system, add a new and 100% better one.
+
+       * rc-extract-packages.c: Clean up some compiler warnings.
+       (fill_debian_package): Use the new version API.
+       (package_into_hash): Ditto.
+
+       * rc-packman.h: Remove versioning related capabilities.
+       Remove versioning related virtual functions from packman.
+
+       * rc-packman.c (rc_packman_version_compare): Remove. It's not only
+       packman specific anymore.
+       (rc_packman_parse_version): Ditto.
+
+       * libredcarpet.h: Add "rc-version-deb.h" and "rc-version-rpm.h"
+
+       * rc-debman-general.h: Remove versionfing function declarations.
+
+       * rc-resolvable-dep.c (rc_resolvable_dep_verify_relation): Use new
+       versioning api.
+
+       * rc-debman-general.c: Clean up, move version related functions out
+       of here.
+
+2005-05-06  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-rpmman.c: Use correct path for rpmroot. General cleanup.
+
+       * rc-util.c (rc_file_exists): Get rid of it, glib already has that.
+
+       * rc-packman.c (rc_packman_set_root_path) 
+       (rc_packman_get_root_path): Implement.
+
+       * rc-world-system.c (rc_world_system_assemble): Set packman's root
+       path.
+       (rc_world_system_new): Take uri argument.
+
+       * rc-resolvable.c (rc_resolvable_to_str): Use class function instead
+       of hard coded one.
+
+2005-04-10  James Willcox  <james@ximian.com>
+
+       * rc-world.c: (foreach_system_upgrade_cb):
+
+       Do not append a package of the same name and version to the list.
+       Avoids duplicate packages in the list of packages to update.
+
+2005-03-24  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-world-multi.c (rc_world_multi_foreach_subworld): Make a private
+       referenced copy of subworlds before calling callback to avoid race
+       conditions.
+
+2005-03-17  Tambet Ingo  <tambet@ximian.com>
+
+       * distributions.xml: Fix sles-9 target.
+
+2005-03-04  James Willcox  <james@ximian.com>
+
+       * rc-package.c: (rc_package_get_install_only),
+       (rc_package_set_install_only):
+       * rc-package.h:
+
+       add rc_package_set_install_only
+
+2005-03-04  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-package.c (rc_package_is_local): Implement.
+
+       * rc-package.h (rc_package_is_local): Declare.
+
+2005-02-23  James Willcox  <james@ximian.com>
+
+       * rc-verification.c: (rc_verification_cleanup), (rc_verify_gpg):
+       * rc-verification.h:
+
+       Only create the gpg directory once, and add a function for
+       removing it at shutdown time.  This should speed up verification
+       some.  Also, pass the GNUPGHOME env var to gpg and don't do any
+       'gpg --list-keys' stuff.
+
+2005-01-17  James Willcox  <james@ximian.com>
+                                                                                                            
+        * rc-rpmman.c: Up the supported rpm version, to support 4.3.3
+        * distributions.xml: Add rhel4 platforms
+
+2005-02-03  Peter Teichman  <peter@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_patch_parents): remove debugging printf
+
+2005-01-31  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-package-spec.c (rc_package_spec_equal): Test archs too.
+       (rc_package_spec_to_str): Add arch to output string.
+
+2005-01-26  James Willcox  <james@ximian.com>
+
+       * rc-package.c: (rc_package_copy), (rc_package_get_id),
+       (rc_package_set_id):
+       * rc-package.h:
+
+       Add an 'id' to packages.
+
+2005-01-26  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-package-spec.c (rc_package_spec_copy): Fix a typo.
+
+2005-01-21  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-rollback.c (rc_rollback_action_get_synth_package): Implement.
+       Well, actually mostly moved it here from rcd.
+
+2005-01-14  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-world-multi.c (rc_world_multi_transact_real): Implement. Move
+       the real work out of (rc_world_multi_transact_fn).
+       (rc_world_multi_transact_fn): Change the order of transacting:
+       First, transact system world(s), then, if there were no errors
+       transact all other worlds. Fixes #70427.
+
+2005-01-10  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-rpmman.c (in_set):
+       (depends_fill_helper): Add back the white listing of file deps.
+
+2005-01-04  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-debman.c (query_all_read_line_cb): Fix the leftover from arch
+       moving.
+
+       Add the beginnings of patch RPM support.
+
+       * rc-xml.h (rc_package_spec_to_xml_node): Declare.
+
+       * rc-xml.c (rc_package_spec_to_xml_node): Implement.
+
+       * rc-rpmman.c (read_patch_parents): Implement.
+       (rc_rpmman_patch_parents): Implement.
+       (rc_rpmman_class_init): Connect patch_parents virtual function.
+       (rc_rpmman_init): Add RC_PACKMAN_CAP_PATCHES to capabilities.
+
+       * rc-packman.h: Add new packman capability, RC_PACKMAN_CAP_PATCHES.
+       Add new virtual function, rc_packman_real_patch_parents.
+
+       * rc-packman.c (rc_packman_patch_parents): Implement.
+
+       * rc-debman.c (rc_rpmman_debman_parents): Add a dummy virtual function,
+       debman doesn't support patches.
+       (rc_debman_class_init): Add virtual function for patch parents.
+
+2005-01-03  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-package-spec.c (rc_package_spec_get_arch): Fix typo.
+
+       Move arch from RCPackage to RCPackageSpec.
+
+       * rc-xml.c (parser_package_end, rc_xml_node_to_package) 
+       (rc_package_to_xml_node): 
+
+       * rc-world-store.c (rc_world_store_add_package) 
+       (rc_world_store_add_package): 
+
+       * rc-rpmman.c (rc_rpmman_read_header): 
+
+       * rc-package.h: 
+
+       * rc-package.c (rc_package_new, rc_package_copy): 
+
+       * rc-package-spec.h: 
+
+       * rc-package-spec.c (rc_package_spec_new, rc_package_spec_init) 
+       (rc_package_spec_copy, rc_package_spec_get_epoch) 
+       (rc_package_spec_set_epoch): 
+
+       * rc-package-dep.c (dep_new): 
+
+       * rc-extract-packages.c (fill_debian_package): 
+
+2004-12-21  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_find_system_headers_v3): Checking for 0
+       once is quiet enough.
+
+2004-12-09  James Willcox  <james@ximian.com>
+
+       * rc-resolver-context.c: (context_package_collector),
+       (rc_resolver_context_get_installs),
+       (rc_resolver_context_get_uninstalls):
+
+       Filter out bogus packages from installs and uninstalls
+
+2004-12-09  James Willcox  <james@ximian.com>
+
+       * rc-subscription.c: (rc_subscription_save),
+       (rc_subscription_load), (rc_subscription_set_file):
+       * rc-subscription.h:
+
+       add rc_subscription_set_file() to allow us to change where it
+       will save/load subscriptions.
+
+2004-12-03  James Willcox  <james@ximian.com>
+                                                                                        
+        * distributions.xml: add suse-91-x86_64
+
+2004-12-03  James Willcox  <james@ximian.com>
+                                                                                        
+        * distributions.xml: add suse-92-i586 and suse-92-x86_64
+
+2004-12-03  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-package-spec.h: 
+       * rc-package-spec.c (rc_package_spec_new): Remove arguments. This was
+       needed so that wrappers could have required default constructor.
+
+2004-12-01  Peter Teichman <peter@ximian.com>
+
+       * rc-package-dep.c: (rc_package_relation_from_string),
+       (rc_package_relation_to_string): change dependency
+       serialization to use letters (gt, gte, eq, etc) rather
+       than symbols (>, >=, =, etc)
+
+2004-12-01  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_get_file_deps): If we're not asked to filter
+       anything out, don't. No white listing, you get 'em all.
+
+       * rc-package.c (rc_package_get_latest_update): Do checks for NULL's
+       *before* accessing data.
+
+2004-11-30  James Willcox  <james@ximian.com>
+
+       * rc-resolver-context.c: (get_info_foreach_cb),
+       (rc_resolver_context_get_info): return a list of strings
+       * rc-resolver-context.h:
+       * rc-resolver-queue.c: (rc_resolver_queue_get_context): added
+       * rc-resolver-queue.h:
+
+2004-11-30  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-rollback.c (foreach_package_cb): Handle multiple installed
+       packages with same name (kernel package usually).
+       (rc_rollback_info_new): Ditto.
+
+       * rc-rpmman.c (rc_rpmman_find_system_headers_v3): Ignore matches with
+       zero offset. Fixes #70011.
+       (rc_rpmman_get_file_deps): Move file dependency fetching to it's own
+       function. Optimize the case where we don't want file deps.
+       Add "filter_file_deps" argument.
+
+       * rc-rpmman.h: Add "filter_file_deps" argument.
+
+       * rc-packman.h: Ditto.
+
+       * rc-packman.c (rc_packman_query_file) 
+       (rc_packman_query_file_list): Ditto.
+
+       * rc-debman.c (rc_debman_query_file): Ditto.
+
+       * rc-extract-packages.c: Use updated api.
+
+2004-11-19  James Willcox  <james@ximian.com>
+
+       * rc-package-spec.c: (rc_package_spec_new), (rc_package_spec_free): new
+       * rc-package-spec.h: added the above
+       * rc-package-update.c: (rc_package_update_copy),
+       (rc_package_update_free), (rc_package_update_slist_sort),
+       (rc_package_update_get_parent), (rc_package_update_set_parent):
+       * rc-package-update.h:
+       * rc-package.c: (rc_package_add_update),
+       (rc_package_get_latest_update), (rc_package_set_channel):
+
+       Added a 'parent' member to RCPackageUpdate, which is set if the update
+       is a patch rpm.  Also added logic to rc_package_add_update and
+       rc_package_get_latest_update for patch updates.  It tries to give you
+       a patch if it can, otherwise the full rpm (if it exists), otherwise
+       nothing.
+
+2004-11-16  James Willcox  <james@ximian.com>
+
+       * rc-distro.c: (sax_start_element), (sax_end_element):
+       * rc-distro.h: add rc_distro_get_role()
+       * rc-package-update.c: (rc_package_update_new): set the name on the spec
+
+2004-11-08  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-package.c (rc_package_set_channel): Increment channel's reference
+       count, it gets decremented in finalize().
+
+2004-11-03  James Willcox  <james@ximian.com>
+                                                                                
+        * rc-rpmman.c: (rc_rpmman_is_database_changed), (yast_running),
+        (rc_rpmman_query_all):
+                                                                                
+        Don't read the rpm database while yast is running.
+
+2004-10-29  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-package.c (rc_package_set_arch, rc_package_set_section) 
+       (rc_package_set_file_size, rc_package_set_installed_size) 
+       (rc_package_set_summary, rc_package_set_description): Add setters.
+       (rc_package_set_signature_filename): Fix memory leak.
+       (rc_package_get_requires, rc_package_set_requires) 
+       (rc_package_get_provides, rc_package_set_provides) 
+       (rc_package_get_conflicts, rc_package_set_conflicts) 
+       (rc_package_get_obsoletes, rc_package_set_obsoletes) 
+       (rc_package_get_children, rc_package_set_children) 
+       (rc_package_get_suggests, rc_package_set_suggests) 
+       (rc_package_get_recommends, rc_package_set_recommends):
+       Add setters, rewrite getters. Don't expose PackageDepArrays.
+
+       * rc-package-update.c (rc_package_update_set_importance) 
+       (rc_package_update_set_package_url) 
+       (rc_package_update_set_signature_url) 
+       (rc_package_update_set_md5sum, rc_package_update_set_description) 
+       (rc_package_update_set_license) 
+       (rc_package_update_set_package_size) 
+       (rc_package_update_set_installed_size) 
+       (rc_package_update_set_signature_size, rc_package_update_set_hid):
+       Add setters.
+
+       * rc-package-spec.c (rc_package_spec_set_name) 
+       (rc_package_spec_get_version, rc_package_spec_set_version) 
+       (rc_package_spec_get_release, rc_package_spec_set_release) 
+       (rc_package_spec_has_epoch, rc_package_spec_get_epoch) 
+       (rc_package_spec_set_epoch): Add getters and setters.
+
+       * rc-package-dep.c (rc_package_dep_array_to_slist): Implement.
+       (rc_package_dep_array_nth): Remove.
+
+2004-10-08  Peter Teichman  <peter@ximian.com>
+
+       * rc-distro.c: make the distro detect string comparison
+       case-insensitive
+
+2004-09-20  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-package.h: Make some accessor functions to use 'const gchar*'
+       to unify the logic.
+
+       * rc-package.c: Ditto. Add g_return_if_fail checks to accessors.
+
+2004-09-17  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-package-update.[ch]: Add accessor functions for all members.
+
+2004-09-10  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-resolver-info.h: Add argument names to virtual function
+       prototypes. This makes mono bindings' life easier.
+
+       * rc-resolver-context.h: Ditto.
+
+       * rc-package.h: Ditto.
+
+       * rc-package-match.h: Ditto.
+
+       * rc-package-dep.h: Ditto.
+
+       * rc-channel.h: Ditto.
+
+       * rc-package.c (rc_package_is_install_only): Add for bindings.
+       (rc_package_get_updates): Ditto.
+       (rc_package_get_suggests): Ditto.
+       (rc_package_get_recommends): Ditto.
+
+2004-09-02  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-package-match.h: Use typedef'ed RCPackageMatch everywhere,
+       otherwise poor gapi-parser gets confused about it.
+
+2004-09-01  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-package.c (rc_package_get_file_size): Implement.
+       (rc_package_get_requires): Implement.
+       (rc_package_get_provides): Implement.
+       (rc_package_get_conflicts): Implement.
+       (rc_package_get_obsoletes): Implement.
+       (rc_package_get_children): Implement.
+
+       * rc-package-dep.c (rc_package_dep_get_spec): Implement.
+       (rc_package_dep_array_nth): Implement.
+
+2004-08-30  James Willcox  <james@ximian.com>
+
+       * distributions.xml: Add rhel-3es-x86_64
+
+2004-08-18  James Willcox  <james@ximian.com>
+
+       * rc-resolver-context.c: (get_info_foreach_cb),
+       (rc_resolver_context_get_info):
+       * rc-resolver-context.h:
+       * rc-resolver.c: (rc_resolver_get_best_context),
+       (rc_resolver_get_invalid_queues):
+       * rc-resolver.h:
+
+       Add some more API for mono bindings.
+
+2004-08-06  James Willcox  <james@ximian.com>
+
+      * distributions.xml:  Apparently there is also no i686 sles9.  Oops.
+
+2004-08-04  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-extract-packages.c (rc_extract_packages_from_directory): Implement
+       packageinfo.xml reading.
+
+2004-07-29  Tambet Ingo  <tambet@ximian.com>
+
+        * rc-rpmman.c (rc_rpmman_section_to_package_section): Suse uses fancy
+        package sections, map those correctly to RCPackageSection.
+
+2004-07-21  James Willcox  <james@ximian.com>
+
+       * Makefile.am:
+
+2004-07-20  James Willcox  <james@ximian.com>
+
+       * rc-channel.c: (rc_channel_get_type),
+       (rc_channel_get_channel_type):
+       * rc-channel.h:
+       * rc-world-service.c: (rc_world_service_set_assemble_function):
+       * rc-world-service.h:
+       * rc-world.c: (rc_world_set_refresh_function):
+       * rc-world.h:
+
+       Add some crackrock API for bindings to avoid writing glue.  Also
+       make RCChannel a boxed type.
+
+2004-07-20  James Willcox  <james@ximian.com>
+
+       * Makefile.am: generate a shared library instead of a static one
+
+2004-07-14  James Willcox  <james@ximian.com>
+
+       * rc-channel.c: (get_packages_foreach_fn),
+       (rc_channel_get_packages):
+       * rc-channel.h:
+       * rc-extract-packages.h:
+       * rc-package-spec.h:
+       * rc-package.c: (rc_package_get_type), (rc_package_unref),
+       (rc_package_set_filename), (rc_package_get_spec),
+       (rc_package_get_arch), (rc_package_get_section),
+       (rc_package_get_installed_size), (rc_package_get_summary),
+       (rc_package_get_description), (rc_package_get_signature_filename),
+       (rc_package_set_signature_filename):
+       * rc-package.h:
+       * rc-resolver-context.c: (rc_resolver_get_type),
+       (marked_package_collector),
+       (rc_resolver_context_get_marked_packages),
+       (rc_resolver_context_get_installs), (pair_package_collector),
+       (rc_resolver_context_get_upgrades),
+       (rc_resolver_context_foreach_uninstall),
+       (rc_resolver_context_get_uninstalls):
+       * rc-resolver-context.h:
+       * rc-resolver.c: (rc_resolver_fake_ref),
+       (rc_resolver_context_get_type), (rc_resolver_resolve_dependencies),
+       (rc_resolver_get_best_context):
+       * rc-resolver.h:
+       * rc-world-multi.c: (subworld_foreach_fn),
+       (rc_world_multi_get_subworlds):
+       * rc-world-multi.h:
+       * rc-world-service.c: (rc_world_service_get_url),
+       (rc_world_service_set_url), (rc_world_service_get_name),
+       (rc_world_service_set_name), (rc_world_service_get_id),
+       (rc_world_service_set_id), (rc_world_service_get_is_sticky),
+       (rc_world_service_set_is_sticky),
+       (rc_world_service_get_is_invisible),
+       (rc_world_service_set_is_invisible),
+       (rc_world_service_get_is_singleton),
+       (rc_world_service_set_is_singleton):
+       * rc-world-service.h:
+       * rc-world.c: (get_channel_foreach_fn), (rc_world_get_channels),
+       (get_locks_foreach_fn), (rc_world_get_locks),
+       (rc_world_foreach_upgrade), (get_upgrades_foreach_fn),
+       (rc_world_get_upgrades):
+       * rc-world.h:
+
+       Add a ton of API for mono bindings.
+
+2004-06-17  James Willcox  <james@ximian.com>
+
+       * rc-channel.h:
+       * rc-extract-channels.c: (rc_extract_channels_from_helix_buffer):
+       * rc-extract-packages.c: (rc_extract_yum_package):
+       * rc-extract-packages.h:
+       * rc-world-store.c: (package_dup_fn), (channel_dup_fn),
+       (rc_world_store_dup_fn):
+
+       Fix rc_world_dup(), and add a function for 'extracting' a yum
+       package (it basically just loads the rpm header).
+
+2004-06-17  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-debug.h: Make it #include'able from C++.
+
+2004-06-11  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-world-service.c (rc_world_service_register): Don't assume
+       GType is 32 bit integer. Fixes crash on startup on ia64 machines.
+       (rc_world_service_lookup): Ditto.
+
+2004-06-10  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-distro.h: Add declaration of rc_distro_get_current().
+
+       * rc-distro.c: Cache previously parsed RCDistro
+       (rc_distro_copy): Implement.
+       (rc_distro_set_current): Implement.
+       (rc_distro_get_current): Implement.
+
+       * rc-arch.h: Make it #include'able from C++
+
+       * rc-channel.h: ditto.
+
+       * rc-world.h: Ditto.
+
+       * rc-util.h: Ditto.
+
+       * rc-pending.h: Ditto.
+
+       * rc-package-spec.h: Ditto.
+
+       * rc-package-importance.h: Ditto.
+
+2004-06-09  James Willcox  <james@ximian.com>
+
+       * rc-arch.h:  Sigh, fix the build
+
+2004-06-09  James Willcox  <james@ximian.com>
+
+       * distributions.xml:
+       * rc-arch.c:
+
+       Support SuSE Linux Enterprise Server 9, and Novell Linux Desktop
+
+2004-06-04  James Willcox  <james@ximian.com>
+
+       * rc-rpmman.c: (rc_rpmman_read_header):
+
+       Correct a logic error
+
+2004-06-03  James Willcox  <james@ximian.com>
+
+       * rc-rpmman.c: (rc_rpmman_read_header):
+
+       Don't munge noarch packages
+
+2004-05-20  Vladimir Vukicevic  <vladimir@pobox.com>
+
+       * Makefile.am: Added 4.3 stub (rpm 4.3 .so links against the
+       right libs, so maybe we can dispense with the stub, but it's
+       easier to just keep it there)
+
+       * rc-rpmman.c bumped LATEST_SUPPORTED_RPM_VERSION to 40301.
+       (load_fake_syms): the hdrVec entries for 4.1-4.2.2 are valid for 4.3.1
+       (load_rpm_syms): the hdrVec entries for 4.1-4.2.2 are valid for 4.3.1
+       
+       * distributions.xml: added fc2
+
+2004-05-18  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-extract-channels.c (rc_extract_channels_from_helix_buffer):
+       Free 'id_str' when done, fixes a memory leak.
+
+2004-05-13  James Willcox  <james@ximian.com>
+
+       * rc-rpmman.c: (load_fake_syms), (load_rpm_syms):
+
+       Support RPM 4.2.2.
+
+2004-05-13  James Willcox  <james@ximian.com>
+
+       * distributions.xml: Add rhel-3ws-x86_64
+       * rc-arch.c:  Add compat stuff for x86)64
+       * rc-distro.c: (sax_end_element): Pick the best distro, not just the
+       first one we see that happens to be compatible.
+       * rc-rpmman.c: (rc_package_to_rpm_name), (rc_rpmman_read_header):
+       Munge the package names coming out of the rpm database to have
+       "-32bit" appended to the non-64bit packages on Red Hat opteron systems.
+
+2004-05-06  James Willcox  <james@ximian.com>
+
+       * distributions.xml:
+
+       Add SUSE 9.1 support
+
+2004-04-09  James Willcox  <james@ximian.com>
+
+       * rc-arch.c:
+       * rc-arch.h:
+
+       Add RC_ARCH_X86_64
+
+2004-04-08  James Willcox  <james@ximian.com>
+
+       * rc-arch.c:  flip the order of ix86 and i386 in the arch table.  This
+       was causing some lookup issues.
+
+2004-04-06  James Willcox  <james@ximian.com>
+
+       * rc-queue-item.c: (install_item_process), (require_process_cb),
+       (require_item_process), (unlink_check_cb), (uninstall_process_cb):
+       * rc-queue-item.h:
+       * rc-resolver-context.c: (requirement_met_cb),
+       (rc_resolver_context_requirement_is_met):
+       * rc-resolver-context.h:
+
+       Fix the resolver such that package set child deps are always
+       satisfied by the exact version required.
+
+2004-04-01  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-packman.c (rc_packman_finalize): Set the file extension to NULL.
+
+       * rc-rpmman.c (rc_rpmman_database_filename): RPM leaks the value
+       of rpmGetPath in most versions, so keep around a static pointer to
+       our built path and just return that if it's set so we don't leak
+       all the time.  Make the function return const. 
+
+2004-02-19  Joe Shaw  <joe@ximian.com>
+
+       * rc-arch.c (arch_table): Detect "ix86" as RC_ARCH_I386.  OpenPKG
+       uses that convention.  Patch from Christopher Chan
+       <cchan@spikesource.com>
+
+2004-02-04  Vladimir Vukicevic  <vladimir@pobox.com>
+
+       * rc-util.c: check if avail_in is 0 in loop in bunzip2_memory;
+       if it goes to 0, we have an incomplete stream (an error that
+       bzlib can't detect by itself)
+
+2004-01-20  Joe Shaw  <joe@ximian.com>
+
+       * distributions.xml: Change the RHEL 3 strings to detect both
+       "Taroon" and "Taroon Update 1"
+
+2003-11-13  Joe Shaw  <joe@ximian.com>
+
+       * distributions.xml: We do a first-sufficient match, so we
+       need to look for s390x before s390.
+
+       * rc-world-service.c (rc_world_service_register,
+       rc_world_service_lookup): GTypes are unsigned ints, so use
+       the unsigned variants of the glib integer/pointer conversion
+       macros.
+
+       * rc-line-buf.c (rc_line_buf_cb): Make bytes_read a gsize from
+       a guint for 64-bit cleanliness.
+
+2003-11-12  Joe Shaw  <joe@ximian.com>
+
+       * distributions.xml: Add support for SLES 8 on s390 and s390x.
+
+       * rc-arch.[ch]: Add support for s390 and s390x.
+
+2003-11-12  Joe Shaw  <joe@ximian.com>
+
+       * distributions.xml: Add support for SLES 8 on ppc.
+
+       * rc-arch.[ch]: Add support for ppc64 and make it superior (but
+       backward compatible) to ppc.
+
+2003-11-11  Joe Shaw  <joe@ximian.com>
+
+       * rc-queue-item.c (install_item_process): When iterating through
+       our list of conflicts, if the conflicting package is the same as
+       ourself, don't create an uninstall queue item.
+
+2003-11-11  Joe Shaw  <joe@ximian.com>
+
+       * rc-extract-packages.c (rc_extract_package_from_undump_buffer):
+       Call the channel callback for the system channel too.
+
+       * rc-world-undump.c (rc_world_undump_class_init): Implement the
+       get_subscribed_fn and set_subscribed_fn virtual methods since we
+       don't want these saved to our subscriptions.xml file.
+       (rc_world_undump_get_subscription): Check to see if the channel is
+       in our GSList of subscribed channels.
+       (rc_world_undump_set_subscription): Add or remove the channel
+       to/from our list of subscribed channels.
+       (rc_world_undump_finalize): Unref the channels in our
+       subscriptions list.
+       (add_channel_cb): Don't set the subscription if the channel is a
+       system channel.
+
+       * rc-world-undump.h (RCWorldUndump): Add a GSList of RCChannels
+       for storing our subscriptions; we never want to save undumped
+       subscriptions to disk.
+
+2003-11-06  Joe Shaw  <joe@ximian.com>
+
+       * distributions.xml: Add support for Fedora Core 1 (fedora-1-i386).
+
+2003-11-03  Joe Shaw  <joe@ximian.com>
+
+       * rc-distro.c (sax_parser_enable): Set ctxt->sax->initialized to 1
+       to avoid a crash against libxml 2.6.1.
+
+2003-10-30  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_find_file_v3): Any non-zero return from
+       rpmdbFindByFile is a failure, not just -1.  Fixes #50373.
+
+       * rc-world-store.c (rc_package_and_dep_verify_relation): Fix
+       backwards arguments, so that asking if "= 1.0" verifies against
+       "1.0-9" returns TRUE.
+
+2003-10-29  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-world-multi.c (rc_world_multi_add_subworld): Revert not emitting
+       signals on subworld add while refreshing.
+       (rc_world_multi_remove_subworld): Ditto for removal.
+
+2003-10-28  Joe Shaw  <joe@ximian.com>
+
+       * rc-world-store.c (rc_package_and_dep_verify_relation): Added.
+       Verifies both the dependency relationship between pad->dep and the
+       passed-in dep, but also the channel in pad->package and the
+       channel in the passed-in dep.
+       (rc_world_store_foreach_providing_fn): Change the call of
+       rc_package_dep_verify_Relation() to
+       rc_package_and_dep_verify_relation() so we can verify channels
+       too.
+
+       * rc-world.c (foreach_system_poackage_cb): Instead of calling
+       rc_world_get_best_upgrade() for rc_world_foreach_system_upgrade(),
+       iterate through them by hand and find a list of best upgrades,
+       because it's possible for packages which have exactly the same
+       version to be in more than one channel, and we need to return all
+       matches so that doing something like an update in a channel with
+       that package always works (instead of just picking one at
+       random).  Fixes #50202.
+
+2003-10-28  Joe Shaw  <joe@ximian.com>
+
+       * distributions.xml: Add support for Mandrake 9.2.
+
+2003-10-24  Joe Shaw  <joe@ximian.com>
+
+       * distributions.xml: Add support for RHEL 3 AS, ES, and WS and
+       SuSE 9.0.
+
+       * Makefile.am: Build two stubs for RPM 4.1: ones linked against
+       libpopt.so.1 (SuSE) and ones against libpopt.so.0 (everyone else).
+
+       * rc-rpmman.c (write_objects, rc_rpmman_init): Split the RPM 4.1
+       stubs in two.
+
+2003-10-21  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_depends_fill): Raise the debug level of
+       the UTF-8 filename warning from WARNING to INFO since it seems to
+       scare people and it's not that important.
+
+2003-10-20  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman.c (load_fake_syms): Fix a typo on gnameToGid() in the
+       static linking case.
+
+2003-10-20  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-world-multi.c (rc_world_multi_add_subworld): Emit signal only
+       if not refreshing.
+       (rc_world_multi_remove_subworld): Ditto.
+
+2003-10-16  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_is_database_changed): If the db_clean
+       flag is FALSE, always return TRUE from this function.
+       (open_database): Set the db_clean flag to TRUE on a successful
+       open and FALSE on a failed one.
+
+2003-10-15  Joe Shaw  <joe@ximian.com>
+
+       * rc-world.c (rc_world_foreach_system_upgrade): Create a unique
+       hash of packages, so if foo 1.0 and foo 2.0 are both installed,
+       we'll only try to get an upgrade for foo 2.0.
+
+2003-10-10  Joe Shaw  <joe@ximian.com>
+
+       * rc-queue-item.c (install_item_process): When creating uninstall
+       items due to conflicts, call
+       rc_queue_item_uninstall_set_due_to_conflict().
+       (conflict_process_cb): Call
+       rc_queue_item_uninstall_set_due_to_obsolete() or
+       _due_to_conflict() depending on the info's actually_an_obsolete
+       flag.
+       (uninstall_item_process): If we're uninstalling due to conflict or
+       obsolete, don't display the missing requirement, since it doesn't
+       make any sense.
+       (uninstall_item_copy): Also copy the explicitly_requested,
+       due_to_conflict, due_to_obsolete, and unlink flags.
+       (rc_queue_item_uninstall_set_due_to_conflict,
+       rc_queue_item_uninstall_set_due_to_obsolete): Added these, just
+       sets the appropriate bits.
+
+       * rc-queue-item.h (RCQueueItem_Uninstall): Add a due_to_conflict
+       bit.
+
+       * rc-resolver-context.c (rc_resolver_context_new_child): Create
+       the status hash with NULL, NULL as the parameters so that packages
+       in the hash are compared by pointer value instead of their
+       RCPackageSpecs.  Comparing package specs isn't sufficient since it
+       is common for a package that is installed to have the same spec as
+       a package in a channel.  But since these two packages are not the
+       same package, their statuses could be different and we shouldn't
+       treat them as equal.  This was fixed in the more specific,
+       optimized case by Jon in his commit on 2003-06-17.
+       (rc_resolver_context_get_status): Remove a redundant spec
+       comparison; if the pointers are equal, we can assume that the
+       specs are also equal.
+
+2003-10-08  Joe Shaw  <joe@ximian.com>
+
+       * rpm-ugid.h: "Borrow" a header from RPM in the spirit of
+       rpm-signature.h and rpm-rpmlead.h so we can build statically on
+       Solaris.
+
+       * rc-rpmman.c: #include rpm-ugid.h
+
+2003-10-07  Joe Shaw  <joe@ximian.com>
+
+       * rc-packman.c (rc_packman_transact): Remove rollback from here.
+       (rc_packman_get_rollback_enabled): Added.
+
+       * rc-rollback.c (RCRollbackInfo): Drop the packman element.
+       (file_changes_to_xml): Take a GError.  Get the packman with
+       rc_packman_get_global().
+       (add_tracked_package): Take a GError.  Don't call
+       file_changes_to_xml() if the package is synthetic.
+       (rc_rollback_info_new): Take an RCWorld instead of an RCPackman.
+       Also take a GError.  Use RCWorld functions to find installed
+       packages instead of RCPackman.
+
+       * rc-world-multi.c (rc_world_multi_transact_fn): Disable rollback
+       on the packman before calling rc_world_transact() on the subworlds
+       to prevent rollback recursion.
+
+       * rc-world.c (rc_sync_world): Nuke this and some other dead code.
+       (rc_world_transact): Set up rollback structures before running the
+       transaction, and save them as necessary afterward.
+
+2003-10-07  Joe Shaw  <joe@ximian.com>
+
+       * rc-queue-item.c (uninstall_item_process): If the system can't
+       provide a package set's child when we're trying to remove it,
+       don't assert.  It's entirely possible that the child was removed
+       using rpm -e.
+
+2003-10-06  Joe Shaw  <joe@ximian.com>
+
+       * rc-world-system.c (rc_world_system_transact): Return FALSE if
+       the transaction fails in the packman.
+
+       * rc-distman.c (rc_distman_new): Fix the case where we try to
+       instantiate a packman but no packaging backends are chosen.
+
+2003-10-03  Joe Shaw  <joe@ximian.com>
+
+       * rc-extract-packages.c (rc_extract_packages_from_undump_buffer,
+       rc_extract_packages_from_undump_file): Take another callback for
+       each lock in an undumped world, and remove the #if 0 and FIXME for
+       dealing with locks saved to a dump.  For the system packages,
+       create a system packages channel and add the packages into it.  In
+       the general channel case, fix some overloading of local variables
+       and some misuse.
+
+       * rc-package-match.c (rc_package_match_from_xml_node): We don't
+       need to take an RCWorld anymore, so drop that argument.
+
+       * rc-world-undump.c (rc_world_undump_new): Check to make sure the
+       file exists and return NULL if it doesn't.
+       (add_lock_cb): Added, gets passed in as the callback to
+       rc_extract_packages_from_undump_file().
+
+       * rc-world.c (add_channel_packages_cb): Skip over system packages
+       when creating a dump, since those go into the "system_packages"
+       section.
+
+2003-10-03  Joe Shaw  <joe@ximian.com>
+
+       * rc-package.c (rc_package_unref): If the RC_DEBUG_PACKAGE_UNREF
+       environment variable is set, don't free the package elements, but
+       do decrement (and assert) on the refcount.  Helps debugging
+       ref-count related bugs.
+
+       * rc-queue-item.c (uninstall_item_copy): rc_package_ref the
+       package when we copy an uninstall queue item.
+
+2003-09-30  Joe Shaw  <joe@ximian.com>
+
+       * rc-world-system.c (rc_world_system_finalize): Fix a
+       thinko... the signal is on the packman, not the system world.
+
+2003-09-30  Joe Shaw  <joe@ximian.com>
+
+       * rc-world-system.c (rc_world_system_finalize): Disconnect from
+       the packman's database_changed signal when we are finalized.
+       (rc_world_system_init): Save the signal connection id to the
+       database_changed signal on the packman.
+
+2003-09-26  Joe Shaw  <joe@ximian.com>
+
+       * rc-world-multi.c: Add subworld_added and subworld_removed
+       signals.
+
+2003-09-23  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman.c (vercmp): Remove #ifdefs for STRICT_RPM_ORDER.
+       Ximian's packages are all fixed now and the order is defined in
+       newer RPM versions.  Patch from Peter Bowen (pzb@ximian.com).
+
+2003-09-23  Joe Shaw  <joe@ximian.com>
+
+       * rc-queue-item.c (install_item_process): We need to call
+       rc_world_foreach_conflicting_package() on everything that we
+       provide, not just our name.
+
+2003-09-23  Joe Shaw  <joe@ximian.com>
+
+       * rc-queue-item.c (require_process_cb): Ref the package before
+       putting it in the unique hash table.
+       (require_item_process): Call g_hash_table_new_full() and pass in
+       rc_package_unref() as the key destroy function.
+       (uninstall_item_destory): Unref the package.
+       (rc_queue_item_new_uninstall): Ref the package.
+
+       * rc-resolver-context.c (rc_resolver_context_unref): If
+       last_checked_package is set, unref it.
+       (rc_resolver_context_get_status): Unref the old
+       last_checked_package, ref the new one.
+
+       * rc-world-system.c (rc_world_system_foreach_providing): Set the
+       installed bit to TRUE and set the channel to the system channel.
+
+2003-09-22  Joe Shaw  <joe@ximian.com>
+
+       * rc-world-local-dir.c (rc_world_local_dir_assemble_fn): Use else
+       ifs, since we can only match one token at a time.  Fix a thinko
+       where the alias was always being set to the directory's basename
+       and not the passed-in alias.
+
+       * rc-world-multi.c (rc_world_multi_add_subworld): Add some code to
+       check to see if any other services have the same name and then
+       differentiate them with a number.  Kind of ugly code, could
+       probably be virtualized at some point.  Also, always append to the
+       list of subworlds, not prepend, since it makes more sense and it's
+       not particularly long list.
+
+2003-09-19  Joe Shaw  <joe@ximian.com>
+
+       * rc-world-multi.c (touch_all_sequence_numbers): Touches all four
+       world sequence numbers.
+       (rc_world_multi_add_subworld): After adding a subworld, touch all
+       the sequence numbers.
+       (rc_world_multi_remove_subworld): Ditto.
+
+2003-09-18  Joe Shaw  <joe@ximian.com>
+
+       * rc-subscription.c (rc_subscription_match): A NULL legacy ID is
+       okay, so handle it gracefully instead of crashing on strlen().
+
+       * rc-world-system.c (rc_world_system_load_packages):
+       rc_world_store_clear() calls rc_world_store_remove_packages(), so
+       we don't need to do both.  Just do the former, and do it after try
+       to query the system packages so we can fall back on that cached
+       data if we fail.
+
+       * rc-rpmman.c (rc_rpmman_depends_fill): Make sure the package
+       filename is valid UTF-8 before adding it as a provide.  Works
+       around some broken SuSE packages.
+
+2003-09-17  Joe Shaw  <joe@ximian.com>
+
+       * rc-debman.c (rc_debman_find_file): Return an RCPackageSList.
+
+       * rc-packman.c (rc_packman_find_file): Return an
+       RCPackageSList... RPM can have files which are owned by multiple
+       packages (notably /etc/rc.d/init.d).
+
+       * rc-rpmman.c (rc_rpmman_section_to_package_section): Fix some
+       pointer arithmetic which is technically undefined in C.
+       (rc_rpmman_find_file_v4, rc_rpmman_find_file_v3): Fix these to
+       return a list of packages instead of just one.  Also set the
+       installed bit on these packages (they weren't set before), which
+       is technically correct.
+       (rc_rpmman_fine_file): Return an RCPackageSList.
+
+       * rc-world-system.c (rc_world_system_foreach_providing): If the
+       parent's function returns 0 and we're dealing with a file
+       dependency, ask the packman for a list of packages which provide
+       that dep.
+       (rc_world_system_class_init): Connect our implementation of
+       foreach_providing_fn.
+
+2003-09-16  Joe Shaw  <joe@ximian.com>
+
+       * rc-channel.c (RCChannel): Add a legacy_id field for migrating
+       old channel IDs to the new ones.
+       (rc_channel_unref): Free the legacy ID.
+       (rc_channel_{set|get}_legacy_id): Added.
+
+       * rc-extract-channels.c (rc_extract_channels_from_helix_buffer):
+       Set the channel ID to the "bid" field in the XML.  Fall back on
+       "id" if "bid" isn't present.  Set the legacy id to "id".
+
+       * rc-subscription.c (rc_subscription_match): When matching
+       old-style ids, check the channel's legacy ID.  When we rewrite the
+       subscription entry as a new-style one, change it to the channel
+       id.
+
+2003-09-15  Joe Shaw  <joe@ximian.com>
+
+       * rc-world-multi.c (rc_world_multi_refresh_fn): If the pending
+       isn't active after we call rc_world_refresh(), don't add it to the
+       pending list.  We'll just be mucking around with freed data and we
+       don't care about watching it if it doesn't work anymore anyway.
+
+       * rc-distro.c (rc_distro_parse_xml): Set up a push parser instead
+       of a doc parser so that we don't have to null-terminate our distro
+       data.
+
+       * rc-xml.c (rc_package_sax_context_parse_chunk): Remove some old
+       code which could cause problems in rather exotic cases.
+
+2003-09-11  Joe Shaw  <joe@ximian.com>
+
+       * rc-extract-packages.c (rc_extract_packages_from_directory): Add
+       a recursive flag. 
+
+       * rc-world-local-dir.c (rc_world_local_dir_assemble_fn): Check for
+       the "recursive" flag in the URI.
+       (rc_world_local_dir_populate): Pass the recursive flag into
+       rc_extract_packages_from_directory().
+
+2003-09-10  Joe Shaw  <joe@ximian.com>
+
+       * rc-world-local-dir.c (rc_world_local_dir_assemble_fn): name and
+       alias aren't mutually exclusive, so don't use an else if.  Set the
+       service's unique ID to the path, not the alias so you can't mount
+       the same directory multiple times.
+
+2003-09-10  Joe Shaw  <joe@ximian.com>
+
+       * rc-world.c (rc_world_refresh_begin): New function which just
+       sets world->refresh_pending to TRUE.
+       (rc_world_refresh): Don't set refresh_pending to TRUE
+       before calling the refresh_fn.  If we don't have a refresh_fn,
+       call it immediately before calling rc_world_refresh_complete().
+       (rc_world_refresh_complete): Remove some dead #if 0ed code.
+
+       * rc-world-multi.c (RefreshInfo): Move multi_pending out of here
+       and into the main RCWorldMulti object.
+       (rc_world_multi_cut_over_to_new_subworlds): Unref and set the
+       multi_pending to NULL after we've cut over.
+       (refresh_info_free): Don't do it here.
+       (rc_world_multi_refresh_fn): Make the multi world more robust
+       against simultaneous refreshes.  If another refresh is already
+       running, just return the multi_pending as our own pending.  If we
+       don't have any subworlds, just call rc_world_refresh_begin() and
+       rc_world_refresh_complete() and return NULL.  Otherwise, start the
+       multi_pending immediately.
+
+       * rc-world-synthetic.c (rc_world_synthetic_refresh): Call
+       rc_world_refresh_begin() before loading the synthetic packages.
+
+       * rc-world-system.c (rc_world_system_refresh): Call
+       rc_world_refresh_begin() before loading the system packages.
+
+2003-09-10  Joe Shaw  <joe@ximian.com>
+
+       * rc-world-multi.c (rc_world_multi_cut_over_to_new_subworlds):
+       Return a gboolean indicating whether we've cut over or not.
+       (refresh_info_free): Disconnect the refreshed and update signals.
+       (refreshed_cb): Call rc_pending_finished() if we've cut over to
+       new subworlds and then just free the refresh info.  Simplifies
+       things a *lot* and makes refreshes block correctly.
+       (pending_complete_cb): Nuke this.  It added too much complexity
+       and didn't work right.
+       (rc_world_multi_refresh_fn): Don't initialize signal IDs to
+       -1... they're unsigned and 0 is an invalid ID.  Don't connect to
+       the "complete" signal anymore.
+
+       * rc-extract-packages.c (add_fake_history): Added.  Creates an
+       RCPackageUpdate entry for this package and adds it to the history.
+       (rc_extract_packages_from_directory): Call add_fake_history()
+       after initializing the package.
+
+2003-09-09  Joe Shaw  <joe@ximian.com>
+
+       * rc-util.c (rc_error_quark): Added.  Gets a quark for use with
+       GError.
+
+       * rc-world-local-dir.c (rc_world_local_dir_assemble_fn): Take a
+       GError argument and set it if the directory doesn't exist.
+
+       * rc-world-multi.c (rc_world_multi_mount_service): Take a GError
+       argument and set it if the service can't be mounted for whatever
+       reason.
+
+       * rc-world-service. (rc_world_service_mount): Take a GError
+       argument and set it if the URI can't be parsed or handled by any
+       service.
+
+       * rc-world-synthetic.c (rc_world_synthetic_assemble): Take a
+       GError argument and set it if the synthetic DB can't be loaded or
+       the URI is malformed.
+
+       * rc-world-system.c (rc_world_system_assemble): Take a GError
+       argument and set it if the system DB can't be loaded.
+
+2003-09-09  Joe Shaw  <joe@ximian.com>
+
+       * rc-package-set.[ch]: Kill off this very, very old and
+       confusingly irrelevant code.
+
+       * rc-util.c (rc_gunzip_memory, rc_bunzip2_memory): Don't append a
+       nul byte to the end of decompressed data.
+       (rc_parse_xml_from_buffer): Call xmlParseMemory() on the whole
+       block of data, not len - 1.
+
+       * rc-xml.c (rc_package_sax_context_done): Don't tack on a nul byte
+       at the end of the block of data, just call xmlParseChunk() with
+       NULL data and a length of 0 to end the parsing.  Fixes #48299.
+
+2003-09-09  Frank Belew <frb@ximian.com>
+
+       * rc-util.c: include stdio.h for older bz2 headers
+
+2003-09-05  Joe Shaw  <joe@ximian.com>
+
+       * rc-world-system.c (rc_world_system_init): Connect to the
+       packman's "database_changed" signal so we can detect when the
+       package database changes from underneath us and reload the system
+       packages.  Also hold a ref to the packman and release it in
+       finalize.
+
+2003-09-04  Joe Shaw  <joe@ximian.com>
+
+       * rc-pending.c (rc_pending_complete_handler): The pending debug
+       messages are getting chatty, so make aborted and failed output at
+       level WARNING and everything else up to INFO.
+
+       * rc-world-multi.c (pending_update_cb): Only call
+       rc_pending_update() if the pending is active.  Fixes some
+       g_warnings.
+       (pending_complete_cb): Ditto, for rc_pending_finished().
+       (rc_world_multi_refresh_fn): Reorganize this to reduce an
+       indentation level in the more common (and much longer) case.
+
+2003-08-28  Joe Shaw  <joe@ximian.com>
+
+       * rc-world-multi.c (rc_world_multi_refresh_fn): Begin the pending
+       after we create it instead of later, since we could hit the
+       main loop and get failed assertions.
+
+2003-08-28  Joe Shaw  <joe@ximian.com>
+
+       * rc-world-multi.c (rc_world_multi_mount_service): See if we have
+       mounted another service with the same id.
+
+2003-08-28  Tambet Ingo  <tambet@ximian.com>
+
+       * rc-world-multi.c (rc_world_multi_lookup_service_by_id):
+       Helper function to get RCWorldService by server_id.
+
+2003-08-27  Joe Shaw  <joe@ximian.com>
+
+       * rc-world-synthetic.c (rc_world_synthetic_transact): Make a copy
+       of the package coming in and assign its channel to the synthetic
+       channel.  Unref it after we've added it to the world.
+
+2003-08-27  Joe Shaw  <joe@ximian.com>
+
+       * rc-pending.c (rc_pending_class_init): Fix a cut-and-paste error
+       that was pointing the message signal at the complete signal's
+       class structure offset.
+
+       * rc-world-synthetic.c (rc_world_synthetic_assemble):
+       Conditionally prepend the forward slash.
+
+       * rc-rollback.c: Use rc_debug() instead of g_warning() throughout.
+       (dump_file_changes, get_action_from_xml_node): Remove some
+       debugging output.
+
+       * rc-xml.c (parser_package_end, rc_xml_node_to_package,
+       rc_package_to_xml_node): Change "is_packageset" to "package_set"
+       to match server implementation and to more closely match the
+       structure definition.
+
+2003-08-26  Joe Shaw  <joe@ximian.com>
+
+       * rc-package.c: Remove the "hold" bit, it wasn't being used for
+       anything, and add a "package_set" bit, which tells us if we're
+       dealing with a package set or not.  (Just checking the children
+       isn't sufficient, since we could have an empty package set)
+       (rc_package_is_package_set): Update this to just check the bit,
+       instead of the children.
+
+       * rc-world.c (rc_world_package_is_locked): Remove a reference to
+       the hold bit.
+
+       * rc-xml.c (parser_package_end, rc_xml_node_to_package): Set the
+       package set bit when "is_packageset" is set in the XML.
+       (rc_package_to_xml_node): Serialize the package set bit.
+
+2003-08-26  Joe Shaw  <joe@ximian.com>
+
+       * rc-rollback.c (rc_rollback_info_new): Unref the list of packages
+       after the query.  Fixes a leak.
+
+2003-08-25  Joe Shaw  <joe@ximian.com>
+
+       * rc-packman.c (rc_packman_transact): Don't do rollback if the
+       NO_ACT flag is set.
+
+2003-08-25  Joe Shaw  <joe@ximian.com>
+
+       * rc-packman-private.h: Remove the repackage_dir field.
+
+       * rc-packman.c (rc_packman_finalize, rc_packman_init): Don't deal
+       with the repackage_dir field.
+       (rc_packman_set_repackage_dir, rc_packman_get_repackage_dir):
+       Delete these.
+
+       * rc-rpmman.c: Don't do any repackaging stuff anymore, we don't
+       need it.
+       (rc_rpmman_init): Always set the rollback capability.
+
+       * rc-util.c (rc_compress_memory): Remove this.  Use
+       rc_gzip_memory() or rc_bzip2_memory() directly.
+
+       * rc-world-synthetic.c (rc_world_synthetic_transact): Obey the
+       NO_ACT flag.
+
+       * rc-world.c (rc_world_guess_package_channel): We need to check
+       against the actual package, not the list of matching packages.
+
+2003-08-22  Joe Shaw  <joe@ximian.com>
+
+       * rc-world.c (rc_world_guess_package_channel): Skip over system
+       and hidden channels, reimplement.
+
+2003-08-21  Joe Shaw  <joe@ximian.com>
+
+       * rc-extract-channels.c (rc_extract_channels_from_helix_buffer):
+       g_strfreev() the distro target vector, not g_free().
+
+       * rc-world-multi.c (rc_world_multi_cut_over_to_new_subworlds):
+       Unref the subworld after it's been added to the multi world, this
+       fixes a HUUUUUUUUUGE memleak.
+       (refresh_info_free): Conditionally unref the multi world's
+       pending.
+       (rc_world_multi_refresh_fn): Fix the case where none of the
+       subworld's have a pending to return.
+
+       * rc-world-store.c (rc_world_store_finalize): Clear our locks.
+
+       * rc-world-system.c (rc_world_system_finalize): Added.  Unref the
+       system channel.
+
+       * rc-xml.c (sax_start_element): Free the text buffer whenever we
+       enter a tag, because we don't care about (or want) the old data.
+
+2003-08-20  Joe Shaw  <joe@ximian.com>
+
+       * Makefile.am: Fix a lot of srcdir/builddir issues.
+
+       * rc-rpmman.c: Add support for RPM 4.2.1
+
+2003-08-19  Joe Shaw  <joe@ximian.com>
+
+       * rc-distro.c (rc_distro_parse_xml): Make the size a required
+       parameter, and decompress the data on the fly.
+
+       * rc-world.c (rc_set_world, rc_get_world): Be less strict about
+       having a global world set.
+
+       * rc-extract-packages.c (rc_extract_packages_from_directory): Call
+       g_dir_close() when we're finished.
+
+       * rc-world-local-dir.c (rc_world_local_dir_assemble_fn): Allow the
+       name and alias of the channel to be passed in as a query string to
+       the URI.
+       (rc_world_local_dir_populate): Freeze/thaw the local dir.
+       (rc_world_local_dir_sync_fn): Check to see if we're frozen before
+       repopulating.  This fixes a nasty infinite recursion between
+       populate and sync (since adding a package to a store causes a sync);
+
+2003-08-18  Joe Shaw  <joe@ximian.com>
+
+       * rc-world-multi.c: Move the service mounts here from being
+       global.  Fixes a big leak.
+
+       * rc-world-service.c (rc_world_service_dup): Dup the service's
+       attributes.  Nuke the global mount stuff.
+
+       * rc-world-system.c (rc_world_system_assemble): Load the system
+       packages here.
+       (rc_world_system_init): Not here.  Fixes the double loading during
+       a refresh.
+
+2003-08-16  Joe Shaw  <joe@ximian.com>
+
+       * rc-channel.c (rc_channel_set_hidden): Added.
+
+       * rc-world-synthetic.c (rc_world_synthetic_init): Set the hidden
+       flag on the synthetic package channel.
+
+       * rc-world-system.c (rc_world_system_init): Ditto here for the
+       system package channel.
+
+       * rc-world.c (rc_world_remove_lock_impl): Fix a cut-and-paste bug
+       that was causing locks to be duplicated, not removed.
+
+2003-08-16  Joe Shaw  <joe@ximian.com>
+
+       * Land libredcarpet-multiserver-branch onto the trunk.  Adds
+       multiple worlds, which makes the implementation of package sets
+       and undumped worlds much cleaner and allows us to have multiple
+       servers.
+
+2003-06-27  Jose Mercado    <jose@ximian.com>
+
+       * distributions.xml: SLD's version is "1" not "1.0".
+
+2003-06-17  Jon Trowbridge  <jon@trowbridge.org>
+
+       * rc-resolver-context.c (rc_resolver_context_get_status): When we
+       check whether or not we can use the cached status, it isn't
+       sufficient to just compare the package specs: the last checked
+       status might be the in-channel package (for example), while the
+       current check might be for the system version of the package.  To
+       fix this, we compare the pointers as well as the specs.
+
+2003-06-15  Jon Trowbridge  <jon@trowbridge.org>
+
+       * rc-world.c: Use the global packman instead of our lame
+       virtualized version comparison function.
+
+       * rc-channel.h: For some reason, a bunch of the rc_channel
+       functions tooks const RCChannel pointers as args.  This was
+       a good thing to do in theory, but since we make no effort to
+       be const-correct anywhere else, I've removed the consts.
+
+       * rc-channel.c: Ditto.
+
+2003-06-12  Joe Shaw  <joe@ximian.com>
+
+       * distributions.xml: Change "SuSE Linux Enterprise Client" to
+       "SuSE Linux Desktop" and change the target.  Again.
+
+2003-06-10  Joe Shaw  <joe@ximian.com>
+
+       * rc-util.c (rc_parse_xml_from_file): Only unmap the buffer if we
+       successfully mapped it.
+
+2003-06-06  Joe Shaw  <joe@ximian.com>
+
+       * rc-debman.c (query_all_read_line_cb): Fix some undefined C
+       pointer magic.  Fixes #44114.
+
+2003-06-04  Joe Shaw  <joe@ximian.com>
+
+       * rc-world-import.c (add_packages_from_hash_cb): Set the
+       package_url in the RCPackageUpdate to be a file URL pointed at the
+       file on disk.
+
+2003-06-03  Joe Shaw  <joe@ximian.com>
+
+       * rc-package.h: Add an "install_only" flag for kernel packages
+       which we want to do an RPM install (not upgrade) on.
+
+       * rc-rpmman.c (transaction_add_install_packages): Check the
+       install_only bit and set the bit on the corresponding RPM call.
+
+       * rc-xml.c (parser_package_end, rc_xml_node_to_package)): Check
+       for the presence of the install_only tag.
+       (rc_package_to_xml_node): Write out the install_only tag if the
+       bit is set.
+
+2003-05-30  Joe Shaw  <joe@ximian.com>
+
+       * rc-rollback.c (add_tracked_package): Make sure we save the
+       package epochs if they're present.
+       (package_match_cb): Fix up some broken matching... we care about
+       name matches only at the package level, not total dep relations.
+       (get_action_from_xml_node): Read the epoch from the XML file and
+       pass it into rc_package_dep_new().
+
+2003-05-29  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_transact): Add RPMPROB_FILTER_REPLACEPKG
+       to the problem filter.  We'll need to be able to replace currently
+       installed packages with same version for rollback, and I can't
+       think of a particularly good reason for it to be off otherwise.
+
+2003-05-28  Joe Shaw  <joe@ximian.com>
+
+       * rc-rollback.c (file_changes_to_xml): We only want to copy the
+       file if it's a regular file.
+       (rc_rollback_restore_files): We only want to copy the file back if
+       it was a regular file (but we still want to chown and chmod it
+       regardless).
+
+       * rc-rollback.h: Add a previously missing prototype for
+       rc_rollback_restore_files().
+
+       * rc-util.c (rc_cp): Correctly handle zero-byte files.
+
+2003-05-27  Joe Shaw  <joe@ximian.com>
+
+       * rc-rollback.c (strip_whitespace_node_recursive): Added, removes
+       text nodes so that xmlSaveFormat() always saves a nicely-formatted
+       XML file (since whitespace is not significant in this file).
+       (rc_rollback_info_save): Call strip_whitespace_node_recursive() on
+       the root node.
+       (package_match_cb): Check to make sure the package matches the
+       RCPackageDep.
+       (get_file_changes): Skip over comments, text regions and any
+       non-"file" nodes.
+       (get_action_from_xml_node): Call rc_world_foreach_package()
+       instead of rc_world_foreach_package_by_name() because we don't
+       want any filtering of channel vs. installed packages to happen.
+       (rc_rollback_restore_files): Correctly handle files that have been
+       removed.
+
+       * xml-util.c (xml_get_node): Return NULL if nothing matches.
+
+2003-05-21  Joe Shaw  <joe@ximian.com>
+
+       * distributions.xml: Update the detection and arch for SLEC
+
+2003-05-15  Jose Mercado  <jose@ximian.com>
+
+       * distributions.xml: Added rhel-21es-i386 and rhel-21ws-i386.
+
+2003-05-12  Joe Shaw  <joe@ximian.com>
+
+       * libredcarpet.h: Add rc-rollback.h.
+
+       * rc-packman.h: Nuke the RC_PACKMAN_CAP_REPACKAGING define.
+
+2003-05-12  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-world-import.c (rc_world_add_channel_from_directory): Instead
+       of setting the channel's subscription flag (which no longer
+       exists) directly, set it in the world.
+
+       * rc-world.c: Added a subscriptions hash table to the RCWorld
+       struct.
+       (rc_world_set_subscription): Added.  Subscription info is now
+       stored in the world.
+       (rc_world_is_subscribed): Ditto.
+       (rc_world_free): Clean up our subscriptions hash.
+       (rc_world_new): Allocate our subscriptions hash.
+
+       * rc-channel.c (rc_channel_subscribed): Query the channel's world
+       to get the subscription status.  We do this since the channel
+       struct no longer carries that piece of state around.
+       (rc_channel_set_subscription): Change the channel's subscription
+       status in it's world.
+
+       * rc-channel-private.h: Removed the subscribed flag from the
+       channel struct.  From here on out, channel structs should be
+       stateless (well, except for their initial state of course) and
+       immutable.
+
+       * rc-distro.c (rc_distro_parse_xml): We don't need to try to parse
+       the buffer as both compressed and uncompressed, because if the
+       distro file is compressed it will be automagically uncompressed
+       when we map it.
+
+       * rc-util.c: I've rearranged some things in the file in an attempt
+       to group similar functions.
+       (rc_memory_looks_gzipped): Added.  Checks if a block of memory
+       begins with the gzip magic numbers.
+       (rc_buffer_map_file): If we map a file that appears to be
+       compressed, magically uncompress it.
+       (rc_buffer_unmap_file): If we are 'unmapping' a file that was
+       actually compressed, we don't actually unmap the memory; we gfree
+       it instead.
+       (rc_parse_xml_from_buffer): A wrapper around xmlParseMemory that
+       transparently handles compressed buffers.  This is a
+       slightly-nicer replacement for rc_uncompress_xml, which has been
+       removed.
+       (rc_parse_xml_from_file): Like rc_parse_xml_from_file, this is a
+       convenience function that transparently uncompresses a gzipped
+       file before applying the xml parser.
+
+2003-05-09  Jon Trowbridge  <trow@ximian.com>
+
+        * rc-resolver-info.c (rc_resolver_info_missing_req_new):
+        Constructor for a new type of info message, corresponding to a
+        report of a misisng requirement.
+        (rc_resolver_info_copy): Copy the missing req.
+        (rc_resolver_info_free): Free the missing req.
+        (rc_resolver_info_to_string): Stringify our missing req type.
+
+2003-05-08  Joe Shaw  <joe@ximian.com
+
+       Checkpoint the rollback code.
+
+       * Makefile.am: Add rc-rollback.[ch]
+
+       * rc-packman-private.h: s/transaction_tracing/rollback_enabled
+
+       * rc-packman.c: Move all the rollback stuff into rc-rollback.[ch].
+
+       * rc-rollback.c: Move the rollback code in here.  Tracks changes
+       to files on the filesystem, saves backups, and restores them.
+
+       * rc-util.c (rc_hash_values_to_list): Added.  Utility function to
+       convert the values of a GHashTable to a GSList.
+       (rc_hash_keys_to_list): Added.  Does keys.
+
+       * xml-util.c (xml_get_node): Added.  Gets an xmlNode * for a given
+       name.
+
+2003-08-08  Joe Shaw  <joe@ximian.com>
+
+       * rc-dep-or.c (rc_dep_or_dep_slist_to_string): Get rid of the weak
+       relation check.
+
+       * rc-package-dep.[ch]: Remove RC_RELATION_WEAK and cousins.
+       They're not used anywhere in libredcarpet anymore.
+
+2003-05-08  Joe Shaw  <joe@ximian.com>
+
+       * rc-arch.c: The _to_string() functiosn do a first-match, and we
+       want to prefer "noarch" to "all".
+
+2003-05-05  Joe Shaw  <joe@ximian.com>
+
+       * rc-package-file.c (rc_package_file_free,
+       rc_package_file_slist_free): Added.
+
+       * rc-packman-private.h: Change track_changes to
+       transaction_tracking.
+
+       * rc-packman.c: Do the tracking in /var/lib/rcd/tracking.  Track
+       all transactions, not just changes to the individual files during
+       upgrades and removals.  Update the code to correctly handle errors
+       that occur doing the transaction itself.  And other minor fixes.
+
+2003-05-02  Joe Shaw  <joe@ximian.com>
+       
+       * rc-world.c (rc_world_add_package): Fix backwards arch score
+       comparison.  Fixes #42236.
+
+2003-05-02  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_transact): For RPM < 4.1, check for -1
+       from rpmRunTransactions() which means that the transaction failed
+       but we don't have a problem set to show for it.
+
+2003-05-02  Joe Shaw  <joe@ximian.com>
+
+       * rc-verification.c (rc_verification_type_to_string): I got sick
+       of doing this all by hand everywhere, so I added this function.
+
+2003-05-01  Ian Peters  <itp@ximian.com>
+
+       * rc-util.c, rc-util.h: fix to use the correct mkdtemp, optimize
+       some behavior in our implementation of mkdtemp
+
+2003-04-30  Joe Shaw  <joe@ximian.com>
+
+       * make_stub.sh: Make this so it doesn't clobber files when run
+       with -j.
+
+       * rc-packman-private.h: Remove the "busy" flag, add a
+       "track_changes" flag.
+
+       * rc-packman.c (rc_packman_track_changes): Added.  Iterates
+       through the list of updates and removals and calls
+       rc_packman_track_change() on each.
+       (rc_packman_track_change): Pretty hairy function which iterates
+       the files in a package and checks to see if any have changed.  It
+       stores change info in an xmlNode and copies the modified file to a
+       safe location.
+       (rc_packman_transact): Remove the busy flag stuff, it wasn't
+       really being used.  Track file changes before running the
+       transaction.
+       (rc_packman_set_track_changes): Flag which turns on/off change
+       tracking.
+
+       * rc-util.c (rc_cp): Added.  Copies a file using mmap().
+
+2003-04-30  Joe Shaw  <joe@ximian.com>
+
+       * distributions.xml: Add support for Mandrake 9.1
+       (mandrake-91-i586) and SuSE 8.2 (suse-82-i586; yes, i586).  Fixes
+       #41870.
+
+       * rc-rpmman.c (rc_rpmman_init): Try RPM versions newest-first, so
+       we don't pull in rpm 4.0.4 from librpm404 on machines upgraded
+       from rh8.0 to 9.  Fixes #41838.
+
+2003-04-28  Joe Shaw  <joe@ximian.com>
+
+       * rc-package-file.h: Nuke the "flags" and replace it with a
+       "ghost" boolean.
+
+       * rc-rpmman.c (HeaderInfo): Add an FD_t element for reading
+       headers out of package files.
+       (rc_rpmman_header_info_free): Free the file descriptor if it's
+       set.
+       (rc_rpmman_read_package_file): Added.   Reads a filename into a
+       HeaderInfo struct, and abstracts out a lot of duplicated code.
+       (transaction_add_install_packages): Use
+       rc_rpmman_read_package_file().
+       (rc_rpmman_query_file): Ditto.
+       (rc_rpmman_package_is_repackaged): Ditto.
+       (rc_rpmman_file_list): Add support for reading the file list out
+       of a package file on disk.  Flesh this out so we get the file
+       sizes, md5sums, UIDs and GIDs, the file modes and mtimes.
+       (load_fake_syms, load_rpm_syms): Add unameToUid() and gnameToGid()
+       to symbols we load from RPM.
+
+2003-04-28  Ian Peters  <itp@ximian.com>
+
+       * rc-world.c (struct _RCWorld): add a database_changed_id field to
+       keep the id of our handler
+       (rc_world_new): ref the RCPackman, and keep the handler id around
+       in database_changed_id
+       (rc_world_free): disconnect our handler, and unref our RCPackman
+
+2003-04-25  Joe Shaw  <joe@ximian.com>
+
+       * Makefile.am: Add rc-package-file.[ch].
+
+       * rc-package-file.[ch]: Added.  Represents a file in an RCPackage.
+       
+       * rc-packman.c: Add rc_packman_file_list(), which lists the files
+       in a package.  Added rc_packman_real_file_list virtual method.
+
+       * rc-debman.c (rc_debman_file_list): Added.  g_spawns dpkg -L and
+       attaches an RCLineBuf to it to get the list of files in a package.
+
+       * rc-rpmman.c (rc_rpmman_find_system_headers): Took a bunch of
+       similar code from a few functions within rc-rpmman.c and made this
+       function.  Given a package name (with optional version and
+       release) it will return a list of headers from the system database
+       which match it.
+       (transaction_add_remove_packages_v4): Use
+       rc_rpmman_find_system_headers()
+       (transaction_add_remove_packages_v3): Ditto.
+       (rc_rpmman_query_v4, rc_rpmman_query_v3): Removed, no longer
+       needed.
+       (rc_rpmman_query): We don't need to call version-specific query
+       functions anymore, this is largely just a wrapper around
+       rc_rpmman_find_system_headers() (which has its own
+       version-specific functions).
+       (rc_rpmman_file_list): Added.  Returns a list of files within a
+       package.
+
+2003-04-23  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-resolver-queue.c (rc_resolver_queue_add_package_to_verify):
+       Create require items for each package set's children.  This
+       allows verify to re-assemble broken package sets.
+
+       * rc-package-dep.c (rc_package_dep_spew_cache): Added; this is a
+       debugging function meant to help find memory leaks.
+
+       * rc-world-dump.c (rc_world_undump): Fixed memory leak.
+
+       * rc-channel.c (rc_channel_unref): Fixed memory leak.
+
+       * rc-queue-item.c (uninstall_item_process): Fixed memory leak.
+
+2003-04-22  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-queue-item.c (rc_queue_item_new_install): When comparing
+       the to-be-installed version with an already-installed version,
+       actually use rc_package_spec_equal instead of comparing the
+       pointers.
+
+2003-04-21  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-queue-item.c (install_item_process): Do the right thing if we
+       are asked to 'install' and unlinked package.  Removed some dead
+       code.
+       (uninstall_item_process): If this is an unlink, try to determine
+       if the package is required by other installed software.  When
+       uninstalling a package, uninstall its parents.  Do a better job
+       unlinking a package set's children.
+       (uninstall_item_destroy): Unref dep_leading_to_uninstall.
+       (uninstall_item_copy): Ref dep_leading_to_uninstall.
+       (rc_queue_item_uninstall_set_dep): Ref dep_leading_to_uninstall.
+       (rc_queue_item_uninstall_set_unlink): When flagging an uninstall
+       as an unlink, reduce the priority.
+
+       * rc-resolver-context.c: Added handling for a new state,
+       RC_PACKAGE_STATUS_TO_BE_UNINSTALLED_DUE_TO_UNLINK.
+       (rc_package_status_to_string): Handle _UNINSTALLED_DUE_TO_UNLINK.
+       (rc_resolver_context_set_status): Ditto.
+       (rc_resolver_context_install_package): Ditto.
+       (rc_resolver_context_uninstall_package): Ditto.
+       (requirement_possible_cb): Ditto.
+       (rc_resolver_context_package_is_possible): Check that
+       children can be installed when trying to pre-determine if it
+       is possible to install a package.
+
+       * rc-resolver-info.c: Added a new 'child of' info type, which we
+       used when we pull in package sets.  This is analogous to the
+       'depends on' type for when we pull in requirements.
+
+       * rc-world.c: Add a 'children_by_name' GHashTable to the RCWorld
+       struct.
+       (rc_world_new): Allocate children_by_name.
+       (rc_world_free): Free children_by_name.
+       (rc_world_freeze): Freeze children_by_name.
+       (rc_world_thaw): Thaw children_by_name.
+       (rc_world_add_package): Store the package's child info in
+       children_by_name.
+       (rc_world_remove_package): Remove from children_by_name.
+       (rc_world_remove_packages): Remove from children_by_name.
+       (rc_world_foreach_parent_package): Added.  Find all parents of a
+       given dep.
+       (rc_world_spew): Spew child info.
+
+       * rc-xml.c (rc_xml_strip): Do the right thing with NULL strings.
+
+2003-04-18  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-world.c (rc_world_get_system_packages): Load the installed
+       synthetic packages along with the system packages.
+       (rc_world_set_synthetic_package_db): Added.  Sets the filename of
+       the synthetic package database.
+       (rc_world_load_synthetic_packages): Load the packages from the
+       synthetic package database into the world.
+       (rc_world_save_synthetic_packages): Write the installed synthetic
+       packages out to the synthetic package database.
+       (rc_world_get_single_provider): A convenience function -- find the
+       package that provides a dep, as long as there is exactly one
+       match.
+       (rc_world_transact): Added.  This is a wrapper around
+       rc_packman_transact that filters out and handles the installation
+       and removal of synthetic packages.
+
+       * rc-world-import.c (rc_world_add_packages_from_buffer): Handle
+       the case of adding packages to the system.
+       (refresh_channel_from_dir): If we find a file with the extension
+       '.synpkg' in the mounted directory, try to read package XML from
+       it.  If the file contains package XML describing a synthetic
+       package, create an RCPackage and add it to the channel.
+
+       * rc-queue-item.c (install_item_process): Treat child deps as
+       requires when installing.
+       (uninstall_item_process): Unlink any children when uninstalling.
+       (rc_queue_item_uninstall_set_unlink): Added.
+
+       * rc-xml.c: We are calling the subitems in a package set
+       the 'children'... I had been inconsistent on this before.
+       
+       * rc-package.c (rc_package_copy): Added.
+       (rc_package_is_package_set): We aren't a package set if the child
+       array exists but has length 0.
+       (rc_package_is_synthetic): Added.  Currently the only synthetic
+       packages we have are package sets.
+
+       * rc-package-update.c (rc_package_update_copy): This function
+       was mentioned in the header, but wasn't defined.  Go figure.
+       (rc_package_update_slist_copy): Ditto.
+
+2003-04-17  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-debman.c (query_all_read_line_cb): Initialize the provides
+       deps as RC_CHANNEL_ANY.
+       (rc_debman_query_file): Initialize the package's self-provide
+       as RC_CHANNEL_ANY.
+
+       * Lots of small changes throughout lots of files, implementing two
+         changes:
+         (1) An RCPackageDep can now specify a channel or a channel
+             wildcard.
+         (2) Channel IDs are now arbitrary strings, not unsigned
+             integers.
+
+2003-04-16  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-package-set.h: Removed.  None of this code was being used by
+       anything
+
+       * rc-package-set.c: Ditto.
+
+       * rc-channel.c: Removed all references to rc-package-set.[ch] and
+       its contents.
+
+       * rc-channel.h: Ditto.
+
+       * rc-channel-private.h: Ditto.
+
+       * libredcarpet.h: Ditto.
+
+2003-04-15  Joe Shaw  <joe@ximian.com>
+
+       * rc-xml.c (rc_package_sax_context_parse_chunk): Check to see if
+       the last character is a nul character and terminate XML processing
+       there.  This'll fix the harmless but annoying "extra content"
+       warnings when parsing channel data.
+       (rc_package_update_to_xml_node): Write out the temporary string,
+       not the integer-casted-to-a-string.
+
+2003-04-08  Joe Shaw  <joe@ximian.com>
+
+       * rc-distro.c (rc_distro_parse_xml): Check to see if
+       RC_DISTRIBUTIONS_FILE is set when we're asked for our internal
+       distributions.xml representation and use it if so.
+
+2003-04-08  Joe Shaw  <joe@ximian.com>
+
+       * rc-package-update.c (rc_package_update_copy): Nuke this.
+       (rc_package_update_slist_copy): Ditto.
+       (rc_package_update_free): Free the license string.
+
+       * rc-rpmman.h: Add a define for "fnpyKey" if our RPM is older than
+       4.0.4.
+
+       * rc-world.c (rc_world_migrate_channel): Added.  Migrates a
+       channel from one RCWorld to another.
+
+       * rc-xml.c (parser_update_end): Don't free/realloc the md5sum for
+       the package... must have been missed before.  Read the "license"
+       tag out of the packageinfo.xml file and feed it into the update's
+       license field.
+       (rc_xml_node_to_package_update): Ditto here, for the DOM parser.
+       (rc_package_update_to_xml_node): Serialize the HID and the license
+       string to XML for dumps and pkg_to_xml and the like.
+
+2003-04-08  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman-types.h: add a missing field to RCrpmProblemOlder
+
+       * rc-rpmman.h: rpmdbMatchIterator needs to be
+       rc_rpmdbMatchIterator
+
+2003-04-04  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman.h: Missed a place where rpmdbMatchIterator should have
+       been changed to rc_rpmdbMatchIterator.
+
+2003-04-04  Joe Shaw  <joe@ximian.com>
+
+       * distributions.xml: Add support for SLEC 1 and Red Hat 9, from
+       Peter Teichman.
+
+2003-04-04  Ian Peters  <itp@ximian.com>
+
+       * rc-util.c (rc_rmdir): lstat not stat.  Also fixed Jose's
+       ChangeLog entry 3 below this.
+
+2003-04-03  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-world.c (rc_world_add_package): If a package is installed,
+       don't ever filter it out due to an incompatible arch.
+
+2003-04-03  Ian Peters  <itp@ximian.com>
+
+       * rc-util.c (rc_rmdir): remove symlinks, too, if we can
+
+2003-03-27  Jose Mercado <jose@ximian.com>
+       
+       * distributions.xml: Change detect string for SuSE 8.1 to
+       something more unique.
+
+2003-03-27  Joe Shaw  <joe@ximian.com>
+
+       * rc-world.c (rc_world_foreach_system_upgrade): Add a
+       subscribed_only flag so we can iterate across upgrades outside of
+       only subscribed channels.
+
+2003-03-25  Joe Shaw  <joe@ximian.com>
+
+       * distributions.xml: Change "Linux Mandrake" to "Mandrake Linux"
+       starting with version 8.1.
+
+2003-03-20  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman-types.h: Include the structure definitions for
+       rpmProblem in its three different versions, 3.0.x/4.0,
+       4.0.2-4.0.4, and 4.1/4.2.
+
+       * rc-rpmman.c (render_problems): Do all the type magic at runtime
+       based on the types we added in rc-rpmman-types.h.  Coerce the data
+       into the type we want and pass it off to the applicably typed
+       rpmProblemString function pointer.
+       (rc_rpmman_transact): Remove a chunk of code which basically
+       duplicated the render_problems() functionality poorly with a call
+       to the real thing.
+       (load_fake_syms, load_rpm_syms): Add an rpmProblemStringOlder()
+       method.
+
+       * rc-rpmman.h: Remove the conditional defines of
+       rpmProblemString() and rpmProblemStringOld() and add
+       rpmProblemStringOlder().
+
+2003-03-18  Joe Shaw  <joe@ximian.com>
+
+       * distributions.xml: Make the indenting of the new distros
+       consistent with the rest of the file.
+
+       * rc-util.[ch]: Remove a bunch of dead, unused code related to
+       various hash tables of lists or whatever.  Add rc_str_case_hash()
+       and rc_str_case_equal() for case-insensitive hash tables.
+
+2003-03-17  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_transact): account for packages that are
+       obsoleted when computing the total number of transaction steps
+
+2003-03-13  Jose Mercado    <jose@ximian.com>
+
+       * distributions.xml: Added SLES8 and rhel 2.1AS support.
+
+2003-03-13  Joe Shaw  <joe@ximian.com>
+
+       * RPM 4.1/4.2 support.
+
+       * Makefile.am: Generate stubs for RPM 4.1 and 4.2's dynamic
+       libraries.
+
+       * rc-rpmman-types.h: Add a bunch of compatibility types so we can
+       build on any version of RPM.
+
+       * rc-rpmman.c: Define LATEST_SUPPORTED_RPM_VERSION and have
+       libredcarpet neither build nor run against a version newer than
+       this, both for safety and so people don't complain when it doesn't
+       build/run.  Add some compatibility defines and types for various
+       API and type changes.  ABI for rpmReadSignature() changed, so read
+       it into one of two function pointers of different signatures
+       depending on version.  Create an rpmts when opening the database,
+       since most things operate on that instead of a db now.  Add a ton
+       of #ifdefs and in-code version checks for the various API changes,
+       and so forth.  Boring stuff, really, read the patch to get the
+       gist of it.
+
+2003-03-13  Joe Shaw  <joe@ximian.com>
+       
+       * rc-debman.c, rc-verification.c: Change deprecated use of
+       __FUNCTION__ to G_GNUC_PRETTY_FUNCTION.
+
+2003-03-13  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-resolver.c (rc_resolver_set_timeout): Added.  Sets the
+       maximum no. of seconds to be spent on any resolution.
+       (rc_resolver_resolve_dependencies): If a timeout has been set and
+       a resolution attempt has taken too long, set the 'timed_out' flag
+       and bail out.
+
+2003-03-12  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_read_header): Fix a cut-and-paste-o when
+       the summary is UTF-8 valid.
+
+2003-03-10  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_read_header): Check to make sure that the
+       summary and description are valid UTF-8 and do a conversion of
+       ISO-8859-1 -> UTF-8 if not.
+
+2003-03-04  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_depends_fill): Don't filter file
+       dependencies if the RC_PLEASE_DONT_FILTER_FILE_DEPS env variable
+       is set.
+
+2003-02-21  Joe Shaw  <joe@ximian.com>
+
+       * rc-world.c (rc_world_touch_channel_sequence_number): Fix a
+       cut-and-paste-o where we were signaling that the subscriptions
+       seqno had changed, not the channel seqno.
+
+2003-02-07  Joe Shaw  <joe@ximian.com>
+
+       * rc-debman.c (query_all_read_line_cb): Set the arch to NOARCH by
+       default, read the "architecture" setting out of the
+       /var/lib/dpkg/status file if it's there.
+
+2003-02-06  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman-types.h, rc-rpmman.h: Change RPM includes to remove
+       the directory; our CFLAGS will be set to the actual include
+       directory for RPM.
+
+2003-02-04  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-xml.c (rc_xml_node_to_package_dep_internal): Free some
+       leaked strings.
+
+       * rc-package-match.c (rc_package_match_set_dep): Ref the new dep
+       before unreffing the old dep, just in case we are in some weird
+       situation where they are equal.  It never hurts to be paranoid.
+       (rc_package_match_from_xml_node): Unref the dep we created from
+       the xml node after we call rc_package_match_set_dep.  This fixes a
+       small memory leak.
+
+       * rc-world.c (rc_world_get_system_packages): Unref the contents of
+       system_packages before freeing the slist.  If our system query
+       fails, free the slist.  (Probably fixes most of #37576)
+
+2003-01-24  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-queue-item.c (require_item_process): If there are no
+       installable providers, give a slightly more detailed error
+       message.
+
+       * rc-resolver.c (rc_resolver_resolve_dependencies): Flag the
+       temporary 'Local Packages' channel as silent.
+
+       * rc-world.c (rc_world_add_channel_with_priorities): Added a
+       'is_silent' argument, which (duh) causes the new channel to be
+       flagged as silent.
+       (rc_world_add_channel): Rather than add a new arg to this
+       function, just always make the created channel non-silent.
+       (rc_world_remove_channel): Don't touch the sequence numbers if the
+       channel is silent.
+       (rc_world_add_package): Ditto.
+       (rc_world_remove_package): Ditto.
+       (rc_world_remove_packages): Ditto.
+
+       * rc-channel.c (rc_channel_get_silent): Added.  Test if a channel
+       is flagged as silent.
+       (rc_channel_set_subscription): If a channel is marked as 'silent',
+       don't change the world sequence number if its subscription status
+       changes.
+
+       * rc-channel-private.h: Added "silent" flag to the
+       RCChannel struct.
+
+2003-01-22  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-arch.c: Make "all" (which is what debian uses) a synonym for
+       "noarch".
+
+       * rc-world-import.c (rc_world_add_packages_from_xml): Removed
+       GHashTable *packages, which is no longer being used for anything.
+       (fill_debian_package): Set the architecture properly when
+       loading debian package files.
+
+2003-01-21  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman.c (depends_fill_helper): We were being way too
+       aggressive with some memory management but it never seems to bite
+       us with RPM 4.  RPM 3, however, is a different matter.  Revert to
+       the previous behaviour, but use my own free_v() function instead
+       of g_strfreev() to fix the potential memory leak.
+
+2003-01-21  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-xml.c (parser_package_end): Removed all of the arch-related
+       checks.  That all happens inside of rc_world_add_packages_from_xml
+       now.
+       (rc_package_sax_context_done): Since arch checks are being done by
+       the RCWorld, this is all much simpler.
+
+       * rc-world-import.c (rc_world_add_packages_from_xml): Removed all
+       arch-related checks.  That all happens inside of
+       rc_world_add_package now.
+
+       * rc-world.c (rc_world_add_package): Do all arch checks when a
+       package is added to the world, taking version numbers into
+       account.  Now a higher version number trumps a superior arch
+       score.  This function returns a gboolean instead of void: if
+       the package actually gets added it returns TRUE.  If not
+       (for example, if the arch is bad), return FALSE.
+
+2003-01-08  Joe Shaw  <joe@ximian.com>
+
+       * Makefile.am: Remove rc-pretty-name.[ch]
+
+       * rc-package.c (rc_package_compare_pretty_name): Added. Compares
+       the packages' pretty names, falling back to the regular names.
+       (rc_package_slist_sort_by_pretty_name): Changed to use
+       rc_package_compare_pretty_name(), which gets it from the RCPackage
+       structure instead of looking it up in a hash from the old
+       prettypackages.xml file.
+
+       * rc-package.h: Reorder some stuff, add pretty_name.
+
+       * rc-xml.c (parser_package_end): Parse the "pretty_name" out of
+       the XML in the <package> section.
+
+2002-12-18  Joe Shaw  <joe@ximian.com>
+
+       * rc-verification.c (rc_verify_gpg): When the $HOME environment
+       variable isn't set, gnupg will have a fit when trying to create
+       the $HOME/.gnupg directory and bail out.  So we create a temporary
+       directory in /tmp and create a temporary environment setting that
+       as $HOME and pass it into our g_spawn function calls.  Clean up
+       after we're done.
+
+2002-12-16  Joe Shaw  <joe@ximian.com>
+
+       * rc-distro.c: Get rid of <command> tags and replace them with
+       <os_name> and <os_release>
+
+       * distributions.xml: Replace <command> tags with <os_name> and
+       <os_release> tags.
+
+2002-12-10  Joe Shaw  <joe@ximian.com>
+
+       * rc-resolver-info.c (rc_resolver_info_to_string): Change
+       "replaces" to "replaced by"
+
+2002-12-06  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman.c: Pass in the address to a gboolean as the third
+       parameter to rpmReadPackageHeader() which tells us if we're
+       dealing with a source package.  If we are, abort out since we
+       don't handle source packages right now.
+
+2002-12-05  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-world-subscriptions.c (clear_sub_cb): When resetting our
+       subscriptions, maintain the current subscription state for
+       transient channels. (Fixes #35148)
+
+2002-12-05  Joe Shaw  <joe@ximian.com>
+
+       * rc-world.c (rc_world_add_channel_with_priorities): Added.
+       Allows the channel creator to set priorities for dependency
+       resolution.
+
+2002-12-03  Joe Shaw  <joe@ximian.com>
+
+       * distributions.xml: Change Woody to supported.
+
+       * rc-arch.c (rc_arch_from_string): Handle NULL argument.
+
+       * rc-xml.c (rc_xml_strip): Added.  Returns NULL if g_strstrip()
+       returns an empty string.
+       (parser_package_end, parser_update_end): Use rc_xml_strip()
+       instead of g_strstrip().
+
+2002-12-02  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman.c: Added a #define for RPMTAG_REMOVETID
+
+2002-11-22  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-xml.c (rc_package_update_to_xml_node): Make sure that
+       update->package_url isn't NULL or empty before writing it out in
+       the XML.  (Probably fixes bug #34499.)
+
+2002-11-22  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_package_is_repackaged): Added.  Opens up
+       the package file and looks for the header to indicate that it's a
+       repackaged RPM.
+       (split_rpm): Remove the hack that we used before to guess that it
+       was a repackaged RPM as it won't work in 4.1.
+
+2002-11-21  Joe Shaw  <joe@ximian.com>
+
+       * rc-package.c (rc_package_copy, rc_package_slist_copy): Removed.
+       Everything should just use rc_package_ref().
+
+       * rc-debman.c (package_list_append): Change the one instance of
+       rc_package_copy() in libredcarpet to rc_package_ref().
+
+2002-11-21  Joe Shaw  <joe@ximian.com>
+
+       * packer.pl: Use binmode so perl 5.8.0 doesn't read in the data
+       as UTF-8.  Patch from Michael Doppler.
+
+2002-11-18  Joe Shaw  <joe@ximian.com>
+
+       * rc-xml.c (rc_package_to_xml_node): Write the description out to
+       the description field, not the summary.
+
+2002-11-14  Joe Shaw  <joe@ximian.com>
+
+       * rc-dep-or.c (rc_dep_string_to_or_dep_slist): Return NULL if
+       there isn't a trailing parenthesis.
+
+2002-11-14  Joe Shaw  <joe@ximian.com>
+
+       * rc-debman.c (rc_debman_is_database_changed): Destroy our cache
+       of packages when the db changes out from underneath us.
+       (unlock_database, rc_debman_init): Make the timeouts 5 seconds,
+       like the RPM backend.
+
+       * rc-rpmman.c (open_database): Fix an occasional glib warning.
+
+2002-11-14  Joe Shaw  <joe@ximian.com>
+
+       * rc-package-dep.c (rc_package_dep_verify_relation): Go back to
+       evaluating the version and release separately as that wasn't quite
+       right, instead use the capability as to whether we should always
+       evaluate the release or not.
+
+       * rc-packman.h: Rename RC_PACKMAN_CAP_VERSION_AND_RELEASE to
+       RC_PACKMAN_CAP_ALWAYS_VERIFY_RELEASE.
+
+       * rc-debman.c (rc_debman_init): Ditto.
+
+2002-11-14  Joe Shaw  <joe@ximian.com>
+
+       * rc-packman.h: Add a huge comment block describing what each of
+       the capabilities does.  Remove the SELF_CONFLICT capability since
+       it wasn't being used and it's handled for all backends by the
+       resolver.  Renamed LEGACY_EPOCH_HANDLING to IGNORE_ABSENT_EPOCHS
+       because it makes more sense to me.  Add a new VERSION_AND_RELEASE
+       capability which does Debian's relation logic on version+release
+       as one.
+
+       * rc-debman.c (rc_debman_init): Set capabilities to
+       VERSION_AND_RELEASE.
+
+       * rc-rpmman.c (rc_rpmman_init):
+       s/LEGACY_EPOCH_HANDLING/IGNORE_ABSENT_EPOCHS.
+
+       * rc-package-dep.c (rc_package_dep_verify_relation): If the
+       VERSION_AND_RELEASE capability is set, compare version and release
+       at once instead of separately.  Also
+       s/LEGACY_EPOCH_HANDLING/IGNORE_ABSENT_EPOCHS.
+
+       * rc-queue-item.c (conflict_process_cb): Add a comment about how
+       we ignore when we conflict with ourself.  Mention that some of the
+       obsolete handling should probably be a packman capability
+       
+2002-11-14  Joe Shaw  <joe@ximian.com>
+
+       * rc-debman-general.c (rc_debman_fill_depends): Don't muck around
+       with the dep if it's NULL.
+
+       * rc-debman.c (query_all_read_line_cb, rc_debman_query_file):
+       Initialize the package's obsoletes array.
+
+       * rc-package-dep.c (rc_package_dep_array_from_slist): Allow the
+       argument to be NULL, and short circuit in the case where the list
+       is valid but empty.
+
+       * rc-util.c (count_gzip_header, rc_uncompress_memory,
+       rc_compress_memory, rc_uncompress_xml): Make the buffers const.
+
+       * rc-world-import.c (rc_world_add_channel_from_buffer,
+       rc_world_add_packages_from_buffer, rc_world_parse_helix,
+       rc_world_parse_debian, rc_world_parse_redhat): Make the buffers
+       const.
+       (rc_world_parse_debian): Rewrote the debian Packages file parser
+       to (a) be cleaner and (b) deal with entries that span multiple
+       lines.  It's a little bit slower than the old one, by about .4
+       seconds, and there's plenty of room to speed it up.  Make it
+       initialize the obsoletes package dep array, and remove a lot of
+       redundant code.
+
+       * rc-xml.c (rc_package_sax_context_parse_chunk): Make the buffer
+       const.
+
+2002-11-11  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (close_database): do nothing if the database isn't
+       open
+       (open_database): set the db_watcher id to 0 when we
+       g_source_remove it
+       (rc_rpmman_finalize): remove the db_watcher timeout when we
+       finalize the object to avoid crashing, d'oh
+
+2002-11-05  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-world-import.c (refresh_channel_from_dir): If there are
+       multiple packages w/ the same name in the directory, filter out
+       all but the one with the highest version number.  This fixes
+       half of bug #33323.
+
+       * rc-queue-item.c (require_item_process): Set a meaningful branch
+       label.  This is helpful when debugging dependency problems.
+       (branch_item_destroy): Free the branch label.
+       (branch_item_to_string): Include the branch label in the
+       stringification.
+       (rc_queue_item_branch_set_label): Added.  Attaches a label to a
+       branch item.  This label is not user-visible, unless they are
+       looking at debugging output.
+       (install_item_process): Added log info to the uninstall items we
+       construct to handle removals due to conflicts with the installed
+       package.  (Fixes bug #33312)
+
+2002-11-01  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-world-import.c (rc_world_add_channel_from_directory):
+       Increase the priority of mounted channels.
+
+2002-10-31  Joe Shaw  <joe@ximian.com>
+
+       * distributions.xml: Add Mandrake 9 and SuSE 8.1 as supported
+       distros.  Change Red Hat 8 to supported.  Add Debian Woody as
+       presupported.
+
+2002-10-23  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_database_filename): Added.  Returns the
+       filename of the RPM database, based on rpmman->rpmroot, the
+       %{_dbpath} macro, and which version of RPM is being run (v3 or
+       v4).
+       (rc_rpmman_is_database_changed, open_database): Use new function.
+       (open_database): Look for the __db.0xx files in the right location,
+       as well.
+
+       * rc-rpmman.h: Add rpmGetPath().
+
+2002-10-24  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-world-dump.c (rc_world_dump_to_xml): Write the world's locks
+       out in the dump XML.
+       (rc_world_undump_from_xml): Read the locks from the dump XML.
+
+       * rc-package-match.c (rc_package_match_from_xml_node): We need to
+       extract the RCPackageDep from the xml node, not from the node's
+       child.
+
+2002-10-23  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-world-import.c (rc_world_add_packages_from_xml): When pulling
+       in packages, don't do any filtering by architecture on system
+       packages.  This lets us reproduce broken systems with multiple
+       installs when undumping.
+
+2002-10-18  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c: only include rpm-stubs.h in the non-static case
+       (rc_rpmman_query_file): if we've opened the file but it's not a
+       valid RPM file, we still have to close it before we return.
+       (write_object): only compile in the non-static case
+
+2002-10-17  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-package-match.c (rc_package_match_new): Initialize the
+       ->importance field to RC_IMPORTANCE_INVALID.
+       (rc_package_match_equal): Added.
+       (rc_package_match_test): Handle the case of packages whose channel
+       is NULL.
+
+       * rc-world.c (rc_world_add_lock): Append to the list of locks.
+       This is less annoying, since newly-added locks show up at the end
+       of the list.
+
+2002-10-11  Joe Shaw  <joe@ximian.com>
+
+       * rc-md5.c (rc_md5_digest, rc_md5_digest_from_string): Plug a leak.
+
+       * rc-md5.c (rc_md5_string): Renamed to rc_md5_digest().
+       (rc_md5_from_string, rc_md5_digest_from_string): Added.
+
+       * rc-verification.c (rc_verify_md5_string): Change to
+       rc_md5_digest().
+
+2002-10-10  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman.h (RCRpmman): rpmDefineMacro() actually takes a
+       MacroContext *.  Fixes the build against 3.0.6.
+
+2002-10-10  Joe Shaw  <joe@ximian.com>
+
+       * rc-packman.[ch]: Change the "perform" gboolean on
+       rc_packman_transact() to be a bitfield.  Create the
+       RC_TRANSACT_FLAG_NO_ACT and RC_TRANSACT_FLAG_REPACKAGE flags.  Add
+       the RC_PACKMAN_CAP_REPACKAGING capability.
+       (rc_packman_{set|get}_repackage_dir): Added.
+
+       * rc-debman.c (do_unpack, rc_debman_transact): update for the
+       above flags change.
+
+       * rc-package-spec.c (rc_package_spec_slist_find_name): Make the
+       name argument const.
+
+       * rc-rpmman.c (rc_rpmman_transact): Update for the flags change.
+       If we're on RPM 4.0.4 or greater and the REPACKAGE flag is set,
+       define an RPM macro with the repackage directory.  If we can read
+       the signature header in the RPM, proceed as normal.  If we get an
+       RPMRC_BADSIZE return value and we're on 4.0.4, we're probably
+       trying to install a repackaged RPM (which are technically
+       invalid).
+       (load_fake_syms, load_rpm_syms): Get rpmDefineMacro out of the rpm
+       library.
+       (rc_rpmman_init): If we're on RPM 4.0.4, add the REPACKAGING
+       capability.
+
+2002-10-10  Jon Trowbridge  <trow@ximian.com>
+
+       * Makefile.am: Added rc-package-match.c and rc-package-match.h to
+       the build.
+
+       * libredcarpet.h: Added rc-package-match.h.
+
+       * rc-world-import.c (rc_world_add_channel_from_directory): Added.
+       Allows the contents of a directory full of packages to be added to
+       the world as a custom channel.
+
+       * rc-world-subscriptions.c (to_xml_cb): Don't write out
+       subscription XML for transient channels.
+
+       * rc-resolver.c (rc_resolver_resolve_dependencies): Set the
+       channel id and base id to zero when we create our local packages
+       channel.  (They will now get replaced by valid unused ids by
+       rc_world_add_channel.)
+
+       * rc-resolver-queue.c (rc_resolver_queue_add_package_to_install):
+       Flag the initial install items as explicitly requested.
+       (rc_resolver_queue_add_package_to_remove): Flag the initial remove
+       items as explicitly requested.
+
+       * rc-queue-item.c (install_item_process): If this install was
+       explicitly requested and is an upgrade, flag the uninstall half of
+       the operation as also being explicitly requested.
+       (rc_queue_item_install_set_explicitly_requested): Added.
+       (require_process_cb): Don't consider the provider if it is locked.
+       (require_item_process): Pass the world via the info struct.  (We
+       need it when checking if packages are locked.)
+       (uninstall_item_process): Fail if we are trying to uninstall a
+       locked package and it hasn't been explicitly requested.
+       (rc_queue_item_uninstall_set_explicitly_requested): Added.
+
+       * rc-world.c (rc_world_free): Free our package locks.
+       (rc_world_add_channel): If the channel_id or base_id is zero,
+       generate a valid, unused id.  Flag TYPE_UNKNOWN channels as
+       transient.
+       (rc_world_add_lock): Added.
+       (rc_world_remove_lock): Added.
+       (rc_world_clear_locks): Added.
+       (rc_world_foreach_lock): Added.
+       (rc_world_package_is_locked): Added.
+       (rc_world_add_package): Treat "recommends" as requires.  This is
+       what Debian policy says we should do.
+       (rc_world_foreach_package_by_match): Added.
+       (foreach_upgrade_cb): Don't show locked packages when iterating
+       available upgrades.
+       (get_best_upgrade_cb): Don't consider locked packages when looking
+       for the best upgrade.
+       (system_upgrade_cb): Skip locked packages when look for system
+       upgrades.
+
+       * rc-package-match.h:
+       * rc-package-match.c: Added.
+
+       * rc-channel.c (rc_channel_has_refresh_magic): Added.
+       (rc_channel_use_refresh_magic): Added.
+       (rc_channel_get_transient): Added.
+
+       * rc-channel-private.h: Added refresh_magic hook and transient
+       flag to RCChannel struct.
+
+2002-10-01  Joe Shaw  <joe@ximian.com>
+
+       * rc-util.c (rc_rmdir): If S_ISSOCK is defined, remove any sockets
+       in the directory as well.
+
+2002-09-27  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman.c (split_rpm): Don't free the buffer we get back from
+       headerGetEntry() for the md5 signature.  It causes a double free
+       and a crash on SuSE.
+
+2002-09-23  Ian Peters  <itp@ximian.com>
+
+       * rc-arch.c (rc_arch_get_system_arch): handle a wider range of
+       uname return values
+
+2002-09-20  Joe Shaw  <joe@ximian.com>
+
+       * rc-distro.c (sax_end_element): Check to make sure the arch score
+       is greater than -1, not non-zero.  I guess Ian would have never
+       caught this bug with his crappy processor.
+
+2002-09-19  Joe Shaw  <joe@ximian.com>
+
+       * rc-world-subscriptions.c (rc_world_export_subscriptions_to_xml):
+       When we're writing out our old subscriptions, if one is being
+       handled by the world, skip it.
+
+2002-09-18  Ian Peters  <itp@ximian.com>
+
+       * rc-verification.h: add RC_VERIFICATION_TYPE_SANITY
+
+       * rc-rpmman.c (rc_rpmman_verify): if we're unable to split the rpm
+       into header and payload, return a failed sanity verification, to
+       make life easier on joe
+
+2002-09-11  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-channel.c (rc_channel_set_subscription): If we changed the
+       state of the channel's subscription, call
+       rc_world_touch_sequence_number on the channel's world so that we
+       can detect the change.
+
+       * rc-world.c (rc_world_touch_sequence_number): Added.  Marks the
+       world as changed so that the sequence number will increment.
+
+2002-09-09  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c: missing include
+
+2002-09-09  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman.c: Add some missing header includes.
+
+2002-09-06  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_verify): Fix a typo.  We want a bitwise
+       and, not a logical and.
+
+2002-09-04  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-channel.c (rc_channel_get_subs_file): Added an accessor for
+       the channel's subscribed file.
+       (rc_channel_get_unsubs_file): Add an accessor for the channel's
+       unsubscribed file.
+
+       * rc-package-spec.c (rc_package_spec_to_str): Produce nice-looking
+       output if the spec's version is empty. (Bug #29736)
+       (rc_package_spec_version_to_str): Be careful to not print a "-" in
+       the spec version string if it isn't needed.  (Also bug #29736)
+
+       * rc-resolver-context.c (rc_resolver_context_uninstall_package):
+       Make the "can't uninstall to-be-installed" error message a bit
+       more sane. (Also bug #29736)
+       
+2002-09-03  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-xml.c (parser_package_end): We need to get the file_size and
+       installed_size from the most recent RCPackageUpdate and copy it
+       into the RCPackage.
+
+2002-08-29  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-resolver.c (rc_resolver_free): Clean up our list of extra
+       initial queue items.
+       (verify_system_cb): Insertion-sort our list of packages.
+       (rc_resolver_verify_system): Walk across our list of installed
+       packages and look for cases where we have installed multiple
+       packages with the same name.  For each such case, construct a set
+       of group item for removing each of the packages but one.  Then
+       bundle all of the group items into a branch item and add it to our
+       list of extras.
+       (rc_resolver_resolve_dependencies): Add the contents of
+       initial_items to our newly-constructed queue.
+
+       * rc-resolver-queue.c (rc_resolver_queue_add_item): Added.  This
+       is the sort of thing we should have an accessor for, even if it is
+       trivial.
+       (rc_resolver_queue_add_package_to_install): Use
+       rc_resolver_queue_add_item.
+       (rc_resolver_queue_add_package_to_remove): Ditto.
+       (rc_resolver_queue_add_package_to_verify): Ditto.
+       (rc_resolver_queue_add_extra_dependency): Ditto.
+       (rc_resolver_queue_add_extra_conflict): Ditto.
+
+       * rc-queue-item.h: Added RC_QUEUE_ITEM_TYPE_GROUP to
+       RCQueueItemType enum.  Added definition of RCQueueItem_Group
+       struct and prototypes for group functions.
+
+       * rc-queue-item.c (require_item_cmp): Added. A comparison function
+       for require items.
+       (rc_queue_item_new_require): Put require_item_cmp in the require
+       vtable.
+       (conflict_item_cmp): Added.  A comparison function for conflict
+       items.
+       (rc_queue_item_new_conflict): Put conflict_item_cmp in the require
+       vtable.
+       (group_item_process): Added.  Functionality for group items.
+       (group_item_destroy): Ditto.
+       (group_item_copy): Ditto.
+       (group_item_cmp): Ditto.
+       (group_item_to_string): Ditto.
+       (rc_queue_item_new_group): Ditto.
+       (rc_queue_item_group_add_item): Ditto.
+
+2002-08-28  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-queue-item.c (install_item_process): If we are in
+       verification mode and it looks like our install is about to fail,
+       don't let it happen.  Instead, back out the install and remove
+       whatever packages caused us to need to install this thing in the
+       first place.  Set the is_soft mode on our install and upgrade
+       operation if we are in verification mode.
+       (require_item_process): If we are in verification mode, we always
+       need to try the uninstall branch.
+
+       * rc-resolver.c (rc_resolver_verify_system): Set the ->verifying
+       flag to TRUE.
+       (rc_resolver_resolve_dependencies): Initialize the ->verifying
+       flag on our initial queue's context.
+
+       * rc-resolver.h: Added 'verifying' flag to RCResolver struct.
+
+       * rc-resolver-context.c (rc_package_status_to_string): Added a
+       string for RC_PACKAGE_STATUS_TO_BE_INSTALLED_SOFT.
+       (rc_resolver_context_new_child): Initialize the ->verifying flag.
+       (rc_resolver_context_set_status): Use the
+       rc_package_status_is_to_be_installed macro.
+       (rc_resolver_context_install_package): Added an is_soft argument.
+       When it is set, the installed package's status is set to
+       RC_PACKAGE_STATUS_TO_BE_INSTALLED_SOFT instead of
+       RC_PACKAGE_STATUS_TO_BE_INSTALLED.  Changed to use the
+       rc_package_status_is_to_be_installed macro.  Removed a totally
+       useless elog message.
+       (rc_resolver_context_upgrade_package): Added an is_soft argument,
+       and changed to use the rc_package_status_is_to_be_installed macro.
+       (rc_resolver_context_uninstall_package): Terminate early if
+       rc_package_status_is_to_be_uninstalled succeeds.  The is probably
+       a pointless optimization, since I think we already filter for this
+       before calling the function... but I added in anyway, mostly for
+       symmetry with the other rc_resolver_context_*_package functions.
+       (rc_resolver_context_package_is_present): Use
+       rc_package_status_is_to_be_installed macro.
+       (install_pkg_cb): Ditto.
+       (upgrade_pkg_cb): Ditto.
+
+       * rc-resolver-context.h: Added
+       RC_PACKAGE_STATUS_TO_BE_INSTALLED_SOFT to RCPackageStatus enum.
+       Added rc_package_status_is_to_be_installed macro.  Added
+       'verifying' flag to RCResolverContext struct.
+
+2002-08-28  Ian Peters  <itp@ximian.com>
+
+       * Makefile.am: add libpopt.so to the shared stubs, as there are
+       undefined popt symbols in librpm.so.
+
+       * rc-package-spec.h: no more inline rc_package_spec_equal, no more
+       rc_package_spec_compare
+
+       * rc-package-spec.c: always define rc_package_spec_equal here.  No
+       more das_global_packman, yay!  No more rc_package_spec_compare,
+       either.
+
+       * rc-package.h, rc-package.c: removed unused functions
+       rc_package_slist_sort_by_spec,
+       rc_package_slist_sort_by_spec_reverse,
+       rc_pakcage_slist_find_duplicates, and
+       rc_packages_slist_remove_older_duplicates
+
+       * rc-package-dep.h, rc-package-dep.c
+       (rc_package_dep_verify_relation): there's no more
+       das_global_packman, pass a packman in instead
+
+       * rc-packman.h, rc-packman.c: no more rc_packman_set_packman or
+       rc_packman_set_packman
+
+       * rc-queue-item.c (install_item_cmp): use
+       rc_packman_version_compare instead of rc_package_spec_compare here
+       (uninstall_item_cmp): and here
+
+       * rc-resolver-queue.c (rc_resolver_queue_split_first_branch): and
+       here
+
+       * rc-world.c: add a global world for rc_get_world
+       (rc_world_register_packman): removed
+       (rc_set_world): added, set the world you get with rc_get_world
+       (rc_world_new): take and setup the packman here, because we don't
+       work very well without one
+       (struct ForeachUpgradeInfo): add a pointer to the world here
+       (foreach_upgrade_cb): use rc_packman_version_compare rather than
+       rc_package_spec_compare
+       (rc_world_foreach_upgrade): set the world
+       (struct BestUpgradeInfo): add a pointer to the world here
+       (get_best_upgrade_cb): use rc_packman_version_compare rather than
+       rc_package_spec_compare
+       (rc_world_get_best_upgrade): set the world
+       (rc_world_get_package_with_constraint):
+       rc_package_dep_verify_relation needs a packman
+       (rc_world_check_providing_package): here too
+       (rc_world_foreach_requiring_package): and here
+       (rc_world_foreach_conflicting_package): and here
+
+       * rc-world.h: remove rc_world_register_packman, add rc_set_world,
+       modify rc_world_new declaration
+
+       * rc-rpmman.c (rc_rpmman_transact): rc_package_dep_verify_relation
+       needs a packman
+       
+2002-08-28  Ian Peters  <itp@ximian.com>
+
+       * rc-debman.c: reinstate the hack in lesser form -- interactive
+       debian packages cause the process to be killed, and an error set.
+
+2002-08-26  Joe Shaw  <joe@ximian.com>
+
+       * rc-util.c (rc_buffer_map_file): Fix a nasty file descriptor leak.
+
+       * rc-world-subscriptions.c
+       (rc_world_import_subscriptions_from_xml): Make the
+       can't-subscribe-to-channel-because-it-wasn't-in-the-XML error a
+       little more clear.
+
+2002-08-23  Joe Shaw  <joe@ximian.com>
+
+       * rc-debman-general.c (rc_debman_parse_version): Make input a
+       const gchar *.
+
+       * rc-packman.c (rc_packman_parse_version): Added.  Calls the
+       backend's parse_version function.
+
+       * rc-packman.h: Added rc_packman_real_parse_version function
+       pointer.
+
+       * rc-debman.c (rc_debman_parse_version_wrapper): Wraps
+       rc_debman_parse_version(), sets has_epoch to TRUE always.
+
+       * rc-rpmman.c (rc_rpmman_parse_version): Call parse_version().
+
+       * rc-world.c (rc_world_sequence_number): Move to after the
+       definition of rc_world_sync() to fix some warnings.
+
+2002-08-22  Joe Shaw  <joe@ximian.com>
+
+       * rc-world.c (rc_world_sequence_number): Call rc_world_sync()
+       before we get our sequence number, so we can flip the changed flag
+       and increment it if the database changed underneath us.
+
+2002-08-22  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-queue-item.c (branch_item_process): An optimization: Instead
+       of processing a 1-item branch into that item, simply execute the
+       item immediately.
+
+2002-08-20  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-queue-item.c (require_item_process): Don't skip exploring the
+       uninstall branch in the case of codependent packages when our
+       requirement comes from a lost package.  This might not be the
+       right thing to do.
+
+       * rc-resolver-context.c (rc_resolver_context_spew): Added. Another
+       debug-spew function that prints out a list of the packages to be
+       installed, removed and upgraded.
+
+       * rc-resolver.c (rc_resolver_resolve_dependencies): Make sure that
+       our dummy local packages channel has a non-zero cid and bid.
+       (rc_resolver_resolve_dependencies): When in extremely_noisy mode,
+       print a final total of the number of queues in each category.
+
+2002-08-19  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-xml.c (rc_channel_to_xml_node): Put the base-id in the XML.
+
+       * rc-world-import.c (rc_world_add_channels_from_xml): Handle the
+       base-id.
+       (rc_world_add_channel_from_buffer): Added an argument for the
+       base-id.
+
+       * rc-world-dump.c (rc_world_undump_from_xml): Get the base-id from
+       the channel XML.
+
+       * rc-world.c (rc_world_add_channel): Added an argument for
+       specifying a base-id.
+       (rc_world_get_channel_by_base_id): Added.
+
+       * rc-resolver-queue.c (rc_resolver_queue_add_extra_dependency): Added.
+
+       * rc-resolver.c (rc_resolver_free): Clean up our extra conflicts.
+       (rc_resolver_add_extra_conflict): Added.
+       (rc_resolver_resolve_dependencies): Specify a fake base-id for our
+       temporary local packages channel.
+       (rc_resolver_resolve_dependencies): Iterate over our extra
+       conflicts, adding them to the queue.
+
+       * rc-resolver-info.c (rc_resolver_info_conflicts_with_new): Handle
+       a NULL conflicts_with.
+       (rc_resolver_info_obsoletes_new): Handle a NULL obsoletes.
+
+       * rc-queue-item.c (conflict_process_cb): Respond gracefully when
+       conflicting_package is NULL.
+       (conflict_item_process): Ditto.
+       (conflict_item_to_string): Ditto.
+       (rc_queue_item_new_conflict): Ditto.
+
+       * rc-channel.c (rc_channel_get_base_id): Added accessor.
+
+       * rc-channel-private.h: Added base_id field to RCChannel struct.
+
+       * rc-resolver.c (rc_resolver_free): Clean up after our deferred
+       branch list.
+       (rc_resolver_resolve_dependencies): Added deferred branching
+       support.  If we exhaust the pending queues without finding a
+       solution, try deferred queues until we find a solution (or run out
+       of deferred queues, of course).
+
+       * rc-resolver-queue.c (rc_resolver_queue_process_once): Added an
+       optimization that makes a pass over our new queue item and throws
+       out any branches that are supersets of other branches.
+       (rc_resolver_queue_split_first_branch): Added deferred branching.
+       This is an optimization where we will try to recognize branches
+       that are less likely to lead to high-scoring solutions; the
+       deferred branches are explored only if we are unable to produce a
+       valid resolution using the favored branches.
+       
+       * rc-queue-item.c (rc_queue_item_cmp): Added.  A comparison
+       function for queue items, so that we can sort them into a
+       canonical ordering.
+       (install_item_cmp): Implements cmp for install items.
+       (rc_queue_item_new_install): Store the cmp function in our vtable.
+       (branch_item_cmp): Implements cmp for branch items.
+       (rc_queue_item_new_branch): Store the cmp function in our vtable.
+       (uninstall_item_cmp): Implements cmp for uninstall items.
+       (rc_queue_item_new_uninstall): Store the cmp function in our
+       vtable.
+       (rc_queue_item_branch_contains): Added.  Checks if one branch item
+       is a proper subset of the other.
+       (rc_queue_item_branch_add_item): Insertion-sort the added branch
+       items instead of just prepending.
+
+       * rc-channel.c (rc_channel_get_path): Added accessor.
+       (rc_channel_get_icon_file): Added accessor.
+
+2002-08-17  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-world.c (rc_world_sequence_number): Added.  If the sequence
+       number increases, that means that the RCWorld has changed.
+       (rc_world_new): Initialize seqno-related variables.
+       (rc_world_add_channel): Set 'changed' flag so that the sequence
+       number will get incremented.
+       (rc_world_remove_channel): Ditto.
+       (rc_world_add_package): Ditto.
+       (rc_world_remove_package): Ditto.
+       (rc_world_remove_packages): Ditto.
+
+2002-08-16  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-xml.c (rc_xml_node_to_package_dep_internal): Wow... the way
+       this code tried to extract the epoch from the dep tag was _really_
+       broken.  Fixed.
+
+       * rc-queue-item.c (require_item_process): When there are no
+       providers for the requirement, cause the resolution attempt to
+       fail if we can't come up with either something to uninstall or an
+       upgrade branch to explore.
+       
+2002-08-15  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-resolver-compare.c (churn_factor): Use the
+       rc_resolver_context_*_count fns instead of directly accessing the
+       struct elements.
+
+       * rc-queue-item.c (install_item_process): Use
+       rc_package_status_is_to_be_uninstalled macro.
+       (require_process_cb): Ditto.
+
+       * rc-resolver-context.c (rc_resolver_context_new_child): No need
+       to copy install_count, etc. to the child context.
+       (rc_resolver_context_set_status): Use
+       rc_package_status_is_to_be_uninstalled macro.
+       (rc_resolver_context_install_package): Use
+       rc_package_status_is_to_be_uninstalled macro.  Don't try to count
+       installs as we go.
+       (rc_resolver_context_upgrade_package): Ditto.
+       (rc_resolver_context_uninstall_package): Ditto.
+       (uninstall_pkg_cb): Use rc_package_status_is_to_be_uninstalled
+       macro.
+       (rc_resolver_context_install_count): Added.
+       (rc_resolver_context_uninstall_count): Added.
+       (rc_resolver_context_upgrade_count): Added.
+       (requirement_possible_cb): Use
+       rc_package_status_is_to_be_uninstalled macro.
+
+       * rc-resolver-context.h: Removed install_count, upgrade_count and
+       uninstall_count from RCResolverContext.  Added
+       rc_package_status_is_to_be_uninstalled macro.
+
+2002-08-14  Ian Peters  <itp@ximian.com>
+
+       * rc-util.h (rc_is_program_in_path): removed
+
+       * rc-util.c (rc_is_program_in_path): removed
+
+       * rc-verification.c (rc_verify_gpg): use g_find_program_in_path
+       instead of rc_is_program_in_path
+
+2002-08-14  Ian Peters  <itp@ximian.com>
+
+       * rc-world.c (rc_package_and_dep_new_package): removed
+       (rc_world_add_package): every package doesn't implicitly provide
+       itself, it explicitly provides itself, which means we don't have
+       to do this.
+
+2002-08-14  Ian Peters  <itp@ximian.com>
+
+       * rc-debman.c (rc_debman_class_init): remove some very old
+       commented out code
+       (rc_debman_init): remove RC_PACKMAN_CAP_VIRTUAL_CONFLICTS from our
+       capabilities list, since it doesn't exist anymore
+
+       * rc-packman.h: remove RC_PACKMAN_CAP_VIRTUAL_CONFLICTS
+
+       * rc-resolver-context.h (struct _RCResolverContext): get rid of
+       the allow_conflicts_with_virtual_provides field
+
+       * rc-resolver-context.c (rc_resolver_context_new_child): no more
+       allow_conflicts_with_virtual_provides
+
+       * rc-resolver.h (struct _RCResolver): bye bye
+       allow_conflicts_with_virtual_provides
+       (rc_resolver_allow_virtual_conflicts): removed
+
+       * rc-resolver.c (rc_resolver_new): adios
+       allow_conflicts_with_virtual_provides
+       (rc_resolver_allow_virtual_conflicts): removed
+       (rc_resolver_resolve_dependencies): l8r
+       allow_conflicts_with_virtual_provides
+
+       * rc-queue-item.c (conflict_process_cb): altered the virtual
+       provide / conflict logic to match what we now believe is the
+       actual rpm behavior.  Conflicts apply to any provide, regardless
+       of whether it's "virtual" or not.  An obsolete only applies to the
+       package itself, not just a provide -- so check to make sure that a
+       provide spec matches the package spec that provides it before we
+       process the "obsolete" conflict.
+
+       * rc-package-spec.h: no more RCWorld needed, get rid of the
+       RCPackageSpecType enum
+       (struct _RCPackageSpec): no more type field
+       (rc_package_spec_get_type): removed
+
+       * rc-package-spec.c (rc_package_spec_init): no more type field
+       (rc_package_spec_copy): no more type field
+       (struct SpecTypeInfo): removed
+       (spec_type_cb): removed
+       (rc_package_spec_get_type): removed
+
+       * rc-world.c (rc_package_and_dep_new_package): no more type field
+       in RCPackageSpecs
+
+2002-08-10  Ian Peters  <itp@ximian.com>
+
+       * rc-util.h: if HAVE_MKDTEMP is defined, then rc_mkdtemp is just
+       mkdtemp, otherwise we need to declare our own.
+
+       * rc-util.c (rc_mkdtemp): our very own implementation of mkdtemp,
+       since we need to build on platforms that don't offer this function
+
+       * rc-rpmman.c (write_objects): call rc_mkdtemp, not mkdtemp
+
+2002-08-09  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (split_rpm): change the way we handle errors in this
+       function to plug a few small potential memory and fd leaks
+
+2002-08-09  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (open_database): fix a small memory leak and a
+       leaked file descriptor on failed database opens
+
+2002-08-09  Ian Peters  <itp@ximian.com>
+
+       * rc-package-spec.h (struct _RCPackageSpec): removed the name
+       field in favor of the nameq, a GQuark.  Note to the reader: every
+       place in this entry that I say GQuark fixup, I mean: did the right
+       thing, whether that means directly comparing two GQuarks for
+       equality, g_quark_[to|from|try]_string, etc
+       (rc_package_spec_equal): no need for a strcmp, just compare the
+       two quarks
+
+       * rc-package-spec.c (rc_package_spec_init): really obvious name ->
+       nameq changes, I'm not going to enumerate them
+
+       * rc-package-dep.c: Our global_deps table is now keyed on the name
+       quark, not the name, so some of the hash table logic in _unref,
+       _new, and _new_from_spec is dramatically simpler, since we don't
+       have allocated keys.
+       (rc_package_dep_verify_relation): GQuark fixup
+
+       * rc-dep-or.h (rc_dep_string_to_or_dep_slist): take a const gchar
+       *, not gchar *
+
+       * rc-dep-or.c (rc_dep_or_dep_slist_to_string): GQuark fixup
+
+       * rc-package.c (rc_package_slist_sort_by_name): GQuark fixup
+       (rc_package_slist_find_duplicates): GQuark fixup
+
+       * rc-packman.c (rc_packman_transact): GQuark fixup
+       (rc_packman_generic_version_compare): GQuark fixup
+
+       * rc-rpmman.c (rc_package_to_rpm_name): GQuark fixup
+       (rc_rpmman_transact): GQuark fixup
+       (rc_rpmman_read_header): GQuark fixup
+       (rc_rpmman_depends_fill): GQuark fixup
+       (rc_rpmman_version_compare): GQuark fixup
+
+       * rc-debman.c (hash_destroy_pair): the key is a GQuark
+       (hash_destroy): my hash should be NULL, NULL now
+       (package_accept): GQuark fixup
+       (query_all_read_line_cb): GQuark fixup
+       (rc_debman_query_all_real): GQuark fixup
+       (rc_debman_query): GQuark fixup
+       (rc_debman_init): my hash is NULL, NULL now
+
+       * rc-queue-item.c (codependent_packages): GQuark fixup
+
+       * rc-resolver-context.c (uninstall_pkg_cb): GQuark fixup.  Also,
+       my hash is keyed on GQuarks now.
+       (rc_resolver_context_foreach_uninstall): make my hash NULL, NULL
+       now to be keyed on GQuarks
+       (dup_name_check_cb): GQuark fixup
+
+       * rc-resolver-info.c (rc_resolver_info_packages_to_string): GQuark
+       fixup
+       (rc_resolver_info_mentions): GQuark fixup
+
+       * rc-world-info.c (add_package_to_world): key is a GQuark
+       (rc_world_add_packages_from_xml): my little
+       temporary hash table is keyed on GQuarks now, etc
+       (debian_packages_helper): GQuark fixup
+
+       * rc-world.c (struct _SListAnchor): key is a GQuark
+       (hashed_slist_new): my hash table is direct, not str
+       (hashed_slist_add): key is a GQuark, GINT_TO_POINTER wrap the
+       quark when playing with the hash
+       (hashed_slist_get): key is a GQuark, GINT_TO_POINTER wrap the
+       quark...
+       (hashed_slist_foreach_cb): GINT_TO_POINTER
+       (foreach_remove_func): don't free the key, it's not allocated
+       anymore
+       (rc_world_add_package): hashed_slist_add gets a GQuark
+       (rc_world_find_installed_version): hashed_slist_get needs a GQuark
+       (rc_world_get_package): hashed_slist_get needs a GQuark
+       (rc_world_guess_package_channel): hashed_slist_get needs a GQuark
+       (rc_world_foreach_package_by_name): hashed_slist_get needs a
+       GQuark
+       (rc_world_foreach_upgrade): GQuark fixup
+       (rc_world_foreach_providing_package): GQuark fixup,
+       hashed_slist_get needs a GQuark
+       (rc_world_check_providing_package): GQuark fixup, hashed_slist_get
+       needs a GQuark
+       (rc_world_foreach_requiring_package): hashed_slist_get needs a
+       GQuark
+       (rc_world_foreach_conflicting_package): hashed_slist_get needs a
+       GQuark
+
+       * rc-xml.c (struct _RCPackageSAXContext): our hash table is by
+       GQuark
+       (parser_history_start): GQuark fixup
+       (parser_package_end): GQuark fixup, hash table changes
+       (package_slist_build): key is a GQuark
+       (rc_package_sax_context_new): hash table is NULL, NULL
+       (rc_xml_node_to_package): GQuark fixup
+       (rc_xml_node_to_package_update): GQuark fixup
+       (rc_package_to_xml_node): GQuark fixup
+       (rc_package_dep_to_xml_node): GQuark fixup
+
+2002-08-09  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-resolver-context.c (rc_resolver_context_upgrade_package):
+       Added an extra argument for the to-be-upgraded RCPackage.  If that
+       package's status is TO_BE_UNINSTALLED, decrement the
+       uninstall_count to keep the accounting straight: the removal will
+       be accounted for when we increment upgrade_count.
+
+       * rc-queue-item.c (install_item_process): Pass the to-be-upgraded
+       package into rc_resolver_context_upgrade_package.
+
+2002-08-08  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-resolver-context.c (spew_cb): Changed to use
+       rc_resolver_info_to_string instead of the _to_str version.
+       
+       * rc-resolver-info.c (rc_resolver_info_type_to_string): Renamed
+       from _to_str.
+       (rc_resolver_info_type_from_string): Renamed from _from_str.
+       (rc_resolver_info_to_string): Renamed from _to_str.  Changed to
+       call _to_string version of other functions.
+
+2002-08-08  Ian Peters  <itp@ximian.com>
+
+       * distributions.xml: fix a typo in the version of TurboLinux 7.0
+
+       * rc-package-dep.c, rc-package-dep.h: massively cleaned up and
+       refactored.  RCPackageDep is now an opaque struct, for the most
+       part... modulo the opening exposed by the RCPackageSpec.
+       Functions are cleaned up, dead code removed, and lots of the stuff
+       from last night has been commented.
+
+       * rc-debman.c (query_all_read_line_cb): whoops, don't post-munge
+       the pre bit of the RCPackageDeps in the pre-depends: section,
+       we've already taken care of it
+
+       * rc-dep-or.c (rc_dep_or_dep_slist_to_string): opaque
+       RCPackageDeps
+       (rc_dep_string_to_or_dep_slist): ditto
+
+       * rc-queue-item.c (dep_slist_to_string): opaque RCPackageDeps
+       (require_item_process): ditto
+       (require_item_to_string): ditto
+       (conflict_item_process) ditto
+       (conflict_item_to_string): ditto
+       (uninstall_item_process): ditto
+
+       * rc-resolver.c (rc_resolver_add_extra_dependency):
+       rc_package_dep_copy is just an rc_package_dep_ref
+
+       * rc-world.c (rc_package_and_dep_new_package): opaque
+       RCPackageDeps
+       (rc_world_add_package): ditto
+       (rc_world_foreach_providing_package): ditto
+       (rc_world_check_providing_package): ditto
+       (rc_world_foreach_requiring_package): ditto
+       (rc_world_foreach_conflicting_package): ditto
+       (foreach_provides_by_name_cb): ditto
+       (foreach_requires_by_name_cb): ditto
+       (foreach_conflicts_by_name_cb): ditto
+
+       * rc-xml.c (parse_dep_attrs): opaque RCPackageDeps
+       (parser_package_end): ditto
+       (rc_xml_node_to_package): ditto
+       (rc_xml_node_to_package_dep_internal): ditto
+       (rc_package_dep_to_xml_node): ditto
+
+2002-08-08  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-resolver-info.c (rc_resolver_info_type_to_str): Added.
+       (rc_resolver_info_type_from_str): Added.
+
+2002-08-08  Ian Peters  <itp@ximian.com>
+
+       * rc-debman.c (query_all_read_line_cb): add the extra parameter to
+       all of the rc_debman_fill_depends calls
+
+2002-08-08  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-package-dep.h: By making the refs field in RCPackageDep a
+       20-bit int and shrinking relation to 8 bits, we can save 4 bytes
+       per object.  Not a huge savings, but it doesn't hurt.
+
+       * rc-xml.c (parser_package_start): Got rid of some unnecessary mem
+       allocs and string copies.
+       (parse_dep_attrs): Got rid of some unnecessary mem allocs and
+       string copies.
+       (parser_package_end): Got rid of some unnecessary mem allocs and
+       string copies.
+       (parser_update_end): Got rid of some unnecessary mem allocs and
+       string copies.  
+       In all, these changes reduce the number of memallocs done by
+       rcd on startup on a RH73 system by about 15%.
+
+2002-08-07  Ian Peters  <itp@ximian.com>
+
+       * rc-package-dep.c, rc-package-dep.h: RCPackageDep is now a ref
+       counted structure.  It really should be an opaque struct, too, but
+       that'll come.  rc_package_dep_new now tries to return a pointer to
+       an existing RCPackageDep struct rather than creating a new one.
+       (struct _RCPackageDepArray): data now has to be an array of
+       RCPackageDep *
+       (struct _RCPackageDep): add a ref count
+       (rc_package_dep_ref): added
+       (rc_package_dep_unref): added
+       (rc_package_dep_new): now takes a pre and is_or parameter
+       (rc_package_dep_new_from_spec): ditto
+       (rc_package_dep_free): removed
+       (rc_package_dep_slist_remove_duplicates): removed
+       (rc_package_dep_array_from_slist): updated to new
+       RCPackageDepArray
+       (rc_package_dep_array_free): ditto
+       (rc_package_dep_array_copy): ditto
+
+       * rc-debman-general.c, rc-debman-general.h
+       (rc_debman_fill_depends): take a pre parameter, pass it along to
+       rc_package_dep_new
+
+       * rc-debman.c (query_all_read_line_cb): add FALSE, FALSE to
+       rc_package_dep_new when we self-provide
+       (rc_debman_query_all): ditto
+
+       * rc-dep-or.c: this file really needs some loving and rewriting.
+       yikes.
+       (rc_dep_or_new_provide): add FALSE, TRUE to rc_package_dep_new
+       (rc_dep_string_to_or_dep_slist): we can't assemble the dep bit by
+       bit; accumulate the elements and create the RCPackageDep at the
+       end
+
+       * rc-queue-item.c (install_item_process): change the way we
+       iterate over RCPackageDepArrays, again.  Add FALSE, FALSE to the
+       end of rc_package_dep_new_from_spec.
+       s/rc_package_dep_free/rc_package_dep_unref.
+
+       * rc-resolver-context.c (rc_resolver_context_package_is_possible):
+       change the way we iterate over RCPackageDepArrays
+
+       * rc-resolver-queue.c (rc_resolver_queue_add_package_to_verify):
+       change the way we ... etc
+
+       * rc-rpmman.c (rc_rpmman_transact): change the ... blah blah.  add
+       FALSE, FALSE to the end of rc_package_dep_new, and of course,
+       _unref instead of _free.
+       (depends_fill_helper): FALSE, FALSE to rc_package_dep_new in a few
+       places
+       (rc_rpmman_depends_fill): FALSE, FALSE yadda yadda
+
+       * rc-world-import.c (debian_packages_helper): add FALSE to every
+       call to rc_debman_fill_depends except for our pre-requires, which
+       get TRUE.  Also, for our self-provide, add FALSE, FALSE to
+       _dep_new_from_spec.
+
+       * rc-world.c (struct _RCPackageAndDep): kill the own_dep field
+       (rc_package_and_dep_new_package): add FALSE, FALSE to
+       _dep_new_from_spec, remove the own_dep
+       (rc_package_and_dep_new_pair): remove the own_dep stuff, and ref
+       the dep we're passed
+       (rc_package_and_dep_free): always unref our dep, no own_dep
+       (rc_world_add_package): change the way we iterate over
+       RCPackageDepArrays
+       (rc_world_get_package_with_constraint): add FALSE, FALSE to
+       rc_package_dep_new_from_spec, and unref, don't free, the dep when
+       we're done
+
+       * rc-xml.c (dep_attrs): we're no longer given a dep to fill out,
+       but a dep pointer that we're to allocate and return.  We have to
+       create it at the end, so we accumulate all of the members and
+       create it at the end.
+       (parser_dep_start): don't create our own dep, get one from
+       dep_attrs
+       (rc_xml_node_to_package): change the way we iterate over
+       RCPackageDepArrays
+       (rc_xml_node_to_package_dep_internal): don't create a dep and then
+       fill it out, accumulate the members we need and then create it
+       (rc_package_to_xml_node): change the way we iterate over
+       RCPackageDepArrays
+
+2002-08-07  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-world-dump.c: s/xmlGetProp/xml_get_prop/.
+
+       * rc-world-subscriptions.c
+       (rc_world_import_subscriptions_from_xml):
+       s/xmlGetProp/xml_get_prop/.
+
+       * rc-world-dump.c (rc_world_undump_from_xml): Fixed memory leak.
+
+       * rc-resolver.c (rc_resolver_resolve_dependencies): At the
+       beginning of the resolution, create a temporary channel for the
+       local packages that we are installing.  This allows the RCWorld to
+       see the local packages, and we can take their provides into
+       account when resolving.  When the resolution is finished, 
+       we destroy the channel.
+       
+2002-08-07  Joe Shaw  <joe@ximian.com>
+
+       * rc-distro.c (sax_end_element): If RC_DISTRO_TARGET is set, use
+       it instead of whatever it should be.  It ain't pretty, but it
+       works.
+
+2002-08-07  Ian Peters  <itp@ximian.com>
+
+       * rc-verification.c (rc_verify_gpg): refactored to use g_spawn
+       instead of handling it myself.  Other miscellaneous cleanups, too.
+
+2002-08-07  Ian Peters  <itp@ximian.com>
+
+       * rc-distro.c (child_setup_func): added, dup2 stderr to stdout.
+       (distro_check_command_eval): use g_spawn_async_with_pipes instead
+       or pipe/fork/exec ourselves
+
+2002-08-06  Ian Peters  <itp@ximian.com>
+
+       * Makefile.am: libredcarpet, not 2.0
+
+2002-08-06  Ian Peters  <itp@ximian.com>
+
+       * rc-package-dep.c (rc_package_dep_array_from_slist): just because
+       we don't have to rc_package_dep_free the dep doesn't mean we don't
+       have to g_free it
+
+2002-08-06  Joe Shaw  <joe@ximian.com>
+
+       * rc-verification.c: Declare keyring static.
+
+2002-08-06  Ian Peters  <itp@ximian.com>
+
+       * Makefile.am: kill the private namespace stuff, build the shared
+       objects into header files, and all the automake crap to handle
+       conditionally built sources
+
+       * packer.pl: handle disallowed characters in the array name
+
+       * rc-debman-private.h: include a helper_object name in the
+       RCDebmanPrivate struct
+
+       * rc-debman.c: include dpkg-helper.h, write out the object file on
+       _init, clean it up on _finalize, use it when we fork
+
+       * rc-packman.h, rc-packman.c: remove the rc_libdir stuff
+
+       * rc-rpmman.c: include rpm-stubs.h, write out the object files on
+       _init, clean them up when we're done dlopening some
+
+       * rc-verification.c: if keyring is NULL, just return UNDEF out of
+       rc_verify_gpg
+
+2002-08-06  Joe Shaw  <joe@ximian.com>
+
+       * rc-xml.c (sax_warning): Always print out SAX warnings.
+       (sax_error): Always print out SAX errors.
+       (sax_handler): Call sax_error() for error and fatalError
+       conditions.
+
+2002-08-05  Joe Shaw  <joe@ximian.com>
+
+       * rc-resolver-info.c (rc_resolver_info_merge): Need to ref the
+       package when we're merging infos, as well.
+
+2002-08-05  Ian Peters  <itp@ximian.com>
+
+       * rc-queue-item.c (require_item_process): if you never increment
+       the iterator, the loop never exits
+
+2002-08-05  Ian Peters  <itp@ximian.com>
+
+       * rc-package-dep.c (rc_package_dep_array_from_slist): don't
+       _dep_copy and _dep_free, just memcpy the dep, since we were just
+       going to free it anyway
+
+2002-08-05  Ian Peters  <itp@ximian.com>
+
+       * rc-package-dep.h, rc-package-dep.c: added an RCPackageDepArray
+       type, and rc_package_dep_array_from_slist,
+       rc_package_dep_array_free, rc_package_dep_array_copy methods.
+       Storing deps as arrays rather than lists should save a good chunk
+       of memory.  Note that _from_slist takes an RCPackageDepSList **,
+       and uses the RCPackageDep *'s directly, g_slist_frees the list,
+       and sets it to NULL.
+
+       * rc-package.h (struct _RCPackage): no more RCPackageDepSLists
+       here; long live the RCPackageDepArray
+
+       * rc-package.c (rc_package_copy):
+       s/rc_package_dep_slist_copy/rc_package_dep_array_copy
+       (rc_package_free):
+       s/rc_package_dep_slist_free/rc_package_dep_array_free
+
+       * rc-debman.c (struct DebmanQueryInfo): include buffers to
+       assemble temporary RCPackageDepSLists
+       (query_all_read_line_cb): add deps to these temporary lists, not
+       to the package itself.
+       (rc_debman_query_all_real): convert the temporary dep lists to
+       arrays inside the package
+       (rc_debman_query_file): ditto
+
+       * rc-debug-misc.c (rc_package_dump): #if 0'd it out, nothing uses
+       it now and i didn't want to fix it for dep arrays.  I'll go on a
+       dead code hunting spree soon.
+
+       * rc-rpmman.c (rc_rpmman_transact): change the way we iterate over
+       the obsoletes, since they're now an array
+       (rc_rpmman_depends_fill): assemble all of the deps in local lists,
+       instead of the package, and then convert them into arrays in the
+       package at the end.
+
+       * rc-queue-item.c (install_item_process): change the way we
+       iterate over deps, they're now arrays
+       (uninstall_item_process): ditto
+
+       * rc-resolver-context.c (rc_resolver_context_package_is_possible):
+       more dependency iteration changes
+
+       * rc-resolver-queue.c (rc_resolver_queue_add_package_to_verify):
+       see a pattern here?
+
+       * rc-world-import.c (debian_packages_helper): assemble
+       dependencies in local lists, convert them all to arrays inside the
+       package at the end.
+
+       * rc-world.c (rc_world_add_package): more dependency iteration
+       changes
+
+       * rc-xml.c (struct _RCPackageSAXContext): add all 6 dependency
+       lists
+       (parser_toplevel_start): set all 6 lists to NULL
+       (parser_package_start): add deps to the context lists, not the
+       context package
+       (parser_dep_start): ditto
+       (parser_package_end): iterate over the provides list in the
+       context.  convert the context lists to arrays in the context
+       package
+       (struct DepTable): added, for the DOM parser.  Has 6
+       RCPackageDepSLists.
+       (extract_dep_info): takes a DepTable, not an RCPackage, and
+       assembles the dep lists in the dep_table.
+       (rc_xml_node_to_package): fill in the deps into a DepTable.
+       convert those lists into arrays inside the package at the end.
+       when looking for our version, walk the provides array.
+       (rc_package_to_xml_node): change the way we iterate all of the
+       deps, since they're arrays now.
+
+2002-08-05  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_transact): joe was right a few days ago,
+       real_remove_packages doesn't need to be a deep copy or free
+
+2002-08-05  Ian Peters  <itp@ximian.com>
+
+       * Makefile.am: get rid of the rc-marshal.[ch] stamp stuff, and add
+       them to libredcarpettmp_a_SOURCES
+
+2002-08-05  Joe Shaw  <joe@ximian.com>
+
+       * rc-package.c (rc_package_is_installed): If local_package is set,
+       always return FALSE.
+
+       * rc-package.h: Add a local_package bit
+
+       * rc-packman.c (rc_packman_query_file): Set the local_package bit.
+
+       * rc-resolver-context.c (rc_resolver_context_install_package,
+       rc_resolver_context_upgrade_package): If the local_package bit is
+       set, set the priority to 0.
+
+       * rc-resolver-info.c: Ref and unref RCPackages throughout.
+
+2002-08-04  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-world-dump.c (rc_world_undump_from_xml): Extract the
+       priorities from the XML and put them in our channel.
+
+       * rc-xml.c (rc_channel_to_xml_node): Store priorities in the XML.
+
+2002-08-03  Ian Peters  <itp@ximian.com>
+
+       * Makefile.am: list distributions-xml.h in
+       libredcarpettmp_a_SOURCES, as well as BUILT_SOURCES
+
+2002-08-03  Ian Peters  <itp@ximian.com>
+
+       * distributions.xml: added.  XML file describing every
+       distribution we recognize, and whether it's supported or not.
+
+       * packer.pl: added.  perl script to generate a C character array
+       from a file.
+
+       * Makefile.am: add distributions-xml.h to BUILT_SOURCES, packer.pl
+       to EXTRA_DIST, build distributions-xml.h out of distributions.xml
+       using packer.pl, and add distributions-xml.h to clean-local.
+
+       * .cvsignore: added distributions-xml.h
+
+       * rc-distro.[ch]: added.  Now parses distribution information out
+       of a supplied XML file -- or, if no XML file is supplied, uses a
+       gzipped backup copy as a fallback (the distribution-xml.h stuff
+       from above).  distributions.xml in CVS should be kept up to date,
+       and is used for things like the tools, etc, that have no need to
+       download their own copies, but long term, the client and daemon
+       should be downloading copies of these files.  Also has a new,
+       simpler public interface.
+
+       * rc-distman.c (rc_distman_new): no rc_figure_distro anymore,
+       simply use rc_distro_get_package_type directly
+
+       * rc-world-import.c (rc_world_add_channels_from_xml): no
+       rc_figure_distro, simply use rc_distro_get_target instead
+
+2002-08-02  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-resolver-queue.c (rc_resolver_queue_process_once): Fixed
+       memory leak.
+
+       * rc-world-dump.c (rc_world_undump_from_xml): Fixed memory leak.
+
+2002-08-01  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman.c (close_database): Reset the lock_fd to 0 after
+       closing it, so we don't go around closing other file descriptors
+       all willy nilly.
+
+2002-08-01  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_query_file): only open the database if
+       it's not already open, yo.
+
+2002-08-01  Joe Shaw  <joe@ximian.com>
+
+       * rc-world-subscriptions.c
+       (rc_world_import_subscriptions_from_xml): Keep around a list of
+       subscriptions which do not match any valid channel for this
+       session.
+       (rc_world_export_subscriptions_to_xml): Write out the unmatched
+       subscriptions, so we don't lose them anymore.
+
+2002-08-01  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_query_file): open the database read-only
+       before attempting to query the file.  This shouldn't be at all
+       necessary, but it fixes the rather bizarre hang some people were
+       getting, due to an unitialized variable in rpmlib.
+
+2002-08-01  Ian Peters  <itp@ximian.com>
+
+       * rc-world.h: rc_world_get_best_upgrade now takes a
+       subscribed_only flag to control what channels to look in
+
+       * rc-world.c (struct BestUpgradeInfo): added
+       (get_best_upgrade_cb): user_data is not a BestUpgradeInfo, of
+       which best_upgrade is an element.  Check the subscribed_only flag
+       in the info struct to filter upgrades from unsubscribed channels.
+       (rc_world_get_best_upgrade): create a BestUpgradeInfo struct,
+       initialize it with the subscribed_only flag, and pass it to the
+       cb, rather than just the best_upgrade.
+
+       * rc-package.h: rc_package_get_best_upgrade now takes a
+       subscribed_only flag
+
+       * rc-package.c: pass the subscribed_only flag to
+       rc_world_get_best_upgrade
+
+2002-07-31  Ian Peters  <itp@ximian.com>
+
+       * rc-arch.c, rc-arch.h: added
+
+       * Makefile.am: rc-arch.[ch] added as part of the build
+
+       * rc-distro.h, rc-distro.c: remove the old arch stuff, use the new
+       arch stuff, remove the NO_GLIB stuff
+
+       * rc-package.h, rc-package.c: RCPackage now has an arch field that
+       must be initialized and copied appropriately
+
+       * rc-rpmman.c (rc_rpmman_read_header): check RPMTAG_ARCH and set
+       it in the package
+
+       * rc-xml.c (RCPackageSAXContext): keep the packages in a hash
+       instead of a list, and keep the arch compat list here
+       (parser_package_end): make sure the parsed package has an arch --
+       if one was missing in the xml, set it (as a hack) to the system
+       arch.  make sure the package is compatible with the system before
+       adding it to the hash.  if that package is already present in the
+       hash, make sure ours is a better arch before adding it to the
+       hash, and removing the other.  parse an arch field out of the
+       package, if present.
+       (package_slist_build): added.  builds an slist as a hash cb func.
+       (rc_package_sax_context_done): convert the ctx hash into a list,
+       destroy the hash, return the list.  also free the arch compat list
+       here.
+       (rc_package_sax_context_new): create the package hash and the arch
+       compat list here
+       (rc_xml_node_to_package): parse an arch field, if present.  fake
+       one if necessary, as above
+       (rc_package_to_xml_node): add the arch field to the xmlNode
+
+       * rc-world-import.c (add_package_to_world): added.  hash cb func.
+       (rc_world_add_packages_to_xml): rather than just adding packages
+       one by one to the world, create a hash, just like in the SAX
+       parser, with the same logic to pick the best package/arch pair.
+
+2002-07-31  Joe Shaw  <joe@ximian.com>
+
+       * rc-xml.c: Don't output the SAX parser spew normally.  Only do it
+       if the RC_SPEW_XML env var is set.
+
+2002-07-31  Joe Shaw  <joe@ximian.com>
+
+       * rc-xml.c (parser_package_start): Add a comment about the deps
+       tag being ignored in the SAX parser.
+       (extract_dep_info): Extract parsing of the various dependency
+       fields, like requires, provides, etc. into here.
+       (rc_xml_node_to_package): If we get a deps tag, call
+       extract_dep_info() on our children, and set a flag.  If the flag
+       isn't set, extract our deps like we used to.
+
+2002-07-30  Ian Peters  <itp@ximian.com>
+
+       * rc-channel.c, rc-debman-general.c, rc-line-buf.c,
+       rc-verification.c: get rid of some RC_[ENTRY/EXIT]
+
+       * rc-xml.c (sanitize_string): s/gint/guint to make this comparison
+       meaningful
+
+       * rc-world-dump.c (rc_world_dump_to_xml): get rid of unused info
+       variable
+
+       * rc-debug.h, rc-debug.c: overhauled a little more.  If
+       RC_DEBUG_VERBOSE is defined, all rc_debug calls will also print
+       file, function, and line information
+
+2002-07-30  Ian Peters  <itp@ximian.com>
+
+       * rc-packman.c, rc-packman.h, rc-rpmman.c, rc-debman.c:
+       s/_check_database/_is_database_changed, because it was bugging me
+       just that much
+
+       * rc-world.c (struct _RCWorld): remove the did_sync_with_this_lock
+       field
+       (rc_world_sync): changed the logic around quite a bit to only sync
+       at appropriate times; keep the world dirty if
+       rc_world_get_system_packages fails
+       (database_unlocked_cb): removed
+       (rc_world_register_packman): removed reference to
+       database_unlocked_cb
+       (rc_world_get_system_packages): rather than retrying a failed
+       query, return a gboolean to indicate status of the query
+
+       * rc-world.h: change prototype for rc_world_get_system_packages
+
+2002-07-30  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_verify): Initialize signature_filename
+       and payload_filename to NULL.
+
+2002-07-30  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (close_database): s/close/rc_close
+       (open_database): try to get a shared lock on the rpm database
+       prior to opening it, to avoid the rpm database locking bug
+       discovered yesterday
+
+2002-07-30  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-resolver-context.c
+       (rc_resolver_context_propagate_importance): #ifdef-ed away.
+       (mark_important_info): Added.  A new implementation of importance
+       propagation, with somewhat simpler rules.  This should do a better
+       job of picking out which info items actually matter.
+       (rc_resolver_context_foreach_info): Call mark_important_info on
+       our list.
+
+       * rc-resolver-info.c (rc_resolver_info_is_about): Added.  A
+       convenience method for testing if an info item is about a
+       particular package.
+
+       * rc-world-dump.c (rc_world_dump_to_xml): Added an argument
+       allowing extra XML to be passed in and prepended to the world
+       dump.
+       (rc_world_dump): Ditto.
+
+2002-07-30  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (depends_fill_helper): plug a small memory leak
+       (thanks, valgrind!)
+
+2002-07-29  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-xml.c (rc_package_to_xml_node): Strip 8-bit characters out of
+       the package summary and description that we put into the XML.
+       This is a brute-force solution to make sure we don't end up with
+       something that libxml2 will reject due to invalid UTF-8.
+
+2002-07-27  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-xml.c (rc_xml_node_to_package): Support the epoch, version
+       and release tags outside of the history section.  We need to do
+       this to ensure that system packages are properly versioned.
+       (rc_package_to_xml_node): Produce XML that rc_xml_node_to_package
+       can process.  This fixes bugs with dump/undump.
+
+2002-07-27  Ian Peters  <itp@ximian.com>
+
+       * rc-packman.c (rc_packman_real_check_database): g_assert the
+       right function, d'oh
+
+2002-07-26  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-world-dump.c (add_channel_packages_cb): Removed
+       debug spew.
+
+       * rc-world.c (rc_world_sync): Added.  Basically just rescans the
+       package db for the system packages, but contains some extra logic
+       to avoid checking/scanning the database more than is absolutely
+       necessary.
+       (rc_world_conditional_sync): Conditions an rc_world_sync on a
+       channel.  If we are performing a query that is filtered on a
+       channel or channels rather than the system packages, there is no
+       need to sync at that point -- it won't change the results of the
+       actual query.
+       (database_changed_cb): Just call rc_world_sync.
+       (rc_world_register_packman): Listen for the "database_unlocked"
+       signal, use it to reset the "did_sync_with_this_lock" flag that
+       allows us to avoid syncs in some cases.
+       (rc_world_find_installed_version): Added a sync.
+       (rc_world_get_package): Added a conditional sync.
+       (rc_world_get_package_with_constraint): Added a comment explaining
+       why we don't need to sync here.
+       (rc_world_guess_package_channel): Added a comment explaining why
+       we don't need to sync here.
+       (rc_world_foreach_package): Added a conditional sync.
+       (rc_world_foreach_package_by_name): Added a conditional sync.
+       (rc_world_foreach_upgrade): Added a conditional sync.
+       (rc_world_get_best_upgrade): Added a comment explaining why we
+       don't need to sync here.
+       (rc_world_foreach_system_upgrade): Added a comment explaining why
+       we don't need to sync here.
+       (rc_world_foreach_providing_package): Added a conditional sync.
+       (rc_world_check_providing_package): Added a conditional sync.
+       (rc_world_foreach_requiring_package): Added a conditional sync.
+       (rc_world_foreach_conflicting_package): Added a conditional sync.
+       (rc_world_spew): Added a sync.
+
+       * rc-rpmman.c (rc_rpmman_class_init): Actually initialize
+       rc_packman_real_check_database.
+       
+       * rc-packman.c: Added DATABASE_LOCKED and DATABASE_UNLOCKED to the
+       signals enum.
+       (rc_packman_class_init): Define the "database_locked" and
+       "database_unlocked" signals.
+       (rc_packman_init): Initialize the lock_count to 0.
+       (rc_packman_is_locked): Added.
+       (rc_packman_lock): Tweaked to allow lock to be called multiple
+       times, with successive calls only incrementing the lock count (and
+       always succeeding).  Emit "database_locked" on the first call to
+       rc_packman_lock.
+       (rc_packman_unlock): Allow unlock to be called multiple times, and
+       do nothing if the db isn't actually locked.  On the final call
+       to rc_packman_unlock that actually unlocks the db, emit the
+       "database_unlocked" signal.
+
+       * rc-packman-private.h: Added a lock_count field to the
+       RCPackmanPrivate struct.
+
+2002-07-26  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (open_database): turns out rpm database locking is
+       broken; to make sure things work correctly, after opening the
+       database in O_RDWR, we need to use fcntl to lock the database by
+       hand.  Fun.
+       (close_database): close the db fd to release the lock
+
+       * rc-rpmman.h: add a lock_fd to the Rpmman struct
+
+2002-07-26  Joe Shaw  <joe@ximian.com>
+
+       * rc-debman.c (verify_status): Make sure we unlock the database in
+       the successful case as well.
+
+2002-07-26  Ian Peters  <itp@ximian.com>
+
+       * rc-packman.c, rc-packman.h (rc_packman_check_database): added
+
+       * rc-rpmman.c: expose check_database for manual checking, keep the
+       timeout with signal emmission as well
+
+       * rc-debman.c: ditto
+
+2002-07-26  Joe Shaw  <joe@ximian.com>
+
+       * rc-world.c (rc_world_register_packman): Connect to the packman's
+       database_changed signal.
+       (database_changed_cb): Added.  Rescans the system packages.
+
+2002-07-26  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c, rc-debman.c (check_database): pass a bool to
+       determine whether to emit the database_changed signal at all.
+       This is always set to FALSE except in the timeout function
+
+2002-07-26  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (open_database): rescan the db mtime before
+       reenabling the db watch timeout
+
+       * rc-debman.c (lock_database): ditto
+
+2002-07-26  Ian Peters  <itp@ximian.com>
+
+       * rc-packman.c, rc-packman.h: Add _lock and _unlock methods.  Add
+       a database_changed signal.
+
+       * rc-rpmman.c, rc-rpmman.h: Remove the global lock, make each
+       function specifically ask for the minimum lock it requires.  Add
+       _lock and _unlock methods.  Add a timeout to watch for database
+       changes and emit database_changed when it does.
+
+       * rc-debman.c, rc-debman-private.h: pretty much same as above, but
+       I'm less confident about this code.  It's not really my fault,
+       though, because the locking in debian really sucks.  So, let's
+       call it alpha quality.  *shrug*
+
+2002-07-25  Ian Peters  <itp@ximian.com>
+
+       * rc-package.c (rc_package_slist_copy): actually copy.  duh.
+
+2002-07-25  Joe Shaw  <joe@ximian.com>
+
+       * rc-xml.c (RCPackageSAXContext): Add an obsoletes list.
+       (parser_package_start): If the tag is named "conflicts", check to
+       see if there is an obsoletes attribute and set the dep list to be
+       the temporary obsoletes list.  This handles the
+       <conflicts obsoletes="1">...</conflicts> case.
+       (parse_dep_attrs): Change to return a gboolean on whether or not
+       the dep is actually an obsolete.  This handles the
+       <conflicts><dep blah blah obsoletes="1"/></conflits> case.
+       (parser_dep_start): If parse_dep_attrs() returns TRUE, add it to
+       the temporary obsoletes list.  Otherwise, tack it onto the current
+       dep list (should only ever be conflicts).
+       (parser_package_end): Concatenate the actual obsolete list (from
+       <obsoletes></obsoletes>) with the one in the temporary list.
+
+2002-07-25  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_transact): fix a small memory leak caught
+       by Jon
+
+2002-07-25  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-queue-item.c (conflict_process_cb): If this is actually an
+       obsolete, log an obsoletes info item instead of a conflicts-with
+       info item.
+
+       * rc-resolver-info.c (rc_resolver_info_obsoletes_new): Added.
+       (rc_resolver_info_to_str): Added handling of _TYPE_OBSOLETES.
+
+       * rc-resolver-info.h: Added RC_RESOLVER_INFO_TYPE_OBSOLETES to
+       RCResolverInfoType enum.
+
+2002-07-25  Ian Peters  <itp@ximian.com>
+
+       * rc-package.h, rc-package.c (rc_package_slist_copy): added
+
+       * rc-rpmman.c (rc_rpmman_transact): massively fixed.  Now only
+       runs one transaction, instead of two.  Filters out packages from
+       the remove list that are obsoleted by packages in the install
+       list, which gets rid of the entire problem we had that caused us
+       to use two transactions in the first place.
+
+2002-07-25  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c: whoops, fix _transact in the case where the
+       to-be-installed package is not an upgrade
+
+2002-07-25  Ian Peters  <itp@ximian.com>
+
+       * rc-packman.h, rc-packman.c: rc_packman_transact takes a final
+       gboolean, if set to TRUE, the transaction is actually run, if
+       FALSE, equivalent to settting RC_JUST_KIDDING.
+
+       * rc-rpmman.c, rc-debman.c: update to new _transact.
+
+2002-07-25  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-debman.c (query_all_read_line_cb): The epoch is now a
+       bitfield, so we can't take the address of it.
+
+       * rc-xml.c (rc_channel_to_xml_node): Added.
+
+       * rc-channel.h: Removed the prototype for rc_xml_node_to_channel,
+       which doesn't actually exist.
+
+       * rc-package-dep.h: Make the relation a 28-bit bitfield,
+       shaving a few bytes off of our struct.
+
+       * rc-package-spec.h: Make the epoch a 29-bit bitfield, shaving
+       a few bytes off of our struct.
+
+       * rc-dep-or.c (rc_dep_string_to_or_dep_slist): The epoch is now a
+       bitfield, so we can't take the address of it.
+
+       * rc-world-import.c (debian_packages_helper): The epoch is now
+       a bitfield, so we can't take the address of it.
+
+       * rc-world.c: (rc_world_dump): Moved to rc-world-dump.c, renamed
+       rc_world_dump_to_xml.
+
+       * rc-world-dump.c (rc_world_dump_to_xml): Added.  Basically a
+       slightly revised version of the rc_world_dump function that used
+       to be in rc-world.c.
+       (rc_world_dump): Added.  A convenience routine that writes the xml
+       to a buffer.
+       (rc_world_undump_from_xml): Added.  Reassembles the dump
+       information into the world.
+       (rc_world_undump): Added.  A convenience routine that reads the
+       xml from a buffer.
+
+       * libredcarpet.h: Added #include "rc-world-dump.h"
+
+2002-07-25  Ian Peters  <itp@ximian.com>
+
+       * rc-packman.c, rc-packman.h: rc_packman_query now returns an
+       RCPackageSList
+
+       * rc-rpmman.c: rc_rpmman_query, rc_rpmman_query_v3, and
+       rc_rpmman_query_v4 now all return an RCPackageSList.  Streamlined
+       rc_rpmman_read_header to now take an RCPackage, got rid of
+       rc_rpmman_check_match, and fixed rc_rpmman_transact to use _query
+       properly.
+
+       * rc-debman.c: rc_debman_query now returns an RCPackageSList.
+       rc_debman_find_file updated to use _query properly.
+
+2002-07-24  Peter Bowen  <pzb@ximian.com>
+
+       * rc-xml.c (rc_package_to_xml_node): Put the dependencies in a 
+       deps tag.  This allows the addition of additional dependency types
+       without changes to the parser used in the server code.
+
+2002-07-23  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-world-import.c (rc_world_add_channels_from_xml): Look for a
+       channel alias in the XML and use it, if possible.
+       (rc_world_add_channel_from_buffer): Added a new argument to
+       specify the channel's alias.  Also, now returns a boolean
+       indicating if adding the packages was successful or not.
+       
+       * rc-world.c (rc_world_add_channel): Added a new argument to
+       specify the channel's alias.
+       (rc_world_get_channel_by_alias): Added.
+
+       * rc-channel.c (rc_channel_get_alias): Added.  An accessor for the
+       alias field.
+
+       * rc-channel-private.h: Added "alias" field to the RCChannel
+       struct.
+
+       * rc-queue-item.c (install_item_process): Generate a "needed by"
+       info item whenever we can.  For some weird reason we were
+       explicitly not creating the proper info items in the case of
+       upgrades.
+
+2002-07-22  Joe Shaw  <joe@ximian.com>
+
+       * rc-debug.c (rc_debug): Changed the signature of the RCDebugFn
+       callback to pass in the level of the current message.
+
+2002-07-21  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-resolver-context.c (rc_resolver_context_uninstall_package):
+       Fix a totally harmless logical glitch.
+
+       * rc-queue-item.c (require_item_process): Gracefully handle the case 
+       of ->requiring_package being NULL.  This happens when a requirement
+       is added as an extra dependency.
+       
+
+2002-07-15  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-resolver-context.c (rc_resolver_context_foreach_info): Filter
+       by package and priority before we merge info items, not
+       afterwards.  Since merging is a relatively expensive operation,
+       operating on a much shorter list can result in a substantial
+       improvement in performance when dealing with complex resolutions
+       (i.e. removing glibc).
+
+2002-07-12  Frank Belew  <frb@ximian.com>
+
+       * Makefile.am: add libredcarpet_a_SOURCES to fix make dist
+
+2002-07-12  Joe Shaw  <joe@ximian.com>
+
+       * rc-packman.c (rc_packman_query_file): Make sure we're returned a
+       valid package (and not NULL) before we try to set things in it.
+
+2002-07-12  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-resolver.c (rc_resolver_resolve_dependencies): Fix a cast
+       that was causing a compiler warning.
+
+2002-07-11  Joe Shaw  <joe@ximian.com>
+
+       * rc-resolver.c (rc_resolver_resolve_dependencies): When we are
+       building the initial queue, add the extra dependencies to the
+       queue.
+
+2002-07-11  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-resolver-queue.c (rc_resolver_queue_add_extra_dependency): A
+       corresponding "extra dependency" function, which just creates
+       a RCQueueItem_Require item for the given RCPackageDep and adds
+       it to the item queue.
+
+       * rc-resolver.c (rc_resolver_add_extra_dependency): Add an "extra
+       dependency", which is just a RCPackageDep which we want to have
+       satisfied.
+       (rc_resolver_free): Clean up our list of extra dependencies.
+
+       * rc-xml.c (rc_package_to_xml_node): Add the file_size and
+       installed_size to the XML.
+
+       * rc-packman.c (rc_packman_query_file): Stat the file and set
+       the file_size of the RCPackage, but only if the implementation
+       of query_file didn't do so already.
+
+2002-07-10  Joe Shaw  <joe@ximian.com>
+
+       * rc-xml.c (rc_package_to_xml_node): Add back in writing out the
+       epoch, version, and release to the XML file.
+
+2002-07-10  Joe Shaw  <joe@ximian.com>
+
+       * rc-util.c (rc_compress_memory): Added.  Returns a zlib
+       compressed byte array, like rc_uncompress_memory().
+
+2002-07-09  Joe Shaw  <joe@ximian.com>
+
+       * rc-world.c (add_channel_xml_cb): Include the channel name and ID
+       when listing the channel packages.
+
+2002-07-09  Joe Shaw  <joe@ximian.com>
+
+       * rc-world.c (rc_world_dump): First pass at a function which will
+       XMLify the RCWorld.  Currently dumps subscriptions, system
+       packages, and packages in each channel, so output is huuuuuuuuge.
+
+       * rc-world-import.c: Fix a couple of g_error()s which should be
+       g_warning()s.
+
+2002-07-04  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-world.c: Added "own_dep" flag to the RCPackageAndDep struct.
+       (rc_package_and_dep_new_package): Set own_dep to TRUE, since we
+       create the RCPackageDep ourselves.
+       (rc_package_and_dep_new_pair): Just use the passed-in RCPackageDep
+       pointer and set own_dep to FALSE.  We used to copy the object, but
+       that ended up consuming a lot of memory unnecessarily.
+       (rc_package_and_dep_free): Only free the RCPackageDep if own_dep
+       is TRUE.
+
+       * rc-distro.c (rc_figure_distro): Fixed a small memory leak.
+
+       * rc-world-import.c (rc_world_add_channels_from_xml): Fixed a
+       small memory leak.
+
+2002-07-02  Joe Shaw  <joe@ximian.com>
+
+       * rc-line-buf.c (rc_line_buf_class_init): Set the parameter type
+       to INT from ENUM, since the latter wasn't working.
+
+       * rc-rpmman.c (split_rpm): Don't free uninitialized memory.  Doh.
+
+2002-07-01  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-world.c (rc_world_guess_package_channel): Added.  Guesses
+       which channel a package came from.      
+
+2002-06-14  Joe Shaw  <joe@ximian.com>
+
+       * rc-packman.h: Add a RC_PACKMAN_STEP_PREPARE
+
+       * rc-rpmman.c (transact_cb): Set the step to be
+       RC_PACKMAN_STEP_PREPARE instead of RC_PACKMAN_STEP_CONFIGURE,
+       since that's more accurate as to what it's actually doing.
+
+2002-06-14  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman.c (split_rpm): Use g_file_open_tmp () instead of
+       mkstemp () things like TMPDIR are obeyed.
+       (rc_rpmman_verify): Don't need to bother passing in templates to
+       split_rpm ().
+
+2002-06-13  Joe Shaw  <joe@ximian.com>
+
+       * rc-util.c (rc_rmdir): Argument should be const.
+
+2002-06-12  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman.c (GTKFLUSH): Reenable this macro so we can get decent
+       responsiveness from the RPM transaction callbacks.
+
+2002-06-12  Joe Shaw  <joe@ximian.com>
+
+       * rc-xml.c (parser_update_end): Get the description tag.  Must
+       have missed it before.
+
+2002-06-12  Joe Shaw  <joe@ximian.com>
+
+       * rc-xml.c (parser_update_end): Assign the installed size to the
+       correct struct element.
+
+2002-06-11  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-package.c (rc_package_get_latest_update): Just return NULL if
+       package->history is NULL, rather than complaining via
+       g_return_val_if_fail.
+
+2002-06-07  Joe Shaw  <joe@ximian.com>
+
+       * rc-world.c (rc_world_foreach_channel): Protect against removing
+       a channel from inside a foreach function.
+
+2002-06-06  Ian Peters  <itp@ximian.com>
+
+       * rc-debman.c (mark_status_read_line_cb): remove an unused
+       variable
+
+       * rc-rpmman.c (transact_cb): handle two more enum cases to kill a
+       warning
+
+2002-06-06  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c: no more RC_RPM4, now check #if RPM_VERSION >= 40000
+
+2002-06-05  Ian Peters  <itp@ximian.com>
+
+       * rc-package-spec.c (rc_package_spec_version_to_str): man solaris
+       sucks
+
+2002-06-05  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (parse_version): added, guts of parse_versions
+       (parse_versions): just calls parse_version now
+
+2002-06-05  Ian Peters  <itp@ximian.com>
+
+       * rc-verification.h: add RC_VERIFICATION_TYPE_ALL, add bit values
+       to RC_VERIFICATION_TYPE_*
+
+       * rc-packman.h, rc-packman.c: rc_packman_real_verify
+       takes a type argument
+
+       * rc-rpmman.c (rc_rpmman_verify): only run the requested
+       verifications as per the type parameter
+
+       * rc-debman.c (rc_debman_verify): only run the requested
+       verifications as per the type parameter
+
+2002-06-05  Ian Peters  <itp@ximian.com>
+
+       * rc-package-spec.c (rc_package_spec_version_to_str): fix a stupid
+       solaris crash, because solaris sucks
+
+2002-06-04  Ian Peters  <itp@ximian.com>
+
+       * rc-world-import.c (debian_packages_helper): this package update,
+       like all of them in debian, has an epoch
+       * rc-xml.c (parse_dep_attrs): set has_epoch when we find an epoch
+       (rc_xml_node_to_package): has_epoch isn't always 1, it depends on
+       the update spec
+       (rc_xml_node_to_package_dep_internal): don't blindly check for an
+       epoch with a default value, check if there is one instead, and set
+       has_epoch appropriately
+
+2002-06-04  Ian Peters  <itp@ximian.com>
+
+       * rc-package-spec.h (struct _RCPackageSpec): add a has_epoch
+       bitfield
+       (rc_package_spec_init): take a has_epoch parameter
+       (rc_package_spec_equal): take the has_epoch flag into account
+
+       * rc-package-spec.c (rc_package_spec_init): has_epoch parameter
+       (rc_package_spec_copy): has_epoch parameter
+       (rc_package_spec_to_str, rc_package_spec_to_str_static,
+       rc_package_spec_version_to_str,
+       rc_package_spec_version_to_str_static): rewritten to not suck
+       (rc_package_spec_equal): take the has_epoch flag into account
+
+       * rc-package-dep.h (rc_package_dep_new): take a has_epoch flag
+
+       * rc-package-dep.c (rc_package_dep_new): has_epoch flag, pass it
+       to rc_package_spec_init
+       (rc_package_dep_new_from_spec): pass the has_epoch from the spec
+       to rc_package_dep_new
+       (rc_package_dep_verify_relation): reformat flow, make
+       modifications as appropriate for the has_epoch flag according to
+       comments in the code from pzb
+
+       * rc-debman-general.c (rc_debman_fill_depends): rc_package_dep_new
+       takes has_epoch now
+
+       * rc-dep-or.c (rc_dep_or_new_provide): rc_package_dep_new never
+       has an epoch here
+
+       * rc-world-import.c (rc_world_parse_debian): all debian packages
+       have epochs
+
+       * rc-debman.c (query_all_read_line_cb): all debian packages have
+       epochs
+
+       * rc-rpmman.c (rc_rpmman_read_header): take a has_epoch parameter,
+       and use it wisely
+       (parse_versions): take a has_epochs parameter, use it right
+       (depends_fill_helper): parse_versions needs has_epochs, pass that
+       into rc_package_dep_new
+       (rc_rpmman_depends_fill): when we provide ourselves, note whether
+       we have an epoch or not.  when we provide or require files, they
+       never have epochs
+       (rc_rpmman_check_match): take has_epoch into account
+       (rc_rpmman_query_file, rc_rpmman_query_all_v4,
+       rc_rpmman_query_all_v3, rc_rpmman_find_file_v4,
+       rc_rpmman_find_file_v3): take has_epoch into account
+       (rc_rpmman_version_compare): take has_epoch into account as per
+       pzb's comments in the code
+
+       * rc-xml.c: only write out epochs if has_epoch is set, set
+       has_epoch when we find an epoch in the xml -- if there's no epoch
+       in the xml, has_epoch remains 0
+
+2002-06-04  Ian Peters  <itp@ximian.com>
+
+       * rc-debman.c, rc-debman.h: compiles again against glib 2.0
+
+2002-06-03  Joe Shaw  <joe@ximian.com>
+
+       * rc-package.c (rc_package_slist_ref): Added.
+       (rc_package_slist_unref): Don't free the list after unreffing it.
+
+       * rc-rpmman.c (rc_rpmman_query_all_v3):
+       * rc-world-import.c (rc_world_parse_helix): Free the list after
+       unreffing it here.
+
+2002-06-03  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-queue-item.c (install_item_process): Fix the relation tag on
+       the RCPackageDep we build to find conflicting packages.  This
+       fixes a bug with versioned conflicts.
+
+       * rc-debug.c (rc_debug): Make the format string arg const.
+
+2002-05-30  Joe Shaw  <joe@ximian.com>
+
+       * rc-world.c (rc_world_get_packman): Get the packman associated
+       with the RCWorld.
+       (rc_world_get_system_packages): rc_packman_get_reason() returns a
+       const gchar *, so declare reason const and don't free it afterward.
+
+2002-05-29  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-world-subscriptions.c: Added.  Functions for
+       importing/exporting the RCWorld's subscription data to/from XML.
+
+       * rc-world-import.c (rc_world_add_packages_from_buffer): Added.  We
+       want to make maximum use of our cool SAX parser.
+
+       * rc-channel.c (rc_channel_get_last_update): Added.
+
+2002-05-28  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-world-import.c (rc_world_add_channels_from_xml): Added.
+       Processes the red-carpet channel XML file, filtering out channels
+       that don't match our distro.
+
+       * rc-util.c (rc_uncompress_xml): Added.  Uncompresses & xml-parses
+       a block of memory.
+
+       * rc-debug.c (rc_debug_set_display_handler): Added the ability to
+       set a displayed message handler.
+       (rc_debug): If a displayed message handler is set, use it.
+
+       * rc-channel.c: Removed rc_chanel_parse_xml, Worldifiying it and
+       moving it to rc-world-import.c.
+
+       * rc-world.c (rc_world_add_channel): Added debug spew.
+
+2002-05-23  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-resolver.c: (rc_resolver_add_subscribed_channel) Removed.
+       (rc_resolver_resolve_dependencies): Don't worry about propogating
+       any lists of subscribed channels.
+
+       * rc-resolver-context.c
+       (rc_resolver_context_get_channel_priority): Get the subscription
+       status directly from the channel.
+
+       * rc-channel.c (rc_channel_subscribed): Added.
+       (rc_channel_set_subscription): Added.
+
+       * rc-channel-private.h: Added subscribed flag (and made two other
+       gbooleans into single-bit entries.)
+
+       * rc-world.c (rc_world_register_packman): The beginnings of
+       our RCWorld/RCPackman integration...
+       (rc_world_get_system_packages): Use the packman to find all of
+       the packages installed on the system and store them in the world.
+
+2002-05-23  Joe Shaw  <joe@ximian.com>
+
+       * rc-util.c (rc_buffer_map_file): Added, mmap()s a file into an
+       easy-to-use structure!
+       (rc_buffer_unmap_file): Unmaps an RCBuffer.
+
+2002-05-23  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-packman.h: Don't include rc-packman-private.h; actually make
+       it private instead.
+
+       * Makefile.am: Fixed to install libredcarpet and its headers like
+       any other library.
+
+       * rc-package.c (rc_package_get_best_upgrade): Added.
+
+2002-05-10  Jon Trowbridge  <trow@ximian.com>
+
+        * rc-queue-item.c (install_item_process): When installing,
+        uninstall any packages that explicitly conflicts with us.
+
+        * rc-world.c (rc_world_new): Initialize ->conflict_by_name.
+        (rc_world_freeze): Freeze ->conflict_by_name.
+        (rc_world_thaw): Thaw ->conflict_by_name.
+        (rc_world_add_package): Populate ->conflict_by_name.
+        (rc_world_foreach_conflicting_package): Added.  Iterate over
+        conflicts.
+
+       * rc-xml.c (rc_package_to_xml_node): Properly write out obsoletes.
+
+2002-05-09  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-package.c (rc_package_unref): Unref our channel.
+
+       * rc-xml.c (parser_toplevel_start): Ref our channel.
+       (rc_xml_node_to_package): Ref our channel.
+
+       * rc-world-import.c (rc_world_add_channel_from_buffer): Renamed
+       from rc_world_parse_channel, and better integrated with the new
+       "the world constructs and contains all channels".
+       (rc_world_parse_debian): Ref our channel.
+
+       * rc-world.c (rc_world_free): Set the channel's world pointer to
+       NULL before we unref it.
+       (rc_world_add_channel): Store the world pointer inside the
+       channel.
+       (rc_world_remove_channel): Set the channel's world pointer to
+       NULL before we unref it.
+
+       * rc-channel.c (rc_channel_ref): Added.
+       (rc_channel_unref): Added.
+       (rc_channel_foreach_package): Added.  Use the channel's
+       RCWorld (which we now carry around inside of the struct)
+       to iterate over the channel's packages.
+       (rc_channel_package_count): Added.
+
+       * rc-channel-private.h: Store the associated
+       RCWorld * in the channel's struct.
+
+       * rc-channel-private.c (rc_channel_new): Set refs to 1 initially.
+       (rc_channel_free): Removed.
+
+2002-05-08  Joe Shaw  <joe@ximian.com>
+
+       * rc-package-dep.c, rc-package-dep.h (rc_package_dep_new): The
+       string arguments should really be const.
+
+       * rc-package-spec.c, rc-package-spec.h (rc_package_spec_init): Ditto.
+
+2002-05-07  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-xml.c: Include rc-channel-private.h.
+
+       * rc-world-import.c: Include rc-channel-private.h.
+
+       * rc-world.c: Moved the RCWorld struct definition into the .c file
+       to make it opaque.
+       (rc_world_free): Free our channels.
+       (rc_world_add_channel): Added.  Creates a new channel and stores
+       it in the RCWorld.
+       (rc_world_remove_channel): Added.
+       (rc_world_foreach_channel): Added.
+       (rc_world_get_channel_by_name): Added.
+       (rc_world_get_channel_by_id): Added.
+       (rc_world_foreach_system_upgrade): Used to be called
+       rc_world_foreach_system_package_with_upgrade, but that was just
+       too long.
+       
+       * rc-package.c (rc_package_to_str): Use rc_channel_get_name
+       accessor function.
+
+       * rc-channel.c: Moved rc_channel_new and rc_channel_free to
+       rc-channel-private.c.
+       (rc_channel_get_id): Added.
+       (rc_channel_get_name): Added.
+       (rc_channel_get_description): Added.
+       (rc_channel_get_type): Added.
+       (rc_channel_slist_free): Removed.
+
+       * rc-channel-private.c (rc_channel_new): Moved from rc-channel.c.
+       (rc_channel_free): Moved from rc-channel.c.
+
+       * rc-channel-private.h: Moved the RCChannel struct into a private
+       header to make it opaque.
+
+2002-05-06  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-world.c: (hashed_slist_*): Added a set of functions for
+       dealing with hashtables of slists.  This gets rid of our
+       extensive use of g_slist_append... now all list additions
+       are done via prepends.
+       (remove_packages_generic): Removed.
+       (remove_package_structs_generic): Removed.
+       (rc_world_new): Use hashed slists.
+       (rc_world_free): Use hashed slists.
+       (rc_world_add_package): Use hashed slists.
+       (remove_package_cb): Use hashed slists.
+       (remove_package_struct_cb): Use hashed slists.
+       (rc_world_remove_package): Use hashed slists.
+       (remove_package_by_channel_cb): Use hashed slists.
+       (remove_package_struct_by_channel_cb): Use hashed slists.
+       (rc_world_remove_packages): Use hashed slists.
+       (rc_world_find_installed_version): Use hashed slists.
+       (rc_world_get_package): Use hashed slists.
+       (rc_world_foreach_package): Use hashed slists.
+       (rc_world_foreach_package_by_name): Use hashed slists.
+       (rc_world_foreach_providing_package): Use hashed slists.
+       (rc_world_check_providing_package): Use hashed slists.
+       (rc_world_foreach_requiring_package): Use hashed slists.
+
+       * rc-resolver-info.c (rc_resolver_info_misc_add_action): Added.
+       (rc_resolver_info_misc_add_trigger): Added.  These two functions
+       are related to improved error reporting in the dependency code.
+
+       * libredcarpet.h: include rc-xml.h.
+
+2002-05-02  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-xml.c (sax_end_document): Set ctx->text_buffer to NULL so
+       that we won't double-free it.
+
+       * rc-xml.c (sax_end_document): Just to be sure, free
+       ->text_buffer.
+       (parser_package_end): Set our package variables using a
+       g_strstripped version of ->text_buffer.
+       (parser_update_end): Set of update variables using a g_strstripped
+       version of ->text_buffer.
+       (sax_end_element): Clear ->text_buffer when we hit channel or
+       subchannel elements.
+       (sax_characters): If we get multiple sax_characters calls in a
+       row, concatenate the characters into text_buffer instead of
+       leaking/dropping the previous characters.
+
+       * rc-resolver.c (rc_resolver_resolve_dependencies): Don't leak the
+       split resolver queue.
+
+       * rc-xml.c (parser_package_end): strdup the version and release
+       when copying the update spec info to the package spec, thus
+       avoiding a segfault when the package is unrefed.
+       (parser_update_end): Use the rc_package_add_update instead of
+       directly accessing the package's ->history.
+       (rc_package_sax_context_done): s/rc_package_free/rc_package_unref/
+       (rc_xml_node_to_package): Use rc_package_add_update.
+       (rc_xml_node_to_package): strdup the version and release when
+       copying the update spec info to the package spec.
+
+       * rc-world.c (rc_package_and_dep_new_package): Added as a
+       convenience function.
+       (rc_package_and_dep_new_pair): Added as a convenience function.
+       (rc_package_and_dep_free): Added as a convenience function.
+       (rc_world_free): Actually try to free all of our resources when we
+       free the world.  Previously we've just leaked with gusto.
+       (rc_world_add_package): Use our rc_package_and_dep_* convenience
+       functions.
+       (remove_package_structs_generic): Use our rc_package_and_dep_*
+       convenience functions.  Since we no longer have RCPackageAndSpec
+       structs, this code now is slightly less generic, and thus easier
+       to understand.
+
+       * rc-world-import.c (rc_world_add_packages_from_xml): Unref
+       package after adding it to the world.
+       (rc_world_parse_helix): Unref package after adding it to the
+       world.
+       (rc_world_parse_debian): Unref package after adding it to the
+       world.
+       (debian_packages_helper): Call rc_package_add_update instead
+       of directly manipulating the package's ->history.
+
+       * rc-package.c (rc_package_new): Add leak-checking code.
+       (rc_package_unref): Add leak-checking code.
+       (rc_package_spew_leaks): Added.  If leak-checking is enabled,
+       dump a list of all leaked packages.
+       (rc_package_add_update): Added.
+
+       * rc-package-update.c (rc_package_update_free): Don't cast the
+       update to a spec, just pass a pointer to that element of the
+       structure.
+
+2002-05-01  Joe Shaw  <joe@ximian.com>
+
+       * Makefile.am: Add rc-xml.[ch].
+
+       * rc-package-dep.[ch], rc-package-update.[ch], rc-package.[ch]:
+       Move the DOM XML routines out of these files.
+
+       * rc-xml.c: New file, contains the DOM routines above and a new
+       SAX parser for packageinfo files.
+
+       * rc-util.c (rc_string_to_guint32_with_default): Added.
+
+       * rc-world-import.c (rc_world_parse_helix): Conditionalize whether
+       the SAX or DOM parser is used depending on the RC_OLD_XML
+       environment variable.
+
+2002-05-01  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-packman.c (rc_packman_query_file_list): Use rc_package_unref.
+
+       * rc-rpmman.c (rc_rpmman_query_all_v3): Use
+       rc_package_slist_unref.
+       (rc_rpmman_transact): Use rc_package_unref instead of _free.
+
+       * rc-world-import.c (rc_world_parse_debian): Use rc_package_new
+       to create an RCPackage, not g_new0.
+
+       * rc-world.c (rc_world_add_package): Ref our packages when added.
+       (remove_packages_generic): Unref our packages when removed.
+
+       * rc-package.c (rc_package_new): Set initial refcount to 1.
+       (rc_package_ref): Added.
+       (rc_package_unref): Added.
+       (rc_package_free): Removed.
+       (rc_package_slist_unref): Created from rc_package_slist_free.
+
+2002-04-30  Joe Shaw  <joe@ximian.com>
+
+       * rc-distro.c (rc_figure_distro): The semantics of the
+       g_strsplit() function changed in glib2.  Update.
+
+       * *.[ch]: Update libxml header includes, check the xmlNode's types
+       to ensure that we only get XML_NODE_ELEMENTs and not
+       XML_NODE_TEXTs which break the fragile DOM parsing.
+       
+2002-04-30  Jon Trowbridge  <trow@ximian.com>
+
+       * Ported to glib2.
+
+2002-04-24  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-queue-item.c (require_item_process): Attach the requiring
+       package to the "There are no installable providers..." log entry.
+       (require_item_process): Attach both packages foo and bar to the
+       "Upgrade to foo to avoid removing bar..." log entry.
+       (conflict_process_cb): Attach packages to the "A conflict over foo
+       (bar) requires..." log entry, and flag it as an error.  Attach
+       packages to the "Marking foo as uninstallable due to conflicts..."
+       log entry.
+       * rc-resolver-context.c (rc_resolver_context_install_package):
+       "Can't install foo since it is already marked as needing to be
+       uninstalled" and "Can't install foo, since a package of the same
+       name..."  are error conditions, so add them to the log via
+       _add_error_str.
+       (rc_resolver_context_uninstall_package): "Can't uninstall the
+       to-be-installed..." is an error condition, log it via
+       _add_error_str.
+       (rc_resolver_context_invalidate): Removed.
+       (rc_resolver_context_add_info): Set the propagated_importance flag
+       to FALSE.  If the info item that we are adding is flag as an
+       error, invalidate the context.  This replaces the need for
+       explicit calls to rc_resolver_context_invalidate.
+       (rc_resolver_context_add_error_str): Added.  A convenience routine
+       for logging errors.
+       (rc_resolver_context_propagate_importance): Repeatedly walk across
+       the log items, flagging as important any items that are mentioned
+       in an "important" or "error" info item.  We repeat this process
+       until no new items are flagged.  The point of this is, in the case
+       of an error, to try to distinguish a subset of the entire log and
+       allow us to highlight the "important" log entries.
+       (rc_resolver_context_foreach_info): Call _propagate_importance
+       before iterating.
+       (spew_cb): Preceed "important" items with "[!!!!!]" and "error"
+       items with "[ERROR]" when spewing.
+
+       * rc-resolver-info.c (rc_resolver_info_add_related_package):
+       Added.  Pushes a package onto the package_list.
+       (rc_resolver_info_is_error): Added.  Accessor for is_error flag.
+       (rc_resolver_info_flag_as_error): Added.  Sets is_error to TRUE.
+       (rc_resolver_info_is_important): Added.  Returns is_error ||
+       is_important.  After all, errors are inherently important. :)
+       (rc_resolver_info_flag_as_important): Added.  Sets is_important to
+       TRUE.
+       (rc_resolver_info_copy): Copy is_error and is_important flags.
+
+       * rc-resolver-info.h: Add is_error and is_important
+       flags to the RCResolverInfo struct.
+
+2002-04-18  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-queue-item.c (rc_queue_item_branch_is_empty): Added.
+       (require_item_process): If none of the potential upgrades are
+       actually installable, we have no choice but to just go ahead and
+       remove the package in question.
+
+2002-04-16  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-package.c (rc_package_to_xml_node): Restored.
+
+       * rc-package-update.c (rc_package_update_to_xml_node): Restored.
+
+       * rc-package-dep.c (rc_package_dep_or_slist_to_xml_node): Restored.
+       (rc_package_dep_to_xml_node): Restored.
+
+2002-04-16  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-package.c (rc_xml_node_to_package): Treat a conflicts section
+       in the XML as obsoletes if the 'obsoletes' property is set.
+
+2002-04-12  Peter Bowen  <pzb@ximian.com>
+
+       * rc-distro.c: YDL2.2, MDK8.2, SuSE 8.0, RHL7.3, and Debian 3.0 support
+
+       * rc-rpmman.c (vercmp): use STRICT_RPM_VERCMP define to decide sort
+                               order for alpha and numeric chars and whether
+                               we string "mdk" from the end of strings
+
+2002-04-11  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-queue-item.c (install_item_process): Check to make sure that
+       a package with the same version number isn't already installed.
+       If it is, do nothing.  (Previously this case got treated like an
+       upgrade, and we would try to add and remove the same package,
+       which is not cool.)
+
+2002-04-09  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-package.c (rc_xml_node_to_package): Check if the "obsoletes"
+       property is set in a RCPackageDep in the conflict section.  If so,
+       treat it like an obsolete.
+
+       * rc-world.c: Moved rc_world_add_packages_from_xml and
+       rc_world_add_packages_from_slist to rc-world-import.c.  Added some
+       gtk-doc docs.
+
+       * rc-world-import.c (rc_world_add_packages_from_xml): Moved here
+       from rc-world.c.
+       (rc_world_add_packages_from_slist): Moved here from rc-world.c.
+
+2002-03-29  Peter Bowen  <pzb@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_version_compare): always use epochs in
+       version comparisions
+
+2002-03-27  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-queue-item.c (install_item_process): Add support for
+       _DUE_TO_OBSOLETE.  If the conflict item is generated from an
+       obsolete, flag it as such.
+       (require_process_cb): Add support for _DUE_TO_OBSOLETE.
+       (conflict_process_cb): If the conflict comes from an obsolete,
+       flag the uninstall items as such.  Add support for
+       _DUE_TO_OBSOLETE.
+       (conflict_item_process): If the conflict item comes from an
+       obsolete, set a flag in the ConflictProcessInfo struct.
+       (uninstall_item_process): Pass a flag to
+       rc_resolver_context_uninstall_package which indicates whether or
+       not the uninstall is due to an obsolete.
+
+       * rc-resolver-context.c (rc_package_status_to_string): Add support
+       for _DUE_TO_OBSOLETE.
+       (rc_resolver_context_set_status): Add support for
+       _DUE_TO_OBSOLETE.
+       (rc_resolver_context_install_package): Add support for
+       _DUE_TO_OBSOLETE.
+       (rc_resolver_context_upgrade_package): Add support for
+       _DUE_TO_OBSOLETE.
+       (rc_resolver_context_uninstall_package): Added an argument to
+       indicate whether or not this uninstall is due to an obsolete.
+       Change the status accordingly.
+       (rc_resolver_context_package_is_absent): Add support for
+       _DUE_TO_OBSOLETE.
+       (uninstall_pkg_cb): Add support for _DUE_TO_OBSOLETE.
+       (requirement_possible_cb): Add support for _DUE_TO_OBSOLETE.
+
+       * rc-resolver-context.h: Added new element to RCPackageSpec enum:
+       RC_PACKAGE_STATUS_TO_BE_UNINSTALLED_DUE_TO_OBSOLETE.
+
+       * rc-package.h: Added a list of obsoletes to the RCPackage struct.
+
+       * rc-package.c (rc_package_copy): Copy the list of obsoletes.
+       (rc_package_free): Free the list of obsoletes.
+       (rc_xml_node_to_package): Read obsoletes in from XML.
+
+       * rc-rpmman.c (rc_rpmman_depends_fill): Store obsoletes in a
+       separate list, instead of just treating them as conflicts.
+
+       * rc-queue-item.c (install_item_process): Generate conflict items
+       from a package's obsoletes.
+
+2002-03-26  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-world.c (rc_world_add_packages_from_xml): Added.
+       (rc_world_get_package): Fixed input variable checks.
+       (rc_world_get_package_with_constraint): Added.  Replaces the
+       similarly-named function from rc-package-info.c.
+
+       * rc-verification.c: #include <stdlib.h> to get rid of
+       compiler warnings. 
+       (rc_verify_gpg): Removed unused local variable.
+
+       * rc-resolver.c: Each RCResolver now carries around an RCWorld,
+       which is to be used for all package queries related to that
+       resolution.
+       (rc_resolver_set_world): Added.
+       (rc_resolver_get_world): Added.  Use the global RCWorld as a
+       fallback.
+       (rc_resolver_verify_system): Use our local RCWorld.
+       (rc_resolver_resolve_dependencies): Initialize our root context
+       with our local world.
+
+       * rc-resolver-queue.c (rc_resolver_queue_add_package_to_install):
+       Initialize the install item using the RCResolverContext's RCWorld.
+       (rc_resolver_queue_add_package_to_remove): Ditto with the
+       uninstall item.
+       (rc_resolver_queue_add_package_to_verify): Ditto with the require
+       and conflict items.
+
+       * rc-resolver-context.c: Each RCResolverContext now carries around
+       an RCWorld, which it uses for all package queries.
+
+       * rc-queue-item.c: Each RCQueueItem now carries around an RCWorld,
+       which it uses for all package queries.  This change leads to a
+       bunch of small changes throughout the API and in the code.
+
+       * rc-package.c (rc_xml_node_to_package): If a package doesn't have
+       any history, we try to guess the version number information by
+       looking for a provide with the same name as the package.
+
+       * rc-package-spec.c (rc_package_spec_get_type): Added an
+       RCWorld argument.
+
+       * rc-package-info.c (rc_channel_parse): Took all of this code
+       and...
+
+       * rc-world-import.c (rc_world_parse_channel): ...moved it
+       here, along with some renaming.
+
+       * rc-dep-or.c: Removed rc_dep_or_process_system_and_channels and
+       associated helper functions.
+
+       * rc-channel.c: Removed inclusion of "rc-package-info.h".
+       Removed rc_xml_node_process and rc_xml_node_to_channel.
+
+2002-03-22  Peter Bowen  <pzb@ximian.com>
+
+       * rc-rpmman.c (vercmp): add comments, remove #if 0 code,
+                               small amount of refactoring
+       (rc_rpmman_version_compare): bring code inline with rpmlib
+
+2002-03-20  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c: minor fix to how we parse EVRs
+
+2002-03-20  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-world.c (rc_world_foreach_requiring_package): The order of
+       the arguments to rc_package_dep_verify_relation matters, or
+       so I'm told...
+
+       * rc-world.c (rc_world_get_best_upgrade): Added.  Returns the best
+       upgrade for a package, or NULL if none is available.  Right now
+       this function just returns the package of the same name with the
+       highest version number, but it would be nice to do something a bit
+       more nuanced later.
+       (rc_world_foreach_system_package_with_upgrade): Added.  Iterates
+       across the installed system packages, invoking the callback for
+       each one that has an upgrade.
+
+2002-03-19  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-world.c (rc_world_get_package): Added.  Looks up a
+       package by channel and name.
+
+2002-03-18  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-resolver-info.c (rc_resolver_info_merge): Fix logic bug
+       that was causing non-duplicate _TYPE_MISC info messages to be
+       incorrectly "merged".
+
+2002-03-18  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c: minor build fixes for static linking, ie solaris
+
+2002-03-14  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.h: added rpmExpandNumeric
+
+       * rc-rpmman.c: if we're using a new enough version of RPM, and
+       there are stale concurrent db files in /var/lib/rpm, and we're not
+       supposed to be using concurrent access shit, clean up after the
+       library.
+
+2002-03-14  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_transact): reverse the order we run
+       removes and installs in, to work around some previously unknown
+       behaviour with rpm obsoletes.  Also, make one error fatal instead
+       of abort, so that the client will exit correctly.
+
+2002-03-12  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-world.c (foreach_package_cb): Doh!  We weren't using the
+       iter variable.
+
+2002-03-12  Joe Shaw  <joe@ximian.com>
+
+       * rc-packman-private.h: Move RC_PACKMAN_CAP_* out of here, move
+       rc_packman_set_capabilities() into here.
+
+       * rc-packman.h: Move RC_PACKMAN_CAP_* into here, move
+       rc_packman_set_capabilities() out of here.
+
+2002-03-12  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-package-info.c (rc_channel_parse_debian): Store packages
+       in RCWorld only, not in the channel.
+       (pkginfo_find_package_with_constraint): Find the package in
+       the RCWorld, not in the channel.
+
+       * rc-dep-or.c (package_process_helper_fn): Changed to work with
+       rc_world_foreach_package_by_name instead of g_hash_table_foreach.
+       (rc_dep_or_process_system_and_channels): Use
+       rc_world_foreach_package.
+
+       * rc-channel.c (rc_channel_new): Removed initialization of
+       ->packages, ->dep_table, ->dep_name_table.
+       (rc_channel_free): Removed clean-up of ->packages, ->dep_table,
+       ->dep_name_table.
+       (rc_xml_node_process): Only store the loaded package in RCWorld,
+       not in the channel.
+
+       * rc-world.c (foreach_package_cb): Doh!  We weren't using the
+       iter variable.
+
+2002-03-12  Joe Shaw  <joe@ximian.com>
+
+       * rc-packman-private.h: Move RC_PACKMAN_CAP_* out of here, move
+       rc_packman_set_capabilities() into here.
+
+       * rc-packman.h: Move RC_PACKMAN_CAP_* into here, move
+       rc_packman_set_capabilities() out of here.
+
+2002-03-12  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-world.c (channel_match): Added.  A small function to do our
+       channel compares for us, properly handling
+       RC_WORLD_SYSTEM_PACKAGES, RC_WORLD_ANY_CHANNEL and our new
+       RC_WORLD_ANY_NON_SYSTEM.
+       (remove_packages_generic): Use channel_match.
+       (remove_package_structs_generic): Use channel_match.
+       (foreach_package_cb): Use channel_match.
+       (rc_world_foreach_package_by_name): Use channel_match.
+       (rc_world_foreach_providing_package): Use channel_match.
+       (rc_world_check_providing_package): Use channel_match.
+       (rc_world_foreach_requiring_package): Use channel_match.
+
+2002-03-11  Joe Shaw  <joe@ximian.com>
+
+       * rc-channel.c (rc_channel_priority_parse): Step through the
+       priority_str so we don't infinitely loop.
+
+2002-03-10  Peter Bowen  <pzb@ximian.com>
+
+       * rc-package-dep.c: (rc_package_dep_verify_relation): Fix dumb typo 
+                               that was causing a segfault.  Also initialize 
+                               compare_ret at function start.
+
+2002-03-10  Peter Bowen  <pzb@ximian.com>
+
+       * rc-debman.c: (rc_debman_init): set capabilities instead of rpmish
+       * rc-package-dep.c: remove rpmish
+                           (rc_package_dep_verify_relation): rewrite to 
+                               support paking two RCPackageDeps
+                           (rc_package_dep_verify_package_relation): removed
+                           (rc_package_dep_equal): removed
+                           (rc_package_dep_slist_is_item_subset): removed
+                           (rc_package_dep_is_subset): removed
+                           (rc_package_dep_is_subset_real): removed
+                           (rc_package_dep_invert): removed
+                           (rc_package_dep_slist_invert): removed
+                           (rc_package_dep_weaken): removed
+                           (rc_package_dep_slist_weaken): removed
+                           (rc_package_dep_is_fully_weak): removed
+                           (rc_package_dep_slist_is_fully_weak): removed
+                           (rc_package_dep_slist_has_dep): removed
+                           (rc_package_dep_system_is_rpmish): removed
+       * rc-package-dep.h: removed prototypes for removed functions
+       * rc-package-update.h: include rc-util.h
+       * rc-packman-private.h: add RC_PACKMAN_CAP_* defines and add
+                               capabilities to _RCPackmanPrivate struct
+       * rc-packman.c: (rc_packman_init): initial capabilities field
+                       (rc_packman_set_capabilities): new
+                       (rc_packman_get_capabilities): new
+       * rc-packman.h: add rc_packman_{get,set}_capabilities prototypes
+       * rc-rpmman.c: (rc_rpmman_init): set capabilities instead of rpmish
+
+2002-03-09  Ian Peters  <itp@ximian.com>
+
+       * rc-deps.c, rc-deps.h, rc-deps-util.c, rc-deps-util.h,
+       rc-deps-private.h: removed
+
+       * rc-dep-or.c: added
+
+       * rc-dep-or.h: added
+
+       * Makefile.am: remove and add the above files from the build
+
+       * libredcarpet.h: remove rc-deps.h
+
+       * rc-debman-general.c: s/rc-deps-util.h/rc-dep-or.h/
+
+       * rc-debman.c: remove rc-deps.h
+
+       * rc-debug-misc.h: remove rc-deps.h
+
+       * rc-package-dep.h (rc_package_dep_verify_relation): take a second
+       RCPackageDep, not an RCPackageSpec
+
+       * rc-package-dep.c: s/rc-deps-util.h/rc-dep-or.h
+       (rc_package_dep_slist_verify_relation): removed
+       (rc_package_dep_verify_relation): take a second RCPackageDep, not
+       an RCPackageSpec
+       (rc_package_dep_verify_package_relation): update for new
+       rc_package_dep_verify_relation, no need to check the package by
+       hand, since it provides itself
+
+       * rc-package-info.c (pkginfo_find_package_with_constraint): update
+       to handle new rc_package_dep_verify_relation -- this one is
+       special, because we don't have an RCPackageDep here, so we make
+       one
+
+       * rc-package-spec.c: minor das_global_packman changes
+
+       * rc-packman.h, rc-packman.c (rc_packman_set_packman): added
+
+       * rc-queue-item.c (uninstall_item_process): new
+       rc_package_dep_verify_relation behaviour
+
+       * rc-world.h (rc_world_foreach_requiring_package): take an
+       RCPackageDep, not an RCPackageSpec
+
+       * rc-world.c: s/rc-deps-util.h/rc-dep-or.h/
+       (rc_world_foreach_providing_package): pass pad->dep, not
+       pad->dep->spec, to rc_package_dep_verify_relation
+       (rc_world_foreach_requiring_package): take a dep not a spec
+
+2002-03-09  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-world.c (remove_package_structs_generic): Uh, don't go
+       into an infinite loop if we decide not to remove a specific
+       package struct.  Double-doh!
+
+       * rc-queue-item.c (require_process_cb): Screen out "impossible"
+       installs from the list.  This could save us a lot of fruitless
+       branchless in some cases.
+
+       * rc-world.c (remove_packages_generic): Don't test for a non-NULL
+       channel parameter when removing by channel, since a NULL value is
+       perfectly legal (and denotes a system package).  Doh!
+       (remove_package_structs_generic): Ditto.  These two changes together
+       fix Ximian #21344.
+
+2002-03-08  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-queue-item.c (require_item_process): Don't search our
+       "uninstall" branch if it looks like the upgrade will install
+       cleanly.  Filter out uninstallable upgrades.  (Fixes case #39)
+
+       * rc-resolver-context.c
+       (rc_resolver_context_requirement_is_possible): Added.
+
+       * rc-world.c (rc_world_add_package): Track provides as
+       RCPackageDeps, not RCPackageSpecs.
+       (rc_world_foreach_providing_package): Provides are now
+       RCPackageDeps.
+       (rc_world_check_providing_package): Provides are now
+       RCPackageDeps.  Added "filter_dups_of_installed" flag.  Fixed
+       idiotic bug of the century: we were looking at the first list
+       element repeatedly, instead of actually iterating.  Doh!
+
+2002-03-08  Ian Peters  <itp@ximian.com>
+
+       * rc-deps-util.c (free_package_hash_helper): not needed
+       (rc_dep_or_process_system_and_channels): i knew there had to be a
+       function to destroy our unique hash tables, just couldn't find it;
+       now uses rc_hash_table_slist_free
+
+2002-03-07  Ian Peters  <itp@ximian.com>
+
+       * rc-debman.c (rc_debman_init): the extension was only being set
+       after the abort for non-root, leading to a crash for normal users.
+
+       * rc-deps-util.c (rc_dep_or_new): we were leaking the depstr when
+       we found an identical or_dep in the hash table.
+       (free_package_hash_helper): added
+       (rc_dep_or_process_system_and_channels): free the hash table and
+       shallow free the element slists, using free_package_hash_helper
+
+       * rc-package.c (rc_package_to_str_static): the local variable
+       wasn't flagged as static, so it was never freed.  whoops!
+
+       * rc-rpmman.c (load_fake_syms): whoops, the hdrVec stuff is
+       conditional at compile, not runtime, in the static case.
+
+       * rc-world.c (rc_world_check_providing_package): plug a huge
+       memory leak, the hash table constructed in this function was only
+       freed if our search was a failure and we returned FALSE.  Our
+       search succeeds quite a bit, is the thing.
+
+2002-03-06  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_transact): Free the correct transaction
+       set; cut-and-paste error.
+
+2002-03-05  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c: renamed configuring to installing in the
+       InstallState struct
+       (transact_cb): since we're doing installs and removes in separate
+       transactions, some of the hairy logic here gets a lot cleaner.
+       still have to count to get configures and removes right,
+       though... :(
+       (render_problems): added.  takes an rpmProblemSet, and adds it,
+       formatted, to the RCPackman error string.
+       (rc_rpmman_transact): massive rewriting.  now assembles an
+       install/remove transaction set, tests it, but then constructs two
+       more, an install only and remove only, to actually run them
+       separately.  please test heavily.
+
+2002-03-05  Joe Shaw  <joe@ximian.com>
+
+       * rc-channel.c (rc_xml_node_to_channel): Move the priority stuff
+       from here (basically parsing packageinfo.xml.gz) to...
+       (rc_channel_parse_xml): ... here (parsing channels.xml.gz).  Man,
+       these function names are confusing.
+
+2002-03-05  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-queue-item.h: Add concept of priority to queue items.      
+
+       * rc-queue-item.c (package_slist_to_string): Added back.
+       (install_item_to_string): Made more verbose.
+       (rc_queue_item_new_uninstall): Boost the priority of uninstall
+       items, so that they get processed first.
+       (install_item_process): If we have ->needed_by packages, and if
+       they are all marked as to-be-uninstalled, do nothing.  (This fixes
+       verification case #37.)
+
+       * rc-resolver-queue.c (rc_resolver_queue_process_once): Process
+       items in order of priority.
+
+       * rc-world.c (rc_world_remove_package): Added.  Allows a single
+       package to be removed from the RCWorld.
+       (remove_packages_generic): Added.  This is a static function for
+       removing packages from slists -- the code was originally in one of
+       the g_hash_table_foreach_remove callbacks, but I've split it out
+       to avoid some code duplication.
+       (remove_package_structs_generic): Added.  Same as above, except it
+       acts on package structs (RCPackageAndSpec, RCPackageAndDep)
+       instead of packages.
+
+2002-03-04  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-queue-item.c (rc_queue_item_uninstall_set_dep): Changed from
+       _add_dep; only allow one dep per uninstall item.
+       (require_item_process): s/_add_dep/_set_dep/
+       (conflict_process_cb): s/_add_dep/_set_dep/
+       (uninstall_item_process): Use rc_package_dep_to_str to set
+       dep_str.
+       (uninstall_item_destroy): There is no more dep slist to free.
+       (uninstall_item_to_string): If we have a dep, add it to the
+       string.
+       (uninstall_item_copy): Copy the single dep, not a list.
+
+       * rc-package-dep.c (rc_package_dep_to_str): Added.
+       (rc_package_dep_to_str_static): Added.
+
+2002-03-01  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-package-spec.c (rc_package_spec_get_type): Added.  Tries to
+       figure out whether or not a provide is virtual.
+
+       * rc-resolver-context.c (rc_resolver_context_new_child): Track
+       whether or not we want to allow conflicts w/ virtual provides.
+
+       * rc-queue-item.c (conflict_process_cb): Check our context whether
+       or not we should allow conflicts w/ virtual provides.
+
+       * rc-world.c (rc_world_add_package): Mark our self-provides as
+       being of type 'package'.
+
+       * rc-channel.c (rc_channel_parse_xml): Removed unused variable.
+
+       * rc-world.c (rc_world_check_providing_package): Handle Debian
+       'or'-dependencies.
+
+       * rc-resolver.c (rc_resolver_resolve_dependencies):
+       s/RC_EXTEMELY_NOISY/RC_SPEW/.  There is no reason to have two
+       separate "dump everything to the console with extreme prejudice"
+       environment variables.
+
+       * rc-resolver-queue.c (rc_resolver_queue_process): Ditto.
+
+2002-02-28  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-queue-item.c: Replaced several instances of
+       rc_package_spec_to_str with rc_package_to_str.
+
+       * rc-resolver.c (rc_resolver_resolve_dependencies): Added more
+       RC_EXTREMELY_NOISY spew.
+
+       * rc-resolver-context.c
+       (rc_resolver_context_get_channel_priority): Call
+       rc_channel_get_priority with the arguments in the correct order.
+       Doh!
+       (rc_resolver_context_new_child): OK, once and for all, we do need
+       to hash on package spec.
+
+       * rc-package.c (rc_package_to_str_static): Added.
+       (rc_package_to_str): Added.  Produces a string of the package
+       name w/ the channel name attached.
+
+       * rc-channel.c (rc_channel_get_priority): Fixed to make the
+       current channel implicitly subscribed.
+       (rc_channel_parse_xml): Don't try to read the channel priority
+       here...
+       (rc_xml_node_to_channel): ...do it here instead.  Looking at the
+       correct xmlNode can work wonders.
+
+       * rc-resolver-compare.c (rc_resolver_context_partial_cmp): Get all
+       inequalities pointed in the right direction, so we don't
+       accidentally favor worse solutions.
+       (rc_resolver_context_cmp): Ditto.
+
+       * rc-queue-item.c (install_item_process): Don't generated the
+       "needed-by" info on upgrades.
+       (require_item_process): When upgrading due to a codependency,
+       explicity attach a "needed-by" log item for the package that
+       triggering the upgrade.
+
+       * rc-resolver.c (rc_resolver_free): Free ->packages_to_verify.
+       (rc_resolver_verify_system): Added.  Adds all system packages to
+       ->packages_to_verify, then calls rc_resolver_resolve_dependencies.
+       (rc_resolver_resolve_dependencies): Iterate across
+       ->packages_to_verify and add them to our initial queue.
+
+       * rc-resolver-queue.c (rc_resolver_queue_add_package_to_verify):
+       Added.  Walks across the package's list of requires and conflicts
+       and converts them into queue items.
+
+       * rc-world.c (rc_world_foreach_package): Added.
+
+2002-02-28  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (load_rpm_syms): RPM 4.0.4 marked two functions that
+       we need as static, making them unavailable through dlsym.  The
+       answer turns out to be to dlsym a global virtual function table
+       and find the functions we need through absolute offset.  Ick.
+       (load_fake_syms): same fix, one less dlsym, for static linking
+       (rc_rpmman_init): add the RPM 4.0.4 specific stub file to the
+       list, use rpmEVR rather than RPMVERSION to get the version of the
+       RPM library.
+
+       * Makefile.am: build an RPM 4.0.4 specific stub file
+
+2002-02-27  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-package-info.c (rc_channel_parse_debian): Store packages
+       in our RCWorld as we parse them.
+
+       * rc-world.c (rc_world_foreach_providing_package): If we are
+       handed an or-dependency, split it up and call
+       rc_world_foreach_providing_package on each of the component
+       pieces.
+
+       * rc-resolver.c (rc_resolver_set_current_channel): Added.
+       (rc_resolver_add_subscribed_channel): Added.
+       (rc_resolver_resolve_dependencies): Store the current/subscribed
+       channel info in the context.
+
+       * rc-resolver-queue.c (copy_queue_except_for_branch): Get
+       priorities from the context instead of directly from the channel.
+
+       * rc-resolver-info.c (rc_resolver_info_merge): Use a hash to make
+       sure that our package list contains only unique entries when we
+       merge.
+       (rc_resolver_info_to_str): Add default stringifications for our
+       new types.
+       (rc_resolver_info_conflicts_with_new):
+       s/NEEDED_BY/CONFLICTS_WITH/.  The peril of cut&pasting code...
+       (rc_resolver_info_depends_on_new): Added.
+
+       * rc-resolver-context.c (rc_resolver_context_install_package):
+       Remove "favored" arg, get priorities from the new, improved
+       rc_resolver_context_get_channel_priority function.
+       (rc_resolver_context_upgrade_package): Ditto.
+       (rc_resolver_context_get_channel_priority): Added.  Use our
+       locally stored info about current/subscribed channels and
+       rc_channel_get_priority to compute priorities properly.
+
+       * rc-queue-item.c (rc_queue_item_free): Free pending info items.
+       (rc_queue_item_copy): Copy pending info items.
+       (rc_queue_item_add_info): Added.  Allows a pending info item to be
+       attached to a queue item.  The idea is that this info item will be
+       logged into the context if the queue item is successfully
+       processed.
+       (rc_queue_item_log_info): Added.  Moves any pending info items out
+       of the queue item and into the context.
+       (install_item_process): Use rc_r_c_install_package's new
+       signature.  Properly log our NEEDED_BY info.  Produce better
+       verbose logging in the case of upgrades.
+       (require_item_process): Log DEPENDS_ON info.
+       (conflict_process_cb): Log CONFLICTS_WITH info.
+       (uninstall_process_cb): Track the "lost" package in our require
+       queue item.
+       (uninstall_item_process): Log pending queue items on success.
+
+       * rc-channel.c (rc_channel_new): Set the various channel
+       priorities to -1, so that the default values will be used if no
+       other value is set.
+       (rc_channel_get_priority): Changed to return different priorities
+       depending on whether or not the channel is current or subscribed.
+
+2002-02-26  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-queue-item.c (codependent_pair): Recognize codependent pairs
+       by name.
+       (require_item_process): An evil optimization -- when doing an
+       upgrade involving codependency (that we can recognize via the
+       codependent_pair fn)q, don't explore the "remove" branch.
+       (uninstall_item_process): Avoid copying the list of require items,
+       instead just add them directly to the to the *new_items list.
+
+       * rc-package-spec.c (rc_package_spec_hash): As long as we are
+       optimizing, we might as well be able to do this hash without any
+       function calls.
+
+       * rc-resolver-context.c (rc_resolver_context_new_child): Since we
+       now do proper dup-checking in our rc_world_foreach functions, we
+       can go back to hashing on package pointers.
+       (rc_resolver_context_get_status): Cache the results of the last
+       get_status call, and return it w/o any hash lookups if we ask for
+       the same info in the next call.  This actually happens a lot, and
+       this optimization lets us avoid hash lookups in about 50% of all
+       cases.
+       (rc_resolver_context_set_status): Update the cache if we change
+       the status of the last package we called get_status on.
+
+2002-02-25  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-resolver-queue.c (rc_resolver_queue_add_package_to_install):
+       Remove used variable.
+
+       * rc-resolver-context.c (upgrade_pkg_cb): Make sure to_be_upgraded
+       isn't NULL.
+
+       * rc-queue-item.c (rc_queue_item_new_install): Make sure upgrades
+       != package.
+
+       * rc-resolver-queue.c (rc_resolver_queue_add_package_to_install):
+       We don't need to check if this install is an upgrade here, since
+       it now happens automatically when we construct a install item.
+
+       * rc-queue-item.c (rc_queue_item_new_install): Check if this is an
+       upgrade, and do the appropriate magic, every time we construct an
+       install item.
+
+       * rc-util.c (rc_maybe_merge_paths): g_strconcat-ing printf
+       format strings is not a good idea.
+
+       * rc-package-spec.c (rc_package_spec_hash): Constructing the whole
+       RCPackageSpec string only to call g_str_hash is pretty wasteful,
+       so I've changed this to build up a hash value out of the spec's
+       various string elements.
+       (rc_package_spec_to_str_static): Changed to just call
+       rc_package_spec_to_str.  This avoids a bunch of snprintfs, but
+       means that the previous pointer becomes invalid each time this is
+       called.  But this isn't really a problem, since that pointer would
+       contain the wrong answer anyway under the old implementation.
+       (rc_package_spec_version_to_str_static): Ditto.
+       (rc_package_spec_to_str): Replaced g_strdup_printf with
+       g_strconcat.
+       (rc_package_spec_version_to_str): Ditto.
+
+       * rc-queue-item.c: Replaced g_strdup_printf with g_strconcat in
+       a whole bunch of places.
+
+       * rc-resolver-context.c (rc_resolver_context_install_package):
+       Replaced g_strdup_printf with g_strconcat.
+       (rc_resolver_context_uninstall_package): Ditto.
+
+       * rc-util.c (rc_mkdir): Replaced g_strdup_printf with g_strconcat.
+       (rc_rmdir): Ditto.
+       (rc_is_program_in_path): Ditto.
+       (rc_maybe_merge_paths): Ditto.
+
+       * rc-resolver-context.c (rc_resolver_context_foreach_upgrade):
+       Implemented.
+       (rc_resolver_context_foreach_uninstall): Build a hash of all of
+       our upgrade-related removals, and use it to make sure that we
+       don't report and of those as uninstalls.
+
+       * rc-resolver-info.c (rc_resolver_info_merge): Merge misc info
+       items with identical message strings.
+
+       * rc-queue-item.c (install_item_process): Track the upgraded
+       package when we generate an uninstall item associated with an
+       upgrade.
+       (require_item_process): If we need to remove items because of lost
+       dependencies associated with an upgrade, make a branch and try
+       upgrading the to-be-removed items.  (This is the foo/foo-devel
+       co-dependency case.)
+       (require_item_process): The requiring package in the require item
+       is now a singleton, not a list.
+       (require_item_copy): Ditto.
+       (rc_queue_item_require_add_package): Ditto.
+       (uninstall_process_cb): Track the upgraded package.  Don't try to
+       consolidate require items --- consolidation will happen when info
+       items are merged.
+       (uninstall_item_process): Track the upgraded package.
+       (uninstall_item_copy): Ditto.
+       (rc_queue_item_uninstall_set_upgraded_to): Ditto.
+
+       * rc-resolver-context.c (rc_resolver_context_foreach_info): Add a
+       merging pass.
+       
+       * rc-resolver-info.c (rc_resolver_info_copy): Added.
+       (rc_resolver_info_conflicts_with_new): Added.
+
+       * rc-resolver-queue.c (rc_resolver_queue_process): 
+
+       * rc-world.c (rc_world_foreach_upgrade): Added.
+       (rc_world_add_package): Use _slist_insert instead of
+       _slist_insert_unique.
+
+2002-02-23  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-package-update.c (rc_xml_node_to_package_update): use
+       rc_maybe_merge_paths instead of g_strconcat, so that we can
+       handle absolute URLs in history file paths.
+
+2002-02-22  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-resolver-queue.c (rc_resolver_queue_add_package_to_install):
+       Print a message if we try to install an already-installed package.
+       (rc_resolver_queue_process): Spew lots of debugging info if
+       the RC_EXTREMELY_NOISY env variable is set.
+
+       * rc-package-info.c (rc_channel_parse_debian): Store the channel
+       in the RCPackages we construct.
+
+       * rc-world.c (rc_world_foreach_package_by_name): Filter out
+       non-installed duplicates of an installed package.
+       (rc_world_foreach_providing_package): Ditto.
+       (rc_world_check_providing_package): Ditto.
+       (rc_world_foreach_requiring_package): Ditto.
+
+       * rc-queue-item.c (conflict_process_cb): Check package equality
+       using rc_package_spec_equal, not pointer equality.
+
+       * rc-queue-item.c (uninstall_process_cb): Group multiple packages
+       with a common requirement.
+
+       * rc-world.c (remove_package_cb): Comment out rc_package_free.
+       Why does this fix our memory corruption problem?  Where else is it
+       being freed?
+       (rc_world_spew): Added.
+
+       * rc-resolver-context.c (dup_name_check_cb): Make sure we don't
+       mistake two identical packages for a parallel install situation.
+
+2002-02-21  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-channel.c: Removed misleading comment about priorities.
+
+       * rc-resolver-info.c (rc_resolver_info_to_str): Renamed from
+       rc_resolver_info_to_text.
+       (rc_resolver_info_packages_to_str): Added.  Return a string with
+       comma-separated list of the names of the packages in package_list.
+       (rc_resolver_info_needed_by_new): Added.
+       (rc_resolver_info_needed_add): Added.
+       (rc_resolver_info_needed_add_slist): Added.
+
+       * rc-resolver-context.c (rc_resolver_context_is_parallel_install):
+       Added.  Check to see if a package with the same name is
+       to-be-installed.
+       (rc_resolver_context_install_package): Move the parallel install
+       check logic into its own function.
+
+       * rc-queue-item.c (install_item_process): Make our text-string log
+       messages have priority _VERBOSE.  Log what packages need the
+       installed package.
+       (rc_queue_item_install_add_needed_by): Added.
+       (require_process_cb): Packages that would be parallel installs do
+       not satisfy requires, since they are uninstallable.
+       (require_item_process): Track the packages that this requirement
+       comes from by passing them along to the newly-created install
+       items.
+
+2002-02-20  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-resolver-queue.c (rc_resolver_queue_add_package_to_install):
+       If another version of the package is already installed, mark our
+       install queue item as being an upgrade.
+
+       * rc-resolver-context.c (rc_resolver_context_unref): Free info
+       items in log list.
+       (rc_resolver_context_install_package): Replaced log entries with
+       info items.
+       (rc_resolver_context_uninstall_package): Track if we are part of
+       an upgrade, adjust stats accordingly.  Replaced log entries with
+       info items.
+       (rc_resolver_context_invalidate): Replaced log entry with info
+       item.
+       (rc_resolver_context_add_info): Replaces _add_log_entry.
+       (rc_resolver_context_add_info_str): Added.  A convenience function
+       that creates a misc info item and adds it to the log.
+       (rc_resolver_context_foreach_info): Replaces _foreach_log_entry.
+       (rc_resolver_context_spew_info): Replaces _spew_log.
+
+       * rc-queue-item.c (install_item_process): If this is an upgrade,
+       add a request to remove the currently-installed version.
+       (rc_queue_item_install_set_upgrade_package): Added.  Specify
+       that this install is upgrading (or downgrading, for that matter)
+       the given package.
+       (require_item_process): Replaced log entry with info items.
+       (conflict_process_cb): Replaced log entries with info items.
+       (uninstall_item_process): Replaced log entries with info items.
+       (rc_queue_item_uninstall_is_part_of_upgrade): Added.  Indicates
+       that this uninstall is really half of an upgrade.
+
+       * rc-world.c (remove_package_struct_cb): Check that our_struct !=
+       NULL.
+
+       * rc-resolver-queue.c (rc_resolver_queue_add_package_to_install):
+       If there is another version of the package already installed,
+       remove the old version.  (In other words, do the right thing for
+       upgrades.)
+
+       * rc-resolver-context.c (rc_resolver_context_new_child): Hash by
+       package spec, not pointer.
+       (rc_resolver_context_install_package): Don't flag a package as
+       needing to be installed if another package of the same name is
+       already scheduled for installation.
+
+2002-02-18  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-resolver-queue.c (copy_queue_except_for_branch): Use new
+       generalized branches.
+       (rc_resolver_queue_split_first_branch): Use new generalized
+       branches.
+
+       * rc-resolver.c (rc_resolver_add_packages_to_install_from_slist): Added.
+       (rc_resolver_add_packages_to_remove_from_slist): Added.
+
+       * rc-resolver-context.c (rc_resolver_context_install_package):
+       Attach packages to log entries.
+       (rc_resolver_context_upgrade_package): Attach packages to log
+       entries.
+       (rc_resolver_context_uninstall_package): Attach packages to log
+       entries.
+       (rc_resolver_context_foreach_marked_package): Change callback
+       function type to RCMarkedPackageFn.
+       (rc_resolver_context_add_log_entry): Allow a package to be tied to
+       a log entry.
+       (rc_resolver_context_foreach_log_entry): Allow the log messages to
+       be selected by package.
+       (rc_resolver_context_log_to_string): Added.  Get the log messages
+       (possibly for a single package) as one big string.
+       (rc_resolver_context_foreach_install): Added.
+       (rc_resolver_context_foreach_uninstall): Added.
+       (rc_resolver_context_invalidate): Attach NULL package to log
+       entry.
+       (rc_resolver_context_spew_log): Changed for
+       rc_resolver_context_foreach_uninstall's new signature.
+
+       * rc-queue-item.c (rc_queue_item_is_redundant): Added.
+       (rc_queue_item_is_satisfied): Added.
+       (item_slist_to_string): Added.
+       (install_item_is_satisfied): Added.
+       (install_item_process): Attach package to log entry.
+       (install_item_destroy): Remove our needed-by list.
+       (install_item_copy): Copy some stuff I forgot to copy before.
+       Doh.
+       (rc_queue_item_new_install): Initialize ->is_satisfied.
+       (require_item_process): Attach packages to log entries.  Use the
+       new-style generalized branches.
+       (require_item_copy): Copy the remove-only flag.
+       (branch_item_process): Generalized processing no longer assumes
+       that a branch is just a set of installs.
+       (branch_item_destroy): Don't leak the branch items.
+       (branch_item_copy): Generalized.
+       (branch_item_to_string): Generalized.
+       (rc_queue_item_branch_add_item): Added, replaces
+       rc_queue_item_add_package.
+       (conflict_process_cb): Attach packages to log entries.
+       (uninstall_item_process): Attach packages to log entries.
+       (uninstall_item_copy): Copy the remove-only flag.
+
+       * rc-package.c: Include stdlib.h to get rid of warning.
+
+2002-02-18  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-world.c (rc_world_find_installed_version): Added.
+
+       * rc-resolver.c (rc_resolver_resolve_dependencies): When removing
+       packages, always do so in remove-only mode.
+
+       * rc-resolver-queue.c (rc_resolver_queue_add_package_to_remove):
+       Add remove_only_mode arg, which causes the approrpriate flag to be
+       set in the uninstall item that is added to the queue.
+
+       * rc-resolver-context.c (rc_resolver_context_package_is_absent):
+       Doh!  Replaced a == with a != in a g_return_val_if_fail.
+
+       * rc-queue-item.c (rc_queue_item_require_set_remove_only): Added.
+       (rc_queue_item_uninstall_set_remove_only): Added.
+       (require_item_process): Modified so that remove-only-mode require
+       items will only generate (set-remove-only) uninstall items, and
+       will never try to pull in alternative providers.
+       (uninstall_process_cb): Make sure that set-remove-only uninstall
+       items generate set-remove-only require items.
+
+2002-02-17  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-resolver.c (remove_head): The type of thing that really
+       should be one line in glib (and is in 2.0, IIRC).
+       (rc_resolver_resolve_dependencies): Store invalid solutions in
+       their own list.  The processing of pending_queues has been
+       re-designed to do on-the-fly scoring and pruning.
+       Also, I've dropped our iterator functions.  For now, just read
+       the lists and other data directly from the struct (ugh).
+
+       * rc-resolver-queue.c (copy_queue_except_for_branch): Take a
+       penalty value as an argument, and attach it to the created install
+       item.
+       (rc_resolver_queue_split_first_branch): Track penalties, pass them
+       along to copy_queue_except_for_branch.
+       
+       * rc-resolver-context.c (rc_resolver_context_new_child): Copy
+       stats from the parent.
+       (rc_resolver_context_set_status): I've moved the intelligence out
+       of this routine and into the _(un)?install_package functions.
+       (rc_resolver_context_get_status): Simplified, no longer recursive.
+       (rc_resolver_context_install_package): Added.  Updates info
+       relevant to scoring.
+       (rc_resolver_context_upgrade_package): Added.  Updates info
+       relevant to scoring.  Currently unused.
+       (rc_resolver_context_uninstall_package): Added.  Updates info
+       relevant to scoring.
+       (rc_resolver_context_add_channel_priority): Added.
+       (rc_resolver_context_add_log_entry): If the log entry duplicates
+       the previous entry, drop it.
+       (requirement_met_cb): Return TRUE until we find a match.
+       (rc_resolver_context_requirement_is_met): Changed to use
+       rc_world_check_providing_package.
+
+       * rc-queue-item.c (install_item_process): Changed to use
+       rc_resolver_context_install_package.
+       (rc_queue_item_install_set_channel_priority): Added.
+       (rc_queue_item_install_get_channel_penalty): Added.
+       (rc_queue_item_install_set_other_penalty): Added.
+       (rc_queue_item_install_get_other_penalty): Added.
+       (uninstall_item_process): Changed to use
+       rc_resolver_context_uninstall_package.
+
+       * rc-package.c (rc_package_is_installed): Added.
+       (rc_xml_node_to_package): Parse file size and installed size out
+       of the package XML.
+
+       * rc-channel.c (rc_channel_priority_parse): Added.  Convert a
+       string into a priority rating.
+       (rc_channel_new): Set ->priority and ->favored_priority to the
+       default values.
+       (rc_channel_get_priority): Added.  A simple accessor.
+       (rc_channel_get_favored_priority): Ditto.
+       (rc_channel_parse_xml): Parse channel priorities.
+
+       * rc-world.c (rc_world_check_providing_package): Added.  This is
+       like rc_world_foreach_providing_package, except that it terminates
+       when the callback function returns FALSE.
+       (rc_world_foreach_requiring_package): Deal with list items with
+       NULL data.
+       (rc_world_foreach_providing_package): Deal with list items with
+       NULL data.
+       (rc_world_remove_packages): Implemented.
+
+2002-02-15  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-queue-item.c (conflict_process_cb): Add a missing break that
+       was causing us to fall through into our default:
+       g_assert_not_reached () case.
+
+       * rc-channel.c (rc_xml_node_process): Moved our call to
+       rc_world_add_package down into the if (package) block so we don't
+       get warnings on empty channels.
+
+       * rc-channel.h: Added 'priority' to RCChannel struct.
+       (Still not used for anything.)
+
+       * rc-package.h: Added RCPackageAndSpecFn.
+
+       * rc-world.c: Finished initial implementation.
+
+       * rc-resolver-context.c: Finished initial implementation.
+
+       * rc-queue-item.c: Finished initial implementation.
+
+       * rc-resolver-queue.c: Finished initial implementation.
+
+       * libredcarpet.h: Including rc-resolver.h, rc-world.h.
+
+2002-02-12  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-resolver-queue.c: Added.  Still under development.
+
+       * rc-queue-item.c: Added.  Still under development.
+
+       * rc-resolver-context.c: Added.  Still under development.
+
+       * rc-world.c: Added.  Still under development.
+
+       * rc-package-dep.h: Added RCPackageAndDepFn typedef.
+
+       * rc-package.h: Added RCPackageFn typedef.
+
+2002-02-05  Jon Trowbridge  <trow@ximian.com>
+
+       * rc-channel.c: Removed RCSubchannel struct and functions.
+       (rc_channel_new): Initialize ->package, ->dep_table and
+       ->dep_name_table hashes.
+       (rc_channel_free): Free the ->package, ->dep_table and
+       ->dep_name_table hashes.  Removed subchannel stuff.
+       (rc_xml_node_process): This used to be rc_channel_get_subchannel.
+       Removed all subchannelisms.
+       (rc_xml_node_to_channel): Removed subchannel stuff.  Call
+       rc_xml_node_process to do the actual work.
+
+       * rc-deps-private.h: Remove pref argument from all prototypes.
+
+       * rc-deps-util.c (rc_dep_fix_system): Removed pref argument in
+       call to rc_dep_resolution_new.
+       (rc_dep_or_process_system_and_channels): Removed subchannel logic,
+       get channel directly from package.
+
+       * rc-deps.c: Drop pref arguments everywhere -- they were used for
+       selecting subchannels, which no longer exist.
+       (deps_find_provide): Get channel directly from package.
+       (deps_update_install_list): Get channel directly from package.
+
+       * rc-package-dep.c (rc_xml_node_to_package_dep): Removed libxml
+       version check, using ->xmlChildrenNode instead.
+
+       * rc-package-info.c: Renamed rc_subchannel_foo functions to
+       rc_channel_foo, and removed all subchannel-related logic.
+       (pkginfo_find_package_with_constraint): Removed subchannel-related
+       stuff, including the max_pref argument.
+       (pkginfo_find_package): Removed the max_pref argument and fix our
+       call to pkginfo_find_package_with_constraint.
+
+       * rc-package-set.c (rc_package_set_parse): Changed to use
+       ->xmlChildrenNode.
+
+       * rc-package-update.c (rc_xml_node_to_package_update): Get the
+       channel directly from the package struct.  Changed to use
+       ->xmlChildrenNode.
+
+       * rc-package.c (rc_package_copy): s/subchannel/channel/.
+       (rc_xml_node_to_package): s/subchannel/channel/.  Removed libxml
+       version check, using ->xmlChildrenNode instead.
+
+       * rc-package.h: Replace occurances of RCSubchannel by
+       RCChannel.
+
+       * rc-pretty-name.c (rc_pretty_name_parse_xml): Removed libxml
+       version check, using ->xmlRootNode and ->xmlChildrenNode instead.
+
+       * rc-rpmman.c (rc_rpmman_query_file): Wrap some unreachable code
+       in #if 0/#endif.
+
+       * xml-util.c (xml_get_value): Removed #if check for libxml version,
+       using ->xmlChildrenNode instead.
+
+2002-02-06  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: only look in unsubscribed channels if and only if
+       nothing appropriate was found in any subscribed channels.
+
+2002-01-29  Joe Shaw  <joe@ximian.com>
+
+       * rc-package-info.c (rc_subchannel_parse_helix): If we don't have
+       an XML document, we really shouldn't be continuing to parse that.
+       This function was crack-smoking.
+
+       * rc-util.c (rc_hash_table_slist_insert_unique): Fix a potential leak.
+
+2002-01-14  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_query_file): First check to see if the
+       file exists, and then try to open it, but bail out if it doesn't
+       work.
+
+2002-01-11  Joe Shaw  <joe@ximian.com>
+
+       * rc-debman.c (i18n_fixer): Set the PATH environment variable to
+       include /sbin, /usr/sbin, and /usr/local/sbin, where dpkg and
+       friends are located.  Fixes #18157.
+
+2002-01-04  Joe Shaw  <joe@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_transact): Add back in my RC_JUST_KIDDING
+       envvar that Ian backed out for some reason.  Boo!  Hiss!
+
+2001-12-17  Ian Peters  <itp@ximian.com>
+
+       * rc-deps.c: some stuff I don't understand
+
+2001-12-07  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c: fix the /usr/share/magic.mime problem, don't ask
+
+2001-11-20  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c: readd RPMPROB_FILTER_REPLACE[NEW|OLD]FILES for a
+       little while because of broken packages
+
+2001-11-08  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (parse_versions): take out an unnecessary assert
+       that caused problems for a customer :-)
+
+2001-11-08  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c, rc-deps.h: rc_dep_resolution_new now takes a flage as
+       to whether you will be doing an INSTALL or a REMOVE mainly with
+       this resolution.  If Install, it will try to resolve all
+       dependencies and will do its best to never remove packages.  If
+       REMOVE, it will remove things more aggressively.
+
+       * rc-deps-util.c: Update call to rc_dep_resolution_new.
+
+       * rc-rpmman.c: Add patch to ignore rpm epochs as appropriate to
+       conform to RPM behaviour.
+       
+2001-11-08  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c: get rid of RPMPROB_FILTER_REPLACEPKG,
+       _REPLACENEWFILES, and _REPLACEOLDFILES.  The only problem we're
+       left filtering is _OLDPACKAGE, which isn't really a problem.
+
+2001-11-06  Joe Shaw  <joe@ximian.com>
+
+       * rc-channel.[ch]: Remove the channel_select field from the
+       RCChannel struct.  Mmmm, bitrot.
+
+2001-10-30    <itp@ximian.com>
+
+       * rc-distro.c: add ydl 2.1 and suse 7.3
+
+2001-10-30  Joe Shaw  <joe@ximian.com>
+
+       * rc-channel.c (rc_channel_parse_xml): Get the new channel tier,
+       if it's there.
+
+2001-10-25  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: don't assume that only things which are an ANY
+       relation are a virtual provide; instead use the provide's virtual
+       setting.
+
+       * rc-package-dep.c: When verifying a spec, take into account rpm
+       conflicts and virtual provides.
+       
+2001-10-24  Joe Shaw  <joe@ximian.com>
+
+       * rc-package-update.c (rc_xml_node_to_package_update): Get the
+       HID.
+       * rc-package-update.h (RCPackageUpdate): add the HID.
+
+2001-10-17  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-util.c: oops, really make it work
+
+       * rc-util.c (rc_unompress_memory): Complain if zlib uncompression
+       fails.  This will require changes to the tools.
+
+2001-10-04  Ian Peters  <itp@ximian.com>
+
+       * Makefile.am: only build rc-dpkg-helper.so when dpkg support
+       enabled, only build the rpm helpers when non-static rpm support
+       enabled
+
+2001-10-04  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c, Makefile.am: change it one more time
+
+2001-10-04  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmamn.c, Makefile.am: change the .so file names -again- for
+       broken old rpm
+
+2001-10-04  Ian Peters  <itp@ximian.com>
+
+       * Makefile.am: add things to CLEANFILES in a few places
+
+2001-10-04  Ian Peters  <itp@ximian.com>
+
+       * make_stub.sh: simplified
+
+       * Makefile.am: new calling convention for make_stub.sh
+
+       * rc-package-dep.c, rc-package-info.c, rc-package-spec.c,
+       rc-package-spec.h: revert accidental commit
+
+2001-09-30  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: don't try to add packages if all we're doing is
+       removing them.
+
+2001-09-28  Joe Shaw  <joe@ximian.com>
+
+       * rc-debman.c (do_unpack): Don't change the "--no-act" parameter
+       (hence just "testing" an install) if we have the RC_JUST_KIDDING
+       environment variable set.
+
+       * rc-rpmman.c (rc_rpmman_transact): Set the transaction_flags to
+       RPMTRANS_FLAG_TEST if RC_JUST_KIDDING is set.
+
+2001-09-25  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: minor mem leak fixes, also make sure
+       deps_find_newer finds the biggest version package it can
+
+2001-09-24  Ian Peters  <itp@ximian.com>
+
+       * rc-packman.c: add some sanity checks to the rc_packman_transact
+       wrapper to check for duplicate installs, duplicate removes, and
+       install/removes of the same package
+
+2001-09-24  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: Don't add a package if we're removing a newer
+       version of it.
+
+2001-09-24  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c, rc-deps.h: give a reason when we abort, so the GUI
+       can display a useful message.
+
+2001-09-21  Ian Peters  <itp@ximian.com>
+
+       pulled in from red-carpet-1-1 branch
+
+       * rc-rpmman.c: fix a typo that resulted in memory corruption after
+       each install
+
+2001-09-21  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c: caught one of the odd counting cases -- in the case
+       of an install of an already installed package, we'll get a
+       configure, remove, and install callback event -- unless the
+       package of the same version is already installed, in which case
+       the remove event doesn't occur.  Note that this shouldn't happen
+       in the RC gui anyway, so it's probably a dependency bug as well,
+       but for correctness...
+
+2001-09-21  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c: check what version of RPM we're using before we add
+       a self-dependency -- RPM 4.0 and beyond don't need this
+
+2001-09-21  Ian Peters  <itp@ximian.com>
+
+       * rc-rpm-helper-1.so, rc-rpm-helper-2.so, rc-rpm-helper-3.so:
+       removed.
+
+       * [rpm].so.0, [rpm_rpmio].so.0, [rpm_rpmio_rpmdb]-4.0.3.so,
+       [rpm_rpmio_rpmdb].so: added
+
+       * Makefile.am, rc-rpmman.c: handle the new shared stubs.
+
+2001-09-20  Ian Peters  <itp@ximian.com>
+
+       * rc-rpm-helper-1.so, rc-rpm-helper-2.so, rc-rpm-helper-3.so:
+       rebuilt all of these using an amazingly simple and clever
+       technique I just now worked out.  We should be able to ship all of
+       our RC builds on i386 platforms using just --enable-backend-rpm,
+       which gives us near-maximal flexibility for dealing with the
+       various RPM versions.  I haven't bothered to fix the build process
+       to handle the other architectures, so we'll continue to ship those
+       static.  Joe, I apologize for making you have to redo the
+       installer stuff...
+
+2001-09-20  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: Also, do a sanity check of the results to make
+       sure we don't return packages with the same name in the install
+       list, or in the install/remove lists.
+
+2001-09-19  Ian Peters  <itp@ximian.com>
+
+       * rc-verification.c: pull up fixes
+
+2001-09-19  Ian Peters  <itp@ximian.com>
+
+       * rc-deps.c, rc-distro.c: fixes from red-carpet-1-1
+
+2001-09-19  Ian Peters  <itp@ximian.com>
+
+       * rc-deps.c: bug fix to multiple install problem as dictated by
+       vlad over a cell phone from europe
+
+       * rc-distro.c: mandrake 81 strings added
+
+       * rc-verification.c: check for ~/.gnupg, and if it doesn't exist,
+       attempt to run gpg --list-keys before verifying the signature.  If
+       gpg is unable to find ~/.gnupg, it creates it, and then aborts,
+       giving a spurious signature failure.
+
+2001-09-19  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c: lame hacks to avoid over/under counts during
+       transactions
+
+2001-09-19  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: Call deps_find_provide after adding a non-older package
+       in deps_find_provide, since it probably just added the package that
+       we want (if we wait for the outside loop to catch it, we might add
+       a bad package);  also use rc_package_slist_sort_by_spec_reverse to
+       get the latest versions of a package first.
+
+       * rc-package.c, rc-package.h: rc_package_slist_sort_by_spec_reverse,
+       and a secial static c_sucks_rc_package_spec_compare_reverse() to
+       inverse the sense of rc_package_spec_compare.
+
+2001-09-14  Ian Peters  <itp@ximian.com>
+
+       * Makefile.am: new rpm-helper .so files
+
+       * rc-rpmman.c, rc-rpmman.h: some rpmProblemString fixes, new .so
+       files
+
+2001-09-14  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.h: forgot the 04000* comparisons here
+
+2001-09-14  Ian Peters  <itp@ximian.com>
+
+       * rc-distro.c: add RH 7.2 support
+
+       * rc-rpmman.c: sigh, forgot all about that octal shit... get
+       rid of the leading 0 in the rpm version
+
+2001-09-13  Ian Peters  <itp@ximian.com>
+
+       * rc-rpm-helper-with-rpmio-and-rpmdb.so: another shared
+       object, works with RPM 4.0.3
+
+       * Makefile.am: dist and install
+       rc-rpm-helper-with-rpmio-and-rpmdb.so
+
+       * rc-rpmman.c, rc-rpmman.h: conditionalize a lot of stuff
+       on both the API and ABI version using both the preprocessor and
+       runtime checks.  Add the third shared object to the list of things
+       we attempt to dlopen.
+
+2001-08-27  Joe Shaw  <joe@ximian.com>
+
+       * rc-deps-util.c (rc_dep_string_to_or_dep_slist): Fix a crash that
+       would happen in the case where a munged string would come in as
+       (||package1|package2|package3&>=&1.0) and when processing the
+       first package (package1) it would strchr() for the '&' and get
+       the one in package3 and barf trying to allocate negative memory
+       because of bad pointer arithmetic.
+
+2001-08-17  Joe Shaw  <joe@ximian.com>
+
+       * rc-channel.c (rc_channel_parse_xml): Don't panic if there aren't
+       any channels. Sean found this.
+
+2001-08-17  Joe Shaw  <joe@ximian.com>
+
+       * rc-channel.c (rc_channel_parse_xml): Don't panic if there isn't
+       a distro_target.
+
+2001-08-17  Joe Shaw  <joe@ximian.com>
+
+       * rc-channel.c (rc_xml_node_to_subchannel): Don't puke on empty
+       subchannels.
+
+2001-08-16  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-package-dep.c: Add print statements for RELATION_NOT_EQUAL
+       and RELATION_NONE
+
+2001-08-15  Joe Shaw  <joe@ximian.com>
+
+       * Merge the redcarpet-parternet branch into HEAD.
+
+2001-08-04  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: create the system packages hash tables even if
+       we don't have system packages, to avoid null hash table
+       lookup warnings later on.
+
+2001-08-01  Ian Peters  <itp@ximian.com>
+
+       * rc-distro.c: undo, sigh
+
+       * rc-distro.c: s/sun4/sun4u/
+
+2001-08-01  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * libredcarpet/src/rc-package-dep.c: Don't return TRUE
+       if RC_RELATION_NONE on a dep with no release/version, argh.
+
+2001-07-31  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps-util.c: Don't keep rof as a static struct,
+       and make sure we update the subchannel's hash tables
+       if they exist.
+
+       * rc-deps-util.c: Keep rof as a static struct, so that
+       we can call dep_or_process multiple times.
+
+       * rc-deps.c: Oops, get rid of references to a package
+       that probably just got deleted.  Pesky FMR's and SEGV's!
+       I wish C didn't suck.
+
+2001-07-27  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: Oops, sort a list correctly
+
+       * rc-deps-private.h, rc-deps.c: Don't blindly reject
+       all but the first package in a list
+
+2001-07-26  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-distro.c: Add solaris 5.7
+
+       * rc-deps.c: Fixed memory corruption resulting from using
+       uninitialized variable; also fixes bug with removes
+       and the "control center" issue
+
+2001-07-26  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-rpmman.c: fix a memleak
+
+2001-07-26  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: Try to find another package that can
+       provide a missing dependency before removing packages
+       that depend on it.
+
+2001-07-25  Joe Shaw  <joe@ximian.com>
+
+       * rc-channel.h (RCChannel): Rename subs_url and unsubs_url to
+       subs_file and unsubs_file respectively, for consistency (and to
+       intentionally break compatibility).
+
+       * rc-channel.c (rc_channel_parse_xml): Build as much of a path
+       as possible for file_path, icon_file, pkginfo_file, pkgset_file,
+       subs_file and unsubs_file.
+       (rc_channel_free): (un)subs_url -> (un)subs_file
+
+       * rc-util.c (rc_build_url): Kill.
+       (rc_maybe_merge_paths): Takes a "parent path" and a "child path"
+       and merges them, depending on the semantics of the child path.
+       FQURLs and absolute child paths are left in tact, and relative child
+       paths are merged with the parent path.
+       (rc_url_is_absolute): Add https.
+       
+2001-07-25  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-package-spec.c, rc-package-spec.h: New
+       rc_package_spec_to_str_static and version_to_str_static
+       functions.
+
+       * rc-deps.c, rc-deps.h: Use new _static functions for all
+       debugging output to avoid memory leaks.  Also plug some more
+       leaks where the RCDepProvide struct wasn't getting freed,
+       and where some deps that were created weren't being kept
+       track of.
+
+       * rc-deps.c: Fix a good chunk of memory leaks, thanks Purify!
+
+       * rc-line-buf.c: Minor array bounds read fix.
+
+2001-07-24  Ian Peters  <itp@ximian.com>
+
+       * Makefile.am: look for *, not *.o, in the static libraries we
+       unpack, as libdb-3.1.a isn't make up of .o files, apparently
+
+2001-07-24  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_depends_fill): add /usr/local/bin and
+       /usr/local/sbin to the list of directories for which we honor
+       files as provisions, needed to support msc linux according to
+       peter -- note that this shouldn't be necessary, as packages are
+       not supposed to provide files in the /usr/local tree.  Bah.
+
+2001-07-24  Vladimir Vukicevic  <vladimir@rain.ximian.com>
+
+       * rc-deps.c: deep copy the dep structure in a DAP; I'm really
+       going to need to get purify working to make sure everything
+       gets cleaned up right.  Also use rpmish from rc-package-dep
+       to decide whether to call debian_find_self_provides.
+
+       * rc-package-dep.c: make rpmish be not static
+
+2001-07-24  Joe Shaw  <joe@ximian.com>
+
+       * rc-packman.h: Fix an erroneous comment about a signal's parameters.
+
+2001-07-24  Vladimir Vukicevic <vladimir@rain.ximian.com>
+
+       * rc-deps.c: Don't do a stupid check for a dependency
+       based on the name of the package; use the new function
+       that checks the package's dependencies.
+
+2001-07-23  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: erm, don't return the same system package
+       multiple times, causing a nasty loop
+
+2001-07-20  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-distro.c: added suse 7.2 string
+
+       * rc-deps.c: Got rid of fix_missing, needs testing; changed
+       rc_package_dep_verify_relation to use new
+       rc_package_dep_verify_package_relation
+
+       * rc-package-dep.c, rc-package-dep.h: Added new
+       rc_package_dep_verify_package_relation call.
+
+2001-07-19  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (transact_cb): send the basename of the package
+       we're installing, not the full path
+       (transact_cb): double the install_total and add the install_extra
+       to account for a) packages we're installing being both configured
+       and installed, and b) packages we're installing that are really
+       upgrades being removed, configured, and installed.
+
+2001-07-12  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps-private.h, rc-deps.c: Add an extra parameter to
+       upgrade_or_remove so that we can create correct remove info.
+
+2001-07-12  Ian Peters  <itp@ximian.com>
+
+       * rc-debman.c: #if 0 out some more code for more testing later
+
+2001-07-12  Ian Peters  <itp@ximian.com>
+
+       * rc-debman.c: #if 0 out the last commit until Vlad and I work
+       through some issues
+
+2001-07-12  Ian Peters  <itp@ximian.com>
+
+       * rc-debman.c (query_all_read_line_cb): some code to handle
+       Conflicts: + Replaces: == Provides:
+
+2001-07-11  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: Fix merging of require short-circuit; it isn't working
+       for some reason.
+
+2001-07-11  Ian Peters  <itp@ximian.com>
+
+       * rc-debman.c: #if 0 out some currently unused code
+
+       * rc-packman.c: fix two warnings
+
+2001-07-11  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps-private, rc-deps.c, rc-deps-util.c, rc-md5.c, rc-package-dep.h,
+       rc-package-spec.h, rc-pretty-name.c, rc-util.c: Fix compiler warnings
+
+2001-07-11  Ian Peters  <itp@ximian.com>
+
+       * rc-deps.c (deps_create_extra_info): s/_append/_prepend
+
+       * rc-util.c (rc_slist_unique): actually return out at the end ;-)
+
+2001-07-11  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: Oops, we need to look at what a package provides,
+       not what it requires, when figuring out what other packages
+       depend on it.
+       
+       * rc-deps.c: Oops, rc_hash_table_slist_insert_unique needs
+       a comparison function argument
+
+       * rc-deps.c, rc-package-dep.c, rc-package-spec.c, rc-package-spec.h:
+       Some speed optimizations
+
+2001-07-11  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c: #if 0 the rpmGetRpmlibProvides for now, as this
+       interface -is- only in rpm 4.0.2 as I feared
+
+2001-07-11  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_section_to_package_section): fix stupid
+       crash
+
+2001-07-11  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c, rc-deps.h: Add some helper functions to give better
+       info about what packages depend on others to the GUI (include
+       packages that are pulled in because of things like library provides
+       instead of just the package name itself)
+
+       * rc-util.c, rc-util.h: rc_slist_unique()
+
+2001-07-11  Ian Peters  <itp@ximian.com>
+
+       * rc-debman.c: added the fake version hack to the mark purge step,
+       now renamed to mark_status.  This should make RC more resilient in
+       the face of strangely ordered packages.
+
+       * rc-distro.c: applied patch from Rodney to add support for
+       Mandrake 8.0, SuSE 7.1, and LinuxPPC 2000 Q4.
+
+       * rc-package-info.c (debian_packages_helper): correctly offset the
+       buf pointer by the length of the initial string when calling
+       rc_debman_fill_depends so we stop getting completely bogus
+       dependency information.
+
+2001-07-11  Ian Peters  <itp@ximian.com>
+
+       * rc-debman-general.h: rc_debman_fill_depends no longer takes a
+       list to append to, but instead returns a new list
+
+       * rc-debman-general.c: no more list paramater, instead declare and
+       return a new RCPackageSList *
+
+       * rc-package-dep.h: add the pre field to the RCPackageDep struct
+       -- when set, this is a Pre-Depends, only used in Debian
+
+       * rc-package-dep.c (rc_package_dep_new): set pre to FALSE by
+       default
+       (rc_package_dep_copy): copy the pre field
+
+       * rc-package-info.c (debian_packages_helper): call
+       rc_debman_fill_depends correctly, concatenate the returned list
+
+       * rc-packman-private.h: get rid of the features member
+
+       * rc-package.h: cosmetic fixes
+
+       * rc-package.c (rc_package_new): set package->section to MISC
+
+       * rc-packman.h: remove the RCPackmanFeatures enum, no longer used.
+       Add the RCPackmanStep enum, which describes what kind of step
+       occured during a transaction_step.  Ditch all of the configure_*
+       signals, and update/reorder the arguments to the transact_*
+       signals.
+       (rc_packman_get_features): removed
+
+       * rc-packman.c: remove CONFIGURE_* from the class signals.  Remove
+       reference to ->priv->features.
+       (rc_packman_get_features): removed
+
+       * rc-rpmman.h: add rpmGetRpmlibProvides to the RCRpmman struct
+
+       * rc-rpmman.c: s/g_slist_append/g_slist_prepend/ in lots of places
+       (transact_cb): fixes to emit the correct signals -- no more
+       configure_*, lots more transact_* with a few extra arguments.
+       (rc_rpmman_section_to_package_section): fixes to stop using
+       g_strsplit, stop using g_strcasecmp, stop being stupid.
+       (parse_versions): stop using g_strsplit, stop being so slow and
+       stupid.
+       (in_set): fix a warning
+       (depends_fill_helper): added, single code path to read a variety
+       of dependency information from the Header
+       (rc_rpmman_depends_fill): rewritten to use depends_fill_helper,
+       now much shorter and fewer bugs
+       (rc_rpmman_query_all): use rpmGetRpmlibProvides to create the
+       rpmlib-internal package, to provide all of the "rpmlib(...)" 
+       provides used for internal rpm package format versioning
+       (load_rpm_syms): grab rpmGetRpmlibProvides
+       (load_fake_syms): grab rpmGetRpmlibProvides
+       (rc_rpmman_init): no more features
+
+       * rc-debman.c (split_status): added, breaks a status line into
+       three words
+       (verify_status_read_line_cb): use split_status where possible,
+       downcase some words and stop using g_strcasecmp, rewrote the logic
+       to detect acceptable/unacceptable status lines
+       (do_purge_read_line_cb): updates to new signal prototype
+       (do_unpack_read_line_cb): emit new signal, including step_type
+       (do_configure_read_line_cb): emit new signal
+       (node_new): added
+       (node_free): added
+       (node_add_prereq): added
+       (construct_graph): added
+       (process_predeps): added
+       (resolve_graph): added
+       (order_packages): added.  uses the previous helper functions to
+       construct the dependency graph of the pre-deps and walk it using a
+       BFS to correctly order packages.  Not actually used yet, sigh.
+       (rc_debman_transact): new signals
+       (query_all_read_line_cb): speedups including getting rid of
+       g_strcasecmp, some small bug fixes, fixes to use
+       rc_debman_fill_depends correctly.
+
+2001-07-10  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-debman.c: get rid of warning
+
+2001-06-25  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: Don't be fascist about removing packages;
+       give 'em a chance to get upgraded.
+
+       * rc-deps-util.c: finish up package_hash_helper.
+
+2001-06-21  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-line-buf.c: debugging output die die die
+
+       * rc-deps.c, rc-deps-private.h: minor cleanup
+
+       * rc-deps-util.c: minor cleanup
+
+2001-06-20  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-package-info.c: Oops, dep_name_table needs slists to be
+       hashed into it, not packages
+
+       * rc-deps-util.c: Added the one line to make debian work
+
+       * rc-deps.c, rc-deps-private.h: Fixed some memory corruption
+       double-free issues.
+
+       * rc-channel.c: Fixed compile warning
+
+2001-06-19  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-package-info.c: forgot to merge
+
+       * merge in from libredcarpet-or-dep-fixup branch
+       
+       * Makefile.am: dist rc-deps-private.h
+       
+2001-06-19  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-channel.c, rc-channel.h: Added dep_name_table along with dep_table
+       which is indexed by name not by spec.  Also changed both to have values
+       which are slists of packages, instead of just one package.  dep_table
+       might go away in the near future.
+
+       * rc-debman-general.c, rc-debman.c: Updated to handle or deps using
+       the rc_dep_or interface.
+
+       * rc-deps-private.h: added.
+
+       * rc-deps-util.c, rc-deps-util.h: renamed rc_deps_fix_system to
+       rc_dep_fix_system;  added rc_dep_or interface functions, and first
+       pass at debian package list munging to provide the right things.
+
+       * rc-deps.c: Updated to understand and use dep_name_table correctly.
+
+       * rc-package-dep.c, rc-package-dep.h: fixed xml parsing bits to create
+       ors
+
+       * rc-util.c, rc-util.h: added utility functions to manage hash tables
+       of slists.
+       
+       * rc-debug-misc.c: minor typo fixes
+
+2001-06-07  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-channel.c, rc-debman-general.c, rc-debug-misc.c,
+       rc-debug-misc.h, rc-debug-misc.c, rc-deps-util.c,
+       rc-deps.c, rc-deps.h, rc-distro.c, rc-package-dep.h,
+       rc-package-info.c, rc-rpmman.c: 
+
+       Changes to make a RCPackageDep into what used to be a
+       RCPackageDepItem.  RCPackageDep isn't a SList anymore; the debian
+       backend hasn't been fully fixed to understand this -- as it is now,
+       it will only use the first part of an or dep.  To be fixed later.
+
+2001-06-14  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_transact):
+       s/RPMDBI_PACKAGES/RPMDBI_AVAILABLE/
+
+       * rc-rpmman-types.h: remove the unneeded definition of
+       RPMDBI_AVAILABLE
+
+2001-06-14  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_transact): use RPMDBI_PACKAGES, an rpm4
+       specific define, to decide what kind of rpmProblem we have at our
+       disposal.
+
+2001-06-14  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (transaction_add_install_packages): clarify the
+       INSTALL_UPGRADE bit
+       (rc_rpmman_transact): fix the rpmProblem fuckup
+       (split_rpm): s/close/rc_close/
+       (load_fake_syms): fix two typos, we never statically link against
+       rpm4 so this never came up before
+
+       * rc-md5.c (rc_md5): s/close/rc_close/
+
+2001-05-15  Joe Shaw  <joe@ximian.com>
+
+       * rc-packman-private.h (RCPackmanPrivate): Add an extension field for
+       the default file extension. Added prototype for
+       rc_packman_set_file_extension().
+
+       * rc-packman.c (rc_packman_init): Set extension to NULL.
+       (rc_packman_set_file_extension): Added.
+       (rc_packman_get_file_extension): Added.
+       
+       * rc-debman.c (rc_debman_init): Set the file extension to "deb".
+
+       * rc-rpmman.c (rc_rpmman_init): Set the file extension to "rpm".
+
+2001-05-14  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-channel.c (rc_channel_parse_xml): if file_path isn't specified,
+       don't copy path into it -- it should be null, since path is always
+       prepended.
+       
+2001-05-07  Joe Shaw  <joe@ximian.com>
+
+       * rc-md5.c (rc_md5): Close the file descriptor when we're done. Plugs
+       the infamous fd leak.
+
+2001-05-01  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: Oops. fix bug where some dependants weren't getting
+       correctly upgraded.
+
+2001-05-01  Joe Shaw  <joe@ximian.com>
+
+       * rc-distro.c: Change the string for Yellow Dog because it was totally
+       wrong before.
+
+2001-04-23  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c: if the provide we read out of the
+       RPMTAG_PROVIDENAME is the same as the name of the package we're
+       in, don't include the provide, since it looks like rpmlib picked
+       up the same hack we did.
+
+2001-04-23  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c: add some stupid /opt/gnome SuSE directories
+
+2001-04-23  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: sort of reverted older commit where we were passing a
+       dep to upgrade_or_remove package -- this doesn't make sense,
+       as we're trying to upgrade the /package/ not the dep -- so, the case
+       of foo-dev 1.0 requiring foo 1.0; we don't want to know about the
+       foo 1.0 dependency, we just want a newer foo.
+
+       * rc-deps.c: don't pull in an older version while trying to remove
+       the intermediate failed dependency on system package version; we
+       need to check if the "existing" package is newer, not merely
+       equal.  I now realize that this makes no sense to anyone but me,
+       and I might as well have written about pink elephants and blue
+       clouds in this changelog.
+       
+
+2001-04-23  Ian Peters  <itp@ximian.com>
+
+       * rc-debman.c: a questionable but apparently necessary fix to no
+       longer break up the unpack onto multiple lines.  Ugh.
+
+2001-04-22  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-package.c: It helps to return a new packages array
+       from rc_package_slist_remove_older_duplicates.
+
+       * rc-package.c, rc-package.h: Added
+       rc_package_slist_remove_older_duplicates.
+
+2001-04-21  Ian Peters  <itp@ximian.com>
+
+       * rc-distro.c: cleaned up, put YDL 1.2 in the list, removed
+       Caldera, fixed a LinuxPPC naming issue
+
+2001-04-21  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: some speed fixes; fixed the doubling bug (oops), also
+       we're a bit more smarter in finding an upgrade/remove package case.
+
+       * rc-package-dep.c: On rpm systems, don't merge dep items with
+       different epochs since the dependency semantics with epochs on
+       rpm are too weird.
+
+2001-04-20  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: only mark provides to avoid in provide_require_check
+       if nothing succeeds; otherwise we run the risk of marking something
+       as avoid that's really providing what we want.
+
+2001-04-20  Ian Peters  <itp@ximian.com>
+
+       * rc-debman.c: fix my last commit
+
+2001-04-20  Ian Peters  <itp@ximian.com>
+
+       * rc-debman.c: in rc_debman_verify, check the size of the file as
+       well
+
+2001-04-20  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-distro.c: We can't create a hash in dtype->extra_hash
+       if dtype is NULL.  "Oops."
+
+       * rc-distro.c, rc-distro.h: add a RC_DISTRO_NO_GLIB conditional
+       section, for compiling rc-distro without a glib dependency.
+
+       * rc-distro.c: Mandrake uses -i586, debian potato is
+       debian-potato-i386, not -22-.
+
+       * rc-distro.c: recognize RH 7.1 by 7.1 in redhat-release, not
+       7.0.9
+
+2001-04-19  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: oops. process system packages /before/ the package
+       that's about to be installed, so that we catch conflicts and the
+       like correctly.
+
+       * rc-deps.c: stopped calling deps_fix_missing in loop.  This
+       probably isn't necessary any more; will need a good chunk of testing
+       to make sure, though.
+
+2001-04-19  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: don't make a conflict in some cases, but wait until
+       the end to see if it can indeed be provided
+
+2001-04-18  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (split_rpm): close the payload file when we're done
+       writing to it.  This will fix a fd leak, as well as allowing the
+       unlink to actually succeed, meaning that the disk space will be
+       returned to the user.  Reported to me from tigert via joe.
+
+2001-04-18  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: oops, get rid of some fprintfs
+
+       * rc-deps.c: Make sure that the require is added with the joined
+       name before we start adding other things, so that we don't get into
+       a nasty loop.  Also break out of a loop of daps after we
+       upgrade_or_remove, as we probably lost the pointer at this point.
+       The duplicate dep bug exists now.
+
+2001-04-18  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (fill_depends): attempt to handle both the the pre
+       3.0.3 and 3.0.4 and above cases for file dependencies.  This
+       commit may be broken; I'll revert this commit if testing doesn't
+       pan out.
+
+2001-04-17  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (fill_depends): when adding the contents of an RPM
+       file in the provides list, handle the rpm < 3.0.4 case where we
+       don't have RPMTAG_BASENAMES, RPMTAG_DIRNAMES, or
+       RPMTAG_DIRINDEXES.  Here we use the RPMTAG_FILENAMES tag, which
+       was renamed to RPMTAG_OLDFILENAMES in rpm 3.0.4 and above, and no
+       longer works.
+
+2001-04-16  Ian Peters  <itp@ximian.com>
+
+       * rc-line-buf.c: corrected bizarre ben-bug behaviour
+
+       * rc-rpmman.c: add my file-deps hack, we can remove this later if
+       people object too much
+
+2001-04-13  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c: when rpmRunTransactions returns < 0, don't treat
+       this as a bad error.  Stupid rpm.
+
+2001-04-10  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c, rc-rpmman.h: introduce rc_rpm_open, rc_rpm_close,
+       and rc_rpm_read to wrap fdOpen, fdClose, fdRead, Fopen, Fclose,
+       and Fread.  jbj makes me upset sometimes.  Also get those symbols
+       from rpmlib when necessary.
+
+2001-04-10  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman-types.h: the borrowed FDIO struct from rpmio.h
+
+       * rc-rpmman.c: if we can't get fdOpen, maybe that's because fdOpen
+       is actually fdio->_open.  did you ever think of that?
+
+2001-04-09  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: oops, fix an infinite loop case..
+
+2001-04-09  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c: if we can't open rc-rpm-helper.so, try
+       rc-rpm-helper-with-rpmio.so, not rc-rpm-helper.so again.  I suck.
+
+2001-04-05  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c, rc-rpmman.h: rename fd* to rc_fd*, because jbj is
+       an idiot.  fixes a bug that only shows up on rpm 3.0.4.  god what
+       a fucker.
+
+2001-04-04  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c: sigh, s/RPMTAG_NAMES/RPMTAG_NAME/, this is the
+       problem with editing code you can't actually compile.
+       
+2001-04-04  Ian Peters  <itp@ximian.com>
+
+       * Makefile.am: whoops, fix the rpmlead and signature references
+
+2001-04-04  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c: the rpmlead and signature includes were the same
+       for rpm 3.0.x and 4.0.x, so just include the one copy regardless
+       of rpm version
+
+       * rpmlead-3-0-x.h, rpmlead-4-0-x.h, signature-3-0-x.h,
+       signature-4-0-x.h: removed
+
+       * rpm-rpmlead.h, rpm-signature.h: added
+
+2001-04-04  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.h, rc-rpmman.c: comment out all references to Ferror
+       for the time being.  i was only using this twice, and in both
+       places if there's an error fdOpen should just return NULL anyway,
+       so this seems harmless.  this was required because rpm 3.0.3 lacks
+       Ferror.  sigh.
+
+2001-04-04  Ian Peters  <itp@ximian.com>
+
+       * rc-packman.h, rc-packman.c: added rc_packman_set_libdir and
+       rc_libdir, which let you configure the directory that rc-debman
+       and rc-rpmman look for the rc-*-helper.so files.
+
+       * rc-debman.h (rc_debman_set_helper): removed
+
+       * rc-debman.c (rc_debman_set_helper): removed
+       use rc_libdir where appropriate
+
+       * rc-rpmman.c: use rc_libdir to find the rc-rpm-helper*.so files
+
+2001-04-04  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_init): remove unused variable
+
+2001-04-04  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_init): reverse the order that we dlopen
+       the rc-rpm-helper files in.  this is a weak attempt to get around
+       a potential glibc bug, this shouldn't affect how anything else
+       goes.
+
+2001-04-03  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_init): d'oh, it's rc-rpm-helper.so not
+       rpm-rpm-helper.so
+
+2001-04-03  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (vercmp): add a hack to correctly sort/compare alpha
+       and numeric chunks, so that ximian.1 is larger than 0_helix_1.
+
+2001-04-03  Ian Peters  <itp@ximian.com>
+
+       * rc-md5.c: #include <config.h> to pick up on the endian check
+
+       * rc-rpmman.c: #if 0 out some code that just causes memprof to get
+       mad at me.  It's not like rpmlib is ever going to free this shit
+       anyway.
+
+2001-04-02  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: Fixed an unreported conflict case. Oops.
+       Not sure if this breaks anything else, shouldn't...
+
+2001-04-01  Ian Peters  <itp@ximian.com>
+
+       * Makefile.am: only add rpmhelperdir and rpmhelper_DATA if
+       ENABLE_RPM and not STATIC_RPM.  don't get rid of libredcarpettmp.a
+       at the end of the libredcarpet.a STATIC_RPM case -- i don't know
+       why i did this in the first place, and now it doesn't get rebuilt
+       every time you pass over this target.  i think.  automake is still
+       my bitch.
+
+2001-04-01  Ian Peters  <itp@ximian.com>
+
+       * Makefile.am: add rc-rpmman-types.h to rpm_sources.  add
+       rc-rpm-helper-with-rpmio.so and rc-rpm-helper.so to EXTRA_DIST.
+       Get rid of helperdir and helper_DATA, and conditionally use
+       rpmhelperdir, rpmhelper_DATA, dpkghelperdir, dpkghelper_DATA.
+       conditionally compile rc-dpkg-helper.c into rc-dpkg-helper.so,
+       otherwise just touch this file.  remove libredcarpet.a in
+       clean-local.  automake is now my bitch.
+
+2001-04-01  Ian Peters  <itp@ximian.com>
+
+       * Makefile.am: pick more proper names for the rpm .so files
+
+       * rc-rpmman.c: use those more proper names
+
+       * rc-rpm-helper.so, rc-rpm-helper-with-rpmio.so: here are those
+       more proper names we were speaking of
+
+2001-04-01  Ian Peters  <itp@ximian.com>
+
+       * Makefile.am: hacked it up to parse RPM_STATIC_LIBS and do some
+       ar magic to put the object files from those libraries into
+       libredcarpet.a.
+
+       * rc-rpmman.c: if RC_RPM4 is defined in the STATIC_RPM case, use
+       the rpm4 symbols, otherwise rpm3
+
+2001-03-30  Ian Peters  <itp@ximian.com>
+
+       * Makefile.am: dist rpm-sucks-with-rpmio.so and
+       rpm-sucks-without-rpmio.so
+
+       * rc-rpmman.h: include gmodule.h.  Make major_, minor_, and
+       micro_version gint instead of guint.  Optionally include a GModule
+       for the rpm_lib if we're using the dlopen hack.
+
+       * rc-rpmman.c: if RC_NO_RPM_DB is set, don't try to close the
+       database on destroy.  Possibly g_module_close the rpm_lib on
+       destroy.  Store the rpm_lib GModule in the rpmman struct.
+       g_module_open rpm-sucks-with-rpmio.so or
+       rpm-sucks-without-rpmio.so, not librpm.so and librpmio.so
+       directly.
+       (parse_rpm_version): correctly rip a version string, like x.y.z,
+       into major, minor, and micro parts.
+
+       * rpm-sucks-with-rpmio.so, rpm-sucks-without-rpmio.so: little
+       shared objects that link against the assorted rpm libraries.
+       These are generated with:
+               ld -shared -o rpm-sucks-with[out]-rpmio.so \
+               -lrpm [-lrpmio] -lpopt
+
+2001-03-30  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: Got rid of a stray fprintf
+
+       * rc-package-dep.c: Make dep_to_str take an arg of '2' if you
+       want html-ized symbols (&lt; instead of <, etc.)  It's a gint
+       now instead of a boolean.
+
+2001-03-30  Ian Peters  <itp@ximian.com>
+
+       * Makefile.am: if we're building the static version, do the evil
+       hack, otherwise don't, just build the libredcarpet.a
+
+       * rc-rpmman-types.h: added.  evil file with types we need to
+       compile on either rpm3 or rpm4 base platforms.
+
+       * rc-rpmman.c, rc-rpmman.h: eww.  either dlopen the librpm.so file
+       and read symbols out of it, or use the statically linked versions.
+       wrap all rpm functions through function pointers in the rpmman
+       struct.
+
+2001-03-29  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c (deps_find_best_package_for_dep): Doh. Don't iterate
+       over the variable you just made a copy of in a temporary iterator.
+       
+       * rc-deps.c (deps_find_provide):  Only upgrade at most one package
+       per pass, since we might have the same package in there twice
+       at this point and we don't want to remove the wrong thing.
+
+2001-03-29  Ian Peters  <itp@ximian.com>
+
+       * rc-debman.c, rc-verification.c, rc-debman.h, rc-verification.h:
+       add some nasty hacks so that joe can override the location of the
+       .so and the .gpg files
+
+2001-03-27  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c (deps_add_anonymous_package): Do a bit of sanity
+       checking, make sure we never add an anonymous package that already
+       exists in some other form.
+       (deps_find_provide): don't assume that just because we found a
+       newer package for fixing a pdi that it will indeed fix it -- check
+       to make sure that package hasn't already been added to the list.
+
+2001-03-27  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (split_rpm): no need to set *md5sum to NULL
+       (rc_rpmman_verify): initialize md5sum to NULL, fixes BUG:1890,
+       BUG:2002
+
+       * rc-packman.c: make the marshaller static void to shut the whiny
+       compiler up ;-)
+
+2001-03-21  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c, rc-deps.h: Add creating of extra_info structures for
+       why packages need to be installed/upgraded.
+
+2001-03-21  Joe Shaw  <joe@ximain.com>
+
+       * rc-distro.c (distro_types[]): Change the "extra_stuff" parameters of
+       the distros.
+       (rc_figure_distro): Added a hash table to the RCDistroType struct
+       called extra_hash and parse the extra_stuff string here.
+       (rc_distro_option_lookup): Added. Looks up an option in the extra_hash
+       hash table.
+
+2001-03-20  Joe Shaw  <joe@ximian.com>
+
+       * rc-debman.c (rc_debman_verify): Do not crash if package->history
+       is NULL; don't do the md5sum if so.
+
+2001-03-20  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-package-info.c: When parsing debian packages.gz files, set
+       the installed_size on the update, not on the package -- this fixes
+       the debian package size calculation bug.
+
+2001-03-19  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps-util.c: Oopsie!  Data allocated outside
+       of a loop should /not/ be freed inside the loop.
+
+2001-03-16  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c: moved back to the older deprecated but still
+       functioning rpmio api.  I think we maybe compile on RPM 3.0.3 now?
+
+2001-03-16  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_transact): switch back to "\n" instead of
+       "<br>" in the error strings, we'll handle this in the GUI.  New
+       approach to handling all of the different RPMSENSE_FOO defines,
+       try to avoid the ?? relation.
+
+2001-03-13  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_transact): put "<br>" instead of "\n"
+       into error strings, sigh
+
+2001-03-12  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (vercmp): handle the broken "mdk" stuff
+
+2001-03-12  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_read_header): revert last, we'll fix it
+       in vercmp instead, otherwise users would see this in the GUI
+
+2001-03-12  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_read_header): handle the broken "mdk"
+       parts of the release when dealing with Mandrake, sigh
+
+2001-03-09  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_transact): cast the transact_cb to
+       rpmCallbackFunction to avoid one last warning, since Vlad went to
+       all this trouble
+
+2001-03-09  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_transact): g_string_sprintfa probably
+       wants a GString as the first argument
+
+2001-03-09  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps-util.c, rc-deps.c, rc-deps.h, rc-pretty-name.c: Made
+       these warning clean.  Also cought a bug in rc-deps.c (oops!)
+
+       * rc-package-section.c, rc-package-section.h: Created
+       rc_package_section_to_user_string ().
+
+2001-03-08  Ian Peters  <itp@ximian.com>
+
+       * rc-debman.c (do_unpack_read_line_cb): handle "Unpacking
+       replacement foo" as well as "Unpacking foo"
+       move the verify_status stuff to the top of the file to fix a
+       warning
+
+2001-03-08  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_init): only open the database for writing
+       if we're root; otherwise open the database for reading only
+
+2001-03-08  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_transact): avoid using the
+       rpmErrorCallback stuff, instead use the rpmProblemSet information
+       as appropriate given the return value of rpmRunTransactions.
+       Let's see if this approach works any more reliably.
+
+2001-03-07  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-package-spec.c, rc-package-spec.h: Added
+       rc_package_spec_slist_find_name -- to search
+       for a name in a list of packages, for example.
+
+2001-03-07  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_transact): so this should work for
+       reporting conflict errors through the rc_packman_set_error pathway
+
+       * rc-rpmman.c (rc_rpmman_transact): some loving to the rpm
+       dependencies reporting stuff.  It still just dumps it to stderr,
+       but we'll work on that.
+
+       * rc-rpmman.c (transaction_add_remove_packages): don't shadow the
+       definition of count and trample all over things.  D'oh.
+
+       * rc-packman.c: define my marshaller correctly to avoid stupid
+       warnings.  La la la.
+
+       * rc-rpmman.c (rc_rpmman_transact): correctly initialize elements
+       of state to avoid a segfault, and then some nasty counting errors.
+
+2001-03-07  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps-util.c, rc-deps-util.h: Some code for getting nice
+       user-style error strings about missing packages and conflicts.
+
+       * rc-package-spec.c, rc-package-spec.h: Created
+       rc_package_spec_version_to_str.
+
+       * rc-package-dep.h: Minor comment.
+
+2001-03-07  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (transaction_add_install_packages): guint instead of
+       gboolean, return the expected number of package installations, 0
+       on error
+       (transaction_add_remove_packages): same as above, more pertinent
+       given the multi-install problem addressed on 3/5.  Some other
+       random cleanups / clarifications when handling rpm return values
+       to hopefully be more clear about what's an error and what's not.
+       (rc_rpmman_transact): put state on the stack so we don't need to
+       worry about leaking it, I was leaking it before.  Get
+       install_total and remove_total from _add_install_packages and
+       _add_remove_packages.  Pass it by reference into the callback.
+       Only add install and remove packages if install_packages or
+       remove_packages are non-NULL.  General clarifications.
+
+2001-03-06  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (transaction_add_remove_packages): move the
+       rpmdbFreeIterator call to outside of the while look, I'm a moron,
+       and remove a spurious call to rpmdbNextIterator, I'm a moron
+       (rc_rpmman_query_all): remove an unneeded call to headerFree, and
+       free the iterator at the end of the scan
+
+2001-03-05  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (transaction_add_remove_packages): comment out the
+       code paths that error out when multiple packages match the string
+       we're removing on.  Apparently, in the real world this isn't such
+       an error case.  Also, for RPM 4.0 make sure we remove all packages
+       which match the label.
+
+2001-03-04  Ian Peters  <itp@ximian.com>
+
+       * rc-line-buf.c (rc_line_buf_cb): handle G_IO_ERR in addition to
+       G_IO_HUP, perhaps this will fix the defunct dpkg problem.  I don't
+       know how to recreate, so this is just a guess, but it makes sense
+       to me.
+
+2001-02-28  Ian Peters  <itp@ximian.com>
+
+       * rc-debman.c (i18n_fixer): added.  fixes the language issues with
+       dpkg I think.  Switch to new RCPackman signals
+
+       * rc-packman.c, rc-packman.h: make sane the signals RCPackman
+       emits
+
+       * rc-rpmman.c, rc-rpmman.h: use these new sane signals
+
+2001-02-27  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: ewpz. don't get rid of old provides conflicts if the
+       new one is the same as the old one.
+
+       * rc-deps.c: updated rant
+
+       * rc-deps.c: Get rid of old provides conflicts if there is a new one
+       coming in, doh.
+
+       * rc-deps.c: Fix typo causing segfault due to a variable being NULL
+
+2001-02-26  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: Made remove and install work correctly. Removes are
+       correctly partial now as well.
+
+       * rc-package-dep.c: undef'd DEBUG -- it spews way too much info than
+       necessary at -d 6
+
+       * rc-deps.c, rc-deps.h: New nifty partial tree stuff.  Should work,
+       I hope.  Any package that is installed on the system is assumed to be
+       "ok", and its dependencies are not checked.
+
+       * rc-deps-util.c: Call rc_dep_resolution_resolve_system
+
+       * rc-distro.c: add linuxppc
+       
+       * rc-rpmman.c: Changed a break to a continue to make the
+       verrev-string splitting thing work.
+
+2001-02-25  Ian Peters  <itp@ximian.com>
+
+       * Makefile.am: add -DLIBDIR=... to the INCLUDES line, and install
+       rc-dpkg-helper.so into $(libdir)/redcarpet
+
+       * rc-debman-private.h: make the status_file member const
+
+       * rc-debman.c: grab the helper out of LIBDIR instead of SHAREDIR,
+       access the status_file and rc_status_file from the debman
+       consistantly
+
+       * rc-rpmman.h: rename db to read_db for clarity
+
+       * rc-rpmman.c: s/db/read_db/ where appropriate.  Open the rpm
+       database O_RDONLY initially, hold this lock while RC is running.
+       (rc_rpmman_transact): open the rpm database O_RDWR and use this
+       for creating and running the transaction.
+
+2001-02-24  Joe Shaw  <joe@ximian.com>
+
+       * rc-distro.c (rc_figure_distro): Don't error out if we can't
+       determine what architecture the user is on. Instead return NULL and
+       let the front-end deal with it.
+       
+       * rc-distman.c (rc_distman_new): Ditto, except with the distro instead
+       of the arch. (BUG:1425)
+
+2001-02-20  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps-util.c, rc-deps-util.h: GPL message
+
+       * rc-md5.c: license notice
+
+2001-02-20  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_transact):
+       s/install_flags/transaction_flags/
+
+       * rc-rpmman.c (rc_rpmman_transact): add some install_flags and
+       problem_filter action, woowoo
+
+2001-02-19  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * Makefile.am: oops, fix typo for dist
+
+       * rc-package-dep.c: rpm sucks my ass and ignores epochs and/or releases
+       in comparisons if they're not specified in the dependency -- so now
+       we do that for all deps, not just equals.
+
+       * rc-deps-util.c: Oops. Remove all but the /newest/ duplicate,
+       not all but the oldest (doh!)
+
+2001-02-16  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps-util.c, rc-deps-util.h: New files that have some verification
+       stuff in them.
+
+       * rc-package.c, rc-package.h: rc_package_slist_find_duplicates (for
+       verification)
+
+       * Makefile.am: Add rc-deps-util.[ch]
+
+2001-02-12  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-package-set.h: Fix #endif to get rid of compiler warning
+
+       * rc-deps.c: Attempt to fix brokenness introduced by earlier
+       commit.  Removes are more intelligent and robust now (we can use
+       upgrade_or_remove knowing that the remove will happen corerctly
+       later).
+
+       * rc-debug-misc.c, rc-debug-misc.h: Added debug_rc_package_slist_dump.
+
+2001-02-10  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: Do more intelligent checking when deciding what to
+       remove due to a conflict.  Set the channels before populating
+       hashes with system pkgs, in case something needs to be fixed. Also
+       protect against installing the same package multiple times.  This
+       needs some testing love.
+
+2001-02-09  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_transact): check the number of conflicts
+       as well as the return code, don't I suck
+
+2001-02-09  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: Fix conflict resolution (fixes Mandrake 7.0 bug)
+
+2001-02-08  Joe Shaw  <joe@ximian.com>
+
+       * rc-distro.c (distro_figurers): Move Mandrake ahead of Red Hat, 
+       because Mandrake (7.0, anyway) has /etc/redhat-release.
+
+2001-02-08  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-distro.c: Oops. check for architecture the "correct" correct way.
+
+       * rc-deps.c: Fixed rpm breakage introduced.
+
+       * rc-deps.c: Okay, so even more fixications. Will test on redhat.
+
+2001-02-07  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.h: oops, this one too
+
+       * rc-deps.c: More fixications for debian. All known breakage cases don't
+       break now.
+
+       * rc-deps.c: Fix for installing packages that conflict with eachother in the
+       install step.
+
+2001-02-07  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_section_to_package_section): stop leaking
+       and give it love
+
+2001-02-07  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_section_to_package_section): added.  don't look at this function
+       (rc_rpmman_read_header): use it here
+
+2001-02-06  Joe Shaw  <joe@ximian.com>
+
+       * rc-package-importance.c: Ditch RC_IMPORTANCE_NEW and RC_IMPORTANT_MAX
+
+2001-02-06  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: Fixed a few debian issues...
+
+2001-02-06  Joe Shaw  <joe@ximian.com>
+
+       * rc-distro.c: Add Caldera to distro_figurers and distro_types.
+
+2001-02-06  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: Fix for fixing RPM systems.  Debian might
+       feel ignored.
+
+2001-02-05  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c: finish moving the db into the RCRpmman struct
+
+2001-02-02  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: Yay for typos. Made debian conflicts (mostly) work
+       again.  Nuked a single line so a list wasn't getting looked up
+       and was always null..
+
+2001-02-01  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c: bite me
+
+       * rc-rpmman.h: move the rpmdb into the RCRpmman struct
+
+       * rc-rpmman.c: remove all calls to rpmdbOpen, rpmdbClose, etc.
+       (rc_rpmman_init): rpmdbOpen here
+       (rc_rpmman_destroy): rpmdbClose here
+       (rc_rpmman_transact): check the rpmRunTransactions return code and
+       do something intelligent with it
+
+2001-01-31  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: Made redhat 6 and 7 work. Yay. Broke things
+       on debian. Boo.
+
+
+2001-01-31  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_error_cb): Stupid rpmlib doesn't
+       differentiate between fatal and non-fatal errors
+
+2001-01-31  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_transact): add a call to rpmdepCheck on
+       the transaction before we try to run it, duh
+
+2001-01-30  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * Makefile.am: use $srcdir for dpkg-helper to make distcheck
+       correctly.
+
+       * rc-deps.c: EEEEK. What was I thinking? Unbreak deps on redhat
+       (and possibly lots on debian too).
+
+       * rc-package-info.c: minor align fix
+
+2001-01-30  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (vercmp): try again
+
+2001-01-30  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (vercmp): fixed to be more like the one in rpm4,
+       fixes the xinetd bug on rh7
+
+2001-01-30  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: Tasty treats for debian users. Less crash, more happy!
+       Kozmo can't touch this!
+
+2001-01-30  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (transact_cb): with a hack hack here and a hack hack
+       there, here a hack, there a hack, everywhere a hack hack...
+
+2001-01-30  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c, rc-deps.h: More yum yum fixes. Shouldn't
+       crash now, purify is happy.. also added some _frees
+       so that we can recover that memory usage!
+
+2001-01-29  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: ewpz. don't get stuck in an infinite iteration
+       when removing a require at some point.
+
+2001-01-29  Ian Peters  <itp@ximian.com>
+
+       * rc-debman.c (make_unpack_commands): correctly sysconf for
+       ARG_MAX instead of guessing
+
+2001-01-29  Joe Shaw  <joe@ximian.com>
+
+       * rc-packman.c (rc_packman_get_error): If there is no packman object,
+       that's a fatal error.
+
+2001-01-29  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_transact): get rid of a broken
+       transaction step, add some rpmError handling, etc
+
+       * Makefile.am: add $(GLIB_CFLAGS) to the includes
+
+2001-01-29  Ian Peters  <itp@ximian.com>
+
+       * rc-verification.c (rc_verify_gpg): set --logger-fd to 1 instead
+       of 2, which is the fd the RCLineBuf is listening on.  It's ok,
+       since it'll ignore hte lines that don't begin with [GNUPG:], and
+       this shuts up the
+       I'm-gpg-I-won't-shut-up-even-with-the-quiet-option-crap that
+       everyone has complained about.
+
+2001-01-29  Joe Shaw  <joe@ximian.com>
+
+       * rc-channel.h: Added pkgset_file and pkgset_compressed.
+
+       * rc-channel.c (rc_channel_parse_xml): Parse pkgset_file and
+       pkgset_compressed.
+       (rc_channel_free): Free pkgset_file and pkgset_compressed.
+
+       * rc-pretty-name.c (rc_pretty_name_lookup): Handle the case if
+       the hash table is NULL.
+
+2001-01-29  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-package.c: do de de
+
+       * rc-package.c, rc-package.h: Add
+       rc_package_slist_sort_by_pretty_name.
+
+       * rc-deps.c: la la la
+
+       * rc-deps.c: Okay, so, try to do some sort of conflict
+       notification.
+
+       * rc-deps.c, rc-deps.h: Oops. count /correctly/ for the recursion.
+       Also add notification of abort.
+
+       * rc-pretty-name.c: get rid of debug fprintf
+
+2001-01-29  Ian Peters  <itp@ximian.com>
+
+       * rc-debman.c: pass some carefully chosen --force-foo options to
+       dpkg to avoid failures on fairly benign situations
+
+2001-01-29  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * Makefile.am, rc-pretty-name.c, rc-pretty-name.h, libredcarpet.h:
+       Pretty names, pretty names.
+
+       * rc-distro.c: Figure out that debian is x86, assbarn.
+
+2001-01-28  Ian Peters  <itp@ximian.com>
+
+       * rc-distman.c: change the ENABLE_RPM3 / ENABLE_RPM4 to ENABLE_RPM
+
+2001-01-28  Vladimir Vukicevic  <vladimir@ximian.com>
+
+       * rc-deps.c: Lots of yummy fixes.  Removes work better,
+       debian works better, etc.
+
+       * rc-distro.c: added mdk 7.2
+
+2001-01-26  Ian Peters  <itp@ximian.com>
+
+       * rc-debman.c (make_unpack_commands): overhauled, made it use
+       const strings, since that's all that was ever there, a little more
+       efficient I think
+       (do_unpack): make all dpkg --unpack commands once first with the
+       --no-act option, and only if this succeeds do we proceed to
+       actually screw things up
+       (rc_debman_init): add call to rc_package_dep_system_is_rpmish
+
+       * rc-rpmman.c (rc_rpmman_init): add call to
+       rc_package_dep_system_is_rpmish
+
+2001-01-26  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-package-dep.c, rc-package-dep.h: New
+       rc_package_dep_system_is_rpmish call.
+
+       * rc-deps.c: VASTLY improved debian dependency code.  Conflits
+       are moslty handled correctly.  Debian stupid-self-conflicts are
+       handled.  Packages are correctly uninstalled.  The code itself
+       has a lot of cruftiness laying around; it's going to need some
+       massaging to look pretty, but it, apparently, works.
+
+       * rc-deps.h: added dep_print_results
+       
+       * rc-debug-misc.c, rc-debug-misc.h: Moved dep_print_results into
+       rc-deps.c.
+
+       * rc-package-dep.c: Oops, keep iterating the list, silly!
+
+       * rc-package-dep.h: new warning about RCPackageDepItem
+
+       * rc-package-info.c: fixed some formatting bugs.
+
+       * ChangeLog: Fixed itp's HR blunder.
+
+2001-01-25  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_query): BLEEP me.  I hate rpmlib.  Not
+       finding something in a database isn't a failure, it's a successful
+       search.
+
+2001-01-25  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-deps.c: oops. don't remove the list we're traversing
+       from under us.
+
+2001-01-25  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-deps.c, rc-deps.h: More yummy fixes.  I'm feeling much more
+       confident about debian now.  gaim-gnome $!@# doesn't work, still.
+       I know why, just haven't poked the right place to fix it.
+
+2001-01-24  Ian Peters  <itp@ximian.com>
+
+       * rc-package-info.c (debian_packages_helper): Instead of "No
+       information available", we instead say "Upstream Debian release"
+
+       * rc-debman.c (do_unpack): add the --auto-deconfigure option to
+       the unpack line
+
+2001-01-24  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c: global cleanup, pkg to package, p to packman, hdr
+       to header, etc
+       (GTKFLUSH): added this macro to flush pending gtk events
+       (transact_cb): add calls to GTKFLUSH after every signal emission
+       (transaction_add_install_packages): renamed, cleaned up, add lots
+       of calls to rc_packman_set_error
+       (transaction_add_remove_packages): ditto
+       (rc_rpmman_transact): updated to name changes, cleanup, error
+       handling
+       (split_rpm): added, does much of the work that used to be in
+       rc_rpmman_verify
+       (rc_rpmman_verify): call split_rpm, factor the code better
+
+2001-01-24  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-package-dep.c: If you're going to use autoconf config.h
+       flags in your code, it helps to include config.h.  It also
+       helps to get the right name of the variable.
+
+2001-01-23  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-package-dep.c: Use rpmish semantics only if RPM is compiled in
+
+       * rc-deps.c: use rc_package_slist_sort_by_spec, not the one that
+       got renamed to _by_name!
+
+       * rc-package-spec.c, rc-package-spec.h: rc_package_spec_compare
+
+       * rc-package.c, rc-package.h: rc_package_slist_sort_by_spec
+
+2001-01-23  Ian Peters  <itp@ximian.com>
+
+       * red-carpet.gpg: added keys for Red Hat, Caldera, TurboLinux,
+       Linux Mandrake, and SuSE
+
+2001-01-23  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-distro.c: erm, get it right.
+
+       * rc-distro.c: Add Scyld Beowulf 2.0
+
+       * rc-package.c: Hmmm. You really -can't- strcmp() two
+       RCPackage *'s, no matter how much you try.
+
+2001-01-23  Ian Peters  <itp@ximian.com>
+
+       * rc-debman.c (do_purge): s/dpkg-helper/rc-dpkg-helper/
+       (do_unpack): ditto
+       (do_configure): ditto
+
+2001-01-23  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-package-spec.c, rc-package-spec.h: I want
+       (g-slist-find-custom requestd_pkgs pkg
+               (lambda (a b) (not (package-spec-equal a b))))
+       (Added package_spec_not_equal)
+
+2001-01-23  Ian Peters  <itp@ximian.com>
+
+       * rc-packman.c (rc_packman_query): remove busy check
+       (rc_packman_query_file): remove busy check
+       (rc_packman_query_all): remove busy check
+       (rc_packman_verify): remove busy check
+       (rc_packman_find_file): remove busy check
+
+2001-01-23  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c: add install_extra to InstallState
+       (transact_cb): add the install_extra to the transaction total.
+       Only switch to the configuring state if we're installing things.
+       (rc_rpmman_transact): calculate the install_extra by querying if
+       packages to be installed have older already installed versions
+
+2001-01-23  Ian Peters  <itp@ximian.com>
+
+       * rc-packman.c (rc_packman_query): comment out busy check
+       (rc_packman_query_file): comment out busy check
+       (rc_packman_query_all): comment out busy check
+       (rc_packman_verify): comment out busy check
+       (rc_packman_find_file): comment out busy check
+
+2001-01-23  Ian Peters  <itp@ximian.com>
+
+       * rc-rpmman.c (rc_rpmman_transact): first pass at code to handle
+       the additional transactions generated by upgrading rpm packages
+
+2001-01-23  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-debug-misc.c, rc-debug-misc.h: Add an optional debug level
+       to printing routines.
+
+       * rc-deps.c, rc-deps.h: Revert to a little older version which works
+       well for redhat, has some issues for debian.
+
+       * rc-package-dep.c: Change verify_and_relation to take an is_virtual
+       parameter, for debian.  Also some epoch/release hacks for RPM.
+
+       * rc-package-info.c: Add the is_virtual stuff to find_package.
+
+2001-01-23  Ian Peters  <itp@helixcode.com>
+
+       * rc-rpmman.c: replaced some tabs with the correct number of
+       spaces
+       (rc_rpmman_query): back to using RPMDBI_LABEL, I guess
+       (rc_rpmman_find_file): nothing changed here; I just wanted to
+       point out that my first attempt at writing this for rpm4 worked.
+       ;-)
+
+2001-01-23  Ian Peters  <itp@helixcode.com>
+
+       * rc-rpmman.c (rc_rpmman_query): s/RPMDBI_LABEL/RPMDBI_NAME/,
+       after conversation with msw
+       (rc_rpmman_find_file): rpm4 version initial pass, let's see if
+       this works
+
+2001-01-22  Ian Peters  <itp@helixcode.com>
+
+       * rc-channel.h: distro_target is now a GSList* of gchar*, not just
+       gchar*
+
+       * rc-channel.c: as above; split the xml distro_target on : to get
+       a list of distros to work with.  Basically this is channel
+       aliasing; we can now say
+       distro_target="redhat-60-i386:redhat-61-i386:redhat-62-i386" and
+       it'll just work
+
+2001-01-22  Ian Peters  <itp@helixcode.com>
+
+       * rc-rpmman.c (rc_rpmman_find_file): stubbed out for rpm4, need to
+       talk to msw.  fixed a memory leak in the rpm3 version
+
+2001-01-22  Ian Peters  <itp@helixcode.com>
+
+       * rc-rpmman.c (rc_rpmman_find_file): added.  rpm3 only right now,
+       I'll test it and then write rpm4
+
+       * rc-debman.c (rc_debman_find_file): add one last
+       rc_packman_set_error
+
+2001-01-22  Ian Peters  <itp@helixcode.com>
+
+       * rc-debman.c (rc_debman_find_file): add some rc_packman_set_error
+       calls where appropriate
+
+2001-01-22  Ian Peters  <itp@helixcode.com>
+
+       * rc-rpmman.c: remove some spurious rpm includes
+
+2001-01-22  Ian Peters  <itp@helixcode.com>
+
+       * rc-verification.c (rc_verify_gpg): don't pass the
+       --no-auto-key-retrieve option, as it does not appear to be present
+       in gpg 1.0.1 on RH6.2.  Initialize the verification as
+       RC_VERIFICATION_STATUS_UNDEF instead of the default,
+       RC_VERIFICATION_STATUS_FAIL
+
+2001-01-22  Ian Peters  <itp@helixcode.com>
+
+       * rc-channel.c, rc-channel.h, rc-debman-general.c,
+       rc-debman-general.h, rc-debman-private.h, rc-debman.h,
+       rc-debug-misc.c, rc-distman.c, rc-line-buf-private.h,
+       rc-line-buf.c, rc-pakcage-dep.c, rc-package-importance.c,
+       rc-package-info.c, rc-package-section.c, rc-package-set.c,
+       rc-package-set.h, rc-package-spec.c, rc-package-update.c,
+       rc-package-update.h, rc-package.c, rc-package.h,
+       rc-packman-private.h, rc-packman.c, rc-packman.h, rc-rpmman.c,
+       rc-rpmman.h, rc-util.c, rc-verification.c, xml-util.h: fixed some
+       include files
+
+2001-01-21  Ian Peters  <itp@helixcode.com>
+
+       * libredcarpet.h: this hasn't been maintained in a while, so I
+       just fixed it
+
+2001-01-21  Ian Peters  <itp@helixcode.com>
+
+       * rc-dpkg-helper.c: moved from dpkg-helper.c
+
+       * Makefile.am: s/dpkg-helper/rc-dpkg-helper/g
+
+2001-01-21  Ian Peters  <itp@helixcode.com>
+
+       * dpkg-helper.c, libredcarpet.h, rc-channel.c, rc-channel.h,
+       rc-debman-general.c, rc-debman-general.h, rc-debman-private.h,
+       rc-debman.c, rc-debman.h, rc-debug-misc.c, rc-debug-misc.h,
+       rc-debug.c, rc-debug.h, rc-deps.c, rc-deps.h, rc-distman.c,
+       rc-distman.h, rc-distro.c, rc-distro.h, rc-line-buf-private.h,
+       rc-line-buf.c, rc-line-buf.h, rc-package-dep.c, rc-package-dep.h,
+       rc-package-importance.c, rc-package-importance.h,
+       rc-package-info.c, rc-package-info.h, rc-package-section.c,
+       rc-package-section.h, rc-package-set.c, rc-package-set.h,
+       rc-package-spec.c, rc-package-spec.h, rc-package-update.c,
+       rc-package-update.h, rc-package.c, rc-package.h,
+       rc-packman-private.h, rc-packman.c, rc-packman.h, rc-rpmman.c,
+       rc-rpmman.h, rc-util.c, rc-util.h, rc-verification-private.h,
+       rc-verification.c, rc-verification.h, xml-util.c, xml-util.h:
+       fixed licensing and copyright
+
+2001-01-21  Ian Peters  <itp@helixcode.com>
+
+       * rc-debman.c (do_purge): check if dpkg exists in /usr/bin/dpkg
+       before trying to run it
+       (do_unpack): ditto
+       (do_configure): ditto
+
+2001-01-21  Ian Peters  <itp@helixcode.com>
+
+       * rc-verification.c (gpg_read_line_cb): don't create the
+       verification in several places, it was already created and passed
+       in initialized
+       (rc_verify_gpg): create the RCVerification, initialize it
+       correctly, return an RC_VERIFICATION_STATUS_UNDEF instead of NULL
+       if we fail for some reason.  Fucking check if gpg is in the PATH
+       before we blindly exec it like the dumbass I am.  Closes mothra
+       #something or other.  execlp the gpg_command instead of "gpg".  If
+       exec fails, _exit instead of returning
+
+       * rc-util.c (rc_is_program_in_path): added rc_file_exists, which I
+       shamelessly stole from gnome-libs
+
+       * rc-util.h: added rc_file_exists
+
+2001-01-19  Ian Peters  <itp@helixcode.com>
+
+       * rc-package-info.c (debian_packages_helper): replace strcmp mess
+       with call to rc_debman_section_to_package_section
+
+       * rc-package-importance.c, rc-package-importance.h: added.
+       contains the RCPackageImportance stuff moved from
+       rc-package-update.[ch], and optimized a bit.
+
+       * rc-package-update.c, rc-package-update.h: remove
+       RCPackageImportance stuff.
+
+       * Makefile.am: add rc-package-importance.[ch] to
+       libredcarpet_a_SOURCES
+
+       * rc-package-update.h: rename SECTION_* to RC_SECTION_*
+
+       * rc-package-update.c: ditto.
+       (rc_package_update_to_string): change strings output from
+       SECTION_FOO to foo
+       (rc_string_to_package_update): ditto
+
+       * rc-debman-general.c (rc_debman_section_to_package_section):
+       s/SECTION_/RC_SECTION_/
+
+       * rc-rpmman.c (rc_rpmman_check_match): s/SECTION_/RC_SECTION_/
+
+2001-01-19  Ian Peters  <itp@helixcode.com>
+
+       * rc-package-update.c (rc_xml_node_to_package_update):
+       s/"installed_size"/"installedsize"/ so we stop getting installed
+       size's of 0
+
+2001-01-18  Ian Peters  <itp@helixcode.com>
+
+       * red-carpet.gpg: added.  contains our public key, so far
+
+       * Makefile.am: install red-carpet.gpg in $(datadir)/redcarpet, and
+       put it in EXTRA_DIST
+
+2001-01-18  Ian Peters  <itp@helixcode.com>
+
+       * rc-deps.c, rc-deps.h (rc_dep_resolution_new): remove the packman
+       paramater
+       (rc_dep_set_packman): added
+
+2001-01-18  Ian Peters  <itp@helixcode.com>
+
+       * rc-package-section.c, rc-package-section.h: added.  Some stuff
+       moved out of rc-package.[ch]
+
+       * Makefile.am: add rc-package-section.[ch] to
+       libredcarpet_a_SOURCES
+
+       * rc-packman-private.h, rc-packman.c
+       (rc_packman_generic_version_compare): Added.  Compares to
+       RCPackageSpec's given a strcmp-like comparison function
+
+       * rc-rpmman.c (vercmp): added.  The hacked up vercmp function
+       originally stolen from rpm, freshly moved from rc-package-spec.c,
+       with a few more changes
+       (rc_rpmman_version_compare): added.  Call
+       rc_packman_generic_version_compare with vercmp
+
+       * rc-debman.c (verrevcmp): added.  Stolen from dpkg, much like
+       vercmp from rpm
+       (rc_debman_version_compare): added.  Call
+       rc_packman_generic_version_compare with verrevcmp
+       (rc_debman_class_init): insert rc_debman_version_compare into
+       packman_class
+
+       * rc-debman-general.c (rc_debman_parse_version): alloca the input
+       before we modify it to protect against const strings, changes as
+       appropriate.  Find the /last/, not the first '-' when we split
+       version and release apart, bug discoverd in gdm
+       2.0-0.beta4-helix1.12.
+
+       * rc-channel.c, rc-channel.h (rc_find_best_package): moved to
+       gui-channel.c
+
+       * rc-package-spec.c, rc-package-spec.h (rc_package_spec_compare):
+       removed.  This isn't possible to get right without knowing which
+       backend we're using, which is why it's in the RCPackman now.
+       (rc_package_spec_copy): get the order right -- dest, src
+
+       * rc-package-info.c (debian_packages_helper): fix call to
+       rc_package_spec_copy
+
+       * rc-package-update.c (rc_package_update_copy): fix call to
+       rc_package_spec_copy
+
+       * rc-package.h, rc-package.c: fix some naming conventions, rename
+       rc_package_slist_sort to rc_package_slist_sort_by_name for
+       clarity.  Break out the RCPackageSection stuff, as above
+       (rc_package_compare_func): removed, unused and broken
+
+       * rc-deps.h, rc-deps.c (rc_dep_resolution_new): add an RCPackman
+       to the interface, which sets das_global_packman variable -- gross
+       hack to deal with the broken design.  Change all calls to
+       rc_package_spec_compare to rc_packman_compare_version
+
+       * rc-package-dep.c: extern das_global_packman, change all calls to
+       rc_package_spec_compare to rc_packman_compare_version
+
+2001-01-16  Ian Peters  <itp@helixcode.com>
+
+       * rc-debman.c: Fix a couple cases where I forgot to update a
+       format string when I got rid of one of the inputs, this explains
+       the real garbage Joe was seeing
+
+2001-01-16  Ian Peters  <itp@helixcode.com>
+
+       * rc-debman.c (debman_poll_write_cb): only need to handle \t, not
+       \r here anymore
+
+       * rc-line-buf.c (rc_line_buf_cb): handle the \r\n case -- when we
+       hit a \n, backtrack a step and see if we should chop off the \r
+       too
+
+2001-01-16  Ian Peters  <itp@helixcode.com>
+
+       * rc-util.c, rc-util.h: Added rc_close
+
+       * rc-line-buf.c, rc-line-buf.h, rc-line-buf-private.h: Added
+       license information.  Made the fd get/settable via GtkArg.
+       rc_line_buf_new now takes no paramaters, use rc_line_buf_set_fd
+
+       * rc-verification.c, rc-verification.h: update to the new
+       RCLineBuf API, generic cleanups, license information, #include
+       file fixes, and debugging code added
+
+       * rc-rpmman.c: #include file fixes, twiddle with some calls to
+       rc_packman_set_error
+
+       * rc-packman.h: tweak the RCPackmanError values
+
+       * rc-packman-private.h: Add rc_packman_clear_error, and make
+       rc_packman_set_error use varargs, and prepend the passed string,
+       colon separated, to the current error reason, and calculate the
+       new RCPackmanError value
+
+       * rc-packman.c: add some calls to rc_packman_clear_error, change
+       some calls to rc_packman_set_error to reflect the new
+       RCPackmanError values, add rc_packman_clear_error, and rewrite
+       rc_packman_set_error
+
+       * rc-debman-general.h: fix some #include lines, add
+       rc_debman_section_to_package_section
+
+       * rc-debman-general.c: add rc_debman_section_to_package_section
+
+       * rc-debman-private.h: move status_file and rc_status_file into
+       the RCDebmanPrivate struct
+
+       * rc-debman.c: where oh where to start.  Handle all the possible
+       Debian interactive cases, including interactive unpack,
+       interactive configure, interactive purge.  Handle the broken
+       conf-file crap to STDERR.  Make the little dialog use a fixed
+       width font.  Catch all sorts of error conditions, and call
+       rc_packman_set_error appropriately, including the severity and a
+       valid description of what occured.  Change lots of calls to use
+       rc_debug.  Clean up a lot of code.  Push the PAGER environment
+       variable as cat to avoid some nasty surprises.  Lots of other
+       stuff that I'm forgetting, but it's all good.  ;-)
+       
+2001-01-06  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-deps.c, rc-deps.h: Fix some more conflict handling
+       love.  Debian hates me.
+
+2001-01-05  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-channel.c, rc-debman-general.c,
+       rc-debug-misc.c, rc-deps.c,
+       rc-package-dep.c, rc-package-info.c,
+       rc-package-spec.c: use rc_debug instead of
+       g_warning/g_print/fprintf/etc
+
+2001-01-04  Ian Peters  <itp@helixcode.com>
+
+       * rc-channel.h: remove the dep_table pointer in the
+       RCChannel struct
+
+       * rc-channel.c: assorted cleanups, reflect the above
+       change
+
+       * rc-package-info.c (rc_subchannel_parse_debian):
+       create the dep_table in the subchannel, not the channel
+
+2001-01-04  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-distman.c: Bail if we can't figure out
+       what kind of distro this is (don't crash)
+
+       * rc-distro.c: Call debian testing/unstable
+       unstable.
+
+       * rc-deps.c: Look for the dep_table in the
+       correct subchannel, not the channel's main dep_table. Also
+       some more conflict loving.
+
+       * rc-deps.h: Conflict loving changes.
+
+2001-01-03  Ian Peters  <itp@helixcode.com>
+
+       * rc-debman-general.c: add some includes, fix some
+       other includes, contribute a faster version of
+       rc_debman_parse_version, and add some debugging code
+
+       * Makefile.am: add BUILD_CFLAGS to INCLUDES
+
+2001-01-03  Ian Peters  <itp@helixcode.com>
+
+       * rc-common.h: removed
+
+       * rc-debug.c, rc-debug.h: added.
+       contains RC_ENTRY, RC_EXIT, and some simple structure for
+       debugging levels, etc.  Not really used anywhere yet.
+
+       * Makefile.am: add rc-debug.[ch], remove rc-common.h
+
+       * libredcarpet.h: fix include paths, kill reference
+       to rc-common.h, add rc-debug.h
+
+       * rc-debman.c: s/rc-common/rc-debug/
+
+       * rc-channel.c: s/rc-common/rc-debug/ and fix the
+       include paths
+
+       * rc-package-info.c: ditto
+
+2000-12-28  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-deps.c: Oops. don't crash if what is null
+       in a conflict when printing it.
+
+2000-12-27  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-deps.c, rc-deps.h: Some intelligent
+       things about conflicts. They are mostly recognized now. The info
+       that comes out isn't perfect, but it's a start. gaim vs. gaim-gnome
+       works now ;-)
+
+2000-12-22  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * Makefile.am: typo
+
+       * rc-package-info.c, rc-debman.c:
+       include debman-general
+
+2000-12-22  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * Makefile.am: fixing for new config.in
+
+       * rc-debman-general.c: New file containing      useful things,
+       even if rc-debman isn't compiled in
+
+       * rc-distman.c: fixes for selecting the right packmans
+       to include
+
+       * rc-debman.c: removed stuff into rc-debman-general.c
+
+       * rc-distro.c: some new distros
+
+2000-12-22  Ian Peters  <itp@helixcode.com>
+
+       * rc-package-update.h, rc-package-update.c:
+       General sanity checking, throw some const's in, g_return(_val)_if_fail
+       in a few places, yada yada yada
+
+2000-12-19  Ian Peters  <itp@helixcode.com>
+
+       * rc-channel.c, rc-channel.h: added
+       rc_channel_get_subchannel to return a pointer to the subchannel by
+       id
+
+2000-12-18  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-deps.c: Small fix to fix things
+       that need fixing. (Vague? Yes.)
+
+2000-12-18  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * Makefile.am: add rc-debman-private.h,
+       rc-verification-private.h, rc-line-buf-private.h to
+       sources line for dist
+
+2000-12-18  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-deps.c: Small fix to avoid
+       bizzare unnecessary conflicts.
+
+2000-12-15  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-debman.c: Change deps.h to rc-deps.h
+
+2000-12-15  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * Makefile.am: Added rc-debug-misc and rc-deps
+
+       * rc-deps.c: New dependency bits. Somewhat
+       less broken than the old code, right now somewhat more
+       in some ways. Conflicts, in particular, need help (and the
+       whole virtual conflict thing on redhat).
+
+       * deps.c: removed.
+
+       * libredcarpet.h: Changed deps -> rc-deps
+
+       * rc-channel.c: fixes to find_best_package
+       to use new pkginfo API
+
+       * rc-package-dep.c: Added lots of code
+       to verify AND relationships in deps
+       (rc_package_dep_verify_and_relation,
+       rc_package_dep_verify_and_slist_relation), also fixed
+       rc_package_dep_item_verify_relation. Also code to merge
+       dependencies (for deps code).
+
+       * rc-package-info.c: code to handle
+       AND dependencies for finding new packages.
+
+2000-12-07  Joe Shaw  <joe@helixcode.com>
+
+       * rc-channel.c (rc_subchannel_free): Don't destroy the 
+       dep_table if it is NULL.
+
+2000-11-29  Joe Shaw  <joe@helixcode.com>
+
+       * rc-channel.c (rc_xml_node_to_channel): Back out the
+       #if 0.
+
+2000-11-29  Joe Shaw  <joe@helixcode.com>
+
+       * rc-channel.c (rc_xml_node_to_channel): #if 0ed out some
+       code that was keeping channel lists from parsing. Ian, please fix this
+       up if it's not right.
+
+2000-11-21  Joe Shaw  <joe@helixcode.com>
+
+       * rc-channel.c (rc_channel_free): Removed reference to
+       RCChannel->title_file.
+       (rc_channel_parse_xml): Ditto.
+
+       * rc-channel.h (RCChannel): Removed title_file, added
+       featured, although it isn't handled at all yet.
+
+2000-11-09  Joe Shaw  <joe@helixcode.com>
+
+       * rc-verification.h: Change the order of the
+       RCVerificationStatus enum to be ordered by "severity".
+
+2000-11-09  Ian Peters  <itp@helixcode.com>
+
+       * rc-debman.h, rc-debman.c,
+       rc-debman-private.h: move all fields into RCDebmanPrivate,
+       make rc_debman_transact take an RCPackageSList*, and lots of other
+       cleanups.  Add rc_debman_find_file.
+
+       * rc-line-buf.h, rc-line-buf.c,
+       rc-line-buf-private.h: move all fields into
+       RCLineBufPrivate, lots of other cleanups
+
+       * rc-packman.h, rc-packman.c,
+       rc-packman-private.h: move all fields into
+       RCPackmanPrivate, lots of other cleanups.  _transact takes an
+       RCPackageSList.  Add rc_packman_find_file.
+       Add rc_packman_get_features.
+
+       * rc-rpmman.c: _transact takes ...
+
+       * rc-verification.c: fixicate to a little RCLineBuf
+       change
+
+2000-11-09  Ian Peters  <itp@helixcode.com>
+
+       * rc-package.c (rc_package_get_latest_update): change the
+       g_return_if_fail to g_return_val_if_fail.
+
+2000-11-08  Joe Shaw  <joe@helixcode.com>
+
+       * rc-package.c (rc_package_get_latest_update): Added a
+       convenience function for getting the latest update from a package.
+
+2000-11-02  Ian Peters  <itp@helixcode.com>
+
+       * rc-package-spec.h, rc-package-spec.c:
+       removed all of the RCPackageSection stuff, put it into rc-package.[ch].
+       (struct _RCPackageSpec): remove the section, installed, installed_size,
+       channel, and subchannel fields.  These belong in struct _RCPackage.
+       (rc_package_spec_init): this now takes a few less arguments
+
+       * rc-package-update.h, rc-package-update.c:
+       move the typedef's above the included libredcarpet files
+       (struct _RCPackageUpdate): add a const RCPackage * back to the package
+       that we are an update to, and an installed_size field
+
+       * rc-package.h, rc-package.c:
+       move the typedef's above the included libredcarpet files
+       Move all of the RCPackageSection stuff into here
+       (struct _RCPackage): add the section field, the installed_size and
+       installed fields, a const pointer back to our parent subchannel,
+       and handle all of these new fields in _copy and _free.
+
+       * rc-packman.c:
+       (rc_package_slist_add_package): fix the call to rc_package_spec_init
+
+       * rc-rpmman.c, rc-debman.c:
+       update all references to ->spec.installed, ->spec.installed_size,
+       and ->spec.section to ->installed, ->installed_size, and ->section
+
+       * rc-package-dep.c, rc-package-dep.h:
+       move the typedef's above the included libredcarpet files
+       Add a few const's in places
+
+       * rc-channel.h: move all of the typedef's above the
+       included libredcarpet files
+
+       * rc-channel.c:
+       (rc_xml_node_to_subchannel): pass the RCChannel* instead of the
+       url_prefix and channel_id separately.  Set the subchannel->channel to
+       the channel passed in.  Pass the channel into rc_xml_node_to_subchannel
+
+       * rc-package-info.c:
+       (rc_subchannel_parse_debian): fix some references to the channel
+       and subchannel fields in the RCPackageSpec, now gone, and point to
+       the installed and installed_size fields in the package, not the spec
+
+       * rc-package-set.h:
+       Move the typedef's above the included libredcarpet files
+
+       * xml-util.c, xml-util.h:
+       Add a lot of const's where appropriate
+
+2000-11-02  Ian Peters  <itp@helixcode.com>
+
+       * rc-package-update.h, rc-package-update.c:
+       (rc_xml_node_to_package_update): pass the url_prefix and name of the
+       package into this function, to avoid some annoying post processing
+
+       * rc-package.h, rc-package.c:
+       (rc_xml_node_to_package): pass the url_prefix, channel_id, and
+       subchannel_id into the function, to avoid some annoying post
+       processing; pass the url_prefix, along with my own name, into
+       rc_xml_node_to_package_update
+
+       * rc-channel.c:
+       (rc_xml_node_to_subchannel): take the url_prefix and channel_id,
+       passing them along to rc_xml_node_to_package [along with my own
+       subchannel preference], don't try to fix the url's in post
+       processing
+       (rc_xml_node_to_channel): pass the extra information needed into
+       rc_xml_node_to_subchannel
+
+2000-11-02  Ian Peters  <itp@helixcode.com>
+
+       * pkginfo.c, pkginfo.h: removed these in
+       favor of rc-package-info.c and rc-package-info.h.
+
+       * rc-package-info.c, rc-package-info.h:
+       Rewrote rc_subchannel_parse_helix in favour of making each structure
+       responsible for remembering how to parse itself
+       [rc_xml_node_to_package, for example].  If any structure changes, you
+       need to modify only functions in rc-<structure>.c to make sure
+       everything continues to parse.  Assorted other cleanups to other
+       functions inherited directly from pkginfo.c.  I pretty much left the
+       Debian stuff alone.
+
+       * Makefile.am: remove pkginfo, add rc-package-info
+
+       * deps.c: fix the include lines [<foo.h> in
+       favour of "foo.h", as the automake book suggests], and
+       s/pkginfo\.h/rc-package-info.h/
+
+       * libredcarpet.h: fix the include lines as per the
+       automake book, s/pkginfo\.h/rc-package-info.h/
+
+       * rc-channel.h: include <gnome-xml/tree.h> for the xml
+       stuff, fixicate the include lines
+       (struct _RCSubchannel): move the dep_table from the RCChannel into
+       here, as it would otherwise be /really/ broken
+       (rc_xml_node_to_channel): convert an xmlNode* to an RCChannel*
+
+       * rc-channel.c: fixicate the include lines, include some
+       xml loving
+       (remove_helper): static function, added.  Free the packages in the
+       package hash table
+       (rc_subchannel_free): after talking with vlad, there's no longer any
+       reason not to deep free the package hash table, using remove_helper.
+       Shallow free on the dep_table [which just has pointers into the
+       package hash]
+       (rc_channel_free): free a few elements that people added and forgot to
+       free, free the package set list, free the subchannels.  Whoops.
+       (my_little_helper): a static helper function to add children to an
+       xmlNode from a hash table
+       (rc_xml_node_to_subchannel): static, given an xmlNode*, recreate the
+       RCSubchannel.  Using the url_prefix given by the RCChannel, fix the
+       package_url and signature_url fields of the RCPackageUpdates deep in
+       the nested mess.  Also create the package and dep_table hashes.
+       (rc_xml_node_to_channel): given an xmlNode* and the RCChannel*, fill in
+       the missing parts of the structure [mostly using
+       rc_xml_node_to_subchannel]
+
+       * rc-debman.c, rc-debman.h: fixicate some
+       includes
+       (rc_debman_query_file): make any file we query provide itself, which
+       means we don't have to remember to keep adding this in so many places.
+       (rc_debman_verify): update to work with the structure changes.
+       Look for the package and signature local filenames in the RCPackage
+       struct, filled in after they are downloaded.  Correctly reference
+       the RCPackageUpdate where appropriate.
+
+       * rc-rpmman.c, rc-rpmman.h: fixicate some
+       includes
+       (rc_rpmman_verify): aim for the right elements of the RCPackage struct
+
+       * rc-package-dep.c, rc-package-dep.h:
+       fixicate some includes
+       (rc_string_to_package_relation): added.
+       (rc_package_relation_to_string): added.
+       (rc_xml_node_to_package_dep_item): static, added.  Used by
+       rc_xml_node_to_package_dep.
+       (rc_xml_node_to_package_dep): added.
+
+       * rc-package-set.c, rc-package-set.h:
+       fixicate some includes
+       (rc_package_set_new): added
+       (rc_package_set_free): added
+       (rc_package_set_slist_free): added
+       It's only slightly worrisome that these functions didn't exist before.
+
+       * rc-package-spec.h, rc-package-spec.c:
+       fixicate some includes
+       (struct SecTable): removed
+       (extern sectable[]): removed
+       use the rc_package_section_to_string and rc_string_to_package_section
+       functions now
+       (rc_package_section_to_string): added
+       (rc_string_to_package_section): added
+       They do the obvious things
+
+       * rc-package-update.h, rc-package-update.c:
+       fixicate an include
+       (enum _RCPackageImportance): add RC_IMPORTANCE_NEW
+       (struct _RCPackageUpdate): fiddle with some fields, renaming and moving
+       them around
+       (rc_string_to_package_importance): added
+       (rc_package_importance_to_string): added
+       (rc_xml_node_to_package_update): added
+       There's a pattern here, pay close attention
+
+       * rc-package.h, rc-package.c: fixicate some includes,
+       fiddle with some field names
+       (rc_xml_node_to_package): added
+
+       * rc-verification.c: fixicate some includes
+       (rc_verify_gpg): add the --no-auto-key-retrieve option to the gpg call
+
+       * xml-util.h, xml-util.c:
+       (xml_get_prop): added
+       (xml_get_content): added
+       (xml_get_guint32_content_default): added
+
+2000-10-30  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-package-dep.c, libreadcarpet/rc-package-dep.h:
+       Changed the #define's to enums, to make for cleaner code and also
+       so that gdb can give us names insted of numbers. Added
+       rc_packge_dep_verify_and_relation, which verifies a
+       RCPackageDep as if it were AND'd instead of OR'd. Also added
+       rc_package_dep_item_is_subset, which will attempt to merge
+       two RCPackageDepItems.
+
+2000-10-29  Ian Peters  <itp@helixcode.com>
+
+       * rc-channel.c:
+       (rc_channel_parse_xml): I'm sorry, I just had to reindent this
+       function.  It was really bad.
+
+       * rc-debman.c: include pty.h, shut up gcc.
+       (rc_debman_verify): wrote it.  It checks a detached signature, if
+       one exists in the signature field in the RCPackage.  It checks the
+       md5sum, if there's one in the RCPackage.
+
+       * rc-package-update.h: tweaked some of the members of
+       the RCPackageUpdate struct, and added signature_url and
+       signature_size.  These are for detached signatures, if they exist.
+
+       * rc-package.h: added two new members to the
+       RCPackage struct, filename and signature.  These are NULL until
+       after the package (and maybe signature) are downloaded, then they
+       store the name of the downloaded files.
+       (rc_package_copy_spec): kill this
+
+       * rc-package.c:
+       (rc_package_copy): let's just use rc_package_spec_copy instead of
+       the stupid rc_package_copy_spec function.  Check if old_pkg is
+       NULL before we do stuff.  Also copy filename and signature.
+       (rc_package_copy_spec): kill this
+       (rc_package_free): check if rcp is NULL before we start freeing
+       things.  Also, free the filename and signature.
+       (rc_package_slist_sort): skip the intermediary step of putting the
+       result in a variable on the stack; let's just return the sort.
+
+       * rc-packman.h, rc-packman.c,
+       rc-rpmman.c: rc_packman[_real]_verify takes an
+       RCPackage, not a filename now.
+
+       * rc-verification.h, rc-verification.c:
+       add rc_verify_md5_string, you know what it does
+
+       * pkginfo.c:
+       (grab_packageupdateinfo_list): grab the signature and
+       signature_size from the xml, and btw who the hell named this
+       function? ;)
+
+2000-10-27  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * deps.c: Oops.. add check for null p before verifying
+       the relation.
+
+2000-10-26  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-package-dep.c: New words for EQUAL
+       instead of just (??)
+
+       * deps.c: Some code to handle extra bizzare
+       conflict issues
+
+2000-10-26  Ian Peters  <itp@helixcode.com>
+
+       * rc-packman.c: add some gtk_main_iteration calls to key
+       spots to keep things happy
+
+       * rc-debman.c: print the command every time we exec dpkg, and
+       print out every line it sends us back, prefixed by "DEBMAN: ".
+
+2000-10-26  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * Makefile.am: add clean-local target
+
+2000-10-26  Ian Peters  <itp@helixcode.com>
+
+       * rc-debman.c: remove a definite race condition in the
+       new magic hack
+
+2000-10-26  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * dpkg-helper.c, Makefile.am: Added
+       the building of dpkg-helper.so, also makefile.am to build it
+       and copy it in the right place.
+
+2000-10-26  Ian Peters  <itp@helixcode.com>
+
+       * rc-line-buf.h, rc-line-buf.c:
+       Add rc_line_buf_get_buf which gets the current internal buffer even if
+       there's been no '\n' yet.  Needed for The Debian Hack.
+
+       * rc-debman.c: OH MY GOD IT WORKS!
+       I'm not going to try to give you a good changelog entry on this,
+       because I had to do so many crufty things it's not even funny.  But it
+       works.  This won't work until Vlad commits dpkg-helper.c and the
+       associated Makefile.am loving.
+
+2000-10-26  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * deps.c: I need to get my boring commit in.
+       We now have a RC_DEPS_DEBUG_LEVEL env var that sets
+       the amount of spewage. We should always compile with
+       #define DEBUG now, at least for betas.
+
+2000-10-25  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-distro.c, rc-distro.h: Change
+       same_as into a pretend_name -- it's only to be used if we do not
+       support the other distro uniquely, as it will break things if
+       there is a channel for both the pretend name and the real name. In
+       fact, this should probably not be used at all.
+
+       * gui-init.c: Change some of the startup channel
+       parsing bits to reflect rc-distro changes.
+
+2000-10-25  Ian Peters  <itp@helixcode.com>
+
+       * rc-debman.c (query_all_read_line_cb): kill some stale
+       debugging code, add a helpful comment
+
+2000-10-25  Ian Peters  <itp@helixcode.com>
+
+       * rc-rpmman.c (rc_rpmman_depends_fill): ignore the top
+       seekret messages that rpmlib encodes in the dependency header
+       information.  rpmlib is a crufy broken pile of dung.
+
+2000-10-25  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-package.c: copy the stupid damn idiotic
+       damn piece of crap stupid hold bit in the _copy func
+
+2000-10-25  Jacob "Ulysses" Berkman  <jacob@helixcode.com>
+
+       * libredcarpet.h: don't inlclude rc-rpmman.h or
+       rpm-debman.h
+
+       * rc-rpmman.h, rpmlead-4-0-x.h,
+       signature-4-0-x.h, Makefile.am: rpm4
+       fixes
+
+2000-10-25  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-package-dep.h: Oops, update the header proto
+
+2000-10-25  Ian Peters  <itp@helixcode.com>
+
+       * rc-debman.c: change every call to write to instead use
+       rc_write, which is the pedantic checking version.  Add lots of error
+       handling where rc_write may have returned FALSE.
+
+2000-10-25  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * deps.c, deps.h: Beginning of cleanup,
+       some comments added/removed...
+
+       * rc-distro.c: Some lins to shut up warnings
+
+       * rc-debman.c: Added code to ignore locks if
+       any of the magic env vars are set
+
+       * rc-package-dep.c, rc-package-dep.h:
+       Some code to pretty-print a package dependency relation.
+
+2000-10-25  Ian Peters  <itp@helixcode.com>
+
+       * rc-string.c, rc-string.h: removed, as
+       nothing uses this anymore.
+
+       * Makefile.am, pkginfo.c,
+       rc-debman.c, rc-util.c: remove references
+       to rc-string.h and rc-string.c
+
+2000-10-25  Ian Peters  <itp@helixcode.com>
+
+       * rc-util.c (rc_write): kill a warning, add a const to buf
+
+       * pkginfo.c (debian_packages_helper): kill some unused
+       variables
+
+       * rc-rpmman.c (rc_rpmman_verify): initialize some
+       variables to shut gcc up
+
+2000-10-25  Ian Peters  <itp@helixcode.com>
+
+       * Makefile.am: set the G_LOG_DOMAIN to libredcarpet, and
+       set the SHAREDIR (this is something of a hack, but...).  Add the new
+       files rc-verification.c and rc-verification.h to the libredcarpet
+       sources.
+
+       * rc-line-buf.h: add the RCLineBufStatus enum, so that
+       read_done can just return a status, instead of having a separate
+       read_error signal.  Get rid of the hup_id, since we'll handle all of
+       the g_io signals in a single callback.  Get rid of the read_error
+       signal, and fix the prototype on the read_done signal.  Rename read_id
+       to cb_id.
+
+       * rc-line-buf.c: remove READ_ERROR from SIGNALS, purge all
+       mention of hup_id (rc_line_buf_destroy, rc_line_buf_class_init,
+       rc_line_buf_init).  Fix the marshaller on read_done.  Rename the
+       rc_line_buf_read_cb to rc_line_buf_cb.  Handle the condition ==
+       G_IO_HUP case.  Emit read_done on a read of 0 without EAGAIN.  Fix the
+       off-by-one array access that vlad caught in purify.  Remove
+       rc_line_buf_hup_cb.  Fix rc_line_buf_new.  Rename read_id to cb_id.
+
+       * rc-md5.h: change the rc_md5 function to return guint8 *
+       instead of as a string, so that we can memcmp this directly with the
+       md5 in an rpm header.  Add the rc_md5_string function to provide the
+       old functionality.
+
+       * rc-md5.c: (rc_md5): change this guy to return the md5
+       in a guint8 *.  Mostly involves removing, not adding, code.
+       (rc_md5_string): added.  Returns the md5 as a string of hex characters
+       instead.
+
+       * rc-verification.h: RCVerification struct, a lot of
+       enums, and some functions.
+
+       * rc-verification.c: implementation of the foundation for
+       RCVerification, along with three verification methods, rc_verify_gpg,
+       rc_verify_md5, and rc_verify_size.  Look in the header for the
+       appropriate details.
+
+       * rc-packman.h: include rc-verification.h.  Clean up the
+       RCPackmanError enum.
+       (rc_packman_real_verify): change the type, now returns an
+       RCVerificationSList * given an RCPackman * and a filename.
+       (rc_packman_verify): ditto
+
+       * rc-packman.c (rc_packman_verify): clean up to the new
+       api
+
+       * rc-util.h: added rc_write, a safe way to write a buffer
+       to a file descriptor (handles all of those EINTR and EAGAIN issues).
+       Returns TRUE if the write was a success, and FALSE if it was a failure.
+
+       * rc-util.c (rc_write): added, see above.
+
+       * rpmlead-3-0-x.h, signature-3-0-x.h: Borrow
+       some header files from rpm-3.0.6 for the signature extraction stuff.
+       Stupid stupid rpm.  This may or may not work for rpm-4.x, I'll test
+       that in a bit.
+
+       * rc-rpmman.c: include rc-verification.h, rc-util.h, and
+       the new rpm borrowed header files.
+       (rc_rpmman_verify): implemented.  Uses some internal rpm functions, a
+       lot of elbow grease, and some love to verify the supported signatures
+       in an rpm (gpg, md5, and size).
+       (rc_rpmman_destroy): added.  Free the rpmroot member.
+       (rc_rpmman_class_init): chain the destroy.
+
+       * rc-debman.c:
+       (rc_debman_verify): added.  Do nothing stub function until we work out
+       how the detached gpg signatures work.
+       (mark_purge_read_done_cb): new marshaller for read_done in RCLineBuf
+       (do_purge_read_done_cb): new marshaller for read_done in RCLineBuf
+       (do_unpack_read_done_cb): new marshaller for read_done in RCLineBuf
+       (do_configure_read_done_cb): new marshaller for read_done in RCLineBuf
+       (query_all_read_done_cb): new marshaller for read_done in RCLineBuf
+       (verify_status): added (along with some callbacks).  Makes sure that
+       the /var/lib/dpkg/status file is at least somewhat sane.  Resets any
+       pending selections (other than hold), because RC won't honor them.  Of
+       course, this only runs if you're root, because it needs to rewrite the
+       status file.
+
+2000-10-23  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * deps.c: Added code to handle held packages. (First
+       try, need to find way to test.)
+
+       * deps.h: Added HELD_PACKAGE conflict type
+
+       * rc-package.h: Added hold gboolean
+
+2000-10-20  Joe Shaw  <joe@helixcode.com>
+
+       * rc-rpmman.c (rc_rpmman_query_all): Set the
+       RCPackageSpec's installed bit to TRUE. Closes Mothra #70.
+
+2000-10-20  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * deps.c, deps.h: Added preliminary
+       type field to conflicts to aid in resolution.
+
+       * pkginfo.c: small change in how we provide ourselves
+
+       * rc-channel.c, rc-channel.h: Moved
+       find_best_package here, exported.
+
+       * rc-distro.c: Fixed warnings
+
+       * rc-package.c, rc-package.h: Added 
+       utility functions for converting hashesh (by spec, by name)
+       to lists
+
+       * rc-util.c, rc-util.h: Added
+       rc_hash_table_copy
+
+2000-10-19  Ian Peters  <itp@helixcode.com>
+
+       * rc-debman.c (do_configure): fix my last broken commit
+       (forgot to #if 0 out one part)
+
+2000-10-19  Ian Peters  <itp@helixcode.com>
+
+       * rc-debman.c (rc_debman_init): if we can't grab the lock,
+       set the error and reason as appropriate.  Some other in-development
+       code that I #if 0'd out.
+
+       * rc-packman.h: fix the name of
+       rc_packman_configure_progress (was config_progress) to kill a warning
+
+       * rc-packman.c: kill some gtk_events_pending bs
+
+       * rc-rpmman.c: #if 0 out some unfinished/unneeded stuff
+       to kill a few warnings.
+
+2000-10-18  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * pkginfo.c: Fixed stupid bug where a \0 wasn't being
+       put at the end of each segment of a debian description, causing
+       the weird descriptions in the info displays.
+
+       * deps.c: Copy the system packages list when passed in.
+       Leaks memory.
+
+       * rc-debman.c: Always use status_file instead of the
+       hardcoded path
+
+       * rc-package-dep.c, rc-package-spec.c:
+       Absolutely nothing important; no changes.
+
+2000-10-18  Ian Peters  <itp@helixcode.com>
+
+       * rc-line-buf.c (rc_line_buf_read_cb): change the FALSE to
+       TRUE when I call g_string_free, as it really is my job here
+
+2000-10-18  Ian Peters  <itp@helixcode.com>
+
+       * rc-debman.c: signal (SIGCHLD, SIG_DFL) before forking
+       everywhere because I am now paranoid.  I have no idea what is setting
+       SIGCHLD to SIG_IGN for me, but I wasted a lot of time on this one.
+       Life sucks.  Did I mention I spilled apple juice all over myself by
+       hitting the top of a bottle and blowing out the bottom?
+
+2000-10-18  Ian Peters  <itp@helixcode.com>
+
+       * rc-debman.c (rc_debman_query_all_real): again make every
+       package provide itself, so that vlad's lazy ass dependency code doesn't
+       have to do any work.  La la la.
+
+2000-10-18  Joe Shaw  <joe@helixcode.com>
+
+       * rc-util.c (rc_mktmpdir): Removed. rc-debman doesn't
+       use it anymore. Closes Mothra #30.
+
+2000-10-17  Ian Peters  <itp@helixcode.com>
+
+       * rc-line-buf.c, rc-line-buf.h: added.
+       This bad boy is a GtkObject that provides buffered read-a-line from a
+       fd (aka a file or a pipe) using g_io_add_watch stuff.  I totally like
+       my little object, it's pretty dope.
+
+       * Makefile.am: added rc-line-buf.[ch] to the sources for
+       libredcarpet
+
+       * rc-debman.c: so some fixicating and an attempt to add
+       the "watch for stupid needy-of-manual-configuring packages" feature
+       turned into a total rewrite (almost) of this guy to make that doable.
+       So now literally everything in rc-debman uses rc-line-buf, so that it
+       can operate from within a GMainLoop I run by hand, which lets me use
+       g_io_add_watch to watch for a dpkg-run script trying to read... which
+       is what I've got to do next.  But it's now doable.
+       Also, add the feature that joe requested -- it now emits
+       transaction_step and configure_step with a seqno of 0 before it does
+       any transactioning or configuring, so that the gui can be smarter
+
+       * rc-rpmman.c: add the same new feature as in debman (the
+       0 seqno signals)
+
+       * rc-util.c, rc-util.h: remove all traces of
+       the old RCLineBuf (sorry vlad!)
+
+       * packman_test.c: fix an odd crash or two, add command
+       completion ;)
+
+2000-10-16  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-channel.c: oops. xmlParseMemory wants the
+       number of real characters, not counting the null (hence the
+       length of a bytearray - 1)
+
+       * rc-package-set.c: same as above.
+
+       * rc-package-set.c, rc-package-set.h:
+       Fixed minor parsing bugs.
+
+       * deps.c: fixed crash that occurs if debugging is
+       turned on. (Oops!)
+
+2000-10-13  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * Makefile.am: added new files
+
+       * rc-package-set.c, rc-package-set.h: New
+       files, beginning on package set support.
+
+       * rc-util.c, lilbredcarpet/rc-util.h: New function to
+       un-gzip in memory (Yay, no more nasty popen()'s!)
+
+       * rc-channel.c, pkginfo.c: Use new
+       gunzipping code
+
+       * rc-channel.h: Add package set slist in struct
+
+       * rc-package.c, rc-package.h: added GPL
+       headers
+
+       * rc-util.c, rc-util.h: New uncompress
+       functions that take a gzip'd buffer and uncompress it
+
+2000-10-13  Joe Shaw  <joe@helixcode.com>
+
+       * rc-channel.c, rc-channel.h: Added
+       copyright and license info to the top (and emacs rules)
+       (rc_channel_parse_xml): Add a new flag, "available_select" that,
+       when defined, makes the "Select All" and "Select None" buttons
+       appear in the available packages page. Closes Mothra #34.  *
+
+2000-10-13  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * Makefile.am: Change distro.[ch] with rc-distro.[ch]
+
+       * rc-distro.c, rc-distro.h: new files;
+       rewrite of distro code to support different architectures, provide
+       for different languages, etc. Also to keep distro tags in sync
+       with build system. (XML now should reference distro_target tag)
+
+       * rc-channel.c, rc-channel.h: Add
+       distro_target; got rid of distribution and major/minor.
+
+       * libredcarpet.h: Changed distro.h to rc-distro.h
+
+       * rc-distman.c, rc-distman.h: Use new
+       rc-distro code.
+
+2000-10-11  Joe Shaw  <joe@helixcode.com>
+
+       * rc-channel.c (rc_channel_parse_xml): Add a mirrored
+       flag to the channel. This is not yet used.
+
+2000-10-06  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-debman.c: package_accept speedup, small
+       debug printing fix
+
+       * deps.c: Oops. Set the list back to the result
+       of the g_slist_remove, so that if all packages end up getting
+       removed, things don't die.
+
+2000-10-05  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-debman.c: Print conversation with dpkg
+       to stderr.
+
+2000-10-04  Ian Peters  <itp@helixcode.com>
+
+       * rc-debman.c (hash_destroy): recreate the hash_table
+       (rc_debman_query_all): grab a valid reference to the pkg_hash
+
+2000-10-04  Ian Peters  <itp@helixcode.com>
+
+       * rc-rpmman.c: some minor fixes for rpm4 support
+
+2000-10-04  Ian Peters  <itp@helixcode.com>
+
+       * rc-rpmman.c (transaction_add_remove_pkgs): write an rpm4
+       specific version.
+
+2000-10-04  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * deps.c: Correctly fix up the list of packages
+       to be installed (no more g_slist_remove_link magic)
+
+2000-10-04  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * deps.c, deps.h: Oops. Use a hash table
+       instead of blindly searching through the list of passed-in
+       to-install packages, since sometimes something will be a virtual
+       package that's provided.
+
+2000-10-04  Ian Peters  <itp@helixcode.com>
+
+       * rc-debman.h: add a hash_table to the RCDebman struct.
+
+       * rc-debman.c: cache the results of a _query_all so that
+       successive calls to _query will be much faster.  If you _query without
+       a call to _query_all, it will populate the hash table first, and then
+       look up the packages requested.  This is because queries in debian
+       by reopening and scanning the /var/lib/dpkg/status file are ass slow.
+       The only way to invalidate the hash is to _transact, and the next
+       _query will have to rescan the status file.  This is a major change
+       in rc_debman, requiring a lot of functions to move around and/or
+       change drastically.  I've tested it pretty thoroughly, but if anything
+       breaks for you, check for sanity using packman_test first before
+       suspecting anything else for a while.  All of the _copy functions are
+       written because I need them in order to copy packages out of the hash
+       table.  Fun fun fun.  But not really.
+       (rc_debman_query_helper): fix vlad's memory leak
+
+       * rc-package-dep.h, rc-package-dep.c:
+       (rc_package_dep_item_copy): added
+       (rc_package_dep_copy): added
+       (rc_package_dep_slist_copy): added
+
+       * rc-package-update.h, rc-package-update.c:
+       (rc_package_update_copy): added
+       (rc_package_update_slist_copy): added
+
+       * rc-package.h, rc-package.c:
+       (rc_package_copy): added
+       (rc_package_free): fix another vlad memory leak ;)
+
+2000-10-03  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * deps.c: Do intelligent things with conflicts (only
+       look for a resolving package if you're not trying to install that
+       named package). I think we are smarter than apt at this point.
+
+       * rc-package-spec.c: Aiee. fixed the compares wrt
+       epoch.
+
+       * deps.c: Oops. Handle the case where a non-first
+       item of an OR dep was already installed in the system (don't
+       always go for the first!)
+
+2000-10-03  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * deps.h: Added packages_requested in output RR,
+       giving the real list of packages that were used (with duplicates
+       removed)
+
+       * deps.c: Added lots of code to handle some cases that
+       really, really, really need testing. If package A is installed and
+       it depends on B == 1.0, and you try to install package C which depends
+       on any version of A and upgrade A and B in the same operation, this is
+       what used to happen: the A dep was processed from the system (because C
+       was seen first) and its hard dep on B was put in. When the new A was
+       processed, the hard dep on B would fail (notwithstanding the new B). There
+       are two solutions -- one was to remove all traces of the old package; this
+       is what untangle_package tries to do. Note that this is probably not a safe
+       thing to do, and now it's only called in cases where nothing else can be
+       done. The other thing, which is what's done, is to be a bit more intelligent
+       about it, by checking to see if something you're depending on is in the
+       installed list, and processing that (as long as it resolves other deps).
+       This needs testing; right now, the code seems to return a few more packages
+       than apt does.
+
+       * rc-package.c (rc_package_compare): Made it just call
+       rc_package_spec_compare -- it wasn't checking for null versions/revisions.
+
+2000-10-02  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * deps.c (resolution_uninstall_package_makelist): check
+       if the package was already removed before spewing a warning!
+
+2000-10-02  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * deps.c (pkg_conflicts_list_iterator): Fixed buglet
+       that caused weird conflict things to hapen. Bork bork.
+
+2000-10-02  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * deps.c (pkg_conflicts_list_iterator): make it work with
+       null channels again (oops)
+
+       * Makefile.am (libredcarpet_a_SOURCES): removed
+       helix-* cruft, added some missing .h's
+
+2000-10-01  Ian Peters  <itp@helixcode.com>
+
+       * rc-channel.c, rc-channel.h: added
+       rc_channel_compare_func for hashing and stuff
+
+       * rc-package.c, rc-package.h: added
+       rc_package_compare_func for hashing and stuff
+
+2000-10-01  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-package-update.c, rc-package-update.h:
+       filename becomes url, and is now a full URL.
+
+       * pkginfo.c: Parse the url correctly, as stated in the
+       above.
+
+2000-10-01  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-channel.c: strdup path into file_path if it isn't set.
+
+       * pkginfo.c: Oops. gtk_main_iteration iff gtk_events_pending,
+       not always. Lowercased header field names for debian. Slightly faster
+       debian parsing code. (Parse in-place instead of copying to tmpbuf.)
+
+       * deps.c: Added code to have conflicts try to resolve conflicts
+       if they are with a package less than some version by trying to find a newer
+       version of the conflicting package.
+
+2000-09-30  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * deps.c: oops. (hpp always == hpp, no?)
+
+       * pkginfo.c: Made gunzipping faster (rc_string, I love you!)
+
+       * rc-debman.c: Changed the read_line function to
+       use a line buffer for reading. Lots of speed improvements. This
+       required changes to other code, as there was a second data
+       structure, RCLineBuf *, that had to be used.
+
+       * rc-util.c, rc-util.h: Added the
+       RCLineBuf stuff
+
+       * rc-string.c, rc-string.h: Added string
+       append functions
+
+       * pkginfo.c: Went back to using strncmp's instead of
+       casecmps for comparing stuff. This might break if someone uploads
+       lowercase stuff to the debian packages file (as has happened)
+
+2000-09-29  Ian Peters  <itp@helixcode.com>
+
+       * pkginfo.c: correctly set the channel id for debian-type
+       channels
+
+       * rc-packman.c, rc-packman.h: pkgs to install
+       in a transaction are filenames not RCPackage's
+
+2000-09-29  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * pkginfo.c: Do something intelligent if gunzip
+       doesn't exist.
+
+       * deps.c: note to self
+
+2000-09-29  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * deps-private.h, deps.c, 
+       deps.h: Preliminary code to get nicely-displayable dep 
+       info (packages X, Y, Z will be brought in to satisfy package A that 
+       was requested, packages D and E for pkg B, etc).
+       Will require more hacking to get this info out.
+
+       * rc-package-dep.c: Made verify return FALSE if the dep 
+       was < or <= and the target had no version info. This was to get 
+       around an issue where a package conflicted with < V of another 
+       package bar, and bar was a virtual package provided by bar1.2. This 
+       should be investigated further.
+
+       * test_deps.c: Added a few features; this will be used 
+       now to verify helix packages against RC before pushing to server.
+
+2000-09-28  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * deps.c: Got rid of superfluous debug crap
+
+       * pkginfo.c, rc-channel.c,
+       xml-util.c: Made it happy with new libxml
+
+       * Makefile.am: added (commented out rc-crypto.c, rc-crypto.h)
+
+       * rc-crypto.c, libreadcarpet/rc-crypto.h: Initial
+       checkin. Don't use.
+
+2000-09-28  Joe Shaw  <joe@helixcode.com>
+
+       * rc-channel.h: Removed title_color and title_bg_image
+       from the channel struct.
+
+       * rc-channel.c: Remove references to title_color and
+       title_bg_image.
+
+       * rc-package-spec.c (vercmp): Added a clause that says
+       that a number vs. word comparison always goes in favor of the word.
+       For example, in helix1 vs. 1, helix1 wins. This fixes a bunch of
+       incorrect compares with the Debian packages.
+
+2000-09-28  Ian Peters  <itp@helixcode.com>
+
+       * rc-rpmman.h, rc-rpmman.c: merge in the rpm4
+       changes courtesy of msw
+
+2000-09-27  Joe Shaw  <joe@helixcode.com>
+
+       * pkginfo.c (debian_packages_helper): Correctly handle
+       package sizes such that they are put into the update structure
+
+2000-09-18  Ian Peters  <itp@helixcode.com>
+
+       * pkginfo.c, rc-debman.c,
+       rc-debman.h: merge vlad's fork of the /var/lib/dpkg/status
+       parsing stuff back in, so I get his fixes and he gets a non-broken
+       read_line.
+
+2000-09-11  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * rc-util.c, rc-util.h: Two functions,
+       rc_url_is_absolute() and rc_build_url(). The latter takes a method,
+       host, path, and "rest" of the URL, and will build the right thing
+       depending on if path or rest are absolute or relative, etc.
+
+2000-09-08  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * deps.c, deps.h: Fixed ian's
+       conflicts bugs -- conflicts and uninstalls should work now; it needs
+       testing.
+
+       * pkginfo.c: debian packages weren't getting the
+       provides into the hash correctly (oops!)
+
+2000-08-31  Ian Peters  <itp@helixcode.com>
+
+       * Makefile.am: add rc-string to the sources for
+       libredcarpet.a
+
+       * rc-packman.c, rc-packman.h,
+       rc-debman.c, rc-debman.h,
+       rc-rpmman.c, rc-rpmman.h: changed the
+       interface drastically (hopefully for that last time).  Got rid of
+       _install and _remove (and associated signals, etc), and replaced it
+       with a transactional interface (with degenerate install and remove
+       cases, obviously).  This is required to make the debian backend work,
+       and makes the rpm one cleaner (also, I learned how to make my own
+       rpmTransaction things, so I got rid of the poached rpmInstall and
+       rpmErase functions).  The debian code is beautiful, I'm in love with
+       it in a big way.  The rpm code is pretty nice, although currently I'm
+       not dealing with errors in any big way (I'm waiting for a chance to
+       talk with joe (and vlad) about how to handle errors (fatal and
+       non-fatal) in the cleanest way possible.
+
+       * rc-package-spec.c, rc-package-spec.h:
+       added my rc_package_spec_copy and killed vlad's (since mine's nicer :)
+
+       * rc-package.c, rc-package.h:
+       added rc_package_copy_spec
+
+       * rc-string.c, rc-string.h: a small
+       convenience for me to use, I wrote it to implement the safe function
+       to read a line of text from /var/lib/dpkg/status in rc-debman.c
+
+2000-08-30  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * pkginfo.c, pkginfo.h:
+       rc_subchannel_parse_xml got renamed to rc_subchannel_parse; in
+       the .c file there are now 3 separate functions for parsing
+       helix-style XML files, debian-style Packages.gz files, and
+       redhat's xml/rdf stuff. (the latter is a noop for now). There
+       are also copies of Ian's debian parsing stuff in here -- these
+       need to be merged later with his code.
+
+       * rc-channel.c, rc-channel.h:
+       Added a few XML props -- "type" which defaults to helix, but can
+       be debian or redhat, pkginfo_file which has the name of the
+       package info file (defaults to packageinfo.xml.gz),
+       pkginfo_compressed, which, if present, indicates that the file
+       is gzip'd (I think you have to at least say pkginfo_compressed=1);
+       also fixed minor typo in hash table type def in the .h.
+
+       * rc-package-spec.c, rc-package-spec.h:
+       Added rc_package_spec_copy (src, dst)
+
+2000-08-25  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * deps.c, deps.h: Added global
+       settings call to change the way conflicts work, as debian and rpm
+       handle them differently (debian only conflicts real packages, rpm
+       conflicts virtual packages as well).
+
+       * pkginfo.c: Added Defensive Programming
+       NULL string check
+
+       * deps.c, deps.h: Fixed
+       lots of conflict things. Still some work to do, but this
+       is a checkpoint for ian so that he can continue.
+
+2000-08-24  Joe Shaw  <joe@helixcode.com>
+
+       * rc-package-spec.c: Added a static table for mapping
+       section strings to section enums.
+
+       * rc-package-spec.h: Define the above table and declare
+       it (sectable) extern.
+
+2000-08-24  Ian Peters  <itp@helixcode.com>
+
+       * libredcarpet.h, rc-channel.c,
+       rc-channel.h, rc-common.h,
+       rc-package-dep.c, rc-package-dep.h,
+       rc-package-spec.c,      rc-package-spec.h,
+       rc-package-update.c, rc-package-update.h,
+       rc-package.c, rc-package.h,
+       rc-util.c, rc-util.h: Added.  The scattered
+       remnants of the horror that was common.c and common.h.
+
+       * channel.c, channel.h,
+       common.c, common.h,
+       packagespec.c, packagespec.h: removed.
+       Contents moved into the above files.
+
+       * Makefile.am: updated to build the new files not the old
+       ones
+
+       * deps.c, deps.h, distro.c,
+       pkginfo.c, pkginfo.h,
+       rc-debman.c, rc-md5.c,
+       rc-packman.h: updated to include the right files
+
+2000-08-23  Vladimir Vukicevic  <vladimir@helixcode.com>
+
+       * deps.c, pkginfo.c: Made it not barf
+       (hopefully) if the current channel is NULL (i.e. summary Next
+       button). Added a g_assert check to pkginfo to warn if a null
+       channel makes it to that point.
+
+       * deps.h: removed unused element from struct
+
diff --git a/zypp/solver/detail/Channel.cc b/zypp/solver/detail/Channel.cc
new file mode 100644 (file)
index 0000000..c5947ab
--- /dev/null
@@ -0,0 +1,421 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Channel.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * Definition of 'channel'
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <y2util/stringutil.h>
+
+#include <zypp/solver/detail/Channel.h>
+#include <zypp/solver/detail/World.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_BASE_POINTER(Channel);
+
+//---------------------------------------------------------------------------
+
+int Channel::_fake_id = 1;
+
+//---------------------------------------------------------------------------
+
+string
+Channel::asString ( void ) const
+{
+    if (this == NULL) fprintf (stderr, "Channel::asString NULL\n");
+    return toString (*this);
+}
+
+
+string
+Channel::toString ( const Channel & channel )
+{
+    string res ("<channel '");
+    res += "Type: ";
+    switch (channel.type()) {
+       case CHANNEL_TYPE_ANY: res += "any"; break;
+       case CHANNEL_TYPE_SYSTEM: res += "system"; break;
+       case CHANNEL_TYPE_NONSYSTEM: res += "non-system"; break;
+
+       case CHANNEL_TYPE_UNKNOWN: res += "unknown"; break;
+       case CHANNEL_TYPE_HELIX: res += "helix"; break;
+       case CHANNEL_TYPE_DEBIAN: res += "debian"; break;
+       case CHANNEL_TYPE_APTRPM: res += "apt-rpm"; break;
+       case CHANNEL_TYPE_YAST: res += "yast"; break;
+       case CHANNEL_TYPE_YUM: res += "yum"; break;
+    }
+    res += ", ";
+
+    res += "Id: ";
+    res += channel.id();
+    if (channel.legacyId() != NULL
+       && (*(channel.legacyId()) != 0)) {
+       res += ", LegacyId: ";
+       res += channel.legacyId();
+    }
+    res += ", Name: ";
+    res += channel.name();
+    res += ", Alias: ";
+    res += channel.alias();
+
+    if (channel.description() != NULL) {
+       res += ", Description: ";
+       res += channel.description();
+    }
+
+    res += ", Priority: ";
+    res += stringutil::numstring (channel.priority());
+    res += ", PriorityUnsubscribed: ";
+    res += stringutil::numstring (channel.priorityUnsubscribed());
+
+    if (channel.path() != NULL) {
+       res += ", Path: ";
+       res += channel.path();
+    }
+    if (channel.filePath() != NULL) {
+       res += ", FilePath: ";
+       res += channel.filePath();
+    }
+    if (channel.iconFile() != NULL) {
+       res += ", IconFile: ";
+       res += channel.iconFile();
+    }
+    if (channel.pkginfoFile() != NULL) {
+       res += ", PkginfoFile: ";
+       res += channel.pkginfoFile();
+    }
+       //    list<char *> *_distro_targets; /* List of targets (char *) for this channel */
+
+    res += ", LastUpdate: ";
+    res += stringutil::numstring(channel.lastUpdate());
+
+    if (channel.system()) res += ", System! ";
+    if (channel.hidden()) res += ", Hidden! ";
+    if (channel.immutable()) res += ", Immutable! ";
+
+    return res + "'>";
+}
+
+
+ostream &
+Channel::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const Channel& channel)
+{
+    return os << channel.asString();
+}
+
+//---------------------------------------------------------------------------
+
+Channel::Channel(const string & id, const string & name, const string & alias, const string & description)
+    : _world (NULL)
+    , _last_update (0)
+    , _system (false)
+    , _hidden (false)
+    , _immutable (false)
+{
+    if (id.empty()) {
+       _id = stringutil::form( "fake-id-%d", _fake_id++).c_str();
+    }
+    else {
+       _id = id;
+    }
+
+    if (name.empty()) {
+       _name = "Unnamed Channel";
+    }
+    else {
+       _name = name;
+    }
+
+    if (alias.empty()) {
+       _alias = name;
+    }
+    else {
+       _alias = alias;
+    }
+
+    if (description.empty()) {
+       _description = "No description available.";
+    }
+    else {
+       _description = description;
+    }
+
+    _type = CHANNEL_TYPE_UNKNOWN;
+    
+    _priority = -1;
+    _priority_unsubscribed = -1;
+
+//    if (getenv ("RC_SPEW")) fprintf (stderr, "Channel() [%p] (%s)\n", this, asString().c_str());
+}
+
+
+Channel::Channel (const XmlNodePtr node, int *subscribed, WorldPtr world)
+    : _world (world)
+    , _last_update (0)
+    , _system (false)
+    , _hidden (false)
+    , _immutable (false)
+{
+    static unsigned int dummy_id = 0xdeadbeef;
+    const char *subscribed_str;
+    const char *priority_str;
+    const char *priority_unsubscribed_str;
+
+    _name = node->getProp ("name");
+    _alias = node->getProp ("alias");
+           
+    _id = node->getProp ("id");
+    if (_id.empty()) {
+       char *temp;
+       asprintf (&temp, "dummy:%d", dummy_id);
+       _id = temp;
+       ++dummy_id;
+    }
+
+    subscribed_str = node->getProp ("subscribed");
+    *subscribed = subscribed_str ? atoi (subscribed_str) : 0;
+
+    priority_str = node->getProp ("priority_base");
+    priority_unsubscribed_str = node->getProp ("priority_unsubd");
+
+    _priority = priority_str ? atoi (priority_str) : 0;
+    _priority_unsubscribed = priority_unsubscribed_str ? atoi (priority_unsubscribed_str) : 0;
+               
+    free ((void *)subscribed_str);
+    free ((void *)priority_str);
+    free ((void *)priority_unsubscribed_str);
+
+//    if (getenv ("RC_SPEW")) fprintf (stderr, "Channel(xml) [%p] (%s)\n", this, asString().c_str());
+}
+
+
+Channel::~Channel()
+{
+}
+
+
+#if 0
+xmlNode *
+rc_channel_to_xml_node (RCChannel *channel)
+{
+    xmlNode *node;
+    char tmp[128];
+
+    g_return_val_if_fail (channel != NULL, NULL);
+
+    node = xmlNewNode (NULL, "channel");
+
+    xmlNewProp (node, "id", rc_channel_get_id (channel));
+
+    xmlNewProp (node, "name", rc_channel_get_name (channel));
+
+    if (rc_channel_get_alias (channel))
+       xmlNewProp (node, "alias", rc_channel_get_alias (channel));
+
+    sprintf (tmp, "%d", rc_channel_is_subscribed (channel) ? 1 : 0);
+    xmlNewProp (node, "subscribed", tmp);
+
+    sprintf (tmp, "%d", rc_channel_get_priority (channel, true));
+    xmlNewProp (node, "priority_base", tmp);
+
+    sprintf (tmp, "%d", rc_channel_get_priority (channel, false));
+    xmlNewProp (node, "priority_unsubd", tmp);
+
+    return node;
+}
+#endif
+
+
+bool
+Channel::isSubscribed (void) const
+{
+    if (_world == NULL)
+       fprintf (stderr, "Channel::isSubscribed() without world\n");
+    return _world->isSubscribed (this);
+}
+
+
+void
+Channel::setSubscription (bool subscribed)
+{
+    if (_world == NULL)
+       fprintf (stderr, "Channel::setSubscription() without world\n");
+    _world->setSubscription (this, subscribed);
+}
+
+
+int
+Channel::priorityParse (const char *priority_cptr) const
+{
+#define DEFAULT_CHANNEL_PRIORITY 1600
+
+    typedef struct {
+       const char *str;
+       int priority;
+     } ChannelPriorityPair;
+
+    ChannelPriorityPair channel_priority_table[] = {
+       { "private",     6400 },
+       { "ximian",      3200 },
+       { "distro",      1600 },
+       { "third_party",  800 },
+       { "preview",      400 },
+       { "untested",     200 },
+       { "snapshot",     100 },
+       { NULL,             0 }
+    };
+
+    const char *c;
+    int i;
+    bool is_numeric = true;
+
+    if (priority_cptr && *priority_cptr) {
+       c = priority_cptr;
+       while (*c && is_numeric) {
+           if (! isdigit (*c))
+               is_numeric = false;
+           c++;
+       }
+       if (is_numeric) {
+           return atoi (priority_cptr);
+       }
+       
+       for (i=0; channel_priority_table[i].str != NULL; ++i) {
+           if (! strcasecmp (channel_priority_table[i].str, priority_cptr))
+               return channel_priority_table[i].priority;
+       }
+
+    }
+
+    return DEFAULT_CHANNEL_PRIORITY;
+}
+
+
+bool
+Channel::isWildcard (void) const
+{
+    return _type == CHANNEL_TYPE_SYSTEM 
+       || _type == CHANNEL_TYPE_NONSYSTEM
+       || _type == CHANNEL_TYPE_ANY;
+}
+
+
+bool
+Channel::equals (const Channel & channel) const
+{
+    return equals (&channel);
+}
+
+bool
+Channel::equals (constChannelPtr channel) const
+{
+    if (_type == CHANNEL_TYPE_ANY
+       || channel->_type == CHANNEL_TYPE_ANY) {
+       return true;
+    }
+
+    if (isWildcard () && channel->isWildcard ()) {
+       return this == channel;
+    }
+
+    /* So at this point we know that between a and b there is
+       at most one wildcard. */
+
+    if (_type == CHANNEL_TYPE_SYSTEM) {
+       return channel->system();
+    }
+    else if (_type == CHANNEL_TYPE_NONSYSTEM) {
+       return !channel->system();
+    }
+
+    if (channel->_type == CHANNEL_TYPE_SYSTEM) {
+       return system();
+    }
+    else if (channel->_type == CHANNEL_TYPE_NONSYSTEM) {
+       return !system();
+    }
+    
+    return hasEqualId (channel);
+}
+
+
+bool
+Channel::hasEqualId (const Channel & channel) const
+{
+    return hasEqualId (&channel);
+}
+
+
+bool
+Channel::hasEqualId (constChannelPtr channel) const
+{
+    return (channel->id () == _id);
+}
+
+
+void
+Channel::setPriorities (int subscribed_priority, int unsubscribed_priority)
+{
+    if (immutable()) return;
+
+    _priority = subscribed_priority;
+    _priority_unsubscribed = unsubscribed_priority;
+}
+
+
+int
+Channel::getPriority(bool is_subscribed) const
+{
+#define UNSUBSCRIBED_CHANNEL_ADJUSTMENT(x) ((x)/2)
+
+    int priority;
+
+    priority = _priority;
+    if (priority <= 0)
+       priority = DEFAULT_CHANNEL_PRIORITY;
+
+    if (!is_subscribed) {
+       if (_priority_unsubscribed > 0) {
+           priority = _priority_unsubscribed;
+       } else {
+           priority = UNSUBSCRIBED_CHANNEL_ADJUSTMENT (priority);
+       }
+    }
+
+    return priority;
+}
+
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/Channel.h b/zypp/solver/detail/Channel.h
new file mode 100644 (file)
index 0000000..4117771
--- /dev/null
@@ -0,0 +1,210 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Channel.h
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * Definition of 'edition'
+ *  contains epoch-version-release-arch
+ *  and comparision functions
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _Channel_h
+#define _Channel_h
+
+#include <iosfwd>
+#include <string>
+#include <string.h>
+
+#include <y2util/Ustring.h>
+
+#include <zypp/solver/detail/ChannelPtr.h>
+#include <zypp/solver/detail/WorldPtr.h>
+#include <zypp/solver/detail/XmlNode.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+typedef std::list<ChannelPtr> ChannelList;
+
+typedef bool (*ChannelFn) (constChannelPtr channel, void *data);
+typedef bool (*ChannelAndSubscribedFn) (ChannelPtr channel, bool flag, void *data);
+
+typedef enum {
+
+    CHANNEL_TYPE_ANY = 0,
+    CHANNEL_TYPE_SYSTEM,
+    CHANNEL_TYPE_NONSYSTEM,
+
+    CHANNEL_TYPE_UNKNOWN,
+    CHANNEL_TYPE_HELIX,
+    CHANNEL_TYPE_DEBIAN,
+    CHANNEL_TYPE_APTRPM,
+    CHANNEL_TYPE_YAST,
+    CHANNEL_TYPE_YUM
+
+} ChannelType;
+
+///////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : Channel
+/**
+ *
+ **/
+
+class Channel : public CountedRep {
+    REP_BODY(Channel);
+
+  private:
+    ChannelType _type;
+
+    static int _fake_id;
+
+    WorldPtr _world;
+
+    std::string _id;
+    std::string _legacy_id;                    // Old ID for RCE servers
+
+    std::string _name;
+    std::string _alias;
+    std::string _description;
+                                       // priority if channel is...
+    int _priority;                     // subscribed
+    int _priority_unsubscribed;                // unsubscribed
+
+    std::string _path;
+    std::string _file_path;
+    std::string _icon_file;
+    std::string _pkginfo_file;
+
+//    std::list<std::string > *_distro_targets; /* List of targets (std::string ) for this channel */
+
+    time_t _last_update;
+
+    bool _system;
+    bool _hidden;
+    bool _immutable;
+
+  public:
+
+    Channel (ChannelType type) : _type (type), _world(NULL) {}
+
+    Channel(const std::string & id = "", const std::string & name = "", const std::string & alias = "", const std::string & description = "");
+    Channel(const XmlNodePtr node, int *subscribed, WorldPtr world);           //RCChannel *rc_channel_from_xml_node (xmlNode *channel_node);
+
+    virtual ~Channel();
+
+    // ---------------------------------- I/O
+
+    const XmlNodePtr asXmlNode (void) const;           // rc_channel_to_xml_node
+
+    static std::string toString ( const Channel & edition );
+
+    virtual std::ostream & dumpOn( std::ostream & str ) const;
+
+    friend std::ostream& operator<<( std::ostream&, const Channel& );
+
+    std::string asString ( void ) const;
+
+    // ---------------------------------- accessors
+
+    ChannelType type(void) const { return _type; }
+    void setType (ChannelType type) { _type = type; }
+
+    const char *id (void) const { return _id.c_str(); }
+    void setId (const char *id) { _id = std::string (id); }
+
+    WorldPtr world (void) const { return _world; }
+    void setWorld (WorldPtr world) { _world = world; }
+
+    const char *legacyId (void) const { return _legacy_id.c_str(); }                   // Old ID for RCE servers
+    void setLegacyId (const char *legacy_id) { _legacy_id = std::string (legacy_id); }
+
+    const char *name (void) const { return _name.c_str(); }
+    void setName (const char *name) { _name = std::string (name); }
+
+    const char *alias (void) const { return _alias.c_str(); }
+    void setAlias (const char *alias) { _alias = std::string (alias); }
+
+    const char *description (void) const { return _description.c_str(); }
+    void setDescription (const char *description) { _description = std::string (description); }
+
+    int priority (void) const { return _priority; }
+    void setPriority (int priority) { _priority = priority; }
+
+    int priorityUnsubscribed (void) const { return _priority_unsubscribed; }
+    void setPriorityUnsubscribed (int priority_unsubscribed) { _priority_unsubscribed = priority_unsubscribed; }
+
+    const char *path (void) const { return _path.c_str(); }
+    void setPath (const char *path) { _path = std::string (path); }
+
+    const char *filePath (void) const { return _file_path.c_str(); }
+    void setFilePath (const char *file_path) { _file_path = std::string (file_path); }
+
+    const char *iconFile (void) const { return _icon_file.c_str(); }
+    void setIconFile (const char *icon_file) { _icon_file = std::string (icon_file); }
+
+    const char *pkginfoFile (void) const { return _pkginfo_file.c_str(); }
+    void setPkginfoFile (const char *pkginfo_file) { _pkginfo_file = std::string (pkginfo_file); }
+
+//    const std::list<char *> *distroTargets (void) const { return _distro_targets; }
+//    void setDistroTargets (const std::list<char *> *distro_targets) { _distro_targets = distro_targets; }
+
+    time_t lastUpdate (void) const { return _last_update; }
+    void setLastUpdate (time_t last_update) { _last_update = last_update; }
+
+    bool system (void) const { return _system; }
+    void setSystem (bool system) { _system = system; }
+    bool hidden (void) const { return _hidden; }
+    void setHidden (bool hidden) { _hidden = hidden; }
+    bool immutable (void) const { return _immutable; }
+    void setImmutable (bool immutable) { _immutable = immutable; }
+
+    //-----------------------------------------------------------------------
+
+    bool isWildcard (void) const;
+
+    virtual bool equals (const Channel & channel) const;
+    virtual bool equals (constChannelPtr channel) const;
+    bool hasEqualId (const Channel & channel) const;
+    bool hasEqualId (constChannelPtr channel) const;
+
+       //RCResolvableSList *rc_channel_get_resolvables (RCChannel *channel);
+
+    // Distro target functions
+
+    void addDistroTarget (const char *target);
+    bool hasDistroTarget (const char *target) const;
+
+    // Subscription management
+
+    bool isSubscribed (void) const;
+    void setSubscription (bool subscribed);
+
+    int priorityParse (const char *priority_cptr) const;
+    void setPriorities (int subd_priority, int unsubd_priority);
+    int getPriority (bool is_subscribed) const;
+};
+
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _Channel_h
diff --git a/zypp/solver/detail/ChannelPtr.h b/zypp/solver/detail/ChannelPtr.h
new file mode 100644 (file)
index 0000000..5aec963
--- /dev/null
@@ -0,0 +1,40 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ChannelPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ChannelPtr_h
+#define _ChannelPtr_h
+
+#include <y2util/RepDef.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+///////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : ChannelPtr
+//     CLASS NAME : constChannelPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_BASE_POINTER(Channel);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _ChannelPtr_h
diff --git a/zypp/solver/detail/Dependency.cc b/zypp/solver/detail/Dependency.cc
new file mode 100644 (file)
index 0000000..3fd9d9c
--- /dev/null
@@ -0,0 +1,517 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Dependency.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * Definition of 'dependency'
+ *  contains name-op-spec
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <y2util/stringutil.h>
+
+#include <zypp/solver/detail/Dependency.h>
+#include <zypp/solver/detail/OrDependency.h>
+#include <zypp/solver/detail/Version.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_DERIVED_POINTER(Dependency,Spec);
+
+//---------------------------------------------------------------------------
+
+#define RELATION_INVALID -1
+#define RELATION_ANY 0
+#define RELATION_EQUAL (1 << 0)
+#define RELATION_LESS (1 << 1)
+#define RELATION_GREATER (1 << 2)
+#define RELATION_NONE (1 << 3)
+
+const Relation & Relation::Invalid = Relation (RELATION_INVALID);
+const Relation & Relation::Any = Relation (RELATION_ANY);
+const Relation & Relation::Equal = Relation (RELATION_EQUAL);
+const Relation & Relation::NotEqual = Relation (RELATION_LESS|RELATION_GREATER);
+const Relation & Relation::Less = Relation (RELATION_LESS);
+const Relation & Relation::LessEqual = Relation (RELATION_LESS|RELATION_EQUAL);
+const Relation & Relation::Greater = Relation (RELATION_GREATER);
+const Relation & Relation::GreaterEqual = Relation (RELATION_GREATER|RELATION_EQUAL);
+const Relation & Relation::None = Relation (RELATION_NONE);
+
+
+const Relation &
+Relation::parse(const char *relation)
+{
+    if (!strcmp (relation, "(any)"))
+       return Any;
+    else if (!strcmp (relation, "=") || !strcmp (relation, "eq"))
+       return Equal;
+    else if (!strcmp (relation, "<") || !strcmp(relation, "lt") || !strcmp(relation, "&lt;"))
+       return Less;
+    else if (!strcmp (relation, "<=") || !strcmp(relation, "lte") || !strcmp(relation, "&lt;="))
+       return LessEqual;
+    else if (!strcmp (relation, ">") || !strcmp(relation, "gt") || !strcmp(relation, "&gt;"))
+       return Greater;
+    else if (!strcmp (relation, ">=") || !strcmp(relation, "gte") || !strcmp(relation, "&gt;="))
+       return GreaterEqual;
+    else if (!strcmp (relation, "!=") || !strcmp(relation, "ne"))
+       return NotEqual;
+    else if (!strcmp (relation, "!!") || !strcmp(relation, "none"))
+       return None;
+    else
+       return Invalid;
+}
+
+
+bool
+Relation::isEqual () const
+{
+    return _op == RELATION_EQUAL;
+}
+
+
+string
+Relation::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+Relation::toString ( const Relation & relation )
+{
+    string res;
+
+    switch (relation.op()) {
+       case RELATION_INVALID: res = "(invalid)";
+       break;
+       case RELATION_ANY: res = "";
+       break;
+       case RELATION_EQUAL: res = "==";
+       break;
+       case RELATION_LESS|RELATION_GREATER: res = "!=";
+       break;
+       case RELATION_LESS: res = "<";
+       break;
+       case RELATION_LESS|RELATION_EQUAL: res = "<=";
+       break;
+       case RELATION_GREATER: res = ">";
+       break;
+       case RELATION_GREATER|RELATION_EQUAL: res = ">=";
+       break;
+       case RELATION_NONE: res = "!!";
+       break;
+       default:
+           res = "??";
+           res += stringutil::numstring (relation.op());
+           res += "??";
+       break;
+    }
+    return res;
+}
+
+
+string
+Relation::toWord ( const Relation & relation )
+{
+    string res;
+
+    switch (relation.op()) {
+       case RELATION_INVALID: res = "(invalid)";
+       break;
+       case RELATION_ANY: res = "(any)";
+       break;
+       case RELATION_EQUAL: res = "equal to";
+       break;
+       case RELATION_LESS|RELATION_GREATER: res = "not equal to";
+       break;
+       case RELATION_LESS: res = "less than";
+       break;
+       case RELATION_LESS|RELATION_EQUAL: res = "less than or equal to";
+       break;
+       case RELATION_GREATER: res = "greater than";
+       break;
+       case RELATION_GREATER|RELATION_EQUAL: res = "greater than or equal to";
+       break;
+       case RELATION_NONE: res = "not installed";
+       break;
+       default:
+           res = "??";
+           res += stringutil::numstring (relation.op());
+           res += "??";
+       break;
+    }
+    return res;
+}
+
+
+ostream &
+Relation::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream & os, const Relation & relation)
+{
+    return os << relation.asString();
+}
+
+//---------------------------------------------------------------------------
+
+string
+Dependency::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+Dependency::toString ( const Dependency & dependency )
+{
+    string res;
+
+    res += dependency.name();
+    if (dependency.relation() != Relation::Any) {
+       res += " ";
+       res += dependency.relation().asString();
+       res += " ";
+
+       res += dependency.edition()->asString();
+    }
+    if (dependency.orDep()) res += " [OR]";
+    if (dependency.preDep()) res += " [PRE]";
+
+    return res;
+}
+
+
+string
+Dependency::toString (const CDependencyList & dl)
+{
+    string res("[");
+    for (CDependencyList::const_iterator iter = dl.begin(); iter != dl.end(); iter++) {
+       if (iter != dl.begin()) res += ", ";
+       res += (*iter)->asString();
+    }
+    return res + "]";
+}
+
+
+
+
+ostream &
+Dependency::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const Dependency& dependency)
+{
+    return os << dependency.asString();
+}
+
+//---------------------------------------------------------------------------
+
+Dependency::Dependency (const string & name, const Relation & relation, const Kind & kind,
+       constChannelPtr channel,
+       int epoch, const string & version, const string & release, const Arch * arch,
+       bool or_dep, bool pre_dep)
+    : Spec (kind, name, epoch, version, release, arch)
+    , _relation (relation)
+    , _channel (channel)
+    , _or_dep (or_dep)
+    , _pre_dep (pre_dep)
+{
+}
+
+
+Dependency::Dependency (const string & name, const Relation & relation, const Kind & kind,
+       constChannelPtr channel, constEditionPtr edition, bool or_dep, bool pre_dep)
+    : Spec (kind, name, edition)
+    , _relation (relation)
+    , _channel (channel)
+    , _or_dep (or_dep)
+    , _pre_dep (pre_dep)
+{
+}
+
+
+Dependency::Dependency (OrDependencyPtr or_dep)
+    : Spec (Kind::Package, or_dep->name())
+    , _relation (Relation::Any)
+    , _channel (NULL)
+    , _or_dep (false)
+    , _pre_dep (true)
+{
+    or_dep->addCreatedProvide (this);
+}
+
+
+Dependency::Dependency (constXmlNodePtr node)
+    : Spec (Kind::Package, "")
+    , _relation (Relation::Any)
+    , _channel (new Channel(CHANNEL_TYPE_ANY))
+    , _or_dep (false)
+    , _pre_dep (false)
+{
+    const char *tmp;
+
+    if (!node->equals("dep")) {
+       fprintf (stderr, "Dependency::Dependency bad node\n");
+       abort();
+    }
+
+    setName(node->getProp ("name"));
+    tmp = node->getProp ("op", NULL);
+    if (tmp) {
+       _relation = Relation::parse(tmp);
+       setEpoch (node->getIntValueDefault ("epoch", -1));
+       setVersion (node->getProp ("version"));
+       setRelease (node->getProp ("release"));
+    }
+
+    tmp = node->getProp ("arch", NULL);
+    if (tmp) {
+       setArch (Arch::create (node->getProp ("arch")));
+    } else {
+       setArch (Arch::Unknown);
+    }
+#if 0
+    tmp = node->getProp ("kind", NULL);
+    if (tmp) {
+       setKind (Kind (node->getProp ("kind")));
+    }
+#endif
+    /* FIXME: should get channel from XML */
+    /* FIXME: should get arch from XML */
+}
+
+
+Dependency::~Dependency()
+{
+}
+
+//---------------------------------------------------------------------------
+
+DependencyPtr parseXml (constXmlNodePtr node)
+{
+    if (node->equals("dep")) {
+       return new Dependency (node);
+    } else if (node->equals("or")) {
+       CDependencyList or_dep_list;
+
+       node = node->children();
+
+       while (node) {
+           if (node->isElement()) {
+               or_dep_list.push_back (new Dependency (node));
+           }
+
+           node = node->next();
+       }
+
+       OrDependencyPtr or_dep = OrDependency::fromDependencyList(or_dep_list);
+       return new Dependency (or_dep);
+    }
+
+    fprintf (stderr, "Unhandled dependency [%s]\n", node->name());
+
+    return NULL;
+}
+
+
+bool
+Dependency::verifyRelation (constDependencyPtr prov) const
+{
+    int compare_ret = 0;
+if (getenv ("SPEW_DEP")) fprintf (stderr, "Dependency::verifyRelation(dep: %s, prov: %s)", asString().c_str(), prov->asString().c_str());
+    /* No dependency can be met by a different token name */
+    if (name() != prov->name()) {
+if (getenv ("SPEW_DEP")) fprintf (stderr, "-> wrong name\n");
+       return false;
+    }
+
+    /* No dependency can be met by a different type */
+    if (kind() != prov->kind()) {
+if (getenv ("SPEW_DEP")) fprintf (stderr, "-> wrong kind(dep: %s, prov: %s)\n", kind().asString().c_str(), prov->kind().asString().c_str());
+       return false;
+    }
+
+    /* WARNING: RC_RELATION_NONE is NOT handled */
+
+    /* No specific version in the req, so return */
+    if (_relation == Relation::Any) {
+if (getenv ("SPEW_DEP")) fprintf (stderr, " (any) -> true\n");
+       return true;
+    }
+
+    /* No specific version in the prov.  In RPM this means it will satisfy
+     * any version, but debian it will not satisfy a versioned dep */
+    if (prov->relation() == Relation::Any) {
+       if (GVersion.hasProperty (VERSION_PROP_PROVIDE_ANY)) {
+if (getenv ("SPEW_DEP")) fprintf (stderr, " provides (any) matches GVersion -> true\n");
+           return true;
+       }
+       else {
+if (getenv ("SPEW_DEP")) fprintf (stderr, " provides (any) does not match GVersion -> false\n");
+           return false;
+       }
+    }
+
+    if (!channel()->equals (prov->channel()))
+    {
+if (getenv ("SPEW_DEP")) fprintf (stderr, " wrong channel -> false\n");
+       return false;
+    }
+
+    SpecPtr newdepspec;
+    SpecPtr newprovspec;
+
+    if (epoch() >= 0 && prov->epoch() >= 0) {
+       /* HACK: This sucks, but I don't know a better way to compare elements one at a time */
+       newdepspec = new Spec(kind(), "", epoch());
+       newprovspec = new Spec(prov->kind(), "", prov->epoch());
+       compare_ret = GVersion.compare (newprovspec, newdepspec);
+    } else if (prov->epoch() > 0 ) {
+       if (GVersion.hasProperty (VERSION_PROP_IGNORE_ABSENT_EPOCHS)) {
+           compare_ret = 0;
+       }
+       else {
+           compare_ret = 1;
+       }
+    } else if (epoch() > 0 ) {
+       compare_ret = -1;
+    }
+if (getenv ("SPEW_DEP")) fprintf (stderr, "epoch(%d), prov->epoch(%d) -> compare_ret %d\n", epoch(), prov->epoch(), compare_ret);
+    if (compare_ret == 0) {
+       if (GVersion.hasProperty (VERSION_PROP_ALWAYS_VERIFY_RELEASE)
+           || (!(release().empty() || prov->release().empty()))) {
+           newdepspec = new Spec(kind(), "", -1, version(), release());
+           newprovspec = new Spec(prov->kind(), "", -1, prov->version(), prov->release());
+       } else {
+           newdepspec = new Spec(kind(), "", -1, version());
+           newprovspec = new Spec(prov->kind(), "", -1, prov->version());
+       }
+       compare_ret = GVersion.compare (newprovspec, newdepspec);
+    }
+if (getenv ("SPEW_DEP")) fprintf (stderr, " (compare result -> %d)", compare_ret);
+
+    if (compare_ret < 0
+       && ((prov->relation().op() & Relation::Greater.op())
+           || (_relation.op() & Relation::Less.op())))
+    {
+if (getenv ("SPEW_DEP")) fprintf (stderr, " -> true\n");
+       return true;
+    } else if (compare_ret > 0 
+               && ((prov->relation().op() & Relation::Less.op())
+                   || (_relation.op() & Relation::Greater.op())))
+    {
+if (getenv ("SPEW_DEP")) fprintf (stderr, " -> true\n");
+       return true;
+    } else if (compare_ret == 0
+              && (((prov->relation().op() & Relation::Equal.op()) && (_relation.op() & Relation::Equal.op()))
+                  || ((prov->relation().op() & Relation::Less.op()) && (_relation.op() & Relation::Less.op()))
+                  || ((prov->relation().op() & Relation::Greater.op()) && (_relation.op() & Relation::Greater.op()))))
+    {
+if (getenv ("SPEW_DEP")) fprintf (stderr, " -> true\n");
+       return true;
+    }
+    
+if (getenv ("SPEW_DEP")) fprintf (stderr, " -> false\n");
+    return false;
+}
+
+//---------------------------------------------------------------------------
+
+#if 0
+xmlNode *
+rc_resolvable_dep_or_slist_to_xml_node (RCResolvableDepSList *dep)
+{
+    xmlNode *or_node;
+    const RCResolvableDepSList *dep_iter;
+
+    or_node = xmlNewNode (NULL, "or");
+
+    dep_iter = dep;
+    while (dep_iter) {
+       RCResolvableDep *dep_item = (RCResolvableDep *)(dep_iter->data);
+       xmlAddChild (or_node, rc_resolvable_dep_to_xml_node (dep_item));
+       dep_iter = dep_iter->next;
+    }
+
+    return or_node;
+} /* rc_resolvable_dep_or_slist_to_xml_node */
+
+xmlNode *
+rc_resolvable_dep_to_xml_node (RCResolvableDep *dep_item)
+{
+    RCResolvableSpec *spec = (RCResolvableSpec *) dep_item;
+    xmlNode *dep_node;
+
+    if (rc_resolvable_dep_is_or (dep_item)) {
+       RCResolvableDepSList *dep_or_slist;
+       dep_or_slist = rc_dep_string_to_or_dep_slist
+           (rc_resolvable_spec_get_name (spec));
+       dep_node = rc_resolvable_dep_or_slist_to_xml_node (dep_or_slist);
+       rc_resolvable_dep_slist_free (dep_or_slist);
+       return dep_node;
+    }
+
+    dep_node = xmlNewNode (NULL, "dep");
+
+    xmlSetProp (dep_node, "name", rc_resolvable_spec_get_name (spec));
+
+    if (rc_resolvable_dep_get_relation (dep_item) != Relation::Any) {
+       xmlSetProp (dep_node, "op",
+                   rc_resolvable_relation_to_string (
+                       rc_resolvable_dep_get_relation (dep_item), false));
+
+       if (rc_resolvable_spec_has_epoch (spec)) {
+           gchar *tmp;
+
+           tmp = g_strdup_printf ("%d", rc_resolvable_spec_get_epoch (spec));
+           xmlSetProp (dep_node, "epoch", tmp);
+           g_free (tmp);
+       }
+
+       if (spec->version) {
+           xmlSetProp (dep_node, "version", spec->version);
+       }
+
+       if (spec->release) {
+           xmlSetProp (dep_node, "release", spec->release);
+       }
+    }
+
+    return (dep_node);
+} /* rc_resolvable_dep_to_xml_node */
+
+#endif
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/Dependency.h b/zypp/solver/detail/Dependency.h
new file mode 100644 (file)
index 0000000..ffdb271
--- /dev/null
@@ -0,0 +1,188 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Dependency.h
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _Dependency_h
+#define _Dependency_h
+
+#include <list>
+#include <iosfwd>
+#include <string.h>
+
+#include <y2util/Ustring.h>
+
+#include <zypp/solver/detail/Channel.h>
+#include <zypp/solver/detail/DependencyPtr.h>
+#include <zypp/solver/detail/OrDependencyPtr.h>
+#include <zypp/solver/detail/Spec.h>
+#include <zypp/solver/detail/XmlNode.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//
+//      CLASS NAME : Relation
+/**
+ * A dependency relation
+ **/
+
+class Relation {
+
+  private:
+
+    int _op;
+
+    Relation (int op) { _op = op; }
+
+  public:
+
+    virtual ~Relation() {}
+
+    // ---------------------------------- I/O
+
+    static std::string toString ( const Relation & relation );
+
+    static std::string toWord ( const Relation & relation );
+
+    virtual std::ostream & dumpOn( std::ostream & str ) const;
+
+    friend std::ostream& operator<<( std::ostream & str, const Relation & relation );
+
+    std::string asString ( void ) const;
+
+    // ---------------------------------- consts
+
+    static const Relation & Invalid;
+    static const Relation & Any;
+    static const Relation & Equal;
+    static const Relation & NotEqual;
+    static const Relation & Less;
+    static const Relation & LessEqual;
+    static const Relation & Greater;
+    static const Relation & GreaterEqual;
+    static const Relation & None;
+
+    static const Relation & parse (const char *relation);
+
+    // ---------------------------------- accessors
+
+    int op (void) const { return _op; }
+
+    bool isEqual () const;
+
+    // equality operator
+    bool operator==( const Relation & rel ) const {
+       return (_op == rel.op());
+    }
+
+    // inequality
+    bool operator!=( const Relation & rel ) const {
+       return !(*this == rel);
+    }
+
+};
+
+///////////////////////////////////////////////////////////////////
+
+typedef std::list <DependencyPtr> DependencyList;
+typedef std::list <constDependencyPtr> CDependencyList;
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : Dependency
+/**
+ *
+ **/
+
+class Dependency : public Spec {
+    REP_BODY(Dependency);
+
+  private:
+    Relation _relation;
+    constChannelPtr _channel;
+    bool _or_dep;
+    bool _pre_dep;
+
+  public:
+
+    Dependency (const std::string & name,
+         const Relation & relation,
+         const Kind & kind = Kind::Package,
+         constChannelPtr channel = NULL,
+         int epoch = -1,
+         const std::string & version = "",
+         const std::string & release = "",
+         const Arch * arch = Arch::Any,
+         bool or_dep = false,
+         bool pre_dep = false);
+
+    Dependency (const std::string & name,
+         const Relation & relation,
+         const Kind & kind = Kind::Package,
+         constChannelPtr channel = NULL,
+         constEditionPtr edition = NULL,
+         bool or_dep = false,
+         bool pre_dep = false);
+
+    Dependency (OrDependencyPtr or_dep);       //RCResolvableDep *rc_dep_or_new_provide (RCDepOr *dor);
+
+    Dependency (constXmlNodePtr node);         //RCResolvableDep *rc_xml_node_to_resolvable_dep (const xmlNode *node);
+
+    virtual ~Dependency();
+
+    // ---------------------------------- I/O
+
+    const xmlNodePtr asXmlNode (void) const;           // xmlNode *rc_resolvable_dep_to_xml_node (RCResolvableDep *dep_item);
+
+    static std::string toString ( const Dependency & dep );
+
+    static std::string toString ( const CDependencyList & deplist );
+
+    virtual std::ostream & dumpOn( std::ostream & str ) const;
+
+    friend std::ostream& operator<<( std::ostream & str, const Dependency & dep);
+
+    std::string asString ( void ) const;
+
+    // ---------------------------------- accessors
+
+    const Relation & relation() const { return _relation; }
+    constChannelPtr channel (void) const { return _channel; }
+
+    bool orDep (void) const { return _or_dep; }
+    void setOrDep (bool or_dep) { _or_dep = or_dep; }
+
+    bool preDep (void) const { return _pre_dep; }
+    void setPreDep (bool pre_dep) { _pre_dep = pre_dep; }
+
+    // ---------------------------------- methods
+
+    DependencyPtr parseXml (constXmlNodePtr node);
+    bool verifyRelation (constDependencyPtr prov) const;
+};
+
+// xmlNode *rc_resolvable_dep_or_slist_to_xml_node (RCResolvableDepSList *dep);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _Dependency_h
diff --git a/zypp/solver/detail/DependencyPtr.h b/zypp/solver/detail/DependencyPtr.h
new file mode 100644 (file)
index 0000000..9bb586d
--- /dev/null
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* DependencyPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _DependencyPtr_h
+#define _DependencyPtr_h
+
+#include <y2util/RepDef.h>
+#include <zypp/solver/detail/SpecPtr.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+///////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : DependencyPtr
+//     CLASS NAME : constDependencyPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_DERIVED_POINTER(Dependency,Spec);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _DependencyPtr_h
diff --git a/zypp/solver/detail/Edition.cc b/zypp/solver/detail/Edition.cc
new file mode 100644 (file)
index 0000000..3211824
--- /dev/null
@@ -0,0 +1,142 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Edition.cc
+ *
+ * Definition of 'edition'
+ *  contains epoch-version-release-arch
+ *  and comparision functions
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <y2util/stringutil.h>
+
+#include <zypp/solver/detail/Edition.h>
+#include <zypp/solver/detail/Version.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_BASE_POINTER(Edition);
+
+//---------------------------------------------------------------------------
+
+string
+Edition::asString ( bool full ) const
+{
+    return toString (*this, full);
+}
+
+
+string
+Edition::toString ( const Edition & edition, bool full )
+{
+    string res ("");
+
+    if (edition._epoch >= 0) {
+       res += stringutil::numstring (edition._epoch);
+       res += ":";
+    }
+
+    res += edition._version;
+    if (!edition._release.empty()) {
+       res += "-";
+       res += edition._release;
+    }
+
+    if (full) {
+       res += ".";
+       res += edition._arch->asString();
+    }
+
+    return res;
+}
+
+
+ostream &
+Edition::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const Edition& edition)
+{
+    return os << edition.asString();
+}
+
+//---------------------------------------------------------------------------
+
+Edition::Edition( int epoch, const string & version, const string & release, const Arch * arch)
+    : _epoch (epoch)
+    , _version (version)
+    , _release (release)
+    , _arch (arch)
+{
+}
+
+
+Edition::~Edition()
+{
+}
+
+
+EditionPtr
+Edition::copy (void) const
+{
+    return new Edition (_epoch, _version, _release, _arch);
+}
+
+
+EditionPtr
+Edition::fromString (const char *s)
+{
+    return GVersion.parse (s);
+}
+
+
+bool
+Edition::match( constEditionPtr edition ) const {
+//fprintf (stderr, "<%s> match <%s>\n", asString().c_str(), edition->asString().c_str());
+    if (_epoch != edition->_epoch) return false;
+//fprintf (stderr, "epoch ok\n");
+    if (_version != edition->_version) return false;
+//fprintf (stderr, "version ok\n");
+    if (_release != edition->_release) return false;
+//fprintf (stderr, "release ok\n");
+    if (_arch != edition->_arch) return false;
+//fprintf (stderr, "arch ok\n");
+    return true;
+}
+
+
+bool
+Edition::equals( constEditionPtr edition ) const {
+//fprintf (stderr, "<%s> equals <%s>\n", asString().c_str(), edition->asString().c_str());
+    return match (edition);
+}
+
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/Edition.h b/zypp/solver/detail/Edition.h
new file mode 100644 (file)
index 0000000..72e8329
--- /dev/null
@@ -0,0 +1,105 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Edition.h
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * Definition of 'edition'
+ *  contains epoch-version-release-arch
+ *  and comparision functions
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _Edition_h
+#define _Edition_h
+
+#include <iosfwd>
+#include <string>
+
+#include <y2util/Ustring.h>
+
+#include <zypp/solver/detail/EditionPtr.h>
+#include <zypp/solver/detail/XmlNodePtr.h>
+#include <zypp/solver/detail/Arch.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : Edition
+/**
+ *
+ **/
+class Edition : public CountedRep {
+    REP_BODY(Edition);
+
+  private:
+    int _epoch;
+    std::string _version;
+    std::string _release;
+    const Arch *_arch;
+
+  public:
+
+    //
+    // -1 resp. NULL values are treated as 'any'
+    //
+
+    Edition( int epoch = -1, const std::string & version = "", const std::string & release = "", const Arch * arch = Arch::Unknown);
+    virtual ~Edition();
+
+    // ---------------------------------- I/O
+
+    const XmlNodePtr asXmlNode (void) const;
+
+    static std::string toString ( const Edition & edition, bool full = false );
+
+    virtual std::ostream & dumpOn( std::ostream & str ) const;
+
+    friend std::ostream& operator<<( std::ostream&, const Edition& );
+
+    std::string asString ( bool full = false ) const;
+
+    // ---------------------------------- accessors
+
+    void setVersion (const std::string & version) { _version = version; }
+    void setRelease (const std::string & release) { _release = release; }
+    void setEpoch (int epoch) { _epoch = epoch; }
+    void setArch (const std::string & arch) { _arch = Arch::create(arch); }
+    void setArch (const Arch * arch) { _arch = arch; }
+
+    const std::string & version() const { return _version; }
+    const std::string & release() const { return _release; }
+    const int epoch() const { return _epoch; }
+    bool hasEpoch() const { return _epoch >= 0; }
+    const Arch * arch() const { return _arch; }
+
+    bool match( constEditionPtr edition ) const;
+    bool equals( constEditionPtr edition ) const;
+
+    // ---------------------------------- accessors
+
+    EditionPtr copy (void) const;
+    static EditionPtr fromString (const char *s);
+
+};
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _Edition_h
diff --git a/zypp/solver/detail/EditionPtr.h b/zypp/solver/detail/EditionPtr.h
new file mode 100644 (file)
index 0000000..88c6896
--- /dev/null
@@ -0,0 +1,40 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* EditionPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _EditionPtr_h
+#define _EditionPtr_h
+
+#include <y2util/RepDef.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+///////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : EditionPtr
+//     CLASS NAME : constEditionPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_BASE_POINTER(Edition);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _EditionPtr_h
diff --git a/zypp/solver/detail/Hash.h b/zypp/solver/detail/Hash.h
new file mode 100644 (file)
index 0000000..88895eb
--- /dev/null
@@ -0,0 +1,33 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Hash.h
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _Hash_h
+#define _Hash_h
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+typedef unsigned int HashValue;
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _Hash_h
diff --git a/zypp/solver/detail/Importance.cc b/zypp/solver/detail/Importance.cc
new file mode 100644 (file)
index 0000000..2ebee68
--- /dev/null
@@ -0,0 +1,132 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Importance.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <y2util/stringutil.h>
+
+#include <zypp/solver/detail/Importance.h>
+
+#include <zypp/solver/detail/debug.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+const Importance & Importance::Undefined= Importance("undefined");
+
+//---------------------------------------------------------------------------
+string
+Importance::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+Importance::toString ( const Importance & importance )
+{
+    string res;
+
+    switch (importance.importance()) {
+       case IMPORTANCE_UNDEFINED:      res = "undefined"; break;
+       case IMPORTANCE_INVALID:        res = "invalid"; break;
+       case IMPORTANCE_NECESSARY:      res = "necessary"; break;
+       case IMPORTANCE_URGENT:         res = "urgent"; break;
+       case IMPORTANCE_SUGGESTED:      res = "suggested"; break;
+       case IMPORTANCE_FEATURE:        res = "feature"; break;
+       case IMPORTANCE_MINOR:          res = "minor"; break;
+       default:
+           rc_debug (RC_DEBUG_LEVEL_WARNING, "invalid importance %d\n",  importance.importance());
+           res = "invalid";
+    }
+    return res;
+}
+
+
+ostream &
+Importance::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const Importance& importance)
+{
+    return os << importance.asString();
+}
+
+//---------------------------------------------------------------------------
+
+Importance::Importance(const char *importance_str)
+{
+    _importance = IMPORTANCE_INVALID;
+    if (importance_str != NULL) {
+       switch (*importance_str) {
+           case 'f':
+               if (!strcmp (importance_str, "feature")) {
+                   _importance = IMPORTANCE_FEATURE;
+               }
+           break;
+           case 'm':
+               if (!strcmp (importance_str, "minor")) {
+                   _importance = IMPORTANCE_MINOR;
+               }
+           break;
+           case 'n':
+               if (!strcmp (importance_str, "necessary")) {
+                   _importance = IMPORTANCE_NECESSARY;
+               }
+           break;
+           case 's':
+               if (!strcmp (importance_str, "suggested")) {
+                   _importance = IMPORTANCE_SUGGESTED;
+               }
+           break;
+           case 'u':
+               if (!strcmp (importance_str, "urgent")) {
+                   _importance = IMPORTANCE_URGENT;
+               }
+               else if (!strcmp (importance_str, "undefined")) {
+                   _importance = IMPORTANCE_UNDEFINED;
+               }
+           default:
+           break;
+       }
+    }
+    if (_importance == IMPORTANCE_INVALID)
+       rc_debug (RC_DEBUG_LEVEL_WARNING, "invalid importance '%s'\n", importance_str ? importance_str : "<null>");
+
+}
+
+
+Importance::~Importance()
+{
+}
+
+
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/Importance.h b/zypp/solver/detail/Importance.h
new file mode 100644 (file)
index 0000000..a415840
--- /dev/null
@@ -0,0 +1,98 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Importance.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _Importance_h
+#define _Importance_h
+
+#include <iosfwd>
+#include <string.h>
+
+#include <y2util/Ustring.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : Importance
+/**
+ *
+ **/
+class Importance {
+
+  private:
+
+    typedef enum {
+       IMPORTANCE_INVALID = -1,
+
+       IMPORTANCE_NECESSARY,
+       IMPORTANCE_URGENT,
+       IMPORTANCE_SUGGESTED,
+       IMPORTANCE_FEATURE,
+       IMPORTANCE_MINOR,
+       IMPORTANCE_UNDEFINED,
+
+       // Not a real importance
+       IMPORTANCE_LAST
+    } importance_t;
+
+    importance_t _importance;
+
+  private:
+    importance_t importance () const { return _importance; }
+
+  public:
+
+    Importance(const char *importance_str);
+    virtual ~Importance();
+
+    static const Importance & Undefined;
+
+    // ---------------------------------- I/O
+
+    static std::string toString ( const Importance & importance);
+
+    virtual std::ostream & dumpOn( std::ostream & str ) const;
+
+    friend std::ostream& operator<<( std::ostream&, const Importance & importance);
+
+    std::string asString ( void ) const;
+
+    // ---------------------------------- accessors
+
+    // equality
+    bool operator==( const Importance & importance) const {
+       return _importance == importance.importance();
+    }
+
+    // inequality
+    bool operator!=( const Importance & importance) const {
+       return !(*this == importance);
+    }
+
+};
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _Importance_h
diff --git a/zypp/solver/detail/Makefile.am b/zypp/solver/detail/Makefile.am
new file mode 100644 (file)
index 0000000..b8033a9
--- /dev/null
@@ -0,0 +1,148 @@
+#
+# Makefile.am for solver/detail
+#
+
+SUBDIRS =
+
+INCLUDES =                                             \
+       -I$(top_srcdir) -Wall -fno-strict-aliasing      \
+       -I/usr/include/YaST2                            \
+       -I/usr/include/libxml2 -I/usr/include/rpm       \
+       -DG_LOG_DOMAIN=\"solver_detail\"
+
+include_HEADERS = \
+       debug.h                         \
+       utils.h                         \
+       extract.h                       \
+       Arch.h                          \
+       Edition.h                       \
+       EditionPtr.h                    \
+       Hash.h                          \
+       Spec.h                          \
+       SpecPtr.h                       \
+       Section.h                       \
+       Channel.h                       \
+       ChannelPtr.h                    \
+       Subscription.h                  \
+       Resolvable.h                    \
+       ResolvablePtr.h                 \
+       Dependency.h                    \
+       DependencyPtr.h                 \
+       ResolvableAndDependency.h       \
+       ResolvableAndDependencyPtr.h    \
+       OrDependency.h                  \
+       OrDependencyPtr.h               \
+       Package.h                       \
+       PackagePtr.h                    \
+       PackageUpdate.h                 \
+       PackageUpdatePtr.h              \
+       XmlNode.h                       \
+       XmlNodePtr.h                    \
+       XmlParser.h                     \
+       Importance.h                    \
+       Version.h                       \
+       Match.h                         \
+       MatchPtr.h                      \
+       Pending.h                       \
+       PendingPtr.h                    \
+       Packman.h                       \
+       PackmanPtr.h                    \
+       World.h                         \
+       WorldPtr.h                      \
+       UndumpWorld.h                   \
+       UndumpWorldPtr.h                \
+       StoreWorld.h                    \
+       StoreWorldPtr.h                 \
+       MultiWorld.h                    \
+       MultiWorldPtr.h                 \
+       ServiceWorld.h                  \
+       ServiceWorldPtr.h               \
+       ResolverContext.h               \
+       ResolverContextPtr.h            \
+       ResolverInfo.h                  \
+       ResolverInfoPtr.h               \
+       ResolverInfoContainer.h         \
+       ResolverInfoContainerPtr.h      \
+       ResolverInfoChildOf.h           \
+       ResolverInfoChildOfPtr.h        \
+       ResolverInfoConflictsWith.h     \
+       ResolverInfoConflictsWithPtr.h  \
+       ResolverInfoDependsOn.h         \
+       ResolverInfoDependsOnPtr.h      \
+       ResolverInfoMisc.h              \
+       ResolverInfoMiscPtr.h           \
+       ResolverInfoMissingReq.h        \
+       ResolverInfoMissingReqPtr.h     \
+       ResolverInfoNeededBy.h          \
+       ResolverInfoNeededByPtr.h       \
+       ResolverInfoObsoletes.h         \
+       ResolverInfoObsoletesPtr.h      \
+       QueueItem.h                     \
+       QueueItemPtr.h                  \
+       QueueItemBranch.h               \
+       QueueItemBranchPtr.h            \
+       QueueItemConflict.h             \
+       QueueItemConflictPtr.h          \
+       QueueItemGroup.h                \
+       QueueItemGroupPtr.h             \
+       QueueItemInstall.h              \
+       QueueItemInstallPtr.h           \
+       QueueItemRequire.h              \
+       QueueItemRequirePtr.h           \
+       QueueItemUninstall.h            \
+       QueueItemUninstallPtr.h         \
+       ResolverQueue.h                 \
+       ResolverQueuePtr.h              \
+       Resolver.h                      \
+       ResolverPtr.h
+
+noinst_LTLIBRARIES =   lib@PACKAGE@_solver_detail.la
+
+lib@PACKAGE@_solver_detail_la_SOURCES =                        \
+       utils.cc                                        \
+       debug.cc                                        \
+       Arch.cc                                         \
+       Edition.cc                                      \
+       Spec.cc                                         \
+       Channel.cc                                      \
+       Subscription.cc                                 \
+       Resolvable.cc                                   \
+       Dependency.cc                                   \
+       ResolvableAndDependency.cc                      \
+       OrDependency.cc                                 \
+       XmlNode.cc                                      \
+       Importance.cc                                   \
+       Section.cc                                      \
+       Package.cc                                      \
+       PackageUpdate.cc                                \
+       XmlParser.cc                                    \
+       Version.cc                                      \
+       Match.cc                                        \
+       Pending.cc                                      \
+       Packman.cc                                      \
+       World.cc                                        \
+       UndumpWorld.cc                                  \
+       StoreWorld.cc                                   \
+       MultiWorld.cc                                   \
+       ServiceWorld.cc                                 \
+       QueueItem.cc                                    \
+       QueueItemBranch.cc                              \
+       QueueItemConflict.cc                            \
+       QueueItemGroup.cc                               \
+       QueueItemInstall.cc                             \
+       QueueItemRequire.cc                             \
+       QueueItemUninstall.cc                           \
+       Resolver.cc                                     \
+       ResolverInfo.cc                                 \
+       ResolverInfoChildOf.cc                          \
+       ResolverInfoConflictsWith.cc                    \
+       ResolverInfoContainer.cc                        \
+       ResolverInfoDependsOn.cc                        \
+       ResolverInfoMisc.cc                             \
+       ResolverInfoMissingReq.cc                       \
+       ResolverInfoNeededBy.cc                         \
+       ResolverInfoObsoletes.cc                        \
+       ResolverContext.cc                              \
+       ResolverQueue.cc                                \
+       extract.cc
+
diff --git a/zypp/solver/detail/Match.cc b/zypp/solver/detail/Match.cc
new file mode 100644 (file)
index 0000000..65c8e9d
--- /dev/null
@@ -0,0 +1,180 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Match.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <y2util/stringutil.h>
+
+#include <zypp/solver/detail/Match.h>
+#include <zypp/solver/detail/World.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_BASE_POINTER(Match);
+
+//---------------------------------------------------------------------------
+
+string
+Match::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+Match::toString ( const Match & lock )
+{
+    return "<lock/>";
+}
+
+
+ostream &
+Match::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const Match& edition)
+{
+    return os << edition.asString();
+}
+
+//---------------------------------------------------------------------------
+
+Match::Match()
+    : _importance (Importance::Undefined)
+{
+}
+
+Match::Match (XmlNodePtr node)
+    : _importance (Importance::Undefined)
+{
+}
+
+Match::~Match()
+{
+}
+
+//---------------------------------------------------------------------------
+
+XmlNodePtr
+Match::asXmlNode (void) const
+{
+    return new XmlNode("match");
+}
+
+
+// equality
+bool
+Match::equals ( const Match & lock ) const {
+
+    // Check the name glob
+
+    if ((_name_glob.empty()) ^ (lock._name_glob.empty()))
+       return false;
+    if (_name_glob != lock._name_glob)
+       return false;
+
+    // Check the channel
+
+    if ((_channel_id.empty()) ^ (lock._channel_id.empty()))
+       return false;
+    if (_channel_id != lock._channel_id)
+       return false;
+
+    // Check the importance
+
+    if (_importance != lock._importance
+       || _importance_gteq != lock._importance_gteq)
+    {
+       return false;
+    }
+
+    // Check the dep
+    if ((_dependency == NULL) ^ (lock._dependency == NULL))
+       return false;
+    if (_dependency && lock._dependency) {
+       if (!( ((constSpecPtr) _dependency)->equals((constSpecPtr) lock._dependency))
+           || (_dependency->relation() != lock._dependency->relation())
+           || (_dependency->kind() != lock._dependency->kind()))
+       {
+       return false;
+       }
+    }
+
+    return true;
+}
+
+
+bool
+Match::test (constResolvablePtr resolvable, WorldPtr world) const
+{
+    string name;
+    constChannelPtr channel = resolvable->channel ();
+  
+    if (channel != NULL && !_channel_id.empty()) {
+       if (! channel->hasEqualId (_channel_id)) {
+           return false;
+       }
+    }
+
+    name = resolvable->name ();
+
+// FIXME, implement regexp
+#if 0
+    if (match->_pattern_spec
+       && ! g_pattern_match_string (match->pattern_spec, name)) {
+       return false;
+    }
+#endif
+
+  /* FIXME: Resolvables don't have ResolvableUpdate right now */
+/*   if (match->importance != RC_IMPORTANCE_INVALID && */
+/*       !rc_resolvable_is_installed (resolvable)) { */
+/*       RCResolvableUpdate *up = rc_resolvable_get_latest_update (pkg); */
+/*       if (up) { */
+/*               if (match->importance_gteq ? up->importance > match->importance */
+/*                       : up->importance < match->importance) */
+/*                       return FALSE; */
+/*       } */
+/*   } */
+
+    if (_dependency) {
+       DependencyPtr dependency;
+       bool check;
+
+       dependency = new Dependency (resolvable->name(), Relation::Equal, Kind::Package, resolvable->channel(), resolvable->edition());
+       check = _dependency->verifyRelation (dependency);
+       return check;
+    }
+
+    return true;
+}
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/Match.h b/zypp/solver/detail/Match.h
new file mode 100644 (file)
index 0000000..53d8b08
--- /dev/null
@@ -0,0 +1,114 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Match.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _Match_h
+#define _Match_h
+
+#include <iosfwd>
+#include <string.h>
+
+#include <y2util/Ustring.h>
+
+#include <zypp/solver/detail/MatchPtr.h>
+#include <zypp/solver/detail/Channel.h>
+#include <zypp/solver/detail/Importance.h>
+#include <zypp/solver/detail/Resolvable.h>
+#include <zypp/solver/detail/WorldPtr.h>
+#include <zypp/solver/detail/XmlNode.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+class Match;
+typedef std::list<constMatchPtr> MatchList;
+
+class World;
+typedef bool (*MatchFn) (constMatchPtr match, void *data);
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : Match
+/**
+ *
+ **/
+class Match : public CountedRep {
+    REP_BODY(Match);
+
+  private:
+    std::string _channel_id;
+
+    constDependencyPtr _dependency;
+
+    std::string _name_glob;
+//    GPatternSpec *_pattern_spec;
+
+    Importance _importance;
+    bool _importance_gteq;
+
+  public:
+
+    Match();
+    Match(XmlNodePtr node);
+    virtual ~Match();
+
+    // ---------------------------------- I/O
+
+    static std::string toString ( const Match & lock );
+
+    virtual std::ostream & dumpOn( std::ostream & str ) const;
+
+    friend std::ostream& operator<<( std::ostream&, const Match & lock );
+
+    std::string asString ( void ) const;
+
+    XmlNodePtr asXmlNode (void) const;
+
+    // ---------------------------------- accessors
+
+    const std::string & channelId () const { return _channel_id; }
+    void setChannel (constChannelPtr channel) { _channel_id = channel->id(); }
+    void setChannelId (const std::string & channel_id) { _channel_id = channel_id; }
+
+    constDependencyPtr dependency () const { return _dependency; }
+    void setDependency (constDependencyPtr dependency) { _dependency = dependency; }
+
+    const std::string & glob () const { return _name_glob; }
+    void setGlob (const std::string & glob_str) { _name_glob = glob_str; }
+
+    const Importance & importance (bool *match_gteq) const { *match_gteq = _importance_gteq; return _importance; }
+    void setImportance (const Importance & importance, bool match_gteq) { _importance = importance; _importance_gteq = match_gteq; }
+
+    // ---------------------------------- methods
+
+    typedef bool (*MatchFn) (constMatchPtr, void *data);
+
+    // equality
+    bool equals (const Match & match) const;
+
+    bool test (constResolvablePtr resolvable, WorldPtr world) const;
+};
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _Match_h
diff --git a/zypp/solver/detail/MatchPtr.h b/zypp/solver/detail/MatchPtr.h
new file mode 100644 (file)
index 0000000..a0f10c9
--- /dev/null
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* MatchPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _MatchPtr_h
+#define _MatchPtr_h
+
+#include <y2util/RepDef.h>
+#include <zypp/solver/detail/Edition.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : MatchPtr
+//     CLASS NAME : constMatchPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_BASE_POINTER(Match);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _MatchPtr_h
diff --git a/zypp/solver/detail/MultiWorld.cc b/zypp/solver/detail/MultiWorld.cc
new file mode 100644 (file)
index 0000000..bb4fea9
--- /dev/null
@@ -0,0 +1,664 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* MultiWorld.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <y2util/stringutil.h>
+#include <zypp/solver/detail/MultiWorld.h>
+#include <zypp/solver/detail/ServiceWorld.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+//===========================================================================
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : SubWorldInfo
+
+class SubWorldInfo {
+
+  private:
+    WorldPtr _subworld;
+    WorldPtr _refreshed_subworld;
+
+    bool _refreshed_ready;
+
+    unsigned int _changed_resolvables_id;
+    unsigned int _changed_channels_id;
+    unsigned int _changed_subscriptions_id;
+    unsigned int _changed_locks_id;
+
+  public:
+
+    SubWorldInfo (WorldPtr subworld, MultiWorldPtr multiworld);
+    virtual ~SubWorldInfo();
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const SubWorldInfo & subworldinfo);
+
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+
+    friend std::ostream& operator<<(std::ostream&, const SubWorldInfo & subworldinfo);
+
+    std::string asString (void ) const;
+
+    // ---------------------------------- accessors
+
+    WorldPtr subworld () const { return _subworld; }
+
+    // ---------------------------------- methods
+
+};
+
+//---------------------------------------------------------------------------
+
+string
+SubWorldInfo::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+SubWorldInfo::toString ( const SubWorldInfo & subworldinfo )
+{
+    return "<subworldinfo/>";
+}
+
+
+ostream &
+SubWorldInfo::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const SubWorldInfo & subworldinfo)
+{
+    return os << subworldinfo.asString();
+}
+
+//---------------------------------------------------------------------------
+
+SubWorldInfo::SubWorldInfo (WorldPtr subworld, MultiWorldPtr multiworld)
+    : _subworld (subworld)
+    , _changed_resolvables_id (0)
+    , _changed_channels_id (0)
+    , _changed_subscriptions_id (0)
+    , _changed_locks_id (0)
+
+{
+#if 0
+    _changed_resolvables_id =
+        g_signal_connect (G_OBJECT (subworld),
+                          "changed_resolvables",
+                          (GCallback) changed_resolvables_cb,
+                          world);
+
+    _changed_channels_id =
+        g_signal_connect (G_OBJECT (subworld),
+                          "changed_channels",
+                          (GCallback) changed_channels_cb,
+                          world);
+
+    _changed_subscriptions_id =
+        g_signal_connect (G_OBJECT (subworld),
+                          "changed_subscriptions",
+                          (GCallback) changed_subscriptions_cb,
+                          world);
+
+    _changed_locks_id = 
+        g_signal_connect (G_OBJECT (subworld),
+                          "changed_locks",
+                          (GCallback) changed_locks_cb,
+                          world);
+#endif
+}
+
+
+SubWorldInfo::~SubWorldInfo()
+{
+}
+
+
+//===========================================================================
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : NameConflictInfo
+
+class NameConflictInfo {
+
+  private:
+    int _depth;
+    MultiWorldPtr _multiworld;
+    WorldPtr _subworld;
+    const char *_name;
+
+  public:
+    NameConflictInfo(int depth, MultiWorldPtr multiworld, WorldPtr subworld, const char *name);
+    virtual ~NameConflictInfo();
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const NameConflictInfo & nameconflictinfo);
+
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+
+    friend std::ostream& operator<<(std::ostream&, const NameConflictInfo & nameconflictinfo);
+
+    std::string asString (void ) const;
+
+    // ---------------------------------- accessors
+
+    int depth () const { return _depth; }
+    MultiWorldPtr multiworld () const { return _multiworld; }
+    WorldPtr subworld () const { return _subworld; }
+    const char *name () const { return _name; }
+    void setName (const char *name) { free((void *)_name); _name = strdup (name); }
+
+    // ---------------------------------- methods
+
+    void incDepth (void) { _depth++; }
+};
+
+
+//---------------------------------------------------------------------------
+
+string
+NameConflictInfo::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+NameConflictInfo::toString ( const NameConflictInfo & subworldinfo )
+{
+    return "<nameconflictinfo/>";
+}
+
+
+ostream &
+NameConflictInfo::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const NameConflictInfo & subworldinfo)
+{
+    return os << subworldinfo.asString();
+}
+
+//---------------------------------------------------------------------------
+
+NameConflictInfo::NameConflictInfo (int depth, MultiWorldPtr multiworld, WorldPtr subworld, const char *name)
+    : _depth (depth)
+    , _multiworld (multiworld)
+    , _subworld (subworld)
+    , _name (strdup (name))
+{
+}
+
+
+NameConflictInfo::~NameConflictInfo()
+{
+    free ((void *)_name);
+}
+
+
+//===========================================================================
+
+IMPL_DERIVED_POINTER(MultiWorld, World);
+
+string
+MultiWorld::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+MultiWorld::toString ( const MultiWorld & world )
+{
+    return "<undumpworld/>";
+}
+
+
+ostream &
+MultiWorld::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const MultiWorld & world)
+{
+    return os << world.asString();
+}
+
+//---------------------------------------------------------------------------
+
+MultiWorld::MultiWorld ()
+    : World (MULTI_WORLD)
+{
+}
+
+
+MultiWorld::~MultiWorld()
+{
+}
+
+//---------------------------------------------------------------------------
+
+class ForeachByTypeInfo {
+    public:
+       WorldType type;
+       WorldFn callback;
+       NameConflictInfo *name_conflict_info;
+
+       int count;
+};
+
+
+int
+MultiWorld::foreachSubworld (WorldFn callback, void *user_data)
+{
+    if (callback == NULL) return -1;
+
+    /* Make a copy of subworlds for case where user callback is
+       running main loop and a refresh starts at that time. */
+
+    WorldList copied_subworlds;
+
+    for (SubWorldInfoList::iterator iter = _subworlds.begin(); iter != _subworlds.end(); iter++) {
+       copied_subworlds.push_front ((*iter)->subworld());
+    }
+
+    int count = 0;
+
+    for (WorldList::const_iterator iter = copied_subworlds.begin(); iter != copied_subworlds.end(); iter++) {
+        if (! callback (*iter, user_data)) {
+            count = -1;
+            break;
+        } else
+            ++count;
+    }
+
+    return count;
+}
+
+
+static bool
+foreach_by_type_cb (constWorldPtr subworld, void *user_data)
+{
+    ForeachByTypeInfo *info = (ForeachByTypeInfo *)user_data;
+
+    if ((subworld->type() != info->type)
+        || info->callback == NULL)
+    {
+       return true;
+    }
+
+    if (! info->callback (subworld, info->name_conflict_info)) {
+       info->count = -1;
+       return false;
+    } else {
+       ++info->count;
+       return true;
+    }
+}
+
+
+int
+MultiWorld::foreachSubworldByType (WorldType type, WorldFn callback, NameConflictInfo *name_conflict_info)
+{
+    ForeachByTypeInfo info;
+
+    info.type = type;
+    info.callback = callback;
+    info.name_conflict_info = name_conflict_info;
+    info.count = 0;
+
+    foreachSubworld (foreach_by_type_cb, (void *)(&info));
+
+    return info.count;
+}
+
+//---------------------------------------------------------------------------
+// subworld
+
+static bool
+service_name_conflict_cb (constWorldPtr world, void *user_data)
+{
+    constServiceWorldPtr service = world;
+    if (service == NULL) {
+       fprintf (stderr, "OOPS: service_name_conflict_cb: world is no service\n");
+       abort();
+    }
+
+    NameConflictInfo *info = (NameConflictInfo *)user_data;
+    if (!strcasecmp (service->name(), info->name())) {
+       info->incDepth();
+       ServiceWorldPtr infoservice = info->subworld();
+       if (infoservice == NULL) {
+           fprintf (stderr, "OOPS: service_name_conflict_cb: info->subworld is no service\n");
+           abort();
+       }
+        info->setName (stringutil::form ("%s (%d)", infoservice->name(), info->depth()).c_str());
+       info->multiworld()->foreachSubworldByType (SERVICE_WORLD, service_name_conflict_cb, info);
+        return false;
+    }
+
+    return true;
+}
+
+
+void
+MultiWorld::addSubworld (WorldPtr subworld)
+{
+    if (subworld == NULL) return;
+
+    /* 
+     * If we're adding a service, make sure that the name of the service
+     * doesn't conflict with any other.
+     */
+    ServiceWorldPtr service = subworld;                        // service will be NULL if subworld is not a ServiceWorld
+
+    if (service != NULL) {
+       NameConflictInfo conflict_info (0, this, subworld, service->name());
+
+       foreachSubworldByType (SERVICE_WORLD, service_name_conflict_cb, &conflict_info);
+
+       service->setName (conflict_info.name());
+    }
+
+    SubWorldInfo *subworld_info = new SubWorldInfo (subworld, this);
+
+    _subworlds.push_back (subworld_info);
+
+//    g_signal_emit (multi, signals[SUBWORLD_ADDED], 0, subworld);
+
+    return;
+}
+
+
+void
+MultiWorld::removeSubworld (WorldPtr subworld)
+{
+    if (subworld == NULL) return;
+
+    for (SubWorldInfoList::iterator iter = _subworlds.begin(); iter != _subworlds.end(); iter++) {
+       if ((*iter)->subworld() == subworld) {
+           _subworlds.erase (iter);
+//         g_signal_emit (multi, signals[SUBWORLD_REMOVED], 0, subworld);
+           return;
+       }
+    }
+    return;
+}
+
+
+//---------------------------------------------------------------------------
+// channels
+
+ChannelList
+MultiWorld::channels () const
+{
+    ChannelList cl;
+    for (SubWorldInfoList::const_iterator iter = _subworlds.begin(); iter != _subworlds.end(); iter++) {
+       cl = (*iter)->subworld()->channels();
+//FIXME        cl.merge ((*iter)->subworld()->channels());
+    }
+    return cl;
+}
+
+
+bool
+MultiWorld::containsChannel (constChannelPtr channel) const
+{
+    for (SubWorldInfoList::const_iterator iter = _subworlds.begin(); iter != _subworlds.end(); iter++) {
+       if ((*iter)->subworld()->containsChannel(channel))
+           return true;
+    }
+    return false;
+}
+
+
+ChannelPtr
+MultiWorld::getChannelByName (const char *channel_name) const
+{
+    ChannelPtr channel;
+    for (SubWorldInfoList::const_iterator iter = _subworlds.begin(); iter != _subworlds.end(); iter++) {
+       channel = (*iter)->subworld()->getChannelByName(channel_name);
+       if (channel != NULL)
+           return channel;
+    }
+    return NULL;
+}
+
+
+ChannelPtr
+MultiWorld::getChannelByAlias (const char *alias) const
+{
+    ChannelPtr channel;
+    for (SubWorldInfoList::const_iterator iter = _subworlds.begin(); iter != _subworlds.end(); iter++) {
+       channel = (*iter)->subworld()->getChannelByAlias(alias);
+       if (channel != NULL)
+           return channel;
+    }
+    return NULL;
+}
+
+
+ChannelPtr
+MultiWorld::getChannelById (const char *channel_id) const
+{
+    ChannelPtr channel;
+    for (SubWorldInfoList::const_iterator iter = _subworlds.begin(); iter != _subworlds.end(); iter++) {
+       channel = (*iter)->subworld()->getChannelById(channel_id);
+       if (channel != NULL)
+           return channel;
+    }
+    return NULL;
+}
+
+
+int
+MultiWorld::foreachChannel (ChannelFn fn, void *data) const
+{
+    int count = 0;
+    for (SubWorldInfoList::const_iterator iter = _subworlds.begin(); iter != _subworlds.end(); iter++) {
+       int this_count;
+       this_count = (*iter)->subworld()->foreachChannel(fn, data);
+       if (this_count < 0)
+           return -1;
+       count += this_count;
+    }
+    return count;
+}
+
+
+//---------------------------------------------------------------------------
+// Single resolvable queries
+
+constResolvablePtr
+MultiWorld::findInstalledResolvable (constResolvablePtr resolvable)
+{
+    constResolvablePtr installed;
+    for (SubWorldInfoList::const_iterator iter = _subworlds.begin(); iter != _subworlds.end(); iter++) {
+       installed = (*iter)->subworld()->findInstalledResolvable(resolvable);
+       if (installed != NULL)
+           return installed;
+    }
+    return NULL;
+}
+
+
+constResolvablePtr
+MultiWorld::findResolvable (constChannelPtr channel, const char *name) const
+{
+    constResolvablePtr resolvable;
+    for (SubWorldInfoList::const_iterator iter = _subworlds.begin(); iter != _subworlds.end(); iter++) {
+       resolvable = (*iter)->subworld()->findResolvable(channel, name);
+       if (resolvable != NULL)
+           return resolvable;
+    }
+    return NULL;
+}
+
+
+constResolvablePtr
+MultiWorld::findResolvableWithConstraint (constChannelPtr channel, const char *name, constDependencyPtr constraint, bool is_and) const
+{
+    constResolvablePtr resolvable;
+    for (SubWorldInfoList::const_iterator iter = _subworlds.begin(); iter != _subworlds.end(); iter++) {
+       resolvable = (*iter)->subworld()->findResolvableWithConstraint(channel, name, constraint, is_and);
+       if (resolvable != NULL)
+           return resolvable;
+    }
+    return NULL;
+}
+
+
+ChannelPtr
+MultiWorld::guessResolvableChannel (constResolvablePtr resolvable) const
+{
+    ChannelPtr channel;
+    for (SubWorldInfoList::const_iterator iter = _subworlds.begin(); iter != _subworlds.end(); iter++) {
+       channel = (*iter)->subworld()->guessResolvableChannel(resolvable);
+       if (channel != NULL)
+           return channel;
+    }
+    return NULL;
+}
+
+//---------------------------------------------------------------------------
+// iterate over resolvables
+
+int
+MultiWorld::foreachResolvable (ChannelPtr channel, CResolvableFn fn, void *data)
+{
+    return foreachResolvableByName ("", channel, fn, data);
+}
+
+
+int
+MultiWorld::foreachResolvableByName (const std::string & name, ChannelPtr channel, CResolvableFn fn, void *data)
+{
+    int count = 0;
+    for (SubWorldInfoList::const_iterator iter = _subworlds.begin(); iter != _subworlds.end(); iter++) {
+       int this_count;
+       this_count = (*iter)->subworld()->foreachResolvableByName(name, channel, fn, data);
+       if (this_count < 0)
+           return -1;
+       count += this_count;
+    }
+    return count;
+}
+
+
+int
+MultiWorld::foreachResolvableByMatch (constMatchPtr match, CResolvableFn fn, void *data)
+{
+    fprintf (stderr, "MultiWorld::foreachResolvableByMatch not implemented\n");
+    return 0;
+}
+
+
+//-----------------------------------------------------------------------------
+// iterater over resolvables with dependency
+
+int
+MultiWorld::foreachProvidingResolvable (constDependencyPtr dep, ResolvableAndSpecFn fn, void *data)
+{
+    int count = 0;
+    for (SubWorldInfoList::const_iterator iter = _subworlds.begin(); iter != _subworlds.end(); iter++) {
+       int this_count;
+       this_count = (*iter)->subworld()->foreachProvidingResolvable (dep, fn, data);
+       if (this_count < 0)
+           return -1;
+       count += this_count;
+    }
+    return count;
+}
+
+int
+MultiWorld::foreachRequiringResolvable (constDependencyPtr dep, ResolvableAndDepFn fn, void *data)
+{
+    int count = 0;
+    for (SubWorldInfoList::const_iterator iter = _subworlds.begin(); iter != _subworlds.end(); iter++) {
+       int this_count;
+       this_count = (*iter)->subworld()->foreachRequiringResolvable (dep, fn, data);
+       if (this_count < 0)
+           return -1;
+       count += this_count;
+    }
+    return count;
+}
+
+int
+MultiWorld::foreachConflictingResolvable (constDependencyPtr dep, ResolvableAndDepFn fn, void *data)
+{
+    int count = 0;
+    for (SubWorldInfoList::const_iterator iter = _subworlds.begin(); iter != _subworlds.end(); iter++) {
+       int this_count;
+       this_count = (*iter)->subworld()->foreachConflictingResolvable (dep, fn, data);
+       if (this_count < 0)
+           return -1;
+       count += this_count;
+    }
+    return count;
+}
+
+
+//-----------------------------------------------------------------------------
+// iterater over resolvables with locks
+
+int
+MultiWorld::foreachLock (MatchFn fn, void *data) const
+{
+    int count = 0;
+    for (SubWorldInfoList::const_iterator iter = _subworlds.begin(); iter != _subworlds.end(); iter++) {
+       int this_count;
+       this_count = (*iter)->subworld()->foreachLock(fn, data);
+       if (this_count < 0)
+           return -1;
+       count += this_count;
+    }
+    return count;
+}
+
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/MultiWorld.h b/zypp/solver/detail/MultiWorld.h
new file mode 100644 (file)
index 0000000..3538792
--- /dev/null
@@ -0,0 +1,127 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* MultiWorld.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _MultiWorld_h
+#define _MultiWorld_h
+
+#include <iosfwd>
+#include <string.h>
+
+#include <zypp/solver/detail/MultiWorldPtr.h>
+#include <zypp/solver/detail/ServiceWorldPtr.h>
+#include <zypp/solver/detail/World.h>
+#include <zypp/solver/detail/Pending.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+class SubWorldInfo;
+class NameConflictInfo;
+class ForeachByTypeInfo;
+
+typedef std::list <SubWorldInfo *> SubWorldInfoList;
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : MultiWorld
+
+class MultiWorld : public World {
+    REP_BODY(MultiWorld);
+
+  private:
+
+    SubWorldInfoList _subworlds;
+
+    PendingPtr _multi_pending;
+    PendingList _subworld_pendings;
+
+    void (*_subworld_added)   (WorldPtr subworld);
+    void (*_subworld_removed) (WorldPtr subworld);
+
+  public:
+
+    MultiWorld ();
+    MultiWorld (XmlNodePtr node);
+    MultiWorld (const char *filename);
+    virtual ~MultiWorld();
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const MultiWorld & section);
+
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+
+    friend std::ostream& operator<<(std::ostream&, const MultiWorld & section);
+
+    std::string asString (void ) const;
+
+    // ---------------------------------- accessors
+
+    void addSubworld (WorldPtr subworld);
+    void removeSubworld (WorldPtr subworld);
+
+    // ---------------------------------- methods
+
+    virtual ChannelList channels () const;
+    virtual bool containsChannel (constChannelPtr channel) const;
+    virtual ChannelPtr getChannelByName (const char *channel_name) const;
+    virtual ChannelPtr getChannelByAlias (const char *alias) const;
+    virtual ChannelPtr getChannelById (const char *channel_id) const;
+    virtual ChannelPtr guessResolvableChannel (constResolvablePtr resolvable) const;
+    virtual int foreachChannel (ChannelFn fn, void *data) const;
+
+    int foreachSubworld (WorldFn callback, void *user_data);
+    int foreachSubworldByType (WorldType type, WorldFn callback, NameConflictInfo *info);
+    WorldList getSubworlds ();
+    ServiceWorldPtr lookupService (const char *url);
+    ServiceWorldPtr lookupServiceById (const char *id);
+    bool mountService (const char *url, void *error);                  // GError **error);
+
+    // Single resolvable queries
+
+    virtual constResolvablePtr findInstalledResolvable (constResolvablePtr resolvable);
+    virtual constResolvablePtr findResolvable (constChannelPtr channel, const char *name) const;
+    virtual constResolvablePtr findResolvableWithConstraint (constChannelPtr channel, const char *name, constDependencyPtr constraint, bool is_and) const;
+
+    // Iterate over resolvables
+
+    virtual int foreachResolvable (ChannelPtr channel, CResolvableFn fn, void *data);
+    virtual int foreachResolvableByName (const std::string & name, ChannelPtr channel, CResolvableFn fn, void *data);
+    virtual int foreachResolvableByMatch (constMatchPtr match, CResolvableFn fn, void *data);
+
+    // Iterate across provides or requirement
+
+    virtual int foreachProvidingResolvable (constDependencyPtr dep, ResolvableAndSpecFn fn, void *data);
+    virtual int foreachRequiringResolvable (constDependencyPtr dep, ResolvableAndDepFn fn, void *data);
+    virtual int foreachConflictingResolvable (constDependencyPtr dep, ResolvableAndDepFn fn, void *data);
+
+    // locks
+
+    virtual int foreachLock (MatchFn fn, void *data) const;
+
+};
+    
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _MultiWorld_h
diff --git a/zypp/solver/detail/MultiWorldPtr.h b/zypp/solver/detail/MultiWorldPtr.h
new file mode 100644 (file)
index 0000000..8d30652
--- /dev/null
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* MultiWorldPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _MultiWorldPtr_h
+#define _MultiWorldPtr_h
+
+#include <y2util/RepDef.h>
+#include <zypp/solver/detail/WorldPtr.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : MultiWorldPtr
+//     CLASS NAME : constMultiWorldPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_DERIVED_POINTER(MultiWorld, World);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _MultiWorldPtr_h
diff --git a/zypp/solver/detail/OrDependency.cc b/zypp/solver/detail/OrDependency.cc
new file mode 100644 (file)
index 0000000..25a0a91
--- /dev/null
@@ -0,0 +1,283 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* OrDependency.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * Definition of 'or dependency'
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <y2util/stringutil.h>
+
+#include <zypp/solver/detail/OrDependency.h>
+#include <zypp/solver/detail/Dependency.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_BASE_POINTER(OrDependency);
+
+OrDependency::OrDependencyTable OrDependency::_or_dep_table;
+
+//---------------------------------------------------------------------------
+
+string
+OrDependency::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+OrDependency::toString ( const OrDependency & dependency )
+{
+    string res ("<ordependency/>");
+
+    return res;
+}
+
+
+ostream &
+OrDependency::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream & os, const OrDependency & dependency)
+{
+    return os << dependency.asString();
+}
+
+//---------------------------------------------------------------------------
+
+OrDependency::OrDependency (string & dep, const CDependencyList & split_ors)
+    : _or_dep (dep)
+    , _split_ors (split_ors)
+    , _ref(1)
+{
+}
+
+
+OrDependency::OrDependency (constXmlNodePtr node)
+{
+}
+
+
+OrDependency::~OrDependency()
+{
+}
+
+
+//---------------------------------------------------------------------------
+
+OrDependencyPtr
+OrDependency::fromDependencyList (const CDependencyList & deplist)
+{
+    string depstr = dependencyListToString(deplist);
+
+    OrDependencyTable::iterator pos = _or_dep_table.find(depstr);
+    if (pos != _or_dep_table.end()) {
+       (*pos).second->incRef();
+       return (*pos).second;
+    }
+
+    OrDependencyPtr or_dep = new OrDependency (depstr, deplist);
+    _or_dep_table[depstr] = or_dep;
+    return or_dep;
+}
+
+
+OrDependencyPtr
+OrDependency::fromString (const char *dep)
+{
+    string depstr = string (dep);
+
+    OrDependencyTable::iterator pos = _or_dep_table.find(depstr);
+    if (pos != _or_dep_table.end()) {
+       (*pos).second->incRef();
+       return (*pos).second;
+    }
+
+    CDependencyList deplist = stringToDependencyList (dep);
+    OrDependencyPtr or_dep = new OrDependency (depstr, deplist);
+    _or_dep_table[depstr] = or_dep;
+    return or_dep;
+
+}
+
+
+string
+OrDependency::dependencyListToString (const CDependencyList & deplist)
+{
+    string str ("(||");
+
+    for (CDependencyList::const_iterator dep = deplist.begin(); dep != deplist.end(); dep++) {
+       if (dep != deplist.begin())
+           str += "|";
+
+       str += (*dep)->name();
+
+       Relation relation = (*dep)->relation();
+
+       if (relation != Relation::Any) {
+           str += "&";
+           str += relation.asString();
+           str += "&";
+
+           if ((*dep)->epoch() >= 0) {
+               str += stringutil::form("%d:", (*dep)->epoch());
+           }
+
+           str += (*dep)->version();
+
+           string rel = (*dep)->release();
+           if (!rel.empty()) {
+               str += "-";
+               str += rel;
+           }
+       }
+
+    }
+
+    str += ")";
+
+    return str;
+}
+
+
+CDependencyList
+OrDependency::stringToDependencyList (const char *s)
+{
+    const char *p, *zz;
+    CDependencyList out_dep;
+    bool have_more = true;
+
+    if (strncmp (s, "(||", 3)) {
+       fprintf (stderr, "'%s' is not a 'munged or' string!\n", s);
+       return out_dep;
+    }
+
+    s += 3;
+
+    zz = strchr (s, ')');
+
+    if (!zz)
+       return out_dep;
+
+    /* s now points to the start of the first thing */
+    do {
+       char *z;
+       SpecPtr spec;
+       char *name;
+       Relation relation = Relation::Any;
+       EditionPtr edition = NULL;
+
+       /* grab the name */
+
+       z = strchr (s, '|');
+       p = strchr (s, '&');
+
+       if (!z) {
+           have_more = false;
+       }
+       else {
+           /* We don't want to get a p from a later element. */
+           if (p > z)
+               p = NULL;
+       }
+
+       name = strndup (s, p ? p - s : (z ? z - s : zz - s));
+
+       if (p) {
+           char *e;
+           char op[4];
+           char *vstr;
+
+           /* We need to parse version things */
+           p++;
+           e = strchr (p, '&');
+           if (!e || e-p > 3) {
+               /* Bad. */
+               fprintf (stderr, "Couldn't parse ver str [%s]\n", p);
+           }
+
+           /* text between p and e is an operator */
+           strncpy (op, p, e - p);
+           op[e - p] = 0;
+           relation = Relation::parse (op);
+
+           e++;
+           if (z) {
+               p = z;
+           } else {
+               p = zz;
+           }
+
+           /* e .. p is the epoch:version-release */
+           vstr = strndup (e, p - e);
+
+           EditionPtr edition = Edition::fromString (vstr);
+
+           free ((void *)vstr);
+
+       }
+
+       DependencyPtr dep = new Dependency (name, relation, Kind::Package, NULL, edition);
+
+       out_dep.push_back (dep);
+       free ((void *)name);
+
+       s = z + 1;
+
+       if (p == zz)
+           have_more = false;
+    } while (have_more);
+
+    return out_dep;
+}
+
+
+void
+OrDependency::addCreatedProvide (constDependencyPtr dep)
+{
+    _created_provides.push_back (dep);
+}
+
+
+constDependencyPtr
+OrDependency::find (const char *dep)
+{
+    string depstr (dep);
+
+    OrDependencyTable::iterator pos = _or_dep_table.find(depstr);
+    if (pos != _or_dep_table.end()) {
+       return new Dependency ((*pos).second);
+    }
+
+    return NULL;
+}
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/OrDependency.h b/zypp/solver/detail/OrDependency.h
new file mode 100644 (file)
index 0000000..4c1d144
--- /dev/null
@@ -0,0 +1,101 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* OrDependency.h
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _OrDependency_h
+#define _OrDependency_h
+
+#include <list>
+#include <map>
+#include <iosfwd>
+#include <string.h>
+
+#include <y2util/Ustring.h>
+
+#include <zypp/solver/detail/OrDependencyPtr.h>
+#include <zypp/solver/detail/Dependency.h>
+#include <zypp/solver/detail/XmlNode.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : OrDependency
+/**
+ *
+ **/
+
+class OrDependency : public CountedRep {
+    REP_BODY(OrDependency);
+
+  private:
+    typedef std::map<std::string, OrDependencyPtr> OrDependencyTable;
+
+    static OrDependencyTable _or_dep_table;
+
+    std::string _or_dep;
+    CDependencyList _split_ors;
+    CDependencyList _created_provides;
+    int _ref;
+
+    OrDependency (std::string & dep, const CDependencyList & split_ors);
+
+    static std::string dependencyListToString (const CDependencyList & deplist);
+    static CDependencyList stringToDependencyList (const char *s);
+
+    void incRef() { _ref++; }
+    void decRef() { _ref--; }
+
+  public:
+
+    OrDependency (constXmlNodePtr node);
+
+    virtual ~OrDependency();
+
+    // ---------------------------------- I/O
+
+    const xmlNodePtr asXmlNode (void) const;
+
+    static std::string toString ( const OrDependency & ordep );
+
+    virtual std::ostream & dumpOn( std::ostream & str ) const;
+
+    friend std::ostream& operator<<( std::ostream&, const OrDependency & ordep );
+
+    std::string asString ( void ) const;
+
+    // ---------------------------------- accessors
+
+    const char *name (void) const { return _or_dep.c_str(); }
+    void addCreatedProvide (constDependencyPtr dep);
+
+    // ---------------------------------- methods
+
+    static OrDependencyPtr fromDependencyList (const CDependencyList & deplist);
+    static OrDependencyPtr fromString (const char *dep);
+    static constDependencyPtr find (const char *dep);
+};
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _OrDependency_h
diff --git a/zypp/solver/detail/OrDependencyPtr.h b/zypp/solver/detail/OrDependencyPtr.h
new file mode 100644 (file)
index 0000000..84a7765
--- /dev/null
@@ -0,0 +1,40 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* OrDependencyPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _OrDependencyPtr_h
+#define _OrDependencyPtr_h
+
+#include <y2util/RepDef.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+///////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : OrDependencyPtr
+//     CLASS NAME : constOrDependencyPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_BASE_POINTER(OrDependency);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _DependencyPtr_h
diff --git a/zypp/solver/detail/Package.cc b/zypp/solver/detail/Package.cc
new file mode 100644 (file)
index 0000000..c701481
--- /dev/null
@@ -0,0 +1,639 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Package.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <zypp/solver/detail/utils.h>
+#include <zypp/solver/detail/Version.h>
+#include <zypp/solver/detail/Package.h>
+#include <zypp/solver/detail/PackageUpdate.h>
+#include <zypp/solver/detail/Dependency.h>
+#include <zypp/solver/detail/World.h>
+#include <zypp/solver/detail/XmlNode.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_DERIVED_POINTER(Package,Spec);
+
+struct DepTable {
+    CDependencyList requires;
+    CDependencyList provides;
+    CDependencyList conflicts;
+    CDependencyList obsoletes;
+    CDependencyList children;
+    CDependencyList suggests;
+    CDependencyList recommends;
+};
+
+//---------------------------------------------------------------------------
+
+static void
+extract_dep_info (constXmlNodePtr iter, struct DepTable & dep_table)
+{
+    if (iter->equals("requires")) {
+       constXmlNodePtr iter2;
+       
+       iter2 = iter->children();
+
+       while (iter2) {
+           if (!iter2->isElement()) {
+               iter2 = iter2->next();
+               continue;
+           }
+
+           dep_table.requires.push_back(new Dependency (iter2));
+           iter2 = iter2->next();
+       }
+
+    } else if (iter->equals("recommends")) {
+       constXmlNodePtr iter2;
+
+       iter2 = iter->children();
+
+       while (iter2) {
+           if (!iter2->isElement()) {
+               iter2 = iter2->next();
+               continue;
+           }
+
+           dep_table.recommends.push_back (new Dependency (iter2));
+           iter2 = iter2->next();
+       }
+
+    } else if (iter->equals("suggests")) {
+       constXmlNodePtr iter2;
+
+       iter2 = iter->children();
+
+       while (iter2) {
+           if (!iter2->isElement()) {
+               iter2 = iter2->next();
+               continue;
+           }
+
+           dep_table.suggests.push_back (new Dependency (iter2));
+           iter2 = iter2->next();
+       }
+
+    } else if (iter->equals("conflicts")) {
+       XmlNodePtr iter2;
+       bool all_are_obs = false, this_is_obs = false;
+       const char *obs;
+
+       iter2 = iter->children();
+
+       obs = iter->getProp ("obsoletes", NULL);
+       if (obs) {
+           all_are_obs = true;
+           free ((void *)obs);
+       }
+
+       while (iter2) {
+
+           if (!iter2->isElement()) {
+               iter2 = iter2->next();
+               continue;
+           }
+
+           DependencyPtr dep = new Dependency (iter2);
+
+           if (! all_are_obs) {
+               this_is_obs = false;
+               obs = iter2->getProp ("obsoletes", NULL);
+               if (obs) {
+                   this_is_obs = true;
+                   free ((void *)obs);
+               }
+           }
+               
+           if (all_are_obs || this_is_obs) {
+               dep_table.obsoletes.push_back (dep);
+           } else {
+               dep_table.conflicts.push_back (dep);
+           }
+               
+           iter2 = iter2->next();
+       }
+
+    } else if (iter->equals("obsoletes")) {
+       constXmlNodePtr iter2;
+
+       iter2 = iter->children();
+
+       while (iter2) {
+           if (!iter2->isElement()) {
+               iter2 = iter2->next();
+               continue;
+           }
+
+           dep_table.obsoletes.push_back (new Dependency (iter2));
+           iter2 = iter2->next();
+       }
+
+    } else if (iter->equals("provides")) {
+       constXmlNodePtr iter2;
+
+       iter2 = iter->children();
+
+       while (iter2) {
+           if (!iter2->isElement()) {
+               iter2 = iter2->next();
+               continue;
+           }
+
+           dep_table.provides.push_back (new Dependency (iter2));
+           iter2 = iter2->next();
+       }
+
+    } else if (iter->equals("children")) {
+       constXmlNodePtr iter2;
+
+       iter2 = iter->children();
+
+       while (iter2) {
+           if (!iter2->isElement()) {
+               iter2 = iter2->next();
+               continue;
+           }
+
+           dep_table.children.push_back (new Dependency (iter2));
+           iter2 = iter2->next();
+       }
+    }
+}
+
+//---------------------------------------------------------------------------
+
+
+string
+Package::asString ( bool full ) const
+{
+    return toString (*this, full);
+}
+
+
+string
+Package::toString ( const PackageUpdateList & l, bool full )
+{
+    string ret ("[");
+    for (PackageUpdateList::const_iterator i = l.begin(); i != l.end(); i++) {
+       if (i != l.begin()) ret += ", ";
+       ret += (*i)->asString(full);
+    }
+    return ret + "]";
+}
+
+string
+Package::toString ( const Package & package, bool full )
+{
+    string ret;
+    ret += Resolvable::toString(package, full);
+    if (full) {
+//     if (package._section != NULL) ret += (string ("<section '") + package._section->asString() + "'/>");
+//     if (!package._pretty_name.empty()) ret += (string ("<pretty_name '") + package._pretty_name + "'/>");
+//     if (!package._summary.empty()) ret += (string ("<summary '") + package._summary + "'/>");
+//     if (!package._description.empty()) ret += (string ("<description '") + package._description + "'/>");
+       ret += (string ("<history '") + toString(package._history) + "'/>");
+    }
+    return ret;
+}
+
+
+ostream &
+Package::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const Package& package)
+{
+    return os << package.asString();
+}
+
+//---------------------------------------------------------------------------
+
+Package::Package (constChannelPtr channel)
+    : Resolvable (Kind::Package, "")
+    , _section (NULL)
+    , _pretty_name ("")
+    , _summary ("")
+    , _description ("")
+    , _package_filename ("")
+    , _signature_filename ("")
+    , _install_only (false)
+    , _package_set (false)
+    , _id ("")
+{
+    setChannel (channel);
+}
+
+
+Package::Package (constXmlNodePtr node, constChannelPtr channel)
+    : Resolvable (Kind::Package, "")
+    , _section (NULL)
+    , _pretty_name ("")
+    , _summary ("")
+    , _description ("")
+    , _package_filename ("")
+    , _signature_filename ("")
+    , _install_only (false)
+    , _package_set (false)
+    , _id ("")
+{
+    if (!node->equals("package")) {
+       fprintf (stderr, "Package::Package() not a package node\n");
+       exit (1);
+    }
+
+    const char *epoch = NULL, *version = NULL, *release = NULL;
+    struct DepTable dep_table;
+
+    setChannel (channel);
+
+    constXmlNodePtr iter = node->children();
+
+    while (iter) {
+       bool extracted_deps = false;
+
+       if (iter->equals("name")) {                     setName (iter->getContent());
+       } else if (iter->equals("epoch")) {             setEpoch (atoi (iter->getContent()));
+       } else if (iter->equals("version")) {           setVersion (iter->getContent());
+       } else if (iter->equals("release")) {           setRelease (iter->getContent());
+       } else if (iter->equals("summary")) {           _summary = strdup (iter->getContent());
+       } else if (iter->equals("description")) {       _description = strdup (iter->getContent());
+       } else if (iter->equals("section")) {           _section = new Section (iter->getContent());
+       } else if (iter->equals("arch")) {              setArch (iter->getContent());
+       } else if (iter->equals("filesize")) {  
+           const char *tmp = iter->getContent();
+           setFileSize (tmp && *tmp ? atoi (tmp) : 0);
+           free ((void *)tmp);
+       } else if (iter->equals("installedsize")) {
+           const char *tmp = iter->getContent();
+           setInstalledSize (tmp && *tmp ? atoi (tmp) : 0);
+           free ((void *)tmp);
+       } else if (iter->equals("install_only")) {      _install_only = true;
+       } else if (iter->equals("package_set")) {       _package_set = true;
+       } else if (iter->equals("history")) {
+           constXmlNodePtr iter2;
+
+           iter2 = iter->children();
+
+           while (iter2) {
+               if (!iter2->isElement()) {
+                   iter2 = iter2->next();
+                   continue;
+               }
+
+               PackageUpdatePtr update = new PackageUpdate (iter2, this);
+               addUpdate (update);
+
+               iter2 = iter2->next();
+           }
+       } else if (iter->equals("deps")) {
+           constXmlNodePtr iter2;
+
+           for (iter2 = iter->children(); iter2; iter2 = iter2->next()) {
+               if (!iter2->isElement())
+                   continue;
+
+               extract_dep_info (iter2, dep_table);
+           }
+
+           extracted_deps = true;
+       }
+       else {
+           if (!extracted_deps)
+               extract_dep_info (iter, dep_table);
+           else {
+               /* FIXME: Bitch to the user here? */
+           }
+       }
+
+       iter = iter->next();
+    }
+
+    if (!dep_table.children.empty()) {
+       // children are used in package sets
+       // treat them as normal requires
+       //
+#warning Children are handled as requires
+       CDependencyList::const_iterator iter;
+       for (iter = dep_table.children.begin(); iter != dep_table.children.end(); iter++)
+       {
+           dep_table.requires.push_back (*iter);
+       }
+    }
+
+
+    // check if we're already listed in the provides
+    // if not, provide ourself
+
+    CDependencyList::const_iterator piter;
+    for (piter = dep_table.provides.begin(); piter != dep_table.provides.end(); piter++) {
+       if ((*piter)->relation().isEqual()
+           && ((*piter)->name() == name()))
+       {
+           break;
+       }
+    }
+    if (piter == dep_table.provides.end()) {                   // no self provide found, construct one
+       constDependencyPtr selfdep = new Dependency (name(), Relation::Equal, kind(), this->channel(), edition());
+if (getenv ("RC_SPEW")) fprintf (stderr, "Adding self-provide [%s]\n", selfdep->asString().c_str());
+       dep_table.provides.push_front (selfdep);
+    }
+
+    setRequires (dep_table.requires);
+    setProvides (dep_table.provides);
+    setConflicts (dep_table.conflicts);
+    setObsoletes (dep_table.obsoletes);
+    setSuggests (dep_table.suggests);
+    setRecommends (dep_table.recommends);
+
+    if (version) {
+
+       setEpoch (epoch ? atoi (epoch) : -1);
+       setVersion (version);
+       setRelease (release);
+
+       /* We set these to NULL so that they won't get freed when we
+          clean up before returning. */
+       version = release = NULL;
+
+    } else if (!_history.empty()) {
+
+       /* If possible, we grab the version info from the most
+          recent update. */
+
+       PackageUpdatePtr update = _history.front();
+
+       setEpoch (update->package()->epoch());
+       setVersion (update->package()->version());
+       setRelease (update->package()->release());
+
+    } else {
+       
+       /* Otherwise, try to find where the package provides itself,
+          and use that version info. */
+       
+       if (!provides().empty())
+           for (CDependencyList::const_iterator iter = provides().begin(); iter != provides().end(); iter++) {     
+               if ((*iter)->relation() == Relation::Equal &&
+                   ((*iter)->name() == name()))
+               {
+                   setEpoch ((*iter)->epoch());
+                   setVersion ((*iter)->version());
+                   setRelease ((*iter)->release());
+                   break;
+               }
+           }
+    }
+
+    /* clean-up */
+    if (epoch) free ((void *)epoch);
+    if (version) free ((void *)version);
+    if (release) free ((void *)release);
+
+    /* Hack for no archs in the XML yet */
+    if (arch()->isUnknown())
+       setArch (Arch::System);
+}
+
+Package::~Package()
+{
+}
+
+//---------------------------------------------------------------------------
+
+
+void
+Package::addUpdate (PackageUpdatePtr update)
+{
+    if (update == NULL) return;
+
+    assert (update->package() == NULL || update->package() == this);
+
+    update->setPackage(this);
+
+    if (_history.empty()) {
+       _history.push_back (update);
+    } else {
+#warning addUpdate incomplete
+#if 1
+       for (PackageUpdateList::iterator iter = _history.begin(); iter != _history.end(); iter++) {
+           int result = GVersion.compare ((SpecPtr)update, (SpecPtr)(*iter));
+
+           if (result > 0 || (result == 0 && update->parent() != NULL)) {
+               _history.insert (iter, update);                                 // = g_slist_insert_before (package->history, l, update);
+               break;
+           } else if (iter == _history.end() ||                                        // FIXME list.last() ?
+                      (result == 0 && update->parent() == NULL)) {
+               _history.insert (++iter, update);                                       // = g_slist_insert_before (package->history, l->next, update);
+               break;
+           }
+       }
+#endif
+    }
+}
+
+
+PackageUpdatePtr
+Package::getLatestUpdate (void) const
+{
+    WorldPtr world;
+
+    if (_history.empty()) {
+       return NULL;
+    }
+
+    PackageUpdatePtr latest = _history.back();
+    /* if the absolute latest is not a patch, just return that */
+    if (latest->parent() == NULL) {
+       return latest;
+    }
+
+    world = World::globalWorld();
+
+    for (PackageUpdateList::const_iterator l = _history.begin(); l != _history.end(); l++) {
+       PackageUpdatePtr update = *l;
+       constResolvablePtr installed;
+       
+       if (!update->equals (latest)) {
+           return NULL;
+       }
+
+       /* found a non-patch package equal to the latest, so use that */
+       if (update->parent() == NULL) {
+           return update;
+       }
+
+       /* see if the required parent for this patch is installed */
+       installed = world->findInstalledResolvable (update->parent());
+
+       if (installed != NULL &&
+           installed->equals(update->parent()))
+           return update;
+    }
+
+    /* no suitable update found */
+    return NULL;
+}
+
+
+#if 0
+xmlNode *
+rc_package_to_xml_node (RCPackage *package)
+{
+    xmlNode *package_node;
+    xmlNode *tmp_node;
+    xmlNode *deps_node;
+    RCResolvable *r;
+    RCResolvableSpec *spec;
+    RCPackageUpdateSList *history_iter;
+    int i;
+    char buffer[128];
+    char *tmp_str;
+
+    r = RC_RESOLVABLE (package);
+    spec = rc_resolvable_get_spec (r);
+
+    package_node = xmlNewNode (NULL, "package");
+
+    xmlNewTextChild (package_node, NULL, "name", rc_resolvable_get_name (r));
+
+    if (spec->has_epoch) {
+       g_snprintf (buffer, 128, "%d", spec->epoch);
+       xmlNewTextChild (package_node, NULL, "epoch", buffer);
+    }
+
+    xmlNewTextChild (package_node, NULL, "version", spec->version);
+
+    if (spec->release) {
+       xmlNewTextChild (package_node, NULL, "release", spec->release);
+    }
+
+    tmp_str = sanitize_string (package->summary);
+    xmlNewTextChild (package_node, NULL, "summary", tmp_str);
+    g_free (tmp_str);
+
+    tmp_str = sanitize_string (package->description);
+    xmlNewTextChild (package_node, NULL, "description", tmp_str);
+    g_free (tmp_str);
+
+    xmlNewTextChild (package_node, NULL, "arch",
+                    rc_arch_to_string (spec->arch));
+
+    xmlNewTextChild (package_node, NULL, "section",
+                    rc_package_section_to_string (package->section));
+
+    g_snprintf (buffer, 128, "%u", rc_resolvable_get_file_size (r));
+    xmlNewTextChild (package_node, NULL, "filesize", buffer);
+
+    g_snprintf (buffer, 128, "%u", rc_resolvable_get_installed_size (r));
+    xmlNewTextChild (package_node, NULL, "installedsize", buffer);
+
+    if (package->install_only) {
+       xmlNewTextChild (package_node, NULL, "install_only", "1");
+    }
+
+    if (package->package_set) {
+       xmlNewTextChild (package_node, NULL, "package_set", "1");
+    }
+
+    if (package->history) {
+       tmp_node = xmlNewChild (package_node, NULL, "history", NULL);
+       for (history_iter = package->history; history_iter;
+            history_iter = history_iter->next)
+       {
+           RCPackageUpdate *update = (RCPackageUpdate *)(history_iter->data);
+           xmlAddChild (tmp_node, rc_package_update_to_xml_node (update));
+       }
+    }
+
+    deps_node = xmlNewChild (package_node, NULL, "deps", NULL);
+
+    if (r->requires_a) {
+       tmp_node = xmlNewChild (deps_node, NULL, "requires", NULL);
+       for (i = 0; i < r->requires_a->len; i++) {
+           RCResolvableDep *dep = r->requires_a->data[i];
+
+           xmlAddChild (tmp_node, rc_resolvable_dep_to_xml_node (dep));
+       }
+    }
+
+    if (r->recommends_a) {
+       tmp_node = xmlNewChild (deps_node, NULL, "recommends", NULL);
+       for (i = 0; i < r->recommends_a->len; i++) {
+           RCResolvableDep *dep = r->recommends_a->data[i];
+
+           xmlAddChild (tmp_node, rc_resolvable_dep_to_xml_node (dep));
+       }
+    }
+
+    if (r->suggests_a) {
+       tmp_node = xmlNewChild (deps_node, NULL, "suggests", NULL);
+       for (i = 0; i < r->suggests_a->len; i++) {
+           RCResolvableDep *dep = r->suggests_a->data[i];
+
+           xmlAddChild (tmp_node, rc_resolvable_dep_to_xml_node (dep));
+       }
+    }
+
+    if (r->conflicts_a) {
+       tmp_node = xmlNewChild (deps_node, NULL, "conflicts", NULL);
+       for (i = 0; i < r->conflicts_a->len; i++) {
+           RCResolvableDep *dep = r->conflicts_a->data[i];
+
+           xmlAddChild (tmp_node, rc_resolvable_dep_to_xml_node (dep));
+       }
+    }
+
+    if (r->obsoletes_a) {
+       tmp_node = xmlNewChild (deps_node, NULL, "obsoletes", NULL);
+       for (i = 0; i < r->obsoletes_a->len; i++) {
+           RCResolvableDep *dep = r->obsoletes_a->data[i];
+
+           xmlAddChild (tmp_node, rc_resolvable_dep_to_xml_node (dep));
+       }
+    }
+
+    if (r->provides_a) {
+       tmp_node = xmlNewChild (deps_node, NULL, "provides", NULL);
+       for (i = 0; i < r->provides_a->len; i++) {
+           RCResolvableDep *dep = r->provides_a->data[i];
+
+           xmlAddChild (tmp_node, rc_resolvable_dep_to_xml_node (dep));
+       }
+    }
+
+    return (package_node);
+} /* rc_package_to_xml_node */
+
+#endif
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/Package.h b/zypp/solver/detail/Package.h
new file mode 100644 (file)
index 0000000..206e3c7
--- /dev/null
@@ -0,0 +1,150 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Package.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _Package_h
+#define _Package_h
+
+#include <list>
+#include <iosfwd>
+#include <string.h>
+#include <sys/types.h>
+
+#include <zypp/solver/detail/PackagePtr.h>
+#include <zypp/solver/detail/PackageUpdatePtr.h>
+#include <zypp/solver/detail/Section.h>
+#include <zypp/solver/detail/Resolvable.h>
+#include <zypp/solver/detail/XmlNode.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+typedef std::list<PackagePtr> PackageList;
+typedef PackageList * PackageListPtr;
+
+typedef std::list<PackageUpdatePtr> PackageUpdateList;
+typedef PackageUpdateList * PackageUpdateListPtr;
+
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : Package
+/**
+ *
+ **/
+
+class Package : public Resolvable {
+    REP_BODY(Package);
+
+  private:
+    SectionPtr _section;
+    
+    // Filled in by package info XML
+    std::string _pretty_name;
+    std::string _summary;
+    std::string _description;
+
+    PackageUpdateList _history;
+
+    // After downloading this package, fill in the local file name,
+    //   and signature, if appropriate
+    std::string _package_filename;
+    std::string _signature_filename;
+
+    bool _install_only;                // Only install, don't upgrade this package
+    bool _package_set;
+
+    std::string _id;
+
+  public:
+
+    Package(constChannelPtr channel);
+    Package(constXmlNodePtr node, constChannelPtr channel);    //RCPackage *rc_xml_node_to_package (const xmlNode *node, const RCChannel *channel);
+    virtual ~Package();
+
+    // ---------------------------------- I/O
+
+    const xmlNodePtr asXmlNode (void) const;                           // xmlNode *rc_package_to_xml_node (RCPackage *package);
+
+    static std::string toString ( const Package & spec, bool full = false );
+
+    static std::string toString ( const PackageUpdateList & l, bool full = false );
+
+    virtual std::ostream & dumpOn( std::ostream & str ) const;
+
+    friend std::ostream& operator<<( std::ostream&, const Package& );
+
+    std::string asString ( bool full = false ) const;
+
+    // ---------------------------------- accessors
+
+    // accessor for _section
+    const SectionPtr section() const { return _section; }
+    void setSection (const SectionPtr section) { _section = section; }
+
+    // accessor for _pretty_name
+    const std::string prettyName() const { return _pretty_name; }
+    void setPrettyName(const std::string & pretty_name) { _pretty_name = pretty_name; }
+
+    // accessor for _summary
+    const std::string summary() const { return _summary; }
+    void setSummary (const std::string & summary) { _summary = summary; }
+
+    // accessor for _description
+    const std::string description() const { return _description; }
+    void setDescription(const std::string & description) { _description = description; }
+
+    // accessor for _package_filename
+    const PackageUpdateList & history() const { return _history; }
+    void setHistory(const PackageUpdateList & history) { _history = history; }
+
+    // accessor for _package_filename
+    const std::string packageFilename() const { return _package_filename; }
+    void setPackageFilename(const std::string & package_filename) { _package_filename = package_filename; }
+
+    // accessor for _signature_filename
+    const std::string signatureFilename() const { return _signature_filename; }
+    void setSignatureFilename(const std::string & signature_filename) { _signature_filename = signature_filename; }
+
+    // accessor for _install_only
+    bool installOnly() const { return _install_only; }
+    void setInstallOnly(bool install_only) { _install_only = install_only; }
+
+    // accessor for _package_set
+    bool packageSet() const { return _package_set; }
+    void setPackageSet(bool package_set) { _package_set = package_set; }
+
+    // accessor for id
+    const std::string id() const { return _id; }
+    void setId (const std::string & id) { _id = id; }
+
+    // ---------------------------------- methods
+
+    void addUpdate (PackageUpdatePtr update);
+
+    PackageUpdatePtr getLatestUpdate (void) const;
+};
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _Package_h
diff --git a/zypp/solver/detail/PackagePtr.h b/zypp/solver/detail/PackagePtr.h
new file mode 100644 (file)
index 0000000..26a95e3
--- /dev/null
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* PackagePtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _PackagePtr_h
+#define _PackagePtr_h
+
+#include <y2util/RepDef.h>
+#include <zypp/solver/detail/SpecPtr.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+///////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : PackagePtr
+//     CLASS NAME : constPackagePtr
+///////////////////////////////////////////////////////////////////
+DEFINE_DERIVED_POINTER(Package,Spec);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _PackagePtr_h
diff --git a/zypp/solver/detail/PackageUpdate.cc b/zypp/solver/detail/PackageUpdate.cc
new file mode 100644 (file)
index 0000000..161d3e0
--- /dev/null
@@ -0,0 +1,236 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* PackageUpdate.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <y2util/stringutil.h>
+
+#include <stdio.h>
+#include <string.h>
+#include <libgen.h>
+
+#include <zypp/solver/detail/utils.h>
+#include <zypp/solver/detail/PackageUpdate.h>
+#include <zypp/solver/detail/Package.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_DERIVED_POINTER(PackageUpdate, Spec);
+
+//---------------------------------------------------------------------------
+
+string
+PackageUpdate::asString ( bool full ) const
+{
+    return toString (*this);
+}
+
+
+string
+PackageUpdate::toString ( const PackageUpdate & package_update, bool full )
+{
+    string ret;
+    ret += ((const Spec &)package_update).asString(full);
+
+    return ret;
+}
+
+
+ostream &
+PackageUpdate::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const PackageUpdate& package_update)
+{
+    return os << package_update.asString();
+}
+
+
+const XmlNodePtr
+PackageUpdate::asXmlNode (void) const
+{
+    XmlNodePtr update_node = new XmlNode("update");
+    string tmp;
+
+    if (hasEpoch()) {
+       tmp = stringutil::form("%d", epoch());
+       update_node->addTextChild ("epoch", tmp.c_str());
+    }
+
+    update_node->addTextChild ("version", version().c_str());
+
+    if (!release().empty()) {
+       update_node->addTextChild ("release", release().c_str());
+    }
+
+    if (_package_url && *_package_url) {
+       update_node->addTextChild ("filename", basename (strdup (_package_url)));
+    }
+
+    tmp = stringutil::form ("%ld", (unsigned long)_package_size);
+    update_node->addTextChild ("filesize", tmp.c_str());
+
+    tmp = stringutil::form ("%ld", (unsigned long)_installed_size);
+    update_node->addTextChild ("installedsize", tmp.c_str());
+
+    if (_signature_url) {
+       update_node->addTextChild ("signaturename", _signature_url);
+
+       tmp = stringutil::form ("%ld", (unsigned long)_signature_size);
+       update_node->addTextChild ("signaturesize", tmp.c_str());
+    }
+
+    if (_md5sum) {
+       update_node->addTextChild ("md5sum", _md5sum);
+    }
+
+    update_node->addTextChild ("importance", _importance->asString().c_str());
+
+    update_node->addTextChild ("description", _description);
+
+    if (_hid) {
+       tmp = stringutil::form ("%d", _hid);
+       update_node->addTextChild ("hid", tmp.c_str());
+    }
+
+    if (_license) {
+       update_node->addTextChild ("license", _license);
+    }
+
+    return update_node;
+}
+
+//---------------------------------------------------------------------------
+
+PackageUpdate::PackageUpdate (const string & name)
+    : Spec (Kind::Package, name)
+    , _package (NULL)
+    , _package_url (NULL)
+    , _package_size (0)
+    , _installed_size (0)
+    , _signature_url (NULL)
+    , _signature_size (0)
+    , _md5sum (NULL)
+    , _importance (NULL)
+    , _hid (0)
+    , _description (NULL)
+    , _license (NULL)
+    , _parent (NULL)
+{
+}
+
+
+PackageUpdate::PackageUpdate (constXmlNodePtr node, PackagePtr package)
+    : Spec (Kind::Package, package->name())
+    , _package (NULL)
+    , _package_url (NULL)
+    , _package_size (0)
+    , _installed_size (0)
+    , _signature_url (NULL)
+    , _signature_size (0)
+    , _md5sum (NULL)
+    , _importance (NULL)
+    , _hid (0)
+    , _description (NULL)
+    , _license (NULL)
+    , _parent (NULL)
+{
+    constChannelPtr channel;
+    const char *url_prefix = NULL;
+
+    if (node == NULL) {
+       fprintf (stderr, "PackageUpdate::PackageUpdate(NULL)\n");
+       exit (1);
+    }
+
+    /* Make sure this is an update node */
+    if (strcasecmp (node->name(), "update")) {
+       fprintf (stderr, "PackageUpdate::PackageUpdate() wrong node (%s)\n", node->name());
+       exit (1);
+    }
+
+    channel = package->channel();
+
+    _package = package;
+
+    if (channel) {
+       url_prefix = channel->filePath();
+    }
+
+    XmlNodePtr iter = node->children();
+
+    while (iter) { 
+       if (iter->equals ("epoch")) {                   setEpoch (iter->getUnsignedIntContentDefault (0));
+       } else if (iter->equals ("version")) {          setVersion (iter->getContent());
+       } else if (iter->equals ("release")) {          setRelease (iter->getContent());
+       } else if (iter->equals ("arch")) {             setArch (iter->getContent());
+       } else if (iter->equals ("filename")) {
+           const char *tmp = iter->getContent();
+           if (url_prefix) {
+               _package_url = maybe_merge_paths (url_prefix, tmp);
+           } else {
+               _package_url = strdup (tmp);
+           }
+       } else if (iter->equals ("filesize")) {         _package_size = iter->getUnsignedIntContentDefault (0);
+       } else if (iter->equals ("installedsize")) {    _installed_size = iter->getUnsignedIntContentDefault (0);
+       } else if (iter->equals ("signaturename")) {
+           const char *tmp = iter->getContent();
+           if (url_prefix) {
+               _signature_url = maybe_merge_paths (url_prefix, tmp);
+           } else {
+               _signature_url = strdup (tmp);
+           }
+       } else if (iter->equals ("signaturesize")) {    _signature_size = iter->getUnsignedIntContentDefault (0);
+       } else if (iter->equals ("md5sum")) {           _md5sum = iter->getContent();
+       } else if (iter->equals ("importance")) {       _importance = new Importance (iter->getContent());
+       } else if (iter->equals ("description")) {      _description = iter->getContent();
+       } else if (iter->equals ("hid")) {              _hid = iter->getUnsignedIntContentDefault (0);
+       } else if (iter->equals ("license")) {          _license = iter->getContent();
+       }
+
+       iter = iter->next();
+    }
+}
+
+
+PackageUpdate::~PackageUpdate()
+{
+    if (_package != NULL) _package = NULL;
+    if (_package_url != NULL) free ((void *)_package_url);
+    if (_signature_url != NULL) free ((void *)_signature_url);
+    if (_md5sum != NULL) free ((void *)_md5sum);
+    if (_description != NULL) free ((void *)_description);
+    if (_license != NULL) free ((void *)_license);
+    if (_parent != NULL) _parent = NULL;
+}
+
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/PackageUpdate.h b/zypp/solver/detail/PackageUpdate.h
new file mode 100644 (file)
index 0000000..78c635d
--- /dev/null
@@ -0,0 +1,139 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* PackageUpdate.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _PackageUpdate_h
+#define _PackageUpdate_h
+
+#include <list>
+#include <iosfwd>
+#include <string.h>
+#include <sys/types.h>
+
+#include <zypp/solver/detail/PackageUpdatePtr.h>
+#include <zypp/solver/detail/PackagePtr.h>
+#include <zypp/solver/detail/Spec.h>
+#include <zypp/solver/detail/Importance.h>
+#include <zypp/solver/detail/XmlNode.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : PackageUpdate
+/**
+ *
+ **/
+
+class PackageUpdate : public Spec {
+    REP_BODY(PackageUpdate);
+
+  private:
+    PackagePtr _package;
+
+    const char *_package_url;
+    size_t _package_size;
+    size_t _installed_size;
+
+    const char *_signature_url;
+    size_t _signature_size;
+
+    const char *_md5sum;
+
+    const Importance *_importance;
+
+    unsigned int _hid;
+
+    const char *_description;
+
+    const char *_license;
+
+    // refers to the parent package for SuSE patch RPMs
+    constPackagePtr _parent;
+
+  public:
+
+    PackageUpdate(const std::string & name);
+    PackageUpdate(constXmlNodePtr node, PackagePtr package);
+
+    virtual ~PackageUpdate();
+
+    // ---------------------------------- I/O
+
+    const XmlNodePtr asXmlNode (void) const;
+
+    static std::string toString ( const PackageUpdate & packageupdate, bool full = false );
+
+    virtual std::ostream & dumpOn( std::ostream & str ) const;
+
+    friend std::ostream& operator<<( std::ostream&, const PackageUpdate& );
+
+    std::string asString ( bool full = false ) const;
+
+    // ---------------------------------- accessors
+
+    constPackagePtr package() const { return _package; }
+    void setPackage (PackagePtr package) { _package = package; }
+
+    const char *packageUrl() const { return _package_url; }
+    void setPackageUrl (const char *package_url) { _package_url = package_url; }
+
+    size_t packageSize() const { return _package_size; }
+    void setPackageSize (size_t package_size) { _package_size = package_size; }
+
+    size_t installedSize() const { return _installed_size; }
+    void setInstalledSize (size_t installed_size ) { _installed_size = installed_size; }
+
+    const char *description() const { return _description; }
+    void setDescription(const char *description) { _description = strdup (description); }
+
+    const char *signatureUrl() const { return _signature_url; }
+    void setSignatureUrl (const char *signature_url) { _signature_url = signature_url; }
+
+    size_t signatureSize() const { return _signature_size; }
+    void setSignatureSize (size_t signature_size) { _signature_size = signature_size; }
+
+    const char *md5sum() const { return _md5sum; }
+    void setMd5sum (const char *md5sum) { _md5sum = md5sum; }
+
+    const Importance *importance() const { return _importance; }
+    void setImportance (const Importance *importance) { _importance = importance; }
+
+    unsigned int hid() const { return _hid; }
+    void setHid (unsigned int hid) { _hid = hid; }
+
+    const char *license() const { return _license; }
+    void setLicense (const char *license) { _license = license; }
+
+    // refers to the parent package for SuSE patch RPMs
+    constPackagePtr parent() const { return _parent; }
+    void setParent (constPackagePtr parent) { _parent = parent; }
+
+    // ---------------------------------- methods
+
+};
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _PackageUpdate_h
diff --git a/zypp/solver/detail/PackageUpdatePtr.h b/zypp/solver/detail/PackageUpdatePtr.h
new file mode 100644 (file)
index 0000000..47abfe1
--- /dev/null
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* PackageUpdatePtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _PackageUpdatePtr_h
+#define _PackageUpdatePtr_h
+
+#include <y2util/RepDef.h>
+#include <zypp/solver/detail/Spec.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+///////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : PackageUpdatePtr
+//     CLASS NAME : constPackageUpdatePtr
+///////////////////////////////////////////////////////////////////
+DEFINE_DERIVED_POINTER(PackageUpdate,Spec);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _PackageUpdatePtr_h
diff --git a/zypp/solver/detail/Packman.cc b/zypp/solver/detail/Packman.cc
new file mode 100644 (file)
index 0000000..ffe1508
--- /dev/null
@@ -0,0 +1,82 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Packman.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <y2util/stringutil.h>
+
+#include <zypp/solver/detail/Packman.h>
+#include <zypp/solver/detail/debug.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_BASE_POINTER(Packman);
+
+//---------------------------------------------------------------------------
+
+string
+Packman::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+Packman::toString ( const Packman & store )
+{
+    string res ("<packman/>");
+
+    return res;
+}
+
+
+ostream &
+Packman::dumpOn (ostream & str) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream &
+operator<< (ostream & os, const Packman & store)
+{
+    return os << store.asString();
+}
+
+//---------------------------------------------------------------------------
+
+Packman::Packman ()
+{
+}
+
+
+Packman::~Packman()
+{
+}
+
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/Packman.h b/zypp/solver/detail/Packman.h
new file mode 100644 (file)
index 0000000..d90bde4
--- /dev/null
@@ -0,0 +1,72 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Packman.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _Packman_h
+#define _Packman_h
+
+#include <iosfwd>
+#include <list>
+#include <string>
+
+#include <zypp/solver/detail/PackmanPtr.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+///////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : Packman
+
+class Packman : public CountedRep {
+    REP_BODY(Packman);
+
+  private:
+
+
+  public:
+
+    Packman ();
+    virtual ~Packman();
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const Packman & section);
+
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+
+    friend std::ostream& operator<<(std::ostream&, const Packman & section);
+
+    std::string asString (void) const;
+
+    // ---------------------------------- accessors
+
+
+    // ---------------------------------- methods
+
+
+};
+    
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _Packman_h
diff --git a/zypp/solver/detail/PackmanPtr.h b/zypp/solver/detail/PackmanPtr.h
new file mode 100644 (file)
index 0000000..237de72
--- /dev/null
@@ -0,0 +1,40 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* PackmanPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _PackmanPtr_h
+#define _PackmanPtr_h
+
+#include <y2util/RepDef.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : PackmanPtr
+//     CLASS NAME : constPackmanPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_BASE_POINTER(Packman);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _PackmanPtr_h
diff --git a/zypp/solver/detail/Pending.cc b/zypp/solver/detail/Pending.cc
new file mode 100644 (file)
index 0000000..a13279e
--- /dev/null
@@ -0,0 +1,82 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Pending.cc
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * Definition of 'edition'
+ *  contains epoch-version-release-arch
+ *  and comparision functions
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <zypp/solver/detail/Pending.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_BASE_POINTER(Pending);
+
+//---------------------------------------------------------------------------
+
+string
+Pending::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+Pending::toString ( const Pending & pending )
+{
+    return "<pending/>";
+}
+
+
+ostream &
+Pending::dumpOn (ostream & str) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream &
+operator<< (ostream & os, const Pending & pending)
+{
+    return os << pending.asString();
+}
+
+//---------------------------------------------------------------------------
+
+Pending::Pending (const char *description)
+{
+}
+
+
+Pending::~Pending()
+{
+}
+
+//---------------------------------------------------------------------------
+
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/Pending.h b/zypp/solver/detail/Pending.h
new file mode 100644 (file)
index 0000000..b6030e4
--- /dev/null
@@ -0,0 +1,146 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Pending.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _Pending_h
+#define _Pending_h
+
+#include <iosfwd>
+#include <list>
+#include <string>
+
+#include <zypp/solver/detail/PendingPtr.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+///////////////////////////////////////////////////////////////////
+
+class Pending;
+typedef std::list <PendingPtr> PendingList;
+typedef PendingList * PendingListPtr;
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : Pending
+
+class Pending : public CountedRep {
+    REP_BODY(Pending);
+
+typedef enum {
+    PENDING_STATUS_INVALID = 0,
+    PENDING_STATUS_PRE_BEGIN,
+    PENDING_STATUS_RUNNING,
+    PENDING_STATUS_BLOCKING,
+    PENDING_STATUS_ABORTED,
+    PENDING_STATUS_FAILED,
+    PENDING_STATUS_FINISHED
+} PendingStatus;
+
+const char *pendingStatusToString (PendingStatus status);
+
+#define INVALID_PENDING_ID 0
+
+
+  private:
+
+    char *_description;
+    int _id;
+
+    PendingStatus _status;
+
+    double _percent_complete;
+
+    size_t _completed_size;
+    size_t _total_size;
+
+    time_t _start_time;
+    time_t _last_time;
+    time_t _poll_time;
+
+    int _retval;
+    char *_error_msg;
+
+    std::list<const char *> _messages;
+
+    void (*_update) (PendingPtr);
+    void (*_complete) (PendingPtr);
+    void (*_message) (PendingPtr);
+
+  public:
+
+    Pending (const char *description);
+    virtual ~Pending();
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const Pending & section);
+
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+
+    friend std::ostream& operator<<(std::ostream&, const Pending & section);
+
+    std::string asString (void) const;
+
+    // ---------------------------------- accessors
+
+    const char *description (void) const { return _description; }
+    void setDescription (const char *description) { _description = strdup (description); }
+    int id (void) const { return _id; }
+    PendingStatus status (void) const { return _status; }
+    double percentComplete (void) const { return _percent_complete; }
+    size_t completedSize (void) const { return _completed_size; }
+    size_t totalSize (void) const { return _total_size; }
+    time_t startTime (void) const { return _start_time; }
+    time_t lastTime (void) const { return _last_time; }
+    time_t pollTime (void) const { return _poll_time; }
+
+    int elapsedSecs (void) const { return 0; }
+    int expectedSecs (void) const { return 0; }
+    int remainingSecs (void) const { return 0; }
+
+    std::list<const char *> messages (void) const { return _messages; }
+    const char *latestMessage (void) const { return _error_msg; }
+
+    // ---------------------------------- methods
+
+    PendingPtr lookupById (int id);
+    std::list<PendingPtr> getAllActiveIds (void);
+
+    void begin (void);
+    void update (double percent_complete);
+    void updateBySize (size_t size, size_t total_size);
+
+    void finished (int retval);
+    void abort (int retval);
+    void fail (int retval, const char *error_msg);
+
+    bool isActive (void);
+
+    const char *errorMsg (void);
+
+    void addMessage (const char *message);
+
+};
+    
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _Pending_h
diff --git a/zypp/solver/detail/PendingPtr.h b/zypp/solver/detail/PendingPtr.h
new file mode 100644 (file)
index 0000000..bbbbb58
--- /dev/null
@@ -0,0 +1,40 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* PendingPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _PendingPtr_h
+#define _PendingPtr_h
+
+#include <y2util/RepDef.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : PendingPtr
+//     CLASS NAME : constPendingPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_BASE_POINTER(Pending);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _PendingPtr_h
diff --git a/zypp/solver/detail/QueueItem.cc b/zypp/solver/detail/QueueItem.cc
new file mode 100644 (file)
index 0000000..f6adb1d
--- /dev/null
@@ -0,0 +1,123 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* QueueItem.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <zypp/solver/detail/QueueItem.h>
+#include <zypp/solver/detail/ResolverContext.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_BASE_POINTER(QueueItem);
+
+//---------------------------------------------------------------------------
+
+string
+QueueItem::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+QueueItem::toString ( const QueueItem & item )
+{
+    return "<queueitem/>";
+}
+
+
+string
+QueueItem::toString ( const QueueItemList & itemlist, const string & sep )
+{
+    string res = "[";
+    for (QueueItemList::const_iterator iter = itemlist.begin(); iter != itemlist.end(); iter++) {
+       if (iter != itemlist.begin())
+           res += sep;
+       res += (*iter)->asString();
+    }
+    return res + "]";
+}
+
+
+ostream &
+QueueItem::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const QueueItem & item )
+{
+    return os << item.asString();
+}
+
+//---------------------------------------------------------------------------
+
+QueueItem::QueueItem (QueueItemType type, WorldPtr world)
+    : _type (type)
+    , _world (world)
+    , _priority (0)
+    , _size (0)
+{
+}
+
+
+QueueItem::~QueueItem()
+{
+}
+
+//---------------------------------------------------------------------------
+
+void
+QueueItem::copy (constQueueItemPtr from)
+{
+    _priority = from->_priority;
+    _size = from->_size;
+    _pending_info = ResolverInfoList (from->_pending_info.begin(), from->_pending_info.end());
+}
+
+
+//---------------------------------------------------------------------------
+
+void
+QueueItem::addInfo (ResolverInfoPtr info)
+{
+    _pending_info.push_back (info);
+}
+
+
+void
+QueueItem::logInfo (ResolverContextPtr context)
+{
+    for (ResolverInfoList::const_iterator iter = _pending_info.begin(); iter != _pending_info.end(); iter++) {
+       context->addInfo (*iter);
+    }
+    _pending_info.clear();
+}
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/QueueItem.h b/zypp/solver/detail/QueueItem.h
new file mode 100644 (file)
index 0000000..eed828d
--- /dev/null
@@ -0,0 +1,132 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* QueueItem.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _QueueItem_h
+#define _QueueItem_h
+
+#include <iosfwd>
+#include <list>
+#include <string.h>
+
+#include <zypp/solver/detail/QueueItemPtr.h>
+#include <zypp/solver/detail/ResolverContextPtr.h>
+#include <zypp/solver/detail/ResolverInfo.h>
+#include <zypp/solver/detail/Resolvable.h>
+#include <zypp/solver/detail/Dependency.h>
+#include <zypp/solver/detail/Channel.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+
+
+//////////////////////////////////////////////////////////////////
+
+typedef enum {
+    QUEUE_ITEM_TYPE_UNKNOWN = 0,                       // ordering is important !
+    QUEUE_ITEM_TYPE_INSTALL,
+    QUEUE_ITEM_TYPE_REQUIRE,
+    QUEUE_ITEM_TYPE_BRANCH,
+    QUEUE_ITEM_TYPE_GROUP,
+    QUEUE_ITEM_TYPE_CONFLICT,
+    QUEUE_ITEM_TYPE_UNINSTALL,
+    QUEUE_ITEM_TYPE_LAST
+} QueueItemType;
+
+
+typedef std::list<QueueItemPtr> QueueItemList;
+
+#define CMP(a,b) (((a) < (b)) - ((b) < (a)))
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : QueueItem
+
+class QueueItem : public CountedRep {
+    REP_BODY(QueueItem);
+
+  private:
+
+    QueueItemType _type;
+    WorldPtr _world;
+
+    int _priority;
+    size_t _size;
+    ResolverInfoList _pending_info;
+
+  protected:
+
+    QueueItem (QueueItemType type, WorldPtr world);
+
+  public:
+
+    virtual ~QueueItem();
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const QueueItem & item);
+
+    static std::string toString (const QueueItemList & itemlist, const std::string & sep = ", ");
+
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+
+    friend std::ostream& operator<<(std::ostream&, const QueueItem & item);
+
+    virtual std::string asString (void ) const;
+
+    // ---------------------------------- accessors
+
+    WorldPtr world (void) const { return _world; }
+    int priority (void) const { return _priority; }
+    void setPriority (int priority) { _priority = priority; }
+    int size (void) const { return _size; }
+
+    // ---------------------------------- methods
+
+    void copy (constQueueItemPtr from);
+
+    bool isBranch (void) const { return _type == QUEUE_ITEM_TYPE_BRANCH; }
+    bool isConflict (void) const { return _type == QUEUE_ITEM_TYPE_CONFLICT; }
+    bool isGroup (void) const { return _type == QUEUE_ITEM_TYPE_GROUP; }
+    bool isInstall (void) const { return _type == QUEUE_ITEM_TYPE_INSTALL; }
+    bool isRequire (void) const { return _type == QUEUE_ITEM_TYPE_REQUIRE; }
+    bool isUninstall (void) const { return _type == QUEUE_ITEM_TYPE_UNINSTALL; }
+
+    virtual bool process (ResolverContextPtr context, QueueItemList & qil) = 0;
+    virtual QueueItemPtr copy (void) const = 0;
+    virtual int cmp (constQueueItemPtr item) const = 0;
+    int compare (constQueueItemPtr item) const { return CMP(_type, item->_type); }
+
+    //   isRedundant true == can be dropped from any branch
+    virtual bool isRedundant (ResolverContextPtr context) const = 0;
+
+    //   isSatisfied true == can be dropped from any queue, and any
+    //   branch containing it can also be dropped
+    virtual bool isSatisfied (ResolverContextPtr context) const = 0;
+
+    void addInfo (ResolverInfoPtr);
+    void logInfo (ResolverContextPtr);
+};
+    
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _QueueItem_h
diff --git a/zypp/solver/detail/QueueItemBranch.cc b/zypp/solver/detail/QueueItemBranch.cc
new file mode 100644 (file)
index 0000000..1c98971
--- /dev/null
@@ -0,0 +1,270 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* QueueItemBranch.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <zypp/solver/detail/QueueItemBranch.h>
+#include <zypp/solver/detail/QueueItem.h>
+#include <zypp/solver/detail/Resolver.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_DERIVED_POINTER(QueueItemBranch,QueueItem);
+
+//---------------------------------------------------------------------------
+
+string
+QueueItemBranch::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+QueueItemBranch::toString ( const QueueItemBranch & item)
+{
+    string res = "[Branch: ";
+    if (!item._label.empty()) {
+       res += item._label;
+    }
+    res += "\n\t";
+    res += QueueItem::toString(item._possible_items, "\n\t");
+    res += "]";
+    return res;
+}
+
+
+ostream &
+QueueItemBranch::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const QueueItemBranch & item)
+{
+    return os << item.asString();
+}
+
+//---------------------------------------------------------------------------
+
+QueueItemBranch::QueueItemBranch (WorldPtr world)
+    : QueueItem (QUEUE_ITEM_TYPE_BRANCH, world)
+{
+}
+
+
+QueueItemBranch::~QueueItemBranch()
+{
+}
+
+//---------------------------------------------------------------------------
+
+void
+QueueItemBranch::addItem (QueueItemPtr subitem)
+{
+    assert (this != subitem);
+#if 0
+    // We want to keep the list of possible items sorted for easy comparison later.
+    for (QueueItemList::iterator pos = _possible_items.begin(); pos != _possible_items.end(); pos++) {
+
+       if ((*pos)->cmp(subitem) >= 0) {                        // found a larger one
+           _possible_items.insert (pos, subitem);              // insert before
+           return;
+       }
+    }
+#endif
+    _possible_items.push_back (subitem);                       // no larger found, subitem must be largest
+
+    return;
+}
+
+
+bool
+QueueItemBranch::contains (QueueItemPtr possible_subbranch)
+{
+    QueueItemBranchPtr branch = (QueueItemBranchPtr)possible_subbranch;
+
+    if (branch == NULL
+       || !branch->isBranch()) {
+       return false;
+    }
+
+
+    if (_possible_items.size() < branch->_possible_items.size()) {
+       return false;
+    }
+
+    QueueItemList::iterator iter = _possible_items.begin();
+    QueueItemList::iterator iter_sub = branch->_possible_items.begin();
+
+    /* For every item inside the possible sub-branch, look for a matching item
+       in the branch.  If we can't find a match, fail.  (We can do this in one
+       pass since the possible_items lists are sorted)
+    */
+    while (iter_sub != branch->_possible_items.end()) {
+
+       while (iter != _possible_items.end()
+              && (*iter)->cmp (*iter_sub)) {
+           iter++;
+       }
+
+       if (iter == _possible_items.end())
+           return false;
+
+       iter++;
+       iter_sub++;
+    }
+
+    return true;
+}
+
+//---------------------------------------------------------------------------
+
+bool
+QueueItemBranch::process (ResolverContextPtr context, QueueItemList & qil)
+{
+    if (getenv ("RC_SPEW")) fprintf (stderr, "QueueItemBranch::process(%s)\n", asString().c_str());
+
+    QueueItemList live_branches;
+    unsigned int branch_count;
+    bool did_something = true;
+
+    for (QueueItemList::const_iterator iter = _possible_items.begin(); iter != _possible_items.end(); iter++) {
+
+       QueueItemPtr item = *iter;
+
+       if (item->isSatisfied (context))
+           goto finished;
+
+       /* Drop any useless branch items */
+       if (! item->isRedundant (context)) {
+           live_branches.push_front (item);
+       }
+    }
+
+    branch_count = live_branches.size();
+
+    if (branch_count == 0) {
+
+       /* Do nothing */
+
+    } else if (branch_count == 1) {
+
+       /* If we just have one possible item, process it. */
+
+       QueueItemPtr item = live_branches.front();
+       did_something = item->process (context, qil);
+       
+       /* Set the item pointer to NULL inside of our original branch
+          item, since our call to rc_queue_item_process is now
+          responsible for freeing it. */
+
+       for (QueueItemList::iterator iter = _possible_items.begin(); iter != _possible_items.end(); iter++) {
+           if (*iter == item) {
+               _possible_items.erase (iter);
+               break;
+           }
+       }
+
+    } else if (branch_count == _possible_items.size()) {
+
+       /* Nothing was eliminated, so just pass the branch through (and set it to
+          NULL so that it won't get freed when we exit. */
+
+       qil.push_front (this);
+// FIXME: dont free    item = NULL;
+       did_something = false;
+
+    } else {
+//fprintf (stderr, "QueueItemBranch::process rebranching\n");
+       QueueItemBranchPtr new_branch = new QueueItemBranch (world());
+       for (QueueItemList::const_iterator iter = live_branches.begin(); iter != live_branches.end(); iter++) {
+           new_branch->addItem ((*iter)->copy());
+       }
+       qil.push_front (new_branch);
+    }
+    
+ finished:
+//FIXME    rc_queue_item_free (item);
+
+    return did_something;
+}
+
+
+int
+QueueItemBranch::cmp (constQueueItemPtr item) const
+{
+    int cmp = this->compare (item);            // assures equal type
+    if (cmp != 0)
+       return cmp;
+
+    constQueueItemBranchPtr branch = item;
+
+    /* First, sort by # of possible items. */
+    cmp = CMP(_possible_items.size(), branch->_possible_items.size());
+    if (cmp != 0)
+        return cmp;
+
+    /* We can do a by-item cmp since the possible items are kept in sorted order. */
+    QueueItemList::const_iterator ia = _possible_items.begin();
+    QueueItemList::const_iterator ib = branch->_possible_items.begin();
+
+    while (ia != _possible_items.end() && ib != branch->_possible_items.end()) {
+        if (*ia && *ib) {
+            cmp = (*ia)->cmp (*ib);
+            if (cmp != 0) {
+                return cmp;
+           }
+        }
+        ia++;
+        ib++;
+    }
+
+    /* Both lists should end at the same time, since we initially sorted on length. */
+    assert (ia == _possible_items.end() && ib == branch->_possible_items.end());
+
+    return 0;
+}
+
+
+QueueItemPtr
+QueueItemBranch::copy (void) const
+{
+    QueueItemBranchPtr new_branch = new QueueItemBranch (world());
+    ((QueueItemPtr)new_branch)->copy((constQueueItemPtr)this);
+
+    for (QueueItemList::const_iterator iter = _possible_items.begin(); iter != _possible_items.end(); iter++) {
+       QueueItemPtr cpy = (*iter)->copy();
+        new_branch->_possible_items.push_front (cpy);
+    }
+
+    return new_branch;
+}
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/QueueItemBranch.h b/zypp/solver/detail/QueueItemBranch.h
new file mode 100644 (file)
index 0000000..a3af334
--- /dev/null
@@ -0,0 +1,93 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* QueueItemBranch.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _QueueItemBranch_h
+#define _QueueItemBranch_h
+
+#include <iosfwd>
+#include <list>
+#include <string.h>
+
+#include <zypp/solver/detail/QueueItemBranchPtr.h>
+#include <zypp/solver/detail/Resolvable.h>
+#include <zypp/solver/detail/Dependency.h>
+#include <zypp/solver/detail/Channel.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+
+
+//////////////////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : QueueItemBranch
+
+class QueueItemBranch : public QueueItem {
+    REP_BODY(QueueItemBranch);
+
+  private:
+    std::string _label;
+    QueueItemList _possible_items;
+
+  public:
+
+    QueueItemBranch (WorldPtr world);
+    virtual ~QueueItemBranch();
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const QueueItemBranch & item);
+
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+
+    friend std::ostream& operator<<(std::ostream&, const QueueItemBranch & item);
+
+    std::string asString (void ) const;
+
+    // ---------------------------------- accessors
+
+    QueueItemList possibleItems (void) const { return _possible_items; }
+
+    const std::string & label (void) const { return _label; }
+    void setLabel (const std::string & label) { _label = label; }
+
+    bool isEmpty (void) const { return _possible_items.empty(); }
+
+    // ---------------------------------- methods
+
+    virtual bool process (ResolverContextPtr context, QueueItemList & qil);
+    virtual QueueItemPtr copy (void) const;
+    virtual int cmp (constQueueItemPtr item) const;
+    virtual bool isRedundant (ResolverContextPtr context) const { return false; }
+    virtual bool isSatisfied (ResolverContextPtr context) const { return false; }
+
+    void addItem (QueueItemPtr subitem);
+    bool contains (QueueItemPtr possible_subbranch);
+};
+
+    
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _QueueItemBranch_h
diff --git a/zypp/solver/detail/QueueItemBranchPtr.h b/zypp/solver/detail/QueueItemBranchPtr.h
new file mode 100644 (file)
index 0000000..541ebd2
--- /dev/null
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* QueueItemBranchPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _QueueItemBranchPtr_h
+#define _QueueItemBranchPtr_h
+
+#include <y2util/RepDef.h>
+#include <zypp/solver/detail/QueueItem.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : QueueItemBranchPtr
+//     CLASS NAME : constQueueItemBranchPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_DERIVED_POINTER(QueueItemBranch,QueueItem);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _QueueItemBranchPtr_h
diff --git a/zypp/solver/detail/QueueItemConflict.cc b/zypp/solver/detail/QueueItemConflict.cc
new file mode 100644 (file)
index 0000000..1cae4df
--- /dev/null
@@ -0,0 +1,341 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* QueueItemConflict.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <zypp/solver/detail/QueueItemConflict.h>
+#include <zypp/solver/detail/QueueItemBranch.h>
+#include <zypp/solver/detail/QueueItemInstall.h>
+#include <zypp/solver/detail/QueueItemUninstall.h>
+#include <zypp/solver/detail/QueueItem.h>
+#include <zypp/solver/detail/Version.h>
+#include <zypp/solver/detail/World.h>
+#include <zypp/solver/detail/ResolverContext.h>
+#include <zypp/solver/detail/ResolverInfoConflictsWith.h>
+#include <zypp/solver/detail/ResolverInfoMisc.h>
+#include <zypp/solver/detail/ResolverInfoObsoletes.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_DERIVED_POINTER(QueueItemConflict,QueueItem);
+
+//---------------------------------------------------------------------------
+
+string
+QueueItemConflict::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+QueueItemConflict::toString ( const QueueItemConflict & item)
+{
+    string res = "[Conflict: ";
+    res += item._dep->asString();
+    res += ", Triggered by ";
+    res += item._conflicting_resolvable->asString();
+    if (item._actually_an_obsolete) res += ", Obsolete !";
+    res += "]";
+    return res;
+}
+
+
+ostream &
+QueueItemConflict::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const QueueItemConflict & item)
+{
+    return os << item.asString();
+}
+
+//---------------------------------------------------------------------------
+
+QueueItemConflict::QueueItemConflict (WorldPtr world, constDependencyPtr dep, constResolvablePtr resolvable)
+    : QueueItem (QUEUE_ITEM_TYPE_CONFLICT, world)
+    , _dep (dep)
+    , _conflicting_resolvable (resolvable)
+    , _actually_an_obsolete (false)
+{
+}
+
+
+QueueItemConflict::~QueueItemConflict()
+{
+}
+
+//---------------------------------------------------------------------------
+
+#if PHI
+
+// on conflict, try to find upgrade candidates for the installed resolvable triggering the conflict
+// there are cases where upgrading prevents the conflict
+// rc tends to uninstall the resolvable
+// phi tends to upgrade the resolvable
+// testcases: exercise-02conflict-08-test.xml, exercise-02conflict-09-test.xml
+
+typedef struct {
+    ResolverContextPtr context;
+    CResolvableList upgrades;
+} UpgradeCandidateInfo;
+
+
+static bool
+upgrade_candidates_cb (constResolvablePtr resolvable, constSpecPtr spec, void *data)
+{
+//fprintf (stderr, "upgrade_candidates_cb(%s,%s)\n", resolvable->asString().c_str(), spec->asString().c_str());
+    UpgradeCandidateInfo *info = (UpgradeCandidateInfo *)data;
+    if (info->context->getStatus (resolvable) == RESOLVABLE_STATUS_UNINSTALLED) {
+       info->upgrades.push_back (resolvable);
+    }
+    return true;
+}
+
+#endif  // PHI
+
+
+typedef struct {
+    WorldPtr world;
+    constResolvablePtr conflicting_resolvable;
+    constDependencyPtr dep;
+    ResolverContextPtr context;
+    QueueItemList & new_items;
+
+    string pkg_str;
+    string dep_str;
+
+    bool actually_an_obsolete;
+} ConflictProcessInfo;
+
+
+static bool
+conflict_process_cb (constResolvablePtr resolvable, constSpecPtr spec, void *data)
+{
+    ConflictProcessInfo *info = (ConflictProcessInfo *)data;
+    ResolvableStatus status;
+    string pkg_str, spec_str, msg;
+    ResolverInfoPtr log_info;
+
+    if (getenv ("RC_SPEW")) fprintf (stderr, "conflict_process_cb (resolvable[%s], spec[%s], info [%s]\n", resolvable->asString().c_str(), spec->asString().c_str(), info->conflicting_resolvable->asString().c_str());
+    if (getenv ("RC_SPEW")) fprintf (stderr, "conflict_process_cb (resolvable equals spec: %s, info->dep [%s]\n", resolvable->equals(spec) ? "YES" : "NO", info->dep->asString().c_str());
+
+    /* We conflict with ourself.  For the purpose of installing ourself, we
+     * just ignore it, but it's Debian's way of saying that one and only one
+     * resolvable with this provide may exist on the system at a time. */
+
+    if (info->conflicting_resolvable
+       && resolvable->equals (info->conflicting_resolvable)) {
+       return true;
+    }
+
+    /* FIXME: This should probably be a GVersion capability. */
+    /* Obsoletes don't apply to virtual provides, only the resolvables
+     * themselves.  A provide is "virtual" if it's not the same spec
+     * as the resolvable that's providing it.  This, of course, only
+     * applies to RPM, since it's the only one with obsoletes right
+     * now. */
+
+    if (info->actually_an_obsolete
+       && !(resolvable->equals(spec)))
+    {
+       return true;
+    }
+
+    pkg_str = resolvable->asString();
+    spec_str = spec->asString();
+
+    status = info->context->getStatus (resolvable);
+
+    if (getenv ("RC_SPEW")) fprintf (stderr, "conflict_process_cb (resolvable[%s]<%s>\n", resolvable->asString().c_str(), ResolverContext::toString(status).c_str());
+
+    switch (status) {
+       
+    case RESOLVABLE_STATUS_INSTALLED:
+    case RESOLVABLE_STATUS_TO_BE_INSTALLED_SOFT: {
+       QueueItemUninstallPtr uninstall;
+       ResolverInfoPtr log_info;
+
+#if PHI
+       // maybe an upgrade can resolve the conflict ?
+       //        check if other resolvable is available which upgrades
+
+       // find non-installed packages which provide the conflicting name
+
+       UpgradeCandidateInfo upgrade_info;
+       upgrade_info.context = info->context;
+
+       DependencyPtr maybe_upgrade_dep = new Dependency (resolvable->name(), Relation::Any, Kind::Package, new Channel (CHANNEL_TYPE_NONSYSTEM), -1);
+       info->world->foreachProvidingResolvable (maybe_upgrade_dep, upgrade_candidates_cb, (void *)&upgrade_info);
+
+#endif
+
+       uninstall = new QueueItemUninstall (info->world, resolvable, "conflict");
+       uninstall->setDependency (info->dep);
+
+       if (info->actually_an_obsolete) {
+           uninstall->setDueToObsolete ();
+           log_info = new ResolverInfoObsoletes (resolvable, info->conflicting_resolvable);
+       } else {
+           uninstall->setDueToConflict ();
+           log_info = new ResolverInfoConflictsWith (resolvable, info->conflicting_resolvable);
+       }
+
+       uninstall->addInfo (log_info);
+
+#if PHI
+       if (upgrade_info.upgrades.empty ()) {
+#endif
+
+           info->new_items.push_back (uninstall);
+
+#if PHI
+       }
+       else {
+           // there are upgrade candidates for the conflicting resolvable
+           // branch to: 1. uninstall, 2. upgrade (for each upgrading resolvable)
+
+           QueueItemBranchPtr branch = new QueueItemBranch (info->world);
+
+           branch->addItem (uninstall);                        // try uninstall
+
+           for (CResolvableList::const_iterator iter = upgrade_info.upgrades.begin(); iter != upgrade_info.upgrades.end(); iter++) {
+               QueueItemInstallPtr upgrade = new QueueItemInstall (info->world, *iter);
+               upgrade->setUpgrades (resolvable);
+               branch->addItem (upgrade);                      // try upgrade
+           }
+           info->new_items.push_back (branch);
+       }
+#endif
+
+       break;
+    }
+
+    case RESOLVABLE_STATUS_TO_BE_INSTALLED: {
+       msg = string ("A conflict over ") + info->dep_str + " (" + spec_str + ") requires the removal of the to-be-installed resolvable " + pkg_str;
+
+       ResolverInfoMiscPtr misc_info = new ResolverInfoMisc (resolvable,RESOLVER_INFO_PRIORITY_VERBOSE, msg);
+
+       misc_info->flagAsError ();
+       if (info->conflicting_resolvable) {
+           misc_info->addRelatedResolvable (info->conflicting_resolvable);
+       }
+       info->context->addInfo (misc_info);
+
+       break;
+    }
+
+    case RESOLVABLE_STATUS_UNINSTALLED: {
+       info->context->setStatus (resolvable, RESOLVABLE_STATUS_TO_BE_UNINSTALLED);
+       msg = string ("Marking ") + pkg_str + " as uninstallable due to conflicts over " + info->dep_str + " (" + spec_str + ")";
+       if (!(info->pkg_str.empty())) {
+           msg += " from ";
+           msg += info->pkg_str;
+       }
+
+       ResolverInfoMiscPtr misc_info = new ResolverInfoMisc (NULL, RESOLVER_INFO_PRIORITY_VERBOSE, msg);
+
+       misc_info->addRelatedResolvable (resolvable);
+       if (info->conflicting_resolvable) {
+           misc_info->addRelatedResolvable(info->conflicting_resolvable);
+       }
+       info->context->addInfo (misc_info);
+
+       break;
+    }
+
+    case RESOLVABLE_STATUS_TO_BE_UNINSTALLED:
+    case RESOLVABLE_STATUS_TO_BE_UNINSTALLED_DUE_TO_OBSOLETE:
+       /* This is the easy case -- we do nothing. */
+       break;
+
+    default:
+       abort();
+    }
+
+    return true;
+}
+
+
+bool
+QueueItemConflict::process (ResolverContextPtr context, QueueItemList & new_items)
+{
+    if (getenv ("RC_SPEW")) fprintf (stderr, "QueueItemConflict::process(%s)\n", this->asString().c_str());
+
+    ConflictProcessInfo info = { world(), _conflicting_resolvable, _dep, context, new_items, "", "", _actually_an_obsolete };
+
+    if (_conflicting_resolvable) {
+       info.pkg_str = _conflicting_resolvable->asString();
+    }
+
+    info.dep_str = _dep->relation().asString() + " " + ((constSpecPtr)_dep)->asString();
+
+    world()->foreachProvidingResolvable (_dep, conflict_process_cb, (void *)&info);
+                                       
+// FIXME: free self
+
+    return true;
+}
+
+
+//---------------------------------------------------------------------------
+
+QueueItemPtr
+QueueItemConflict::copy (void) const
+{
+    QueueItemConflictPtr new_conflict = new QueueItemConflict (world(), _dep, _conflicting_resolvable);
+    ((QueueItemPtr)new_conflict)->copy((constQueueItemPtr)this);
+
+    // _actually_an_obsolete is not being copied !
+
+    return new_conflict;
+}
+
+
+int
+QueueItemConflict::cmp (constQueueItemPtr item) const
+{
+    int cmp = this->compare (item);            // assures equal type
+    if (cmp != 0)
+       return cmp;
+
+    constQueueItemConflictPtr conflict = item;
+    cmp = GVersion.compare ((constSpecPtr) _dep, ((constSpecPtr)(conflict->dependency())));
+    if (cmp)
+       return cmp;
+
+    return CMP ((int) _dep->relation().op(), (int) (conflict->dependency()->relation().op()));
+}
+
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/QueueItemConflict.h b/zypp/solver/detail/QueueItemConflict.h
new file mode 100644 (file)
index 0000000..095f1d8
--- /dev/null
@@ -0,0 +1,90 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* QueueItemConflict.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _QueueItemConflict_h
+#define _QueueItemConflict_h
+
+#include <iosfwd>
+#include <list>
+#include <string.h>
+
+#include <zypp/solver/detail/QueueItemConflictPtr.h>
+#include <zypp/solver/detail/Resolvable.h>
+#include <zypp/solver/detail/Dependency.h>
+#include <zypp/solver/detail/Channel.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+
+
+//////////////////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : QueueItemConflict
+
+class QueueItemConflict : public QueueItem {
+    REP_BODY(QueueItemConflict);
+
+  private:
+    constDependencyPtr _dep;
+    constResolvablePtr _conflicting_resolvable;
+
+    bool _actually_an_obsolete;
+
+  public:
+
+    QueueItemConflict (WorldPtr world, constDependencyPtr dep, constResolvablePtr resolvable);
+    virtual ~QueueItemConflict();
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const QueueItemConflict & item);
+
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+
+    friend std::ostream& operator<<(std::ostream&, const QueueItemConflict & item);
+
+    std::string asString (void ) const;
+
+    // ---------------------------------- accessors
+
+    constDependencyPtr dependency (void) const { return _dep; }
+    bool actuallyAnObsolete (void) const { return _actually_an_obsolete; }
+    void setActuallyAnObsolete (void) { _actually_an_obsolete = true; }
+
+    // ---------------------------------- methods
+
+    virtual bool process (ResolverContextPtr context, QueueItemList & qil);
+    virtual QueueItemPtr copy (void) const;
+    virtual int cmp (constQueueItemPtr item) const;
+    virtual bool isRedundant (ResolverContextPtr context) const { return false; }
+    virtual bool isSatisfied (ResolverContextPtr context) const { return false; }
+
+};
+
+    
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _QueueItemConflict_h
diff --git a/zypp/solver/detail/QueueItemConflictPtr.h b/zypp/solver/detail/QueueItemConflictPtr.h
new file mode 100644 (file)
index 0000000..9e7654c
--- /dev/null
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* QueueItemConflictPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _QueueItemConflictPtr_h
+#define _QueueItemConflictPtr_h
+
+#include <y2util/RepDef.h>
+#include <zypp/solver/detail/QueueItem.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : QueueItemConflictPtr
+//     CLASS NAME : constQueueItemConflictPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_DERIVED_POINTER(QueueItemConflict,QueueItem);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _QueueItemConflictPtr_h
diff --git a/zypp/solver/detail/QueueItemGroup.cc b/zypp/solver/detail/QueueItemGroup.cc
new file mode 100644 (file)
index 0000000..d48e2b3
--- /dev/null
@@ -0,0 +1,156 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* QueueItemGroup.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <zypp/solver/detail/QueueItemGroup.h>
+#include <zypp/solver/detail/QueueItem.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_DERIVED_POINTER(QueueItemGroup,QueueItem);
+
+//---------------------------------------------------------------------------
+
+string
+QueueItemGroup::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+QueueItemGroup::toString ( const QueueItemGroup & item)
+{
+    string ret = "[Group: ";
+    ret += QueueItem::toString(item._subitems);
+    ret += "]";
+    return ret;
+}
+
+
+ostream &
+QueueItemGroup::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const QueueItemGroup & item)
+{
+    return os << item.asString();
+}
+
+//---------------------------------------------------------------------------
+
+QueueItemGroup::QueueItemGroup (WorldPtr world)
+    : QueueItem (QUEUE_ITEM_TYPE_GROUP, world)
+{
+}
+
+
+QueueItemGroup::~QueueItemGroup()
+{
+}
+
+//---------------------------------------------------------------------------
+
+bool
+QueueItemGroup::process (ResolverContextPtr context, QueueItemList & new_items)
+{
+    if (getenv ("RC_SPEW")) fprintf (stderr, "QueueItemGroup::process\n");
+
+    bool did_something = false;
+
+    // Just move all of the group's subitems onto the new_items list.
+
+    for (QueueItemList::const_iterator iter = _subitems.begin(); iter != _subitems.end(); iter++) {
+       new_items.push_front (*iter);
+       did_something = true;
+    }
+
+    _subitems.clear();
+
+// FIXME: delete self
+
+    return did_something;
+}
+
+
+QueueItemPtr
+QueueItemGroup::copy (void) const
+{
+    QueueItemGroupPtr new_group = new QueueItemGroup (world());
+    ((QueueItemPtr)new_group)->copy((constQueueItemPtr)this);
+
+    for (QueueItemList::const_iterator iter = _subitems.begin(); iter != _subitems.end(); iter++) {
+       new_group->_subitems.push_back ((*iter)->copy());
+    }
+    return new_group;
+}
+
+
+int
+QueueItemGroup::cmp (constQueueItemPtr item) const
+{
+    int cmp = this->compare (item);            // assures equal type
+    if (cmp != 0)
+       return cmp;
+
+    constQueueItemGroupPtr group = item;
+
+    // First, sort by # of subitems
+
+    cmp = CMP(_subitems.size(), group->_subitems.size());
+    if (cmp)
+        return cmp;
+
+    // We can do a by-item cmp since the possible items are kept in sorted order.
+    QueueItemList::const_iterator iter2;
+    for (QueueItemList::const_iterator iter = _subitems.begin(), iter2 = group->_subitems.begin();
+        iter != _subitems.end() && iter2 != group->_subitems.end(); iter++, iter2++) {
+       cmp = (*iter)->cmp (*iter2);
+       if (cmp) {
+           return cmp;
+       }
+    }
+
+    return 0;
+}
+
+
+void
+QueueItemGroup::addItem (QueueItemPtr subitem)
+{
+    // We need to keep the list sorted for comparison purposes.
+    _subitems.push_back (subitem);
+// FIXME    _subitems.sort(cmp)
+}
+
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/QueueItemGroup.h b/zypp/solver/detail/QueueItemGroup.h
new file mode 100644 (file)
index 0000000..8896a09
--- /dev/null
@@ -0,0 +1,84 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* QueueItemGroup.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _QueueItemGroup_h
+#define _QueueItemGroup_h
+
+#include <iosfwd>
+#include <list>
+#include <string.h>
+
+#include <zypp/solver/detail/QueueItemGroupPtr.h>
+#include <zypp/solver/detail/Resolvable.h>
+#include <zypp/solver/detail/Dependency.h>
+#include <zypp/solver/detail/Channel.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+
+
+//////////////////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : QueueItemGroup
+
+class QueueItemGroup : public QueueItem {
+    REP_BODY(QueueItemGroup);
+
+  private:
+    QueueItemList _subitems;
+
+  public:
+
+    QueueItemGroup (WorldPtr world);
+    virtual ~QueueItemGroup();
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const QueueItemGroup & item);
+
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+
+    friend std::ostream& operator<<(std::ostream&, const QueueItemGroup & item);
+
+    std::string asString (void ) const;
+
+    // ---------------------------------- accessors
+
+
+    // ---------------------------------- methods
+
+    virtual bool process (ResolverContextPtr context, QueueItemList & qil);
+    virtual QueueItemPtr copy (void) const;
+    virtual int cmp (constQueueItemPtr item) const;
+    virtual bool isRedundant (ResolverContextPtr context) const { return false; }
+    virtual bool isSatisfied (ResolverContextPtr context) const { return false; }
+
+    void addItem (QueueItemPtr subitem);
+};
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _QueueItemGroup_h
diff --git a/zypp/solver/detail/QueueItemGroupPtr.h b/zypp/solver/detail/QueueItemGroupPtr.h
new file mode 100644 (file)
index 0000000..f321c66
--- /dev/null
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* QueueItemGroupPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _QueueItemGroupPtr_h
+#define _QueueItemGroupPtr_h
+
+#include <y2util/RepDef.h>
+#include <zypp/solver/detail/QueueItem.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : QueueItemGroupPtr
+//     CLASS NAME : constQueueItemGroupPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_DERIVED_POINTER(QueueItemGroup,QueueItem);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _QueueItemGroupPtr_h
diff --git a/zypp/solver/detail/QueueItemInstall.cc b/zypp/solver/detail/QueueItemInstall.cc
new file mode 100644 (file)
index 0000000..04fc62c
--- /dev/null
@@ -0,0 +1,364 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* QueueItemInstall.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <zypp/solver/detail/QueueItemInstall.h>
+#include <zypp/solver/detail/QueueItemUninstall.h>
+#include <zypp/solver/detail/QueueItemRequire.h>
+#include <zypp/solver/detail/QueueItemConflict.h>
+#include <zypp/solver/detail/QueueItem.h>
+#include <zypp/solver/detail/ResolverContext.h>
+#include <zypp/solver/detail/ResolverInfoConflictsWith.h>
+#include <zypp/solver/detail/ResolverInfoMisc.h>
+#include <zypp/solver/detail/ResolverInfoNeededBy.h>
+#include <zypp/solver/detail/Resolvable.h>
+#include <zypp/solver/detail/Version.h>
+#include <zypp/solver/detail/World.h>
+#include <zypp/solver/detail/ResolvableAndDependency.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_DERIVED_POINTER(QueueItemInstall,QueueItem);
+
+//---------------------------------------------------------------------------
+
+string
+QueueItemInstall::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+QueueItemInstall::toString ( const QueueItemInstall & item)
+{
+    string ret = "[Install: ";
+    ret += item._resolvable->asString();
+    if (item._upgrades != NULL) {
+       ret += ", Upgrades ";
+       ret += item._upgrades->asString();
+    }
+    if (!item._deps_satisfied_by_this_install.empty()) {
+       ret += ", Satisfies ";
+       ret += Dependency::toString(item._deps_satisfied_by_this_install);
+    }
+    if (!item._needed_by.empty()) {
+       ret += ", Needed by ";
+       ret += Resolvable::toString(item._needed_by);
+    }
+    if (item._explicitly_requested) ret += ", Explicit !";
+    ret += "]";
+    return ret;
+}
+
+
+ostream &
+QueueItemInstall::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const QueueItemInstall & item)
+{
+    return os << item.asString();
+}
+
+//---------------------------------------------------------------------------
+
+QueueItemInstall::QueueItemInstall (WorldPtr world, constResolvablePtr resolvable)
+    : QueueItem (QUEUE_ITEM_TYPE_INSTALL, world)
+    , _resolvable (resolvable)
+    , _channel_priority (0)
+    , _other_penalty (0)
+    , _explicitly_requested (false)
+{
+    constResolvablePtr upgrades = world->findInstalledResolvable (resolvable);
+    if (getenv("RC_SPEW")) fprintf (stderr, "QueueItemInstall::QueueItemInstall(%s) upgrades %s\n", resolvable->asString().c_str(), upgrades!=NULL?upgrades->asString().c_str():"nothing");
+    if (upgrades
+       && ! (((constSpecPtr)upgrades)->equals (resolvable))) {
+        setUpgrades(upgrades);
+    }
+}
+
+
+QueueItemInstall::~QueueItemInstall()
+{
+}
+
+//---------------------------------------------------------------------------
+
+bool
+QueueItemInstall::isSatisfied (ResolverContextPtr context) const
+{
+    return context->resolvableIsPresent (_resolvable);
+}
+
+
+//---------------------------------------------------------------------------
+
+// Handle system resolvable's that conflict with us -> uninstall them
+
+static bool
+build_conflict_list (constResolvablePtr resolvable, constDependencyPtr dep, void *data)
+{
+    CResolvableList *rl = (CResolvableList *)data;
+    rl->push_front (resolvable);
+    return true;
+}
+
+bool
+QueueItemInstall::process (ResolverContextPtr context, QueueItemList & qil)
+{
+    if (getenv ("RC_SPEW")) fprintf (stderr, "QueueItemInstall::process(%s)\n", this->asString().c_str());
+
+    constResolvablePtr resolvable = _resolvable;
+    string pkg_name = resolvable->asString();
+    string msg;
+    ResolvableStatus status = context->getStatus (resolvable);
+
+    CDependencyList deps;
+    CResolvableList conflicts;
+
+    /* If we are trying to upgrade resolvable A with resolvable B and they both have the
+       same version number, do nothing.  This shouldn't happen in general with
+       red-carpet, but can come up with the installer & autopull. */
+
+    if (_upgrades
+       && ((constSpecPtr)_resolvable)->equals (_upgrades)) {
+       ResolverInfoPtr info;
+
+       if (getenv ("RC_SPEW")) fprintf (stderr, "upgrades equal resolvable, skipping\n");
+
+       msg = string("Skipping ") + pkg_name + (": already installed");
+       info = new ResolverInfoMisc (_resolvable, RESOLVER_INFO_PRIORITY_VERBOSE, msg);
+       context->addInfo (info);
+       goto finished;
+    }
+
+    if (!_needed_by.empty()) {
+       bool still_needed = false;
+
+       if (getenv ("RC_SPEW")) fprintf (stderr, "still needed ");
+
+       for (CResolvableList::const_iterator iter = _needed_by.begin(); iter != _needed_by.end() && !still_needed; iter++) {
+           ResolvableStatus status = context->getStatus (*iter);
+           if (getenv ("RC_SPEW")) fprintf (stderr, "by: [status: %s] %s\n", ResolverContext::toString(status).c_str(), (*iter)->asString().c_str());
+           if (! resolvable_status_is_to_be_uninstalled (status)) {
+               still_needed = true;
+           }
+       }
+
+       if (! still_needed)
+           goto finished;
+    }
+
+    /* If we are in verify mode and this install is about to fail, don't let it happen... 
+       instead, we try to back out of the install by removing whatever it was that
+       needed this. */
+
+    if (context->verifying()
+       && resolvable_status_is_to_be_uninstalled (context->getStatus (resolvable))
+       && !_needed_by.empty()) {
+
+       QueueItemUninstallPtr uninstall_item;
+
+       for (CResolvableList::const_iterator iter = _needed_by.begin(); iter != _needed_by.end(); iter++) {
+           uninstall_item = new QueueItemUninstall (world(), *iter, "uninstallable resolvable");
+           qil.push_front (uninstall_item);
+       }
+       
+       goto finished;
+    }
+
+    if (_upgrades == NULL) {
+
+       if (getenv ("RC_SPEW")) fprintf (stderr, "simple install of %s\n", resolvable->asString(true).c_str());
+
+       context->installResolvable (resolvable, context->verifying(), /* is_soft */ _other_penalty);
+
+    } else {
+
+       QueueItemUninstallPtr uninstall_item;
+
+       if (getenv ("RC_SPEW")) fprintf (stderr, "upgrade install of %s\n", resolvable->asString().c_str());
+
+       context->upgradeResolvable (resolvable, _upgrades, context->verifying(), /* is_soft */ _other_penalty);
+
+       uninstall_item = new QueueItemUninstall (world(), _upgrades, "upgrade");
+       uninstall_item->setUpgradedTo (resolvable);
+
+       if (_explicitly_requested)
+           uninstall_item->setExplicitlyRequested ();
+
+       qil.push_front (uninstall_item);
+    }
+
+    /* Log which resolvable need this install */
+
+    if (!_needed_by.empty()) {
+       ResolverInfoNeededByPtr info;
+
+       info = new ResolverInfoNeededBy (resolvable);
+       info->addRelatedResolvableList (_needed_by);
+       context->addInfo (info);
+    }
+
+    if (! (status == RESOLVABLE_STATUS_UNINSTALLED
+          || status == RESOLVABLE_STATUS_TO_BE_UNINSTALLED_DUE_TO_UNLINK)) {
+       goto finished;
+    }
+
+    if (_upgrades != NULL) {
+       msg = string ("Upgrading ") + _upgrades->asString() + " => " + pkg_name;
+    } else {
+       msg = string ("Installing ") + pkg_name;
+    }
+
+    context->addInfoString (resolvable, RESOLVER_INFO_PRIORITY_VERBOSE, msg);
+
+    logInfo (context);
+
+    /* Construct require items for each of the resolvable's requires that is still unsatisfied. */
+
+    deps = resolvable->requires();
+    for (CDependencyList::const_iterator iter = deps.begin(); iter != deps.end(); iter++) {
+       constDependencyPtr dep = *iter;
+       if (!context->requirementIsMet (dep, false)) {
+           if (getenv("RC_SPEW")) fprintf (stderr, "this requires %s\n", dep->asString().c_str());
+           QueueItemRequirePtr req_item = new QueueItemRequire (world(), dep);
+           req_item->addResolvable (resolvable);
+           qil.push_front (req_item);
+       }
+    }
+
+    /* Construct conflict items for each of the resolvable's conflicts. */
+
+    deps = resolvable->conflicts();
+    for (CDependencyList::const_iterator iter = deps.begin(); iter != deps.end(); iter++) {
+       constDependencyPtr dep = *iter;
+       if (getenv("RC_SPEW")) fprintf (stderr, "this conflicts with '%s'\n", dep->asString().c_str());
+       QueueItemConflictPtr conflict_item = new QueueItemConflict (world(), dep, resolvable);
+       qil.push_front (conflict_item);
+    }
+
+    /* Construct conflict items for each of the resolvable's obsoletes. */
+
+    deps = resolvable->obsoletes();
+    for (CDependencyList::const_iterator iter = deps.begin(); iter != deps.end(); iter++) {
+       constDependencyPtr dep = *iter;
+       if (getenv("RC_SPEW")) fprintf (stderr, "this obsoletes %s\n", dep->asString().c_str());
+       QueueItemConflictPtr conflict_item = new QueueItemConflict (world(), dep, resolvable);
+       conflict_item->setActuallyAnObsolete();
+       qil.push_front (conflict_item);
+    }
+
+    /* Construct uninstall items for system resolvable's that conflict with us. */
+
+    deps = resolvable->provides();
+    for (CDependencyList::const_iterator iter = deps.begin(); iter != deps.end(); iter++) {
+       constDependencyPtr dep = *iter;
+       world()->foreachConflictingResolvable (dep, build_conflict_list, &conflicts);
+    }
+
+    for (CResolvableList::const_iterator iter = conflicts.begin(); iter != conflicts.end(); iter++) {
+       constResolvablePtr conflicting_resolvable = *iter;
+       ResolverInfoPtr log_info;
+       QueueItemUninstallPtr uninstall_item;
+
+       /* Check to see if we conflict with ourself and don't create
+        * an uninstall item for it if we do.  This is Debian's way of
+        * saying that one and only one resolvable with this provide may
+        * exist on the system at a time.
+        */
+       if (((constSpecPtr)conflicting_resolvable)->equals (resolvable)) {
+           continue;
+       }
+
+       if (getenv("RC_SPEW")) fprintf (stderr, "because: '%s'\n", conflicting_resolvable->asString(true).c_str());
+
+       uninstall_item = new QueueItemUninstall (world(), conflicting_resolvable, "conflict");
+       uninstall_item->setDueToConflict ();
+       log_info = new ResolverInfoConflictsWith (conflicting_resolvable, resolvable);
+       uninstall_item->addInfo (log_info);
+       qil.push_front (uninstall_item);
+    }
+    
+ finished:
+//FIXME    rc_queue_item_free (item);
+    
+    return true;
+}
+
+
+QueueItemPtr
+QueueItemInstall::copy (void) const
+{
+    QueueItemInstallPtr new_install = new QueueItemInstall (world(), _resolvable);
+    ((QueueItemPtr)new_install)->copy((constQueueItemPtr)this);
+
+    new_install->_upgrades = _upgrades;
+    new_install->_deps_satisfied_by_this_install = CDependencyList(_deps_satisfied_by_this_install.begin(), _deps_satisfied_by_this_install.end());
+    new_install->_needed_by = CResolvableList (_needed_by.begin(), _needed_by.end());
+    new_install->_channel_priority = _channel_priority;
+    new_install->_other_penalty = _other_penalty;
+    new_install->_explicitly_requested = _explicitly_requested;
+
+    return new_install;
+}
+
+
+int
+QueueItemInstall::cmp (constQueueItemPtr item) const
+{
+    int cmp = this->compare (item);
+    if (cmp != 0)
+       return cmp;
+    constQueueItemInstallPtr install = item;
+    return GVersion.compare (_resolvable, install->_resolvable);
+}
+
+//---------------------------------------------------------------------------
+
+void 
+QueueItemInstall::addDependency (constDependencyPtr dep)
+{
+    _deps_satisfied_by_this_install.push_front (dep);
+}
+
+
+void 
+QueueItemInstall::addNeededBy (constResolvablePtr resolvable)
+{
+    _needed_by.push_front (resolvable);
+}
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/QueueItemInstall.h b/zypp/solver/detail/QueueItemInstall.h
new file mode 100644 (file)
index 0000000..ee2362f
--- /dev/null
@@ -0,0 +1,107 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* QueueItemInstall.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _QueueItemInstall_h
+#define _QueueItemInstall_h
+
+#include <iosfwd>
+#include <list>
+#include <string.h>
+
+#include <zypp/solver/detail/QueueItemInstallPtr.h>
+#include <zypp/solver/detail/Resolvable.h>
+#include <zypp/solver/detail/Dependency.h>
+#include <zypp/solver/detail/Channel.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+
+
+//////////////////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : QueueItemInstall
+
+class QueueItemInstall : public QueueItem {
+    REP_BODY(QueueItemInstall);
+
+  private:
+    constResolvablePtr _resolvable;
+    constResolvablePtr _upgrades;
+    CDependencyList _deps_satisfied_by_this_install;
+    CResolvableList _needed_by;
+    int _channel_priority;
+    int _other_penalty;
+
+    bool _explicitly_requested;
+
+  public:
+
+    QueueItemInstall (WorldPtr world, constResolvablePtr resolvable);
+    virtual ~QueueItemInstall();
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const QueueItemInstall & item);
+
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+
+    friend std::ostream& operator<<(std::ostream&, const QueueItemInstall & item);
+
+    std::string asString (void ) const;
+
+    // ---------------------------------- accessors
+
+    constResolvablePtr resolvable (void) const { return _resolvable; }
+
+    constResolvablePtr upgrades (void) const { return _upgrades; }
+    void setUpgrades (constResolvablePtr upgrades) { _upgrades = upgrades; }
+
+    int channelPriority (void) const { return _channel_priority; }
+    void setChannelPriority (int channel_priority) { _channel_priority = channel_priority; }
+
+    int otherPenalty (void) { return _other_penalty; }
+    void setOtherPenalty (int other_penalty) { _other_penalty = other_penalty; }
+
+    void setExplicitlyRequested (void) { _explicitly_requested = true; }
+
+    // ---------------------------------- methods
+
+    virtual bool process (ResolverContextPtr context, QueueItemList & qil);
+    virtual QueueItemPtr copy (void) const;
+    virtual int cmp (constQueueItemPtr item) const;
+
+    virtual bool isRedundant (ResolverContextPtr context) const { return false; }
+    virtual bool isSatisfied (ResolverContextPtr context) const;
+
+    void addDependency (constDependencyPtr dep);
+    void addNeededBy (constResolvablePtr resolvable);
+
+};
+
+    
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _QueueItem_h
diff --git a/zypp/solver/detail/QueueItemInstallPtr.h b/zypp/solver/detail/QueueItemInstallPtr.h
new file mode 100644 (file)
index 0000000..3818060
--- /dev/null
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* QueueItemInstallPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _QueueItemInstallPtr_h
+#define _QueueItemInstallPtr_h
+
+#include <y2util/RepDef.h>
+#include <zypp/solver/detail/QueueItem.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : QueueItemInstallPtr
+//     CLASS NAME : constQueueItemInstallPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_DERIVED_POINTER(QueueItemInstall,QueueItem);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _QueueItemInstallPtr_h
diff --git a/zypp/solver/detail/QueueItemPtr.h b/zypp/solver/detail/QueueItemPtr.h
new file mode 100644 (file)
index 0000000..aa39468
--- /dev/null
@@ -0,0 +1,40 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* QueueItemPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _QueueItemPtr_h
+#define _QueueItemPtr_h
+
+#include <y2util/RepDef.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : QueueItemPtr
+//     CLASS NAME : constQueueItemPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_BASE_POINTER(QueueItem);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _QueueItemPtr_h
diff --git a/zypp/solver/detail/QueueItemRequire.cc b/zypp/solver/detail/QueueItemRequire.cc
new file mode 100644 (file)
index 0000000..4973c8d
--- /dev/null
@@ -0,0 +1,484 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* QueueItemRequire.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <y2util/stringutil.h>
+
+#include <zypp/solver/detail/QueueItemRequire.h>
+#include <zypp/solver/detail/QueueItemBranch.h>
+#include <zypp/solver/detail/QueueItemUninstall.h>
+#include <zypp/solver/detail/QueueItemInstall.h>
+#include <zypp/solver/detail/QueueItem.h>
+#include <zypp/solver/detail/ResolverContext.h>
+#include <zypp/solver/detail/ResolverInfoDependsOn.h>
+#include <zypp/solver/detail/ResolverInfoMisc.h>
+#include <zypp/solver/detail/ResolverInfoNeededBy.h>
+#include <zypp/solver/detail/Version.h>
+#include <zypp/solver/detail/World.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_DERIVED_POINTER(QueueItemRequire,QueueItem);
+
+//---------------------------------------------------------------------------
+
+string
+QueueItemRequire::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+QueueItemRequire::toString ( const QueueItemRequire & item)
+{
+    string ret = "[Require: ";
+    ret += item._dep->asString();
+    if (item._requiring_resolvable != NULL) {
+       ret += ", Required by ";
+       ret += item._requiring_resolvable->asString();
+    }
+    if (item._upgraded_resolvable != NULL) {
+       ret += ", Upgrades ";
+       ret += item._upgraded_resolvable->asString();
+    }
+    if (item._lost_resolvable != NULL) {
+       ret += ", Lost ";
+       ret += item._lost_resolvable->asString();
+    }
+    if (item._remove_only) ret += ", Remove Only";
+    if (item._is_child) ret += ", Child";
+    ret += "]";
+
+    return ret;
+}
+
+
+ostream &
+QueueItemRequire::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const QueueItemRequire & item)
+{
+    return os << item.asString();
+}
+
+//---------------------------------------------------------------------------
+
+QueueItemRequire::QueueItemRequire (WorldPtr world, constDependencyPtr dep)
+    : QueueItem (QUEUE_ITEM_TYPE_REQUIRE, world)
+    , _dep (dep)
+    , _requiring_resolvable (NULL)
+    , _upgraded_resolvable (NULL)
+    , _lost_resolvable (NULL)
+    , _remove_only (false)
+    , _is_child (false)
+{
+}
+
+
+QueueItemRequire::~QueueItemRequire()
+{
+}
+
+//---------------------------------------------------------------------------
+
+void
+QueueItemRequire::addResolvable (constResolvablePtr resolvable)
+{
+    assert (_requiring_resolvable == NULL);
+    _requiring_resolvable = resolvable;
+}
+
+
+//---------------------------------------------------------------------------
+
+typedef std::map <constSpecPtr, bool> UniqTable;
+
+typedef struct {
+    constResolvablePtr resolvable;
+    constSpecPtr dep;
+    ResolverContextPtr context;
+    WorldPtr world;
+    CResolvableList providers;
+    UniqTable *uniq;
+} RequireProcessInfo;
+
+
+static bool
+require_process_cb (constResolvablePtr resolvable, constSpecPtr spec, void *data)
+{
+    RequireProcessInfo *info = (RequireProcessInfo *)data;
+    ResolvableStatus status;
+
+    status = info->context->getStatus (resolvable);
+//fprintf (stderr, "require_process_cb(res: %s, spec %s, status %s)\n", resolvable->asString().c_str(), spec->asString().c_str(), ResolverContext::toString(status).c_str());
+//fprintf (stderr, "require_process_cb(info->dep: %s)\n", info->dep ? info->dep->asString().c_str() : "(null)");
+//fprintf (stderr, "require_process_cb(resolvableIsPossible -> %d)\n", info->context->resolvableIsPossible (resolvable));
+    /* info->dep is set for resolvable set childern only. If it is set
+       allow only exactly required version */
+    if (info->dep != NULL
+       && !info->dep->equals(spec)) {
+       return true;
+    }
+
+    if ((! resolvable_status_is_to_be_uninstalled (status))
+       && ! info->context->isParallelInstall (resolvable)
+       && info->uniq->find((constSpecPtr)resolvable) == info->uniq->end()
+       && info->context->resolvableIsPossible (resolvable)
+       && ! info->world->resolvableIsLocked (resolvable)) {
+
+       info->providers.push_front (resolvable);
+       (*(info->uniq))[resolvable] = true;
+    }
+
+    return true;
+}
+
+
+static bool
+no_installable_providers_info_cb (constResolvablePtr resolvable, constSpecPtr spec, void *data)
+{
+    RequireProcessInfo *info = (RequireProcessInfo *)data;
+    ResolvableStatus status;
+    string msg_str;
+
+    status = info->context->getStatus (resolvable);
+
+    if (resolvable_status_is_to_be_uninstalled (status)) {
+       msg_str = resolvable->name() + " provides " + spec->asString() + ", but is scheduled to be uninstalled.";
+    } else if (info->context->isParallelInstall (resolvable)) {
+       msg_str = resolvable->name() + " provides " + spec->asString() + ", but another version of that resolvable is already installed.";
+    } else if (! info->context->resolvableIsPossible (resolvable)) {
+       msg_str = resolvable->name() + " provides " + spec->asString() + ", but it is uninstallable.  Try installing it on its own for more details.";
+    } else if (info->world->resolvableIsLocked (resolvable)) {
+       msg_str = resolvable->name() + " provides " + spec->asString() + ", but it is locked.";
+    }
+
+    if (!msg_str.empty()) {
+       info->context->addInfoString (info->resolvable, RESOLVER_INFO_PRIORITY_VERBOSE, msg_str);
+    }
+    
+    return true;
+}
+
+
+static bool
+look_for_upgrades_cb (constResolvablePtr resolvable, void *data)
+{
+    CResolvableList *rl = (CResolvableList *)data;
+    rl->push_front (resolvable);
+    return true;
+}
+
+
+static bool
+codependent_resolvables (constResolvablePtr r1, constResolvablePtr r2)
+{
+    string name1 = r1->name();
+    string name2 = r2->name();
+    int len1 = name1.size();
+    int len2 = name2.size();
+
+    if (len2 < len1) {
+       string swap = name1;
+       int swap_len = len1;
+       name1 = name2;
+       name2 = swap;
+       len1 = len2;
+       len2 = swap_len;
+    }
+
+    // foo and foo-bar are automatically co-dependent
+    if (len1 < len2
+       && strncmp (name1.c_str(), name2.c_str(), len1) == 0
+       && name2[len1] == '-') {
+       return true;
+    }
+    
+    return false;
+}
+
+
+bool
+QueueItemRequire::process (ResolverContextPtr context, QueueItemList & new_items)
+{
+    if (getenv ("RC_SPEW")) fprintf (stderr, "QueueItemRequire::process(%s)\n", this->asString().c_str());
+
+    if (context->requirementIsMet (_dep, _is_child)) {
+       if (getenv ("RC_SPEW")) fprintf (stderr, "requirement is already met in current context\n");
+//    rc_queue_item_free (item);
+       return true;
+    }
+
+    RequireProcessInfo info;
+
+    info.resolvable = _requiring_resolvable;
+    info.dep = _is_child ? _dep : NULL;
+    info.context = context;
+    info.world = world();
+    info.uniq = new UniqTable();               //FIXME: op: g_hash_table_new (rc_resolvable_spec_hash, rc_resolvable_spec_equal);
+
+    int num_providers = 0;
+
+    if (! _remove_only) {
+
+       world()->foreachProvidingResolvable (_dep, require_process_cb, &info);
+       
+       num_providers = info.providers.size();
+
+       if (getenv ("RC_SPEW")) fprintf (stderr, "requirement is met by %d resolvables\n", num_providers);
+    }
+
+    std::string msg;
+
+    if (num_providers == 0) {
+
+       if (getenv ("RC_SPEW")) fprintf (stderr, "Unfulfilled requirement, try different solution\n");
+
+       QueueItemUninstallPtr uninstall_item = NULL;
+       QueueItemBranchPtr branch_item = NULL;
+       bool explore_uninstall_branch = true;
+
+       if (_upgraded_resolvable == NULL) {
+           ResolverInfoPtr err_info;
+
+           msg = string ("There are no ") + (_remove_only ? "alternative installed" : "installable") + " providers of " + _dep->asString();
+           if (_requiring_resolvable != NULL) {
+               msg += " for ";
+               msg += _requiring_resolvable->asString();
+           }
+
+           err_info = new ResolverInfoMisc (_requiring_resolvable, RESOLVER_INFO_PRIORITY_VERBOSE, msg);
+
+           context->addInfo (err_info);
+
+           // Maybe we can add some extra info on why none of the providers are suitable.
+           world()->foreachProvidingResolvable (_dep, no_installable_providers_info_cb, (void *)&info);
+       }
+       
+       // If this is an upgrade, we might be able to avoid removing stuff by upgrading it instead.
+       if (_upgraded_resolvable != NULL
+           && _requiring_resolvable != NULL) {
+
+           CResolvableList upgrade_list;
+
+           world()->foreachUpgrade (_requiring_resolvable, new Channel(CHANNEL_TYPE_ANY), look_for_upgrades_cb, (void *)&upgrade_list);
+
+           if (!upgrade_list.empty()) {
+               string label, req_str, up_str;
+
+               branch_item = new QueueItemBranch (world());
+
+               req_str = _requiring_resolvable->asString();
+               up_str  = _upgraded_resolvable->asString();
+
+               label = string ("for requiring ") + _dep->asString() + " for " + req_str + " when upgrading " + up_str;
+               branch_item->setLabel (label);
+//fprintf (stderr, "Branching: %s\n", label.c_str());
+               for (CResolvableList::const_iterator iter = upgrade_list.begin(); iter != upgrade_list.end(); iter++) {
+                   constResolvablePtr upgrade_resolvable = *iter;
+                   QueueItemInstallPtr install_item;
+
+                   if (context->resolvableIsPossible (upgrade_resolvable)) {
+                   
+                       install_item = new QueueItemInstall (world(), upgrade_resolvable);
+                       install_item->setUpgrades (_requiring_resolvable);
+                       branch_item->addItem (install_item);
+
+                       ResolverInfoNeededByPtr upgrade_info = new ResolverInfoNeededBy (upgrade_resolvable);
+                       upgrade_info->addRelatedResolvable (_upgraded_resolvable);
+                       install_item->addInfo (upgrade_info);
+
+                       // If an upgrade resolvable has its requirements met, don't do the uninstall branch.
+                       //   FIXME: should we also look at conflicts here?
+
+                       if (explore_uninstall_branch) {
+                           CDependencyList requires = upgrade_resolvable->requires();
+                           CDependencyList::const_iterator iter = requires.begin();
+                           for (; iter != requires.end(); iter++) {
+                               constDependencyPtr req = *iter;
+                               if (! context->requirementIsMet (req, false)) {
+                                       break;
+                               }
+                           }
+                           if (iter == requires.end()) {
+                               explore_uninstall_branch = false;
+                           }
+                       }
+                       
+                   } /* if (context->resolvableIsPossible ( ... */
+               } /* for (iter = upgrade_list; ... */
+           } /* if (upgrade_list) ... */
+
+           if (!upgrade_list.empty()
+               && branch_item->isEmpty ()) {
+
+               for (CResolvableList::const_iterator iter = upgrade_list.begin(); iter != upgrade_list.end(); iter++) {
+                   string str;
+                   string p1, p2;
+
+                   p1 = _requiring_resolvable->asString();
+                   p2 = (*iter)->asString();
+                   str = string ("Upgrade to ") + p2 + " to avoid removing " + p1 + " is not possible.";
+
+                   ResolverInfoMiscPtr misc_info = new ResolverInfoMisc (NULL, RESOLVER_INFO_PRIORITY_VERBOSE, str);
+                   misc_info->addRelatedResolvable (_requiring_resolvable);
+                   misc_info->addRelatedResolvable (*iter);
+                   context->addInfo (misc_info);
+
+                   explore_uninstall_branch = true;
+               }
+
+               //
+               //  The exception: we always want to consider uninstalling
+               //  when the requirement has resulted from a resolvable losing
+               //  one of it's provides.
+               
+           } else if (!upgrade_list.empty()
+                      && explore_uninstall_branch
+                      && codependent_resolvables (_requiring_resolvable, _upgraded_resolvable)
+                      && _lost_resolvable == NULL) {
+               explore_uninstall_branch = false;
+           }
+
+       } /* if (_upgrade_resolvable && _requiring_resolvable) ... */
+
+       // We always consider uninstalling when in verification mode.
+
+       if (context->verifying()) {
+           explore_uninstall_branch = true;
+       }
+
+       if (explore_uninstall_branch && _requiring_resolvable) {
+           ResolverInfoPtr log_info;
+           uninstall_item = new QueueItemUninstall (world(),_requiring_resolvable, "unsatisfied requirements");
+           uninstall_item->setDependency (_dep);
+           
+           if (_lost_resolvable) {
+               log_info = new ResolverInfoDependsOn (_requiring_resolvable, _lost_resolvable);
+               uninstall_item->addInfo (log_info);
+           }
+           
+           if (_remove_only)
+               uninstall_item->setRemoveOnly ();
+       }
+
+       if (uninstall_item && branch_item) {
+           branch_item->addItem (uninstall_item);            
+           new_items.push_front (branch_item);
+       } else if (uninstall_item) {
+           new_items.push_front (uninstall_item);
+       } else if (branch_item) {
+           new_items.push_front (branch_item);
+       } else {
+           // We can't do anything to resolve the missing requirement, so we fail.
+           string msg = string ("Can't satisfy requirement '") + _dep->asString() + "'";
+           
+           context->addErrorString (NULL, msg);
+       }
+       
+    } else if (num_providers == 1) {
+
+       if (getenv ("RC_SPEW")) fprintf (stderr, "Found exactly one resolvable, installing it.\n");
+
+       QueueItemInstallPtr install_item = new QueueItemInstall (world(), info.providers.front());
+       install_item->addDependency (_dep);
+
+       // The requiring resolvable could be NULL if the requirement was added as an extra dependency.
+       if (_requiring_resolvable) {
+           install_item->addNeededBy (_requiring_resolvable);
+       }
+       new_items.push_front (install_item);
+
+    } else if (num_providers > 1) {
+
+       if (getenv ("RC_SPEW")) fprintf (stderr, "Found more than one resolvable, branching.\n");
+
+//fprintf (stderr, "Found more than one resolvable, branching.\n");
+       QueueItemBranchPtr branch_item = new QueueItemBranch (world());
+
+       for (CResolvableList::const_iterator iter = info.providers.begin(); iter != info.providers.end(); iter++) {
+           QueueItemInstallPtr install_item = new QueueItemInstall (world(), *iter);
+           install_item->addDependency (_dep);
+           branch_item->addItem (install_item);
+
+           // The requiring resolvable could be NULL if the requirement was added as an extra dependency.
+           if (_requiring_resolvable) {
+               install_item->addNeededBy (_requiring_resolvable);
+           }
+       }
+
+       new_items.push_front (branch_item);
+
+    } else {
+       abort ();
+    }
+
+   
+//    rc_queue_item_free (item);
+    return true;
+}
+
+//---------------------------------------------------------------------------
+
+QueueItemPtr
+QueueItemRequire::copy (void) const
+{
+    QueueItemRequirePtr new_require = new QueueItemRequire (world(), _dep);
+    ((QueueItemPtr)new_require)->copy((constQueueItemPtr)this);
+
+    new_require->_requiring_resolvable = _requiring_resolvable;
+    new_require->_upgraded_resolvable  = _upgraded_resolvable;
+    new_require->_remove_only          = _remove_only;
+
+    return new_require;
+}
+
+
+int
+QueueItemRequire::cmp (constQueueItemPtr item) const
+{
+    int cmp = this->compare (item);            // assures equal type
+    if (cmp != 0)
+       return cmp;
+
+    constQueueItemRequirePtr require = item;
+
+    cmp = GVersion.compare ((constSpecPtr) _dep, ((constSpecPtr)(require->dependency())));
+    if (cmp)
+       return cmp;
+
+    return CMP ((int) _dep->relation().op(), (int) (require->dependency()->relation().op()));
+}
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/QueueItemRequire.h b/zypp/solver/detail/QueueItemRequire.h
new file mode 100644 (file)
index 0000000..ab2f17d
--- /dev/null
@@ -0,0 +1,96 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* QueueItemRequire.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _QueueItemRequire_h
+#define _QueueItemRequire_h
+
+#include <iosfwd>
+#include <list>
+#include <string.h>
+
+#include <zypp/solver/detail/QueueItemRequirePtr.h>
+#include <zypp/solver/detail/Resolvable.h>
+#include <zypp/solver/detail/Dependency.h>
+#include <zypp/solver/detail/Channel.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+
+
+//////////////////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : QueueItemRequire
+
+class QueueItemRequire : public QueueItem {
+    REP_BODY(QueueItemRequire);
+
+  private:
+    constDependencyPtr _dep;
+    constResolvablePtr _requiring_resolvable;
+    constResolvablePtr _upgraded_resolvable;
+    constResolvablePtr _lost_resolvable;
+    bool _remove_only;
+    bool _is_child;
+
+  public:
+
+    QueueItemRequire (WorldPtr world, constDependencyPtr dep);
+    virtual ~QueueItemRequire();
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const QueueItemRequire & item);
+
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+
+    friend std::ostream& operator<<(std::ostream&, const QueueItemRequire & item);
+
+    std::string asString (void ) const;
+
+    // ---------------------------------- accessors
+
+    constDependencyPtr dependency (void) const { return _dep; }
+
+    void setRemoveOnly (void) { _remove_only = true; }
+    void setUpgradedResolvable (constResolvablePtr upgraded_resolvable) { _upgraded_resolvable = upgraded_resolvable; }
+    void setLostResolvable (constResolvablePtr lost_resolvable) { _lost_resolvable = lost_resolvable; }
+
+    // ---------------------------------- methods
+
+    virtual bool process (ResolverContextPtr context, QueueItemList & qil);
+    virtual QueueItemPtr copy (void) const;
+    virtual int cmp (constQueueItemPtr item) const;
+    virtual bool isRedundant (ResolverContextPtr context) const { return false; }
+    virtual bool isSatisfied (ResolverContextPtr context) const { return false; }
+
+    void addResolvable (constResolvablePtr resolvable);
+
+
+};
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _QueueItemRequire_h
diff --git a/zypp/solver/detail/QueueItemRequirePtr.h b/zypp/solver/detail/QueueItemRequirePtr.h
new file mode 100644 (file)
index 0000000..ad69a1a
--- /dev/null
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* QueueItemRequirePtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _QueueItemRequirePtr_h
+#define _QueueItemRequirePtr_h
+
+#include <y2util/RepDef.h>
+#include <zypp/solver/detail/QueueItem.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : QueueItemRequirePtr
+//     CLASS NAME : constQueueItemRequirePtr
+///////////////////////////////////////////////////////////////////
+DEFINE_DERIVED_POINTER(QueueItemRequire,QueueItem);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _QueueItemRequirePtr_h
diff --git a/zypp/solver/detail/QueueItemUninstall.cc b/zypp/solver/detail/QueueItemUninstall.cc
new file mode 100644 (file)
index 0000000..f2ecab0
--- /dev/null
@@ -0,0 +1,322 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* QueueItemUninstall.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <zypp/solver/detail/QueueItemUninstall.h>
+#include <zypp/solver/detail/QueueItemRequire.h>
+#include <zypp/solver/detail/QueueItem.h>
+#include <zypp/solver/detail/ResolverContext.h>
+#include <zypp/solver/detail/ResolverInfoMissingReq.h>
+#include <zypp/solver/detail/World.h>
+#include <zypp/solver/detail/Version.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_DERIVED_POINTER(QueueItemUninstall,QueueItem);
+
+//---------------------------------------------------------------------------
+
+string
+QueueItemUninstall::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+QueueItemUninstall::toString ( const QueueItemUninstall & item)
+{
+    string ret = "[Uninstall: ";
+
+    ret += item._resolvable->asString();
+    ret += " ("; ret += item._reason; ret += ")";
+    if (item._dep_leading_to_uninstall != NULL) {
+       ret += ", Triggered By ";
+       ret += item._dep_leading_to_uninstall->asString();
+    }
+    if (item._upgraded_to != NULL) {
+       ret += ", Upgraded To ";
+       ret += item._upgraded_to->asString();
+    }
+    if (item._explicitly_requested) ret += ", Explicit";
+    if (item._remove_only) ret += ", Remove Only";
+    if (item._due_to_conflict) ret += ", Due To Conflict";
+    if (item._due_to_obsolete) ret += ", Due To Obsolete";
+    if (item._unlink) ret += ", Unlink";
+    ret += "]";
+
+    return ret;
+}
+
+
+ostream &
+QueueItemUninstall::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const QueueItemUninstall & item)
+{
+    return os << item.asString();
+}
+
+//---------------------------------------------------------------------------
+
+QueueItemUninstall::QueueItemUninstall (WorldPtr world, constResolvablePtr resolvable, const std::string & reason)
+    : QueueItem (QUEUE_ITEM_TYPE_UNINSTALL, world)
+    , _resolvable (resolvable)
+    , _reason (reason)
+    , _dep_leading_to_uninstall (NULL)
+    , _upgraded_to (NULL)
+    , _explicitly_requested (false)
+    , _remove_only (false)
+    , _due_to_conflict (false)
+    , _due_to_obsolete (false)
+    , _unlink (false)
+{
+}
+
+
+QueueItemUninstall::~QueueItemUninstall()
+{
+}
+
+//---------------------------------------------------------------------------
+
+void
+QueueItemUninstall::setUnlink ()
+{
+    _unlink = true;
+    /* Reduce the priority so that unlink items will tend to get
+       processed later.  We want to process unlinks as late as possible...
+       this will make our "is this item in use" check more accurate. */
+    setPriority (0);
+
+    return;
+}
+
+//---------------------------------------------------------------------------
+
+typedef struct {
+    ResolverContextPtr context;
+    bool cancel_unlink;
+} UnlinkCheckInfo;
+
+
+static bool
+unlink_check_cb (constResolvablePtr resolvable, constDependencyPtr dep, void *data)
+{
+    UnlinkCheckInfo *info = (UnlinkCheckInfo *)data;
+
+    if (info->cancel_unlink)
+       return true; 
+
+    if (! info->context->resolvableIsPresent (resolvable))
+       return true;
+
+    if (info->context->requirementIsMet (dep, false))
+       return true;
+
+    info->cancel_unlink = true;
+
+    return true;
+}
+
+typedef struct {
+    WorldPtr world;
+    ResolverContextPtr context;
+    constResolvablePtr uninstalled_resolvable;
+    constResolvablePtr upgraded_resolvable;
+    QueueItemList *require_items;
+    bool remove_only;
+} UninstallProcessInfo;
+
+
+static bool
+uninstall_process_cb (constResolvablePtr resolvable, constDependencyPtr dep, void *data)
+{
+    UninstallProcessInfo *info = (UninstallProcessInfo *)data;
+
+    if (! info->context->resolvableIsPresent (resolvable))
+       return true;
+
+    if (info->context->requirementIsMet (dep, false))
+       return true;
+
+    QueueItemRequirePtr require_item = new QueueItemRequire (info->world, dep);
+    require_item->addResolvable (resolvable);
+    if (info->remove_only) {
+        require_item->setRemoveOnly ();
+    }
+    require_item->setUpgradedResolvable (info->upgraded_resolvable);
+    require_item->setLostResolvable (info->uninstalled_resolvable);
+
+    info->require_items->push_front (require_item);
+
+    return true;
+}
+
+
+bool
+QueueItemUninstall::process (ResolverContextPtr context, QueueItemList & qil)
+{
+    ResolvableStatus status;
+    string pkg_str;
+
+    pkg_str = ((constSpecPtr)_resolvable)->asString();
+
+    status = context->getStatus (_resolvable);
+
+    if (getenv ("RC_SPEW")) fprintf (stderr, "QueueItemUninstall::process(<%s>%s)%s\n", ResolverContext::toString(status).c_str(), _resolvable->asString().c_str(), _unlink ? "[unlink]" : "");
+
+    /* In the case of an unlink, we only want to uninstall the resolvable if it is
+       being used by something else.  We can't really determine this with 100%
+       accuracy, since some later queue item could cause something that requires
+       the resolvable to be uninstalled.  The alternative is to try to do something
+       really clever... but I'm not clever enough to think of an algorithm that
+        (1) Would do the right thing.
+        (2) Is guaranteed to terminate. (!)
+       so this will have to do.  In practice, I don't think that this is a serious
+       problem. */
+    
+    if (_unlink) {
+       bool unlink_cancelled = false;
+
+       /* If the resolvable is to-be-installed, obviously it is being use! */
+       if (status == RESOLVABLE_STATUS_TO_BE_INSTALLED) {
+
+           unlink_cancelled = true;
+
+       } else if (status == RESOLVABLE_STATUS_INSTALLED) {
+           UnlinkCheckInfo info;
+
+           /* Flag the resolvable as to-be-uninstalled so that it won't
+              satisfy any other resolvable's deps during this check. */
+           context->setStatus (_resolvable, RESOLVABLE_STATUS_TO_BE_UNINSTALLED);
+
+           info.context = context;
+           info.cancel_unlink = false;
+
+           CDependencyList provides = _resolvable->provides();
+           for (CDependencyList::const_iterator iter = provides.begin(); iter != provides.end() && ! info.cancel_unlink; iter++) {
+               world()->foreachRequiringResolvable (*iter, unlink_check_cb, &info);
+           }
+
+           /* Set the status back to normal. */
+           context->setStatus (_resolvable, status);
+
+           if (info.cancel_unlink)
+               unlink_cancelled = true;
+       }
+
+       if (unlink_cancelled) {
+           string msg = pkg_str + " is required by other installed resolvables, so it won't be unlinked.";
+           context->addInfoString (_resolvable, RESOLVER_INFO_PRIORITY_VERBOSE, msg);
+           goto finished;
+       }
+    }
+
+    context->uninstallResolvable (_resolvable, _upgraded_to != NULL, _due_to_obsolete, _unlink);
+       
+    if (status == RESOLVABLE_STATUS_INSTALLED) {
+
+       if (! _explicitly_requested
+           && world()->resolvableIsLocked (_resolvable)) {
+           string msg = pkg_str + " is locked, and cannot be uninstalled.";
+           context->addErrorString (_resolvable, msg);
+           goto finished;
+       }
+
+       this->logInfo (context);
+
+       if (_dep_leading_to_uninstall
+           && !_due_to_conflict
+           && !_due_to_obsolete)
+       {
+           ResolverInfoPtr info = new ResolverInfoMissingReq (_resolvable, _dep_leading_to_uninstall);
+           context->addInfo (info);
+       }
+
+       CDependencyList provides = _resolvable->provides();
+       for (CDependencyList::const_iterator iter = provides.begin(); iter != provides.end(); iter++) {
+           UninstallProcessInfo info;
+
+           info.world = world();
+           info.context = context;
+           info.uninstalled_resolvable = _resolvable;
+           info.upgraded_resolvable = _upgraded_to;
+           info.require_items = &qil;
+           info.remove_only = _remove_only;
+           
+           world()->foreachRequiringResolvable (*iter, uninstall_process_cb, &info);
+       }
+    }
+
+ finished:
+// FIXME    rc_queue_item_free (item);
+
+    return true;
+}
+
+//---------------------------------------------------------------------------
+
+int
+QueueItemUninstall::cmp (constQueueItemPtr item) const
+{
+    int cmp = this->compare (item);            // assures equal type
+    if (cmp != 0)
+       return cmp;
+
+    constQueueItemUninstallPtr uninstall = item;
+    return GVersion.compare (_resolvable, uninstall->_resolvable);
+}
+
+
+QueueItemPtr
+QueueItemUninstall::copy (void) const
+{
+    QueueItemUninstallPtr new_uninstall = new QueueItemUninstall (world(), _resolvable, _reason);
+    ((QueueItemPtr)new_uninstall)->copy((constQueueItemPtr)this);
+
+
+    new_uninstall->_resolvable                = _resolvable;
+    new_uninstall->_dep_leading_to_uninstall  = _dep_leading_to_uninstall;
+    new_uninstall->_upgraded_to               = _upgraded_to;
+
+    new_uninstall->_explicitly_requested      = _explicitly_requested;
+    new_uninstall->_remove_only               = _remove_only;
+    new_uninstall->_due_to_conflict           = _due_to_conflict;
+    new_uninstall->_due_to_obsolete           = _due_to_obsolete;
+    new_uninstall->_unlink                    = _unlink;
+
+    return new_uninstall;
+}
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/QueueItemUninstall.h b/zypp/solver/detail/QueueItemUninstall.h
new file mode 100644 (file)
index 0000000..9bd7356
--- /dev/null
@@ -0,0 +1,100 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* QueueItemUninstall.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _QueueItemUninstall_h
+#define _QueueItemUninstall_h
+
+#include <iosfwd>
+#include <list>
+#include <string.h>
+
+#include <zypp/solver/detail/QueueItemUninstallPtr.h>
+#include <zypp/solver/detail/Resolvable.h>
+#include <zypp/solver/detail/Dependency.h>
+#include <zypp/solver/detail/Channel.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+
+
+//////////////////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : QueueItemUninstall
+
+class QueueItemUninstall : public QueueItem {
+    REP_BODY(QueueItemUninstall);
+
+  private:
+    constResolvablePtr _resolvable;
+    const std::string _reason;
+    constDependencyPtr _dep_leading_to_uninstall;
+    constResolvablePtr _upgraded_to;
+
+    bool _explicitly_requested;
+    bool _remove_only;
+    bool _due_to_conflict;
+    bool _due_to_obsolete;
+    bool _unlink;
+
+  public:
+
+    QueueItemUninstall (WorldPtr world, constResolvablePtr resolvable, const std::string & reason);
+    virtual ~QueueItemUninstall();
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const QueueItemUninstall & item);
+
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+
+    friend std::ostream& operator<<(std::ostream&, const QueueItemUninstall & item);
+
+    std::string asString (void ) const;
+
+    // ---------------------------------- accessors
+
+    void setDependency (constDependencyPtr dep) { _dep_leading_to_uninstall = dep; }
+    void setExplicitlyRequested (void) { _explicitly_requested = true; }
+    void setRemoveOnly (void) { _remove_only = true; }
+    void setUpgradedTo (constResolvablePtr resolvable) { _upgraded_to = resolvable; }
+    void setDueToConflict (void) { _due_to_conflict = true; }
+    void setDueToObsolete (void) { _due_to_obsolete = true; }
+    void setUnlink (void);
+
+    // ---------------------------------- methods
+
+    virtual bool process (ResolverContextPtr context, QueueItemList & qil);
+    virtual QueueItemPtr copy (void) const;
+    virtual int cmp (constQueueItemPtr item) const;
+    virtual bool isRedundant (ResolverContextPtr context) const { return false; }
+    virtual bool isSatisfied (ResolverContextPtr context) const { return false; }
+
+};
+
+    
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _QueueItemUninstall_h
diff --git a/zypp/solver/detail/QueueItemUninstallPtr.h b/zypp/solver/detail/QueueItemUninstallPtr.h
new file mode 100644 (file)
index 0000000..fb75c4b
--- /dev/null
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* QueueItemUninstallPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _QueueItemUninstallPtr_h
+#define _QueueItemUninstallPtr_h
+
+#include <y2util/RepDef.h>
+#include <zypp/solver/detail/QueueItem.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : QueueItemUninstallPtr
+//     CLASS NAME : constQueueItemUninstallPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_DERIVED_POINTER(QueueItemUninstall,QueueItem);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _QueueItemUninstallPtr_h
diff --git a/zypp/solver/detail/Resolvable.cc b/zypp/solver/detail/Resolvable.cc
new file mode 100644 (file)
index 0000000..dc4969e
--- /dev/null
@@ -0,0 +1,159 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Resolvable.cc
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * Definition of 'resolvable'
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <y2util/stringutil.h>
+
+#include <zypp/solver/detail/Resolvable.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+
+IMPL_DERIVED_POINTER(Resolvable,Spec);
+
+//---------------------------------------------------------------------------
+
+string
+Resolvable::asString ( bool full ) const
+{
+    return toString (*this, full);
+}
+
+
+string
+Resolvable::toString ( const Resolvable & resolvable, bool full )
+{
+    string res;
+
+    res += Spec::toString(resolvable);
+    if (!resolvable.channel()->system()) {
+       res += "[";
+       res += (resolvable.channel() == NULL) ? "(channel?)" : resolvable.channel()->name();
+       res += "]";
+    }
+    if (!full) return res;
+
+    if (resolvable.isInstalled()) res += "<installed>";
+    if (resolvable.local()) res += "<local>";
+
+    res += "FileSize ";
+    res += stringutil::numstring (resolvable.fileSize());
+    res += ", InstalledSize ";
+    res += stringutil::numstring (resolvable.installedSize());
+
+    if (!resolvable.requires().empty()) {
+       res += ", Requires: ";
+       res += Dependency::toString(resolvable.requires());
+    }
+
+    if (!resolvable.provides().empty()) {
+       res += ", Provides: ";
+       res += Dependency::toString(resolvable.provides());
+    }
+    if (!resolvable.conflicts().empty()) {
+       res += ", Conflicts: ";
+       res += Dependency::toString(resolvable.conflicts());
+    }
+    if (!resolvable.obsoletes().empty()) {
+       res += ", Obsoletes: ";
+       res += Dependency::toString(resolvable.obsoletes());
+    }
+
+    if (!resolvable.suggests().empty()) {
+       res += ", Suggests: ";
+       res += Dependency::toString(resolvable.suggests());
+    }
+    if (!resolvable.recommends().empty()) {
+       res += ", Recommends: ";
+       res += Dependency::toString(resolvable.recommends());
+    }
+    if (!resolvable.freshens().empty()) {
+       res += ", Freshens: ";
+       res += Dependency::toString(resolvable.freshens());
+    }
+    return res;
+}
+
+
+string
+Resolvable::toString ( const CResolvableList & rl, bool full )
+{
+    string res("[");
+    for (CResolvableList::const_iterator iter = rl.begin(); iter != rl.end(); iter++) {
+       if (iter != rl.begin()) res += ", ";
+       res += (*iter)->asString(full);
+    }
+    return res + "]";
+}
+
+
+ostream &
+Resolvable::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const Resolvable& edition)
+{
+    return os << edition.asString();
+}
+
+//---------------------------------------------------------------------------
+
+Resolvable::Resolvable (const Kind & kind, const string & name, int epoch, const string & version, const string & release, const Arch * arch)
+    :Spec (kind, name, epoch, version, release, arch)
+    , _channel (false)
+    , _installed (false)
+    , _local (false)
+    , _locked (false)
+    , _file_size (0)
+    , _installed_size (0)
+
+{
+}
+
+
+Resolvable::~Resolvable()
+{
+}
+
+//---------------------------------------------------------------------------
+
+bool
+Resolvable::isInstalled () const
+{
+    if (_channel != NULL
+       && _channel->system()) {
+       return true;
+    }
+    return false;
+}
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
diff --git a/zypp/solver/detail/Resolvable.h b/zypp/solver/detail/Resolvable.h
new file mode 100644 (file)
index 0000000..ae5af7d
--- /dev/null
@@ -0,0 +1,150 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Resolvable.h
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _Resolvable_h
+#define _Resolvable_h
+
+#include <list>
+#include <iosfwd>
+#include <string.h>
+#include <sys/types.h>
+
+#include <zypp/solver/detail/ResolvablePtr.h>
+#include <zypp/solver/detail/StoreWorldPtr.h>
+#include <zypp/solver/detail/Dependency.h>
+#include <zypp/solver/detail/Channel.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+typedef std::list<ResolvablePtr> ResolvableList;
+typedef std::list<constResolvablePtr> CResolvableList;
+
+typedef bool (*ResolvableFn) (ResolvablePtr r, void *data);
+typedef bool (*CResolvableFn) (constResolvablePtr r, void *data);
+typedef bool (*ResolvablePairFn) (constResolvablePtr r1, constResolvablePtr r2, void *data);
+typedef bool (*ResolvableAndSpecFn) (constResolvablePtr r, constSpecPtr spec, void *data);
+typedef bool (*ResolvableAndDepFn) (constResolvablePtr r, constDependencyPtr dep, void *data);
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : Resolvable
+/**
+ *
+ **/
+
+class Resolvable : public Spec {
+    REP_BODY(Resolvable);
+
+  private:
+    constChannelPtr _channel;
+
+    bool _installed;
+    bool _local;
+    bool _locked;
+
+    size_t _file_size;
+    size_t _installed_size;
+
+    CDependencyList _requires;
+    CDependencyList _provides;
+    CDependencyList _conflicts;
+    CDependencyList _obsoletes;
+
+    CDependencyList _suggests;
+    CDependencyList _recommends;
+    CDependencyList _freshens;
+
+  protected:
+
+    // ---------------------------------- accessors
+
+    void setLocal (bool local) { _local = local; }
+
+  public:
+
+    Resolvable(const Kind & kind, const std::string & name, int epoch = -1, const std::string & version = "", const std::string & release = "", const Arch * arch = Arch::Unknown);
+
+    Resolvable(const XmlNodePtr node);
+
+    virtual ~Resolvable();
+
+    // ---------------------------------- I/O
+
+    const XmlNodePtr asXmlNode (void) const;
+
+    static std::string toString ( const Resolvable & res, bool full = false );
+
+    static std::string toString ( const CResolvableList & reslist, bool full = false );
+
+    virtual std::ostream & dumpOn( std::ostream & str ) const;
+
+    friend std::ostream& operator<<( std::ostream & str, const Resolvable & str);
+
+    std::string asString ( bool full = false ) const;
+
+    // ---------------------------------- accessors
+
+    constChannelPtr channel() const { return _channel; }
+    void setChannel (constChannelPtr channel) { _channel = channel; }
+
+    bool locked () const { return _locked; }
+    void setLocked (bool locked) { _locked = locked; }
+
+    bool isInstalled() const;                          // does *not* reflect _installed
+    void setInstalled (bool installed) { _installed = installed; }
+
+    bool local() const { return _local; }
+
+    size_t fileSize() const { return _file_size; }
+    void setFileSize (size_t file_size) { _file_size = file_size; }
+
+    size_t installedSize() const { return _installed_size; }
+    void setInstalledSize (size_t installed_size) { _installed_size = installed_size; }
+
+    const CDependencyList & requires() const { return _requires; }
+    void setRequires (const CDependencyList & requires) { _requires = requires; }
+
+    const CDependencyList & provides() const { return _provides; }
+    void setProvides (const CDependencyList & provides) { _provides = provides; }
+
+    const CDependencyList & conflicts() const { return _conflicts; }
+    void setConflicts (const CDependencyList & conflicts) { _conflicts = conflicts; }
+
+    const CDependencyList & obsoletes() const { return _obsoletes; }
+    void setObsoletes (const CDependencyList & obsoletes) { _obsoletes = obsoletes; }
+
+    const CDependencyList & suggests() const { return _suggests; }
+    void setSuggests (const CDependencyList & suggests) { _suggests = suggests; }
+
+    const CDependencyList & recommends() const { return _recommends; }
+    void setRecommends (const CDependencyList & recommends) { _recommends = recommends; }
+
+    const CDependencyList & freshens() const { return _freshens; }
+    void setFreshens (const CDependencyList & freshens) { _freshens = freshens; }
+
+};
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _Resolvable_h
diff --git a/zypp/solver/detail/ResolvableAndDependency.cc b/zypp/solver/detail/ResolvableAndDependency.cc
new file mode 100644 (file)
index 0000000..26e2354
--- /dev/null
@@ -0,0 +1,103 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolvableAndDependency.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <y2util/stringutil.h>
+
+#include <zypp/solver/detail/ResolvableAndDependency.h>
+#include <zypp/solver/detail/debug.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_BASE_POINTER(ResolvableAndDependency);
+
+//---------------------------------------------------------------------------
+
+ResolvableAndDependency::ResolvableAndDependency (constResolvablePtr resolvable, constDependencyPtr dependency)
+    : _resolvable(resolvable)
+    , _dependency(dependency)
+{
+}
+
+//---------------------------------------------------------------------------
+
+string
+ResolvableAndDependency::asString (bool full) const
+{
+    return toString (*this, full);
+}
+
+
+string
+ResolvableAndDependency::toString ( const ResolvableAndDependency & r_and_d, bool full )
+{
+    string res ("{");
+    res += r_and_d._resolvable->asString(full);
+    res += ", ";
+    res += r_and_d._dependency->asString();
+    res += "}";
+    return res;
+}
+
+
+ostream &
+ResolvableAndDependency::dumpOn (ostream & str) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream &
+operator<< (ostream & os, const ResolvableAndDependency & r_and_d)
+{
+    return os << r_and_d.asString();
+}
+
+//---------------------------------------------------------------------------
+
+/* This function also checks channels in addition to just dep relations */
+/* FIXME: rc_resolvable_dep_verify_relation already checks the channel */
+
+bool
+ResolvableAndDependency::verifyRelation (constDependencyPtr dep) const
+{
+#if PHI
+    // don't check the channel, thereby honoring conflicts from installed resolvables to to-be-installed resolvables
+    return dep->verifyRelation (_dependency);
+#else
+    if (!dep->verifyRelation (_dependency)) {
+       return false;
+    }
+    if (getenv ("SPEW_DEP")) fprintf (stderr, "ResolvableAndDependency::verifyRelation _resolvable->channel() %s, dep->channel() %s\n", _resolvable->channel()->asString().c_str(), dep->channel()->asString().c_str());
+    return _resolvable->channel()->equals (dep->channel());
+#endif
+}
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/ResolvableAndDependency.h b/zypp/solver/detail/ResolvableAndDependency.h
new file mode 100644 (file)
index 0000000..b3097c4
--- /dev/null
@@ -0,0 +1,85 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolvableAndDependency.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ResolvableAndDependency_h
+#define _ResolvableAndDependency_h
+
+#include <iosfwd>
+#include <string>
+#include <list>
+#include <map>
+
+#include <zypp/solver/detail/ResolvableAndDependencyPtr.h>
+#include <zypp/solver/detail/Resolvable.h>
+#include <zypp/solver/detail/Dependency.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+typedef std::multimap<const std::string, constResolvablePtr> ResolvableTable;
+typedef std::multimap<const std::string, constResolvableAndDependencyPtr> ResolvableAndDependencyTable;
+
+#if PHI
+typedef std::list <constResolvableAndDependencyPtr> CResolvableAndDependencyList;
+#endif
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : ResolvableAndDependency
+
+class ResolvableAndDependency: public CountedRep {
+    REP_BODY(ResolvableAndDependency);
+
+  private:
+    constResolvablePtr _resolvable;
+    constDependencyPtr _dependency;
+
+  public:
+
+    ResolvableAndDependency (constResolvablePtr resolvable, constDependencyPtr dependency);
+    ~ResolvableAndDependency () {}
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const ResolvableAndDependency & r_and_d, bool full = false);
+
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+
+    friend std::ostream& operator<<(std::ostream&, const ResolvableAndDependency & r_and_d);
+
+    std::string asString (bool full = false) const;
+
+    // ---------------------------------- accessors
+
+    constResolvablePtr resolvable() const { return _resolvable; }
+    constDependencyPtr dependency() const { return _dependency; }
+
+    // ---------------------------------- methods
+
+    bool verifyRelation (constDependencyPtr dep) const;
+};
+    
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _ResolvableAndDependency_h
diff --git a/zypp/solver/detail/ResolvableAndDependencyPtr.h b/zypp/solver/detail/ResolvableAndDependencyPtr.h
new file mode 100644 (file)
index 0000000..8489583
--- /dev/null
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolvableAndDependencyPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ResolvableAndDependencyPtr_h
+#define _ResolvableAndDependencyPtr_h
+
+#include <y2util/RepDef.h>
+#include <zypp/solver/detail/WorldPtr.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : ResolvableAndDependencyPtr
+//     CLASS NAME : constResolvableAndDependencyPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_BASE_POINTER(ResolvableAndDependency);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _ResolvableAndDependencyPtr_h
diff --git a/zypp/solver/detail/ResolvablePtr.h b/zypp/solver/detail/ResolvablePtr.h
new file mode 100644 (file)
index 0000000..0def628
--- /dev/null
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolvablePtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ResolvablePtr_h
+#define _ResolvablePtr_h
+
+#include <y2util/RepDef.h>
+#include <zypp/solver/detail/SpecPtr.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+///////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : ResolvablePtr
+//     CLASS NAME : constResolvablePtr
+///////////////////////////////////////////////////////////////////
+DEFINE_DERIVED_POINTER(Resolvable,Spec);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _ResolvablePtr_h
diff --git a/zypp/solver/detail/Resolver.cc b/zypp/solver/detail/Resolver.cc
new file mode 100644 (file)
index 0000000..2646773
--- /dev/null
@@ -0,0 +1,407 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Resolver.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <zypp/solver/detail/Resolver.h>
+#include <zypp/solver/detail/ResolverContext.h>
+#include <zypp/solver/detail/ResolverQueue.h>
+#include <zypp/solver/detail/Resolvable.h>
+#include <zypp/solver/detail/Version.h>
+#include <zypp/solver/detail/World.h>
+#include <zypp/solver/detail/StoreWorld.h>
+#include <zypp/solver/detail/MultiWorld.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_BASE_POINTER(Resolver);
+
+//---------------------------------------------------------------------------
+
+string
+Resolver::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+Resolver::toString ( const Resolver & resolver )
+{
+    return "<resolver/>";
+}
+
+
+ostream &
+Resolver::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const Resolver & resolver)
+{
+    return os << resolver.asString();
+}
+
+//---------------------------------------------------------------------------
+
+Resolver::Resolver (WorldPtr world)
+    : _current_channel (NULL)
+    , _world (world)
+    , _timeout_seconds (0)
+    , _verifying (false)
+    , _valid_solution_count (0)
+    , _best_context (NULL)
+    , _timed_out (false)
+{
+}
+
+
+Resolver::~Resolver()
+{
+}
+
+//---------------------------------------------------------------------------
+
+WorldPtr
+Resolver::world (void) const
+{
+    if (_world == NULL)
+       return World::globalWorld();
+
+    return _world;
+}
+
+//---------------------------------------------------------------------------
+
+void
+Resolver::addSubscribedChannel (constChannelPtr channel)
+{
+    fprintf (stderr, "Resolver::addSubscribedChannel() not implemented\n");
+}
+
+void
+Resolver::addResolvableToInstall (constResolvablePtr resolvable)
+{
+    _resolvables_to_install.push_front (resolvable);
+}
+
+void
+Resolver::addResolvablesToInstallFromList (CResolvableList & rl)
+{
+    for (CResolvableList::const_iterator iter = rl.begin(); iter != rl.end(); iter++) {
+       addResolvableToInstall (*iter);
+    }
+}
+
+void
+Resolver::addResolvableToRemove (constResolvablePtr resolvable)
+{
+    _resolvables_to_remove.push_front (resolvable);
+}
+
+void
+Resolver::addResolvablesToRemoveFromList (CResolvableList & rl)
+{
+    for (CResolvableList::const_iterator iter = rl.begin(); iter != rl.end(); iter++) {
+       addResolvableToRemove (*iter);
+    }
+}
+
+void
+Resolver::addResolvableToVerify (constResolvablePtr resolvable)
+{
+    _resolvables_to_verify.push_front (resolvable);
+    _resolvables_to_verify.sort ();                    //(GCompareFunc) rc_resolvable_compare_name);
+}
+
+void
+Resolver::addExtraDependency (constDependencyPtr dependency)
+{
+    _extra_deps.push_front (dependency);
+}
+
+void
+Resolver::addExtraConflict (constDependencyPtr dependency)
+{
+    _extra_conflicts.push_front (dependency);
+}
+
+
+//---------------------------------------------------------------------------
+
+static bool
+verify_system_cb (constResolvablePtr resolvable, void *data)
+{
+    Resolver *resolver  = (Resolver *)data;
+
+    resolver->addResolvableToVerify (resolvable);
+
+    return true;
+}
+
+
+void
+Resolver::verifySystem (void)
+{
+    if (getenv ("RC_SPEW")) fprintf (stderr, "Resolver::verifySystem()\n");
+    world()->foreachResolvable (new Channel(CHANNEL_TYPE_SYSTEM), verify_system_cb, this);
+
+    _verifying = true;
+
+#if 0          // commented out in libredcarpet also
+    /*
+      Walk across the (sorted-by-name) list of installed packages and look for
+      packages with the same name.  If they exist, construct a branch item
+      containing multiple group items.  Each group item corresponds to removing
+      all but one of the duplicates.
+    */
+
+    for (CResolvableList::const_iterator i0 = _resolvables_to_verify.begin(); i0 != _resolvables_to_verify.end();) {
+       CResolvableList::const_iterator i1 = i0;
+       i1++;
+       CResolvableList::const_iterator i2 = i1;
+       for (; i1 != _resolvables_to_verify.end()&& ! (*i0)->compareName (*i1); i1++) {
+           //empty
+       }
+
+       if (i1 != i2) {
+           QueueItemBranchPtr branch_item;
+
+           branch_item = new QueueItemBranch(world());
+
+           for (CResolvableList::const_iterator i = i0; i != i1; i++) {
+
+               QueueItemGroupPtr grp_item = new QueueItemGroup(world());
+
+               for (CResolvableList::const_iterator j = i0; j != i1; j++) {
+                   constPackagePtr dup_pkg = *j;
+                   QueueItemUninstallPtr uninstall_item;
+
+                   if (i != j) {
+                       uninstall_item = new QueueItemUninstall (world(), dup_pkg, "duplicate install");
+                       grp_item->addItem (uninstall_item);
+                   }
+
+               }
+
+               branch_item->adddIitem (grp_item);
+           }
+
+           _initial_items.push_back (branch_item);
+       }
+
+       i0 = i1;
+    }
+#endif
+
+    /* OK, that was fun.  Now just resolve the dependencies. */
+    resolveDependencies ();
+
+    return;
+}
+
+
+//---------------------------------------------------------------------------
+
+
+void
+Resolver::resolveDependencies (void)
+{
+
+    time_t t_start, t_now;
+    bool extremely_noisy = getenv ("RC_SPEW") != NULL;
+    bool have_local_resolvables = false;
+
+    if (extremely_noisy) fprintf (stderr, "Resolver::resolveDependencies()\n");
+
+    /* Walk through are list of to-be-installed packages and see if any of them are local. */
+
+    for (CResolvableList::const_iterator iter = _resolvables_to_install.begin(); iter != _resolvables_to_install.end(); iter++) {
+       if ((*iter)->local()) {
+           have_local_resolvables = true;
+           break;
+       }
+    }
+
+    WorldPtr the_world = world();
+    StoreWorldPtr local_world = NULL;
+    MultiWorldPtr local_multiworld = NULL;
+
+    ChannelPtr local_channel = NULL;
+
+    if (have_local_resolvables) {
+       local_multiworld = new MultiWorld();
+       local_world = new StoreWorld();
+
+       local_channel = new Channel ("", "Local Resolvables", "@local", "");
+
+       local_world->addChannel (local_channel);
+
+       local_multiworld->addSubworld (local_world);
+       local_multiworld->addSubworld (the_world);
+
+       the_world = local_multiworld;
+    }
+
+    // create initial_queue
+
+    ResolverQueuePtr initial_queue = new ResolverQueue();
+
+    /* Stick the current/subscribed channel and world info into the context */
+
+    initial_queue->context()->setWorld(the_world);
+
+    initial_queue->context()->setCurrentChannel (_current_channel);
+
+    /* If this is a verify, we do a "soft resolution" */
+
+    initial_queue->context()->setVerifying (_verifying);
+
+    /* Add extra items. */
+
+    for (QueueItemList::const_iterator iter = _initial_items.begin(); iter != _initial_items.end(); iter++) {
+       initial_queue->addItem (*iter);
+    }
+    _initial_items.clear();
+
+    for (CResolvableList::const_iterator iter = _resolvables_to_install.begin(); iter != _resolvables_to_install.end(); iter++) {
+       constResolvablePtr r = *iter;
+
+       /* Add local packages to our dummy channel. */
+       if (r->local()) {
+           assert (local_channel != NULL);
+           ResolvablePtr r1 = ResolvablePtr::cast_away_const (r);
+           r1->setChannel (local_channel);
+           local_world->addResolvable (r);
+       }
+
+       initial_queue->addResolvableToInstall (r);
+    }
+
+    for (CResolvableList::const_iterator iter = _resolvables_to_remove.begin(); iter != _resolvables_to_remove.end(); iter++) {
+       initial_queue->addResolvableToRemove (*iter, true /* remove-only mode */);
+    }
+
+    for (CResolvableList::const_iterator iter = _resolvables_to_verify.begin(); iter != _resolvables_to_verify.end(); iter++) {
+       initial_queue->addResolvableToVerify (*iter);
+    }
+
+    for (CDependencyList::const_iterator iter = _extra_deps.begin(); iter != _extra_deps.end(); iter++) {
+       initial_queue->addExtraDependency (*iter);
+    }
+
+    for (CDependencyList::const_iterator iter = _extra_conflicts.begin(); iter != _extra_conflicts.end(); iter++) {
+       initial_queue->addExtraConflict (*iter);
+    }
+
+    if (extremely_noisy) fprintf (stderr, "Initial Queue: [%s]\n", initial_queue->asString().c_str());
+
+    _pending_queues.push_front (initial_queue);
+
+    time (&t_start);
+
+    while (!_pending_queues.empty()) {
+
+       if (extremely_noisy) {
+           printf ("Pend %ld / Cmpl %ld / Prun %ld / Defr %ld / Invl %ld\n\n", (long) _pending_queues.size(), (long) _complete_queues.size(), (long) _pruned_queues.size(), (long) _deferred_queues.size(), (long) _invalid_queues.size());
+       }
+
+       if (_timeout_seconds > 0) {
+           time (&t_now);
+           if (difftime (t_now, t_start) > _timeout_seconds) {
+               _timed_out = true;
+               break;
+           }
+       }
+
+       ResolverQueuePtr queue = _pending_queues.front();
+       _pending_queues.pop_front();
+       ResolverContextPtr context = queue->context();
+
+       queue->process();
+
+       if (queue->isInvalid ()) {
+           if (extremely_noisy) printf ("Invalid Queue\n");
+           _invalid_queues.push_front (queue);
+
+       } else if (queue->isEmpty ()) {
+           if (extremely_noisy) printf ("Empty Queue\n");
+
+           _complete_queues.push_front (queue);
+
+           ++_valid_solution_count;
+
+           /* Compare this solution to our previous favorite.  In the case of a tie,
+              the first solution wins --- yeah, I know this is lame, but it shouldn't
+              be an issue too much of the time. */
+
+           if (_best_context == NULL
+               || _best_context->compare (context) < 0) {
+
+               _best_context = context;
+           }
+
+       } else if (_best_context != NULL
+                  && _best_context->partialCompare (context) > 0) {
+
+           /* If we aren't currently as good as our previous best complete solution,
+              this solution gets pruned. */
+
+           if (extremely_noisy) printf ("PRUNED!\n");
+
+           _pruned_queues.push_front(queue);
+
+       } else {
+
+           /* If our queue is isn't empty and isn't invalid, that can only mean
+              one thing: we are down to nothing but branches. */
+
+           queue->splitFirstBranch (_pending_queues, _deferred_queues);
+       }
+
+       /* If we have run out of pending queues w/o finding any solutions,
+          and if we have deferred queues, make the first deferred queue
+          pending. */
+
+       if (_pending_queues.empty()
+           && _complete_queues.empty()
+           && !_deferred_queues.empty()) {
+           _pending_queues.push_front (_deferred_queues.front());
+       }
+    }
+
+    if (extremely_noisy) {
+       printf ("Pend %ld / Cmpl %ld / Prun %ld / Defr %ld / Invl %ld\n--------\n", (long) _pending_queues.size(), (long) _complete_queues.size(), (long) _pruned_queues.size(), (long) _deferred_queues.size(), (long) _invalid_queues.size());
+    }
+
+    return;
+}
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/Resolver.h b/zypp/solver/detail/Resolver.h
new file mode 100644 (file)
index 0000000..50aa6ff
--- /dev/null
@@ -0,0 +1,132 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Resolver.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _Resolver_h
+#define _Resolver_h
+
+#include <iosfwd>
+#include <list>
+#include <string.h>
+
+#include <zypp/solver/detail/ResolverPtr.h>
+#include <zypp/solver/detail/ResolverQueue.h>
+#include <zypp/solver/detail/Resolvable.h>
+#include <zypp/solver/detail/Dependency.h>
+#include <zypp/solver/detail/Channel.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+
+
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : Resolver
+
+class Resolver : public CountedRep {
+    REP_BODY(Resolver);
+
+  private:
+    constChannelPtr _current_channel;
+    
+    WorldPtr _world;
+
+    int _timeout_seconds;
+    bool _verifying;
+
+    QueueItemList _initial_items;
+    CResolvableList _resolvables_to_install;
+    CResolvableList _resolvables_to_remove;
+    CResolvableList _resolvables_to_verify;
+
+    CDependencyList _extra_deps;
+    CDependencyList _extra_conflicts;
+
+    ResolverQueueList _pending_queues;
+    ResolverQueueList _pruned_queues;
+    ResolverQueueList _complete_queues;
+    ResolverQueueList _deferred_queues;
+    ResolverQueueList _invalid_queues;
+    
+    int _valid_solution_count;
+
+    ResolverContextPtr _best_context;
+    bool _timed_out;
+
+  public:
+
+    Resolver (WorldPtr world = NULL);
+    virtual ~Resolver();
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const Resolver & resolver);
+
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+
+    friend std::ostream& operator<<(std::ostream&, const Resolver & resolver);
+
+    std::string asString (void ) const;
+
+    // ---------------------------------- accessors
+
+    QueueItemList initialItems () const { return _initial_items; }
+
+    ResolverQueueList pendingQueues () const { return _pending_queues; }
+    ResolverQueueList prunedQueues () const { return _pruned_queues; }
+    ResolverQueueList completeQueues () const { return _complete_queues; }
+    ResolverQueueList deferredQueues () const { return _deferred_queues; }
+    ResolverQueueList invalidQueues () const { return _invalid_queues; }
+
+    ResolverContextPtr bestContext (void) const { return _best_context; }
+
+    // ---------------------------------- methods
+
+    void setTimeout (int seconds) { _timeout_seconds = seconds; }
+
+    WorldPtr world (void) const;                       // returns global world if _world == NULL
+    void setWorld (WorldPtr world) { _world = world; }
+
+    void setCurrentChannel (constChannelPtr channel) { _current_channel = channel; }
+    void addSubscribedChannel (constChannelPtr channel);
+
+    void addResolvableToInstall (constResolvablePtr resolvable);
+    void addResolvablesToInstallFromList (CResolvableList & rl);
+
+    void addResolvableToRemove (constResolvablePtr resolvable);
+    void addResolvablesToRemoveFromList (CResolvableList & rl);
+
+    void addResolvableToVerify (constResolvablePtr resolvable);
+
+    void addExtraDependency (constDependencyPtr dependency);
+    void addExtraConflict (constDependencyPtr dependency);
+
+    void verifySystem (void);
+    void resolveDependencies (void);
+
+};
+    
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _Resolver_h
diff --git a/zypp/solver/detail/ResolverContext.cc b/zypp/solver/detail/ResolverContext.cc
new file mode 100644 (file)
index 0000000..93c600e
--- /dev/null
@@ -0,0 +1,1134 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverContext.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+
+#include <values.h>
+#include <y2util/stringutil.h>
+
+#include <zypp/solver/detail/ResolverContext.h>
+#include <zypp/solver/detail/ResolverInfoMisc.h>
+#include <zypp/solver/detail/World.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_BASE_POINTER(ResolverContext);
+
+//---------------------------------------------------------------------------
+
+string
+ResolverContext::toString (const ResolvableStatus & status)
+{
+    string ret;
+    switch (status) {
+    case RESOLVABLE_STATUS_UNKNOWN:                            ret = "unknown"; break;
+    case RESOLVABLE_STATUS_INSTALLED:                          ret = "installed"; break;
+    case RESOLVABLE_STATUS_UNINSTALLED:                                ret = "uninstalled"; break;
+    case RESOLVABLE_STATUS_TO_BE_INSTALLED:                    ret = "to be installed"; break;
+    case RESOLVABLE_STATUS_TO_BE_INSTALLED_SOFT:               ret = "to be installed (soft)"; break;
+    case RESOLVABLE_STATUS_TO_BE_UNINSTALLED:                  ret = "to be uninstalled"; break;
+    case RESOLVABLE_STATUS_TO_BE_UNINSTALLED_DUE_TO_OBSOLETE:  ret = "to be uninstalled due to obsolete"; break;
+    case RESOLVABLE_STATUS_TO_BE_UNINSTALLED_DUE_TO_UNLINK:    ret = "to be uninstalled due to unlink"; break;
+    default:                                                   ret = "Huh ?"; break;
+    }
+
+    return ret;
+}
+
+//---------------------------------------------------------------------------
+
+string
+ResolverContext::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+ResolverContext::toString ( const ResolverContext & context )
+{
+    string ret;
+    if (context._parent != NULL) {
+       ret += "Parent: [";
+       ret += stringutil::form("<@%p> ", (const void *)(context._parent));
+       ret += context._parent->asString();
+       ret += "],\n\t";
+    }
+    ret += stringutil::form ("Download Size: %lld",  context._download_size);
+    ret += stringutil::form (", Install Size: %lld", context._install_size);
+    ret += stringutil::form (", Total Priority: %d", context._total_priority);
+    ret += stringutil::form (", Min Priority: %d", context._min_priority);
+    ret += stringutil::form (", Max Priority: %d", context._max_priority);
+    ret += stringutil::form (", Other Penalties: %d", context._other_penalties);
+    if (context._current_channel != 0) {
+       ret += ", Current Channel";
+       ret += context._current_channel->asString();
+    }
+    if (context._verifying) ret += ", Verifying";
+    if (context._invalid) ret += ", Invalid";
+
+    return ret;
+}
+
+
+ostream &
+ResolverContext::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const ResolverContext & ResolverContext)
+{
+    return os << ResolverContext.asString();
+}
+
+//---------------------------------------------------------------------------
+
+ResolverContext::ResolverContext (ResolverContextPtr parent)
+    : _parent (parent)
+    , _refs (0)
+    , _world (NULL)
+    , _last_checked_resolvable (NULL)
+    , _last_checked_status (RESOLVABLE_STATUS_UNKNOWN)
+    , _download_size (0)
+    , _install_size (0)
+    , _total_priority (0)
+    , _min_priority (0)
+    , _max_priority (0)
+    , _other_penalties (0)
+    , _current_channel (NULL)
+    , _verifying (false)
+    , _invalid (false)
+{
+    if (parent != NULL) {
+       _world           = parent->_world;
+       _download_size   = parent->_download_size;
+       _install_size    = parent->_install_size;
+       _total_priority  = parent->_total_priority;
+       _max_priority    = parent->_max_priority;
+       _min_priority    = parent->_min_priority;
+       _other_penalties = parent->_other_penalties;
+       _verifying       = parent->_verifying;
+    } else {
+       _min_priority = MAXINT;
+    } 
+}
+
+
+ResolverContext::~ResolverContext()
+{
+}
+
+//---------------------------------------------------------------------------
+
+WorldPtr
+ResolverContext::world (void) const
+{
+    if (_world == NULL) {
+       return World::globalWorld();
+    }
+    return _world;
+}
+
+
+void
+ResolverContext::setStatus (constResolvablePtr resolvable, ResolvableStatus status)
+{
+    if (_invalid) return;
+
+    ResolvableStatus old_status = getStatus (resolvable);
+
+    if (status != old_status) {
+       _status[resolvable] = status;
+    }
+
+    // Update our cache if we changed the status of the last checked resolvable.
+
+    if (_last_checked_resolvable == resolvable)
+       _last_checked_status = status;
+}
+
+
+ResolvableStatus
+ResolverContext::getStatus (constResolvablePtr resolvable)
+{
+    ResolvableStatus status = RESOLVABLE_STATUS_UNKNOWN;
+
+    // We often end up getting the status of the same resolvable several times
+    // in a row.  By caching the status of the last checked resolvable, we can
+    // in practice eliminate the need for any hash table lookups in about
+    // 50% of our calls to get_status.
+
+    if (resolvable == _last_checked_resolvable)
+    {
+       return _last_checked_status;
+    }
+
+    ResolverContextPtr context = this;
+
+    while (status == RESOLVABLE_STATUS_UNKNOWN
+          && context != NULL) {
+       StatusTable::const_iterator pos = context->_status.find (resolvable);
+       if (pos != context->_status.end()) {
+           status = (*pos).second;
+       }
+       context = context->_parent;
+    }
+
+    if (status == RESOLVABLE_STATUS_UNKNOWN) {
+       status = resolvable->isInstalled() ? RESOLVABLE_STATUS_INSTALLED : RESOLVABLE_STATUS_UNINSTALLED;
+    }
+
+    _last_checked_resolvable = resolvable;
+    _last_checked_status = status;
+
+    return status;
+}
+
+
+bool
+ResolverContext::installResolvable (constResolvablePtr resolvable, bool is_soft, int other_penalty)
+{
+    ResolvableStatus status, new_status;
+    int priority;
+    std::string msg;
+
+    status = getStatus (resolvable);
+    if (getenv ("RC_SPEW")) fprintf (stderr, "ResolverContext[%p]::installResolvable(<%s>%s)\n", this, ResolverContext::toString(status).c_str(), resolvable->asString().c_str());
+
+    if (resolvable_status_is_to_be_uninstalled (status)
+       && status != RESOLVABLE_STATUS_TO_BE_UNINSTALLED_DUE_TO_UNLINK) {
+       msg = string ("Can't install ") + ((constSpecPtr)resolvable)->asString() + " since it is already marked as needing to be uninstalled";
+
+       addErrorString (resolvable, msg);
+       return false;
+    }
+
+    if (resolvable_status_is_to_be_installed (status)) {
+       return true;
+    }
+
+    if (isParallelInstall (resolvable)) {
+       msg = string ("Can't install ") + ((constSpecPtr)resolvable)->asString() + ", since a resolvable of the same name is already marked as needing to be installed";
+       addErrorString (resolvable, msg);
+       return false;
+    }
+
+    if (is_soft)
+       new_status = RESOLVABLE_STATUS_TO_BE_INSTALLED_SOFT;
+    else if (status == RESOLVABLE_STATUS_TO_BE_UNINSTALLED_DUE_TO_UNLINK)
+       new_status = RESOLVABLE_STATUS_INSTALLED;
+    else
+       new_status = RESOLVABLE_STATUS_TO_BE_INSTALLED;
+
+    setStatus (resolvable, new_status);
+
+    if (status == RESOLVABLE_STATUS_UNINSTALLED) {
+       /* FIXME: Incomplete */
+       _download_size += resolvable->fileSize();
+       _install_size += resolvable->installedSize();
+
+       if (resolvable->local())
+           priority = 0;
+       else {
+           priority = getChannelPriority (resolvable->channel ());
+       }
+
+       if (priority < _min_priority) _min_priority = priority;
+       if (priority > _max_priority) _max_priority = priority;
+
+       _other_penalties += other_penalty;
+
+    }
+       
+    return true;
+}
+
+
+bool
+ResolverContext::upgradeResolvable (constResolvablePtr resolvable, constResolvablePtr old_resolvable, bool is_soft, int other_penalty)
+{
+    ResolvableStatus status;
+    int priority;
+
+    if (getenv ("RC_SPEW")) fprintf (stderr, "ResolverContext[%p]::upgradeResolvable(%s upgrades %s)\n", this, resolvable->asString().c_str(), old_resolvable->asString().c_str());
+
+    status = getStatus (resolvable);
+
+    if (resolvable_status_is_to_be_uninstalled (status))
+       return false;
+
+    if (resolvable_status_is_to_be_installed (status))
+       return true;
+
+    setStatus (resolvable, is_soft ? RESOLVABLE_STATUS_TO_BE_INSTALLED_SOFT : RESOLVABLE_STATUS_TO_BE_INSTALLED);
+
+    if (status == RESOLVABLE_STATUS_UNINSTALLED) {
+      
+       _download_size += resolvable->fileSize();
+
+       // FIXME: Incomplete
+       // We should change installed_size to reflect the difference in
+       //   installed size between the old and new versions.
+
+       if (resolvable->local())
+           priority = 0;
+       else {
+           priority = getChannelPriority (resolvable->channel());
+       }
+
+       if (priority < _min_priority) _min_priority = priority;
+       if (priority > _max_priority) _max_priority = priority;
+
+       _other_penalties += other_penalty;
+    }
+
+    return true;
+}
+
+
+bool
+ResolverContext::uninstallResolvable (constResolvablePtr resolvable, bool part_of_upgrade, bool due_to_obsolete, bool due_to_unlink)
+{
+    ResolvableStatus status, new_status;
+    std::string msg;
+
+    if (getenv ("RC_SPEW")) fprintf (stderr, "ResolverContext[%p]::uninstallResolvable(%s %s %s %s)\n", this, resolvable->asString().c_str(), part_of_upgrade ? "part_of_upgrade" : "", due_to_obsolete ? "due_to_obsolete": "", due_to_unlink ? "due_to_unlink" : "");
+
+    assert (! (due_to_obsolete && due_to_unlink));
+
+    status = getStatus (resolvable);
+
+    if (status == RESOLVABLE_STATUS_TO_BE_INSTALLED) {
+       msg = ((constSpecPtr)resolvable)->asString() + " is scheduled to be installed, but this is not possible because of dependency problems.";
+       addErrorString (resolvable, msg);
+       return false;
+    }
+
+    if (resolvable_status_is_to_be_uninstalled (status)
+       && status != RESOLVABLE_STATUS_TO_BE_UNINSTALLED_DUE_TO_UNLINK) {
+       return true;
+    }
+    
+    if (status == RESOLVABLE_STATUS_UNINSTALLED
+       || status == RESOLVABLE_STATUS_TO_BE_UNINSTALLED_DUE_TO_UNLINK) {
+       msg = string ("Marking resolvable ") + ((constSpecPtr)resolvable)->asString() + " as uninstallable";
+       addInfoString (resolvable, RESOLVER_INFO_PRIORITY_VERBOSE, msg);
+    }
+
+
+    if (due_to_obsolete)       new_status = RESOLVABLE_STATUS_TO_BE_UNINSTALLED_DUE_TO_OBSOLETE;
+    else if (due_to_unlink)    new_status = RESOLVABLE_STATUS_TO_BE_UNINSTALLED_DUE_TO_UNLINK;
+    else                       new_status = RESOLVABLE_STATUS_TO_BE_UNINSTALLED;
+
+    setStatus (resolvable, new_status);
+    
+    if (status == RESOLVABLE_STATUS_INSTALLED) {
+       /* FIXME: incomplete */
+    }
+
+    return true;
+}
+
+
+bool
+ResolverContext::resolvableIsPresent (constResolvablePtr resolvable)
+{
+    ResolvableStatus status;
+
+    status = getStatus (resolvable);
+//fprintf (stderr, "ResolverContext::resolvableIsPresent(<%s>%s)\n", ResolverContext::toString(status).c_str(), resolvable->asString().c_str());
+    if (status == RESOLVABLE_STATUS_UNKNOWN)
+       return false;
+
+    return (status == RESOLVABLE_STATUS_INSTALLED) || resolvable_status_is_to_be_installed (status);
+}
+
+
+bool
+ResolverContext::resolvableIsAbsent (constResolvablePtr resolvable)
+{
+    ResolvableStatus status;
+
+    status = getStatus (resolvable);
+    if (status == RESOLVABLE_STATUS_UNKNOWN)
+       return false;
+
+    return status == RESOLVABLE_STATUS_UNINSTALLED || resolvable_status_is_to_be_uninstalled (status);
+}
+
+
+//---------------------------------------------------------------------------
+// marked
+
+void
+ResolverContext::foreachMarkedResolvable (MarkedResolvableFn fn, void *data) const
+{
+    constResolverContextPtr context = this;
+    while (context) {
+       for (StatusTable::const_iterator iter = context->_status.begin(); iter != context->_status.end(); iter++) {
+           fn (iter->first, iter->second, data);
+       }
+       context = context->_parent;
+    }
+}
+
+
+//---------------------------------------------------------------------------
+// collect
+
+static void
+marked_resolvable_collector (constResolvablePtr resolvable, ResolvableStatus status, void *data)
+{
+    CResolvableList *rl = (CResolvableList *)data;
+    rl->push_back (resolvable);
+}
+
+
+CResolvableList
+ResolverContext::getMarkedResolvables (void) const
+{
+    CResolvableList rl;
+
+    foreachMarkedResolvable (marked_resolvable_collector, &rl);
+
+    return rl;
+}
+
+//---------------------------------------------------------------------------
+// install
+
+typedef struct {
+    WorldPtr world;
+    MarkedResolvableFn fn;
+    CResolvableList *rl;
+    int count;
+} InstallInfo;
+
+static void
+install_pkg_cb (constResolvablePtr resolvable, ResolvableStatus status, void *data)
+{
+    InstallInfo *info = (InstallInfo *)data;
+    if (resolvable_status_is_to_be_installed (status)
+       && ! resolvable->isInstalled ()
+       && info->world->findInstalledResolvable (resolvable) == NULL) {
+
+       if (info->fn) info->fn (resolvable, status, info->rl);
+       ++info->count;
+    }
+}
+
+
+int
+ResolverContext::foreachInstall (MarkedResolvableFn fn, void *data) const
+{
+    CResolvableList *rl = (CResolvableList *)data;
+    InstallInfo info = { world(), fn, rl, 0 };
+
+    foreachMarkedResolvable (install_pkg_cb, (void *)&info);
+
+    return info.count;
+}
+
+
+static void
+context_resolvable_collector (constResolvablePtr resolvable, ResolvableStatus status, void *data)
+{
+    CResolvableList *rl = (CResolvableList *)data;
+    if (resolvable_status_is_to_be_installed (status)
+       || (resolvable_status_is_to_be_uninstalled (status) && resolvable->isInstalled ())) {
+       rl->push_front (resolvable);
+    } 
+}
+
+
+CResolvableList
+ResolverContext::getInstalls (void) const
+{
+    CResolvableList rl;
+
+    foreachInstall (context_resolvable_collector, (void *)&rl);
+
+    return rl;
+}
+
+
+//---------------------------------------------------------------------------
+// upgrade
+
+typedef struct {
+    WorldPtr world;
+    MarkedResolvablePairFn fn;
+    void *data;
+    ResolverContextPtr context;
+    int count;
+} UpgradeInfo;
+
+static void
+upgrade_pkg_cb (constResolvablePtr resolvable, ResolvableStatus status, void *data)
+{
+    UpgradeInfo *info = (UpgradeInfo *)data;
+
+    constResolvablePtr to_be_upgraded;
+    ResolvableStatus tbu_status;
+
+    if (resolvable_status_is_to_be_installed (status)
+       && ! resolvable->isInstalled ()) {
+       
+       to_be_upgraded = info->world->findInstalledResolvable (resolvable);
+       if (to_be_upgraded) {
+           tbu_status = info->context->getStatus (to_be_upgraded);
+           if (info->fn) {
+               info->fn (resolvable, status, to_be_upgraded, tbu_status, info->data);
+           }
+           ++info->count;
+       }
+    }
+}
+
+
+int
+ResolverContext::foreachUpgrade (MarkedResolvablePairFn fn, void *data)
+{
+    UpgradeInfo info = { world(), fn, data, this, 0 };
+
+    foreachMarkedResolvable (upgrade_pkg_cb, (void *)&info);
+
+    return info.count;
+}
+
+
+static void
+pair_resolvable_collector (constResolvablePtr resolvable, ResolvableStatus status, constResolvablePtr old, ResolvableStatus old_status, void *data)
+{
+    CResolvableList *rl = (CResolvableList *)data;
+    rl->push_back (resolvable);
+}
+
+
+CResolvableList
+ResolverContext::getUpgrades (void)
+{
+    CResolvableList rl;
+
+    foreachUpgrade (pair_resolvable_collector, (void *)&rl);
+
+    return rl;
+}
+
+
+//---------------------------------------------------------------------------
+// uninstall
+
+typedef std::map<std::string,constResolvablePtr> UpgradeTable;
+
+typedef struct {
+    MarkedResolvableFn fn;
+    CResolvableList *rl;
+    UpgradeTable upgrade_hash;
+    int count;
+} UninstallInfo;
+
+static void
+uninstall_pkg_cb (constResolvablePtr resolvable, ResolvableStatus status, void *data)
+{
+    UninstallInfo *info = (UninstallInfo *)data;
+
+    UpgradeTable::const_iterator pos = info->upgrade_hash.find(resolvable->name());
+
+    if (resolvable_status_is_to_be_uninstalled (status)
+       && pos == info->upgrade_hash.end()) {
+       if (info->fn)
+           info->fn (resolvable, status, info->rl);
+       ++info->count;
+    }
+}
+
+static void
+build_upgrade_hash_cb (constResolvablePtr resolvable_add, ResolvableStatus status_add, constResolvablePtr resolvable_del, ResolvableStatus status_del, void *data)
+{
+    UpgradeTable *upgrade_hash = (UpgradeTable *)data;
+    (*upgrade_hash)[resolvable_del->name()] = resolvable_del;
+}
+
+
+int
+ResolverContext::foreachUninstall (MarkedResolvableFn fn, void *data)
+{
+    UninstallInfo info;                // inits upgrade_hash
+
+    info.fn = fn;
+    info.rl = (CResolvableList *)data;
+    info.count = 0;
+
+    foreachUpgrade (build_upgrade_hash_cb, (void *)&(info.upgrade_hash));
+    foreachMarkedResolvable (uninstall_pkg_cb, (void *)&info);
+
+    return info.count;
+}
+
+
+CResolvableList
+ResolverContext::getUninstalls (void)
+{
+    CResolvableList rl;
+
+    foreachUninstall (context_resolvable_collector, (void *)&rl);
+
+    return rl;
+}
+
+
+//---------------------------------------------------------------------------
+
+static void
+install_count_cb (constResolvablePtr resolvable, ResolvableStatus status, void *data)
+{
+    int *count = (int *)data;
+    if (! resolvable->isInstalled ()) {
+       ++*count;
+    }
+}
+
+int
+ResolverContext::installCount (void) const
+{
+    int count = 0;
+
+    foreachInstall (install_count_cb, (void *)&count);
+
+    return count;
+}
+
+
+static void
+uninstall_count_cb (constResolvablePtr resolvable, ResolvableStatus status, void *data)
+{
+    int *count = (int *)data;
+    if (resolvable->isInstalled ()) {
+       ++*count;
+    }
+}
+
+
+int
+ResolverContext::uninstallCount (void)
+{
+    int count = 0;
+
+    foreachUninstall (uninstall_count_cb, (void *)&count);
+
+    return count;
+}
+
+
+int
+ResolverContext::upgradeCount (void)
+{
+    return foreachUpgrade ((MarkedResolvablePairFn)NULL, (void *)NULL);
+}
+
+
+//---------------------------------------------------------------------------
+// info
+
+void
+ResolverContext::addInfo (ResolverInfoPtr info)
+{
+    if (getenv ("RC_SPEW")) fprintf (stderr, "ResolverContext[%p]::addInfo(%s)\n", this, info->asString().c_str());
+    _log.push_back (info);
+
+    // _propagated_importance = false;
+
+    if (info->error ()) {
+
+       if (! _invalid) {
+           ResolverInfoPtr info = new ResolverInfoMisc (NULL, RESOLVER_INFO_PRIORITY_VERBOSE, "Marking this resolution attempt as invalid.");
+           info->flagAsError ();
+           _log.push_back (info);
+       }
+
+       _invalid = true;
+    }
+}
+
+
+void
+ResolverContext::addInfoString (constResolvablePtr resolvable, int priority, string msg)
+{
+//    if (getenv ("RC_SPEW")) fprintf (stderr, "ResolverContext::addInfoString(%s) %s\n", resolvable ? resolvable->asString().c_str() : "", msg.c_str());
+    ResolverInfoPtr info = new ResolverInfoMisc (resolvable, priority, msg);
+    addInfo (info);
+}
+
+
+void
+ResolverContext::addErrorString (constResolvablePtr resolvable, string msg)
+{
+    ResolverInfoPtr info = new ResolverInfoMisc (resolvable, RESOLVER_INFO_PRIORITY_VERBOSE, msg);
+    info->flagAsError ();
+    addInfo (info);
+}
+
+
+//---------------------------------------------------------------------------
+// foreach info
+
+//  We call a resolvable mentioned by an error info an "error-resolvable".
+//  We call a resolvable mentioned by an important info an "important-resolvable".
+//
+//  The rules:
+//  (1) An info item that mentions an error-resolvable is important.
+//  (2) An info item is about an important-resolvable is important.
+
+static void
+mark_important_info (InfoList & il)
+{
+    CResolvableList error_list;                // FIXME, a map is faster
+
+    bool did_something;
+    int pass_num = 1;
+
+    /* First of all, store all error-resolvables in a list. */
+
+    for (InfoList::iterator iter = il.begin(); iter != il.end(); iter++) {
+       if ((*iter) != NULL                                     // list items might be set to NULL
+           && (*iter)->error ()) {
+           constResolvablePtr resolvable = (*iter)->resolvable();
+           if (resolvable != NULL) {
+               CResolvableList::iterator pos;
+               for (pos = error_list.begin(); pos != error_list.end(); pos++) {
+                   if (*pos == resolvable)
+                       break;
+               }
+               if (pos == error_list.end()) {
+                   error_list.push_front (resolvable);
+               }
+           }
+
+           CResolvableList resolvables;
+
+           constResolverInfoContainerPtr c = *iter;                    // check if it really is a container
+           if (c != NULL) resolvables = c->resolvables();
+
+           for (CResolvableList::iterator res_iter = resolvables.begin(); res_iter != resolvables.end(); res_iter++) {
+               CResolvableList::iterator pos;
+               for (pos = error_list.begin(); pos != error_list.end(); pos++) {
+                   if (*pos == *iter)
+                       break;
+               }
+               if (pos == error_list.end()) {
+                   error_list.push_front (*res_iter);
+               }
+           }
+       }
+    }
+
+    CResolvableList important_list;    // FIXME, hash is faster
+
+    do {
+       ++pass_num;
+       assert (pass_num < 10000);
+
+       did_something = false;
+
+       for (InfoList::iterator iter = il.begin(); iter != il.end(); iter++) {
+           if ((*iter) != NULL                                 // list items might be set to NULL
+               && (*iter)->important ()) {
+               bool should_be_important = false;
+
+               for (CResolvableList::const_iterator res_iter = error_list.begin(); res_iter != error_list.end() && ! should_be_important; res_iter++) {
+                   constResolverInfoContainerPtr c = *iter;
+                   if (c != NULL                                       // check if it really is a container
+                       && c->mentions (*res_iter)) {
+                       should_be_important = true;
+                   }
+               }
+
+               for (CResolvableList::const_iterator res_iter = important_list.begin(); res_iter != important_list.end() && ! should_be_important; res_iter++) {
+                   if ((*iter)->isAbout (*res_iter)) {
+                       should_be_important = true;
+                       break;
+                   }
+               }
+
+               if (should_be_important) {
+                   did_something = true;
+                   (*iter)->flagAsImportant ();
+                   CResolvableList resolvables;
+                   constResolverInfoContainerPtr c = *iter;            // check if it really is a container
+                   if (c != NULL) resolvables = c->resolvables();
+                   for (CResolvableList::iterator res_iter = resolvables.begin(); res_iter != resolvables.end(); res_iter++) {
+                       CResolvableList::iterator pos;
+                       for (pos = important_list.begin(); pos != important_list.end(); pos++) {
+                           if (*pos == *res_iter)
+                               break;
+                       }
+                       if (pos == important_list.end()) {
+                           important_list.push_front (*res_iter);
+                       }
+                   }
+               }
+           }
+       }
+
+    } while (did_something);
+
+}
+
+
+void
+ResolverContext::foreachInfo (ResolvablePtr resolvable, int priority, ResolverInfoFn fn, void *data)
+{
+    InfoList info_list;
+
+    ResolverContextPtr context = this;
+
+
+    // Assemble a list of copies of all of the info objects
+    while (context != NULL) {
+       for (InfoList::iterator iter = context->_log.begin(); iter != context->_log.end(); iter++) {
+           if ((resolvable == NULL || (*iter)->resolvable() == resolvable)
+               && (*iter)->priority() >= priority) {
+               info_list.push_back ((*iter)->copy());
+           }
+       }
+       context = context->_parent;
+    }
+#if 0
+    // Merge info objects
+    for (InfoList::iterator iter = info_list.begin(); iter != info_list.end(); iter++) {
+
+       ResolverInfoPtr info1 = (*iter);
+       InfoList::iterator subiter = iter;
+       if (info1 != NULL) {
+           for (subiter++; subiter != info_list.end(); subiter++) {
+               ResolverInfoPtr info2 = *subiter;
+               if (info2 && info1->merge (info2)) {
+                   *subiter = NULL;
+               }
+           }
+       }
+    }
+#endif
+    mark_important_info (info_list);
+
+    // Walk across the list of info objects and invoke our callback
+
+    for (InfoList::iterator iter = info_list.begin(); iter != info_list.end(); iter++) {
+       if (*iter != NULL) {
+           fn (*iter, data);
+       }
+    }
+}
+
+
+
+static void
+get_info_foreach_cb (ResolverInfoPtr info, void *data)
+{
+    InfoList *il = (InfoList *)data;
+
+    if (info->important ()) {
+       il->push_back (info);
+    }
+}
+
+
+
+InfoList
+ResolverContext::getInfo (void)
+{
+    InfoList il;
+    foreachInfo (NULL, -1, get_info_foreach_cb, (void *)&il);
+    return il;
+}
+
+
+//---------------------------------------------------------------------------
+// spew
+
+static void
+spew_pkg_cb (constResolvablePtr resolvable, ResolvableStatus status, void *unused)
+{
+    printf ("  %s (%s)\n", resolvable->asString().c_str(), ResolverContext::toString(status).c_str());
+}
+
+
+void
+spew_pkg2_cb (constResolvablePtr resolvable1, ResolvableStatus status1, constResolvablePtr resolvable2, ResolvableStatus status2, void *unused)
+{
+    const char *s1, *s2;
+
+    s1 = resolvable1->asString().c_str();
+    s2 = resolvable2->asString().c_str();
+
+    printf ("  %s (%s) => %s (%s)\n", s2, ResolverContext::toString(status2).c_str(), s1, ResolverContext::toString(status1).c_str());
+}
+
+
+void
+ResolverContext::spew (void)
+{
+    printf ("TO INSTALL:\n");
+    foreachInstall (spew_pkg_cb, NULL);
+    printf ("\n");
+
+    printf ("TO REMOVE:\n");
+    foreachUninstall (spew_pkg_cb, NULL);
+    printf ("\n");
+
+    printf ("TO UPGRADE:\n");
+    foreachUpgrade (spew_pkg2_cb, NULL);
+    printf ("\n");
+}
+
+
+static void
+spew_info_cb (ResolverInfoPtr info, void *unused)
+{
+    const char *msg = info->asString().c_str();
+    if (info->error ()) printf ("[ERROR] ");
+    else if (info->important()) printf ("[>>>>>] ");
+    printf ("%s\n", msg);
+}
+
+
+void
+ResolverContext::spewInfo (void)
+{
+    if (getenv ("RC_SPEW")) fprintf (stderr, "ResolverContext[%p]::spewInfo()\n", this);
+    foreachInfo (NULL, -1, spew_info_cb, NULL);
+}
+
+//---------------------------------------------------------------------------
+// requirements
+
+typedef struct {
+    ResolverContextPtr context;
+    constSpecPtr dep;
+    bool flag;
+} RequirementMetInfo;
+
+
+static bool
+requirement_met_cb (constResolvablePtr resolvable, constSpecPtr spec, void *data)
+{
+    RequirementMetInfo *info = (RequirementMetInfo *)data;
+
+    // info->dep is set for resolvable set children. If it is set, query the
+    //   exact version only.
+    if ((info->dep == NULL || info->dep->equals(spec))
+       && info->context->resolvableIsPresent (resolvable))
+    {
+       info->flag = true;
+    }
+
+//fprintf (stderr, "requirement_met_cb(%s, %s) [info->dep %s] -> %s\n", resolvable->asString().c_str(), spec->asString().c_str(), info->dep != NULL ? info->dep->asString().c_str() : "(none)", info->flag ? "true" : "false");
+    return ! info->flag;
+}
+
+
+bool
+ResolverContext::requirementIsMet (constDependencyPtr dependency, bool is_child)
+{
+    RequirementMetInfo info;
+
+    info.context = this;
+    info.dep = is_child ? dependency : NULL;
+    info.flag = false;
+
+    world()->foreachProvidingResolvable (dependency, requirement_met_cb, (void *)&info);
+
+    return info.flag;
+}
+
+
+//---------------------------------------------------------------------------
+
+static bool
+requirement_possible_cb (constResolvablePtr resolvable, constSpecPtr spec, void *data)
+{
+    RequirementMetInfo *info = (RequirementMetInfo *)data;
+
+    ResolvableStatus status = info->context->getStatus (resolvable);
+
+    if (! resolvable_status_is_to_be_uninstalled (status)
+       || status == RESOLVABLE_STATUS_TO_BE_UNINSTALLED_DUE_TO_UNLINK) {
+       info->flag = true;
+    }
+
+    return ! info->flag;
+}
+
+
+bool
+ResolverContext::requirementIsPossible (constDependencyPtr dep)
+{
+    RequirementMetInfo info;
+
+    info.context = this;
+    info.flag = false;
+
+    world()->foreachProvidingResolvable (dep, requirement_possible_cb, (void *)&info);
+    
+    return info.flag;
+}
+
+
+bool
+ResolverContext::resolvableIsPossible (constResolvablePtr resolvable)
+{
+    CDependencyList requires = resolvable->requires();
+    for (CDependencyList::iterator iter = requires.begin(); iter !=  requires.end(); iter++) {
+           if (! requirementIsPossible (*iter)) {
+               return false;
+           }
+       }
+
+    return true;
+}
+
+//---------------------------------------------------------------------------
+
+typedef struct {
+    constSpecPtr spec;
+    bool flag;
+} DupNameCheckInfo;
+
+static void
+dup_name_check_cb (constResolvablePtr resolvable, ResolvableStatus status, void *data)
+{
+    DupNameCheckInfo *info = (DupNameCheckInfo *)data;
+    if (! info->flag
+       && resolvable_status_is_to_be_installed (status)
+       && info->spec->name() == resolvable->name()
+       && !info->spec->equals(resolvable)) {
+       info->flag = true;
+    }
+}
+
+bool
+ResolverContext::isParallelInstall (constResolvablePtr resolvable)
+{
+    DupNameCheckInfo info;
+
+    info.spec = resolvable;
+    info.flag = false;
+    foreachMarkedResolvable (dup_name_check_cb, (void *)&info);
+
+    return info.flag;
+}
+
+
+int
+ResolverContext::getChannelPriority (constChannelPtr channel) const
+{
+    bool is_subscribed;
+    int priority;
+
+    is_subscribed = channel->isSubscribed ();
+    priority = channel->getPriority (is_subscribed);
+
+    return priority;
+}
+
+//---------------------------------------------------------------------------
+
+static int
+num_cmp (double a, double b)
+{
+    return (b < a) - (a < b);
+}
+
+static int
+rev_num_cmp (double a, double b)
+{
+    return (a < b) - (b < a);
+}
+
+static double
+churn_factor (ResolverContextPtr a)
+{
+    return a->upgradeCount() + (2.0 * a->installCount ()) + (4.0 * a->uninstallCount ());
+}
+
+int
+ResolverContext::partialCompare (ResolverContextPtr context)
+{
+    int cmp = 0;
+    if (this != context) {
+
+       // High numbers are good... we don't want solutions containing low-priority channels.
+       cmp = num_cmp (_min_priority, context->_min_priority);
+
+       if (cmp == 0) {
+    
+           // High numbers are bad.  Less churn is better.
+           cmp = rev_num_cmp (churn_factor (this), churn_factor (context));
+
+           if (cmp == 0) {
+
+               // High numbers are bad.  Bigger #s means more penalties.
+               cmp = rev_num_cmp (_other_penalties, context->_other_penalties);
+           }
+       }
+    }    
+
+    return cmp;
+}
+
+int
+ResolverContext::compare (ResolverContextPtr context)
+{
+    int cmp;
+
+    if (this == context)
+        return 0;
+
+    cmp = partialCompare (context);
+    if (cmp)
+        return cmp;
+
+    /* High numbers are bad.  Smaller downloads are best. */
+    cmp = rev_num_cmp (_download_size, context->_download_size);
+    if (cmp)
+        return cmp;
+
+    /* High numbers are bad.  Less disk space consumed is good. */
+    cmp = rev_num_cmp (_install_size, context->_install_size);
+    if (cmp)
+        return cmp;
+
+    return 0;
+}
+
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/ResolverContext.h b/zypp/solver/detail/ResolverContext.h
new file mode 100644 (file)
index 0000000..ed7dbeb
--- /dev/null
@@ -0,0 +1,178 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverContext.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ResolverContext_h
+#define _ResolverContext_h
+
+#include <iosfwd>
+#include <list>
+#include <map>
+#include <string.h>
+
+#include <zypp/solver/detail/ResolverContextPtr.h>
+#include <zypp/solver/detail/ResolverInfo.h>
+#include <zypp/solver/detail/Resolvable.h>
+#include <zypp/solver/detail/Channel.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+typedef enum {
+    RESOLVABLE_STATUS_UNKNOWN = 0,
+    RESOLVABLE_STATUS_INSTALLED,
+    RESOLVABLE_STATUS_UNINSTALLED,
+    RESOLVABLE_STATUS_TO_BE_INSTALLED,
+    RESOLVABLE_STATUS_TO_BE_INSTALLED_SOFT,
+    RESOLVABLE_STATUS_TO_BE_UNINSTALLED,
+    RESOLVABLE_STATUS_TO_BE_UNINSTALLED_DUE_TO_OBSOLETE,
+    RESOLVABLE_STATUS_TO_BE_UNINSTALLED_DUE_TO_UNLINK
+} ResolvableStatus;
+
+#define resolvable_status_is_to_be_installed(x) (((x) == RESOLVABLE_STATUS_TO_BE_INSTALLED) || ((x) == RESOLVABLE_STATUS_TO_BE_INSTALLED_SOFT))
+#define resolvable_status_is_to_be_uninstalled(x) (((x) == RESOLVABLE_STATUS_TO_BE_UNINSTALLED) || ((x) == RESOLVABLE_STATUS_TO_BE_UNINSTALLED_DUE_TO_OBSOLETE) || ((x) == RESOLVABLE_STATUS_TO_BE_UNINSTALLED_DUE_TO_UNLINK))
+
+typedef std::map<constResolvablePtr, ResolvableStatus> StatusTable;
+typedef std::list<ResolverInfoPtr> InfoList;
+
+
+typedef void (*ResolverContextFn) (ResolverContextPtr ctx, void * data);
+typedef void (*MarkedResolvableFn) (constResolvablePtr res, ResolvableStatus status, void *data);
+typedef void (*MarkedResolvablePairFn) (constResolvablePtr res1, ResolvableStatus status1, constResolvablePtr res2, ResolvableStatus status2, void *data);
+
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : ResolverContext
+class ResolverContext : public CountedRep {
+    REP_BODY(ResolverContext);
+
+  private:
+
+    ResolverContextPtr _parent;
+
+    int _refs;
+    
+    WorldPtr _world;
+    StatusTable _status;
+
+    // just a caching mechanism
+    constResolvablePtr _last_checked_resolvable;
+    ResolvableStatus _last_checked_status;
+
+    InfoList _log;
+    unsigned long long _download_size;
+    unsigned long long _install_size;
+    int _total_priority;
+    int _min_priority;
+    int _max_priority;
+    int _other_penalties;
+    constChannelPtr _current_channel;
+    bool _verifying;
+    bool _invalid;
+
+  public:
+    ResolverContext (ResolverContextPtr parent = NULL);
+    virtual ~ResolverContext();
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const ResolverContext & context);
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+    friend std::ostream& operator<<(std::ostream&, const ResolverContext & context);
+    std::string asString (void ) const;
+
+    static std::string toString (const ResolvableStatus & status);
+
+    // ---------------------------------- accessors
+
+    WorldPtr world (void) const;                               // gets global world, if _world == NULL
+    void setWorld (WorldPtr world) { _world = world; }
+
+    constChannelPtr currentChannel (void) const { return _current_channel; }
+    void setCurrentChannel (constChannelPtr channel) { _current_channel = channel; }
+
+    unsigned long long downloadSize(void) const { return _download_size; }
+    unsigned long long installSize(void) const { return _install_size; }
+    int totalPriority (void) const { return _total_priority; }
+    int minPriority (void) const { return _min_priority; }
+    int maxPriority (void) const { return _max_priority; }
+    int otherPenalties (void) const { return _other_penalties; }
+
+    bool isValid (void) const { return !_invalid; }
+    bool isInvalid (void) const { return _invalid; }
+
+    bool verifying (void) const { return _verifying; }
+    void setVerifying (bool verifying) { _verifying = verifying; }
+
+    // ---------------------------------- methods
+
+    ResolvableStatus getStatus (constResolvablePtr res);                       // non-const, because its caching
+    void setStatus (constResolvablePtr res, ResolvableStatus status);
+
+    bool installResolvable (constResolvablePtr resolvable, bool is_soft, int other_penalty);
+    bool upgradeResolvable (constResolvablePtr new_resolvable, constResolvablePtr old_resolvable, bool is_soft, int other_penalty);
+    bool uninstallResolvable (constResolvablePtr resolvable, bool part_of_upgrade, bool due_to_obsolete, bool due_to_unlink);
+
+    bool resolvableIsPresent (constResolvablePtr resolvable);
+    bool resolvableIsAbsent (constResolvablePtr resolvable);
+
+    void foreachMarkedResolvable (MarkedResolvableFn fn, void *data) const;
+    CResolvableList getMarkedResolvables (void) const;
+
+    int foreachInstall (MarkedResolvableFn fn, void *data) const;
+    CResolvableList getInstalls (void) const;
+    int installCount (void) const;
+
+    int foreachUninstall (MarkedResolvableFn fn, void *data);                  // non-const, calls foreachUpgrade
+    CResolvableList getUninstalls (void);
+    int uninstallCount (void);
+
+    int foreachUpgrade (MarkedResolvablePairFn fn, void *data);                        // non-const, calls getStatus
+    CResolvableList getUpgrades (void);
+    int upgradeCount (void);
+
+    void addInfo (ResolverInfoPtr info);
+    void addInfoString (constResolvablePtr resolvable, int priority, std::string str);
+    void addErrorString (constResolvablePtr resolvable, std::string str);
+
+    void foreachInfo (ResolvablePtr resolvable, int priority, ResolverInfoFn fn, void *data);
+    InfoList getInfo (void);
+
+    void spew (void);
+    void spewInfo (void);
+
+    bool requirementIsMet (constDependencyPtr dep, bool is_child);
+    bool requirementIsPossible (constDependencyPtr dep);
+    bool resolvableIsPossible (constResolvablePtr resolvable);
+    bool isParallelInstall (constResolvablePtr resolvable);
+
+    int getChannelPriority (constChannelPtr channel) const;
+
+    int partialCompare (ResolverContextPtr context);                   // non-const, calls uninstall/upgrade Count
+    int compare (ResolverContextPtr context);
+};
+     
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+#endif // _ResolverContext_h
+    
diff --git a/zypp/solver/detail/ResolverContextPtr.h b/zypp/solver/detail/ResolverContextPtr.h
new file mode 100644 (file)
index 0000000..3c70b0a
--- /dev/null
@@ -0,0 +1,40 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverContextPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ResolverContextPtr_h
+#define _ResolverContextPtr_h
+
+#include <y2util/RepDef.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : ResolverContextPtr
+//     CLASS NAME : constResolverContextPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_BASE_POINTER(ResolverContext);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _ResolverContextPtr_h
diff --git a/zypp/solver/detail/ResolverInfo.cc b/zypp/solver/detail/ResolverInfo.cc
new file mode 100644 (file)
index 0000000..fa08cfd
--- /dev/null
@@ -0,0 +1,189 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfo.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <map>
+
+#include <zypp/solver/detail/ResolverInfo.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_BASE_POINTER(ResolverInfo);
+
+//---------------------------------------------------------------------------
+
+static struct {
+    ResolverInfoType type;
+    const char        *str;
+} type_str_table[] = {
+    { RESOLVER_INFO_TYPE_NEEDED_BY,      "needed_by" },
+    { RESOLVER_INFO_TYPE_CONFLICTS_WITH, "conflicts_with" },
+    { RESOLVER_INFO_TYPE_OBSOLETES,      "obsoletes" },
+    { RESOLVER_INFO_TYPE_DEPENDS_ON,     "depended_on" },
+    { RESOLVER_INFO_TYPE_CHILD_OF,       "child_of" },
+    { RESOLVER_INFO_TYPE_MISSING_REQ,    "missing_req" },
+    { RESOLVER_INFO_TYPE_MISC,           "misc" },
+    { RESOLVER_INFO_TYPE_INVALID,        "invalid" },
+    { RESOLVER_INFO_TYPE_INVALID,        NULL }
+};
+
+static const char *
+info_type_to_string (ResolverInfoType type)
+{
+    int i;
+
+    for (i = 0; type_str_table[i].str != NULL; ++i) {
+       if (type == type_str_table[i].type)
+           return type_str_table[i].str;
+    }
+
+    return NULL;
+}
+
+
+ResolverInfoType
+resolver_info_type_from_string (const char *str)
+{
+    int i;
+
+    if (str == NULL) return RESOLVER_INFO_TYPE_INVALID;
+
+    for (i = 0; type_str_table[i].str != NULL; ++i) {
+       if (strcasecmp (str, type_str_table[i].str) == 0)
+           return type_str_table[i].type;
+    }
+
+    return RESOLVER_INFO_TYPE_INVALID;
+}
+
+//---------------------------------------------------------------------------
+
+string
+ResolverInfo::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+ResolverInfo::toString ( const ResolverInfo & resolverinfo, bool full )
+{
+    string res;
+
+    if (full) {
+       res += "<";
+       res += info_type_to_string (resolverinfo._type);
+       res += "> ";
+    }
+    if (resolverinfo._resolvable != NULL) {
+       res += resolverinfo._resolvable->asString();
+       res += ": ";
+    }
+
+    if (resolverinfo._error) res += " Error!";
+    if (resolverinfo._important) res += " Important!";
+
+    return res;
+}
+
+
+ostream &
+ResolverInfo::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const ResolverInfo & resolver)
+{
+    return os << resolver.asString();
+}
+
+//---------------------------------------------------------------------------
+
+ResolverInfo::ResolverInfo (ResolverInfoType type, constResolvablePtr resolvable, int priority)
+    : _type (type)
+    , _resolvable (resolvable)
+    , _priority (priority)
+    , _error (false)
+    , _important (false)
+{
+}
+
+
+ResolverInfo::~ResolverInfo()
+{
+}
+
+//---------------------------------------------------------------------------
+
+bool
+ResolverInfo::merge (ResolverInfoPtr to_be_merged)
+{
+    if (to_be_merged == NULL) return false;
+
+    if (_type != to_be_merged->_type
+       || _resolvable != to_be_merged->_resolvable) {
+       return false;
+    }
+
+    return true;
+}
+
+void
+ResolverInfo::copy (constResolverInfoPtr from)
+{
+    _error = from->_error;
+    _important = from->_important;
+}
+
+
+ResolverInfoPtr
+ResolverInfo::copy (void) const
+{
+    ResolverInfoPtr cpy = new ResolverInfo(_type, _resolvable, _priority);
+
+    cpy->copy (this);
+    return cpy;
+}
+
+
+//---------------------------------------------------------------------------
+
+bool
+ResolverInfo::isAbout (constResolvablePtr resolvable) const
+{
+    if (_resolvable == NULL)
+       return false;
+
+    return _resolvable->name() == resolvable->name();
+}
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/ResolverInfo.h b/zypp/solver/detail/ResolverInfo.h
new file mode 100644 (file)
index 0000000..3450505
--- /dev/null
@@ -0,0 +1,114 @@
+#/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfo.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ResolverInfo_h
+#define _ResolverInfo_h
+
+#include <iosfwd>
+#include <list>
+#include <map>
+#include <string.h>
+#include <zypp/solver/detail/ResolverInfoPtr.h>
+#include <zypp/solver/detail/Resolvable.h>
+#include <zypp/solver/detail/Channel.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+
+typedef enum {
+    RESOLVER_INFO_TYPE_INVALID = 0,
+    RESOLVER_INFO_TYPE_NEEDED_BY,
+    RESOLVER_INFO_TYPE_CONFLICTS_WITH,
+    RESOLVER_INFO_TYPE_OBSOLETES,
+    RESOLVER_INFO_TYPE_DEPENDS_ON,
+    RESOLVER_INFO_TYPE_CHILD_OF,
+    RESOLVER_INFO_TYPE_MISSING_REQ,
+    RESOLVER_INFO_TYPE_MISC
+} ResolverInfoType;
+
+#define RESOLVER_INFO_PRIORITY_USER      500
+#define RESOLVER_INFO_PRIORITY_VERBOSE   100
+#define RESOLVER_INFO_PRIORITY_DEBUGGING   0
+
+typedef void (*ResolverInfoFn) (ResolverInfoPtr info, void *data);
+
+typedef std::list <ResolverInfoPtr> ResolverInfoList;
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : ResolverInfo
+
+class ResolverInfo : public CountedRep {
+
+    REP_BODY(ResolverInfo);
+
+  private:
+
+    ResolverInfoType _type;
+    constResolvablePtr _resolvable;
+    int _priority;
+
+    bool _error;
+    bool _important;
+
+  protected:
+
+    ResolverInfo (ResolverInfoType type, constResolvablePtr resolvable, int priority);
+
+  public:
+
+    virtual ~ResolverInfo();
+
+    void copy (constResolverInfoPtr from);
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const ResolverInfo & context, bool full = false);
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+    friend std::ostream& operator<<(std::ostream&, const ResolverInfo & context);
+    virtual std::string asString (void ) const;
+
+    // ---------------------------------- accessors
+
+    ResolverInfoType type (void) const { return _type; }
+    constResolvablePtr resolvable (void) const { return _resolvable; }
+    int priority (void) const { return _priority; }
+
+    int error (void) const { return _error; }
+    void flagAsError (void) { _error = true; }
+    int important (void) const { return _important; }
+    void flagAsImportant (void) { _important = true; }
+
+    // ---------------------------------- methods
+
+    bool merge (ResolverInfoPtr to_be_merged);
+    virtual ResolverInfoPtr copy (void) const;
+
+    bool isAbout (constResolvablePtr resolvable) const;
+};
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+#endif // _ResolverInfo_h
diff --git a/zypp/solver/detail/ResolverInfoChildOf.cc b/zypp/solver/detail/ResolverInfoChildOf.cc
new file mode 100644 (file)
index 0000000..ce8af59
--- /dev/null
@@ -0,0 +1,99 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfoChildOf.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <map>
+
+#include <zypp/solver/detail/ResolverInfoChildOf.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_DERIVED_POINTER(ResolverInfoChildOf, ResolverInfo);
+
+//---------------------------------------------------------------------------
+
+
+string
+ResolverInfoChildOf::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+ResolverInfoChildOf::toString ( const ResolverInfoChildOf & child)
+{
+    string res = "<resolverinfochildof '";
+
+    res += ResolverInfo::toString (child);
+    res += string ("part of ") + child.resolvablesToString(false);
+    res += "'>";
+
+    return res;
+}
+
+
+ostream &
+ResolverInfoChildOf::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const ResolverInfoChildOf & child)
+{
+    return os << child.asString();
+}
+
+//---------------------------------------------------------------------------
+
+ResolverInfoChildOf::ResolverInfoChildOf (constResolvablePtr resolvable, constResolvablePtr dependency)
+    : ResolverInfoContainer (RESOLVER_INFO_TYPE_CHILD_OF, resolvable, RESOLVER_INFO_PRIORITY_USER, dependency)
+{
+}
+
+
+ResolverInfoChildOf::~ResolverInfoChildOf ()
+{
+}
+
+//---------------------------------------------------------------------------
+
+
+ResolverInfoPtr
+ResolverInfoChildOf::copy (void) const
+{
+    ResolverInfoChildOfPtr cpy = new ResolverInfoChildOf(resolvable(), NULL);
+
+    ((ResolverInfoContainerPtr)cpy)->copy (this);
+
+    return cpy;
+}
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/ResolverInfoChildOf.h b/zypp/solver/detail/ResolverInfoChildOf.h
new file mode 100644 (file)
index 0000000..09af16b
--- /dev/null
@@ -0,0 +1,66 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfoChildOf.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ResolverInfoChildOf_h
+#define _ResolverInfoChildOf_h
+
+#include <zypp/solver/detail/ResolverInfoChildOfPtr.h>
+#include <zypp/solver/detail/ResolverInfoContainer.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+
+//////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : ResolverInfoChildOf
+
+class ResolverInfoChildOf : public ResolverInfoContainer {
+
+    REP_BODY(ResolverInfoChildOf);
+
+  private:
+
+  public:
+
+    ResolverInfoChildOf (constResolvablePtr resolvable, constResolvablePtr dependency);
+    virtual ~ResolverInfoChildOf();
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const ResolverInfoChildOf & context);
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+    friend std::ostream& operator<<(std::ostream&, const ResolverInfoChildOf & context);
+    std::string asString (void ) const;
+
+    // ---------------------------------- accessors
+
+    // ---------------------------------- methods
+
+    virtual ResolverInfoPtr copy (void) const;
+};
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+#endif // _ResolverInfoChildOf_h
diff --git a/zypp/solver/detail/ResolverInfoChildOfPtr.h b/zypp/solver/detail/ResolverInfoChildOfPtr.h
new file mode 100644 (file)
index 0000000..00e348b
--- /dev/null
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfoChildOfPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ResolverInfoChildOfPtr_h
+#define _ResolverInfoChildOfPtr_h
+
+#include <y2util/RepDef.h>
+#include <zypp/solver/detail/ResolverInfoPtr.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : ResolverInfoChildOfPtr
+//     CLASS NAME : constResolverInfoChildOfPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_DERIVED_POINTER(ResolverInfoChildOf, ResolverInfo);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _ResolverInfoChildOfPtr_h
diff --git a/zypp/solver/detail/ResolverInfoConflictsWith.cc b/zypp/solver/detail/ResolverInfoConflictsWith.cc
new file mode 100644 (file)
index 0000000..1048246
--- /dev/null
@@ -0,0 +1,100 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfoConflictsWith.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <map>
+
+#include <zypp/solver/detail/ResolverInfo.h>
+#include <zypp/solver/detail/ResolverInfoConflictsWith.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_DERIVED_POINTER(ResolverInfoConflictsWith, ResolverInfo);
+
+//---------------------------------------------------------------------------
+
+
+string
+ResolverInfoConflictsWith::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+ResolverInfoConflictsWith::toString ( const ResolverInfoConflictsWith & with)
+{
+    string res;
+
+    res += ResolverInfo::toString (with);
+    res += string ("conflicts with ") + with.resolvablesToString(false);
+
+    return res;
+}
+
+
+ostream &
+ResolverInfoConflictsWith::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const ResolverInfoConflictsWith & with)
+{
+    return os << with.asString();
+}
+
+//---------------------------------------------------------------------------
+
+ResolverInfoConflictsWith::ResolverInfoConflictsWith (constResolvablePtr resolvable, constResolvablePtr with)
+    : ResolverInfoContainer (RESOLVER_INFO_TYPE_CONFLICTS_WITH, resolvable, RESOLVER_INFO_PRIORITY_USER, with)
+{
+}
+
+
+ResolverInfoConflictsWith::~ResolverInfoConflictsWith ()
+{
+}
+
+
+//---------------------------------------------------------------------------
+
+ResolverInfoPtr
+ResolverInfoConflictsWith::copy (void) const
+{
+    ResolverInfoConflictsWithPtr cpy = new ResolverInfoConflictsWith(resolvable(), NULL);
+
+    ((ResolverInfoContainerPtr)cpy)->copy (this);
+
+    return cpy;
+}
+
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/ResolverInfoConflictsWith.h b/zypp/solver/detail/ResolverInfoConflictsWith.h
new file mode 100644 (file)
index 0000000..206e5d8
--- /dev/null
@@ -0,0 +1,66 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfoConflictsWith.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ResolverInfoConflictsWith_h
+#define _ResolverInfoConflictsWith_h
+
+#include <zypp/solver/detail/ResolverInfoConflictsWithPtr.h>
+#include <zypp/solver/detail/ResolverInfoContainer.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : ResolverInfoConflictsWith
+
+class ResolverInfoConflictsWith : public ResolverInfoContainer {
+
+    REP_BODY(ResolverInfoConflictsWith);
+
+  private:
+
+  public:
+
+    ResolverInfoConflictsWith (constResolvablePtr resolvable, constResolvablePtr with);
+    virtual ~ResolverInfoConflictsWith();
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const ResolverInfoConflictsWith & context);
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+    friend std::ostream& operator<<(std::ostream&, const ResolverInfoConflictsWith & context);
+    std::string asString (void ) const;
+
+    // ---------------------------------- accessors
+
+
+    // ---------------------------------- methods
+
+    virtual ResolverInfoPtr copy (void) const;
+};
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+#endif // _ResolverInfoConflictsWith_h
diff --git a/zypp/solver/detail/ResolverInfoConflictsWithPtr.h b/zypp/solver/detail/ResolverInfoConflictsWithPtr.h
new file mode 100644 (file)
index 0000000..9d63ecb
--- /dev/null
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfoConflictsWithPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ResolverInfoConflictsWithPtr_h
+#define _ResolverInfoConflictsWithPtr_h
+
+#include <y2util/RepDef.h>
+#include <zypp/solver/detail/ResolverInfoPtr.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : ResolverInfoConflictsWithPtr
+//     CLASS NAME : constResolverInfoConflictsWithPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_DERIVED_POINTER(ResolverInfoConflictsWith, ResolverInfo);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _ResolverInfoConflictsWithPtr_h
diff --git a/zypp/solver/detail/ResolverInfoContainer.cc b/zypp/solver/detail/ResolverInfoContainer.cc
new file mode 100644 (file)
index 0000000..36fe31a
--- /dev/null
@@ -0,0 +1,201 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfoContainer.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <map>
+
+#include <zypp/solver/detail/ResolverInfoContainer.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_DERIVED_POINTER(ResolverInfoContainer, ResolverInfo);
+
+//---------------------------------------------------------------------------
+
+
+string
+ResolverInfoContainer::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+ResolverInfoContainer::toString ( const ResolverInfoContainer & container )
+{
+    string res = "<resolverinfocontainer '";
+
+    res += ResolverInfo::toString (container);
+    for (CResolvableList::const_iterator iter = container._resolvable_list.begin(); iter != container._resolvable_list.end(); iter++) {
+       if (iter != container._resolvable_list.begin()) res += ", ";
+       res += ((constSpecPtr)(*iter))->asString();
+    }
+    res += "'>";
+
+    return res;
+}
+
+
+ostream &
+ResolverInfoContainer::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const ResolverInfoContainer & container)
+{
+    return os << container.asString();
+}
+
+//---------------------------------------------------------------------------
+
+ResolverInfoContainer::ResolverInfoContainer (ResolverInfoType type, constResolvablePtr resolvable, int priority, constResolvablePtr child)
+    : ResolverInfo (type, resolvable, priority)
+{
+    if (child != NULL)
+       _resolvable_list.push_back (child);
+}
+
+
+ResolverInfoContainer::~ResolverInfoContainer ()
+{
+}
+
+//---------------------------------------------------------------------------
+
+bool
+ResolverInfoContainer::merge (ResolverInfoContainerPtr to_be_merged)
+{
+    bool res;
+
+    res = ((ResolverInfoPtr)this)->merge ((ResolverInfoPtr)to_be_merged);
+    if (!res) return res;
+
+    typedef std::map<constResolvablePtr, bool> SeenTable;
+    SeenTable seen_packages;
+
+    for (CResolvableList::const_iterator iter = _resolvable_list.begin(); iter != _resolvable_list.end(); iter++) {
+       seen_packages[*iter] = true;
+    }
+
+    CResolvableList rl = to_be_merged->resolvables();
+    for (CResolvableList::const_iterator iter = rl.begin(); iter != rl.end(); iter++) {
+       SeenTable::const_iterator pos = seen_packages.find(*iter);
+       if (pos == seen_packages.end()) {
+           _resolvable_list.push_front (*iter);
+           seen_packages[*iter] = true;
+       }
+    }
+
+    return true;
+}
+
+
+void
+ResolverInfoContainer::copy (constResolverInfoContainerPtr from)
+{
+    ((ResolverInfoPtr)this)->copy(from);
+
+    for (CResolvableList::const_iterator iter = from->_resolvable_list.begin(); iter != from->_resolvable_list.end(); iter++) {
+       _resolvable_list.push_back (*iter);
+    }
+}
+
+
+ResolverInfoPtr
+ResolverInfoContainer::copy (void) const
+{
+    ResolverInfoContainerPtr cpy = new ResolverInfoContainer(type(), resolvable(), priority());
+
+    cpy->copy (this);
+
+    return cpy;
+}
+
+//---------------------------------------------------------------------------
+
+string
+ResolverInfoContainer::resolvablesToString (bool names_only) const
+{
+    string res;
+
+    if (_resolvable_list.empty())
+       return res;
+
+    res += " [";
+    for (CResolvableList::const_iterator iter = _resolvable_list.begin(); iter != _resolvable_list.end(); iter++) {
+       if (iter != _resolvable_list.begin())
+           res += ", ";
+
+       res += (names_only ? (*iter)->name() : ((constSpecPtr)(*iter))->asString());
+    }
+    res += "]";
+
+    return res;
+}
+
+
+bool
+ResolverInfoContainer::mentions (constResolvablePtr resolvable) const
+{
+    if (isAbout(resolvable))
+       return true;
+
+    // Search resolvable_list for any mention of the resolvable.
+
+    for (CResolvableList::const_iterator iter = _resolvable_list.begin(); iter != _resolvable_list.end(); iter++) {
+       if ((*iter)->name() == resolvable->name()) {
+           return true;
+       }
+    }
+    
+    return false;
+}
+
+
+void
+ResolverInfoContainer::addRelatedResolvable (constResolvablePtr resolvable)
+{
+    if (!mentions(resolvable)) {
+       _resolvable_list.push_front (resolvable);
+    }
+}
+
+
+void
+ResolverInfoContainer::addRelatedResolvableList (const CResolvableList & resolvables)
+{
+    for (CResolvableList::const_iterator iter = resolvables.begin(); iter != resolvables.end(); iter++) {
+       _resolvable_list.push_front (*iter);
+    }
+}
+
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/ResolverInfoContainer.h b/zypp/solver/detail/ResolverInfoContainer.h
new file mode 100644 (file)
index 0000000..8519d67
--- /dev/null
@@ -0,0 +1,86 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfoContainer.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ResolverInfoContainer_h
+#define _ResolverInfoContainer_h
+
+#include <iosfwd>
+#include <list>
+#include <map>
+#include <string.h>
+#include <zypp/solver/detail/ResolverInfoContainerPtr.h>
+#include <zypp/solver/detail/ResolverInfo.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+
+//////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : ResolverInfoContainer
+
+class ResolverInfoContainer : public ResolverInfo {
+
+    REP_BODY(ResolverInfoContainer);
+
+  private:
+
+    CResolvableList _resolvable_list;
+
+  protected:
+
+    ResolverInfoContainer (ResolverInfoType type, constResolvablePtr resolvable, int priority, constResolvablePtr child = NULL);
+
+  public:
+    virtual ~ResolverInfoContainer();
+
+    void copy (constResolverInfoContainerPtr from);
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const ResolverInfoContainer & context);
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+    friend std::ostream& operator<<(std::ostream&, const ResolverInfoContainer & context);
+    std::string asString (void ) const;
+
+    // ---------------------------------- accessors
+
+    CResolvableList resolvables (void) const { return _resolvable_list; }
+
+    // ---------------------------------- methods
+
+    virtual bool merge (ResolverInfoContainerPtr to_be_merged);
+    virtual ResolverInfoPtr copy (void) const;
+
+    std::string resolvablesToString (bool names_only) const;
+
+    bool mentions (constResolvablePtr resolvable) const;
+    void addRelatedResolvable (constResolvablePtr resolvable);
+    void addRelatedResolvableList (const CResolvableList & resolvables);
+
+};
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+#endif // _ResolverInfoContainer_h
diff --git a/zypp/solver/detail/ResolverInfoContainerPtr.h b/zypp/solver/detail/ResolverInfoContainerPtr.h
new file mode 100644 (file)
index 0000000..5ac591d
--- /dev/null
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfoContainerPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ResolverInfoContainerPtr_h
+#define _ResolverInfoContainerPtr_h
+
+#include <y2util/RepDef.h>
+#include <zypp/solver/detail/ResolverInfo.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : ResolverInfoContainerPtr
+//     CLASS NAME : constResolverInfoContainerPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_DERIVED_POINTER(ResolverInfoContainer,ResolverInfo);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _ResolverInfoContainerPtr_h
diff --git a/zypp/solver/detail/ResolverInfoDependsOn.cc b/zypp/solver/detail/ResolverInfoDependsOn.cc
new file mode 100644 (file)
index 0000000..e339d62
--- /dev/null
@@ -0,0 +1,100 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfoDependsOn.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <map>
+
+#include <zypp/solver/detail/ResolverInfo.h>
+#include <zypp/solver/detail/ResolverInfoDependsOn.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_DERIVED_POINTER(ResolverInfoDependsOn, ResolverInfo);
+
+//---------------------------------------------------------------------------
+
+
+string
+ResolverInfoDependsOn::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+ResolverInfoDependsOn::toString ( const ResolverInfoDependsOn & on)
+{
+    string res;
+
+    res += ResolverInfo::toString (on);
+    res += string ("depended on ") + on.resolvablesToString(false);
+
+    return res;
+}
+
+
+ostream &
+ResolverInfoDependsOn::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const ResolverInfoDependsOn & on)
+{
+    return os << on.asString();
+}
+
+//---------------------------------------------------------------------------
+
+ResolverInfoDependsOn::ResolverInfoDependsOn (constResolvablePtr resolvable, constResolvablePtr on)
+    : ResolverInfoContainer (RESOLVER_INFO_TYPE_DEPENDS_ON, resolvable, RESOLVER_INFO_PRIORITY_USER, on)
+{
+}
+
+
+ResolverInfoDependsOn::~ResolverInfoDependsOn ()
+{
+}
+
+//---------------------------------------------------------------------------
+
+ResolverInfoPtr
+ResolverInfoDependsOn::copy (void) const
+{
+    ResolverInfoDependsOnPtr cpy = new ResolverInfoDependsOn(resolvable(), NULL);
+
+    ((ResolverInfoContainerPtr)cpy)->copy (this);
+
+    return cpy;
+}
+
+//---------------------------------------------------------------------------
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/ResolverInfoDependsOn.h b/zypp/solver/detail/ResolverInfoDependsOn.h
new file mode 100644 (file)
index 0000000..e0dac89
--- /dev/null
@@ -0,0 +1,67 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfoDependsOn.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ResolverInfoDependsOn_h
+#define _ResolverInfoDependsOn_h
+
+#include <string>
+#include <zypp/solver/detail/ResolverInfoDependsOnPtr.h>
+#include <zypp/solver/detail/ResolverInfoContainer.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : ResolverInfoDependsOn
+
+class ResolverInfoDependsOn : public ResolverInfoContainer {
+
+    REP_BODY(ResolverInfoDependsOn);
+
+  private:
+
+  public:
+
+    ResolverInfoDependsOn (constResolvablePtr resolvable, constResolvablePtr on);
+    virtual ~ResolverInfoDependsOn();
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const ResolverInfoDependsOn & context);
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+    friend std::ostream& operator<<(std::ostream&, const ResolverInfoDependsOn & context);
+    std::string asString (void ) const;
+
+    // ---------------------------------- accessors
+
+    // ---------------------------------- methods
+
+    virtual ResolverInfoPtr copy (void) const;
+
+};
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+#endif // _ResolverInfoDependsOn_h
diff --git a/zypp/solver/detail/ResolverInfoDependsOnPtr.h b/zypp/solver/detail/ResolverInfoDependsOnPtr.h
new file mode 100644 (file)
index 0000000..6327fe2
--- /dev/null
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfoDependsOnPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ResolverInfoDependsOnPtr_h
+#define _ResolverInfoDependsOnPtr_h
+
+#include <y2util/RepDef.h>
+#include <zypp/solver/detail/ResolverInfoPtr.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : ResolverInfoDependsOnPtr
+//     CLASS NAME : constResolverInfoDependsOnPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_DERIVED_POINTER(ResolverInfoDependsOn, ResolverInfo);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _ResolverInfoDependsOnPtr_h
diff --git a/zypp/solver/detail/ResolverInfoMisc.cc b/zypp/solver/detail/ResolverInfoMisc.cc
new file mode 100644 (file)
index 0000000..71dfcce
--- /dev/null
@@ -0,0 +1,144 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfoMisc.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <map>
+
+#include <zypp/solver/detail/ResolverInfo.h>
+#include <zypp/solver/detail/ResolverInfoMisc.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_DERIVED_POINTER(ResolverInfoMisc, ResolverInfo);
+
+//---------------------------------------------------------------------------
+
+
+string
+ResolverInfoMisc::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+ResolverInfoMisc::toString ( const ResolverInfoMisc & misc)
+{
+    string res;
+    res += misc._msg;
+#if 0
+    res += " [";
+    res += ResolverInfo::toString (misc, false);
+    res += "]";
+#endif
+    res += misc.resolvablesToString(false);
+    if (!misc._action.empty()) {
+       res += string (", Action: ") + misc._action + "\n";
+    }
+    if (!misc._trigger.empty()) {
+       res += string (", Trigger: ") + misc._trigger + "\n";
+    }
+
+    return res;
+}
+
+
+ostream &
+ResolverInfoMisc::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const ResolverInfoMisc & misc)
+{
+    return os << misc.asString();
+}
+
+//---------------------------------------------------------------------------
+
+ResolverInfoMisc::ResolverInfoMisc (constResolvablePtr resolvable, int priority, const string & msg)
+    : ResolverInfoContainer (RESOLVER_INFO_TYPE_MISC, resolvable, priority)
+    , _msg (msg)
+{
+}
+
+
+ResolverInfoMisc::~ResolverInfoMisc ()
+{
+}
+
+//---------------------------------------------------------------------------
+
+bool
+ResolverInfoMisc::merge (ResolverInfoPtr info)
+{
+    bool res;
+    ResolverInfoMiscPtr to_be_merged = info;
+
+    res = ((ResolverInfoPtr)this)->merge ((ResolverInfoPtr)to_be_merged);
+    if (!res) return res;
+
+    if (!_msg.empty()
+        && !to_be_merged->_msg.empty()
+       && _msg == to_be_merged->_msg) {
+            return true;
+    }
+
+    return false;
+}
+
+
+ResolverInfoPtr
+ResolverInfoMisc::copy (void) const
+{
+    ResolverInfoMiscPtr cpy = new ResolverInfoMisc(resolvable(), priority(), _msg);
+
+    ((ResolverInfoContainerPtr)cpy)->copy (this);
+
+    return cpy;
+}
+
+//---------------------------------------------------------------------------
+
+void
+ResolverInfoMisc::addAction (const std::string & action_msg)
+{
+    _action = action_msg;
+}
+
+
+void
+ResolverInfoMisc::addTrigger (const std::string & trigger_msg)
+{
+    _trigger = trigger_msg;
+}
+
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/ResolverInfoMisc.h b/zypp/solver/detail/ResolverInfoMisc.h
new file mode 100644 (file)
index 0000000..7eb383e
--- /dev/null
@@ -0,0 +1,75 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfoMisc.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ResolverInfoMisc_h
+#define _ResolverInfoMisc_h
+
+#include <string>
+#include <zypp/solver/detail/ResolverInfoMiscPtr.h>
+#include <zypp/solver/detail/ResolverInfoContainer.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : ResolverInfoMisc
+
+class ResolverInfoMisc : public ResolverInfoContainer {
+
+    REP_BODY(ResolverInfoMisc);
+
+  private:
+
+    std::string _msg;
+    std::string _action;
+    std::string _trigger;
+
+  public:
+
+    ResolverInfoMisc (constResolvablePtr resolvable, int priority, const std::string & msg);
+    virtual ~ResolverInfoMisc();
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const ResolverInfoMisc & context);
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+    friend std::ostream& operator<<(std::ostream&, const ResolverInfoMisc & context);
+    std::string asString (void ) const;
+
+    // ---------------------------------- accessors
+
+    // ---------------------------------- methods
+
+    virtual bool merge (ResolverInfoPtr to_be_merged);
+    virtual ResolverInfoPtr copy (void) const;
+
+    void addAction (const std::string & action_msg);
+    void addTrigger (const std::string & trigger_msg);
+
+};
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+#endif // _ResolverInfoMisc_h
diff --git a/zypp/solver/detail/ResolverInfoMiscPtr.h b/zypp/solver/detail/ResolverInfoMiscPtr.h
new file mode 100644 (file)
index 0000000..91f3c97
--- /dev/null
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfoMiscPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ResolverInfoMiscPtr_h
+#define _ResolverInfoMiscPtr_h
+
+#include <y2util/RepDef.h>
+#include <zypp/solver/detail/ResolverInfoPtr.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : ResolverInfoMiscPtr
+//     CLASS NAME : constResolverInfoMiscPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_DERIVED_POINTER(ResolverInfoMisc, ResolverInfo);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _ResolverInfoMiscPtr_h
diff --git a/zypp/solver/detail/ResolverInfoMissingReq.cc b/zypp/solver/detail/ResolverInfoMissingReq.cc
new file mode 100644 (file)
index 0000000..b2cb79e
--- /dev/null
@@ -0,0 +1,99 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfoMissingReq.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <map>
+
+#include <zypp/solver/detail/ResolverInfo.h>
+#include <zypp/solver/detail/ResolverInfoMissingReq.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_DERIVED_POINTER(ResolverInfoMissingReq, ResolverInfo);
+
+//---------------------------------------------------------------------------
+
+
+string
+ResolverInfoMissingReq::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+ResolverInfoMissingReq::toString ( const ResolverInfoMissingReq & missing)
+{
+    string res;
+
+    res += ResolverInfo::toString (missing);
+    res += string ("missing requirement ") + missing._missing_req->asString();
+
+    return res;
+}
+
+
+ostream &
+ResolverInfoMissingReq::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const ResolverInfoMissingReq & missing)
+{
+    return os << missing.asString();
+}
+
+//---------------------------------------------------------------------------
+
+ResolverInfoMissingReq::ResolverInfoMissingReq (constResolvablePtr resolvable, constDependencyPtr missing_req)
+    : ResolverInfo (RESOLVER_INFO_TYPE_MISSING_REQ, resolvable, RESOLVER_INFO_PRIORITY_USER)
+    , _missing_req (missing_req)
+{
+}
+
+
+ResolverInfoMissingReq::~ResolverInfoMissingReq ()
+{
+}
+
+//---------------------------------------------------------------------------
+
+ResolverInfoPtr
+ResolverInfoMissingReq::copy (void) const
+{
+    ResolverInfoMissingReqPtr cpy = new ResolverInfoMissingReq(resolvable(), _missing_req);
+
+    ((ResolverInfoPtr)cpy)->copy (this);
+
+    return cpy;
+}
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/ResolverInfoMissingReq.h b/zypp/solver/detail/ResolverInfoMissingReq.h
new file mode 100644 (file)
index 0000000..dd3e816
--- /dev/null
@@ -0,0 +1,68 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfoMissingReq.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ResolverInfoMissingReq_h
+#define _ResolverInfoMissingReq_h
+
+#include <zypp/solver/detail/ResolverInfoMissingReqPtr.h>
+#include <zypp/solver/detail/ResolverInfo.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : ResolverInfoMissingReq
+
+class ResolverInfoMissingReq : public ResolverInfo {
+
+    REP_BODY(ResolverInfoMissingReq);
+
+  private:
+
+    constDependencyPtr _missing_req;
+
+  public:
+
+    ResolverInfoMissingReq (constResolvablePtr resolvable, constDependencyPtr missing_req);
+    virtual ~ResolverInfoMissingReq();
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const ResolverInfoMissingReq & context);
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+    friend std::ostream& operator<<(std::ostream&, const ResolverInfoMissingReq & context);
+    std::string asString (void ) const;
+
+    // ---------------------------------- accessors
+
+    // ---------------------------------- methods
+
+    virtual ResolverInfoPtr copy (void) const;
+
+};
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+#endif // _ResolverInfoMissingReq_h
diff --git a/zypp/solver/detail/ResolverInfoMissingReqPtr.h b/zypp/solver/detail/ResolverInfoMissingReqPtr.h
new file mode 100644 (file)
index 0000000..6202992
--- /dev/null
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfoMissingReqPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ResolverInfoMissingReqPtr_h
+#define _ResolverInfoMissingReqPtr_h
+
+#include <y2util/RepDef.h>
+#include <zypp/solver/detail/ResolverInfoPtr.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : ResolverInfoMissingReqPtr
+//     CLASS NAME : constResolverInfoMissingReqPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_DERIVED_POINTER(ResolverInfoMissingReq, ResolverInfo);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _ResolverInfoMissingReqPtr_h
diff --git a/zypp/solver/detail/ResolverInfoNeededBy.cc b/zypp/solver/detail/ResolverInfoNeededBy.cc
new file mode 100644 (file)
index 0000000..23efd4e
--- /dev/null
@@ -0,0 +1,99 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfoNeededBy.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <map>
+
+#include <zypp/solver/detail/ResolverInfo.h>
+#include <zypp/solver/detail/ResolverInfoNeededBy.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_DERIVED_POINTER(ResolverInfoNeededBy, ResolverInfo);
+
+//---------------------------------------------------------------------------
+
+
+string
+ResolverInfoNeededBy::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+ResolverInfoNeededBy::toString ( const ResolverInfoNeededBy & by)
+{
+    string res;
+
+    res += ResolverInfo::toString (by, false);
+    res += string (" needed by ") + by.resolvablesToString(false);
+
+    return res;
+}
+
+
+ostream &
+ResolverInfoNeededBy::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const ResolverInfoNeededBy & by)
+{
+    return os << by.asString();
+}
+
+//---------------------------------------------------------------------------
+
+ResolverInfoNeededBy::ResolverInfoNeededBy (constResolvablePtr resolvable)
+    : ResolverInfoContainer (RESOLVER_INFO_TYPE_NEEDED_BY, resolvable, RESOLVER_INFO_PRIORITY_USER, NULL)
+{
+}
+
+
+ResolverInfoNeededBy::~ResolverInfoNeededBy ()
+{
+}
+
+//---------------------------------------------------------------------------
+
+ResolverInfoPtr
+ResolverInfoNeededBy::copy (void) const
+{
+    ResolverInfoNeededByPtr cpy = new ResolverInfoNeededBy(resolvable());
+
+    ((ResolverInfoContainerPtr)cpy)->copy (this);
+
+    return cpy;
+}
+
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/ResolverInfoNeededBy.h b/zypp/solver/detail/ResolverInfoNeededBy.h
new file mode 100644 (file)
index 0000000..47c419d
--- /dev/null
@@ -0,0 +1,65 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfoNeededBy.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ResolverInfoNeededBy_h
+#define _ResolverInfoNeededBy_h
+
+#include <zypp/solver/detail/ResolverInfoNeededByPtr.h>
+#include <zypp/solver/detail/ResolverInfoContainer.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : ResolverInfoNeededBy
+
+class ResolverInfoNeededBy : public ResolverInfoContainer {
+
+    REP_BODY(ResolverInfoNeededBy);
+
+  private:
+
+  public:
+
+    ResolverInfoNeededBy (constResolvablePtr resolvable);
+    virtual ~ResolverInfoNeededBy();
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const ResolverInfoNeededBy & context);
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+    friend std::ostream& operator<<(std::ostream&, const ResolverInfoNeededBy & context);
+    std::string asString (void ) const;
+
+    // ---------------------------------- accessors
+
+    // ---------------------------------- methods
+
+    virtual ResolverInfoPtr copy (void) const;
+};
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+#endif // _ResolverInfoNeededBy_h
diff --git a/zypp/solver/detail/ResolverInfoNeededByPtr.h b/zypp/solver/detail/ResolverInfoNeededByPtr.h
new file mode 100644 (file)
index 0000000..33b0e98
--- /dev/null
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfoNeededByPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ResolverInfoNeededByPtr_h
+#define _ResolverInfoNeededByPtr_h
+
+#include <y2util/RepDef.h>
+#include <zypp/solver/detail/ResolverInfoPtr.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : ResolverInfoNeededByPtr
+//     CLASS NAME : constResolverInfoNeededByPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_DERIVED_POINTER(ResolverInfoNeededBy, ResolverInfo);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _ResolverInfoNeededByPtr_h
diff --git a/zypp/solver/detail/ResolverInfoObsoletes.cc b/zypp/solver/detail/ResolverInfoObsoletes.cc
new file mode 100644 (file)
index 0000000..f65dfed
--- /dev/null
@@ -0,0 +1,99 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfoObsoletes.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <map>
+
+#include <zypp/solver/detail/ResolverInfo.h>
+#include <zypp/solver/detail/ResolverInfoObsoletes.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_DERIVED_POINTER(ResolverInfoObsoletes, ResolverInfo);
+
+//---------------------------------------------------------------------------
+
+
+string
+ResolverInfoObsoletes::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+ResolverInfoObsoletes::toString ( const ResolverInfoObsoletes & obsoletes)
+{
+    string res;
+
+    res += ResolverInfo::toString (obsoletes);
+    res += string ("replaced by ") + obsoletes.resolvablesToString(false);
+
+    return res;
+}
+
+
+ostream &
+ResolverInfoObsoletes::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const ResolverInfoObsoletes & obsoletes)
+{
+    return os << obsoletes.asString();
+}
+
+//---------------------------------------------------------------------------
+
+ResolverInfoObsoletes::ResolverInfoObsoletes (constResolvablePtr resolvable, constResolvablePtr obsoletes)
+    : ResolverInfoContainer (RESOLVER_INFO_TYPE_OBSOLETES, resolvable, RESOLVER_INFO_PRIORITY_USER, obsoletes)
+{
+}
+
+
+ResolverInfoObsoletes::~ResolverInfoObsoletes ()
+{
+}
+
+//---------------------------------------------------------------------------
+
+ResolverInfoPtr
+ResolverInfoObsoletes::copy (void) const
+{
+    ResolverInfoObsoletesPtr cpy = new ResolverInfoObsoletes(resolvable(), NULL);
+
+    ((ResolverInfoContainerPtr)cpy)->copy (this);
+
+    return cpy;
+}
+
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/ResolverInfoObsoletes.h b/zypp/solver/detail/ResolverInfoObsoletes.h
new file mode 100644 (file)
index 0000000..4ecd088
--- /dev/null
@@ -0,0 +1,66 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfoObsoletes.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ResolverInfoObsoletes_h
+#define _ResolverInfoObsoletes_h
+
+#include <zypp/solver/detail/ResolverInfoObsoletesPtr.h>
+#include <zypp/solver/detail/ResolverInfoContainer.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : ResolverInfoObsoletes
+
+class ResolverInfoObsoletes : public ResolverInfoContainer {
+
+    REP_BODY(ResolverInfoObsoletes);
+
+  private:
+
+  public:
+
+    ResolverInfoObsoletes (constResolvablePtr resolvable, constResolvablePtr obsoletes);
+    virtual ~ResolverInfoObsoletes();
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const ResolverInfoObsoletes & context);
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+    friend std::ostream& operator<<(std::ostream&, const ResolverInfoObsoletes & context);
+    std::string asString (void ) const;
+
+    // ---------------------------------- accessors
+
+    // ---------------------------------- methods
+
+    virtual ResolverInfoPtr copy (void) const;
+};
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+#endif // _ResolverInfoObsoletes_h
diff --git a/zypp/solver/detail/ResolverInfoObsoletesPtr.h b/zypp/solver/detail/ResolverInfoObsoletesPtr.h
new file mode 100644 (file)
index 0000000..6f4dd00
--- /dev/null
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfoObsoletesPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ResolverInfoObsoletesPtr_h
+#define _ResolverInfoObsoletesPtr_h
+
+#include <y2util/RepDef.h>
+#include <zypp/solver/detail/ResolverInfoPtr.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : ResolverInfoObsoletesPtr
+//     CLASS NAME : constResolverInfoObsoletesPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_DERIVED_POINTER(ResolverInfoObsoletes, ResolverInfo);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _ResolverInfoObsoletesPtr_h
diff --git a/zypp/solver/detail/ResolverInfoPtr.h b/zypp/solver/detail/ResolverInfoPtr.h
new file mode 100644 (file)
index 0000000..f91d3fd
--- /dev/null
@@ -0,0 +1,40 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverInfoPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ResolverInfoPtr_h
+#define _ResolverInfoPtr_h
+
+#include <y2util/RepDef.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : ResolverInfoPtr
+//     CLASS NAME : constResolverInfoPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_BASE_POINTER(ResolverInfo);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _ResolverInfoPtr_h
diff --git a/zypp/solver/detail/ResolverPtr.h b/zypp/solver/detail/ResolverPtr.h
new file mode 100644 (file)
index 0000000..87fed4d
--- /dev/null
@@ -0,0 +1,40 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ResolverPtr_h
+#define _ResolverPtr_h
+
+#include <y2util/RepDef.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : ResolverPtr
+//     CLASS NAME : constResolverPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_BASE_POINTER(Resolver);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _ResolverPtr_h
diff --git a/zypp/solver/detail/ResolverQueue.cc b/zypp/solver/detail/ResolverQueue.cc
new file mode 100644 (file)
index 0000000..69dfc59
--- /dev/null
@@ -0,0 +1,446 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverQueue.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <map>
+
+#include <zypp/solver/detail/ResolverQueue.h>
+#include <zypp/solver/detail/QueueItemBranch.h>
+#include <zypp/solver/detail/QueueItemConflict.h>
+#include <zypp/solver/detail/QueueItemGroup.h>
+#include <zypp/solver/detail/QueueItemInstall.h>
+#include <zypp/solver/detail/QueueItemRequire.h>
+#include <zypp/solver/detail/QueueItemUninstall.h>
+#include <zypp/solver/detail/ResolverContext.h>
+#include <zypp/solver/detail/Version.h>
+
+#include <y2util/stringutil.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_BASE_POINTER(ResolverQueue);
+
+//---------------------------------------------------------------------------
+
+
+//---------------------------------------------------------------------------
+
+string
+ResolverQueue::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+ResolverQueue::toString ( const ResolverQueue & resolverqueue )
+{
+    string res;
+
+    res += stringutil::form ("Context [%p]", (const void *)resolverqueue._context);
+    res +=  ", Items:\n\t";
+    res += QueueItem::toString (resolverqueue._items, ",\n\t");
+
+    return res;
+}
+
+
+ostream &
+ResolverQueue::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const ResolverQueue & resolverqueue)
+{
+    return os << resolverqueue.asString();
+}
+
+//---------------------------------------------------------------------------
+
+ResolverQueue::ResolverQueue (ResolverContextPtr context)
+    : _context (context)
+{
+    if (context == NULL)
+       _context = new ResolverContext();
+}
+
+
+ResolverQueue::~ResolverQueue()
+{
+}
+
+//---------------------------------------------------------------------------
+
+void
+ResolverQueue::addResolvableToInstall (constResolvablePtr resolvable)
+{
+    QueueItemInstallPtr item;
+
+    if (_context->resolvableIsPresent (resolvable)) {
+       printf ("%s is already installed", ((constSpecPtr)resolvable)->asString().c_str());
+       return;
+    }
+
+    item = new QueueItemInstall (_context->world(), resolvable);
+    item->setExplicitlyRequested ();
+
+    addItem (item);
+}
+
+
+void
+ResolverQueue::addResolvableToRemove (constResolvablePtr resolvable, bool remove_only_mode)
+{
+    QueueItemUninstallPtr item;
+
+    if (_context->resolvableIsAbsent (resolvable))
+       return;
+
+    item = new QueueItemUninstall (_context->world(), resolvable, "user request");
+    if (remove_only_mode)
+       item->setRemoveOnly ();
+
+    item->setExplicitlyRequested ();
+
+    addItem (item);
+}
+
+
+void
+ResolverQueue::addResolvableToVerify (constResolvablePtr resolvable)
+{
+    WorldPtr world;
+    
+    world = _context->world ();
+
+    CDependencyList requires = resolvable->requires();
+    for (CDependencyList::const_iterator iter = requires.begin(); iter != requires.end(); iter++) {
+       QueueItemRequirePtr item = new QueueItemRequire (world, *iter);
+       item->addResolvable (resolvable);
+       addItem (item);
+    }
+
+    CDependencyList conflicts = resolvable->conflicts();
+    for (CDependencyList::const_iterator iter = conflicts.begin(); iter != conflicts.end(); iter++) {
+       QueueItemConflictPtr item = new QueueItemConflict (world, *iter, resolvable);
+       addItem (item);
+    }
+}
+
+
+void
+ResolverQueue::addExtraDependency (constDependencyPtr dep)
+{
+    QueueItemRequirePtr item = new QueueItemRequire (_context->world(), dep);
+    addItem (item);
+}
+
+
+void
+ResolverQueue::addExtraConflict (constDependencyPtr dep)
+{
+    QueueItemConflictPtr item = new QueueItemConflict (_context->world(), dep, NULL);
+    addItem (item);
+}
+
+
+void
+ResolverQueue::addItem (QueueItemPtr item)
+{
+    _items.push_front (item);
+}
+
+
+bool
+ResolverQueue::isInvalid ()
+{
+    return _context->isInvalid();
+}
+
+
+bool
+ResolverQueue::containsOnlyBranches ()
+{
+    for (QueueItemList::const_iterator iter = _items.begin(); iter != _items.end(); iter++) {
+       if (!(*iter)->isBranch())
+           return false;
+    }
+
+    return true;
+}
+
+//---------------------------------------------------------------------------
+
+static int
+itemlist_max_priority (const QueueItemList & qil)
+{
+    int max_priority = -1;
+    for (QueueItemList::const_iterator iter = qil.begin(); iter != qil.end(); iter++) {
+       if ((*iter)->priority() > max_priority) {
+           max_priority = (*iter)->priority();
+       }
+    }
+
+    return max_priority;
+}
+
+
+
+bool
+ResolverQueue::processOnce ()
+{
+    QueueItemList new_items;
+    int max_priority;
+    bool did_something = false;
+
+    if (getenv ("QUEUE_SPEW")) fprintf (stderr, "ResolverQueue::processOnce(%s), %d items\n", asString().c_str(), (int) _items.size());
+    while ( (max_priority = itemlist_max_priority (_items)) >= 0
+           && _context->isValid () ) {
+
+       bool did_something_recently = false;
+       
+    if (getenv ("QUEUE_SPEW")) fprintf (stderr, "ResolverQueue::processOnce() inside loop\n");
+       for (QueueItemList::iterator iter = _items.begin(); iter != _items.end() && _context->isValid();) {
+           QueueItemPtr item = *iter;      
+           if (getenv ("QUEUE_SPEW")) fprintf (stderr, "=====> 1st pass: [%s]\n", item->asString().c_str());
+           QueueItemList::iterator next = iter; next++;
+           if (item && item->priority() == max_priority) {
+               if (item->process (_context, new_items)) {
+                   did_something_recently = true;
+               }
+               _items.erase (iter);
+           }
+           iter = next;
+       }
+
+       if (did_something_recently) {
+           did_something = true;
+       }
+    }
+
+    _items = new_items;
+    if (getenv ("QUEUE_SPEW")) fprintf (stderr, "%d items after first pass\n", (int) _items.size());
+
+    /* 
+       Now make a second pass over the queue, removing any super-branches.
+       (If one branch contains all of the possible items of another branch,
+       the larger branch can be dropped. 
+    */
+
+//    if (getenv ("QUEUE_SPEW")) fprintf (stderr, "ResolverQueue::processOnce() second pass\n");
+    for (QueueItemList::iterator iter = _items.begin(); iter != _items.end();) {
+       QueueItemList::iterator next = iter; next++;
+       QueueItemPtr item = *iter;
+
+       if (getenv ("QUEUE_SPEW")) fprintf (stderr, "=====> 2nd pass: [%s]\n", item->asString().c_str());
+       if (item->isBranch()) {
+           if (getenv ("QUEUE_SPEW")) fprintf (stderr, "ResolverQueue::processOnce() is branch\n");
+           QueueItemBranchPtr branch = (QueueItemBranchPtr)item;
+           for (QueueItemList::const_iterator iter2 = _items.begin(); iter2 != _items.end(); iter2++) {
+               if (getenv ("QUEUE_SPEW")) fprintf (stderr, "Compare branch with [%s]\n", (*iter2)->asString().c_str());
+               if (iter != iter2
+                   && branch->contains (*iter2)) {
+                   if (getenv ("QUEUE_SPEW")) fprintf (stderr, "Contained within, removing\n");
+                   _items.erase (iter);
+                   break;
+               }
+           }
+       }
+       iter = next;
+    }
+    if (getenv ("QUEUE_SPEW")) fprintf (stderr, "did %sthing: %d items\n", did_something ? "some" : "no", (int)_items.size());
+
+    return did_something;
+}
+
+
+void
+ResolverQueue::process ()
+{
+    bool very_noisy;
+
+    very_noisy = getenv ("RC_SPEW") != NULL;
+    
+    if (very_noisy) {
+       printf ("----- Processing -----\n");
+       spew ();
+    }
+
+    while (_context->isValid ()
+          && ! isEmpty ()
+          && processOnce ()) {
+       /* all of the work is in the conditional! */
+       if (very_noisy) {
+           spew ();
+       }
+    }
+}
+
+
+//---------------------------------------------------------------------------
+
+static ResolverQueuePtr
+copy_queue_except_for_branch (ResolverQueuePtr queue, QueueItemPtr branch_item, QueueItemPtr subitem)
+{
+    ResolverContextPtr new_context;
+    ResolverQueuePtr new_queue;
+
+    new_context = new ResolverContext (queue->context());
+    new_queue = new ResolverQueue (new_context);
+
+    QueueItemList qil = queue->items();
+    for (QueueItemList::const_iterator iter = qil.begin(); iter != qil.end(); iter++) {
+       QueueItemPtr item = *iter;
+       QueueItemPtr new_item;
+
+       if (item == branch_item) {
+           new_item = subitem->copy ();
+
+           if (new_item->isInstall()) {
+               QueueItemInstallPtr install_item = (QueueItemInstallPtr)new_item;
+
+               /* Penalties are negative priorities */
+               int penalty;
+               penalty = - queue->context()->getChannelPriority (install_item->resolvable()->channel());
+               
+               install_item->setOtherPenalty (penalty);
+           }
+
+       } else {
+
+           new_item = item->copy ();
+
+       }
+
+       new_queue->addItem (new_item);
+    }
+
+    return new_queue;
+}
+
+
+void
+ResolverQueue::splitFirstBranch (ResolverQueueList & new_queues, ResolverQueueList & deferred_queues)
+{
+    QueueItemBranchPtr first_branch = NULL;
+    typedef std::map <QueueItemPtr, QueueItemPtr> DeferTable;
+    DeferTable to_defer;
+
+    for (QueueItemList::const_iterator iter = _items.begin(); iter != _items.end() && first_branch == NULL; iter++) {
+       QueueItemPtr item = *iter;
+       if (item->isBranch()) {
+           first_branch = (QueueItemBranchPtr)item;
+       }
+    }
+
+    if (first_branch == NULL)
+       return;
+
+    /* 
+       Check for deferrable items: if we have two install items where the to-be-installed
+       resolvables have the same name, then we will defer the lower-priority install if
+       one of the following is true:
+       (1) Both resolvables have the same version
+       (2) The lower-priority channel is a previous version.
+    */
+
+    QueueItemList possible_items = first_branch->possibleItems();
+    for (QueueItemList::const_iterator iter = possible_items.begin(); iter != possible_items.end(); iter++) {
+       QueueItemList::const_iterator iter2 = iter;
+       for (iter2++; iter2 != possible_items.end(); iter2++) {
+           QueueItemPtr item = *iter;
+           QueueItemPtr item2 = *iter2;
+
+           if (item->isInstall() && item2->isInstall()) {
+               constResolvablePtr r = ((QueueItemInstallPtr) item)->resolvable();
+               constResolvablePtr r2 = ((QueueItemInstallPtr) item2)->resolvable();
+               constChannelPtr channel = r->channel();
+               constChannelPtr channel2 = r2->channel();
+               int priority, priority2;
+
+               priority = channel->getPriority (channel->isSubscribed());
+               priority2 = channel2->getPriority (channel2->isSubscribed());
+
+               if (priority != priority2 && r->name() == r2->name()) {
+                   if (r->version() == r2->version()
+                       || (priority < priority2 && GVersion.compare (r, r2) < 0)
+                       || (priority > priority2 && GVersion.compare (r, r2) > 0)) {
+
+                       if (priority < priority2)
+                           to_defer[item] = item;
+                       else /* if (priority > priority2) */
+                           to_defer[item2] = item2;
+                   }
+               }
+           }
+       }
+    }
+
+
+    for (QueueItemList::const_iterator iter = possible_items.begin(); iter != possible_items.end(); iter++) {
+       ResolverQueuePtr new_queue;
+       QueueItemPtr new_item = *iter;
+
+       new_queue = copy_queue_except_for_branch (this, (QueueItemPtr) first_branch, new_item);
+
+       DeferTable::const_iterator pos = to_defer.find (new_item);
+       if (pos != to_defer.end()) {
+           deferred_queues.push_back (new_queue);
+       } else {
+           new_queues.push_back (new_queue);
+       }
+    }
+
+}
+
+
+void
+ResolverQueue::spew ()
+{
+    printf ("Resolver Queue: %s\n", _context->isInvalid() ? "INVALID" : "");
+
+    if (_items.empty()) {
+
+       printf ("  (empty)\n");
+
+    } else {
+
+       for (QueueItemList::const_iterator iter = _items.begin(); iter != _items.end(); iter++) {
+           printf ("  %s\n", (*iter)->asString().c_str());
+       }
+
+    }
+
+    printf ("\n");
+    fflush (stdout);
+}
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/ResolverQueue.h b/zypp/solver/detail/ResolverQueue.h
new file mode 100644 (file)
index 0000000..2764ae0
--- /dev/null
@@ -0,0 +1,98 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverQueue.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ResolverQueue_h
+#define _ResolverQueue_h
+
+#include <iosfwd>
+#include <list>
+#include <map>
+#include <string.h>
+
+#include <zypp/solver/detail/ResolverQueuePtr.h>
+#include <zypp/solver/detail/ResolverContextPtr.h>
+#include <zypp/solver/detail/QueueItem.h>
+#include <zypp/solver/detail/ResolvablePtr.h>
+#include <zypp/solver/detail/DependencyPtr.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+typedef std::list <ResolverQueuePtr> ResolverQueueList;
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : ResolverQueue
+
+class ResolverQueue : public CountedRep {
+
+    REP_BODY(ResolverQueue);
+
+  private:
+
+    ResolverContextPtr _context;
+    QueueItemList _items;
+
+  public:
+    ResolverQueue (ResolverContextPtr context = NULL);
+    virtual ~ResolverQueue();
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const ResolverQueue & context);
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+    friend std::ostream& operator<<(std::ostream&, const ResolverQueue & context);
+    std::string asString (void ) const;
+
+    // ---------------------------------- accessors
+
+    ResolverContextPtr context (void) const { return _context; }
+    QueueItemList items(void) const { return _items; }
+
+    // ---------------------------------- methods
+
+
+    void addResolvableToInstall (constResolvablePtr resolvable);
+    void addResolvableToRemove (constResolvablePtr resolvable, bool remove_only_mode);
+    void addResolvableToVerify (constResolvablePtr resolvable);
+    void addExtraDependency (constDependencyPtr dep);
+    void addExtraConflict (constDependencyPtr dep);
+    void addItem (QueueItemPtr item);
+
+    bool isEmpty () const { return _items.empty(); }
+    bool isInvalid ();
+    bool containsOnlyBranches ();
+
+    bool processOnce ();
+    void process ();
+
+    void splitFirstBranch (ResolverQueueList & new_queues, ResolverQueueList & deferred_queues);
+
+    void spew ();
+
+};
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+#endif // _ResolverQueue_h
diff --git a/zypp/solver/detail/ResolverQueuePtr.h b/zypp/solver/detail/ResolverQueuePtr.h
new file mode 100644 (file)
index 0000000..26caa6c
--- /dev/null
@@ -0,0 +1,40 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ResolverQueuePtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ResolverQueuePtr_h
+#define _ResolverQueuePtr_h
+
+#include <y2util/RepDef.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : ResolverQueuePtr
+//     CLASS NAME : constResolverQueuePtr
+///////////////////////////////////////////////////////////////////
+DEFINE_BASE_POINTER(ResolverQueue);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _ResolverQueuePtr_h
diff --git a/zypp/solver/detail/Section.cc b/zypp/solver/detail/Section.cc
new file mode 100644 (file)
index 0000000..fcf60e4
--- /dev/null
@@ -0,0 +1,199 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Section.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <y2util/stringutil.h>
+
+#include <zypp/solver/detail/Section.h>
+
+#include <zypp/solver/detail/debug.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+string
+Section::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+Section::asUserString ( void ) const
+{
+    return toUserString (*this);
+}
+
+
+string
+Section::toString ( const Section & section )
+{
+    switch (section.section()) {
+    case SECTION_OFFICE:       return ("office");
+    case SECTION_IMAGING:      return ("imaging");
+    case SECTION_PIM:          return ("pim");
+    case SECTION_GAME:         return ("game");
+    case SECTION_MISC:         return ("misc");
+    case SECTION_MULTIMEDIA:   return ("multimedia");
+    case SECTION_INTERNET:     return ("internet");
+    case SECTION_UTIL:         return ("util");
+    case SECTION_SYSTEM:       return ("system");
+    case SECTION_DOC:          return ("doc");
+    case SECTION_DEVEL:                return ("devel");
+    case SECTION_DEVELUTIL:    return ("develutil");
+    case SECTION_LIBRARY:      return ("library");
+    case SECTION_XAPP:         return ("xapp");
+    default:
+       rc_debug (RC_DEBUG_LEVEL_WARNING, "invalid section number %d\n", section.section());
+    }
+    return ("misc");
+}
+
+string
+Section::toUserString ( const Section & section )
+{
+    switch (section.section()) {
+    case SECTION_OFFICE:       return ("Productivity Applications");
+    case SECTION_IMAGING:      return ("Imaging");
+    case SECTION_PIM:          return ("Personal Information Management");
+    case SECTION_GAME:         return ("Games");
+    case SECTION_MISC:         return ("Miscellaneous");
+    case SECTION_MULTIMEDIA:   return ("Multimedia");
+    case SECTION_INTERNET:     return ("Internet Applications");
+    case SECTION_UTIL:         return ("Utilities");
+    case SECTION_SYSTEM:       return ("System Packages");
+    case SECTION_DOC:          return ("Documentation");
+    case SECTION_DEVEL:                return ("Development Packages");
+    case SECTION_DEVELUTIL:    return ("Development Utilities");
+    case SECTION_LIBRARY:      return ("Libraries");
+    case SECTION_XAPP:         return ("X Applications");
+    default:
+       rc_debug (RC_DEBUG_LEVEL_WARNING, "invalid section number %d\n", section.section());
+    }
+
+    return ("Miscellaneous");
+}
+
+ostream &
+Section::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const Section& section)
+{
+    return os << section.asString();
+}
+
+//---------------------------------------------------------------------------
+
+Section::Section(const char *section_str)
+{
+    _section = SECTION_MISC;
+
+    if (section_str != NULL) {
+    switch (*section_str) {
+    case 'd':
+       if (!strcmp (section_str, "develutil")) {
+           _section = SECTION_DEVELUTIL;
+       }
+       else if (!strcmp (section_str, "devel")) {
+           _section = SECTION_DEVEL;
+       }
+       else if (!strcmp (section_str, "doc")) {
+           _section = SECTION_DOC;
+       }
+       break;
+    case 'g':
+       if (!strcmp (section_str, "game")) {
+           _section = SECTION_GAME;
+       }
+       break;
+    case 'i':
+       if (!strcmp (section_str, "imaging")) {
+           _section = SECTION_IMAGING;
+       }
+       else if (!strcmp (section_str, "internet")) {
+           _section = SECTION_INTERNET;
+       }
+       break;
+    case 'l':
+       if (!strcmp (section_str, "library")) {
+           _section = SECTION_LIBRARY;
+       }
+       break;
+    case 'm':
+       if (!strcmp (section_str, "misc")) {
+           _section = SECTION_MISC;
+       }
+       else if (!strcmp (section_str, "multimedia")) {
+           _section = SECTION_MULTIMEDIA;
+       }
+       break;
+    case 'o':
+       if (!strcmp (section_str, "office")) {
+           _section = SECTION_OFFICE;
+       }
+       break;
+    case 'p':
+       if (!strcmp (section_str, "pim")) {
+           _section = SECTION_PIM;
+       }
+       break;
+    case 's':
+       if (!strcmp (section_str, "system")) {
+           _section = SECTION_SYSTEM;
+       }
+       break;
+    case 'u':
+       if (!strcmp (section_str, "util")) {
+           _section = SECTION_UTIL;
+       }
+       break;
+    case 'x':
+       if (!strcmp (section_str, "xapp")) {
+           _section = SECTION_XAPP;
+       }
+       break;
+    default:
+       rc_debug (RC_DEBUG_LEVEL_WARNING, "invalid section name %s\n", section_str);
+       break;
+    }
+    } // if != NULL
+
+}
+
+
+Section::~Section()
+{
+}
+
+
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/Section.h b/zypp/solver/detail/Section.h
new file mode 100644 (file)
index 0000000..de6e41f
--- /dev/null
@@ -0,0 +1,103 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Section.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _Section_h
+#define _Section_h
+
+#include <iosfwd>
+#include <string.h>
+
+#include <y2util/Ustring.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : Section
+/**
+ *
+ **/
+class Section {
+
+  private:
+
+    typedef enum {
+       SECTION_OFFICE = 0,
+       SECTION_IMAGING,
+       SECTION_PIM,
+       SECTION_XAPP,
+       SECTION_GAME,
+       SECTION_MULTIMEDIA,
+       SECTION_INTERNET,
+       SECTION_UTIL,
+       SECTION_SYSTEM,
+       SECTION_DOC,
+       SECTION_LIBRARY,
+       SECTION_DEVEL,
+       SECTION_DEVELUTIL,
+       SECTION_MISC,
+       SECTION_LAST
+    } section_t;
+
+    section_t _section;
+
+  private:
+    section_t section () const { return _section; }
+
+  public:
+
+    Section(const char *section_str);
+    virtual ~Section();
+
+    // ---------------------------------- I/O
+
+    static std::string toString ( const Section & section);
+    static std::string toUserString ( const Section & section);
+
+    virtual std::ostream & dumpOn( std::ostream & str ) const;
+
+    friend std::ostream& operator<<( std::ostream&, const Section & section);
+
+    std::string asString ( void ) const;
+    std::string asUserString ( void ) const;
+
+    // ---------------------------------- accessors
+
+    // equality
+    bool operator==( const Section & section) const {
+       return _section == section.section();
+    }
+
+    // inequality
+    bool operator!=( const Section & section) const {
+       return !(*this == section);
+    }
+
+};
+
+typedef Section * SectionPtr;
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _Section_h
diff --git a/zypp/solver/detail/ServiceWorld.cc b/zypp/solver/detail/ServiceWorld.cc
new file mode 100644 (file)
index 0000000..4d90117
--- /dev/null
@@ -0,0 +1,81 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ServiceWorld.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <zypp/solver/detail/ServiceWorld.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_DERIVED_POINTER(ServiceWorld, World);
+
+//---------------------------------------------------------------------------
+
+string
+ServiceWorld::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+ServiceWorld::toString ( const ServiceWorld & service )
+{
+    return "<serviceworld/>";
+}
+
+
+ostream &
+ServiceWorld::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const ServiceWorld & service)
+{
+    return os << service.asString();
+}
+
+//---------------------------------------------------------------------------
+
+ServiceWorld::ServiceWorld ()
+    : StoreWorld (SERVICE_WORLD)
+{
+}
+
+
+ServiceWorld::~ServiceWorld()
+{
+    fprintf (stderr, "*** deleting service world[%p]: %s\n", this, World::toString(type()).c_str());
+}
+
+//---------------------------------------------------------------------------
+
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/ServiceWorld.h b/zypp/solver/detail/ServiceWorld.h
new file mode 100644 (file)
index 0000000..81653e3
--- /dev/null
@@ -0,0 +1,88 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ServiceWorld.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ServiceWorld_h
+#define _ServiceWorld_h
+
+#include <iosfwd>
+#include <string.h>
+
+#include <zypp/solver/detail/ServiceWorldPtr.h>
+#include <zypp/solver/detail/StoreWorld.h>
+#include <zypp/solver/detail/Channel.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+typedef bool (*ServiceWorldAssembleFn) (ServiceWorldPtr service, void *error); // GError **error
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : ServiceWorld
+
+class ServiceWorld : public StoreWorld {
+    REP_BODY(ServiceWorld);
+
+  private:
+
+    char *_url;
+    char *_name;
+    char *_unique_id;
+
+    bool _is_sticky;           // if true, can't be unmounted
+    bool _is_invisible;                // ... to users
+    bool _is_unsaved;          // Never save into the services.xml file
+    bool _is_singleton;                // only one such service at a time.  FIXME: broken
+
+    ServiceWorldAssembleFn _assemble_fn;
+
+  public:
+
+    ServiceWorld ();
+    virtual ~ServiceWorld();
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const ServiceWorld & section);
+
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+
+    friend std::ostream& operator<<(std::ostream&, const ServiceWorld & section);
+
+    std::string asString (void ) const;
+
+    // ---------------------------------- accessors
+
+    char *url () const { return _url; }
+    char *name () const { return _name; }
+    void setName (const char *name) { _name = strdup (name); }
+    char *unique_id () const { return _unique_id; }
+
+    // ---------------------------------- methods
+
+};
+    
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _ServiceWorld_h
diff --git a/zypp/solver/detail/ServiceWorldPtr.h b/zypp/solver/detail/ServiceWorldPtr.h
new file mode 100644 (file)
index 0000000..00429bd
--- /dev/null
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ServiceWorldPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _ServiceWorldPtr_h
+#define _ServiceWorldPtr_h
+
+#include <y2util/RepDef.h>
+#include <zypp/solver/detail/WorldPtr.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : ServiceWorldPtr
+//     CLASS NAME : constServiceWorldPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_DERIVED_POINTER(ServiceWorld, World);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _ServiceWorldPtr_h
diff --git a/zypp/solver/detail/Spec.cc b/zypp/solver/detail/Spec.cc
new file mode 100644 (file)
index 0000000..f968163
--- /dev/null
@@ -0,0 +1,227 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Spec.cc
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * Definition of 'edition'
+ *  contains epoch-version-release-arch
+ *  and comparision functions
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <zypp/solver/detail/Spec.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_BASE_POINTER(Spec);
+
+//---------------------------------------------------------------------------
+
+UstringHash Name::_nameHash;
+UstringHash Kind::_kindHash;
+const Kind & Kind::Unknown = Kind("");
+const Kind & Kind::Package = Kind("package");
+const Kind & Kind::Patch = Kind("patch");
+const Kind & Kind::Script = Kind("script");
+const Kind & Kind::Message = Kind("message");
+const Kind & Kind::Selection = Kind("selection");
+const Kind & Kind::Product = Kind("product");
+
+//---------------------------------------------------------------------------
+
+string
+Spec::asString ( bool full ) const
+{
+    return toString (*this, full);
+}
+
+
+string
+Spec::toString ( const Spec & spec, bool full )
+{
+    string res;
+
+    if (full
+       || (spec.kind() != Kind::Package
+           && spec.kind() != Kind::Unknown)) {
+       res += spec.kind().asString();
+       res += ":";
+    }
+
+    res += spec.name();
+
+    string ed = spec.edition()->asString (full);
+    if (!ed.empty()) {
+       res += "-";
+       res += ed;
+    }
+
+    return res;
+}
+
+
+ostream &
+Spec::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const Spec& spec)
+{
+    return os << spec.asString();
+}
+
+//---------------------------------------------------------------------------
+
+Spec::Spec (const Kind & kind, const string & name, constEditionPtr edition)
+    : _kind (kind)
+    , _name (Name (name))
+    , _edition (edition == NULL ? new Edition() : edition->copy())
+{
+}
+
+
+Spec::Spec ( const Kind & kind, const string & name, int epoch, const string & version, const string & release, const Arch * arch)
+    : _kind (kind)
+    , _name (Name (name))
+    , _edition (new Edition (epoch, version, release, arch))
+{
+}
+
+
+Spec::Spec (constXmlNodePtr node)
+    : _kind (Kind::Unknown)
+{
+    fprintf (stderr, "Spec::Spec (constXmlNodePtr node)\nNot implemented\n");
+    abort();
+}
+
+
+Spec::~Spec()
+{
+}
+
+
+// needed during xml parsing (-> XmlParser)
+
+constSpecPtr
+Spec::copy (void) const
+{
+    return new Spec (_kind, _name, _edition);
+}
+
+
+#if 0
+xmlNode *
+rc_resolvable_spec_to_xml_node (RCResolvableSpec *spec)
+{
+    xmlNode *spec_node;
+    char buffer[128];
+
+    spec_node = xmlNewNode (NULL, "spec");
+
+    xmlNewTextChild (spec_node, NULL, "name",
+                    g_quark_to_string (spec->nameq));
+
+    if (spec->has_epoch) {
+       g_snprintf (buffer, 128, "%d", spec->epoch);
+       xmlNewTextChild (spec_node, NULL, "epoch", buffer);
+    }
+
+    xmlNewTextChild (spec_node, NULL, "version", spec->version);
+
+    if (spec->release)
+       xmlNewTextChild (spec_node, NULL, "release", spec->release);
+
+    xmlNewTextChild (spec_node, NULL, "arch",
+                    rc_arch_to_string (spec->arch));
+
+    return spec_node;
+}
+
+#endif
+
+//---------------------------------------------------------------------------
+
+
+HashValue
+Spec::hash (void) const
+{
+    HashValue ret = _edition->epoch() + 1;
+    const char *spec_strs[3], *p;
+    int i;
+
+    spec_strs[0] = _name.asString().c_str();
+    spec_strs[1] = _edition->version().c_str();
+    spec_strs[2] = _edition->release().c_str();
+
+    for (i = 0; i < 3; ++i) {
+       p = spec_strs[i];
+       if (p) {
+           for (p += 1; *p != '\0'; ++p) {
+               ret = (ret << 5) - ret + *p;
+           }
+       } else {
+           ret = ret * 17;
+       }
+    }
+
+    return ret;
+}
+
+
+const Spec *
+Spec::findByName (const SpecList &speclist, const Name & name) const
+{
+    const Spec *spec = NULL;
+    for (SpecList::const_iterator iter = speclist.begin(); iter != speclist.end(); iter++) {
+       if ((*iter).name() == name) {
+           spec = &(*iter);
+           break;
+       }
+    }
+    return spec;
+}
+
+
+bool
+Spec::match(constSpecPtr spec) const {
+    return ((_kind == spec->kind())
+       && (_name == spec->name())
+       && _edition->match (spec->edition()));
+}
+
+
+bool
+Spec::equals(constSpecPtr spec) const {
+//fprintf (stderr, "<%s> equals <%s>\n", asString(true).c_str(), spec->asString(true).c_str());
+    return ((_kind == spec->kind())
+       && (_name == spec->name())
+       && _edition->equals(spec->edition()));
+}
+
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/Spec.h b/zypp/solver/detail/Spec.h
new file mode 100644 (file)
index 0000000..b51b37c
--- /dev/null
@@ -0,0 +1,177 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Spec.h  resolvable specification: name + edition
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _Spec_h
+#define _Spec_h
+
+#include <list>
+#include <iosfwd>
+#include <string.h>
+
+#include <y2util/Ustring.h>
+
+#include <zypp/solver/detail/Hash.h>
+#include <zypp/solver/detail/SpecPtr.h>
+#include <zypp/solver/detail/XmlNode.h>
+#include <zypp/solver/detail/Edition.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//
+//      CLASS NAME : Name
+/**
+ * A resolvable name
+ **/
+
+class Name : public Ustring {
+
+  private:
+
+    static UstringHash _nameHash;
+
+  public:
+
+    explicit Name( const std::string & n = "" ) : Ustring( _nameHash, n ) {}
+};
+
+///////////////////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////////
+//
+//      CLASS NAME : Kind
+/**
+ * A spec kind (package, patch, ...)
+ **/
+
+class Kind : public Ustring {
+
+  private:
+
+    static UstringHash _kindHash;
+
+    explicit Kind( const std::string & t = "" ) : Ustring( _kindHash, t ) {}
+
+  public:
+
+    static const Kind & Unknown;
+    static const Kind & Package;
+    static const Kind & Patch;
+    static const Kind & Script;
+    static const Kind & Message;
+    static const Kind & Selection;
+    static const Kind & Product;
+};
+
+///////////////////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : Spec
+/**
+ *
+ **/
+
+class Spec : public CountedRep {
+    REP_BODY(Spec);
+
+  private:
+    Kind _kind;
+    Name _name;
+    EditionPtr _edition;
+
+  public:
+    typedef std::list<Spec> SpecList;
+
+    Spec( const Kind & kind,
+         const std::string & name,
+         int epoch = -1,
+         const std::string & version = "",
+         const std::string & release = "",
+         const Arch * arch = Arch::Unknown);
+
+    Spec (const Kind & kind, const std::string & name, constEditionPtr edition);
+
+    Spec (constXmlNodePtr node);
+
+    virtual ~Spec();
+
+    // ---------------------------------- I/O
+
+    const xmlNodePtr asXmlNode (const char *name) const;
+
+    static std::string toString ( const Spec & spec, bool full = false );
+
+    virtual std::ostream & dumpOn( std::ostream & str ) const;
+
+    friend std::ostream& operator<<( std::ostream&, const Spec& );
+
+    std::string asString ( bool full = false ) const;
+
+    // ---------------------------------- accessors
+
+    const std::string & version() const { return _edition->version(); }
+    void setVersion (const std::string & version) { _edition->setVersion (version); }
+
+    const std::string & release() const { return _edition->release(); }
+    void setRelease (const std::string & release) { _edition->setRelease (release); }
+
+    const int epoch() const { return _edition->epoch(); }
+    void setEpoch (int epoch) { _edition->setEpoch (epoch); }
+    bool hasEpoch() const { return _edition->hasEpoch(); }
+
+    const Arch * arch() const { return _edition->arch(); }
+    void setArch (const Arch * arch) { _edition->setArch (arch); }
+    void setArch (const std::string & arch) { _edition->setArch (arch); }
+
+    const Kind & kind() const { return _kind; }
+    void setKind (const Kind & kind) { _kind = kind; }
+
+    const std::string name() const { return _name; }
+    void setName (const std::string & name) { _name = Name(name.c_str()); }
+
+    constEditionPtr edition() const { return _edition; }
+    void setEdition (constEditionPtr edition) { _edition = edition->copy(); }
+
+    // calculate hash
+    HashValue hash (void) const;
+
+    // match operator
+    bool match(constSpecPtr spec) const;
+    bool equals (constSpecPtr spec) const;
+
+    // find spec in SpecList by name
+    const Spec * findByName (const SpecList &speclist, const Name & name) const;
+
+    // copy
+
+    constSpecPtr copy (void) const;
+};
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _Spec_h
diff --git a/zypp/solver/detail/SpecPtr.h b/zypp/solver/detail/SpecPtr.h
new file mode 100644 (file)
index 0000000..8b94645
--- /dev/null
@@ -0,0 +1,40 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* SpecPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _SpecPtr_h
+#define _SpecPtr_h
+
+#include <y2util/RepDef.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : SpecPtr
+//     CLASS NAME : constSpecPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_BASE_POINTER(Spec);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _SpecPtr_h
diff --git a/zypp/solver/detail/StoreWorld.cc b/zypp/solver/detail/StoreWorld.cc
new file mode 100644 (file)
index 0000000..4ee8d49
--- /dev/null
@@ -0,0 +1,724 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* StoreWorld.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <y2util/stringutil.h>
+
+#include <zypp/solver/detail/Version.h>
+#include <zypp/solver/detail/Packman.h>
+#include <zypp/solver/detail/StoreWorld.h>
+#include <zypp/solver/detail/ResolvableAndDependency.h>
+#include <zypp/solver/detail/debug.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_DERIVED_POINTER(StoreWorld, World);
+
+//---------------------------------------------------------------------------
+
+string
+StoreWorld::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+StoreWorld::toString ( const StoreWorld & storeworld )
+{
+    string res ("<storeworld/>");
+
+    return res;
+}
+
+
+ostream &
+StoreWorld::dumpOn (ostream & str) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream &
+operator<< (ostream & os, const StoreWorld & storeworld)
+{
+    return os << storeworld.asString();
+}
+
+//---------------------------------------------------------------------------
+
+StoreWorld::StoreWorld (WorldType type)
+    : World (type)
+    , _resolvable_kind(Kind::Unknown)
+{
+}
+
+
+StoreWorld::~StoreWorld()
+{
+    fprintf (stderr, "*** deleting store world[%p]: %s\n", this, World::toString(type()).c_str());
+}
+
+
+//---------------------------------------------------------------------------
+
+// Add/remove resolvables
+
+bool
+StoreWorld::addResolvable (constResolvablePtr resolvable)
+{
+    ArchList compat_arch_list;
+    ResolvableAndDependencyPtr r_and_d;
+    const char *package_name;
+    constChannelPtr channel;
+    int arch_score;
+    bool actually_added_package = false;
+
+    if (resolvable == NULL) return false;
+
+    compat_arch_list = Arch::System->getCompatList();
+//fprintf (stderr, "Arch::System '%s' -> %d compats\n", Arch::System->asString().c_str(), (int) compat_arch_list.size());
+    channel = resolvable->channel ();
+
+//    fprintf (stderr, "StoreWorld[%p]::addResolvable(%s) [%s]\n", this, ((constSpecPtr)resolvable)->asString().c_str(), channel?channel->name():"?");
+
+    arch_score = resolvable->arch()->getCompatScore(compat_arch_list);
+
+    /* Before we do anything, check to make sure that a resolvable of the
+       same name isn't already in that channel.  If there is a
+       duplicate, we keep the one with the most recent version number
+       and drop the other.
+
+       This check only applies to resolvables in a channel.  We have
+       to allow for multiple installs.  Grrrr...
+    */
+
+    if (!resolvable->isInstalled ()) {                 // its not a system package
+
+       constResolvablePtr dup_res;
+       int dup_arch_score;
+
+       /* Filter out resolvables with totally incompatible arches */
+       if (arch_score < 0) {
+           rc_debug (RC_DEBUG_LEVEL_DEBUG, "Ignoring resolvable with incompatible arch: Arch '%s', %s",  resolvable->arch()->asString().c_str(), resolvable->asString(true).c_str());
+           goto finished;
+       }
+
+       package_name = resolvable->name().c_str();
+       dup_res = findResolvable (channel, package_name);
+
+       /* This shouldn't happen (and would be caught by the check
+          below, because cmp will equal 0), but it never hurts to
+          check and produce a more explicit warning message. */
+
+       if (resolvable == dup_res) {
+           rc_debug (RC_DEBUG_LEVEL_WARNING, "Ignoring re-add of resolvable '%s'", package_name);
+           goto finished;
+       }
+
+       if (dup_res != NULL) {
+           int cmp;
+
+           cmp = GVersion.compare (resolvable, dup_res);
+//fprintf (stderr, "res: %s, dup_res %s, cmp %d\n", resolvable->asString().c_str(), dup_res->asString().c_str(), cmp);
+           dup_arch_score = dup_res->arch()->getCompatScore(compat_arch_list);
+       
+
+           /* If the resolvable we are trying to add has a lower 
+              version number, just ignore it. */
+
+           if (cmp < 0) {
+               rc_debug (RC_DEBUG_LEVEL_INFO, "Not adding resolvable '%s'.\n\tA newer version is already in the channel.", resolvable->asString().c_str());
+               rc_debug (RC_DEBUG_LEVEL_INFO, "\t%s", dup_res->asString().c_str());
+               goto finished;
+           }
+
+
+           /* If the version numbers are equal, we ignore the resolvable to
+              add if it has a less-preferable arch.  If both
+              resolvables have the same version # and arch, we favor the
+              first resolvable and just return. */
+
+           if (cmp == 0 && arch_score > dup_arch_score) {
+               rc_debug (RC_DEBUG_LEVEL_INFO, "Not adding resolvable '%s'.\n\tAnother resolvable with the same version but with a preferred arch is already in the channel.", resolvable->asString().c_str());
+               rc_debug (RC_DEBUG_LEVEL_INFO, "\t%s", dup_res->asString().c_str());
+               goto finished;
+           }
+
+
+           /* Otherwise we throw out the old resolvable and proceed with
+              adding the newer one. */
+
+           rc_debug (RC_DEBUG_LEVEL_INFO, "Replacing resolvable '%s'.\n\tAnother resolvable in the channel has the same name and a superior %s.",  dup_res->asString().c_str(), cmp ? "version" : "arch");
+           rc_debug (RC_DEBUG_LEVEL_INFO, "\t%s", resolvable->asString().c_str());
+
+           removeResolvable (dup_res);
+       }
+    }
+
+    actually_added_package = true;
+
+    if (channel && !channel->hidden()) {
+       touchResolvableSequenceNumber ();
+    }
+
+    /* StoreWorld all of our resolvables in a hash by name. */
+    _resolvables_by_name.insert (ResolvableTable::value_type (resolvable->name(), resolvable));
+
+    /* StoreWorld all of the resolvable's provides in a hash by name. */
+    for (CDependencyList::const_iterator i = resolvable->provides().begin(); i != resolvable->provides().end(); i++) {
+       r_and_d = new ResolvableAndDependency (resolvable, *i);
+
+       _provides_by_name.insert (ResolvableAndDependencyTable::value_type (r_and_d->dependency()->name(), r_and_d));
+    }
+
+    /* StoreWorld all of the resolvable's requires in a hash by name. */
+
+    for (CDependencyList::const_iterator i = resolvable->requires().begin(); i != resolvable->requires().end(); i++) {
+       r_and_d = new ResolvableAndDependency (resolvable, *i);
+
+       _requires_by_name.insert (ResolvableAndDependencyTable::value_type (r_and_d->dependency()->name(), r_and_d));
+    }
+
+    /* "Recommends" are treated as requirements. */
+#warning Recommends are treated as requirements
+
+    for (CDependencyList::const_iterator i = resolvable->recommends().begin(); i != resolvable->recommends().end(); i++) {
+       r_and_d = new ResolvableAndDependency (resolvable, *i);
+
+       _requires_by_name.insert (ResolvableAndDependencyTable::value_type (r_and_d->dependency()->name(), r_and_d));
+    }
+
+    /* StoreWorld all of the resolvable's conflicts in a hash by name. */
+
+    for (CDependencyList::const_iterator i = resolvable->conflicts().begin(); i != resolvable->conflicts().end(); i++) {
+       r_and_d = new ResolvableAndDependency (resolvable, *i);
+       _conflicts_by_name.insert (ResolvableAndDependencyTable::value_type (r_and_d->dependency()->name(), r_and_d));
+    }
+    
+ finished:
+
+    return actually_added_package;
+}
+
+
+void
+StoreWorld::addResolvablesFromList (const CResolvableList & slist)
+{
+    for (CResolvableList::const_iterator i = slist.begin(); i != slist.end(); i++) {
+       if (!addResolvable (*i)) {
+           fprintf (stderr, "addResolvable failed\n");
+           break;
+       }
+    }
+    return;
+}
+
+//---------------------------------------------------------------------------
+
+static void
+resolvable_table_remove (ResolvableTable & table, constResolvablePtr resolvable)
+{
+    const string name = resolvable->name();
+    for (ResolvableTable::iterator pos = table.lower_bound(name); pos != table.upper_bound(name); pos++) {
+       constResolvablePtr res = pos->second;
+       if (res == resolvable) {
+           table.erase (pos);
+           break;
+       }
+    }
+    return;
+}
+
+
+static void
+resolvable_and_dependency_table_remove (ResolvableAndDependencyTable & table, constResolvablePtr resolvable)
+{
+    const string name = resolvable->name();
+// FIXME: this is inefficient but lower_bound can't to strcasecmp :-(
+//    for (ResolvableAndDependencyTable::iterator pos = table.lower_bound(name); pos != table.upper_bound(name); pos++) {
+    for (ResolvableAndDependencyTable::iterator pos = table.begin(); pos != table.end(); pos++) {
+       constResolvableAndDependencyPtr r_and_d = pos->second;
+       if (r_and_d->resolvable() == resolvable) {
+           table.erase (pos);
+           break;
+       }
+    }
+    return;
+}
+
+void
+StoreWorld::removeResolvable (constResolvablePtr resolvable)
+{
+    if (getenv("RC_SPEW")) fprintf (stderr, "StoreWorld::removeResolvable (%s)\n", resolvable->asString().c_str());
+
+    constChannelPtr channel = resolvable->channel ();
+
+    if (! (channel && channel->hidden ()))
+       touchResolvableSequenceNumber ();
+
+    resolvable_and_dependency_table_remove (_provides_by_name, resolvable);
+    resolvable_and_dependency_table_remove (_requires_by_name, resolvable);
+    resolvable_and_dependency_table_remove (_conflicts_by_name, resolvable);
+
+    resolvable_table_remove (_resolvables_by_name, resolvable);
+
+    return;
+}
+
+
+void
+StoreWorld::removeResolvables (constChannelPtr channel)
+{
+       fprintf (stderr, "StoreWorld::removeResolvables(%s) not implemented\n", channel->asString().c_str());
+}
+
+
+void
+StoreWorld::clear ()
+{
+       fprintf (stderr, "StoreWorld::clear() not implemented\n");
+}
+
+//---------------------------------------------------------------------------
+// Single resolvable queries
+
+static bool
+installed_version_cb (constResolvablePtr resolvable, void *data)
+{
+    constResolvablePtr *installed = (constResolvablePtr *)data;
+
+    if (resolvable->isInstalled ()) {
+       *installed = resolvable;
+       return false;
+    }
+    return true;
+}
+
+
+constResolvablePtr
+StoreWorld::findInstalledResolvable (constResolvablePtr resolvable)
+{
+    constResolvablePtr installed;
+    sync ();
+
+    foreachResolvableByName (resolvable->name(), new Channel(CHANNEL_TYPE_ANY) /* is this right? */, installed_version_cb, &installed);
+
+    return installed;
+}
+
+
+//
+// findResolvable 
+// @channel: A non-wildcard #Channel.
+// @name: The name of a resolvable.
+//
+// Searches the world for a resolvable in the specified channel
+// with the specified name.  @channel must be an actual
+// channel, not a wildcard.
+//
+// Return value: The matching resolvable, or %NULL if no such
+// resolvable exists.
+//
+
+constResolvablePtr
+StoreWorld::findResolvable (constChannelPtr channel, const char *name) const
+{
+    syncConditional (channel);
+    for (ResolvableTable::const_iterator pos = _resolvables_by_name.lower_bound(name); pos != _resolvables_by_name.upper_bound(name); pos++) {
+       constResolvablePtr res = pos->second;
+       if (res->channel() == channel) {
+           return res;
+       }
+    }
+    return NULL;
+}
+
+
+constResolvablePtr
+StoreWorld::findResolvableWithConstraint (constChannelPtr channel, const char *name, constDependencyPtr constraint, bool is_and) const
+{
+       fprintf (stderr, "StoreWorld::findResolvableWithConstraint() not implemented\n");
+    return 0;
+}
+
+
+ChannelPtr
+StoreWorld::guessResolvableChannel (constResolvablePtr resolvable) const
+{
+       fprintf (stderr, "StoreWorld::guessResolvableChannel(%s) not implemented\n", ((constSpecPtr)resolvable)->asString().c_str());
+    return 0;
+}
+
+
+//-----------------------------------------------------------------------------
+// foreach resolvable
+
+typedef struct {
+    ChannelPtr channel;
+    CResolvableFn callback;
+    void *data;
+    int count;
+    bool short_circuit;
+} ForeachResolvableInfo;
+
+
+static void
+foreach_resolvable_cb (const string &name, constResolvablePtr resolvable, void *data)
+{
+    ForeachResolvableInfo *info = (ForeachResolvableInfo *)data;
+
+    if (info->short_circuit)
+       return;
+
+    /* FIXME: we should filter out dup uninstalled resolvables. */
+
+    if (resolvable && info->channel->equals(resolvable->channel ())) {
+       if (info->callback) {
+           if (! info->callback (resolvable, info->data))
+               info->short_circuit = true;
+       }
+       ++info->count;
+    }
+}
+
+
+int
+StoreWorld::foreachResolvable (ChannelPtr channel, CResolvableFn fn, void *data)
+{
+    return foreachResolvableByName ("", channel, fn, data);
+}
+
+
+int
+StoreWorld::foreachResolvableByName (const std::string & name, ChannelPtr channel, CResolvableFn fn, void *data)
+{
+    if (name.empty()) {
+
+       ForeachResolvableInfo info;
+
+       info.channel = channel;
+       info.callback = fn;
+       info.data = data;
+       info.count = 0;
+       info.short_circuit = false;
+
+       for (ResolvableTable::const_iterator iter = _resolvables_by_name.begin(); iter != _resolvables_by_name.end(); iter++) {
+           foreach_resolvable_cb (iter->first, iter->second, (void *)&info);
+       }
+
+       return info.short_circuit ? -1 : info.count;
+    }
+
+       
+    ResolvableTable installed;                 // FIXME: <Spec, Resolvable> rc_resolvable_spec_equal
+    int count = 0;
+
+    for (ResolvableTable::const_iterator iter = _resolvables_by_name.lower_bound(name); iter != _resolvables_by_name.upper_bound(name); iter++) {
+       constResolvablePtr resolvable = iter->second;
+       if (resolvable->isInstalled()) {
+           const string str = ((constSpecPtr)resolvable)->asString();
+           installed.insert (ResolvableTable::value_type(str,resolvable));
+       }
+    }    
+
+    for (ResolvableTable::const_iterator iter = _resolvables_by_name.lower_bound(name); iter != _resolvables_by_name.upper_bound(name); iter++) {
+       constResolvablePtr resolvable = iter->second;
+       if (channel->equals (resolvable->channel())) {
+           if (resolvable->isInstalled()
+               || installed.find(((constSpecPtr)resolvable)->asString()) == installed.end()) {
+               if (fn) {
+                   if (! fn(resolvable, data)) {
+                       count = -1;
+                       goto finished;
+                   }
+               }
+               ++count;
+           }
+       }
+    }
+
+finished:
+
+    return count;
+}
+
+
+int
+StoreWorld::foreachResolvableByMatch (constMatchPtr match, CResolvableFn fn, void *data)
+{
+       fprintf (stderr, "StoreWorld::foreachResolvableByMatch () not implemented\n");
+    return 0;
+}
+
+
+//-----------------------------------------------------------------------------
+// iterater over resolvables with dependency
+
+typedef std::map<constSpecPtr, constResolvableAndDependencyPtr> InstalledTable;
+
+int
+StoreWorld::foreachProvidingResolvable (constDependencyPtr dep, ResolvableAndSpecFn fn, void *data)
+{
+    int count = 0;
+    InstalledTable installed;
+//fprintf (stderr, "StoreWorld::foreachProvidingResolvable(%s)\n", dep->asString().c_str());
+    for (ResolvableAndDependencyTable::const_iterator iter = _provides_by_name.lower_bound(dep->name()); iter != _provides_by_name.upper_bound(dep->name()); iter++) {
+       constResolvableAndDependencyPtr r_and_d = iter->second;
+       constResolvablePtr res = r_and_d->resolvable();
+//fprintf (stderr, "StoreWorld::foreachProvidingResolvable(): %s\n", res->asString(true).c_str());
+       if (res != NULL && res->isInstalled ()) {
+           installed[res] = r_and_d;
+       }
+    }
+
+    for (ResolvableAndDependencyTable::const_iterator iter = _provides_by_name.lower_bound(dep->name()); iter != _provides_by_name.upper_bound(dep->name()); iter++) {
+       constResolvableAndDependencyPtr r_and_d = iter->second;
+
+       if (r_and_d && r_and_d->verifyRelation (dep)) {
+//fprintf (stderr, "found: %s\n", r_and_d->resolvable()->asString(true).c_str());
+           /* If we have multiple identical resolvables in RCWorld,
+              we want to only include the resolvable that is installed and
+              skip the rest. */
+           if (r_and_d->resolvable()->isInstalled()
+               || installed.find(r_and_d->resolvable()) == installed.end()) {
+
+               if (fn) {
+                   if (! fn(r_and_d->resolvable(), r_and_d->dependency(), data)) {
+                       count = -1;
+                       goto finished;
+                   }
+               }
+               ++count;
+           }
+       }
+    }
+
+ finished:
+
+    return count;
+}
+
+int
+StoreWorld::foreachRequiringResolvable (constDependencyPtr dep, ResolvableAndDepFn fn, void *data)
+{
+    int count = 0;
+    InstalledTable installed;
+
+
+    for (ResolvableAndDependencyTable::const_iterator iter = _requires_by_name.lower_bound(dep->name()); iter != _requires_by_name.upper_bound(dep->name()); iter++) {
+       constResolvableAndDependencyPtr r_and_d = iter->second;
+       constResolvablePtr res = r_and_d->resolvable();
+       if (res != NULL && res->isInstalled ()) {
+//fprintf (stderr, "is installed: %s\n", res->asString(true).c_str());
+           installed[res] = r_and_d;
+       }
+    }
+
+    for (ResolvableAndDependencyTable::const_iterator iter = _requires_by_name.lower_bound(dep->name()); iter != _requires_by_name.upper_bound(dep->name()); iter++) {
+       constResolvableAndDependencyPtr r_and_d = iter->second;
+
+       if (r_and_d && r_and_d->dependency()->verifyRelation (dep)) {
+
+           /* Skip dups if one of them in installed. */
+           if (r_and_d->resolvable()->isInstalled()
+               || installed.find(r_and_d->resolvable()) == installed.end()) {
+
+               if (fn) {
+                   if (! fn(r_and_d->resolvable(), r_and_d->dependency(), data)) {
+                       count = -1;
+                       goto finished;
+                   }
+               }
+               ++count;
+           }
+       }
+    }
+
+ finished:
+
+    return count;
+}
+
+
+int
+StoreWorld::foreachConflictingResolvable (constDependencyPtr dep, ResolvableAndDepFn fn, void *data)
+{
+    int count = 0;
+    InstalledTable installed;
+//fprintf (stderr, "StoreWorld::foreachConflictingResolvable (%s)\n", dep->name().c_str());
+    for (ResolvableAndDependencyTable::const_iterator iter = _conflicts_by_name.lower_bound(dep->name()); iter != _conflicts_by_name.upper_bound(dep->name()); iter++) {
+       constResolvableAndDependencyPtr r_and_d = iter->second;
+       constResolvablePtr res = r_and_d->resolvable();
+//fprintf (stderr, "==> %s\n", res->asString().c_str());
+       if (res != NULL && res->isInstalled ()) {
+           installed[res] = r_and_d;
+       }
+    }
+
+    for (ResolvableAndDependencyTable::const_iterator iter = _conflicts_by_name.lower_bound(dep->name()); iter != _conflicts_by_name.upper_bound(dep->name()); iter++) {
+       constResolvableAndDependencyPtr r_and_d = iter->second;
+
+       if (r_and_d)
+//fprintf (stderr, "==> %s verify %s ? %s\n", r_and_d->asString().c_str(), dep->asString().c_str(), r_and_d->verifyRelation (dep) ? "Y" : "N");
+       if (r_and_d && r_and_d->verifyRelation (dep)) {
+
+           /* Skip dups if one of them in installed. */
+           if (r_and_d->resolvable()->isInstalled()
+               || installed.find(r_and_d->resolvable()) == installed.end()) {
+
+               if (fn) {
+                   if (! fn(r_and_d->resolvable(), r_and_d->dependency(), data)) {
+                       count = -1;
+                       goto finished;
+                   }
+               }
+               ++count;
+           }
+       }
+    }
+
+ finished:
+
+    return count;
+}
+
+//-----------------------------------------------------------------------------
+// channel functions
+
+void
+StoreWorld::addChannel (ChannelPtr channel)
+{
+    if (channel == NULL) return;
+
+    channel->setWorld (this);
+    channel->setImmutable (true);
+
+    _channels.push_back (channel);
+
+    touchChannelSequenceNumber ();
+}
+
+
+void
+StoreWorld::removeChannel (constChannelPtr channel)
+{
+    if (channel == NULL
+       || ! containsChannel (channel))
+       return;
+
+    removeResolvables (channel);
+
+    for (ChannelList::iterator iter = _channels.begin(); iter != _channels.end(); iter++) {
+       if ((*iter)->equals (channel)) {
+           _channels.erase (iter);
+           touchChannelSequenceNumber ();
+           break;
+       }
+    }
+}
+
+
+bool
+StoreWorld::containsChannel (constChannelPtr channel) const
+{
+    for (ChannelList::const_iterator iter = _channels.begin(); iter != _channels.end(); iter++) {
+       if ((*iter)->equals (channel)) {
+           return true;
+       }
+    }
+    return false;
+}
+
+
+ChannelPtr
+StoreWorld::getChannelByName (const char *channel_name) const
+{
+    if (channel_name == NULL
+       || *channel_name == 0) {
+       return NULL;
+    }
+
+    for (ChannelList::const_iterator iter = _channels.begin(); iter != _channels.end(); iter++) {
+       if (strcasecmp ((*iter)->name(), channel_name) == 0) {
+           return *iter;
+       }
+    }
+    return NULL;
+}
+
+
+ChannelPtr
+StoreWorld::getChannelByAlias (const char *alias) const
+{
+    if (alias == NULL
+       || *alias == 0) {
+       return NULL;
+    }
+
+    for (ChannelList::const_iterator iter = _channels.begin(); iter != _channels.end(); iter++) {
+       if (strcasecmp ((*iter)->alias(), alias) == 0) {
+           return *iter;
+       }
+    }
+    return NULL;
+}
+
+
+ChannelPtr
+StoreWorld::getChannelById (const char *channel_id) const
+{
+    if (channel_id == NULL
+       || *channel_id  == 0) {
+       return NULL;
+    }
+
+    for (ChannelList::const_iterator iter = _channels.begin(); iter != _channels.end(); iter++) {
+       if (strcasecmp ((*iter)->id(), channel_id) == 0) {
+           return *iter;
+       }
+    }
+    return NULL;
+}
+
+
+int
+StoreWorld::foreachChannel (ChannelFn fn, void *data) const
+{
+    int count = 0;
+    for (ChannelList::const_iterator iter = _channels.begin(); iter != _channels.end(); iter++) {
+       if (!(*fn) (*iter, data))
+           return -1;
+       count++;
+    }
+    return count;
+}
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/StoreWorld.h b/zypp/solver/detail/StoreWorld.h
new file mode 100644 (file)
index 0000000..3a705a3
--- /dev/null
@@ -0,0 +1,130 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* StoreWorld.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _StoreWorld_h
+#define _StoreWorld_h
+
+#include <iosfwd>
+#include <string>
+#include <list>
+#include <map>
+
+#include <zypp/solver/detail/StoreWorldPtr.h>
+#include <zypp/solver/detail/ResolvableAndDependency.h>
+#include <zypp/solver/detail/PackmanPtr.h>
+#include <zypp/solver/detail/World.h>
+#include <zypp/solver/detail/Resolvable.h>
+#include <zypp/solver/detail/Match.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : StoreWorld
+
+class StoreWorld : public World {
+    REP_BODY(StoreWorld);
+
+  private:
+
+    int _freeze_count;
+
+    ResolvableTable _resolvables_by_name;
+    ResolvableAndDependencyTable _provides_by_name;
+    ResolvableAndDependencyTable _requires_by_name;
+    ResolvableAndDependencyTable _conflicts_by_name;
+
+    PackmanPtr _packman;
+    Kind _resolvable_kind;
+
+    ChannelList _channels;
+
+  public:
+
+    StoreWorld (WorldType type = STORE_WORLD);
+    virtual ~StoreWorld();
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const StoreWorld & storeworld);
+
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+
+    friend std::ostream& operator<<(std::ostream&, const StoreWorld & storeworld);
+
+    std::string asString (void ) const;
+
+    // ---------------------------------- accessors
+
+    virtual ChannelList channels () const { return _channels; }
+
+    // ---------------------------------- methods
+
+    // Add/remove resolvables
+
+    bool addResolvable (constResolvablePtr resolvable);
+    void addResolvablesFromList (const CResolvableList & slist);
+    void removeResolvable (constResolvablePtr resolvable);
+    void removeResolvables (constChannelPtr channel);
+    void clear ();
+
+    // Iterate over resolvables
+
+    virtual int foreachResolvable (ChannelPtr channel, CResolvableFn fn, void *data);
+    virtual int foreachResolvableByName (const std::string & name, ChannelPtr channel, CResolvableFn fn, void *data);
+    virtual int foreachResolvableByMatch (constMatchPtr match, CResolvableFn fn, void *data);
+
+    // Iterate across provides or requirement
+
+    virtual int foreachProvidingResolvable (constDependencyPtr dep, ResolvableAndSpecFn fn, void *data);
+    virtual int foreachRequiringResolvable (constDependencyPtr dep, ResolvableAndDepFn fn, void *data);
+    virtual int foreachConflictingResolvable (constDependencyPtr dep, ResolvableAndDepFn fn, void *data);
+
+    // Channels
+
+    void addChannel (ChannelPtr channel);
+    void removeChannel (constChannelPtr channel);
+
+    virtual bool containsChannel (constChannelPtr channel) const;
+
+    virtual ChannelPtr getChannelByName (const char *channel_name) const;
+    virtual ChannelPtr getChannelByAlias (const char *alias) const;
+    virtual ChannelPtr getChannelById (const char *channel_id) const;
+
+    virtual int foreachChannel (ChannelFn fn, void *data) const;
+
+    // Single resolvable queries
+
+    virtual constResolvablePtr findInstalledResolvable (constResolvablePtr resolvable);
+    virtual constResolvablePtr findResolvable (constChannelPtr channel, const char *name) const;
+    virtual constResolvablePtr findResolvableWithConstraint (constChannelPtr channel, const char *name, constDependencyPtr constraint, bool is_and) const;
+    virtual ChannelPtr guessResolvableChannel (constResolvablePtr resolvable) const;
+
+};
+    
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _StoreWorld_h
diff --git a/zypp/solver/detail/StoreWorldPtr.h b/zypp/solver/detail/StoreWorldPtr.h
new file mode 100644 (file)
index 0000000..3451207
--- /dev/null
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* StoreWorldPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _StoreWorldPtr_h
+#define _StoreWorldPtr_h
+
+#include <y2util/RepDef.h>
+#include <zypp/solver/detail/WorldPtr.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : StoreWorldPtr
+//     CLASS NAME : constStoreWorldPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_DERIVED_POINTER(StoreWorld, World);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _StoreWorldPtr_h
diff --git a/zypp/solver/detail/Subscription.cc b/zypp/solver/detail/Subscription.cc
new file mode 100644 (file)
index 0000000..627e3cb
--- /dev/null
@@ -0,0 +1,392 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Subscription.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <y2util/stringutil.h>
+
+#include <zypp/solver/detail/Subscription.h>
+#include <zypp/solver/detail/Channel.h>
+#include <zypp/solver/detail/XmlNode.h>
+
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+
+#include <list>
+#include <unistd.h>
+#include <zypp/solver/detail/debug.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+#define SUBSCRIPTION_PATH "/var/adm/zypp"
+#define OLD_SUBSCRIPTION_PATH "/var/lib/rcd"
+#define SUBSCRIPTION_NAME "/subscriptions.xml"
+
+#define DEFAULT_SUBSCRIPTION_FILE SUBSCRIPTION_PATH SUBSCRIPTION_NAME
+#define OLD_SUBSCRIPTION_FILE OLD_SUBSCRIPTION_PATH SUBSCRIPTION_NAME
+
+/* Old subscriptions expire in 60 days */
+#define OLD_SUBSCRIPTION_EXPIRATION 60*24*60*60
+
+SubscriptionList Subscription::subscriptions;
+bool Subscription::subscriptions_changed = false;
+const char *Subscription::subscription_file = DEFAULT_SUBSCRIPTION_FILE;
+
+//---------------------------------------------------------------------------
+
+string
+Subscription::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+Subscription::toString ( const Subscription & s)
+{
+    return "<subscription/>";
+}
+
+ostream &
+Subscription::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const Subscription & s)
+{
+    return os << s.asString();
+}
+
+//---------------------------------------------------------------------------
+
+
+void
+Subscription::save (void)
+{
+    xmlDoc *doc;
+    xmlNode *root;
+    char buf[64];
+    time_t now;
+    int save_retval;
+
+    if (! subscriptions_changed)
+       return;
+
+    time (&now);
+
+    root = xmlNewNode (NULL, (const xmlChar*)"subscriptions");
+    xmlNewProp (root, (const xmlChar*)"version", (const xmlChar*)"2.0");
+
+    doc = xmlNewDoc ((const xmlChar*)"1.0");
+    xmlDocSetRootElement (doc, root);
+
+    for (SubscriptionList::iterator iter = subscriptions.begin(); iter != subscriptions.end(); iter++) {
+       xmlNode *sub_node;
+
+       Subscription *sub = *iter;
+
+       /* Drop "old" (i.e. imported from 1.x) subscriptions that
+          we haven't seen for a while. */
+       if (sub->_old) {
+           double elapsed = difftime (now, sub->_last_seen);
+           if (elapsed > OLD_SUBSCRIPTION_EXPIRATION)
+               continue;
+       }
+
+       sub_node = xmlNewChild (root, NULL, (const xmlChar*)"channel", NULL);
+
+       xmlNewProp (sub_node, (const xmlChar*)"id", (const xmlChar*)(sub->_channel_id.c_str()));
+
+       snprintf (buf, sizeof (buf), "%ld", (long) sub->_last_seen);
+       xmlNewProp (sub_node, (const xmlChar*)"last_seen", (const xmlChar*)buf);
+
+       if (sub->_old)
+           xmlNewProp (sub_node, (const xmlChar*)"old", (const xmlChar*)"1");
+    }
+
+    save_retval = xmlSaveFile (subscription_file, doc);
+    xmlFreeDoc (doc);
+
+    if (save_retval > 0) {
+       /* Writing out the subscription file succeeded. */
+       subscriptions_changed = false;
+    } else {
+       rc_debug (RC_DEBUG_LEVEL_WARNING, "Unable to save subscription data to '%s'", subscription_file);
+       rc_debug (RC_DEBUG_LEVEL_WARNING, "Subscription will not be saved!");
+    }
+}
+
+
+void
+Subscription::load_old_subscriptions (void)
+{
+    static bool tried_to_do_this_already = false;
+    xmlDoc *doc;
+    XmlNodePtr node;
+
+    if (tried_to_do_this_already)
+       return;
+    tried_to_do_this_already = true;
+
+    if (access (OLD_SUBSCRIPTION_FILE, R_OK) != 0) {
+       rc_debug (RC_DEBUG_LEVEL_WARNING, "Can't find rcd 1.x subscription file '%s'", OLD_SUBSCRIPTION_FILE);
+       return;
+    }
+
+    doc = xmlParseFile (OLD_SUBSCRIPTION_FILE);
+    if (doc == NULL) {
+       rc_debug (RC_DEBUG_LEVEL_ERROR, "Can't parse rcd 1.x subscription file '%s'", OLD_SUBSCRIPTION_FILE);
+       return;
+    }
+
+    node = new XmlNode (xmlDocGetRootElement (doc));
+
+    if (!node->equals("subscriptions")) {
+       rc_debug (RC_DEBUG_LEVEL_ERROR, "rcd 1.x subscription file '%s' is malformed", OLD_SUBSCRIPTION_FILE);
+       return;
+    }
+
+    rc_debug (RC_DEBUG_LEVEL_INFO, "Importing rcd 1.x subscriptions.");
+    
+    node = node->children();
+
+    while (node != NULL) {
+
+       if (node->equals ("channel")) {
+           const char *id_str;
+
+           id_str = node->getProp ("channel_id");
+           if (id_str && *id_str) {
+
+               Subscription *sub = new Subscription (id_str);
+               sub->_old = true;
+
+               subscriptions.push_back (sub);
+           }
+       }
+
+       node = node->next();
+    }
+
+    /* If we've imported old subscriptions, we need to write them
+       out immediately into the new subscriptions file. */
+
+    subscriptions_changed = true;
+    save ();
+}
+
+
+void
+Subscription::load (void)
+{
+    xmlDoc *doc;
+    XmlNodePtr node;
+
+    if (access (subscription_file, R_OK) != 0) {
+       load_old_subscriptions ();
+       return;
+    }
+
+    doc = xmlParseFile (subscription_file);
+    if (doc == NULL) {
+       rc_debug (RC_DEBUG_LEVEL_ERROR, "Can't parse subscription file '%s'", subscription_file);
+       return;
+    }
+
+    node = new XmlNode (xmlDocGetRootElement (doc));
+
+    if (! node->equals ("subscriptions")) {
+       rc_debug (RC_DEBUG_LEVEL_ERROR, "Subscription file '%s' is malformed", subscription_file);
+       return;
+    }
+
+    node = node->children();
+
+    while (node != NULL) {
+
+       if (node->equals ("channel")) {
+           const char *id_str, *last_seen_str;
+
+           id_str = node->getProp ("id");
+           last_seen_str = node->getProp ("last_seen");
+
+           if (id_str && *id_str) {
+               Subscription *sub = new Subscription (id_str);
+            
+               if (last_seen_str)
+                   sub->_last_seen = (time_t) atol (last_seen_str);
+               else
+                   sub->_last_seen = time (NULL);
+
+               sub->_old = node->getUnsignedIntValueDefault("old", 0);
+
+               subscriptions.push_back (sub);
+           }
+
+           free ((void *)id_str);
+           free ((void *)last_seen_str);
+
+       }
+
+       node = node->next();
+    }
+
+    xmlFreeDoc (doc);
+}
+
+//---------------------------------------------------------------------------
+
+bool
+Subscription::match (constChannelPtr channel)
+{
+    bool match;
+
+    /* Paranoia is the programmer's friend. */
+    if (channel == NULL) return false;
+    if (channel->id() == NULL) return false;
+
+    /* If this is an old (i.e. imported from 1.x) subscription, we
+       compare it against the channel id's tail. */
+
+    if (_old) {
+       const char *id = channel->legacyId ();
+       int len1, len2;
+
+       if (!id)
+           return false;
+
+       len1 = strlen (_channel_id.c_str());
+       len2 = strlen (id);
+
+       if (len1 > len2)
+           return false;
+
+       /* If the tails match, mutate the Subscription into a
+          new-style subscription for that channel. */
+       if (! strcmp (id + (len2 - len1), _channel_id.c_str())) {
+           _channel_id = channel->id ();
+           _old = false;
+           subscriptions_changed = true;
+
+           return true;
+       }
+
+       return false;
+    }
+
+    match = (_channel_id == channel->id ());
+
+    if (match) {
+       time (&_last_seen);
+    }
+
+    return match;
+}
+
+//-----------------------------------------------------------------------------
+
+void
+Subscription::setFile (const char *path)
+{
+    subscription_file = path;
+}
+
+
+bool
+Subscription::status (constChannelPtr channel)
+{
+    if (subscriptions.empty())
+       load ();
+
+    if (channel == NULL)
+       return false;
+
+    for (SubscriptionList::iterator iter = subscriptions.begin(); iter != subscriptions.end(); iter++) {
+       Subscription *sub = *iter;
+       if (sub->match (channel))
+           return true;
+    }
+
+    save ();
+
+    return false;
+}
+
+
+void
+Subscription::setStatus (constChannelPtr channel, bool subscribe_to_channel)
+{
+    bool currently_subscribed;
+
+    if (channel == NULL) return;
+
+    currently_subscribed = status (channel);
+
+    if (currently_subscribed && !subscribe_to_channel) {
+
+       /* Unsubscribe to the channel */
+       for (SubscriptionList::iterator iter = subscriptions.begin(); iter != subscriptions.end(); iter++) {
+           Subscription *sub = *iter;
+           if (sub->match (channel)) {
+               subscriptions.erase (iter);
+               subscriptions_changed = true;
+               break;
+           }
+       }
+
+    } else if (!currently_subscribed && subscribe_to_channel) {
+
+       /* Subscribe to the channel */
+       Subscription *sub;
+       sub = new Subscription (channel->id ());
+       subscriptions.push_back(sub);
+       subscriptions_changed = true;
+    }
+
+    save ();
+}
+
+//---------------------------------------------------------------------------
+
+Subscription::Subscription(const char *id)
+{
+    _channel_id = string (id);
+    _last_seen  = time (NULL);
+    _old        = false;
+}
+
+
+Subscription::~Subscription()
+{
+}
+
+
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/Subscription.h b/zypp/solver/detail/Subscription.h
new file mode 100644 (file)
index 0000000..cb85073
--- /dev/null
@@ -0,0 +1,91 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Subscription.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _Subscription_h
+#define _Subscription_h
+
+#include <iosfwd>
+#include <string>
+#include <list>
+#include <sys/time.h>
+
+#include <y2util/Ustring.h>
+#include <zypp/solver/detail/ChannelPtr.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : Subscription
+
+
+class Subscription;
+typedef std::list<Subscription *> SubscriptionList;
+
+class Subscription {
+
+  private:
+
+    static SubscriptionList subscriptions;
+    static bool subscriptions_changed;
+    static const char *subscription_file;
+
+    std::string _channel_id;
+    time_t _last_seen;
+    bool _old;         // subscription imported from an old-style subs file
+
+    bool match (constChannelPtr channel);
+    static void save (void);
+    static void load (void);
+    static void load_old_subscriptions (void);
+
+  public:
+
+    Subscription (const char *id);
+    virtual ~Subscription();
+
+    // ---------------------------------- I/O
+
+    static std::string toString ( const Subscription & section);
+
+    virtual std::ostream & dumpOn( std::ostream & str ) const;
+
+    friend std::ostream& operator<<( std::ostream&, const Subscription & section);
+
+    std::string asString ( void ) const;
+
+    // ---------------------------------- accessors
+
+    // ---------------------------------- methods
+
+    void  setFile (const char *file);
+    static bool status (constChannelPtr channel);
+    static void setStatus (constChannelPtr channel, bool channel_is_subscribed);
+
+};
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _Subscription_h
diff --git a/zypp/solver/detail/UndumpWorld.cc b/zypp/solver/detail/UndumpWorld.cc
new file mode 100644 (file)
index 0000000..159eea8
--- /dev/null
@@ -0,0 +1,166 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* UndumpWorld.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <zypp/solver/detail/UndumpWorld.h>
+#include <zypp/solver/detail/extract.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_DERIVED_POINTER(UndumpWorld, World);
+
+//---------------------------------------------------------------------------
+
+string
+UndumpWorld::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+UndumpWorld::toString ( const UndumpWorld & world )
+{
+    return "<undumpworld/>";
+}
+
+
+ostream &
+UndumpWorld::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const UndumpWorld & world)
+{
+    return os << world.asString();
+}
+
+//---------------------------------------------------------------------------
+
+UndumpWorld::UndumpWorld (const char *filename)
+    : StoreWorld (UNDUMP_WORLD)
+{
+    load (filename);
+}
+
+
+UndumpWorld::~UndumpWorld()
+{
+    fprintf (stderr, "*** deleting undump world[%p]: %s\n", this, World::toString(type()).c_str());
+}
+
+//---------------------------------------------------------------------------
+
+
+static bool
+add_channel_cb (ChannelPtr channel, bool subscribed, void *data)
+{
+    UndumpWorld *undump = (UndumpWorld *)data;
+
+    undump->addChannel (channel);
+
+    if (!channel->system ()) {
+       undump->setSubscription (channel, subscribed);
+    }
+
+    return true;
+}
+
+
+static bool
+add_resolvable_cb (constResolvablePtr res, void *data)
+{
+    UndumpWorld *undump = (UndumpWorld *)data;
+
+    undump->addResolvable (res);
+
+    return true;
+}
+
+
+static bool
+add_lock_cb (constMatchPtr lock, void *data)
+{
+    UndumpWorld *undump = (UndumpWorld *)data;
+
+    undump->addLock (lock);
+    
+    return true;
+}
+
+
+void
+UndumpWorld::load (const char *filename)
+{
+    if (filename) {
+       extract_packages_from_undump_file (filename, add_channel_cb, add_resolvable_cb, add_lock_cb, (void *)this);
+    }
+}
+
+
+void
+UndumpWorld::setSubscription (constChannelPtr channel, bool subscribe)
+{
+//    if (getenv("RC_SPEW")) fprintf (stderr, "UndumpWorld::setSubscription (%s, %s)\n", channel->asString().c_str(), subscribe?"subscribe":"unsubscribe");
+    for (ChannelSubscriptions::iterator i = _subscriptions.begin(); i != _subscriptions.end(); i++) {
+       if (*i == channel) {
+           if (!subscribe) {
+               _subscriptions.erase (i);
+           }
+           return;
+       }
+    }
+
+    if (subscribe) {
+       _subscriptions.push_back (channel);
+    }
+
+    return;
+}
+
+
+bool
+UndumpWorld::isSubscribed (constChannelPtr channel) const
+{
+    for (ChannelSubscriptions::const_iterator i = _subscriptions.begin(); i != _subscriptions.end(); i++) {
+       if (*i == channel) {
+           if (getenv("RC_SPEW")) fprintf (stderr, "UndumpWorld::isSubscribed (%s) YES\n", channel->asString().c_str());
+           return true;
+       }
+    }
+
+    if (getenv("RC_SPEW")) fprintf (stderr, "UndumpWorld::isSubscribed (%s) NO\n", channel->asString().c_str());
+    return false;
+}
+
+
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/UndumpWorld.h b/zypp/solver/detail/UndumpWorld.h
new file mode 100644 (file)
index 0000000..8f374f6
--- /dev/null
@@ -0,0 +1,78 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* UndumpWorld.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _UndumpWorld_h
+#define _UndumpWorld_h
+
+#include <iosfwd>
+#include <string.h>
+
+#include <zypp/solver/detail/UndumpWorldPtr.h>
+#include <zypp/solver/detail/StoreWorld.h>
+#include <zypp/solver/detail/Channel.h>
+#include <zypp/solver/detail/World.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : UndumpWorld
+
+class UndumpWorld : public StoreWorld {
+    REP_BODY(UndumpWorld);
+
+  private:
+
+    typedef std::list<constChannelPtr> ChannelSubscriptions;
+    ChannelSubscriptions _subscriptions;
+
+  public:
+
+    UndumpWorld (const char *filename);
+    virtual ~UndumpWorld();
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const UndumpWorld & section);
+
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+
+    friend std::ostream& operator<<(std::ostream&, const UndumpWorld & section);
+
+    std::string asString (void ) const;
+
+    // ---------------------------------- accessors
+
+    // ---------------------------------- methods
+
+    void load (const char *filename);
+    virtual bool isSubscribed (constChannelPtr channel) const;
+    virtual void setSubscription (constChannelPtr channel, bool is_subscribed);
+
+};
+    
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _UndumpWorld_h
diff --git a/zypp/solver/detail/UndumpWorldPtr.h b/zypp/solver/detail/UndumpWorldPtr.h
new file mode 100644 (file)
index 0000000..c5d05a5
--- /dev/null
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* UndumpWorldPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _UndumpWorldPtr_h
+#define _UndumpWorldPtr_h
+
+#include <y2util/RepDef.h>
+#include <zypp/solver/detail/WorldPtr.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : UndumpWorldPtr
+//     CLASS NAME : constUndumpWorldPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_DERIVED_POINTER(UndumpWorld, World);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _UndumpWorldPtr_h
diff --git a/zypp/solver/detail/Version.cc b/zypp/solver/detail/Version.cc
new file mode 100644 (file)
index 0000000..2129d4a
--- /dev/null
@@ -0,0 +1,277 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Version.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <y2util/stringutil.h>
+
+#include <zypp/solver/detail/Version.h>
+
+#include <zypp/solver/detail/debug.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+
+Version GVersion;
+
+using namespace std;
+
+string
+Version::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+Version::toString ( const Version & section )
+{
+    return "<version/>";
+}
+
+ostream &
+Version::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const Version& section)
+{
+    return os << section.asString();
+}
+
+//---------------------------------------------------------------------------
+
+static EditionPtr
+rpm_parse (const char *input)
+{
+    const char *vptr = NULL, *rptr = NULL;
+
+    if (input == NULL || *input == 0)
+       return NULL;
+
+    int epoch = -1;
+    const char *version;
+    const char *release;
+    const char *arch = "";
+
+    if ((vptr = strchr (input, ':'))) {
+       /* We -might- have an epoch here */
+       char *endptr;
+
+       epoch = strtoul (input, &endptr, 10);
+
+       if (endptr != vptr) {
+           /* No epoch here, just a : in the version string */
+           epoch = -1;
+           vptr = input;
+       } else {
+           vptr++;
+       }
+    } else {
+       vptr = input;
+    }
+
+    if ((rptr = strchr (vptr, '-'))) {
+       char *v = strndup (vptr, rptr - vptr);
+       version = v;
+       release = rptr + 1;
+    } else {
+       version = vptr;
+       release = NULL;
+    }
+
+    EditionPtr edition = new Edition(epoch, version, release, Arch::create(arch));
+
+    return edition;
+}
+
+
+/* This was stolen from RPM */
+/* And then slightly hacked on by me */
+/* And then hacked on more by me */
+
+/* compare alpha and numeric segments of two versions */
+/* return 1: a is newer than b */
+/*        0: a and b are the same version */
+/*       -1: b is newer than a */
+static int
+vercmp (const char *a, const char *b)
+{
+    char oldch1, oldch2;
+    char * str1, * str2;
+    char * one, * two;
+    int rc;
+    int isnum;
+    unsigned int alen, blen;
+
+    /* easy comparison to see if versions are identical */
+    if (!strcmp(a, b)) return 0;
+
+    alen = strlen (a);
+    blen = strlen (b);
+
+    str1 = (char *)alloca(alen + 1);
+    str2 = (char *)alloca(blen + 1);
+
+    strcpy(str1, a);
+    strcpy(str2, b);
+
+    one = str1;
+    two = str2;
+
+    /* loop through each version segment of str1 and str2 and compare them */
+    while (*one && *two) {
+       while (*one && !isalnum(*one)) one++;
+       while (*two && !isalnum(*two)) two++;
+
+       str1 = one;
+       str2 = two;
+
+       /* grab first completely alpha or completely numeric segment */
+       /* leave one and two pointing to the start of the alpha or numeric */
+       /* segment and walk str1 and str2 to end of segment */
+       if (isdigit(*str1)) {
+           while (*str1 && isdigit(*str1)) str1++;
+           while (*str2 && isdigit(*str2)) str2++;
+           isnum = 1;
+       } else {
+           while (*str1 && isalpha(*str1)) str1++;
+           while (*str2 && isalpha(*str2)) str2++;
+           isnum = 0;
+       }
+
+       /* save character at the end of the alpha or numeric segment */
+       /* so that they can be restored after the comparison */
+       oldch1 = *str1;
+       *str1 = '\0';
+       oldch2 = *str2;
+       *str2 = '\0';
+
+       /* This should only happen if someone is changing the string */
+       /* behind our back.  It should be a _very_ rare race condition */
+       if (one == str1) return -1; /* arbitrary */
+
+       /* take care of the case where the two version segments are */
+       /* different types: one numeric and one alpha */
+
+       /* Here's how we handle comparing numeric and non-numeric
+        * segments -- non-numeric (ximian.1) always sorts lower than
+        * numeric (0.ximian.6.1). */
+       if (two == str2)
+           return (isnum ? 1 : -1);
+
+       if (isnum) {
+           /* this used to be done by converting the digit segments */
+           /* to ints using atoi() - it's changed because long  */
+           /* digit segments can overflow an int - this should fix that. */
+
+           /* throw away any leading zeros - it's a number, right? */
+           while (*one == '0') one++;
+           while (*two == '0') two++;
+
+           /* whichever number has more digits wins */
+           if (strlen(one) > strlen(two)) return 1;
+           if (strlen(two) > strlen(one)) return -1;
+       }
+
+       /* strcmp will return which one is greater - even if the two */
+       /* segments are alpha or if they are numeric.  don't return  */
+       /* if they are equal because there might be more segments to */
+       /* compare */
+       rc = strcmp(one, two);
+       if (rc) return rc;
+
+       /* restore character that was replaced by null above */
+       *str1 = oldch1;
+       one = str1;
+       *str2 = oldch2;
+       two = str2;
+    }
+
+    /* this catches the case where all numeric and alpha segments have */
+    /* compared identically but the segment sepparating characters were */
+    /* different */
+    if ((!*one) && (!*two)) return 0;
+
+    /* whichever version still has characters left over wins */
+    if (!*one) return -1; else return 1;
+}
+
+
+static int
+rpm_compare (constSpecPtr spec1, constSpecPtr spec2)
+{
+    int rc = 0;
+
+    assert (spec1 != NULL);
+    assert (spec2 != NULL);
+
+    const string name1 = spec1->name();
+    const string name2 = spec2->name();
+    if (! (name1.empty() && name2.empty()))
+    {
+       rc = name1.compare (name2);
+    }
+    if (rc) return rc;
+    
+    if (spec1->epoch() >= 0 && spec2->epoch() >= 0) {
+       rc = spec1->epoch() - spec2->epoch();
+    } else if (spec1->epoch() > 0) {
+       rc = 1;
+    } else if (spec2->epoch() > 0) {
+       rc = -1;
+    }
+    if (rc) return rc;
+
+    rc = vercmp (spec1->version().c_str(), spec2->version().c_str());
+    if (rc) return rc;
+
+    const string rel1 = spec1->release();
+    const string rel2 = spec2->release();
+    if (!rel1.empty() && !rel2.empty()) {
+       rc = vercmp (rel1.c_str(), rel2.c_str());
+    }
+    return rc;
+}
+
+//---------------------------------------------------------------------------
+
+Version::Version()
+    : _properties (VERSION_PROP_PROVIDE_ANY | VERSION_PROP_IGNORE_ABSENT_EPOCHS)
+    , _parse (rpm_parse)
+    , _compare (rpm_compare)
+{
+}
+
+
+Version::~Version()
+{
+}
+
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/Version.h b/zypp/solver/detail/Version.h
new file mode 100644 (file)
index 0000000..7fdc51b
--- /dev/null
@@ -0,0 +1,113 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Version.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _Version_h
+#define _Version_h
+
+#include <iosfwd>
+#include <string.h>
+
+#include <y2util/Ustring.h>
+#include <zypp/solver/detail/Spec.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : Version
+/*
+ * Version properties: These exist to signal various parts of the
+ * world, packman, and dependency code of certain (mis)features of a
+ * packaging system.
+ *
+ * PROVIDE_ANY - An unversioned provide matches all versions.  An
+ * unversioned provide translates into an RC_RELATION_ANY relation, which
+ * will meet any requirement for any version. (RPM)
+ *
+ * IGNORE_ABSENT_EPOCHS - If an epoch isn't specified in a requirement,
+ * it's ignored when verifying the provide.  For example, if package "foo"
+ * requires "bar >= 2.0" then both "bar 21" and "bar 1:2.0" meet the
+ * requirement. (RPM)
+ *
+ * ALWAYS_VERIFY_RELEASE - When verifying relations, the release field is
+ * usually only compared when both the requirement specifies it.  For
+ * example, a requirement of "foo > 2.0" would not be met by a package
+ * providing "foo 2.0-10", because the release field ("10") would be
+ * ignored and "2.0" is not greater than "2.0".  When this property is
+ * set, however, the release field will always be compared, and the
+ * requirement in the previous example would be met, because "2.0-10" is
+ * greater than "2.0". (Debian)
+ *
+ */
+
+#define VERSION_PROP_NONE                  (0)
+#define VERSION_PROP_PROVIDE_ANY           (1 << 0)
+#define VERSION_PROP_IGNORE_ABSENT_EPOCHS  (1 << 2)
+#define VERSION_PROP_ALWAYS_VERIFY_RELEASE (1 << 4)
+
+class Version {
+
+  private:
+
+    unsigned int _properties;
+
+    EditionPtr (*_parse)(const char *input);
+
+    // compare uses SpecPtr and takes name into account
+    int (*_compare)(constSpecPtr a, constSpecPtr b);
+
+  public:
+
+    Version ();
+    virtual ~Version();
+
+    // ---------------------------------- I/O
+
+    static std::string toString ( const Version & section);
+
+    virtual std::ostream & dumpOn( std::ostream & str ) const;
+
+    friend std::ostream& operator<<( std::ostream&, const Version & section);
+
+    std::string asString ( void ) const;
+
+    // ---------------------------------- accessors
+
+    // ---------------------------------- methods
+
+    // compare uses SpecPtr and takes name into account
+    int compare (constSpecPtr a, constSpecPtr b) const { return (*_compare) (a, b); }
+
+    EditionPtr parse (const char *input) const { return (*_parse)(input); }
+
+    bool hasProperty (unsigned int property) const { return (_properties & property) != 0; }
+
+};
+
+extern Version GVersion;
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _Version_h
diff --git a/zypp/solver/detail/World.cc b/zypp/solver/detail/World.cc
new file mode 100644 (file)
index 0000000..64c0b97
--- /dev/null
@@ -0,0 +1,555 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* World.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <map>
+
+#include <zypp/solver/detail/World.h>
+#include <zypp/solver/detail/Subscription.h>
+#include <zypp/solver/detail/Version.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_BASE_POINTER(World);
+
+WorldPtr World::GlobalWorld = NULL;
+
+//---------------------------------------------------------------------------
+
+string
+World::toString (WorldType type)
+{
+    switch (type) {
+       case PLAIN_WORLD:       return "plain";
+       case STORE_WORLD:       return "store";
+       case MULTI_WORLD:       return "multi";
+       case SERVICE_WORLD:     return "service";
+       case UNDUMP_WORLD:      return "undump";
+       case LOCALDIR_WORLD:    return "localdir";
+       case SYSTEM_WORLD:      return "system";
+       default:
+               break;
+    }
+    return "???";
+}
+
+
+string
+World::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+World::toString ( const World & world )
+{
+    return "<world/>";
+}
+
+
+ostream &
+World::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const World & world)
+{
+    return os << world.asString();
+}
+
+//---------------------------------------------------------------------------
+
+World::World (WorldType type)
+    : _type (type)
+{
+//    fprintf (stderr, "*** creating world[%p]: %s\n", this, toString(_type).c_str());
+}
+
+
+World::~World()
+{
+//    fprintf (stderr, "*** deleting world[%p]: %s\n", this, toString(_type).c_str());
+}
+
+//---------------------------------------------------------------------------
+// sync/refresh functions
+
+bool
+World::sync (void) const
+{
+  if (getenv("FIXME"))     fprintf (stderr, "World::sync() not implemented\n");
+  return false;
+}
+
+bool
+World::syncConditional (constChannelPtr channel) const
+{
+  if (getenv("FIXME"))    fprintf (stderr, "World::syncConditional() not implemented\n");
+  return false;
+}
+
+
+PendingPtr
+World::refresh (void)
+{
+  if (getenv("FIXME"))     fprintf (stderr, "World::refresh() not implemented\n");
+  return 0;
+}
+
+bool
+World::hasRefresh (void)
+{
+  if (getenv("FIXME"))     fprintf (stderr, "World::hasRefresh() not implemented\n");
+  return false;
+}
+
+
+bool
+World::isRefreshing (void)
+{
+  if (getenv("FIXME"))     fprintf (stderr, "World::isRefreshing() not implemented\n");
+  return false;
+}
+
+
+       /* These functions are for World-implementers only!  Don't call them! */
+void
+World::refreshBegin (void)
+{
+  if (getenv("FIXME"))     fprintf (stderr, "World::refreshBegin() not implemented\n");
+  return;
+}
+
+void
+World::refreshComplete (void)
+{
+  if (getenv("FIXME"))     fprintf (stderr, "World::refreshComplete() not implemented\n");
+  return;
+}
+
+//---------------------------------------------------------------------------
+// channels, subscriptions
+
+void
+World::setSubscription (ChannelPtr channel, bool is_subscribed)
+{
+    bool curr_subs_status;
+
+    if (channel == NULL) return;
+
+//    if (getenv("RC_SPEW")) fprintf (stderr, "World::setSubscription (%s, %s)\n", channel->asString().c_str(), is_subscribed?"subscribe":"unsubscribe");
+
+    if (channel->system ()) {
+       fprintf (stderr, "Can't subscribe to system channel '%s'\n",  channel->name ());
+       return;
+    }
+
+    curr_subs_status = isSubscribed (channel);
+
+    Subscription::setStatus (channel, is_subscribed);
+
+    if (curr_subs_status != isSubscribed (channel))
+       touchSubscriptionSequenceNumber ();
+
+    return;
+}
+
+
+bool
+World::isSubscribed (constChannelPtr channel) const
+{
+    if (channel == NULL) return false;
+//    if (getenv("RC_SPEW")) fprintf (stderr, "World::isSubscribed (%s)\n", channel->asString().c_str());
+
+    if (channel->system ())
+       return false;
+
+    return Subscription::status (channel) ? true : false;
+}
+
+
+
+//---------------------------------------------------------------------------
+// Resolvable Locks
+
+typedef struct {
+    constResolvablePtr resolvable;
+    WorldPtr world;
+    bool is_locked;
+} IsLockedInfo;
+
+
+static bool
+is_locked_cb (constMatchPtr match, void *data)
+{
+    IsLockedInfo *info = (IsLockedInfo *)data;
+
+    if (match->test (info->resolvable, info->world)) {
+       info->is_locked = true;
+       return false;
+    }
+
+    return true;
+}
+
+
+bool
+World::resolvableIsLocked (constResolvablePtr resolvable)
+{
+    IsLockedInfo info;
+
+    info.resolvable = resolvable;
+    info.world = this;
+    info.is_locked = false;
+
+    foreachLock (is_locked_cb, &info);
+
+    return info.is_locked;
+}
+
+
+//---------------------------------------------------------------------------
+// Transacting
+
+bool
+World::canTransactResolvable (constResolvablePtr resolvable)
+{
+  if (getenv("FIXME"))      fprintf (stderr, "World::canTransactResolvable() not implemented\n");
+  return false;
+}
+
+bool
+World::transact (const ResolvableList & installResolvables, const ResolvableList & remove_resolvables, int flags)
+{
+  if (getenv("FIXME"))      fprintf (stderr, "World::transact() not implemented\n");
+  return false;
+}
+
+
+//---------------------------------------------------------------------------
+// XML serialization
+
+void
+World::serialize (XmlNodePtr parent)
+{
+  if (getenv("FIXME"))      fprintf (stderr, "World::serialize() not implemented\n");
+  return;
+}
+
+void
+World::toFile (const char *filename)
+{
+  if (getenv("FIXME"))      fprintf (stderr, "World::toFile() not implemented\n");
+  return;
+}
+
+
+//---------------------------------------------------------------------------
+// Duplicating (primarily for atomic refreshes)
+
+WorldPtr
+World::dup (void)
+{
+  if (getenv("FIXME"))      fprintf (stderr, "World::dup() not implemented\n");
+  return 0;
+}
+
+
+//---------------------------------------------------------------------------
+// only used for bindings
+
+void
+World::setRefreshFunction (WorldRefreshFn refresh_fn)
+{
+  if (getenv("FIXME"))      fprintf (stderr, "World::setRefreshFunction() not implemented\n");
+  return;
+}
+
+
+
+//-----------------------------------------------------------------------------
+// Upgrades
+
+typedef struct  {
+    constResolvablePtr original_resolvable;
+    CResolvableFn fn;
+    void *data;
+    int count;
+    WorldPtr world;
+} ForeachUpgradeInfo;
+
+static bool
+foreach_upgrade_cb (constResolvablePtr resolvable, void *data)
+{
+    ForeachUpgradeInfo *info = (ForeachUpgradeInfo *)data;
+    int cmp;
+
+    cmp = GVersion.compare (info->original_resolvable, resolvable);
+
+    if (cmp >= 0)                              // original is already better
+       return true;
+
+    if (info->world->resolvableIsLocked (resolvable))
+       return true;
+
+    if (info->fn)
+       info->fn (resolvable, info->data);
+    ++info->count;
+
+    return true;
+}
+
+
+// rc_world_foreach_upgrade:
+// @world: An #RCWorld.
+// @resolvable: An #RCResolvable.
+// @channel: An #RCChannel or channel wildcard.
+// @fn: A callback function.
+// @user_data: Pointer passed to the callback function.
+//
+// Searchs @world for all resolvables whose channel matches
+// @channel and that are an upgrade for @resolvable.
+// (To be precise, an upgrade is a resolvable with the same
+// name as @resolvable but with a greater version number.)
+//
+// Return value: The number of matching resolvables
+// that the callback functions was invoked on, or
+// -1 in the case of an error.
+
+int
+World::foreachUpgrade (constResolvablePtr resolvable, ChannelPtr channel, CResolvableFn fn, void *data)
+{
+    ForeachUpgradeInfo info;
+
+    syncConditional (channel);
+
+    info.original_resolvable = resolvable;
+    info.fn = fn;
+    info.data = data;
+    info.count = 0;
+    info.world = this;
+
+    foreachResolvableByName (resolvable->name(), channel, foreach_upgrade_cb, (void *)&info);
+
+    return info.count;
+}
+
+
+
+typedef struct {
+    WorldPtr world;
+    constResolvablePtr system_resolvable;
+    CResolvableList best_upgrades;
+    bool subscribed_only;
+    ResolvablePairFn fn;
+    void *data;
+    int count;
+} SystemUpgradeInfo;
+
+
+static bool
+foreach_system_upgrade_cb (constResolvablePtr upgrade, void *data)
+{
+    SystemUpgradeInfo *info = (SystemUpgradeInfo *)data;
+    constChannelPtr channel = upgrade->channel();
+    int cmp;
+
+    if (info->subscribed_only) {
+       if (!(channel && channel->isSubscribed ()))
+           return true;
+    }
+
+    if (info->world->resolvableIsLocked (upgrade))
+       return true;
+
+    if (info->best_upgrades.empty()) {
+       info->best_upgrades.push_back (upgrade);
+    }
+    else {
+       /* All the versions are equal, so picking the first is fine */
+       constResolvablePtr best_up = info->best_upgrades.front();
+
+       cmp = GVersion.compare (best_up, upgrade);
+
+       if (cmp <= 0) {
+           /* We have a new best resolvable... */
+           info->best_upgrades.pop_front();
+           info->best_upgrades.push_back (upgrade);
+       }
+    }
+
+    return true;
+}
+
+
+static void
+foreach_system_resolvable_cb (const string & name, constResolvablePtr resolvable, SystemUpgradeInfo *info)
+{
+    info->system_resolvable = resolvable;
+    info->best_upgrades.clear();
+
+    /* If the resolvable is excluded, skip it. */
+    if (info->world->resolvableIsLocked (info->system_resolvable))
+       return;
+
+    info->world->foreachUpgrade (info->system_resolvable, new Channel (CHANNEL_TYPE_NONSYSTEM), foreach_system_upgrade_cb, info);
+
+    for (CResolvableList::const_iterator iter = info->best_upgrades.begin(); iter != info->best_upgrades.end(); iter++) {
+       constResolvablePtr upgrade = *iter;
+
+       if (info->fn)
+           info->fn (info->system_resolvable, upgrade, info->data);
+
+       ++info->count;
+    }
+
+    info->best_upgrades.clear();
+}
+
+typedef map<const string,constResolvablePtr> UniqueTable;
+
+static bool
+build_unique_table_cb (constResolvablePtr resolvable, void *data)
+{
+    UniqueTable *unique_table = (UniqueTable *)data;
+
+    UniqueTable::const_iterator pos = unique_table->find (resolvable->name());
+
+    if (pos != unique_table->end()) {
+       if (GVersion.compare (resolvable, pos->second) <= 0)
+           return true;
+    }
+
+    (*unique_table)[resolvable->name()] = resolvable;
+
+    return true;
+}
+
+
+/**
+ * foreachSystemUpgrade:
+ * @world: An #RCWorld.
+ * @subscribed_only: if TRUE, only subscribed channels are used.
+ * @fn: A callback function.
+ * @user_data: Pointer to be passed to the callback function.
+ *
+ * Iterates across all system resolvables in @world for which there
+ * exists an upgrade, and passes both the original resolvable and
+ * the upgrade resolvable to the callback function.
+ *
+ * Return value: The number of matching resolvables that the callback
+ * function was invoked on, or -1 in case of an error.
+ **/
+
+int
+World::foreachSystemUpgrade (bool subscribed_only, ResolvablePairFn fn, void *data)
+{
+    SystemUpgradeInfo info;
+    UniqueTable unique_table;
+
+    /* rc_world_foreach_resolvable calls rc_world_sync */
+
+    foreachResolvable (new Channel (CHANNEL_TYPE_SYSTEM), build_unique_table_cb, &unique_table);
+
+    info.world = this;
+    info.subscribed_only = subscribed_only;
+    info.fn = fn;
+    info.data = data;
+    info.count = 0;
+
+    for (UniqueTable::const_iterator iter = unique_table.begin(); iter != unique_table.end(); iter++) {
+       foreach_system_resolvable_cb (iter->first, iter->second, &info);
+    }
+
+    return info.count;
+}
+
+
+PackageUpdateList
+World::getUpgrades (constResolvablePtr resolvable, constChannelPtr channel)
+{
+    fprintf (stderr, "World::getUpgrades not implemented\n");
+  return PackageUpdateList();
+}
+
+constResolvablePtr
+World::getBestUpgrade (constResolvablePtr resolvable, bool subscribed_only)
+{
+    fprintf (stderr, "World::getBestUpgrade not implemented\n");
+  return 0;
+}
+
+
+//-----------------------------------------------------------------------------
+// Locks
+
+int
+World::foreachLock (MatchFn fn, void *data) const
+{
+    int count = 0;
+
+    for (MatchList::const_iterator iter = _locks.begin(); iter != _locks.end(); iter++) {
+        if (! fn (*iter, data))
+            return -1;
+        ++count;
+    }
+
+    return count;
+}
+
+
+void
+World::addLock (constMatchPtr lock)
+{
+    _locks.push_back (lock);
+}
+
+
+void
+World::removeLock (constMatchPtr lock)
+{
+    for (MatchList::iterator iter = _locks.begin(); iter != _locks.end(); iter++) {
+       if (*iter == lock) {
+           _locks.erase (iter);
+           break;
+       }
+    }
+}
+
+
+void
+World::clearLocks (void)
+{
+    _locks.clear();
+}
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/World.h b/zypp/solver/detail/World.h
new file mode 100644 (file)
index 0000000..f030615
--- /dev/null
@@ -0,0 +1,254 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* World.h
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _World_h
+#define _World_h
+
+#include <iosfwd>
+#include <list>
+#include <string.h>
+
+#include <zypp/solver/detail/WorldPtr.h>
+#include <zypp/solver/detail/MultiWorldPtr.h>
+#include <zypp/solver/detail/Resolvable.h>
+#include <zypp/solver/detail/Channel.h>
+#include <zypp/solver/detail/Match.h>
+#include <zypp/solver/detail/Pending.h>
+#include <zypp/solver/detail/Packman.h>
+#include <zypp/solver/detail/Package.h>
+#include <zypp/solver/detail/PackageUpdate.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+
+typedef std::list <constWorldPtr> WorldList;
+
+class NameConflictInfo;
+
+//////////////////////////////////////////////////////////////////
+
+typedef enum {
+    PLAIN_WORLD = 0,
+    STORE_WORLD,
+    MULTI_WORLD,
+    SERVICE_WORLD,
+    UNDUMP_WORLD,
+    LOCALDIR_WORLD,
+    SYSTEM_WORLD
+} WorldType;
+
+typedef bool           (*WorldFn)        (constWorldPtr world, void *user_data);
+typedef PendingPtr     (*WorldRefreshFn) (constWorldPtr world);
+
+#if 0
+typedef bool           (*WorldSyncFn)    (constWorldPtr world, constChannelPtr channel);
+typedef PackmanPtr     (*WorldPackmanFn) (constWorldPtr world, const Kind & kind);
+typedef void           (*WorldSpewFn)    (constWorldPtr world, FILE *out);
+typedef constWorldPtr  (*WorldDupFn)     (constWorldPtr world);
+
+typedef bool           (*WorldCanTransactResolvableFn) (constWorldPtr world, constResolvablePtr resolvable);
+typedef bool           (*WorldTransactFn) (constWorldPtr world, const ResolvableList & install_resolvables, const ResolvableList & remove_resolvables, int flags);
+
+typedef bool           (*WorldGetSubscribedFn) (const World *world, constChannelPtr channel);
+typedef void           (*WorldSetSubscribedFn) (World *world, ChannelPtr channel, bool subs_status);
+
+typedef int            (*WorldForeachChannelFn) (const World *world, ChannelFn callback, void *user_data);
+typedef int            (*WorldForeachLockFn)    (constWorldPtr world, MatchFn callback, void *user_data);
+
+typedef void           (*WorldAddLockFn) (constWorldPtr world, constMatchPtr lock);
+typedef void           (*WorldRemoveLockFn) (constWorldPtr world, constMatchPtr lock);
+typedef void           (*WorldClearLockFn) (constWorldPtr world);
+
+typedef int            (*WorldForeachResolvableFn) (constWorldPtr world, const char *name, constChannelPtr channel, ResolvableFn callback, void *user_data);
+typedef int            (*WorldForeachPackageSpecFn) (constWorldPtr world, constDependencyPtr dep, ResolvableAndSpecFn callback, void *user_data);
+typedef int            (*WorldForeachPackageDepFn) (constWorldPtr world, constDependencyPtr dep, ResolvableAndDepFn callback, void *user_data);
+
+typedef void           (*WorldSerializeFn) (constWorldPtr world, constXmlNodePtr root);
+typedef void           (*WorldUnserializeFn) (constWorldPtr world, constXmlNodePtr node);
+
+#endif
+
+///////////////////////////////////////////////////////////////////
+//
+//     CLASS NAME : World
+
+class World : public CountedRep {
+    REP_BODY(World);
+
+  private:
+    static WorldPtr GlobalWorld;
+
+    WorldType _type;
+
+    /* The sequence numbers gets incremented every
+       time the RCWorld is changed. */
+
+    unsigned int _seq_no_resolvables;
+    unsigned int _seq_no_channels;
+    unsigned int _seq_no_subscriptions;
+    unsigned int _seq_no_locks;
+
+    /* Every world needs to be able to store locks, so we provide a
+       place for that.  Of course, derived classes are allowed to
+       provide their own exotic lock semantics by providing their
+       own *_lock_fn methods. */
+    MatchList _lock_store;
+
+    bool _refresh_pending;
+
+    /* a bad hack to keep us from emitting signals while finalizing */
+    bool _no_changed_signals;
+
+    /* For unserialized worlds currently. If a world is read only,
+       you can not refresh or transact on it. */
+    bool _read_only;
+
+    MatchList _locks;
+
+  public:
+
+    World (WorldType type = PLAIN_WORLD);
+    virtual ~World();
+
+    // ---------------------------------- I/O
+
+    static std::string toString (const World & section);
+
+    static std::string toString (WorldType type);
+
+    virtual std::ostream & dumpOn(std::ostream & str ) const;
+
+    friend std::ostream& operator<<(std::ostream&, const World & section);
+
+    std::string asString (void ) const;
+
+    // ---------------------------------- accessors
+
+    WorldType type() const { return _type; }
+    bool isPlainWorld () const { return _type == PLAIN_WORLD; }
+    bool isUndumpWorld () const { return _type == UNDUMP_WORLD; }
+    bool isMultiWorld () const { return _type == MULTI_WORLD; }
+    bool isServiceWorld () const { return _type == SERVICE_WORLD; }
+
+    unsigned int resolvableSequenceNumber (void) const { return _seq_no_resolvables; }
+    unsigned int channelSequenceNumber (void) const { return _seq_no_channels; }
+    unsigned int subscriptionSequenceNumber (void) const { return _seq_no_subscriptions; }
+    unsigned int lockSequenceNumber (void) const { return _seq_no_locks; }
+
+    void touchResolvableSequenceNumber (void) { _seq_no_resolvables++; }
+    void touchChannelSequenceNumber (void) { _seq_no_channels++; }
+    void touchSubscriptionSequenceNumber (void) { _seq_no_subscriptions++; }
+    void touchLockSequenceNumber (void) { _seq_no_locks++; }
+
+    MatchList locks (void) const { return _lock_store; }
+
+    // ---------------------------------- methods
+
+    static void setGlobalWorld (MultiWorldPtr world) { GlobalWorld = world; }
+    static MultiWorldPtr globalWorld (void) { return GlobalWorld; }
+
+       //RCPackman *get_packman      (GType);
+
+    bool sync (void) const;
+    virtual bool syncConditional (constChannelPtr channel) const;
+    PendingPtr refresh (void);
+    bool hasRefresh (void);
+    bool isRefreshing (void);
+
+       /* These functions are for World-implementers only!  Don't call them! */
+    void refreshBegin (void);
+    void refreshComplete (void);
+
+    virtual int foreachChannel (ChannelFn fn, void *user_data) const = 0;
+
+    virtual void setSubscription (ChannelPtr channel, bool is_subscribed);
+    virtual bool isSubscribed (constChannelPtr channel) const;
+
+    virtual ChannelList channels () const = 0;
+    virtual bool containsChannel (constChannelPtr channel) const = 0;
+
+    virtual ChannelPtr getChannelByName (const char *channel_name) const = 0;
+    virtual ChannelPtr getChannelByAlias (const char *alias) const = 0;
+    virtual ChannelPtr getChannelById (const char *channel_id) const = 0;
+
+    // Resolvable Locks
+
+    virtual int foreachLock (MatchFn fn, void *data) const;
+
+    void addLock (constMatchPtr lock);
+    void removeLock (constMatchPtr lock);
+    void clearLocks ();
+
+    bool resolvableIsLocked (constResolvablePtr resolvable);
+
+    // Single resolvable queries
+
+    virtual constResolvablePtr findInstalledResolvable (constResolvablePtr resolvable) = 0;
+    virtual constResolvablePtr findResolvable (constChannelPtr channel, const char *name) const = 0;
+    virtual constResolvablePtr findResolvableWithConstraint (constChannelPtr channel, const char *name, constDependencyPtr constraint, bool is_and) const = 0;
+    virtual ChannelPtr guessResolvableChannel (constResolvablePtr resolvable) const = 0;
+
+    // Iterate across resolvables
+
+    virtual int foreachResolvable (ChannelPtr channel, CResolvableFn fn, void *data) = 0;
+    virtual int foreachResolvableByName (const std::string & name, ChannelPtr channel, CResolvableFn fn, void *user_data) = 0;
+    virtual int foreachResolvableByMatch (constMatchPtr match, CResolvableFn fn, void *user_data) = 0;
+
+    // Iterate across provides or requirement
+
+    virtual int foreachProvidingResolvable (constDependencyPtr dep, ResolvableAndSpecFn fn, void *user_data) = 0;
+    virtual int foreachRequiringResolvable (constDependencyPtr dep, ResolvableAndDepFn fn, void *user_data) = 0;
+    virtual int foreachConflictingResolvable (constDependencyPtr dep, ResolvableAndDepFn fn, void *user_data) = 0;
+
+    // upgrades
+
+    int foreachUpgrade (constResolvablePtr resolvable, ChannelPtr channel, CResolvableFn fn, void *data);
+    PackageUpdateList getUpgrades (constResolvablePtr resolvable, constChannelPtr channel);
+    constResolvablePtr getBestUpgrade (constResolvablePtr resolvable, bool subscribed_only);
+    int foreachSystemUpgrade (bool subscribed_only, ResolvablePairFn fn, void *data);
+
+    // provider
+
+    bool getSingleProvider (constDependencyPtr dep, constChannelPtr channel, constResolvablePtr *resolvable);
+
+    // Transacting
+
+    bool  canTransactResolvable (constResolvablePtr resolvable);
+    bool  transact (const ResolvableList & installResolvables, const ResolvableList & remove_resolvables, int flags);
+
+    // XML serialization
+
+    void serialize (XmlNodePtr parent);
+    void toFile (const char *filename);
+
+    // Duplicating (primarily for atomic refreshes)
+    WorldPtr dup (void);
+
+    // only used for bindings
+    void setRefreshFunction (WorldRefreshFn refresh_fn);
+
+};
+    
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _World_h
diff --git a/zypp/solver/detail/WorldPtr.h b/zypp/solver/detail/WorldPtr.h
new file mode 100644 (file)
index 0000000..8e27358
--- /dev/null
@@ -0,0 +1,40 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* WorldPtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _WorldPtr_h
+#define _WorldPtr_h
+
+#include <y2util/RepDef.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : WorldPtr
+//     CLASS NAME : constWorldPtr
+///////////////////////////////////////////////////////////////////
+DEFINE_BASE_POINTER(World);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _WorldPtr_h
diff --git a/zypp/solver/detail/XmlNode.cc b/zypp/solver/detail/XmlNode.cc
new file mode 100644 (file)
index 0000000..f639124
--- /dev/null
@@ -0,0 +1,287 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* XmlNode.cc  wrapper for xmlNodePtr from libxml2
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * Definition of 'edition'
+ *  contains epoch-version-release-arch
+ *  and comparision functions
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <zypp/solver/detail/XmlNode.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+IMPL_BASE_POINTER(XmlNode);
+
+//---------------------------------------------------------------------------
+
+XmlNode::XmlNode (const xmlNodePtr node)
+    : _node(node)
+{
+}
+
+XmlNode::XmlNode (const char *name)
+    : _node(xmlNewNode (NULL, (const xmlChar *)name))
+{
+}
+
+XmlNode::~XmlNode ()
+{
+}
+
+//---------------------------------------------------------------------------
+
+string
+XmlNode::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+XmlNode::toString ( const XmlNode & node )
+{
+    return "<xmlnode/>";
+}
+
+
+ostream &
+XmlNode::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const XmlNode& node)
+{
+    return os << node.asString();
+}
+
+//---------------------------------------------------------------------------
+
+const char *
+XmlNode::getValue (const char *name, const char *deflt) const
+{
+    char *ret;
+    xmlChar *xml_s;
+    xmlNode *child;
+
+    xml_s = xmlGetProp(_node, (const xmlChar *)name);
+//    if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlNode::getValue(%s) xmlGetProp '%s'\n", name, (char *)xml_s);
+
+    if (xml_s) {
+       ret = strdup ((const char *)xml_s);
+       xmlFree (xml_s);
+       return ret;
+    }
+
+    child = _node->xmlChildrenNode;
+
+    while (child) {
+//     if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlNode::getValue(%s) child '%s'\n", name, (const char *)(child->name));
+       if (strcasecmp((const char *)(child->name), name) == 0) {
+           xml_s = xmlNodeGetContent(child);
+//         if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlNode::getValue(%s) xmlNodeGetContent '%s'\n", name, (char *)xml_s);
+           if (xml_s) {
+               ret = strdup ((const char *)xml_s);
+               xmlFree (xml_s);
+               return ret;
+           }
+       }
+       child = child->next;
+    }
+
+//    if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlNode::getValue(%s) NULL\n", name);
+    return deflt;
+}
+
+
+const char *
+XmlNode::getProp (const char *name, const char *deflt) const
+{
+    xmlChar *ret;
+    char *gs;
+
+    ret = xmlGetProp (_node, (const xmlChar *)name);
+//    if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlNode::getProp(%s) xmlGetProp '%s'\n", name, (char *)ret);
+    if (ret) {
+       gs = strdup ((const char *)ret);
+       xmlFree (ret);
+       return gs;
+    }
+    return deflt;
+}
+
+
+bool
+XmlNode::getIntValue (const char *name, int *value) const
+{
+    const char *strval;
+    char *ret;
+    int z;
+
+    strval = this->getValue (name, NULL);
+    if (!strval) {
+       return false;
+    }
+
+    z = strtol (strval, &ret, 10);
+    if (*ret != '\0') {
+       free ((void *)strval);
+       return false;
+    }
+
+    free ((void *)strval);
+    *value = z;
+    return true;
+}
+
+
+int
+XmlNode::getIntValueDefault (const char *name, int def) const
+{
+    int z;
+    if (this->getIntValue (name, &z))
+       return z;
+    else
+       return def;
+}
+
+              
+unsigned int
+XmlNode::getUnsignedIntValueDefault (const char *name, unsigned int def) const
+{
+    unsigned int z;
+    if (this->getUnsignedIntValue (name, &z))
+       return z;
+    else
+       return def;
+}
+
+
+bool
+XmlNode::getUnsignedIntValue (const char *name, unsigned int *value) const
+{
+    const char *strval;
+    char *ret;
+    int z;
+
+    strval = this->getValue (name, NULL);
+    if (!strval) {
+       return false;
+    }
+
+    z = strtoul (strval, &ret, 10);
+    if (*ret != '\0') {
+       free ((void *)strval);
+       return false;
+    }
+
+    free ((void *)strval);
+    *value = z;
+    return true;
+}
+
+
+unsigned int
+XmlNode::getUnsignedIntPropDefault (const char *name, unsigned int def) const
+{
+    xmlChar *buf;
+    unsigned int ret;
+
+    buf = xmlGetProp (_node, (const xmlChar *)name);
+
+    if (buf) {
+       ret = strtol ((const char *)buf, NULL, 10);
+       xmlFree (buf);
+       return (ret);
+    } else {
+       return (def);
+    }
+}
+
+
+const char *
+XmlNode::getContent (void) const
+{
+    xmlChar *buf;
+    char *ret;
+
+    buf = xmlNodeGetContent (_node);
+
+    ret = strdup ((const char *)buf);
+
+    xmlFree (buf);
+
+    return (ret);
+}
+
+
+unsigned int
+XmlNode::getUnsignedIntContentDefault (unsigned int def) const
+{
+    xmlChar *buf;
+    unsigned int ret;
+
+    buf = xmlNodeGetContent (_node);
+
+    if (buf) {
+       ret = strtol ((const char *)buf, NULL, 10);
+       xmlFree (buf);
+       return (ret);
+    } else {
+       return (def);
+    }
+}
+
+
+const XmlNodePtr
+XmlNode::getNode (const char *name) const
+{
+    xmlNodePtr iter;
+
+    for (iter = _node->xmlChildrenNode; iter; iter = iter->next) {
+       if (strcasecmp ((const char *)(iter->name), name) == 0) {
+           return new XmlNode (iter);
+       }
+    }
+
+    return NULL;
+}
+
+
+//---------------------------------------------------------------------------
+
+
+void
+XmlNode::addTextChild (const char *name, const char *content)
+{
+    xmlNewTextChild (_node, NULL, (const xmlChar *)name, (const xmlChar *)content);
+}
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/detail/XmlNode.h b/zypp/solver/detail/XmlNode.h
new file mode 100644 (file)
index 0000000..098a36d
--- /dev/null
@@ -0,0 +1,106 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* XmlNode.h  wrapper for xmlNode* from libxml2
+ *
+ * Copyright (C) 2000-2003 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _XmlNode_h
+#define _XmlNode_h
+
+#include <list>
+
+#include <iosfwd>
+#include <string>
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+
+#include <zypp/solver/detail/XmlNodePtr.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//
+//      CLASS NAME : XmlNode
+
+class XmlNode : public CountedRep 
+{
+    REP_BODY(XmlNode);
+
+  private:
+    const xmlNodePtr _node;
+
+  public:
+    XmlNode (const xmlNodePtr node);
+    XmlNode (const char *name);
+    virtual ~XmlNode ();
+
+    // ---------------------------------- I/O
+
+    static std::string toString ( const XmlNode & node );
+
+    virtual std::ostream & dumpOn( std::ostream & str ) const;
+
+    friend std::ostream& operator<<( std::ostream&, const XmlNode & );
+
+    std::string asString ( void ) const;
+
+    // ---------------------------------- accessors
+
+    const char *name() const { return ((const char *)(_node->name)); }
+    xmlNodePtr node() const { return (_node); }
+    XmlNodePtr next() const { return (_node->next == NULL ? NULL : new XmlNode (_node->next)); }
+    XmlNodePtr children() const { return (_node->xmlChildrenNode == NULL ? NULL : new XmlNode (_node->xmlChildrenNode)); }
+    xmlElementType type() const { return (_node->type); }
+
+    // ---------------------------------- methods
+
+    const char *getProp (const char *name, const char *deflt = "") const;
+    const char *getValue (const char *name, const char *deflt = "") const;
+    const char *getContent (void) const;
+
+    bool equals (const char *n) const { return (strcasecmp (name(), n) == 0); }
+    bool isElement (void) const { return (type() == XML_ELEMENT_NODE); }
+
+    bool match (const char *str) const { return (! strcasecmp ((const char *)(_node->name), str)); }
+
+    const XmlNodePtr getNode (const char *name) const;
+
+    // The former will get either a property or a tag, whereas the latter will
+    //   get only a property
+
+    bool getIntValue (const char *name, int *value) const;
+    int getIntValueDefault (const char *name, int def) const;
+
+    bool getUnsignedIntValue (const char *name, unsigned int *value) const;
+    unsigned int getUnsignedIntValueDefault (const char *name, unsigned int def) const;
+
+    unsigned int getUnsignedIntPropDefault (const char *name, unsigned int def) const;
+
+    unsigned int getUnsignedIntContentDefault (unsigned int def) const;
+
+    void addTextChild (const char *name, const char *content);
+};
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+
+#endif  // _XmlNode_h
diff --git a/zypp/solver/detail/XmlNodePtr.h b/zypp/solver/detail/XmlNodePtr.h
new file mode 100644 (file)
index 0000000..b81a32e
--- /dev/null
@@ -0,0 +1,40 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* XmlNodePtr.h
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _XmlNodePtr_h
+#define _XmlNodePtr_h
+
+#include <y2util/RepDef.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//     CLASS NAME : XmlNodePtr
+//     CLASS NAME : constXmlNodePtr
+///////////////////////////////////////////////////////////////////
+DEFINE_BASE_POINTER(XmlNode);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif // _XmlNodePtr_h
diff --git a/zypp/solver/detail/XmlParser.cc b/zypp/solver/detail/XmlParser.cc
new file mode 100644 (file)
index 0000000..f602684
--- /dev/null
@@ -0,0 +1,831 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* XmlParser.cc  wrapper for XML I/O
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <config.h>
+#include <ctype.h>
+#include <assert.h>
+
+#include <zypp/solver/detail/XmlParser.h>
+#include <zypp/solver/detail/Dependency.h>
+#include <zypp/solver/detail/OrDependency.h>
+#include <zypp/solver/detail/PackageUpdate.h>
+#include <zypp/solver/detail/utils.h>
+
+#include <zypp/solver/detail/debug.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+//---------------------------------------------------------------------------
+
+static DependencyPtr
+parse_dep_attrs(bool *is_obsolete, const xmlChar **attrs)
+{
+    int i;
+    bool op_present = false;
+    /* Temporary variables dependent upon the presense of an 'op' attribute */
+    const char *name = NULL;
+    int epoch = -1;
+    string version;
+    string release;
+    string arch;
+    Relation relation = Relation::Any;
+
+    *is_obsolete = false;
+
+    for (i = 0; attrs[i]; i++) {
+       const char *attr = (const char *)attrs[i++];
+       const char *value = (const char *)attrs[i];
+
+       if (!strcasecmp(attr, "name"))              name = value;
+       else if (!strcasecmp(attr, "op")) {         op_present = true; relation = Relation::parse(value); }
+       else if (!strcasecmp(attr, "epoch"))        epoch = atoi (value);
+       else if (!strcasecmp(attr, "version"))      version = value;
+       else if (!strcasecmp(attr, "release"))      release = value;
+       else if (!strcasecmp(attr, "arch"))         arch = value;
+       else if (!strcasecmp (attr, "obsoletes"))   *is_obsolete = true;
+       else {
+           if (getenv ("RC_SPEW_XML")) rc_debug (RC_DEBUG_LEVEL_ALWAYS, "! Unknown attribute: %s = %s", attr, value);
+       }
+
+    }
+
+    /* FIXME: should get Channel from XML */
+    /* FIXME: should get Kind from XML */
+    return new Dependency (name, relation, Kind::Package, new Channel(CHANNEL_TYPE_ANY), epoch, version, release, Arch::create(arch));
+}
+
+
+//---------------------------------------------------------------------------
+// SAX callbacks
+
+static void
+sax_start_document(void *ptr)
+{
+    XmlParser *ctx = (XmlParser *)ptr;
+    if (ctx->processing()) return;
+
+//    if (getenv ("RC_SPEW_XML")) rc_debug (RC_DEBUG_LEVEL_ALWAYS, "* Start document");
+
+    ctx->setProcessing (true);
+}
+
+
+static void
+sax_end_document(void *ptr)
+{
+    XmlParser *ctx = (XmlParser *)ptr;
+    if (!ctx->processing()) return;
+
+//    if (getenv ("RC_SPEW_XML")) rc_debug (RC_DEBUG_LEVEL_ALWAYS, "* End document");
+
+    ctx->setProcessing (false);
+}
+
+
+static void
+sax_start_element(void *ptr, const xmlChar *name, const xmlChar **attrs)
+{
+    XmlParser *ctx = (XmlParser *)ptr;
+
+    ctx->releaseBuffer();
+
+#if 0
+//    if (getenv ("RC_SPEW_XML"))      rc_debug (RC_DEBUG_LEVEL_ALWAYS, "* Start element (%s)", (const char *)name);
+
+    if (attrs) {
+       for (int i = 0; attrs[i]; i += 2) {
+           if (getenv ("RC_SPEW_XML")) rc_debug (RC_DEBUG_LEVEL_ALWAYS, "   - Attribute (%s=%s)", (const char *)attrs[i], (const char *)attrs[i+1]);
+       }
+    }
+#endif
+    if (!strcmp((const char *)name, "channel") || !strcmp((const char *)name, "subchannel")) {
+       /* Unneeded container tags.  Ignore */
+       return;
+    }
+
+    return ctx->startElement ((const char *)name, attrs);
+
+}
+
+
+static void
+sax_end_element(void *ptr, const xmlChar *name)
+{
+    XmlParser *ctx = (XmlParser *)ptr;
+
+//    if (getenv ("RC_SPEW_XML"))      rc_debug (RC_DEBUG_LEVEL_ALWAYS, "* End element (%s)", (const char *)name);
+    
+    if (!strcmp((const char *)name, "channel") || !strcmp((const char *)name, "subchannel")) {
+       /* Unneeded container tags.  Ignore */
+       name = NULL;
+    }
+
+    return ctx->endElement ((const char *)name);
+}
+
+
+static void
+sax_characters(void *ptr, const xmlChar *ch, int len)
+{
+    XmlParser *ctx = (XmlParser *)ptr;
+
+    ctx->toBuffer ((const char *)ch, len);
+    return;
+}
+
+
+static void
+sax_warning(void *ptr, const char *msg, ...)
+{
+    va_list args;
+    char tmp[2048];
+
+    va_start(args, msg);
+
+    if (vsnprintf(tmp, 2048, msg, args) >= 2048) fprintf (stderr, "vsnprintf overflow\n");
+    rc_debug (RC_DEBUG_LEVEL_WARNING, "* SAX Warning: %s", tmp);
+
+    va_end(args);
+}
+
+
+static void
+sax_error(void *ptr, const char *msg, ...)
+{
+    va_list args;
+    char tmp[2048];
+
+    va_start(args, msg);
+
+    if (vsnprintf(tmp, 2048, msg, args) >= 2048) fprintf (stderr, "vsnprintf overflow\n");
+    rc_debug (RC_DEBUG_LEVEL_ERROR, "* SAX Error: %s", tmp);
+
+    va_end(args);
+}
+
+
+static xmlSAXHandler sax_handler = {
+    NULL,              /* internalSubset */
+    NULL,              /* isStandalone */
+    NULL,              /* hasInternalSubset */
+    NULL,              /* hasExternalSubset */
+    NULL,              /* resolveEntity */
+    NULL,              /* getEntity */
+    NULL,              /* entityDecl */
+    NULL,              /* notationDecl */
+    NULL,              /* attributeDecl */
+    NULL,              /* elementDecl */
+    NULL,              /* unparsedEntityDecl */
+    NULL,              /* setDocumentLocator */
+    sax_start_document,        /* startDocument */
+    sax_end_document,  /* endDocument */
+    sax_start_element, /* startElement */
+    sax_end_element,   /* endElement */
+    NULL,              /* reference */
+    sax_characters,     /* characters */
+    NULL,              /* ignorableWhitespace */
+    NULL,              /* processingInstruction */
+    NULL,              /* comment */
+    sax_warning,       /* warning */
+    sax_error,         /* error */
+    sax_error          /* fatalError */
+};
+
+//---------------------------------------------------------------------------
+
+XmlParser::XmlParser (constChannelPtr channel)
+    : _channel (channel)
+    , _processing (false)
+    , _xml_context (NULL)
+    , _state (PARSER_TOPLEVEL)
+    , _current_package (NULL)
+    , _current_update (NULL)
+    , _toplevel_dep_list (NULL)
+    , _current_dep_list (NULL)
+    , _text_buffer (NULL)
+    , _text_buffer_size (0)
+{
+//    if (getenv ("RC_SPEW_XML")) rc_debug (RC_DEBUG_LEVEL_ALWAYS, "* Context created (%p)", this);
+}
+
+
+XmlParser::~XmlParser()
+{
+    releaseBuffer ();
+}
+
+//---------------------------------------------------------------------------
+
+string
+XmlParser::asString ( void ) const
+{
+    return toString (*this);
+}
+
+
+string
+XmlParser::toString ( const XmlParser & context )
+{
+    return "<XmlParser/>";
+}
+
+
+ostream &
+XmlParser::dumpOn( ostream & str ) const
+{
+    str << asString();
+    return str;
+}
+
+
+ostream&
+operator<<( ostream& os, const XmlParser& context)
+{
+    return os << context.asString();
+}
+
+//---------------------------------------------------------------------------
+
+void
+XmlParser::toBuffer (const char *data, size_t size)
+{
+    _text_buffer = (char *)realloc (_text_buffer, _text_buffer_size + size + 1);
+    strncpy (_text_buffer + _text_buffer_size, (char *)data, size);
+    _text_buffer_size += size;
+    _text_buffer[_text_buffer_size] = 0;
+
+//    if (getenv ("RC_SPEW_XML"))      fprintf (stderr, "XmlParser[%p]::toBuffer(%.32s...,%ld)\n", this, data, (long)size);
+}
+
+
+void
+XmlParser::releaseBuffer ()
+{
+    if (_text_buffer)
+       free (_text_buffer);
+    _text_buffer = NULL;
+    _text_buffer_size = 0;
+//    if (getenv ("RC_SPEW_XML"))      fprintf (stderr, "XmlParser[%p]::releaseBuffer()\n", this);
+}
+
+
+void
+XmlParser::parseChunk(const char *xmlbuf, size_t size)
+{
+    if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::parseChunk(%.32s...,%ld)\n", xmlbuf, (long)size);
+
+    xmlSubstituteEntitiesDefault(true);
+    
+    if (!_xml_context) {
+       _xml_context = xmlCreatePushParserCtxt(&sax_handler, this, NULL, 0, NULL);
+    }
+
+    xmlParseChunk(_xml_context, xmlbuf, size, 0);
+}
+
+
+PackageList
+XmlParser::done()
+{
+//    if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::done()\n");
+
+    if (_processing)
+       xmlParseChunk(_xml_context, NULL, 0, 1);
+
+    if (_xml_context)
+       xmlFreeParserCtxt(_xml_context);
+    
+    if (_current_package) {
+       fprintf (stderr, "Incomplete package lost\n");
+    }
+
+    if (_current_update) {
+       fprintf (stderr, "Incomplete update lost");
+    }
+
+    return _all_packages;
+}
+
+
+//---------------------------------------------------------------------------
+// Parser state callbacks
+
+void
+XmlParser::startElement(const char *name, const xmlChar **attrs)
+{
+//    if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::startElement(%s)\n", name);
+
+    switch (_state) {
+    case PARSER_TOPLEVEL:
+       toplevelStart(name, attrs);
+       break;
+    case PARSER_PACKAGE:
+       packageStart(name, attrs);
+       break;
+    case PARSER_HISTORY:
+       historyStart(name, attrs);
+       break;
+    case PARSER_DEP:
+       dependencyStart(name, attrs);
+       break;
+    default:
+       break;
+    }
+
+    return;
+}
+
+
+void
+XmlParser::endElement(const char *name)
+{
+//    if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::endElement(%s)\n", name);
+
+    if (name != NULL) {                        // sax_end_element might set name to NULL
+       switch (_state) {
+           case PARSER_PACKAGE:
+               packageEnd(name);
+               break;
+           case PARSER_HISTORY:
+               historyEnd(name);
+               break;
+           case PARSER_UPDATE:
+               updateEnd(name);
+               break;
+           case PARSER_DEP:
+               dependencyEnd(name);
+               break;
+           default:
+               break;
+       }
+    }
+
+    releaseBuffer();
+
+    return;
+}
+
+
+void
+XmlParser::toplevelStart(const char * name, const xmlChar **attrs)
+{
+//    if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::toplevelStart(%s)\n", name);
+
+    if (!strcmp(name, "package")) {
+       assert(_current_package == NULL);
+
+       _state = PARSER_PACKAGE;
+
+       _current_package = new Package(_channel);
+       _current_requires.clear();
+       _current_provides.clear();
+       _current_conflicts.clear();
+       _current_children.clear();
+       _current_recommends.clear();
+       _current_suggests.clear();
+       _current_obsoletes.clear();
+
+    }
+    else {
+       if (getenv ("RC_SPEW_XML")) rc_debug (RC_DEBUG_LEVEL_ALWAYS, "! Not handling %s at toplevel", (const char *)name);
+    }
+}
+
+
+void
+XmlParser::packageStart(const char * name, const xmlChar **attrs)
+{
+//    if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::packageStart(%s)\n", name);
+
+    assert(_current_package != NULL);
+
+    /* Only care about the containers here */
+    if (!strcmp((const char *)name, "history")) {
+       _state = PARSER_HISTORY;
+    }
+    else if (!strcmp (name, "deps")) {
+       /*
+        * We can get a <deps> tag surrounding the actual package
+        * dependency sections (requires, provides, conflicts, etc).
+        * In this case, we'll just ignore this tag quietly.
+        */
+    }
+    else if (!strcmp(name, "requires")) {
+       _state = PARSER_DEP;
+       _current_dep_list = _toplevel_dep_list = &_current_requires;
+    }
+    else if (!strcmp(name, "recommends")) {
+       _state = PARSER_DEP;
+       _current_dep_list = _toplevel_dep_list = &_current_recommends;
+    }
+    else if (!strcmp(name, "suggests")) {
+       _state = PARSER_DEP;
+       _current_dep_list = _toplevel_dep_list = &_current_suggests;
+    }
+    else if (!strcmp(name, "conflicts")) {
+       bool is_obsolete = false;
+       int i;
+
+       _state = PARSER_DEP;
+
+       for (i = 0; attrs && attrs[i] && !is_obsolete; i += 2) {
+
+           if (!strcasecmp ((const char *)(attrs[i]), "obsoletes"))
+               is_obsolete = true;
+       }
+
+       if (is_obsolete)
+           _current_dep_list = _toplevel_dep_list = &_current_obsoletes;
+       else {
+           _current_dep_list = _toplevel_dep_list = &_current_conflicts;
+       }
+    }
+    else if (!strcmp(name, "obsoletes")) {
+       _state = PARSER_DEP;
+       _current_dep_list = _toplevel_dep_list = &_current_obsoletes;
+    }
+    else if (!strcmp(name, "provides")) {
+       _state = PARSER_DEP;
+       _current_dep_list = _toplevel_dep_list = &_current_provides;
+    }
+    else if (!strcmp(name, "children")) {
+       _state = PARSER_DEP;
+       _current_dep_list = _toplevel_dep_list = &_current_children;
+    } 
+    else {
+//     if (getenv ("RC_SPEW_XML")) rc_debug (RC_DEBUG_LEVEL_ALWAYS, "! Not handling %s in package start", name);
+    }
+}
+
+
+void
+XmlParser::historyStart(const char * name, const xmlChar **attrs)
+{
+//    if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::historyStart(%s)\n", name);
+
+    assert(_current_package != NULL);
+
+    if (!strcmp(name, "update")) {
+       assert(_current_update == NULL);
+
+       _current_update = new PackageUpdate(_current_package->name());
+
+       _state = PARSER_UPDATE;
+    }
+    else {
+       if (getenv ("RC_SPEW_XML")) rc_debug (RC_DEBUG_LEVEL_ALWAYS, "! Not handling %s in history", name);
+    }
+}
+
+
+void
+XmlParser::dependencyStart(const char *name, const xmlChar **attrs)
+{
+//    if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::dependencyStart(%s)\n", name);
+
+    if (!strcmp(name, "dep")) {
+       DependencyPtr dep;
+       bool is_obsolete;
+
+       dep = parse_dep_attrs(&is_obsolete, attrs);
+
+       if (is_obsolete)
+           _current_obsoletes.push_back (dep);
+       else {
+           _current_dep_list->push_back (dep);
+       }
+    }
+    else if (!strcmp(name, "or"))
+       _current_dep_list = new CDependencyList;
+    else {
+       if (getenv ("RC_SPEW_XML")) rc_debug (RC_DEBUG_LEVEL_ALWAYS, "! Not handling %s in dependency", name);
+    }
+}
+
+
+//---------------------------------------------------------------------------
+
+
+void
+XmlParser::packageEnd(const char *name)
+{
+//    if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::packageEnd(%s)\n", name);
+
+    assert(_current_package != NULL);
+
+    if (!strcmp(name, "package")) {
+       PackageUpdatePtr update;
+
+       /* If possible, grab the version info from the most recent update.
+        * Otherwise, try to find where the package provides itself and use
+        * that version info.
+        */
+       update = _current_package->getLatestUpdate();
+
+       if (update) {
+           _current_package->setName (update->name());
+           _current_package->setKind (update->kind());
+           _current_package->setEdition (update->edition());
+           _current_package->setFileSize (update->packageSize());
+           _current_package->setInstalledSize (update->installedSize());
+       }
+       else {
+           for (CDependencyList::const_iterator iter = _current_provides.begin(); iter != _current_provides.end(); iter++) {
+               if ((*iter)->relation().isEqual()
+                   && ((*iter)->name() == _current_package->name()))
+               {
+                   _current_package->setKind ((*iter)->kind());
+                   _current_package->setEdition ((*iter)->edition());
+                   break;
+               }
+           }
+       }
+
+       /* Hack for the old XML */
+       if (_current_package->arch()->isUnknown()) {
+           _current_package->setArch (Arch::System);
+       }
+
+       // check if we provide ourselfs properly
+
+       CDependencyList::const_iterator piter;
+       for (piter = _current_provides.begin(); piter != _current_provides.end(); piter++) {
+           if ((*piter)->relation().isEqual()
+               && ((*piter)->name() == _current_package->name()))
+           {
+               break;
+           }
+       }
+
+       if (piter == _current_provides.end()) {                 // no self provide found, construct one
+           constDependencyPtr selfdep = new Dependency (_current_package->name(), Relation::Equal, _current_package->kind(), _current_package->channel(), _current_package->edition());
+//if (getenv ("RC_SPEW")) fprintf (stderr, "Adding self-provide [%s]\n", selfdep->asString().c_str());
+           _current_provides.push_front (selfdep);
+       }
+
+       _current_package->setRequires   (_current_requires);
+       _current_package->setProvides   (_current_provides);
+       _current_package->setConflicts  (_current_conflicts);
+       _current_package->setObsoletes  (_current_obsoletes);
+       _current_package->setSuggests   (_current_suggests);
+       _current_package->setRecommends (_current_recommends);
+
+       _all_packages.push_back (_current_package);
+       
+       if (getenv ("RC_SPEW")) fprintf (stderr, "%s\n", _current_package->asString(true).c_str());
+       if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::packageEnd done: '%s'\n", _current_package->asString(true).c_str());
+//     if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::packageEnd now %ld packages\n", _all_packages.size());
+       _current_package = NULL;
+       _state = PARSER_TOPLEVEL;
+    }
+    else if (!strcmp(name, "name")) {                  _current_package->setName (strstrip (_text_buffer));
+    } else if (!strcmp(name, "pretty_name")) {         _current_package->setPrettyName (strstrip (_text_buffer));
+    } else if (!strcmp(name, "summary")) {             _current_package->setSummary (strstrip (_text_buffer));
+    } else if (!strcmp(name, "description")) {         _current_package->setDescription (strstrip (_text_buffer));
+    } else if (!strcmp(name, "section")) {             _current_package->setSection (new Section(strstrip (_text_buffer)));
+    } else if (!strcmp(name, "arch")) {                        _current_package->setArch (strstrip (_text_buffer));
+    } else if (!strcmp(name, "filesize")) {            _current_package->setFileSize (atoi(_text_buffer));
+    } else if (!strcmp(name, "installedsize")) {       _current_package->setInstalledSize (atoi(_text_buffer));
+    } else if (!strcmp(name, "install_only")) {                _current_package->setInstallOnly (true);
+    } else if (!strcmp(name, "package_set")) {         _current_package->setPackageSet (true);
+    } else {
+       if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::packageEnd(%s) unknown\n", name);
+    }
+
+//    if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::packageEnd(%s) done\n", name);
+
+    releaseBuffer();
+}
+
+
+void
+XmlParser::historyEnd(const char *name)
+{
+//    if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::historyEnd(%s)\n", name);
+    assert(_current_package != NULL);
+
+    if (!strcmp(name, "history")) {
+       assert(_current_update == NULL);
+
+       _state = PARSER_PACKAGE;
+    }
+}
+
+
+void
+XmlParser::updateEnd(const char *name)
+{
+//    if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::updateEnd(%s)\n", name);
+
+    constChannelPtr channel;
+    const char *url_prefix = NULL;
+
+    assert(_current_package != NULL);
+    assert(_current_update != NULL);
+
+    channel = _current_package->channel();
+
+    if (channel != NULL) {
+       url_prefix = channel->filePath ();
+    }
+
+    if (!strcmp(name, "update")) {
+       _current_package->addUpdate(_current_update);
+
+       _current_update = NULL;
+       _state = PARSER_HISTORY;
+
+    } else if (!strcmp(name, "epoch")) {               _current_update->setEpoch (atoi(_text_buffer));
+    } else if (!strcmp(name, "version")) {             _current_update->setVersion (strstrip (_text_buffer));
+    } else if (!strcmp(name, "release")) {             _current_update->setRelease (strstrip (_text_buffer));
+    } else if (!strcmp(name, "arch")) {                        _current_update->setArch (strstrip (_text_buffer));
+    } else if (!strcmp(name, "filename")) {
+       strstrip (_text_buffer);
+       if (url_prefix) {
+           _current_update->setPackageUrl (maybe_merge_paths(url_prefix, _text_buffer));
+       }
+       else {
+           _current_update->setPackageUrl (_text_buffer);
+       }
+    } else if (!strcmp(name, "filesize")) {            _current_update->setPackageSize (atoi(_text_buffer));
+    } else if (!strcmp(name, "installedsize")) {       _current_update->setInstalledSize (atoi (_text_buffer));
+    } else if (!strcmp(name, "signaturename")) {
+       strstrip (_text_buffer);
+       if (url_prefix) {
+           _current_update->setSignatureUrl (maybe_merge_paths(url_prefix, _text_buffer));
+       }
+       else {
+           _current_update->setSignatureUrl (_text_buffer);
+       }
+    } else if (!strcmp(name, "signaturesize")) {       _current_update->setSignatureSize (atoi (_text_buffer));
+    } else if (!strcmp(name, "md5sum")) {              _current_update->setMd5sum (strstrip (_text_buffer));
+    } else if (!strcmp(name, "importance")) {          _current_update->setImportance (new Importance (strstrip (_text_buffer)));
+    } else if (!strcmp(name, "description")) {         _current_update->setDescription (strstrip (_text_buffer));
+    } else if (!strcmp(name, "hid")) {                 _current_update->setHid (atoi(_text_buffer));
+    } else if (!strcmp (name, "license")) {            _current_update->setLicense (strstrip (_text_buffer));
+    } else {
+       fprintf (stderr, "XmlParser::updateEnd(%s) unknown\n", name);
+    }
+
+//    if (_current_update != NULL && getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::updateEnd(%s) => '%s'\n", name, _current_update->asString().c_str());
+
+    releaseBuffer();
+
+}
+
+
+void
+XmlParser::dependencyEnd(const char *name)
+{
+//    if (getenv ("RC_SPEW_XML")) fprintf (stderr, "XmlParser::dependencyEnd(%s)\n", name);
+
+    if (!strcmp(name, "or")) {
+       OrDependencyPtr or_dep = OrDependency::fromDependencyList (*_current_dep_list);
+       DependencyPtr dep = new Dependency (or_dep);
+
+       (*_current_dep_list).clear();
+
+       (*_toplevel_dep_list).push_back (dep);
+       _current_dep_list = _toplevel_dep_list;
+    }
+    else if (!strcmp(name, "dep")) {
+       /* We handled everything we needed for dep in start */
+    }
+    else {
+       /* All of the dep lists (requires, provides, etc.) */
+       _toplevel_dep_list = NULL;
+       _current_dep_list = NULL;
+       _state = PARSER_PACKAGE;
+    }
+}
+
+
+
+//===================================================================================================================
+
+#if 0
+//---------------------------------------------------------------------------
+
+/* ------ */
+
+
+static RCResolvableDep *
+rc_xml_node_to_resolvable_dep_internal (const xmlNode *node)
+{
+    gchar *name = NULL, *version = NULL, *release = NULL;
+    gboolean has_epoch = false;
+    guint32 epoch = 0;
+    RCResolvableRelation relation;
+    RCResolvableDep *dep;
+    
+    gchar *tmp;
+
+    if (g_strcasecmp (node->name, "dep")) {
+       return (NULL);
+    }
+
+    name = xml_get_prop (node, "name");
+    tmp = xml_get_prop (node, "op");
+    if (tmp) {
+       relation = rc_resolvable_relation_from_string (tmp);
+       
+       has_epoch = xml_get_guint32_value (node, "epoch", &epoch);
+
+       version = xml_get_prop (node, "version");
+       release = xml_get_prop (node, "release");
+    } else {
+       relation = RC_RELATION_ANY;
+    }
+
+    /* FIXME: should get channel from XML */
+    dep = rc_resolvable_dep_new (name, has_epoch, epoch, version, release,
+                                relation, RC_TYPE_RESOLVABLE, RC_CHANNEL_ANY,
+                                false, false);
+
+    g_free (tmp);
+    g_free (name);
+    g_free (version);
+    g_free (release);
+
+    return dep;
+} /* rc_xml_node_to_resolvable_dep_internal */
+
+RCResolvableDep *
+rc_xml_node_to_resolvable_dep (const xmlNode *node)
+{
+    RCResolvableDep *dep = NULL;
+
+    if (!g_strcasecmp (node->name, "dep")) {
+       dep = rc_xml_node_to_resolvable_dep_internal (node);
+       return (dep);
+    } else if (!g_strcasecmp (node->name, "or")) {
+       RCResolvableDepSList *or_dep_slist = NULL;
+       RCDepOr *or;
+       xmlNode *iter = node->xmlChildrenNode;
+
+       while (iter) {
+           if (iter->type == XML_ELEMENT_NODE) {
+               or_dep_slist = g_slist_append(
+                   or_dep_slist,
+                   rc_xml_node_to_resolvable_dep_internal (iter));
+           }
+
+           iter = iter->next;
+       }
+
+       or = rc_dep_or_new (or_dep_slist);
+       dep = rc_dep_or_new_provide (or);
+    }
+
+    return (dep);
+} /* rc_xml_node_to_resolvable_dep */
+
+/* ------ */
+
+/* This hack cleans 8-bit characters out of a string.  This is a very
+   problematic "solution" to the problem of non-UTF-8 package info. */
+static gchar *
+sanitize_string (const char *str)
+{
+    gchar *dup = g_strdup (str);
+    gchar *c;
+
+    return dup;
+
+    if (dup) {
+       for (c = dup; *c; ++c) {
+           if ((guint)*c > 0x7f)
+               *c = '_';
+       }
+    }
+
+    return dup;
+}
+
+#endif
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
diff --git a/zypp/solver/detail/XmlParser.h b/zypp/solver/detail/XmlParser.h
new file mode 100644 (file)
index 0000000..f2a277d
--- /dev/null
@@ -0,0 +1,140 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* XmlParser.h: XML routines
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _XmlParser_h
+#define _XmlParser_h
+
+#include <list>
+
+#include <iosfwd>
+#include <string.h>
+
+#include <zypp/solver/detail/Channel.h>
+#include <zypp/solver/detail/Package.h>
+#include <zypp/solver/detail/Dependency.h>
+#include <zypp/solver/detail/XmlNode.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////
+//
+//      CLASS NAME : XmlParser
+
+class XmlParser
+{
+  public:
+    enum _XmlParserState {
+       PARSER_TOPLEVEL = 0,
+       PARSER_PACKAGE,
+       PARSER_HISTORY,
+       PARSER_UPDATE,
+       PARSER_DEP,
+    };
+    typedef enum _XmlParserState XmlParserState;
+
+  private:
+    constChannelPtr _channel;
+    bool _processing;
+    xmlParserCtxtPtr _xml_context;
+    XmlParserState _state;
+
+    PackageList _all_packages;
+
+    /* Temporary state */
+    PackagePtr _current_package;
+    CDependencyList _current_requires;
+    CDependencyList _current_provides;
+    CDependencyList _current_conflicts;
+    CDependencyList _current_children;
+    CDependencyList _current_recommends;
+    CDependencyList _current_suggests;
+    CDependencyList _current_obsoletes;
+    PackageUpdatePtr _current_update;
+
+    // these point to one of the above lists during dependency parsing
+    CDependencyList *_toplevel_dep_list;
+    CDependencyList *_current_dep_list;
+
+    char *_text_buffer;
+    size_t _text_buffer_size;
+
+  protected:
+    void setState (XmlParserState state) { _state = state; }
+
+  public:
+
+    XmlParser (constChannelPtr channel);
+    virtual ~XmlParser();
+
+    // ---------------------------------- I/O
+
+    static std::string toString ( const XmlParser & parser);
+
+    virtual std::ostream & dumpOn( std::ostream & str ) const;
+
+    friend std::ostream& operator<<( std::ostream & str, const XmlParser & parser);
+
+    std::string asString ( void ) const;
+
+    // ---------------------------------- accessors
+
+    bool processing() const { return _processing; }
+    void setProcessing (bool processing) { _processing = processing; }
+
+    XmlParserState state (void) const { return _state; }
+
+#if 0  // are they needed ?
+    constChannelPtr channel() const { return _channel; }
+    void setChannel (constChannelPtr channel) { _channel = channel; }
+
+    xmlParserCtxtPtr xmlContext() const { return _xml_context; }
+    void setXmlContext (xmlParserCtxtPtr xml_context) { _xml_context = xml_context; }
+#endif
+    // ---------------------------------- methods
+
+    void toBuffer (const char *data, size_t size);
+    void releaseBuffer (void);         // free _text_buffer
+
+    void startElement(const char *name, const xmlChar **attrs);
+    void endElement(const char *name);
+
+    void toplevelStart(const char *name, const xmlChar **attrs);
+    void packageStart(const char *name, const xmlChar **attrs);
+    void historyStart(const char *name, const xmlChar **attrs);
+    void dependencyStart(const char *name, const xmlChar **attrs);
+
+    void updateEnd(const char *name);
+    void packageEnd(const char *name);
+    void historyEnd(const char *name);
+    void dependencyEnd(const char *name);
+
+    void parseChunk (const char *xmlbuf, size_t size);
+    PackageList done (void);
+};
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+
+#endif  // _XmlParser_h
diff --git a/zypp/solver/detail/debug.cc b/zypp/solver/detail/debug.cc
new file mode 100644 (file)
index 0000000..6cc24ff
--- /dev/null
@@ -0,0 +1,57 @@
+/* debug.cc
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+
+#include <y2util/stringutil.h>
+#include <zypp/solver/detail/debug.h>
+
+#include <string>
+#include <stdarg.h>
+#include <stdio.h>
+
+using namespace std;
+
+const char *
+debug_helper (const char *format, ...)
+{
+    va_list args;
+    static char *str = NULL;
+
+    if (str != NULL) free ((void *)str);
+
+    va_start (args, format);
+    vasprintf (&str, format, args);
+    va_end (args);
+
+    return str;
+}
+
+void
+debug_full (DebugLevel level, const char *format, ...)
+{
+    va_list args;
+    char *str = NULL;
+
+    va_start (args, format);
+    vasprintf (&str, format, args);
+    va_end (args);
+
+    printf ("%s\n", str); fflush (stdout);
+
+    free ((void *)str);
+}
diff --git a/zypp/solver/detail/debug.h b/zypp/solver/detail/debug.h
new file mode 100644 (file)
index 0000000..0eca406
--- /dev/null
@@ -0,0 +1,62 @@
+/* debug.h
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _DEBUG_H
+#define _DEBUG_H
+
+#include <stdarg.h>
+#include <stdio.h>
+
+typedef enum {
+    RC_DEBUG_LEVEL_ALWAYS   = -1,
+    RC_DEBUG_LEVEL_NONE     = 0,
+    RC_DEBUG_LEVEL_ERROR    = 1,
+    RC_DEBUG_LEVEL_CRITICAL = 2,
+    RC_DEBUG_LEVEL_WARNING  = 3,
+    RC_DEBUG_LEVEL_MESSAGE  = 4,
+    RC_DEBUG_LEVEL_INFO     = 5,
+    RC_DEBUG_LEVEL_DEBUG    = 6,
+} DebugLevel;
+
+#define DEBUG_LEVEL_ALWAYS   RC_DEBUG_LEVEL_ALWAYS
+#define DEBUG_LEVEL_NONE     RC_DEBUG_LEVEL_NONE
+#define DEBUG_LEVEL_ERROR    RC_DEBUG_LEVEL_ERROR
+#define DEBUG_LEVEL_CRITICAL RC_DEBUG_LEVEL_CRITICAL
+#define DEBUG_LEVEL_WARNING  RC_DEBUG_LEVEL_WARNING
+#define DEBUG_LEVEL_MESSAGE  RC_DEBUG_LEVEL_MESSAGE
+#define DEBUG_LEVEL_INFO     RC_DEBUG_LEVEL_INFO
+#define DEBUG_LEVEL_DEBUG    RC_DEBUG_LEVEL_DEBUG
+
+void debug_full (DebugLevel  level, const char   *format, ...);
+
+#ifdef RC_DEBUG_VERBOSE
+
+const char *debug_helper (const char *format, ...);
+
+#define debug(level, format...) \
+       debug_full (level, "%s (%s, %s:%d)", debug_helper (format), __FUNCTION__, __FILE__, __LINE__)
+
+#else
+
+#define debug debug_full
+
+#endif
+
+#define rc_debug debug
+
+#endif /* _DEBUG_H */
diff --git a/zypp/solver/detail/extract.cc b/zypp/solver/detail/extract.cc
new file mode 100644 (file)
index 0000000..3f50e88
--- /dev/null
@@ -0,0 +1,950 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * extract.cc
+ *
+ * Copyright (C) 2000-2003 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ */
+
+/*
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA.
+ */
+
+#include <zypp/solver/detail/extract.h>
+#include <zypp/solver/detail/XmlParser.h>
+#include <zypp/solver/detail/utils.h>
+
+#include <zypp/solver/detail/debug.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+
+int
+extract_packages_from_xml_node (XmlNodePtr node, ChannelPtr channel, CResolvableFn callback, void *data)
+{
+    PackagePtr package;
+    int count = 0;
+
+    if (getenv ("RC_SPEW_XML")) fprintf (stderr, "extract_packages_from_xml_node ()\n");
+    // search the 'package' node
+
+    while (node && !node->equals("package")) {
+       if (!node->isElement()) {
+           node = node->next();
+           continue;
+       }
+
+       node = node->children();
+    }
+
+    // extract the 'package' node, if found
+
+    while (node) {
+       if (node->equals("package")) {
+           package = new Package (node, channel);
+           if (package) {
+               if (getenv ("RC_SPEW")) fprintf (stderr, "%s\n", package->asString(true).c_str());
+               bool ok = true;
+               if (callback)
+                   ok = callback (package, data);
+               if (! ok)
+                   return -1;
+               ++count;
+           }
+       }
+       node = node->next();
+    }
+
+    return count;
+}
+
+
+int 
+extract_packages_from_helix_buffer (const char *buf, size_t len, ChannelPtr channel, CResolvableFn callback, void *data)
+{
+    unsigned int count = 0;
+    PackageList packages;
+
+    if (getenv ("RC_SPEW_XML")) fprintf (stderr, "extract_packages_from_helix_buffer(%.32s...,%ld,...)\n", buf, (long)len);
+
+    if (buf == NULL || len == 0)
+       return 0;
+
+    XmlParser parser (channel);
+    parser.parseChunk (buf, len);
+    packages = parser.done ();
+
+    if (packages.empty())
+       return 0;
+
+    count = packages.size();
+
+    if (getenv ("RC_SPEW_XML")) fprintf (stderr, "extract_packages_from_helix_buffer: parsed %d packages\n", count);
+
+    if (callback != NULL) {
+       for (PackageList::iterator iter = packages.begin(); iter != packages.end(); iter++) {
+           callback (*iter, data);
+       }
+    }
+  
+    return count;
+}
+
+
+int
+extract_packages_from_helix_file (const string & filename, ChannelPtr channel, CResolvableFn callback, void *data)
+{
+    Buffer *buf;
+    int count;
+
+    if (filename.empty())
+       return -1;
+
+    buf = buffer_map_file (filename);
+    if (buf == NULL)
+       return -1;
+
+    count = extract_packages_from_helix_buffer ((const char *)(buf->data), buf->size, channel, callback, data);
+
+    buffer_unmap_file (buf);
+
+    return count;
+}
+
+
+int
+extract_packages_from_undump_buffer (const char *buf, size_t len, ChannelAndSubscribedFn channel_callback, CResolvableFn resolvable_callback, MatchFn lock_callback, void *data)
+{
+    xmlDoc *doc;
+    XmlNodePtr dump_node;
+    ChannelPtr system_channel = NULL;
+    ChannelPtr current_channel = NULL;
+    XmlNodePtr channel_node;
+    int count = 0;
+
+    doc = parse_xml_from_buffer (buf, len);
+    if (doc == NULL)
+       return -1;
+
+    dump_node = new XmlNode (xmlDocGetRootElement (doc));
+    if (dump_node == NULL)
+       return -1;
+
+    if (!dump_node->equals("world")) {
+       debug (DEBUG_LEVEL_WARNING, "Unrecognized top-level node for undump: '%s'", dump_node->name());
+       return -1;
+    }
+
+    channel_node = dump_node->children();
+
+    while (channel_node != NULL) {
+
+       if (channel_node->equals("locks")) {
+           XmlNodePtr lock_node = channel_node->children();
+
+           while (lock_node) {
+               MatchPtr lock;
+
+               lock = new Match (lock_node);
+
+               if (lock_callback)
+                   lock_callback (lock, data);
+
+               lock_node = lock_node->next();
+           }
+
+       } else if (channel_node->equals("system_packages")) {
+
+           int subcount;
+
+           if (!system_channel) {
+               system_channel = new Channel ("@system", "System Packages", "@system", "System Packages");
+               system_channel->setSystem (true);
+               system_channel->setHidden (true);
+           }
+
+           if (channel_callback) {
+               channel_callback (system_channel, false, data);
+           }
+           
+           subcount = extract_packages_from_xml_node (channel_node, system_channel, resolvable_callback, data);
+
+           if (subcount < 0) {
+               /* Do something clever */
+               fprintf (stderr, "No packages found\n");
+               abort ();
+           }
+           
+           count += subcount;
+
+       } else if (channel_node->equals("channel")) {
+
+           int subscribed;
+           current_channel = new Channel (channel_node, &subscribed, (World *)data);
+
+           if (channel_callback) {
+               channel_callback (current_channel, subscribed != 0, data);
+           }
+
+           if (resolvable_callback) {
+               int subcount;
+               subcount = extract_packages_from_xml_node (channel_node, current_channel, resolvable_callback, data);
+               if (subcount < 0) {
+                   /* FIXME: do something clever */
+                   fprintf (stderr, "No packages found\n");
+                   abort ();
+               }
+               count += subcount;
+           }
+       }
+
+       channel_node = channel_node->next();
+    }
+
+    xmlFreeDoc (doc);
+
+    return count;
+}
+
+
+int
+extract_packages_from_undump_file (const string & filename, ChannelAndSubscribedFn channel_callback, CResolvableFn resolvable_callback, MatchFn lock_callback, void *data)
+{
+    Buffer *buf;
+    int count;
+
+    if (filename.empty())
+       return -1;
+
+    buf = buffer_map_file (filename);
+    if (buf == NULL)
+       return -1;
+
+    count = extract_packages_from_undump_buffer ((const char *)(buf->data), buf->size, channel_callback, resolvable_callback, lock_callback, data);
+
+    buffer_unmap_file (buf);
+
+    return count;
+}
+
+#if 0
+/* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** */
+
+static ResolvablePtr
+fill_debian_package (const char *buf, const char *url_prefix, int *off)
+{
+    const char *ibuf;
+    RCPackageUpdate *up = NULL;
+    ResolvablePtr r;
+    ResolvableList requires, provides, conflicts, suggests, recommends;
+
+    up = rc_package_update_new ();
+
+    ibuf = buf;
+    while (1) {
+       char *key;
+       GString *value = NULL;
+       const char *p;
+       int ind;
+
+       /* Linebreaks indicate the end of a package block. */
+       if (*ibuf == '\0' || *ibuf == '\n') break;
+
+       p = strchr (ibuf, ':');
+
+       /* Something bad happened, we're supposed to have a colon. */
+       if (!p) break;
+
+       /* Copy the name of the key and lowercase it */
+       key = g_ascii_strdown (ibuf, p - ibuf);
+       
+       /* Move past the colon and any spaces */
+       ibuf = p;
+       while (*ibuf && (*ibuf == ':' || *ibuf == ' ')) ibuf++;
+
+       ind = 0;
+       while ((p = strchr (ibuf, '\n'))) {
+           if (!value)
+               value = g_string_new ("");
+
+           g_string_append_len (value, ibuf, p - ibuf);
+           ind += p - ibuf;
+
+           ibuf = p;
+
+           /* Move past the newline */
+           ibuf++;
+
+           /* Check to see if this is a continuation of the previous line */
+           if (*ibuf == ' ') {
+               /* It is.  Move past the space */
+               ibuf++;
+
+               /*
+                * This is a hack.  Description is special because it's
+                * intended to be multiline and user-visible.  So if we're
+                * dealing with description, add a newline.
+                */
+
+               if (strncmp (key, "description",
+                            strlen ("description")) == 0) {
+                   g_string_append_c (value, '\n');
+
+                   /*
+                    * A period on a line by itself indicates that it
+                    * should be a blank line.  A newline will follow the
+                    * period, so we'll just skip over it.
+                    */
+                   if (*ibuf == '.')
+                       ibuf++;
+               }
+           }
+           else {
+               /* It isn't.  Break out. */
+               break;
+           }
+       }
+
+       if (!strncmp (key, "package", strlen ("package"))) {
+           rc_resolvable_spec_set_name (RC_RESOLVABLE_SPEC (pkg), value->str);
+       } else if (!strncmp (key, "installed-size",
+                            strlen ("installed-size"))) {
+           up->installed_size = strtoul (value->str, NULL, 10) * 1024;
+       } else if (!strncmp (key, "size", strlen ("size"))) {
+           up->package_size = strtoul(value->str, NULL, 10);
+       } else if (!strncmp (key, "description", strlen ("description"))) {
+           char *newline;
+
+           /*
+            * We only want the first line for the summary, and all the
+            * other lines for the description.
+            */
+
+           newline = strchr (value->str, '\n');
+           if (!newline) {
+               pkg->summary = strdup (value->str);
+               pkg->description = g_strconcat (value->str, "\n", NULL);
+           }
+           else {
+               pkg->summary = g_strndup (value->str, newline - value->str);
+               pkg->description = g_strconcat (newline + 1, "\n", NULL);
+           }
+       } else if (!strncmp (key, "version", strlen ("version"))) {
+           RCResolvableSpec *spec = RC_RESOLVABLE_SPEC (pkg);
+           rc_version_parse (value->str, spec);
+       } else if (!strncmp (key, "section", strlen ("section"))) {
+           pkg->section = rc_debman_section_to_package_section (value->str);
+       } else if (!strncmp (key, "depends", strlen ("depends"))) {
+           requires = g_slist_concat (
+               requires,
+               rc_debman_fill_depends (value->str, false));
+       } else if (!strncmp (key, "recommends", strlen ("recommends"))) {
+           recommends = g_slist_concat (
+               recommends,
+               rc_debman_fill_depends (value->str, false));
+       } else if (!strncmp (key, "suggests", strlen ("suggests"))) {
+           suggests = g_slist_concat (
+               suggests,
+               rc_debman_fill_depends (value->str, false));
+       } else if (!strncmp (key, "pre-depends", strlen ("pre-depends"))) {
+           requires = g_slist_concat (
+               requires,
+               rc_debman_fill_depends (value->str, true));
+       } else if (!strncmp (key, "conflicts", strlen ("conflicts"))) {
+           conflicts = g_slist_concat (
+               conflicts,
+               rc_debman_fill_depends (value->str, false));
+       } else if (!strncmp (key, "provides", strlen ("provides"))) {
+           provides = g_slist_concat (
+               provides,
+               rc_debman_fill_depends (value->str, false));
+       } else if (!strncmp (key, "filename", strlen ("filename"))) {
+           /* Build a new update with just this version */
+           if (url_prefix) {
+               up->package_url = g_strconcat (url_prefix, "/",
+                                              value->str,
+                                              NULL);
+           } else {
+               up->package_url = strdup (value->str);
+           }
+       } else if (!strncmp (key, "md5sum", strlen ("md5sum"))) {
+           up->md5sum = strdup (value->str);
+       } else if (!strncmp (key, "architecture", strlen ("architecture"))) {
+           rc_resolvable_spec_set_arch (RC_RESOLVABLE_SPEC (pkg), rc_arch_from_string (value->str));
+       }
+
+       g_string_free (value, true);
+    }
+
+    up->importance = RC_IMPORTANCE_SUGGESTED;
+    up->description = strdup ("Upstream Debian release");
+    rc_resolvable_spec_copy (rc_package_update_get_spec(up), RC_RESOLVABLE_SPEC (pkg));
+    rc_package_add_update (pkg, up);
+
+    r = RC_RESOLVABLE (pkg);
+
+    /* Make sure to provide myself, for the dep code! */
+    provides = g_slist_append (provides, rc_resolvable_dep_new_from_spec
+                              (RC_RESOLVABLE_SPEC (pkg),
+                               RC_RELATION_EQUAL,
+                               RC_TYPE_PACKAGE,
+                               rc_resolvable_get_channel (r),
+                               false, false));
+
+    rc_resolvable_set_requires  (r, requires);
+    rc_resolvable_set_provides  (r, provides);
+    rc_resolvable_set_conflicts (r, conflicts);
+    rc_resolvable_set_obsoletes (r, NULL);
+    rc_resolvable_set_suggests  (r, suggests);
+    rc_resolvable_set_recommends(r, recommends);
+    /* returns the number of characters we processed */
+    return ibuf - buf;
+}
+
+#endif
+
+int 
+extract_packages_from_debian_buffer (const char *buf, size_t len, ChannelPtr channel, CResolvableFn callback, void *data)
+{
+    const char *pos;
+    int count = 0;
+
+    /* Keep looking for a "Package: " */
+    pos = buf;
+#if 0
+    while ((pos = strstr (pos, "Package: ")) != NULL) {
+       int off;
+
+       /* All debian packages "have" epochs */
+       ResolvablePtr resolvable = fill_debian_package (iter, channel->getFilePath (), &off);
+
+       resolvable->setEpoch (0);
+       resolvable->setArch (Arch::Noarch);
+       resolvable->setChannel (channel);
+
+       if (callback)
+           callback (resolvable, data);
+
+       ++count;
+
+       iter += off;
+    }
+#endif
+    return count;
+}
+
+
+int
+extract_packages_from_debian_file (const string & filename, ChannelPtr channel, CResolvableFn callback, void *data)
+{
+    Buffer *buf;
+    int count;
+
+    if (filename.empty())
+       return -1;
+
+    buf = buffer_map_file (filename);
+    if (buf == NULL)
+       return -1;
+
+    count = extract_packages_from_debian_buffer ((const char *)(buf->data), buf->size, channel, callback, data);
+    buffer_unmap_file (buf);
+
+    return count;
+}
+
+#if 0
+/* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** */
+
+PackagePtr 
+extract_yum_package (const guint8 *data, size_t len,
+                       RCPackman *packman, char *url)
+{
+#ifndef  ENABLE_RPM
+    /* We can't support yum without rpm support */
+    debug (RC_DEBUG_LEVEL_ERROR, "RPM support is not enabled");
+    return NULL;
+#else
+    RCRpmman *rpmman;
+    Header h;
+    PackagePtr p;
+    RCPackageUpdate *pu;
+    char *tmpc;
+    int typ, n;
+
+    g_return_val_if_fail (packman != NULL, NULL);
+
+    if (!g_type_is_a (G_TYPE_FROM_INSTANCE (packman), RC_TYPE_RPMMAN)) {
+       debug (RC_DEBUG_LEVEL_ERROR,
+                 "yum support is not available on non-RPM systems");
+       return NULL;
+    }
+
+    rpmman = RC_RPMMAN (packman);
+    
+    h = rpmman->headerLoad (data);
+
+    if (h == NULL) {
+       debug (RC_DEBUG_LEVEL_ERROR,
+                 "Unable to get header from headerCopyLoad!");
+       return NULL;
+    }
+
+    rpmman->headerGetEntry (h, RPMTAG_ARCH, &typ, (void **) &tmpc, &n);
+
+    p = rc_package_new ();
+
+    rc_rpmman_read_header (rpmman, h, p);
+    rc_rpmman_depends_fill (rpmman, h, p, true);
+
+    pu = rc_package_update_new ();
+    rc_resolvable_spec_copy (rc_package_update_get_spec (pu), RC_RESOLVABLE_SPEC (p));
+    pu->importance = RC_IMPORTANCE_SUGGESTED;
+    pu->description = strdup ("No information available.");
+    pu->package_url = url;
+    
+    p->history = g_slist_append (p->history, pu);
+
+    rpmman->headerFree (h);
+
+    return p;
+#endif  
+}
+
+int
+extract_packages_from_aptrpm_buffer (const guint8 *data, size_t len,
+                                       RCPackman *packman,
+                                       ChannelPtr channel,
+                                       CResolvableFn callback,
+                                       void * user_data)
+{
+#ifndef ENABLE_RPM
+    /* We can't support apt-rpm without rpm support */
+    debug (RC_DEBUG_LEVEL_ERROR, "RPM support is not enabled");
+    return -1;
+#else
+    RCRpmman *rpmman;
+    int count = 0;
+    const int hdrmagic_len = 8;
+    const char *hdrmagic;
+    const guint8 *cur_ptr;
+    RCResolvableSpec *spec;
+
+
+    g_return_val_if_fail (packman != NULL, -1);
+
+    if (!g_type_is_a (G_TYPE_FROM_INSTANCE (packman), RC_TYPE_RPMMAN)) {
+       debug (RC_DEBUG_LEVEL_ERROR,
+                 "apt-rpm support is not available on non-RPM systems");
+       return -1;
+    }
+
+    rpmman = RC_RPMMAN (packman);
+
+    if (len < hdrmagic_len) {
+       debug (RC_DEBUG_LEVEL_ERROR,
+                 "Data is too small to possibly be correct");
+       return 0;
+    }
+
+    /*
+     * The apt-rpm pkglist files are a set of rpm headers, each prefixed
+     * with the header magic, one right after the other.  If opened on disk,
+     * they can be iterated using headerRead().  Since we have an in-memory
+     * buffer, we use headerCopyLoad to read them.  We could, potentially,
+     * use headerLoad(); but I'm unsure as to what happens when headerFree
+     * is called on a Header returned from headerLoad.  It may be a small
+     * memory savings to do so.
+     */
+
+    /* Skip the inital RPM header magic */
+    hdrmagic = data;
+    cur_ptr = data + hdrmagic_len;
+
+    while (cur_ptr != NULL) {
+       Header h;
+       PackagePtr p;
+       RCPackageUpdate *pu;
+       int bytesleft, i;
+       char *tmpc;
+       int typ, n;
+       char *archstr;
+
+       h = rpmman->headerLoad (cur_ptr);
+
+       if (h == NULL) {
+           debug (RC_DEBUG_LEVEL_ERROR,
+                     "Unable to get header from headerCopyLoad!");
+           return 0;
+       }
+
+       rpmman->headerGetEntry (h, RPMTAG_ARCH, &typ, (void **) &tmpc, &n);
+
+       if (n && typ == RPM_STRING_TYPE)
+           archstr = tmpc;
+       else {
+           debug (RC_DEBUG_LEVEL_WARNING, "No arch available!");
+           goto cleanup;
+       }
+
+       p = rc_package_new ();
+
+       rc_rpmman_read_header (rpmman, h, p);
+       rc_rpmman_depends_fill (rpmman, h, p, true);
+
+       rc_resolvable_set_channel (RC_RESOLVABLE (p), channel);
+
+       pu = rc_package_update_new ();
+       rc_resolvable_spec_copy (rc_package_update_get_spec (pu), RC_RESOLVABLE_SPEC (p));
+       pu->importance = RC_IMPORTANCE_SUGGESTED;
+       pu->description = strdup ("No information available.");
+
+       /* Build a filename from the spec */
+       spec = RC_RESOLVABLE_SPEC (p);
+       pu->package_url = strdup_printf ("%s/%s-%s-%s.%s.rpm",
+                                          rc_channel_get_file_path (channel),
+                                          rc_resolvable_spec_get_name (spec),
+                                          rc_resolvable_spec_get_version (spec),
+                                          rc_resolvable_spec_get_release (spec),
+                                          archstr);
+
+       p->history = g_slist_append (p->history, pu);
+
+       if (callback)
+           callback ((RCResolvable *) p, user_data);
+
+       g_object_unref (p);
+
+       ++count;
+
+    cleanup:
+       rpmman->headerFree (h);
+
+       /* This chunk of ugly could be removed if a) memmem() was portable;
+        * or b) if rpmlib didn't suck, and I could figure out how much
+        * data it read from the buffer.
+        */
+       bytesleft = len - (cur_ptr - data);
+       for (i = 0; i < bytesleft - hdrmagic_len; i++) {
+           if (memcmp (cur_ptr + i, hdrmagic, hdrmagic_len) == 0) {
+               /* We found a match */
+               cur_ptr = cur_ptr + i + hdrmagic_len;
+               break;
+           }
+       }
+
+       if (i >= bytesleft - hdrmagic_len) {
+           /* No match was found */
+           cur_ptr = NULL;
+       }
+    }
+
+    return count;
+#endif
+}
+
+int
+extract_packages_from_aptrpm_file (const char *filename,
+                                     RCPackman *packman,
+                                     ChannelPtr channel,
+                                     CResolvableFn callback,
+                                     void * user_data)
+{
+    WorldPtr world = *((WorldPtr *)data);
+    RCBuffer *buf;
+    int count;
+
+    g_return_val_if_fail (filename != NULL, -1);
+    g_return_val_if_fail (packman != NULL, -1);
+
+    buf = rc_buffer_map_file (filename);
+    if (buf == NULL)
+       return -1;
+
+    count = extract_packages_from_aptrpm_buffer (buf->data, buf->size,
+                                                   packman, channel,
+                                                   callback, user_data);
+
+    rc_buffer_unmap_file (buf);
+
+    return count;
+}
+
+/* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** */
+
+static void
+package_into_hash (PackagePtr pkg, GHashTable *hash)
+{
+    void * nameq;
+    PackagePtr hashed_pkg;
+
+    nameq = GINT_TO_POINTER (RC_RESOLVABLE_SPEC (pkg)->nameq);
+    hashed_pkg = g_hash_table_lookup (hash, nameq);
+    if (hashed_pkg == NULL) {
+       g_hash_table_insert (hash, nameq, g_object_ref (pkg));
+    } else if (rc_version_compare (RC_RESOLVABLE_SPEC (pkg),
+                                  RC_RESOLVABLE_SPEC (hashed_pkg)) > 0) {
+       g_hash_table_replace (hash, nameq, g_object_ref (pkg));
+       g_object_unref (hashed_pkg);
+    }
+}
+
+static bool
+hash_recurse_cb (PackagePtr pkg, void * user_data)
+{
+    GHashTable *hash = user_data;
+    package_into_hash (pkg, hash);
+    return true;
+}
+
+struct HashIterInfo {
+    CResolvableFn callback;
+    void * user_data;
+    int count;
+};
+
+static void
+hash_iter_cb (void * key, void * val, void * user_data)
+{
+    RCResolvable *r = val;
+    struct HashIterInfo *info = user_data;
+
+    if (info->callback)
+       info->callback (r, info->user_data);
+
+    g_object_unref (r);
+    ++info->count;
+}
+
+
+static void
+add_fake_history (PackagePtr pkg)
+{
+    RCPackageUpdate *up;
+
+    up = rc_package_update_new ();
+    rc_resolvable_spec_copy ((RCResolvableSpec *) up,
+                            RC_RESOLVABLE_SPEC (pkg));
+    up->importance = RC_IMPORTANCE_SUGGESTED;
+    rc_package_add_update (pkg, up);
+}
+
+typedef struct {
+    CResolvableFn user_callback;
+    void *    user_data;
+    const gchar *path;
+} PackagesFromDirInfo;
+
+static bool
+packages_from_dir_cb (PackagePtr package, void * user_data)
+{
+    PackagesFromDirInfo *info = user_data;
+    RCPackageUpdate *update;
+
+    /* Set package path */
+    update = rc_package_get_latest_update (package);
+    if (update && update->package_url)
+       package->package_filename = g_build_path (G_DIR_SEPARATOR_S,
+                                                 info->path,
+                                                 update->package_url,
+                                                 NULL);
+    if (info->user_callback)
+       return info->user_callback ((RCResolvable *)package, info->user_data);
+
+    return true;
+}
+
+int
+extract_packages_from_directory (const char *path,
+                                   ChannelPtr channel,
+                                   RCPackman *packman,
+                                   bool recursive,
+                                   CResolvableFn callback,
+                                   void * user_data)
+{
+    WorldPtr world = *((WorldPtr *)data);
+    GDir *dir;
+    GHashTable *hash;
+    struct HashIterInfo info;
+    const char *filename;
+    char *magic;
+    bool distro_magic, pkginfo_magic;
+    
+    g_return_val_if_fail (path && *path, -1);
+    g_return_val_if_fail (channel != NULL, -1);
+
+    /*
+      Check for magic files that indicate how to treat the
+      directory.  The files aren't read -- it is sufficient that
+      they exist.
+    */
+
+    magic = g_strconcat (path, "/RC_SKIP", NULL);
+    if (g_file_test (magic, G_FILE_TEST_EXISTS)) {
+       g_free (magic);
+       return 0;
+    }
+    g_free (magic);
+
+    magic = g_strconcat (path, "/RC_RECURSIVE", NULL);
+    if (g_file_test (magic, G_FILE_TEST_EXISTS))
+       recursive = true;
+    g_free (magic);
+    
+    magic = g_strconcat (path, "/RC_BY_DISTRO", NULL);
+    distro_magic = g_file_test (magic, G_FILE_TEST_EXISTS);
+    g_free (magic);
+
+    pkginfo_magic = true;
+    magic = g_strconcat (path, "/RC_IGNORE_PKGINFO", NULL);
+    if (g_file_test (magic, G_FILE_TEST_EXISTS))
+       pkginfo_magic = false;
+    g_free (magic);
+
+    /* If distro_magic is set, we search for packages in two
+       subdirectories of path: path/distro-target (i.e.
+       path/redhat-9-i386) and path/x-cross.
+    */
+
+#if 0      
+    if (distro_magic) {
+       char *distro_path, *cross_distro_path;
+       bool found_distro_magic = false;
+       int count = 0, c;
+
+       distro_path = g_strconcat (path, "/", rc_distro_get_target (), NULL);
+       if (g_file_test (distro_path, G_FILE_TEST_IS_DIR)) {
+           found_distro_magic = true;
+
+           c = extract_packages_from_directory (distro_path,
+                                                   channel, packman,
+                                                   callback, user_data);
+           if (c >= 0)
+               count += c;
+       }
+
+       cross_distro_path = g_strconcat (path, "/x-distro", NULL);
+       if (g_file_test (cross_distro_path, G_FILE_TEST_IS_DIR)) {
+           c = extract_packages_from_directory (cross_distro_path,
+                                                   channel, packman,
+                                                   callback, user_data);
+           if (c >= 0)
+               count += c;
+       }
+
+       g_free (cross_distro_path);
+       g_free (distro_path);
+
+       return count;
+    }
+#endif
+
+    /* If pkginfo_magic is set and if a packageinfo.xml or
+       packageinfo.xml.gz file exists in the directory, use it
+       instead of just scanning the files in the directory
+       looking for packages. */
+
+    if (pkginfo_magic) {
+       int i, count;
+       gchar *pkginfo_path = NULL;
+       const gchar *pkginfo[] = { "packageinfo.xml",
+                                  "packageinfo.xml.gz",
+                                  NULL };
+
+       for (i = 0; pkginfo[i]; i++) {
+           pkginfo_path = g_build_path (G_DIR_SEPARATOR_S, path, pkginfo[i], NULL);
+           if (g_file_test (pkginfo_path, G_FILE_TEST_EXISTS))
+               break;
+
+           g_free (pkginfo_path);
+           pkginfo_path = NULL;
+       }
+
+       if (pkginfo_path) {
+           PackagesFromDirInfo info;
+
+           info.user_callback = callback;
+           info.user_data = user_data;
+           info.path = path;
+
+           count = extract_packages_from_helix_file (pkginfo_path, channel, packages_from_dir_cb, &info);
+           g_free (pkginfo_path);
+           return count;
+       }
+    }
+
+    dir = g_dir_open (path, 0, NULL);
+    if (dir == NULL)
+       return -1;
+
+    hash = g_hash_table_new (NULL, NULL);
+
+    while ( (filename = g_dir_read_name (dir)) ) {
+       gchar *file_path;
+
+       file_path = g_strconcat (path, "/", filename, NULL);
+
+       if (recursive && g_file_test (file_path, G_FILE_TEST_IS_DIR)) {
+           extract_packages_from_directory (file_path,
+                                               channel,
+                                               packman,
+                                               true,
+                                               hash_recurse_cb,
+                                               hash);
+       } else if (g_file_test (file_path, G_FILE_TEST_IS_REGULAR)) {
+           PackagePtr pkg;
+
+           pkg = rc_packman_query_file (packman, file_path, true);
+           if (pkg != NULL) {
+               rc_resolvable_set_channel (RC_RESOLVABLE (pkg), channel);
+               pkg->package_filename = strdup (file_path);
+               pkg->local_package = false;
+               add_fake_history (pkg);
+               package_into_hash (pkg, hash);
+               g_object_unref (pkg);
+           }
+       }
+
+       g_free (file_path);
+    }
+
+    g_dir_close (dir);
+   
+    info.callback = callback;
+    info.user_data = user_data;
+    info.count = 0;
+
+    /* Walk across the hash and:
+       1) Invoke the callback on each package
+       2) Unref each package
+    */
+    g_hash_table_foreach (hash, hash_iter_cb, &info);
+
+    g_hash_table_destroy (hash);
+
+    return info.count;
+}
+#endif
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+
diff --git a/zypp/solver/detail/extract.h b/zypp/solver/detail/extract.h
new file mode 100644 (file)
index 0000000..f5268ec
--- /dev/null
@@ -0,0 +1,68 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+
+/*
+ * extract.h
+ *
+ * Copyright (C) 2003 Ximian, Inc.
+ * Copyright (c) 2005 SUSE Linux Products GmbH
+ *
+ */
+
+/*
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA.
+ */
+
+#ifndef __EXTRACT_H__
+#define __EXTRACT_H__
+
+#include <zypp/solver/detail/Channel.h>
+#include <zypp/solver/detail/XmlNode.h>
+#include <zypp/solver/detail/Channel.h>
+#include <zypp/solver/detail/Pending.h>
+#include <zypp/solver/detail/Resolvable.h>
+#include <zypp/solver/detail/Package.h>
+#include <zypp/solver/detail/Match.h>
+#include <zypp/solver/detail/StoreWorldPtr.h>
+#include <zypp/solver/detail/PackmanPtr.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+
+int extract_packages_from_helix_buffer (const char data[], size_t len, ChannelPtr channel, CResolvableFn callback, void *data);
+int extract_packages_from_helix_file (const std::string & filename, ChannelPtr channel, CResolvableFn callback, void *data);
+
+int extract_packages_from_xml_node (constXmlNodePtr node, ChannelPtr channel, ResolvableFn callback, void *data);
+
+int extract_packages_from_debian_buffer (const char *data, size_t len, ChannelPtr channel, CResolvableFn callback, void *data);
+int extract_packages_from_debian_file (const std::string & filename, ChannelPtr channel, CResolvableFn callback, void *data);
+
+PackagePtr extract_yum_package (const char *data, size_t len, PackmanPtr packman, const std::string & url);
+
+int extract_packages_from_aptrpm_buffer (const char *data, size_t len, PackmanPtr packman, ChannelPtr channel, ResolvableFn callback, void *data);
+int extract_packages_from_aptrpm_file (const std::string & filename, PackmanPtr packman, ChannelPtr channel, ResolvableFn callback, void *data);
+
+int extract_packages_from_undump_buffer (const char *data, size_t len, ChannelAndSubscribedFn channel_callback, CResolvableFn package_callback, MatchFn lock_callback, void *data);
+int extract_packages_from_undump_file (const std::string & filename, ChannelAndSubscribedFn channel_callback, CResolvableFn package_callback, MatchFn lock_callback, void *data);
+
+int extract_packages_from_directory (const std::string & path, ChannelPtr channel, PackmanPtr packman, bool recursive, ResolvableFn callback, void *data);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+#endif /* __EXTRACT_H__ */
+
diff --git a/zypp/solver/detail/libzypp_solver.h b/zypp/solver/detail/libzypp_solver.h
new file mode 100644 (file)
index 0000000..fe5c1ea
--- /dev/null
@@ -0,0 +1,42 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* libzypp.h
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _LIBZYPP_H
+#define _LIBZYPP_H
+
+#include <zypp/solver/detail/Arch.h>
+#include <zypp/solver/detail/Channel.h>
+#include <zypp/solver/detail/Dependency.h>
+#include <zypp/solver/detail/Match.h>
+#include <zypp/solver/detail/Resolvable.h>
+#include <zypp/solver/detail/Spec.h>
+#include <zypp/solver/detail/Version.h>
+#include <zypp/solver/detail/World.h>
+#include <zypp/solver/detail/UndumpWorld.h>
+#include <zypp/solver/detail/StoreWorld.h>
+#include <zypp/solver/detail/MultiWorld.h>
+#include <zypp/solver/detail/Resolver.h>
+#include <zypp/solver/detail/ResolverContext.h>
+#include <zypp/solver/detail/XmlNode.h>
+
+#include <zypp/solver/detail/utils.h>
+#include <zypp/solver/detail/extract.h>
+
+#endif // _LIBZYPP_H
diff --git a/zypp/solver/detail/utils.cc b/zypp/solver/detail/utils.cc
new file mode 100644 (file)
index 0000000..97e0cc0
--- /dev/null
@@ -0,0 +1,686 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* utils.cc  utility functions
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <sys/mman.h>
+
+#include <stdio.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <ctype.h>
+#include <string.h>
+
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+
+#include <zypp/solver/detail/utils.h>
+
+#include <zlib.h>
+#ifdef HAVE_BZ2
+/* Older bzlib didn't icnlude stdio.h */
+#  include <bzlib.h>
+#endif
+
+#include <zypp/solver/detail/debug.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+using namespace std;
+
+//---------------------------------------------------------------------------
+// string stuff
+
+/* Like g_strstrip(), only returns NULL on an empty string */
+char *
+strstrip (const char *str)
+{
+    const char *start;
+    const char *end;
+
+    if (str == NULL)
+       return "";
+
+    start = str;
+    while (isblank (*start)) {
+       start++;
+    }
+
+    end = start + strlen (start) - 1;
+    while (end > start
+          && isblank (*end)) {
+       end--;
+    }
+
+    if (start > end) {                 // empty string
+       return NULL;
+    }
+
+    if (start > str
+       || *(end+1) != 0) {             // we stripped at least one blank somewhere
+       return strndup (start, end - start + 1);
+    }
+    return strdup (str);               // no blanks stripped
+}
+
+
+//---------------------------------------------------------------------------
+// url and path stuff
+
+char *
+maybe_merge_paths(const char *parent_path, const char *child_path)
+{
+    /* Child path is NULL, so we return a dup of the parent path.
+       Ex: maybe_merge_paths("/foo", NULL) => "/foo" */
+    if (!child_path)
+       return strdup(parent_path);
+
+    /* Child path is a fully qualified URL, so we return a dup of it.
+       Ex: maybe_merge_paths("/foo", "http://www.ximian.com") =>
+       "http://www.ximian.com"
+
+       OR
+
+       Child path is an absolute path, so we just return a dup of it.
+       Ex: maybe_merge_paths("/foo", "/bar/baz") => "/bar/baz" */
+
+    if (url_is_absolute(child_path) || child_path[0] == '/')
+       return strdup(child_path);
+
+    /* Child path is a relative path, so we tack child path onto the end of
+       parent path.
+       Ex: maybe_merge_paths("/foo", "bar/baz") => "/foo/bar/baz" */
+
+    char *s = (char *)malloc (strlen (parent_path) + strlen (child_path) + 1 + 1);     // +1 for /, +1 for \0
+    strcpy (s, parent_path);
+
+    if (parent_path[strlen(parent_path) - 1] != '/')
+       strcat (s, "/");
+    
+    strcat (s, child_path);
+
+    return s;
+}
+
+
+bool
+url_is_absolute (const char *url)
+{
+    if (strncasecmp (url, "http:", 5) == 0 ||
+       strncasecmp (url, "https:", 6) == 0 ||
+       strncasecmp (url, "ftp:", 4) == 0 ||
+       strncasecmp (url, "cd:", 3) == 0 ||
+       strncasecmp (url, "dvd:", 4) == 0 ||
+       strncasecmp (url, "dir:", 4) == 0 ||
+       strncasecmp (url, "file:", 5) == 0)
+    {
+       return true;
+    }
+
+    return false;
+}
+
+
+//---------------------------------------------------------------------------
+// compress/uncompress stuff
+
+/*
+ * Magic gunzipping goodness
+ */
+
+/*
+ * Count number of bytes to skip at start of buf
+ */
+static int gz_magic[2] = {0x1f, 0x8b};
+/* gzip flag byte */
+#define GZ_ASCII_FLAG   0x01 /* bit 0 set: file probably ascii text */
+#define GZ_HEAD_CRC     0x02 /* bit 1 set: header CRC present */
+#define GZ_EXTRA_FIELD  0x04 /* bit 2 set: extra field present */
+#define GZ_ORIG_NAME    0x08 /* bit 3 set: original file name present */
+#define GZ_COMMENT      0x10 /* bit 4 set: file comment present */
+#define GZ_RESERVED     0xE0 /* bits 5..7: reserved */
+
+static int
+count_gzip_header (const unsigned char *buf, unsigned int input_length)
+{
+    int method, flags;
+    const unsigned char *s = buf;
+    unsigned int left_len = input_length;
+
+    if (left_len < 4) return -1;
+    if (*s++ != gz_magic[0] || *s++ != gz_magic[1]) {
+       return -2;
+    }
+
+    method = *s++;
+    flags = *s++;
+    left_len -= 4;
+
+    if (method != Z_DEFLATED || (flags & GZ_RESERVED) != 0) {
+       /* If it's not deflated, or the reserved isn't 0 */
+       return -3;
+    }
+
+    /* Skip time, xflags, OS code */
+    if (left_len < 6) return -4;
+    s += 6;
+    left_len -= 6;
+
+    if (flags & GZ_EXTRA_FIELD) {
+       unsigned int len;
+       if (left_len < 2) return -5;
+       len = (unsigned int)(*s++);
+       len += ((unsigned int)(*s++)) << 8;
+       if (left_len < len) return -6;
+       s += len;
+       left_len -= len;
+    }
+
+    /* Skip filename */
+    if (flags & GZ_ORIG_NAME) {
+       while (--left_len != 0 && *s++ != '\0') ;
+       if (left_len == 0) return -7;
+    }
+    /* Skip comment */
+    if (flags & GZ_COMMENT) {
+       while (--left_len != 0 && *s++ != '\0') ;
+       if (left_len == 0) return -7;
+    }
+    /* Skip CRC */
+    if (flags & GZ_HEAD_CRC) {
+       if (left_len < 2) return -7;
+       s += 2;
+       left_len -= 2;
+    }
+
+    return input_length - left_len;
+}
+
+
+int
+gunzip_memory (const unsigned char *input_buffer, unsigned int input_length, ByteArray **out_ba)
+{
+    z_stream zs;
+    char *outbuf = NULL;
+    ByteArray *ba = NULL;
+    int zret;
+
+    int gzip_hdr;
+
+    if (input_buffer == NULL) return -1;
+    if (input_length == 0) return -2;
+    if (out_ba == NULL) return -3;
+
+    ba = (ByteArray *)malloc (sizeof (ByteArray));
+    ba->data = NULL;
+    ba->len = 0;
+
+    gzip_hdr = count_gzip_header (input_buffer, input_length);
+    if (gzip_hdr < 0)
+       return -1;
+
+    zs.next_in = (unsigned char *) input_buffer + gzip_hdr;
+    zs.avail_in = input_length - gzip_hdr;
+    zs.zalloc = NULL;
+    zs.zfree = NULL;
+    zs.opaque = NULL;
+
+#define OUTBUFSIZE 10000
+    outbuf = (char *)malloc (OUTBUFSIZE);
+    zs.next_out = (Bytef *)outbuf;
+    zs.avail_out = OUTBUFSIZE;
+
+    /* Negative inflateinit is magic to tell zlib that there is no
+     * zlib header */
+    inflateInit2 (&zs, -MAX_WBITS);
+
+    while (1) {
+       zret = inflate (&zs, Z_SYNC_FLUSH);
+       if (zret != Z_OK && zret != Z_STREAM_END)
+           break;
+
+       ba->data = (byte *)realloc (ba->data, ba->len + (OUTBUFSIZE - zs.avail_out));
+       memcpy (ba->data + ba->len, outbuf, OUTBUFSIZE - zs.avail_out);
+       ba->len += (OUTBUFSIZE - zs.avail_out);
+
+       zs.next_out = (Bytef *)outbuf;
+       zs.avail_out = OUTBUFSIZE;
+
+       if (zret == Z_STREAM_END)
+           break;
+    }
+
+    inflateEnd (&zs);
+    free ((void *)outbuf);
+
+    if (zret != Z_STREAM_END) {
+       fprintf (stderr, "libz inflate failed! (%d)", zret);
+       free (ba->data);
+       free (ba);
+       ba = NULL;
+    } else {
+       zret = 0;
+    }
+
+    *out_ba = ba;
+    return zret;
+}
+
+
+int
+gzip_memory (const char *input_buffer, unsigned int input_length, ByteArray **out_ba)
+{
+    z_stream zs;
+    char *outbuf = NULL;
+    ByteArray *ba = NULL;
+    int zret;
+
+    if (input_buffer == NULL) return -1;
+    if (input_length == 0) return -2;
+    if (out_ba == NULL) return -3;
+
+    ba = (ByteArray *)malloc (sizeof (ByteArray));
+    ba->data = NULL;
+    ba->len = 0;
+
+    zs.next_in = (unsigned char *) input_buffer;
+    zs.avail_in = input_length;
+    zs.zalloc = NULL;
+    zs.zfree = NULL;
+    zs.opaque = NULL;
+
+    outbuf = (char *)malloc (OUTBUFSIZE);
+    zs.next_out = (Bytef *)outbuf;
+    zs.avail_out = OUTBUFSIZE;
+
+    deflateInit (&zs, Z_DEFAULT_COMPRESSION);
+
+    while (1) {
+       if (zs.avail_in)
+           zret = deflate (&zs, Z_SYNC_FLUSH);
+       else
+           zret = deflate (&zs, Z_FINISH);
+           
+       if (zret != Z_OK && zret != Z_STREAM_END)
+           break;
+
+       ba->data = (byte *)realloc (ba->data, ba->len + (OUTBUFSIZE - zs.avail_out));
+       memcpy (ba->data + ba->len, outbuf, OUTBUFSIZE - zs.avail_out);
+       ba->len += (OUTBUFSIZE - zs.avail_out);
+
+       zs.next_out = (Bytef *)outbuf;
+       zs.avail_out = OUTBUFSIZE;
+
+       if (zret == Z_STREAM_END)
+           break;
+    }
+
+    deflateEnd (&zs);
+    free ((void *)outbuf);
+
+    if (zret != Z_STREAM_END) {
+       fprintf (stderr, "libz deflate failed! (%d)", zret);
+       free (ba->data);
+       free (ba);
+       ba = NULL;
+    } else {
+       zret = 0;
+    }
+
+    *out_ba = ba;
+    return zret;
+} /* gzip_memory */
+
+
+bool
+memory_looks_gzipped (const unsigned char *buffer)
+{
+    if (buffer == NULL)
+       return false;
+
+    /* This is from RFC 1952 */
+
+    return buffer[0] == gz_magic[0]  /* ID1 */
+       && buffer[1] == gz_magic[1]; /* ID2 */
+}
+
+/* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** */
+
+static char bz2_magic[3] = { 'B', 'Z', 'h' };
+
+int
+bunzip2_memory (const unsigned char *input_buffer, unsigned int input_length, ByteArray **out_ba)
+{
+#ifndef HAVE_BZ2
+
+    fprintf (stderr, "bz2 support not compiled in");
+    *out_ba = NULL;
+
+    return -1;
+
+#else
+
+    bz_stream bzs;
+    ByteArray *ba;
+    char *outbuf;
+    int bzret;
+
+    if (input_buffer == NULL) return -1;
+    if (input_length == 0) return -2;
+    if (out_ba == NULL) return -3;
+
+    ba = (ByteArray *)malloc (sizeof (ByteArray));
+    ba->data = NULL;
+    ba->len = 0;
+
+    bzs.next_in = (unsigned char *) input_buffer;
+    bzs.avail_in = input_length;
+    bzs.bzalloc = NULL;
+    bzs.bzfree = NULL;
+    bzs.opaque = NULL;
+
+    outbuf = (char *)malloc (OUTBUFSIZE);
+    bzs.next_out = (Bytef *)outbuf;
+    bzs.avail_out = OUTBUFSIZE;
+
+    BZ2_bzDecompressInit (&bzs, 1, 0);
+
+    while (1) {
+       bzret = BZ2_bzDecompress (&bzs);
+       if (bzret != BZ_OK && bzret != BZ_STREAM_END)
+           break;
+
+       ba->data = (byte *)realloc (ba->data, ba->len + (OUTBUFSIZE - zs.avail_out));
+       memcpy (ba->data + ba->len, outbuf, OUTBUFSIZE - zs.avail_out);
+       ba->len += (OUTBUFSIZE - zs.avail_out);
+
+       bzs.next_out = (Bytef *)outbuf;
+       bzs.avail_out = OUTBUFSIZE;
+
+       if (bzret == BZ_STREAM_END)
+           break;
+
+       if (bzs.avail_in == 0) {
+           /* The data is incomplete */
+           bzret = -1;
+           break;
+       }
+    }
+
+    BZ2_bzDecompressEnd (&bzs);
+    free ((void *)outbuf);
+
+    if (bzret != BZ_STREAM_END) {
+       fprintf (stderr, "libbzip2 decompress failed (%d)", bzret);
+       free (ba->data);
+       free (ba);
+       ba = NULL;
+    } else {
+       bzret = 0;
+    }
+
+    *out_ba = ba;
+    return bzret;
+#endif
+}
+
+
+int
+bzip2_memory (const char *input_buffer, unsigned int input_length, ByteArray **out_ba)
+{
+#ifndef HAVE_BZ2
+
+    fprintf (stderr, "bz2 support not compiled in");
+    *out_ba = NULL;
+
+    return -1;
+
+#else
+
+    bz_stream bzs;
+    ByteArray *ba;
+    char *outbuf;
+    int bzret;
+
+    if (input_buffer == NULL) return -1;
+    if (input_length == 0) return -2;
+    if (out_ba == NULL) return -3;
+
+    ba = (ByteArray *)malloc (sizeof (ByteArray));
+    ba->data = NULL;
+    ba->len = 0;
+
+    bzs.next_in = (unsigned char *) input_buffer;
+    bzs.avail_in = input_length;
+    bzs.bzalloc = NULL;
+    bzs.bzfree = NULL;
+    bzs.opaque = NULL;
+
+    outbuf = (char *)malloc (OUTBUFSIZE);
+    bzs.next_out = (Bytef *)outbuf;
+    bzs.avail_out = OUTBUFSIZE;
+
+    BZ2_bzCompressInit (&bzs, 5, 1, 0);
+
+    while (1) {
+       if (bzs.avail_in)
+           bzret = BZ2_bzCompress (&bzs, BZ_RUN);
+       else
+           bzret = BZ2_bzCompress (&bzs, BZ_FINISH);
+           
+       if (bzret != BZ_OK && bzret != BZ_STREAM_END)
+           break;
+
+       ba->data = (byte *)realloc (ba->data, ba->len + (OUTBUFSIZE - zs.avail_out));
+       memcpy (ba->data + ba->len, outbuf, OUTBUFSIZE - zs.avail_out);
+       ba->len += (OUTBUFSIZE - zs.avail_out);
+
+       bzs.next_out = (Bytef *)outbuf;
+       bzs.avail_out = OUTBUFSIZE;
+
+       if (bzret == BZ_STREAM_END)
+           break;
+    }
+
+    BZ2_bzCompressEnd (&bzs);
+    free ((void *)outbuf);
+
+    if (bzret != BZ_STREAM_END) {
+       fprintf (stderr, "bz2 compress failed! (%d)", bzret);
+       free (ba->data);
+       free (ba);
+       ba = NULL;
+    } else {
+       bzret = 0;
+    }
+
+    *out_ba = ba;
+    return bzret;
+#endif
+}
+
+
+bool
+memory_looks_bzip2ed (const unsigned char *buffer)
+{
+    if (buffer == NULL)
+       return false;
+
+    return buffer[0] == bz2_magic[0]
+       && buffer[1] == bz2_magic[1]
+       && buffer[2] == bz2_magic[2];
+}
+
+/* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** */
+
+int
+uncompress_memory (const unsigned char *input_buffer, unsigned int input_length, ByteArray **out_ba)
+{
+    if (input_length > 2 && memory_looks_bzip2ed (input_buffer))
+       return bunzip2_memory (input_buffer, input_length, out_ba);
+    else if (input_length > 3 && memory_looks_gzipped (input_buffer))
+       return gunzip_memory (input_buffer, input_length, out_ba);
+    else
+       return -1;
+}
+
+bool
+memory_looks_compressed (const unsigned char *buffer, size_t size)
+{
+#ifdef HAVE_BZ2
+    if (size > 2 && memory_looks_bzip2ed (buffer))
+       return true;
+#endif
+
+    if (size > 4 && memory_looks_gzipped (buffer))
+       return true;
+
+    return false;
+}
+
+//---------------------------------------------------------------------------
+// I/O stuff
+
+/* 
+ * This just allows reading from the buffer for now.  It could be extended to
+ * do writing if necessary.
+ */
+
+Buffer *
+buffer_map_file (const string & filename)
+{
+    struct stat s;
+    int fd;
+    unsigned char *data;
+    Buffer *buf = NULL;
+
+    if (filename.empty())
+       return NULL;
+
+    if (stat(filename.c_str(), &s) < 0)
+       return NULL;
+
+    fd = open(filename.c_str(), O_RDONLY);
+
+    if (fd < 0)
+       return NULL;
+
+    data = (unsigned char *)mmap(NULL, s.st_size, PROT_READ|PROT_WRITE, MAP_PRIVATE, fd, 0);
+
+    close (fd);
+
+    if (data == MAP_FAILED)
+       return NULL;
+
+    /* Transparently uncompress */
+    if (memory_looks_compressed (data, s.st_size)) {
+       ByteArray *byte_array = NULL;
+
+       if (uncompress_memory (data, s.st_size, &byte_array)) {
+           debug (RC_DEBUG_LEVEL_WARNING, "Uncompression of '%s' failed", filename.c_str());
+       } else {
+           buf = (Buffer *)malloc(sizeof (Buffer));
+           buf->data       = byte_array->data;
+           buf->size       = byte_array->len;
+           buf->is_mmapped = false;
+       }
+
+       munmap (data, s.st_size);
+
+       if (byte_array) {
+           free (byte_array);
+       }
+
+    } else {
+       buf = (Buffer *)malloc(sizeof (Buffer));
+       buf->data       = (byte *)data;
+       buf->size       = s.st_size;
+       buf->is_mmapped = true;
+    }
+
+    return buf;
+} /* buffer_map_file */
+
+void
+buffer_unmap_file (Buffer *buf)
+{
+    if (buf == NULL) return;
+
+    if (buf->is_mmapped)
+       munmap (buf->data, buf->size);
+    else
+       free (buf->data);
+
+    free (buf);
+}
+
+//---------------------------------------------------------------------------
+// XML stuff
+
+xmlDoc *
+parse_xml_from_buffer (const char *input_buffer, size_t input_length)
+{
+    xmlDoc *doc = NULL;
+
+    if (input_buffer == NULL) return NULL;
+
+    if (input_length > 3 && memory_looks_gzipped ((const unsigned char *)input_buffer)) { 
+        ByteArray *buf;
+
+        if (uncompress_memory ((const unsigned char *)input_buffer, input_length, &buf)) {
+            return NULL;
+        }
+        doc = xmlParseMemory ((const char *)(buf->data), buf->len);
+       free (buf->data);
+        free (buf);
+    } else {
+        doc = xmlParseMemory (input_buffer, input_length);
+    }
+
+    return doc;
+}
+
+
+xmlDoc *
+parse_xml_from_file (const string & filename)
+{
+    Buffer *buf;
+    xmlDoc *doc = NULL;
+
+    if (filename.empty()) return NULL;
+
+    buf = buffer_map_file (filename);
+    if (buf) {
+        doc = xmlParseMemory ((const char *)(buf->data), buf->size);
+        buffer_unmap_file (buf);
+    }
+
+    return doc;
+}
+
+
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
+
diff --git a/zypp/solver/detail/utils.h b/zypp/solver/detail/utils.h
new file mode 100644 (file)
index 0000000..95b2025
--- /dev/null
@@ -0,0 +1,67 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+
+/*
+ * utils.h
+ *
+ * Copyright (C) 2003 Ximian, Inc.
+ * Copyright (c) 2005 SUSE Linux Products GmbH
+ *
+ */
+
+/*
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA.
+ */
+
+#include <sys/types.h>
+#include <string>
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+
+///////////////////////////////////////////////////////////////////
+namespace ZYPP {
+//////////////////////////////////////////////////////////////////
+
+typedef unsigned char byte;
+
+char *strstrip (const char *str);
+char *maybe_merge_paths(const char *parent_path, const char *child_path);
+bool url_is_absolute (const char *url);
+
+
+typedef struct {
+    byte *data;
+    size_t len;
+} ByteArray;
+
+// An easy way to map files.  If we map a compressed file,
+//   it will be magically uncompressed for us.
+
+typedef struct {
+    byte *data;
+    size_t size;
+    bool is_mmapped;
+} Buffer;
+
+Buffer *buffer_map_file (const std::string & filename);
+void buffer_unmap_file (Buffer *buffer);
+
+
+xmlDoc *parse_xml_from_buffer (const char *input_buffer, size_t input_length);
+xmlDoc *parse_xml_from_file (const std::string & filename);
+
+///////////////////////////////////////////////////////////////////
+}; // namespace ZYPP
+///////////////////////////////////////////////////////////////////
+
diff --git a/zypp/solver/testsuite/.deps/deptestomatic.Po b/zypp/solver/testsuite/.deps/deptestomatic.Po
new file mode 100644 (file)
index 0000000..d9bd73d
--- /dev/null
@@ -0,0 +1,636 @@
+deptestomatic.o deptestomatic.o: deptestomatic.cc /usr/include/stdio.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/endian.h /usr/include/bits/endian.h /usr/include/xlocale.h \
+  /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/bits/sigset.h \
+  /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/sched.h \
+  /usr/include/alloca.h /usr/include/string.h /usr/include/assert.h \
+  /usr/include/sys/stat.h /usr/include/bits/stat.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/libzypp_solver.h \
+  ../../../zypp/solver/detail/Arch.h /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/c++/4.0.2/cstddef \
+  /usr/include/c++/4.0.2/cstdio /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/signal.h \
+  /usr/include/bits/initspin.h /usr/include/bits/sigthread.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  /usr/include/c++/4.0.2/string /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  ../../../zypp/solver/detail/Channel.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Match.h \
+  ../../../zypp/solver/detail/MatchPtr.h \
+  ../../../zypp/solver/detail/Importance.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/Version.h \
+  ../../../zypp/solver/detail/World.h \
+  ../../../zypp/solver/detail/MultiWorldPtr.h \
+  ../../../zypp/solver/detail/Pending.h \
+  ../../../zypp/solver/detail/PendingPtr.h \
+  ../../../zypp/solver/detail/Packman.h \
+  ../../../zypp/solver/detail/PackmanPtr.h \
+  ../../../zypp/solver/detail/Package.h \
+  ../../../zypp/solver/detail/PackagePtr.h \
+  ../../../zypp/solver/detail/PackageUpdatePtr.h \
+  ../../../zypp/solver/detail/Section.h \
+  ../../../zypp/solver/detail/PackageUpdate.h \
+  ../../../zypp/solver/detail/UndumpWorld.h \
+  ../../../zypp/solver/detail/UndumpWorldPtr.h \
+  ../../../zypp/solver/detail/StoreWorld.h \
+  ../../../zypp/solver/detail/ResolvableAndDependency.h \
+  ../../../zypp/solver/detail/ResolvableAndDependencyPtr.h \
+  ../../../zypp/solver/detail/MultiWorld.h \
+  ../../../zypp/solver/detail/ServiceWorldPtr.h \
+  ../../../zypp/solver/detail/Resolver.h \
+  ../../../zypp/solver/detail/ResolverPtr.h \
+  ../../../zypp/solver/detail/ResolverQueue.h \
+  ../../../zypp/solver/detail/ResolverQueuePtr.h \
+  ../../../zypp/solver/detail/ResolverContextPtr.h \
+  ../../../zypp/solver/detail/QueueItem.h \
+  ../../../zypp/solver/detail/QueueItemPtr.h \
+  ../../../zypp/solver/detail/ResolverInfo.h \
+  ../../../zypp/solver/detail/ResolverInfoPtr.h \
+  ../../../zypp/solver/detail/ResolverContext.h \
+  ../../../zypp/solver/detail/utils.h \
+  ../../../zypp/solver/detail/extract.h \
+  /usr/include/YaST2/y2util/stringutil.h /usr/include/c++/4.0.2/cstdarg \
+  /usr/include/c++/4.0.2/vector /usr/include/c++/4.0.2/bits/stl_vector.h \
+  /usr/include/c++/4.0.2/bits/stl_bvector.h \
+  /usr/include/c++/4.0.2/bits/vector.tcc
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/alloca.h:
+
+/usr/include/string.h:
+
+/usr/include/assert.h:
+
+/usr/include/sys/stat.h:
+
+/usr/include/bits/stat.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/libzypp_solver.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+../../../zypp/solver/detail/Channel.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Match.h:
+
+../../../zypp/solver/detail/MatchPtr.h:
+
+../../../zypp/solver/detail/Importance.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/Version.h:
+
+../../../zypp/solver/detail/World.h:
+
+../../../zypp/solver/detail/MultiWorldPtr.h:
+
+../../../zypp/solver/detail/Pending.h:
+
+../../../zypp/solver/detail/PendingPtr.h:
+
+../../../zypp/solver/detail/Packman.h:
+
+../../../zypp/solver/detail/PackmanPtr.h:
+
+../../../zypp/solver/detail/Package.h:
+
+../../../zypp/solver/detail/PackagePtr.h:
+
+../../../zypp/solver/detail/PackageUpdatePtr.h:
+
+../../../zypp/solver/detail/Section.h:
+
+../../../zypp/solver/detail/PackageUpdate.h:
+
+../../../zypp/solver/detail/UndumpWorld.h:
+
+../../../zypp/solver/detail/UndumpWorldPtr.h:
+
+../../../zypp/solver/detail/StoreWorld.h:
+
+../../../zypp/solver/detail/ResolvableAndDependency.h:
+
+../../../zypp/solver/detail/ResolvableAndDependencyPtr.h:
+
+../../../zypp/solver/detail/MultiWorld.h:
+
+../../../zypp/solver/detail/ServiceWorldPtr.h:
+
+../../../zypp/solver/detail/Resolver.h:
+
+../../../zypp/solver/detail/ResolverPtr.h:
+
+../../../zypp/solver/detail/ResolverQueue.h:
+
+../../../zypp/solver/detail/ResolverQueuePtr.h:
+
+../../../zypp/solver/detail/ResolverContextPtr.h:
+
+../../../zypp/solver/detail/QueueItem.h:
+
+../../../zypp/solver/detail/QueueItemPtr.h:
+
+../../../zypp/solver/detail/ResolverInfo.h:
+
+../../../zypp/solver/detail/ResolverInfoPtr.h:
+
+../../../zypp/solver/detail/ResolverContext.h:
+
+../../../zypp/solver/detail/utils.h:
+
+../../../zypp/solver/detail/extract.h:
+
+/usr/include/YaST2/y2util/stringutil.h:
+
+/usr/include/c++/4.0.2/cstdarg:
+
+/usr/include/c++/4.0.2/vector:
+
+/usr/include/c++/4.0.2/bits/stl_vector.h:
+
+/usr/include/c++/4.0.2/bits/stl_bvector.h:
+
+/usr/include/c++/4.0.2/bits/vector.tcc:
diff --git a/zypp/solver/testsuite/.deps/deptestomatic_multi.Po b/zypp/solver/testsuite/.deps/deptestomatic_multi.Po
new file mode 100644 (file)
index 0000000..ea21ac6
--- /dev/null
@@ -0,0 +1,636 @@
+deptestomatic_multi.o deptestomatic_multi.o: deptestomatic_multi.cc \
+  /usr/include/stdio.h /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/endian.h /usr/include/bits/endian.h /usr/include/xlocale.h \
+  /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/bits/sigset.h \
+  /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/sched.h \
+  /usr/include/alloca.h /usr/include/string.h /usr/include/sys/stat.h \
+  /usr/include/bits/stat.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/libzypp_solver.h \
+  ../../../zypp/solver/detail/Arch.h /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/c++/4.0.2/cstddef \
+  /usr/include/c++/4.0.2/cstdio /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/signal.h \
+  /usr/include/bits/initspin.h /usr/include/bits/sigthread.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h \
+  /usr/include/c++/4.0.2/string /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  ../../../zypp/solver/detail/Channel.h \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/ChannelPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/WorldPtr.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/Dependency.h \
+  ../../../zypp/solver/detail/DependencyPtr.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  ../../../zypp/solver/detail/OrDependencyPtr.h \
+  ../../../zypp/solver/detail/Spec.h ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Match.h \
+  ../../../zypp/solver/detail/MatchPtr.h \
+  ../../../zypp/solver/detail/Importance.h \
+  ../../../zypp/solver/detail/Resolvable.h \
+  ../../../zypp/solver/detail/ResolvablePtr.h \
+  ../../../zypp/solver/detail/StoreWorldPtr.h \
+  ../../../zypp/solver/detail/Version.h \
+  ../../../zypp/solver/detail/World.h \
+  ../../../zypp/solver/detail/MultiWorldPtr.h \
+  ../../../zypp/solver/detail/Pending.h \
+  ../../../zypp/solver/detail/PendingPtr.h \
+  ../../../zypp/solver/detail/Packman.h \
+  ../../../zypp/solver/detail/PackmanPtr.h \
+  ../../../zypp/solver/detail/Package.h \
+  ../../../zypp/solver/detail/PackagePtr.h \
+  ../../../zypp/solver/detail/PackageUpdatePtr.h \
+  ../../../zypp/solver/detail/Section.h \
+  ../../../zypp/solver/detail/PackageUpdate.h \
+  ../../../zypp/solver/detail/UndumpWorld.h \
+  ../../../zypp/solver/detail/UndumpWorldPtr.h \
+  ../../../zypp/solver/detail/StoreWorld.h \
+  ../../../zypp/solver/detail/ResolvableAndDependency.h \
+  ../../../zypp/solver/detail/ResolvableAndDependencyPtr.h \
+  ../../../zypp/solver/detail/MultiWorld.h \
+  ../../../zypp/solver/detail/ServiceWorldPtr.h \
+  ../../../zypp/solver/detail/Resolver.h \
+  ../../../zypp/solver/detail/ResolverPtr.h \
+  ../../../zypp/solver/detail/ResolverQueue.h \
+  ../../../zypp/solver/detail/ResolverQueuePtr.h \
+  ../../../zypp/solver/detail/ResolverContextPtr.h \
+  ../../../zypp/solver/detail/QueueItem.h \
+  ../../../zypp/solver/detail/QueueItemPtr.h \
+  ../../../zypp/solver/detail/ResolverInfo.h \
+  ../../../zypp/solver/detail/ResolverInfoPtr.h \
+  ../../../zypp/solver/detail/ResolverContext.h \
+  ../../../zypp/solver/detail/utils.h \
+  ../../../zypp/solver/detail/extract.h \
+  /usr/include/YaST2/y2util/stringutil.h /usr/include/c++/4.0.2/cstdarg \
+  /usr/include/c++/4.0.2/vector /usr/include/c++/4.0.2/bits/stl_vector.h \
+  /usr/include/c++/4.0.2/bits/stl_bvector.h \
+  /usr/include/c++/4.0.2/bits/vector.tcc
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/alloca.h:
+
+/usr/include/string.h:
+
+/usr/include/sys/stat.h:
+
+/usr/include/bits/stat.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/libzypp_solver.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+../../../zypp/solver/detail/Channel.h:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/ChannelPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/WorldPtr.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/Dependency.h:
+
+../../../zypp/solver/detail/DependencyPtr.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+../../../zypp/solver/detail/OrDependencyPtr.h:
+
+../../../zypp/solver/detail/Spec.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Match.h:
+
+../../../zypp/solver/detail/MatchPtr.h:
+
+../../../zypp/solver/detail/Importance.h:
+
+../../../zypp/solver/detail/Resolvable.h:
+
+../../../zypp/solver/detail/ResolvablePtr.h:
+
+../../../zypp/solver/detail/StoreWorldPtr.h:
+
+../../../zypp/solver/detail/Version.h:
+
+../../../zypp/solver/detail/World.h:
+
+../../../zypp/solver/detail/MultiWorldPtr.h:
+
+../../../zypp/solver/detail/Pending.h:
+
+../../../zypp/solver/detail/PendingPtr.h:
+
+../../../zypp/solver/detail/Packman.h:
+
+../../../zypp/solver/detail/PackmanPtr.h:
+
+../../../zypp/solver/detail/Package.h:
+
+../../../zypp/solver/detail/PackagePtr.h:
+
+../../../zypp/solver/detail/PackageUpdatePtr.h:
+
+../../../zypp/solver/detail/Section.h:
+
+../../../zypp/solver/detail/PackageUpdate.h:
+
+../../../zypp/solver/detail/UndumpWorld.h:
+
+../../../zypp/solver/detail/UndumpWorldPtr.h:
+
+../../../zypp/solver/detail/StoreWorld.h:
+
+../../../zypp/solver/detail/ResolvableAndDependency.h:
+
+../../../zypp/solver/detail/ResolvableAndDependencyPtr.h:
+
+../../../zypp/solver/detail/MultiWorld.h:
+
+../../../zypp/solver/detail/ServiceWorldPtr.h:
+
+../../../zypp/solver/detail/Resolver.h:
+
+../../../zypp/solver/detail/ResolverPtr.h:
+
+../../../zypp/solver/detail/ResolverQueue.h:
+
+../../../zypp/solver/detail/ResolverQueuePtr.h:
+
+../../../zypp/solver/detail/ResolverContextPtr.h:
+
+../../../zypp/solver/detail/QueueItem.h:
+
+../../../zypp/solver/detail/QueueItemPtr.h:
+
+../../../zypp/solver/detail/ResolverInfo.h:
+
+../../../zypp/solver/detail/ResolverInfoPtr.h:
+
+../../../zypp/solver/detail/ResolverContext.h:
+
+../../../zypp/solver/detail/utils.h:
+
+../../../zypp/solver/detail/extract.h:
+
+/usr/include/YaST2/y2util/stringutil.h:
+
+/usr/include/c++/4.0.2/cstdarg:
+
+/usr/include/c++/4.0.2/vector:
+
+/usr/include/c++/4.0.2/bits/stl_vector.h:
+
+/usr/include/c++/4.0.2/bits/stl_bvector.h:
+
+/usr/include/c++/4.0.2/bits/vector.tcc:
diff --git a/zypp/solver/testsuite/.deps/edition.Po b/zypp/solver/testsuite/.deps/edition.Po
new file mode 100644 (file)
index 0000000..2247dd3
--- /dev/null
@@ -0,0 +1,415 @@
+edition.o edition.o: edition.cc ../../../zypp/solver/detail/Edition.h \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/string /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/Arch.h /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h
+
+../../../zypp/solver/detail/Edition.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
diff --git a/zypp/solver/testsuite/.deps/edition_single.Po b/zypp/solver/testsuite/.deps/edition_single.Po
new file mode 100644 (file)
index 0000000..56e77b5
--- /dev/null
@@ -0,0 +1,415 @@
+edition_single.o edition_single.o: edition_single.cc \
+  ../../../zypp/solver/detail/Edition.h /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/c++/4.0.2/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/include/c++/4.0.2/cctype /usr/include/ctype.h \
+  /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/string /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/c++/4.0.2/cstdlib /usr/include/stdlib.h \
+  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+  /usr/include/sys/types.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+  /usr/include/alloca.h /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/Arch.h /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h
+
+../../../zypp/solver/detail/Edition.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
diff --git a/zypp/solver/testsuite/.deps/spec.Po b/zypp/solver/testsuite/.deps/spec.Po
new file mode 100644 (file)
index 0000000..6a070d4
--- /dev/null
@@ -0,0 +1,486 @@
+spec.o spec.o: spec.cc ../../../zypp/solver/detail/Spec.h \
+  /usr/include/c++/4.0.2/list /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstring \
+  /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/bits/stdio_lim.h /usr/include/c++/4.0.2/cstdlib \
+  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+  /usr/include/bits/waitstatus.h /usr/include/endian.h \
+  /usr/include/bits/endian.h /usr/include/sys/types.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/time.h \
+  /usr/include/sys/select.h /usr/include/bits/select.h \
+  /usr/include/bits/sigset.h /usr/include/bits/time.h \
+  /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+  /usr/include/bits/sched.h /usr/include/alloca.h \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+  /usr/include/c++/4.0.2/clocale /usr/include/locale.h \
+  /usr/include/bits/locale.h /usr/include/langinfo.h \
+  /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/signal.h \
+  /usr/include/bits/initspin.h /usr/include/bits/sigthread.h \
+  /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+  /usr/include/bits/environments.h /usr/include/bits/confname.h \
+  /usr/include/getopt.h /usr/include/c++/4.0.2/cctype \
+  /usr/include/ctype.h /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/string /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h
+
+../../../zypp/solver/detail/Spec.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
diff --git a/zypp/solver/testsuite/.deps/spec_single.Po b/zypp/solver/testsuite/.deps/spec_single.Po
new file mode 100644 (file)
index 0000000..c0cdba0
--- /dev/null
@@ -0,0 +1,487 @@
+spec_single.o spec_single.o: spec_single.cc \
+  ../../../zypp/solver/detail/Spec.h /usr/include/c++/4.0.2/list \
+  /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/c++/4.0.2/cstring \
+  /usr/include/c++/4.0.2/cstddef \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/bits/stdio_lim.h /usr/include/c++/4.0.2/cstdlib \
+  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+  /usr/include/bits/waitstatus.h /usr/include/endian.h \
+  /usr/include/bits/endian.h /usr/include/sys/types.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/time.h \
+  /usr/include/sys/select.h /usr/include/bits/select.h \
+  /usr/include/bits/sigset.h /usr/include/bits/time.h \
+  /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+  /usr/include/bits/sched.h /usr/include/alloca.h \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+  /usr/include/c++/4.0.2/clocale /usr/include/locale.h \
+  /usr/include/bits/locale.h /usr/include/langinfo.h \
+  /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/signal.h \
+  /usr/include/bits/initspin.h /usr/include/bits/sigthread.h \
+  /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+  /usr/include/bits/environments.h /usr/include/bits/confname.h \
+  /usr/include/getopt.h /usr/include/c++/4.0.2/cctype \
+  /usr/include/ctype.h /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/postypes.h /usr/include/c++/4.0.2/cwchar \
+  /usr/include/c++/4.0.2/ctime /usr/include/stdint.h \
+  /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_list.h \
+  /usr/include/c++/4.0.2/bits/list.tcc \
+  /usr/include/YaST2/y2util/Ustring.h /usr/include/c++/4.0.2/iostream \
+  /usr/include/c++/4.0.2/ostream /usr/include/c++/4.0.2/ios \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/bits/localefwd.h \
+  /usr/include/c++/4.0.2/bits/ios_base.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/bits/locale_classes.h \
+  /usr/include/c++/4.0.2/string /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/c++/4.0.2/streambuf \
+  /usr/include/c++/4.0.2/bits/streambuf.tcc \
+  /usr/include/c++/4.0.2/bits/basic_ios.h \
+  /usr/include/c++/4.0.2/bits/streambuf_iterator.h \
+  /usr/include/c++/4.0.2/bits/locale_facets.h \
+  /usr/include/c++/4.0.2/cwctype /usr/include/wctype.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h \
+  /usr/include/c++/4.0.2/bits/codecvt.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h \
+  /usr/include/c++/4.0.2/bits/basic_ios.tcc \
+  /usr/include/c++/4.0.2/bits/ostream.tcc /usr/include/c++/4.0.2/locale \
+  /usr/include/c++/4.0.2/bits/locale_facets.tcc \
+  /usr/include/c++/4.0.2/typeinfo /usr/include/c++/4.0.2/istream \
+  /usr/include/c++/4.0.2/bits/istream.tcc \
+  /usr/include/YaST2/y2util/MemUsage.h /usr/include/c++/4.0.2/set \
+  /usr/include/c++/4.0.2/bits/stl_tree.h \
+  /usr/include/c++/4.0.2/bits/stl_set.h \
+  /usr/include/c++/4.0.2/bits/stl_multiset.h \
+  ../../../zypp/solver/detail/Hash.h \
+  ../../../zypp/solver/detail/SpecPtr.h \
+  /usr/include/YaST2/y2util/RepDef.h /usr/include/YaST2/y2util/Rep.h \
+  ../../../zypp/solver/detail/XmlNode.h \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h \
+  ../../../zypp/solver/detail/XmlNodePtr.h \
+  ../../../zypp/solver/detail/Edition.h \
+  ../../../zypp/solver/detail/EditionPtr.h \
+  ../../../zypp/solver/detail/Arch.h /usr/include/c++/4.0.2/map \
+  /usr/include/c++/4.0.2/bits/stl_map.h \
+  /usr/include/c++/4.0.2/bits/stl_multimap.h
+
+../../../zypp/solver/detail/Spec.h:
+
+/usr/include/c++/4.0.2/list:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_list.h:
+
+/usr/include/c++/4.0.2/bits/list.tcc:
+
+/usr/include/YaST2/y2util/Ustring.h:
+
+/usr/include/c++/4.0.2/iostream:
+
+/usr/include/c++/4.0.2/ostream:
+
+/usr/include/c++/4.0.2/ios:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/bits/localefwd.h:
+
+/usr/include/c++/4.0.2/bits/ios_base.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/bits/locale_classes.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/c++/4.0.2/streambuf:
+
+/usr/include/c++/4.0.2/bits/streambuf.tcc:
+
+/usr/include/c++/4.0.2/bits/basic_ios.h:
+
+/usr/include/c++/4.0.2/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.0.2/bits/locale_facets.h:
+
+/usr/include/c++/4.0.2/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_base.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/ctype_inline.h:
+
+/usr/include/c++/4.0.2/bits/codecvt.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/time_members.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/messages_members.h:
+
+/usr/include/c++/4.0.2/bits/basic_ios.tcc:
+
+/usr/include/c++/4.0.2/bits/ostream.tcc:
+
+/usr/include/c++/4.0.2/locale:
+
+/usr/include/c++/4.0.2/bits/locale_facets.tcc:
+
+/usr/include/c++/4.0.2/typeinfo:
+
+/usr/include/c++/4.0.2/istream:
+
+/usr/include/c++/4.0.2/bits/istream.tcc:
+
+/usr/include/YaST2/y2util/MemUsage.h:
+
+/usr/include/c++/4.0.2/set:
+
+/usr/include/c++/4.0.2/bits/stl_tree.h:
+
+/usr/include/c++/4.0.2/bits/stl_set.h:
+
+/usr/include/c++/4.0.2/bits/stl_multiset.h:
+
+../../../zypp/solver/detail/Hash.h:
+
+../../../zypp/solver/detail/SpecPtr.h:
+
+/usr/include/YaST2/y2util/RepDef.h:
+
+/usr/include/YaST2/y2util/Rep.h:
+
+../../../zypp/solver/detail/XmlNode.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+../../../zypp/solver/detail/XmlNodePtr.h:
+
+../../../zypp/solver/detail/Edition.h:
+
+../../../zypp/solver/detail/EditionPtr.h:
+
+../../../zypp/solver/detail/Arch.h:
+
+/usr/include/c++/4.0.2/map:
+
+/usr/include/c++/4.0.2/bits/stl_map.h:
+
+/usr/include/c++/4.0.2/bits/stl_multimap.h:
diff --git a/zypp/solver/testsuite/.deps/utils.Po b/zypp/solver/testsuite/.deps/utils.Po
new file mode 100644 (file)
index 0000000..e7d20d2
--- /dev/null
@@ -0,0 +1,356 @@
+utils.o utils.o: utils.cc /usr/include/string.h /usr/include/features.h \
+  /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/xlocale.h ../../../zypp/solver/detail/utils.h \
+  /usr/include/sys/types.h /usr/include/bits/types.h \
+  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
+  /usr/include/time.h /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/sys/select.h /usr/include/bits/select.h \
+  /usr/include/bits/sigset.h /usr/include/bits/time.h \
+  /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+  /usr/include/bits/sched.h /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/c++/4.0.2/cstddef \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/bits/stdio_lim.h /usr/include/c++/4.0.2/cstdlib \
+  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+  /usr/include/bits/waitstatus.h /usr/include/alloca.h \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+  /usr/include/c++/4.0.2/clocale /usr/include/locale.h \
+  /usr/include/bits/locale.h /usr/include/langinfo.h \
+  /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/signal.h \
+  /usr/include/bits/initspin.h /usr/include/bits/sigthread.h \
+  /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+  /usr/include/bits/environments.h /usr/include/bits/confname.h \
+  /usr/include/getopt.h /usr/include/c++/4.0.2/cctype \
+  /usr/include/ctype.h /usr/include/c++/4.0.2/bits/postypes.h \
+  /usr/include/c++/4.0.2/cwchar /usr/include/c++/4.0.2/ctime \
+  /usr/include/stdint.h /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+../../../zypp/solver/detail/utils.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
diff --git a/zypp/solver/testsuite/.deps/utils_single.Po b/zypp/solver/testsuite/.deps/utils_single.Po
new file mode 100644 (file)
index 0000000..2ebddef
--- /dev/null
@@ -0,0 +1,357 @@
+utils_single.o utils_single.o: utils_single.cc /usr/include/string.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h \
+  /usr/include/xlocale.h ../../../zypp/solver/detail/utils.h \
+  /usr/include/sys/types.h /usr/include/bits/types.h \
+  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
+  /usr/include/time.h /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/include/sys/select.h /usr/include/bits/select.h \
+  /usr/include/bits/sigset.h /usr/include/bits/time.h \
+  /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+  /usr/include/bits/sched.h /usr/include/c++/4.0.2/string \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h \
+  /usr/include/c++/4.0.2/bits/stringfwd.h \
+  /usr/include/c++/4.0.2/bits/char_traits.h \
+  /usr/include/c++/4.0.2/cstring /usr/include/c++/4.0.2/cstddef \
+  /usr/include/c++/4.0.2/bits/stl_algobase.h \
+  /usr/include/c++/4.0.2/climits \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/bits/stdio_lim.h /usr/include/c++/4.0.2/cstdlib \
+  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+  /usr/include/bits/waitstatus.h /usr/include/alloca.h \
+  /usr/include/c++/4.0.2/iosfwd \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h \
+  /usr/include/c++/4.0.2/cstdio /usr/include/stdio.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h \
+  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+  /usr/include/c++/4.0.2/clocale /usr/include/locale.h \
+  /usr/include/bits/locale.h /usr/include/langinfo.h \
+  /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/signal.h \
+  /usr/include/bits/initspin.h /usr/include/bits/sigthread.h \
+  /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+  /usr/include/bits/environments.h /usr/include/bits/confname.h \
+  /usr/include/getopt.h /usr/include/c++/4.0.2/cctype \
+  /usr/include/ctype.h /usr/include/c++/4.0.2/bits/postypes.h \
+  /usr/include/c++/4.0.2/cwchar /usr/include/c++/4.0.2/ctime \
+  /usr/include/stdint.h /usr/include/c++/4.0.2/bits/functexcept.h \
+  /usr/include/c++/4.0.2/exception_defines.h \
+  /usr/include/c++/4.0.2/bits/stl_pair.h \
+  /usr/include/c++/4.0.2/bits/cpp_type_traits.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_types.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/4.0.2/bits/concept_check.h \
+  /usr/include/c++/4.0.2/bits/stl_iterator.h \
+  /usr/include/c++/4.0.2/debug/debug.h /usr/include/c++/4.0.2/cassert \
+  /usr/include/assert.h /usr/include/c++/4.0.2/memory \
+  /usr/include/c++/4.0.2/bits/allocator.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h \
+  /usr/include/c++/4.0.2/ext/new_allocator.h /usr/include/c++/4.0.2/new \
+  /usr/include/c++/4.0.2/exception \
+  /usr/include/c++/4.0.2/bits/stl_construct.h \
+  /usr/include/c++/4.0.2/bits/stl_uninitialized.h \
+  /usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h \
+  /usr/include/c++/4.0.2/limits \
+  /usr/include/c++/4.0.2/bits/stl_function.h \
+  /usr/include/c++/4.0.2/bits/basic_string.h \
+  /usr/include/c++/4.0.2/bits/atomicity.h \
+  /usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h \
+  /usr/include/c++/4.0.2/algorithm /usr/include/c++/4.0.2/bits/stl_algo.h \
+  /usr/include/c++/4.0.2/bits/stl_heap.h \
+  /usr/include/c++/4.0.2/bits/stl_tempbuf.h \
+  /usr/include/c++/4.0.2/bits/basic_string.tcc \
+  /usr/include/libxml2/libxml/parser.h \
+  /usr/include/libxml2/libxml/xmlversion.h \
+  /usr/include/libxml2/libxml/xmlexports.h \
+  /usr/include/libxml2/libxml/tree.h \
+  /usr/include/libxml2/libxml/xmlstring.h \
+  /usr/include/libxml2/libxml/xmlregexp.h \
+  /usr/include/libxml2/libxml/dict.h /usr/include/libxml2/libxml/hash.h \
+  /usr/include/libxml2/libxml/valid.h \
+  /usr/include/libxml2/libxml/xmlerror.h \
+  /usr/include/libxml2/libxml/list.h \
+  /usr/include/libxml2/libxml/xmlautomata.h \
+  /usr/include/libxml2/libxml/entities.h \
+  /usr/include/libxml2/libxml/encoding.h \
+  /usr/include/libxml2/libxml/xmlIO.h \
+  /usr/include/libxml2/libxml/globals.h /usr/include/libxml2/libxml/SAX.h \
+  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+  /usr/include/libxml2/libxml/xmlmemory.h \
+  /usr/include/libxml2/libxml/threads.h
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+../../../zypp/solver/detail/utils.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/c++/4.0.2/string:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++config.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/os_defines.h:
+
+/usr/include/c++/4.0.2/bits/stringfwd.h:
+
+/usr/include/c++/4.0.2/bits/char_traits.h:
+
+/usr/include/c++/4.0.2/cstring:
+
+/usr/include/c++/4.0.2/cstddef:
+
+/usr/include/c++/4.0.2/bits/stl_algobase.h:
+
+/usr/include/c++/4.0.2/climits:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/limits.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/c++/4.0.2/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/alloca.h:
+
+/usr/include/c++/4.0.2/iosfwd:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++locale.h:
+
+/usr/include/c++/4.0.2/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/i586-suse-linux/4.0.2/include/stdarg.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/4.0.2/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++io.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.0.2/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/4.0.2/bits/postypes.h:
+
+/usr/include/c++/4.0.2/cwchar:
+
+/usr/include/c++/4.0.2/ctime:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.0.2/bits/functexcept.h:
+
+/usr/include/c++/4.0.2/exception_defines.h:
+
+/usr/include/c++/4.0.2/bits/stl_pair.h:
+
+/usr/include/c++/4.0.2/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.0.2/bits/concept_check.h:
+
+/usr/include/c++/4.0.2/bits/stl_iterator.h:
+
+/usr/include/c++/4.0.2/debug/debug.h:
+
+/usr/include/c++/4.0.2/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.0.2/memory:
+
+/usr/include/c++/4.0.2/bits/allocator.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/c++allocator.h:
+
+/usr/include/c++/4.0.2/ext/new_allocator.h:
+
+/usr/include/c++/4.0.2/new:
+
+/usr/include/c++/4.0.2/exception:
+
+/usr/include/c++/4.0.2/bits/stl_construct.h:
+
+/usr/include/c++/4.0.2/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.0.2/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.0.2/limits:
+
+/usr/include/c++/4.0.2/bits/stl_function.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.h:
+
+/usr/include/c++/4.0.2/bits/atomicity.h:
+
+/usr/include/c++/4.0.2/i586-suse-linux/bits/atomic_word.h:
+
+/usr/include/c++/4.0.2/algorithm:
+
+/usr/include/c++/4.0.2/bits/stl_algo.h:
+
+/usr/include/c++/4.0.2/bits/stl_heap.h:
+
+/usr/include/c++/4.0.2/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.0.2/bits/basic_string.tcc:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
diff --git a/zypp/solver/testsuite/Makefile.am b/zypp/solver/testsuite/Makefile.am
new file mode 100644 (file)
index 0000000..e526c16
--- /dev/null
@@ -0,0 +1,67 @@
+#
+# Makefile.am for src/testsuite
+#
+SUBDIRS = lib config libzypp_solver.test single.out
+AUTOMAKE_OPTIONS = dejagnu
+PACKAGE = libzypp_solver
+
+INCLUDES=                                      \
+       -I$(top_srcdir)/src                     \
+       -I$(includedir)                         \
+       -I/usr/include/YaST2                    \
+       -I/usr/include/libxml2 -I/usr/include/rpm       \
+       -DG_LOG_DOMAIN=\"testsuite\"            \
+       -Wall
+
+LIBZYPP_LIBS = -lxml2 -lz -lm -ly2util -lpthread -lrt -lz -lbz2
+
+# We're not ready for this yet.
+#check_PROGRAMS = deptestomatic
+noinst_PROGRAMS = edition.single       \
+               spec.single             \
+               utils.single            \
+               deptestomatic.multi
+
+edition_single_SOURCES =                       \
+       edition_single.cc
+
+edition_single_LDFLAGS =                       \
+       -L$(top_srcdir)/zypp/solver/detail/.libs
+
+edition_single_LDADD =                 \
+       -lzypp_solver_detail                    \
+       $(LIBZYPP_LIBS)
+
+spec_single_SOURCES =                  \
+       spec_single.cc
+
+spec_single_LDFLAGS =                  \
+       -L$(top_srcdir)/zypp/solver/detail/.libs
+
+spec_single_LDADD =                    \
+       -lzypp_solver_detail                    \
+       $(LIBZYPP_LIBS)
+
+utils_single_SOURCES =                 \
+       utils_single.cc
+
+utils_single_LDFLAGS =                 \
+       -L$(top_srcdir)/zypp/solver/detail/.libs
+
+utils_single_LDADD =                   \
+       -lzypp_solver_detail                    \
+       $(LIBZYPP_LIBS)
+
+
+deptestomatic_multi_SOURCES =          \
+       deptestomatic_multi.cc
+
+deptestomatic_multi_LDFLAGS =          \
+       -L$(top_srcdir)/zypp/solver/detail/.libs
+
+deptestomatic_multi_LDADD =            \
+       -lzypp_solver_detail                    \
+       $(LIBZYPP_LIBS)
+
+
+
diff --git a/zypp/solver/testsuite/config/Makefile.am b/zypp/solver/testsuite/config/Makefile.am
new file mode 100644 (file)
index 0000000..ca54bb1
--- /dev/null
@@ -0,0 +1 @@
+EXTRA_DIST = default.exp unix.exp unknown.exp
diff --git a/zypp/solver/testsuite/config/default.exp b/zypp/solver/testsuite/config/default.exp
new file mode 100644 (file)
index 0000000..fe1e08a
--- /dev/null
@@ -0,0 +1,2 @@
+# default.exp -- empty
+
diff --git a/zypp/solver/testsuite/config/unix.exp b/zypp/solver/testsuite/config/unix.exp
new file mode 100644 (file)
index 0000000..f2a7a39
--- /dev/null
@@ -0,0 +1,4 @@
+load_lib "solver_init.exp"
+proc solver_exit {} {}
+proc solver_version {} {}
+
diff --git a/zypp/solver/testsuite/config/unknown.exp b/zypp/solver/testsuite/config/unknown.exp
new file mode 100644 (file)
index 0000000..fe48c2f
--- /dev/null
@@ -0,0 +1,2 @@
+perror "No setup for current configuration"
+exit 1
diff --git a/zypp/solver/testsuite/deptestomatic/README b/zypp/solver/testsuite/deptestomatic/README
new file mode 100644 (file)
index 0000000..cd87ab7
--- /dev/null
@@ -0,0 +1,12 @@
+Comments to the yast (PHI) test cases
+
+- conflicts of an installed package don't match to-be-installed providers
+  (-> r_and_d::verify checks channel equality)
+  [Fixed by --enable-phi]
+
+- uninstalls can be replaced by upgrades, the solver doesn't check this
+  (exercise-02conflict-08-test.xml and exercise-02conflict-09-test.xml fail currently)
+  [Fixed by --enable-phi]
+
+- A limited conflict (foo <= 1.2) also triggers for 'foo' in rc but not in phi
+  (exercise-04obsoletes-03-test.xml)
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-1-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-01simple-1-test.diff
new file mode 100644 (file)
index 0000000..84ed8f2
--- /dev/null
@@ -0,0 +1,7 @@
+--- exercise-01simple-1-test.solution  2005-11-04 12:09:56.000000000 +0100
++++ exercise-01simple-1-test.mistake   2005-11-30 10:37:36.000000000 +0100
+@@ -1,4 +0,0 @@
+->!> Installing bash from channel test
+->!> Solution #1:
+->!> install bash-2.0.2-1[test]
+->!> installs=1, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-1-test.err b/zypp/solver/testsuite/deptestomatic/exercise-01simple-1-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-1-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-01simple-1-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-1-test.out b/zypp/solver/testsuite/deptestomatic/exercise-01simple-1-test.out
new file mode 100644 (file)
index 0000000..c97d077
--- /dev/null
@@ -0,0 +1,25 @@
+Loaded 1 package from deptestomatic/exercise-01simple-system.xml
+Loaded 14 packages from deptestomatic/exercise-01simple-packages.xml
+
+------------------------------------------------
+
+>!> Installing bash from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 4c84a7a8
+>!> install bash-2.0.2-1[test]
+>!> installs=1, upgrades=0, uninstalls=0
+download size=0.1k, install size=0.4k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing bash-2.0.2-1[test]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-1-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-01simple-1-test.solution
new file mode 100644 (file)
index 0000000..a109bc7
--- /dev/null
@@ -0,0 +1,4 @@
+>!> Installing bash from channel test
+>!> Solution #1:
+>!> install bash-2.0.2-1[test]
+>!> installs=1, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-1-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-01simple-1-test.xml
new file mode 100644 (file)
index 0000000..b5cf706
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-01simple-system.xml"/>
+  <channel name="test" file="exercise-01simple-packages.xml"/>
+</setup>
+
+<!-- simplest test of all: the package doesn't need anything additional -->
+<trial>
+  <install channel="test" package="bash"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-2-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-01simple-2-test.diff
new file mode 100644 (file)
index 0000000..d756420
--- /dev/null
@@ -0,0 +1,9 @@
+--- exercise-01simple-2-test.solution  2005-11-04 12:10:15.000000000 +0100
++++ exercise-01simple-2-test.mistake   2005-11-30 10:37:36.000000000 +0100
+@@ -1,6 +0,0 @@
+->!> Installing amd from channel test
+->!> Solution #1:
+->!> install amd-upl102-11[test]
+->!> install libgdbm-1.17-1[test]
+->!> upgrade libc6-2.0.5-1 => libc6-2.0.7-1[test]
+->!> installs=2, upgrades=1, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-2-test.err b/zypp/solver/testsuite/deptestomatic/exercise-01simple-2-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-2-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-01simple-2-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-2-test.out b/zypp/solver/testsuite/deptestomatic/exercise-01simple-2-test.out
new file mode 100644 (file)
index 0000000..97e42e8
--- /dev/null
@@ -0,0 +1,31 @@
+Loaded 1 package from deptestomatic/exercise-01simple-system.xml
+Loaded 14 packages from deptestomatic/exercise-01simple-packages.xml
+
+------------------------------------------------
+
+>!> Installing amd from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 45feb26c
+>!> install amd-upl102-11[test]
+>!> install libgdbm-1.17-1[test]
+>!> upgrade libc6-2.0.5-1 => libc6-2.0.7-1[test]
+>!> installs=2, upgrades=1, uninstalls=0
+download size=0.4k, install size=0.9k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing amd-upl102-11[test]
+libgdbm-1.17-1[test]:  needed by  [amd-upl102-11]
+Installing libgdbm-1.17-1[test]
+libc6-2.0.7-1[test]:  needed by  [libgdbm-1.17-1]
+Upgrading libc6-2.0.5-1 => libc6-2.0.7-1[test]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-2-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-01simple-2-test.solution
new file mode 100644 (file)
index 0000000..2c5a622
--- /dev/null
@@ -0,0 +1,6 @@
+>!> Installing amd from channel test
+>!> Solution #1:
+>!> install amd-upl102-11[test]
+>!> install libgdbm-1.17-1[test]
+>!> upgrade libc6-2.0.5-1 => libc6-2.0.7-1[test]
+>!> installs=2, upgrades=1, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-2-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-01simple-2-test.xml
new file mode 100644 (file)
index 0000000..1ff833f
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-01simple-system.xml"/>
+  <channel name="test" file="exercise-01simple-packages.xml"/>
+</setup>
+
+<!-- transitive addition: amd needs libgdbm, which needs a newer version of libc6
+     than installed
+     NB: libgdbm should refer to the libc6 update, but not amd itself, because
+     its requirements are also satisfied by the old version -->
+<trial>
+  <install channel="test" package="amd"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-3-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-01simple-3-test.diff
new file mode 100644 (file)
index 0000000..388197b
--- /dev/null
@@ -0,0 +1,4 @@
+--- exercise-01simple-3-test.solution  2005-11-04 12:11:02.000000000 +0100
++++ exercise-01simple-3-test.mistake   2005-11-30 10:37:36.000000000 +0100
+@@ -1 +0,0 @@
+->!> Installing foo1 from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-3-test.err b/zypp/solver/testsuite/deptestomatic/exercise-01simple-3-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-3-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-01simple-3-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-3-test.out b/zypp/solver/testsuite/deptestomatic/exercise-01simple-3-test.out
new file mode 100644 (file)
index 0000000..97bf0e5
--- /dev/null
@@ -0,0 +1,20 @@
+Loaded 1 package from deptestomatic/exercise-01simple-system.xml
+Loaded 14 packages from deptestomatic/exercise-01simple-packages.xml
+
+------------------------------------------------
+
+>!> Installing foo1 from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Pruned solutions: 0
+Deferred solutions: 0
+
+Failed Solution: 
+Download Size: 246, Install Size: 456, Total Priority: 0, Min Priority: 800, Max Priority: 800, Other Penalties: 0, Invalid
+- - - - - - - - - -
+Installing foo1-1.0-1[test]
+There are no installable providers of bar1 for foo1-1.0-1[test]
+libc6-2.0.7-1[test]:  needed by  [foo1-1.0-1]
+Upgrading libc6-2.0.5-1 => libc6-2.0.7-1[test]
+[ERROR] foo1-1.0-1 is scheduled to be installed, but this is not possible because of dependency problems.
+[ERROR] Marking this resolution attempt as invalid.
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-3-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-01simple-3-test.solution
new file mode 100644 (file)
index 0000000..91d005d
--- /dev/null
@@ -0,0 +1 @@
+>!> Installing foo1 from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-3-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-01simple-3-test.xml
new file mode 100644 (file)
index 0000000..64a5755
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-01simple-system.xml"/>
+  <channel name="test" file="exercise-01simple-packages.xml"/>
+</setup>
+
+<!-- test with non-available dependency (1): any version -->
+<trial>
+  <install channel="test" package="foo1"/>
+</trial>
+
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-4-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-01simple-4-test.diff
new file mode 100644 (file)
index 0000000..4284ea6
--- /dev/null
@@ -0,0 +1,4 @@
+--- exercise-01simple-4-test.solution  2005-11-04 12:51:43.000000000 +0100
++++ exercise-01simple-4-test.mistake   2005-11-30 10:37:36.000000000 +0100
+@@ -1 +0,0 @@
+->!> Installing foo2 from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-4-test.err b/zypp/solver/testsuite/deptestomatic/exercise-01simple-4-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-4-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-01simple-4-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-4-test.out b/zypp/solver/testsuite/deptestomatic/exercise-01simple-4-test.out
new file mode 100644 (file)
index 0000000..f01a2fa
--- /dev/null
@@ -0,0 +1,18 @@
+Loaded 1 package from deptestomatic/exercise-01simple-system.xml
+Loaded 14 packages from deptestomatic/exercise-01simple-packages.xml
+
+------------------------------------------------
+
+>!> Installing foo2 from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Pruned solutions: 0
+Deferred solutions: 0
+
+Failed Solution: 
+Download Size: 123, Install Size: 456, Total Priority: 0, Min Priority: 800, Max Priority: 800, Other Penalties: 0, Invalid
+- - - - - - - - - -
+Installing foo2-1.0-1[test]
+There are no installable providers of bar2 >= 1.0 for foo2-1.0-1[test]
+[ERROR] foo2-1.0-1 is scheduled to be installed, but this is not possible because of dependency problems.
+[ERROR] Marking this resolution attempt as invalid.
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-4-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-01simple-4-test.solution
new file mode 100644 (file)
index 0000000..188faf8
--- /dev/null
@@ -0,0 +1 @@
+>!> Installing foo2 from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-4-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-01simple-4-test.xml
new file mode 100644 (file)
index 0000000..a538685
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-01simple-system.xml"/>
+  <channel name="test" file="exercise-01simple-packages.xml"/>
+</setup>
+
+
+<!-- test with non-available dependency (2): with version relation -->
+<trial>
+  <install channel="test" package="foo2"/>
+</trial>
+
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-5-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-01simple-5-test.diff
new file mode 100644 (file)
index 0000000..8211629
--- /dev/null
@@ -0,0 +1,6 @@
+--- exercise-01simple-5-test.solution  2005-11-04 12:53:08.000000000 +0100
++++ exercise-01simple-5-test.mistake   2005-11-30 10:37:36.000000000 +0100
+@@ -1,3 +0,0 @@
+->!> Installing foo2a from channel test
+->!> Installing foo2b from channel test
+->!> Installing foo2c from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-5-test.err b/zypp/solver/testsuite/deptestomatic/exercise-01simple-5-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-5-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-01simple-5-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-5-test.out b/zypp/solver/testsuite/deptestomatic/exercise-01simple-5-test.out
new file mode 100644 (file)
index 0000000..ba9f3ef
--- /dev/null
@@ -0,0 +1,25 @@
+Loaded 1 package from deptestomatic/exercise-01simple-system.xml
+Loaded 14 packages from deptestomatic/exercise-01simple-packages.xml
+
+------------------------------------------------
+
+>!> Installing foo2a from channel test
+>!> Installing foo2b from channel test
+>!> Installing foo2c from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Pruned solutions: 0
+Deferred solutions: 0
+
+Failed Solution: 
+Download Size: 369, Install Size: 1368, Total Priority: 0, Min Priority: 800, Max Priority: 800, Other Penalties: 0, Invalid
+- - - - - - - - - -
+Installing foo2a-1.0-1[test]
+Installing foo2b-1.0-1[test]
+Installing foo2c-1.0-1[test]
+There are no installable providers of bar2 > 1.0 for foo2c-1.0-1[test]
+There are no installable providers of bar2 <= 1.1 for foo2b-1.0-1[test]
+There are no installable providers of bar3 == 2.0 for foo2a-1.0-1[test]
+There are no installable providers of bar2 >= 1.0 for foo2a-1.0-1[test]
+[ERROR] foo2a-1.0-1 is scheduled to be installed, but this is not possible because of dependency problems.
+[ERROR] Marking this resolution attempt as invalid.
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-5-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-01simple-5-test.solution
new file mode 100644 (file)
index 0000000..8747ba2
--- /dev/null
@@ -0,0 +1,3 @@
+>!> Installing foo2a from channel test
+>!> Installing foo2b from channel test
+>!> Installing foo2c from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-5-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-01simple-5-test.xml
new file mode 100644 (file)
index 0000000..b8ecdb8
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-01simple-system.xml"/>
+  <channel name="test" file="exercise-01simple-packages.xml"/>
+</setup>
+
+
+<!-- test with non-available dependency (3): with complex version relations -->
+<trial>
+  <install channel="test" package="foo2a"/>
+  <install channel="test" package="foo2b"/>
+  <install channel="test" package="foo2c"/>
+</trial>
+
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-6-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-01simple-6-test.diff
new file mode 100644 (file)
index 0000000..c4cc314
--- /dev/null
@@ -0,0 +1,5 @@
+--- exercise-01simple-6-test.solution  2005-11-04 12:53:26.000000000 +0100
++++ exercise-01simple-6-test.mistake   2005-11-30 10:37:36.000000000 +0100
+@@ -1,2 +0,0 @@
+->!> Installing foo2d from channel test
+->!> Installing foo2e from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-6-test.err b/zypp/solver/testsuite/deptestomatic/exercise-01simple-6-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-6-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-01simple-6-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-6-test.out b/zypp/solver/testsuite/deptestomatic/exercise-01simple-6-test.out
new file mode 100644 (file)
index 0000000..c166bfd
--- /dev/null
@@ -0,0 +1,21 @@
+Loaded 1 package from deptestomatic/exercise-01simple-system.xml
+Loaded 14 packages from deptestomatic/exercise-01simple-packages.xml
+
+------------------------------------------------
+
+>!> Installing foo2d from channel test
+>!> Installing foo2e from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Pruned solutions: 0
+Deferred solutions: 0
+
+Failed Solution: 
+Download Size: 246, Install Size: 912, Total Priority: 0, Min Priority: 800, Max Priority: 800, Other Penalties: 0, Invalid
+- - - - - - - - - -
+Installing foo2d-1.0-1[test]
+Installing foo2e-1.0-1[test]
+There are no installable providers of bar2 <= 1.0 for foo2e-1.0-1[test]
+There are no installable providers of bar2 > 2.0 for foo2d-1.0-1[test]
+[ERROR] foo2d-1.0-1 is scheduled to be installed, but this is not possible because of dependency problems.
+[ERROR] Marking this resolution attempt as invalid.
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-6-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-01simple-6-test.solution
new file mode 100644 (file)
index 0000000..665801b
--- /dev/null
@@ -0,0 +1,2 @@
+>!> Installing foo2d from channel test
+>!> Installing foo2e from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-6-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-01simple-6-test.xml
new file mode 100644 (file)
index 0000000..62ce0a8
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-01simple-system.xml"/>
+  <channel name="test" file="exercise-01simple-packages.xml"/>
+</setup>
+
+
+<!-- test with non-available dependency (4): with contradicting version relations -->
+<trial>
+  <install channel="test" package="foo2d"/>
+  <install channel="test" package="foo2e"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-7-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-01simple-7-test.diff
new file mode 100644 (file)
index 0000000..65d8cfa
--- /dev/null
@@ -0,0 +1,8 @@
+--- exercise-01simple-7-test.solution  2005-11-04 12:53:41.000000000 +0100
++++ exercise-01simple-7-test.mistake   2005-11-30 10:37:36.000000000 +0100
+@@ -1,5 +0,0 @@
+->!> Installing foo3 from channel test
+->!> Solution #1:
+->!> install bash-2.0.2-1[test]
+->!> install foo3-1.0-1[test]
+->!> installs=2, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-7-test.err b/zypp/solver/testsuite/deptestomatic/exercise-01simple-7-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-7-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-01simple-7-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-7-test.out b/zypp/solver/testsuite/deptestomatic/exercise-01simple-7-test.out
new file mode 100644 (file)
index 0000000..5e1ac17
--- /dev/null
@@ -0,0 +1,28 @@
+Loaded 1 package from deptestomatic/exercise-01simple-system.xml
+Loaded 14 packages from deptestomatic/exercise-01simple-packages.xml
+
+------------------------------------------------
+
+>!> Installing foo3 from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = b0401108
+>!> install bash-2.0.2-1[test]
+>!> install foo3-1.0-1[test]
+>!> installs=2, upgrades=0, uninstalls=0
+download size=0.2k, install size=0.9k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing foo3-1.0-1[test]
+bash-2.0.2-1[test]:  needed by  [foo3-1.0-1]
+Installing bash-2.0.2-1[test]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-7-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-01simple-7-test.solution
new file mode 100644 (file)
index 0000000..0c2b7f7
--- /dev/null
@@ -0,0 +1,5 @@
+>!> Installing foo3 from channel test
+>!> Solution #1:
+>!> install bash-2.0.2-1[test]
+>!> install foo3-1.0-1[test]
+>!> installs=2, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-7-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-01simple-7-test.xml
new file mode 100644 (file)
index 0000000..16bb51b
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-01simple-system.xml"/>
+  <channel name="test" file="exercise-01simple-packages.xml"/>
+</setup>
+
+
+<!-- test with required file (1): pulls in bash for /bin/sh -->
+<trial>
+  <install channel="test" package="foo3"/>
+</trial>
+
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-8-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-01simple-8-test.diff
new file mode 100644 (file)
index 0000000..bdd3e95
--- /dev/null
@@ -0,0 +1,9 @@
+--- exercise-01simple-8-test.solution  2005-11-04 12:54:09.000000000 +0100
++++ exercise-01simple-8-test.mistake   2005-11-30 10:37:36.000000000 +0100
+@@ -1,6 +0,0 @@
+->!> Installing foo4 from channel test
+->!> Solution #1:
+->!> install bash-2.0.2-1[test]
+->!> install foo3-1.0-1[test]
+->!> install foo4-1.0-1[test]
+->!> installs=3, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-8-test.err b/zypp/solver/testsuite/deptestomatic/exercise-01simple-8-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-8-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-01simple-8-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-8-test.out b/zypp/solver/testsuite/deptestomatic/exercise-01simple-8-test.out
new file mode 100644 (file)
index 0000000..605e7db
--- /dev/null
@@ -0,0 +1,31 @@
+Loaded 1 package from deptestomatic/exercise-01simple-system.xml
+Loaded 14 packages from deptestomatic/exercise-01simple-packages.xml
+
+------------------------------------------------
+
+>!> Installing foo4 from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = aee20d29
+>!> install bash-2.0.2-1[test]
+>!> install foo3-1.0-1[test]
+>!> install foo4-1.0-1[test]
+>!> installs=3, upgrades=0, uninstalls=0
+download size=0.4k, install size=1.3k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing foo4-1.0-1[test]
+foo3-1.0-1[test]:  needed by  [foo4-1.0-1]
+Installing foo3-1.0-1[test]
+bash-2.0.2-1[test]:  needed by  [foo3-1.0-1]
+Installing bash-2.0.2-1[test]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-8-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-01simple-8-test.solution
new file mode 100644 (file)
index 0000000..86d07d7
--- /dev/null
@@ -0,0 +1,6 @@
+>!> Installing foo4 from channel test
+>!> Solution #1:
+>!> install bash-2.0.2-1[test]
+>!> install foo3-1.0-1[test]
+>!> install foo4-1.0-1[test]
+>!> installs=3, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-8-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-01simple-8-test.xml
new file mode 100644 (file)
index 0000000..11e2c19
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-01simple-system.xml"/>
+  <channel name="test" file="exercise-01simple-packages.xml"/>
+</setup>
+
+
+<!-- test with required file (2): needs non-standard /usr/bin/bar
+     provided by foo3 (i.e., in the available set, too) -->
+<trial>
+  <install channel="test" package="foo4"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-9-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-01simple-9-test.diff
new file mode 100644 (file)
index 0000000..0bae29b
--- /dev/null
@@ -0,0 +1,7 @@
+--- exercise-01simple-9-test.solution  2005-11-04 12:54:19.000000000 +0100
++++ exercise-01simple-9-test.mistake   2005-11-30 10:37:36.000000000 +0100
+@@ -1,4 +0,0 @@
+->!> Installing foo5 from channel test
+->!> Solution #1:
+->!> install foo5-1.0-1[test]
+->!> installs=1, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-9-test.err b/zypp/solver/testsuite/deptestomatic/exercise-01simple-9-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-9-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-01simple-9-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-9-test.out b/zypp/solver/testsuite/deptestomatic/exercise-01simple-9-test.out
new file mode 100644 (file)
index 0000000..846a368
--- /dev/null
@@ -0,0 +1,25 @@
+Loaded 1 package from deptestomatic/exercise-01simple-system.xml
+Loaded 14 packages from deptestomatic/exercise-01simple-packages.xml
+
+------------------------------------------------
+
+>!> Installing foo5 from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = df24d2e2
+>!> install foo5-1.0-1[test]
+>!> installs=1, upgrades=0, uninstalls=0
+download size=0.1k, install size=0.4k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing foo5-1.0-1[test]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-9-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-01simple-9-test.solution
new file mode 100644 (file)
index 0000000..3e48a90
--- /dev/null
@@ -0,0 +1,4 @@
+>!> Installing foo5 from channel test
+>!> Solution #1:
+>!> install foo5-1.0-1[test]
+>!> installs=1, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-9-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-01simple-9-test.xml
new file mode 100644 (file)
index 0000000..74bc934
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-01simple-system.xml"/>
+  <channel name="test" file="exercise-01simple-packages.xml"/>
+</setup>
+
+
+<!-- test with required file (3): needs non-standard /sbin/ldconfig
+     provided by libc6 (i.e., from different set) -->
+<trial>
+  <install channel="test" package="foo5"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-packages.err b/zypp/solver/testsuite/deptestomatic/exercise-01simple-packages.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-packages.out b/zypp/solver/testsuite/deptestomatic/exercise-01simple-packages.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-packages.xml b/zypp/solver/testsuite/deptestomatic/exercise-01simple-packages.xml
new file mode 100644 (file)
index 0000000..acb4829
--- /dev/null
@@ -0,0 +1,296 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>libc6</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.7</version>
+          <release>1</release>
+          <filename>libc6.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+      </provides>
+    </package>
+    <package>
+      <name>libgdbm</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.17</version>
+          <release>1</release>
+          <filename>libgdbm.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='libc6' op='&gt;=' version='2.0.7'/>
+      </requires>
+    </package>
+    <package>
+      <name>bash</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.2</version>
+          <release>1</release>
+          <filename>bash.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/sh'/>
+        <dep name='/bin/bash'/>
+      </provides>
+      <requires>
+        <dep name='libc6'/>
+      </requires>
+    </package>
+    <package>
+      <name>amd</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>upl102</version>
+          <release>11</release>
+          <filename>amd.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libgdbm'/>
+      </requires>
+    </package>
+    <package>
+      <name>foo1</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>foo1.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='libc6' op='&gt;=' version='2.0.6'/>
+        <dep name='bar1'/>
+      </requires>
+    </package>
+    <package>
+      <name>foo2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>foo2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='bar2' op='&gt;=' version='1.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>foo2a</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>foo2a.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='bar2' op='&gt;=' version='1.0'/>
+        <dep name='bar3' op='=' version='2.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>foo2b</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>foo2b.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='bar2' op='&lt;=' version='1.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>foo2c</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>foo2c.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='bar2' op='&gt;' version='1.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>foo2d</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>foo2d.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='bar2' op='&gt;' version='2.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>foo2e</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>foo2e.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='bar2' op='&lt;=' version='1.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>foo3</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>foo3.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/bar'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>foo4</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>foo4.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='/usr/bin/bar'/>
+      </requires>
+    </package>
+    <package>
+      <name>foo5</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>foo5.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='/sbin/unusual'/>
+      </requires>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-system.err b/zypp/solver/testsuite/deptestomatic/exercise-01simple-system.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-system.out b/zypp/solver/testsuite/deptestomatic/exercise-01simple-system.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-01simple-system.xml b/zypp/solver/testsuite/deptestomatic/exercise-01simple-system.xml
new file mode 100644 (file)
index 0000000..bd254d7
--- /dev/null
@@ -0,0 +1,26 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>libc6</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.5</version>
+          <release>1</release>
+          <filename>libc6.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='/sbin/unusual'/>
+      </provides>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-01-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-01-test.diff
new file mode 100644 (file)
index 0000000..ca86ded
--- /dev/null
@@ -0,0 +1,8 @@
+--- exercise-02conflict-01-test.solution       2005-11-04 17:39:38.000000000 +0100
++++ exercise-02conflict-01-test.mistake        2005-11-30 10:37:36.000000000 +0100
+@@ -1,5 +0,0 @@
+->!> Installing p2 from channel test
+->!> Solution #1:
+->!> install p2-1.0-1[test]
+->!> remove  p1-1.0-1
+->!> installs=1, upgrades=0, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-01-test.err b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-01-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-01-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-01-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-01-test.out b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-01-test.out
new file mode 100644 (file)
index 0000000..6699ad2
--- /dev/null
@@ -0,0 +1,25 @@
+Loaded 20 packages from deptestomatic/exercise-02conflict-system.xml
+Loaded 25 packages from deptestomatic/exercise-02conflict-packages.xml
+
+------------------------------------------------
+
+>!> Installing p2 from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 6704acfb
+>!> install p2-1.0-1[test]
+>!> installs=1, upgrades=0, uninstalls=0
+download size=0.1k, install size=0.4k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing p2-1.0-1[test]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-01-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-01-test.solution
new file mode 100644 (file)
index 0000000..b61f0eb
--- /dev/null
@@ -0,0 +1,5 @@
+>!> Installing p2 from channel test
+>!> Solution #1:
+>!> install p2-1.0-1[test]
+>!> remove  p1-1.0-1
+>!> installs=1, upgrades=0, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-01-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-01-test.xml
new file mode 100644 (file)
index 0000000..9910541
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-02conflict-system.xml"/>
+  <channel name="test" file="exercise-02conflict-packages.xml"/>
+</setup>
+
+
+<!-- installed p1 directly conflicts with candidate p2 -->
+<trial>
+  <install channel="test" package="p2"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-02-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-02-test.diff
new file mode 100644 (file)
index 0000000..dbd7c66
--- /dev/null
@@ -0,0 +1,8 @@
+--- exercise-02conflict-02-test.solution       2005-11-04 17:40:18.000000000 +0100
++++ exercise-02conflict-02-test.mistake        2005-11-30 10:37:36.000000000 +0100
+@@ -1,5 +0,0 @@
+->!> Installing sendmail from channel test
+->!> Solution #1:
+->!> install sendmail-2.0-1[test]
+->!> remove  smail-1.0-1
+->!> installs=1, upgrades=0, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-02-test.err b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-02-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-02-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-02-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-02-test.out b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-02-test.out
new file mode 100644 (file)
index 0000000..e727470
--- /dev/null
@@ -0,0 +1,27 @@
+Loaded 20 packages from deptestomatic/exercise-02conflict-system.xml
+Loaded 25 packages from deptestomatic/exercise-02conflict-packages.xml
+
+------------------------------------------------
+
+>!> Installing sendmail from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = ffcb91f5
+>!> install sendmail-2.0-1[test]
+>!> remove  smail-1.0-1
+>!> installs=1, upgrades=0, uninstalls=1
+download size=0.1k, install size=0.4k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing sendmail-2.0-1[test]
+smail-1.0-1: conflicts with  [sendmail-2.0-1]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-02-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-02-test.solution
new file mode 100644 (file)
index 0000000..c0dd5d1
--- /dev/null
@@ -0,0 +1,5 @@
+>!> Installing sendmail from channel test
+>!> Solution #1:
+>!> install sendmail-2.0-1[test]
+>!> remove  smail-1.0-1
+>!> installs=1, upgrades=0, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-02-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-02-test.xml
new file mode 100644 (file)
index 0000000..1906d2c
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-02conflict-system.xml"/>
+  <channel name="test" file="exercise-02conflict-packages.xml"/>
+</setup>
+
+
+<!-- installed smail conflicts with candidate sendmail via provided MTA -->
+<trial>
+  <install channel="test" package="sendmail"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-03-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-03-test.diff
new file mode 100644 (file)
index 0000000..41713e4
--- /dev/null
@@ -0,0 +1,12 @@
+--- exercise-02conflict-03-test.solution       2005-11-05 17:03:30.000000000 +0100
++++ exercise-02conflict-03-test.mistake        2005-11-30 10:37:36.000000000 +0100
+@@ -1,9 +0,0 @@
+->!> Installing bar from channel test
+->!> Solution #1:
+->!> install bar-2.0-1[test]
+->!> remove  foo-1.0-1
+->!> |unflag foo-2.0-1[test]
+->!> installs=1, upgrades=0, uninstalls=1
+->!> Solution #2:
+->!> This solution is a duplicate.
+->!> installs=1, upgrades=0, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-03-test.err b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-03-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-03-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-03-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-03-test.out b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-03-test.out
new file mode 100644 (file)
index 0000000..786a657
--- /dev/null
@@ -0,0 +1,29 @@
+Loaded 20 packages from deptestomatic/exercise-02conflict-system.xml
+Loaded 25 packages from deptestomatic/exercise-02conflict-packages.xml
+
+------------------------------------------------
+
+>!> Installing bar from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = f52dd13b
+>!> install bar-2.0-1[test]
+>!> remove  foo-1.0-1
+>!> |unflag foo-2.0-1[test]
+>!> installs=1, upgrades=0, uninstalls=1
+download size=0.1k, install size=0.4k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing bar-2.0-1[test]
+Marking foo-2.0-1[test] as uninstallable due to conflicts over  foo (foo-2.0-1) from bar-2.0-1[test] [bar-2.0-1, foo-2.0-1]
+foo-1.0-1: conflicts with  [bar-2.0-1]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-03-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-03-test.solution
new file mode 100644 (file)
index 0000000..5dbd623
--- /dev/null
@@ -0,0 +1,9 @@
+>!> Installing bar from channel test
+>!> Solution #1:
+>!> install bar-2.0-1[test]
+>!> remove  foo-1.0-1
+>!> |unflag foo-2.0-1[test]
+>!> installs=1, upgrades=0, uninstalls=1
+>!> Solution #2:
+>!> This solution is a duplicate.
+>!> installs=1, upgrades=0, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-03-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-03-test.xml
new file mode 100644 (file)
index 0000000..ce7413c
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-02conflict-system.xml"/>
+  <channel name="test" file="exercise-02conflict-packages.xml"/>
+</setup>
+
+
+<!-- candidate bar conflicts with installed foo (the difference is that the
+     conflict is reported at candidate again) -->
+<trial>
+  <install channel="test" package="bar"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-04-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-04-test.diff
new file mode 100644 (file)
index 0000000..ab1e0ff
--- /dev/null
@@ -0,0 +1,9 @@
+--- exercise-02conflict-04-test.solution       2005-11-04 22:55:36.000000000 +0100
++++ exercise-02conflict-04-test.mistake        2005-11-30 10:37:36.000000000 +0100
+@@ -1,6 +0,0 @@
+->!> Installing libident-dev from channel test
+->!> Solution #1:
+->!> install libident-dev-2.0-1[test]
+->!> remove  smail-1.0-1
+->!> upgrade libident-1.9-1 => libident-2.0-1[test]
+->!> installs=1, upgrades=1, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-04-test.err b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-04-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-04-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-04-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-04-test.out b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-04-test.out
new file mode 100644 (file)
index 0000000..ddd02d5
--- /dev/null
@@ -0,0 +1,28 @@
+Loaded 20 packages from deptestomatic/exercise-02conflict-system.xml
+Loaded 25 packages from deptestomatic/exercise-02conflict-packages.xml
+
+------------------------------------------------
+
+>!> Installing libident-dev from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 8ca0c580
+>!> install libident-dev-2.0-1[test]
+>!> upgrade libident-1.9-1 => libident-2.0-1[test]
+>!> installs=1, upgrades=1, uninstalls=0
+download size=0.2k, install size=0.4k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing libident-dev-2.0-1[test]
+libident-2.0-1[test]:  needed by  [libident-dev-2.0-1]
+Upgrading libident-1.9-1 => libident-2.0-1[test]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-04-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-04-test.solution
new file mode 100644 (file)
index 0000000..2cbf2a8
--- /dev/null
@@ -0,0 +1,6 @@
+>!> Installing libident-dev from channel test
+>!> Solution #1:
+>!> install libident-dev-2.0-1[test]
+>!> remove  smail-1.0-1
+>!> upgrade libident-1.9-1 => libident-2.0-1[test]
+>!> installs=1, upgrades=1, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-04-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-04-test.xml
new file mode 100644 (file)
index 0000000..0d7d7e4
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-02conflict-system.xml"/>
+  <channel name="test" file="exercise-02conflict-packages.xml"/>
+</setup>
+
+
+<!-- conflict by upgrade (1): installed smail conflicts with newer version of libident -->
+<trial>
+  <install channel="test" package="libident-dev"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-05-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-05-test.diff
new file mode 100644 (file)
index 0000000..7c5f8b4
--- /dev/null
@@ -0,0 +1,8 @@
+--- exercise-02conflict-05-test.solution       2005-11-04 23:00:17.000000000 +0100
++++ exercise-02conflict-05-test.mistake        2005-11-30 10:37:36.000000000 +0100
+@@ -1,5 +0,0 @@
+->!> Installing libc6 from channel test
+->!> Solution #1:
+->!> remove  smail-1.0-1
+->!> upgrade libc6-2.0.7-2 => libc6-2.1.0-1[test]
+->!> installs=0, upgrades=1, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-05-test.err b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-05-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-05-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-05-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-05-test.out b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-05-test.out
new file mode 100644 (file)
index 0000000..b41d64e
--- /dev/null
@@ -0,0 +1,28 @@
+Loaded 20 packages from deptestomatic/exercise-02conflict-system.xml
+Loaded 25 packages from deptestomatic/exercise-02conflict-packages.xml
+
+------------------------------------------------
+
+>!> Installing libc6 from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 343626a4
+>!> remove  smail-1.0-1
+>!> upgrade libc6-2.0.7-2 => libc6-2.1.0-1[test]
+>!> installs=0, upgrades=1, uninstalls=1
+download size=0.1k, install size=0.0k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Upgrading libc6-2.0.7-2 => libc6-2.1.0-1[test]
+smail-1.0-1: depended on  [libc6-2.0.7-2]
+smail-1.0-1: missing requirement libc6 < 2.1
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-05-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-05-test.solution
new file mode 100644 (file)
index 0000000..570467a
--- /dev/null
@@ -0,0 +1,5 @@
+>!> Installing libc6 from channel test
+>!> Solution #1:
+>!> remove  smail-1.0-1
+>!> upgrade libc6-2.0.7-2 => libc6-2.1.0-1[test]
+>!> installs=0, upgrades=1, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-05-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-05-test.xml
new file mode 100644 (file)
index 0000000..f820f9f
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-02conflict-system.xml"/>
+  <channel name="test" file="exercise-02conflict-packages.xml"/>
+</setup>
+
+
+<!-- conflict by upgrade (2): installed smail depends on an older version of libc6 -->
+<trial>
+  <install channel="test" package="libc6"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-06-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-06-test.diff
new file mode 100644 (file)
index 0000000..f62e138
--- /dev/null
@@ -0,0 +1,13 @@
+--- exercise-02conflict-06-test.solution       2005-11-05 17:03:31.000000000 +0100
++++ exercise-02conflict-06-test.mistake        2005-11-30 10:37:37.000000000 +0100
+@@ -1,10 +0,0 @@
+->!> Installing test3 from channel test
+->!> Solution #1:
+->!> install test3-1.0-1[test]
+->!> remove  test1-1.0-1
+->!> remove  test2-1.0-1
+->!> |unflag test4-1.0-1[test]
+->!> installs=1, upgrades=0, uninstalls=2
+->!> Solution #2:
+->!> This solution is a duplicate.
+->!> installs=1, upgrades=0, uninstalls=2
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-06-test.err b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-06-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-06-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-06-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-06-test.out b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-06-test.out
new file mode 100644 (file)
index 0000000..7e02a8b
--- /dev/null
@@ -0,0 +1,35 @@
+Loaded 20 packages from deptestomatic/exercise-02conflict-system.xml
+Loaded 25 packages from deptestomatic/exercise-02conflict-packages.xml
+
+------------------------------------------------
+
+>!> Installing test3 from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = d9e3bdee
+>!> install test3-1.0-1[test]
+>!> remove  test1-1.0-1
+>!> remove  test2-1.0-1
+>!> |unflag test4-1.0-1[test]
+>!> installs=1, upgrades=0, uninstalls=2
+download size=0.1k, install size=0.4k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing test3-1.0-1[test]
+Marking test4-1.0-1[test] as uninstallable due to conflicts over  test2 (test2) from test3-1.0-1[test] [test3-1.0-1, test4-1.0-1]
+test2-1.0-1: conflicts with  [test3-1.0-1]
+There are no installable providers of test2 for test1-1.0-1
+test2 provides test2-1.0-1, but is scheduled to be uninstalled.
+test4 provides test2, but is scheduled to be uninstalled.
+test1-1.0-1: depended on  [test2-1.0-1]
+test1-1.0-1: missing requirement test2
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-06-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-06-test.solution
new file mode 100644 (file)
index 0000000..5e5331a
--- /dev/null
@@ -0,0 +1,10 @@
+>!> Installing test3 from channel test
+>!> Solution #1:
+>!> install test3-1.0-1[test]
+>!> remove  test1-1.0-1
+>!> remove  test2-1.0-1
+>!> |unflag test4-1.0-1[test]
+>!> installs=1, upgrades=0, uninstalls=2
+>!> Solution #2:
+>!> This solution is a duplicate.
+>!> installs=1, upgrades=0, uninstalls=2
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-06-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-06-test.xml
new file mode 100644 (file)
index 0000000..1a76e46
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-02conflict-system.xml"/>
+  <channel name="test" file="exercise-02conflict-packages.xml"/>
+</setup>
+
+
+<!-- test3 conflicts with test2, on which test1 depends; so remove-to-solve-
+     conflict must contain test1 and test2 -->
+<trial>
+  <install channel="test" package="test3"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-07-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-07-test.diff
new file mode 100644 (file)
index 0000000..8e48a4e
--- /dev/null
@@ -0,0 +1,9 @@
+--- exercise-02conflict-07-test.solution       2005-11-04 23:03:49.000000000 +0100
++++ exercise-02conflict-07-test.mistake        2005-11-30 10:37:37.000000000 +0100
+@@ -1,6 +0,0 @@
+->!> Installing test4 from channel test
+->!> Solution #1:
+->!> install test4-1.0-1[test]
+->!> remove  test2-1.0-1
+->!> |unflag test3-1.0-1[test]
+->!> installs=1, upgrades=0, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-07-test.err b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-07-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-07-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-07-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-07-test.out b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-07-test.out
new file mode 100644 (file)
index 0000000..061a784
--- /dev/null
@@ -0,0 +1,29 @@
+Loaded 20 packages from deptestomatic/exercise-02conflict-system.xml
+Loaded 25 packages from deptestomatic/exercise-02conflict-packages.xml
+
+------------------------------------------------
+
+>!> Installing test4 from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = e116dc35
+>!> install test4-1.0-1[test]
+>!> remove  test2-1.0-1
+>!> |unflag test3-1.0-1[test]
+>!> installs=1, upgrades=0, uninstalls=1
+download size=0.1k, install size=0.4k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing test4-1.0-1[test]
+Marking resolvable test3-1.0-1 as uninstallable
+test2-1.0-1: conflicts with  [test4-1.0-1]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-07-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-07-test.solution
new file mode 100644 (file)
index 0000000..3f8724d
--- /dev/null
@@ -0,0 +1,6 @@
+>!> Installing test4 from channel test
+>!> Solution #1:
+>!> install test4-1.0-1[test]
+>!> remove  test2-1.0-1
+>!> |unflag test3-1.0-1[test]
+>!> installs=1, upgrades=0, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-07-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-07-test.xml
new file mode 100644 (file)
index 0000000..e3ac661
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-02conflict-system.xml"/>
+  <channel name="test" file="exercise-02conflict-packages.xml"/>
+</setup>
+
+
+<!-- test4 also conflicts with test2, but itself provides test2 so that the
+     requirement of test1 is still satisfied; remove-to-solve-conflict should be
+     only test2 -->
+<trial>
+  <install channel="test" package="test4"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-08-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-08-test.diff
new file mode 100644 (file)
index 0000000..e13685b
--- /dev/null
@@ -0,0 +1,13 @@
+--- exercise-02conflict-08-test.solution       2005-11-05 17:15:57.000000000 +0100
++++ exercise-02conflict-08-test.mistake        2005-11-30 10:37:37.000000000 +0100
+@@ -1,10 +0,0 @@
+->!> Installing baz from channel test
+->!> Solution #1:
+->!> install baz-1.0-1[test]
+->!> upgrade foo-1.0-1 => foo-2.0-1[test]
+->!> |unflag bar-2.0-1[test]
+->!> installs=1, upgrades=1, uninstalls=0
+->!> Solution #2:
+->!> install baz-1.0-1[test]
+->!> remove  foo-1.0-1
+->!> installs=1, upgrades=0, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-08-test.err b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-08-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-08-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-08-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-08-test.out b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-08-test.out
new file mode 100644 (file)
index 0000000..05aea48
--- /dev/null
@@ -0,0 +1,27 @@
+Loaded 20 packages from deptestomatic/exercise-02conflict-system.xml
+Loaded 25 packages from deptestomatic/exercise-02conflict-packages.xml
+
+------------------------------------------------
+
+>!> Installing baz from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = c403dc42
+>!> install baz-1.0-1[test]
+>!> remove  foo-1.0-1
+>!> installs=1, upgrades=0, uninstalls=1
+download size=0.1k, install size=0.4k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing baz-1.0-1[test]
+foo-1.0-1: conflicts with  [baz-1.0-1]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-08-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-08-test.solution
new file mode 100644 (file)
index 0000000..e137c17
--- /dev/null
@@ -0,0 +1,10 @@
+>!> Installing baz from channel test
+>!> Solution #1:
+>!> install baz-1.0-1[test]
+>!> upgrade foo-1.0-1 => foo-2.0-1[test]
+>!> |unflag bar-2.0-1[test]
+>!> installs=1, upgrades=1, uninstalls=0
+>!> Solution #2:
+>!> install baz-1.0-1[test]
+>!> remove  foo-1.0-1
+>!> installs=1, upgrades=0, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-08-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-08-test.xml
new file mode 100644 (file)
index 0000000..609589e
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-02conflict-system.xml"/>
+  <channel name="test" file="exercise-02conflict-packages.xml"/>
+</setup>
+
+
+<!-- solve conflict by upgrade (1): candidate baz conflicts with installed
+     version of foo, but an upgrade of foo is available -->
+<trial>
+  <install channel="test" package="baz"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-09-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-09-test.diff
new file mode 100644 (file)
index 0000000..16768a4
--- /dev/null
@@ -0,0 +1,13 @@
+--- exercise-02conflict-09-test.solution       2005-11-04 23:15:23.000000000 +0100
++++ exercise-02conflict-09-test.mistake        2005-11-30 10:37:37.000000000 +0100
+@@ -1,10 +0,0 @@
+->!> Installing baz2 from channel test
+->!> Solution #1:
+->!> install baz2-1.0-1[test]
+->!> remove  foo2-1.0-1
+->!> installs=1, upgrades=0, uninstalls=1
+->!> Solution #2:
+->!> install baz2-1.0-1[test]
+->!> upgrade foo2-1.0-1 => foo2-2.0-1[test]
+->!> installs=1, upgrades=1, uninstalls=0
+-
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-09-test.err b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-09-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-09-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-09-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-09-test.out b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-09-test.out
new file mode 100644 (file)
index 0000000..d2bcb2e
--- /dev/null
@@ -0,0 +1,27 @@
+Loaded 20 packages from deptestomatic/exercise-02conflict-system.xml
+Loaded 25 packages from deptestomatic/exercise-02conflict-packages.xml
+
+------------------------------------------------
+
+>!> Installing baz2 from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = fa0f37e6
+>!> install baz2-1.0-1[test]
+>!> remove  foo2-1.0-1
+>!> installs=1, upgrades=0, uninstalls=1
+download size=0.1k, install size=0.4k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing baz2-1.0-1[test]
+foo2-1.0-1: conflicts with  [baz2-1.0-1]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-09-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-09-test.solution
new file mode 100644 (file)
index 0000000..258df0c
--- /dev/null
@@ -0,0 +1,10 @@
+>!> Installing baz2 from channel test
+>!> Solution #1:
+>!> install baz2-1.0-1[test]
+>!> remove  foo2-1.0-1
+>!> installs=1, upgrades=0, uninstalls=1
+>!> Solution #2:
+>!> install baz2-1.0-1[test]
+>!> upgrade foo2-1.0-1 => foo2-2.0-1[test]
+>!> installs=1, upgrades=1, uninstalls=0
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-09-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-09-test.xml
new file mode 100644 (file)
index 0000000..5949c11
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-02conflict-system.xml"/>
+  <channel name="test" file="exercise-02conflict-packages.xml"/>
+</setup>
+
+
+<!-- solve conflict by upgrade (2): installed foo2 conflicts with baz21 provided
+     by candidate baz2; there's an upgrade for foo2 that doesn't conflict with
+     baz21 anymore (only with baz22 still) -->
+<trial>
+  <install channel="test" package="baz2"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-10-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-10-test.diff
new file mode 100644 (file)
index 0000000..f0b3a60
--- /dev/null
@@ -0,0 +1,9 @@
+--- exercise-02conflict-10-test.solution       2005-11-04 23:17:08.000000000 +0100
++++ exercise-02conflict-10-test.mistake        2005-11-30 10:37:37.000000000 +0100
+@@ -1,6 +0,0 @@
+->!> Installing baz3 from channel test
+->!> Solution #1:
+->!> install baz3-1.0-1[test]
+->!> remove  foo3-1.0-1
+->!> |unflag foo3-2.0-1[test]
+->!> installs=1, upgrades=0, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-10-test.err b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-10-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-10-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-10-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-10-test.out b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-10-test.out
new file mode 100644 (file)
index 0000000..3f6140c
--- /dev/null
@@ -0,0 +1,29 @@
+Loaded 20 packages from deptestomatic/exercise-02conflict-system.xml
+Loaded 25 packages from deptestomatic/exercise-02conflict-packages.xml
+
+------------------------------------------------
+
+>!> Installing baz3 from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = e8fdf36b
+>!> install baz3-1.0-1[test]
+>!> remove  foo3-1.0-1
+>!> |unflag foo3-2.0-1[test]
+>!> installs=1, upgrades=0, uninstalls=1
+download size=0.1k, install size=0.4k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing baz3-1.0-1[test]
+foo3-1.0-1: conflicts with  [baz3-1.0-1]
+Marking resolvable foo3-2.0-1 as uninstallable
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-10-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-10-test.solution
new file mode 100644 (file)
index 0000000..b354fe1
--- /dev/null
@@ -0,0 +1,6 @@
+>!> Installing baz3 from channel test
+>!> Solution #1:
+>!> install baz3-1.0-1[test]
+>!> remove  foo3-1.0-1
+>!> |unflag foo3-2.0-1[test]
+>!> installs=1, upgrades=0, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-10-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-10-test.xml
new file mode 100644 (file)
index 0000000..6408b41
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-02conflict-system.xml"/>
+  <channel name="test" file="exercise-02conflict-packages.xml"/>
+</setup>
+
+
+<!-- solve conflict by upgrade (3): same as above, but upgrade of foo3 still
+     conflicts, so this should fail -->
+<trial>
+  <install channel="test" package="baz3"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-11-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-11-test.diff
new file mode 100644 (file)
index 0000000..f3cfa55
--- /dev/null
@@ -0,0 +1,8 @@
+--- exercise-02conflict-11-test.solution       2005-11-04 23:17:40.000000000 +0100
++++ exercise-02conflict-11-test.mistake        2005-11-30 10:37:37.000000000 +0100
+@@ -1,5 +0,0 @@
+->!> Installing required from channel test
+->!> Solution #1:
+->!> upgrade required-1.0-1 => required-2.0-1[test]
+->!> upgrade requirerer-1.0-1 => requirerer-2.0-1[test]
+->!> installs=0, upgrades=2, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-11-test.err b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-11-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-11-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-11-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-11-test.out b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-11-test.out
new file mode 100644 (file)
index 0000000..dcbec33
--- /dev/null
@@ -0,0 +1,28 @@
+Loaded 20 packages from deptestomatic/exercise-02conflict-system.xml
+Loaded 25 packages from deptestomatic/exercise-02conflict-packages.xml
+
+------------------------------------------------
+
+>!> Installing required from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = be4a96ce
+>!> upgrade required-1.0-1 => required-2.0-1[test]
+>!> upgrade requirerer-1.0-1 => requirerer-2.0-1[test]
+>!> installs=0, upgrades=2, uninstalls=0
+download size=0.2k, install size=0.0k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Upgrading required-1.0-1 => required-2.0-1[test]
+Upgrading requirerer-1.0-1 => requirerer-2.0-1[test]
+requirerer-2.0-1[test]:  needed by  [required-2.0-1]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-11-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-11-test.solution
new file mode 100644 (file)
index 0000000..65a6bf9
--- /dev/null
@@ -0,0 +1,5 @@
+>!> Installing required from channel test
+>!> Solution #1:
+>!> upgrade required-1.0-1 => required-2.0-1[test]
+>!> upgrade requirerer-1.0-1 => requirerer-2.0-1[test]
+>!> installs=0, upgrades=2, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-11-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-11-test.xml
new file mode 100644 (file)
index 0000000..60a6769
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-02conflict-system.xml"/>
+  <channel name="test" file="exercise-02conflict-packages.xml"/>
+</setup>
+
+
+<!-- solve conflict by upgrade (4): now an conflict-by-upgrade must be solved:
+     installed requirerer depends on required < 2.0 and this should be updated
+     to 2.0-1. But if also upgrading requirerer, the conflict vanishes. -->
+<trial>
+  <install channel="test" package="required"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-12-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-12-test.diff
new file mode 100644 (file)
index 0000000..596114a
--- /dev/null
@@ -0,0 +1,7 @@
+--- exercise-02conflict-12-test.solution       2005-11-04 23:21:05.000000000 +0100
++++ exercise-02conflict-12-test.mistake        2005-11-30 10:37:37.000000000 +0100
+@@ -1,4 +0,0 @@
+->!> Installing required2 from channel test
+->!> Solution #1:
+->!> upgrade required2-1.0-1 => required2-2.0-1[test]
+->!> installs=0, upgrades=1, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-12-test.err b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-12-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-12-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-12-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-12-test.out b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-12-test.out
new file mode 100644 (file)
index 0000000..afb70e9
--- /dev/null
@@ -0,0 +1,25 @@
+Loaded 20 packages from deptestomatic/exercise-02conflict-system.xml
+Loaded 25 packages from deptestomatic/exercise-02conflict-packages.xml
+
+------------------------------------------------
+
+>!> Installing required2 from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = a7f45336
+>!> upgrade required2-1.0-1 => required2-2.0-1[test]
+>!> installs=0, upgrades=1, uninstalls=0
+download size=0.1k, install size=0.0k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Upgrading required2-1.0-1 => required2-2.0-1[test]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-12-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-12-test.solution
new file mode 100644 (file)
index 0000000..e1bc07d
--- /dev/null
@@ -0,0 +1,4 @@
+>!> Installing required2 from channel test
+>!> Solution #1:
+>!> upgrade required2-1.0-1 => required2-2.0-1[test]
+>!> installs=0, upgrades=1, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-12-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-12-test.xml
new file mode 100644 (file)
index 0000000..ec2da28
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-02conflict-system.xml"/>
+  <channel name="test" file="exercise-02conflict-packages.xml"/>
+</setup>
+
+
+<!-- try the above harder: this time, the new requirerer cannot be installed
+     because it dependency required2a is unresolvable -->
+<trial>
+  <install channel="test" package="required2"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-13-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-13-test.diff
new file mode 100644 (file)
index 0000000..7cb1cf4
--- /dev/null
@@ -0,0 +1,8 @@
+--- exercise-02conflict-13-test.solution       2005-11-04 23:22:15.000000000 +0100
++++ exercise-02conflict-13-test.mistake        2005-11-30 10:37:37.000000000 +0100
+@@ -1,5 +0,0 @@
+->!> Installing required3 from channel test
+->!> Solution #1:
+->!> remove  requirerer3-2.0-1
+->!> upgrade required3-1.0-1 => required3-2.0-1[test]
+->!> installs=0, upgrades=1, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-13-test.err b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-13-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-13-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-13-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-13-test.out b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-13-test.out
new file mode 100644 (file)
index 0000000..1b3a805
--- /dev/null
@@ -0,0 +1,28 @@
+Loaded 20 packages from deptestomatic/exercise-02conflict-system.xml
+Loaded 25 packages from deptestomatic/exercise-02conflict-packages.xml
+
+------------------------------------------------
+
+>!> Installing required3 from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 586abdfa
+>!> remove  requirerer3-2.0-1
+>!> upgrade required3-1.0-1 => required3-2.0-1[test]
+>!> installs=0, upgrades=1, uninstalls=1
+download size=0.1k, install size=0.0k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Upgrading required3-1.0-1 => required3-2.0-1[test]
+requirerer3-2.0-1: depended on  [required3-1.0-1]
+requirerer3-2.0-1: missing requirement required3 < 2.0
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-13-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-13-test.solution
new file mode 100644 (file)
index 0000000..c05e1c4
--- /dev/null
@@ -0,0 +1,5 @@
+>!> Installing required3 from channel test
+>!> Solution #1:
+>!> remove  requirerer3-2.0-1
+>!> upgrade required3-1.0-1 => required3-2.0-1[test]
+>!> installs=0, upgrades=1, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-13-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-13-test.xml
new file mode 100644 (file)
index 0000000..2f948be
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-02conflict-system.xml"/>
+  <channel name="test" file="exercise-02conflict-packages.xml"/>
+</setup>
+
+<!-- eek... this time a downgrade is available :-) -->
+<trial>
+  <install channel="test" package="required3"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-14-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-14-test.diff
new file mode 100644 (file)
index 0000000..cef7a1f
--- /dev/null
@@ -0,0 +1,13 @@
+--- exercise-02conflict-14-test.solution       2005-11-04 23:24:16.000000000 +0100
++++ exercise-02conflict-14-test.mistake        2005-11-30 10:37:37.000000000 +0100
+@@ -1,10 +0,0 @@
+->!> Installing foouser from channel test
+->!> Installing libfoo from channel test
+->!> Installing libfoo-dev from channel test
+->!> Installing libfoog from channel test
+->!> Solution #1:
+->!> install libfoog-1.1-1[test]
+->!> upgrade foouser-1.0-1 => foouser-1.0-2[test]
+->!> upgrade libfoo-1.0-1 => libfoo-1.1-1[test]
+->!> upgrade libfoo-dev-1.0-1 => libfoo-dev-1.1-1[test]
+->!> installs=1, upgrades=3, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-14-test.err b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-14-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-14-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-14-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-14-test.out b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-14-test.out
new file mode 100644 (file)
index 0000000..f550510
--- /dev/null
@@ -0,0 +1,34 @@
+Loaded 20 packages from deptestomatic/exercise-02conflict-system.xml
+Loaded 25 packages from deptestomatic/exercise-02conflict-packages.xml
+
+------------------------------------------------
+
+>!> Installing foouser from channel test
+>!> Installing libfoo from channel test
+>!> Installing libfoo-dev from channel test
+>!> Installing libfoog from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 2eebdb86
+>!> install libfoog-1.1-1[test]
+>!> upgrade foouser-1.0-1 => foouser-1.0-2[test]
+>!> upgrade libfoo-1.0-1 => libfoo-1.1-1[test]
+>!> upgrade libfoo-dev-1.0-1 => libfoo-dev-1.1-1[test]
+>!> installs=1, upgrades=3, uninstalls=0
+download size=0.5k, install size=0.4k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Upgrading foouser-1.0-1 => foouser-1.0-2[test]
+Upgrading libfoo-1.0-1 => libfoo-1.1-1[test]
+Upgrading libfoo-dev-1.0-1 => libfoo-dev-1.1-1[test]
+Installing libfoog-1.1-1[test]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-14-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-14-test.solution
new file mode 100644 (file)
index 0000000..c2ae156
--- /dev/null
@@ -0,0 +1,10 @@
+>!> Installing foouser from channel test
+>!> Installing libfoo from channel test
+>!> Installing libfoo-dev from channel test
+>!> Installing libfoog from channel test
+>!> Solution #1:
+>!> install libfoog-1.1-1[test]
+>!> upgrade foouser-1.0-1 => foouser-1.0-2[test]
+>!> upgrade libfoo-1.0-1 => libfoo-1.1-1[test]
+>!> upgrade libfoo-dev-1.0-1 => libfoo-dev-1.1-1[test]
+>!> installs=1, upgrades=3, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-14-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-14-test.xml
new file mode 100644 (file)
index 0000000..aa533fc
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-02conflict-system.xml"/>
+  <channel name="test" file="exercise-02conflict-packages.xml"/>
+</setup>
+
+<!-- typical Debian libc5->libc6 scenario: new libfoog conflicts with
+     older versions of libfoo, but can coexist with newer ones. The -dev
+     package needs the libc6 ('g') lib, the -dev pkg for the libc5 lib
+     has been renamed to -altdev. The whole upgrade is triggered by an
+     update of foouser, which has changed its requirement from libfoo to libfoog. -->
+<trial>
+  <install channel="test" package="foouser"/>
+  <install channel="test" package="libfoo"/>
+  <install channel="test" package="libfoo-dev"/>
+  <install channel="test" package="libfoog"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-packages.err b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-packages.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-packages.out b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-packages.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-packages.xml b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-packages.xml
new file mode 100644 (file)
index 0000000..dec4c0d
--- /dev/null
@@ -0,0 +1,487 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>p2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>p2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>sendmail</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>sendmail.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='MTA'/>
+      </provides>
+      <conflicts>
+        <dep name='MTA'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>bar</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>bar.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <conflicts>
+        <dep name='foo'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>libident-dev</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>libident-dev.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='libident' op='=' version='2.0' release='1'/>
+      </requires>
+    </package>
+    <package>
+      <name>libident</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>libident.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>libc6</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.1.0</version>
+          <release>1</release>
+          <filename>libc6.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>baz</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>baz.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <conflicts>
+        <dep name='foo' op='&lt;=' version='1.2'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>foo</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>foo.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>baz2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>baz2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='baz21'/>
+      </provides>
+    </package>
+    <package>
+      <name>foo2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>foo2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <conflicts>
+        <dep name='baz22'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>baz3</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>baz3.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='baz31'/>
+      </provides>
+    </package>
+    <package>
+      <name>foo3</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>foo3.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <conflicts>
+        <dep name='baz31'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>test3</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>test3.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <conflicts>
+        <dep name='test2'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>test4</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>test4.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='test2'/>
+      </provides>
+      <conflicts>
+        <dep name='test2'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>requirerer</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>requirerer.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='required' op='&lt;' version='3.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>required</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>required.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>requirerer2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>requirerer2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='required2' op='&lt;' version='3.0'/>
+        <dep name='required2a'/>
+      </requires>
+    </package>
+    <package>
+      <name>required2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>required2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>requirerer3</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>requirerer3.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='required3'/>
+      </requires>
+    </package>
+    <package>
+      <name>required3</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>required3.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>libfoo</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1</version>
+          <release>1</release>
+          <filename>libfoo.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>libfoog</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1</version>
+          <release>1</release>
+          <filename>libfoog.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <conflicts>
+        <dep name='libfoo' op='&lt;' version='1.1'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>libfoo-dev</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1</version>
+          <release>1</release>
+          <filename>libfoo-dev.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='libfoog' op='=' version='1.1' release='1'/>
+      </requires>
+    </package>
+    <package>
+      <name>libfoo-altdev</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1</version>
+          <release>1</release>
+          <filename>libfoo-altdev.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='libfoo' op='=' version='1.1' release='1'/>
+      </requires>
+    </package>
+    <package>
+      <name>foouser</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>2</release>
+          <filename>foouser.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='libfoog'/>
+      </requires>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-system.err b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-system.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-system.out b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-system.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-02conflict-system.xml b/zypp/solver/testsuite/deptestomatic/exercise-02conflict-system.xml
new file mode 100644 (file)
index 0000000..da5bc0b
--- /dev/null
@@ -0,0 +1,386 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>p1</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>p1.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <conflicts>
+        <dep name='p2'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>smail</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>smail.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='MTA'/>
+      </provides>
+      <requires>
+        <dep name='libc6' op='&lt;' version='2.1'/>
+      </requires>
+      <conflicts>
+        <dep name='MTA'/>
+        <dep name='libident' op='&gt;=' version='2.0'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>foo</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>foo.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>libident</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.9</version>
+          <release>1</release>
+          <filename>libident.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>libc6</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.7</version>
+          <release>2</release>
+          <filename>libc6.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>test1</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>test1.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='test2'/>
+      </requires>
+    </package>
+    <package>
+      <name>test2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>test2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>foo2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>foo2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <conflicts>
+        <dep name='baz21'/>
+        <dep name='baz22'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>foo3</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>foo3.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <conflicts>
+        <dep name='baz31'/>
+        <dep name='baz32'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>requirerer</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>requirerer.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='required' op='&lt;' version='2.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>required</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>required.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>requirerer2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>requirerer2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='required2' op='&lt;' version='2.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>required2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>required2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>requirerer2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>requirerer2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='required2' op='&lt;' version='2.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>required2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>required2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>requirerer3</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>requirerer3.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='required3' op='&lt;' version='2.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>required3</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>required3.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>libfoo</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>libfoo.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>libfoo-dev</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>libfoo-dev.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='libfoo' op='=' version='1.0' release='1'/>
+      </requires>
+    </package>
+    <package>
+      <name>foouser</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>foouser.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='libfoo'/>
+      </requires>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-03alternatives-packages.err b/zypp/solver/testsuite/deptestomatic/exercise-03alternatives-packages.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-03alternatives-packages.out b/zypp/solver/testsuite/deptestomatic/exercise-03alternatives-packages.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-03alternatives-packages.xml b/zypp/solver/testsuite/deptestomatic/exercise-03alternatives-packages.xml
new file mode 100644 (file)
index 0000000..ad2a72e
--- /dev/null
@@ -0,0 +1,404 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>sendmail</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>sendmail.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='mta'/>
+      </provides>
+      <conflicts>
+        <dep name='mta'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>smail</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>smail.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='mta'/>
+      </provides>
+      <requires>
+        <dep name='libstringlist'/>
+      </requires>
+      <conflicts>
+        <dep name='mta'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>exim</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>exim.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='mta'/>
+      </provides>
+      <conflicts>
+        <dep name='mta'/>
+        <dep name='foo'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>mutt</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>mutt.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='mta'/>
+      </requires>
+    </package>
+    <package>
+      <name>libstringlist</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>libstringlist.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>foo</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>foo.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>devutils</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>devutils.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='c-compiler'/>
+      </requires>
+    </package>
+    <package>
+      <name>gcc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.8.1</version>
+          <release>1</release>
+          <filename>gcc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='c-compiler'/>
+      </provides>
+    </package>
+    <package>
+      <name>egcc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.91.18</version>
+          <release>1</release>
+          <filename>egcc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='c-compiler'/>
+      </provides>
+    </package>
+    <package>
+      <name>inews</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>inews.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='nntp'/>
+      </requires>
+    </package>
+    <package>
+      <name>nntp</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>nntp.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <conflicts>
+        <dep name='foo'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>inn-nntp</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>inn-nntp.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='nntp'/>
+      </provides>
+    </package>
+    <package>
+      <name>barref</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>barref.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='bar'/>
+      </requires>
+    </package>
+    <package>
+      <name>bar1</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>bar1.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>bar10</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>bar10.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='bar'/>
+      </provides>
+    </package>
+    <package>
+      <name>bar11</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>bar11.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='bar'/>
+      </provides>
+      <conflicts>
+        <dep name='foo'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>cnews</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>cnews.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='news-transport'/>
+      </provides>
+      <conflicts>
+        <dep name='news-transport'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>inn</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>inn.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='news-transport'/>
+      </provides>
+      <requires>
+        <dep name='bar1'/>
+      </requires>
+      <conflicts>
+        <dep name='news-transport'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>leafnode</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>leafnode.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='news-transport'/>
+      </provides>
+      <conflicts>
+        <dep name='news-transport'/>
+        <dep name='foo'/>
+      </conflicts>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-03alternatives-system.err b/zypp/solver/testsuite/deptestomatic/exercise-03alternatives-system.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-03alternatives-system.out b/zypp/solver/testsuite/deptestomatic/exercise-03alternatives-system.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-03alternatives-system.xml b/zypp/solver/testsuite/deptestomatic/exercise-03alternatives-system.xml
new file mode 100644 (file)
index 0000000..7d1e73a
--- /dev/null
@@ -0,0 +1,38 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>libc6</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.5</version>
+          <release>1</release>
+          <filename>libc6.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>foo</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>foo.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-01-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-01-test.diff
new file mode 100644 (file)
index 0000000..d754ac8
--- /dev/null
@@ -0,0 +1,10 @@
+--- exercise-04obsoletes-01-test.solution      2005-11-05 07:36:41.000000000 +0100
++++ exercise-04obsoletes-01-test.mistake       2005-11-30 10:37:37.000000000 +0100
+@@ -1,7 +0,0 @@
+->!> Installing foonew from channel test
+->!> Installing fooc from channel test
+->!> Solution #1:
+->!> install fooc-1.0-1[test]
+->!> install foonew-2.0-1[test]
+->!> remove  foo-1.0-1
+->!> installs=2, upgrades=0, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-01-test.err b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-01-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-01-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-01-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-01-test.out b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-01-test.out
new file mode 100644 (file)
index 0000000..ebbedce
--- /dev/null
@@ -0,0 +1,30 @@
+Loaded 13 packages from deptestomatic/exercise-04obsoletes-system.xml
+Loaded 16 packages from deptestomatic/exercise-04obsoletes-packages.xml
+
+------------------------------------------------
+
+>!> Installing foonew from channel test
+>!> Installing fooc from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 20c824
+>!> install fooc-1.0-1[test]
+>!> install foonew-2.0-1[test]
+>!> remove  foo-1.0-1
+>!> installs=2, upgrades=0, uninstalls=1
+download size=0.2k, install size=0.9k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing foonew-2.0-1[test]
+Installing fooc-1.0-1[test]
+foo-1.0-1: conflicts with  [fooc-1.0-1]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-01-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-01-test.solution
new file mode 100644 (file)
index 0000000..d517b87
--- /dev/null
@@ -0,0 +1,7 @@
+>!> Installing foonew from channel test
+>!> Installing fooc from channel test
+>!> Solution #1:
+>!> install fooc-1.0-1[test]
+>!> install foonew-2.0-1[test]
+>!> remove  foo-1.0-1
+>!> installs=2, upgrades=0, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-01-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-01-test.xml
new file mode 100644 (file)
index 0000000..eaf516c
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-04obsoletes-system.xml"/>
+  <channel name="test" file="exercise-04obsoletes-packages.xml"/>
+</setup>
+
+<!-- foo is installed, but obsoleted by candidate foonew; so fooc finds no target
+     for its conflict -->
+<trial>
+  <install channel="test" package="foonew"/>
+  <install channel="test" package="fooc"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-02-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-02-test.diff
new file mode 100644 (file)
index 0000000..cddbee1
--- /dev/null
@@ -0,0 +1,5 @@
+--- exercise-04obsoletes-02-test.solution      2005-11-05 07:38:13.000000000 +0100
++++ exercise-04obsoletes-02-test.mistake       2005-11-30 10:37:37.000000000 +0100
+@@ -1,2 +0,0 @@
+->!> Installing barnew from channel test
+->!> Installing barc from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-02-test.err b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-02-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-02-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-02-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-02-test.out b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-02-test.out
new file mode 100644 (file)
index 0000000..b13f2d2
--- /dev/null
@@ -0,0 +1,19 @@
+Loaded 13 packages from deptestomatic/exercise-04obsoletes-system.xml
+Loaded 16 packages from deptestomatic/exercise-04obsoletes-packages.xml
+
+------------------------------------------------
+
+>!> Installing barnew from channel test
+>!> Installing barc from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Pruned solutions: 0
+Deferred solutions: 0
+
+Failed Solution: 
+Download Size: 246, Install Size: 912, Total Priority: 0, Min Priority: 800, Max Priority: 800, Other Penalties: 0, Invalid
+- - - - - - - - - -
+Installing barnew-2.0-1[test]
+Installing barc-1.0-1[test]
+[ERROR] A conflict over  bar (bar) requires the removal of the to-be-installed resolvable barnew-2.0-1[test] [barc-1.0-1]
+[ERROR] Marking this resolution attempt as invalid.
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-02-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-02-test.solution
new file mode 100644 (file)
index 0000000..a6a61a7
--- /dev/null
@@ -0,0 +1,2 @@
+>!> Installing barnew from channel test
+>!> Installing barc from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-02-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-02-test.xml
new file mode 100644 (file)
index 0000000..e318ffe
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-04obsoletes-system.xml"/>
+  <channel name="test" file="exercise-04obsoletes-packages.xml"/>
+</setup>
+
+<!--
+# same with bar* packages: now barnew provides bar (in version MAX_VERS), so
+# now the conflict target is provided
+ -->
+<trial>
+  <install channel="test" package="barnew"/>
+  <install channel="test" package="barc"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-03-test.err b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-03-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-03-test.out b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-03-test.out
new file mode 100644 (file)
index 0000000..9e420d4
--- /dev/null
@@ -0,0 +1,19 @@
+Loaded 13 packages from deptestomatic/exercise-04obsoletes-system.xml
+Loaded 16 packages from deptestomatic/exercise-04obsoletes-packages.xml
+
+------------------------------------------------
+
+>!> Installing baznew from channel test
+>!> Installing bazc from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Pruned solutions: 0
+Deferred solutions: 0
+
+Failed Solution: 
+Download Size: 246, Install Size: 912, Total Priority: 0, Min Priority: 800, Max Priority: 800, Other Penalties: 0, Invalid
+- - - - - - - - - -
+Installing baznew-2.0-1[test]
+Installing bazc-1.0-1[test]
+[ERROR] A conflict over <= baz-1.2 (baz) requires the removal of the to-be-installed resolvable baznew-2.0-1[test] [bazc-1.0-1]
+[ERROR] Marking this resolution attempt as invalid.
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-03-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-03-test.xml
new file mode 100644 (file)
index 0000000..fed6492
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-04obsoletes-system.xml"/>
+  <channel name="test" file="exercise-04obsoletes-packages.xml"/>
+</setup>
+
+<!-- 
+# same with baz* packages, but now the conflict is only on older versions of
+# baz, so no conflict takes place
+baznew bazc
+ -->
+<trial>
+  <install channel="test" package="baznew"/>
+  <install channel="test" package="bazc"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-04-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-04-test.diff
new file mode 100644 (file)
index 0000000..fffbe62
--- /dev/null
@@ -0,0 +1,9 @@
+--- exercise-04obsoletes-04-test.solution      2005-11-05 08:03:56.000000000 +0100
++++ exercise-04obsoletes-04-test.mistake       2005-11-30 10:37:37.000000000 +0100
+@@ -1,6 +0,0 @@
+->!> Installing libfoo2 from channel test
+->!> Solution #1:
+->!> install libfoo2-2.0-1[test]
+->!> remove  libfoo-1.2-1
+->!> remove  something-1.0-1
+->!> installs=1, upgrades=0, uninstalls=2
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-04-test.err b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-04-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-04-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-04-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-04-test.out b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-04-test.out
new file mode 100644 (file)
index 0000000..5ca409d
--- /dev/null
@@ -0,0 +1,32 @@
+Loaded 13 packages from deptestomatic/exercise-04obsoletes-system.xml
+Loaded 16 packages from deptestomatic/exercise-04obsoletes-packages.xml
+
+------------------------------------------------
+
+>!> Installing libfoo2 from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = b4ab0762
+>!> install libfoo2-2.0-1[test]
+>!> remove  libfoo-1.2-1
+>!> remove  something-1.0-1
+>!> installs=1, upgrades=0, uninstalls=2
+download size=0.1k, install size=0.4k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing libfoo2-2.0-1[test]
+libfoo-1.2-1: replaced by  [libfoo2-2.0-1]
+There are no installable providers of libfoo for something-1.0-1
+libfoo provides libfoo-1.2-1, but is scheduled to be uninstalled.
+something-1.0-1: depended on  [libfoo-1.2-1]
+something-1.0-1: missing requirement libfoo
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-04-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-04-test.solution
new file mode 100644 (file)
index 0000000..77783c8
--- /dev/null
@@ -0,0 +1,6 @@
+>!> Installing libfoo2 from channel test
+>!> Solution #1:
+>!> install libfoo2-2.0-1[test]
+>!> remove  libfoo-1.2-1
+>!> remove  something-1.0-1
+>!> installs=1, upgrades=0, uninstalls=2
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-04-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-04-test.xml
new file mode 100644 (file)
index 0000000..10654e1
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-04obsoletes-system.xml"/>
+  <channel name="test" file="exercise-04obsoletes-packages.xml"/>
+</setup>
+
+<!-- 
+# libfoo2 obsoletes but not provides libfoo, so it break the dependency of
+# something
+libfoo2
+ -->
+<trial>
+  <install channel="test" package="libfoo2"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-05-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-05-test.diff
new file mode 100644 (file)
index 0000000..2966ec0
--- /dev/null
@@ -0,0 +1,8 @@
+--- exercise-04obsoletes-05-test.solution      2005-11-05 08:04:57.000000000 +0100
++++ exercise-04obsoletes-05-test.mistake       2005-11-30 10:37:37.000000000 +0100
+@@ -1,5 +0,0 @@
+->!> Installing libbar2 from channel test
+->!> Solution #1:
+->!> install libbar2-2.0-1[test]
+->!> remove  libbar-1.2-1
+->!> installs=1, upgrades=0, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-05-test.err b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-05-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-05-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-05-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-05-test.out b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-05-test.out
new file mode 100644 (file)
index 0000000..359b551
--- /dev/null
@@ -0,0 +1,27 @@
+Loaded 13 packages from deptestomatic/exercise-04obsoletes-system.xml
+Loaded 16 packages from deptestomatic/exercise-04obsoletes-packages.xml
+
+------------------------------------------------
+
+>!> Installing libbar2 from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 2005318e
+>!> install libbar2-2.0-1[test]
+>!> remove  libbar-1.2-1
+>!> installs=1, upgrades=0, uninstalls=1
+download size=0.1k, install size=0.4k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing libbar2-2.0-1[test]
+libbar-1.2-1: replaced by  [libbar2-2.0-1]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-05-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-05-test.solution
new file mode 100644 (file)
index 0000000..102784a
--- /dev/null
@@ -0,0 +1,5 @@
+>!> Installing libbar2 from channel test
+>!> Solution #1:
+>!> install libbar2-2.0-1[test]
+>!> remove  libbar-1.2-1
+>!> installs=1, upgrades=0, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-05-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-05-test.xml
new file mode 100644 (file)
index 0000000..12ae51b
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-04obsoletes-system.xml"/>
+  <channel name="test" file="exercise-04obsoletes-packages.xml"/>
+</setup>
+
+<!-- 
+# libbar2 obsoletes and provides libbar, so someother's dependency (though
+# versioned) is still ok
+libbar2
+ -->
+<trial>
+  <install channel="test" package="libbar2"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-06-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-06-test.diff
new file mode 100644 (file)
index 0000000..4acfe5d
--- /dev/null
@@ -0,0 +1,9 @@
+--- exercise-04obsoletes-06-test.solution      2005-11-05 16:55:10.000000000 +0100
++++ exercise-04obsoletes-06-test.mistake       2005-11-30 10:37:37.000000000 +0100
+@@ -1,6 +0,0 @@
+->!> Installing libbaz2 from channel test
+->!> Solution #1:
+->!> install libbaz2-2.0-1[test]
+->!> remove  libbaz-1.2-1
+->!> remove  somemore-1.0-1
+->!> installs=1, upgrades=0, uninstalls=2
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-06-test.err b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-06-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-06-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-06-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-06-test.out b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-06-test.out
new file mode 100644 (file)
index 0000000..5352620
--- /dev/null
@@ -0,0 +1,32 @@
+Loaded 13 packages from deptestomatic/exercise-04obsoletes-system.xml
+Loaded 16 packages from deptestomatic/exercise-04obsoletes-packages.xml
+
+------------------------------------------------
+
+>!> Installing libbaz2 from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 88487c4d
+>!> install libbaz2-2.0-1[test]
+>!> remove  libbaz-1.2-1
+>!> remove  somemore-1.0-1
+>!> installs=1, upgrades=0, uninstalls=2
+download size=0.1k, install size=0.4k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing libbaz2-2.0-1[test]
+libbaz-1.2-1: replaced by  [libbaz2-2.0-1]
+There are no installable providers of libbaz for somemore-1.0-1
+libbaz provides libbaz-1.2-1, but is scheduled to be uninstalled.
+somemore-1.0-1: depended on  [libbaz-1.2-1]
+somemore-1.0-1: missing requirement libbaz
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-06-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-06-test.solution
new file mode 100644 (file)
index 0000000..9646760
--- /dev/null
@@ -0,0 +1,6 @@
+>!> Installing libbaz2 from channel test
+>!> Solution #1:
+>!> install libbaz2-2.0-1[test]
+>!> remove  libbaz-1.2-1
+>!> remove  somemore-1.0-1
+>!> installs=1, upgrades=0, uninstalls=2
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-06-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-06-test.xml
new file mode 100644 (file)
index 0000000..7c2bb3f
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-04obsoletes-system.xml"/>
+  <channel name="test" file="exercise-04obsoletes-packages.xml"/>
+</setup>
+
+<!-- 
+# libbaz2 obsoletes and provides libbaz, so it breaks the dependency of
+# somemore.; however, somemore can be upgraded so that the conflict is solved
+libbaz2
+ -->
+<trial>
+  <install channel="test" package="libbaz2"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-07-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-07-test.diff
new file mode 100644 (file)
index 0000000..f0c935c
--- /dev/null
@@ -0,0 +1,5 @@
+--- exercise-04obsoletes-07-test.solution      2005-11-05 16:56:07.000000000 +0100
++++ exercise-04obsoletes-07-test.mistake       2005-11-30 10:37:37.000000000 +0100
+@@ -1,2 +0,0 @@
+->!> Installing A from channel test
+->!> Installing B from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-07-test.err b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-07-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-07-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-07-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-07-test.out b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-07-test.out
new file mode 100644 (file)
index 0000000..2d7db5e
--- /dev/null
@@ -0,0 +1,20 @@
+Loaded 13 packages from deptestomatic/exercise-04obsoletes-system.xml
+Loaded 16 packages from deptestomatic/exercise-04obsoletes-packages.xml
+
+------------------------------------------------
+
+>!> Installing A from channel test
+>!> Installing B from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Pruned solutions: 0
+Deferred solutions: 0
+
+Failed Solution: 
+Download Size: 246, Install Size: 912, Total Priority: 0, Min Priority: 800, Max Priority: 800, Other Penalties: 0, Invalid
+- - - - - - - - - -
+Installing A-1.0-1[test]
+Installing B-1.0-1[test]
+Marking C-1.0-1[test] as uninstallable due to conflicts over  C (C-1.0-1) from B-1.0-1[test] [B-1.0-1, C-1.0-1]
+[ERROR] A conflict over  A (A-1.0-1) requires the removal of the to-be-installed resolvable A-1.0-1[test] [B-1.0-1]
+[ERROR] Marking this resolution attempt as invalid.
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-07-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-07-test.solution
new file mode 100644 (file)
index 0000000..b49afd0
--- /dev/null
@@ -0,0 +1,2 @@
+>!> Installing A from channel test
+>!> Installing B from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-07-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-07-test.xml
new file mode 100644 (file)
index 0000000..cff1b5a
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-04obsoletes-system.xml"/>
+  <channel name="test" file="exercise-04obsoletes-packages.xml"/>
+</setup>
+
+<!--
+# Aiee... candidate B obsoletes candidate A;
+# PHI installsB and A shouldn't appear in the output list 
+# Zypp, being transaction based, installs neither (invalid solution)
+A B
+  -->
+<trial>
+  <install channel="test" package="A"/>
+  <install channel="test" package="B"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-08-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-08-test.diff
new file mode 100644 (file)
index 0000000..e9138d3
--- /dev/null
@@ -0,0 +1,5 @@
+--- exercise-04obsoletes-08-test.solution      2005-11-05 16:58:01.000000000 +0100
++++ exercise-04obsoletes-08-test.mistake       2005-11-30 10:37:37.000000000 +0100
+@@ -1,2 +0,0 @@
+->!> Installing B from channel test
+->!> Installing C from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-08-test.err b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-08-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-08-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-08-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-08-test.out b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-08-test.out
new file mode 100644 (file)
index 0000000..29ce8db
--- /dev/null
@@ -0,0 +1,19 @@
+Loaded 13 packages from deptestomatic/exercise-04obsoletes-system.xml
+Loaded 16 packages from deptestomatic/exercise-04obsoletes-packages.xml
+
+------------------------------------------------
+
+>!> Installing B from channel test
+>!> Installing C from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Pruned solutions: 0
+Deferred solutions: 0
+
+Failed Solution: 
+Download Size: 246, Install Size: 912, Total Priority: 0, Min Priority: 800, Max Priority: 800, Other Penalties: 0, Invalid
+- - - - - - - - - -
+Installing B-1.0-1[test]
+Installing C-1.0-1[test]
+[ERROR] A conflict over  C (C-1.0-1) requires the removal of the to-be-installed resolvable C-1.0-1[test] [B-1.0-1]
+[ERROR] Marking this resolution attempt as invalid.
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-08-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-08-test.solution
new file mode 100644 (file)
index 0000000..9af2ac0
--- /dev/null
@@ -0,0 +1,2 @@
+>!> Installing B from channel test
+>!> Installing C from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-08-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-08-test.xml
new file mode 100644 (file)
index 0000000..0a3b7f4
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-04obsoletes-system.xml"/>
+  <channel name="test" file="exercise-04obsoletes-packages.xml"/>
+</setup>
+
+<!-- 
+# should also work in different order
+# see exercise-04obsoletes-07-test.xml
+B C
+ -->
+<trial>
+  <install channel="test" package="B"/>
+  <install channel="test" package="C"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-09-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-09-test.diff
new file mode 100644 (file)
index 0000000..803235a
--- /dev/null
@@ -0,0 +1,8 @@
+--- exercise-04obsoletes-09-test.solution      2005-11-06 10:51:22.000000000 +0100
++++ exercise-04obsoletes-09-test.mistake       2005-11-30 10:37:37.000000000 +0100
+@@ -1,5 +0,0 @@
+->!> Installing G from channel test
+->!> Solution #1:
+->!> install G-1.0-1[test]
+->!> |unflag D-1.0-1[test]
+->!> installs=1, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-09-test.err b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-09-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-09-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-09-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-09-test.out b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-09-test.out
new file mode 100644 (file)
index 0000000..db954c9
--- /dev/null
@@ -0,0 +1,27 @@
+Loaded 13 packages from deptestomatic/exercise-04obsoletes-system.xml
+Loaded 16 packages from deptestomatic/exercise-04obsoletes-packages.xml
+
+------------------------------------------------
+
+>!> Installing G from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 77adee7f
+>!> install G-1.0-1[test]
+>!> |unflag D-1.0-1[test]
+>!> installs=1, upgrades=0, uninstalls=0
+download size=0.1k, install size=0.4k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing G-1.0-1[test]
+Marking D-1.0-1[test] as uninstallable due to conflicts over  D (D-1.0-1) from G-1.0-1[test] [G-1.0-1, D-1.0-1]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-09-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-09-test.solution
new file mode 100644 (file)
index 0000000..186939d
--- /dev/null
@@ -0,0 +1,5 @@
+>!> Installing G from channel test
+>!> Solution #1:
+>!> install G-1.0-1[test]
+>!> |unflag D-1.0-1[test]
+>!> installs=1, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-09-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-09-test.xml
new file mode 100644 (file)
index 0000000..46a65dc
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-04obsoletes-system.xml"/>
+  <channel name="test" file="exercise-04obsoletes-packages.xml"/>
+</setup>
+
+<!--
+# G obsoletes multiple provides of libD. Thats only one problem
+G
+  -->
+<trial>
+  <install channel="test" package="G"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-10-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-10-test.diff
new file mode 100644 (file)
index 0000000..d6ce550
--- /dev/null
@@ -0,0 +1,7 @@
+--- exercise-04obsoletes-10-test.solution      2005-11-06 10:51:47.000000000 +0100
++++ exercise-04obsoletes-10-test.mistake       2005-11-30 10:37:37.000000000 +0100
+@@ -1,4 +0,0 @@
+->!> Installing D from channel test
+->!> Solution #1:
+->!> install D-1.0-1[test]
+->!> installs=1, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-10-test.err b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-10-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-10-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-10-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-10-test.out b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-10-test.out
new file mode 100644 (file)
index 0000000..27947fa
--- /dev/null
@@ -0,0 +1,25 @@
+Loaded 13 packages from deptestomatic/exercise-04obsoletes-system.xml
+Loaded 16 packages from deptestomatic/exercise-04obsoletes-packages.xml
+
+------------------------------------------------
+
+>!> Installing D from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 9fb56dad
+>!> install D-1.0-1[test]
+>!> installs=1, upgrades=0, uninstalls=0
+download size=0.1k, install size=0.4k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing D-1.0-1[test]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-10-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-10-test.solution
new file mode 100644 (file)
index 0000000..ff56971
--- /dev/null
@@ -0,0 +1,4 @@
+>!> Installing D from channel test
+>!> Solution #1:
+>!> install D-1.0-1[test]
+>!> installs=1, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-10-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-10-test.xml
new file mode 100644 (file)
index 0000000..a034dbe
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-04obsoletes-system.xml"/>
+  <channel name="test" file="exercise-04obsoletes-packages.xml"/>
+</setup>
+
+<!-- 
+# libD provides D. now D is going to be installed so libD has to go with rpm4
+D
+ -->
+<trial>
+  <install channel="test" package="D"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-11-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-11-test.diff
new file mode 100644 (file)
index 0000000..0043736
--- /dev/null
@@ -0,0 +1,7 @@
+--- exercise-04obsoletes-11-test.solution      2005-11-06 10:51:59.000000000 +0100
++++ exercise-04obsoletes-11-test.mistake       2005-11-30 10:37:37.000000000 +0100
+@@ -1,4 +0,0 @@
+->!> Installing D2 from channel test
+->!> Solution #1:
+->!> install D2-2.0-1[test]
+->!> installs=1, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-11-test.err b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-11-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-11-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-11-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-11-test.out b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-11-test.out
new file mode 100644 (file)
index 0000000..1112d0f
--- /dev/null
@@ -0,0 +1,25 @@
+Loaded 13 packages from deptestomatic/exercise-04obsoletes-system.xml
+Loaded 16 packages from deptestomatic/exercise-04obsoletes-packages.xml
+
+------------------------------------------------
+
+>!> Installing D2 from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 885a4eb0
+>!> install D2-2.0-1[test]
+>!> installs=1, upgrades=0, uninstalls=0
+download size=0.1k, install size=0.4k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing D2-2.0-1[test]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-11-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-11-test.solution
new file mode 100644 (file)
index 0000000..a89e5e1
--- /dev/null
@@ -0,0 +1,4 @@
+>!> Installing D2 from channel test
+>!> Solution #1:
+>!> install D2-2.0-1[test]
+>!> installs=1, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-11-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-11-test.xml
new file mode 100644 (file)
index 0000000..9d242d4
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-04obsoletes-system.xml"/>
+  <channel name="test" file="exercise-04obsoletes-packages.xml"/>
+</setup>
+
+<!-- 
+# libD2 gets uninstalled but is still required by some packages
+D2
+ -->
+<trial>
+  <install channel="test" package="D2"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-packages.err b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-packages.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-packages.out b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-packages.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-packages.xml b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-packages.xml
new file mode 100644 (file)
index 0000000..33cf758
--- /dev/null
@@ -0,0 +1,324 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>foonew</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>foonew.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <obsoletes>
+        <dep name='foo'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>fooc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>fooc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <conflicts>
+        <dep name='foo'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>barnew</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>barnew.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='bar'/>
+      </provides>
+      <obsoletes>
+        <dep name='bar'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>barc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>barc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <conflicts>
+        <dep name='bar'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>baznew</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>baznew.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='baz'/>
+      </provides>
+      <obsoletes>
+        <dep name='baz'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>bazc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>bazc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <conflicts>
+        <dep name='baz' op='&lt;=' version='1.2'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>libfoo2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>libfoo2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <obsoletes>
+        <dep name='libfoo'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>libbar2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>libbar2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libbar'/>
+      </provides>
+      <obsoletes>
+        <dep name='libbar'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>libbaz2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>libbaz2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <obsoletes>
+        <dep name='libbaz'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>somemore</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>somemore.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='libbaz2'/>
+      </requires>
+    </package>
+    <package>
+      <name>A</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>A.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>B</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>B.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <obsoletes>
+        <dep name='A'/>
+        <dep name='C'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>C</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>C.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>D</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>D.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>G</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>G.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <obsoletes>
+        <dep name='E'/>
+        <dep name='D'/>
+        <dep name='F'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>D2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>D2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-system.err b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-system.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-system.out b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-system.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-system.xml b/zypp/solver/testsuite/deptestomatic/exercise-04obsoletes-system.xml
new file mode 100644 (file)
index 0000000..0f2b0b1
--- /dev/null
@@ -0,0 +1,248 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>foo</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>foo.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>bar</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>bar.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>baz</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>baz.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>libfoo</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.2</version>
+          <release>1</release>
+          <filename>libfoo.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>something</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>something.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='libfoo'/>
+      </requires>
+    </package>
+    <package>
+      <name>libbar</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.2</version>
+          <release>1</release>
+          <filename>libbar.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>someother</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>someother.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='libbar' op='&gt;=' version='1.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>libbaz</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.2</version>
+          <release>1</release>
+          <filename>libbaz.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>somemore</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>somemore.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='libbaz'/>
+      </requires>
+    </package>
+    <package>
+      <name>libD</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>libD.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='D'/>
+        <dep name='E'/>
+        <dep name='F'/>
+      </provides>
+    </package>
+    <package>
+      <name>libD2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>libD2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='D2'/>
+      </provides>
+    </package>
+    <package>
+      <name>libD2-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>libD2-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='D2'/>
+      </requires>
+    </package>
+    <package>
+      <name>libD2-doc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>libD2-doc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='libD2'/>
+      </requires>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-1-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-1-test.diff
new file mode 100644 (file)
index 0000000..97a44ff
--- /dev/null
@@ -0,0 +1,21 @@
+--- exercise-05reallive-1-test.solution        2005-11-06 11:17:19.000000000 +0100
++++ exercise-05reallive-1-test.mistake 2005-11-30 10:37:37.000000000 +0100
+@@ -1,18 +0,0 @@
+->!> Installing dosemu from channel test
+->!> Installing dviutils from channel test
+->!> Installing fetchmail from channel test
+->!> Installing freeciv from channel test
+->!> Installing ghostscript from channel test
+->!> Solution #1:
+->!> install XFree86-libs-3.3.5-1[test]
+->!> install Xaw3d-1.5-2[test]
+->!> install dosemu-0.98.5-3[test]
+->!> install dviutils-1.0-8[test]
+->!> install fetchmail-5.0.4-0[test]
+->!> install freeciv-1.8.0-1[test]
+->!> install ghostscript-5.10-2[test]
+->!> install sed-3.02-1[test]
+->!> install teTeX-1.0.5-1[test]
+->!> install xpm-4.11-1[test]
+->!> upgrade tcsh-6.08.00-1 => tcsh-6.08.00-2[test]
+->!> installs=10, upgrades=1, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-1-test.err b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-1-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-1-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-1-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-1-test.out b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-1-test.out
new file mode 100644 (file)
index 0000000..63c67bb
--- /dev/null
@@ -0,0 +1,67 @@
+Loaded 75 packages from deptestomatic/exercise-05reallive-system.xml
+Loaded 591 packages from deptestomatic/exercise-05reallive-packages.xml
+
+------------------------------------------------
+
+>!> Installing dosemu from channel test
+>!> Installing dviutils from channel test
+>!> Installing fetchmail from channel test
+>!> Installing freeciv from channel test
+>!> Installing ghostscript from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 8557ab48
+>!> install XFree86-libs-3.3.5-1[test]
+>!> install Xaw3d-1.5-2[test]
+>!> install dosemu-0.98.5-3[test]
+>!> install dviutils-1.0-8[test]
+>!> install fetchmail-5.0.4-0[test]
+>!> install freeciv-1.8.0-1[test]
+>!> install ghostscript-5.10-2[test]
+>!> install sed-3.02-1[test]
+>!> install teTeX-1.0.5-1[test]
+>!> install xpm-4.11-1[test]
+>!> upgrade tcsh-6.08.00-1 => tcsh-6.08.00-2[test]
+>!> installs=10, upgrades=1, uninstalls=0
+download size=1.3k, install size=4.5k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing dosemu-0.98.5-3[test]
+Installing dviutils-1.0-8[test]
+Installing fetchmail-5.0.4-0[test]
+Installing freeciv-1.8.0-1[test]
+Installing ghostscript-5.10-2[test]
+XFree86-libs-3.3.5-1[test]:  needed by  [dosemu-0.98.5-3]
+Installing XFree86-libs-3.3.5-1[test]
+XFree86-libs-3.3.5-1[test]:  needed by  [dosemu-0.98.5-3]
+teTeX-1.0.5-1[test]:  needed by  [dviutils-1.0-8]
+Installing teTeX-1.0.5-1[test]
+tcsh-6.08.00-2[test]:  needed by  [dviutils-1.0-8]
+Upgrading tcsh-6.08.00-1 => tcsh-6.08.00-2[test]
+XFree86-libs-3.3.5-1[test]:  needed by  [freeciv-1.8.0-1]
+XFree86-libs-3.3.5-1[test]:  needed by  [freeciv-1.8.0-1]
+XFree86-libs-3.3.5-1[test]:  needed by  [freeciv-1.8.0-1]
+Xaw3d-1.5-2[test]:  needed by  [freeciv-1.8.0-1]
+Installing Xaw3d-1.5-2[test]
+XFree86-libs-3.3.5-1[test]:  needed by  [freeciv-1.8.0-1]
+XFree86-libs-3.3.5-1[test]:  needed by  [freeciv-1.8.0-1]
+xpm-4.11-1[test]:  needed by  [freeciv-1.8.0-1]
+Installing xpm-4.11-1[test]
+XFree86-libs-3.3.5-1[test]:  needed by  [freeciv-1.8.0-1]
+XFree86-libs-3.3.5-1[test]:  needed by  [ghostscript-5.10-2]
+XFree86-libs-3.3.5-1[test]:  needed by  [ghostscript-5.10-2]
+XFree86-libs-3.3.5-1[test]:  needed by  [ghostscript-5.10-2]
+XFree86-libs-3.3.5-1[test]:  needed by  [ghostscript-5.10-2]
+XFree86-libs-3.3.5-1[test]:  needed by  [ghostscript-5.10-2]
+sed-3.02-1[test]:  needed by  [teTeX-1.0.5-1]
+Installing sed-3.02-1[test]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-1-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-1-test.solution
new file mode 100644 (file)
index 0000000..687a751
--- /dev/null
@@ -0,0 +1,18 @@
+>!> Installing dosemu from channel test
+>!> Installing dviutils from channel test
+>!> Installing fetchmail from channel test
+>!> Installing freeciv from channel test
+>!> Installing ghostscript from channel test
+>!> Solution #1:
+>!> install XFree86-libs-3.3.5-1[test]
+>!> install Xaw3d-1.5-2[test]
+>!> install dosemu-0.98.5-3[test]
+>!> install dviutils-1.0-8[test]
+>!> install fetchmail-5.0.4-0[test]
+>!> install freeciv-1.8.0-1[test]
+>!> install ghostscript-5.10-2[test]
+>!> install sed-3.02-1[test]
+>!> install teTeX-1.0.5-1[test]
+>!> install xpm-4.11-1[test]
+>!> upgrade tcsh-6.08.00-1 => tcsh-6.08.00-2[test]
+>!> installs=10, upgrades=1, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-1-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-1-test.xml
new file mode 100644 (file)
index 0000000..dbb9c88
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-05reallive-system.xml"/>
+  <channel name="test" file="exercise-05reallive-packages.xml"/>
+</setup>
+
+<!-- 
+CLEAR_DEFAULTS
+DEFINE_DEFAULTS jdk-runtime jdk-shared jdk-static
+# install some misc packages from the avail set
+dosemu dviutils fetchmail freeciv ghostscript
+ -->
+<trial>
+  <install channel="test" package="dosemu"/>
+  <install channel="test" package="dviutils"/>
+  <install channel="test" package="fetchmail"/>
+  <install channel="test" package="freeciv"/>
+  <install channel="test" package="ghostscript"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-2-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-2-test.diff
new file mode 100644 (file)
index 0000000..25950d5
--- /dev/null
@@ -0,0 +1,14 @@
+--- exercise-05reallive-2-test.solution        2005-11-06 11:18:22.000000000 +0100
++++ exercise-05reallive-2-test.mistake 2005-11-30 10:37:37.000000000 +0100
+@@ -1,11 +0,0 @@
+->!> Installing inn from channel test
+->!> Installing isdn4k-utils from channel test
+->!> Installing kdbg from channel test
+->!> Solution #1:
+->!> install XFree86-libs-3.3.5-1[test]
+->!> install gdbm-1.8.0-3[test]
+->!> install inn-2.2.1-2[test]
+->!> install isdn4k-utils-3.0beta2-4[test]
+->!> install kdbg-1.0beta1-1[test]
+->!> install kdelibs-1.1.2-1[test]
+->!> installs=6, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-2-test.err b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-2-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-2-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-2-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-2-test.out b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-2-test.out
new file mode 100644 (file)
index 0000000..8c1f505
--- /dev/null
@@ -0,0 +1,50 @@
+Loaded 75 packages from deptestomatic/exercise-05reallive-system.xml
+Loaded 591 packages from deptestomatic/exercise-05reallive-packages.xml
+
+------------------------------------------------
+
+>!> Installing inn from channel test
+>!> Installing isdn4k-utils from channel test
+>!> Installing kdbg from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 1e081379
+>!> install XFree86-libs-3.3.5-1[test]
+>!> install gdbm-1.8.0-3[test]
+>!> install inn-2.2.1-2[test]
+>!> install isdn4k-utils-3.0beta2-4[test]
+>!> install kdbg-1.0beta1-1[test]
+>!> install kdelibs-1.1.2-1[test]
+>!> installs=6, upgrades=0, uninstalls=0
+download size=0.7k, install size=2.7k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing inn-2.2.1-2[test]
+Installing isdn4k-utils-3.0beta2-4[test]
+Installing kdbg-1.0beta1-1[test]
+XFree86-libs-3.3.5-1[test]:  needed by  [isdn4k-utils-3.0beta2-4]
+Installing XFree86-libs-3.3.5-1[test]
+XFree86-libs-3.3.5-1[test]:  needed by  [isdn4k-utils-3.0beta2-4]
+XFree86-libs-3.3.5-1[test]:  needed by  [isdn4k-utils-3.0beta2-4]
+XFree86-libs-3.3.5-1[test]:  needed by  [isdn4k-utils-3.0beta2-4]
+XFree86-libs-3.3.5-1[test]:  needed by  [isdn4k-utils-3.0beta2-4]
+XFree86-libs-3.3.5-1[test]:  needed by  [isdn4k-utils-3.0beta2-4]
+gdbm-1.8.0-3[test]:  needed by  [isdn4k-utils-3.0beta2-4]
+Installing gdbm-1.8.0-3[test]
+XFree86-libs-3.3.5-1[test]:  needed by  [kdbg-1.0beta1-1]
+XFree86-libs-3.3.5-1[test]:  needed by  [kdbg-1.0beta1-1]
+kdelibs-1.1.2-1[test]:  needed by  [kdbg-1.0beta1-1]
+Installing kdelibs-1.1.2-1[test]
+kdelibs-1.1.2-1[test]:  needed by  [kdbg-1.0beta1-1]
+kdelibs-1.1.2-1[test]:  needed by  [kdbg-1.0beta1-1]
+kdelibs-1.1.2-1[test]:  needed by  [kdbg-1.0beta1-1]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-2-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-2-test.solution
new file mode 100644 (file)
index 0000000..cf766d0
--- /dev/null
@@ -0,0 +1,11 @@
+>!> Installing inn from channel test
+>!> Installing isdn4k-utils from channel test
+>!> Installing kdbg from channel test
+>!> Solution #1:
+>!> install XFree86-libs-3.3.5-1[test]
+>!> install gdbm-1.8.0-3[test]
+>!> install inn-2.2.1-2[test]
+>!> install isdn4k-utils-3.0beta2-4[test]
+>!> install kdbg-1.0beta1-1[test]
+>!> install kdelibs-1.1.2-1[test]
+>!> installs=6, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-2-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-2-test.xml
new file mode 100644 (file)
index 0000000..4740347
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-05reallive-system.xml"/>
+  <channel name="test" file="exercise-05reallive-packages.xml"/>
+</setup>
+
+<!-- 
+CLEAR_DEFAULTS
+DEFINE_DEFAULTS jdk-runtime jdk-shared jdk-static
+# ...and some others
+inn isdn4k-utils kdbg
+ -->
+<trial>
+  <install channel="test" package="inn"/>
+  <install channel="test" package="isdn4k-utils"/>
+  <install channel="test" package="kdbg"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-3-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-3-test.diff
new file mode 100644 (file)
index 0000000..a0a8b06
--- /dev/null
@@ -0,0 +1,5 @@
+--- exercise-05reallive-3-test.solution        2005-11-06 11:19:35.000000000 +0100
++++ exercise-05reallive-3-test.mistake 2005-11-30 10:37:37.000000000 +0100
+@@ -1,2 +0,0 @@
+->!> Installing jdk-shared from channel test
+->!> Installing jdk-static from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-3-test.err b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-3-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-3-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-3-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-3-test.out b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-3-test.out
new file mode 100644 (file)
index 0000000..b2ba606
--- /dev/null
@@ -0,0 +1,19 @@
+Loaded 75 packages from deptestomatic/exercise-05reallive-system.xml
+Loaded 591 packages from deptestomatic/exercise-05reallive-packages.xml
+
+------------------------------------------------
+
+>!> Installing jdk-shared from channel test
+>!> Installing jdk-static from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Pruned solutions: 0
+Deferred solutions: 0
+
+Failed Solution: 
+Download Size: 246, Install Size: 912, Total Priority: 0, Min Priority: 800, Max Priority: 800, Other Penalties: 0, Invalid
+- - - - - - - - - -
+Installing jdk-shared-1.0.2-8[test]
+Installing jdk-static-1.0.2-8[test]
+[ERROR] jdk-shared-1.0.2-8 is scheduled to be installed, but this is not possible because of dependency problems.
+[ERROR] Marking this resolution attempt as invalid.
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-3-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-3-test.solution
new file mode 100644 (file)
index 0000000..b0cb7d2
--- /dev/null
@@ -0,0 +1,2 @@
+>!> Installing jdk-shared from channel test
+>!> Installing jdk-static from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-3-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-3-test.xml
new file mode 100644 (file)
index 0000000..d1ecc6d
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-05reallive-system.xml"/>
+  <channel name="test" file="exercise-05reallive-packages.xml"/>
+</setup>
+
+<!-- 
+CLEAR_DEFAULTS
+DEFINE_DEFAULTS jdk-runtime jdk-shared jdk-static
+# these two conflict with each other
+ALTHANDLING=auto-no-default jdk-shared jdk-static
+ -->
+<trial>
+  <install channel="test" package="jdk-shared"/>
+  <install channel="test" package="jdk-static"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-4-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-4-test.diff
new file mode 100644 (file)
index 0000000..3fbcce6
--- /dev/null
@@ -0,0 +1,119 @@
+--- exercise-05reallive-4-test.solution        2005-11-06 11:20:00.000000000 +0100
++++ exercise-05reallive-4-test.mistake 2005-11-30 10:37:37.000000000 +0100
+@@ -1,116 +0,0 @@
+->!> Checking for upgrades...
+->!> Upgrading DEV-3.3-0 => DEV-3.4-1[test]
+->!> Upgrading LPRng-3.5.3-1 => LPRng-3.5.3-2[test]
+->!> Upgrading LPRng-lpd-3.5.3-1 => LPRng-lpd-3.5.3-2[test]
+->!> Upgrading SysVinit-2.76-0 => SysVinit-2.76.3-2[test]
+->!> Upgrading SysVinit-scripts-1.04-0 => SysVinit-scripts-1.05-5[test]
+->!> Upgrading autoconf-2.13-0 => autoconf-2.13-1[test]
+->!> Upgrading bash-1.14.7-9 => bash-1.14.7-10[test]
+->!> Upgrading binutils-2.9.1.0.19a-0 => binutils-2.9.1.0.21-2[test]
+->!> Upgrading crontabs-1.10-2 => crontabs-1.12-1[test]
+->!> Upgrading egcs-2.91.60-3 => egcs-2.91.66-5[test]
+->!> Upgrading egcs-c++-2.91.60-3 => egcs-c++-2.91.66-5[test]
+->!> Upgrading findutils-4.1-9 => findutils-4.1-11[test]
+->!> Upgrading gdb-4.17-2 => gdb-4.17.0.11-2[test]
+->!> Upgrading glibc-2.1-1 => glibc-2.1.2-1[test]
+->!> Upgrading isapnptools-1.16-1 => isapnptools-1.18-1[test]
+->!> Upgrading kbd-0.96-1 => kbd-0.99-1[test]
+->!> Upgrading ld.so-1.9.9-2 => ld.so-1.9.11-1[test]
+->!> Upgrading less-332-3 => less-340-1[test]
+->!> Upgrading libgr-2.0.13-1 => libgr-2.0.13-2[test]
+->!> Upgrading libpam-0.66-1 => libpam-0.66-3[test]
+->!> Upgrading libpwdb-0.54-7 => libpwdb-0.54-8[test]
+->!> Upgrading libz-1.0.2-1 => libz-1.0.2-2[test]
+->!> Upgrading linux-kernel-binary-2.2.1-0a => linux-kernel-binary-2.2.13-1S[test]
+->!> Upgrading linux-kernel-include-2.2.1-0a => linux-kernel-include-2.2.13-1S[test]
+->!> Upgrading lisa-3.1-0 => lisa-4.0-7[test]
+->!> Upgrading man-1.5f-1 => man-1.5f-5[test]
+->!> Upgrading mtabase-1.0-5 => mtabase-1.0-8[test]
+->!> Upgrading ncurses-4.2-1 => ncurses-4.2-4[test]
+->!> Upgrading ncurses-devel-4.2-1 => ncurses-devel-4.2-4[test]
+->!> Upgrading ncurses-devel-static-4.2-1 => ncurses-devel-static-4.2-4[test]
+->!> Upgrading ncurses-termcap-devel-4.2-1 => ncurses-termcap-devel-4.2-4[test]
+->!> Upgrading ncurses-termcap-devel-static-4.2-1 => ncurses-termcap-devel-static-4.2-4[test]
+->!> Upgrading nis-client-2.0-0 => nis-client-2.0-8[test]
+->!> Upgrading pciutils-1.99.4-1 => pciutils-2.0-1[test]
+->!> Upgrading perl-5.005_02-0 => perl-5.005_02-1[test]
+->!> Upgrading perl-add-5.005_02-0 => perl-add-5.005_02-1[test]
+->!> Upgrading procmail-3.10-8 => procmail-3.13.1-1[test]
+->!> Upgrading procps-1.2.9-2 => procps-2.0.2-1[test]
+->!> Upgrading python-1.5.1-0a => python-1.5.1-1[test]
+->!> Upgrading python-devel-1.5.1-0a => python-devel-1.5.1-1[test]
+->!> Upgrading python-eclass-1.2-0 => python-eclass-1.2-2[test]
+->!> Upgrading qt-1.4.2-1 => qt-1.44-4[test]
+->!> Upgrading qt-devel-1.4.2-1 => qt-devel-1.44-4[test]
+->!> Upgrading rpm-2.5.5-2 => rpm-2.5.5-3[test]
+->!> Upgrading sendmail-8.8.7-7 => sendmail-8.9.3-1[test]
+->!> Upgrading setup-2.0-0a => setup-2.0-6[test]
+->!> Upgrading sh-utils-1.16-3 => sh-utils-1.16-7[test]
+->!> Upgrading slang-1.2.2-0 => slang-1.3.7-1[test]
+->!> Upgrading strace-3.1-3 => strace-4.0-2[test]
+->!> Upgrading svgalib-1.3.1-1 => svgalib-1.4.0-0[test]
+->!> Upgrading sysklogd-1.3.26-3 => sysklogd-1.3.31-1[test]
+->!> Upgrading tcsh-6.08.00-1 => tcsh-6.08.00-2[test]
+->!> Upgrading util-linux-2.7.1-5 => util-linux-2.9s-4[test]
+->!> Upgrading vixie-cron-3.0.1-18 => vixie-cron-3.0.1-19[test]
+->!> Upgrading 54 packages
+->!> Solution #1:
+->!> install XFree86-libs-3.3.5-1[test]
+->!> install gdbm-1.8.0-3[test]
+->!> install libstdc++-2.9.0-5[test]
+->!> install modutils-2.1.121-10[test]
+->!> upgrade DEV-3.3-0 => DEV-3.4-1[test]
+->!> upgrade LPRng-3.5.3-1 => LPRng-3.5.3-2[test]
+->!> upgrade LPRng-lpd-3.5.3-1 => LPRng-lpd-3.5.3-2[test]
+->!> upgrade SysVinit-2.76-0 => SysVinit-2.76.3-2[test]
+->!> upgrade SysVinit-scripts-1.04-0 => SysVinit-scripts-1.05-5[test]
+->!> upgrade autoconf-2.13-0 => autoconf-2.13-1[test]
+->!> upgrade bash-1.14.7-9 => bash-1.14.7-10[test]
+->!> upgrade binutils-2.9.1.0.19a-0 => binutils-2.9.1.0.21-2[test]
+->!> upgrade crontabs-1.10-2 => crontabs-1.12-1[test]
+->!> upgrade egcs-2.91.60-3 => egcs-2.91.66-5[test]
+->!> upgrade egcs-c++-2.91.60-3 => egcs-c++-2.91.66-5[test]
+->!> upgrade findutils-4.1-9 => findutils-4.1-11[test]
+->!> upgrade gdb-4.17-2 => gdb-4.17.0.11-2[test]
+->!> upgrade glibc-2.1-1 => glibc-2.1.2-1[test]
+->!> upgrade isapnptools-1.16-1 => isapnptools-1.18-1[test]
+->!> upgrade kbd-0.96-1 => kbd-0.99-1[test]
+->!> upgrade ld.so-1.9.9-2 => ld.so-1.9.11-1[test]
+->!> upgrade less-332-3 => less-340-1[test]
+->!> upgrade libgr-2.0.13-1 => libgr-2.0.13-2[test]
+->!> upgrade libpam-0.66-1 => libpam-0.66-3[test]
+->!> upgrade libpwdb-0.54-7 => libpwdb-0.54-8[test]
+->!> upgrade libz-1.0.2-1 => libz-1.0.2-2[test]
+->!> upgrade linux-kernel-binary-2.2.1-0a => linux-kernel-binary-2.2.13-1S[test]
+->!> upgrade linux-kernel-include-2.2.1-0a => linux-kernel-include-2.2.13-1S[test]
+->!> upgrade lisa-3.1-0 => lisa-4.0-7[test]
+->!> upgrade man-1.5f-1 => man-1.5f-5[test]
+->!> upgrade mtabase-1.0-5 => mtabase-1.0-8[test]
+->!> upgrade ncurses-4.2-1 => ncurses-4.2-4[test]
+->!> upgrade ncurses-devel-4.2-1 => ncurses-devel-4.2-4[test]
+->!> upgrade ncurses-devel-static-4.2-1 => ncurses-devel-static-4.2-4[test]
+->!> upgrade ncurses-termcap-devel-4.2-1 => ncurses-termcap-devel-4.2-4[test]
+->!> upgrade ncurses-termcap-devel-static-4.2-1 => ncurses-termcap-devel-static-4.2-4[test]
+->!> upgrade nis-client-2.0-0 => nis-client-2.0-8[test]
+->!> upgrade pciutils-1.99.4-1 => pciutils-2.0-1[test]
+->!> upgrade perl-5.005_02-0 => perl-5.005_02-1[test]
+->!> upgrade perl-add-5.005_02-0 => perl-add-5.005_02-1[test]
+->!> upgrade procmail-3.10-8 => procmail-3.13.1-1[test]
+->!> upgrade procps-1.2.9-2 => procps-2.0.2-1[test]
+->!> upgrade python-1.5.1-0a => python-1.5.1-1[test]
+->!> upgrade python-devel-1.5.1-0a => python-devel-1.5.1-1[test]
+->!> upgrade python-eclass-1.2-0 => python-eclass-1.2-2[test]
+->!> upgrade qt-1.4.2-1 => qt-1.44-4[test]
+->!> upgrade qt-devel-1.4.2-1 => qt-devel-1.44-4[test]
+->!> upgrade rpm-2.5.5-2 => rpm-2.5.5-3[test]
+->!> upgrade sendmail-8.8.7-7 => sendmail-8.9.3-1[test]
+->!> upgrade setup-2.0-0a => setup-2.0-6[test]
+->!> upgrade sh-utils-1.16-3 => sh-utils-1.16-7[test]
+->!> upgrade slang-1.2.2-0 => slang-1.3.7-1[test]
+->!> upgrade strace-3.1-3 => strace-4.0-2[test]
+->!> upgrade svgalib-1.3.1-1 => svgalib-1.4.0-0[test]
+->!> upgrade sysklogd-1.3.26-3 => sysklogd-1.3.31-1[test]
+->!> upgrade tcsh-6.08.00-1 => tcsh-6.08.00-2[test]
+->!> upgrade util-linux-2.7.1-5 => util-linux-2.9s-4[test]
+->!> upgrade vixie-cron-3.0.1-18 => vixie-cron-3.0.1-19[test]
+->!> installs=4, upgrades=54, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-4-test.err b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-4-test.err
new file mode 100644 (file)
index 0000000..3b71b2e
--- /dev/null
@@ -0,0 +1 @@
+I/O error : No such file or directory
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-4-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-4-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-4-test.out b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-4-test.out
new file mode 100644 (file)
index 0000000..a795b0d
--- /dev/null
@@ -0,0 +1,203 @@
+Loaded 75 packages from deptestomatic/exercise-05reallive-system.xml
+Loaded 591 packages from deptestomatic/exercise-05reallive-packages.xml
+
+------------------------------------------------
+
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+Unable to save subscription data to '/var/adm/zypp/subscriptions.xml'
+Subscription will not be saved!
+>!> Checking for upgrades...
+>!> Upgrading DEV-3.3-0 => DEV-3.4-1[test]
+>!> Upgrading LPRng-3.5.3-1 => LPRng-3.5.3-2[test]
+>!> Upgrading LPRng-lpd-3.5.3-1 => LPRng-lpd-3.5.3-2[test]
+>!> Upgrading SysVinit-2.76-0 => SysVinit-2.76.3-2[test]
+>!> Upgrading SysVinit-scripts-1.04-0 => SysVinit-scripts-1.05-5[test]
+>!> Upgrading autoconf-2.13-0 => autoconf-2.13-1[test]
+>!> Upgrading bash-1.14.7-9 => bash-1.14.7-10[test]
+>!> Upgrading binutils-2.9.1.0.19a-0 => binutils-2.9.1.0.21-2[test]
+>!> Upgrading crontabs-1.10-2 => crontabs-1.12-1[test]
+>!> Upgrading egcs-2.91.60-3 => egcs-2.91.66-5[test]
+>!> Upgrading egcs-c++-2.91.60-3 => egcs-c++-2.91.66-5[test]
+>!> Upgrading findutils-4.1-9 => findutils-4.1-11[test]
+>!> Upgrading gdb-4.17-2 => gdb-4.17.0.11-2[test]
+>!> Upgrading glibc-2.1-1 => glibc-2.1.2-1[test]
+>!> Upgrading isapnptools-1.16-1 => isapnptools-1.18-1[test]
+>!> Upgrading kbd-0.96-1 => kbd-0.99-1[test]
+>!> Upgrading ld.so-1.9.9-2 => ld.so-1.9.11-1[test]
+>!> Upgrading less-332-3 => less-340-1[test]
+>!> Upgrading libgr-2.0.13-1 => libgr-2.0.13-2[test]
+>!> Upgrading libpam-0.66-1 => libpam-0.66-3[test]
+>!> Upgrading libpwdb-0.54-7 => libpwdb-0.54-8[test]
+>!> Upgrading libz-1.0.2-1 => libz-1.0.2-2[test]
+>!> Upgrading linux-kernel-binary-2.2.1-0a => linux-kernel-binary-2.2.13-1S[test]
+>!> Upgrading linux-kernel-include-2.2.1-0a => linux-kernel-include-2.2.13-1S[test]
+>!> Upgrading lisa-3.1-0 => lisa-4.0-7[test]
+>!> Upgrading man-1.5f-1 => man-1.5f-5[test]
+>!> Upgrading mtabase-1.0-5 => mtabase-1.0-8[test]
+>!> Upgrading ncurses-4.2-1 => ncurses-4.2-4[test]
+>!> Upgrading ncurses-devel-4.2-1 => ncurses-devel-4.2-4[test]
+>!> Upgrading ncurses-devel-static-4.2-1 => ncurses-devel-static-4.2-4[test]
+>!> Upgrading ncurses-termcap-devel-4.2-1 => ncurses-termcap-devel-4.2-4[test]
+>!> Upgrading ncurses-termcap-devel-static-4.2-1 => ncurses-termcap-devel-static-4.2-4[test]
+>!> Upgrading nis-client-2.0-0 => nis-client-2.0-8[test]
+>!> Upgrading pciutils-1.99.4-1 => pciutils-2.0-1[test]
+>!> Upgrading perl-5.005_02-0 => perl-5.005_02-1[test]
+>!> Upgrading perl-add-5.005_02-0 => perl-add-5.005_02-1[test]
+>!> Upgrading procmail-3.10-8 => procmail-3.13.1-1[test]
+>!> Upgrading procps-1.2.9-2 => procps-2.0.2-1[test]
+>!> Upgrading python-1.5.1-0a => python-1.5.1-1[test]
+>!> Upgrading python-devel-1.5.1-0a => python-devel-1.5.1-1[test]
+>!> Upgrading python-eclass-1.2-0 => python-eclass-1.2-2[test]
+>!> Upgrading qt-1.4.2-1 => qt-1.44-4[test]
+>!> Upgrading qt-devel-1.4.2-1 => qt-devel-1.44-4[test]
+>!> Upgrading rpm-2.5.5-2 => rpm-2.5.5-3[test]
+>!> Upgrading sendmail-8.8.7-7 => sendmail-8.9.3-1[test]
+>!> Upgrading setup-2.0-0a => setup-2.0-6[test]
+>!> Upgrading sh-utils-1.16-3 => sh-utils-1.16-7[test]
+>!> Upgrading slang-1.2.2-0 => slang-1.3.7-1[test]
+>!> Upgrading strace-3.1-3 => strace-4.0-2[test]
+>!> Upgrading svgalib-1.3.1-1 => svgalib-1.4.0-0[test]
+>!> Upgrading sysklogd-1.3.26-3 => sysklogd-1.3.31-1[test]
+>!> Upgrading tcsh-6.08.00-1 => tcsh-6.08.00-2[test]
+>!> Upgrading util-linux-2.7.1-5 => util-linux-2.9s-4[test]
+>!> Upgrading vixie-cron-3.0.1-18 => vixie-cron-3.0.1-19[test]
+>!> Upgrading 54 packages
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 2bcfc82f
+>!> install XFree86-libs-3.3.5-1[test]
+>!> install gdbm-1.8.0-3[test]
+>!> install libstdc++-2.9.0-5[test]
+>!> install modutils-2.1.121-10[test]
+>!> upgrade DEV-3.3-0 => DEV-3.4-1[test]
+>!> upgrade LPRng-3.5.3-1 => LPRng-3.5.3-2[test]
+>!> upgrade LPRng-lpd-3.5.3-1 => LPRng-lpd-3.5.3-2[test]
+>!> upgrade SysVinit-2.76-0 => SysVinit-2.76.3-2[test]
+>!> upgrade SysVinit-scripts-1.04-0 => SysVinit-scripts-1.05-5[test]
+>!> upgrade autoconf-2.13-0 => autoconf-2.13-1[test]
+>!> upgrade bash-1.14.7-9 => bash-1.14.7-10[test]
+>!> upgrade binutils-2.9.1.0.19a-0 => binutils-2.9.1.0.21-2[test]
+>!> upgrade crontabs-1.10-2 => crontabs-1.12-1[test]
+>!> upgrade egcs-2.91.60-3 => egcs-2.91.66-5[test]
+>!> upgrade egcs-c++-2.91.60-3 => egcs-c++-2.91.66-5[test]
+>!> upgrade findutils-4.1-9 => findutils-4.1-11[test]
+>!> upgrade gdb-4.17-2 => gdb-4.17.0.11-2[test]
+>!> upgrade glibc-2.1-1 => glibc-2.1.2-1[test]
+>!> upgrade isapnptools-1.16-1 => isapnptools-1.18-1[test]
+>!> upgrade kbd-0.96-1 => kbd-0.99-1[test]
+>!> upgrade ld.so-1.9.9-2 => ld.so-1.9.11-1[test]
+>!> upgrade less-332-3 => less-340-1[test]
+>!> upgrade libgr-2.0.13-1 => libgr-2.0.13-2[test]
+>!> upgrade libpam-0.66-1 => libpam-0.66-3[test]
+>!> upgrade libpwdb-0.54-7 => libpwdb-0.54-8[test]
+>!> upgrade libz-1.0.2-1 => libz-1.0.2-2[test]
+>!> upgrade linux-kernel-binary-2.2.1-0a => linux-kernel-binary-2.2.13-1S[test]
+>!> upgrade linux-kernel-include-2.2.1-0a => linux-kernel-include-2.2.13-1S[test]
+>!> upgrade lisa-3.1-0 => lisa-4.0-7[test]
+>!> upgrade man-1.5f-1 => man-1.5f-5[test]
+>!> upgrade mtabase-1.0-5 => mtabase-1.0-8[test]
+>!> upgrade ncurses-4.2-1 => ncurses-4.2-4[test]
+>!> upgrade ncurses-devel-4.2-1 => ncurses-devel-4.2-4[test]
+>!> upgrade ncurses-devel-static-4.2-1 => ncurses-devel-static-4.2-4[test]
+>!> upgrade ncurses-termcap-devel-4.2-1 => ncurses-termcap-devel-4.2-4[test]
+>!> upgrade ncurses-termcap-devel-static-4.2-1 => ncurses-termcap-devel-static-4.2-4[test]
+>!> upgrade nis-client-2.0-0 => nis-client-2.0-8[test]
+>!> upgrade pciutils-1.99.4-1 => pciutils-2.0-1[test]
+>!> upgrade perl-5.005_02-0 => perl-5.005_02-1[test]
+>!> upgrade perl-add-5.005_02-0 => perl-add-5.005_02-1[test]
+>!> upgrade procmail-3.10-8 => procmail-3.13.1-1[test]
+>!> upgrade procps-1.2.9-2 => procps-2.0.2-1[test]
+>!> upgrade python-1.5.1-0a => python-1.5.1-1[test]
+>!> upgrade python-devel-1.5.1-0a => python-devel-1.5.1-1[test]
+>!> upgrade python-eclass-1.2-0 => python-eclass-1.2-2[test]
+>!> upgrade qt-1.4.2-1 => qt-1.44-4[test]
+>!> upgrade qt-devel-1.4.2-1 => qt-devel-1.44-4[test]
+>!> upgrade rpm-2.5.5-2 => rpm-2.5.5-3[test]
+>!> upgrade sendmail-8.8.7-7 => sendmail-8.9.3-1[test]
+>!> upgrade setup-2.0-0a => setup-2.0-6[test]
+>!> upgrade sh-utils-1.16-3 => sh-utils-1.16-7[test]
+>!> upgrade slang-1.2.2-0 => slang-1.3.7-1[test]
+>!> upgrade strace-3.1-3 => strace-4.0-2[test]
+>!> upgrade svgalib-1.3.1-1 => svgalib-1.4.0-0[test]
+>!> upgrade sysklogd-1.3.26-3 => sysklogd-1.3.31-1[test]
+>!> upgrade tcsh-6.08.00-1 => tcsh-6.08.00-2[test]
+>!> upgrade util-linux-2.7.1-5 => util-linux-2.9s-4[test]
+>!> upgrade vixie-cron-3.0.1-18 => vixie-cron-3.0.1-19[test]
+>!> installs=4, upgrades=54, uninstalls=0
+download size=7.0k, install size=1.8k
+total priority=0, min priority=1600, max priority=1600
+other penalties=0
+- - - - - - - - - -
+Upgrading DEV-3.3-0 => DEV-3.4-1[test]
+Upgrading LPRng-3.5.3-1 => LPRng-3.5.3-2[test]
+Upgrading LPRng-lpd-3.5.3-1 => LPRng-lpd-3.5.3-2[test]
+Upgrading SysVinit-2.76-0 => SysVinit-2.76.3-2[test]
+Upgrading SysVinit-scripts-1.04-0 => SysVinit-scripts-1.05-5[test]
+Upgrading autoconf-2.13-0 => autoconf-2.13-1[test]
+Upgrading bash-1.14.7-9 => bash-1.14.7-10[test]
+Upgrading binutils-2.9.1.0.19a-0 => binutils-2.9.1.0.21-2[test]
+Upgrading crontabs-1.10-2 => crontabs-1.12-1[test]
+Upgrading egcs-2.91.60-3 => egcs-2.91.66-5[test]
+Upgrading egcs-c++-2.91.60-3 => egcs-c++-2.91.66-5[test]
+Upgrading findutils-4.1-9 => findutils-4.1-11[test]
+Upgrading gdb-4.17-2 => gdb-4.17.0.11-2[test]
+Upgrading glibc-2.1-1 => glibc-2.1.2-1[test]
+Upgrading isapnptools-1.16-1 => isapnptools-1.18-1[test]
+Upgrading kbd-0.96-1 => kbd-0.99-1[test]
+Upgrading ld.so-1.9.9-2 => ld.so-1.9.11-1[test]
+Upgrading less-332-3 => less-340-1[test]
+Upgrading libgr-2.0.13-1 => libgr-2.0.13-2[test]
+Upgrading libpam-0.66-1 => libpam-0.66-3[test]
+Upgrading libpwdb-0.54-7 => libpwdb-0.54-8[test]
+Upgrading libz-1.0.2-1 => libz-1.0.2-2[test]
+Upgrading linux-kernel-binary-2.2.1-0a => linux-kernel-binary-2.2.13-1S[test]
+Upgrading linux-kernel-include-2.2.1-0a => linux-kernel-include-2.2.13-1S[test]
+Upgrading lisa-3.1-0 => lisa-4.0-7[test]
+Upgrading man-1.5f-1 => man-1.5f-5[test]
+Upgrading mtabase-1.0-5 => mtabase-1.0-8[test]
+Upgrading ncurses-4.2-1 => ncurses-4.2-4[test]
+Upgrading ncurses-devel-4.2-1 => ncurses-devel-4.2-4[test]
+Upgrading ncurses-devel-static-4.2-1 => ncurses-devel-static-4.2-4[test]
+Upgrading ncurses-termcap-devel-4.2-1 => ncurses-termcap-devel-4.2-4[test]
+Upgrading ncurses-termcap-devel-static-4.2-1 => ncurses-termcap-devel-static-4.2-4[test]
+Upgrading nis-client-2.0-0 => nis-client-2.0-8[test]
+Upgrading pciutils-1.99.4-1 => pciutils-2.0-1[test]
+Upgrading perl-5.005_02-0 => perl-5.005_02-1[test]
+Upgrading perl-add-5.005_02-0 => perl-add-5.005_02-1[test]
+Upgrading procmail-3.10-8 => procmail-3.13.1-1[test]
+Upgrading procps-1.2.9-2 => procps-2.0.2-1[test]
+Upgrading python-1.5.1-0a => python-1.5.1-1[test]
+Upgrading python-devel-1.5.1-0a => python-devel-1.5.1-1[test]
+Upgrading python-eclass-1.2-0 => python-eclass-1.2-2[test]
+Upgrading qt-1.4.2-1 => qt-1.44-4[test]
+Upgrading qt-devel-1.4.2-1 => qt-devel-1.44-4[test]
+Upgrading rpm-2.5.5-2 => rpm-2.5.5-3[test]
+Upgrading sendmail-8.8.7-7 => sendmail-8.9.3-1[test]
+Upgrading setup-2.0-0a => setup-2.0-6[test]
+Upgrading sh-utils-1.16-3 => sh-utils-1.16-7[test]
+Upgrading slang-1.2.2-0 => slang-1.3.7-1[test]
+Upgrading strace-3.1-3 => strace-4.0-2[test]
+Upgrading svgalib-1.3.1-1 => svgalib-1.4.0-0[test]
+Upgrading sysklogd-1.3.26-3 => sysklogd-1.3.31-1[test]
+Upgrading tcsh-6.08.00-1 => tcsh-6.08.00-2[test]
+Upgrading util-linux-2.7.1-5 => util-linux-2.9s-4[test]
+Upgrading vixie-cron-3.0.1-18 => vixie-cron-3.0.1-19[test]
+libstdc++-2.9.0-5[test]:  needed by  [egcs-c++-2.91.66-5]
+Installing libstdc++-2.9.0-5[test]
+modutils-2.1.121-10[test]:  needed by  [linux-kernel-binary-2.2.13-1S]
+Installing modutils-2.1.121-10[test]
+gdbm-1.8.0-3[test]:  needed by  [perl-add-5.005_02-1]
+Installing gdbm-1.8.0-3[test]
+XFree86-libs-3.3.5-1[test]:  needed by  [qt-1.44-4]
+Installing XFree86-libs-3.3.5-1[test]
+XFree86-libs-3.3.5-1[test]:  needed by  [qt-1.44-4]
+libstdc++-2.9.0-5[test]:  needed by  [qt-1.44-4]
+libstdc++-2.9.0-5[test]:  needed by  [qt-devel-1.44-4]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-4-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-4-test.solution
new file mode 100644 (file)
index 0000000..76a1953
--- /dev/null
@@ -0,0 +1,116 @@
+>!> Checking for upgrades...
+>!> Upgrading DEV-3.3-0 => DEV-3.4-1[test]
+>!> Upgrading LPRng-3.5.3-1 => LPRng-3.5.3-2[test]
+>!> Upgrading LPRng-lpd-3.5.3-1 => LPRng-lpd-3.5.3-2[test]
+>!> Upgrading SysVinit-2.76-0 => SysVinit-2.76.3-2[test]
+>!> Upgrading SysVinit-scripts-1.04-0 => SysVinit-scripts-1.05-5[test]
+>!> Upgrading autoconf-2.13-0 => autoconf-2.13-1[test]
+>!> Upgrading bash-1.14.7-9 => bash-1.14.7-10[test]
+>!> Upgrading binutils-2.9.1.0.19a-0 => binutils-2.9.1.0.21-2[test]
+>!> Upgrading crontabs-1.10-2 => crontabs-1.12-1[test]
+>!> Upgrading egcs-2.91.60-3 => egcs-2.91.66-5[test]
+>!> Upgrading egcs-c++-2.91.60-3 => egcs-c++-2.91.66-5[test]
+>!> Upgrading findutils-4.1-9 => findutils-4.1-11[test]
+>!> Upgrading gdb-4.17-2 => gdb-4.17.0.11-2[test]
+>!> Upgrading glibc-2.1-1 => glibc-2.1.2-1[test]
+>!> Upgrading isapnptools-1.16-1 => isapnptools-1.18-1[test]
+>!> Upgrading kbd-0.96-1 => kbd-0.99-1[test]
+>!> Upgrading ld.so-1.9.9-2 => ld.so-1.9.11-1[test]
+>!> Upgrading less-332-3 => less-340-1[test]
+>!> Upgrading libgr-2.0.13-1 => libgr-2.0.13-2[test]
+>!> Upgrading libpam-0.66-1 => libpam-0.66-3[test]
+>!> Upgrading libpwdb-0.54-7 => libpwdb-0.54-8[test]
+>!> Upgrading libz-1.0.2-1 => libz-1.0.2-2[test]
+>!> Upgrading linux-kernel-binary-2.2.1-0a => linux-kernel-binary-2.2.13-1S[test]
+>!> Upgrading linux-kernel-include-2.2.1-0a => linux-kernel-include-2.2.13-1S[test]
+>!> Upgrading lisa-3.1-0 => lisa-4.0-7[test]
+>!> Upgrading man-1.5f-1 => man-1.5f-5[test]
+>!> Upgrading mtabase-1.0-5 => mtabase-1.0-8[test]
+>!> Upgrading ncurses-4.2-1 => ncurses-4.2-4[test]
+>!> Upgrading ncurses-devel-4.2-1 => ncurses-devel-4.2-4[test]
+>!> Upgrading ncurses-devel-static-4.2-1 => ncurses-devel-static-4.2-4[test]
+>!> Upgrading ncurses-termcap-devel-4.2-1 => ncurses-termcap-devel-4.2-4[test]
+>!> Upgrading ncurses-termcap-devel-static-4.2-1 => ncurses-termcap-devel-static-4.2-4[test]
+>!> Upgrading nis-client-2.0-0 => nis-client-2.0-8[test]
+>!> Upgrading pciutils-1.99.4-1 => pciutils-2.0-1[test]
+>!> Upgrading perl-5.005_02-0 => perl-5.005_02-1[test]
+>!> Upgrading perl-add-5.005_02-0 => perl-add-5.005_02-1[test]
+>!> Upgrading procmail-3.10-8 => procmail-3.13.1-1[test]
+>!> Upgrading procps-1.2.9-2 => procps-2.0.2-1[test]
+>!> Upgrading python-1.5.1-0a => python-1.5.1-1[test]
+>!> Upgrading python-devel-1.5.1-0a => python-devel-1.5.1-1[test]
+>!> Upgrading python-eclass-1.2-0 => python-eclass-1.2-2[test]
+>!> Upgrading qt-1.4.2-1 => qt-1.44-4[test]
+>!> Upgrading qt-devel-1.4.2-1 => qt-devel-1.44-4[test]
+>!> Upgrading rpm-2.5.5-2 => rpm-2.5.5-3[test]
+>!> Upgrading sendmail-8.8.7-7 => sendmail-8.9.3-1[test]
+>!> Upgrading setup-2.0-0a => setup-2.0-6[test]
+>!> Upgrading sh-utils-1.16-3 => sh-utils-1.16-7[test]
+>!> Upgrading slang-1.2.2-0 => slang-1.3.7-1[test]
+>!> Upgrading strace-3.1-3 => strace-4.0-2[test]
+>!> Upgrading svgalib-1.3.1-1 => svgalib-1.4.0-0[test]
+>!> Upgrading sysklogd-1.3.26-3 => sysklogd-1.3.31-1[test]
+>!> Upgrading tcsh-6.08.00-1 => tcsh-6.08.00-2[test]
+>!> Upgrading util-linux-2.7.1-5 => util-linux-2.9s-4[test]
+>!> Upgrading vixie-cron-3.0.1-18 => vixie-cron-3.0.1-19[test]
+>!> Upgrading 54 packages
+>!> Solution #1:
+>!> install XFree86-libs-3.3.5-1[test]
+>!> install gdbm-1.8.0-3[test]
+>!> install libstdc++-2.9.0-5[test]
+>!> install modutils-2.1.121-10[test]
+>!> upgrade DEV-3.3-0 => DEV-3.4-1[test]
+>!> upgrade LPRng-3.5.3-1 => LPRng-3.5.3-2[test]
+>!> upgrade LPRng-lpd-3.5.3-1 => LPRng-lpd-3.5.3-2[test]
+>!> upgrade SysVinit-2.76-0 => SysVinit-2.76.3-2[test]
+>!> upgrade SysVinit-scripts-1.04-0 => SysVinit-scripts-1.05-5[test]
+>!> upgrade autoconf-2.13-0 => autoconf-2.13-1[test]
+>!> upgrade bash-1.14.7-9 => bash-1.14.7-10[test]
+>!> upgrade binutils-2.9.1.0.19a-0 => binutils-2.9.1.0.21-2[test]
+>!> upgrade crontabs-1.10-2 => crontabs-1.12-1[test]
+>!> upgrade egcs-2.91.60-3 => egcs-2.91.66-5[test]
+>!> upgrade egcs-c++-2.91.60-3 => egcs-c++-2.91.66-5[test]
+>!> upgrade findutils-4.1-9 => findutils-4.1-11[test]
+>!> upgrade gdb-4.17-2 => gdb-4.17.0.11-2[test]
+>!> upgrade glibc-2.1-1 => glibc-2.1.2-1[test]
+>!> upgrade isapnptools-1.16-1 => isapnptools-1.18-1[test]
+>!> upgrade kbd-0.96-1 => kbd-0.99-1[test]
+>!> upgrade ld.so-1.9.9-2 => ld.so-1.9.11-1[test]
+>!> upgrade less-332-3 => less-340-1[test]
+>!> upgrade libgr-2.0.13-1 => libgr-2.0.13-2[test]
+>!> upgrade libpam-0.66-1 => libpam-0.66-3[test]
+>!> upgrade libpwdb-0.54-7 => libpwdb-0.54-8[test]
+>!> upgrade libz-1.0.2-1 => libz-1.0.2-2[test]
+>!> upgrade linux-kernel-binary-2.2.1-0a => linux-kernel-binary-2.2.13-1S[test]
+>!> upgrade linux-kernel-include-2.2.1-0a => linux-kernel-include-2.2.13-1S[test]
+>!> upgrade lisa-3.1-0 => lisa-4.0-7[test]
+>!> upgrade man-1.5f-1 => man-1.5f-5[test]
+>!> upgrade mtabase-1.0-5 => mtabase-1.0-8[test]
+>!> upgrade ncurses-4.2-1 => ncurses-4.2-4[test]
+>!> upgrade ncurses-devel-4.2-1 => ncurses-devel-4.2-4[test]
+>!> upgrade ncurses-devel-static-4.2-1 => ncurses-devel-static-4.2-4[test]
+>!> upgrade ncurses-termcap-devel-4.2-1 => ncurses-termcap-devel-4.2-4[test]
+>!> upgrade ncurses-termcap-devel-static-4.2-1 => ncurses-termcap-devel-static-4.2-4[test]
+>!> upgrade nis-client-2.0-0 => nis-client-2.0-8[test]
+>!> upgrade pciutils-1.99.4-1 => pciutils-2.0-1[test]
+>!> upgrade perl-5.005_02-0 => perl-5.005_02-1[test]
+>!> upgrade perl-add-5.005_02-0 => perl-add-5.005_02-1[test]
+>!> upgrade procmail-3.10-8 => procmail-3.13.1-1[test]
+>!> upgrade procps-1.2.9-2 => procps-2.0.2-1[test]
+>!> upgrade python-1.5.1-0a => python-1.5.1-1[test]
+>!> upgrade python-devel-1.5.1-0a => python-devel-1.5.1-1[test]
+>!> upgrade python-eclass-1.2-0 => python-eclass-1.2-2[test]
+>!> upgrade qt-1.4.2-1 => qt-1.44-4[test]
+>!> upgrade qt-devel-1.4.2-1 => qt-devel-1.44-4[test]
+>!> upgrade rpm-2.5.5-2 => rpm-2.5.5-3[test]
+>!> upgrade sendmail-8.8.7-7 => sendmail-8.9.3-1[test]
+>!> upgrade setup-2.0-0a => setup-2.0-6[test]
+>!> upgrade sh-utils-1.16-3 => sh-utils-1.16-7[test]
+>!> upgrade slang-1.2.2-0 => slang-1.3.7-1[test]
+>!> upgrade strace-3.1-3 => strace-4.0-2[test]
+>!> upgrade svgalib-1.3.1-1 => svgalib-1.4.0-0[test]
+>!> upgrade sysklogd-1.3.26-3 => sysklogd-1.3.31-1[test]
+>!> upgrade tcsh-6.08.00-1 => tcsh-6.08.00-2[test]
+>!> upgrade util-linux-2.7.1-5 => util-linux-2.9s-4[test]
+>!> upgrade vixie-cron-3.0.1-18 => vixie-cron-3.0.1-19[test]
+>!> installs=4, upgrades=54, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-4-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-4-test.xml
new file mode 100644 (file)
index 0000000..3f1e797
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-05reallive-system.xml"/>
+  <channel name="test" file="exercise-05reallive-packages.xml"/>
+</setup>
+
+<!-- 
+ -->
+<trial>
+  <subscribe channel="test" />
+  <upgrade/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-packages.err b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-packages.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-packages.out b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-packages.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-packages.xml b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-packages.xml
new file mode 100644 (file)
index 0000000..d7fe672
--- /dev/null
@@ -0,0 +1,20716 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>adduser</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.2</version>
+          <release>1</release>
+          <filename>adduser.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/sbin/adduser'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='foobar' op='=' version='1.2'/>
+      </requires>
+    </package>
+    <package>
+      <name>adjtimex</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.3</version>
+          <release>1</release>
+          <filename>adjtimex.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/adjtimex'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.3'/>
+        <dep name='libc.so.7'/>
+      </requires>
+    </package>
+    <package>
+      <name>aktion</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.3.6</version>
+          <release>1</release>
+          <filename>aktion.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/opt/kde/bin/aktion'/>
+      </provides>
+      <requires>
+        <dep name='kdelibs'/>
+        <dep name='xanim'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libkdecore.so.2'/>
+        <dep name='libkdeui.so.2'/>
+        <dep name='libkfile.so.2'/>
+        <dep name='libkfm.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libqt.so.1'/>
+        <dep name='libstdc++.so.2.9'/>
+      </requires>
+    </package>
+    <package>
+      <name>am-utils</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>6.0</version>
+          <release>8</release>
+          <filename>am-utils.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/rc.d/init.d/amd'/>
+        <dep name='/usr/bin/amq'/>
+        <dep name='/usr/sbin/amd'/>
+        <dep name='/usr/sbin/fsinfo'/>
+        <dep name='/usr/sbin/mk-amd-map'/>
+        <dep name='/usr/sbin/wire-test'/>
+      </provides>
+      <requires>
+        <dep name='SysVinit-scripts' op='&gt;=' version='1.05' release='4'/>
+        <dep name='SysVinit' op='&gt;=' version='2.76.3'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libgdbm.so.2'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='/bin/bash'/>
+      </requires>
+    </package>
+    <package>
+      <name>anonftp</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.0</version>
+          <release>1</release>
+          <filename>anonftp.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/home/ftp/bin/gzip'/>
+        <dep name='/home/ftp/bin/ls'/>
+        <dep name='/home/ftp/bin/tar'/>
+        <dep name='/home/ftp/bin/zcat'/>
+      </provides>
+    </package>
+    <package>
+      <name>apache</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.3.9</version>
+          <release>2</release>
+          <filename>apache.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libproxy.so' op='=' version='' release='*'/>
+        <dep name='mod_access.so'/>
+        <dep name='mod_actions.so'/>
+        <dep name='mod_alias.so'/>
+        <dep name='mod_asis.so'/>
+        <dep name='mod_auth.so'/>
+        <dep name='mod_auth_anon.so'/>
+        <dep name='mod_auth_dbm.so'/>
+        <dep name='mod_autoindex.so'/>
+        <dep name='mod_cern_meta.so'/>
+        <dep name='mod_cgi.so'/>
+        <dep name='mod_digest.so'/>
+        <dep name='mod_dir.so'/>
+        <dep name='mod_env.so'/>
+        <dep name='mod_expires.so'/>
+        <dep name='mod_headers.so'/>
+        <dep name='mod_imap.so'/>
+        <dep name='mod_include.so'/>
+        <dep name='mod_info.so'/>
+        <dep name='mod_log_config.so'/>
+        <dep name='mod_mime.so'/>
+        <dep name='mod_mime_magic.so'/>
+        <dep name='mod_negotiation.so'/>
+        <dep name='mod_rewrite.so'/>
+        <dep name='mod_setenvif.so'/>
+        <dep name='mod_speling.so'/>
+        <dep name='mod_status.so'/>
+        <dep name='mod_unique_id.so'/>
+        <dep name='mod_userdir.so'/>
+        <dep name='mod_usertrack.so'/>
+        <dep name='mod_vhost_alias.so'/>
+        <dep name='/etc/rc.d/init.d/httpd'/>
+        <dep name='/usr/bin/dbmmanage'/>
+        <dep name='/usr/bin/htdigest'/>
+        <dep name='/usr/bin/htpasswd'/>
+        <dep name='/usr/libexec/apache/libproxy.so'/>
+        <dep name='/usr/libexec/apache/mod_access.so'/>
+        <dep name='/usr/libexec/apache/mod_actions.so'/>
+        <dep name='/usr/libexec/apache/mod_alias.so'/>
+        <dep name='/usr/libexec/apache/mod_asis.so'/>
+        <dep name='/usr/libexec/apache/mod_auth.so'/>
+        <dep name='/usr/libexec/apache/mod_auth_anon.so'/>
+        <dep name='/usr/libexec/apache/mod_auth_dbm.so'/>
+        <dep name='/usr/libexec/apache/mod_autoindex.so'/>
+        <dep name='/usr/libexec/apache/mod_cern_meta.so'/>
+        <dep name='/usr/libexec/apache/mod_cgi.so'/>
+        <dep name='/usr/libexec/apache/mod_digest.so'/>
+        <dep name='/usr/libexec/apache/mod_dir.so'/>
+        <dep name='/usr/libexec/apache/mod_env.so'/>
+        <dep name='/usr/libexec/apache/mod_expires.so'/>
+        <dep name='/usr/libexec/apache/mod_headers.so'/>
+        <dep name='/usr/libexec/apache/mod_imap.so'/>
+        <dep name='/usr/libexec/apache/mod_include.so'/>
+        <dep name='/usr/libexec/apache/mod_info.so'/>
+        <dep name='/usr/libexec/apache/mod_log_config.so'/>
+        <dep name='/usr/libexec/apache/mod_mime.so'/>
+        <dep name='/usr/libexec/apache/mod_mime_magic.so'/>
+        <dep name='/usr/libexec/apache/mod_negotiation.so'/>
+        <dep name='/usr/libexec/apache/mod_rewrite.so'/>
+        <dep name='/usr/libexec/apache/mod_setenvif.so'/>
+        <dep name='/usr/libexec/apache/mod_speling.so'/>
+        <dep name='/usr/libexec/apache/mod_status.so'/>
+        <dep name='/usr/libexec/apache/mod_unique_id.so'/>
+        <dep name='/usr/libexec/apache/mod_userdir.so'/>
+        <dep name='/usr/libexec/apache/mod_usertrack.so'/>
+        <dep name='/usr/libexec/apache/mod_vhost_alias.so'/>
+        <dep name='/usr/sbin/ab'/>
+        <dep name='/usr/sbin/apachecfg'/>
+        <dep name='/usr/sbin/apachectl'/>
+        <dep name='/usr/sbin/httpd'/>
+        <dep name='/usr/sbin/logresolve'/>
+        <dep name='/usr/sbin/rotatelogs'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdb.so.3'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>apache-docs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.3.9</version>
+          <release>2</release>
+          <filename>apache-docs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>apache-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.3.9</version>
+          <release>2</release>
+          <filename>apache-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/sbin/apxs'/>
+      </provides>
+      <requires>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>at</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.1.7</version>
+          <release>1</release>
+          <filename>at.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/rc.d/init.d/atd'/>
+        <dep name='/usr/bin/at'/>
+        <dep name='/usr/bin/atq'/>
+        <dep name='/usr/bin/atrm'/>
+        <dep name='/usr/bin/batch'/>
+        <dep name='/usr/sbin/atd'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>aumix</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.22</version>
+          <release>1</release>
+          <filename>aumix.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/aumix'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libgpm.so.1'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>autoconf</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.13</version>
+          <release>1</release>
+          <filename>autoconf.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/autoconf'/>
+        <dep name='/usr/bin/autoheader'/>
+        <dep name='/usr/bin/autoreconf'/>
+        <dep name='/usr/bin/autoscan'/>
+        <dep name='/usr/bin/autoupdate'/>
+        <dep name='/usr/bin/ifnames'/>
+        <dep name='/usr/doc/autoconf-2.13/COPYING'/>
+      </provides>
+      <requires>
+        <dep name='awk'/>
+        <dep name='m4'/>
+        <dep name='mktemp'/>
+        <dep name='/bin/sh'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>automake</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.4</version>
+          <release>0</release>
+          <filename>automake.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/aclocal'/>
+        <dep name='/usr/bin/automake'/>
+        <dep name='/usr/doc/automake-1.4/COPYING'/>
+        <dep name='/usr/share/automake/acinstall'/>
+        <dep name='/usr/share/automake/config.guess'/>
+        <dep name='/usr/share/automake/config.sub'/>
+        <dep name='/usr/share/automake/elisp-comp'/>
+        <dep name='/usr/share/automake/install-sh'/>
+        <dep name='/usr/share/automake/mdate-sh'/>
+        <dep name='/usr/share/automake/missing'/>
+        <dep name='/usr/share/automake/mkinstalldirs'/>
+        <dep name='/usr/share/automake/ylwrap'/>
+      </provides>
+      <requires>
+        <dep name='autoconf' op='&gt;=' version='2.13'/>
+        <dep name='/bin/sh'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>bash</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.14.7</version>
+          <release>10</release>
+          <filename>bash.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/bash'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/bashbug'/>
+        <dep name='/usr/doc/bash-1.14.7/COPYING'/>
+      </provides>
+      <requires>
+        <dep name='mktemp'/>
+        <dep name='/usr/bin/perl'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>bash2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.03</version>
+          <release>1</release>
+          <filename>bash2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/bash2'/>
+      </provides>
+      <requires>
+        <dep name='/usr/bin/perl'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>bc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.05a</version>
+          <release>2</release>
+          <filename>bc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/bc'/>
+        <dep name='/usr/bin/dc'/>
+        <dep name='/usr/doc/bc-1.05a/Test/timetest'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libreadline.so.3'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>bdflush</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.6.2</version>
+          <release>1</release>
+          <filename>bdflush.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/sbin/update'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>biff+comsat</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.10</version>
+          <release>2</release>
+          <filename>biff+comsat.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/biff'/>
+        <dep name='/usr/sbin/in.comsat'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>bin86</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.4</version>
+          <release>1</release>
+          <filename>bin86.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/as86'/>
+        <dep name='/usr/bin/ld86'/>
+        <dep name='/usr/i386-linux/bin/as86'/>
+        <dep name='/usr/i386-linux/bin/ld86'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>bind</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>8.2.2</version>
+          <release>1</release>
+          <filename>bind.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/rc.d/init.d/named'/>
+        <dep name='/usr/sbin/named'/>
+        <dep name='/usr/sbin/named-bootconf'/>
+        <dep name='/usr/sbin/named-xfer'/>
+        <dep name='/usr/sbin/ndc'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>bind-doc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>8.2.2</version>
+          <release>1</release>
+          <filename>bind-doc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>bind-utils</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>8.2.2</version>
+          <release>1</release>
+          <filename>bind-utils.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/addr'/>
+        <dep name='/usr/bin/dig'/>
+        <dep name='/usr/bin/dnsquery'/>
+        <dep name='/usr/bin/host'/>
+        <dep name='/usr/bin/nslookup'/>
+        <dep name='/usr/bin/nsupdate'/>
+        <dep name='/usr/doc/bind-utils-8.2.2/README.h2n'/>
+        <dep name='/usr/sbin/dnskeygen'/>
+        <dep name='/usr/sbin/h2n'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>binutils-pilot</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.9.1.0.21</version>
+          <release>2</release>
+          <filename>binutils-pilot.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/m68k-PalmOS-coff/bin/as'/>
+        <dep name='/usr/m68k-PalmOS-coff/bin/ld'/>
+      </provides>
+      <requires>
+        <dep name='binutils'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libbfd-2.9.1.0.21.so.0'/>
+        <dep name='libc.so.6'/>
+        <dep name='libopcodes-2.9.1.0.21.so.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>binutils</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.9.1.0.21</version>
+          <release>2</release>
+          <filename>binutils.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libbfd-2.9.1.0.21.so.0'/>
+        <dep name='libopcodes-2.9.1.0.21.so.0'/>
+        <dep name='/usr/bin/addr2line'/>
+        <dep name='/usr/bin/ar'/>
+        <dep name='/usr/bin/as'/>
+        <dep name='/usr/bin/c++filt'/>
+        <dep name='/usr/bin/coffdump'/>
+        <dep name='/usr/bin/gprof'/>
+        <dep name='/usr/bin/i386-linux-as'/>
+        <dep name='/usr/bin/ld'/>
+        <dep name='/usr/bin/m68k-PalmOS-coff-as'/>
+        <dep name='/usr/bin/m68k-PalmOS-coff-gasp'/>
+        <dep name='/usr/bin/nlmconv'/>
+        <dep name='/usr/bin/nm'/>
+        <dep name='/usr/bin/objcopy'/>
+        <dep name='/usr/bin/objdump'/>
+        <dep name='/usr/bin/ranlib'/>
+        <dep name='/usr/bin/size'/>
+        <dep name='/usr/bin/srconv'/>
+        <dep name='/usr/bin/strings'/>
+        <dep name='/usr/bin/strip'/>
+        <dep name='/usr/bin/sysdump'/>
+        <dep name='/usr/i386-linux/bin/ar'/>
+        <dep name='/usr/i386-linux/bin/as'/>
+        <dep name='/usr/i386-linux/bin/ld'/>
+        <dep name='/usr/i386-linux/bin/nm'/>
+        <dep name='/usr/i386-linux/bin/ranlib'/>
+        <dep name='/usr/i386-linux/bin/strip'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libbfd-2.9.1.0.21.so.0'/>
+        <dep name='libc.so.6'/>
+        <dep name='libopcodes-2.9.1.0.21.so.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>bison</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.27</version>
+          <release>2</release>
+          <filename>bison.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/bison'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>bool</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>bool.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/false'/>
+        <dep name='/bin/true'/>
+        <dep name='/usr/doc/bool-2.0/COPYING'/>
+        <dep name='/usr/man/man1/false.1.gz'/>
+        <dep name='/usr/man/man1/true.1.gz'/>
+      </provides>
+    </package>
+    <package>
+      <name>bsd-finger</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.10</version>
+          <release>4</release>
+          <filename>bsd-finger.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/finger'/>
+        <dep name='/usr/sbin/in.fingerd'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>byacc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.9</version>
+          <release>4</release>
+          <filename>byacc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/byacc'/>
+        <dep name='/usr/bin/yacc'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>bzip2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.9.0b</version>
+          <release>1</release>
+          <filename>bzip2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/bunzip2'/>
+        <dep name='/bin/bzcat'/>
+        <dep name='/bin/bzip2'/>
+        <dep name='/bin/bzip2recover'/>
+        <dep name='/usr/bin/bzless'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>bzip2-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.9.0b</version>
+          <release>1</release>
+          <filename>bzip2-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>cdda2wav</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>3</release>
+          <filename>cdda2wav.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/cdda2wav'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>cdfs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.7</version>
+          <release>3</release>
+          <filename>cdfs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/cdinfo'/>
+        <dep name='/usr/bin/devdump'/>
+        <dep name='/usr/bin/isodetect'/>
+        <dep name='/usr/bin/isodump'/>
+        <dep name='/usr/bin/isoinfo'/>
+        <dep name='/usr/bin/isosize'/>
+        <dep name='/usr/bin/isovfy'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+      <obsoletes>
+        <dep name='cdfsprogs'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>cdparanoia</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>III.alpha9.4</version>
+          <release>4</release>
+          <filename>cdparanoia.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/cdparanoia'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>cdrecord</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.8a21</version>
+          <release>3</release>
+          <filename>cdrecord.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/cdrecord'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>cgetty</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>cgetty.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/sbin/getty'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+      <obsoletes>
+        <dep name='getty_ps'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>cheops</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.60pre5</version>
+          <release>3</release>
+          <filename>cheops.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='dns-monitor.so'/>
+        <dep name='ftp-monitor.so'/>
+        <dep name='generic-connect.so'/>
+        <dep name='http-monitor.so'/>
+        <dep name='ping-monitor.so'/>
+        <dep name='smtp-monitor.so'/>
+        <dep name='vnc-connect.so'/>
+        <dep name='/usr/X11R6/bin/cheops'/>
+        <dep name='/usr/X11R6/lib/cheops/plugins/dns-monitor.so'/>
+        <dep name='/usr/X11R6/lib/cheops/plugins/ftp-monitor.so'/>
+        <dep name='/usr/X11R6/lib/cheops/plugins/generic-connect.so'/>
+        <dep name='/usr/X11R6/lib/cheops/plugins/http-monitor.so'/>
+        <dep name='/usr/X11R6/lib/cheops/plugins/ping-monitor.so'/>
+        <dep name='/usr/X11R6/lib/cheops/plugins/smtp-monitor.so'/>
+        <dep name='/usr/X11R6/lib/cheops/plugins/vnc-connect.so'/>
+        <dep name='/usr/X11R6/share/cheops/bsd-small.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/bsd-tiny.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/bsd.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/cheops.conf'/>
+        <dep name='/usr/X11R6/share/cheops/cheops.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/desktop-small.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/desktop-tiny.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/desktop.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/hp-small.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/hp-tiny.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/hp.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/hub-small.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/hub-tiny.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/hub.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/ibm-small.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/ibm-tiny.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/ibm.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/icon.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/linux-small.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/linux-tiny.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/linux.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/macintosh-small.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/macintosh-tiny.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/macintosh.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/novell-small.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/novell-tiny.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/novell.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/point.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/printer-small.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/printer-tiny.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/printer.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/router-small.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/router-tiny.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/router.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/sco-small.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/sco-tiny.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/sco.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/services.conf'/>
+        <dep name='/usr/X11R6/share/cheops/sgi-small.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/sgi-tiny.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/sgi.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/solaris-small.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/solaris-tiny.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/solaris.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/unix-small.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/unix-tiny.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/unix.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/unknown-small.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/unknown-tiny.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/unknown.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/vms-small.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/vms-tiny.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/vms.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/windows-small.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/windows-tiny.xpm'/>
+        <dep name='/usr/X11R6/share/cheops/windows.xpm'/>
+      </provides>
+      <requires>
+        <dep name='gtk' op='&gt;=' version='1.0.6'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libgdk-1.2.so.0'/>
+        <dep name='libglib-1.2.so.0'/>
+        <dep name='libgmodule-1.2.so.0'/>
+        <dep name='libgtk-1.2.so.0'/>
+        <dep name='libm.so.6'/>
+        <dep name='libresolv.so.2'/>
+      </requires>
+    </package>
+    <package>
+      <name>cleandir</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>cleandir.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/cron.d/lib/cleandir'/>
+        <dep name='/usr/sbin/cleandir'/>
+      </provides>
+      <requires>
+        <dep name='crontabs' op='&gt;=' version='1.10'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>coas</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1</version>
+          <release>7</release>
+          <filename>coas.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='chat.so'/>
+        <dep name='clock.so'/>
+        <dep name='coremodule.so'/>
+        <dep name='curses.so'/>
+        <dep name='devname.so'/>
+        <dep name='dirglob.so'/>
+        <dep name='dmmodule.so'/>
+        <dep name='domainname.so'/>
+        <dep name='fdisk.so'/>
+        <dep name='fixrootdev.so'/>
+        <dep name='fstab.so'/>
+        <dep name='fsusage.so'/>
+        <dep name='groups.so'/>
+        <dep name='hostname.so'/>
+        <dep name='hosts.so'/>
+        <dep name='ifconfig.so'/>
+        <dep name='interrupts.so'/>
+        <dep name='ipv4.so'/>
+        <dep name='kernel.so'/>
+        <dep name='kinfo.so'/>
+        <dep name='lilo'/>
+        <dep name='lilo.so'/>
+        <dep name='list.so'/>
+        <dep name='logmodule.so'/>
+        <dep name='lstoptions.so'/>
+        <dep name='msgcatmodule.so'/>
+        <dep name='networks.so'/>
+        <dep name='options.so'/>
+        <dep name='overlay.so'/>
+        <dep name='printcap'/>
+        <dep name='qt.so'/>
+        <dep name='reboot.so'/>
+        <dep name='repositorymodule.so'/>
+        <dep name='resolver.so'/>
+        <dep name='rpm'/>
+        <dep name='shells.so'/>
+        <dep name='symlink.so'/>
+        <dep name='uiBinding.so'/>
+        <dep name='uifixfont.so'/>
+        <dep name='uname.so'/>
+        <dep name='unix.so'/>
+        <dep name='users.so'/>
+        <dep name='ypconf.so'/>
+        <dep name='/usr/bin/coas'/>
+        <dep name='/usr/bin/coastool'/>
+        <dep name='/usr/bin/kdesu'/>
+        <dep name='/usr/lib/coas/commands/add'/>
+        <dep name='/usr/lib/coas/commands/browse'/>
+        <dep name='/usr/lib/coas/commands/change'/>
+        <dep name='/usr/lib/coas/commands/dump'/>
+        <dep name='/usr/lib/coas/commands/remove'/>
+        <dep name='/usr/lib/coas/commands/repository'/>
+        <dep name='/usr/lib/coas/scripts/ctrldaemon'/>
+        <dep name='/usr/lib/coas/scripts/ctrlprinter'/>
+        <dep name='/usr/lib/coas/scripts/cxxgen'/>
+        <dep name='/usr/lib/coas/scripts/devel-setup'/>
+        <dep name='/usr/lib/coas/scripts/doc2man'/>
+        <dep name='/usr/lib/coas/scripts/fsaction'/>
+        <dep name='/usr/lib/coas/scripts/gpmrestart'/>
+        <dep name='/usr/lib/coas/scripts/homedir'/>
+        <dep name='/usr/lib/coas/scripts/ip-config'/>
+        <dep name='/usr/lib/coas/scripts/kbdupdate'/>
+        <dep name='/usr/lib/coas/scripts/kernel-module'/>
+        <dep name='/usr/lib/coas/scripts/linkrep'/>
+        <dep name='/usr/lib/coas/scripts/nisrestart'/>
+        <dep name='/usr/lib/coas/scripts/prepare'/>
+        <dep name='/usr/lib/coas/scripts/probe-serial'/>
+        <dep name='/usr/lib/coas/scripts/pygen'/>
+        <dep name='/usr/lib/coas/scripts/rcs'/>
+        <dep name='/usr/lib/coas/scripts/rpminstall'/>
+        <dep name='/usr/lib/coas/scripts/run-if-avail'/>
+        <dep name='/usr/lib/coas/scripts/sysinfo_wrapper'/>
+        <dep name='/usr/lib/coas/scripts/xauth-update'/>
+        <dep name='/usr/libexec/coas/lib/coremodule.so'/>
+        <dep name='/usr/libexec/coas/lib/dmmodule.so'/>
+        <dep name='/usr/libexec/coas/lib/logmodule.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/caldera/modules/list.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/caldera/modules/lstoptions.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/caldera/modules/options.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/generic/chat.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/generic/devname.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/generic/dirglob.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/generic/overlay.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/generic/symlink.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/lilo.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/network/tcpip/hosts.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/network/tcpip/ifconfig.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/network/tcpip/networks.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/network/tcpip/resolver.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/network/tcpip/ypconf.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/printcap.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/proc/interrupts.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/rpm.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/system/clock.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/system/domainname.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/system/fdisk.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/system/fixrootdev.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/system/fstab.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/system/fsusage.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/system/groups.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/system/hostname.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/system/kinfo.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/system/lilo.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/system/reboot.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/system/shells.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/system/uname.so'/>
+        <dep name='/usr/libexec/coas/lib/mapper/system/users.so'/>
+        <dep name='/usr/libexec/coas/lib/msgcatmodule.so'/>
+        <dep name='/usr/libexec/coas/lib/repositorymodule.so'/>
+        <dep name='/usr/libexec/coas/lib/type/string/unix.so'/>
+        <dep name='/usr/libexec/coas/lib/type/unsigned/ipv4.so'/>
+        <dep name='/usr/libexec/coas/lib/type/unsigned/kernel.so'/>
+        <dep name='/usr/libexec/coas/lib/type/unsigned/unix.so'/>
+        <dep name='/usr/libexec/coas/lib/ui/curses.so'/>
+        <dep name='/usr/libexec/coas/lib/ui/qt.so'/>
+        <dep name='/usr/libexec/coas/lib/uiBinding.so'/>
+        <dep name='/usr/libexec/coas/lib/uifixfont.so'/>
+        <dep name='/usr/libexec/coas/modules/clam.py'/>
+        <dep name='/usr/libexec/coas/modules/coas/welcome.py'/>
+        <dep name='/usr/libexec/coas/modules/dialog.py'/>
+        <dep name='/usr/libexec/coas/modules/hardware/serial.py'/>
+        <dep name='/usr/libexec/coas/modules/kernel.py'/>
+        <dep name='/usr/libexec/coas/modules/logm.py'/>
+        <dep name='/usr/libexec/coas/modules/network/common.py'/>
+        <dep name='/usr/libexec/coas/modules/network/ether.py'/>
+        <dep name='/usr/libexec/coas/modules/network/mail.py'/>
+        <dep name='/usr/libexec/coas/modules/network/tcpip/hosts.py'/>
+        <dep name='/usr/libexec/coas/modules/network/tcpip/interfaces.py'/>
+        <dep name='/usr/libexec/coas/modules/network/tcpip/nis.py'/>
+        <dep name='/usr/libexec/coas/modules/network/tcpip/options.py'/>
+        <dep name='/usr/libexec/coas/modules/network/tcpip/resolver.py'/>
+        <dep name='/usr/libexec/coas/modules/network/tcpip/services.py'/>
+        <dep name='/usr/libexec/coas/modules/peripherals/keyboard.py'/>
+        <dep name='/usr/libexec/coas/modules/peripherals/modem.py'/>
+        <dep name='/usr/libexec/coas/modules/peripherals/mouse.py'/>
+        <dep name='/usr/libexec/coas/modules/peripherals/printer.py'/>
+        <dep name='/usr/libexec/coas/modules/software.py'/>
+        <dep name='/usr/libexec/coas/modules/system/accounts.py'/>
+        <dep name='/usr/libexec/coas/modules/system/daemons.py'/>
+        <dep name='/usr/libexec/coas/modules/system/filesystem.py'/>
+        <dep name='/usr/libexec/coas/modules/system/hostname.py'/>
+        <dep name='/usr/libexec/coas/modules/system/lilo.py'/>
+        <dep name='/usr/libexec/coas/modules/system/resources.py'/>
+        <dep name='/usr/libexec/coas/modules/system/time.py'/>
+        <dep name='/usr/libexec/coas/utils/eisascan'/>
+        <dep name='/usr/libexec/coas/utils/ifscan'/>
+        <dep name='/usr/libexec/coas/utils/pciscan'/>
+        <dep name='/usr/libexec/coas/utils/pnpscan'/>
+        <dep name='/usr/libexec/printers/genericfilter'/>
+      </provides>
+      <requires>
+        <dep name='python-eclass'/>
+        <dep name='linux-kernel-binary' op='&gt;=' version='2.2.10'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libpam.so.0'/>
+        <dep name='libpthread.so.0'/>
+        <dep name='libqt.so.1'/>
+        <dep name='libstdc++.so.2.9'/>
+        <dep name='libdb.so.2'/>
+        <dep name='libgpm.so.1'/>
+        <dep name='libkdecore.so.2'/>
+        <dep name='libkdeui.so.2'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libz.so.1'/>
+        <dep name='/bin/bash'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/coas'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>coas-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1</version>
+          <release>7</release>
+          <filename>coas-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libcoas'/>
+        <dep name='/usr/lib/libcoas.so'/>
+        <dep name='/usr/share/coas/man/man3/xfree.3.gz'/>
+        <dep name='/usr/share/coas/man/man3/xmalloc.3.gz'/>
+        <dep name='/usr/share/coas/man/man3/xrealloc.3.gz'/>
+        <dep name='/usr/share/coas/man/man3/xstrcatdup.3.gz'/>
+        <dep name='/usr/share/coas/man/man3/xstrdup.3.gz'/>
+        <dep name='/usr/share/coas/man/man3/xstrndup.3.gz'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libstdc++.so.2.9'/>
+      </requires>
+    </package>
+    <package>
+      <name>col-tools</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>4</release>
+          <filename>col-tools.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/diskdump'/>
+        <dep name='/usr/bin/dus'/>
+        <dep name='/usr/bin/lt'/>
+        <dep name='/usr/bin/mkfind'/>
+        <dep name='/usr/bin/search'/>
+        <dep name='/usr/bin/tmount'/>
+        <dep name='/usr/bin/what'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+        <dep name='/usr/bin/python'/>
+      </requires>
+    </package>
+    <package>
+      <name>communicator-export</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.61</version>
+          <release>4</release>
+          <filename>communicator-export.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libjsd.so'/>
+        <dep name='libnullplugin-dynMotif.so'/>
+        <dep name='libnullplugin.so'/>
+        <dep name='/opt/netscape/communicator/java/classes/hpux/font.properties'/>
+        <dep name='/opt/netscape/communicator/java/classes/hpux/font.properties.bg'/>
+        <dep name='/opt/netscape/communicator/java/classes/hpux/font.properties.cs'/>
+        <dep name='/opt/netscape/communicator/java/classes/hpux/font.properties.el'/>
+        <dep name='/opt/netscape/communicator/java/classes/hpux/font.properties.hr'/>
+        <dep name='/opt/netscape/communicator/java/classes/hpux/font.properties.hu'/>
+        <dep name='/opt/netscape/communicator/java/classes/hpux/font.properties.ja'/>
+        <dep name='/opt/netscape/communicator/java/classes/hpux/font.properties.ko'/>
+        <dep name='/opt/netscape/communicator/java/classes/hpux/font.properties.pl'/>
+        <dep name='/opt/netscape/communicator/java/classes/hpux/font.properties.ro'/>
+        <dep name='/opt/netscape/communicator/java/classes/hpux/font.properties.ru'/>
+        <dep name='/opt/netscape/communicator/java/classes/hpux/font.properties.sk'/>
+        <dep name='/opt/netscape/communicator/java/classes/hpux/font.properties.sl'/>
+        <dep name='/opt/netscape/communicator/java/classes/hpux/font.properties.tr'/>
+        <dep name='/opt/netscape/communicator/java/classes/hpux/font.properties.zh_GB2312'/>
+        <dep name='/opt/netscape/communicator/java/classes/hpux/font.properties.zh_TW_Big5'/>
+        <dep name='/opt/netscape/communicator/java/classes/hpux/font.properties.zh_TW_CNS11643'/>
+        <dep name='/opt/netscape/communicator/libjsd.so'/>
+        <dep name='/opt/netscape/communicator/libnullplugin-dynMotif.so'/>
+        <dep name='/opt/netscape/communicator/libnullplugin.so'/>
+        <dep name='/opt/netscape/communicator/movemail'/>
+        <dep name='/opt/netscape/communicator/netscape'/>
+        <dep name='/opt/netscape/communicator/netscape-dynMotif'/>
+        <dep name='/opt/netscape/communicator/netscape-statMotif'/>
+        <dep name='/opt/netscape/communicator/plugins/cpPack1.jar'/>
+        <dep name='/opt/netscape/communicator/vreg'/>
+        <dep name='/usr/bin/browser'/>
+        <dep name='/usr/bin/netscape'/>
+      </provides>
+      <requires>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXpm.so.4'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.5'/>
+        <dep name='libdl.so.1'/>
+        <dep name='libg++.so.27'/>
+        <dep name='libm.so.5'/>
+        <dep name='libstdc++.so.27'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>copyrights</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.2</version>
+          <release>1</release>
+          <filename>copyrights.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>cpio</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.4.2</version>
+          <release>3</release>
+          <filename>cpio.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/cpio'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libnsl.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>cracklib</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.7</version>
+          <release>1</release>
+          <filename>cracklib.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/crack/mkdict'/>
+        <dep name='/usr/lib/crack/new-dict'/>
+        <dep name='/usr/lib/crack/packer'/>
+        <dep name='/usr/lib/crack/testlib'/>
+        <dep name='/usr/lib/crack/testnum'/>
+        <dep name='/usr/lib/crack/teststr'/>
+        <dep name='/usr/lib/crack/unpacker'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>crontabs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.12</version>
+          <release>1</release>
+          <filename>crontabs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/sbin/cronloop'/>
+      </provides>
+      <requires>
+        <dep name='cron'/>
+        <dep name='/bin/bash'/>
+      </requires>
+    </package>
+    <package>
+      <name>cvs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.10.6</version>
+          <release>1</release>
+          <filename>cvs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/cvs'/>
+        <dep name='/usr/bin/cvsbug'/>
+        <dep name='/usr/bin/rcs2log'/>
+        <dep name='/usr/doc/cvs-1.10.6/COPYING'/>
+        <dep name='/usr/lib/cvs/contrib/clmerge'/>
+        <dep name='/usr/lib/cvs/contrib/cln_hist'/>
+        <dep name='/usr/lib/cvs/contrib/commit_prep'/>
+        <dep name='/usr/lib/cvs/contrib/cvs2vendor'/>
+        <dep name='/usr/lib/cvs/contrib/cvs_acls'/>
+        <dep name='/usr/lib/cvs/contrib/cvscheck'/>
+        <dep name='/usr/lib/cvs/contrib/log'/>
+        <dep name='/usr/lib/cvs/contrib/log_accum'/>
+        <dep name='/usr/lib/cvs/contrib/mfpipe'/>
+        <dep name='/usr/lib/cvs/contrib/rcs-to-cvs'/>
+        <dep name='/usr/lib/cvs/contrib/rcs2log'/>
+        <dep name='/usr/lib/cvs/contrib/rcslock'/>
+        <dep name='/usr/lib/cvs/contrib/sccs2rcs'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+        <dep name='/bin/tcsh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>cvs-doc-ps</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.10.6</version>
+          <release>1</release>
+          <filename>cvs-doc-ps.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>dbview</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0.3</version>
+          <release>3</release>
+          <filename>dbview.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/dbview'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>ddd</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.1.5</version>
+          <release>1</release>
+          <filename>ddd.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/ddd'/>
+      </provides>
+      <requires>
+        <dep name='debugger'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXaw.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXp.so.6'/>
+        <dep name='libXpm.so.4'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libstdc++.so.2.9'/>
+      </requires>
+    </package>
+    <package>
+      <name>ddd-doc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.1.5</version>
+          <release>1</release>
+          <filename>ddd-doc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>dejagnu</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.3.0.19981026</version>
+          <release>1</release>
+          <filename>dejagnu.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/runtest'/>
+        <dep name='/usr/doc/dejagnu-1.3.0.19981026/COPYING'/>
+        <dep name='/usr/share/dejagnu/config.guess'/>
+        <dep name='/usr/share/dejagnu/runtest.exp'/>
+      </provides>
+      <requires>
+        <dep name='expect'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>DEV</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.4</version>
+          <release>1</release>
+          <filename>DEV.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/dev/core'/>
+        <dep name='/dev/fd'/>
+        <dep name='/dev/stderr'/>
+        <dep name='/dev/stdin'/>
+        <dep name='/dev/stdout'/>
+        <dep name='/sbin/makedev'/>
+      </provides>
+      <requires>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>dhcp2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>0</release>
+          <filename>dhcp2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/dhclient-script'/>
+        <dep name='/etc/rc.d/init.d/dhcpd'/>
+        <dep name='/sbin/dhclient'/>
+        <dep name='/usr/sbin/dhcpd'/>
+        <dep name='/usr/sbin/dhcrelay'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+      <obsoletes>
+        <dep name='dhcpd'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>dhcpcd</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.3.17p4</version>
+          <release>0</release>
+          <filename>dhcpcd.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/sysconfig/network-scripts/ifdown-dhcp'/>
+        <dep name='/etc/sysconfig/network-scripts/ifup-dhcp'/>
+        <dep name='/sbin/dhcpcd'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>dhcpd</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0pl2</version>
+          <release>3</release>
+          <filename>dhcpd.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/rc.d/init.d/dhcpd'/>
+        <dep name='/usr/sbin/dhcpd'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+      <conflicts>
+        <dep name='bootp'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>diald</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.16</version>
+          <release>1</release>
+          <filename>diald.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/dctrl'/>
+        <dep name='/usr/sbin/diald'/>
+      </provides>
+      <requires>
+        <dep name='ppp'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>dialog</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.6</version>
+          <release>6</release>
+          <filename>dialog.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/dialog'/>
+        <dep name='/usr/doc/dialog-0.6/samples/checklist'/>
+        <dep name='/usr/doc/dialog-0.6/samples/guage'/>
+        <dep name='/usr/doc/dialog-0.6/samples/infobox'/>
+        <dep name='/usr/doc/dialog-0.6/samples/inputbox'/>
+        <dep name='/usr/doc/dialog-0.6/samples/menubox'/>
+        <dep name='/usr/doc/dialog-0.6/samples/msgbox'/>
+        <dep name='/usr/doc/dialog-0.6/samples/radiolist'/>
+        <dep name='/usr/doc/dialog-0.6/samples/textbox'/>
+        <dep name='/usr/doc/dialog-0.6/samples/yesno'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>dialscripts</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.1</version>
+          <release>1</release>
+          <filename>dialscripts.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='dialscripts'/>
+        <dep name='/etc/ppp/t-online.down'/>
+        <dep name='/etc/ppp/t-online.up.sample'/>
+        <dep name='/etc/ppp/t-online.wrap'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>diffutils</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.7b</version>
+          <release>0</release>
+          <filename>diffutils.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/cmp'/>
+        <dep name='/usr/bin/diff'/>
+        <dep name='/usr/bin/diff3'/>
+        <dep name='/usr/bin/sdiff'/>
+        <dep name='/usr/doc/diffutils-2.7b/COPYING'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>dip</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.7o</version>
+          <release>9</release>
+          <filename>dip.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/sbin/dip'/>
+        <dep name='/usr/sbin/diplogin'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>dosemu</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.98.5</version>
+          <release>3</release>
+          <filename>dosemu.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/dexeconfig'/>
+        <dep name='/usr/bin/dos'/>
+        <dep name='/usr/bin/dosdebug'/>
+        <dep name='/usr/bin/dosexec'/>
+        <dep name='/usr/bin/mkfatimage16'/>
+        <dep name='/usr/bin/scsicheck'/>
+        <dep name='/usr/bin/xdos'/>
+        <dep name='/usr/bin/xtermdos'/>
+        <dep name='/usr/lib/dosemu/bin/dos'/>
+        <dep name='/usr/lib/dosemu/bin/dosdebug'/>
+        <dep name='/usr/lib/dosemu/bin/dosexec'/>
+        <dep name='/usr/lib/dosemu/bin/mkfatimage16'/>
+        <dep name='/usr/lib/dosemu/bin/scsicheck'/>
+        <dep name='/usr/lib/dosemu/bin/xdos'/>
+        <dep name='/usr/lib/dosemu/dexe/check-mtools'/>
+        <dep name='/usr/lib/dosemu/dexe/do_mtools'/>
+        <dep name='/usr/lib/dosemu/dexe/extract-dos'/>
+        <dep name='/usr/lib/dosemu/dexe/mkdexe'/>
+        <dep name='/usr/lib/dosemu/dexe/myxcopy'/>
+        <dep name='/usr/lib/dosemu/etc/xtermdos'/>
+        <dep name='/usr/lib/dosemu/first-test'/>
+        <dep name='/usr/lib/dosemu/gnats/get-email.sh'/>
+        <dep name='/usr/lib/dosemu/gnats/send-pr'/>
+        <dep name='/usr/lib/dosemu/gnats/send-pr.sh'/>
+        <dep name='/usr/lib/dosemu/set-permissions'/>
+        <dep name='/usr/lib/dosemu/setup-dosemu'/>
+        <dep name='/usr/lib/dosemu/setup-hdimage'/>
+        <dep name='/usr/lib/dosemu/setup/compiletime_setup.tk'/>
+        <dep name='/usr/lib/dosemu/setup/parser/parser'/>
+        <dep name='/usr/lib/dosemu/setup/runtime_setup.sh'/>
+        <dep name='/usr/lib/dosemu/setup/runtime_setup.tk'/>
+        <dep name='/usr/lib/dosemu/setup/setup.tk'/>
+        <dep name='/usr/lib/dosemu/src/tools/periph/bootsect'/>
+        <dep name='/usr/lib/dosemu/src/tools/periph/dexeconfig'/>
+        <dep name='/usr/lib/dosemu/src/tools/periph/getrom'/>
+        <dep name='/usr/lib/dosemu/src/tools/periph/hdinfo'/>
+        <dep name='/usr/lib/dosemu/src/tools/periph/mkfatimage'/>
+        <dep name='/usr/lib/dosemu/src/tools/periph/mkhdimage'/>
+        <dep name='/usr/lib/dosemu/src/tools/periph/putrom'/>
+        <dep name='/usr/lib/dosemu/src/tools/tools86'/>
+        <dep name='/usr/lib/dosemu/submit-bug-report'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='/bin/bash'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>drdos-hdimage-eval</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>7.03</version>
+          <release>2</release>
+          <filename>drdos-hdimage-eval.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>dump</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.4b4</version>
+          <release>4</release>
+          <filename>dump.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='rmt'/>
+        <dep name='/etc/rmt'/>
+        <dep name='/sbin/dump'/>
+        <dep name='/sbin/rdump'/>
+        <dep name='/sbin/restore'/>
+        <dep name='/sbin/rmt'/>
+        <dep name='/sbin/rrestore'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libcom_err.so.2'/>
+        <dep name='libext2fs.so.2'/>
+      </requires>
+    </package>
+    <package>
+      <name>dviutils</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>8</release>
+          <filename>dviutils.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/opt/teTeX/bin/a4toa5'/>
+        <dep name='/opt/teTeX/bin/dvibook'/>
+        <dep name='/opt/teTeX/bin/dviconcat'/>
+        <dep name='/opt/teTeX/bin/dviselect'/>
+        <dep name='/opt/teTeX/bin/dvitodvi'/>
+      </provides>
+      <requires>
+        <dep name='teTeX'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='/bin/tcsh'/>
+      </requires>
+    </package>
+    <package>
+      <name>ed</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.2</version>
+          <release>5</release>
+          <filename>ed.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/ed'/>
+        <dep name='/bin/red'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>egcs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.91.66</version>
+          <release>5</release>
+          <filename>egcs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='gcc'/>
+        <dep name='/lib/cpp'/>
+        <dep name='/usr/bin/cc'/>
+        <dep name='/usr/bin/gcc'/>
+        <dep name='/usr/bin/i686-linux-gcc'/>
+        <dep name='/usr/bin/protoize'/>
+        <dep name='/usr/bin/unprotoize'/>
+        <dep name='/usr/lib/gcc-lib/i686-linux/egcs-2.91.66/cc1'/>
+        <dep name='/usr/lib/gcc-lib/i686-linux/egcs-2.91.66/cpp'/>
+      </provides>
+      <requires>
+        <dep name='binutils'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>egcs-c++</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.91.66</version>
+          <release>5</release>
+          <filename>egcs-c++.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/c++'/>
+        <dep name='/usr/bin/g++'/>
+        <dep name='/usr/lib/gcc-lib/i686-linux/egcs-2.91.66/cc1plus'/>
+        <dep name='/usr/lib/libstdc++.so'/>
+      </provides>
+      <requires>
+        <dep name='gcc'/>
+        <dep name='libstdc++' op='=' version='2.9.0'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>egcs-doc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.91.66</version>
+          <release>5</release>
+          <filename>egcs-doc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>egcs-objc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.91.66</version>
+          <release>5</release>
+          <filename>egcs-objc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/gcc-lib/i686-linux/egcs-2.91.66/cc1obj'/>
+      </provides>
+      <requires>
+        <dep name='gcc'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>eject</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.2</version>
+          <release>1</release>
+          <filename>eject.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/eject'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>enscript</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.6.1</version>
+          <release>4</release>
+          <filename>enscript.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/diffpp'/>
+        <dep name='/usr/bin/enscript'/>
+        <dep name='/usr/bin/mkafmmap'/>
+        <dep name='/usr/bin/over'/>
+        <dep name='/usr/bin/sliceprint'/>
+        <dep name='/usr/bin/states'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>expect</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>5.28</version>
+          <release>1</release>
+          <filename>expect.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libexpect5.28.so'/>
+        <dep name='/usr/bin/autoexpect'/>
+        <dep name='/usr/bin/dislocate'/>
+        <dep name='/usr/bin/expect'/>
+        <dep name='/usr/bin/expectk'/>
+        <dep name='/usr/bin/timed-read'/>
+        <dep name='/usr/bin/timed-run'/>
+        <dep name='/usr/bin/xkibitz'/>
+        <dep name='/usr/lib/expect5.28/pkgIndex.tcl'/>
+        <dep name='/usr/lib/libexpect.so'/>
+        <dep name='/usr/lib/libexpect5.28.1.so'/>
+        <dep name='/usr/share/expect-5.28/Demos/autopasswd'/>
+        <dep name='/usr/share/expect-5.28/Demos/cryptdir'/>
+        <dep name='/usr/share/expect-5.28/Demos/decryptdir'/>
+        <dep name='/usr/share/expect-5.28/Demos/ftp-rfc'/>
+        <dep name='/usr/share/expect-5.28/Demos/kibitz'/>
+        <dep name='/usr/share/expect-5.28/Demos/lpunlock'/>
+        <dep name='/usr/share/expect-5.28/Demos/mkpasswd'/>
+        <dep name='/usr/share/expect-5.28/Demos/passmass'/>
+        <dep name='/usr/share/expect-5.28/Demos/rftp'/>
+        <dep name='/usr/share/expect-5.28/Demos/rlogin-cwd'/>
+        <dep name='/usr/share/expect-5.28/Demos/tknewsbiff'/>
+        <dep name='/usr/share/expect-5.28/Demos/tkpasswd'/>
+        <dep name='/usr/share/expect-5.28/Demos/unbuffer'/>
+        <dep name='/usr/share/expect-5.28/Demos/weather'/>
+        <dep name='/usr/share/expect-5.28/Demos/xpstat'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libexpect5.28.so'/>
+        <dep name='libm.so.6'/>
+        <dep name='libtcl8.0.so'/>
+        <dep name='libtk8.0.so'/>
+        <dep name='libutil.so.1'/>
+        <dep name='/usr/bin/expect'/>
+        <dep name='/usr/bin/expectk'/>
+      </requires>
+    </package>
+    <package>
+      <name>expect-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>5.28</version>
+          <release>1</release>
+          <filename>expect-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='expect-devel' op='=' version='5.28'/>
+      </requires>
+    </package>
+    <package>
+      <name>expect-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>5.28</version>
+          <release>1</release>
+          <filename>expect-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='expect' op='=' version='5.28'/>
+      </requires>
+    </package>
+    <package>
+      <name>ext2fs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.14</version>
+          <release>2</release>
+          <filename>ext2fs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libcom_err.so.2'/>
+        <dep name='libe2p.so.2'/>
+        <dep name='libext2fs.so.2'/>
+        <dep name='libss.so.2'/>
+        <dep name='libuuid.so.1'/>
+        <dep name='/lib/libcom_err.so.2.0'/>
+        <dep name='/lib/libe2p.so.2.3'/>
+        <dep name='/lib/libext2fs.so.2.4'/>
+        <dep name='/lib/libss.so.2.0'/>
+        <dep name='/lib/libuuid.so.1.2'/>
+        <dep name='/sbin/badblocks'/>
+        <dep name='/sbin/debugfs'/>
+        <dep name='/sbin/dumpe2fs'/>
+        <dep name='/sbin/e2fsck'/>
+        <dep name='/sbin/e2label'/>
+        <dep name='/sbin/fsck'/>
+        <dep name='/sbin/fsck.ext2'/>
+        <dep name='/sbin/mke2fs'/>
+        <dep name='/sbin/mkfs.ext2'/>
+        <dep name='/sbin/tune2fs'/>
+        <dep name='/usr/bin/chattr'/>
+        <dep name='/usr/bin/lsattr'/>
+        <dep name='/usr/sbin/mklost+found'/>
+      </provides>
+      <requires>
+        <dep name='/sbin/ldconfig'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libcom_err.so.2'/>
+        <dep name='libe2p.so.2'/>
+        <dep name='libext2fs.so.2'/>
+        <dep name='libss.so.2'/>
+        <dep name='libuuid.so.1'/>
+      </requires>
+      <obsoletes>
+        <dep name='e2fsprogs'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>ext2fs-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.14</version>
+          <release>2</release>
+          <filename>ext2fs-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ext2fs-devel' op='=' version='1.14'/>
+      </requires>
+    </package>
+    <package>
+      <name>ext2fs-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.14</version>
+          <release>2</release>
+          <filename>ext2fs-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/compile_et'/>
+        <dep name='/usr/bin/mk_cmds'/>
+        <dep name='/usr/lib/libcom_err.so'/>
+        <dep name='/usr/lib/libe2p.so'/>
+        <dep name='/usr/lib/libext2fs.so'/>
+        <dep name='/usr/lib/libss.so'/>
+        <dep name='/usr/lib/libuuid.so'/>
+      </provides>
+      <requires>
+        <dep name='ext2fs' op='=' version='1.14'/>
+        <dep name='/bin/sh'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>faq</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>19990203</version>
+          <release>2</release>
+          <filename>faq.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/Accessability.html'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/ArrowLeft.gif'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/ArrowRight.gif'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/AvoidZombies.html'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/BookSearch.gif'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/Checkmark.gif'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/CloneFlags.html'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/Comparison.html'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/Debugging.html'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/Dictionary.html'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/GraySea.gif'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/House.gif'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/Languages.html'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/LearnMore.html'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/LinusCode.html'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/Mailbox.gif'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/OSsCompared.html'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/Problems.html'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/ProgHeuristics.html'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/Reentrancy.html'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/Scheduling.html'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/StdLibs.html'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/Support.html'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/SystemCall.html'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/ThreadLibs.html'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/ThreadingApps.html'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/Types.html'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/clone.c'/>
+        <dep name='/usr/doc/FAQ/Threads-FAQ/index.html'/>
+      </provides>
+    </package>
+    <package>
+      <name>fatfs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2</version>
+          <release>2</release>
+          <filename>fatfs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/sbin/dosfsck'/>
+        <dep name='/sbin/fsck.msdos'/>
+        <dep name='/sbin/fsck.vfat'/>
+        <dep name='/sbin/mkdosfs'/>
+        <dep name='/sbin/mkfs.msdos'/>
+        <dep name='/sbin/mkfs.vfat'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>fbset</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.1</version>
+          <release>2</release>
+          <filename>fbset.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/doc/fbset-2.1/modeline2fb'/>
+        <dep name='/usr/man/man5/fb.modes.5.gz'/>
+        <dep name='/usr/man/man8/fbset.8.gz'/>
+        <dep name='/usr/sbin/fbset'/>
+        <dep name='/usr/sbin/setvesafb'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/bash'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>fdutils</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>5.2</version>
+          <release>3</release>
+          <filename>fdutils.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/floppycontrol'/>
+        <dep name='/usr/bin/floppymeter'/>
+        <dep name='/usr/bin/getfdprm'/>
+        <dep name='/usr/bin/setfdprm'/>
+        <dep name='/usr/bin/superformat'/>
+        <dep name='/usr/bin/xdfcopy'/>
+        <dep name='/usr/bin/xdfformat'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>fetchmail</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>5.0.4</version>
+          <release>0</release>
+          <filename>fetchmail.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/fetchmail'/>
+        <dep name='/usr/bin/fetchmailconf'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libresolv.so.2'/>
+        <dep name='/usr/bin/env'/>
+      </requires>
+    </package>
+    <package>
+      <name>fhs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>fhs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>file</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.27</version>
+          <release>1</release>
+          <filename>file.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/file'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>fileutils</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.0</version>
+          <release>1</release>
+          <filename>fileutils.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/chgrp'/>
+        <dep name='/bin/chmod'/>
+        <dep name='/bin/chown'/>
+        <dep name='/bin/cp'/>
+        <dep name='/bin/dd'/>
+        <dep name='/bin/df'/>
+        <dep name='/bin/ln'/>
+        <dep name='/bin/ls'/>
+        <dep name='/bin/mkdir'/>
+        <dep name='/bin/mknod'/>
+        <dep name='/bin/mv'/>
+        <dep name='/bin/rm'/>
+        <dep name='/bin/rmdir'/>
+        <dep name='/bin/sync'/>
+        <dep name='/usr/bin/dir'/>
+        <dep name='/usr/bin/du'/>
+        <dep name='/usr/bin/install'/>
+        <dep name='/usr/bin/mkfifo'/>
+        <dep name='/usr/bin/touch'/>
+        <dep name='/usr/bin/vdir'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>findutils</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.1</version>
+          <release>11</release>
+          <filename>findutils.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/cron.d/lib/update-locatedb'/>
+        <dep name='/usr/bin/find'/>
+        <dep name='/usr/bin/locate'/>
+        <dep name='/usr/bin/updatedb'/>
+        <dep name='/usr/bin/xargs'/>
+        <dep name='/usr/libexec/findutils/bigram'/>
+        <dep name='/usr/libexec/findutils/code'/>
+        <dep name='/usr/libexec/findutils/frcode'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/bash'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>flex</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.5.4</version>
+          <release>1</release>
+          <filename>flex.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/flex'/>
+        <dep name='/usr/bin/flex++'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>freeciv</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.8.0</version>
+          <release>1</release>
+          <filename>freeciv.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/civ'/>
+        <dep name='/usr/X11R6/bin/civclient'/>
+        <dep name='/usr/X11R6/bin/civserver'/>
+        <dep name='/usr/X11R6/bin/civserver.bin'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXaw3d.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXpm.so.4'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>g77</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.91.66</version>
+          <release>5</release>
+          <filename>g77.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/f77'/>
+        <dep name='/usr/bin/g77'/>
+        <dep name='/usr/lib/gcc-lib/i686-linux/egcs-2.91.66/f771'/>
+      </provides>
+      <requires>
+        <dep name='gcc'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>gawk</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.0.3</version>
+          <release>3</release>
+          <filename>gawk.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='awk'/>
+        <dep name='/usr/bin/awk'/>
+        <dep name='/usr/bin/gawk'/>
+        <dep name='/usr/bin/igawk'/>
+        <dep name='/usr/libexec/awk/grcat'/>
+        <dep name='/usr/libexec/awk/pwcat'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>gawk-doc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.0.3</version>
+          <release>3</release>
+          <filename>gawk-doc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>gcal</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.40</version>
+          <release>1</release>
+          <filename>gcal.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/gcal'/>
+        <dep name='/usr/bin/gcal2txt'/>
+        <dep name='/usr/bin/tcal'/>
+        <dep name='/usr/bin/txt2gcal'/>
+        <dep name='/usr/doc/gcal-2.40/COPYING'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>gd</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.3</version>
+          <release>4</release>
+          <filename>gd.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/bdftogd'/>
+        <dep name='/usr/bin/gddemo'/>
+        <dep name='/usr/bin/giftogd'/>
+        <dep name='/usr/bin/webgif'/>
+        <dep name='/usr/lib/libgd.a'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>gdb</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.17.0.11</version>
+          <release>2</release>
+          <filename>gdb.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='debugger'/>
+        <dep name='/usr/bin/gdb'/>
+        <dep name='/usr/doc/gdb-4.17.0.11-2/COPYING'/>
+        <dep name='/usr/doc/gdb-4.17.0.11-2/NEWS'/>
+        <dep name='/usr/doc/gdb-4.17.0.11-2/README'/>
+        <dep name='/usr/doc/gdb-4.17.0.11-2/TODO'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>gdb-doc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.17.0.11</version>
+          <release>2</release>
+          <filename>gdb-doc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>gdbm</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.8.0</version>
+          <release>3</release>
+          <filename>gdbm.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libgdbm.so.1'/>
+        <dep name='libgdbm.so.2'/>
+        <dep name='/usr/lib/libgdbm.so.1'/>
+        <dep name='/usr/lib/libgdbm.so.2.0.0'/>
+      </provides>
+      <requires>
+        <dep name='/sbin/ldconfig'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>gdbm-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.8.0</version>
+          <release>3</release>
+          <filename>gdbm-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='gdbm-devel' op='=' version='1.8.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>gdbm-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.8.0</version>
+          <release>3</release>
+          <filename>gdbm-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/libgdbm.so'/>
+      </provides>
+      <requires>
+        <dep name='gdbm' op='=' version='1.8.0'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>gettext</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.10.35</version>
+          <release>1</release>
+          <filename>gettext.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/gettext'/>
+        <dep name='/usr/bin/gettextize'/>
+        <dep name='/usr/bin/msgcmp'/>
+        <dep name='/usr/bin/msgcomm'/>
+        <dep name='/usr/bin/msgfmt'/>
+        <dep name='/usr/bin/msgmerge'/>
+        <dep name='/usr/bin/msgunfmt'/>
+        <dep name='/usr/bin/xgettext'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>ghostscript-fonts</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>5.10</version>
+          <release>2</release>
+          <filename>ghostscript-fonts.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/lib/X11/fonts/ghostscript'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/bchb.afm'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/bchb.pfa'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/bchbi.afm'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/bchbi.pfa'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/bchr.afm'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/bchr.pfa'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/bchri.afm'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/bchri.pfa'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/fcyr.afm'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/fcyr.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/fcyri.afm'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/fcyri.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/fhirw.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/fhirw.pfm'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/fkarw.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/fkarw.pfm'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrger.pfa'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrgerb.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrgerd.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrgero.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrgkc.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrgks.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrgrr.pfa'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrgrrb.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrgrro.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hritr.pfa'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hritrb.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hritro.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrpld.pfa'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrpldb.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrpldbi.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrpldi.pfa'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrplr.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrplrb.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrplrbo.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrplro.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrpls.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrplsb.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrplsbo.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrplso.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrplt.pfa'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrpltb.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrpltbi.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrplti.pfa'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrscc.pfa'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrsccb.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrscco.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrscs.pfa'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrscsb.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrscso.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/hrsyr.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/putb.pfa'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/putbi.pfa'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/putr.pfa'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/putri.pfa'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/u003043t.afm'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/u003043t.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/u003043t.pfm'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/u004006t.afm'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/u004006t.gsf'/>
+        <dep name='/usr/share/ghostscript/5.10/fonts/u004006t.pfm'/>
+      </provides>
+    </package>
+    <package>
+      <name>ghostscript-doc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>5.10</version>
+          <release>2</release>
+          <filename>ghostscript-doc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>ghostscript</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>5.10</version>
+          <release>2</release>
+          <filename>ghostscript.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='ghostscript'/>
+        <dep name='/usr/bin/bdftops'/>
+        <dep name='/usr/bin/font2c'/>
+        <dep name='/usr/bin/ghostscript'/>
+        <dep name='/usr/bin/gs'/>
+        <dep name='/usr/bin/gsbj'/>
+        <dep name='/usr/bin/gsdj'/>
+        <dep name='/usr/bin/gsdj500'/>
+        <dep name='/usr/bin/gslj'/>
+        <dep name='/usr/bin/gslp'/>
+        <dep name='/usr/bin/gsnd'/>
+        <dep name='/usr/bin/pdf2dsc'/>
+        <dep name='/usr/bin/pdf2ps'/>
+        <dep name='/usr/bin/printafm'/>
+        <dep name='/usr/bin/ps2ascii'/>
+        <dep name='/usr/bin/ps2epsi'/>
+        <dep name='/usr/bin/ps2pdf'/>
+        <dep name='/usr/bin/wftopfa'/>
+        <dep name='/usr/share/ghostscript/5.10/README'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libpng.so.1'/>
+        <dep name='libz.so.1'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>giftrans</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.12.2</version>
+          <release>2</release>
+          <filename>giftrans.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/giftrans'/>
+        <dep name='/usr/man/man1/giftrans.1.gz'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>gimp</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0.4</version>
+          <release>1</release>
+          <filename>gimp.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libgck.so.1'/>
+        <dep name='libgimp.so.1'/>
+        <dep name='libgimpui.so.1'/>
+        <dep name='/usr/X11R6/bin/gimp'/>
+        <dep name='/usr/X11R6/bin/gimptool'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/AlienMap'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/CEL'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/CML_explorer'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/MapObject'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/align_layers'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/animationplay'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/animoptimize'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/apply_lens'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/autocrop'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/autostretch_hsv'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/blinds'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/blur'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/bmp'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/bumpmap'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/bz2'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/c_astretch'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/checkerboard'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/colorify'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/compose'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/convmatrix'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/cubism'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/dbbrowser'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/decompose'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/deinterlace'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/depthmerge'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/despeckle'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/destripe'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/diffraction'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/displace'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/edge'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/emboss'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/engrave'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/exchange'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/faxg3'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/film'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/fits'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/flame'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/flarefx'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/fractaltrace'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/gauss_iir'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/gauss_rle'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/gbr'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/gee'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/gfig'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/gfli'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/gicon'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/gif'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/glasstile'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/gqbist'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/gradmap'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/grid'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/gtm'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/gz'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/header'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/hot'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/hrz'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/ifscompose'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/illusion'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/iwarp'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/jpeg'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/laplace'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/mail'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/max_rgb'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/maze'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/mblur'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/mosaic'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/nlfilt'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/noisify'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/normalize'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/nova'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/oilify'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/pagecurl'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/palette'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/papertile'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/pat'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/pcx'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/pix'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/pixelize'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/plasma'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/png'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/pnm'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/polar'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/print'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/ps'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/psd'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/randomize'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/ripple'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/rotate'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/rotators'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/scatter_hsv'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/screenshot'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/script-fu'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/semiflatten'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/sgi'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/sharpen'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/shift'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/sinus'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/smooth_palette'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/snoise'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/snp'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/sobel'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/sparkle'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/spread'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/struc'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/sunras'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/tga'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/threshold_alpha'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/tiff'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/tile'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/tileit'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/tiler'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/url'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/video'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/vinvert'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/vpropagate'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/waves'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/webbrowser'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/whirlpinch'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/xpm'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/xwd'/>
+        <dep name='/usr/X11R6/lib/gimp/1.0/plug-ins/zealouscrop'/>
+        <dep name='/usr/X11R6/lib/libgck.la'/>
+        <dep name='/usr/X11R6/lib/libgck.so.1.0.0'/>
+        <dep name='/usr/X11R6/lib/libgimp.la'/>
+        <dep name='/usr/X11R6/lib/libgimp.so.1.0.4'/>
+        <dep name='/usr/X11R6/lib/libgimpui.la'/>
+        <dep name='/usr/X11R6/lib/libgimpui.so.1.0.4'/>
+        <dep name='/usr/X11R6/share/gimp/user_install'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXpm.so.4'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libgck.so.1'/>
+        <dep name='libgdk-1.2.so.0'/>
+        <dep name='libgimp.so.1'/>
+        <dep name='libgimpui.so.1'/>
+        <dep name='libglib-1.2.so.0'/>
+        <dep name='libgmodule-1.2.so.0'/>
+        <dep name='libgtk-1.2.so.0'/>
+        <dep name='libjpeg.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libpng.so.1'/>
+        <dep name='libtiff.so.3'/>
+        <dep name='libz.so.1'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>gimp-data</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0.0</version>
+          <release>1</release>
+          <filename>gimp-data.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>gimp-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0.4</version>
+          <release>1</release>
+          <filename>gimp-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>gimp-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0.4</version>
+          <release>1</release>
+          <filename>gimp-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>glib</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.2.3</version>
+          <release>2</release>
+          <filename>glib.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libglib-1.2.so.0'/>
+        <dep name='libgmodule-1.2.so.0'/>
+        <dep name='libgthread-1.2.so.0'/>
+        <dep name='/usr/lib/libglib-1.2.so.0'/>
+        <dep name='/usr/lib/libglib-1.2.so.0.0.3'/>
+        <dep name='/usr/lib/libgthread-1.2.so.0'/>
+        <dep name='/usr/lib/libgthread-1.2.so.0.0.3'/>
+      </provides>
+      <requires>
+        <dep name='/sbin/ldconfig'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libpthread.so.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>glib-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.2.3</version>
+          <release>2</release>
+          <filename>glib-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/libglib.la'/>
+        <dep name='/usr/lib/libgthread.la'/>
+      </provides>
+      <requires>
+        <dep name='glib-devel'/>
+      </requires>
+    </package>
+    <package>
+      <name>glib-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.2.3</version>
+          <release>2</release>
+          <filename>glib-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/glib-config'/>
+        <dep name='/usr/lib/libglib.so'/>
+        <dep name='/usr/lib/libgmodule.so'/>
+        <dep name='/usr/lib/libgthread.so'/>
+      </provides>
+      <requires>
+        <dep name='glib'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>glibc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.1.2</version>
+          <release>1</release>
+          <filename>glibc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libBrokenLocale.so.1'/>
+        <dep name='libSegFault.so'/>
+        <dep name='libc.so.6'/>
+        <dep name='libcrypt.so.1'/>
+        <dep name='libdb.so.2'/>
+        <dep name='libdb.so.3'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libnss_compat.so.2'/>
+        <dep name='libnss_db.so.2'/>
+        <dep name='libnss_dns.so.2'/>
+        <dep name='libnss_files.so.2'/>
+        <dep name='libnss_hesiod.so.2'/>
+        <dep name='libnss_nis.so.2'/>
+        <dep name='libnss_nisplus.so.2'/>
+        <dep name='libpthread.so.0'/>
+        <dep name='libresolv.so.2'/>
+        <dep name='librt.so.1'/>
+        <dep name='libutil.so.1'/>
+        <dep name='/lib/ld-2.1.2.so'/>
+        <dep name='/lib/ld-linux.so.2'/>
+        <dep name='/lib/libBrokenLocale-2.1.2.so'/>
+        <dep name='/lib/libBrokenLocale.so.1'/>
+        <dep name='/lib/libSegFault.so'/>
+        <dep name='/lib/libc-2.1.2.so'/>
+        <dep name='/lib/libc.so.6'/>
+        <dep name='/lib/libcrypt-2.1.2.so'/>
+        <dep name='/lib/libcrypt.so.1'/>
+        <dep name='/lib/libdb-2.1.2.so'/>
+        <dep name='/lib/libdb.so.2'/>
+        <dep name='/lib/libdb.so.3'/>
+        <dep name='/lib/libdb1-2.1.2.so'/>
+        <dep name='/lib/libdb1.so.2'/>
+        <dep name='/lib/libdl-2.1.2.so'/>
+        <dep name='/lib/libdl.so.2'/>
+        <dep name='/lib/libm-2.1.2.so'/>
+        <dep name='/lib/libm.so.6'/>
+        <dep name='/lib/libnsl-2.1.2.so'/>
+        <dep name='/lib/libnsl.so.1'/>
+        <dep name='/lib/libnss_compat-2.1.2.so'/>
+        <dep name='/lib/libnss_compat.so.2'/>
+        <dep name='/lib/libnss_db-2.1.2.so'/>
+        <dep name='/lib/libnss_db.so.2'/>
+        <dep name='/lib/libnss_dns-2.1.2.so'/>
+        <dep name='/lib/libnss_dns.so.2'/>
+        <dep name='/lib/libnss_files-2.1.2.so'/>
+        <dep name='/lib/libnss_files.so.2'/>
+        <dep name='/lib/libnss_hesiod-2.1.2.so'/>
+        <dep name='/lib/libnss_hesiod.so.2'/>
+        <dep name='/lib/libnss_nis-2.1.2.so'/>
+        <dep name='/lib/libnss_nis.so.2'/>
+        <dep name='/lib/libnss_nisplus-2.1.2.so'/>
+        <dep name='/lib/libnss_nisplus.so.2'/>
+        <dep name='/lib/libpthread-0.8.so'/>
+        <dep name='/lib/libpthread.so.0'/>
+        <dep name='/lib/libresolv-2.1.2.so'/>
+        <dep name='/lib/libresolv.so.2'/>
+        <dep name='/lib/librt-2.1.2.so'/>
+        <dep name='/lib/librt.so.1'/>
+        <dep name='/lib/libutil-2.1.2.so'/>
+        <dep name='/lib/libutil.so.1'/>
+      </provides>
+      <requires>
+        <dep name='/sbin/ldconfig'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdb.so.3'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libnss_files.so.2'/>
+        <dep name='libpthread.so.0'/>
+        <dep name='libresolv.so.2'/>
+      </requires>
+    </package>
+    <package>
+      <name>glibc-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.1.2</version>
+          <release>1</release>
+          <filename>glibc-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='glibc-devel' op='=' version='2.1.2'/>
+      </requires>
+    </package>
+    <package>
+      <name>glibc-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.1.2</version>
+          <release>1</release>
+          <filename>glibc-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/catchsegv'/>
+        <dep name='/usr/bin/gencat'/>
+        <dep name='/usr/bin/glibcbug'/>
+        <dep name='/usr/bin/locale'/>
+        <dep name='/usr/bin/localedef'/>
+        <dep name='/usr/bin/makedb'/>
+        <dep name='/usr/bin/mtrace'/>
+        <dep name='/usr/bin/rpcgen'/>
+        <dep name='/usr/bin/tzselect'/>
+        <dep name='/usr/include/asm'/>
+        <dep name='/usr/include/linux'/>
+        <dep name='/usr/lib/libBrokenLocale.so'/>
+        <dep name='/usr/lib/libdb.so'/>
+        <dep name='/usr/lib/libdb1.so'/>
+        <dep name='/usr/lib/libdl.so'/>
+        <dep name='/usr/lib/libm.so'/>
+        <dep name='/usr/lib/libndbm.so'/>
+        <dep name='/usr/lib/libnsl.so'/>
+        <dep name='/usr/lib/libnss_compat.so'/>
+        <dep name='/usr/lib/libnss_db.so'/>
+        <dep name='/usr/lib/libnss_dns.so'/>
+        <dep name='/usr/lib/libnss_files.so'/>
+        <dep name='/usr/lib/libnss_hesiod.so'/>
+        <dep name='/usr/lib/libnss_nis.so'/>
+        <dep name='/usr/lib/libnss_nisplus.so'/>
+        <dep name='/usr/lib/libpthread.so'/>
+        <dep name='/usr/lib/libresolv.so'/>
+        <dep name='/usr/lib/librt.so'/>
+        <dep name='/usr/lib/libutil.so'/>
+      </provides>
+      <requires>
+        <dep name='glibc' op='=' version='2.1.2'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdb.so.3'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>glibc-localedata</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.1.2</version>
+          <release>1</release>
+          <filename>glibc-localedata.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>gnuchess</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.0.pl80</version>
+          <release>1</release>
+          <filename>gnuchess.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/game'/>
+        <dep name='/usr/bin/gnuan'/>
+        <dep name='/usr/bin/gnuchess'/>
+        <dep name='/usr/bin/gnuchessc'/>
+        <dep name='/usr/bin/gnuchessn'/>
+        <dep name='/usr/bin/gnuchessr'/>
+        <dep name='/usr/bin/gnuchessx'/>
+        <dep name='/usr/bin/postprint'/>
+        <dep name='/usr/lib/games/gnuchess/eco.pgn'/>
+        <dep name='/usr/lib/games/gnuchess/gnuchess.data'/>
+        <dep name='/usr/lib/games/gnuchess/gnuchess.eco'/>
+        <dep name='/usr/lib/games/gnuchess/gnuchess.lang'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>gpm</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.17.8</version>
+          <release>2</release>
+          <filename>gpm.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libgpm.so.1'/>
+        <dep name='/etc/rc.d/init.d/gpm'/>
+        <dep name='/usr/bin/gpm'/>
+        <dep name='/usr/bin/gpm-root'/>
+        <dep name='/usr/bin/hltest'/>
+        <dep name='/usr/bin/mev'/>
+        <dep name='/usr/bin/mouse-test'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='/bin/bash'/>
+      </requires>
+    </package>
+    <package>
+      <name>gpm-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.17.8</version>
+          <release>2</release>
+          <filename>gpm-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='gpm-devel' op='=' version='1.17.8'/>
+      </requires>
+    </package>
+    <package>
+      <name>gpm-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.17.8</version>
+          <release>2</release>
+          <filename>gpm-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/libgpm.so'/>
+      </provides>
+      <requires>
+        <dep name='gpm' op='=' version='1.17.8'/>
+      </requires>
+    </package>
+    <package>
+      <name>grep</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2</version>
+          <release>1</release>
+          <filename>grep.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/egrep'/>
+        <dep name='/usr/bin/fgrep'/>
+        <dep name='/usr/bin/grep'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>groff</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.11a</version>
+          <release>3</release>
+          <filename>groff.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libdriver.so.1.11'/>
+        <dep name='libgroff.so.1.11'/>
+        <dep name='/usr/bin/eqn'/>
+        <dep name='/usr/bin/geqn'/>
+        <dep name='/usr/bin/gneqn'/>
+        <dep name='/usr/bin/gnroff'/>
+        <dep name='/usr/bin/gpic'/>
+        <dep name='/usr/bin/groff'/>
+        <dep name='/usr/bin/grotty'/>
+        <dep name='/usr/bin/gtbl'/>
+        <dep name='/usr/bin/gtroff'/>
+        <dep name='/usr/bin/neqn'/>
+        <dep name='/usr/bin/nroff'/>
+        <dep name='/usr/bin/pic'/>
+        <dep name='/usr/bin/tbl'/>
+        <dep name='/usr/bin/troff'/>
+        <dep name='/usr/lib/groff/libdriver.so.1'/>
+        <dep name='/usr/lib/groff/libdriver.so.1.11'/>
+        <dep name='/usr/lib/groff/libgroff.so.1'/>
+        <dep name='/usr/lib/groff/libgroff.so.1.11'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdriver.so.1.11'/>
+        <dep name='libgroff.so.1.11'/>
+        <dep name='libm.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>groff-dvi</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.11a</version>
+          <release>3</release>
+          <filename>groff-dvi.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/grodvi'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdriver.so.1.11'/>
+        <dep name='libgroff.so.1.11'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>groff-gxditview</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.11a</version>
+          <release>3</release>
+          <filename>groff-gxditview.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/gxditview'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXaw.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>groff-lj4</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.11a</version>
+          <release>3</release>
+          <filename>groff-lj4.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/grolj4'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdriver.so.1.11'/>
+        <dep name='libgroff.so.1.11'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>groff-misc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.11a</version>
+          <release>3</release>
+          <filename>groff-misc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libbib.so.1.11'/>
+        <dep name='/usr/bin/addftinfo'/>
+        <dep name='/usr/bin/afmtodit'/>
+        <dep name='/usr/bin/gindxbib'/>
+        <dep name='/usr/bin/glookbib'/>
+        <dep name='/usr/bin/grefer'/>
+        <dep name='/usr/bin/grog'/>
+        <dep name='/usr/bin/gsoelim'/>
+        <dep name='/usr/bin/hpftodit'/>
+        <dep name='/usr/bin/indxbib'/>
+        <dep name='/usr/bin/lkbib'/>
+        <dep name='/usr/bin/lookbib'/>
+        <dep name='/usr/bin/pfbtops'/>
+        <dep name='/usr/bin/refer'/>
+        <dep name='/usr/bin/soelim'/>
+        <dep name='/usr/bin/tfmtodit'/>
+        <dep name='/usr/lib/groff/libbib.so.1'/>
+        <dep name='/usr/lib/groff/libbib.so.1.11'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libbib.so.1.11'/>
+        <dep name='libc.so.6'/>
+        <dep name='libgroff.so.1.11'/>
+        <dep name='libm.so.6'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>groff-ps</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.11a</version>
+          <release>3</release>
+          <filename>groff-ps.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/grops'/>
+        <dep name='/usr/bin/psbb'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdriver.so.1.11'/>
+        <dep name='libgroff.so.1.11'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>gtk+</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.2.3</version>
+          <release>2</release>
+          <filename>gtk+.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libgdk-1.2.so.0'/>
+        <dep name='libgtk-1.2.so.0'/>
+        <dep name='/usr/X11R6/bin/gtk-config'/>
+        <dep name='/usr/X11R6/lib/libgdk-1.2.so.0.2.1'/>
+        <dep name='/usr/X11R6/lib/libgtk-1.2.so.0.2.1'/>
+      </provides>
+      <requires>
+        <dep name='glib'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libglib-1.2.so.0'/>
+        <dep name='libgmodule-1.2.so.0'/>
+        <dep name='libm.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+      <obsoletes>
+        <dep name='gtk'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>gtk+-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.2.3</version>
+          <release>2</release>
+          <filename>gtk+-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/lib/libgdk.la'/>
+        <dep name='/usr/X11R6/lib/libgtk.la'/>
+      </provides>
+      <requires>
+        <dep name='gtk+-devel'/>
+        <dep name='glib-devel-static'/>
+      </requires>
+      <obsoletes>
+        <dep name='gtk-devel-static'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>gtk+-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.2.3</version>
+          <release>2</release>
+          <filename>gtk+-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/lib/libgdk.so'/>
+        <dep name='/usr/X11R6/lib/libgtk.so'/>
+      </provides>
+      <requires>
+        <dep name='gtk+'/>
+        <dep name='glib-devel'/>
+        <dep name='/bin/sh'/>
+      </requires>
+      <obsoletes>
+        <dep name='gtk-devel'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>gv</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.5.8</version>
+          <release>4</release>
+          <filename>gv.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/gv'/>
+      </provides>
+      <requires>
+        <dep name='ghostscript'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXaw3d.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>gv-doc-html</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.5.8</version>
+          <release>4</release>
+          <filename>gv-doc-html.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>gzip</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.2.4</version>
+          <release>9</release>
+          <filename>gzip.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/gunzip'/>
+        <dep name='/bin/gzip'/>
+        <dep name='/bin/zcat'/>
+        <dep name='/usr/bin/zcmp'/>
+        <dep name='/usr/bin/zdiff'/>
+        <dep name='/usr/bin/zforce'/>
+        <dep name='/usr/bin/zgrep'/>
+        <dep name='/usr/bin/zless'/>
+        <dep name='/usr/bin/zmore'/>
+        <dep name='/usr/bin/znew'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>hdparm</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.5</version>
+          <release>1</release>
+          <filename>hdparm.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/sbin/hdparm'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>hwprobe</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>990806</version>
+          <release>1</release>
+          <filename>hwprobe.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/modules/default'/>
+        <dep name='/sbin/hwprobe'/>
+      </provides>
+      <requires>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>iBCS</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.1</version>
+          <release>3</release>
+          <filename>iBCS.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/rc.d/init.d/iBCS'/>
+        <dep name='/usr/libexec/iBCS-2.0/lnxstamp'/>
+        <dep name='/usr/libexec/iBCS-2.0/magic'/>
+        <dep name='/usr/libexec/iBCS-2.0/mkmnttab'/>
+        <dep name='/usr/libexec/iBCS-2.0/trace'/>
+      </provides>
+      <requires>
+        <dep name='linux-kernel-binary' op='=' version='2.2.12'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>iBCS-extras</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.1</version>
+          <release>3</release>
+          <filename>iBCS-extras.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='ld.so.1'/>
+        <dep name='libc.so.1'/>
+        <dep name='libdl.so.1'/>
+        <dep name='libelf.so.1'/>
+        <dep name='libnsl.so'/>
+        <dep name='libsocket.so'/>
+        <dep name='/shlib/lib_s.map'/>
+        <dep name='/shlib/libc_s'/>
+        <dep name='/shlib/libnsl_s'/>
+        <dep name='/shlib/libnsl_s.debug'/>
+        <dep name='/shlib/protlib_s'/>
+        <dep name='/shlib/protlib_s.debug'/>
+        <dep name='/usr/i486-sysv4/lib/ld.so.1'/>
+        <dep name='/usr/i486-sysv4/lib/libc.so.1'/>
+        <dep name='/usr/i486-sysv4/lib/libdl.so.1'/>
+        <dep name='/usr/i486-sysv4/lib/libelf.so.1'/>
+        <dep name='/usr/i486-sysv4/lib/libnsl.so'/>
+        <dep name='/usr/i486-sysv4/lib/libsocket.so'/>
+        <dep name='/usr/lib/ld.so.1'/>
+        <dep name='/usr/lib/libc.so.1'/>
+      </provides>
+      <requires>
+        <dep name='iBCS'/>
+      </requires>
+    </package>
+    <package>
+      <name>ImageMagick-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2.7</version>
+          <release>2</release>
+          <filename>ImageMagick-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/lib/libMagick.la'/>
+      </provides>
+      <requires>
+        <dep name='ImageMagick-devel' op='=' version='4.2.7'/>
+      </requires>
+    </package>
+    <package>
+      <name>ImageMagick-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2.7</version>
+          <release>2</release>
+          <filename>ImageMagick-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/lib/libMagick.so'/>
+      </provides>
+      <requires>
+        <dep name='ImageMagick' op='=' version='4.2.7'/>
+      </requires>
+    </package>
+    <package>
+      <name>ImageMagick</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2.7</version>
+          <release>2</release>
+          <filename>ImageMagick.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='Magick.so'/>
+        <dep name='libMagick.so.4'/>
+        <dep name='/usr/X11R6/bin/Magick-config'/>
+        <dep name='/usr/X11R6/bin/animate'/>
+        <dep name='/usr/X11R6/bin/combine'/>
+        <dep name='/usr/X11R6/bin/convert'/>
+        <dep name='/usr/X11R6/bin/display'/>
+        <dep name='/usr/X11R6/bin/identify'/>
+        <dep name='/usr/X11R6/bin/import'/>
+        <dep name='/usr/X11R6/bin/mogrify'/>
+        <dep name='/usr/X11R6/bin/montage'/>
+        <dep name='/usr/X11R6/bin/xtp'/>
+        <dep name='/usr/X11R6/lib/libMagick.so.4'/>
+        <dep name='/usr/X11R6/lib/libMagick.so.4.0.27'/>
+        <dep name='/usr/X11R6/lib/perl5/site-perl/i686-linux-thread/auto/Image/Magick/Magick.so'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libMagick.so.4'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libjpeg.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libpng.so.1'/>
+        <dep name='libtiff.so.3'/>
+        <dep name='libz.so.1'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>imap</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.6.BETA</version>
+          <release>1</release>
+          <filename>imap.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/sbin/imapd'/>
+        <dep name='/usr/sbin/ipop2d'/>
+        <dep name='/usr/sbin/ipop3d'/>
+      </provides>
+      <requires>
+        <dep name='tcp_wrappers'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libpam.so.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>indent</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.1.0</version>
+          <release>1</release>
+          <filename>indent.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/indent'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>info</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.12</version>
+          <release>3</release>
+          <filename>info.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/info'/>
+        <dep name='/usr/bin/install-info'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libz.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>inn</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2.1</version>
+          <release>2</release>
+          <filename>inn.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='inews'/>
+        <dep name='/etc/news/control-pgp.ctl'/>
+        <dep name='/etc/news/control.ctl'/>
+        <dep name='/etc/rc.d/init.d/news'/>
+        <dep name='/usr/bin/inews'/>
+        <dep name='/usr/bin/rnews'/>
+        <dep name='/usr/doc/inn-2.2.1/ISC/unpgp-control'/>
+        <dep name='/usr/libexec/inn/bin/actived'/>
+        <dep name='/usr/libexec/inn/bin/actmerge'/>
+        <dep name='/usr/libexec/inn/bin/actsync'/>
+        <dep name='/usr/libexec/inn/bin/actsyncd'/>
+        <dep name='/usr/libexec/inn/bin/archive'/>
+        <dep name='/usr/libexec/inn/bin/batcher'/>
+        <dep name='/usr/libexec/inn/bin/buffchan'/>
+        <dep name='/usr/libexec/inn/bin/cnfsstat'/>
+        <dep name='/usr/libexec/inn/bin/control/checkgroups'/>
+        <dep name='/usr/libexec/inn/bin/control/checkgroups.pl'/>
+        <dep name='/usr/libexec/inn/bin/control/default'/>
+        <dep name='/usr/libexec/inn/bin/control/ihave'/>
+        <dep name='/usr/libexec/inn/bin/control/ihave.pl'/>
+        <dep name='/usr/libexec/inn/bin/control/newgroup'/>
+        <dep name='/usr/libexec/inn/bin/control/newgroup.pl'/>
+        <dep name='/usr/libexec/inn/bin/control/rmgroup'/>
+        <dep name='/usr/libexec/inn/bin/control/rmgroup.pl'/>
+        <dep name='/usr/libexec/inn/bin/control/sendme'/>
+        <dep name='/usr/libexec/inn/bin/control/sendme.pl'/>
+        <dep name='/usr/libexec/inn/bin/control/sendsys'/>
+        <dep name='/usr/libexec/inn/bin/control/sendsys.pl'/>
+        <dep name='/usr/libexec/inn/bin/control/senduuname'/>
+        <dep name='/usr/libexec/inn/bin/control/senduuname.pl'/>
+        <dep name='/usr/libexec/inn/bin/control/version'/>
+        <dep name='/usr/libexec/inn/bin/control/version.pl'/>
+        <dep name='/usr/libexec/inn/bin/controlbatch'/>
+        <dep name='/usr/libexec/inn/bin/controlchan'/>
+        <dep name='/usr/libexec/inn/bin/convdate'/>
+        <dep name='/usr/libexec/inn/bin/crosspost'/>
+        <dep name='/usr/libexec/inn/bin/ctlinnd'/>
+        <dep name='/usr/libexec/inn/bin/cvtbatch'/>
+        <dep name='/usr/libexec/inn/bin/expire'/>
+        <dep name='/usr/libexec/inn/bin/expireindex'/>
+        <dep name='/usr/libexec/inn/bin/expireover'/>
+        <dep name='/usr/libexec/inn/bin/expirerm'/>
+        <dep name='/usr/libexec/inn/bin/fastrm'/>
+        <dep name='/usr/libexec/inn/bin/filechan'/>
+        <dep name='/usr/libexec/inn/bin/getlist'/>
+        <dep name='/usr/libexec/inn/bin/grephistory'/>
+        <dep name='/usr/libexec/inn/bin/inews'/>
+        <dep name='/usr/libexec/inn/bin/inncheck'/>
+        <dep name='/usr/libexec/inn/bin/innconfval'/>
+        <dep name='/usr/libexec/inn/bin/innd'/>
+        <dep name='/usr/libexec/inn/bin/inndf'/>
+        <dep name='/usr/libexec/inn/bin/inndstart'/>
+        <dep name='/usr/libexec/inn/bin/innfeed'/>
+        <dep name='/usr/libexec/inn/bin/innfeed-convcfg'/>
+        <dep name='/usr/libexec/inn/bin/innmail'/>
+        <dep name='/usr/libexec/inn/bin/innreport'/>
+        <dep name='/usr/libexec/inn/bin/innstat'/>
+        <dep name='/usr/libexec/inn/bin/innwatch'/>
+        <dep name='/usr/libexec/inn/bin/innxbatch'/>
+        <dep name='/usr/libexec/inn/bin/innxmit'/>
+        <dep name='/usr/libexec/inn/bin/mailpost'/>
+        <dep name='/usr/libexec/inn/bin/makeactive'/>
+        <dep name='/usr/libexec/inn/bin/makehistory'/>
+        <dep name='/usr/libexec/inn/bin/mod-active'/>
+        <dep name='/usr/libexec/inn/bin/news.daily'/>
+        <dep name='/usr/libexec/inn/bin/news2mail'/>
+        <dep name='/usr/libexec/inn/bin/newsrequeue'/>
+        <dep name='/usr/libexec/inn/bin/nnrpd'/>
+        <dep name='/usr/libexec/inn/bin/nntpget'/>
+        <dep name='/usr/libexec/inn/bin/nntpsend'/>
+        <dep name='/usr/libexec/inn/bin/overchan'/>
+        <dep name='/usr/libexec/inn/bin/parsecontrol'/>
+        <dep name='/usr/libexec/inn/bin/pgpverify'/>
+        <dep name='/usr/libexec/inn/bin/procbatch'/>
+        <dep name='/usr/libexec/inn/bin/prunehistory'/>
+        <dep name='/usr/libexec/inn/bin/pullnews'/>
+        <dep name='/usr/libexec/inn/bin/rc.news'/>
+        <dep name='/usr/libexec/inn/bin/rnews'/>
+        <dep name='/usr/libexec/inn/bin/rnews.libexec/c7unbatch'/>
+        <dep name='/usr/libexec/inn/bin/rnews.libexec/decode'/>
+        <dep name='/usr/libexec/inn/bin/rnews.libexec/encode'/>
+        <dep name='/usr/libexec/inn/bin/rnews.libexec/gunbatch'/>
+        <dep name='/usr/libexec/inn/bin/scanlogs'/>
+        <dep name='/usr/libexec/inn/bin/scanspool'/>
+        <dep name='/usr/libexec/inn/bin/send-ihave'/>
+        <dep name='/usr/libexec/inn/bin/send-nntp'/>
+        <dep name='/usr/libexec/inn/bin/send-uucp'/>
+        <dep name='/usr/libexec/inn/bin/sendbatch'/>
+        <dep name='/usr/libexec/inn/bin/sendxbatches'/>
+        <dep name='/usr/libexec/inn/bin/shlock'/>
+        <dep name='/usr/libexec/inn/bin/shrinkfile'/>
+        <dep name='/usr/libexec/inn/bin/simpleftp'/>
+        <dep name='/usr/libexec/inn/bin/sm'/>
+        <dep name='/usr/libexec/inn/bin/startinnfeed'/>
+        <dep name='/usr/libexec/inn/bin/tally.control'/>
+        <dep name='/usr/libexec/inn/bin/writelog'/>
+        <dep name='/usr/libexec/inn/docheckgroups'/>
+        <dep name='/usr/libexec/inn/libinn.a'/>
+        <dep name='/usr/libexec/inn/libstorage.a'/>
+        <dep name='/usr/sbin/innd'/>
+        <dep name='/usr/sbin/inndstart'/>
+        <dep name='/usr/sbin/nnrpd'/>
+      </provides>
+      <requires>
+        <dep name='SysVinit-scripts' op='&gt;=' version='1.03'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libresolv.so.2'/>
+        <dep name='/bin/bash'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>ipchains</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.3.8</version>
+          <release>1</release>
+          <filename>ipchains.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/sbin/ipchains'/>
+        <dep name='/sbin/ipchains-restore'/>
+        <dep name='/sbin/ipchains-save'/>
+        <dep name='/sbin/ipfwadm'/>
+        <dep name='/sbin/ipfwadm-wrapper'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/bash'/>
+      </requires>
+      <obsoletes>
+        <dep name='ipfwadm'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>ipx</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>13</release>
+          <filename>ipx.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/rc.d/init.d/ipx'/>
+        <dep name='/sbin/ipx_configure'/>
+        <dep name='/sbin/ipx_interface'/>
+        <dep name='/sbin/ipx_internal_net'/>
+        <dep name='/sbin/ipx_route'/>
+      </provides>
+      <requires>
+        <dep name='SysVinit-scripts' op='&gt;=' version='1.02' release='1'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>ipxripd</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.7</version>
+          <release>6</release>
+          <filename>ipxripd.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/rc.d/init.d/ipxripd'/>
+        <dep name='/usr/sbin/ipxd'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>irc-BX</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>75p3</version>
+          <release>2</release>
+          <filename>irc-BX.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/install-bx'/>
+        <dep name='/usr/bin/irc'/>
+        <dep name='/usr/bin/irc-BX'/>
+        <dep name='/usr/bin/scr-bx'/>
+        <dep name='/usr/bin/wserv'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libresolv.so.2'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>isapnptools</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.18</version>
+          <release>1</release>
+          <filename>isapnptools.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/isapnp.gone.sample'/>
+        <dep name='/sbin/isapnp'/>
+        <dep name='/sbin/pnpdump'/>
+        <dep name='/usr/share/pnp/config-scripts/isa/YMH0021'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>isdn4k-utils</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.0beta2</version>
+          <release>4</release>
+          <filename>isdn4k-utils.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/sbin/avmcapictrl'/>
+        <dep name='/sbin/hisaxctrl'/>
+        <dep name='/sbin/icnctrl'/>
+        <dep name='/sbin/imon'/>
+        <dep name='/sbin/imontty'/>
+        <dep name='/sbin/ipppd'/>
+        <dep name='/sbin/ipppstats'/>
+        <dep name='/sbin/iprofd'/>
+        <dep name='/sbin/isdnctrl'/>
+        <dep name='/sbin/isdnlog'/>
+        <dep name='/sbin/loopctrl'/>
+        <dep name='/sbin/pcbitctl'/>
+        <dep name='/sbin/rcapid'/>
+        <dep name='/sbin/telesctrl'/>
+        <dep name='/sbin/vboxd'/>
+        <dep name='/sbin/vboxgetty'/>
+        <dep name='/usr/bin/autovbox'/>
+        <dep name='/usr/bin/capifax'/>
+        <dep name='/usr/bin/capifaxrcvd'/>
+        <dep name='/usr/bin/isdnconf'/>
+        <dep name='/usr/bin/isdnrep'/>
+        <dep name='/usr/bin/vbox'/>
+        <dep name='/usr/bin/vboxbeep'/>
+        <dep name='/usr/bin/vboxcnvt'/>
+        <dep name='/usr/bin/vboxctrl'/>
+        <dep name='/usr/bin/vboxmail'/>
+        <dep name='/usr/bin/vboxmode'/>
+        <dep name='/usr/bin/vboxplay'/>
+        <dep name='/usr/bin/vboxtoau'/>
+        <dep name='/usr/bin/xisdnload'/>
+        <dep name='/usr/bin/xmonisdn'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXaw.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libgdbm.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libpanel.so.4'/>
+        <dep name='libtcl8.0.so'/>
+        <dep name='libutil.so.1'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>ispell</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.1.20</version>
+          <release>2</release>
+          <filename>ispell.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/buildhash'/>
+        <dep name='/usr/bin/findaffix'/>
+        <dep name='/usr/bin/icombine'/>
+        <dep name='/usr/bin/ijoin'/>
+        <dep name='/usr/bin/ispell'/>
+        <dep name='/usr/bin/munchlist'/>
+        <dep name='/usr/bin/sq'/>
+        <dep name='/usr/bin/tryaffix'/>
+        <dep name='/usr/bin/unsq'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>ispell-danish</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.1.20</version>
+          <release>2</release>
+          <filename>ispell-danish.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>ispell-english</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.1.20</version>
+          <release>2</release>
+          <filename>ispell-english.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>ispell-french</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.1.20</version>
+          <release>2</release>
+          <filename>ispell-french.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/ispell/francais.aff'/>
+        <dep name='/usr/lib/ispell/francais.hash'/>
+      </provides>
+    </package>
+    <package>
+      <name>ispell-german</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.1.20</version>
+          <release>2</release>
+          <filename>ispell-german.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>ispell-spanish</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.1.20</version>
+          <release>2</release>
+          <filename>ispell-spanish.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>jdk</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0.2</version>
+          <release>8</release>
+          <filename>jdk.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/java/lib/appletviewer.properties'/>
+      </provides>
+      <requires>
+        <dep name='libXm.so.2'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>jdk-shared</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0.2</version>
+          <release>8</release>
+          <filename>jdk-shared.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='jdk-runtime'/>
+        <dep name='libagent.so'/>
+        <dep name='libawt.so'/>
+        <dep name='libjpeg.so'/>
+        <dep name='libmmedia.so'/>
+        <dep name='libnet.so'/>
+        <dep name='libtawt.so'/>
+        <dep name='/usr/java/shared/bin/.java_wrapper'/>
+        <dep name='/usr/java/shared/bin/appletviewer'/>
+        <dep name='/usr/java/shared/bin/i586/java'/>
+        <dep name='/usr/java/shared/bin/i586/java_g'/>
+        <dep name='/usr/java/shared/bin/i586/javac'/>
+        <dep name='/usr/java/shared/bin/i586/javah'/>
+        <dep name='/usr/java/shared/bin/i586/javap'/>
+        <dep name='/usr/java/shared/bin/i586/jdb'/>
+        <dep name='/usr/java/shared/bin/java'/>
+        <dep name='/usr/java/shared/bin/java_g'/>
+        <dep name='/usr/java/shared/bin/javac'/>
+        <dep name='/usr/java/shared/bin/javadoc'/>
+        <dep name='/usr/java/shared/bin/javah'/>
+        <dep name='/usr/java/shared/bin/javap'/>
+        <dep name='/usr/java/shared/bin/jdb'/>
+        <dep name='/usr/java/shared/bin/upgrade'/>
+        <dep name='/usr/java/shared/lib/i586/libagent.so'/>
+        <dep name='/usr/java/shared/lib/i586/libagent_g.so'/>
+        <dep name='/usr/java/shared/lib/i586/libawt.so'/>
+        <dep name='/usr/java/shared/lib/i586/libawt_g.so'/>
+        <dep name='/usr/java/shared/lib/i586/libjpeg.so'/>
+        <dep name='/usr/java/shared/lib/i586/libjpeg_g.so'/>
+        <dep name='/usr/java/shared/lib/i586/libmmedia.so'/>
+        <dep name='/usr/java/shared/lib/i586/libmmedia_g.so'/>
+        <dep name='/usr/java/shared/lib/i586/libnet.so'/>
+        <dep name='/usr/java/shared/lib/i586/libnet_g.so'/>
+        <dep name='/usr/java/shared/lib/i586/libtawt.so'/>
+        <dep name='/usr/java/shared/lib/i586/libtawt_g.so'/>
+      </provides>
+      <requires>
+        <dep name='jdk' op='=' version='1.0.2'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/bash'/>
+        <dep name='/bin/sh'/>
+      </requires>
+      <conflicts>
+        <dep name='jdk-runtime'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>jdk-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0.2</version>
+          <release>8</release>
+          <filename>jdk-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='jdk-runtime'/>
+        <dep name='libagent.so'/>
+        <dep name='libawt.so'/>
+        <dep name='libawt_g.so'/>
+        <dep name='libjpeg.so'/>
+        <dep name='libmmedia.so'/>
+        <dep name='libnet.so'/>
+        <dep name='libtawt.so'/>
+        <dep name='/usr/java/static/bin/.java_wrapper'/>
+        <dep name='/usr/java/static/bin/appletviewer'/>
+        <dep name='/usr/java/static/bin/i586/java'/>
+        <dep name='/usr/java/static/bin/i586/java_g'/>
+        <dep name='/usr/java/static/bin/i586/javac'/>
+        <dep name='/usr/java/static/bin/i586/javah'/>
+        <dep name='/usr/java/static/bin/i586/javap'/>
+        <dep name='/usr/java/static/bin/i586/jdb'/>
+        <dep name='/usr/java/static/bin/java'/>
+        <dep name='/usr/java/static/bin/java_g'/>
+        <dep name='/usr/java/static/bin/javac'/>
+        <dep name='/usr/java/static/bin/javadoc'/>
+        <dep name='/usr/java/static/bin/javah'/>
+        <dep name='/usr/java/static/bin/javap'/>
+        <dep name='/usr/java/static/bin/jdb'/>
+        <dep name='/usr/java/static/bin/upgrade'/>
+        <dep name='/usr/java/static/lib/i586/libagent.so'/>
+        <dep name='/usr/java/static/lib/i586/libagent_g.so'/>
+        <dep name='/usr/java/static/lib/i586/libawt.so'/>
+        <dep name='/usr/java/static/lib/i586/libawt_g.so'/>
+        <dep name='/usr/java/static/lib/i586/libjpeg.so'/>
+        <dep name='/usr/java/static/lib/i586/libjpeg_g.so'/>
+        <dep name='/usr/java/static/lib/i586/libmmedia.so'/>
+        <dep name='/usr/java/static/lib/i586/libmmedia_g.so'/>
+        <dep name='/usr/java/static/lib/i586/libnet.so'/>
+        <dep name='/usr/java/static/lib/i586/libnet_g.so'/>
+        <dep name='/usr/java/static/lib/i586/libtawt.so'/>
+        <dep name='/usr/java/static/lib/i586/libtawt_g.so'/>
+      </provides>
+      <requires>
+        <dep name='jdk' op='=' version='1.0.2'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/bash'/>
+        <dep name='/bin/sh'/>
+      </requires>
+      <conflicts>
+        <dep name='jdk-runtime'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>kaffe</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0.b4</version>
+          <release>3</release>
+          <filename>kaffe.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libawt-1.0b4.so'/>
+        <dep name='libio-1.0b4.so'/>
+        <dep name='libkaffevm-1.0b4.so'/>
+        <dep name='libmanagement-1.0b4.so'/>
+        <dep name='libmath-1.0b4.so'/>
+        <dep name='libnative-1.0b4.so'/>
+        <dep name='libnet-1.0b4.so'/>
+        <dep name='libzip-1.0b4.so'/>
+        <dep name='/usr/bin/appletviewer'/>
+        <dep name='/usr/bin/install-jar'/>
+        <dep name='/usr/bin/jar'/>
+        <dep name='/usr/bin/java'/>
+        <dep name='/usr/bin/javac'/>
+        <dep name='/usr/bin/javadoc'/>
+        <dep name='/usr/bin/javakey'/>
+        <dep name='/usr/bin/javap'/>
+        <dep name='/usr/bin/jdb'/>
+        <dep name='/usr/bin/kaffe'/>
+        <dep name='/usr/bin/kaffeh'/>
+        <dep name='/usr/bin/native2ascii'/>
+        <dep name='/usr/bin/pizza'/>
+        <dep name='/usr/bin/pizzadoc'/>
+        <dep name='/usr/bin/report-kaffe-bug'/>
+        <dep name='/usr/bin/rmic'/>
+        <dep name='/usr/bin/rmiregistry'/>
+        <dep name='/usr/bin/serialver'/>
+        <dep name='/usr/lib/kaffe/libawt-1.0b4.so'/>
+        <dep name='/usr/lib/kaffe/libawt.la'/>
+        <dep name='/usr/lib/kaffe/libawt.so'/>
+        <dep name='/usr/lib/kaffe/libio-1.0b4.so'/>
+        <dep name='/usr/lib/kaffe/libio.la'/>
+        <dep name='/usr/lib/kaffe/libio.so'/>
+        <dep name='/usr/lib/kaffe/libmanagement-1.0b4.so'/>
+        <dep name='/usr/lib/kaffe/libmanagement.la'/>
+        <dep name='/usr/lib/kaffe/libmanagement.so'/>
+        <dep name='/usr/lib/kaffe/libmath-1.0b4.so'/>
+        <dep name='/usr/lib/kaffe/libmath.la'/>
+        <dep name='/usr/lib/kaffe/libmath.so'/>
+        <dep name='/usr/lib/kaffe/libnative-1.0b4.so'/>
+        <dep name='/usr/lib/kaffe/libnative.la'/>
+        <dep name='/usr/lib/kaffe/libnative.so'/>
+        <dep name='/usr/lib/kaffe/libnet-1.0b4.so'/>
+        <dep name='/usr/lib/kaffe/libnet.la'/>
+        <dep name='/usr/lib/kaffe/libnet.so'/>
+        <dep name='/usr/lib/kaffe/libzip-1.0b4.so'/>
+        <dep name='/usr/lib/kaffe/libzip.la'/>
+        <dep name='/usr/lib/kaffe/libzip.so'/>
+        <dep name='/usr/lib/libkaffevm-1.0b4.so'/>
+        <dep name='/usr/lib/libkaffevm.la'/>
+        <dep name='/usr/lib/libkaffevm.so'/>
+        <dep name='/usr/libexec/Kaffe'/>
+      </provides>
+      <requires>
+        <dep name='/sbin/ldconfig'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libjpeg.so.6'/>
+        <dep name='libkaffevm-1.0b4.so'/>
+        <dep name='libm.so.6'/>
+        <dep name='libpng.so.1'/>
+        <dep name='libz.so.1'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>kbd</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.99</version>
+          <release>1</release>
+          <filename>kbd.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/rc.d/init.d/keytable'/>
+        <dep name='/usr/bin/chvt'/>
+        <dep name='/usr/bin/deallocvt'/>
+        <dep name='/usr/bin/dumpkeys'/>
+        <dep name='/usr/bin/getkeycodes'/>
+        <dep name='/usr/bin/kbd_mode'/>
+        <dep name='/usr/bin/loadkeys'/>
+        <dep name='/usr/bin/loadunimap'/>
+        <dep name='/usr/bin/mapscrn'/>
+        <dep name='/usr/bin/psfaddtable'/>
+        <dep name='/usr/bin/psfgettable'/>
+        <dep name='/usr/bin/psfstriptable'/>
+        <dep name='/usr/bin/setfont'/>
+        <dep name='/usr/bin/setkeycodes'/>
+        <dep name='/usr/bin/setleds'/>
+        <dep name='/usr/bin/setmetamode'/>
+        <dep name='/usr/bin/showfont'/>
+        <dep name='/usr/bin/showkey'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>kdbg</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0beta1</version>
+          <release>1</release>
+          <filename>kdbg.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/opt/kde/bin/kdbg'/>
+      </provides>
+      <requires>
+        <dep name='gdb'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libkdecore.so.2'/>
+        <dep name='libkdeui.so.2'/>
+        <dep name='libkfile.so.2'/>
+        <dep name='libkfm.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libpng.so.1'/>
+        <dep name='libqt.so.1'/>
+        <dep name='libstdc++.so.2.9'/>
+        <dep name='libz.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>kdeapps</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1.1</version>
+          <release>8</release>
+          <filename>kdeapps.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/opt/kde/bin/star_wrapper'/>
+        <dep name='/usr/lib/LST/kdeapps'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='/bin/bash'/>
+      </requires>
+    </package>
+    <package>
+      <name>kdebase-opengl</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1.2</version>
+          <release>3</release>
+          <filename>kdebase-opengl.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/opt/kde/bin/kmorph3d.kss'/>
+        <dep name='/opt/kde/bin/kpipes.kss'/>
+        <dep name='/opt/kde/bin/kspace.kss'/>
+      </provides>
+      <requires>
+        <dep name='mesa' op='&gt;=' version='2.4'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libMesaGL.so.3'/>
+        <dep name='libMesaGLU.so.3'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libkdecore.so.2'/>
+        <dep name='libkdeui.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libpam.so.0'/>
+        <dep name='libpam_misc.so.0'/>
+        <dep name='libqt.so.1'/>
+        <dep name='libstdc++.so.2.9'/>
+      </requires>
+    </package>
+    <package>
+      <name>kdebase</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1.2</version>
+          <release>3</release>
+          <filename>kdebase.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/X11/kdm/GiveConsole'/>
+        <dep name='/etc/X11/kdm/TakeConsole'/>
+        <dep name='/etc/X11/kdm/Xreset'/>
+        <dep name='/etc/X11/kdm/Xsetup'/>
+        <dep name='/opt/kde/bin/kappfinder'/>
+        <dep name='/opt/kde/bin/kappfinder_restart'/>
+        <dep name='/opt/kde/bin/kattraction.kss'/>
+        <dep name='/opt/kde/bin/kaudioserver'/>
+        <dep name='/opt/kde/bin/kbanner.kss'/>
+        <dep name='/opt/kde/bin/kbat.kss'/>
+        <dep name='/opt/kde/bin/kbgndwm'/>
+        <dep name='/opt/kde/bin/kblankscrn.kss'/>
+        <dep name='/opt/kde/bin/kblob.kss'/>
+        <dep name='/opt/kde/bin/kbouboule.kss'/>
+        <dep name='/opt/kde/bin/kbsod.kss'/>
+        <dep name='/opt/kde/bin/kcheckpass'/>
+        <dep name='/opt/kde/bin/kcmbell'/>
+        <dep name='/opt/kde/bin/kcmdisplay'/>
+        <dep name='/opt/kde/bin/kcmikbd'/>
+        <dep name='/opt/kde/bin/kcminfo'/>
+        <dep name='/opt/kde/bin/kcminput'/>
+        <dep name='/opt/kde/bin/kcmkeys'/>
+        <dep name='/opt/kde/bin/kcmkfm'/>
+        <dep name='/opt/kde/bin/kcmkonsole'/>
+        <dep name='/opt/kde/bin/kcmkpanel'/>
+        <dep name='/opt/kde/bin/kcmkwm'/>
+        <dep name='/opt/kde/bin/kcmlocale'/>
+        <dep name='/opt/kde/bin/kcmsamba'/>
+        <dep name='/opt/kde/bin/kcmsyssound'/>
+        <dep name='/opt/kde/bin/kcontrol'/>
+        <dep name='/opt/kde/bin/kdehelp'/>
+        <dep name='/opt/kde/bin/kdm'/>
+        <dep name='/opt/kde/bin/kdmconfig'/>
+        <dep name='/opt/kde/bin/kdmdesktop'/>
+        <dep name='/opt/kde/bin/kfind'/>
+        <dep name='/opt/kde/bin/kflame.kss'/>
+        <dep name='/opt/kde/bin/kfm'/>
+        <dep name='/opt/kde/bin/kfmclient'/>
+        <dep name='/opt/kde/bin/kfmexec'/>
+        <dep name='/opt/kde/bin/kfmsu'/>
+        <dep name='/opt/kde/bin/kfmsu2'/>
+        <dep name='/opt/kde/bin/kfmwarn'/>
+        <dep name='/opt/kde/bin/kfontmanager'/>
+        <dep name='/opt/kde/bin/kforest.kss'/>
+        <dep name='/opt/kde/bin/khop.kss'/>
+        <dep name='/opt/kde/bin/kikbd'/>
+        <dep name='/opt/kde/bin/kioslave'/>
+        <dep name='/opt/kde/bin/klaser.kss'/>
+        <dep name='/opt/kde/bin/klines.kss'/>
+        <dep name='/opt/kde/bin/klissie.kss'/>
+        <dep name='/opt/kde/bin/klock'/>
+        <dep name='/opt/kde/bin/kmatrix.kss'/>
+        <dep name='/opt/kde/bin/kmenuedit'/>
+        <dep name='/opt/kde/bin/konsole'/>
+        <dep name='/opt/kde/bin/konsole_grantpty'/>
+        <dep name='/opt/kde/bin/kpager'/>
+        <dep name='/opt/kde/bin/kpanel'/>
+        <dep name='/opt/kde/bin/kplayaudio'/>
+        <dep name='/opt/kde/bin/kpolygon.kss'/>
+        <dep name='/opt/kde/bin/kpyro.kss'/>
+        <dep name='/opt/kde/bin/krdb'/>
+        <dep name='/opt/kde/bin/krock.kss'/>
+        <dep name='/opt/kde/bin/krootwm'/>
+        <dep name='/opt/kde/bin/kscience.kss'/>
+        <dep name='/opt/kde/bin/kslidescreen.kss'/>
+        <dep name='/opt/kde/bin/kslip.kss'/>
+        <dep name='/opt/kde/bin/kstart'/>
+        <dep name='/opt/kde/bin/kswarm.kss'/>
+        <dep name='/opt/kde/bin/kthememgr'/>
+        <dep name='/opt/kde/bin/kvt'/>
+        <dep name='/opt/kde/bin/kwm'/>
+        <dep name='/opt/kde/bin/kwmcom'/>
+        <dep name='/opt/kde/bin/kwmsound'/>
+        <dep name='/opt/kde/bin/maudio'/>
+        <dep name='/opt/kde/bin/rman'/>
+        <dep name='/opt/kde/bin/unpack'/>
+        <dep name='/opt/kde/cgi-bin/helpindex'/>
+        <dep name='/opt/kde/cgi-bin/helpsearch'/>
+      </provides>
+      <requires>
+        <dep name='kdelibs' op='=' version='1.1.2'/>
+        <dep name='XFree86'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXpm.so.4'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libjpeg.so.6'/>
+        <dep name='libjscript.so.2'/>
+        <dep name='libkdecore.so.2'/>
+        <dep name='libkdeui.so.2'/>
+        <dep name='libkfile.so.2'/>
+        <dep name='libkfm.so.2'/>
+        <dep name='libkhtmlw.so.2'/>
+        <dep name='libkimgio.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libmediatool.so.2'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libpam.so.0'/>
+        <dep name='libpam_misc.so.0'/>
+        <dep name='libpng.so.1'/>
+        <dep name='libqt.so.1'/>
+        <dep name='libstdc++.so.2.9'/>
+        <dep name='libtiff.so.3'/>
+        <dep name='libutempter.so.0'/>
+        <dep name='libutil.so.1'/>
+        <dep name='libz.so.1'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>kdedoc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>990211</version>
+          <release>1</release>
+          <filename>kdedoc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/opt/kde/bin/kdoc'/>
+        <dep name='/opt/kde/bin/qt2kdoc'/>
+      </provides>
+      <requires>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>kdegames</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1.2</version>
+          <release>1</release>
+          <filename>kdegames.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/opt/kde/bin/kabalone'/>
+        <dep name='/opt/kde/bin/kasteroids'/>
+        <dep name='/opt/kde/bin/kblackbox'/>
+        <dep name='/opt/kde/bin/kmahjongg'/>
+        <dep name='/opt/kde/bin/kmines'/>
+        <dep name='/opt/kde/bin/konquest'/>
+        <dep name='/opt/kde/bin/kpat'/>
+        <dep name='/opt/kde/bin/kpoker'/>
+        <dep name='/opt/kde/bin/kreversi'/>
+        <dep name='/opt/kde/bin/ksame'/>
+        <dep name='/opt/kde/bin/kshisen'/>
+        <dep name='/opt/kde/bin/ksirtet'/>
+        <dep name='/opt/kde/bin/ksmiletris'/>
+        <dep name='/opt/kde/bin/ksnake'/>
+        <dep name='/opt/kde/bin/ksokoban'/>
+      </provides>
+      <requires>
+        <dep name='kdelibs' op='=' version='1.1.2'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libQwSpriteField.so.1'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libkdecore.so.2'/>
+        <dep name='libkdeui.so.2'/>
+        <dep name='libkfm.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libmediatool.so.2'/>
+        <dep name='libqt.so.1'/>
+        <dep name='libstdc++.so.2.9'/>
+        <dep name='libz.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>kdegraphics</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1.2</version>
+          <release>1</release>
+          <filename>kdegraphics.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/opt/kde/bin/kdvi'/>
+        <dep name='/opt/kde/bin/kfax'/>
+        <dep name='/opt/kde/bin/kfract'/>
+        <dep name='/opt/kde/bin/kghostview'/>
+        <dep name='/opt/kde/bin/kiconedit'/>
+        <dep name='/opt/kde/bin/kpaint'/>
+        <dep name='/opt/kde/bin/ksnapshot'/>
+        <dep name='/opt/kde/bin/kview'/>
+      </provides>
+      <requires>
+        <dep name='kdelibs' op='=' version='1.1.2'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libgif.so.3'/>
+        <dep name='libjpeg.so.6'/>
+        <dep name='libkdecore.so.2'/>
+        <dep name='libkdeui.so.2'/>
+        <dep name='libkfile.so.2'/>
+        <dep name='libkfm.so.2'/>
+        <dep name='libkimgio.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libpng.so.1'/>
+        <dep name='libqt.so.1'/>
+        <dep name='libstdc++.so.2.9'/>
+        <dep name='libtiff.so.3'/>
+        <dep name='libz.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>kdelibs-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1.2</version>
+          <release>1</release>
+          <filename>kdelibs-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/opt/kde/lib/libjscript.so'/>
+        <dep name='/opt/kde/lib/libkab.so'/>
+        <dep name='/opt/kde/lib/libkdecore.so'/>
+        <dep name='/opt/kde/lib/libkdeui.so'/>
+        <dep name='/opt/kde/lib/libkfile.so'/>
+        <dep name='/opt/kde/lib/libkfm.so'/>
+        <dep name='/opt/kde/lib/libkhtmlw.so'/>
+        <dep name='/opt/kde/lib/libkimgio.so'/>
+        <dep name='/opt/kde/lib/libkspell.so'/>
+        <dep name='/opt/kde/lib/libmediatool.so'/>
+      </provides>
+      <requires>
+        <dep name='kdelibs' op='=' version='1.1.2'/>
+      </requires>
+    </package>
+    <package>
+      <name>kdelibs-doc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1.2</version>
+          <release>1</release>
+          <filename>kdelibs-doc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='qt-doc-html'/>
+      </requires>
+    </package>
+    <package>
+      <name>kdelibs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1.2</version>
+          <release>1</release>
+          <filename>kdelibs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libjscript.so.2'/>
+        <dep name='libkab.so.2'/>
+        <dep name='libkdecore.so.2'/>
+        <dep name='libkdeui.so.2'/>
+        <dep name='libkfile.so.2'/>
+        <dep name='libkfm.so.2'/>
+        <dep name='libkhtmlw.so.2'/>
+        <dep name='libkimgio.so.2'/>
+        <dep name='libkspell.so.2'/>
+        <dep name='libmediatool.so.2'/>
+        <dep name='/opt/kde/lib/libjscript.la'/>
+        <dep name='/opt/kde/lib/libjscript.so.2'/>
+        <dep name='/opt/kde/lib/libjscript.so.2.0.0'/>
+        <dep name='/opt/kde/lib/libkab.la'/>
+        <dep name='/opt/kde/lib/libkab.so.2'/>
+        <dep name='/opt/kde/lib/libkab.so.2.0.0'/>
+        <dep name='/opt/kde/lib/libkdecore.la'/>
+        <dep name='/opt/kde/lib/libkdecore.so.2'/>
+        <dep name='/opt/kde/lib/libkdecore.so.2.0.0'/>
+        <dep name='/opt/kde/lib/libkdeui.la'/>
+        <dep name='/opt/kde/lib/libkdeui.so.2'/>
+        <dep name='/opt/kde/lib/libkdeui.so.2.0.0'/>
+        <dep name='/opt/kde/lib/libkfile.la'/>
+        <dep name='/opt/kde/lib/libkfile.so.2'/>
+        <dep name='/opt/kde/lib/libkfile.so.2.0.0'/>
+        <dep name='/opt/kde/lib/libkfm.la'/>
+        <dep name='/opt/kde/lib/libkfm.so.2'/>
+        <dep name='/opt/kde/lib/libkfm.so.2.0.0'/>
+        <dep name='/opt/kde/lib/libkhtmlw.la'/>
+        <dep name='/opt/kde/lib/libkhtmlw.so.2'/>
+        <dep name='/opt/kde/lib/libkhtmlw.so.2.0.0'/>
+        <dep name='/opt/kde/lib/libkimgio.la'/>
+        <dep name='/opt/kde/lib/libkimgio.so.2'/>
+        <dep name='/opt/kde/lib/libkimgio.so.2.0.0'/>
+        <dep name='/opt/kde/lib/libkspell.la'/>
+        <dep name='/opt/kde/lib/libkspell.so.2'/>
+        <dep name='/opt/kde/lib/libkspell.so.2.0.0'/>
+        <dep name='/opt/kde/lib/libmediatool.la'/>
+        <dep name='/opt/kde/lib/libmediatool.so.2'/>
+        <dep name='/opt/kde/lib/libmediatool.so.2.0.0'/>
+        <dep name='/opt/kde/share/doc/HTML/default'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libqt.so.1'/>
+        <dep name='libstdc++.so.2.9'/>
+      </requires>
+    </package>
+    <package>
+      <name>kdemultimedia</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1.2</version>
+          <release>1</release>
+          <filename>kdemultimedia.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/opt/kde/bin/cddaslave'/>
+        <dep name='/opt/kde/bin/kmedia'/>
+        <dep name='/opt/kde/bin/kmid'/>
+        <dep name='/opt/kde/bin/kmidi'/>
+        <dep name='/opt/kde/bin/kmix'/>
+        <dep name='/opt/kde/bin/kscd'/>
+        <dep name='/opt/kde/bin/kscdmagic'/>
+        <dep name='/opt/kde/bin/workman2cddb.pl'/>
+      </provides>
+      <requires>
+        <dep name='kdelibs' op='=' version='1.1.2'/>
+        <dep name='midi-instruments'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libkdecore.so.2'/>
+        <dep name='libkdeui.so.2'/>
+        <dep name='libkfile.so.2'/>
+        <dep name='libkfm.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libmediatool.so.2'/>
+        <dep name='libqt.so.1'/>
+        <dep name='libstdc++.so.2.9'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>kdenetwork</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1.2</version>
+          <release>4</release>
+          <filename>kdenetwork.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libksirclistbox.so.0'/>
+        <dep name='libpalistbox.so.0'/>
+        <dep name='libpbutton.so.0'/>
+        <dep name='libpframe.so.0'/>
+        <dep name='libpkfiledialog.so.0'/>
+        <dep name='libplabel.so.0'/>
+        <dep name='libplined.so.0'/>
+        <dep name='libplistbox.so.0'/>
+        <dep name='libpmenudta.so.0'/>
+        <dep name='libpobjfinder.so.0'/>
+        <dep name='libppopmenu.so.0'/>
+        <dep name='libpprogress.so.0'/>
+        <dep name='libppushbt.so.0'/>
+        <dep name='libptabdialog.so.0'/>
+        <dep name='libptablevw.so.0'/>
+        <dep name='libpuke.so.0'/>
+        <dep name='/opt/kde/bin/dsirc'/>
+        <dep name='/opt/kde/bin/karchie'/>
+        <dep name='/opt/kde/bin/kbiff'/>
+        <dep name='/opt/kde/bin/kcmktalkd'/>
+        <dep name='/opt/kde/bin/kdecode'/>
+        <dep name='/opt/kde/bin/kfinger'/>
+        <dep name='/opt/kde/bin/kmail'/>
+        <dep name='/opt/kde/bin/knu'/>
+        <dep name='/opt/kde/bin/korn'/>
+        <dep name='/opt/kde/bin/kotalkd'/>
+        <dep name='/opt/kde/bin/kppp'/>
+        <dep name='/opt/kde/bin/kppplogview'/>
+        <dep name='/opt/kde/bin/krn'/>
+        <dep name='/opt/kde/bin/ksirc'/>
+        <dep name='/opt/kde/bin/ksticker'/>
+        <dep name='/opt/kde/bin/ktalkd'/>
+        <dep name='/opt/kde/bin/ktalkdlg'/>
+        <dep name='/opt/kde/bin/mail.local'/>
+        <dep name='/opt/kde/bin/mathpod'/>
+        <dep name='/opt/kde/bin/newkrn'/>
+        <dep name='/opt/kde/lib/ksirc/libksirclistbox.la'/>
+        <dep name='/opt/kde/lib/ksirc/libksirclistbox.so'/>
+        <dep name='/opt/kde/lib/ksirc/libksirclistbox.so.0'/>
+        <dep name='/opt/kde/lib/ksirc/libksirclistbox.so.0.0.0'/>
+        <dep name='/opt/kde/lib/ksirc/libpalistbox.la'/>
+        <dep name='/opt/kde/lib/ksirc/libpalistbox.so'/>
+        <dep name='/opt/kde/lib/ksirc/libpalistbox.so.0'/>
+        <dep name='/opt/kde/lib/ksirc/libpalistbox.so.0.0.0'/>
+        <dep name='/opt/kde/lib/ksirc/libpbutton.la'/>
+        <dep name='/opt/kde/lib/ksirc/libpbutton.so'/>
+        <dep name='/opt/kde/lib/ksirc/libpbutton.so.0'/>
+        <dep name='/opt/kde/lib/ksirc/libpbutton.so.0.0.0'/>
+        <dep name='/opt/kde/lib/ksirc/libpframe.la'/>
+        <dep name='/opt/kde/lib/ksirc/libpframe.so'/>
+        <dep name='/opt/kde/lib/ksirc/libpframe.so.0'/>
+        <dep name='/opt/kde/lib/ksirc/libpframe.so.0.0.0'/>
+        <dep name='/opt/kde/lib/ksirc/libpkfiledialog.la'/>
+        <dep name='/opt/kde/lib/ksirc/libpkfiledialog.so'/>
+        <dep name='/opt/kde/lib/ksirc/libpkfiledialog.so.0'/>
+        <dep name='/opt/kde/lib/ksirc/libpkfiledialog.so.0.0.0'/>
+        <dep name='/opt/kde/lib/ksirc/libplabel.la'/>
+        <dep name='/opt/kde/lib/ksirc/libplabel.so'/>
+        <dep name='/opt/kde/lib/ksirc/libplabel.so.0'/>
+        <dep name='/opt/kde/lib/ksirc/libplabel.so.0.0.0'/>
+        <dep name='/opt/kde/lib/ksirc/libplined.la'/>
+        <dep name='/opt/kde/lib/ksirc/libplined.so'/>
+        <dep name='/opt/kde/lib/ksirc/libplined.so.0'/>
+        <dep name='/opt/kde/lib/ksirc/libplined.so.0.0.0'/>
+        <dep name='/opt/kde/lib/ksirc/libplistbox.la'/>
+        <dep name='/opt/kde/lib/ksirc/libplistbox.so'/>
+        <dep name='/opt/kde/lib/ksirc/libplistbox.so.0'/>
+        <dep name='/opt/kde/lib/ksirc/libplistbox.so.0.0.0'/>
+        <dep name='/opt/kde/lib/ksirc/libpmenudta.la'/>
+        <dep name='/opt/kde/lib/ksirc/libpmenudta.so'/>
+        <dep name='/opt/kde/lib/ksirc/libpmenudta.so.0'/>
+        <dep name='/opt/kde/lib/ksirc/libpmenudta.so.0.0.0'/>
+        <dep name='/opt/kde/lib/ksirc/libpobjfinder.la'/>
+        <dep name='/opt/kde/lib/ksirc/libpobjfinder.so'/>
+        <dep name='/opt/kde/lib/ksirc/libpobjfinder.so.0'/>
+        <dep name='/opt/kde/lib/ksirc/libpobjfinder.so.0.0.0'/>
+        <dep name='/opt/kde/lib/ksirc/libppopmenu.la'/>
+        <dep name='/opt/kde/lib/ksirc/libppopmenu.so'/>
+        <dep name='/opt/kde/lib/ksirc/libppopmenu.so.0'/>
+        <dep name='/opt/kde/lib/ksirc/libppopmenu.so.0.0.0'/>
+        <dep name='/opt/kde/lib/ksirc/libpprogress.la'/>
+        <dep name='/opt/kde/lib/ksirc/libpprogress.so'/>
+        <dep name='/opt/kde/lib/ksirc/libpprogress.so.0'/>
+        <dep name='/opt/kde/lib/ksirc/libpprogress.so.0.0.0'/>
+        <dep name='/opt/kde/lib/ksirc/libppushbt.la'/>
+        <dep name='/opt/kde/lib/ksirc/libppushbt.so'/>
+        <dep name='/opt/kde/lib/ksirc/libppushbt.so.0'/>
+        <dep name='/opt/kde/lib/ksirc/libppushbt.so.0.0.0'/>
+        <dep name='/opt/kde/lib/ksirc/libptabdialog.la'/>
+        <dep name='/opt/kde/lib/ksirc/libptabdialog.so'/>
+        <dep name='/opt/kde/lib/ksirc/libptabdialog.so.0'/>
+        <dep name='/opt/kde/lib/ksirc/libptabdialog.so.0.0.0'/>
+        <dep name='/opt/kde/lib/ksirc/libptablevw.la'/>
+        <dep name='/opt/kde/lib/ksirc/libptablevw.so'/>
+        <dep name='/opt/kde/lib/ksirc/libptablevw.so.0'/>
+        <dep name='/opt/kde/lib/ksirc/libptablevw.so.0.0.0'/>
+        <dep name='/opt/kde/lib/libpuke.la'/>
+        <dep name='/opt/kde/lib/libpuke.so'/>
+        <dep name='/opt/kde/lib/libpuke.so.0'/>
+        <dep name='/opt/kde/lib/libpuke.so.0.0.1'/>
+        <dep name='/opt/kde/share/apps/kppp/Rules/checkrules'/>
+      </provides>
+      <requires>
+        <dep name='kdelibs'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libgdbm.so.2'/>
+        <dep name='libjpeg.so.6'/>
+        <dep name='libjscript.so.2'/>
+        <dep name='libkdecore.so.2'/>
+        <dep name='libkdeui.so.2'/>
+        <dep name='libkfile.so.2'/>
+        <dep name='libkfm.so.2'/>
+        <dep name='libkhtmlw.so.2'/>
+        <dep name='libkimgio.so.2'/>
+        <dep name='libkspell.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libmediatool.so.2'/>
+        <dep name='libmimelib.so.1'/>
+        <dep name='libpng.so.1'/>
+        <dep name='libpuke.so.0'/>
+        <dep name='libqt.so.1'/>
+        <dep name='libstdc++.so.2.9'/>
+        <dep name='libtiff.so.3'/>
+        <dep name='libuulib.so.5'/>
+        <dep name='libz.so.1'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>kdestart</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1</version>
+          <release>26</release>
+          <filename>kdestart.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/X11/xinit/kdeinitrc'/>
+        <dep name='/opt/kde/bin/kde'/>
+        <dep name='/opt/kde/bin/kdewizard'/>
+        <dep name='/opt/kde/bin/kprintwrapper'/>
+        <dep name='/opt/kde/bin/krunonce'/>
+        <dep name='/opt/kde/bin/startkde'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libjpeg.so.6'/>
+        <dep name='libjscript.so.2'/>
+        <dep name='libkdecore.so.2'/>
+        <dep name='libkdeui.so.2'/>
+        <dep name='libkfm.so.2'/>
+        <dep name='libkhtmlw.so.2'/>
+        <dep name='libkimgio.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libpng.so.1'/>
+        <dep name='libqt.so.1'/>
+        <dep name='libstdc++.so.2.9'/>
+        <dep name='libtiff.so.3'/>
+        <dep name='libz.so.1'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>kdesupport-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1.2</version>
+          <release>1</release>
+          <filename>kdesupport-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='kdesupport-devel' op='=' version='1.1.2'/>
+      </requires>
+    </package>
+    <package>
+      <name>kdesupport-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1.2</version>
+          <release>1</release>
+          <filename>kdesupport-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/opt/kde/lib/libQwSpriteField.so'/>
+        <dep name='/opt/kde/lib/libgif.so'/>
+        <dep name='/opt/kde/lib/libjs.so'/>
+        <dep name='/opt/kde/lib/libmimelib.so'/>
+        <dep name='/opt/kde/lib/libuulib.so'/>
+      </provides>
+      <requires>
+        <dep name='kdesupport' op='=' version='1.1.2'/>
+      </requires>
+    </package>
+    <package>
+      <name>kdesupport</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1.2</version>
+          <release>1</release>
+          <filename>kdesupport.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libQwSpriteField.so.1'/>
+        <dep name='libgif.so.3'/>
+        <dep name='libjs.so.0'/>
+        <dep name='libmimelib.so.1'/>
+        <dep name='libuulib.so.5'/>
+        <dep name='/opt/kde/lib/libQwSpriteField.la'/>
+        <dep name='/opt/kde/lib/libQwSpriteField.so.1'/>
+        <dep name='/opt/kde/lib/libQwSpriteField.so.1.5.0'/>
+        <dep name='/opt/kde/lib/libgif.la'/>
+        <dep name='/opt/kde/lib/libgif.so.3'/>
+        <dep name='/opt/kde/lib/libgif.so.3.0.0'/>
+        <dep name='/opt/kde/lib/libjs.la'/>
+        <dep name='/opt/kde/lib/libjs.so.0'/>
+        <dep name='/opt/kde/lib/libjs.so.0.2.0'/>
+        <dep name='/opt/kde/lib/libmimelib.la'/>
+        <dep name='/opt/kde/lib/libmimelib.so.1'/>
+        <dep name='/opt/kde/lib/libmimelib.so.1.0.0'/>
+        <dep name='/opt/kde/lib/libuulib.la'/>
+        <dep name='/opt/kde/lib/libuulib.so.5'/>
+        <dep name='/opt/kde/lib/libuulib.so.5.0.13'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libqt.so.1'/>
+        <dep name='libstdc++.so.2.9'/>
+      </requires>
+    </package>
+    <package>
+      <name>kdethemes</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.0</version>
+          <release>1</release>
+          <filename>kdethemes.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>kdetoys</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1.2</version>
+          <release>1</release>
+          <filename>kdetoys.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/opt/kde/bin/kmoon'/>
+        <dep name='/opt/kde/bin/kodo'/>
+        <dep name='/opt/kde/bin/kworldwatch'/>
+      </provides>
+      <requires>
+        <dep name='kdelibs' op='=' version='1.1.2'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libkdecore.so.2'/>
+        <dep name='libkdeui.so.2'/>
+        <dep name='libkfm.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libqt.so.1'/>
+        <dep name='libstdc++.so.2.9'/>
+      </requires>
+    </package>
+    <package>
+      <name>kdeutils</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1.2</version>
+          <release>1</release>
+          <filename>kdeutils.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/opt/kde/bin/ark'/>
+        <dep name='/opt/kde/bin/kab'/>
+        <dep name='/opt/kde/bin/kabapi_test'/>
+        <dep name='/opt/kde/bin/karm'/>
+        <dep name='/opt/kde/bin/kcalc'/>
+        <dep name='/opt/kde/bin/kedit'/>
+        <dep name='/opt/kde/bin/kfdformat'/>
+        <dep name='/opt/kde/bin/kfloppy'/>
+        <dep name='/opt/kde/bin/khexdit'/>
+        <dep name='/opt/kde/bin/kjots'/>
+        <dep name='/opt/kde/bin/klipper'/>
+        <dep name='/opt/kde/bin/kljettool'/>
+        <dep name='/opt/kde/bin/klpq'/>
+        <dep name='/opt/kde/bin/kmkdosfs'/>
+        <dep name='/opt/kde/bin/kmke2fs'/>
+        <dep name='/opt/kde/bin/knotes'/>
+        <dep name='/opt/kde/bin/kpm'/>
+        <dep name='/opt/kde/bin/kpmdocked'/>
+        <dep name='/opt/kde/bin/ktop'/>
+        <dep name='/opt/kde/bin/kwrite'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libjpeg.so.6'/>
+        <dep name='libkab.so.2'/>
+        <dep name='libkdecore.so.2'/>
+        <dep name='libkdeui.so.2'/>
+        <dep name='libkfile.so.2'/>
+        <dep name='libkfm.so.2'/>
+        <dep name='libkimgio.so.2'/>
+        <dep name='libkspell.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libpng.so.1'/>
+        <dep name='libqt.so.1'/>
+        <dep name='libstdc++.so.2.9'/>
+        <dep name='libtiff.so.3'/>
+        <dep name='libz.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>kdevelop</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0beta2</version>
+          <release>1</release>
+          <filename>kdevelop.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libkdlgloader.so.1'/>
+        <dep name='/opt/kde/bin/kdevelop'/>
+        <dep name='/opt/kde/lib/libkdlgloader.la'/>
+        <dep name='/opt/kde/lib/libkdlgloader.so'/>
+        <dep name='/opt/kde/lib/libkdlgloader.so.1'/>
+        <dep name='/opt/kde/lib/libkdlgloader.so.1.0.0'/>
+      </provides>
+      <requires>
+        <dep name='kdbg'/>
+        <dep name='make'/>
+        <dep name='perl'/>
+        <dep name='autoconf'/>
+        <dep name='automake'/>
+        <dep name='g++'/>
+        <dep name='qt-devel'/>
+        <dep name='kdelibs-devel'/>
+        <dep name='kdegraphics'/>
+        <dep name='enscript'/>
+        <dep name='kdedoc'/>
+        <dep name='sgml-tools'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdb.so.3'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libjpeg.so.6'/>
+        <dep name='libjscript.so.2'/>
+        <dep name='libkdecore.so.2'/>
+        <dep name='libkdeui.so.2'/>
+        <dep name='libkfile.so.2'/>
+        <dep name='libkfm.so.2'/>
+        <dep name='libkhtmlw.so.2'/>
+        <dep name='libkimgio.so.2'/>
+        <dep name='libkspell.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libpng.so.1'/>
+        <dep name='libqt.so.1'/>
+        <dep name='libstdc++.so.2.9'/>
+        <dep name='libtiff.so.3'/>
+        <dep name='libz.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>killustrator</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.7</version>
+          <release>2</release>
+          <filename>killustrator.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/opt/kde/bin/killustrator'/>
+      </provides>
+      <requires>
+        <dep name='kdelibs'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libjpeg.so.6'/>
+        <dep name='libkdecore.so.2'/>
+        <dep name='libkdeui.so.2'/>
+        <dep name='libkfile.so.2'/>
+        <dep name='libkfm.so.2'/>
+        <dep name='libkimgio.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libpng.so.1'/>
+        <dep name='libqimgio.so.0'/>
+        <dep name='libqt.so.1'/>
+        <dep name='libqt.so.2'/>
+        <dep name='libstdc++.so.2.9'/>
+        <dep name='libtiff.so.3'/>
+        <dep name='libz.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>kisdn</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0.1</version>
+          <release>2</release>
+          <filename>kisdn.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/opt/kde/bin/kcmkisdn'/>
+        <dep name='/opt/kde/bin/kisdn'/>
+        <dep name='/opt/kde/bin/printversion'/>
+        <dep name='/opt/kde/share/apps/kcmkisdn'/>
+        <dep name='/opt/kde/share/apps/kisdn/bin/kisdnaudio'/>
+        <dep name='/opt/kde/share/apps/kisdn/bin/kisdnrecord'/>
+        <dep name='/opt/kde/share/apps/kisdn/bin/kisdnvp'/>
+      </provides>
+      <requires>
+        <dep name='kdelibs'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libjpeg.so.6'/>
+        <dep name='libkdecore.so.2'/>
+        <dep name='libkdeui.so.2'/>
+        <dep name='libkfile.so.2'/>
+        <dep name='libkfm.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libmediatool.so.2'/>
+        <dep name='libpng.so.1'/>
+        <dep name='libqimgio.so.0'/>
+        <dep name='libqt.so.1'/>
+        <dep name='libqt.so.2'/>
+        <dep name='libstdc++.so.2.9'/>
+        <dep name='libz.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>klyx</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.9.9</version>
+          <release>2</release>
+          <filename>klyx.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/opt/kde/bin/klyx'/>
+        <dep name='/opt/kde/share/apps/klyx/configure'/>
+      </provides>
+      <requires>
+        <dep name='kdelibs'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libkdecore.so.2'/>
+        <dep name='libkdeui.so.2'/>
+        <dep name='libkfile.so.2'/>
+        <dep name='libkfm.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libqt.so.1'/>
+        <dep name='libstdc++.so.2.9'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>kmpg</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.5.0a</version>
+          <release>2</release>
+          <filename>kmpg.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/opt/kde/bin/cdparanoia-yaf'/>
+        <dep name='/opt/kde/bin/kmpg'/>
+        <dep name='/opt/kde/bin/splay-yaf'/>
+        <dep name='/opt/kde/bin/tplay-yaf'/>
+      </provides>
+      <requires>
+        <dep name='kdelibs'/>
+        <dep name='xanim'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libkdecore.so.2'/>
+        <dep name='libkdeui.so.2'/>
+        <dep name='libkfile.so.2'/>
+        <dep name='libkfm.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libpthread.so.0'/>
+        <dep name='libqt.so.1'/>
+        <dep name='libstdc++.so.2.9'/>
+      </requires>
+    </package>
+    <package>
+      <name>korganizer</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1.2</version>
+          <release>1</release>
+          <filename>korganizer.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/opt/kde/bin/alarmd'/>
+        <dep name='/opt/kde/bin/korganizer'/>
+        <dep name='/opt/kde/share/apps/korganizer/ical2vcal'/>
+      </provides>
+      <requires>
+        <dep name='kdelibs' op='=' version='1.1.2'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libkab.so.2'/>
+        <dep name='libkdecore.so.2'/>
+        <dep name='libkdeui.so.2'/>
+        <dep name='libkfile.so.2'/>
+        <dep name='libkfm.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libmediatool.so.2'/>
+        <dep name='libqt.so.1'/>
+        <dep name='libstdc++.so.2.9'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>kpackage</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.3.6</version>
+          <release>4</release>
+          <filename>kpackage.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/opt/kde/bin/kpackage'/>
+        <dep name='/opt/kde/bin/kpackage.kdesu'/>
+        <dep name='/opt/kde/bin/kpackage_dpkg_ins'/>
+        <dep name='/opt/kde/bin/kpackage_dpkg_rm'/>
+        <dep name='/opt/kde/bin/kpackage_slack_l'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdb.so.2'/>
+        <dep name='libkdecore.so.2'/>
+        <dep name='libkdeui.so.2'/>
+        <dep name='libkfile.so.2'/>
+        <dep name='libkfm.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libqt.so.1'/>
+        <dep name='libstdc++.so.2.9'/>
+        <dep name='libz.so.1'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>kpilot</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.1b9</version>
+          <release>1</release>
+          <filename>kpilot.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/opt/kde/bin/kpilot'/>
+        <dep name='/opt/kde/bin/kpilotDaemon'/>
+        <dep name='/opt/kde/bin/pilotListener'/>
+        <dep name='/opt/kde/share/apps/kpilot/conduits/popmail_conduit'/>
+        <dep name='/opt/kde/share/apps/kpilot/conduits/todoconduit'/>
+        <dep name='/opt/kde/share/apps/kpilot/conduits/vcalconduit'/>
+      </provides>
+      <requires>
+        <dep name='qt' op='&gt;=' version='1.4'/>
+        <dep name='/sbin/ldconfig'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libkdecore.so.2'/>
+        <dep name='libkdeui.so.2'/>
+        <dep name='libkfile.so.2'/>
+        <dep name='libkfm.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libqt.so.1'/>
+        <dep name='libstdc++.so.2.9'/>
+      </requires>
+    </package>
+    <package>
+      <name>kquery</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.9</version>
+          <release>2</release>
+          <filename>kquery.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/opt/kde/cgi-bin/display'/>
+        <dep name='/opt/kde/cgi-bin/query'/>
+        <dep name='/opt/kde/cgi-bin/rpm_query'/>
+      </provides>
+      <requires>
+        <dep name='perl-cgi'/>
+        <dep name='kdebase'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>ktb</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.02a</version>
+          <release>1</release>
+          <filename>ktb.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/opt/kde/bin/ktb'/>
+        <dep name='/opt/kde/share/doc/HTML/en/ktb/index.html'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libjpeg.so.6'/>
+        <dep name='libkdecore.so.2'/>
+        <dep name='libkdeui.so.2'/>
+        <dep name='libkfile.so.2'/>
+        <dep name='libkfm.so.2'/>
+        <dep name='libkimgio.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libpng.so.1'/>
+        <dep name='libqt.so.1'/>
+        <dep name='libstdc++.so.2.9'/>
+        <dep name='libtiff.so.3'/>
+        <dep name='libz.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>ktzset</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.1</version>
+          <release>4</release>
+          <filename>ktzset.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/sbin/ktzset'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>ldp</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>19990730</version>
+          <release>2</release>
+          <filename>ldp.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>ldp-en-ascii</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>19990730</version>
+          <release>2</release>
+          <filename>ldp-en-ascii.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ldp' op='=' version='19990730'/>
+      </requires>
+    </package>
+    <package>
+      <name>ldp-en-dvi</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>19990730</version>
+          <release>2</release>
+          <filename>ldp-en-dvi.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ldp' op='=' version='19990730'/>
+      </requires>
+    </package>
+    <package>
+      <name>ldp-en-html</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>19990730</version>
+          <release>2</release>
+          <filename>ldp-en-html.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/doc/LDP/linux-kernel/tlk-0.8-3.html/license'/>
+        <dep name='/usr/doc/LDP/linux-kernel/tlk-0.8-3.html/logos/penguin-sit3.gif'/>
+        <dep name='/usr/doc/LDP/linux-kernel/tlk-0.8-3.html/logos/sit3-bw-tran.1.gif'/>
+        <dep name='/usr/doc/LDP/linux-kernel/tlk-0.8-3.html/logos/sit3-bwo-tran.1.gif'/>
+        <dep name='/usr/doc/LDP/linux-kernel/tlk-0.8-3.html/misc/copyright.html'/>
+        <dep name='/usr/doc/LDP/linux-kernel/tlk-0.8-3.html/notes/LDP-Manifesto.html'/>
+        <dep name='/usr/doc/LDP/linux-kernel/tlk-0.8-3.html/readme'/>
+        <dep name='/usr/doc/html/lkmpg'/>
+      </provides>
+      <requires>
+        <dep name='ldp' op='=' version='19990730'/>
+      </requires>
+    </package>
+    <package>
+      <name>ldp-en-ps</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>19990730</version>
+          <release>2</release>
+          <filename>ldp-en-ps.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ldp' op='=' version='19990730'/>
+      </requires>
+    </package>
+    <package>
+      <name>ldp-es-ascii</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>19990730</version>
+          <release>2</release>
+          <filename>ldp-es-ascii.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ldp' op='=' version='19990730'/>
+      </requires>
+    </package>
+    <package>
+      <name>ldp-es-dvi</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>19990730</version>
+          <release>2</release>
+          <filename>ldp-es-dvi.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ldp' op='=' version='19990730'/>
+      </requires>
+    </package>
+    <package>
+      <name>ldp-es-ps</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>19990730</version>
+          <release>2</release>
+          <filename>ldp-es-ps.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ldp' op='=' version='19990730'/>
+      </requires>
+    </package>
+    <package>
+      <name>ldp-fr-dvi</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>19990730</version>
+          <release>2</release>
+          <filename>ldp-fr-dvi.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ldp' op='=' version='19990730'/>
+      </requires>
+    </package>
+    <package>
+      <name>ldp-fr-ps</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>19990730</version>
+          <release>2</release>
+          <filename>ldp-fr-ps.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ldp' op='=' version='19990730'/>
+      </requires>
+    </package>
+    <package>
+      <name>ldp-it-dvi</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>19990730</version>
+          <release>2</release>
+          <filename>ldp-it-dvi.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ldp' op='=' version='19990730'/>
+      </requires>
+    </package>
+    <package>
+      <name>ldp-it-html</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>19990730</version>
+          <release>2</release>
+          <filename>ldp-it-html.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/doc/LDP/users-guide/translations/it/guide-html/IMG_PARAMS.db'/>
+      </provides>
+      <requires>
+        <dep name='ldp' op='=' version='19990730'/>
+      </requires>
+    </package>
+    <package>
+      <name>ldp-it-ps</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>19990730</version>
+          <release>2</release>
+          <filename>ldp-it-ps.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ldp' op='=' version='19990730'/>
+      </requires>
+    </package>
+    <package>
+      <name>ldp-ru-ascii</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>19990730</version>
+          <release>2</release>
+          <filename>ldp-ru-ascii.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ldp' op='=' version='19990730'/>
+      </requires>
+    </package>
+    <package>
+      <name>ldp-ru-dvi</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>19990730</version>
+          <release>2</release>
+          <filename>ldp-ru-dvi.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ldp' op='=' version='19990730'/>
+      </requires>
+    </package>
+    <package>
+      <name>ldp-ru-html</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>19990730</version>
+          <release>2</release>
+          <filename>ldp-ru-html.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/doc/LDP/install-guide/translations/ru/index.html'/>
+        <dep name='/usr/doc/html/gs-ru'/>
+      </provides>
+      <requires>
+        <dep name='ldp' op='=' version='19990730'/>
+      </requires>
+    </package>
+    <package>
+      <name>ldp-ru-ps</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>19990730</version>
+          <release>2</release>
+          <filename>ldp-ru-ps.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ldp' op='=' version='19990730'/>
+      </requires>
+    </package>
+    <package>
+      <name>ldp-ru-sgml</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>19990730</version>
+          <release>2</release>
+          <filename>ldp-ru-sgml.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ldp' op='=' version='19990730'/>
+      </requires>
+    </package>
+    <package>
+      <name>ld.so</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.9.11</version>
+          <release>1</release>
+          <filename>ld.so.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/sbin/ldconfig'/>
+        <dep name='/usr/bin/ldd'/>
+        <dep name='/usr/lib/lddstub'/>
+      </provides>
+    </package>
+    <package>
+      <name>ld.so-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.9.11</version>
+          <release>1</release>
+          <filename>ld.so-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ld.so' op='=' version='1.9.11'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>less</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>340</version>
+          <release>1</release>
+          <filename>less.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/less'/>
+        <dep name='/usr/bin/lessecho'/>
+        <dep name='/usr/bin/lesskey'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>lha</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.00</version>
+          <release>5</release>
+          <filename>lha.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/lha'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>libc5</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>2</release>
+          <filename>libc5.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libc.so.5'/>
+        <dep name='libm.so.5'/>
+        <dep name='libdl.so.1'/>
+        <dep name='libg++.so.27'/>
+        <dep name='libstdc++.so.27'/>
+        <dep name='ld-linux.so.1'/>
+        <dep name='/lib/gnulibc1/libc.so.5.4.46'/>
+        <dep name='/lib/gnulibc1/libcom_err.so.2.0'/>
+        <dep name='/lib/gnulibc1/libdl.so.1.9.9'/>
+        <dep name='/lib/gnulibc1/libe2p.so.2.3'/>
+        <dep name='/lib/gnulibc1/libext2fs.so.2.4'/>
+        <dep name='/lib/gnulibc1/libiberty.so.1.0'/>
+        <dep name='/lib/gnulibc1/libm.so.5.0.9'/>
+        <dep name='/lib/gnulibc1/libncurses.so.4.1'/>
+        <dep name='/lib/gnulibc1/libss.so.2.0'/>
+        <dep name='/lib/gnulibc1/libtermcap.so.2.0.8'/>
+        <dep name='/lib/gnulibc1/libuuid.so.1.1'/>
+        <dep name='/lib/ld-linux.so.1'/>
+        <dep name='/lib/ld-linux.so.1.9.9'/>
+        <dep name='/usr/X11R6/lib/gnulibc1/libICE.so.6.3'/>
+        <dep name='/usr/X11R6/lib/gnulibc1/libMagick.so.3.8'/>
+        <dep name='/usr/X11R6/lib/gnulibc1/libMagick.so.3.8.8'/>
+        <dep name='/usr/X11R6/lib/gnulibc1/libMesaGL.so.2.4'/>
+        <dep name='/usr/X11R6/lib/gnulibc1/libMesaGLU.so.2.4'/>
+        <dep name='/usr/X11R6/lib/gnulibc1/libMesaaux.so.2.4'/>
+        <dep name='/usr/X11R6/lib/gnulibc1/libMesatk.so.2.4'/>
+        <dep name='/usr/X11R6/lib/gnulibc1/libPEX5.so.6.0'/>
+        <dep name='/usr/X11R6/lib/gnulibc1/libSM.so.6.0'/>
+        <dep name='/usr/X11R6/lib/gnulibc1/libX11.so.6.1'/>
+        <dep name='/usr/X11R6/lib/gnulibc1/libXIE.so.6.0'/>
+        <dep name='/usr/X11R6/lib/gnulibc1/libXaw.so.6.1'/>
+        <dep name='/usr/X11R6/lib/gnulibc1/libXaw.so.6.1Xaw3d'/>
+        <dep name='/usr/X11R6/lib/gnulibc1/libXaw3d.so.6.1'/>
+        <dep name='/usr/X11R6/lib/gnulibc1/libXbae.so.6'/>
+        <dep name='/usr/X11R6/lib/gnulibc1/libXbae.so.6.2'/>
+        <dep name='/usr/X11R6/lib/gnulibc1/libXext.so.6.3'/>
+        <dep name='/usr/X11R6/lib/gnulibc1/libXi.so.6.0'/>
+        <dep name='/usr/X11R6/lib/gnulibc1/libXmu.so.6.0'/>
+        <dep name='/usr/X11R6/lib/gnulibc1/libXp.so.6.2'/>
+        <dep name='/usr/X11R6/lib/gnulibc1/libXpm.so.4.10'/>
+        <dep name='/usr/X11R6/lib/gnulibc1/libXt.so.6.0'/>
+        <dep name='/usr/X11R6/lib/gnulibc1/libXtst.so.6.1'/>
+        <dep name='/usr/X11R6/lib/gnulibc1/libforms.so.0.86'/>
+        <dep name='/usr/lib/gnulibc1/libdb.so.1.85.4'/>
+        <dep name='/usr/lib/gnulibc1/libexpect5.22.so'/>
+        <dep name='/usr/lib/gnulibc1/libfbm.so.1.0.0'/>
+        <dep name='/usr/lib/gnulibc1/libform.so.4.1'/>
+        <dep name='/usr/lib/gnulibc1/libg++.so.27.2.8'/>
+        <dep name='/usr/lib/gnulibc1/libgpm.so.1.13'/>
+        <dep name='/usr/lib/gnulibc1/libinn.so.2.0.0'/>
+        <dep name='/usr/lib/gnulibc1/libjpeg.so.6.0.1'/>
+        <dep name='/usr/lib/gnulibc1/libm68k-palmos-coff-bfd.so.2.7'/>
+        <dep name='/usr/lib/gnulibc1/libm68k-palmos-coff-opcodes.so.2.7'/>
+        <dep name='/usr/lib/gnulibc1/libmenu.so.4.1'/>
+        <dep name='/usr/lib/gnulibc1/libmh.so.3.2'/>
+        <dep name='/usr/lib/gnulibc1/libnwatb.so'/>
+        <dep name='/usr/lib/gnulibc1/libnwcalls.so'/>
+        <dep name='/usr/lib/gnulibc1/libnwclient.so'/>
+        <dep name='/usr/lib/gnulibc1/libnwloc.so'/>
+        <dep name='/usr/lib/gnulibc1/libnwncp.so'/>
+        <dep name='/usr/lib/gnulibc1/libnwnet.so'/>
+        <dep name='/usr/lib/gnulibc1/libp2c.so.1.2.0'/>
+        <dep name='/usr/lib/gnulibc1/libpanel.so.4.1'/>
+        <dep name='/usr/lib/gnulibc1/libpbm.so.1.0.0'/>
+        <dep name='/usr/lib/gnulibc1/libpgm.so.1.0.0'/>
+        <dep name='/usr/lib/gnulibc1/libpng.so.1.0.96'/>
+        <dep name='/usr/lib/gnulibc1/libpnm.so.1.0.0'/>
+        <dep name='/usr/lib/gnulibc1/libppm.so.1.0.0'/>
+        <dep name='/usr/lib/gnulibc1/libpthreads.so.1.60.4'/>
+        <dep name='/usr/lib/gnulibc1/libqt.so.1.42'/>
+        <dep name='/usr/lib/gnulibc1/librle.so.1.0.0'/>
+        <dep name='/usr/lib/gnulibc1/libshadow.so.0.0.0'/>
+        <dep name='/usr/lib/gnulibc1/libstdc++.so.27.2.8'/>
+        <dep name='/usr/lib/gnulibc1/libstorage.so.2.0.0'/>
+        <dep name='/usr/lib/gnulibc1/libtcl7.6.so'/>
+        <dep name='/usr/lib/gnulibc1/libtclx7.6.0.so'/>
+        <dep name='/usr/lib/gnulibc1/libtiff.so.3.4.33'/>
+        <dep name='/usr/lib/gnulibc1/libtk4.2.so'/>
+        <dep name='/usr/lib/gnulibc1/libtkx4.2.0.so'/>
+        <dep name='/usr/lib/gnulibc1/libvga.so.1.3.0'/>
+        <dep name='/usr/lib/gnulibc1/libvgagl.so.1.3.0'/>
+        <dep name='/usr/lib/gnulibc1/libz.so.1.0.2'/>
+        <dep name='/usr/lib/gnulibc1/tkined1.4.7.so'/>
+        <dep name='/usr/lib/gnulibc1/tnm2.1.7.so'/>
+        <dep name='/usr/openwin/lib/gnulibc1/libolgx.so.3.2.4'/>
+        <dep name='/usr/openwin/lib/gnulibc1/libxview.so.3.2.4'/>
+      </provides>
+      <requires>
+        <dep name='ld.so' op='&gt;' version='1.9'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>libgr</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.13</version>
+          <release>2</release>
+          <filename>libgr.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libfbm.so.1'/>
+        <dep name='libjpeg.so.6'/>
+        <dep name='libpbm.so.1'/>
+        <dep name='libpgm.so.1'/>
+        <dep name='libpng.so.1'/>
+        <dep name='libpnm.so.1'/>
+        <dep name='libppm.so.1'/>
+        <dep name='libtiff.so.3'/>
+        <dep name='/usr/lib/libfbm.so.1.0.0'/>
+        <dep name='/usr/lib/libjpeg.so.6.0.1'/>
+        <dep name='/usr/lib/libpbm.so.1.0.0'/>
+        <dep name='/usr/lib/libpgm.so.1.0.0'/>
+        <dep name='/usr/lib/libpng.so.1.0.96'/>
+        <dep name='/usr/lib/libpnm.so.1.0.0'/>
+        <dep name='/usr/lib/libppm.so.1.0.0'/>
+        <dep name='/usr/lib/libtiff.so.3.4.33'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>libgr-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.13</version>
+          <release>2</release>
+          <filename>libgr-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>libgr-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.13</version>
+          <release>2</release>
+          <filename>libgr-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/libfbm.so'/>
+        <dep name='/usr/lib/libjpeg.so'/>
+        <dep name='/usr/lib/libpbm.so'/>
+        <dep name='/usr/lib/libpgm.so'/>
+        <dep name='/usr/lib/libpng.so'/>
+        <dep name='/usr/lib/libpnm.so'/>
+        <dep name='/usr/lib/libppm.so'/>
+        <dep name='/usr/lib/libtiff.so'/>
+      </provides>
+    </package>
+    <package>
+      <name>libgr-progs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.13</version>
+          <release>2</release>
+          <filename>libgr-progs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/cjpeg'/>
+        <dep name='/usr/bin/djpeg'/>
+        <dep name='/usr/bin/fax2ps'/>
+        <dep name='/usr/bin/fax2tiff'/>
+        <dep name='/usr/bin/gif2tiff'/>
+        <dep name='/usr/bin/jpegtran'/>
+        <dep name='/usr/bin/pal2rgb'/>
+        <dep name='/usr/bin/ras2tiff'/>
+        <dep name='/usr/bin/rdjpgcom'/>
+        <dep name='/usr/bin/rgb2ycbcr'/>
+        <dep name='/usr/bin/thumbnail'/>
+        <dep name='/usr/bin/tiff2bw'/>
+        <dep name='/usr/bin/tiff2ps'/>
+        <dep name='/usr/bin/tiffcmp'/>
+        <dep name='/usr/bin/tiffcp'/>
+        <dep name='/usr/bin/tiffdither'/>
+        <dep name='/usr/bin/tiffdump'/>
+        <dep name='/usr/bin/tiffinfo'/>
+        <dep name='/usr/bin/tiffmedian'/>
+        <dep name='/usr/bin/tiffsplit'/>
+        <dep name='/usr/bin/wrjpgcom'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libjpeg.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libtiff.so.3'/>
+        <dep name='libz.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>libident-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.22</version>
+          <release>1</release>
+          <filename>libident-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>libpam</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.66</version>
+          <release>3</release>
+          <filename>libpam.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libpam.so.0'/>
+        <dep name='libpam_misc.so.0'/>
+        <dep name='pam_access.so'/>
+        <dep name='pam_cracklib.so'/>
+        <dep name='pam_deny.so'/>
+        <dep name='pam_env.so'/>
+        <dep name='pam_ftp.so'/>
+        <dep name='pam_group.so'/>
+        <dep name='pam_lastlog.so'/>
+        <dep name='pam_limits.so'/>
+        <dep name='pam_listfile.so'/>
+        <dep name='pam_mail.so'/>
+        <dep name='pam_nologin.so'/>
+        <dep name='pam_permit.so'/>
+        <dep name='pam_pwdb.so'/>
+        <dep name='pam_radius.so'/>
+        <dep name='pam_rhosts_auth.so'/>
+        <dep name='pam_rootok.so'/>
+        <dep name='pam_securetty.so'/>
+        <dep name='pam_shells.so'/>
+        <dep name='pam_stress.so'/>
+        <dep name='pam_tally.so'/>
+        <dep name='pam_time.so'/>
+        <dep name='pam_unix_acct.so'/>
+        <dep name='pam_unix_auth.so'/>
+        <dep name='pam_unix_passwd.so'/>
+        <dep name='pam_unix_session.so'/>
+        <dep name='pam_warn.so'/>
+        <dep name='pam_wheel.so'/>
+        <dep name='/sbin/pam_conv1'/>
+      </provides>
+      <requires>
+        <dep name='libpwdb' op='&gt;=' version='0.54'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libpwdb.so.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>libpam-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.66</version>
+          <release>3</release>
+          <filename>libpam-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/libpam.so'/>
+        <dep name='/usr/lib/libpam_misc.so'/>
+      </provides>
+      <requires>
+        <dep name='libpam' op='=' version='0.66'/>
+      </requires>
+    </package>
+    <package>
+      <name>libpwdb-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.54</version>
+          <release>8</release>
+          <filename>libpwdb-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='libpwdb-devel' op='=' version='0.54'/>
+      </requires>
+    </package>
+    <package>
+      <name>libpwdb-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.54</version>
+          <release>8</release>
+          <filename>libpwdb-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/libpwdb.so'/>
+      </provides>
+      <requires>
+        <dep name='libpwdb' op='=' version='0.54'/>
+      </requires>
+    </package>
+    <package>
+      <name>libpwdb</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.54</version>
+          <release>8</release>
+          <filename>libpwdb.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libpwdb.so.0'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>libstdc++-compat</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.8.0</version>
+          <release>1</release>
+          <filename>libstdc++-compat.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libstdc++.so.2.8'/>
+        <dep name='/usr/lib/libstdc++.so.2.8.0'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>libstdc++</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.9.0</version>
+          <release>5</release>
+          <filename>libstdc++.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libstdc++.so.2.9'/>
+        <dep name='/usr/lib/libstdc++.so.2.9.0'/>
+      </provides>
+      <requires>
+        <dep name='/sbin/ldconfig'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>libtiff-devel-doc-html</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.4.33</version>
+          <release>2</release>
+          <filename>libtiff-devel-doc-html.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>libtiff-devel-doc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.4.33</version>
+          <release>2</release>
+          <filename>libtiff-devel-doc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>libz</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0.2</version>
+          <release>2</release>
+          <filename>libz.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libz.so.1'/>
+        <dep name='/usr/lib/libz.so.1.0.2'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>libz-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0.2</version>
+          <release>2</release>
+          <filename>libz-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>libz-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0.2</version>
+          <release>2</release>
+          <filename>libz-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/libz.so'/>
+      </provides>
+    </package>
+    <package>
+      <name>lilo</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.21</version>
+          <release>6</release>
+          <filename>lilo.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='boot-loader'/>
+        <dep name='/boot/boot.b.orig'/>
+        <dep name='/sbin/activate'/>
+        <dep name='/sbin/lilo'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>lilo-doc-ps</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.21</version>
+          <release>6</release>
+          <filename>lilo-doc-ps.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>lilo-doc-dvi</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.21</version>
+          <release>6</release>
+          <filename>lilo-doc-dvi.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>lilo-doc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.21</version>
+          <release>6</release>
+          <filename>lilo-doc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/doc/lilo-0.21/QuickInst'/>
+        <dep name='/usr/doc/lilo-0.21/doc/user.txt.gz'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>linux-kernel-include</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2.13</version>
+          <release>1S</release>
+          <filename>linux-kernel-include.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>linux-kernel-doc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2.13</version>
+          <release>1S</release>
+          <filename>linux-kernel-doc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>linux-kernel-binary</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2.13</version>
+          <release>1S</release>
+          <filename>linux-kernel-binary.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/libexec/kernel/grub-del.pl'/>
+        <dep name='/usr/libexec/kernel/grub-ins.pl'/>
+        <dep name='/usr/libexec/kernel/lilo-del.pl'/>
+        <dep name='/usr/libexec/kernel/lilo-ins.pl'/>
+        <dep name='/usr/src/linux-2.2.13/vmlinux'/>
+        <dep name='/usr/src/linux-2.2.13/vmlinux-pc97'/>
+      </provides>
+      <requires>
+        <dep name='modutils' op='&gt;=' version='2.1.121' release='5'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>linux-source-sparc64</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2.13</version>
+          <release>1S</release>
+          <filename>linux-source-sparc64.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>linux-source-sparc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2.13</version>
+          <release>1S</release>
+          <filename>linux-source-sparc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>linux-source-ppc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2.13</version>
+          <release>1S</release>
+          <filename>linux-source-ppc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>linux-source-mips</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2.13</version>
+          <release>1S</release>
+          <filename>linux-source-mips.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>linux-source-m68k</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2.13</version>
+          <release>1S</release>
+          <filename>linux-source-m68k.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>linux-source-i386</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2.13</version>
+          <release>1S</release>
+          <filename>linux-source-i386.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>linux-source-common</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2.13</version>
+          <release>1S</release>
+          <filename>linux-source-common.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/src/linux-2.2.13/drivers/usb/mkmap'/>
+        <dep name='/usr/src/linux-2.2.13/drivers/usb/restart'/>
+        <dep name='/usr/src/linux-2.2.13/drivers/usb/stopusb'/>
+        <dep name='/usr/src/linux-2.2.13/scripts/patch-kernel'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>linux-source-arm</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2.13</version>
+          <release>1S</release>
+          <filename>linux-source-arm.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>linux-source-alpha</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2.13</version>
+          <release>1S</release>
+          <filename>linux-source-alpha.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>lisa</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.0</version>
+          <release>7</release>
+          <filename>lisa.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/box'/>
+        <dep name='/bin/build_menu'/>
+        <dep name='/bin/db_printf'/>
+        <dep name='/bin/do_calc'/>
+        <dep name='/bin/do_echo'/>
+        <dep name='/bin/do_netcalc'/>
+        <dep name='/bin/do_quote'/>
+        <dep name='/bin/end_use'/>
+        <dep name='/bin/filesize'/>
+        <dep name='/bin/freeramdisk'/>
+        <dep name='/bin/get_info'/>
+        <dep name='/bin/get_key'/>
+        <dep name='/bin/get_val'/>
+        <dep name='/bin/hilfe'/>
+        <dep name='/bin/hwinfo'/>
+        <dep name='/bin/lisa'/>
+        <dep name='/bin/mklizard'/>
+        <dep name='/bin/prep_use'/>
+        <dep name='/bin/set_val'/>
+        <dep name='/bin/sysinfo'/>
+        <dep name='/usr/lib/LST/group.pl'/>
+        <dep name='/usr/lib/LST/libLSTall'/>
+        <dep name='/usr/lib/LST/lisa-update'/>
+        <dep name='/usr/lib/LST/lisa/genfilter'/>
+        <dep name='/usr/lib/LST/smarties'/>
+        <dep name='/usr/sbin/groupadd'/>
+        <dep name='/usr/sbin/groupdel'/>
+        <dep name='/usr/sbin/useradd'/>
+        <dep name='/usr/sbin/userdel'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>lizardx</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>990806</version>
+          <release>1</release>
+          <filename>lizardx.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/opt/kde/bin/lizardx'/>
+        <dep name='/opt/kde/bin/ltestvideomode'/>
+        <dep name='/opt/kde/bin/lwm'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libpng.so.1'/>
+        <dep name='libqt.so.2'/>
+        <dep name='libstdc++.so.2.9'/>
+        <dep name='libz.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>logrotate</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3</version>
+          <release>2</release>
+          <filename>logrotate.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/cron.d/lib/logrotate'/>
+        <dep name='/usr/sbin/logrotate'/>
+      </provides>
+      <requires>
+        <dep name='crontabs' op='&gt;=' version='1.12'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>LPRng</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.5.3</version>
+          <release>2</release>
+          <filename>LPRng.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='lpr'/>
+        <dep name='/usr/bin/cancel'/>
+        <dep name='/usr/bin/lp'/>
+        <dep name='/usr/bin/lpq'/>
+        <dep name='/usr/bin/lpr'/>
+        <dep name='/usr/bin/lprm'/>
+        <dep name='/usr/bin/lpstat'/>
+        <dep name='/usr/doc/LPRng-3.5.3/COPYING'/>
+        <dep name='/usr/sbin/lpc'/>
+        <dep name='/usr/sbin/lpraccnt'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libnsl.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>LPRng-doc-ps</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.5.3</version>
+          <release>2</release>
+          <filename>LPRng-doc-ps.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>LPRng-doc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.5.3</version>
+          <release>2</release>
+          <filename>LPRng-doc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>LPRng-lpd</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.5.3</version>
+          <release>2</release>
+          <filename>LPRng-lpd.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='lpd'/>
+        <dep name='/etc/rc.d/init.d/lpd'/>
+        <dep name='/usr/libexec/LPRng-3.5.3/authenticate_pgp'/>
+        <dep name='/usr/libexec/LPRng-3.5.3/lpbanner'/>
+        <dep name='/usr/libexec/LPRng-3.5.3/lpf'/>
+        <dep name='/usr/libexec/LPRng-3.5.3/monitor'/>
+        <dep name='/usr/libexec/LPRng-3.5.3/readfilecount'/>
+        <dep name='/usr/libexec/LPRng-3.5.3/removeoneline'/>
+        <dep name='/usr/libexec/LPRng-3.5.3/setupauth'/>
+        <dep name='/usr/sbin/checkpc'/>
+        <dep name='/usr/sbin/lpd'/>
+      </provides>
+      <requires>
+        <dep name='SysVinit-scripts' op='&gt;=' version='1.03' release='2'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>lrzsz</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.12.18</version>
+          <release>1</release>
+          <filename>lrzsz.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/lrb'/>
+        <dep name='/usr/bin/lrx'/>
+        <dep name='/usr/bin/lrz'/>
+        <dep name='/usr/bin/lsb'/>
+        <dep name='/usr/bin/lsx'/>
+        <dep name='/usr/bin/lsz'/>
+        <dep name='/usr/bin/rz'/>
+        <dep name='/usr/bin/sz'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libnsl.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>LSM</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>19990629</version>
+          <release>1</release>
+          <filename>LSM.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>lsof</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.44</version>
+          <release>1</release>
+          <filename>lsof.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/sbin/lsof'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>lynx</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.8.2</version>
+          <release>2</release>
+          <filename>lynx.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/lynx'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>m4</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.4</version>
+          <release>6</release>
+          <filename>m4.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/m4'/>
+        <dep name='/usr/doc/m4-1.4/COPYING'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>m4-examples</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.4</version>
+          <release>6</release>
+          <filename>m4-examples.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='m4'/>
+      </requires>
+    </package>
+    <package>
+      <name>macutils</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0b3</version>
+          <release>9</release>
+          <filename>macutils.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/binhex'/>
+        <dep name='/usr/bin/frommac'/>
+        <dep name='/usr/bin/hexbin'/>
+        <dep name='/usr/bin/macsave'/>
+        <dep name='/usr/bin/macstream'/>
+        <dep name='/usr/bin/macunpack'/>
+        <dep name='/usr/bin/tomac'/>
+        <dep name='/usr/doc/macutils-2.0b3/README'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>mailcap</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>6</release>
+          <filename>mailcap.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>mailx</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>8.1.1</version>
+          <release>6</release>
+          <filename>mailx.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/mail'/>
+        <dep name='/usr/bin/Mail'/>
+        <dep name='/usr/bin/mailx'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>majordomo</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.94.4</version>
+          <release>1</release>
+          <filename>majordomo.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/majordomo/Tools/archive.pl'/>
+        <dep name='/usr/lib/majordomo/Tools/archive_mh.pl'/>
+        <dep name='/usr/lib/majordomo/Tools/digest.send'/>
+        <dep name='/usr/lib/majordomo/Tools/logsummary.pl'/>
+        <dep name='/usr/lib/majordomo/Tools/makeindex.pl'/>
+        <dep name='/usr/lib/majordomo/Tools/new-list'/>
+        <dep name='/usr/lib/majordomo/Tools/sequencer'/>
+        <dep name='/usr/lib/majordomo/archive2.pl'/>
+        <dep name='/usr/lib/majordomo/bin/approve'/>
+        <dep name='/usr/lib/majordomo/bin/bounce'/>
+        <dep name='/usr/lib/majordomo/bin/medit'/>
+        <dep name='/usr/lib/majordomo/bounce-remind'/>
+        <dep name='/usr/lib/majordomo/config-test'/>
+        <dep name='/usr/lib/majordomo/config_parse.pl'/>
+        <dep name='/usr/lib/majordomo/digest'/>
+        <dep name='/usr/lib/majordomo/majordomo'/>
+        <dep name='/usr/lib/majordomo/majordomo.pl'/>
+        <dep name='/usr/lib/majordomo/majordomo_version.pl'/>
+        <dep name='/usr/lib/majordomo/request-answer'/>
+        <dep name='/usr/lib/majordomo/resend'/>
+        <dep name='/usr/lib/majordomo/shlock.pl'/>
+        <dep name='/usr/lib/majordomo/wrapper'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>make</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.77</version>
+          <release>1</release>
+          <filename>make.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/make'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>man</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.5f</version>
+          <release>5</release>
+          <filename>man.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/apropos'/>
+        <dep name='/usr/bin/man'/>
+        <dep name='/usr/bin/man2html'/>
+        <dep name='/usr/bin/mantodvi'/>
+        <dep name='/usr/bin/whatis'/>
+        <dep name='/usr/man/man1/apropos.1.gz'/>
+        <dep name='/usr/man/man1/man.1.gz'/>
+        <dep name='/usr/man/man1/man2html.1.gz'/>
+        <dep name='/usr/man/man1/whatis.1.gz'/>
+        <dep name='/usr/man/man5/man.conf.5.gz'/>
+        <dep name='/usr/sbin/makewhatis'/>
+      </provides>
+      <requires>
+        <dep name='groff'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+      <conflicts>
+        <dep name='man_db'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>man-pages-ja</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.4</version>
+          <release>1</release>
+          <filename>man-pages-ja.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='man'/>
+      </requires>
+      <obsoletes>
+        <dep name='manpages-ja'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>man-pages-it</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.3.0</version>
+          <release>1</release>
+          <filename>man-pages-it.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='man'/>
+      </requires>
+      <obsoletes>
+        <dep name='manpages-it'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>man-pages-fr</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.7</version>
+          <release>1</release>
+          <filename>man-pages-fr.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='man'/>
+      </requires>
+      <obsoletes>
+        <dep name='manpages-fr'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>man-pages-es</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.7a</version>
+          <release>1</release>
+          <filename>man-pages-es.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/sbin/makewhatis.es'/>
+      </provides>
+      <requires>
+        <dep name='man'/>
+        <dep name='/bin/sh'/>
+      </requires>
+      <obsoletes>
+        <dep name='manpages-es'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>man-pages-de</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.2</version>
+          <release>1</release>
+          <filename>man-pages-de.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='man'/>
+      </requires>
+      <obsoletes>
+        <dep name='manpages-de'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>man-pages-cs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.12</version>
+          <release>1</release>
+          <filename>man-pages-cs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/sbin/makewhatis.cs'/>
+      </provides>
+      <requires>
+        <dep name='man'/>
+        <dep name='/bin/sh'/>
+      </requires>
+      <obsoletes>
+        <dep name='manpages-cz'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>man-pages</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.24</version>
+          <release>2</release>
+          <filename>man-pages.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='man'/>
+      </requires>
+      <obsoletes>
+        <dep name='manpages'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>mawk</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.3.3</version>
+          <release>2</release>
+          <filename>mawk.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/mawk'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>mesa</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.0</version>
+          <release>2</release>
+          <filename>mesa.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='OpenGL'/>
+        <dep name='libMesaGL.so.3'/>
+        <dep name='libMesaGLU.so.3'/>
+        <dep name='libglut.so.3'/>
+        <dep name='/usr/X11R6/lib/libMesaGL.so'/>
+        <dep name='/usr/X11R6/lib/libMesaGL.so.3'/>
+        <dep name='/usr/X11R6/lib/libMesaGL.so.3.0'/>
+        <dep name='/usr/X11R6/lib/libMesaGLU.so'/>
+        <dep name='/usr/X11R6/lib/libMesaGLU.so.3'/>
+        <dep name='/usr/X11R6/lib/libMesaGLU.so.3.0'/>
+        <dep name='/usr/X11R6/lib/libglut.so'/>
+        <dep name='/usr/X11R6/lib/libglut.so.3'/>
+        <dep name='/usr/X11R6/lib/libglut.so.3.7'/>
+      </provides>
+      <requires>
+        <dep name='/sbin/ldconfig'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>mesa-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.0</version>
+          <release>2</release>
+          <filename>mesa-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/lib/libMesaGL.a'/>
+        <dep name='/usr/X11R6/lib/libMesaGLU.a'/>
+        <dep name='/usr/X11R6/lib/libglut.a'/>
+      </provides>
+      <requires>
+        <dep name='mesa-devel' op='=' version='3.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>mesa-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.0</version>
+          <release>2</release>
+          <filename>mesa-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='mesa' op='=' version='3.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>mesa-examples</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.0</version>
+          <release>2</release>
+          <filename>mesa-examples.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/lib/mesa/Make-config'/>
+        <dep name='/usr/X11R6/lib/mesa/Makefile'/>
+        <dep name='/usr/X11R6/lib/mesa/book/aaindex'/>
+        <dep name='/usr/X11R6/lib/mesa/book/aapoly'/>
+        <dep name='/usr/X11R6/lib/mesa/book/aargb'/>
+        <dep name='/usr/X11R6/lib/mesa/book/accanti'/>
+        <dep name='/usr/X11R6/lib/mesa/book/accpersp'/>
+        <dep name='/usr/X11R6/lib/mesa/book/alpha'/>
+        <dep name='/usr/X11R6/lib/mesa/book/alpha3D'/>
+        <dep name='/usr/X11R6/lib/mesa/book/anti'/>
+        <dep name='/usr/X11R6/lib/mesa/book/bezcurve'/>
+        <dep name='/usr/X11R6/lib/mesa/book/bezmesh'/>
+        <dep name='/usr/X11R6/lib/mesa/book/checker'/>
+        <dep name='/usr/X11R6/lib/mesa/book/clip'/>
+        <dep name='/usr/X11R6/lib/mesa/book/colormat'/>
+        <dep name='/usr/X11R6/lib/mesa/book/cube'/>
+        <dep name='/usr/X11R6/lib/mesa/book/depthcue'/>
+        <dep name='/usr/X11R6/lib/mesa/book/dof'/>
+        <dep name='/usr/X11R6/lib/mesa/book/double'/>
+        <dep name='/usr/X11R6/lib/mesa/book/drawf'/>
+        <dep name='/usr/X11R6/lib/mesa/book/feedback'/>
+        <dep name='/usr/X11R6/lib/mesa/book/fog'/>
+        <dep name='/usr/X11R6/lib/mesa/book/fogindex'/>
+        <dep name='/usr/X11R6/lib/mesa/book/font'/>
+        <dep name='/usr/X11R6/lib/mesa/book/hello'/>
+        <dep name='/usr/X11R6/lib/mesa/book/image'/>
+        <dep name='/usr/X11R6/lib/mesa/book/light'/>
+        <dep name='/usr/X11R6/lib/mesa/book/lines'/>
+        <dep name='/usr/X11R6/lib/mesa/book/list'/>
+        <dep name='/usr/X11R6/lib/mesa/book/material'/>
+        <dep name='/usr/X11R6/lib/mesa/book/mipmap'/>
+        <dep name='/usr/X11R6/lib/mesa/book/model'/>
+        <dep name='/usr/X11R6/lib/mesa/book/movelight'/>
+        <dep name='/usr/X11R6/lib/mesa/book/nurbs'/>
+        <dep name='/usr/X11R6/lib/mesa/book/pickdepth'/>
+        <dep name='/usr/X11R6/lib/mesa/book/picksquare'/>
+        <dep name='/usr/X11R6/lib/mesa/book/plane'/>
+        <dep name='/usr/X11R6/lib/mesa/book/planet'/>
+        <dep name='/usr/X11R6/lib/mesa/book/polyoff'/>
+        <dep name='/usr/X11R6/lib/mesa/book/polys'/>
+        <dep name='/usr/X11R6/lib/mesa/book/quadric'/>
+        <dep name='/usr/X11R6/lib/mesa/book/robot'/>
+        <dep name='/usr/X11R6/lib/mesa/book/sccolorlight'/>
+        <dep name='/usr/X11R6/lib/mesa/book/scene'/>
+        <dep name='/usr/X11R6/lib/mesa/book/scenebamb'/>
+        <dep name='/usr/X11R6/lib/mesa/book/sceneflat'/>
+        <dep name='/usr/X11R6/lib/mesa/book/select'/>
+        <dep name='/usr/X11R6/lib/mesa/book/smooth'/>
+        <dep name='/usr/X11R6/lib/mesa/book/stencil'/>
+        <dep name='/usr/X11R6/lib/mesa/book/stroke'/>
+        <dep name='/usr/X11R6/lib/mesa/book/surface'/>
+        <dep name='/usr/X11R6/lib/mesa/book/teaambient'/>
+        <dep name='/usr/X11R6/lib/mesa/book/teapots'/>
+        <dep name='/usr/X11R6/lib/mesa/book/tess'/>
+        <dep name='/usr/X11R6/lib/mesa/book/tesswind'/>
+        <dep name='/usr/X11R6/lib/mesa/book/texbind'/>
+        <dep name='/usr/X11R6/lib/mesa/book/texgen'/>
+        <dep name='/usr/X11R6/lib/mesa/book/texprox'/>
+        <dep name='/usr/X11R6/lib/mesa/book/texsub'/>
+        <dep name='/usr/X11R6/lib/mesa/book/texturesurf'/>
+        <dep name='/usr/X11R6/lib/mesa/book/torus'/>
+        <dep name='/usr/X11R6/lib/mesa/book/trim'/>
+        <dep name='/usr/X11R6/lib/mesa/book/unproject'/>
+        <dep name='/usr/X11R6/lib/mesa/book/varray'/>
+        <dep name='/usr/X11R6/lib/mesa/book/wrap'/>
+        <dep name='/usr/X11R6/lib/mesa/demos/bounce'/>
+        <dep name='/usr/X11R6/lib/mesa/demos/clearspd'/>
+        <dep name='/usr/X11R6/lib/mesa/demos/drawpix'/>
+        <dep name='/usr/X11R6/lib/mesa/demos/gamma'/>
+        <dep name='/usr/X11R6/lib/mesa/demos/gears'/>
+        <dep name='/usr/X11R6/lib/mesa/demos/glinfo'/>
+        <dep name='/usr/X11R6/lib/mesa/demos/glutfx'/>
+        <dep name='/usr/X11R6/lib/mesa/demos/isosurf'/>
+        <dep name='/usr/X11R6/lib/mesa/demos/morph3d'/>
+        <dep name='/usr/X11R6/lib/mesa/demos/multiext'/>
+        <dep name='/usr/X11R6/lib/mesa/demos/multitex'/>
+        <dep name='/usr/X11R6/lib/mesa/demos/osdemo'/>
+        <dep name='/usr/X11R6/lib/mesa/demos/paltex'/>
+        <dep name='/usr/X11R6/lib/mesa/demos/pointblast'/>
+        <dep name='/usr/X11R6/lib/mesa/demos/reflect'/>
+        <dep name='/usr/X11R6/lib/mesa/demos/renormal'/>
+        <dep name='/usr/X11R6/lib/mesa/demos/spectex'/>
+        <dep name='/usr/X11R6/lib/mesa/demos/stex3d'/>
+        <dep name='/usr/X11R6/lib/mesa/demos/tessdemo'/>
+        <dep name='/usr/X11R6/lib/mesa/demos/texcyl'/>
+        <dep name='/usr/X11R6/lib/mesa/demos/texobj'/>
+        <dep name='/usr/X11R6/lib/mesa/demos/trispd'/>
+        <dep name='/usr/X11R6/lib/mesa/demos/winpos'/>
+        <dep name='/usr/X11R6/lib/mesa/mklib.linux'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/accum'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/bitmap1'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/bitmap2'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/blendeq'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/blendxor'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/copy'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/cursor'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/depth'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/eval'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/fog'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/font'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/line'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/logo'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/nurb'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/oglinfo'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/olympic'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/overlay'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/point'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/prim'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/quad'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/select'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/shape'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/sphere'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/star'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/stencil'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/stretch'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/texture'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/tri'/>
+        <dep name='/usr/X11R6/lib/mesa/samples/wave'/>
+        <dep name='/usr/X11R6/lib/mesa/widgets-mesa/config.guess'/>
+        <dep name='/usr/X11R6/lib/mesa/widgets-mesa/config.status'/>
+        <dep name='/usr/X11R6/lib/mesa/widgets-mesa/config.sub'/>
+        <dep name='/usr/X11R6/lib/mesa/widgets-mesa/configure'/>
+        <dep name='/usr/X11R6/lib/mesa/widgets-mesa/configure.orig'/>
+        <dep name='/usr/X11R6/lib/mesa/widgets-mesa/install-sh'/>
+      </provides>
+      <requires>
+        <dep name='mesa' op='=' version='3.0'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libMesaGL.so.3'/>
+        <dep name='libMesaGLU.so.3'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXi.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libglut.so.3'/>
+        <dep name='libm.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>mgetty</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1.20_Jan17</version>
+          <release>0</release>
+          <filename>mgetty.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/autopvf'/>
+        <dep name='/usr/bin/basictopvf'/>
+        <dep name='/usr/bin/faxq'/>
+        <dep name='/usr/bin/faxrm'/>
+        <dep name='/usr/bin/faxrunq'/>
+        <dep name='/usr/bin/faxspool'/>
+        <dep name='/usr/bin/g32pbm'/>
+        <dep name='/usr/bin/g3cat'/>
+        <dep name='/usr/bin/lintopvf'/>
+        <dep name='/usr/bin/newslock'/>
+        <dep name='/usr/bin/pbm2g3'/>
+        <dep name='/usr/bin/pvfamp'/>
+        <dep name='/usr/bin/pvfcut'/>
+        <dep name='/usr/bin/pvfecho'/>
+        <dep name='/usr/bin/pvffft'/>
+        <dep name='/usr/bin/pvffile'/>
+        <dep name='/usr/bin/pvffilter'/>
+        <dep name='/usr/bin/pvfmix'/>
+        <dep name='/usr/bin/pvfnoise'/>
+        <dep name='/usr/bin/pvfreverse'/>
+        <dep name='/usr/bin/pvfsine'/>
+        <dep name='/usr/bin/pvfspeed'/>
+        <dep name='/usr/bin/pvftoau'/>
+        <dep name='/usr/bin/pvftobasic'/>
+        <dep name='/usr/bin/pvftolin'/>
+        <dep name='/usr/bin/pvftormd'/>
+        <dep name='/usr/bin/pvftovoc'/>
+        <dep name='/usr/bin/pvftowav'/>
+        <dep name='/usr/bin/rmdfile'/>
+        <dep name='/usr/bin/rmdtopvf'/>
+        <dep name='/usr/bin/vm'/>
+        <dep name='/usr/bin/voctopvf'/>
+        <dep name='/usr/bin/wavtopvf'/>
+        <dep name='/usr/sbin/faxrunqd'/>
+        <dep name='/usr/sbin/mgetty'/>
+        <dep name='/usr/sbin/sendfax'/>
+        <dep name='/usr/sbin/vgetty'/>
+      </provides>
+      <requires>
+        <dep name='netpbm'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>mico</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2.7</version>
+          <release>3</release>
+          <filename>mico.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libmico2.2.7.so'/>
+        <dep name='libmicoaux2.2.7.so'/>
+        <dep name='libmicocoss2.2.7.so'/>
+        <dep name='libmicox2.2.7.so'/>
+        <dep name='/usr/bin/eventd'/>
+        <dep name='/usr/bin/idl'/>
+        <dep name='/usr/bin/imr'/>
+        <dep name='/usr/bin/iordump'/>
+        <dep name='/usr/bin/ird'/>
+        <dep name='/usr/bin/mico-ar'/>
+        <dep name='/usr/bin/mico-c++'/>
+        <dep name='/usr/bin/mico-cpp'/>
+        <dep name='/usr/bin/mico-ld'/>
+        <dep name='/usr/bin/mico-shc++'/>
+        <dep name='/usr/bin/mico-shld'/>
+        <dep name='/usr/bin/micod'/>
+        <dep name='/usr/bin/nsadmin'/>
+        <dep name='/usr/bin/nsd'/>
+        <dep name='/usr/bin/propertyd'/>
+        <dep name='/usr/bin/traderd'/>
+        <dep name='/usr/lib/libmico2.2.7.so'/>
+        <dep name='/usr/lib/libmicoaux2.2.7.so'/>
+        <dep name='/usr/lib/libmicocoss2.2.7.so'/>
+        <dep name='/usr/lib/libmicox2.2.7.so'/>
+        <dep name='/usr/lib/mico-setup.csh'/>
+        <dep name='/usr/lib/mico-setup.sh'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libmico2.2.7.so'/>
+        <dep name='libmicocoss2.2.7.so'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libreadline.so.3'/>
+        <dep name='libstdc++.so.2.9'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>mico-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2.7</version>
+          <release>3</release>
+          <filename>mico-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/libmico2.2.7.a'/>
+        <dep name='/usr/lib/libmicoaux2.2.7.a'/>
+        <dep name='/usr/lib/libmicocoss2.2.7.a'/>
+        <dep name='/usr/lib/libmicox2.2.7.a'/>
+      </provides>
+    </package>
+    <package>
+      <name>mico-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2.7</version>
+          <release>3</release>
+          <filename>mico-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>mico-examples</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2.7</version>
+          <release>3</release>
+          <filename>mico-examples.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/doc/mico/examples/bench/bench'/>
+        <dep name='/usr/doc/mico/examples/boa/account2/account'/>
+        <dep name='/usr/doc/mico/examples/boa/account3/account'/>
+        <dep name='/usr/doc/mico/examples/boa/account4/account'/>
+        <dep name='/usr/doc/mico/examples/boa/activate/hello-permethod'/>
+        <dep name='/usr/doc/mico/examples/boa/activate/hello-shared'/>
+        <dep name='/usr/doc/mico/examples/boa/activate/hello-unshared'/>
+        <dep name='/usr/doc/mico/examples/codesets/runit'/>
+        <dep name='/usr/doc/mico/examples/dispatcher/x11/xhello'/>
+        <dep name='/usr/doc/mico/examples/interceptor/runit'/>
+        <dep name='/usr/doc/mico/examples/interop/jacorb/account'/>
+        <dep name='/usr/doc/mico/examples/interop/jacorb/run_applet'/>
+        <dep name='/usr/doc/mico/examples/interop/jdk/account'/>
+        <dep name='/usr/doc/mico/examples/interop/jdk/run_applet'/>
+        <dep name='/usr/doc/mico/examples/interop/visibroker/account'/>
+        <dep name='/usr/doc/mico/examples/interop/visibroker/run_applet'/>
+        <dep name='/usr/doc/mico/examples/mcast/runit'/>
+        <dep name='/usr/doc/mico/examples/obv/abstract/abstract'/>
+        <dep name='/usr/doc/mico/examples/obv/custom/custom'/>
+        <dep name='/usr/doc/mico/examples/obv/date/date'/>
+        <dep name='/usr/doc/mico/examples/obv/tree/tree'/>
+        <dep name='/usr/doc/mico/examples/obv/tricky/tricky'/>
+        <dep name='/usr/doc/mico/examples/poa/account-1/account'/>
+        <dep name='/usr/doc/mico/examples/poa/account-2/account'/>
+        <dep name='/usr/doc/mico/examples/poa/account-3/account'/>
+        <dep name='/usr/doc/mico/examples/poa/hello-1/hello'/>
+        <dep name='/usr/doc/mico/examples/poa/hello-2/hello'/>
+        <dep name='/usr/doc/mico/examples/poa/inherit/inherit'/>
+        <dep name='/usr/doc/mico/examples/services/events/runit'/>
+        <dep name='/usr/doc/mico/examples/services/naming/account_test'/>
+        <dep name='/usr/doc/mico/examples/services/property-daemon/start_demo'/>
+        <dep name='/usr/doc/mico/examples/services/relship/interactive'/>
+        <dep name='/usr/doc/mico/examples/services/relship/simple'/>
+        <dep name='/usr/doc/mico/examples/services/relship/start-servers'/>
+        <dep name='/usr/doc/mico/examples/services/relship/stop-servers'/>
+        <dep name='/usr/doc/mico/examples/services/relship/test'/>
+        <dep name='/usr/doc/mico/examples/services/stream-bench/bench'/>
+        <dep name='/usr/doc/mico/examples/services/trader/run'/>
+        <dep name='/usr/doc/mico/examples/shlib/hello'/>
+        <dep name='/usr/doc/mico/examples/ssl/ssl'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>midi-instruments</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>3</release>
+          <filename>midi-instruments.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>mimetypes</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>3</release>
+          <filename>mimetypes.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='mimetypes'/>
+      </provides>
+    </package>
+    <package>
+      <name>mkisofs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.12b5</version>
+          <release>3</release>
+          <filename>mkisofs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/mkisofs'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>mktemp</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.4</version>
+          <release>2</release>
+          <filename>mktemp.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/mktemp'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>modutils</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.1.121</version>
+          <release>10</release>
+          <filename>modutils.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/sbin/depmod'/>
+        <dep name='/sbin/genksyms'/>
+        <dep name='/sbin/insmod'/>
+        <dep name='/sbin/kerneld'/>
+        <dep name='/sbin/ksyms'/>
+        <dep name='/sbin/lsmod'/>
+        <dep name='/sbin/modinfo'/>
+        <dep name='/sbin/modprobe'/>
+        <dep name='/sbin/request-route'/>
+        <dep name='/sbin/rmmod'/>
+        <dep name='/usr/libexec/modules/insmod.static'/>
+        <dep name='/usr/libexec/modules/mkinitrd.sh'/>
+        <dep name='/usr/libexec/modules/modloader'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>mod_php3-doc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.0.12</version>
+          <release>4</release>
+          <filename>mod_php3-doc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>mod_php3</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.0.12</version>
+          <release>4</release>
+          <filename>mod_php3.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='mod_php3.so'/>
+        <dep name='/usr/libexec/apache/mod_php3.so'/>
+      </provides>
+      <requires>
+        <dep name='apache'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libgdbm.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libpam.so.0'/>
+        <dep name='libresolv.so.2'/>
+      </requires>
+    </package>
+    <package>
+      <name>mpg123</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.59q</version>
+          <release>1</release>
+          <filename>mpg123.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/mpg123'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>mrtg</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.7.4b</version>
+          <release>2</release>
+          <filename>mrtg.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/mrtg'/>
+        <dep name='/usr/bin/rateup'/>
+        <dep name='/usr/lib/perl5/site-perl/BER.pm'/>
+        <dep name='/usr/lib/perl5/site-perl/SNMP_Session.pm'/>
+        <dep name='/usr/lib/perl5/site-perl/SNMP_util.pm'/>
+        <dep name='/usr/libexec/mrtg/cfgmaker'/>
+        <dep name='/usr/libexec/mrtg/indexmaker'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>mt-st</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.4</version>
+          <release>4</release>
+          <filename>mt-st.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/mt'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>mtabase</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>8</release>
+          <filename>mtabase.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/rc.d/init.d/mta'/>
+        <dep name='/usr/bin/mailq'/>
+        <dep name='/usr/bin/rmail'/>
+        <dep name='/usr/lib/sendmail'/>
+        <dep name='/usr/sbin/mta-switch'/>
+        <dep name='/usr/sbin/sendmail'/>
+      </provides>
+      <requires>
+        <dep name='SysVinit-scripts' op='&gt;=' version='1.02' release='4'/>
+        <dep name='/bin/sh'/>
+        <dep name='/bin/bash'/>
+      </requires>
+    </package>
+    <package>
+      <name>mtools</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.9.5</version>
+          <release>1</release>
+          <filename>mtools.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/floppyd'/>
+        <dep name='/usr/bin/floppyd_installtest'/>
+        <dep name='/usr/bin/lz'/>
+        <dep name='/usr/bin/mattrib'/>
+        <dep name='/usr/bin/mbadblocks'/>
+        <dep name='/usr/bin/mcat'/>
+        <dep name='/usr/bin/mcd'/>
+        <dep name='/usr/bin/mcheck'/>
+        <dep name='/usr/bin/mcomp'/>
+        <dep name='/usr/bin/mcopy'/>
+        <dep name='/usr/bin/mdel'/>
+        <dep name='/usr/bin/mdeltree'/>
+        <dep name='/usr/bin/mdir'/>
+        <dep name='/usr/bin/mdu'/>
+        <dep name='/usr/bin/mformat'/>
+        <dep name='/usr/bin/minfo'/>
+        <dep name='/usr/bin/mkmanifest'/>
+        <dep name='/usr/bin/mlabel'/>
+        <dep name='/usr/bin/mmd'/>
+        <dep name='/usr/bin/mmount'/>
+        <dep name='/usr/bin/mmove'/>
+        <dep name='/usr/bin/mpartition'/>
+        <dep name='/usr/bin/mrd'/>
+        <dep name='/usr/bin/mread'/>
+        <dep name='/usr/bin/mren'/>
+        <dep name='/usr/bin/mshowfat'/>
+        <dep name='/usr/bin/mtools'/>
+        <dep name='/usr/bin/mtoolstest'/>
+        <dep name='/usr/bin/mtype'/>
+        <dep name='/usr/bin/mxtar'/>
+        <dep name='/usr/bin/mzip'/>
+        <dep name='/usr/bin/tgz'/>
+        <dep name='/usr/bin/uz'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>mtv</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1.0.1</version>
+          <release>1</release>
+          <filename>mtv.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libSDLx11.so.0.9'/>
+        <dep name='/usr/X11R6/bin/mtv'/>
+        <dep name='/usr/X11R6/bin/mtvp'/>
+        <dep name='/usr/X11R6/lib/libSDLx11.so.0.9'/>
+        <dep name='/usr/X11R6/lib/libSDLx11.so.0.9.9'/>
+        <dep name='/usr/doc/mtv-1.1.0.1/release-notes.html'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libforms.so.0.88'/>
+        <dep name='libm.so.6'/>
+        <dep name='libpthread.so.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>mutt</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.95.6</version>
+          <release>2</release>
+          <filename>mutt.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/mutt'/>
+        <dep name='/usr/bin/mutt_dotlock'/>
+      </provides>
+      <requires>
+        <dep name='mimetypes'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libnsl.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>mysql</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.22.25</version>
+          <release>1</release>
+          <filename>mysql.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/rc.d/init.d/mysql'/>
+        <dep name='/usr/bin/isamchk'/>
+        <dep name='/usr/bin/isamlog'/>
+        <dep name='/usr/bin/mysql_fix_privilege_tables'/>
+        <dep name='/usr/bin/mysql_install_db'/>
+        <dep name='/usr/bin/mysql_setpermission'/>
+        <dep name='/usr/bin/mysql_zap'/>
+        <dep name='/usr/bin/mysqlbug'/>
+        <dep name='/usr/bin/perror'/>
+        <dep name='/usr/bin/replace'/>
+        <dep name='/usr/bin/resolveip'/>
+        <dep name='/usr/bin/safe_mysqld'/>
+        <dep name='/usr/sbin/mysqld'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libpthread.so.0'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>mysql-bench</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.22.25</version>
+          <release>1</release>
+          <filename>mysql-bench.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/share/sql-bench/README'/>
+        <dep name='/usr/share/sql-bench/bench-init.pl'/>
+        <dep name='/usr/share/sql-bench/compare-results'/>
+        <dep name='/usr/share/sql-bench/copy-db'/>
+        <dep name='/usr/share/sql-bench/crash-me'/>
+        <dep name='/usr/share/sql-bench/run-all-tests'/>
+        <dep name='/usr/share/sql-bench/server-cfg'/>
+        <dep name='/usr/share/sql-bench/test-ATIS'/>
+        <dep name='/usr/share/sql-bench/test-alter-table'/>
+        <dep name='/usr/share/sql-bench/test-big-tables'/>
+        <dep name='/usr/share/sql-bench/test-connect'/>
+        <dep name='/usr/share/sql-bench/test-create'/>
+        <dep name='/usr/share/sql-bench/test-insert'/>
+        <dep name='/usr/share/sql-bench/test-select'/>
+        <dep name='/usr/share/sql-bench/test-wisconsin'/>
+      </provides>
+      <requires>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>mysql-client</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.22.25</version>
+          <release>1</release>
+          <filename>mysql-client.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libmysqlclient.so.6'/>
+        <dep name='/usr/bin/msql2mysql'/>
+        <dep name='/usr/bin/mysql'/>
+        <dep name='/usr/bin/mysqlaccess'/>
+        <dep name='/usr/bin/mysqladmin'/>
+        <dep name='/usr/bin/mysqlbug'/>
+        <dep name='/usr/bin/mysqldump'/>
+        <dep name='/usr/bin/mysqlimport'/>
+        <dep name='/usr/bin/mysqlshow'/>
+        <dep name='/usr/lib/libmysqlclient.so'/>
+        <dep name='/usr/lib/libmysqlclient.so.6'/>
+        <dep name='/usr/lib/libmysqlclient.so.6.0.0'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libmysqlclient.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>mysql-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.22.25</version>
+          <release>1</release>
+          <filename>mysql-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/comp_err'/>
+        <dep name='/usr/lib/mysql/libmysqlclient.la'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libpthread.so.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>nasm</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.98</version>
+          <release>1</release>
+          <filename>nasm.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/nasm'/>
+        <dep name='/usr/bin/ndisasm'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>navigator-export</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.08</version>
+          <release>3</release>
+          <filename>navigator-export.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libnullplugin.so'/>
+        <dep name='libnullplugin-dynMotif.so'/>
+        <dep name='libTrueDoc.so'/>
+        <dep name='/opt/netscape/navigator/dynfonts/libTrueDoc.so'/>
+        <dep name='/opt/netscape/navigator/java/classes/hpux/font.properties'/>
+        <dep name='/opt/netscape/navigator/java/classes/hpux/font.properties.bg'/>
+        <dep name='/opt/netscape/navigator/java/classes/hpux/font.properties.cs'/>
+        <dep name='/opt/netscape/navigator/java/classes/hpux/font.properties.el'/>
+        <dep name='/opt/netscape/navigator/java/classes/hpux/font.properties.hr'/>
+        <dep name='/opt/netscape/navigator/java/classes/hpux/font.properties.hu'/>
+        <dep name='/opt/netscape/navigator/java/classes/hpux/font.properties.ja'/>
+        <dep name='/opt/netscape/navigator/java/classes/hpux/font.properties.ko'/>
+        <dep name='/opt/netscape/navigator/java/classes/hpux/font.properties.pl'/>
+        <dep name='/opt/netscape/navigator/java/classes/hpux/font.properties.ro'/>
+        <dep name='/opt/netscape/navigator/java/classes/hpux/font.properties.ru'/>
+        <dep name='/opt/netscape/navigator/java/classes/hpux/font.properties.sk'/>
+        <dep name='/opt/netscape/navigator/java/classes/hpux/font.properties.sl'/>
+        <dep name='/opt/netscape/navigator/java/classes/hpux/font.properties.tr'/>
+        <dep name='/opt/netscape/navigator/java/classes/hpux/font.properties.zh_GB2312'/>
+        <dep name='/opt/netscape/navigator/java/classes/hpux/font.properties.zh_TW_Big5'/>
+        <dep name='/opt/netscape/navigator/java/classes/hpux/font.properties.zh_TW_CNS11643'/>
+        <dep name='/opt/netscape/navigator/libnullplugin-dynMotif.so'/>
+        <dep name='/opt/netscape/navigator/netscape'/>
+        <dep name='/opt/netscape/navigator/netscape-dynMotif'/>
+        <dep name='/opt/netscape/navigator/netscape-statMotif'/>
+        <dep name='/opt/netscape/navigator/plugins/libnullplugin.so'/>
+        <dep name='/opt/netscape/navigator/vreg'/>
+        <dep name='/usr/bin/navigator'/>
+      </provides>
+      <requires>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXpm.so.4'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.5'/>
+        <dep name='libdl.so.1'/>
+        <dep name='libg++.so.27'/>
+        <dep name='libm.so.5'/>
+        <dep name='libstdc++.so.27'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libTrueDoc.so'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>ncftp</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.4.3</version>
+          <release>1</release>
+          <filename>ncftp.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/ncftp'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libreadline.so.3'/>
+      </requires>
+    </package>
+    <package>
+      <name>ncompress</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2.4</version>
+          <release>6</release>
+          <filename>ncompress.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/compress'/>
+        <dep name='/usr/bin/uncompress'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>ncurses-termcap-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2</version>
+          <release>4</release>
+          <filename>ncurses-termcap-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/libtermcap.a'/>
+      </provides>
+      <requires>
+        <dep name='ncurses-devel-static' op='=' version='4.2'/>
+      </requires>
+      <conflicts>
+        <dep name='libtermcap-devel-static'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>ncurses-termcap-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2</version>
+          <release>4</release>
+          <filename>ncurses-termcap-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/libtermcap.so'/>
+      </provides>
+      <requires>
+        <dep name='ncurses-devel' op='=' version='4.2'/>
+      </requires>
+      <conflicts>
+        <dep name='libtermcap-devel'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>ncurses-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2</version>
+          <release>4</release>
+          <filename>ncurses-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/libncurses++.a'/>
+      </provides>
+      <requires>
+        <dep name='ncurses-devel' op='=' version='4.2'/>
+      </requires>
+      <obsoletes>
+        <dep name='ncurses-devel-compat-static'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>ncurses-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2</version>
+          <release>4</release>
+          <filename>ncurses-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/libcurses.so'/>
+        <dep name='/usr/lib/libform.so'/>
+        <dep name='/usr/lib/libmenu.so'/>
+        <dep name='/usr/lib/libncurses.so'/>
+        <dep name='/usr/lib/libpanel.so'/>
+        <dep name='/usr/man/man3/curses.3x.gz.gz'/>
+      </provides>
+      <requires>
+        <dep name='ncurses' op='=' version='4.2'/>
+      </requires>
+      <obsoletes>
+        <dep name='ncurses-devel-compat'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>ncurses</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2</version>
+          <release>4</release>
+          <filename>ncurses.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='curses'/>
+        <dep name='libform.so.4'/>
+        <dep name='libmenu.so.4'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libpanel.so.4'/>
+        <dep name='/usr/bin/captoinfo'/>
+        <dep name='/usr/bin/clear'/>
+        <dep name='/usr/bin/infocmp'/>
+        <dep name='/usr/bin/infotocap'/>
+        <dep name='/usr/bin/reset'/>
+        <dep name='/usr/bin/tic'/>
+        <dep name='/usr/bin/toe'/>
+        <dep name='/usr/bin/tput'/>
+        <dep name='/usr/bin/tset'/>
+      </provides>
+      <requires>
+        <dep name='/sbin/ldconfig'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>net-tools</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.52</version>
+          <release>4</release>
+          <filename>net-tools.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/dnsdomainname'/>
+        <dep name='/bin/hostname'/>
+        <dep name='/bin/netstat'/>
+        <dep name='/sbin/arp'/>
+        <dep name='/sbin/ifconfig'/>
+        <dep name='/sbin/ipmaddr'/>
+        <dep name='/sbin/iptunnel'/>
+        <dep name='/sbin/plipconfig'/>
+        <dep name='/sbin/rarp'/>
+        <dep name='/sbin/route'/>
+        <dep name='/sbin/slattach'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>netkit-base</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.11</version>
+          <release>6</release>
+          <filename>netkit-base.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/ping'/>
+        <dep name='/usr/bin/rpcinfo'/>
+        <dep name='/usr/lib/LST/inetdconf.pl'/>
+        <dep name='/usr/sbin/inetd'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>netkit-ftp</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.10</version>
+          <release>7</release>
+          <filename>netkit-ftp.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/ftp'/>
+        <dep name='/usr/bin/pftp'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libreadline.so.3'/>
+      </requires>
+    </package>
+    <package>
+      <name>netkit-ntalk</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.11</version>
+          <release>1</release>
+          <filename>netkit-ntalk.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/talk'/>
+        <dep name='/usr/sbin/in.ntalkd'/>
+        <dep name='/usr/sbin/in.talkd'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>netkit-rwho</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.12</version>
+          <release>1</release>
+          <filename>netkit-rwho.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/rc.d/init.d/rwhod'/>
+        <dep name='/usr/bin/rwho'/>
+        <dep name='/usr/sbin/rwhod'/>
+      </provides>
+      <requires>
+        <dep name='SysVinit-scripts' op='&gt;=' version='1.02' release='2'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>netkit-rwall</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.10</version>
+          <release>6</release>
+          <filename>netkit-rwall.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/rc.d/init.d/rwalld'/>
+        <dep name='/usr/bin/rwall'/>
+        <dep name='/usr/sbin/rpc.rwalld'/>
+      </provides>
+      <requires>
+        <dep name='SysVinit-scripts' op='&gt;=' version='1.02' release='2'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>netkit-rusers</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.11</version>
+          <release>2</release>
+          <filename>netkit-rusers.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/rc.d/init.d/rusersd'/>
+        <dep name='/usr/bin/rup'/>
+        <dep name='/usr/bin/rusers'/>
+        <dep name='/usr/sbin/rpc.rusersd'/>
+      </provides>
+      <requires>
+        <dep name='SysVinit-scripts' op='&gt;=' version='1.02' release='2'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>netkit-rsh</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.10</version>
+          <release>8</release>
+          <filename>netkit-rsh.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/rcp'/>
+        <dep name='/usr/bin/rlogin'/>
+        <dep name='/usr/bin/rsh'/>
+        <dep name='/usr/sbin/in.rexecd'/>
+        <dep name='/usr/sbin/in.rlogind'/>
+        <dep name='/usr/sbin/in.rshd'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libpam.so.0'/>
+        <dep name='libpam_misc.so.0'/>
+        <dep name='libutil.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>netkit-tftp</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.10</version>
+          <release>2</release>
+          <filename>netkit-tftp.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/tftp'/>
+        <dep name='/usr/sbin/in.tftpd'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>netkit-telnet</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.12</version>
+          <release>5</release>
+          <filename>netkit-telnet.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/telnet'/>
+        <dep name='/usr/sbin/in.telnetd'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>netpbm</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>940301</version>
+          <release>2</release>
+          <filename>netpbm.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/asciitopgm'/>
+        <dep name='/usr/bin/atktopbm'/>
+        <dep name='/usr/bin/bioradtopgm'/>
+        <dep name='/usr/bin/bmptoppm'/>
+        <dep name='/usr/bin/brushtopbm'/>
+        <dep name='/usr/bin/cmuwmtopbm'/>
+        <dep name='/usr/bin/fitstopnm'/>
+        <dep name='/usr/bin/fstopgm'/>
+        <dep name='/usr/bin/g3topbm'/>
+        <dep name='/usr/bin/gemtopbm'/>
+        <dep name='/usr/bin/giftopnm'/>
+        <dep name='/usr/bin/gouldtoppm'/>
+        <dep name='/usr/bin/hipstopgm'/>
+        <dep name='/usr/bin/hpcdtoppm'/>
+        <dep name='/usr/bin/icontopbm'/>
+        <dep name='/usr/bin/ilbmtoppm'/>
+        <dep name='/usr/bin/imgtoppm'/>
+        <dep name='/usr/bin/lispmtopgm'/>
+        <dep name='/usr/bin/macptopbm'/>
+        <dep name='/usr/bin/mgrtopbm'/>
+        <dep name='/usr/bin/mtvtoppm'/>
+        <dep name='/usr/bin/pbmclean'/>
+        <dep name='/usr/bin/pbmlife'/>
+        <dep name='/usr/bin/pbmmake'/>
+        <dep name='/usr/bin/pbmmask'/>
+        <dep name='/usr/bin/pbmpscale'/>
+        <dep name='/usr/bin/pbmreduce'/>
+        <dep name='/usr/bin/pbmtext'/>
+        <dep name='/usr/bin/pbmto10x'/>
+        <dep name='/usr/bin/pbmto4425'/>
+        <dep name='/usr/bin/pbmtoascii'/>
+        <dep name='/usr/bin/pbmtoatk'/>
+        <dep name='/usr/bin/pbmtobbnbg'/>
+        <dep name='/usr/bin/pbmtocmuwm'/>
+        <dep name='/usr/bin/pbmtoepsi'/>
+        <dep name='/usr/bin/pbmtoepson'/>
+        <dep name='/usr/bin/pbmtog3'/>
+        <dep name='/usr/bin/pbmtogem'/>
+        <dep name='/usr/bin/pbmtogo'/>
+        <dep name='/usr/bin/pbmtoicon'/>
+        <dep name='/usr/bin/pbmtolj'/>
+        <dep name='/usr/bin/pbmtoln03'/>
+        <dep name='/usr/bin/pbmtolps'/>
+        <dep name='/usr/bin/pbmtomacp'/>
+        <dep name='/usr/bin/pbmtomgr'/>
+        <dep name='/usr/bin/pbmtopgm'/>
+        <dep name='/usr/bin/pbmtopi3'/>
+        <dep name='/usr/bin/pbmtopk'/>
+        <dep name='/usr/bin/pbmtoplot'/>
+        <dep name='/usr/bin/pbmtoptx'/>
+        <dep name='/usr/bin/pbmtox10bm'/>
+        <dep name='/usr/bin/pbmtoxbm'/>
+        <dep name='/usr/bin/pbmtoybm'/>
+        <dep name='/usr/bin/pbmtozinc'/>
+        <dep name='/usr/bin/pbmupc'/>
+        <dep name='/usr/bin/pcxtoppm'/>
+        <dep name='/usr/bin/pgmbentley'/>
+        <dep name='/usr/bin/pgmcrater'/>
+        <dep name='/usr/bin/pgmedge'/>
+        <dep name='/usr/bin/pgmenhance'/>
+        <dep name='/usr/bin/pgmhist'/>
+        <dep name='/usr/bin/pgmkernel'/>
+        <dep name='/usr/bin/pgmnoise'/>
+        <dep name='/usr/bin/pgmnorm'/>
+        <dep name='/usr/bin/pgmoil'/>
+        <dep name='/usr/bin/pgmramp'/>
+        <dep name='/usr/bin/pgmtexture'/>
+        <dep name='/usr/bin/pgmtofs'/>
+        <dep name='/usr/bin/pgmtolispm'/>
+        <dep name='/usr/bin/pgmtopbm'/>
+        <dep name='/usr/bin/pgmtoppm'/>
+        <dep name='/usr/bin/pi1toppm'/>
+        <dep name='/usr/bin/pi3topbm'/>
+        <dep name='/usr/bin/picttoppm'/>
+        <dep name='/usr/bin/pjtoppm'/>
+        <dep name='/usr/bin/pktopbm'/>
+        <dep name='/usr/bin/pngtopnm'/>
+        <dep name='/usr/bin/pnmalias'/>
+        <dep name='/usr/bin/pnmarith'/>
+        <dep name='/usr/bin/pnmcat'/>
+        <dep name='/usr/bin/pnmcomp'/>
+        <dep name='/usr/bin/pnmconvol'/>
+        <dep name='/usr/bin/pnmcrop'/>
+        <dep name='/usr/bin/pnmcut'/>
+        <dep name='/usr/bin/pnmdepth'/>
+        <dep name='/usr/bin/pnmenlarge'/>
+        <dep name='/usr/bin/pnmfile'/>
+        <dep name='/usr/bin/pnmflip'/>
+        <dep name='/usr/bin/pnmgamma'/>
+        <dep name='/usr/bin/pnmhisteq'/>
+        <dep name='/usr/bin/pnmhistmap'/>
+        <dep name='/usr/bin/pnminvert'/>
+        <dep name='/usr/bin/pnmnlfilt'/>
+        <dep name='/usr/bin/pnmnoraw'/>
+        <dep name='/usr/bin/pnmpad'/>
+        <dep name='/usr/bin/pnmpaste'/>
+        <dep name='/usr/bin/pnmrotate'/>
+        <dep name='/usr/bin/pnmscale'/>
+        <dep name='/usr/bin/pnmshear'/>
+        <dep name='/usr/bin/pnmsmooth'/>
+        <dep name='/usr/bin/pnmtile'/>
+        <dep name='/usr/bin/pnmtoddif'/>
+        <dep name='/usr/bin/pnmtofits'/>
+        <dep name='/usr/bin/pnmtopng'/>
+        <dep name='/usr/bin/pnmtops'/>
+        <dep name='/usr/bin/pnmtorast'/>
+        <dep name='/usr/bin/pnmtosgi'/>
+        <dep name='/usr/bin/pnmtosir'/>
+        <dep name='/usr/bin/pnmtoxwd'/>
+        <dep name='/usr/bin/ppm2tiff'/>
+        <dep name='/usr/bin/ppm3d'/>
+        <dep name='/usr/bin/ppmbrighten'/>
+        <dep name='/usr/bin/ppmchange'/>
+        <dep name='/usr/bin/ppmdim'/>
+        <dep name='/usr/bin/ppmdist'/>
+        <dep name='/usr/bin/ppmdither'/>
+        <dep name='/usr/bin/ppmflash'/>
+        <dep name='/usr/bin/ppmforge'/>
+        <dep name='/usr/bin/ppmhist'/>
+        <dep name='/usr/bin/ppmmake'/>
+        <dep name='/usr/bin/ppmmix'/>
+        <dep name='/usr/bin/ppmnorm'/>
+        <dep name='/usr/bin/ppmntsc'/>
+        <dep name='/usr/bin/ppmpat'/>
+        <dep name='/usr/bin/ppmquant'/>
+        <dep name='/usr/bin/ppmqvga'/>
+        <dep name='/usr/bin/ppmrelief'/>
+        <dep name='/usr/bin/ppmshift'/>
+        <dep name='/usr/bin/ppmspread'/>
+        <dep name='/usr/bin/ppmtoacad'/>
+        <dep name='/usr/bin/ppmtobmp'/>
+        <dep name='/usr/bin/ppmtogif'/>
+        <dep name='/usr/bin/ppmtoicr'/>
+        <dep name='/usr/bin/ppmtoilbm'/>
+        <dep name='/usr/bin/ppmtomap'/>
+        <dep name='/usr/bin/ppmtomitsu'/>
+        <dep name='/usr/bin/ppmtopcx'/>
+        <dep name='/usr/bin/ppmtopgm'/>
+        <dep name='/usr/bin/ppmtopi1'/>
+        <dep name='/usr/bin/ppmtopict'/>
+        <dep name='/usr/bin/ppmtopj'/>
+        <dep name='/usr/bin/ppmtopjxl'/>
+        <dep name='/usr/bin/ppmtopuzz'/>
+        <dep name='/usr/bin/ppmtorgb3'/>
+        <dep name='/usr/bin/ppmtosixel'/>
+        <dep name='/usr/bin/ppmtotga'/>
+        <dep name='/usr/bin/ppmtouil'/>
+        <dep name='/usr/bin/ppmtoxpm'/>
+        <dep name='/usr/bin/ppmtoyuv'/>
+        <dep name='/usr/bin/ppmtoyuvsplit'/>
+        <dep name='/usr/bin/psidtopgm'/>
+        <dep name='/usr/bin/qrttoppm'/>
+        <dep name='/usr/bin/rasttopnm'/>
+        <dep name='/usr/bin/rawtopgm'/>
+        <dep name='/usr/bin/rawtoppm'/>
+        <dep name='/usr/bin/rgb3toppm'/>
+        <dep name='/usr/bin/sgitopnm'/>
+        <dep name='/usr/bin/sirtopnm'/>
+        <dep name='/usr/bin/sldtoppm'/>
+        <dep name='/usr/bin/spctoppm'/>
+        <dep name='/usr/bin/spottopgm'/>
+        <dep name='/usr/bin/sputoppm'/>
+        <dep name='/usr/bin/tgatoppm'/>
+        <dep name='/usr/bin/xbmtopbm'/>
+        <dep name='/usr/bin/ximtoppm'/>
+        <dep name='/usr/bin/xpmtoppm'/>
+        <dep name='/usr/bin/xvminitoppm'/>
+        <dep name='/usr/bin/xwdtopnm'/>
+        <dep name='/usr/bin/ybmtopbm'/>
+        <dep name='/usr/bin/yuvsplittoppm'/>
+        <dep name='/usr/bin/yuvtoppm'/>
+        <dep name='/usr/bin/zeisstopnm'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libjpeg.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libpbm.so.1'/>
+        <dep name='libpgm.so.1'/>
+        <dep name='libpng.so.1'/>
+        <dep name='libpnm.so.1'/>
+        <dep name='libppm.so.1'/>
+        <dep name='libtiff.so.3'/>
+        <dep name='libz.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>netwatch</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.9a</version>
+          <release>3</release>
+          <filename>netwatch.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/netresolv'/>
+        <dep name='/usr/bin/netwatch'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>nfs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2beta44</version>
+          <release>3</release>
+          <filename>nfs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/sbin/showmount'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libnsl.so.1'/>
+      </requires>
+      <obsoletes>
+        <dep name='nfs-server-clients'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>nfs-server</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2beta44</version>
+          <release>3</release>
+          <filename>nfs-server.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/rc.d/init.d/nfs'/>
+        <dep name='/usr/sbin/rpc.mountd'/>
+        <dep name='/usr/sbin/rpc.nfsd'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='/bin/bash'/>
+      </requires>
+    </package>
+    <package>
+      <name>nis-client</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>8</release>
+          <filename>nis-client.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/domainname'/>
+        <dep name='/bin/nisdomainname'/>
+        <dep name='/etc/rc.d/init.d/nis-client'/>
+        <dep name='/usr/bin/ypcat'/>
+        <dep name='/usr/bin/ypchfn'/>
+        <dep name='/usr/bin/ypchsh'/>
+        <dep name='/usr/bin/ypmatch'/>
+        <dep name='/usr/bin/yppasswd'/>
+        <dep name='/usr/bin/ypwhich'/>
+        <dep name='/usr/sbin/ypbind'/>
+        <dep name='/usr/sbin/yppoll'/>
+        <dep name='/usr/sbin/ypset'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libresolv.so.2'/>
+        <dep name='/bin/bash'/>
+      </requires>
+    </package>
+    <package>
+      <name>nis-server</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>8</release>
+          <filename>nis-server.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/nis/nis_update'/>
+        <dep name='/etc/rc.d/init.d/nis-server'/>
+        <dep name='/usr/libexec/nis/mknetid'/>
+        <dep name='/usr/libexec/nis/rpc.yppasswdd'/>
+        <dep name='/usr/libexec/nis/rpc.ypserv'/>
+        <dep name='/usr/libexec/nis/rpc.ypxfrd'/>
+        <dep name='/usr/libexec/nis/ypxfr'/>
+        <dep name='/usr/libexec/nis/ypxfr_1perday'/>
+        <dep name='/usr/libexec/nis/ypxfr_1perhour'/>
+        <dep name='/usr/libexec/nis/ypxfr_2perday'/>
+        <dep name='/usr/sbin/yppush'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libgdbm.so.2'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libresolv.so.2'/>
+        <dep name='/bin/bash'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>nls</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>3</release>
+          <filename>nls.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>nss_ldap</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>85</version>
+          <release>1</release>
+          <filename>nss_ldap.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libnss_ldap.so.2'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='liblber.so.1'/>
+        <dep name='libldap.so.1'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libpthread.so.0'/>
+        <dep name='libresolv.so.2'/>
+      </requires>
+    </package>
+    <package>
+      <name>nte</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.7.0_990625</version>
+          <release>1</release>
+          <filename>nte.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/nte'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>ntop</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.2a4</version>
+          <release>1</release>
+          <filename>ntop.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/doc/ntop-1.2a4/html/gauge.jpg'/>
+        <dep name='/usr/sbin/ntop'/>
+      </provides>
+      <requires>
+        <dep name='lsof'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libgdbm.so.2'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libpthread.so.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>nwclient+utils-ndsadmin</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2.2</version>
+          <release>2</release>
+          <filename>nwclient+utils-ndsadmin.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libnss_nds.so.2'/>
+        <dep name='nsapi_nds.so.1'/>
+        <dep name='pam_nds.so.1'/>
+        <dep name='/lib/security/pam_nds.so.1'/>
+        <dep name='/lib/security/pam_nds.so.1.0.0'/>
+        <dep name='/usr/lib/nsapi_nds.so.1'/>
+        <dep name='/usr/lib/nsapi_nds.so.1.0.0'/>
+        <dep name='/usr/man/man5/ndsadmin.conf.5.gz'/>
+      </provides>
+    </package>
+    <package>
+      <name>nwclient+utils-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2.2</version>
+          <release>2</release>
+          <filename>nwclient+utils-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libnwatb.so'/>
+        <dep name='libnwcalls.so'/>
+        <dep name='libnwclient.so'/>
+        <dep name='libnwloc.so'/>
+        <dep name='libnwncp.so'/>
+        <dep name='libnwnet.so'/>
+        <dep name='/usr/include/nwclient/sdkinc/linux'/>
+        <dep name='/usr/include/nwclient/sdkinc/nwcext.h'/>
+        <dep name='/usr/lib/nwclient/libnwatb.so'/>
+        <dep name='/usr/lib/nwclient/libnwcalls.so'/>
+        <dep name='/usr/lib/nwclient/libnwclient.so'/>
+        <dep name='/usr/lib/nwclient/libnwloc.so'/>
+        <dep name='/usr/lib/nwclient/libnwncp.so'/>
+        <dep name='/usr/lib/nwclient/libnwnet.so'/>
+      </provides>
+    </package>
+    <package>
+      <name>nwclient+utils</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2.2</version>
+          <release>2</release>
+          <filename>nwclient+utils.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libnwatb.so'/>
+        <dep name='libnwcalls.so'/>
+        <dep name='libnwclient.so'/>
+        <dep name='libnwloc.so'/>
+        <dep name='libnwncp.so'/>
+        <dep name='libnwnet.so'/>
+        <dep name='/etc/rc.d/init.d/nwclient'/>
+        <dep name='/etc/rc.d/rc0.d/K45nwclient'/>
+        <dep name='/etc/rc.d/rc1.d/K45nwclient'/>
+        <dep name='/etc/rc.d/rc2.d/S55nwclient'/>
+        <dep name='/etc/rc.d/rc3.d/S55nwclient'/>
+        <dep name='/etc/rc.d/rc4.d/S55nwclient'/>
+        <dep name='/etc/rc.d/rc5.d/S55nwclient'/>
+        <dep name='/etc/rc.d/rc6.d/K45nwclient'/>
+        <dep name='/usr/bin/nwboaddtrust'/>
+        <dep name='/usr/bin/nwbocreate'/>
+        <dep name='/usr/bin/nwboprops'/>
+        <dep name='/usr/bin/nwborm'/>
+        <dep name='/usr/bin/nwbosetspace'/>
+        <dep name='/usr/bin/nwboshowspace'/>
+        <dep name='/usr/bin/nwboshowtrust'/>
+        <dep name='/usr/bin/nwbpadd'/>
+        <dep name='/usr/bin/nwbpcreate'/>
+        <dep name='/usr/bin/nwbprm'/>
+        <dep name='/usr/bin/nwbpvalues'/>
+        <dep name='/usr/bin/nwdelqjob'/>
+        <dep name='/usr/bin/nwdsaddtrust'/>
+        <dep name='/usr/bin/nwdsattrs'/>
+        <dep name='/usr/bin/nwdscreate'/>
+        <dep name='/usr/bin/nwdsmodify'/>
+        <dep name='/usr/bin/nwdsrm'/>
+        <dep name='/usr/bin/nwdssetspace'/>
+        <dep name='/usr/bin/nwdsshowspace'/>
+        <dep name='/usr/bin/nwdsshowtrust'/>
+        <dep name='/usr/bin/nwdsvalues'/>
+        <dep name='/usr/bin/nwlogin'/>
+        <dep name='/usr/bin/nwlogout'/>
+        <dep name='/usr/bin/nwmount'/>
+        <dep name='/usr/bin/nwmsg'/>
+        <dep name='/usr/bin/nwnulpaswd'/>
+        <dep name='/usr/bin/nwpasswd'/>
+        <dep name='/usr/bin/nwprint'/>
+        <dep name='/usr/bin/nwqstat'/>
+        <dep name='/usr/bin/nwsend'/>
+        <dep name='/usr/bin/nwwhoami'/>
+        <dep name='/usr/bin/xnwboadmin'/>
+        <dep name='/usr/bin/xnwbocreate'/>
+        <dep name='/usr/bin/xnwborights'/>
+        <dep name='/usr/bin/xnwborightsDD'/>
+        <dep name='/usr/bin/xnwbotrustees'/>
+        <dep name='/usr/bin/xnwdsadmin'/>
+        <dep name='/usr/bin/xnwdscreate'/>
+        <dep name='/usr/bin/xnwdsrights'/>
+        <dep name='/usr/bin/xnwdsrightsDD'/>
+        <dep name='/usr/bin/xnwdstrustees'/>
+        <dep name='/usr/bin/xnwmanageq'/>
+        <dep name='/usr/bin/xnwprint'/>
+        <dep name='/usr/lib/libnwatb.so'/>
+        <dep name='/usr/lib/libnwcalls.so'/>
+        <dep name='/usr/lib/libnwclient.so'/>
+        <dep name='/usr/lib/libnwloc.so'/>
+        <dep name='/usr/lib/libnwncp.so'/>
+        <dep name='/usr/lib/libnwnet.so'/>
+        <dep name='/usr/lib/modules/nkfs.o'/>
+        <dep name='/usr/lib/nwamd/getBindObjects'/>
+        <dep name='/usr/lib/nwamd/getBindVols'/>
+        <dep name='/usr/lib/nwamd/getNDSObjects'/>
+        <dep name='/usr/lib/nwamd/getServers'/>
+        <dep name='/usr/lib/nwamd/getTrees'/>
+        <dep name='/usr/lib/nwamd/mountBindVol'/>
+        <dep name='/usr/lib/nwamd/mountNDSVol'/>
+        <dep name='/usr/lib/nwamd/nwauthen'/>
+        <dep name='/usr/lib/nwlocale/1250_UNI.036'/>
+        <dep name='/usr/lib/nwlocale/1250_UNI.042'/>
+        <dep name='/usr/lib/nwlocale/1250_UNI.048'/>
+        <dep name='/usr/lib/nwlocale/1251_UNI.007'/>
+        <dep name='/usr/lib/nwlocale/1252_UNI.001'/>
+        <dep name='/usr/lib/nwlocale/1252_UNI.002'/>
+        <dep name='/usr/lib/nwlocale/1252_UNI.003'/>
+        <dep name='/usr/lib/nwlocale/1252_UNI.031'/>
+        <dep name='/usr/lib/nwlocale/1252_UNI.032'/>
+        <dep name='/usr/lib/nwlocale/1252_UNI.033'/>
+        <dep name='/usr/lib/nwlocale/1252_UNI.034'/>
+        <dep name='/usr/lib/nwlocale/1252_UNI.039'/>
+        <dep name='/usr/lib/nwlocale/1252_UNI.041'/>
+        <dep name='/usr/lib/nwlocale/1252_UNI.044'/>
+        <dep name='/usr/lib/nwlocale/1252_UNI.045'/>
+        <dep name='/usr/lib/nwlocale/1252_UNI.046'/>
+        <dep name='/usr/lib/nwlocale/1252_UNI.047'/>
+        <dep name='/usr/lib/nwlocale/1252_UNI.049'/>
+        <dep name='/usr/lib/nwlocale/1252_UNI.061'/>
+        <dep name='/usr/lib/nwlocale/1252_UNI.090'/>
+        <dep name='/usr/lib/nwlocale/1252_UNI.351'/>
+        <dep name='/usr/lib/nwlocale/1252_UNI.358'/>
+        <dep name='/usr/lib/nwlocale/1256_UNI.785'/>
+        <dep name='/usr/lib/nwlocale/437_UNI.001'/>
+        <dep name='/usr/lib/nwlocale/437_UNI.003'/>
+        <dep name='/usr/lib/nwlocale/437_UNI.031'/>
+        <dep name='/usr/lib/nwlocale/437_UNI.032'/>
+        <dep name='/usr/lib/nwlocale/437_UNI.033'/>
+        <dep name='/usr/lib/nwlocale/437_UNI.034'/>
+        <dep name='/usr/lib/nwlocale/437_UNI.039'/>
+        <dep name='/usr/lib/nwlocale/437_UNI.041'/>
+        <dep name='/usr/lib/nwlocale/437_UNI.044'/>
+        <dep name='/usr/lib/nwlocale/437_UNI.046'/>
+        <dep name='/usr/lib/nwlocale/437_UNI.049'/>
+        <dep name='/usr/lib/nwlocale/437_UNI.061'/>
+        <dep name='/usr/lib/nwlocale/437_UNI.358'/>
+        <dep name='/usr/lib/nwlocale/850_UNI.001'/>
+        <dep name='/usr/lib/nwlocale/850_UNI.002'/>
+        <dep name='/usr/lib/nwlocale/850_UNI.003'/>
+        <dep name='/usr/lib/nwlocale/850_UNI.007'/>
+        <dep name='/usr/lib/nwlocale/850_UNI.031'/>
+        <dep name='/usr/lib/nwlocale/850_UNI.032'/>
+        <dep name='/usr/lib/nwlocale/850_UNI.033'/>
+        <dep name='/usr/lib/nwlocale/850_UNI.034'/>
+        <dep name='/usr/lib/nwlocale/850_UNI.036'/>
+        <dep name='/usr/lib/nwlocale/850_UNI.039'/>
+        <dep name='/usr/lib/nwlocale/850_UNI.041'/>
+        <dep name='/usr/lib/nwlocale/850_UNI.044'/>
+        <dep name='/usr/lib/nwlocale/850_UNI.045'/>
+        <dep name='/usr/lib/nwlocale/850_UNI.046'/>
+        <dep name='/usr/lib/nwlocale/850_UNI.047'/>
+        <dep name='/usr/lib/nwlocale/850_UNI.049'/>
+        <dep name='/usr/lib/nwlocale/850_UNI.061'/>
+        <dep name='/usr/lib/nwlocale/850_UNI.090'/>
+        <dep name='/usr/lib/nwlocale/850_UNI.351'/>
+        <dep name='/usr/lib/nwlocale/850_UNI.358'/>
+        <dep name='/usr/lib/nwlocale/850_UNI.785'/>
+        <dep name='/usr/lib/nwlocale/850_UNI.972'/>
+        <dep name='/usr/lib/nwlocale/852_UNI.036'/>
+        <dep name='/usr/lib/nwlocale/852_UNI.038'/>
+        <dep name='/usr/lib/nwlocale/852_UNI.042'/>
+        <dep name='/usr/lib/nwlocale/852_UNI.048'/>
+        <dep name='/usr/lib/nwlocale/855_UNI.007'/>
+        <dep name='/usr/lib/nwlocale/855_UNI.038'/>
+        <dep name='/usr/lib/nwlocale/857_UNI.090'/>
+        <dep name='/usr/lib/nwlocale/860_UNI.351'/>
+        <dep name='/usr/lib/nwlocale/862_UNI.972'/>
+        <dep name='/usr/lib/nwlocale/863_UNI.002'/>
+        <dep name='/usr/lib/nwlocale/864_UNI.785'/>
+        <dep name='/usr/lib/nwlocale/865_UNI.045'/>
+        <dep name='/usr/lib/nwlocale/865_UNI.047'/>
+        <dep name='/usr/lib/nwlocale/866_UNI.007'/>
+        <dep name='/usr/lib/nwlocale/897_UNI.081'/>
+        <dep name='/usr/lib/nwlocale/932_UNI.081'/>
+        <dep name='/usr/lib/nwlocale/UNI_1250.036'/>
+        <dep name='/usr/lib/nwlocale/UNI_1250.042'/>
+        <dep name='/usr/lib/nwlocale/UNI_1250.048'/>
+        <dep name='/usr/lib/nwlocale/UNI_1251.007'/>
+        <dep name='/usr/lib/nwlocale/UNI_1252.001'/>
+        <dep name='/usr/lib/nwlocale/UNI_1252.002'/>
+        <dep name='/usr/lib/nwlocale/UNI_1252.003'/>
+        <dep name='/usr/lib/nwlocale/UNI_1252.031'/>
+        <dep name='/usr/lib/nwlocale/UNI_1252.032'/>
+        <dep name='/usr/lib/nwlocale/UNI_1252.033'/>
+        <dep name='/usr/lib/nwlocale/UNI_1252.034'/>
+        <dep name='/usr/lib/nwlocale/UNI_1252.039'/>
+        <dep name='/usr/lib/nwlocale/UNI_1252.041'/>
+        <dep name='/usr/lib/nwlocale/UNI_1252.044'/>
+        <dep name='/usr/lib/nwlocale/UNI_1252.045'/>
+        <dep name='/usr/lib/nwlocale/UNI_1252.046'/>
+        <dep name='/usr/lib/nwlocale/UNI_1252.047'/>
+        <dep name='/usr/lib/nwlocale/UNI_1252.049'/>
+        <dep name='/usr/lib/nwlocale/UNI_1252.061'/>
+        <dep name='/usr/lib/nwlocale/UNI_1252.090'/>
+        <dep name='/usr/lib/nwlocale/UNI_1252.351'/>
+        <dep name='/usr/lib/nwlocale/UNI_1252.358'/>
+        <dep name='/usr/lib/nwlocale/UNI_1256.785'/>
+        <dep name='/usr/lib/nwlocale/UNI_437.001'/>
+        <dep name='/usr/lib/nwlocale/UNI_437.003'/>
+        <dep name='/usr/lib/nwlocale/UNI_437.031'/>
+        <dep name='/usr/lib/nwlocale/UNI_437.032'/>
+        <dep name='/usr/lib/nwlocale/UNI_437.033'/>
+        <dep name='/usr/lib/nwlocale/UNI_437.034'/>
+        <dep name='/usr/lib/nwlocale/UNI_437.039'/>
+        <dep name='/usr/lib/nwlocale/UNI_437.041'/>
+        <dep name='/usr/lib/nwlocale/UNI_437.044'/>
+        <dep name='/usr/lib/nwlocale/UNI_437.046'/>
+        <dep name='/usr/lib/nwlocale/UNI_437.049'/>
+        <dep name='/usr/lib/nwlocale/UNI_437.061'/>
+        <dep name='/usr/lib/nwlocale/UNI_437.358'/>
+        <dep name='/usr/lib/nwlocale/UNI_850.001'/>
+        <dep name='/usr/lib/nwlocale/UNI_850.002'/>
+        <dep name='/usr/lib/nwlocale/UNI_850.003'/>
+        <dep name='/usr/lib/nwlocale/UNI_850.007'/>
+        <dep name='/usr/lib/nwlocale/UNI_850.031'/>
+        <dep name='/usr/lib/nwlocale/UNI_850.032'/>
+        <dep name='/usr/lib/nwlocale/UNI_850.033'/>
+        <dep name='/usr/lib/nwlocale/UNI_850.034'/>
+        <dep name='/usr/lib/nwlocale/UNI_850.036'/>
+        <dep name='/usr/lib/nwlocale/UNI_850.039'/>
+        <dep name='/usr/lib/nwlocale/UNI_850.041'/>
+        <dep name='/usr/lib/nwlocale/UNI_850.044'/>
+        <dep name='/usr/lib/nwlocale/UNI_850.045'/>
+        <dep name='/usr/lib/nwlocale/UNI_850.046'/>
+        <dep name='/usr/lib/nwlocale/UNI_850.047'/>
+        <dep name='/usr/lib/nwlocale/UNI_850.049'/>
+        <dep name='/usr/lib/nwlocale/UNI_850.061'/>
+        <dep name='/usr/lib/nwlocale/UNI_850.090'/>
+        <dep name='/usr/lib/nwlocale/UNI_850.351'/>
+        <dep name='/usr/lib/nwlocale/UNI_850.358'/>
+        <dep name='/usr/lib/nwlocale/UNI_850.785'/>
+        <dep name='/usr/lib/nwlocale/UNI_850.972'/>
+        <dep name='/usr/lib/nwlocale/UNI_852.036'/>
+        <dep name='/usr/lib/nwlocale/UNI_852.038'/>
+        <dep name='/usr/lib/nwlocale/UNI_852.042'/>
+        <dep name='/usr/lib/nwlocale/UNI_852.048'/>
+        <dep name='/usr/lib/nwlocale/UNI_855.007'/>
+        <dep name='/usr/lib/nwlocale/UNI_855.038'/>
+        <dep name='/usr/lib/nwlocale/UNI_857.090'/>
+        <dep name='/usr/lib/nwlocale/UNI_860.351'/>
+        <dep name='/usr/lib/nwlocale/UNI_862.972'/>
+        <dep name='/usr/lib/nwlocale/UNI_863.002'/>
+        <dep name='/usr/lib/nwlocale/UNI_864.785'/>
+        <dep name='/usr/lib/nwlocale/UNI_865.045'/>
+        <dep name='/usr/lib/nwlocale/UNI_865.047'/>
+        <dep name='/usr/lib/nwlocale/UNI_866.007'/>
+        <dep name='/usr/lib/nwlocale/UNI_897.081'/>
+        <dep name='/usr/lib/nwlocale/UNI_932.081'/>
+        <dep name='/usr/lib/nwlocale/UNI_COL.001'/>
+        <dep name='/usr/lib/nwlocale/UNI_COL.002'/>
+        <dep name='/usr/lib/nwlocale/UNI_COL.003'/>
+        <dep name='/usr/lib/nwlocale/UNI_COL.007'/>
+        <dep name='/usr/lib/nwlocale/UNI_COL.031'/>
+        <dep name='/usr/lib/nwlocale/UNI_COL.032'/>
+        <dep name='/usr/lib/nwlocale/UNI_COL.033'/>
+        <dep name='/usr/lib/nwlocale/UNI_COL.034'/>
+        <dep name='/usr/lib/nwlocale/UNI_COL.036'/>
+        <dep name='/usr/lib/nwlocale/UNI_COL.038'/>
+        <dep name='/usr/lib/nwlocale/UNI_COL.039'/>
+        <dep name='/usr/lib/nwlocale/UNI_COL.041'/>
+        <dep name='/usr/lib/nwlocale/UNI_COL.042'/>
+        <dep name='/usr/lib/nwlocale/UNI_COL.044'/>
+        <dep name='/usr/lib/nwlocale/UNI_COL.045'/>
+        <dep name='/usr/lib/nwlocale/UNI_COL.046'/>
+        <dep name='/usr/lib/nwlocale/UNI_COL.047'/>
+        <dep name='/usr/lib/nwlocale/UNI_COL.048'/>
+        <dep name='/usr/lib/nwlocale/UNI_COL.049'/>
+        <dep name='/usr/lib/nwlocale/UNI_COL.061'/>
+        <dep name='/usr/lib/nwlocale/UNI_COL.081'/>
+        <dep name='/usr/lib/nwlocale/UNI_COL.090'/>
+        <dep name='/usr/lib/nwlocale/UNI_COL.351'/>
+        <dep name='/usr/lib/nwlocale/UNI_COL.358'/>
+        <dep name='/usr/lib/nwlocale/UNI_COL.785'/>
+        <dep name='/usr/lib/nwlocale/UNI_COL.972'/>
+        <dep name='/usr/lib/nwlocale/UNI_MON.001'/>
+        <dep name='/usr/lib/nwlocale/UNI_MON.002'/>
+        <dep name='/usr/lib/nwlocale/UNI_MON.003'/>
+        <dep name='/usr/lib/nwlocale/UNI_MON.007'/>
+        <dep name='/usr/lib/nwlocale/UNI_MON.031'/>
+        <dep name='/usr/lib/nwlocale/UNI_MON.032'/>
+        <dep name='/usr/lib/nwlocale/UNI_MON.033'/>
+        <dep name='/usr/lib/nwlocale/UNI_MON.034'/>
+        <dep name='/usr/lib/nwlocale/UNI_MON.036'/>
+        <dep name='/usr/lib/nwlocale/UNI_MON.038'/>
+        <dep name='/usr/lib/nwlocale/UNI_MON.039'/>
+        <dep name='/usr/lib/nwlocale/UNI_MON.041'/>
+        <dep name='/usr/lib/nwlocale/UNI_MON.042'/>
+        <dep name='/usr/lib/nwlocale/UNI_MON.044'/>
+        <dep name='/usr/lib/nwlocale/UNI_MON.045'/>
+        <dep name='/usr/lib/nwlocale/UNI_MON.046'/>
+        <dep name='/usr/lib/nwlocale/UNI_MON.047'/>
+        <dep name='/usr/lib/nwlocale/UNI_MON.048'/>
+        <dep name='/usr/lib/nwlocale/UNI_MON.049'/>
+        <dep name='/usr/lib/nwlocale/UNI_MON.061'/>
+        <dep name='/usr/lib/nwlocale/UNI_MON.081'/>
+        <dep name='/usr/lib/nwlocale/UNI_MON.090'/>
+        <dep name='/usr/lib/nwlocale/UNI_MON.351'/>
+        <dep name='/usr/lib/nwlocale/UNI_MON.358'/>
+        <dep name='/usr/lib/nwlocale/UNI_MON.785'/>
+        <dep name='/usr/lib/nwlocale/UNI_MON.972'/>
+        <dep name='/usr/man/man8/nwboaddtrust.8.gz'/>
+        <dep name='/usr/man/man8/nwbocreate.8.gz'/>
+        <dep name='/usr/man/man8/nwboprops.8.gz'/>
+        <dep name='/usr/man/man8/nwborm.8.gz'/>
+        <dep name='/usr/man/man8/nwbosetspace.8.gz'/>
+        <dep name='/usr/man/man8/nwboshowspace.8.gz'/>
+        <dep name='/usr/man/man8/nwboshowtrust.8.gz'/>
+        <dep name='/usr/man/man8/nwbpadd.8.gz'/>
+        <dep name='/usr/man/man8/nwbpcreate.8.gz'/>
+        <dep name='/usr/man/man8/nwbprm.8.gz'/>
+        <dep name='/usr/man/man8/nwbpvalues.8.gz'/>
+        <dep name='/usr/man/man8/nwdelqjob.8.gz'/>
+        <dep name='/usr/man/man8/nwdsaddtrust.8.gz'/>
+        <dep name='/usr/man/man8/nwdsattrs.8.gz'/>
+        <dep name='/usr/man/man8/nwdscreate.8.gz'/>
+        <dep name='/usr/man/man8/nwdsmodify.8.gz'/>
+        <dep name='/usr/man/man8/nwdsrm.8.gz'/>
+        <dep name='/usr/man/man8/nwdssetspace.8.gz'/>
+        <dep name='/usr/man/man8/nwdsshowspace.8.gz'/>
+        <dep name='/usr/man/man8/nwdsshowtrust.8.gz'/>
+        <dep name='/usr/man/man8/nwdsvalues.8.gz'/>
+        <dep name='/usr/man/man8/nwlogin.8.gz'/>
+        <dep name='/usr/man/man8/nwlogout.8.gz'/>
+        <dep name='/usr/man/man8/nwmount.8.gz'/>
+        <dep name='/usr/man/man8/nwmsg.8.gz'/>
+        <dep name='/usr/man/man8/nwnulpaswd.8.gz'/>
+        <dep name='/usr/man/man8/nwpasswd.8.gz'/>
+        <dep name='/usr/man/man8/nwprint.8.gz'/>
+        <dep name='/usr/man/man8/nwqstat.8.gz'/>
+        <dep name='/usr/man/man8/nwsend.8.gz'/>
+        <dep name='/usr/man/man8/nwwhoami.8.gz'/>
+        <dep name='/usr/man/man8/xnwboadmin.8.gz'/>
+        <dep name='/usr/man/man8/xnwbocreate.8.gz'/>
+        <dep name='/usr/man/man8/xnwborights.8.gz'/>
+        <dep name='/usr/man/man8/xnwborightsDD.8.gz'/>
+        <dep name='/usr/man/man8/xnwbotrustees.8.gz'/>
+        <dep name='/usr/man/man8/xnwdsadmin.8.gz'/>
+        <dep name='/usr/man/man8/xnwdscreate.8.gz'/>
+        <dep name='/usr/man/man8/xnwdsrights.8.gz'/>
+        <dep name='/usr/man/man8/xnwdsrightsDD.8.gz'/>
+        <dep name='/usr/man/man8/xnwdstrustees.8.gz'/>
+        <dep name='/usr/man/man8/xnwmanageq.8.gz'/>
+        <dep name='/usr/man/man8/xnwprint.8.gz'/>
+        <dep name='/usr/sbin/nwamd'/>
+        <dep name='/usr/sbin/nwclientd'/>
+      </provides>
+      <requires>
+        <dep name='glibc'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXp.so.6'/>
+        <dep name='libXpm.so.4'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libnwatb.so'/>
+        <dep name='libnwcalls.so'/>
+        <dep name='libnwclient.so'/>
+        <dep name='libnwloc.so'/>
+        <dep name='libnwncp.so'/>
+        <dep name='libnwnet.so'/>
+        <dep name='libpthread.so.0'/>
+        <dep name='libstdc++.so.2.9'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>openldap-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.2.3</version>
+          <release>1</release>
+          <filename>openldap-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>openldap-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.2.3</version>
+          <release>1</release>
+          <filename>openldap-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='liblber.so.1'/>
+        <dep name='libldap.so.1'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>openldap</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.2.3</version>
+          <release>1</release>
+          <filename>openldap.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/ldapadd'/>
+        <dep name='/usr/bin/ldapdelete'/>
+        <dep name='/usr/bin/ldapmodify'/>
+        <dep name='/usr/bin/ldapmodrdn'/>
+        <dep name='/usr/bin/ldappasswd'/>
+        <dep name='/usr/bin/ldapsearch'/>
+        <dep name='/usr/bin/ud'/>
+        <dep name='/usr/libexec/fax500'/>
+        <dep name='/usr/libexec/go500'/>
+        <dep name='/usr/libexec/go500gw'/>
+        <dep name='/usr/libexec/in.xfingerd'/>
+        <dep name='/usr/libexec/mail500'/>
+        <dep name='/usr/libexec/rcpt500'/>
+        <dep name='/usr/libexec/rp500'/>
+        <dep name='/usr/libexec/slapd'/>
+        <dep name='/usr/libexec/slurpd'/>
+        <dep name='/usr/libexec/xrpcomp'/>
+        <dep name='/usr/sbin/centipede'/>
+        <dep name='/usr/sbin/ldbmcat'/>
+        <dep name='/usr/sbin/ldbmtest'/>
+        <dep name='/usr/sbin/ldif'/>
+        <dep name='/usr/sbin/ldif2id2children'/>
+        <dep name='/usr/sbin/ldif2id2entry'/>
+        <dep name='/usr/sbin/ldif2index'/>
+        <dep name='/usr/sbin/ldif2ldbm'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libgdbm.so.2'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libpthread.so.0'/>
+        <dep name='libresolv.so.2'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>OpenLinux</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.3</version>
+          <release>17</release>
+          <filename>OpenLinux.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/home/httpd/cgi-bin/rpm_query'/>
+        <dep name='/home/httpd/html/openlinux_help/HOWTO'/>
+        <dep name='/home/httpd/html/openlinux_help/doc'/>
+        <dep name='/home/httpd/html/openlinux_help/kde'/>
+        <dep name='/usr/bin/comminst'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>pam-apps</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.55</version>
+          <release>6</release>
+          <filename>pam-apps.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/passwd'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libpam.so.0'/>
+        <dep name='libpam_misc.so.0'/>
+        <dep name='libpwdb.so.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>pam_ldap</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>36</version>
+          <release>2</release>
+          <filename>pam_ldap.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='pam_ldap.so'/>
+        <dep name='/lib/security/pam_ldap.so'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='liblber.so.1'/>
+        <dep name='libldap.so.1'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libpam.so.0'/>
+        <dep name='libpthread.so.0'/>
+        <dep name='libresolv.so.2'/>
+      </requires>
+    </package>
+    <package>
+      <name>patch</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.5</version>
+          <release>1</release>
+          <filename>patch.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/patch'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>pciutils</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>pciutils.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/sbin/lspci'/>
+        <dep name='/sbin/setpci'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>perl</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>5.005_02</version>
+          <release>1</release>
+          <filename>perl.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/perl'/>
+        <dep name='/usr/bin/perl5.00502'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libpthread.so.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>perl-add</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>5.005_02</version>
+          <release>1</release>
+          <filename>perl-add.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='B.so'/>
+        <dep name='DB_File.so'/>
+        <dep name='Dumper.so'/>
+        <dep name='Fcntl.so'/>
+        <dep name='GDBM_File.so'/>
+        <dep name='IO.so'/>
+        <dep name='NDBM_File.so'/>
+        <dep name='Opcode.so'/>
+        <dep name='POSIX.so'/>
+        <dep name='SDBM_File.so'/>
+        <dep name='Socket.so'/>
+        <dep name='SysV.so'/>
+        <dep name='Thread.so'/>
+        <dep name='attrs.so'/>
+        <dep name='re.so'/>
+        <dep name='/usr/bin/a2p'/>
+        <dep name='/usr/bin/c2ph'/>
+        <dep name='/usr/bin/find2perl'/>
+        <dep name='/usr/bin/h2ph'/>
+        <dep name='/usr/bin/h2xs'/>
+        <dep name='/usr/bin/perlbug'/>
+        <dep name='/usr/bin/perlcc'/>
+        <dep name='/usr/bin/pl2pm'/>
+        <dep name='/usr/bin/pstruct'/>
+        <dep name='/usr/bin/s2p'/>
+        <dep name='/usr/bin/sperl5.00502'/>
+        <dep name='/usr/bin/splain'/>
+        <dep name='/usr/bin/suidperl'/>
+        <dep name='/usr/lib/perl5/5.00502/i686-linux-thread/auto/B/B.so'/>
+        <dep name='/usr/lib/perl5/5.00502/i686-linux-thread/auto/DB_File/DB_File.so'/>
+        <dep name='/usr/lib/perl5/5.00502/i686-linux-thread/auto/Data/Dumper/Dumper.so'/>
+        <dep name='/usr/lib/perl5/5.00502/i686-linux-thread/auto/Fcntl/Fcntl.so'/>
+        <dep name='/usr/lib/perl5/5.00502/i686-linux-thread/auto/GDBM_File/GDBM_File.so'/>
+        <dep name='/usr/lib/perl5/5.00502/i686-linux-thread/auto/IO/IO.so'/>
+        <dep name='/usr/lib/perl5/5.00502/i686-linux-thread/auto/IPC/SysV/SysV.so'/>
+        <dep name='/usr/lib/perl5/5.00502/i686-linux-thread/auto/NDBM_File/NDBM_File.so'/>
+        <dep name='/usr/lib/perl5/5.00502/i686-linux-thread/auto/Opcode/Opcode.so'/>
+        <dep name='/usr/lib/perl5/5.00502/i686-linux-thread/auto/POSIX/POSIX.so'/>
+        <dep name='/usr/lib/perl5/5.00502/i686-linux-thread/auto/SDBM_File/SDBM_File.so'/>
+        <dep name='/usr/lib/perl5/5.00502/i686-linux-thread/auto/Socket/Socket.so'/>
+        <dep name='/usr/lib/perl5/5.00502/i686-linux-thread/auto/Thread/Thread.so'/>
+        <dep name='/usr/lib/perl5/5.00502/i686-linux-thread/auto/attrs/attrs.so'/>
+        <dep name='/usr/lib/perl5/5.00502/i686-linux-thread/auto/re/re.so'/>
+      </provides>
+      <requires>
+        <dep name='perl' op='=' version='5.005_02'/>
+        <dep name='tcsh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdb.so.3'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libgdbm.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libpthread.so.0'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>perl-cgi</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.42</version>
+          <release>1</release>
+          <filename>perl-cgi.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/share/perl5/eg/cgi/RunMeFirst'/>
+        <dep name='/usr/share/perl5/eg/cgi/nph-multipart.cgi'/>
+      </provides>
+      <requires>
+        <dep name='perl' op='=' version='5.005_02'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>perl-examples</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>5.005_02</version>
+          <release>1</release>
+          <filename>perl-examples.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/share/perl5/eg/client'/>
+        <dep name='/usr/share/perl5/eg/down'/>
+        <dep name='/usr/share/perl5/eg/rename'/>
+        <dep name='/usr/share/perl5/eg/server'/>
+        <dep name='/usr/share/perl5/eg/unuc'/>
+        <dep name='/usr/share/perl5/eg/wrapsuid'/>
+      </provides>
+      <requires>
+        <dep name='perl' op='=' version='5.005_02'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>perl-man</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>5.005_02</version>
+          <release>1</release>
+          <filename>perl-man.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>pidentd</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.0.7</version>
+          <release>2</release>
+          <filename>pidentd.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/sbin/in.identd'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libpthread.so.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>perl-pod</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>5.005_02</version>
+          <release>1</release>
+          <filename>perl-pod.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/perldoc'/>
+        <dep name='/usr/bin/pod2html'/>
+        <dep name='/usr/bin/pod2latex'/>
+        <dep name='/usr/bin/pod2man'/>
+        <dep name='/usr/bin/pod2text'/>
+      </provides>
+      <requires>
+        <dep name='perl' op='=' version='5.005_02'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>pilot-link-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.9.3</version>
+          <release>2</release>
+          <filename>pilot-link-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/pi-csd'/>
+        <dep name='/usr/bin/pi-getram'/>
+        <dep name='/usr/bin/pi-getrom'/>
+        <dep name='/usr/bin/pi-nredir'/>
+        <dep name='/usr/lib/libpisock.so'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libpisock.so.3'/>
+      </requires>
+    </package>
+    <package>
+      <name>pilot-link</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.9.3</version>
+          <release>2</release>
+          <filename>pilot-link.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libpisock.so.3'/>
+        <dep name='/usr/bin/dlpsh'/>
+        <dep name='/usr/bin/pilot-addresses'/>
+        <dep name='/usr/bin/pilot-addresses-local'/>
+        <dep name='/usr/bin/pilot-clip'/>
+        <dep name='/usr/bin/pilot-debug'/>
+        <dep name='/usr/bin/pilot-dedupe'/>
+        <dep name='/usr/bin/pilot-file'/>
+        <dep name='/usr/bin/pilot-getrom'/>
+        <dep name='/usr/bin/pilot-install-datebook'/>
+        <dep name='/usr/bin/pilot-install-memo'/>
+        <dep name='/usr/bin/pilot-install-todos'/>
+        <dep name='/usr/bin/pilot-install-user'/>
+        <dep name='/usr/bin/pilot-mail'/>
+        <dep name='/usr/bin/pilot-memos-local'/>
+        <dep name='/usr/bin/pilot-read-expenses'/>
+        <dep name='/usr/bin/pilot-read-ical'/>
+        <dep name='/usr/bin/pilot-read-todos'/>
+        <dep name='/usr/bin/pilot-reminders-local'/>
+        <dep name='/usr/bin/pilot-schlep'/>
+        <dep name='/usr/bin/pilot-sync-plan'/>
+        <dep name='/usr/bin/pilot-tcp-gw'/>
+        <dep name='/usr/bin/pilot-undelete'/>
+        <dep name='/usr/bin/pilot-xfer'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libpisock.so.3'/>
+        <dep name='libreadline.so.3'/>
+        <dep name='libtcl8.0.so'/>
+        <dep name='libtk8.0.so'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>pixmap</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.6p4</version>
+          <release>4</release>
+          <filename>pixmap.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/pixmap'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXaw3d.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXpm.so.4'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>pixmap-doc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.6p4</version>
+          <release>4</release>
+          <filename>pixmap-doc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>plan</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.7.2</version>
+          <release>2</release>
+          <filename>plan.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/plan'/>
+        <dep name='/usr/X11R6/libexec/netplan'/>
+        <dep name='/usr/X11R6/libexec/notifier'/>
+        <dep name='/usr/X11R6/libexec/pland'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXp.so.6'/>
+        <dep name='libXpm.so.4'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>playmidi</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.4</version>
+          <release>2</release>
+          <filename>playmidi.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/playmidi'/>
+        <dep name='/usr/bin/xplaymidi'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXaw.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>plugger</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.0</version>
+          <release>3</release>
+          <filename>plugger.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='plugger.so'/>
+        <dep name='/etc/pluggerrc'/>
+        <dep name='/opt/netscape/communicator/plugins/plugger.so'/>
+        <dep name='/usr/man/man7/plugger.7'/>
+      </provides>
+    </package>
+    <package>
+      <name>pmirror</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.5</version>
+          <release>5</release>
+          <filename>pmirror.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/pmirror'/>
+        <dep name='/usr/lib/perl5/mftp.pl'/>
+      </provides>
+      <requires>
+        <dep name='perl'/>
+        <dep name='perl-add'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>popt</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.3</version>
+          <release>1</release>
+          <filename>popt.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>portmap</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>5beta</version>
+          <release>3</release>
+          <filename>portmap.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/sbin/pmap_dump'/>
+        <dep name='/usr/sbin/pmap_set'/>
+        <dep name='/usr/sbin/rpc.portmap'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>ppp</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.3.8</version>
+          <release>1</release>
+          <filename>ppp.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/ppp/ip-down'/>
+        <dep name='/etc/ppp/ip-up'/>
+        <dep name='/usr/sbin/chat'/>
+        <dep name='/usr/sbin/pppd'/>
+        <dep name='/usr/sbin/ppplogin'/>
+        <dep name='/usr/sbin/pppstats'/>
+      </provides>
+      <requires>
+        <dep name='linux-kernel-binary' op='&gt;=' version='2.2.3'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libpam.so.0'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>ppp-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.3.8</version>
+          <release>1</release>
+          <filename>ppp-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>procmail</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.13.1</version>
+          <release>1</release>
+          <filename>procmail.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/formail'/>
+        <dep name='/usr/bin/lockfile'/>
+        <dep name='/usr/bin/mailstat'/>
+        <dep name='/usr/bin/procmail'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>procps</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.2</version>
+          <release>1</release>
+          <filename>procps.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/ps'/>
+        <dep name='/usr/X11R6/bin/XConsole'/>
+        <dep name='/usr/bin/free'/>
+        <dep name='/usr/bin/oldps'/>
+        <dep name='/usr/bin/skill'/>
+        <dep name='/usr/bin/snice'/>
+        <dep name='/usr/bin/tload'/>
+        <dep name='/usr/bin/top'/>
+        <dep name='/usr/bin/uptime'/>
+        <dep name='/usr/bin/vmstat'/>
+        <dep name='/usr/bin/w'/>
+        <dep name='/usr/bin/watch'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>psmisc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>18</version>
+          <release>1</release>
+          <filename>psmisc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/fuser'/>
+        <dep name='/usr/bin/killall'/>
+        <dep name='/usr/bin/pidof'/>
+        <dep name='/usr/bin/pstree'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>psutils</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.17</version>
+          <release>3</release>
+          <filename>psutils.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/epsffit'/>
+        <dep name='/usr/bin/extractres'/>
+        <dep name='/usr/bin/fixdlsrps'/>
+        <dep name='/usr/bin/fixfmps'/>
+        <dep name='/usr/bin/fixpsditps'/>
+        <dep name='/usr/bin/fixpspps'/>
+        <dep name='/usr/bin/fixscribeps'/>
+        <dep name='/usr/bin/fixtpps'/>
+        <dep name='/usr/bin/fixwfwps'/>
+        <dep name='/usr/bin/fixwpps'/>
+        <dep name='/usr/bin/fixwwps'/>
+        <dep name='/usr/bin/getafm'/>
+        <dep name='/usr/bin/includeres'/>
+        <dep name='/usr/bin/psbook'/>
+        <dep name='/usr/bin/psmerge'/>
+        <dep name='/usr/bin/psnup'/>
+        <dep name='/usr/bin/psresize'/>
+        <dep name='/usr/bin/psselect'/>
+        <dep name='/usr/bin/pstops'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>python</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.5.1</version>
+          <release>1</release>
+          <filename>python.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='arraymodule.so'/>
+        <dep name='audioop.so'/>
+        <dep name='binascii.so'/>
+        <dep name='bsddbmodule.so'/>
+        <dep name='cPickle.so'/>
+        <dep name='cStringIO.so'/>
+        <dep name='cmathmodule.so'/>
+        <dep name='cryptmodule.so'/>
+        <dep name='cursesmodule.so'/>
+        <dep name='errnomodule.so'/>
+        <dep name='fcntlmodule.so'/>
+        <dep name='grpmodule.so'/>
+        <dep name='imageop.so'/>
+        <dep name='mathmodule.so'/>
+        <dep name='md5module.so'/>
+        <dep name='newmodule.so'/>
+        <dep name='nismodule.so'/>
+        <dep name='operator.so'/>
+        <dep name='parsermodule.so'/>
+        <dep name='pwdmodule.so'/>
+        <dep name='readline.so'/>
+        <dep name='resource.so'/>
+        <dep name='rgbimgmodule.so'/>
+        <dep name='rotormodule.so'/>
+        <dep name='selectmodule.so'/>
+        <dep name='socketmodule.so'/>
+        <dep name='stropmodule.so'/>
+        <dep name='structmodule.so'/>
+        <dep name='syslogmodule.so'/>
+        <dep name='termios.so'/>
+        <dep name='timemodule.so'/>
+        <dep name='timingmodule.so'/>
+        <dep name='zlibmodule.so'/>
+        <dep name='/usr/bin/python'/>
+        <dep name='/usr/bin/python1.5'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/arraymodule.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/audioop.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/binascii.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/bsddbmodule.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/cPickle.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/cStringIO.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/cmathmodule.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/cryptmodule.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/cursesmodule.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/errnomodule.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/fcntlmodule.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/grpmodule.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/imageop.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/mathmodule.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/md5module.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/newmodule.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/nismodule.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/operator.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/parsermodule.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/pwdmodule.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/readline.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/resource.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/rgbimgmodule.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/rotormodule.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/selectmodule.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/socketmodule.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/stropmodule.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/structmodule.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/syslogmodule.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/termios.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/timemodule.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/timingmodule.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/zlibmodule.so'/>
+        <dep name='/usr/lib/python1.5/plat-linux-i686/regen'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libpthread.so.0'/>
+        <dep name='libdb.so.2'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libreadline.so.3'/>
+        <dep name='libz.so.1'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>python-doc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.5.1</version>
+          <release>1</release>
+          <filename>python-doc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>python-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.5.1</version>
+          <release>1</release>
+          <filename>python-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/python1.5/base64.py'/>
+        <dep name='/usr/lib/python1.5/cgi.py'/>
+        <dep name='/usr/lib/python1.5/config/install-sh'/>
+        <dep name='/usr/lib/python1.5/config/makesetup'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/Abstract.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/BoxParent.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/Buttons.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/CSplit.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/DirList.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/FormSplit.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/HVSplit.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/Histogram.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/Sliders.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/Soundogram.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/Split.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/StripChart.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/TextEdit.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/TransParent.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/VUMeter.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/WindowParent.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/WindowSched.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/anywin.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/basewin.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/dirwin.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/filewin.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/formatter.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/gwin.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/listwin.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/mainloop.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/rect.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/srcwin.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/stdwinevents.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/stdwinq.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/tablewin.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/textwin.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/wdb.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/wdbframewin.py'/>
+        <dep name='/usr/lib/python1.5/lib-stdwin/wdbsrcwin.py'/>
+        <dep name='/usr/lib/python1.5/mailbox.py'/>
+        <dep name='/usr/lib/python1.5/mimify.py'/>
+        <dep name='/usr/lib/python1.5/pdb.py'/>
+        <dep name='/usr/lib/python1.5/profile.py'/>
+        <dep name='/usr/lib/python1.5/quopri.py'/>
+        <dep name='/usr/lib/python1.5/reconvert.py'/>
+        <dep name='/usr/lib/python1.5/test/pystone.py'/>
+        <dep name='/usr/lib/python1.5/test/regrtest.py'/>
+        <dep name='/usr/lib/python1.5/test/test_binascii.py'/>
+        <dep name='/usr/lib/python1.5/test/test_bsddb.py'/>
+        <dep name='/usr/lib/python1.5/test/test_cmath.py'/>
+        <dep name='/usr/lib/python1.5/test/test_crypt.py'/>
+        <dep name='/usr/lib/python1.5/test/test_dbm.py'/>
+        <dep name='/usr/lib/python1.5/test/test_dl.py'/>
+        <dep name='/usr/lib/python1.5/test/test_errno.py'/>
+        <dep name='/usr/lib/python1.5/test/test_fcntl.py'/>
+        <dep name='/usr/lib/python1.5/test/test_gdbm.py'/>
+        <dep name='/usr/lib/python1.5/uu.py'/>
+      </provides>
+      <requires>
+        <dep name='python' op='=' version='1.5.1'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/env'/>
+        <dep name='/usr/bin/python'/>
+      </requires>
+    </package>
+    <package>
+      <name>python-eclass</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.2</version>
+          <release>2</release>
+          <filename>python-eclass.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='Acquisition.so'/>
+        <dep name='ExtensionClass.so'/>
+        <dep name='MethodObject.so'/>
+        <dep name='Missing.so'/>
+        <dep name='MultiMapping.so'/>
+        <dep name='Sync.so'/>
+        <dep name='ThreadLock.so'/>
+        <dep name='/usr/lib/python1.5/site-packages/Acquisition.so'/>
+        <dep name='/usr/lib/python1.5/site-packages/ExtensionClass.so'/>
+        <dep name='/usr/lib/python1.5/site-packages/MethodObject.so'/>
+        <dep name='/usr/lib/python1.5/site-packages/Missing.so'/>
+        <dep name='/usr/lib/python1.5/site-packages/MultiMapping.so'/>
+        <dep name='/usr/lib/python1.5/site-packages/Sync.so'/>
+        <dep name='/usr/lib/python1.5/site-packages/ThreadLock.so'/>
+      </provides>
+      <requires>
+        <dep name='python' op='&gt;=' version='1.5'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>python-tk</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.5.1</version>
+          <release>1</release>
+          <filename>python-tk.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='_tkinter.so'/>
+        <dep name='/usr/lib/python1.5/lib-dynload/_tkinter.so'/>
+        <dep name='/usr/lib/python1.5/lib-tk/Canvas.py'/>
+        <dep name='/usr/lib/python1.5/lib-tk/Dialog.py'/>
+        <dep name='/usr/lib/python1.5/lib-tk/FileDialog.py'/>
+        <dep name='/usr/lib/python1.5/lib-tk/ScrolledText.py'/>
+        <dep name='/usr/lib/python1.5/lib-tk/SimpleDialog.py'/>
+        <dep name='/usr/lib/python1.5/lib-tk/Tkconstants.py'/>
+        <dep name='/usr/lib/python1.5/lib-tk/Tkinter.py'/>
+      </provides>
+      <requires>
+        <dep name='python' op='=' version='1.5.1'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libtcl8.0.so'/>
+        <dep name='libtk8.0.so'/>
+      </requires>
+    </package>
+    <package>
+      <name>qt</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.44</version>
+          <release>4</release>
+          <filename>qt.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libqt.so.1'/>
+        <dep name='/usr/lib/libqt.so.1.44'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libstdc++.so.2.9'/>
+      </requires>
+    </package>
+    <package>
+      <name>qt-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.44</version>
+          <release>4</release>
+          <filename>qt-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/moc'/>
+        <dep name='/usr/lib/libqt.so'/>
+      </provides>
+      <requires>
+        <dep name='qt' op='=' version='1.44'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libstdc++.so.2.9'/>
+      </requires>
+    </package>
+    <package>
+      <name>qt-doc-html</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.44</version>
+          <release>4</release>
+          <filename>qt-doc-html.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>qt-examples</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.44</version>
+          <release>4</release>
+          <filename>qt-examples.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/qt/examples/aclock/aclock'/>
+        <dep name='/usr/lib/qt/examples/application/application'/>
+        <dep name='/usr/lib/qt/examples/biff/biff'/>
+        <dep name='/usr/lib/qt/examples/connect/connect'/>
+        <dep name='/usr/lib/qt/examples/cursor/cursor'/>
+        <dep name='/usr/lib/qt/examples/dclock/dclock'/>
+        <dep name='/usr/lib/qt/examples/desktop/desktop'/>
+        <dep name='/usr/lib/qt/examples/dirview/dirview'/>
+        <dep name='/usr/lib/qt/examples/dragdrop/dragdrop'/>
+        <dep name='/usr/lib/qt/examples/drawdemo/drawdemo'/>
+        <dep name='/usr/lib/qt/examples/forever/forever'/>
+        <dep name='/usr/lib/qt/examples/hello/hello'/>
+        <dep name='/usr/lib/qt/examples/layout/layout'/>
+        <dep name='/usr/lib/qt/examples/life/life'/>
+        <dep name='/usr/lib/qt/examples/menu/menu'/>
+        <dep name='/usr/lib/qt/examples/movies/movies'/>
+        <dep name='/usr/lib/qt/examples/pref/pref'/>
+        <dep name='/usr/lib/qt/examples/progress/progress'/>
+        <dep name='/usr/lib/qt/examples/qdir/qdir'/>
+        <dep name='/usr/lib/qt/examples/qmag/qmag'/>
+        <dep name='/usr/lib/qt/examples/qwerty/qwerty'/>
+        <dep name='/usr/lib/qt/examples/scrollview/scrollview'/>
+        <dep name='/usr/lib/qt/examples/showimg/showimg'/>
+        <dep name='/usr/lib/qt/examples/splitter/splitter'/>
+        <dep name='/usr/lib/qt/examples/table/table'/>
+        <dep name='/usr/lib/qt/examples/tetrix/tetrix'/>
+        <dep name='/usr/lib/qt/examples/tictac/tictac'/>
+        <dep name='/usr/lib/qt/examples/timestmp/timestmp'/>
+        <dep name='/usr/lib/qt/examples/tooltip/tooltip'/>
+        <dep name='/usr/lib/qt/examples/validator/validator'/>
+        <dep name='/usr/lib/qt/examples/widgets/widgets'/>
+        <dep name='/usr/lib/qt/examples/xform/xform'/>
+      </provides>
+      <requires>
+        <dep name='qt' op='=' version='1.44'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libqt.so.1'/>
+        <dep name='libstdc++.so.2.9'/>
+      </requires>
+    </package>
+    <package>
+      <name>qt-opengl</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.44</version>
+          <release>4</release>
+          <filename>qt-opengl.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/libqgl.a'/>
+      </provides>
+      <requires>
+        <dep name='mesa'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>qt-qimgio</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.44</version>
+          <release>4</release>
+          <filename>qt-qimgio.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libqimgio.so.0'/>
+        <dep name='/usr/lib/libqimgio.so'/>
+        <dep name='/usr/lib/libqimgio.so.0.1'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libqt.so.1'/>
+        <dep name='libstdc++.so.2.9'/>
+      </requires>
+    </package>
+    <package>
+      <name>qt-tutorial</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.44</version>
+          <release>4</release>
+          <filename>qt-tutorial.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/qt/tutorial/t1/t1'/>
+        <dep name='/usr/lib/qt/tutorial/t10/t10'/>
+        <dep name='/usr/lib/qt/tutorial/t11/t11'/>
+        <dep name='/usr/lib/qt/tutorial/t12/t12'/>
+        <dep name='/usr/lib/qt/tutorial/t13/t13'/>
+        <dep name='/usr/lib/qt/tutorial/t14/t14'/>
+        <dep name='/usr/lib/qt/tutorial/t2/t2'/>
+        <dep name='/usr/lib/qt/tutorial/t3/t3'/>
+        <dep name='/usr/lib/qt/tutorial/t4/t4'/>
+        <dep name='/usr/lib/qt/tutorial/t5/t5'/>
+        <dep name='/usr/lib/qt/tutorial/t6/t6'/>
+        <dep name='/usr/lib/qt/tutorial/t7/t7'/>
+        <dep name='/usr/lib/qt/tutorial/t8/t8'/>
+        <dep name='/usr/lib/qt/tutorial/t9/t9'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libqt.so.1'/>
+        <dep name='libstdc++.so.2.9'/>
+      </requires>
+    </package>
+    <package>
+      <name>qt2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.1</version>
+          <release>2</release>
+          <filename>qt2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libqt.so.2'/>
+        <dep name='/usr/lib/qt2/lib/libqt.so.2.0.1'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libstdc++.so.2.9'/>
+      </requires>
+    </package>
+    <package>
+      <name>qt2-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.1</version>
+          <release>2</release>
+          <filename>qt2-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/qt2/bin/moc'/>
+        <dep name='/usr/lib/qt2/lib/libqt.so'/>
+      </provides>
+      <requires>
+        <dep name='qt2' op='=' version='2.0.1'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libstdc++.so.2.9'/>
+      </requires>
+    </package>
+    <package>
+      <name>qt2-doc-html</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.1</version>
+          <release>2</release>
+          <filename>qt2-doc-html.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>qt2-examples</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.1</version>
+          <release>2</release>
+          <filename>qt2-examples.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/qt2/examples/aclock/aclock'/>
+        <dep name='/usr/lib/qt2/examples/addressbook/addressbook'/>
+        <dep name='/usr/lib/qt2/examples/application/application'/>
+        <dep name='/usr/lib/qt2/examples/buttons_groups/buttons_groups'/>
+        <dep name='/usr/lib/qt2/examples/checklists/checklists'/>
+        <dep name='/usr/lib/qt2/examples/cursor/cursor'/>
+        <dep name='/usr/lib/qt2/examples/customlayout/customlayout'/>
+        <dep name='/usr/lib/qt2/examples/dclock/dclock'/>
+        <dep name='/usr/lib/qt2/examples/dirview/dirview'/>
+        <dep name='/usr/lib/qt2/examples/dragdrop/dragdrop'/>
+        <dep name='/usr/lib/qt2/examples/drawdemo/drawdemo'/>
+        <dep name='/usr/lib/qt2/examples/drawlines/drawlines'/>
+        <dep name='/usr/lib/qt2/examples/forever/forever'/>
+        <dep name='/usr/lib/qt2/examples/hello/hello'/>
+        <dep name='/usr/lib/qt2/examples/i18n/i18n'/>
+        <dep name='/usr/lib/qt2/examples/layout/layout'/>
+        <dep name='/usr/lib/qt2/examples/life/life'/>
+        <dep name='/usr/lib/qt2/examples/lineedits/lineedits'/>
+        <dep name='/usr/lib/qt2/examples/listbox/listbox'/>
+        <dep name='/usr/lib/qt2/examples/listbox_combo/listbox_combo'/>
+        <dep name='/usr/lib/qt2/examples/listviews/listviews'/>
+        <dep name='/usr/lib/qt2/examples/menu/menu'/>
+        <dep name='/usr/lib/qt2/examples/movies/movies'/>
+        <dep name='/usr/lib/qt2/examples/picture/picture'/>
+        <dep name='/usr/lib/qt2/examples/popup/popup'/>
+        <dep name='/usr/lib/qt2/examples/progress/progress'/>
+        <dep name='/usr/lib/qt2/examples/progressbar/progressbar'/>
+        <dep name='/usr/lib/qt2/examples/qbrowser/qbrowser'/>
+        <dep name='/usr/lib/qt2/examples/qdir/qdir'/>
+        <dep name='/usr/lib/qt2/examples/qfd/qfd'/>
+        <dep name='/usr/lib/qt2/examples/qfileiconview/qfileiconview'/>
+        <dep name='/usr/lib/qt2/examples/qiconview/qiconview'/>
+        <dep name='/usr/lib/qt2/examples/qmag/qmag'/>
+        <dep name='/usr/lib/qt2/examples/qwerty/qwerty'/>
+        <dep name='/usr/lib/qt2/examples/rangecontrols/rangecontrols'/>
+        <dep name='/usr/lib/qt2/examples/richtext/richtext'/>
+        <dep name='/usr/lib/qt2/examples/rot13/rot13'/>
+        <dep name='/usr/lib/qt2/examples/scribble/scribble'/>
+        <dep name='/usr/lib/qt2/examples/scrollview/scrollview'/>
+        <dep name='/usr/lib/qt2/examples/showimg/showimg'/>
+        <dep name='/usr/lib/qt2/examples/splitter/splitter'/>
+        <dep name='/usr/lib/qt2/examples/tabdialog/tabdialog'/>
+        <dep name='/usr/lib/qt2/examples/table/table'/>
+        <dep name='/usr/lib/qt2/examples/tetrix/tetrix'/>
+        <dep name='/usr/lib/qt2/examples/themes/themes'/>
+        <dep name='/usr/lib/qt2/examples/tictac/tictac'/>
+        <dep name='/usr/lib/qt2/examples/tooltip/tooltip'/>
+        <dep name='/usr/lib/qt2/examples/validator/validator'/>
+        <dep name='/usr/lib/qt2/examples/widgets/widgets'/>
+        <dep name='/usr/lib/qt2/examples/wizard/wizard'/>
+        <dep name='/usr/lib/qt2/examples/xform/xform'/>
+      </provides>
+      <requires>
+        <dep name='qt2' op='=' version='2.0.1'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libqt.so.2'/>
+        <dep name='libstdc++.so.2.9'/>
+      </requires>
+    </package>
+    <package>
+      <name>qt2-opengl</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.1</version>
+          <release>2</release>
+          <filename>qt2-opengl.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/qt2/lib/libqgl2.a'/>
+      </provides>
+      <requires>
+        <dep name='mesa'/>
+      </requires>
+    </package>
+    <package>
+      <name>qt2-qimgio</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.1</version>
+          <release>2</release>
+          <filename>qt2-qimgio.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libqimgio.so.0'/>
+        <dep name='/usr/lib/qt2/lib/libqimgio.so'/>
+        <dep name='/usr/lib/qt2/lib/libqimgio.so.0.1.0'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libqt.so.2'/>
+        <dep name='libstdc++.so.2.9'/>
+      </requires>
+    </package>
+    <package>
+      <name>qt2-tutorial</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.1</version>
+          <release>2</release>
+          <filename>qt2-tutorial.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/qt2/tutorial/t1/t1'/>
+        <dep name='/usr/lib/qt2/tutorial/t10/t10'/>
+        <dep name='/usr/lib/qt2/tutorial/t11/t11'/>
+        <dep name='/usr/lib/qt2/tutorial/t12/t12'/>
+        <dep name='/usr/lib/qt2/tutorial/t13/t13'/>
+        <dep name='/usr/lib/qt2/tutorial/t14/t14'/>
+        <dep name='/usr/lib/qt2/tutorial/t2/t2'/>
+        <dep name='/usr/lib/qt2/tutorial/t3/t3'/>
+        <dep name='/usr/lib/qt2/tutorial/t4/t4'/>
+        <dep name='/usr/lib/qt2/tutorial/t5/t5'/>
+        <dep name='/usr/lib/qt2/tutorial/t6/t6'/>
+        <dep name='/usr/lib/qt2/tutorial/t7/t7'/>
+        <dep name='/usr/lib/qt2/tutorial/t8/t8'/>
+        <dep name='/usr/lib/qt2/tutorial/t9/t9'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libqt.so.2'/>
+        <dep name='libstdc++.so.2.9'/>
+      </requires>
+    </package>
+    <package>
+      <name>rat</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.0.4_990625</version>
+          <release>1</release>
+          <filename>rat.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/rat'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>rcs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>5.7</version>
+          <release>5</release>
+          <filename>rcs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/ci'/>
+        <dep name='/usr/bin/co'/>
+        <dep name='/usr/bin/ident'/>
+        <dep name='/usr/bin/merge'/>
+        <dep name='/usr/bin/rcs'/>
+        <dep name='/usr/bin/rcsclean'/>
+        <dep name='/usr/bin/rcsdiff'/>
+        <dep name='/usr/bin/rcsfreeze'/>
+        <dep name='/usr/bin/rcsmerge'/>
+        <dep name='/usr/bin/rlog'/>
+        <dep name='/usr/doc/rcs-5.7/COPYING'/>
+      </provides>
+      <requires>
+        <dep name='diffutils'/>
+        <dep name='ed'/>
+        <dep name='mktemp'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>rdate</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>960923</version>
+          <release>1</release>
+          <filename>rdate.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/rdate'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>readline-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2.1</version>
+          <release>0</release>
+          <filename>readline-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='readline-devel' op='=' version='2.2.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>readline-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2.1</version>
+          <release>0</release>
+          <filename>readline-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/libhistory.so'/>
+        <dep name='/usr/lib/libreadline.so'/>
+      </provides>
+      <requires>
+        <dep name='readline' op='=' version='2.2.1'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>readline</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2.1</version>
+          <release>0</release>
+          <filename>readline.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libhistory.so.3'/>
+        <dep name='libreadline.so.3'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>recode</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.5</version>
+          <release>1</release>
+          <filename>recode.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='librecode.so.0'/>
+        <dep name='/usr/bin/recode'/>
+        <dep name='/usr/lib/librecode.la'/>
+        <dep name='/usr/lib/librecode.so.0.0.0'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='librecode.so.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>rh-compat</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.3</version>
+          <release>1</release>
+          <filename>rh-compat.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/libstdc++-libc6.1-1.so.2'/>
+      </provides>
+      <requires>
+        <dep name='libstdc++' op='=' version='2.9.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>rhmask</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>4</release>
+          <filename>rhmask.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/rhmask'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>rosegarden</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2u0</version>
+          <release>2</release>
+          <filename>rosegarden.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='Petal.so'/>
+        <dep name='/usr/bin/rosegarden'/>
+        <dep name='/usr/lib/rosegarden/bin/editor'/>
+        <dep name='/usr/lib/rosegarden/bin/sequencer'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXaw.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>rpm</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.5.5</version>
+          <release>3</release>
+          <filename>rpm.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/rpm'/>
+        <dep name='/bin/rpmextr'/>
+        <dep name='/bin/rpminst'/>
+        <dep name='/bin/rpmshow'/>
+        <dep name='/usr/bin/gendiff'/>
+        <dep name='/usr/bin/rpm2cpio'/>
+        <dep name='/usr/lib/rpm-2.5.5/cklibc5.pl'/>
+        <dep name='/usr/lib/rpm-2.5.5/find-lang.sh'/>
+        <dep name='/usr/lib/rpm-2.5.5/find-provides'/>
+        <dep name='/usr/lib/rpm-2.5.5/find-requires'/>
+        <dep name='/usr/lib/rpm-2.5.5/fixsymlinks.pl'/>
+        <dep name='/usr/lib/rpm-2.5.5/fixup.pl'/>
+        <dep name='/usr/lib/rpm-2.5.5/freshen.sh'/>
+        <dep name='/usr/lib/rpm-2.5.5/mkcopyright.pl'/>
+        <dep name='/usr/lib/rpm-2.5.5/mkinstalldirs'/>
+        <dep name='/usr/lib/rpm-2.5.5/mklists.pl'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdb.so.2'/>
+        <dep name='libz.so.1'/>
+        <dep name='/bin/bash'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+      <conflicts>
+        <dep name='patch' op='&lt;' version='2.5'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>rpm-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.5.5</version>
+          <release>3</release>
+          <filename>rpm-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>rstatd</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.03</version>
+          <release>1</release>
+          <filename>rstatd.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/rc.d/init.d/rstatd'/>
+        <dep name='/usr/bin/rsysinfo'/>
+        <dep name='/usr/sbin/rpc.rstatd'/>
+      </provides>
+      <requires>
+        <dep name='SysVinit-scripts' op='&gt;=' version='1.02'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>rstatd-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.03</version>
+          <release>1</release>
+          <filename>rstatd-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>rsync</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.3.1</version>
+          <release>1</release>
+          <filename>rsync.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/rsync'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>samba</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.5</version>
+          <release>1</release>
+          <filename>samba.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/rc.d/init.d/samba'/>
+        <dep name='/usr/bin/nmblookup'/>
+        <dep name='/usr/bin/rpcclient'/>
+        <dep name='/usr/bin/smbclient'/>
+        <dep name='/usr/bin/smbpasswd'/>
+        <dep name='/usr/bin/smbprint'/>
+        <dep name='/usr/bin/smbstatus'/>
+        <dep name='/usr/bin/smbtar'/>
+        <dep name='/usr/bin/smbtestparm'/>
+        <dep name='/usr/bin/smbtestprns'/>
+        <dep name='/usr/bin/testparm'/>
+        <dep name='/usr/bin/testprns'/>
+        <dep name='/usr/doc/samba-2.0.5/COPYING'/>
+        <dep name='/usr/sbin/addtosmbpass'/>
+        <dep name='/usr/sbin/convert_smbpasswd'/>
+        <dep name='/usr/sbin/convertsmbpasswd'/>
+        <dep name='/usr/sbin/findsmb'/>
+        <dep name='/usr/sbin/make_smbcodepage'/>
+        <dep name='/usr/sbin/mksmbcodepage'/>
+        <dep name='/usr/sbin/mksmbpasswd'/>
+        <dep name='/usr/sbin/mksmbprinterdef'/>
+        <dep name='/usr/sbin/nmbd'/>
+        <dep name='/usr/sbin/samba'/>
+        <dep name='/usr/sbin/smbadduser'/>
+        <dep name='/usr/sbin/smbd'/>
+        <dep name='/usr/sbin/updatesmbpasswd'/>
+      </provides>
+      <requires>
+        <dep name='libpam' op='&gt;=' version='0.66'/>
+        <dep name='SysVinit-scripts' op='&gt;=' version='1.04' release='6'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libpam.so.0'/>
+        <dep name='/bin/bash'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/awk'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>samba-doc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.5</version>
+          <release>1</release>
+          <filename>samba-doc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/doc/samba-2.0.5/docs/textdocs/MIRRORS.txt'/>
+      </provides>
+    </package>
+    <package>
+      <name>sane</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0.1</version>
+          <release>2</release>
+          <filename>sane.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libsane.so.1'/>
+        <dep name='libsane-abaton.so.1'/>
+        <dep name='libsane-agfafocus.so.1'/>
+        <dep name='libsane-apple.so.1'/>
+        <dep name='libsane-artec.so.1'/>
+        <dep name='libsane-canon.so.1'/>
+        <dep name='libsane-coolscan.so.1'/>
+        <dep name='libsane-dc210.so.1'/>
+        <dep name='libsane-dc25.so.1'/>
+        <dep name='libsane-dll.so.1'/>
+        <dep name='libsane-dmc.so.1'/>
+        <dep name='libsane-epson.so.1'/>
+        <dep name='libsane-hp.so.1'/>
+        <dep name='libsane-microtek.so.1'/>
+        <dep name='libsane-microtek2.so.1'/>
+        <dep name='libsane-mustek.so.1'/>
+        <dep name='libsane-net.so.1'/>
+        <dep name='libsane-pnm.so.1'/>
+        <dep name='libsane-qcam.so.1'/>
+        <dep name='libsane-ricoh.so.1'/>
+        <dep name='libsane-s9036.so.1'/>
+        <dep name='libsane-sharp.so.1'/>
+        <dep name='libsane-snapscan.so.1'/>
+        <dep name='libsane-tamarack.so.1'/>
+        <dep name='libsane-umax.so.1'/>
+        <dep name='/usr/bin/scanimage'/>
+        <dep name='/usr/bin/xcam'/>
+        <dep name='/usr/bin/xscanimage'/>
+        <dep name='/usr/lib/libsane.so.1'/>
+        <dep name='/usr/lib/libsane.so.1.0.1'/>
+        <dep name='/usr/lib/sane/libsane-abaton.so.1'/>
+        <dep name='/usr/lib/sane/libsane-abaton.so.1.0.1'/>
+        <dep name='/usr/lib/sane/libsane-agfafocus.so.1'/>
+        <dep name='/usr/lib/sane/libsane-agfafocus.so.1.0.1'/>
+        <dep name='/usr/lib/sane/libsane-apple.so.1'/>
+        <dep name='/usr/lib/sane/libsane-apple.so.1.0.1'/>
+        <dep name='/usr/lib/sane/libsane-artec.so.1'/>
+        <dep name='/usr/lib/sane/libsane-artec.so.1.0.1'/>
+        <dep name='/usr/lib/sane/libsane-canon.so.1'/>
+        <dep name='/usr/lib/sane/libsane-canon.so.1.0.1'/>
+        <dep name='/usr/lib/sane/libsane-coolscan.so.1'/>
+        <dep name='/usr/lib/sane/libsane-coolscan.so.1.0.1'/>
+        <dep name='/usr/lib/sane/libsane-dc210.so.1'/>
+        <dep name='/usr/lib/sane/libsane-dc210.so.1.0.1'/>
+        <dep name='/usr/lib/sane/libsane-dc25.so.1'/>
+        <dep name='/usr/lib/sane/libsane-dc25.so.1.0.1'/>
+        <dep name='/usr/lib/sane/libsane-dll.so.1'/>
+        <dep name='/usr/lib/sane/libsane-dll.so.1.0.1'/>
+        <dep name='/usr/lib/sane/libsane-dmc.so.1'/>
+        <dep name='/usr/lib/sane/libsane-dmc.so.1.0.1'/>
+        <dep name='/usr/lib/sane/libsane-epson.so.1'/>
+        <dep name='/usr/lib/sane/libsane-epson.so.1.0.1'/>
+        <dep name='/usr/lib/sane/libsane-hp.so.1'/>
+        <dep name='/usr/lib/sane/libsane-hp.so.1.0.1'/>
+        <dep name='/usr/lib/sane/libsane-microtek.so.1'/>
+        <dep name='/usr/lib/sane/libsane-microtek.so.1.0.1'/>
+        <dep name='/usr/lib/sane/libsane-microtek2.so.1'/>
+        <dep name='/usr/lib/sane/libsane-microtek2.so.1.0.1'/>
+        <dep name='/usr/lib/sane/libsane-mustek.so.1'/>
+        <dep name='/usr/lib/sane/libsane-mustek.so.1.0.1'/>
+        <dep name='/usr/lib/sane/libsane-net.so.1'/>
+        <dep name='/usr/lib/sane/libsane-net.so.1.0.1'/>
+        <dep name='/usr/lib/sane/libsane-pnm.so.1'/>
+        <dep name='/usr/lib/sane/libsane-pnm.so.1.0.1'/>
+        <dep name='/usr/lib/sane/libsane-qcam.so.1'/>
+        <dep name='/usr/lib/sane/libsane-qcam.so.1.0.1'/>
+        <dep name='/usr/lib/sane/libsane-ricoh.so.1'/>
+        <dep name='/usr/lib/sane/libsane-ricoh.so.1.0.1'/>
+        <dep name='/usr/lib/sane/libsane-s9036.so.1'/>
+        <dep name='/usr/lib/sane/libsane-s9036.so.1.0.1'/>
+        <dep name='/usr/lib/sane/libsane-sharp.so.1'/>
+        <dep name='/usr/lib/sane/libsane-sharp.so.1.0.1'/>
+        <dep name='/usr/lib/sane/libsane-snapscan.so.1'/>
+        <dep name='/usr/lib/sane/libsane-snapscan.so.1.0.1'/>
+        <dep name='/usr/lib/sane/libsane-tamarack.so.1'/>
+        <dep name='/usr/lib/sane/libsane-tamarack.so.1.0.1'/>
+        <dep name='/usr/lib/sane/libsane-umax.so.1'/>
+        <dep name='/usr/lib/sane/libsane-umax.so.1.0.1'/>
+        <dep name='/usr/sbin/find-scanner'/>
+        <dep name='/usr/sbin/in.saned'/>
+      </provides>
+      <requires>
+        <dep name='gtk+' op='&gt;=' version='1.0'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libgdk-1.2.so.0'/>
+        <dep name='libglib-1.2.so.0'/>
+        <dep name='libgmodule-1.2.so.0'/>
+        <dep name='libgtk-1.2.so.0'/>
+        <dep name='libjpeg.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libsane.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>sane-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0.1</version>
+          <release>2</release>
+          <filename>sane-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/libsane.so'/>
+        <dep name='/usr/lib/sane/libsane-abaton.so'/>
+        <dep name='/usr/lib/sane/libsane-agfafocus.so'/>
+        <dep name='/usr/lib/sane/libsane-apple.so'/>
+        <dep name='/usr/lib/sane/libsane-artec.so'/>
+        <dep name='/usr/lib/sane/libsane-canon.so'/>
+        <dep name='/usr/lib/sane/libsane-coolscan.so'/>
+        <dep name='/usr/lib/sane/libsane-dc210.so'/>
+        <dep name='/usr/lib/sane/libsane-dc25.so'/>
+        <dep name='/usr/lib/sane/libsane-dll.so'/>
+        <dep name='/usr/lib/sane/libsane-dmc.so'/>
+        <dep name='/usr/lib/sane/libsane-epson.so'/>
+        <dep name='/usr/lib/sane/libsane-hp.so'/>
+        <dep name='/usr/lib/sane/libsane-microtek.so'/>
+        <dep name='/usr/lib/sane/libsane-microtek2.so'/>
+        <dep name='/usr/lib/sane/libsane-mustek.so'/>
+        <dep name='/usr/lib/sane/libsane-net.so'/>
+        <dep name='/usr/lib/sane/libsane-pnm.so'/>
+        <dep name='/usr/lib/sane/libsane-qcam.so'/>
+        <dep name='/usr/lib/sane/libsane-ricoh.so'/>
+        <dep name='/usr/lib/sane/libsane-s9036.so'/>
+        <dep name='/usr/lib/sane/libsane-sharp.so'/>
+        <dep name='/usr/lib/sane/libsane-snapscan.so'/>
+        <dep name='/usr/lib/sane/libsane-tamarack.so'/>
+        <dep name='/usr/lib/sane/libsane-umax.so'/>
+      </provides>
+      <requires>
+        <dep name='sane' op='=' version='1.0.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>scotty</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.1.10</version>
+          <release>4</release>
+          <filename>scotty.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='tkined1.4.10.so'/>
+        <dep name='tnm2.1.10.so'/>
+        <dep name='/usr/bin/ntping'/>
+        <dep name='/usr/bin/scotty'/>
+        <dep name='/usr/bin/scotty2.1.10'/>
+        <dep name='/usr/bin/straps'/>
+        <dep name='/usr/bin/tkined'/>
+        <dep name='/usr/bin/tkined1.4.10'/>
+        <dep name='/usr/lib/tkined1.4.10.so'/>
+        <dep name='/usr/lib/tkined1.4.10/apps/bones.tcl'/>
+        <dep name='/usr/lib/tkined1.4.10/apps/clock.tcl'/>
+        <dep name='/usr/lib/tkined1.4.10/apps/cmip_trouble.tcl'/>
+        <dep name='/usr/lib/tkined1.4.10/apps/event.tcl'/>
+        <dep name='/usr/lib/tkined1.4.10/apps/game.tcl'/>
+        <dep name='/usr/lib/tkined1.4.10/apps/ip_discover.tcl'/>
+        <dep name='/usr/lib/tkined1.4.10/apps/ip_layout.tcl'/>
+        <dep name='/usr/lib/tkined1.4.10/apps/ip_monitor.tcl'/>
+        <dep name='/usr/lib/tkined1.4.10/apps/ip_trouble.tcl'/>
+        <dep name='/usr/lib/tkined1.4.10/apps/ip_world.tcl'/>
+        <dep name='/usr/lib/tkined1.4.10/apps/manager.tcl'/>
+        <dep name='/usr/lib/tkined1.4.10/apps/mibtree'/>
+        <dep name='/usr/lib/tkined1.4.10/apps/movie.tcl'/>
+        <dep name='/usr/lib/tkined1.4.10/apps/snmp_browser.tcl'/>
+        <dep name='/usr/lib/tkined1.4.10/apps/snmp_cisco.tcl'/>
+        <dep name='/usr/lib/tkined1.4.10/apps/snmp_host.tcl'/>
+        <dep name='/usr/lib/tkined1.4.10/apps/snmp_hp.tcl'/>
+        <dep name='/usr/lib/tkined1.4.10/apps/snmp_monitor.tcl'/>
+        <dep name='/usr/lib/tkined1.4.10/apps/snmp_trouble.tcl'/>
+        <dep name='/usr/lib/tnm2.1.10.so'/>
+        <dep name='/usr/lib/tnm2.1.10/agents/snmpd'/>
+        <dep name='/usr/lib/tnm2.1.10/examples/discover'/>
+        <dep name='/usr/lib/tnm2.1.10/examples/emok'/>
+        <dep name='/usr/lib/tnm2.1.10/examples/etherload'/>
+        <dep name='/usr/lib/tnm2.1.10/examples/ifload'/>
+        <dep name='/usr/lib/tnm2.1.10/examples/ifload2gif'/>
+        <dep name='/usr/lib/tnm2.1.10/examples/mibgrep'/>
+        <dep name='/usr/lib/tnm2.1.10/examples/mibtree'/>
+        <dep name='/usr/lib/tnm2.1.10/examples/nslook'/>
+        <dep name='/usr/lib/tnm2.1.10/examples/pcnfs'/>
+        <dep name='/usr/lib/tnm2.1.10/examples/rpcprobe'/>
+        <dep name='/usr/lib/tnm2.1.10/examples/rstat'/>
+        <dep name='/usr/lib/tnm2.1.10/examples/snmptrapd'/>
+        <dep name='/usr/lib/tnm2.1.10/examples/snmpwalk'/>
+        <dep name='/usr/lib/tnm2.1.10/examples/tcpspeed'/>
+        <dep name='/usr/lib/tnm2.1.10/examples/traceroute'/>
+        <dep name='/usr/lib/tnm2.1.10/examples/udploss'/>
+        <dep name='/usr/lib/tnm2.1.10/examples/udpspeed'/>
+        <dep name='/usr/lib/tnm2.1.10/examples/uiping'/>
+        <dep name='/usr/lib/tnm2.1.10/examples/yanny'/>
+      </provides>
+      <requires>
+        <dep name='tcl' op='&gt;=' version='7.5'/>
+        <dep name='tk' op='&gt;=' version='4.1'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libresolv.so.2'/>
+        <dep name='libtcl8.0.so'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>screen</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.9.5</version>
+          <release>1</release>
+          <filename>screen.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/screen'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libutempter.so.0'/>
+        <dep name='libutil.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>sdr</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>6.1_990625</version>
+          <release>1</release>
+          <filename>sdr.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/sdr'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libresolv.so.2'/>
+      </requires>
+    </package>
+    <package>
+      <name>sed</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.02</version>
+          <release>1</release>
+          <filename>sed.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/sed'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>sendmail-doc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>8.9.3</version>
+          <release>1</release>
+          <filename>sendmail-doc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>sendmail-cf</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>8.9.3</version>
+          <release>1</release>
+          <filename>sendmail-cf.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/share/sendmail/cf/cf/Build'/>
+      </provides>
+      <requires>
+        <dep name='sendmail'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>sendmail</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>8.9.3</version>
+          <release>1</release>
+          <filename>sendmail.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='MTA'/>
+        <dep name='/usr/libexec/sendmail/configure'/>
+        <dep name='/usr/libexec/sendmail/mail.local'/>
+        <dep name='/usr/libexec/sendmail/mailstats'/>
+        <dep name='/usr/libexec/sendmail/makemap'/>
+        <dep name='/usr/libexec/sendmail/praliases'/>
+        <dep name='/usr/libexec/sendmail/rmail'/>
+        <dep name='/usr/libexec/sendmail/sendmail'/>
+        <dep name='/usr/libexec/sendmail/smrsh'/>
+      </provides>
+      <requires>
+        <dep name='mtabase'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdb.so.2'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libresolv.so.2'/>
+        <dep name='/bin/bash'/>
+      </requires>
+    </package>
+    <package>
+      <name>setserial</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.15</version>
+          <release>1</release>
+          <filename>setserial.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/rc.d/rc.serial'/>
+        <dep name='/sbin/setserial'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/bash'/>
+      </requires>
+    </package>
+    <package>
+      <name>setup</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>6</release>
+          <filename>setup.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/config.d/shells/OL-greeting'/>
+      </provides>
+    </package>
+    <package>
+      <name>seyon</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.20c</version>
+          <release>1</release>
+          <filename>seyon.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/seyon'/>
+        <dep name='/usr/X11R6/bin/seyon-emu'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXaw.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>sgml-tools</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0.9</version>
+          <release>1</release>
+          <filename>sgml-tools.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/nsgmls'/>
+        <dep name='/usr/bin/rtf2rtf'/>
+        <dep name='/usr/bin/sgml2html'/>
+        <dep name='/usr/bin/sgml2info'/>
+        <dep name='/usr/bin/sgml2latex'/>
+        <dep name='/usr/bin/sgml2lyx'/>
+        <dep name='/usr/bin/sgml2rtf'/>
+        <dep name='/usr/bin/sgml2txt'/>
+        <dep name='/usr/bin/sgmlcheck'/>
+        <dep name='/usr/bin/sgmlpre'/>
+        <dep name='/usr/bin/sgmlsasp'/>
+        <dep name='/usr/bin/sgmltools.v1'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libstdc++.so.2.9'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>sh-utils</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.16</version>
+          <release>7</release>
+          <filename>sh-utils.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/date'/>
+        <dep name='/bin/echo'/>
+        <dep name='/bin/pwd'/>
+        <dep name='/bin/sleep'/>
+        <dep name='/bin/stty'/>
+        <dep name='/bin/su'/>
+        <dep name='/bin/uname'/>
+        <dep name='/usr/bin/['/>
+        <dep name='/usr/bin/basename'/>
+        <dep name='/usr/bin/dirname'/>
+        <dep name='/usr/bin/env'/>
+        <dep name='/usr/bin/expr'/>
+        <dep name='/usr/bin/factor'/>
+        <dep name='/usr/bin/groups'/>
+        <dep name='/usr/bin/id'/>
+        <dep name='/usr/bin/logname'/>
+        <dep name='/usr/bin/nice'/>
+        <dep name='/usr/bin/nohup'/>
+        <dep name='/usr/bin/pathchk'/>
+        <dep name='/usr/bin/printenv'/>
+        <dep name='/usr/bin/printf'/>
+        <dep name='/usr/bin/seq'/>
+        <dep name='/usr/bin/tee'/>
+        <dep name='/usr/bin/test'/>
+        <dep name='/usr/bin/tty'/>
+        <dep name='/usr/bin/users'/>
+        <dep name='/usr/bin/who'/>
+        <dep name='/usr/bin/whoami'/>
+        <dep name='/usr/bin/yes'/>
+        <dep name='/usr/sbin/chroot'/>
+      </provides>
+      <requires>
+        <dep name='libpam' op='&gt;=' version='0.65'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libpam.so.0'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>shadow-misc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1</version>
+          <release>3</release>
+          <filename>shadow-misc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libshadow.so.0'/>
+        <dep name='pam_dialup.so'/>
+        <dep name='/etc/rc.d/init.d/logoutd'/>
+        <dep name='/usr/bin/chage'/>
+        <dep name='/usr/bin/expiry'/>
+        <dep name='/usr/bin/gpasswd'/>
+        <dep name='/usr/bin/lastlog'/>
+        <dep name='/usr/bin/newgrp'/>
+        <dep name='/usr/bin/sg'/>
+        <dep name='/usr/lib/libshadow.so.0'/>
+        <dep name='/usr/lib/libshadow.so.0.0.0'/>
+        <dep name='/usr/sbin/chpasswd'/>
+        <dep name='/usr/sbin/dpasswd'/>
+        <dep name='/usr/sbin/groupmod'/>
+        <dep name='/usr/sbin/grpck'/>
+        <dep name='/usr/sbin/grpconv'/>
+        <dep name='/usr/sbin/grpunconv'/>
+        <dep name='/usr/sbin/logoutd'/>
+        <dep name='/usr/sbin/newusers'/>
+        <dep name='/usr/sbin/pwck'/>
+        <dep name='/usr/sbin/pwconv'/>
+        <dep name='/usr/sbin/pwunconv'/>
+        <dep name='/usr/sbin/usermod'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libshadow.so.0'/>
+        <dep name='/bin/bash'/>
+      </requires>
+    </package>
+    <package>
+      <name>sharutils</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2</version>
+          <release>6</release>
+          <filename>sharutils.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/mail-files'/>
+        <dep name='/usr/bin/mailshar'/>
+        <dep name='/usr/bin/remsync'/>
+        <dep name='/usr/bin/shar'/>
+        <dep name='/usr/bin/unshar'/>
+        <dep name='/usr/bin/uudecode'/>
+        <dep name='/usr/bin/uuencode'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/bash'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>slang</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.3.7</version>
+          <release>1</release>
+          <filename>slang.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libslang.so.1'/>
+        <dep name='/usr/doc/slang-1.3.7/COPYING.ART'/>
+        <dep name='/usr/doc/slang-1.3.7/COPYING.GPL'/>
+      </provides>
+      <requires>
+        <dep name='ncurses'/>
+        <dep name='/sbin/ldconfig'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>slang-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.3.7</version>
+          <release>1</release>
+          <filename>slang-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='slang-devel' op='=' version='1.3.7'/>
+      </requires>
+    </package>
+    <package>
+      <name>slang-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.3.7</version>
+          <release>1</release>
+          <filename>slang-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/libslang.so'/>
+      </provides>
+      <requires>
+        <dep name='slang' op='=' version='1.3.7'/>
+      </requires>
+    </package>
+    <package>
+      <name>sliplogin</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.1.2</version>
+          <release>6S</release>
+          <filename>sliplogin.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/slip/slip.login'/>
+        <dep name='/etc/slip/slip.logout'/>
+        <dep name='/usr/sbin/sliplogin'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>smbfs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.5</version>
+          <release>1</release>
+          <filename>smbfs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/smbmnt'/>
+        <dep name='/usr/bin/smbmount'/>
+        <dep name='/usr/bin/smbumount'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>sniffit</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.3.7beta</version>
+          <release>3</release>
+          <filename>sniffit.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/sbin/sniffit'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>sox</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>12.15</version>
+          <release>1</release>
+          <filename>sox.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/play'/>
+        <dep name='/usr/bin/sox'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>sox-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>12.15</version>
+          <release>1</release>
+          <filename>sox-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>splay</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.8.2</version>
+          <release>1</release>
+          <filename>splay.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/splay'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libpthread.so.0'/>
+        <dep name='libstdc++.so.2.9'/>
+      </requires>
+    </package>
+    <package>
+      <name>squid</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2.STABLE4</version>
+          <release>8</release>
+          <filename>squid.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/rc.d/init.d/squid'/>
+        <dep name='/home/httpd/cgi-bin/cachemgr.cgi'/>
+        <dep name='/usr/lib/squid/dnsserver'/>
+        <dep name='/usr/lib/squid/unlinkd'/>
+        <dep name='/usr/sbin/client'/>
+        <dep name='/usr/sbin/squid'/>
+      </provides>
+      <requires>
+        <dep name='logrotate'/>
+        <dep name='shadow-misc'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libresolv.so.2'/>
+        <dep name='/bin/bash'/>
+      </requires>
+    </package>
+    <package>
+      <name>strace</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.0</version>
+          <release>2</release>
+          <filename>strace.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/strace'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libnsl.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>svgalib-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.4.0</version>
+          <release>0</release>
+          <filename>svgalib-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>svgalib-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.4.0</version>
+          <release>0</release>
+          <filename>svgalib-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/libvga.so'/>
+        <dep name='/usr/lib/libvgagl.so'/>
+        <dep name='/usr/lib/svga/demos/accel'/>
+        <dep name='/usr/lib/svga/demos/addmodetest'/>
+        <dep name='/usr/lib/svga/demos/bankspeed'/>
+        <dep name='/usr/lib/svga/demos/bg_test'/>
+        <dep name='/usr/lib/svga/demos/eventtest'/>
+        <dep name='/usr/lib/svga/demos/forktest'/>
+        <dep name='/usr/lib/svga/demos/fun'/>
+        <dep name='/usr/lib/svga/demos/joytest'/>
+        <dep name='/usr/lib/svga/demos/keytest'/>
+        <dep name='/usr/lib/svga/demos/linearfork'/>
+        <dep name='/usr/lib/svga/demos/linearspeed'/>
+        <dep name='/usr/lib/svga/demos/lineart'/>
+        <dep name='/usr/lib/svga/demos/mjoytest'/>
+        <dep name='/usr/lib/svga/demos/mousetest'/>
+        <dep name='/usr/lib/svga/demos/printftest'/>
+        <dep name='/usr/lib/svga/demos/scrolltest'/>
+        <dep name='/usr/lib/svga/demos/speedtest'/>
+        <dep name='/usr/lib/svga/demos/spin'/>
+        <dep name='/usr/lib/svga/demos/svidtune'/>
+        <dep name='/usr/lib/svga/demos/testaccel'/>
+        <dep name='/usr/lib/svga/demos/testgl'/>
+        <dep name='/usr/lib/svga/demos/testlinear'/>
+        <dep name='/usr/lib/svga/demos/vgatest'/>
+        <dep name='/usr/lib/svga/threeDKit/plane'/>
+        <dep name='/usr/lib/svga/threeDKit/wrapdemo'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libvga.so.1'/>
+        <dep name='libvgagl.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>svgalib</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.4.0</version>
+          <release>0</release>
+          <filename>svgalib.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libvga.so.1'/>
+        <dep name='libvgagl.so.1'/>
+        <dep name='/usr/lib/libvga.so.1.4.0'/>
+        <dep name='/usr/lib/libvgagl.so.1.4.0'/>
+        <dep name='/usr/sbin/dumpreg'/>
+        <dep name='/usr/sbin/mode3'/>
+        <dep name='/usr/sbin/restorefont'/>
+        <dep name='/usr/sbin/restorepalette'/>
+        <dep name='/usr/sbin/restoretextmode'/>
+        <dep name='/usr/sbin/savetextmode'/>
+        <dep name='/usr/sbin/svgakeymap'/>
+        <dep name='/usr/sbin/textmode'/>
+        <dep name='/usr/sbin/vga_reset'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libvga.so.1'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>swat</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.5</version>
+          <release>1</release>
+          <filename>swat.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/sbin/swat'/>
+      </provides>
+      <requires>
+        <dep name='setup' op='&gt;=' version='2.0' release='2'/>
+        <dep name='tcp_wrappers'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libpam.so.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>sysklogd</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.3.31</version>
+          <release>1</release>
+          <filename>sysklogd.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='syslog'/>
+        <dep name='/etc/rc.d/init.d/syslog'/>
+        <dep name='/usr/sbin/klogd'/>
+        <dep name='/usr/sbin/syslogd'/>
+      </provides>
+      <requires>
+        <dep name='SysVinit-scripts' op='&gt;=' version='1.04'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>syslinux</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.45</version>
+          <release>1</release>
+          <filename>syslinux.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/syslinux'/>
+        <dep name='/usr/lib/syslinux/keytab-lilo.pl'/>
+        <dep name='/usr/lib/syslinux/sys2ansi.pl'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>SysVinit-scripts</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.05</version>
+          <release>5</release>
+          <filename>SysVinit-scripts.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/usleep'/>
+        <dep name='/etc/rc.d/init.d/bigfs'/>
+        <dep name='/etc/rc.d/init.d/functions'/>
+        <dep name='/etc/rc.d/init.d/halt'/>
+        <dep name='/etc/rc.d/init.d/inet'/>
+        <dep name='/etc/rc.d/init.d/local'/>
+        <dep name='/etc/rc.d/init.d/netmount'/>
+        <dep name='/etc/rc.d/init.d/network'/>
+        <dep name='/etc/rc.d/init.d/reboot'/>
+        <dep name='/etc/rc.d/init.d/rmnologin'/>
+        <dep name='/etc/rc.d/init.d/single'/>
+        <dep name='/etc/rc.d/init.d/skeleton'/>
+        <dep name='/etc/rc.d/init.d/skipped'/>
+        <dep name='/etc/rc.d/init.d/urandom'/>
+        <dep name='/etc/rc.d/init.d/zap'/>
+        <dep name='/etc/rc.d/rc'/>
+        <dep name='/etc/rc.d/rc.boot'/>
+        <dep name='/etc/rc.d/rc.gui'/>
+        <dep name='/etc/rc.d/rc.local'/>
+        <dep name='/etc/rc.d/rc.modules'/>
+        <dep name='/etc/rc.d/unconfigured.sh'/>
+        <dep name='/sbin/booter'/>
+        <dep name='/sbin/booterd'/>
+        <dep name='/sbin/ifdown'/>
+        <dep name='/sbin/ifup'/>
+        <dep name='/sbin/ssd'/>
+        <dep name='/sbin/start-stop-daemon'/>
+      </provides>
+      <requires>
+        <dep name='SysVinit' op='&gt;=' version='2.76'/>
+        <dep name='lisa' op='&gt;=' version='4.0'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/bash'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>SysVinit</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.76.3</version>
+          <release>2</release>
+          <filename>SysVinit.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/pidof'/>
+        <dep name='/sbin/halt'/>
+        <dep name='/sbin/init'/>
+        <dep name='/sbin/killall5'/>
+        <dep name='/sbin/poweroff'/>
+        <dep name='/sbin/reboot'/>
+        <dep name='/sbin/runlevel'/>
+        <dep name='/sbin/shutdown'/>
+        <dep name='/sbin/sulogin'/>
+        <dep name='/sbin/telinit'/>
+        <dep name='/usr/bin/last'/>
+        <dep name='/usr/bin/lastb'/>
+        <dep name='/usr/bin/mesg'/>
+        <dep name='/usr/bin/utmpdump'/>
+        <dep name='/usr/bin/wall'/>
+      </provides>
+      <requires>
+        <dep name='SysVinit-scripts' op='&gt;=' version='1.04'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>tar</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.12</version>
+          <release>3</release>
+          <filename>tar.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/tar'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>tcl</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>8.0.4</version>
+          <release>1</release>
+          <filename>tcl.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libtcl8.0.so'/>
+        <dep name='/usr/bin/tclsh8.0'/>
+        <dep name='/usr/lib/libtcl8.0.4.so'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libtcl8.0.so'/>
+      </requires>
+    </package>
+    <package>
+      <name>tcl-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>8.0.4</version>
+          <release>1</release>
+          <filename>tcl-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='tcl-devel' op='=' version='8.0.4'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>tcl-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>8.0.4</version>
+          <release>1</release>
+          <filename>tcl-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='tcl' op='=' version='8.0.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>tclX</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>8.0.4</version>
+          <release>1</release>
+          <filename>tclX.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libtclx8.0.4.so'/>
+        <dep name='libtkx8.0.4.so'/>
+        <dep name='/usr/bin/tcl8.0'/>
+        <dep name='/usr/bin/wishx8.0'/>
+        <dep name='/usr/lib/libtclx.so'/>
+        <dep name='/usr/lib/libtclx8.0.4.so'/>
+        <dep name='/usr/lib/libtkx.so'/>
+        <dep name='/usr/lib/libtkx8.0.4.so'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libtcl8.0.so'/>
+        <dep name='libtclx8.0.4.so'/>
+        <dep name='libtk8.0.so'/>
+        <dep name='libtkx8.0.4.so'/>
+      </requires>
+    </package>
+    <package>
+      <name>tclX-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>8.0.4</version>
+          <release>1</release>
+          <filename>tclX-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='tclX-devel' op='=' version='8.0.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>tclX-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>8.0.4</version>
+          <release>1</release>
+          <filename>tclX-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/tclhelp8.0'/>
+      </provides>
+      <requires>
+        <dep name='tclX' op='=' version='8.0.4'/>
+        <dep name='/bin/sh'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>tcpdump</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.4</version>
+          <release>5</release>
+          <filename>tcpdump.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/sbin/tcpdump'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>tcp_wrappers-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>7.6</version>
+          <release>4</release>
+          <filename>tcp_wrappers-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>tcp_wrappers</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>7.6</version>
+          <release>4</release>
+          <filename>tcp_wrappers.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/sbin/safe_finger'/>
+        <dep name='/usr/sbin/tcpd'/>
+        <dep name='/usr/sbin/tcpdchk'/>
+        <dep name='/usr/sbin/tcpdmatch'/>
+        <dep name='/usr/sbin/try-from'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>tcsh</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>6.08.00</version>
+          <release>2</release>
+          <filename>tcsh.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/tcsh'/>
+      </provides>
+      <requires>
+        <dep name='/usr/bin/perl'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>tcsh-doc-html</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>6.08.00</version>
+          <release>2</release>
+          <filename>tcsh-doc-html.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>termcap</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>10.2.7</version>
+          <release>0</release>
+          <filename>termcap.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>teTeX</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0.5</version>
+          <release>1</release>
+          <filename>teTeX.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/opt/teTeX/bin/MakeTeXPK'/>
+        <dep name='/opt/teTeX/bin/access'/>
+        <dep name='/opt/teTeX/bin/afm2tfm'/>
+        <dep name='/opt/teTeX/bin/allcm'/>
+        <dep name='/opt/teTeX/bin/allec'/>
+        <dep name='/opt/teTeX/bin/allneeded'/>
+        <dep name='/opt/teTeX/bin/bibtex'/>
+        <dep name='/opt/teTeX/bin/dmp'/>
+        <dep name='/opt/teTeX/bin/dvi2fax'/>
+        <dep name='/opt/teTeX/bin/dvicopy'/>
+        <dep name='/opt/teTeX/bin/dvihp'/>
+        <dep name='/opt/teTeX/bin/dvilj'/>
+        <dep name='/opt/teTeX/bin/dvilj2p'/>
+        <dep name='/opt/teTeX/bin/dvilj4'/>
+        <dep name='/opt/teTeX/bin/dvilj4l'/>
+        <dep name='/opt/teTeX/bin/dvilj6'/>
+        <dep name='/opt/teTeX/bin/dvips'/>
+        <dep name='/opt/teTeX/bin/dvired'/>
+        <dep name='/opt/teTeX/bin/dvitomp'/>
+        <dep name='/opt/teTeX/bin/dvitype'/>
+        <dep name='/opt/teTeX/bin/e2pall'/>
+        <dep name='/opt/teTeX/bin/einitex'/>
+        <dep name='/opt/teTeX/bin/epstopdf'/>
+        <dep name='/opt/teTeX/bin/etex'/>
+        <dep name='/opt/teTeX/bin/evirtex'/>
+        <dep name='/opt/teTeX/bin/fmtutil'/>
+        <dep name='/opt/teTeX/bin/fontexport'/>
+        <dep name='/opt/teTeX/bin/fontimport'/>
+        <dep name='/opt/teTeX/bin/fontinst'/>
+        <dep name='/opt/teTeX/bin/gftodvi'/>
+        <dep name='/opt/teTeX/bin/gftopk'/>
+        <dep name='/opt/teTeX/bin/gftype'/>
+        <dep name='/opt/teTeX/bin/gsftopk'/>
+        <dep name='/opt/teTeX/bin/inimf'/>
+        <dep name='/opt/teTeX/bin/inimpost'/>
+        <dep name='/opt/teTeX/bin/iniomega'/>
+        <dep name='/opt/teTeX/bin/initex'/>
+        <dep name='/opt/teTeX/bin/kpsepath'/>
+        <dep name='/opt/teTeX/bin/kpsestat'/>
+        <dep name='/opt/teTeX/bin/kpsetool'/>
+        <dep name='/opt/teTeX/bin/kpsewhich'/>
+        <dep name='/opt/teTeX/bin/kpsexpand'/>
+        <dep name='/opt/teTeX/bin/mag'/>
+        <dep name='/opt/teTeX/bin/makeindex'/>
+        <dep name='/opt/teTeX/bin/makempx'/>
+        <dep name='/opt/teTeX/bin/mf'/>
+        <dep name='/opt/teTeX/bin/mft'/>
+        <dep name='/opt/teTeX/bin/mfw'/>
+        <dep name='/opt/teTeX/bin/mkfontdesc'/>
+        <dep name='/opt/teTeX/bin/mkindex'/>
+        <dep name='/opt/teTeX/bin/mkocp'/>
+        <dep name='/opt/teTeX/bin/mkofm'/>
+        <dep name='/opt/teTeX/bin/mktexlsr'/>
+        <dep name='/opt/teTeX/bin/mktexmf'/>
+        <dep name='/opt/teTeX/bin/mktexpk'/>
+        <dep name='/opt/teTeX/bin/mktextfm'/>
+        <dep name='/opt/teTeX/bin/mpost'/>
+        <dep name='/opt/teTeX/bin/mpto'/>
+        <dep name='/opt/teTeX/bin/newer'/>
+        <dep name='/opt/teTeX/bin/odvicopy'/>
+        <dep name='/opt/teTeX/bin/odvips'/>
+        <dep name='/opt/teTeX/bin/odvitype'/>
+        <dep name='/opt/teTeX/bin/ofm2opl'/>
+        <dep name='/opt/teTeX/bin/omega'/>
+        <dep name='/opt/teTeX/bin/opl2ofm'/>
+        <dep name='/opt/teTeX/bin/otangle'/>
+        <dep name='/opt/teTeX/bin/otp2ocp'/>
+        <dep name='/opt/teTeX/bin/outocp'/>
+        <dep name='/opt/teTeX/bin/ovf2ovp'/>
+        <dep name='/opt/teTeX/bin/ovp2ovf'/>
+        <dep name='/opt/teTeX/bin/oxdvi'/>
+        <dep name='/opt/teTeX/bin/oxdvi.bin'/>
+        <dep name='/opt/teTeX/bin/patgen'/>
+        <dep name='/opt/teTeX/bin/pdfeinitex'/>
+        <dep name='/opt/teTeX/bin/pdfetex'/>
+        <dep name='/opt/teTeX/bin/pdfevirtex'/>
+        <dep name='/opt/teTeX/bin/pdfinitex'/>
+        <dep name='/opt/teTeX/bin/pdftex'/>
+        <dep name='/opt/teTeX/bin/pdfvirtex'/>
+        <dep name='/opt/teTeX/bin/pfb2pfa'/>
+        <dep name='/opt/teTeX/bin/pk2bm'/>
+        <dep name='/opt/teTeX/bin/pktogf'/>
+        <dep name='/opt/teTeX/bin/pktype'/>
+        <dep name='/opt/teTeX/bin/pltotf'/>
+        <dep name='/opt/teTeX/bin/pooltype'/>
+        <dep name='/opt/teTeX/bin/ps2frag'/>
+        <dep name='/opt/teTeX/bin/ps2pk'/>
+        <dep name='/opt/teTeX/bin/pslatex'/>
+        <dep name='/opt/teTeX/bin/readlink'/>
+        <dep name='/opt/teTeX/bin/rubibtex'/>
+        <dep name='/opt/teTeX/bin/rumakeindex'/>
+        <dep name='/opt/teTeX/bin/tangle'/>
+        <dep name='/opt/teTeX/bin/tex'/>
+        <dep name='/opt/teTeX/bin/texconfig'/>
+        <dep name='/opt/teTeX/bin/texdoc'/>
+        <dep name='/opt/teTeX/bin/texexec'/>
+        <dep name='/opt/teTeX/bin/texhash'/>
+        <dep name='/opt/teTeX/bin/texi2html'/>
+        <dep name='/opt/teTeX/bin/texi2pdf'/>
+        <dep name='/opt/teTeX/bin/texlinks'/>
+        <dep name='/opt/teTeX/bin/texshow'/>
+        <dep name='/opt/teTeX/bin/texutil'/>
+        <dep name='/opt/teTeX/bin/tftopl'/>
+        <dep name='/opt/teTeX/bin/thumbpdf'/>
+        <dep name='/opt/teTeX/bin/tie'/>
+        <dep name='/opt/teTeX/bin/ttf2afm'/>
+        <dep name='/opt/teTeX/bin/vftovp'/>
+        <dep name='/opt/teTeX/bin/virmf'/>
+        <dep name='/opt/teTeX/bin/virmpost'/>
+        <dep name='/opt/teTeX/bin/viromega'/>
+        <dep name='/opt/teTeX/bin/virtex'/>
+        <dep name='/opt/teTeX/bin/vptovf'/>
+        <dep name='/opt/teTeX/bin/weave'/>
+        <dep name='/opt/teTeX/bin/xdvi'/>
+        <dep name='/opt/teTeX/bin/xdvi.bin'/>
+        <dep name='/opt/teTeX/share/texmf/dvips/config/updmap'/>
+        <dep name='/opt/teTeX/share/texmf/web2c/mktexdir'/>
+        <dep name='/opt/teTeX/share/texmf/web2c/mktexnam'/>
+        <dep name='/opt/teTeX/share/texmf/web2c/mktexupd'/>
+      </provides>
+      <requires>
+        <dep name='ed'/>
+        <dep name='sed'/>
+        <dep name='dialog'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXaw.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libstdc++.so.2.9'/>
+        <dep name='libz.so.1'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>teTeX-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0.5</version>
+          <release>1</release>
+          <filename>teTeX-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>teTeX-doc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0.5</version>
+          <release>1</release>
+          <filename>teTeX-doc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/opt/teTeX/share/texmf/doc/generic/ruhyphen/mkcyryo'/>
+        <dep name='/opt/teTeX/share/texmf/doc/generic/ruhyphen/sorthyph'/>
+        <dep name='/opt/teTeX/share/texmf/doc/generic/ruhyphen/sortkoi8'/>
+        <dep name='/opt/teTeX/share/texmf/doc/generic/ruhyphen/trans'/>
+        <dep name='/opt/teTeX/share/texmf/doc/help/Catalogue/fixhtml'/>
+        <dep name='/opt/teTeX/share/texmf/doc/latex/changebar/chbar.sh'/>
+        <dep name='/opt/teTeX/share/texmf/doc/mkhtml'/>
+        <dep name='/opt/teTeX/share/texmf/doc/mkhtml.nawk'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>texinfo</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.12</version>
+          <release>3</release>
+          <filename>texinfo.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/makeinfo'/>
+        <dep name='/usr/bin/texi2dvi'/>
+        <dep name='/usr/bin/texindex'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libz.so.1'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>textutils</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.22</version>
+          <release>3</release>
+          <filename>textutils.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/cat'/>
+        <dep name='/usr/bin/cksum'/>
+        <dep name='/usr/bin/comm'/>
+        <dep name='/usr/bin/csplit'/>
+        <dep name='/usr/bin/cut'/>
+        <dep name='/usr/bin/expand'/>
+        <dep name='/usr/bin/fmt'/>
+        <dep name='/usr/bin/fold'/>
+        <dep name='/usr/bin/head'/>
+        <dep name='/usr/bin/join'/>
+        <dep name='/usr/bin/md5sum'/>
+        <dep name='/usr/bin/nl'/>
+        <dep name='/usr/bin/od'/>
+        <dep name='/usr/bin/paste'/>
+        <dep name='/usr/bin/pr'/>
+        <dep name='/usr/bin/sort'/>
+        <dep name='/usr/bin/split'/>
+        <dep name='/usr/bin/sum'/>
+        <dep name='/usr/bin/tac'/>
+        <dep name='/usr/bin/tail'/>
+        <dep name='/usr/bin/tr'/>
+        <dep name='/usr/bin/unexpand'/>
+        <dep name='/usr/bin/uniq'/>
+        <dep name='/usr/bin/wc'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>tgif</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.1.16</version>
+          <release>1</release>
+          <filename>tgif.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/tgif'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>time</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.7</version>
+          <release>2</release>
+          <filename>time.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/time'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>timidity</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.1.0</version>
+          <release>1</release>
+          <filename>timidity.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/timidity'/>
+      </provides>
+      <requires>
+        <dep name='midi-instruments'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXaw3d.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libslang.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>tin</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.4_19990517</version>
+          <release>1</release>
+          <filename>tin.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/rtin'/>
+        <dep name='/usr/bin/tin'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>tix</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.1.0.006</version>
+          <release>1</release>
+          <filename>tix.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libtix4.1.8.0.so'/>
+        <dep name='/usr/bin/tixindex'/>
+        <dep name='/usr/bin/tixwish4.1.8.0'/>
+        <dep name='/usr/lib/libtix4.1.8.0.so'/>
+        <dep name='/usr/share/tix-4.1/Demos/widget'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libtcl8.0.so'/>
+        <dep name='libtix4.1.8.0.so'/>
+        <dep name='libtk8.0.so'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>tix-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.1.0.006</version>
+          <release>1</release>
+          <filename>tix-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='tix-devel' op='=' version='4.1.0.006'/>
+      </requires>
+    </package>
+    <package>
+      <name>tix-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.1.0.006</version>
+          <release>1</release>
+          <filename>tix-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='tix' op='=' version='4.1.0.006'/>
+      </requires>
+    </package>
+    <package>
+      <name>tk</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>8.0.4</version>
+          <release>1</release>
+          <filename>tk.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libtk8.0.so'/>
+        <dep name='/usr/bin/wish8.0'/>
+        <dep name='/usr/lib/libtk8.0.4.so'/>
+        <dep name='/usr/share/tk-8.0/Demos/browse'/>
+        <dep name='/usr/share/tk-8.0/Demos/hello'/>
+        <dep name='/usr/share/tk-8.0/Demos/ixset'/>
+        <dep name='/usr/share/tk-8.0/Demos/rmt'/>
+        <dep name='/usr/share/tk-8.0/Demos/rolodex'/>
+        <dep name='/usr/share/tk-8.0/Demos/square'/>
+        <dep name='/usr/share/tk-8.0/Demos/tcolor'/>
+        <dep name='/usr/share/tk-8.0/Demos/timer'/>
+        <dep name='/usr/share/tk-8.0/Demos/widget'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libtcl8.0.so'/>
+        <dep name='libtk8.0.so'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>tk-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>8.0.4</version>
+          <release>1</release>
+          <filename>tk-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='tk-devel' op='=' version='8.0.4'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>tk-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>8.0.4</version>
+          <release>1</release>
+          <filename>tk-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='tk' op='=' version='8.0.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>traceroute</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.4a5</version>
+          <release>5</release>
+          <filename>traceroute.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/sbin/traceroute'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>tracker</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.3</version>
+          <release>4</release>
+          <filename>tracker.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/analyzer'/>
+        <dep name='/usr/bin/randomize'/>
+        <dep name='/usr/bin/tracker'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>transfig</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.2.1</version>
+          <release>3</release>
+          <filename>transfig.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/fig2dev'/>
+        <dep name='/usr/X11R6/bin/fig2ps2tex'/>
+        <dep name='/usr/X11R6/bin/fig2ps2tex.sh'/>
+        <dep name='/usr/X11R6/bin/pic2tpic'/>
+        <dep name='/usr/X11R6/bin/transfig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/bricks.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/circles.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/crosshatch.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/crosshatch30.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/crosshatch45.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/dash.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/dashDot.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/dashDotDot.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/dashDotDotDot.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/dot.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/fishscales.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/hexagons.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/horiz_saw.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/horizontal.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/left30.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/left45.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/leftshingle.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/octagons.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/p13.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/right30.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/right45.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/rightshingle.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/small_fishscales.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/sp0.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/sp1.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/sp10.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/sp11.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/sp12.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/sp13.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/sp14.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/sp15.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/sp16.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/sp17.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/sp18.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/sp19.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/sp2.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/sp20.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/sp3.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/sp4.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/sp5.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/sp6.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/sp7.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/sp8.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/sp9.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/vert_bricks.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/vert_leftshingle.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/vert_rightshingle.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/vert_saw.bmp'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/bitmaps/vertical.bmp'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXpm.so.4'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdb.so.3'/>
+        <dep name='libjpeg.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='/bin/sh'/>
+        <dep name='/bin/tcsh'/>
+      </requires>
+    </package>
+    <package>
+      <name>ucd-snmp-utils</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.0.1</version>
+          <release>1</release>
+          <filename>ucd-snmp-utils.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/encode_keychange'/>
+        <dep name='/usr/bin/snmpbulkwalk'/>
+        <dep name='/usr/bin/snmpdelta'/>
+        <dep name='/usr/bin/snmpget'/>
+        <dep name='/usr/bin/snmpgetnext'/>
+        <dep name='/usr/bin/snmpnetstat'/>
+        <dep name='/usr/bin/snmpset'/>
+        <dep name='/usr/bin/snmpstatus'/>
+        <dep name='/usr/bin/snmptable'/>
+        <dep name='/usr/bin/snmptest'/>
+        <dep name='/usr/bin/snmptranslate'/>
+        <dep name='/usr/bin/snmptrap'/>
+        <dep name='/usr/bin/snmpusm'/>
+        <dep name='/usr/bin/snmpwalk'/>
+        <dep name='/usr/bin/tkmib'/>
+      </provides>
+      <requires>
+        <dep name='ucd-snmp'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdb.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libsnmp.so.0'/>
+        <dep name='libz.so.1'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>ucd-snmp-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.0.1</version>
+          <release>1</release>
+          <filename>ucd-snmp-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ucd-snmp'/>
+      </requires>
+    </package>
+    <package>
+      <name>ucd-snmp</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.0.1</version>
+          <release>1</release>
+          <filename>ucd-snmp.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libsnmp.so.0'/>
+        <dep name='/etc/rc.d/init.d/snmpd'/>
+        <dep name='/usr/doc/ucd-snmp-4.0.1/bug-report'/>
+        <dep name='/usr/doc/ucd-snmp-4.0.1/local/fixproc'/>
+        <dep name='/usr/doc/ucd-snmp-4.0.1/local/ipf-mod.pl'/>
+        <dep name='/usr/doc/ucd-snmp-4.0.1/local/mib2c'/>
+        <dep name='/usr/doc/ucd-snmp-4.0.1/local/passtest'/>
+        <dep name='/usr/doc/ucd-snmp-4.0.1/local/rsnmp'/>
+        <dep name='/usr/doc/ucd-snmp-4.0.1/local/snmp-ucd.sh'/>
+        <dep name='/usr/doc/ucd-snmp-4.0.1/local/snmpcheck'/>
+        <dep name='/usr/doc/ucd-snmp-4.0.1/local/snmpcheck.def'/>
+        <dep name='/usr/doc/ucd-snmp-4.0.1/local/tkmib'/>
+        <dep name='/usr/doc/ucd-snmp-4.0.1/local/trapnotif'/>
+        <dep name='/usr/doc/ucd-snmp-4.0.1/local/wesrestart'/>
+        <dep name='/usr/lib/libsnmp.so.0.4.0.1'/>
+        <dep name='/usr/sbin/snmpd'/>
+        <dep name='/usr/sbin/snmptrapd'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdb.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libsnmp.so.0'/>
+        <dep name='libz.so.1'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>uemacs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.0.0</version>
+          <release>3</release>
+          <filename>uemacs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/me'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>umsdosfs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.9</version>
+          <release>0</release>
+          <filename>umsdosfs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/sbin/udosctl'/>
+        <dep name='/sbin/umssetup'/>
+        <dep name='/sbin/umssync'/>
+        <dep name='/usr/man/man8/umssync.8.gz'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libstdc++.so.2.9'/>
+      </requires>
+      <obsoletes>
+        <dep name='umsdos_progs'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>unarj</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.41a</version>
+          <release>6</release>
+          <filename>unarj.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/unarj'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>unzip</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>5.32</version>
+          <release>1</release>
+          <filename>unzip.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/funzip'/>
+        <dep name='/usr/bin/unzip'/>
+        <dep name='/usr/bin/unzipsfx'/>
+        <dep name='/usr/bin/zipgrep'/>
+        <dep name='/usr/bin/zipinfo'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>utempter</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.5</version>
+          <release>3</release>
+          <filename>utempter.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libutempter.so.0'/>
+        <dep name='/usr/sbin/utempter'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='/sbin/ldconfig'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>util-linux</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.9s</version>
+          <release>4</release>
+          <filename>util-linux.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/arch'/>
+        <dep name='/bin/dmesg'/>
+        <dep name='/bin/kill'/>
+        <dep name='/bin/login'/>
+        <dep name='/bin/more'/>
+        <dep name='/bin/mount'/>
+        <dep name='/bin/umount'/>
+        <dep name='/sbin/cfdisk'/>
+        <dep name='/sbin/ctrlaltdel'/>
+        <dep name='/sbin/fdisk'/>
+        <dep name='/sbin/fsck.minix'/>
+        <dep name='/sbin/hwclock'/>
+        <dep name='/sbin/kbdrate'/>
+        <dep name='/sbin/losetup'/>
+        <dep name='/sbin/mkfs'/>
+        <dep name='/sbin/mkfs.minix'/>
+        <dep name='/sbin/mkswap'/>
+        <dep name='/sbin/sfdisk'/>
+        <dep name='/sbin/sln'/>
+        <dep name='/sbin/swapoff'/>
+        <dep name='/sbin/swapon'/>
+        <dep name='/usr/bin/cal'/>
+        <dep name='/usr/bin/chfn'/>
+        <dep name='/usr/bin/chkdupexe'/>
+        <dep name='/usr/bin/chsh'/>
+        <dep name='/usr/bin/col'/>
+        <dep name='/usr/bin/colcrt'/>
+        <dep name='/usr/bin/colrm'/>
+        <dep name='/usr/bin/column'/>
+        <dep name='/usr/bin/cytune'/>
+        <dep name='/usr/bin/ddate'/>
+        <dep name='/usr/bin/getopt'/>
+        <dep name='/usr/bin/hexdump'/>
+        <dep name='/usr/bin/ipcrm'/>
+        <dep name='/usr/bin/ipcs'/>
+        <dep name='/usr/bin/logger'/>
+        <dep name='/usr/bin/look'/>
+        <dep name='/usr/bin/mcookie'/>
+        <dep name='/usr/bin/namei'/>
+        <dep name='/usr/bin/renice'/>
+        <dep name='/usr/bin/rev'/>
+        <dep name='/usr/bin/script'/>
+        <dep name='/usr/bin/setsid'/>
+        <dep name='/usr/bin/setterm'/>
+        <dep name='/usr/bin/tsort'/>
+        <dep name='/usr/bin/ul'/>
+        <dep name='/usr/bin/whereis'/>
+        <dep name='/usr/bin/write'/>
+        <dep name='/usr/doc/util-linux-2.9s/COPYING.GPL'/>
+        <dep name='/usr/doc/util-linux-2.9s/COPYING.UCB'/>
+        <dep name='/usr/games/banner'/>
+        <dep name='/usr/lib/getopt/parse.bash'/>
+        <dep name='/usr/lib/getopt/parse.tcsh'/>
+        <dep name='/usr/lib/getopt/test.bash'/>
+        <dep name='/usr/lib/getopt/test.tcsh'/>
+        <dep name='/usr/sbin/fdformat'/>
+        <dep name='/usr/sbin/ramsize'/>
+        <dep name='/usr/sbin/rdev'/>
+        <dep name='/usr/sbin/readprofile'/>
+        <dep name='/usr/sbin/rootflags'/>
+        <dep name='/usr/sbin/setfdprm'/>
+        <dep name='/usr/sbin/swapdev'/>
+        <dep name='/usr/sbin/tunelp'/>
+        <dep name='/usr/sbin/vidmode'/>
+        <dep name='/usr/sbin/vigr'/>
+        <dep name='/usr/sbin/vipw'/>
+      </provides>
+      <requires>
+        <dep name='lisa' op='&gt;=' version='4.0'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libpam.so.0'/>
+        <dep name='libpam_misc.so.0'/>
+        <dep name='libutil.so.1'/>
+        <dep name='/bin/bash'/>
+        <dep name='/bin/tcsh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>uucp</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.06.1</version>
+          <release>11</release>
+          <filename>uucp.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/cu'/>
+        <dep name='/usr/bin/uucp'/>
+        <dep name='/usr/bin/uulog'/>
+        <dep name='/usr/bin/uuname'/>
+        <dep name='/usr/bin/uupick'/>
+        <dep name='/usr/bin/uustat'/>
+        <dep name='/usr/bin/uuto'/>
+        <dep name='/usr/bin/uux'/>
+        <dep name='/usr/doc/uucp-1.06.1/contrib/savelog.sh'/>
+        <dep name='/usr/doc/uucp-1.06.1/contrib/stats.sh'/>
+        <dep name='/usr/doc/uucp-1.06.1/contrib/uuq.sh'/>
+        <dep name='/usr/doc/uucp-1.06.1/contrib/uureroute.perl'/>
+        <dep name='/usr/doc/uucp-1.06.1/contrib/uuxconv'/>
+        <dep name='/usr/sbin/uuchk'/>
+        <dep name='/usr/sbin/uucico'/>
+        <dep name='/usr/sbin/uuconv'/>
+        <dep name='/usr/sbin/uusched'/>
+        <dep name='/usr/sbin/uuxqt'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>uucp-doc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.06.1</version>
+          <release>11</release>
+          <filename>uucp-doc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>vic</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.8ucl_990625</version>
+          <release>1</release>
+          <filename>vic.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/histtolut'/>
+        <dep name='/usr/X11R6/bin/vic'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libstdc++.so.2.9'/>
+      </requires>
+    </package>
+    <package>
+      <name>vim</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>5.3</version>
+          <release>4</release>
+          <filename>vim.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/ctags'/>
+        <dep name='/bin/ex'/>
+        <dep name='/bin/rview'/>
+        <dep name='/bin/rvim'/>
+        <dep name='/bin/vi'/>
+        <dep name='/bin/view'/>
+        <dep name='/bin/vim'/>
+        <dep name='/bin/xxd'/>
+        <dep name='/usr/bin/vi'/>
+        <dep name='/usr/share/vim/vimrc'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>vim-help</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>5.3</version>
+          <release>4</release>
+          <filename>vim-help.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='vim' op='&gt;=' version='5.3'/>
+      </requires>
+    </package>
+    <package>
+      <name>vim-X11</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>5.3</version>
+          <release>4</release>
+          <filename>vim-X11.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/gvim'/>
+        <dep name='/usr/X11R6/man/man1/gvim.1.gz'/>
+        <dep name='/usr/share/vim/gvimrc'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXaw3d.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>vixie-cron</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.0.1</version>
+          <release>19</release>
+          <filename>vixie-cron.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='cron'/>
+        <dep name='/etc/rc.d/init.d/cron'/>
+        <dep name='/usr/bin/crontab'/>
+        <dep name='/usr/sbin/cron'/>
+      </provides>
+      <requires>
+        <dep name='syslog'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>vnc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.2r3</version>
+          <release>3</release>
+          <filename>vnc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/Xvnc'/>
+        <dep name='/usr/X11R6/bin/vncpasswd'/>
+        <dep name='/usr/X11R6/bin/vncserver'/>
+        <dep name='/usr/X11R6/bin/vncviewer'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>wdiff</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.5.1</version>
+          <release>3</release>
+          <filename>wdiff.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/cbars'/>
+        <dep name='/usr/bin/wdiff'/>
+      </provides>
+      <requires>
+        <dep name='diffutils'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>webmin</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.744</version>
+          <release>1</release>
+          <filename>webmin.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='webmin-0.744'/>
+        <dep name='/etc/rc.d/init.d/webmin'/>
+        <dep name='/etc/rc.d/rc2.d/S99webmin'/>
+        <dep name='/etc/rc.d/rc3.d/S99webmin'/>
+        <dep name='/etc/rc.d/rc5.d/S99webmin'/>
+        <dep name='/usr/libexec/webmin/acl/delete_user.cgi'/>
+        <dep name='/usr/libexec/webmin/acl/edit_acl.cgi'/>
+        <dep name='/usr/libexec/webmin/acl/edit_user.cgi'/>
+        <dep name='/usr/libexec/webmin/acl/index.cgi'/>
+        <dep name='/usr/libexec/webmin/acl/save_acl.cgi'/>
+        <dep name='/usr/libexec/webmin/acl/save_user.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/change_dir.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/change_files.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/config-macos'/>
+        <dep name='/usr/libexec/webmin/apache/create_dir.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/create_files.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/create_htaccess.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/create_virt.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/delete_htaccess.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/dir_index.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/edit_authgroup.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/edit_authuser.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/edit_defines.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/edit_dir.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/edit_files.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/edit_global.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/edit_gmime_type.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/edit_htaccess.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/edit_virt.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/edit_vserv.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/files_index.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/find_htaccess.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/htaccess.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/htaccess_index.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/index.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/list_authgroups.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/list_authusers.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/reconfig.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/reconfig_form.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/restart.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/save_authgroup.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/save_authuser.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/save_defines.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/save_dir.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/save_files.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/save_global.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/save_gmime_type.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/save_htaccess.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/save_virt.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/save_vserv.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/show_dir.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/show_files.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/show_htaccess.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/show_virt.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/start.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/stop.cgi'/>
+        <dep name='/usr/libexec/webmin/apache/virt_index.cgi'/>
+        <dep name='/usr/libexec/webmin/bind8/config-macos'/>
+        <dep name='/usr/libexec/webmin/bind8/create_forward.cgi'/>
+        <dep name='/usr/libexec/webmin/bind8/create_master.cgi'/>
+        <dep name='/usr/libexec/webmin/bind8/create_slave.cgi'/>
+        <dep name='/usr/libexec/webmin/bind8/delete_zone.cgi'/>
+        <dep name='/usr/libexec/webmin/bind8/dns_boot.cgi'/>
+        <dep name='/usr/libexec/webmin/bind8/edit_forward.cgi'/>
+        <dep name='/usr/libexec/webmin/bind8/edit_master.cgi'/>
+        <dep name='/usr/libexec/webmin/bind8/edit_record.cgi'/>
+        <dep name='/usr/libexec/webmin/bind8/edit_recs.cgi'/>
+        <dep name='/usr/libexec/webmin/bind8/edit_slave.cgi'/>
+        <dep name='/usr/libexec/webmin/bind8/edit_stub.cgi'/>
+        <dep name='/usr/libexec/webmin/bind8/edit_text.cgi'/>
+        <dep name='/usr/libexec/webmin/bind8/forward_form.cgi'/>
+        <dep name='/usr/libexec/webmin/bind8/index.cgi'/>
+        <dep name='/usr/libexec/webmin/bind8/master_form.cgi'/>
+        <dep name='/usr/libexec/webmin/bind8/restart.cgi'/>
+        <dep name='/usr/libexec/webmin/bind8/save_forward.cgi'/>
+        <dep name='/usr/libexec/webmin/bind8/save_master.cgi'/>
+        <dep name='/usr/libexec/webmin/bind8/save_record.cgi'/>
+        <dep name='/usr/libexec/webmin/bind8/save_slave.cgi'/>
+        <dep name='/usr/libexec/webmin/bind8/save_soa.cgi'/>
+        <dep name='/usr/libexec/webmin/bind8/save_text.cgi'/>
+        <dep name='/usr/libexec/webmin/bind8/save_zonedef.cgi'/>
+        <dep name='/usr/libexec/webmin/bind8/slave_form.cgi'/>
+        <dep name='/usr/libexec/webmin/bind8/start.cgi'/>
+        <dep name='/usr/libexec/webmin/bind8/stub_form.cgi'/>
+        <dep name='/usr/libexec/webmin/bsdexports/delete_export.cgi'/>
+        <dep name='/usr/libexec/webmin/bsdexports/edit_export.cgi'/>
+        <dep name='/usr/libexec/webmin/bsdexports/index.cgi'/>
+        <dep name='/usr/libexec/webmin/bsdexports/restart_mountd.cgi'/>
+        <dep name='/usr/libexec/webmin/bsdexports/save_export.cgi'/>
+        <dep name='/usr/libexec/webmin/changepass.pl'/>
+        <dep name='/usr/libexec/webmin/chooser.cgi'/>
+        <dep name='/usr/libexec/webmin/config.cgi'/>
+        <dep name='/usr/libexec/webmin/config_save.cgi'/>
+        <dep name='/usr/libexec/webmin/cron/config-macos'/>
+        <dep name='/usr/libexec/webmin/cron/config-osf1'/>
+        <dep name='/usr/libexec/webmin/cron/cron_editor.pl'/>
+        <dep name='/usr/libexec/webmin/cron/delete_cron.cgi'/>
+        <dep name='/usr/libexec/webmin/cron/edit_allow.cgi'/>
+        <dep name='/usr/libexec/webmin/cron/edit_cron.cgi'/>
+        <dep name='/usr/libexec/webmin/cron/edit_env.cgi'/>
+        <dep name='/usr/libexec/webmin/cron/exec_cron.cgi'/>
+        <dep name='/usr/libexec/webmin/cron/index.cgi'/>
+        <dep name='/usr/libexec/webmin/cron/save_allow.cgi'/>
+        <dep name='/usr/libexec/webmin/cron/save_cron.cgi'/>
+        <dep name='/usr/libexec/webmin/cron/save_env.cgi'/>
+        <dep name='/usr/libexec/webmin/custom/acl_security.pl'/>
+        <dep name='/usr/libexec/webmin/custom/edit_cmd.cgi'/>
+        <dep name='/usr/libexec/webmin/custom/index.cgi'/>
+        <dep name='/usr/libexec/webmin/custom/run.cgi'/>
+        <dep name='/usr/libexec/webmin/custom/save_cmd.cgi'/>
+        <dep name='/usr/libexec/webmin/dfsadmin/delete_share.cgi'/>
+        <dep name='/usr/libexec/webmin/dfsadmin/edit_share.cgi'/>
+        <dep name='/usr/libexec/webmin/dfsadmin/index.cgi'/>
+        <dep name='/usr/libexec/webmin/dfsadmin/restart_sharing.cgi'/>
+        <dep name='/usr/libexec/webmin/dfsadmin/save_share.cgi'/>
+        <dep name='/usr/libexec/webmin/dhcpd/config-debian-linux'/>
+        <dep name='/usr/libexec/webmin/dhcpd/config-freebsd'/>
+        <dep name='/usr/libexec/webmin/dhcpd/config-openserver'/>
+        <dep name='/usr/libexec/webmin/dhcpd/config-osf1'/>
+        <dep name='/usr/libexec/webmin/dhcpd/config-redhat-linux'/>
+        <dep name='/usr/libexec/webmin/dhcpd/config-slackware-linux'/>
+        <dep name='/usr/libexec/webmin/dhcpd/config-solaris'/>
+        <dep name='/usr/libexec/webmin/dhcpd/config-suse-linux'/>
+        <dep name='/usr/libexec/webmin/dhcpd/config-unixware'/>
+        <dep name='/usr/libexec/webmin/dhcpd/edit_group.cgi'/>
+        <dep name='/usr/libexec/webmin/dhcpd/edit_host.cgi'/>
+        <dep name='/usr/libexec/webmin/dhcpd/edit_options.cgi'/>
+        <dep name='/usr/libexec/webmin/dhcpd/edit_shared.cgi'/>
+        <dep name='/usr/libexec/webmin/dhcpd/edit_subnet.cgi'/>
+        <dep name='/usr/libexec/webmin/dhcpd/index.cgi'/>
+        <dep name='/usr/libexec/webmin/dhcpd/list_leases.cgi'/>
+        <dep name='/usr/libexec/webmin/dhcpd/restart.cgi'/>
+        <dep name='/usr/libexec/webmin/dhcpd/save_group.cgi'/>
+        <dep name='/usr/libexec/webmin/dhcpd/save_host.cgi'/>
+        <dep name='/usr/libexec/webmin/dhcpd/save_options.cgi'/>
+        <dep name='/usr/libexec/webmin/dhcpd/save_shared.cgi'/>
+        <dep name='/usr/libexec/webmin/dhcpd/save_subnet.cgi'/>
+        <dep name='/usr/libexec/webmin/dhcpd/start.cgi'/>
+        <dep name='/usr/libexec/webmin/dnsadmin/change_soa.cgi'/>
+        <dep name='/usr/libexec/webmin/dnsadmin/create_master.cgi'/>
+        <dep name='/usr/libexec/webmin/dnsadmin/create_slave.cgi'/>
+        <dep name='/usr/libexec/webmin/dnsadmin/delete_zone.cgi'/>
+        <dep name='/usr/libexec/webmin/dnsadmin/dns_boot.cgi'/>
+        <dep name='/usr/libexec/webmin/dnsadmin/edit_master.cgi'/>
+        <dep name='/usr/libexec/webmin/dnsadmin/edit_record.cgi'/>
+        <dep name='/usr/libexec/webmin/dnsadmin/edit_recs.cgi'/>
+        <dep name='/usr/libexec/webmin/dnsadmin/edit_slave.cgi'/>
+        <dep name='/usr/libexec/webmin/dnsadmin/edit_text.cgi'/>
+        <dep name='/usr/libexec/webmin/dnsadmin/index.cgi'/>
+        <dep name='/usr/libexec/webmin/dnsadmin/master_form.cgi'/>
+        <dep name='/usr/libexec/webmin/dnsadmin/restart.cgi'/>
+        <dep name='/usr/libexec/webmin/dnsadmin/save_master.cgi'/>
+        <dep name='/usr/libexec/webmin/dnsadmin/save_record.cgi'/>
+        <dep name='/usr/libexec/webmin/dnsadmin/save_slave.cgi'/>
+        <dep name='/usr/libexec/webmin/dnsadmin/save_text.cgi'/>
+        <dep name='/usr/libexec/webmin/dnsadmin/save_zonedef.cgi'/>
+        <dep name='/usr/libexec/webmin/dnsadmin/slave_form.cgi'/>
+        <dep name='/usr/libexec/webmin/dnsadmin/start.cgi'/>
+        <dep name='/usr/libexec/webmin/exports/edit_export.cgi'/>
+        <dep name='/usr/libexec/webmin/exports/index.cgi'/>
+        <dep name='/usr/libexec/webmin/exports/restart_mountd.cgi'/>
+        <dep name='/usr/libexec/webmin/exports/save_export.cgi'/>
+        <dep name='/usr/libexec/webmin/fdisk/edit_part.cgi'/>
+        <dep name='/usr/libexec/webmin/fdisk/fsck.cgi'/>
+        <dep name='/usr/libexec/webmin/fdisk/fsck_form.cgi'/>
+        <dep name='/usr/libexec/webmin/fdisk/index.cgi'/>
+        <dep name='/usr/libexec/webmin/fdisk/make_tags.pl'/>
+        <dep name='/usr/libexec/webmin/fdisk/mkfs.cgi'/>
+        <dep name='/usr/libexec/webmin/fdisk/mkfs_form.cgi'/>
+        <dep name='/usr/libexec/webmin/fdisk/reboot.cgi'/>
+        <dep name='/usr/libexec/webmin/fdisk/save_part.cgi'/>
+        <dep name='/usr/libexec/webmin/fdisk/tunefs.cgi'/>
+        <dep name='/usr/libexec/webmin/fdisk/tunefs_form.cgi'/>
+        <dep name='/usr/libexec/webmin/file/BorderPanel.java'/>
+        <dep name='/usr/libexec/webmin/file/LineInputStream.java'/>
+        <dep name='/usr/libexec/webmin/file/chmod.cgi'/>
+        <dep name='/usr/libexec/webmin/file/copy.cgi'/>
+        <dep name='/usr/libexec/webmin/file/delete.cgi'/>
+        <dep name='/usr/libexec/webmin/file/images/binary.gif'/>
+        <dep name='/usr/libexec/webmin/file/images/image.gif'/>
+        <dep name='/usr/libexec/webmin/file/images/run.gif'/>
+        <dep name='/usr/libexec/webmin/file/images/text.gif'/>
+        <dep name='/usr/libexec/webmin/file/images/unknown.gif'/>
+        <dep name='/usr/libexec/webmin/file/index.cgi'/>
+        <dep name='/usr/libexec/webmin/file/list.cgi'/>
+        <dep name='/usr/libexec/webmin/file/makelink.cgi'/>
+        <dep name='/usr/libexec/webmin/file/mkdir.cgi'/>
+        <dep name='/usr/libexec/webmin/file/move.cgi'/>
+        <dep name='/usr/libexec/webmin/file/rename.cgi'/>
+        <dep name='/usr/libexec/webmin/file/root.cgi'/>
+        <dep name='/usr/libexec/webmin/file/save.cgi'/>
+        <dep name='/usr/libexec/webmin/file/show.cgi'/>
+        <dep name='/usr/libexec/webmin/file/upform.cgi'/>
+        <dep name='/usr/libexec/webmin/file/upload.cgi'/>
+        <dep name='/usr/libexec/webmin/format/copy_part_form.cgi'/>
+        <dep name='/usr/libexec/webmin/format/edit_disk.cgi'/>
+        <dep name='/usr/libexec/webmin/format/edit_part.cgi'/>
+        <dep name='/usr/libexec/webmin/format/fsck.cgi'/>
+        <dep name='/usr/libexec/webmin/format/fsck_form.cgi'/>
+        <dep name='/usr/libexec/webmin/format/index.cgi'/>
+        <dep name='/usr/libexec/webmin/format/newfs.cgi'/>
+        <dep name='/usr/libexec/webmin/format/newfs_form.cgi'/>
+        <dep name='/usr/libexec/webmin/format/save_part.cgi'/>
+        <dep name='/usr/libexec/webmin/format/tunefs.cgi'/>
+        <dep name='/usr/libexec/webmin/format/tunefs_form.cgi'/>
+        <dep name='/usr/libexec/webmin/group_chooser.cgi'/>
+        <dep name='/usr/libexec/webmin/help.cgi'/>
+        <dep name='/usr/libexec/webmin/hpuxexports/delete_export.cgi'/>
+        <dep name='/usr/libexec/webmin/hpuxexports/edit_export.cgi'/>
+        <dep name='/usr/libexec/webmin/hpuxexports/index.cgi'/>
+        <dep name='/usr/libexec/webmin/hpuxexports/restart_exporting.cgi'/>
+        <dep name='/usr/libexec/webmin/hpuxexports/save_export.cgi'/>
+        <dep name='/usr/libexec/webmin/images/binary.gif'/>
+        <dep name='/usr/libexec/webmin/images/image.gif'/>
+        <dep name='/usr/libexec/webmin/images/text.gif'/>
+        <dep name='/usr/libexec/webmin/images/unknown.gif'/>
+        <dep name='/usr/libexec/webmin/index.cgi'/>
+        <dep name='/usr/libexec/webmin/inetd/config-macos'/>
+        <dep name='/usr/libexec/webmin/inetd/delete_rpc.cgi'/>
+        <dep name='/usr/libexec/webmin/inetd/delete_serv.cgi'/>
+        <dep name='/usr/libexec/webmin/inetd/edit_rpc.cgi'/>
+        <dep name='/usr/libexec/webmin/inetd/edit_serv.cgi'/>
+        <dep name='/usr/libexec/webmin/inetd/index.cgi'/>
+        <dep name='/usr/libexec/webmin/inetd/restart_inetd.cgi'/>
+        <dep name='/usr/libexec/webmin/inetd/save_rpc.cgi'/>
+        <dep name='/usr/libexec/webmin/inetd/save_serv.cgi'/>
+        <dep name='/usr/libexec/webmin/init/atboot.pl'/>
+        <dep name='/usr/libexec/webmin/init/config-debian-linux'/>
+        <dep name='/usr/libexec/webmin/init/config-hpux'/>
+        <dep name='/usr/libexec/webmin/init/config-openserver'/>
+        <dep name='/usr/libexec/webmin/init/config-redhat-linux'/>
+        <dep name='/usr/libexec/webmin/init/config-slackware-linux'/>
+        <dep name='/usr/libexec/webmin/init/config-solaris'/>
+        <dep name='/usr/libexec/webmin/init/config-suse-linux'/>
+        <dep name='/usr/libexec/webmin/init/config-unixware'/>
+        <dep name='/usr/libexec/webmin/init/config.info'/>
+        <dep name='/usr/libexec/webmin/init/delboot.pl'/>
+        <dep name='/usr/libexec/webmin/init/delete_action.cgi'/>
+        <dep name='/usr/libexec/webmin/init/edit_action.cgi'/>
+        <dep name='/usr/libexec/webmin/init/fix_action.cgi'/>
+        <dep name='/usr/libexec/webmin/init/help.html'/>
+        <dep name='/usr/libexec/webmin/init/index.cgi'/>
+        <dep name='/usr/libexec/webmin/init/init-lib.pl'/>
+        <dep name='/usr/libexec/webmin/init/module.info'/>
+        <dep name='/usr/libexec/webmin/init/proc.html'/>
+        <dep name='/usr/libexec/webmin/init/reboot.cgi'/>
+        <dep name='/usr/libexec/webmin/init/save_action.cgi'/>
+        <dep name='/usr/libexec/webmin/init/save_local.cgi'/>
+        <dep name='/usr/libexec/webmin/init/shutdown.cgi'/>
+        <dep name='/usr/libexec/webmin/init/start_stop.cgi'/>
+        <dep name='/usr/libexec/webmin/lilo/apply.cgi'/>
+        <dep name='/usr/libexec/webmin/lilo/config'/>
+        <dep name='/usr/libexec/webmin/lilo/edit_global.cgi'/>
+        <dep name='/usr/libexec/webmin/lilo/edit_image.cgi'/>
+        <dep name='/usr/libexec/webmin/lilo/edit_other.cgi'/>
+        <dep name='/usr/libexec/webmin/lilo/images/image.gif'/>
+        <dep name='/usr/libexec/webmin/lilo/images/other.gif'/>
+        <dep name='/usr/libexec/webmin/lilo/index.cgi'/>
+        <dep name='/usr/libexec/webmin/lilo/save_global.cgi'/>
+        <dep name='/usr/libexec/webmin/lilo/save_image.cgi'/>
+        <dep name='/usr/libexec/webmin/lilo/save_other.cgi'/>
+        <dep name='/usr/libexec/webmin/logout.cgi'/>
+        <dep name='/usr/libexec/webmin/lpadmin/cancel_job.cgi'/>
+        <dep name='/usr/libexec/webmin/lpadmin/config-debian-linux'/>
+        <dep name='/usr/libexec/webmin/lpadmin/config-macos'/>
+        <dep name='/usr/libexec/webmin/lpadmin/config-redhat-linux'/>
+        <dep name='/usr/libexec/webmin/lpadmin/config-slackware-linux'/>
+        <dep name='/usr/libexec/webmin/lpadmin/config-suse-linux'/>
+        <dep name='/usr/libexec/webmin/lpadmin/delete_printer.cgi'/>
+        <dep name='/usr/libexec/webmin/lpadmin/edit_printer.cgi'/>
+        <dep name='/usr/libexec/webmin/lpadmin/index.cgi'/>
+        <dep name='/usr/libexec/webmin/lpadmin/list_jobs.cgi'/>
+        <dep name='/usr/libexec/webmin/lpadmin/save_printer.cgi'/>
+        <dep name='/usr/libexec/webmin/lpadmin/sortdrivers.pl'/>
+        <dep name='/usr/libexec/webmin/lpadmin/start.cgi'/>
+        <dep name='/usr/libexec/webmin/lpadmin/stop.cgi'/>
+        <dep name='/usr/libexec/webmin/majordomo/alias_setup.cgi'/>
+        <dep name='/usr/libexec/webmin/majordomo/create_form.cgi'/>
+        <dep name='/usr/libexec/webmin/majordomo/create_list.cgi'/>
+        <dep name='/usr/libexec/webmin/majordomo/delete_list.cgi'/>
+        <dep name='/usr/libexec/webmin/majordomo/edit_access.cgi'/>
+        <dep name='/usr/libexec/webmin/majordomo/edit_global.cgi'/>
+        <dep name='/usr/libexec/webmin/majordomo/edit_head.cgi'/>
+        <dep name='/usr/libexec/webmin/majordomo/edit_info.cgi'/>
+        <dep name='/usr/libexec/webmin/majordomo/edit_list.cgi'/>
+        <dep name='/usr/libexec/webmin/majordomo/edit_members.cgi'/>
+        <dep name='/usr/libexec/webmin/majordomo/edit_mesg.cgi'/>
+        <dep name='/usr/libexec/webmin/majordomo/edit_misc.cgi'/>
+        <dep name='/usr/libexec/webmin/majordomo/edit_subs.cgi'/>
+        <dep name='/usr/libexec/webmin/majordomo/index.cgi'/>
+        <dep name='/usr/libexec/webmin/majordomo/save_access.cgi'/>
+        <dep name='/usr/libexec/webmin/majordomo/save_auto.cgi'/>
+        <dep name='/usr/libexec/webmin/majordomo/save_global.cgi'/>
+        <dep name='/usr/libexec/webmin/majordomo/save_head.cgi'/>
+        <dep name='/usr/libexec/webmin/majordomo/save_info.cgi'/>
+        <dep name='/usr/libexec/webmin/majordomo/save_members.cgi'/>
+        <dep name='/usr/libexec/webmin/majordomo/save_mesg.cgi'/>
+        <dep name='/usr/libexec/webmin/majordomo/save_misc.cgi'/>
+        <dep name='/usr/libexec/webmin/majordomo/save_subs.cgi'/>
+        <dep name='/usr/libexec/webmin/mime.types'/>
+        <dep name='/usr/libexec/webmin/miniserv.pl'/>
+        <dep name='/usr/libexec/webmin/mount/config-osf1'/>
+        <dep name='/usr/libexec/webmin/mount/create_swap.cgi'/>
+        <dep name='/usr/libexec/webmin/mount/debian-linux-lib.pl'/>
+        <dep name='/usr/libexec/webmin/mount/edit_mount.cgi'/>
+        <dep name='/usr/libexec/webmin/mount/freebsd-lib.pl'/>
+        <dep name='/usr/libexec/webmin/mount/freebsd-mounts'/>
+        <dep name='/usr/libexec/webmin/mount/index.cgi'/>
+        <dep name='/usr/libexec/webmin/mount/linux-lib.pl'/>
+        <dep name='/usr/libexec/webmin/mount/nfs_export.cgi'/>
+        <dep name='/usr/libexec/webmin/mount/nfs_server.cgi'/>
+        <dep name='/usr/libexec/webmin/mount/open-linux-lib.pl'/>
+        <dep name='/usr/libexec/webmin/mount/redhat-linux-lib.pl'/>
+        <dep name='/usr/libexec/webmin/mount/save_mount.cgi'/>
+        <dep name='/usr/libexec/webmin/mount/slackware-linux-lib.pl'/>
+        <dep name='/usr/libexec/webmin/mount/smb_server.cgi'/>
+        <dep name='/usr/libexec/webmin/mount/smb_share.cgi'/>
+        <dep name='/usr/libexec/webmin/mount/suse-linux-lib.pl'/>
+        <dep name='/usr/libexec/webmin/mount/umount.cgi'/>
+        <dep name='/usr/libexec/webmin/mount/unixware-lib.pl'/>
+        <dep name='/usr/libexec/webmin/net/edit_aifc.cgi'/>
+        <dep name='/usr/libexec/webmin/net/edit_bifc.cgi'/>
+        <dep name='/usr/libexec/webmin/net/edit_dns.cgi'/>
+        <dep name='/usr/libexec/webmin/net/edit_host.cgi'/>
+        <dep name='/usr/libexec/webmin/net/index.cgi'/>
+        <dep name='/usr/libexec/webmin/net/list_hosts.cgi'/>
+        <dep name='/usr/libexec/webmin/net/list_ifcs.cgi'/>
+        <dep name='/usr/libexec/webmin/net/list_routes.cgi'/>
+        <dep name='/usr/libexec/webmin/net/save_aifc.cgi'/>
+        <dep name='/usr/libexec/webmin/net/save_bifc.cgi'/>
+        <dep name='/usr/libexec/webmin/net/save_dns.cgi'/>
+        <dep name='/usr/libexec/webmin/net/save_host.cgi'/>
+        <dep name='/usr/libexec/webmin/net/save_routes.cgi'/>
+        <dep name='/usr/libexec/webmin/newmods.pl'/>
+        <dep name='/usr/libexec/webmin/pap/edit_secret.cgi'/>
+        <dep name='/usr/libexec/webmin/pap/index.cgi'/>
+        <dep name='/usr/libexec/webmin/pap/save_secret.cgi'/>
+        <dep name='/usr/libexec/webmin/pap/save_sync.cgi'/>
+        <dep name='/usr/libexec/webmin/proc/config-macos'/>
+        <dep name='/usr/libexec/webmin/proc/config-osf1'/>
+        <dep name='/usr/libexec/webmin/proc/edit_proc.cgi'/>
+        <dep name='/usr/libexec/webmin/proc/foo.cgi'/>
+        <dep name='/usr/libexec/webmin/proc/index.cgi'/>
+        <dep name='/usr/libexec/webmin/proc/index_cpu.cgi'/>
+        <dep name='/usr/libexec/webmin/proc/index_run.cgi'/>
+        <dep name='/usr/libexec/webmin/proc/index_search.cgi'/>
+        <dep name='/usr/libexec/webmin/proc/index_size.cgi'/>
+        <dep name='/usr/libexec/webmin/proc/index_tree.cgi'/>
+        <dep name='/usr/libexec/webmin/proc/index_user.cgi'/>
+        <dep name='/usr/libexec/webmin/proc/kill_proc.cgi'/>
+        <dep name='/usr/libexec/webmin/proc/kill_proc_list.cgi'/>
+        <dep name='/usr/libexec/webmin/proc/renice_proc.cgi'/>
+        <dep name='/usr/libexec/webmin/proc/run.cgi'/>
+        <dep name='/usr/libexec/webmin/quota/activate.cgi'/>
+        <dep name='/usr/libexec/webmin/quota/check_quotas.cgi'/>
+        <dep name='/usr/libexec/webmin/quota/copy_group.cgi'/>
+        <dep name='/usr/libexec/webmin/quota/copy_group_form.cgi'/>
+        <dep name='/usr/libexec/webmin/quota/copy_user.cgi'/>
+        <dep name='/usr/libexec/webmin/quota/copy_user_form.cgi'/>
+        <dep name='/usr/libexec/webmin/quota/edgrace.pl'/>
+        <dep name='/usr/libexec/webmin/quota/edit_group_quota.cgi'/>
+        <dep name='/usr/libexec/webmin/quota/edit_user_quota.cgi'/>
+        <dep name='/usr/libexec/webmin/quota/edquota.pl'/>
+        <dep name='/usr/libexec/webmin/quota/group_filesys.cgi'/>
+        <dep name='/usr/libexec/webmin/quota/group_grace_form.cgi'/>
+        <dep name='/usr/libexec/webmin/quota/group_grace_save.cgi'/>
+        <dep name='/usr/libexec/webmin/quota/index.cgi'/>
+        <dep name='/usr/libexec/webmin/quota/list_groups.cgi'/>
+        <dep name='/usr/libexec/webmin/quota/list_users.cgi'/>
+        <dep name='/usr/libexec/webmin/quota/module.info'/>
+        <dep name='/usr/libexec/webmin/quota/notes'/>
+        <dep name='/usr/libexec/webmin/quota/quota-lib.pl'/>
+        <dep name='/usr/libexec/webmin/quota/save_group_quota.cgi'/>
+        <dep name='/usr/libexec/webmin/quota/save_sync.cgi'/>
+        <dep name='/usr/libexec/webmin/quota/save_user_quota.cgi'/>
+        <dep name='/usr/libexec/webmin/quota/solaris-lib.pl'/>
+        <dep name='/usr/libexec/webmin/quota/unixware-lib.pl'/>
+        <dep name='/usr/libexec/webmin/quota/user_filesys.cgi'/>
+        <dep name='/usr/libexec/webmin/quota/user_grace_form.cgi'/>
+        <dep name='/usr/libexec/webmin/quota/user_grace_save.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/ask_epass.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/conf_misc.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/conf_net.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/conf_pass.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/conf_print.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/conf_smb.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/create_copy.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/delete_euser.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/delete_share.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/edit_epass.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/edit_euser.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/edit_fmisc.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/edit_fname.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/edit_fperm.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/edit_fshare.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/edit_popts.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/edit_pshare.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/edit_sec.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/edit_sync.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/index.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/kill_user.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/make_epass.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/save_copy.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/save_euser.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/save_fmisc.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/save_fname.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/save_fperm.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/save_fshare.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/save_misc.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/save_net.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/save_pass.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/save_popts.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/save_print.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/save_pshare.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/save_sec.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/save_smb.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/save_sync.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/start_samba.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/swat.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/swat_save.cgi'/>
+        <dep name='/usr/libexec/webmin/samba/view_users.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/config-macos'/>
+        <dep name='/usr/libexec/webmin/sendmail/del_mailq.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/edit_access.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/edit_alias.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/edit_domain.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/edit_generic.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/edit_mailer.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/edit_virtuser.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/flushq.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/index.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/list_access.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/list_aliases.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/list_cgs.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/list_cws.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/list_domains.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/list_generics.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/list_mailers.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/list_mailq.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/list_masq.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/list_opts.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/list_relay.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/list_trusts.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/list_virtusers.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/save_access.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/save_alias.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/save_cgs.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/save_cws.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/save_domain.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/save_generic.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/save_mailer.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/save_masq.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/save_opts.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/save_relay.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/save_trusts.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/save_virtuser.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/start.cgi'/>
+        <dep name='/usr/libexec/webmin/sendmail/stop.cgi'/>
+        <dep name='/usr/libexec/webmin/servers/edit_serv.cgi'/>
+        <dep name='/usr/libexec/webmin/servers/index.cgi'/>
+        <dep name='/usr/libexec/webmin/servers/link.cgi'/>
+        <dep name='/usr/libexec/webmin/servers/save_serv.cgi'/>
+        <dep name='/usr/libexec/webmin/setup.sh'/>
+        <dep name='/usr/libexec/webmin/software/close.cgi'/>
+        <dep name='/usr/libexec/webmin/software/closeall.cgi'/>
+        <dep name='/usr/libexec/webmin/software/delete_file.cgi'/>
+        <dep name='/usr/libexec/webmin/software/delete_pack.cgi'/>
+        <dep name='/usr/libexec/webmin/software/do_install.cgi'/>
+        <dep name='/usr/libexec/webmin/software/edit_pack.cgi'/>
+        <dep name='/usr/libexec/webmin/software/file_info.cgi'/>
+        <dep name='/usr/libexec/webmin/software/images/pack.gif'/>
+        <dep name='/usr/libexec/webmin/software/index.cgi'/>
+        <dep name='/usr/libexec/webmin/software/install_pack.cgi'/>
+        <dep name='/usr/libexec/webmin/software/list_pack.cgi'/>
+        <dep name='/usr/libexec/webmin/software/open.cgi'/>
+        <dep name='/usr/libexec/webmin/software/openall.cgi'/>
+        <dep name='/usr/libexec/webmin/software/search.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/acl.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/acl_save.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/cachemgr.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/chown.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/clear.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/edit_acl.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/edit_admin.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/edit_auth.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/edit_cache.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/edit_cache_host.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/edit_icp.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/edit_logs.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/edit_mem.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/edit_misc.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/edit_ports.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/edit_progs.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/edit_user.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/http_access.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/http_access_save.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/icp_access.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/icp_access_save.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/index.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/init_cache.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/move_http.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/move_icp.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/restart.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/save_admin.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/save_auth.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/save_cache.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/save_cache_host.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/save_icp.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/save_logs.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/save_mem.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/save_misc.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/save_ports.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/save_progs.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/save_user.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/start.cgi'/>
+        <dep name='/usr/libexec/webmin/squid/stop.cgi'/>
+        <dep name='/usr/libexec/webmin/telnet/index.cgi'/>
+        <dep name='/usr/libexec/webmin/user_chooser.cgi'/>
+        <dep name='/usr/libexec/webmin/useradmin/delete_group.cgi'/>
+        <dep name='/usr/libexec/webmin/useradmin/delete_user.cgi'/>
+        <dep name='/usr/libexec/webmin/useradmin/edit_group.cgi'/>
+        <dep name='/usr/libexec/webmin/useradmin/edit_user.cgi'/>
+        <dep name='/usr/libexec/webmin/useradmin/index.cgi'/>
+        <dep name='/usr/libexec/webmin/useradmin/list_logins.cgi'/>
+        <dep name='/usr/libexec/webmin/useradmin/save_group.cgi'/>
+        <dep name='/usr/libexec/webmin/useradmin/save_user.cgi'/>
+        <dep name='/usr/libexec/webmin/useradmin/search_user.cgi'/>
+        <dep name='/usr/libexec/webmin/web-lib.pl'/>
+        <dep name='/usr/libexec/webmin/webmin-init'/>
+        <dep name='/usr/libexec/webmin/webmin/change_access.cgi'/>
+        <dep name='/usr/libexec/webmin/webmin/change_bind.cgi'/>
+        <dep name='/usr/libexec/webmin/webmin/change_colours.cgi'/>
+        <dep name='/usr/libexec/webmin/webmin/change_lang.cgi'/>
+        <dep name='/usr/libexec/webmin/webmin/change_log.cgi'/>
+        <dep name='/usr/libexec/webmin/webmin/change_os.cgi'/>
+        <dep name='/usr/libexec/webmin/webmin/change_proxy.cgi'/>
+        <dep name='/usr/libexec/webmin/webmin/change_ssl.cgi'/>
+        <dep name='/usr/libexec/webmin/webmin/clone_mod.cgi'/>
+        <dep name='/usr/libexec/webmin/webmin/delete_mod.cgi'/>
+        <dep name='/usr/libexec/webmin/webmin/edit_access.cgi'/>
+        <dep name='/usr/libexec/webmin/webmin/edit_bind.cgi'/>
+        <dep name='/usr/libexec/webmin/webmin/edit_colours.cgi'/>
+        <dep name='/usr/libexec/webmin/webmin/edit_lang.cgi'/>
+        <dep name='/usr/libexec/webmin/webmin/edit_log.cgi'/>
+        <dep name='/usr/libexec/webmin/webmin/edit_mods.cgi'/>
+        <dep name='/usr/libexec/webmin/webmin/edit_os.cgi'/>
+        <dep name='/usr/libexec/webmin/webmin/edit_proxy.cgi'/>
+        <dep name='/usr/libexec/webmin/webmin/edit_ssl.cgi'/>
+        <dep name='/usr/libexec/webmin/webmin/index.cgi'/>
+        <dep name='/usr/libexec/webmin/webmin/install_mod.cgi'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>webmin-ldap</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.74</version>
+          <release>1</release>
+          <filename>webmin-ldap.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='webmin-ldap-0.74'/>
+        <dep name='/usr/libexec/webmin/ldap/auth.cgi'/>
+        <dep name='/usr/libexec/webmin/ldap/browser.cgi'/>
+        <dep name='/usr/libexec/webmin/ldap/close.cgi'/>
+        <dep name='/usr/libexec/webmin/ldap/create.cgi'/>
+        <dep name='/usr/libexec/webmin/ldap/create2.cgi'/>
+        <dep name='/usr/libexec/webmin/ldap/create3.cgi'/>
+        <dep name='/usr/libexec/webmin/ldap/delete.cgi'/>
+        <dep name='/usr/libexec/webmin/ldap/delete2.cgi'/>
+        <dep name='/usr/libexec/webmin/ldap/details.cgi'/>
+        <dep name='/usr/libexec/webmin/ldap/details2.cgi'/>
+        <dep name='/usr/libexec/webmin/ldap/hpux-lib.pl'/>
+        <dep name='/usr/libexec/webmin/ldap/index.cgi'/>
+        <dep name='/usr/libexec/webmin/ldap/ldap-lib.pl'/>
+        <dep name='/usr/libexec/webmin/ldap/ldapcl-lib.pl'/>
+        <dep name='/usr/libexec/webmin/ldap/mclose.cgi'/>
+        <dep name='/usr/libexec/webmin/ldap/mopen.cgi'/>
+        <dep name='/usr/libexec/webmin/ldap/move.cgi'/>
+        <dep name='/usr/libexec/webmin/ldap/open.cgi'/>
+        <dep name='/usr/libexec/webmin/ldap/search.cgi'/>
+        <dep name='/usr/libexec/webmin/ldap/target.cgi'/>
+      </provides>
+      <requires>
+        <dep name='webmin-0.74'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>wget</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.5.3</version>
+          <release>1</release>
+          <filename>wget.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/rmold'/>
+        <dep name='/usr/bin/wget'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>which</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>3</release>
+          <filename>which.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/which'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>whois</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.4BSD</version>
+          <release>1</release>
+          <filename>whois.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/whois'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>wine</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>990804</version>
+          <release>1</release>
+          <filename>wine.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libwine.so'/>
+        <dep name='/usr/X11R6/bin/dosmod'/>
+        <dep name='/usr/X11R6/bin/wine'/>
+        <dep name='/usr/X11R6/bin/wine.bin'/>
+        <dep name='/usr/X11R6/bin/winesetup'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libMesaGL.so.3'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXpm.so.4'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libwine.so'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>wnn</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2</version>
+          <release>3</release>
+          <filename>wnn.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>wnn-cwnn</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2</version>
+          <release>3</release>
+          <filename>wnn-cwnn.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/libexec/cWnn42/catod'/>
+        <dep name='/usr/libexec/cWnn42/catof'/>
+        <dep name='/usr/libexec/cWnn42/cdicsort'/>
+        <dep name='/usr/libexec/cWnn42/cdtoa'/>
+        <dep name='/usr/libexec/cWnn42/cserver'/>
+        <dep name='/usr/libexec/cWnn42/cwddel'/>
+        <dep name='/usr/libexec/cWnn42/cwdreg'/>
+        <dep name='/usr/libexec/cWnn42/cwnnkill'/>
+        <dep name='/usr/libexec/cWnn42/cwnnstat'/>
+        <dep name='/usr/libexec/cWnn42/cwnntouch'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>wnn-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2</version>
+          <release>3</release>
+          <filename>wnn-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>wnn-jwnn</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2</version>
+          <release>3</release>
+          <filename>wnn-jwnn.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/libexec/jWnn42/atod'/>
+        <dep name='/usr/libexec/jWnn42/atof'/>
+        <dep name='/usr/libexec/jWnn42/dicsort'/>
+        <dep name='/usr/libexec/jWnn42/dtoa'/>
+        <dep name='/usr/libexec/jWnn42/jserver'/>
+        <dep name='/usr/libexec/jWnn42/wddel'/>
+        <dep name='/usr/libexec/jWnn42/wdreg'/>
+        <dep name='/usr/libexec/jWnn42/wnnkill'/>
+        <dep name='/usr/libexec/jWnn42/wnnstat'/>
+        <dep name='/usr/libexec/jWnn42/wnntouch'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>wnn-kwnn</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2</version>
+          <release>3</release>
+          <filename>wnn-kwnn.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/libexec/kWnn42/katod'/>
+        <dep name='/usr/libexec/kWnn42/katof'/>
+        <dep name='/usr/libexec/kWnn42/kdicsort'/>
+        <dep name='/usr/libexec/kWnn42/kdtoa'/>
+        <dep name='/usr/libexec/kWnn42/kserver'/>
+        <dep name='/usr/libexec/kWnn42/kwddel'/>
+        <dep name='/usr/libexec/kWnn42/kwdreg'/>
+        <dep name='/usr/libexec/kWnn42/kwnnkill'/>
+        <dep name='/usr/libexec/kWnn42/kwnnstat'/>
+        <dep name='/usr/libexec/kWnn42/kwnntouch'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>wnn-twnn</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2</version>
+          <release>3</release>
+          <filename>wnn-twnn.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/libexec/tWnn42/tatod'/>
+        <dep name='/usr/libexec/tWnn42/tatof'/>
+        <dep name='/usr/libexec/tWnn42/tdicsort'/>
+        <dep name='/usr/libexec/tWnn42/tdtoa'/>
+        <dep name='/usr/libexec/tWnn42/tserver'/>
+        <dep name='/usr/libexec/tWnn42/twddel'/>
+        <dep name='/usr/libexec/tWnn42/twdreg'/>
+        <dep name='/usr/libexec/tWnn42/twnnkill'/>
+        <dep name='/usr/libexec/tWnn42/twnnstat'/>
+        <dep name='/usr/libexec/tWnn42/twnntouch'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>words</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2</version>
+          <release>3</release>
+          <filename>words.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/doc/words-2/README.linux.words'/>
+        <dep name='/usr/doc/words-2/README2.linux.words'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>wu-ftpd</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.5.0</version>
+          <release>4</release>
+          <filename>wu-ftpd.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='ftpd'/>
+        <dep name='/usr/bin/ftpcount'/>
+        <dep name='/usr/bin/ftpshut'/>
+        <dep name='/usr/bin/ftpwho'/>
+        <dep name='/usr/sbin/in.ftpd'/>
+        <dep name='/usr/sbin/xferstats'/>
+      </provides>
+      <requires>
+        <dep name='tcp_wrappers'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libpam.so.0'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+      <conflicts>
+        <dep name='linux-ftpd'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>x3270</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.1.1.7</version>
+          <release>3</release>
+          <filename>x3270.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/x3270'/>
+      </provides>
+      <requires>
+        <dep name='/usr/X11R6/bin/mkfontdir'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXaw.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>xanim</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.80.1</version>
+          <release>1</release>
+          <filename>xanim.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/xanim'/>
+        <dep name='/usr/X11R6/lib/xanim/vid_cvid_2.0_linuxELFx86g21.xa'/>
+        <dep name='/usr/X11R6/lib/xanim/vid_cyuv_1.0_linuxELFx86g21.xa'/>
+        <dep name='/usr/X11R6/lib/xanim/vid_h261_1.0_linuxELFx86g21.xa'/>
+        <dep name='/usr/X11R6/lib/xanim/vid_h263_1.0_linuxELFx86g21.xa'/>
+        <dep name='/usr/X11R6/lib/xanim/vid_iv32_2.1_linuxELFx86g21.xa'/>
+        <dep name='/usr/X11R6/lib/xanim/vid_iv41_1.0_linuxELFx86g21.xa'/>
+        <dep name='/usr/X11R6/lib/xanim/vid_iv50_1.0_linuxELFx86g21.xa'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libz.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>Xaw-3dlook</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.5</version>
+          <release>2</release>
+          <filename>Xaw-3dlook.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libXaw.so.6'/>
+        <dep name='/usr/X11R6/bin/3dlook'/>
+        <dep name='/usr/X11R6/lib/libXaw.so.6.1Xaw3d'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>Xaw3d</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.5</version>
+          <release>2</release>
+          <filename>Xaw3d.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libXaw3d.so.6'/>
+        <dep name='/usr/X11R6/lib/libXaw3d.so.6.1'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>Xaw3d-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.5</version>
+          <release>2</release>
+          <filename>Xaw3d-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='Xaw3d-devel' op='=' version='1.5'/>
+      </requires>
+    </package>
+    <package>
+      <name>Xaw3d-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.5</version>
+          <release>2</release>
+          <filename>Xaw3d-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/lib/libXaw3d.so'/>
+      </provides>
+      <requires>
+        <dep name='Xaw3d' op='=' version='1.5'/>
+      </requires>
+    </package>
+    <package>
+      <name>xawtv</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.46</version>
+          <release>4</release>
+          <filename>xawtv.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/fbtv'/>
+        <dep name='/usr/X11R6/bin/radio'/>
+        <dep name='/usr/X11R6/bin/set-tv'/>
+        <dep name='/usr/X11R6/bin/streamer'/>
+        <dep name='/usr/X11R6/bin/v4l-conf'/>
+        <dep name='/usr/X11R6/bin/xawtv'/>
+        <dep name='/usr/X11R6/bin/xawtv-remote'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXaw3d.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libjpeg.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>Xbae</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.6.2</version>
+          <release>4</release>
+          <filename>Xbae.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libXbae.so.6'/>
+        <dep name='/usr/X11R6/lib/libXbae.so.6'/>
+        <dep name='/usr/X11R6/lib/libXbae.so.6.2'/>
+      </provides>
+      <requires>
+        <dep name='/sbin/ldconfig'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>Xbae-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.6.2</version>
+          <release>4</release>
+          <filename>Xbae-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>Xbae-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.6.2</version>
+          <release>4</release>
+          <filename>Xbae-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/lib/libXbae.so'/>
+      </provides>
+    </package>
+    <package>
+      <name>xboard</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.0.2</version>
+          <release>2</release>
+          <filename>xboard.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/cmail'/>
+        <dep name='/usr/X11R6/bin/pxboard'/>
+        <dep name='/usr/X11R6/bin/xboard'/>
+        <dep name='/usr/X11R6/bin/zic2xpm'/>
+        <dep name='/usr/doc/xboard-4.0.2/ChangeLog'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXaw.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXpm.so.4'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>xcdroast</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.96e</version>
+          <release>4</release>
+          <filename>xcdroast.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/xcdroast'/>
+        <dep name='/usr/X11R6/lib/xcdroast-0.96e/bin/cdrecord-1.6.1'/>
+        <dep name='/usr/X11R6/lib/xcdroast-0.96e/bin/isodetect'/>
+        <dep name='/usr/X11R6/lib/xcdroast-0.96e/bin/isoinfo'/>
+        <dep name='/usr/X11R6/lib/xcdroast-0.96e/bin/isosize'/>
+        <dep name='/usr/X11R6/lib/xcdroast-0.96e/bin/mycmp'/>
+        <dep name='/usr/X11R6/lib/xcdroast-0.96e/bin/mydd'/>
+        <dep name='/usr/X11R6/lib/xcdroast-0.96e/bin/mymkisofs-1.12b4'/>
+        <dep name='/usr/X11R6/lib/xcdroast-0.96e/bin/playcdda'/>
+        <dep name='/usr/X11R6/lib/xcdroast-0.96e/bin/readcdda'/>
+        <dep name='/usr/doc/xcdroast-0.96e/MAKEDEVICES.sh'/>
+      </provides>
+      <requires>
+        <dep name='tcl' op='&gt;=' version='8.0'/>
+        <dep name='tk' op='&gt;=' version='8.0'/>
+        <dep name='tix' op='&gt;=' version='4.1'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libtcl8.0.so'/>
+        <dep name='libtix4.1.8.0.so'/>
+        <dep name='libtk8.0.so'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>xcolorsel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1a</version>
+          <release>5</release>
+          <filename>xcolorsel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/xcolorsel'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXaw.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>xearth</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>6</release>
+          <filename>xearth.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/xearth'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>xemacs-auctex</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>20.4</version>
+          <release>7</release>
+          <filename>xemacs-auctex.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>xemacs-base</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>20.4</version>
+          <release>7</release>
+          <filename>xemacs-base.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/etags'/>
+        <dep name='/usr/bin/gnuattach'/>
+        <dep name='/usr/bin/gnuclient'/>
+        <dep name='/usr/bin/gnudoit'/>
+        <dep name='/usr/bin/install-sid'/>
+        <dep name='/usr/bin/rcs-checkin'/>
+        <dep name='/usr/bin/xemacs'/>
+        <dep name='/usr/bin/xemacs-20.4'/>
+        <dep name='/usr/lib/xemacs-20.4/etc/xemacs-fe.sh'/>
+        <dep name='/usr/lib/xemacs-20.4/i386-Caldera-linux'/>
+        <dep name='/usr/libexec/xemacs-20.4/add-big-package.sh'/>
+        <dep name='/usr/libexec/xemacs-20.4/add-little-package.sh'/>
+        <dep name='/usr/libexec/xemacs-20.4/cvtmail'/>
+        <dep name='/usr/libexec/xemacs-20.4/digest-doc'/>
+        <dep name='/usr/libexec/xemacs-20.4/fakemail'/>
+        <dep name='/usr/libexec/xemacs-20.4/gnuserv'/>
+        <dep name='/usr/libexec/xemacs-20.4/gzip-el.sh'/>
+        <dep name='/usr/libexec/xemacs-20.4/hexl'/>
+        <dep name='/usr/libexec/xemacs-20.4/install-sid'/>
+        <dep name='/usr/libexec/xemacs-20.4/make-docfile'/>
+        <dep name='/usr/libexec/xemacs-20.4/make-path'/>
+        <dep name='/usr/libexec/xemacs-20.4/mmencode'/>
+        <dep name='/usr/libexec/xemacs-20.4/movemail'/>
+        <dep name='/usr/libexec/xemacs-20.4/profile'/>
+        <dep name='/usr/libexec/xemacs-20.4/rcs2log'/>
+        <dep name='/usr/libexec/xemacs-20.4/send-pr'/>
+        <dep name='/usr/libexec/xemacs-20.4/sorted-doc'/>
+        <dep name='/usr/libexec/xemacs-20.4/tm-au'/>
+        <dep name='/usr/libexec/xemacs-20.4/tm-file'/>
+        <dep name='/usr/libexec/xemacs-20.4/tm-html'/>
+        <dep name='/usr/libexec/xemacs-20.4/tm-image'/>
+        <dep name='/usr/libexec/xemacs-20.4/tm-mpeg'/>
+        <dep name='/usr/libexec/xemacs-20.4/tm-plain'/>
+        <dep name='/usr/libexec/xemacs-20.4/tm-ps'/>
+        <dep name='/usr/libexec/xemacs-20.4/tmdecode'/>
+        <dep name='/usr/libexec/xemacs-20.4/vcdiff'/>
+        <dep name='/usr/libexec/xemacs-20.4/wakeup'/>
+        <dep name='/usr/libexec/xemacs-20.4/yow'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXaw.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXpm.so.4'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdb.so.3'/>
+        <dep name='libgdbm.so.2'/>
+        <dep name='libgpm.so.1'/>
+        <dep name='libjpeg.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libpng.so.1'/>
+        <dep name='libz.so.1'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>xemacs-calc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>20.4</version>
+          <release>7</release>
+          <filename>xemacs-calc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>xemacs-emul</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>20.4</version>
+          <release>7</release>
+          <filename>xemacs-emul.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>xemacs-emacs-link</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>20.4</version>
+          <release>7</release>
+          <filename>xemacs-emacs-link.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/emacs'/>
+      </provides>
+    </package>
+    <package>
+      <name>xemacs-icons</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>20.4</version>
+          <release>7</release>
+          <filename>xemacs-icons.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>xemacs-lispsource</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>20.4</version>
+          <release>7</release>
+          <filename>xemacs-lispsource.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>xemacs-lispprog</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>20.4</version>
+          <release>7</release>
+          <filename>xemacs-lispprog.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>xemacs-mule</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>20.4</version>
+          <release>7</release>
+          <filename>xemacs-mule.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/b2m'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdb.so.3'/>
+        <dep name='libgdbm.so.2'/>
+        <dep name='libgpm.so.1'/>
+        <dep name='libm.so.6'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>xemacs-modes</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>20.4</version>
+          <release>7</release>
+          <filename>xemacs-modes.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>xemacs-mailnews</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>20.4</version>
+          <release>7</release>
+          <filename>xemacs-mailnews.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/lib/xemacs-20.4/lisp/vm/make-autoloads'/>
+      </provides>
+    </package>
+    <package>
+      <name>xemacs-packages</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>20.4</version>
+          <release>7</release>
+          <filename>xemacs-packages.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>xemacs-sgmldocs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>20.4</version>
+          <release>7</release>
+          <filename>xemacs-sgmldocs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>xemacs-www</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>20.4</version>
+          <release>7</release>
+          <filename>xemacs-www.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>xfig</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.2.2</version>
+          <release>2</release>
+          <filename>xfig.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/xfig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Buildings/barrack.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Buildings/highrise1.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Buildings/highrise2.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Buildings/office.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Buildings/twostory.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Buildings/twostory_front.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Computers/desktop1.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Computers/desktop2.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Computers/desktop3.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Computers/desktop4.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Computers/film_digitizer.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Computers/high_speed_disk.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Computers/laptop.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Computers/printer.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Computers/scanner.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Computers/scanner2.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Computers/tapedrive.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Computers/telephone.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Computers/terminal.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Computers/tower1.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Computers/tower2.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Computers/tower3.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Physical/conn_db15.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Physical/conn_db25.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Physical/conn_db9.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Physical/conn_molex_4pin.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Physical/conn_molex_5pin.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Physical/conn_molex_6pin.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Physical/dip_08pin.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Physical/dip_14pin.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Physical/dip_16pin.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Physical/dip_18pin.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Physical/dip_20pin.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Physical/dip_24pin.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Physical/dip_28pin.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Physical/dip_40pin.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Physical/fuse_holder.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Physical/fuse_holder2.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Physical/led_digit.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Physical/receptacle_female.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Physical/receptacle_male.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Physical/reed_relay.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Physical/terminal_block.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/battery.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/capacitor.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/circle_large.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/circle_med.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/circle_small.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/coil.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/crystal.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/current_source.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/diamond.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/diamond_large.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/diamond_large_fill.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/diamond_med.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/diamond_med_fill.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/diamond_small.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/diamond_small_fill.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/diode.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/dot_large.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/dot_med.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/dot_small.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/fet1.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/fet2.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/frame_ground.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/fuse.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/fuse2.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/ground.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/heater.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/inductor.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/led.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/logic_ground.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/mov.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/npn.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/opamp.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/plug_socket.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/pnp.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/pushbutton_nc.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/pushbutton_no.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/relay.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/resistor.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/sine.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/switch_spdt.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/switch_spst.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/thermostat.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/transformer.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/transformer_ironcore.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/triac.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/var_resistor.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/var_resistor2.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/zener.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Electrical/Schematic/zener2.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/arrow_down.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/arrow_left.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/arrow_open_left.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/arrow_open_right.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/arrow_right.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/arrow_up.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/collate.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/comment_annotation.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/communication_link.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/connector.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/core.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/decision.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/display.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/document.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/extract.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/initialization.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/inputoutput.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/magnetic_disk.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/magnetic_tape.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/manual_input.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/manual_operator.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/merge.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/offline_storage.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/offpage_connector.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/online_storage.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/predefined_process.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/process.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/punched_card.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/sort.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Flowchart/terminal_interrupt.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Hospital/centrifuge.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Hospital/display.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Hospital/dual_display.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Hospital/ekg.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Hospital/film_digitizer.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Hospital/microscope.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Hospital/monitor.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Hospital/stethsoscope.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Hospital/ultrasound.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/circle_large.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/circle_med.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/circle_small.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/diamond_large.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/diamond_large_fill.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/diamond_med.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/diamond_med_fill.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/diamond_small.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/diamond_small_fill.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/dot_large.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/dot_med.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/dot_small.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/gate_and.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/gate_and3.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/gate_inverter.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/gate_inverter_schmidt.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/gate_nand.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/gate_nand3.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/gate_nand_schmidt.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/gate_neg_in_or.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/gate_neg_in_or3.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/gate_nor.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/gate_nor3.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/gate_or.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/gate_or3.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/gate_xor.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/ground.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/ic_1-8_demux.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/ic_74165.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/ic_74HC139.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/ic_74HC244.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/ic_74HC4040.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/ic_74LS138.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/ic_AC161.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/ic_DAC0800LCN.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/ic_HC595.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/ic_d_flipflop.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/ic_jk_flipflop.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/ic_oneshot.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Logic/logic_ground.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Music/eighth-tie.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Music/eighth.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Music/fermata.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Music/flat.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Music/half-dotted-down.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Music/half-dotted-up.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Music/half-down.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Music/half-up.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Music/natural.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Music/quarter-dotted-down.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Music/quarter-dotted-up.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Music/quarter-down.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Music/quarter-up.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Music/sharp.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Music/sixteenth-tie.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Music/sixteenth.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Music/staff.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Music/treble_clef.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Music/treble_staff.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Music/whole-dotted.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Music/whole.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Networks/at+t_emmi.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Networks/concentrator1.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Networks/concentrator2.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Networks/concentrator3.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Networks/ether_switch.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Networks/forerunner_asx100.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Networks/gdc_apex.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Networks/hub1.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Networks/imux.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Networks/microwave1.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Networks/microwave2.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Networks/mmedia_explorer.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Networks/rack.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Networks/rack2.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Networks/router.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Networks/smux6000.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Networks/switching_hub.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Networks/synoptics_latticell.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Networks/transceiver1.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Networks/transceiver2.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/Libraries/Networks/transceiver3.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/accelerators.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/authors.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/command-panel.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/drawing-mode.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/editing-mode.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/faq.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/features_bugs.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/fig-format.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/i18n.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/3dhouse-small.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/3dhouse.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/a-umlaut.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/add-arrow-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/add-arrow-button.gif.bak'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/add-point-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/align-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/angle-geom-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/angle-geom-latex-line.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/angle-geom-latex-vector.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/angle-geom-manhattan.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/angle-geom-mountain.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/angle-geom-mounthattan.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/angle-geom-unrestricted.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/anybrowser3.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/arc-box-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/arc-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/arc-examples.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/arc-type-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/arc-type-open.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/arc-type-pie-wedge.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/arrow-closed.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/arrow-indented.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/arrow-mode-backward.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/arrow-mode-both.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/arrow-mode-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/arrow-mode-forward.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/arrow-mode-none.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/arrow-open.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/arrow-pointed.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/arrow-size-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/arrow-size-image.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/arrow-size-panel.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/arrow-type-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/arrow-types.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/balloons-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/balloons-example.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/blueball.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/blueballdot.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/blueramp.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/box-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/box-curve-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/break-compound-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/c-cedilla.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/cap-style-butt.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/cap-style-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/cap-style-example.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/cap-style-projecting.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/cap-style-round.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/circle-diam-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/circle-example.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/circle-rad-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/closed-approx-spline-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/closed-interp-spline-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/cmd-accel.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/color-panel.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/copy-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/delete-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/delete-point-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/depth-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/drawedit-accel.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/edit-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/edit-panel-picture.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/edit-panel-polyline.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/edit-panel-text.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/edit-point-panel.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/ellipse-diam-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/ellipse-example.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/ellipse-rad-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/exclaim.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/export-panel.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/file-panel.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/fill-color-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/fill-style-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/fill-style-panel.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/flip-horiz-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/flip-vert-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/glue-compound-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/goldline.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/greenball.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/greenpig.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/greenpig_sm.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/grid-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/horiz-align-abut-edge.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/horiz-align-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/horiz-align-center-even.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/horiz-align-center.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/horiz-align-edge-even.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/horiz-align-left.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/horiz-align-none.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/horiz-align-right.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/house_col576x369.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/image_browse.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/join-style-bevel.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/join-style-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/join-style-example.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/join-style-miter.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/join-style-round.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/korean-text.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/latin1-chars.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/library-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/library_panel.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/line-style-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/line-style-panel.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/line-width-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/mouse-function-indicator.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/move-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/move-point-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/num-copies-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/num-sides-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/num-x-copies-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/num-y-copies-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/open-approx-spline-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/open-compound-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/open-compound-button.gif.bak'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/open-interp-spline-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/pen-color-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/pict-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/pict-info.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/pict-japanese.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/pict-new.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/point-position-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/polygon-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/polyline-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/polyline-example.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/print-panel.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/pull-down.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/redball.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/redballdot.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/regular-polygon-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/rotate-angle-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/rotate-ccw-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/rotate-cw-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/ruler.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/scale-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/screen-image-small.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/screen-image.fig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/screen-image.fig.bak'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/screen-image.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/search-text-panel.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/show-lengths.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/smart-link-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/smart-link-move.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/smart-link-off.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/smart-link-slide.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/splash.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/spline-curves.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/spline-examples.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/spline-line-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/spline-sf-example.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/sun-meta-key.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/text-angle-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/text-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/text-flags-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/text-flags-panel.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/text-font-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/text-font-panel-latex.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/text-font-panel.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/text-justify-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/text-justify-center.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/text-justify-left.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/text-justify-right.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/text-size-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/text-step-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/transit.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/transit_sm.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/unit-box.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/unit-box.gif.orig'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/unit-panel.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/update-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/update-control.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/update-control.gif.bak'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/valid_html.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/vertical-align-abut-edge.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/vertical-align-bottom.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/vertical-align-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/vertical-align-center-even.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/vertical-align-center.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/vertical-align-edge-even.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/vertical-align-none.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/vertical-align-top.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/window2-small.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/window2.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/xfig-title.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/xfighelp.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/xim-off-the-spot.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/xim-over-the-spot.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/xim-root.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/zoom-button.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/images/zoom-panel.gif'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/index.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/indicator-panel.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/installation.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/introduction.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/japanese/accelerators.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/japanese/authors.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/japanese/command-panel.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/japanese/drawing-mode.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/japanese/editing-mode.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/japanese/faq.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/japanese/features_bugs.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/japanese/fig-format.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/japanese/i18n.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/japanese/index.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/japanese/indicator-panel.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/japanese/installation.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/japanese/introduction.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/japanese/japanese.ps'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/japanese/misc-panel.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/japanese/options.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/misc-panel.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/html/options.html'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/xfig-howto.pdf'/>
+        <dep name='/usr/X11R6/lib/X11/xfig/xfig.pdf'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXaw.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXpm.so.4'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libjpeg.so.6'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>xfig-examples</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.2.2</version>
+          <release>2</release>
+          <filename>xfig-examples.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/lib/xfig/Examples/3dhouse.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/8-bit.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/aircraft.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/airflow.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/antennas.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/arithmetic.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/arrows.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/balance.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/bath.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/bedroom1.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/bedroom2.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/breadboard.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/bugs.gif'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/cassette.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/circuit.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/clipart.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/ctrlbox_lay.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/ctrlbox_sch.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/damper.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/deltat.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/dresser.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/experiment.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/filenames.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/flow.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/flowchart.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/gold.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/greek.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/greenpig.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/house.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/houseA.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/houseB.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/houseC.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/houseD.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/house_elev.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/housecheck.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/icebergs.jpg'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/illusion.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/lidar.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/linuxlogo.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/lists.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/logic.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/logo.eps'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/logo.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/musicnotes.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/network.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/orifices.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/patterns.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/pictures.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/ps-foil.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/ps-schematic.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/pumpkin.xbm'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/recycle.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/rfxc.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/roundboxes.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/roundboxes2.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/schemat.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/shades.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/snake4.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/sowpig.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/teapot.xpm'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/thermal.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/transit.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/watch.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/window1.fig'/>
+        <dep name='/usr/X11R6/lib/xfig/Examples/window2.fig'/>
+      </provides>
+    </package>
+    <package>
+      <name>xforms</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.88</version>
+          <release>2</release>
+          <filename>xforms.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libforms.so.0.88'/>
+        <dep name='/usr/X11R6/lib/libforms.so.0.88'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>xforms-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.88</version>
+          <release>2</release>
+          <filename>xforms-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/lib/libforms.a'/>
+      </provides>
+      <requires>
+        <dep name='xforms-devel' op='=' version='0.88'/>
+      </requires>
+    </package>
+    <package>
+      <name>xforms-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.88</version>
+          <release>2</release>
+          <filename>xforms-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/fdesign'/>
+        <dep name='/usr/X11R6/lib/libforms.so'/>
+      </provides>
+      <requires>
+        <dep name='xforms' op='=' version='0.88'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-xterm</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-xterm.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/xterm'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXaw.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-xsm</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-xsm.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/rstart'/>
+        <dep name='/usr/X11R6/bin/sessreg'/>
+        <dep name='/usr/X11R6/bin/smproxy'/>
+        <dep name='/usr/X11R6/bin/xsm'/>
+        <dep name='/usr/X11R6/lib/X11/rstart/commands/ListContexts'/>
+        <dep name='/usr/X11R6/lib/X11/rstart/commands/ListGenericCommands'/>
+        <dep name='/usr/X11R6/lib/X11/rstart/commands/x11r6/LoadMonitor'/>
+        <dep name='/usr/X11R6/lib/X11/rstart/commands/x11r6/Terminal'/>
+        <dep name='/usr/X11R6/lib/X11/rstart/rstartd.real'/>
+        <dep name='/usr/X11R6/lib/X11/xsm'/>
+        <dep name='/usr/bin/rstartd'/>
+      </provides>
+      <requires>
+        <dep name='XFree86-config' op='=' version='3.3.5'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXaw.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-xdm</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-xdm.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/chooser'/>
+        <dep name='/usr/X11R6/bin/xdm'/>
+        <dep name='/usr/X11R6/lib/X11/xdm'/>
+      </provides>
+      <requires>
+        <dep name='XFree86-config' op='=' version='3.3.5'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXaw.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-twm</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-twm.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/twm'/>
+        <dep name='/usr/X11R6/lib/X11/twm'/>
+      </provides>
+      <requires>
+        <dep name='XFree86-config' op='=' version='3.3.5'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-setup</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-setup.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/XF86Setup'/>
+        <dep name='/usr/X11R6/bin/xmseconfig'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXaw.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-server-modules</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-server-modules.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='pex5.so'/>
+        <dep name='xf86AceCad.so'/>
+        <dep name='xf86Calcomp.so'/>
+        <dep name='xf86Dial.so'/>
+        <dep name='xf86Dyna.so'/>
+        <dep name='xf86Elo.so'/>
+        <dep name='xf86MuTouch.so'/>
+        <dep name='xf86Summa.so'/>
+        <dep name='xf86Wacom.so'/>
+        <dep name='xie.so'/>
+        <dep name='/usr/X11R6/lib/modules/pex5.so'/>
+        <dep name='/usr/X11R6/lib/modules/xf86AceCad.so'/>
+        <dep name='/usr/X11R6/lib/modules/xf86Calcomp.so'/>
+        <dep name='/usr/X11R6/lib/modules/xf86Dial.so'/>
+        <dep name='/usr/X11R6/lib/modules/xf86Dyna.so'/>
+        <dep name='/usr/X11R6/lib/modules/xf86Elo.so'/>
+        <dep name='/usr/X11R6/lib/modules/xf86MuTouch.so'/>
+        <dep name='/usr/X11R6/lib/modules/xf86Summa.so'/>
+        <dep name='/usr/X11R6/lib/modules/xf86Wacom.so'/>
+        <dep name='/usr/X11R6/lib/modules/xie.so'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-server-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-server-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>XFree86-server</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-server.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/SuperProbe'/>
+        <dep name='/usr/X11R6/bin/Xwrapper'/>
+        <dep name='/usr/X11R6/bin/reconfig'/>
+        <dep name='/usr/X11R6/bin/scanpci'/>
+        <dep name='/usr/X11R6/bin/xf86config'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-programs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-programs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/appres'/>
+        <dep name='/usr/X11R6/bin/beforelight'/>
+        <dep name='/usr/X11R6/bin/resize'/>
+        <dep name='/usr/X11R6/bin/xclipboard'/>
+        <dep name='/usr/X11R6/bin/xclock'/>
+        <dep name='/usr/X11R6/bin/xconsole'/>
+        <dep name='/usr/X11R6/bin/xlsfonts'/>
+        <dep name='/usr/X11R6/bin/xmag'/>
+        <dep name='/usr/X11R6/bin/xsetroot'/>
+        <dep name='/usr/X11R6/bin/xwd'/>
+        <dep name='/usr/X11R6/bin/xwud'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXaw.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-misc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.3</version>
+          <release>2</release>
+          <filename>XFree86-misc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/fsshowfont'/>
+        <dep name='/usr/X11R6/bin/ico'/>
+        <dep name='/usr/X11R6/bin/listres'/>
+        <dep name='/usr/X11R6/bin/viewres'/>
+        <dep name='/usr/X11R6/bin/xditview'/>
+        <dep name='/usr/X11R6/bin/xedit'/>
+        <dep name='/usr/X11R6/bin/xev'/>
+        <dep name='/usr/X11R6/bin/xeyes'/>
+        <dep name='/usr/X11R6/bin/xfontsel'/>
+        <dep name='/usr/X11R6/bin/xgc'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXaw.so.6'/>
+        <dep name='libXaw3d.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libpthread.so.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-libs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-libs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libICE.so.6'/>
+        <dep name='libPEX5.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXIE.so.6'/>
+        <dep name='libXaw.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXi.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXp.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libXtst.so.6'/>
+        <dep name='/usr/X11R6/lib/libICE.so.6.3'/>
+        <dep name='/usr/X11R6/lib/libPEX5.so.6.0'/>
+        <dep name='/usr/X11R6/lib/libSM.so.6.0'/>
+        <dep name='/usr/X11R6/lib/libX11.so.6.1'/>
+        <dep name='/usr/X11R6/lib/libXIE.so.6.0'/>
+        <dep name='/usr/X11R6/lib/libXaw.so.6.1'/>
+        <dep name='/usr/X11R6/lib/libXext.so.6.3'/>
+        <dep name='/usr/X11R6/lib/libXi.so.6.0'/>
+        <dep name='/usr/X11R6/lib/libXmu.so.6.0'/>
+        <dep name='/usr/X11R6/lib/libXp.so.6.2'/>
+        <dep name='/usr/X11R6/lib/libXt.so.6.0'/>
+        <dep name='/usr/X11R6/lib/libXtst.so.6.1'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-imake</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-imake.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/gccmakedep'/>
+        <dep name='/usr/X11R6/bin/imake'/>
+        <dep name='/usr/X11R6/bin/lndir'/>
+        <dep name='/usr/X11R6/bin/makedepend'/>
+        <dep name='/usr/X11R6/bin/makeg'/>
+        <dep name='/usr/X11R6/bin/mergelib'/>
+        <dep name='/usr/X11R6/bin/mkdirhier'/>
+        <dep name='/usr/X11R6/bin/xmkmf'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-fontserver</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-fontserver.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/fsinfo'/>
+        <dep name='/usr/X11R6/bin/fslsfonts'/>
+        <dep name='/usr/X11R6/bin/fstobdf'/>
+        <dep name='/usr/X11R6/bin/xfs'/>
+        <dep name='/usr/X11R6/lib/X11/fs'/>
+      </provides>
+      <requires>
+        <dep name='XFree86-config' op='=' version='3.3.5'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-fonts-scale</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.4</version>
+          <release>1</release>
+          <filename>XFree86-fonts-scale.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>XFree86-fonts-extra</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.4</version>
+          <release>1</release>
+          <filename>XFree86-fonts-extra.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-fonts-cyrillic</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.4</version>
+          <release>1</release>
+          <filename>XFree86-fonts-cyrillic.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>XFree86-fonts-75dpi</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.4</version>
+          <release>1</release>
+          <filename>XFree86-fonts-75dpi.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>XFree86-fonts</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.4</version>
+          <release>1</release>
+          <filename>XFree86-fonts.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-fonts-100dpi</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.4</version>
+          <release>1</release>
+          <filename>XFree86-fonts-100dpi.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>XFree86-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='XFree86-devel'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-devel-prof</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-devel-prof.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='XFree86-devel'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/editres'/>
+        <dep name='/usr/X11R6/lib/libICE.so'/>
+        <dep name='/usr/X11R6/lib/libPEX5.so'/>
+        <dep name='/usr/X11R6/lib/libSM.so'/>
+        <dep name='/usr/X11R6/lib/libX11.so'/>
+        <dep name='/usr/X11R6/lib/libXIE.so'/>
+        <dep name='/usr/X11R6/lib/libXaw.so'/>
+        <dep name='/usr/X11R6/lib/libXext.so'/>
+        <dep name='/usr/X11R6/lib/libXi.so'/>
+        <dep name='/usr/X11R6/lib/libXmu.so'/>
+        <dep name='/usr/X11R6/lib/libXp.so'/>
+        <dep name='/usr/X11R6/lib/libXt.so'/>
+        <dep name='/usr/X11R6/lib/libXtst.so'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXaw.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-contrib</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.3</version>
+          <release>2</release>
+          <filename>XFree86-contrib.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/xbiff'/>
+        <dep name='/usr/X11R6/bin/xcalc'/>
+        <dep name='/usr/X11R6/bin/xload'/>
+        <dep name='/usr/X11R6/bin/xman'/>
+        <dep name='/usr/X11R6/bin/xmessage'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXaw.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-config-eg</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-config-eg.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/X11/xdm/GiveConsole.example'/>
+        <dep name='/etc/X11/xdm/TakeConsole.example'/>
+        <dep name='/etc/X11/xdm/Xsession.example'/>
+        <dep name='/etc/X11/xdm/Xsetup_0.example'/>
+        <dep name='/usr/X11R6/bin/startx.example'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-config</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.4</version>
+          <release>1</release>
+          <filename>XFree86-config.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/X11/wmconfig/xinitrc.old'/>
+        <dep name='/etc/X11/wmconfig/xsessionrc.old'/>
+        <dep name='/etc/X11/xdm/GiveConsole'/>
+        <dep name='/etc/X11/xdm/TakeConsole'/>
+        <dep name='/etc/X11/xdm/Xsession'/>
+        <dep name='/etc/X11/xdm/Xsetup_0'/>
+        <dep name='/etc/X11/xinit/xinitrc'/>
+        <dep name='/etc/X11/xinit/xserverrc'/>
+        <dep name='/usr/X11R6/bin/startx'/>
+      </provides>
+      <requires>
+        <dep name='/bin/bash'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-addons</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-addons.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/Xmark'/>
+        <dep name='/usr/X11R6/bin/atobm'/>
+        <dep name='/usr/X11R6/bin/bdftopcf'/>
+        <dep name='/usr/X11R6/bin/bitmap'/>
+        <dep name='/usr/X11R6/bin/bmtoa'/>
+        <dep name='/usr/X11R6/bin/dga'/>
+        <dep name='/usr/X11R6/bin/iceauth'/>
+        <dep name='/usr/X11R6/bin/lbxproxy'/>
+        <dep name='/usr/X11R6/bin/proxymngr'/>
+        <dep name='/usr/X11R6/bin/setxkbmap'/>
+        <dep name='/usr/X11R6/bin/showrgb'/>
+        <dep name='/usr/X11R6/bin/x11perf'/>
+        <dep name='/usr/X11R6/bin/x11perfcomp'/>
+        <dep name='/usr/X11R6/bin/xcmsdb'/>
+        <dep name='/usr/X11R6/bin/xcutsel'/>
+        <dep name='/usr/X11R6/bin/xfd'/>
+        <dep name='/usr/X11R6/bin/xfindproxy'/>
+        <dep name='/usr/X11R6/bin/xfwp'/>
+        <dep name='/usr/X11R6/bin/xieperf'/>
+        <dep name='/usr/X11R6/bin/xkbbell'/>
+        <dep name='/usr/X11R6/bin/xkbcomp'/>
+        <dep name='/usr/X11R6/bin/xkbevd'/>
+        <dep name='/usr/X11R6/bin/xkbprint'/>
+        <dep name='/usr/X11R6/bin/xkbvleds'/>
+        <dep name='/usr/X11R6/bin/xkbwatch'/>
+        <dep name='/usr/X11R6/bin/xkill'/>
+        <dep name='/usr/X11R6/bin/xlogo'/>
+        <dep name='/usr/X11R6/bin/xlsatoms'/>
+        <dep name='/usr/X11R6/bin/xlsclients'/>
+        <dep name='/usr/X11R6/bin/xmh'/>
+        <dep name='/usr/X11R6/bin/xon'/>
+        <dep name='/usr/X11R6/bin/xprop'/>
+        <dep name='/usr/X11R6/bin/xrefresh'/>
+        <dep name='/usr/X11R6/bin/xrx'/>
+        <dep name='/usr/X11R6/bin/xsetmode'/>
+        <dep name='/usr/X11R6/bin/xsetpointer'/>
+        <dep name='/usr/X11R6/bin/xwininfo'/>
+        <dep name='/usr/X11R6/lib/X11/x11perfcomp/fillblnk'/>
+        <dep name='/usr/X11R6/lib/X11/x11perfcomp/perfboth'/>
+        <dep name='/usr/X11R6/lib/X11/x11perfcomp/perfratio'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXIE.so.6'/>
+        <dep name='libXaw.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXi.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-Xvfb</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-Xvfb.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/Xvfb'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-Xprt</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-Xprt.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/Xprt'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-Xnest</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-Xnest.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/Xnest'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-W32</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-W32.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='XServer'/>
+        <dep name='/usr/X11R6/bin/XF86_W32'/>
+      </provides>
+      <requires>
+        <dep name='XFree86-server' op='=' version='3.3.5'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-VGA16</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-VGA16.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='XServer'/>
+        <dep name='/usr/X11R6/bin/XF86_VGA16'/>
+      </provides>
+      <requires>
+        <dep name='XFree86-server' op='=' version='3.3.5'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-SVGA</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-SVGA.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='XServer'/>
+        <dep name='/usr/X11R6/bin/XF86_SVGA'/>
+      </provides>
+      <requires>
+        <dep name='XFree86-server' op='=' version='3.3.5'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-S3V</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-S3V.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='XServer'/>
+        <dep name='/usr/X11R6/bin/XF86_S3V'/>
+      </provides>
+      <requires>
+        <dep name='XFree86-server' op='=' version='3.3.5'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-S3</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-S3.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='XServer'/>
+        <dep name='/usr/X11R6/bin/XF86_S3'/>
+      </provides>
+      <requires>
+        <dep name='XFree86-server' op='=' version='3.3.5'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-P9000</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-P9000.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='XServer'/>
+        <dep name='/usr/X11R6/bin/XF86_P9000'/>
+      </provides>
+      <requires>
+        <dep name='XFree86-server' op='=' version='3.3.5'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-Mono</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-Mono.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='XServer'/>
+        <dep name='/usr/X11R6/bin/XF86_Mono'/>
+      </provides>
+      <requires>
+        <dep name='XFree86-server' op='=' version='3.3.5'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-Mach8</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-Mach8.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='XServer'/>
+        <dep name='/usr/X11R6/bin/XF86_Mach8'/>
+      </provides>
+      <requires>
+        <dep name='XFree86-server' op='=' version='3.3.5'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-Mach64</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-Mach64.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='XServer'/>
+        <dep name='/usr/X11R6/bin/XF86_Mach64'/>
+      </provides>
+      <requires>
+        <dep name='XFree86-server' op='=' version='3.3.5'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-Mach32</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-Mach32.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='XServer'/>
+        <dep name='/usr/X11R6/bin/XF86_Mach32'/>
+      </provides>
+      <requires>
+        <dep name='XFree86-server' op='=' version='3.3.5'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-IBM8514</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-IBM8514.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='XServer'/>
+        <dep name='/usr/X11R6/bin/XF86_8514'/>
+      </provides>
+      <requires>
+        <dep name='XFree86-server' op='=' version='3.3.5'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-I128</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-I128.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='XServer'/>
+        <dep name='/usr/X11R6/bin/XF86_I128'/>
+      </provides>
+      <requires>
+        <dep name='XFree86-server' op='=' version='3.3.5'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-FBDev</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-FBDev.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='XServer'/>
+        <dep name='/usr/X11R6/bin/XF86_FBDev'/>
+      </provides>
+      <requires>
+        <dep name='XFree86-server' op='=' version='3.3.5'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-AGX</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-AGX.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='XServer'/>
+        <dep name='/usr/X11R6/bin/XF86_AGX'/>
+      </provides>
+      <requires>
+        <dep name='XFree86-server' op='=' version='3.3.5'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86-3DLabs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86-3DLabs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='XServer'/>
+        <dep name='/usr/X11R6/bin/XF86_3DLabs'/>
+      </provides>
+      <requires>
+        <dep name='XFree86-server' op='=' version='3.3.5'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>XFree86</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3.5</version>
+          <release>1</release>
+          <filename>XFree86.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/mkfontdir'/>
+        <dep name='/usr/X11R6/bin/xauth'/>
+        <dep name='/usr/X11R6/bin/xdpyinfo'/>
+        <dep name='/usr/X11R6/bin/xhost'/>
+        <dep name='/usr/X11R6/bin/xinit'/>
+        <dep name='/usr/X11R6/bin/xmodmap'/>
+        <dep name='/usr/X11R6/bin/xrdb'/>
+        <dep name='/usr/X11R6/bin/xset'/>
+        <dep name='/usr/X11R6/bin/xstdcmap'/>
+        <dep name='/usr/X11R6/bin/xvidtune'/>
+        <dep name='/usr/X11R6/lib/X11/xinit'/>
+        <dep name='/usr/X11R6/lib/X11/xkb/xkbcomp'/>
+        <dep name='/usr/bin/X11'/>
+        <dep name='/usr/include/X11'/>
+        <dep name='/usr/lib/X11'/>
+        <dep name='/usr/man/X11'/>
+      </provides>
+      <requires>
+        <dep name='XFree86-config' op='=' version='3.3.5'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXIE.so.6'/>
+        <dep name='libXaw.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXi.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libXtst.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>xmbase-grok</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.4.1</version>
+          <release>3</release>
+          <filename>xmbase-grok.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/grok'/>
+        <dep name='/usr/X11R6/lib/X11/grokdir/biblio.mktex.pl'/>
+        <dep name='/usr/X11R6/lib/X11/grokdir/procdemo'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXp.so.6'/>
+        <dep name='libXpm.so.4'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>xmgr</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.1.2</version>
+          <release>2</release>
+          <filename>xmgr.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/xmgr'/>
+        <dep name='/usr/X11R6/lib/X11/xmgr/auxiliary/fdf2fit'/>
+        <dep name='/usr/X11R6/lib/X11/xmgr/examples/dotest'/>
+      </provides>
+      <requires>
+        <dep name='lynx'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXbae.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXmu.so.6'/>
+        <dep name='libXp.so.6'/>
+        <dep name='libXpm.so.4'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>xntp</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.5.93e</version>
+          <release>4</release>
+          <filename>xntp.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/etc/rc.d/init.d/ntp'/>
+        <dep name='/usr/bin/ntpq'/>
+        <dep name='/usr/bin/ntptrace'/>
+        <dep name='/usr/bin/xntpdc'/>
+        <dep name='/usr/sbin/ntpdate'/>
+        <dep name='/usr/sbin/tickadj'/>
+        <dep name='/usr/sbin/xntpd'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>xpdf</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.7</version>
+          <release>1</release>
+          <filename>xpdf.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/pdftops'/>
+        <dep name='/usr/bin/pdftotext'/>
+        <dep name='/usr/bin/xpdf'/>
+        <dep name='/usr/man/man1/pdftops.1.gz'/>
+        <dep name='/usr/man/man1/pdftotext.1.gz'/>
+        <dep name='/usr/man/man1/xpdf.1.gz'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXpm.so.4'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>xpm</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.11</version>
+          <release>1</release>
+          <filename>xpm.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libXpm.so.4'/>
+        <dep name='/usr/X11R6/lib/libXpm.so.4.11'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>xpm-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.11</version>
+          <release>1</release>
+          <filename>xpm-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>xpm-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.11</version>
+          <release>1</release>
+          <filename>xpm-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/sxpm'/>
+        <dep name='/usr/X11R6/lib/libXpm.so'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libXpm.so.4'/>
+        <dep name='libXt.so.6'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>xselection</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.6</version>
+          <release>2</release>
+          <filename>xselection.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/xselection'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>xterm-color</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>4</release>
+          <filename>xterm-color.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/ansi-xterm'/>
+        <dep name='/usr/X11R6/bin/color-xterm'/>
+        <dep name='/usr/X11R6/bin/xterm-color'/>
+      </provides>
+      <requires>
+        <dep name='XFree86-xterm'/>
+        <dep name='/bin/sh'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>xtoolwait</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.2</version>
+          <release>1</release>
+          <filename>xtoolwait.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/xtoolwait'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libXext.so.6'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>xv</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.10a</version>
+          <release>8</release>
+          <filename>xv.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/bggen'/>
+        <dep name='/usr/X11R6/bin/vdcomp'/>
+        <dep name='/usr/X11R6/bin/xcmap'/>
+        <dep name='/usr/X11R6/bin/xv'/>
+        <dep name='/usr/X11R6/bin/xvpictoppm'/>
+        <dep name='/usr/man/man1/bggen.1.gz'/>
+        <dep name='/usr/man/man1/vdcomp.1.gz'/>
+        <dep name='/usr/man/man1/xcmap.1.gz'/>
+        <dep name='/usr/man/man1/xv.1.gz'/>
+        <dep name='/usr/man/man1/xvp2p.1.gz'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libjpeg.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libpng.so.1'/>
+        <dep name='libtiff.so.3'/>
+        <dep name='libz.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>xwatch</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.10</version>
+          <release>4</release>
+          <filename>xwatch.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/X11R6/bin/xwatch'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libforms.so.0.88'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>ytalk</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.1</version>
+          <release>2</release>
+          <filename>ytalk.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/ytalk'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libICE.so.6'/>
+        <dep name='libSM.so.6'/>
+        <dep name='libX11.so.6'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>zip</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2</version>
+          <release>1</release>
+          <filename>zip.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/zip'/>
+        <dep name='/usr/bin/zipcloak'/>
+        <dep name='/usr/bin/zipnote'/>
+        <dep name='/usr/bin/zipsplit'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>zoneinfo</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1999d</version>
+          <release>1</release>
+          <filename>zoneinfo.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/sbin/zdump'/>
+        <dep name='/usr/sbin/zic'/>
+        <dep name='/usr/share/zoneinfo/localtime'/>
+        <dep name='/usr/share/zoneinfo/posixrules'/>
+        <dep name='/usr/share/zoneinfo/posixtime'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>zoo</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.10</version>
+          <release>3</release>
+          <filename>zoo.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/fiz'/>
+        <dep name='/usr/bin/zoo'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>zsh</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.1.5</version>
+          <release>1</release>
+          <filename>zsh.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/zsh'/>
+        <dep name='/usr/lib/zsh/acx'/>
+        <dep name='/usr/lib/zsh/c2z'/>
+        <dep name='/usr/lib/zsh/cat'/>
+        <dep name='/usr/lib/zsh/cdmatch'/>
+        <dep name='/usr/lib/zsh/cdmatch2'/>
+        <dep name='/usr/lib/zsh/checkmail'/>
+        <dep name='/usr/lib/zsh/cx'/>
+        <dep name='/usr/lib/zsh/harden'/>
+        <dep name='/usr/lib/zsh/lete2ctl'/>
+        <dep name='/usr/lib/zsh/mere'/>
+        <dep name='/usr/lib/zsh/multicomp'/>
+        <dep name='/usr/lib/zsh/proto'/>
+        <dep name='/usr/lib/zsh/pushd'/>
+        <dep name='/usr/lib/zsh/randline'/>
+        <dep name='/usr/lib/zsh/reporter'/>
+        <dep name='/usr/lib/zsh/run-help'/>
+        <dep name='/usr/lib/zsh/yp'/>
+        <dep name='/usr/lib/zsh/yu'/>
+        <dep name='/usr/lib/zsh/zed'/>
+        <dep name='/usr/lib/zsh/zlogin-dist'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='/bin/sh'/>
+        <dep name='/bin/zsh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>zsh-doc-html</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.1.5</version>
+          <release>1</release>
+          <filename>zsh-doc-html.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-system.err b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-system.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-system.out b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-system.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-05reallive-system.xml b/zypp/solver/testsuite/deptestomatic/exercise-05reallive-system.xml
new file mode 100644 (file)
index 0000000..a71e2b6
--- /dev/null
@@ -0,0 +1,1978 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>ncurses</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2</version>
+          <release>1</release>
+          <filename>ncurses.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='curses'/>
+        <dep name='libform.so.4'/>
+        <dep name='libmenu.so.4'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libpanel.so.4'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>ld.so</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.9.9</version>
+          <release>2</release>
+          <filename>ld.so.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/sbin/ldconfig'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>lisa</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.1</version>
+          <release>0</release>
+          <filename>lisa.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>procmail</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.10</version>
+          <release>8</release>
+          <filename>procmail.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>DEV</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.3</version>
+          <release>0</release>
+          <filename>DEV.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>tcsh</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>6.08.00</version>
+          <release>1</release>
+          <filename>tcsh.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='/usr/bin/perl'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libcrypt.so.1'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>patch</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.5</version>
+          <release>1</release>
+          <filename>patch.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>libz</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0.2</version>
+          <release>1</release>
+          <filename>libz.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libz.so.1'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>SysVinit-scripts</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.04</version>
+          <release>0</release>
+          <filename>SysVinit-scripts.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='SysVinit' op='&gt;=' version='2.76'/>
+        <dep name='lisa' op='&gt;=' version='3.1'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/bash'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>sh-utils</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.16</version>
+          <release>3</release>
+          <filename>sh-utils.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/env'/>
+      </provides>
+      <requires>
+        <dep name='libpam' op='&gt;=' version='0.58'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libcrypt.so.1'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libpam.so.0'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>kbd</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.96</version>
+          <release>1</release>
+          <filename>kbd.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>util-linux</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.7.1</version>
+          <release>5</release>
+          <filename>util-linux.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='lisa' op='&gt;=' version='3.0'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libcrypt.so.1'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libpam.so.0'/>
+        <dep name='libpam_misc.so.0'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>bool</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>bool.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>autoconf</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.13</version>
+          <release>0</release>
+          <filename>autoconf.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='awk'/>
+        <dep name='m4'/>
+        <dep name='mktemp'/>
+        <dep name='/bin/sh'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>ed</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.2</version>
+          <release>5</release>
+          <filename>ed.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>bash</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.14.7</version>
+          <release>9</release>
+          <filename>bash.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/bash'/>
+        <dep name='/bin/sh'/>
+      </provides>
+      <requires>
+        <dep name='mktemp'/>
+        <dep name='/usr/bin/perl'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>findutils</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.1</version>
+          <release>9</release>
+          <filename>findutils.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>perl</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>5.005_02</version>
+          <release>0</release>
+          <filename>perl.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/perl'/>
+      </provides>
+      <requires>
+        <dep name='tcsh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libcrypt.so.1'/>
+        <dep name='libdb.so.3'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libpthread.so.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>gawk</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.0.3</version>
+          <release>3</release>
+          <filename>gawk.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='awk'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>libpwdb</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.54</version>
+          <release>7</release>
+          <filename>libpwdb.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libpwdb.so.0'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>rpm</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.5.5</version>
+          <release>2</release>
+          <filename>rpm.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdb.so.2'/>
+        <dep name='libz.so.1'/>
+        <dep name='/bin/bash'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+      <conflicts>
+        <dep name='patch' op='&lt;' version='2.5'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>ncurses-termcap-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2</version>
+          <release>1</release>
+          <filename>ncurses-termcap-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ncurses-devel' op='=' version='4.2'/>
+      </requires>
+      <conflicts>
+        <dep name='libtermcap-devel'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>strace</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.1</version>
+          <release>3</release>
+          <filename>strace.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libnsl.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>vixie-cron</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.0.1</version>
+          <release>18</release>
+          <filename>vixie-cron.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='cron'/>
+      </provides>
+      <requires>
+        <dep name='syslog'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>pciutils</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.99.4</version>
+          <release>1</release>
+          <filename>pciutils.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>crontabs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.10</version>
+          <release>2</release>
+          <filename>crontabs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='cron'/>
+        <dep name='/bin/bash'/>
+      </requires>
+    </package>
+    <package>
+      <name>info</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.12</version>
+          <release>3</release>
+          <filename>info.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libz.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>egcs-c++</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.91.60</version>
+          <release>3</release>
+          <filename>egcs-c++.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libstdc++.so.2.9'/>
+      </provides>
+      <requires>
+        <dep name='gcc'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>egcs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.91.60</version>
+          <release>3</release>
+          <filename>egcs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='gcc'/>
+      </provides>
+      <requires>
+        <dep name='binutils'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>SysVinit</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.76</version>
+          <release>0</release>
+          <filename>SysVinit.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='SysVinit-scripts' op='&gt;=' version='1.04'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libcrypt.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>python-eclass</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.2</version>
+          <release>0</release>
+          <filename>python-eclass.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='Acquisition.so'/>
+        <dep name='ExtensionClass.so'/>
+        <dep name='MethodObject.so'/>
+        <dep name='Missing.so'/>
+        <dep name='MultiMapping.so'/>
+        <dep name='Sync.so'/>
+        <dep name='ThreadLock.so'/>
+      </provides>
+      <requires>
+        <dep name='python' op='&gt;=' version='1.5'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>binutils</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.9.1.0.19a</version>
+          <release>0</release>
+          <filename>binutils.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libbfd-2.9.1.0.19.so.0'/>
+        <dep name='libopcodes-2.9.1.0.19.so.0'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libbfd-2.9.1.0.19.so.0'/>
+        <dep name='libc.so.6'/>
+        <dep name='libopcodes-2.9.1.0.19.so.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>linux-kernel-binary</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2.1</version>
+          <release>0a</release>
+          <filename>linux-kernel-binary.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>shadow-misc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1</version>
+          <release>3</release>
+          <filename>shadow-misc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libshadow.so.0'/>
+        <dep name='pam_dialup.so'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libcrypt.so.1'/>
+        <dep name='libshadow.so.0'/>
+        <dep name='/bin/bash'/>
+      </requires>
+    </package>
+    <package>
+      <name>libgr</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.13</version>
+          <release>1</release>
+          <filename>libgr.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libfbm.so.1'/>
+        <dep name='libjpeg.so.6'/>
+        <dep name='libpbm.so.1'/>
+        <dep name='libpgm.so.1'/>
+        <dep name='libpng.so.1'/>
+        <dep name='libpnm.so.1'/>
+        <dep name='libppm.so.1'/>
+        <dep name='libtiff.so.3'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>copyrights</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.2</version>
+          <release>1</release>
+          <filename>copyrights.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>man</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.5f</version>
+          <release>1</release>
+          <filename>man.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='groff'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+      <conflicts>
+        <dep name='man_db'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>perl-add</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>5.005_02</version>
+          <release>0</release>
+          <filename>perl-add.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='B.so'/>
+        <dep name='DB_File.so'/>
+        <dep name='Dumper.so'/>
+        <dep name='Fcntl.so'/>
+        <dep name='IO.so'/>
+        <dep name='Opcode.so'/>
+        <dep name='POSIX.so'/>
+        <dep name='SDBM_File.so'/>
+        <dep name='Socket.so'/>
+        <dep name='SysV.so'/>
+        <dep name='Thread.so'/>
+        <dep name='attrs.so'/>
+        <dep name='re.so'/>
+      </provides>
+      <requires>
+        <dep name='perl' op='=' version='5.005_02'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libcrypt.so.1'/>
+        <dep name='libdb.so.3'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libpthread.so.0'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>cracklib</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.7</version>
+          <release>1</release>
+          <filename>cracklib.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>ncurses-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2</version>
+          <release>1</release>
+          <filename>ncurses-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ncurses' op='=' version='4.2'/>
+      </requires>
+      <obsoletes>
+        <dep name='ncurses-devel-compat'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>ncurses-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2</version>
+          <release>1</release>
+          <filename>ncurses-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ncurses-devel' op='=' version='4.2'/>
+      </requires>
+      <obsoletes>
+        <dep name='ncurses-devel-compat-static'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>ncurses-termcap-devel-static</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2</version>
+          <release>1</release>
+          <filename>ncurses-termcap-devel-static.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ncurses-devel-static' op='=' version='4.2'/>
+      </requires>
+      <conflicts>
+        <dep name='libtermcap-devel-static'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>procps</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.2.9</version>
+          <release>2</release>
+          <filename>procps.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libproc.so.1.2.6'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libproc.so.1.2.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>automake</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.4</version>
+          <release>0</release>
+          <filename>automake.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='autoconf' op='&gt;=' version='2.13'/>
+        <dep name='/bin/sh'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>isapnptools</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.16</version>
+          <release>1</release>
+          <filename>isapnptools.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>qt</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.4.2</version>
+          <release>1</release>
+          <filename>qt.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libqt.so.1'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>qt-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.4.2</version>
+          <release>1</release>
+          <filename>qt-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='qt' op='=' version='1.4.2'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libstdc++.so.2.9'/>
+      </requires>
+    </package>
+    <package>
+      <name>pam-apps</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.55</version>
+          <release>6</release>
+          <filename>pam-apps.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libpam.so.0'/>
+        <dep name='libpam_misc.so.0'/>
+        <dep name='libpwdb.so.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>LPRng</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.5.3</version>
+          <release>1</release>
+          <filename>LPRng.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='lpr'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libnsl.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>rcs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>5.7</version>
+          <release>5</release>
+          <filename>rcs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='diffutils'/>
+        <dep name='ed'/>
+        <dep name='mktemp'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>nis-client</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>0</release>
+          <filename>nis-client.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libcrypt.so.1'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libresolv.so.2'/>
+        <dep name='/bin/bash'/>
+      </requires>
+    </package>
+    <package>
+      <name>tcl</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>8.0.4</version>
+          <release>1</release>
+          <filename>tcl.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libtcl8.0.so'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libtcl8.0.so'/>
+      </requires>
+    </package>
+    <package>
+      <name>LPRng-lpd</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.5.3</version>
+          <release>1</release>
+          <filename>LPRng-lpd.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='lpd'/>
+      </provides>
+      <requires>
+        <dep name='SysVinit-scripts' op='&gt;=' version='1.03' release='2'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>readline</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2.1</version>
+          <release>0</release>
+          <filename>readline.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libhistory.so.3'/>
+        <dep name='libreadline.so.3'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>slang</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.2.2</version>
+          <release>0</release>
+          <filename>slang.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libslang.so.1'/>
+      </provides>
+      <requires>
+        <dep name='ncurses'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>sysklogd</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.3.26</version>
+          <release>3</release>
+          <filename>sysklogd.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='syslog'/>
+      </provides>
+      <requires>
+        <dep name='SysVinit-scripts' op='&gt;=' version='1.03'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>groff</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.11a</version>
+          <release>3</release>
+          <filename>groff.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libdriver.so.1.11'/>
+        <dep name='libgroff.so.1.11'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdriver.so.1.11'/>
+        <dep name='libgroff.so.1.11'/>
+        <dep name='libm.so.6'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>groff-ps</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.11a</version>
+          <release>3</release>
+          <filename>groff-ps.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdriver.so.1.11'/>
+        <dep name='libgroff.so.1.11'/>
+        <dep name='libm.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>less</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>332</version>
+          <release>3</release>
+          <filename>less.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>gdb</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.17</version>
+          <release>2</release>
+          <filename>gdb.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='debugger'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libncurses.so.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>linux-kernel-include</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.2.1</version>
+          <release>0a</release>
+          <filename>linux-kernel-include.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>libpam</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.66</version>
+          <release>1</release>
+          <filename>libpam.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libpam.so.0'/>
+        <dep name='libpam_misc.so.0'/>
+        <dep name='pam_access.so'/>
+        <dep name='pam_cracklib.so'/>
+        <dep name='pam_deny.so'/>
+        <dep name='pam_env.so'/>
+        <dep name='pam_ftp.so'/>
+        <dep name='pam_group.so'/>
+        <dep name='pam_lastlog.so'/>
+        <dep name='pam_limits.so'/>
+        <dep name='pam_listfile.so'/>
+        <dep name='pam_mail.so'/>
+        <dep name='pam_nologin.so'/>
+        <dep name='pam_permit.so'/>
+        <dep name='pam_pwdb.so'/>
+        <dep name='pam_radius.so'/>
+        <dep name='pam_rhosts_auth.so'/>
+        <dep name='pam_rootok.so'/>
+        <dep name='pam_securetty.so'/>
+        <dep name='pam_shells.so'/>
+        <dep name='pam_stress.so'/>
+        <dep name='pam_tally.so'/>
+        <dep name='pam_time.so'/>
+        <dep name='pam_unix_acct.so'/>
+        <dep name='pam_unix_auth.so'/>
+        <dep name='pam_unix_passwd.so'/>
+        <dep name='pam_unix_session.so'/>
+        <dep name='pam_warn.so'/>
+        <dep name='pam_wheel.so'/>
+      </provides>
+      <requires>
+        <dep name='libpwdb' op='&gt;=' version='0.54'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libcrypt.so.1'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libpwdb.so.0'/>
+      </requires>
+    </package>
+    <package>
+      <name>diffutils</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.7b</version>
+          <release>0</release>
+          <filename>diffutils.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>setup</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>0a</release>
+          <filename>setup.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>m4</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.4</version>
+          <release>6</release>
+          <filename>m4.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+    <package>
+      <name>e2fsprogs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.14</version>
+          <release>0</release>
+          <filename>e2fsprogs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libcom_err.so.2'/>
+        <dep name='libe2p.so.2'/>
+        <dep name='libext2fs.so.2'/>
+        <dep name='libss.so.2'/>
+        <dep name='libuuid.so.1'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libcom_err.so.2'/>
+        <dep name='libe2p.so.2'/>
+        <dep name='libext2fs.so.2'/>
+        <dep name='libss.so.2'/>
+        <dep name='libuuid.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>glibc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.1</version>
+          <release>1</release>
+          <filename>glibc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libBrokenLocale.so.1'/>
+        <dep name='libSegFault.so'/>
+        <dep name='libc.so.6'/>
+        <dep name='libcrypt.so.1'/>
+        <dep name='libdb.so.2'/>
+        <dep name='libdb.so.3'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libnss_compat.so.2'/>
+        <dep name='libnss_db.so.2'/>
+        <dep name='libnss_dns.so.2'/>
+        <dep name='libnss_files.so.2'/>
+        <dep name='libnss_hesiod.so.2'/>
+        <dep name='libnss_nis.so.2'/>
+        <dep name='libnss_nisplus.so.2'/>
+        <dep name='libpthread.so.0'/>
+        <dep name='libresolv.so.2'/>
+        <dep name='librt.so.1'/>
+        <dep name='libutil.so.1'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdb.so.3'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libnss_files.so.2'/>
+        <dep name='libpthread.so.0'/>
+        <dep name='libresolv.so.2'/>
+      </requires>
+    </package>
+    <package>
+      <name>tcl-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>8.0.4</version>
+          <release>1</release>
+          <filename>tcl-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='tcl' op='=' version='8.0.4'/>
+      </requires>
+    </package>
+    <package>
+      <name>svgalib</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.3.1</version>
+          <release>1</release>
+          <filename>svgalib.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libvga.so.1'/>
+        <dep name='libvgagl.so.1'/>
+      </provides>
+      <requires>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libm.so.6'/>
+        <dep name='libvga.so.1'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/perl'/>
+      </requires>
+    </package>
+    <package>
+      <name>python</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.5.1</version>
+          <release>0a</release>
+          <filename>python.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='arraymodule.so'/>
+        <dep name='audioop.so'/>
+        <dep name='binascii.so'/>
+        <dep name='bsddbmodule.so'/>
+        <dep name='cPickle.so'/>
+        <dep name='cStringIO.so'/>
+        <dep name='cmathmodule.so'/>
+        <dep name='cryptmodule.so'/>
+        <dep name='cursesmodule.so'/>
+        <dep name='errnomodule.so'/>
+        <dep name='fcntlmodule.so'/>
+        <dep name='grpmodule.so'/>
+        <dep name='imageop.so'/>
+        <dep name='mathmodule.so'/>
+        <dep name='md5module.so'/>
+        <dep name='newmodule.so'/>
+        <dep name='nismodule.so'/>
+        <dep name='operator.so'/>
+        <dep name='parsermodule.so'/>
+        <dep name='pwdmodule.so'/>
+        <dep name='readline.so'/>
+        <dep name='resource.so'/>
+        <dep name='rgbimgmodule.so'/>
+        <dep name='rotormodule.so'/>
+        <dep name='selectmodule.so'/>
+        <dep name='socketmodule.so'/>
+        <dep name='stropmodule.so'/>
+        <dep name='structmodule.so'/>
+        <dep name='syslogmodule.so'/>
+        <dep name='termios.so'/>
+        <dep name='timemodule.so'/>
+        <dep name='timingmodule.so'/>
+        <dep name='zlibmodule.so'/>
+        <dep name='/usr/bin/python'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdl.so.2'/>
+        <dep name='libm.so.6'/>
+        <dep name='libpthread.so.0'/>
+        <dep name='libcrypt.so.1'/>
+        <dep name='libdb.so.2'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='libreadline.so.3'/>
+        <dep name='libz.so.1'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>python-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.5.1</version>
+          <release>0a</release>
+          <filename>python-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='python' op='=' version='1.5.1'/>
+        <dep name='/bin/sh'/>
+        <dep name='/usr/bin/env'/>
+        <dep name='/usr/bin/python'/>
+      </requires>
+    </package>
+    <package>
+      <name>dialog</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>0.6</version>
+          <release>6</release>
+          <filename>dialog.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libncurses.so.4'/>
+        <dep name='/bin/sh'/>
+      </requires>
+    </package>
+    <package>
+      <name>mtabase</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>5</release>
+          <filename>mtabase.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='SysVinit-scripts' op='&gt;=' version='1.02' release='4'/>
+        <dep name='/bin/sh'/>
+        <dep name='/bin/bash'/>
+      </requires>
+    </package>
+    <package>
+      <name>sendmail</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>8.8.7</version>
+          <release>7</release>
+          <filename>sendmail.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='MTA'/>
+      </provides>
+      <requires>
+        <dep name='mtabase'/>
+        <dep name='procmail'/>
+        <dep name='/bin/sh'/>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+        <dep name='libdb.so.3'/>
+        <dep name='libnsl.so.1'/>
+        <dep name='libresolv.so.2'/>
+        <dep name='/bin/bash'/>
+      </requires>
+    </package>
+    <package>
+      <name>mktemp</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.4</version>
+          <release>2</release>
+          <filename>mktemp.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/bin/mktemp'/>
+      </provides>
+      <requires>
+        <dep name='ld-linux.so.2'/>
+        <dep name='libc.so.6'/>
+      </requires>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-packages.err b/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-packages.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-packages.out b/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-packages.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-packages.xml b/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-packages.xml
new file mode 100644 (file)
index 0000000..8ebc22c
--- /dev/null
@@ -0,0 +1,453 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>p1</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>p1.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>p2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>p2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>p3</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>p3.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='p3a'/>
+      </requires>
+    </package>
+    <package>
+      <name>p3a</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>p3a.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>p4</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>p4.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>p4a</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>p4a.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>p5</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>p5.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <conflicts>
+        <dep name='p5a'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>p6</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>p6.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='p6virt'/>
+      </requires>
+    </package>
+    <package>
+      <name>p6a</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>p6a.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='p6virt'/>
+      </provides>
+      <requires>
+        <dep name='p6xxx'/>
+      </requires>
+    </package>
+    <package>
+      <name>p6b</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>p6b.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='p6virt'/>
+      </provides>
+      <conflicts>
+        <dep name='p2'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>p6c</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>p6c.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='p6virt'/>
+      </provides>
+    </package>
+    <package>
+      <name>p7new</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>p7new.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <obsoletes>
+        <dep name='p7'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>p8</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>p8.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <conflicts>
+        <dep name='p8a' op='&lt;' version='2.0'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>p8a</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>p8a.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>p9</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>p9.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='p9a'/>
+      </requires>
+    </package>
+    <package>
+      <name>p9a</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>p9a.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='p9b'/>
+        <dep name='p9c'/>
+      </requires>
+    </package>
+    <package>
+      <name>p9b</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>p9b.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='p9d'/>
+      </requires>
+    </package>
+    <package>
+      <name>p9c</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>p9c.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='p9d'/>
+      </requires>
+    </package>
+    <package>
+      <name>p10new</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>p10new.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <obsoletes>
+        <dep name='p10'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>p10new2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>p10new2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='p10'/>
+      </provides>
+    </package>
+    <package>
+      <name>p11new</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>p11new.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <obsoletes>
+        <dep name='p11'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>p11new2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>p11new2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='p11'/>
+      </provides>
+    </package>
+    <package>
+      <name>p11new3</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>p11new3.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='p11'/>
+      </provides>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-system.err b/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-system.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-system.out b/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-system.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-system.xml b/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-system.xml
new file mode 100644 (file)
index 0000000..1dc6d6d
--- /dev/null
@@ -0,0 +1,308 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>p1</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>p1.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>p2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>p2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>p3</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>p3.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>p4</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>p4.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='p4a' op='&lt;' version='1.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>p4a</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>p4a.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>p5</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>p5.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>p5a</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>p5a.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>p5b</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>p5b.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='p5a'/>
+      </requires>
+    </package>
+    <package>
+      <name>p6</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>p6.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>p7</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>p7.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>p8</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>p8.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <conflicts>
+        <dep name='p8a' op='&lt;' version='1.0'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>p8a</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>p8a.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>p9</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>p9.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>p10</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>p10.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>p10a</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>p10a.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='p10'/>
+      </requires>
+    </package>
+    <package>
+      <name>p11</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>p11.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>p11a</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>p11a.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='p11'/>
+      </requires>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-test.diff
new file mode 100644 (file)
index 0000000..d532aaf
--- /dev/null
@@ -0,0 +1,14 @@
+--- exercise-06upgrade-test.solution   2005-11-05 21:20:13.000000000 +0100
++++ exercise-06upgrade-test.mistake    2005-11-30 10:37:37.000000000 +0100
+@@ -1,11 +0,0 @@
+->!> Checking for upgrades...
+->!> Upgrading p2-1.0-1 => p2-2.0-1[test]
+->!> Upgrading p3-1.0-1 => p3-2.0-1[test]
+->!> Upgrading p4-1.0-1 => p4-2.0-1[test]
+->!> Upgrading p4a-1.0-1 => p4a-2.0-1[test]
+->!> Upgrading p5-1.0-1 => p5-2.0-1[test]
+->!> Upgrading p6-1.0-1 => p6-2.0-1[test]
+->!> Upgrading p8-1.0-1 => p8-2.0-1[test]
+->!> Upgrading p8a-1.0-1 => p8a-2.0-1[test]
+->!> Upgrading p9-1.0-1 => p9-2.0-1[test]
+->!> Upgrading 9 packages
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-test.err b/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-test.err
new file mode 100644 (file)
index 0000000..3b71b2e
--- /dev/null
@@ -0,0 +1 @@
+I/O error : No such file or directory
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-test.out b/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-test.out
new file mode 100644 (file)
index 0000000..d4d7d9a
--- /dev/null
@@ -0,0 +1,49 @@
+Loaded 17 packages from deptestomatic/exercise-06upgrade-system.xml
+Loaded 23 packages from deptestomatic/exercise-06upgrade-packages.xml
+
+------------------------------------------------
+
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+Unable to save subscription data to '/var/adm/zypp/subscriptions.xml'
+Subscription will not be saved!
+>!> Checking for upgrades...
+>!> Upgrading p2-1.0-1 => p2-2.0-1[test]
+>!> Upgrading p3-1.0-1 => p3-2.0-1[test]
+>!> Upgrading p4-1.0-1 => p4-2.0-1[test]
+>!> Upgrading p4a-1.0-1 => p4a-2.0-1[test]
+>!> Upgrading p5-1.0-1 => p5-2.0-1[test]
+>!> Upgrading p6-1.0-1 => p6-2.0-1[test]
+>!> Upgrading p8-1.0-1 => p8-2.0-1[test]
+>!> Upgrading p8a-1.0-1 => p8a-2.0-1[test]
+>!> Upgrading p9-1.0-1 => p9-2.0-1[test]
+>!> Upgrading 9 packages
+
+Pruned solutions: 0
+Deferred solutions: 0
+
+Failed Solution: 
+Download Size: 1353, Install Size: 912, Total Priority: 0, Min Priority: 1600, Max Priority: 1600, Other Penalties: 0, Invalid
+- - - - - - - - - -
+Upgrading p2-1.0-1 => p2-2.0-1[test]
+Upgrading p3-1.0-1 => p3-2.0-1[test]
+Upgrading p4-1.0-1 => p4-2.0-1[test]
+Upgrading p4a-1.0-1 => p4a-2.0-1[test]
+Upgrading p5-1.0-1 => p5-2.0-1[test]
+Upgrading p6-1.0-1 => p6-2.0-1[test]
+Upgrading p8-1.0-1 => p8-2.0-1[test]
+Upgrading p8a-1.0-1 => p8a-2.0-1[test]
+Upgrading p9-1.0-1 => p9-2.0-1[test]
+Marking resolvable p6b-2.0-1 as uninstallable
+p3a-2.0-1[test]:  needed by  [p3-2.0-1]
+Installing p3a-2.0-1[test]
+p9a-2.0-1[test]:  needed by  [p9-2.0-1]
+Installing p9a-2.0-1[test]
+p5a-1.0-1: conflicts with  [p5-2.0-1]
+There are no installable providers of p5a for p5b-1.0-1
+p5a provides p5a-1.0-1, but is scheduled to be uninstalled.
+There are no installable providers of p9c for p9a-2.0-1[test]
+p9c provides p9c-2.0-1, but it is uninstallable.  Try installing it on its own for more details.
+There are no installable providers of p9b for p9a-2.0-1[test]
+p9b provides p9b-2.0-1, but it is uninstallable.  Try installing it on its own for more details.
+[ERROR] p9a-2.0-1 is scheduled to be installed, but this is not possible because of dependency problems.
+[ERROR] Marking this resolution attempt as invalid.
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-test.solution
new file mode 100644 (file)
index 0000000..1aebbc6
--- /dev/null
@@ -0,0 +1,11 @@
+>!> Checking for upgrades...
+>!> Upgrading p2-1.0-1 => p2-2.0-1[test]
+>!> Upgrading p3-1.0-1 => p3-2.0-1[test]
+>!> Upgrading p4-1.0-1 => p4-2.0-1[test]
+>!> Upgrading p4a-1.0-1 => p4a-2.0-1[test]
+>!> Upgrading p5-1.0-1 => p5-2.0-1[test]
+>!> Upgrading p6-1.0-1 => p6-2.0-1[test]
+>!> Upgrading p8-1.0-1 => p8-2.0-1[test]
+>!> Upgrading p8a-1.0-1 => p8a-2.0-1[test]
+>!> Upgrading p9-1.0-1 => p9-2.0-1[test]
+>!> Upgrading 9 packages
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-06upgrade-test.xml
new file mode 100644 (file)
index 0000000..6d42d3e
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-06upgrade-system.xml"/>
+  <channel name="test" file="exercise-06upgrade-packages.xml"/>
+</setup>
+
+<trial>
+  <subscribe channel="test"/>
+  <upgrade/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-1-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-1-test.diff
new file mode 100644 (file)
index 0000000..722b641
--- /dev/null
@@ -0,0 +1,24 @@
+--- exercise-alternatives-1-test.solution      2005-11-05 21:15:48.000000000 +0100
++++ exercise-alternatives-1-test.mistake       2005-11-30 10:37:36.000000000 +0100
+@@ -1,21 +0,0 @@
+->!> Installing alt from channel test
+->!> Solution #1:
+->!> install WindowMaker-1.0-1[test]
+->!> install alt-1.0-1[test]
+->!> install sendmail-1.0-1[test]
+->!> installs=3, upgrades=0, uninstalls=0
+->!> Solution #2:
+->!> install alt-1.0-1[test]
+->!> install icewm-1.0-1[test]
+->!> install postfix-1.0-1[test]
+->!> installs=3, upgrades=0, uninstalls=0
+->!> Solution #3:
+->!> install WindowMaker-1.0-1[test]
+->!> install alt-1.0-1[test]
+->!> install postfix-1.0-1[test]
+->!> installs=3, upgrades=0, uninstalls=0
+->!> Solution #4:
+->!> install alt-1.0-1[test]
+->!> install icewm-1.0-1[test]
+->!> install sendmail-1.0-1[test]
+->!> installs=3, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-1-test.err b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-1-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-1-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-1-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-1-test.out b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-1-test.out
new file mode 100644 (file)
index 0000000..36574da
--- /dev/null
@@ -0,0 +1,79 @@
+Loaded 1 package from deptestomatic/exercise-alternatives-system.xml
+Loaded 8 packages from deptestomatic/exercise-alternatives-packages.xml
+
+------------------------------------------------
+
+>!> Installing alt from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 4
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = f5b08e61
+>!> install WindowMaker-1.0-1[test]
+>!> install alt-1.0-1[test]
+>!> install sendmail-1.0-1[test]
+>!> installs=3, upgrades=0, uninstalls=0
+download size=0.4k, install size=1.3k
+total priority=0, min priority=800, max priority=800
+other penalties=-1600
+- - - - - - - - - -
+WindowMaker-1.0-1[test]:  needed by  [alt-1.0-1]
+Installing WindowMaker-1.0-1[test]
+sendmail-1.0-1[test]:  needed by  [alt-1.0-1]
+Installing sendmail-1.0-1[test]
+Installing alt-1.0-1[test]
+
+Other Valid Solutions:
+
+>!> Solution #2:
+Checksum = 2456bb7e
+>!> install alt-1.0-1[test]
+>!> install icewm-1.0-1[test]
+>!> install postfix-1.0-1[test]
+>!> installs=3, upgrades=0, uninstalls=0
+download size=0.4k, install size=1.3k
+total priority=0, min priority=800, max priority=800
+other penalties=-1600
+- - - - - - - - - -
+icewm-1.0-1[test]:  needed by  [alt-1.0-1]
+Installing icewm-1.0-1[test]
+postfix-1.0-1[test]:  needed by  [alt-1.0-1]
+Installing postfix-1.0-1[test]
+Installing alt-1.0-1[test]
+>!> Solution #3:
+Checksum = 5c705ed1
+>!> install WindowMaker-1.0-1[test]
+>!> install alt-1.0-1[test]
+>!> install postfix-1.0-1[test]
+>!> installs=3, upgrades=0, uninstalls=0
+download size=0.4k, install size=1.3k
+total priority=0, min priority=800, max priority=800
+other penalties=-1600
+- - - - - - - - - -
+WindowMaker-1.0-1[test]:  needed by  [alt-1.0-1]
+Installing WindowMaker-1.0-1[test]
+postfix-1.0-1[test]:  needed by  [alt-1.0-1]
+Installing postfix-1.0-1[test]
+Installing alt-1.0-1[test]
+>!> Solution #4:
+Checksum = 3bfcb5de
+>!> install alt-1.0-1[test]
+>!> install icewm-1.0-1[test]
+>!> install sendmail-1.0-1[test]
+>!> installs=3, upgrades=0, uninstalls=0
+download size=0.4k, install size=1.3k
+total priority=0, min priority=800, max priority=800
+other penalties=-1600
+- - - - - - - - - -
+icewm-1.0-1[test]:  needed by  [alt-1.0-1]
+Installing icewm-1.0-1[test]
+sendmail-1.0-1[test]:  needed by  [alt-1.0-1]
+Installing sendmail-1.0-1[test]
+Installing alt-1.0-1[test]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-1-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-1-test.solution
new file mode 100644 (file)
index 0000000..e0a3eff
--- /dev/null
@@ -0,0 +1,21 @@
+>!> Installing alt from channel test
+>!> Solution #1:
+>!> install WindowMaker-1.0-1[test]
+>!> install alt-1.0-1[test]
+>!> install sendmail-1.0-1[test]
+>!> installs=3, upgrades=0, uninstalls=0
+>!> Solution #2:
+>!> install alt-1.0-1[test]
+>!> install icewm-1.0-1[test]
+>!> install postfix-1.0-1[test]
+>!> installs=3, upgrades=0, uninstalls=0
+>!> Solution #3:
+>!> install WindowMaker-1.0-1[test]
+>!> install alt-1.0-1[test]
+>!> install postfix-1.0-1[test]
+>!> installs=3, upgrades=0, uninstalls=0
+>!> Solution #4:
+>!> install alt-1.0-1[test]
+>!> install icewm-1.0-1[test]
+>!> install sendmail-1.0-1[test]
+>!> installs=3, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-1-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-1-test.xml
new file mode 100644 (file)
index 0000000..4b3a2f2
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-alternatives-system.xml"/>
+  <channel name="test" file="exercise-alternatives-packages.xml"/>
+</setup>
+
+<!-- 
+# double alternatives but otherwise good
+alt
+ -->
+<trial>
+  <install channel="test" package="alt"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-2-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-2-test.diff
new file mode 100644 (file)
index 0000000..ca752d3
--- /dev/null
@@ -0,0 +1,4 @@
+--- exercise-alternatives-2-test.solution      2005-11-05 21:16:19.000000000 +0100
++++ exercise-alternatives-2-test.mistake       2005-11-30 10:37:36.000000000 +0100
+@@ -1 +0,0 @@
+->!> Installing alt-unresolvable from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-2-test.err b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-2-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-2-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-2-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-2-test.out b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-2-test.out
new file mode 100644 (file)
index 0000000..860a810
--- /dev/null
@@ -0,0 +1,18 @@
+Loaded 1 package from deptestomatic/exercise-alternatives-system.xml
+Loaded 8 packages from deptestomatic/exercise-alternatives-packages.xml
+
+------------------------------------------------
+
+>!> Installing alt-unresolvable from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Pruned solutions: 0
+Deferred solutions: 0
+
+Failed Solution: 
+Download Size: 123, Install Size: 456, Total Priority: 0, Min Priority: 800, Max Priority: 800, Other Penalties: 0, Invalid
+- - - - - - - - - -
+Installing alt-unresolvable-1.0-1[test]
+There are no installable providers of something == 4.0-1 for alt-unresolvable-1.0-1[test]
+[ERROR] alt-unresolvable-1.0-1 is scheduled to be installed, but this is not possible because of dependency problems.
+[ERROR] Marking this resolution attempt as invalid.
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-2-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-2-test.solution
new file mode 100644 (file)
index 0000000..48b5bb8
--- /dev/null
@@ -0,0 +1 @@
+>!> Installing alt-unresolvable from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-2-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-2-test.xml
new file mode 100644 (file)
index 0000000..0082830
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-alternatives-system.xml"/>
+  <channel name="test" file="exercise-alternatives-packages.xml"/>
+</setup>
+
+<!-- 
+# double alternatives but also unresolvable
+alt-unresolvable
+ -->
+<trial>
+  <install channel="test" package="alt-unresolvable"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-3-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-3-test.diff
new file mode 100644 (file)
index 0000000..c180def
--- /dev/null
@@ -0,0 +1,28 @@
+--- exercise-alternatives-3-test.solution      2005-11-05 21:16:54.000000000 +0100
++++ exercise-alternatives-3-test.mistake       2005-11-30 10:37:36.000000000 +0100
+@@ -1,25 +0,0 @@
+->!> Installing alt-conflict from channel test
+->!> Solution #1:
+->!> install alt-conflict-1.0-1[test]
+->!> install icewm-1.0-1[test]
+->!> install postfix-1.0-1[test]
+->!> remove  foo-1.0-1
+->!> installs=3, upgrades=0, uninstalls=1
+->!> Solution #2:
+->!> install WindowMaker-1.0-1[test]
+->!> install alt-conflict-1.0-1[test]
+->!> install sendmail-1.0-1[test]
+->!> remove  foo-1.0-1
+->!> installs=3, upgrades=0, uninstalls=1
+->!> Solution #3:
+->!> install WindowMaker-1.0-1[test]
+->!> install alt-conflict-1.0-1[test]
+->!> install postfix-1.0-1[test]
+->!> remove  foo-1.0-1
+->!> installs=3, upgrades=0, uninstalls=1
+->!> Solution #4:
+->!> install alt-conflict-1.0-1[test]
+->!> install icewm-1.0-1[test]
+->!> install sendmail-1.0-1[test]
+->!> remove  foo-1.0-1
+->!> installs=3, upgrades=0, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-3-test.err b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-3-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-3-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-3-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-3-test.out b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-3-test.out
new file mode 100644 (file)
index 0000000..4e5fa31
--- /dev/null
@@ -0,0 +1,87 @@
+Loaded 1 package from deptestomatic/exercise-alternatives-system.xml
+Loaded 8 packages from deptestomatic/exercise-alternatives-packages.xml
+
+------------------------------------------------
+
+>!> Installing alt-conflict from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 4
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 1d401a79
+>!> install alt-conflict-1.0-1[test]
+>!> install icewm-1.0-1[test]
+>!> install postfix-1.0-1[test]
+>!> remove  foo-1.0-1
+>!> installs=3, upgrades=0, uninstalls=1
+download size=0.4k, install size=1.3k
+total priority=0, min priority=800, max priority=800
+other penalties=-1600
+- - - - - - - - - -
+postfix-1.0-1[test]:  needed by  [alt-conflict-1.0-1]
+Installing postfix-1.0-1[test]
+icewm-1.0-1[test]:  needed by  [alt-conflict-1.0-1]
+Installing icewm-1.0-1[test]
+Installing alt-conflict-1.0-1[test]
+foo-1.0-1: conflicts with  [alt-conflict-1.0-1]
+
+Other Valid Solutions:
+
+>!> Solution #2:
+Checksum = 8e51c99c
+>!> install WindowMaker-1.0-1[test]
+>!> install alt-conflict-1.0-1[test]
+>!> install sendmail-1.0-1[test]
+>!> remove  foo-1.0-1
+>!> installs=3, upgrades=0, uninstalls=1
+download size=0.4k, install size=1.3k
+total priority=0, min priority=800, max priority=800
+other penalties=-1600
+- - - - - - - - - -
+sendmail-1.0-1[test]:  needed by  [alt-conflict-1.0-1]
+Installing sendmail-1.0-1[test]
+WindowMaker-1.0-1[test]:  needed by  [alt-conflict-1.0-1]
+Installing WindowMaker-1.0-1[test]
+Installing alt-conflict-1.0-1[test]
+foo-1.0-1: conflicts with  [alt-conflict-1.0-1]
+>!> Solution #3:
+Checksum = c852b21c
+>!> install WindowMaker-1.0-1[test]
+>!> install alt-conflict-1.0-1[test]
+>!> install postfix-1.0-1[test]
+>!> remove  foo-1.0-1
+>!> installs=3, upgrades=0, uninstalls=1
+download size=0.4k, install size=1.3k
+total priority=0, min priority=800, max priority=800
+other penalties=-1600
+- - - - - - - - - -
+postfix-1.0-1[test]:  needed by  [alt-conflict-1.0-1]
+Installing postfix-1.0-1[test]
+WindowMaker-1.0-1[test]:  needed by  [alt-conflict-1.0-1]
+Installing WindowMaker-1.0-1[test]
+Installing alt-conflict-1.0-1[test]
+foo-1.0-1: conflicts with  [alt-conflict-1.0-1]
+>!> Solution #4:
+Checksum = 3215b7c9
+>!> install alt-conflict-1.0-1[test]
+>!> install icewm-1.0-1[test]
+>!> install sendmail-1.0-1[test]
+>!> remove  foo-1.0-1
+>!> installs=3, upgrades=0, uninstalls=1
+download size=0.4k, install size=1.3k
+total priority=0, min priority=800, max priority=800
+other penalties=-1600
+- - - - - - - - - -
+sendmail-1.0-1[test]:  needed by  [alt-conflict-1.0-1]
+Installing sendmail-1.0-1[test]
+icewm-1.0-1[test]:  needed by  [alt-conflict-1.0-1]
+Installing icewm-1.0-1[test]
+Installing alt-conflict-1.0-1[test]
+foo-1.0-1: conflicts with  [alt-conflict-1.0-1]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-3-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-3-test.solution
new file mode 100644 (file)
index 0000000..74ed837
--- /dev/null
@@ -0,0 +1,25 @@
+>!> Installing alt-conflict from channel test
+>!> Solution #1:
+>!> install alt-conflict-1.0-1[test]
+>!> install icewm-1.0-1[test]
+>!> install postfix-1.0-1[test]
+>!> remove  foo-1.0-1
+>!> installs=3, upgrades=0, uninstalls=1
+>!> Solution #2:
+>!> install WindowMaker-1.0-1[test]
+>!> install alt-conflict-1.0-1[test]
+>!> install sendmail-1.0-1[test]
+>!> remove  foo-1.0-1
+>!> installs=3, upgrades=0, uninstalls=1
+>!> Solution #3:
+>!> install WindowMaker-1.0-1[test]
+>!> install alt-conflict-1.0-1[test]
+>!> install postfix-1.0-1[test]
+>!> remove  foo-1.0-1
+>!> installs=3, upgrades=0, uninstalls=1
+>!> Solution #4:
+>!> install alt-conflict-1.0-1[test]
+>!> install icewm-1.0-1[test]
+>!> install sendmail-1.0-1[test]
+>!> remove  foo-1.0-1
+>!> installs=3, upgrades=0, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-3-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-3-test.xml
new file mode 100644 (file)
index 0000000..7446866
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-alternatives-system.xml"/>
+  <channel name="test" file="exercise-alternatives-packages.xml"/>
+</setup>
+
+<!-- 
+# double alternatives but also conflict
+alt-conflict
+ -->
+<trial>
+  <install channel="test" package="alt-conflict"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-4-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-4-test.diff
new file mode 100644 (file)
index 0000000..88693a7
--- /dev/null
@@ -0,0 +1,4 @@
+--- exercise-alternatives-4-test.solution      2005-11-05 21:17:07.000000000 +0100
++++ exercise-alternatives-4-test.mistake       2005-11-30 10:37:36.000000000 +0100
+@@ -1 +0,0 @@
+->!> Installing alt-conflict-unresolvable from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-4-test.err b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-4-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-4-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-4-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-4-test.out b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-4-test.out
new file mode 100644 (file)
index 0000000..3025409
--- /dev/null
@@ -0,0 +1,18 @@
+Loaded 1 package from deptestomatic/exercise-alternatives-system.xml
+Loaded 8 packages from deptestomatic/exercise-alternatives-packages.xml
+
+------------------------------------------------
+
+>!> Installing alt-conflict-unresolvable from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Pruned solutions: 0
+Deferred solutions: 0
+
+Failed Solution: 
+Download Size: 123, Install Size: 456, Total Priority: 0, Min Priority: 800, Max Priority: 800, Other Penalties: 0, Invalid
+- - - - - - - - - -
+Installing alt-conflict-unresolvable-1.0-1[test]
+There are no installable providers of something == 4.0-1 for alt-conflict-unresolvable-1.0-1[test]
+[ERROR] alt-conflict-unresolvable-1.0-1 is scheduled to be installed, but this is not possible because of dependency problems.
+[ERROR] Marking this resolution attempt as invalid.
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-4-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-4-test.solution
new file mode 100644 (file)
index 0000000..9c1ce41
--- /dev/null
@@ -0,0 +1 @@
+>!> Installing alt-conflict-unresolvable from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-4-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-4-test.xml
new file mode 100644 (file)
index 0000000..d5abc97
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-alternatives-system.xml"/>
+  <channel name="test" file="exercise-alternatives-packages.xml"/>
+</setup>
+
+<!-- 
+# double alternatives but also conflict and unresolvable
+alt-conflict-unresolvable
+ -->
+<trial>
+  <install channel="test" package="alt-conflict-unresolvable"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-packages.err b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-packages.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-packages.out b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-packages.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-packages.xml b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-packages.xml
new file mode 100644 (file)
index 0000000..c721d02
--- /dev/null
@@ -0,0 +1,176 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>alt</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>alt.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='windowmanager'/>
+        <dep name='smtp_daemon'/>
+      </requires>
+    </package>
+    <package>
+      <name>alt-unresolvable</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>alt-unresolvable.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='windowmanager'/>
+        <dep name='smtp_daemon'/>
+        <dep name='something' op='=' version='4.0' release='1'/>
+      </requires>
+    </package>
+    <package>
+      <name>alt-conflict</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>alt-conflict.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='windowmanager'/>
+        <dep name='smtp_daemon'/>
+      </requires>
+      <conflicts>
+        <dep name='foo'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>alt-conflict-unresolvable</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>alt-conflict-unresolvable.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='windowmanager'/>
+        <dep name='smtp_daemon'/>
+        <dep name='something' op='=' version='4.0' release='1'/>
+      </requires>
+      <conflicts>
+        <dep name='foo'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>WindowMaker</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>WindowMaker.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='windowmanager'/>
+      </provides>
+    </package>
+    <package>
+      <name>icewm</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>icewm.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='windowmanager'/>
+      </provides>
+    </package>
+    <package>
+      <name>postfix</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>postfix.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='smtp_daemon'/>
+      </provides>
+    </package>
+    <package>
+      <name>sendmail</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>sendmail.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='smtp_daemon'/>
+      </provides>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-system.err b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-system.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-system.out b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-system.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-alternatives-system.xml b/zypp/solver/testsuite/deptestomatic/exercise-alternatives-system.xml
new file mode 100644 (file)
index 0000000..e92b947
--- /dev/null
@@ -0,0 +1,21 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>foo</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>foo.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-1-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-1-test.diff
new file mode 100644 (file)
index 0000000..d1f94eb
--- /dev/null
@@ -0,0 +1,6 @@
+--- exercise-bug21829-1-test.solution  2005-11-05 21:25:25.000000000 +0100
++++ exercise-bug21829-1-test.mistake   2005-11-30 10:37:36.000000000 +0100
+@@ -1,3 +0,0 @@
+->!> Installing lsb from channel test
+->!> Installing lprng from channel test
+->!> Installing cups-client from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-1-test.err b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-1-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-1-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-1-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-1-test.out b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-1-test.out
new file mode 100644 (file)
index 0000000..b50d9a0
--- /dev/null
@@ -0,0 +1,21 @@
+Loaded 1 package from deptestomatic/exercise-bug21829-system.xml
+Loaded 4 packages from deptestomatic/exercise-bug21829-packages.xml
+
+------------------------------------------------
+
+>!> Installing lsb from channel test
+>!> Installing lprng from channel test
+>!> Installing cups-client from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Pruned solutions: 0
+Deferred solutions: 0
+
+Failed Solution: 
+Download Size: 369, Install Size: 1368, Total Priority: 0, Min Priority: 800, Max Priority: 800, Other Penalties: 0, Invalid
+- - - - - - - - - -
+Installing lsb-1.0-1[test]
+Installing lprng-1.0-1[test]
+Installing cups-client-1.0-1[test]
+[ERROR] lprng-1.0-1 is scheduled to be installed, but this is not possible because of dependency problems.
+[ERROR] Marking this resolution attempt as invalid.
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-1-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-1-test.solution
new file mode 100644 (file)
index 0000000..5c95b45
--- /dev/null
@@ -0,0 +1,3 @@
+>!> Installing lsb from channel test
+>!> Installing lprng from channel test
+>!> Installing cups-client from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-1-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-1-test.xml
new file mode 100644 (file)
index 0000000..378393e
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-bug21829-system.xml"/>
+  <channel name="test" file="exercise-bug21829-packages.xml"/>
+</setup>
+
+<!-- 
+# lsb requires /usr/bin/lpr which is provided by both, cups-client and lprng.
+# Problem:
+#   - only lprng gets lsb as referer
+#   - remove list contains lsb despite /usr/bin/lpr is satisfied by cups-client
+# XXX: whether or not lsb is in the remove list depends on the order they are
+# checked in the solver which is not defined!
+lsb lprng cups-client
+ -->
+<trial>
+  <install channel="test" package="lsb"/>
+  <install channel="test" package="lprng"/>
+  <install channel="test" package="cups-client"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-2-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-2-test.diff
new file mode 100644 (file)
index 0000000..34ccff3
--- /dev/null
@@ -0,0 +1,10 @@
+--- exercise-bug21829-2-test.solution  2005-11-05 21:03:52.000000000 +0100
++++ exercise-bug21829-2-test.mistake   2005-11-30 10:37:36.000000000 +0100
+@@ -1,7 +0,0 @@
+->!> Installing lsb from channel test
+->!> Installing cups-client from channel test
+->!> Solution #1:
+->!> install cups-client-1.0-1[test]
+->!> install lsb-1.0-1[test]
+->!> |unflag lprng-1.0-1[test]
+->!> installs=2, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-2-test.err b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-2-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-2-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-2-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-2-test.out b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-2-test.out
new file mode 100644 (file)
index 0000000..60e7231
--- /dev/null
@@ -0,0 +1,30 @@
+Loaded 1 package from deptestomatic/exercise-bug21829-system.xml
+Loaded 4 packages from deptestomatic/exercise-bug21829-packages.xml
+
+------------------------------------------------
+
+>!> Installing lsb from channel test
+>!> Installing cups-client from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 8d36de18
+>!> install cups-client-1.0-1[test]
+>!> install lsb-1.0-1[test]
+>!> |unflag lprng-1.0-1[test]
+>!> installs=2, upgrades=0, uninstalls=0
+download size=0.2k, install size=0.9k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing lsb-1.0-1[test]
+Installing cups-client-1.0-1[test]
+Marking resolvable lprng-1.0-1 as uninstallable
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-2-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-2-test.solution
new file mode 100644 (file)
index 0000000..f3983dc
--- /dev/null
@@ -0,0 +1,7 @@
+>!> Installing lsb from channel test
+>!> Installing cups-client from channel test
+>!> Solution #1:
+>!> install cups-client-1.0-1[test]
+>!> install lsb-1.0-1[test]
+>!> |unflag lprng-1.0-1[test]
+>!> installs=2, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-2-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-2-test.xml
new file mode 100644 (file)
index 0000000..b7a03a9
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-bug21829-system.xml"/>
+  <channel name="test" file="exercise-bug21829-packages.xml"/>
+</setup>
+
+<!-- 
+# lsb requires /usr/bin/lpr which is provided by both, cups-client and lprng.
+# Problem:
+#   - only lprng gets lsb as referer
+#   - remove list contains lsb despite /usr/bin/lpr is satisfied by cups-client
+# XXX: whether or not lsb is in the remove list depends on the order they are
+# checked in the solver which is not defined!
+ -->
+<trial>
+  <install channel="test" package="lsb"/>
+  <install channel="test" package="cups-client"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-3-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-3-test.diff
new file mode 100644 (file)
index 0000000..6d21661
--- /dev/null
@@ -0,0 +1,10 @@
+--- exercise-bug21829-3-test.solution  2005-11-05 21:04:00.000000000 +0100
++++ exercise-bug21829-3-test.mistake   2005-11-30 10:37:36.000000000 +0100
+@@ -1,7 +0,0 @@
+->!> Installing lsb from channel test
+->!> Installing lprng from channel test
+->!> Solution #1:
+->!> install lprng-1.0-1[test]
+->!> install lsb-1.0-1[test]
+->!> |unflag cups-client-1.0-1[test]
+->!> installs=2, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-3-test.err b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-3-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-3-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-3-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-3-test.out b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-3-test.out
new file mode 100644 (file)
index 0000000..8d8182d
--- /dev/null
@@ -0,0 +1,30 @@
+Loaded 1 package from deptestomatic/exercise-bug21829-system.xml
+Loaded 4 packages from deptestomatic/exercise-bug21829-packages.xml
+
+------------------------------------------------
+
+>!> Installing lsb from channel test
+>!> Installing lprng from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = de4da918
+>!> install lprng-1.0-1[test]
+>!> install lsb-1.0-1[test]
+>!> |unflag cups-client-1.0-1[test]
+>!> installs=2, upgrades=0, uninstalls=0
+download size=0.2k, install size=0.9k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing lsb-1.0-1[test]
+Installing lprng-1.0-1[test]
+Marking resolvable cups-client-1.0-1 as uninstallable
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-3-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-3-test.solution
new file mode 100644 (file)
index 0000000..aefa273
--- /dev/null
@@ -0,0 +1,7 @@
+>!> Installing lsb from channel test
+>!> Installing lprng from channel test
+>!> Solution #1:
+>!> install lprng-1.0-1[test]
+>!> install lsb-1.0-1[test]
+>!> |unflag cups-client-1.0-1[test]
+>!> installs=2, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-3-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-3-test.xml
new file mode 100644 (file)
index 0000000..b96b161
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-bug21829-system.xml"/>
+  <channel name="test" file="exercise-bug21829-packages.xml"/>
+</setup>
+
+<!-- 
+# lsb requires /usr/bin/lpr which is provided by both, cups-client and lprng.
+# Problem:
+#   - only lprng gets lsb as referer
+#   - remove list contains lsb despite /usr/bin/lpr is satisfied by cups-client
+# XXX: whether or not lsb is in the remove list depends on the order they are
+# checked in the solver which is not defined!
+ -->
+<trial>
+  <install channel="test" package="lsb"/>
+  <install channel="test" package="lprng"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-4-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-4-test.diff
new file mode 100644 (file)
index 0000000..367f287
--- /dev/null
@@ -0,0 +1,11 @@
+--- exercise-bug21829-4-test.solution  2005-11-05 21:04:25.000000000 +0100
++++ exercise-bug21829-4-test.mistake   2005-11-30 10:37:36.000000000 +0100
+@@ -1,8 +0,0 @@
+->!> Installing lsb from channel test
+->!> Installing cups from channel test
+->!> Solution #1:
+->!> install cups-1.0-1[test]
+->!> install cups-client-1.0-1[test]
+->!> install lsb-1.0-1[test]
+->!> |unflag lprng-1.0-1[test]
+->!> installs=3, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-4-test.err b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-4-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-4-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-4-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-4-test.out b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-4-test.out
new file mode 100644 (file)
index 0000000..36dab56
--- /dev/null
@@ -0,0 +1,33 @@
+Loaded 1 package from deptestomatic/exercise-bug21829-system.xml
+Loaded 4 packages from deptestomatic/exercise-bug21829-packages.xml
+
+------------------------------------------------
+
+>!> Installing lsb from channel test
+>!> Installing cups from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = a1507dbc
+>!> install cups-1.0-1[test]
+>!> install cups-client-1.0-1[test]
+>!> install lsb-1.0-1[test]
+>!> |unflag lprng-1.0-1[test]
+>!> installs=3, upgrades=0, uninstalls=0
+download size=0.4k, install size=1.3k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing lsb-1.0-1[test]
+Installing cups-1.0-1[test]
+cups-client-1.0-1[test]:  needed by  [cups-1.0-1]
+Installing cups-client-1.0-1[test]
+Marking resolvable lprng-1.0-1 as uninstallable
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-4-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-4-test.solution
new file mode 100644 (file)
index 0000000..9603b08
--- /dev/null
@@ -0,0 +1,8 @@
+>!> Installing lsb from channel test
+>!> Installing cups from channel test
+>!> Solution #1:
+>!> install cups-1.0-1[test]
+>!> install cups-client-1.0-1[test]
+>!> install lsb-1.0-1[test]
+>!> |unflag lprng-1.0-1[test]
+>!> installs=3, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-4-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-4-test.xml
new file mode 100644 (file)
index 0000000..f6d57eb
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-bug21829-system.xml"/>
+  <channel name="test" file="exercise-bug21829-packages.xml"/>
+</setup>
+
+<!-- 
+# lsb requires /usr/bin/lpr which is provided by both, cups-client and lprng.
+# Problem:
+#   - only lprng gets lsb as referer
+#   - remove list contains lsb despite /usr/bin/lpr is satisfied by cups-client
+# XXX: whether or not lsb is in the remove list depends on the order they are
+# checked in the solver which is not defined!
+ -->
+<trial>
+  <install channel="test" package="lsb"/>
+  <install channel="test" package="cups"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-5-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-5-test.diff
new file mode 100644 (file)
index 0000000..9340a2f
--- /dev/null
@@ -0,0 +1,14 @@
+--- exercise-bug21829-5-test.solution  2005-11-05 21:10:50.000000000 +0100
++++ exercise-bug21829-5-test.mistake   2005-11-30 10:37:36.000000000 +0100
+@@ -1,11 +0,0 @@
+->!> Installing lsb from channel test
+->!> Solution #1:
+->!> install lprng-1.0-1[test]
+->!> install lsb-1.0-1[test]
+->!> |unflag cups-client-1.0-1[test]
+->!> installs=2, upgrades=0, uninstalls=0
+->!> Solution #2:
+->!> install cups-client-1.0-1[test]
+->!> install lsb-1.0-1[test]
+->!> |unflag lprng-1.0-1[test]
+->!> installs=2, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-5-test.err b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-5-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-5-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-5-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-5-test.out b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-5-test.out
new file mode 100644 (file)
index 0000000..433797b
--- /dev/null
@@ -0,0 +1,47 @@
+Loaded 1 package from deptestomatic/exercise-bug21829-system.xml
+Loaded 4 packages from deptestomatic/exercise-bug21829-packages.xml
+
+------------------------------------------------
+
+>!> Installing lsb from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 2
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = de4da918
+>!> install lprng-1.0-1[test]
+>!> install lsb-1.0-1[test]
+>!> |unflag cups-client-1.0-1[test]
+>!> installs=2, upgrades=0, uninstalls=0
+download size=0.2k, install size=0.9k
+total priority=0, min priority=800, max priority=800
+other penalties=-800
+- - - - - - - - - -
+lprng-1.0-1[test]:  needed by  [lsb-1.0-1]
+Installing lprng-1.0-1[test]
+Marking resolvable cups-client-1.0-1 as uninstallable
+Installing lsb-1.0-1[test]
+
+Other Valid Solutions:
+
+>!> Solution #2:
+Checksum = 8d36de18
+>!> install cups-client-1.0-1[test]
+>!> install lsb-1.0-1[test]
+>!> |unflag lprng-1.0-1[test]
+>!> installs=2, upgrades=0, uninstalls=0
+download size=0.2k, install size=0.9k
+total priority=0, min priority=800, max priority=800
+other penalties=-800
+- - - - - - - - - -
+cups-client-1.0-1[test]:  needed by  [lsb-1.0-1]
+Installing cups-client-1.0-1[test]
+Marking resolvable lprng-1.0-1 as uninstallable
+Installing lsb-1.0-1[test]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-5-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-5-test.solution
new file mode 100644 (file)
index 0000000..0c26106
--- /dev/null
@@ -0,0 +1,11 @@
+>!> Installing lsb from channel test
+>!> Solution #1:
+>!> install lprng-1.0-1[test]
+>!> install lsb-1.0-1[test]
+>!> |unflag cups-client-1.0-1[test]
+>!> installs=2, upgrades=0, uninstalls=0
+>!> Solution #2:
+>!> install cups-client-1.0-1[test]
+>!> install lsb-1.0-1[test]
+>!> |unflag lprng-1.0-1[test]
+>!> installs=2, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-5-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-5-test.xml
new file mode 100644 (file)
index 0000000..928dc15
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-bug21829-system.xml"/>
+  <channel name="test" file="exercise-bug21829-packages.xml"/>
+</setup>
+
+<!-- 
+# lsb requires /usr/bin/lpr which is provided by both, cups-client and lprng.
+# Problem:
+#   - only lprng gets lsb as referer
+#   - remove list contains lsb despite /usr/bin/lpr is satisfied by cups-client
+# XXX: whether or not lsb is in the remove list depends on the order they are
+# checked in the solver which is not defined!
+ -->
+<trial>
+  <install channel="test" package="lsb"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-packages.err b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-packages.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-packages.out b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-packages.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-packages.xml b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-packages.xml
new file mode 100644 (file)
index 0000000..9d6940a
--- /dev/null
@@ -0,0 +1,90 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>cups-client</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>cups-client.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/lpr'/>
+      </provides>
+      <conflicts>
+        <dep name='lprng'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>lprng</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>lprng.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='/usr/bin/lpr'/>
+      </provides>
+      <conflicts>
+        <dep name='cups-client'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>cups</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>cups.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='cups-client'/>
+      </requires>
+    </package>
+    <package>
+      <name>lsb</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>lsb.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='/usr/bin/lpr'/>
+      </requires>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-system.err b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-system.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-system.out b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-system.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-bug21829-system.xml b/zypp/solver/testsuite/deptestomatic/exercise-bug21829-system.xml
new file mode 100644 (file)
index 0000000..ebb46c0
--- /dev/null
@@ -0,0 +1,21 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>dummy</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1</version>
+          <release>1</release>
+          <filename>dummy.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-corcircle-packages.err b/zypp/solver/testsuite/deptestomatic/exercise-corcircle-packages.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-corcircle-packages.out b/zypp/solver/testsuite/deptestomatic/exercise-corcircle-packages.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-corcircle-packages.xml b/zypp/solver/testsuite/deptestomatic/exercise-corcircle-packages.xml
new file mode 100644 (file)
index 0000000..69438f3
--- /dev/null
@@ -0,0 +1,47 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>B</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>B.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <conflicts>
+        <dep name='A'/>
+      </conflicts>
+    </package>
+    <package>
+      <name>C</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>C.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='B'/>
+      </requires>
+      <obsoletes>
+        <dep name='A'/>
+      </obsoletes>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-corcircle-system.err b/zypp/solver/testsuite/deptestomatic/exercise-corcircle-system.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-corcircle-system.out b/zypp/solver/testsuite/deptestomatic/exercise-corcircle-system.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-corcircle-system.xml b/zypp/solver/testsuite/deptestomatic/exercise-corcircle-system.xml
new file mode 100644 (file)
index 0000000..92b4bdf
--- /dev/null
@@ -0,0 +1,21 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>A</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>A.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-corcircle-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-corcircle-test.diff
new file mode 100644 (file)
index 0000000..4cb7cfe
--- /dev/null
@@ -0,0 +1,10 @@
+--- exercise-corcircle-test.solution   2005-11-05 20:48:47.000000000 +0100
++++ exercise-corcircle-test.mistake    2005-11-30 10:37:36.000000000 +0100
+@@ -1,7 +0,0 @@
+->!> Installing B from channel test
+->!> Installing C from channel test
+->!> Solution #1:
+->!> install B-1.0-1[test]
+->!> install C-1.0-1[test]
+->!> remove  A-1.0-1
+->!> installs=2, upgrades=0, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-corcircle-test.err b/zypp/solver/testsuite/deptestomatic/exercise-corcircle-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-corcircle-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-corcircle-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-corcircle-test.out b/zypp/solver/testsuite/deptestomatic/exercise-corcircle-test.out
new file mode 100644 (file)
index 0000000..48bd990
--- /dev/null
@@ -0,0 +1,30 @@
+Loaded 1 package from deptestomatic/exercise-corcircle-system.xml
+Loaded 2 packages from deptestomatic/exercise-corcircle-packages.xml
+
+------------------------------------------------
+
+>!> Installing B from channel test
+>!> Installing C from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 3c511dd0
+>!> install B-1.0-1[test]
+>!> install C-1.0-1[test]
+>!> remove  A-1.0-1
+>!> installs=2, upgrades=0, uninstalls=1
+download size=0.2k, install size=0.9k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing B-1.0-1[test]
+Installing C-1.0-1[test]
+A-1.0-1: replaced by  [C-1.0-1]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-corcircle-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-corcircle-test.solution
new file mode 100644 (file)
index 0000000..beddb14
--- /dev/null
@@ -0,0 +1,7 @@
+>!> Installing B from channel test
+>!> Installing C from channel test
+>!> Solution #1:
+>!> install B-1.0-1[test]
+>!> install C-1.0-1[test]
+>!> remove  A-1.0-1
+>!> installs=2, upgrades=0, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-corcircle-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-corcircle-test.xml
new file mode 100644 (file)
index 0000000..a557aac
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-corcircle-system.xml"/>
+  <channel name="test" file="exercise-corcircle-packages.xml"/>
+</setup>
+
+<!-- 
+# B conflicts with installed A which however is obsoleted by C. So this is
+# solvable but not installable as C requires B. Therefore B would be installed
+# a time when A is still there.
+B C
+ -->
+<trial>
+  <install channel="test" package="B"/>
+  <install channel="test" package="C"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-packages.err b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-packages.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-packages.out b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-packages.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-packages.xml b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-packages.xml
new file mode 100644 (file)
index 0000000..610cd7f
--- /dev/null
@@ -0,0 +1,21 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>shadow</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1</version>
+          <release>1</release>
+          <filename>shadow.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-system.err b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-system.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-system.out b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-system.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-system.xml b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-system.xml
new file mode 100644 (file)
index 0000000..4f06ec3
--- /dev/null
@@ -0,0 +1,44 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>at</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1</version>
+          <release>1</release>
+          <filename>at.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='shadow'/>
+      </requires>
+    </package>
+    <package>
+      <name>shadow</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>shadow.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='libsomething.so.0'/>
+      </requires>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-test.diff
new file mode 100644 (file)
index 0000000..80fb6ab
--- /dev/null
@@ -0,0 +1,6 @@
+--- exercise-inconsistent1-test.solution       2005-11-06 12:21:09.000000000 +0100
++++ exercise-inconsistent1-test.mistake        2005-11-30 10:37:36.000000000 +0100
+@@ -1,3 +0,0 @@
+->!> Solution #1:
+->!> upgrade shadow-1.0-1 => shadow-1.1-1[test]
+->!> installs=0, upgrades=1, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-test.err b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-test.out b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-test.out
new file mode 100644 (file)
index 0000000..0244751
--- /dev/null
@@ -0,0 +1,27 @@
+Loaded 2 packages from deptestomatic/exercise-inconsistent1-system.xml
+Loaded 1 package from deptestomatic/exercise-inconsistent1-packages.xml
+
+------------------------------------------------
+
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = b310f2dc
+>!> upgrade shadow-1.0-1 => shadow-1.1-1[test]
+>!> installs=0, upgrades=1, uninstalls=0
+download size=0.1k, install size=0.0k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+There are no installable providers of libsomething.so.0 for shadow-1.0-1
+shadow-1.0-1: missing requirement libsomething.so.0
+shadow-1.1-1[test]:  needed by  [at-1-1]
+Upgrading shadow-1.0-1 => shadow-1.1-1[test]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-test.solution
new file mode 100644 (file)
index 0000000..24b37d6
--- /dev/null
@@ -0,0 +1,3 @@
+>!> Solution #1:
+>!> upgrade shadow-1.0-1 => shadow-1.1-1[test]
+>!> installs=0, upgrades=1, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent1-test.xml
new file mode 100644 (file)
index 0000000..a4d2744
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-inconsistent1-system.xml"/>
+  <channel name="test" file="exercise-inconsistent1-packages.xml"/>
+</setup>
+
+<!-- 
+# installed shadow has an open dependeny, the installable shadow does not
+JUST_SOLVE
+ -->
+<trial>
+  <verify/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-packages.err b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-packages.err
new file mode 100644 (file)
index 0000000..872b80e
--- /dev/null
@@ -0,0 +1,7 @@
+deptestomatic/exercise-inconsistent2-packages.xml:1: parser error : Document is empty
+
+^
+deptestomatic/exercise-inconsistent2-packages.xml:1: parser error : Start tag expected, '<' not found
+
+^
+Can't parse test file 'deptestomatic/exercise-inconsistent2-packages.xml'
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-packages.out b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-packages.out
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-packages.xml b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-packages.xml
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-system.err b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-system.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-system.out b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-system.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-system.xml b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-system.xml
new file mode 100644 (file)
index 0000000..4f06ec3
--- /dev/null
@@ -0,0 +1,44 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>at</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1</version>
+          <release>1</release>
+          <filename>at.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='shadow'/>
+      </requires>
+    </package>
+    <package>
+      <name>shadow</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>shadow.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='libsomething.so.0'/>
+      </requires>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-test.diff
new file mode 100644 (file)
index 0000000..76eb414
--- /dev/null
@@ -0,0 +1,7 @@
+--- exercise-inconsistent2-test.solution       2005-11-06 12:21:28.000000000 +0100
++++ exercise-inconsistent2-test.mistake        2005-11-30 10:37:36.000000000 +0100
+@@ -1,4 +0,0 @@
+->!> Solution #1:
+->!> remove  at-1-1
+->!> remove  shadow-1.0-1
+->!> installs=0, upgrades=0, uninstalls=2
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-test.err b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-test.out b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-test.out
new file mode 100644 (file)
index 0000000..3587ff8
--- /dev/null
@@ -0,0 +1,29 @@
+Loaded 2 packages from deptestomatic/exercise-inconsistent2-system.xml
+Loaded -1 packages from deptestomatic/exercise-inconsistent2-packages.xml
+
+------------------------------------------------
+
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 50b4172d
+>!> remove  at-1-1
+>!> remove  shadow-1.0-1
+>!> installs=0, upgrades=0, uninstalls=2
+download size=0.0k, install size=0.0k
+total priority=0, min priority=2147483647, max priority=0
+other penalties=0
+- - - - - - - - - -
+There are no installable providers of libsomething.so.0 for shadow-1.0-1
+shadow-1.0-1: missing requirement libsomething.so.0
+There are no installable providers of shadow for at-1-1
+shadow provides shadow-1.0-1, but is scheduled to be uninstalled.
+at-1-1: depended on  [shadow-1.0-1]
+at-1-1: missing requirement shadow
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-test.solution
new file mode 100644 (file)
index 0000000..0d3c537
--- /dev/null
@@ -0,0 +1,4 @@
+>!> Solution #1:
+>!> remove  at-1-1
+>!> remove  shadow-1.0-1
+>!> installs=0, upgrades=0, uninstalls=2
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent2-test.xml
new file mode 100644 (file)
index 0000000..25240d7
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-inconsistent2-system.xml"/>
+  <channel name="test" file="exercise-inconsistent2-packages.xml"/>
+</setup>
+
+<!-- 
+# installed shadow has an open dependeny but there is no replacement available
+JUST_SOLVE
+ -->
+<trial>
+  <verify/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-packages.err b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-packages.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-packages.out b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-packages.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-packages.xml b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-packages.xml
new file mode 100644 (file)
index 0000000..610cd7f
--- /dev/null
@@ -0,0 +1,21 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>shadow</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1</version>
+          <release>1</release>
+          <filename>shadow.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-system.err b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-system.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-system.out b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-system.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-system.xml b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-system.xml
new file mode 100644 (file)
index 0000000..e97e5f4
--- /dev/null
@@ -0,0 +1,24 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>at</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1</version>
+          <release>1</release>
+          <filename>at.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='shadow'/>
+      </requires>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-test.diff
new file mode 100644 (file)
index 0000000..b4246ec
--- /dev/null
@@ -0,0 +1,6 @@
+--- exercise-inconsistent3-test.solution       2005-11-06 12:22:17.000000000 +0100
++++ exercise-inconsistent3-test.mistake        2005-11-30 10:37:36.000000000 +0100
+@@ -1,3 +0,0 @@
+->!> Solution #1:
+->!> install shadow-1.1-1[test]
+->!> installs=1, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-test.err b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-test.out b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-test.out
new file mode 100644 (file)
index 0000000..a2fb63f
--- /dev/null
@@ -0,0 +1,25 @@
+Loaded 1 package from deptestomatic/exercise-inconsistent3-system.xml
+Loaded 1 package from deptestomatic/exercise-inconsistent3-packages.xml
+
+------------------------------------------------
+
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = cc3a27b0
+>!> install shadow-1.1-1[test]
+>!> installs=1, upgrades=0, uninstalls=0
+download size=0.1k, install size=0.4k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+shadow-1.1-1[test]:  needed by  [at-1-1]
+Installing shadow-1.1-1[test]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-test.solution
new file mode 100644 (file)
index 0000000..6563d9b
--- /dev/null
@@ -0,0 +1,3 @@
+>!> Solution #1:
+>!> install shadow-1.1-1[test]
+>!> installs=1, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent3-test.xml
new file mode 100644 (file)
index 0000000..25f60a4
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-inconsistent3-system.xml"/>
+  <channel name="test" file="exercise-inconsistent3-packages.xml"/>
+</setup>
+
+<!-- 
+# installed at has an open dependeny which is satisfied by installing shadow
+JUST_SOLVE
+ -->
+<trial>
+  <verify/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-packages.err b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-packages.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-packages.out b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-packages.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-packages.xml b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-packages.xml
new file mode 100644 (file)
index 0000000..4f06ec3
--- /dev/null
@@ -0,0 +1,44 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>at</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1</version>
+          <release>1</release>
+          <filename>at.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='shadow'/>
+      </requires>
+    </package>
+    <package>
+      <name>shadow</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>shadow.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='libsomething.so.0'/>
+      </requires>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-system.err b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-system.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-system.out b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-system.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-system.xml b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-system.xml
new file mode 100644 (file)
index 0000000..4f06ec3
--- /dev/null
@@ -0,0 +1,44 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>at</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1</version>
+          <release>1</release>
+          <filename>at.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='shadow'/>
+      </requires>
+    </package>
+    <package>
+      <name>shadow</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>shadow.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='libsomething.so.0'/>
+      </requires>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-test.diff
new file mode 100644 (file)
index 0000000..d0e9359
--- /dev/null
@@ -0,0 +1,7 @@
+--- exercise-inconsistent4-test.solution       2005-11-06 12:22:40.000000000 +0100
++++ exercise-inconsistent4-test.mistake        2005-11-30 10:37:36.000000000 +0100
+@@ -1,4 +0,0 @@
+->!> Solution #1:
+->!> remove  at-1-1
+->!> remove  shadow-1.0-1
+->!> installs=0, upgrades=0, uninstalls=2
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-test.err b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-test.out b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-test.out
new file mode 100644 (file)
index 0000000..ad70672
--- /dev/null
@@ -0,0 +1,30 @@
+Loaded 2 packages from deptestomatic/exercise-inconsistent4-system.xml
+Loaded 2 packages from deptestomatic/exercise-inconsistent4-packages.xml
+
+------------------------------------------------
+
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 50b4172d
+>!> remove  at-1-1
+>!> remove  shadow-1.0-1
+>!> installs=0, upgrades=0, uninstalls=2
+download size=0.0k, install size=0.0k
+total priority=0, min priority=2147483647, max priority=0
+other penalties=0
+- - - - - - - - - -
+There are no installable providers of libsomething.so.0 for shadow-1.0-1
+shadow-1.0-1: missing requirement libsomething.so.0
+There are no installable providers of shadow for at-1-1
+shadow provides shadow-1.0-1, but is scheduled to be uninstalled.
+shadow provides shadow-1.0-1, but it is uninstallable.  Try installing it on its own for more details.
+at-1-1: depended on  [shadow-1.0-1]
+at-1-1: missing requirement shadow
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-test.solution
new file mode 100644 (file)
index 0000000..0d3c537
--- /dev/null
@@ -0,0 +1,4 @@
+>!> Solution #1:
+>!> remove  at-1-1
+>!> remove  shadow-1.0-1
+>!> installs=0, upgrades=0, uninstalls=2
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent4-test.xml
new file mode 100644 (file)
index 0000000..f3ee144
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-inconsistent4-system.xml"/>
+  <channel name="test" file="exercise-inconsistent4-packages.xml"/>
+</setup>
+
+<!-- 
+# installed shadow has an open dependeny, the available shadow has the same problem
+JUST_SOLVE
+ -->
+<trial>
+  <verify/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-packages.err b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-packages.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-packages.out b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-packages.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-packages.xml b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-packages.xml
new file mode 100644 (file)
index 0000000..8a47cba
--- /dev/null
@@ -0,0 +1,64 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>libsomething</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1</version>
+          <release>1</release>
+          <filename>libsomething.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libsomething.so.0'/>
+      </provides>
+    </package>
+    <package>
+      <name>at</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1</version>
+          <release>1</release>
+          <filename>at.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='shadow'/>
+      </requires>
+    </package>
+    <package>
+      <name>shadow</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>shadow.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='libsomething.so.0'/>
+      </requires>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-system.err b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-system.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-system.out b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-system.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-system.xml b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-system.xml
new file mode 100644 (file)
index 0000000..4f06ec3
--- /dev/null
@@ -0,0 +1,44 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>at</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1</version>
+          <release>1</release>
+          <filename>at.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='shadow'/>
+      </requires>
+    </package>
+    <package>
+      <name>shadow</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>shadow.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='libsomething.so.0'/>
+      </requires>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-test.diff
new file mode 100644 (file)
index 0000000..0ab7e54
--- /dev/null
@@ -0,0 +1,6 @@
+--- exercise-inconsistent5-test.solution       2005-11-06 12:23:09.000000000 +0100
++++ exercise-inconsistent5-test.mistake        2005-11-30 10:37:36.000000000 +0100
+@@ -1,3 +0,0 @@
+->!> Solution #1:
+->!> install libsomething-1-1[test]
+->!> installs=1, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-test.err b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-test.out b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-test.out
new file mode 100644 (file)
index 0000000..17cc13e
--- /dev/null
@@ -0,0 +1,25 @@
+Loaded 2 packages from deptestomatic/exercise-inconsistent5-system.xml
+Loaded 3 packages from deptestomatic/exercise-inconsistent5-packages.xml
+
+------------------------------------------------
+
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = c98a7280
+>!> install libsomething-1-1[test]
+>!> installs=1, upgrades=0, uninstalls=0
+download size=0.1k, install size=0.4k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+libsomething-1-1[test]:  needed by  [shadow-1.0-1]
+Installing libsomething-1-1[test]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-test.solution
new file mode 100644 (file)
index 0000000..4bcb50a
--- /dev/null
@@ -0,0 +1,3 @@
+>!> Solution #1:
+>!> install libsomething-1-1[test]
+>!> installs=1, upgrades=0, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent5-test.xml
new file mode 100644 (file)
index 0000000..84ba466
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-inconsistent5-system.xml"/>
+  <channel name="test" file="exercise-inconsistent5-packages.xml"/>
+</setup>
+
+<!-- 
+# installed shadow has an open dependeny, shadow is available in the same
+# version but also a package that fixes the dependency
+JUST_SOLVE
+ -->
+<trial>
+  <verify/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-packages.err b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-packages.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-packages.out b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-packages.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-packages.xml b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-packages.xml
new file mode 100644 (file)
index 0000000..72e570d
--- /dev/null
@@ -0,0 +1,21 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>kaffeine</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1</version>
+          <release>1</release>
+          <filename>kaffeine.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-system.err b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-system.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-system.out b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-system.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-system.xml b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-system.xml
new file mode 100644 (file)
index 0000000..965a184
--- /dev/null
@@ -0,0 +1,24 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>kaffeine</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2</version>
+          <release>1</release>
+          <filename>kaffeine.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='libkdesomething.so'/>
+      </requires>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-test.diff
new file mode 100644 (file)
index 0000000..62b9535
--- /dev/null
@@ -0,0 +1,6 @@
+--- exercise-inconsistent6-test.solution       2005-11-06 12:24:53.000000000 +0100
++++ exercise-inconsistent6-test.mistake        2005-11-30 10:37:36.000000000 +0100
+@@ -1,3 +0,0 @@
+->!> Solution #1:
+->!> remove  kaffeine-2-1
+->!> installs=0, upgrades=0, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-test.err b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-test.out b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-test.out
new file mode 100644 (file)
index 0000000..7807a22
--- /dev/null
@@ -0,0 +1,24 @@
+Loaded 1 package from deptestomatic/exercise-inconsistent6-system.xml
+Loaded 1 package from deptestomatic/exercise-inconsistent6-packages.xml
+
+------------------------------------------------
+
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 2bb2fbd4
+>!> remove  kaffeine-2-1
+>!> installs=0, upgrades=0, uninstalls=1
+download size=0.0k, install size=0.0k
+total priority=0, min priority=2147483647, max priority=0
+other penalties=0
+- - - - - - - - - -
+There are no installable providers of libkdesomething.so for kaffeine-2-1
+kaffeine-2-1: missing requirement libkdesomething.so
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-test.solution
new file mode 100644 (file)
index 0000000..99b2d11
--- /dev/null
@@ -0,0 +1,3 @@
+>!> Solution #1:
+>!> remove  kaffeine-2-1
+>!> installs=0, upgrades=0, uninstalls=1
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-inconsistent6-test.xml
new file mode 100644 (file)
index 0000000..1116fa1
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-inconsistent6-system.xml"/>
+  <channel name="test" file="exercise-inconsistent6-packages.xml"/>
+</setup>
+
+<!-- 
+# installed kaffeine has an open dependeny, kaffeine is available in older version
+JUST_SOLVE
+ -->
+<trial>
+  <verify/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-packages.err b/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-packages.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-packages.out b/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-packages.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-packages.xml b/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-packages.xml
new file mode 100644 (file)
index 0000000..b204d68
--- /dev/null
@@ -0,0 +1,53 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>kdelibs3</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.1</version>
+          <release>73</release>
+          <filename>kdelibs3.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='kdelibs'/>
+      </provides>
+      <obsoletes>
+        <dep name='kdesupport'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>kdelibs3-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>3.1</version>
+          <release>73</release>
+          <filename>kdelibs3-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='kdelibs-devel'/>
+      </provides>
+      <requires>
+        <dep name='kdelibs3' op='=' version='3.1'/>
+      </requires>
+      <obsoletes>
+        <dep name='kdesupport-devel'/>
+      </obsoletes>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-system.err b/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-system.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-system.out b/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-system.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-system.xml b/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-system.xml
new file mode 100644 (file)
index 0000000..1c69ff7
--- /dev/null
@@ -0,0 +1,79 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>kdelibs-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.1</version>
+          <release>4</release>
+          <filename>kdelibs-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='kdelibs'/>
+        <dep name='kdesupport-devel'/>
+      </requires>
+    </package>
+    <package>
+      <name>kdesupport-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.1</version>
+          <release>5</release>
+          <filename>kdesupport-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='kdesupport'/>
+      </requires>
+    </package>
+    <package>
+      <name>kdesupport</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.1</version>
+          <release>5</release>
+          <filename>kdesupport.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>kdelibs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0.1</version>
+          <release>4</release>
+          <filename>kdelibs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-test.diff
new file mode 100644 (file)
index 0000000..ea45780
--- /dev/null
@@ -0,0 +1,12 @@
+--- exercise-kdelibsobs-test.solution  2005-11-05 21:30:38.000000000 +0100
++++ exercise-kdelibsobs-test.mistake   2005-11-30 10:37:36.000000000 +0100
+@@ -1,9 +0,0 @@
+->!> Installing kdelibs3-devel from channel test
+->!> Installing kdelibs3 from channel test
+->!> Solution #1:
+->!> install kdelibs3-3.1-73[test]
+->!> install kdelibs3-devel-3.1-73[test]
+->!> remove  kdelibs-devel-2.0.1-4
+->!> remove  kdesupport-2.0.1-5
+->!> remove  kdesupport-devel-2.0.1-5
+->!> installs=2, upgrades=0, uninstalls=3
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-test.err b/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-test.out b/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-test.out
new file mode 100644 (file)
index 0000000..69e6d45
--- /dev/null
@@ -0,0 +1,39 @@
+Loaded 4 packages from deptestomatic/exercise-kdelibsobs-system.xml
+Loaded 2 packages from deptestomatic/exercise-kdelibsobs-packages.xml
+
+------------------------------------------------
+
+>!> Installing kdelibs3-devel from channel test
+>!> Installing kdelibs3 from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 3f8566
+>!> install kdelibs3-3.1-73[test]
+>!> install kdelibs3-devel-3.1-73[test]
+>!> remove  kdelibs-devel-2.0.1-4
+>!> remove  kdesupport-2.0.1-5
+>!> remove  kdesupport-devel-2.0.1-5
+>!> installs=2, upgrades=0, uninstalls=3
+download size=0.2k, install size=0.9k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing kdelibs3-devel-3.1-73[test]
+Installing kdelibs3-3.1-73[test]
+kdesupport-2.0.1-5: replaced by  [kdelibs3-3.1-73]
+kdesupport-devel-2.0.1-5: replaced by  [kdelibs3-devel-3.1-73]
+There are no installable providers of kdesupport-devel for kdelibs-devel-2.0.1-4
+kdesupport-devel provides kdesupport-devel-2.0.1-5, but is scheduled to be uninstalled.
+There are no installable providers of kdesupport for kdesupport-devel-2.0.1-5
+kdesupport provides kdesupport-2.0.1-5, but is scheduled to be uninstalled.
+kdelibs-devel-2.0.1-4: depended on  [kdesupport-devel-2.0.1-5]
+kdelibs-devel-2.0.1-4: missing requirement kdesupport-devel
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-test.solution
new file mode 100644 (file)
index 0000000..40c6317
--- /dev/null
@@ -0,0 +1,9 @@
+>!> Installing kdelibs3-devel from channel test
+>!> Installing kdelibs3 from channel test
+>!> Solution #1:
+>!> install kdelibs3-3.1-73[test]
+>!> install kdelibs3-devel-3.1-73[test]
+>!> remove  kdelibs-devel-2.0.1-4
+>!> remove  kdesupport-2.0.1-5
+>!> remove  kdesupport-devel-2.0.1-5
+>!> installs=2, upgrades=0, uninstalls=3
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-kdelibsobs-test.xml
new file mode 100644 (file)
index 0000000..222e232
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-kdelibsobs-system.xml"/>
+  <channel name="test" file="exercise-kdelibsobs-packages.xml"/>
+</setup>
+
+<!-- 
+kdelibs3-devel kdelibs3
+ -->
+<trial>
+  <install channel="test" package="kdelibs3-devel"/>
+  <install channel="test" package="kdelibs3"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-01-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-01-test.diff
new file mode 100644 (file)
index 0000000..aef06ca
--- /dev/null
@@ -0,0 +1,9 @@
+--- exercise-obscureobsoletes-01-test.solution 2005-11-06 11:55:37.000000000 +0100
++++ exercise-obscureobsoletes-01-test.mistake  2005-11-30 10:37:36.000000000 +0100
+@@ -1,6 +0,0 @@
+->!> Installing foo2 from channel test
+->!> Solution #1:
+->!> install foo2-2.0-1[test]
+->!> remove  foo-1.0-1
+->!> remove  foo-devel-1.1-1
+->!> installs=1, upgrades=0, uninstalls=2
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-01-test.err b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-01-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-01-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-01-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-01-test.out b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-01-test.out
new file mode 100644 (file)
index 0000000..9def845
--- /dev/null
@@ -0,0 +1,29 @@
+Loaded 6 packages from deptestomatic/exercise-obscureobsoletes-system.xml
+Loaded 12 packages from deptestomatic/exercise-obscureobsoletes-packages.xml
+
+------------------------------------------------
+
+>!> Installing foo2 from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = e5994a26
+>!> install foo2-2.0-1[test]
+>!> remove  foo-1.0-1
+>!> remove  foo-devel-1.1-1
+>!> installs=1, upgrades=0, uninstalls=2
+download size=0.1k, install size=0.4k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing foo2-2.0-1[test]
+foo-devel-1.1-1: replaced by  [foo2-2.0-1]
+foo-1.0-1: replaced by  [foo2-2.0-1]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-01-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-01-test.solution
new file mode 100644 (file)
index 0000000..bbac939
--- /dev/null
@@ -0,0 +1,6 @@
+>!> Installing foo2 from channel test
+>!> Solution #1:
+>!> install foo2-2.0-1[test]
+>!> remove  foo-1.0-1
+>!> remove  foo-devel-1.1-1
+>!> installs=1, upgrades=0, uninstalls=2
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-01-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-01-test.xml
new file mode 100644 (file)
index 0000000..d029692
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-obscureobsoletes-system.xml"/>
+  <channel name="test" file="exercise-obscureobsoletes-packages.xml"/>
+</setup>
+
+<!-- 
+# 1 foo2 obsoletes foo and foo-devel. foo-devel requires foo. No problem since
+# foo-devel is obsoleted
+foo2
+ -->
+<trial>
+  <install channel="test" package="foo2"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-02-test.err b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-02-test.err
new file mode 100644 (file)
index 0000000..8aed03e
--- /dev/null
@@ -0,0 +1,2 @@
+Unknown tag 'lock' in trial
+Unknown tag 'lock' in trial
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-02-test.out b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-02-test.out
new file mode 100644 (file)
index 0000000..9def845
--- /dev/null
@@ -0,0 +1,29 @@
+Loaded 6 packages from deptestomatic/exercise-obscureobsoletes-system.xml
+Loaded 12 packages from deptestomatic/exercise-obscureobsoletes-packages.xml
+
+------------------------------------------------
+
+>!> Installing foo2 from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = e5994a26
+>!> install foo2-2.0-1[test]
+>!> remove  foo-1.0-1
+>!> remove  foo-devel-1.1-1
+>!> installs=1, upgrades=0, uninstalls=2
+download size=0.1k, install size=0.4k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing foo2-2.0-1[test]
+foo-devel-1.1-1: replaced by  [foo2-2.0-1]
+foo-1.0-1: replaced by  [foo2-2.0-1]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-02-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-02-test.xml
new file mode 100644 (file)
index 0000000..bd053a6
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-obscureobsoletes-system.xml"/>
+  <channel name="test" file="exercise-obscureobsoletes-packages.xml"/>
+</setup>
+
+<!-- 
+# 2 same thing but lets see what happens if packages are protected
+foo2 @foo @foo-devel
+ -->
+<trial>
+  <lock package="foo" channel="test"/>
+  <lock package="foo-devel" channel="test"/>
+  <install channel="test" package="foo2"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-03-test.err b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-03-test.err
new file mode 100644 (file)
index 0000000..8aed03e
--- /dev/null
@@ -0,0 +1,2 @@
+Unknown tag 'lock' in trial
+Unknown tag 'lock' in trial
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-03-test.out b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-03-test.out
new file mode 100644 (file)
index 0000000..f01781e
--- /dev/null
@@ -0,0 +1,25 @@
+Loaded 6 packages from deptestomatic/exercise-obscureobsoletes-system.xml
+Loaded 12 packages from deptestomatic/exercise-obscureobsoletes-packages.xml
+
+------------------------------------------------
+
+>!> Installing foo2old from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 31bb43cf
+>!> install foo2old-2.0-1[test]
+>!> installs=1, upgrades=0, uninstalls=0
+download size=0.1k, install size=0.4k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing foo2old-2.0-1[test]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-03-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-03-test.xml
new file mode 100644 (file)
index 0000000..887cd28
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-obscureobsoletes-system.xml"/>
+  <channel name="test" file="exercise-obscureobsoletes-packages.xml"/>
+</setup>
+
+<!-- 
+# 3 same but this time via obsoletion of provides
+foo2old
+ -->
+<trial>
+  <lock package="foo" channel="test"/>
+  <lock package="foo-devel" channel="test"/>
+  <install channel="test" package="foo2old"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-04-test.err b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-04-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-04-test.out b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-04-test.out
new file mode 100644 (file)
index 0000000..d763ccf
--- /dev/null
@@ -0,0 +1,25 @@
+Loaded 6 packages from deptestomatic/exercise-obscureobsoletes-system.xml
+Loaded 12 packages from deptestomatic/exercise-obscureobsoletes-packages.xml
+
+------------------------------------------------
+
+>!> Installing barold from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = c44b95d0
+>!> install barold-4.0-1[test]
+>!> installs=1, upgrades=0, uninstalls=0
+download size=0.1k, install size=0.4k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing barold-4.0-1[test]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-04-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-04-test.xml
new file mode 100644 (file)
index 0000000..b75dfe0
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-obscureobsoletes-system.xml"/>
+  <channel name="test" file="exercise-obscureobsoletes-packages.xml"/>
+</setup>
+
+<!-- 
+# 4 barold replaces bar via provides. bar-devel gets broken
+barold
+ -->
+<trial>
+  <install channel="test" package="barold"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-05-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-05-test.diff
new file mode 100644 (file)
index 0000000..408dc3e
--- /dev/null
@@ -0,0 +1,9 @@
+--- exercise-obscureobsoletes-05-test.solution 2005-11-06 11:59:29.000000000 +0100
++++ exercise-obscureobsoletes-05-test.mistake  2005-11-30 10:37:36.000000000 +0100
+@@ -1,6 +0,0 @@
+->!> Installing barold2 from channel test
+->!> Solution #1:
+->!> install barold2-4.0-1[test]
+->!> remove  bar2-1.0-1
+->!> remove  bar2-devel-1.1-1
+->!> installs=1, upgrades=0, uninstalls=2
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-05-test.err b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-05-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-05-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-05-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-05-test.out b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-05-test.out
new file mode 100644 (file)
index 0000000..f862038
--- /dev/null
@@ -0,0 +1,32 @@
+Loaded 6 packages from deptestomatic/exercise-obscureobsoletes-system.xml
+Loaded 12 packages from deptestomatic/exercise-obscureobsoletes-packages.xml
+
+------------------------------------------------
+
+>!> Installing barold2 from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 5000cfde
+>!> install barold2-4.0-1[test]
+>!> remove  bar2-1.0-1
+>!> remove  bar2-devel-1.1-1
+>!> installs=1, upgrades=0, uninstalls=2
+download size=0.1k, install size=0.4k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing barold2-4.0-1[test]
+bar2-1.0-1: replaced by  [barold2-4.0-1]
+There are no installable providers of bar2 == 1.0-1 for bar2-devel-1.1-1
+bar2 provides bar2-1.0-1, but is scheduled to be uninstalled.
+bar2-devel-1.1-1: depended on  [bar2-1.0-1]
+bar2-devel-1.1-1: missing requirement bar2 == 1.0-1
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-05-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-05-test.solution
new file mode 100644 (file)
index 0000000..48799cc
--- /dev/null
@@ -0,0 +1,6 @@
+>!> Installing barold2 from channel test
+>!> Solution #1:
+>!> install barold2-4.0-1[test]
+>!> remove  bar2-1.0-1
+>!> remove  bar2-devel-1.1-1
+>!> installs=1, upgrades=0, uninstalls=2
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-05-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-05-test.xml
new file mode 100644 (file)
index 0000000..7ec6028
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-obscureobsoletes-system.xml"/>
+  <channel name="test" file="exercise-obscureobsoletes-packages.xml"/>
+</setup>
+
+<!-- 
+# 5 barold2 obsoletes bar2 which is needed by bar2-devel. bar2-devel however also
+# provides barold2 and is therefore replaced => no problem
+barold2
+ -->
+<trial>
+  <install channel="test" package="barold2"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-06-test.err b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-06-test.err
new file mode 100644 (file)
index 0000000..8aed03e
--- /dev/null
@@ -0,0 +1,2 @@
+Unknown tag 'lock' in trial
+Unknown tag 'lock' in trial
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-06-test.out b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-06-test.out
new file mode 100644 (file)
index 0000000..f862038
--- /dev/null
@@ -0,0 +1,32 @@
+Loaded 6 packages from deptestomatic/exercise-obscureobsoletes-system.xml
+Loaded 12 packages from deptestomatic/exercise-obscureobsoletes-packages.xml
+
+------------------------------------------------
+
+>!> Installing barold2 from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 5000cfde
+>!> install barold2-4.0-1[test]
+>!> remove  bar2-1.0-1
+>!> remove  bar2-devel-1.1-1
+>!> installs=1, upgrades=0, uninstalls=2
+download size=0.1k, install size=0.4k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing barold2-4.0-1[test]
+bar2-1.0-1: replaced by  [barold2-4.0-1]
+There are no installable providers of bar2 == 1.0-1 for bar2-devel-1.1-1
+bar2 provides bar2-1.0-1, but is scheduled to be uninstalled.
+bar2-devel-1.1-1: depended on  [bar2-1.0-1]
+bar2-devel-1.1-1: missing requirement bar2 == 1.0-1
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-06-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-06-test.xml
new file mode 100644 (file)
index 0000000..ffabe6a
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-obscureobsoletes-system.xml"/>
+  <channel name="test" file="exercise-obscureobsoletes-packages.xml"/>
+</setup>
+
+<!-- 
+# 6 same thing but lets see what happens if packages are protected
+barold2 @bar2 @bar2-devel
+ -->
+<trial>
+  <lock package="bar2" channel="test"/>
+  <lock package="bar2-devel" channel="test"/>
+  <install channel="test" package="barold2"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-07-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-07-test.diff
new file mode 100644 (file)
index 0000000..7c10213
--- /dev/null
@@ -0,0 +1,5 @@
+--- exercise-obscureobsoletes-07-test.solution 2005-11-06 12:05:40.000000000 +0100
++++ exercise-obscureobsoletes-07-test.mistake  2005-11-30 10:37:36.000000000 +0100
+@@ -1,2 +0,0 @@
+->!> Installing aaa from channel test
+->!> Installing bbb from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-07-test.err b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-07-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-07-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-07-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-07-test.out b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-07-test.out
new file mode 100644 (file)
index 0000000..56c9629
--- /dev/null
@@ -0,0 +1,19 @@
+Loaded 6 packages from deptestomatic/exercise-obscureobsoletes-system.xml
+Loaded 12 packages from deptestomatic/exercise-obscureobsoletes-packages.xml
+
+------------------------------------------------
+
+>!> Installing aaa from channel test
+>!> Installing bbb from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Pruned solutions: 0
+Deferred solutions: 0
+
+Failed Solution: 
+Download Size: 246, Install Size: 912, Total Priority: 0, Min Priority: 800, Max Priority: 800, Other Penalties: 0, Invalid
+- - - - - - - - - -
+Installing aaa-1.0-1[test]
+Installing bbb-2.0-1[test]
+[ERROR] A conflict over  bbb (bbb-2.0-1) requires the removal of the to-be-installed resolvable bbb-2.0-1[test] [aaa-1.0-1]
+[ERROR] Marking this resolution attempt as invalid.
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-07-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-07-test.solution
new file mode 100644 (file)
index 0000000..e14e390
--- /dev/null
@@ -0,0 +1,2 @@
+>!> Installing aaa from channel test
+>!> Installing bbb from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-07-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-07-test.xml
new file mode 100644 (file)
index 0000000..ba96077
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-obscureobsoletes-system.xml"/>
+  <channel name="test" file="exercise-obscureobsoletes-packages.xml"/>
+</setup>
+
+<!-- 
+# 7 aaa obsoletes bbb, should raise problem
+aaa bbb
+ -->
+<trial>
+  <install channel="test" package="aaa"/>
+  <install channel="test" package="bbb"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-08-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-08-test.diff
new file mode 100644 (file)
index 0000000..b6491fa
--- /dev/null
@@ -0,0 +1,5 @@
+--- exercise-obscureobsoletes-08-test.solution 2005-11-06 12:06:33.000000000 +0100
++++ exercise-obscureobsoletes-08-test.mistake  2005-11-30 10:37:36.000000000 +0100
+@@ -1,2 +0,0 @@
+->!> Installing aaa from channel test
+->!> Installing ccc from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-08-test.err b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-08-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-08-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-08-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-08-test.out b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-08-test.out
new file mode 100644 (file)
index 0000000..3126bc1
--- /dev/null
@@ -0,0 +1,21 @@
+Loaded 6 packages from deptestomatic/exercise-obscureobsoletes-system.xml
+Loaded 12 packages from deptestomatic/exercise-obscureobsoletes-packages.xml
+
+------------------------------------------------
+
+>!> Installing aaa from channel test
+>!> Installing ccc from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Pruned solutions: 0
+Deferred solutions: 0
+
+Failed Solution: 
+Download Size: 246, Install Size: 912, Total Priority: 0, Min Priority: 800, Max Priority: 800, Other Penalties: 0, Invalid
+- - - - - - - - - -
+Installing aaa-1.0-1[test]
+Installing ccc-1.0-1[test]
+Marking bbb-2.0-1[test] as uninstallable due to conflicts over  bbb (bbb-2.0-1) from aaa-1.0-1[test] [aaa-1.0-1, bbb-2.0-1]
+[ERROR] Can't install bbb-2.0-1 since it is already marked as needing to be uninstalled
+[ERROR] Marking this resolution attempt as invalid.
+bbb-2.0-1[test]:  needed by  [ccc-1.0-1]
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-08-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-08-test.solution
new file mode 100644 (file)
index 0000000..d8ae6db
--- /dev/null
@@ -0,0 +1,2 @@
+>!> Installing aaa from channel test
+>!> Installing ccc from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-08-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-08-test.xml
new file mode 100644 (file)
index 0000000..5fdedab
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-obscureobsoletes-system.xml"/>
+  <channel name="test" file="exercise-obscureobsoletes-packages.xml"/>
+</setup>
+
+<!-- 
+# 8 as above but bbb is required by ccc
+aaa ccc
+ -->
+<trial>
+  <install channel="test" package="aaa"/>
+  <install channel="test" package="ccc"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-09-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-09-test.diff
new file mode 100644 (file)
index 0000000..fca1216
--- /dev/null
@@ -0,0 +1,5 @@
+--- exercise-obscureobsoletes-09-test.solution 2005-11-06 12:06:55.000000000 +0100
++++ exercise-obscureobsoletes-09-test.mistake  2005-11-30 10:37:36.000000000 +0100
+@@ -1,2 +0,0 @@
+->!> Installing ddd from channel test
+->!> Installing ccc from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-09-test.err b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-09-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-09-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-09-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-09-test.out b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-09-test.out
new file mode 100644 (file)
index 0000000..fb56527
--- /dev/null
@@ -0,0 +1,23 @@
+Loaded 6 packages from deptestomatic/exercise-obscureobsoletes-system.xml
+Loaded 12 packages from deptestomatic/exercise-obscureobsoletes-packages.xml
+
+------------------------------------------------
+
+>!> Installing ddd from channel test
+>!> Installing ccc from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Pruned solutions: 0
+Deferred solutions: 0
+
+Failed Solution: 
+Download Size: 492, Install Size: 1824, Total Priority: 0, Min Priority: 800, Max Priority: 800, Other Penalties: 0, Invalid
+- - - - - - - - - -
+Installing ddd-1.0-1[test]
+Installing ccc-1.0-1[test]
+aaa-1.0-1[test]:  needed by  [ddd-1.0-1]
+Installing aaa-1.0-1[test]
+bbb-2.0-1[test]:  needed by  [ccc-1.0-1]
+Installing bbb-2.0-1[test]
+[ERROR] A conflict over  bbb (bbb-2.0-1) requires the removal of the to-be-installed resolvable bbb-2.0-1[test] [aaa-1.0-1]
+[ERROR] Marking this resolution attempt as invalid.
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-09-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-09-test.solution
new file mode 100644 (file)
index 0000000..732c834
--- /dev/null
@@ -0,0 +1,2 @@
+>!> Installing ddd from channel test
+>!> Installing ccc from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-09-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-09-test.xml
new file mode 100644 (file)
index 0000000..2eb0037
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-obscureobsoletes-system.xml"/>
+  <channel name="test" file="exercise-obscureobsoletes-packages.xml"/>
+</setup>
+
+<!-- 
+# 9 aaa required by ddd, bbb required by ccc
+ddd ccc
+ -->
+<trial>
+  <install channel="test" package="ddd"/>
+  <install channel="test" package="ccc"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-10-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-10-test.diff
new file mode 100644 (file)
index 0000000..c36540c
--- /dev/null
@@ -0,0 +1,5 @@
+--- exercise-obscureobsoletes-10-test.solution 2005-11-06 12:07:30.000000000 +0100
++++ exercise-obscureobsoletes-10-test.mistake  2005-11-30 10:37:36.000000000 +0100
+@@ -1,2 +0,0 @@
+->!> Installing eee from channel test
+->!> Installing fff from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-10-test.err b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-10-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-10-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-10-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-10-test.out b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-10-test.out
new file mode 100644 (file)
index 0000000..e3fb67f
--- /dev/null
@@ -0,0 +1,19 @@
+Loaded 6 packages from deptestomatic/exercise-obscureobsoletes-system.xml
+Loaded 12 packages from deptestomatic/exercise-obscureobsoletes-packages.xml
+
+------------------------------------------------
+
+>!> Installing eee from channel test
+>!> Installing fff from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Pruned solutions: 0
+Deferred solutions: 0
+
+Failed Solution: 
+Download Size: 246, Install Size: 912, Total Priority: 0, Min Priority: 800, Max Priority: 800, Other Penalties: 0, Invalid
+- - - - - - - - - -
+Installing eee-1.0-1[test]
+Installing fff-1.0-1[test]
+[ERROR] A conflict over  eee (eee-1.0-1) requires the removal of the to-be-installed resolvable eee-1.0-1[test] [fff-1.0-1]
+[ERROR] Marking this resolution attempt as invalid.
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-10-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-10-test.solution
new file mode 100644 (file)
index 0000000..7d844aa
--- /dev/null
@@ -0,0 +1,2 @@
+>!> Installing eee from channel test
+>!> Installing fff from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-10-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-10-test.xml
new file mode 100644 (file)
index 0000000..69723c2
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-obscureobsoletes-system.xml"/>
+  <channel name="test" file="exercise-obscureobsoletes-packages.xml"/>
+</setup>
+
+<!-- 
+# 10 fff obsoletes eee. should raise conflict
+eee fff
+ -->
+<trial>
+  <install channel="test" package="eee"/>
+  <install channel="test" package="fff"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-11-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-11-test.diff
new file mode 100644 (file)
index 0000000..6f38ae5
--- /dev/null
@@ -0,0 +1,5 @@
+--- exercise-obscureobsoletes-11-test.solution 2005-11-06 12:07:45.000000000 +0100
++++ exercise-obscureobsoletes-11-test.mistake  2005-11-30 10:37:36.000000000 +0100
+@@ -1,2 +0,0 @@
+->!> Installing ggg from channel test
+->!> Installing hhh from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-11-test.err b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-11-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-11-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-11-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-11-test.out b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-11-test.out
new file mode 100644 (file)
index 0000000..dc404ef
--- /dev/null
@@ -0,0 +1,23 @@
+Loaded 6 packages from deptestomatic/exercise-obscureobsoletes-system.xml
+Loaded 12 packages from deptestomatic/exercise-obscureobsoletes-packages.xml
+
+------------------------------------------------
+
+>!> Installing ggg from channel test
+>!> Installing hhh from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Pruned solutions: 0
+Deferred solutions: 0
+
+Failed Solution: 
+Download Size: 492, Install Size: 1824, Total Priority: 0, Min Priority: 800, Max Priority: 800, Other Penalties: 0, Invalid
+- - - - - - - - - -
+Installing ggg-1.0-1[test]
+Installing hhh-1.0-1[test]
+fff-1.0-1[test]:  needed by  [ggg-1.0-1]
+Installing fff-1.0-1[test]
+eee-1.0-1[test]:  needed by  [hhh-1.0-1]
+Installing eee-1.0-1[test]
+[ERROR] A conflict over  eee (eee-1.0-1) requires the removal of the to-be-installed resolvable eee-1.0-1[test] [fff-1.0-1]
+[ERROR] Marking this resolution attempt as invalid.
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-11-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-11-test.solution
new file mode 100644 (file)
index 0000000..a9be16f
--- /dev/null
@@ -0,0 +1,2 @@
+>!> Installing ggg from channel test
+>!> Installing hhh from channel test
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-11-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-11-test.xml
new file mode 100644 (file)
index 0000000..41b33ae
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-obscureobsoletes-system.xml"/>
+  <channel name="test" file="exercise-obscureobsoletes-packages.xml"/>
+</setup>
+
+<!-- 
+# 11 same but via deps
+ggg hhh
+ -->
+<trial>
+  <install channel="test" package="ggg"/>
+  <install channel="test" package="hhh"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-packages.err b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-packages.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-packages.out b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-packages.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-packages.xml b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-packages.xml
new file mode 100644 (file)
index 0000000..144b9e0
--- /dev/null
@@ -0,0 +1,236 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>foo2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>foo2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <obsoletes>
+        <dep name='foo'/>
+        <dep name='foo-devel'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>foo2old</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>foo2old.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <obsoletes>
+        <dep name='fooold'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>barold</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.0</version>
+          <release>1</release>
+          <filename>barold.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>barold2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.0</version>
+          <release>1</release>
+          <filename>barold2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <obsoletes>
+        <dep name='bar2'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>aaa</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>aaa.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <obsoletes>
+        <dep name='bbb'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>bbb</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>2.0</version>
+          <release>1</release>
+          <filename>bbb.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>ccc</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>ccc.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='bbb'/>
+      </requires>
+    </package>
+    <package>
+      <name>ddd</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>ddd.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='aaa'/>
+      </requires>
+    </package>
+    <package>
+      <name>eee</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>eee.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>fff</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>fff.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <obsoletes>
+        <dep name='eee'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>ggg</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>ggg.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='fff'/>
+      </requires>
+    </package>
+    <package>
+      <name>hhh</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>hhh.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='eee'/>
+      </requires>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-system.err b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-system.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-system.out b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-system.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-system.xml b/zypp/solver/testsuite/deptestomatic/exercise-obscureobsoletes-system.xml
new file mode 100644 (file)
index 0000000..bd1e1c6
--- /dev/null
@@ -0,0 +1,127 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>foo</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>foo.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='fooold'/>
+      </provides>
+    </package>
+    <package>
+      <name>foo-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1</version>
+          <release>1</release>
+          <filename>foo-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='fooold'/>
+      </provides>
+      <requires>
+        <dep name='foo' op='=' version='1.0' release='1'/>
+      </requires>
+    </package>
+    <package>
+      <name>bar</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>bar.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='barold'/>
+      </provides>
+    </package>
+    <package>
+      <name>bar-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1</version>
+          <release>1</release>
+          <filename>bar-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='bar' op='=' version='1.0' release='1'/>
+      </requires>
+    </package>
+    <package>
+      <name>bar2</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>bar2.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+    </package>
+    <package>
+      <name>bar2-devel</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.1</version>
+          <release>1</release>
+          <filename>bar2-devel.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='barold2'/>
+      </provides>
+      <requires>
+        <dep name='bar2' op='=' version='1.0' release='1'/>
+      </requires>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-packages.err b/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-packages.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-packages.out b/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-packages.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-packages.xml b/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-packages.xml
new file mode 100644 (file)
index 0000000..37181e5
--- /dev/null
@@ -0,0 +1,84 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>mod_php4</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.3.4</version>
+          <release>43.4</release>
+          <filename>mod_php4.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='apache-mod_php4'/>
+      </requires>
+    </package>
+    <package>
+      <name>horde</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>1.0</version>
+          <release>1</release>
+          <filename>horde.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='mod_php'/>
+      </requires>
+    </package>
+    <package>
+      <name>apache-mod_php4</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.3.4</version>
+          <release>43.4</release>
+          <filename>apache-mod_php4.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='mod_php'/>
+      </provides>
+    </package>
+    <package>
+      <name>apache2-mod_php4</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.3.4</version>
+          <release>43.4</release>
+          <filename>apache2-mod_php4.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='mod_php'/>
+      </provides>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-system.err b/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-system.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-system.out b/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-system.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-system.xml b/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-system.xml
new file mode 100644 (file)
index 0000000..3d5ae1c
--- /dev/null
@@ -0,0 +1,24 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>mod_php4</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2.2</version>
+          <release>82</release>
+          <filename>mod_php4.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='mod_php'/>
+      </provides>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-test.diff
new file mode 100644 (file)
index 0000000..0a7ad57
--- /dev/null
@@ -0,0 +1,10 @@
+--- exercise-phpalternatives-test.solution     2005-11-06 12:10:51.000000000 +0100
++++ exercise-phpalternatives-test.mistake      2005-11-30 10:37:36.000000000 +0100
+@@ -1,7 +0,0 @@
+->!> Installing horde from channel test
+->!> Installing mod_php4 from channel test
+->!> Solution #1:
+->!> install apache-mod_php4-4.3.4-43.4[test]
+->!> install horde-1.0-1[test]
+->!> upgrade mod_php4-4.2.2-82 => mod_php4-4.3.4-43.4[test]
+->!> installs=2, upgrades=1, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-test.err b/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-test.out b/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-test.out
new file mode 100644 (file)
index 0000000..9ee1a50
--- /dev/null
@@ -0,0 +1,31 @@
+Loaded 1 package from deptestomatic/exercise-phpalternatives-system.xml
+Loaded 4 packages from deptestomatic/exercise-phpalternatives-packages.xml
+
+------------------------------------------------
+
+>!> Installing horde from channel test
+>!> Installing mod_php4 from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 644a3111
+>!> install apache-mod_php4-4.3.4-43.4[test]
+>!> install horde-1.0-1[test]
+>!> upgrade mod_php4-4.2.2-82 => mod_php4-4.3.4-43.4[test]
+>!> installs=2, upgrades=1, uninstalls=0
+download size=0.4k, install size=0.9k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing horde-1.0-1[test]
+Upgrading mod_php4-4.2.2-82 => mod_php4-4.3.4-43.4[test]
+apache-mod_php4-4.3.4-43.4[test]:  needed by  [mod_php4-4.3.4-43.4]
+Installing apache-mod_php4-4.3.4-43.4[test]
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-test.solution
new file mode 100644 (file)
index 0000000..cdcb463
--- /dev/null
@@ -0,0 +1,7 @@
+>!> Installing horde from channel test
+>!> Installing mod_php4 from channel test
+>!> Solution #1:
+>!> install apache-mod_php4-4.3.4-43.4[test]
+>!> install horde-1.0-1[test]
+>!> upgrade mod_php4-4.2.2-82 => mod_php4-4.3.4-43.4[test]
+>!> installs=2, upgrades=1, uninstalls=0
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-phpalternatives-test.xml
new file mode 100644 (file)
index 0000000..e995541
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-phpalternatives-system.xml"/>
+  <channel name="test" file="exercise-phpalternatives-packages.xml"/>
+</setup>
+
+<!-- 
+horde mod_php4
+ -->
+<trial>
+  <install channel="test" package="horde"/>
+  <install channel="test" package="mod_php4"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-xfree-packages.err b/zypp/solver/testsuite/deptestomatic/exercise-xfree-packages.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-xfree-packages.out b/zypp/solver/testsuite/deptestomatic/exercise-xfree-packages.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-xfree-packages.xml b/zypp/solver/testsuite/deptestomatic/exercise-xfree-packages.xml
new file mode 100644 (file)
index 0000000..c5e5a41
--- /dev/null
@@ -0,0 +1,47 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>XFree86-libs</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.3.0</version>
+          <release>1</release>
+          <filename>XFree86-libs.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='xshared'/>
+      </provides>
+      <obsoletes>
+        <dep name='xshared'/>
+      </obsoletes>
+    </package>
+    <package>
+      <name>XFree86</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.3.0</version>
+          <release>1</release>
+          <filename>XFree86.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <obsoletes>
+        <dep name='xf86'/>
+      </obsoletes>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-xfree-system.err b/zypp/solver/testsuite/deptestomatic/exercise-xfree-system.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-xfree-system.out b/zypp/solver/testsuite/deptestomatic/exercise-xfree-system.out
new file mode 100644 (file)
index 0000000..23d2c01
--- /dev/null
@@ -0,0 +1 @@
+Assertion in deptestomatic_multi.cc, 41 : node->equals("test")  --> exit
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-xfree-system.xml b/zypp/solver/testsuite/deptestomatic/exercise-xfree-system.xml
new file mode 100644 (file)
index 0000000..b4e7ef4
--- /dev/null
@@ -0,0 +1,44 @@
+<channel>
+  <subchannel>
+    <package>
+      <name>xf86</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2.0</version>
+          <release>176</release>
+          <filename>xf86.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <requires>
+        <dep name='libXrandr.so.1'/>
+      </requires>
+    </package>
+    <package>
+      <name>xshared</name>
+      <summary>A fake summary</summary>
+      <description>A fake description</description>
+      <section>misc</section>
+      <history>
+        <update>
+          <hid>12345</hid>
+          <version>4.2.0</version>
+          <release>176</release>
+          <filename>xshared.rpm</filename>
+          <filesize>123</filesize>
+          <installedsize>456</installedsize>
+          <md5sum>0f55f36a3240858038a281911605024e</md5sum>
+        </update>
+      </history>
+      <provides>
+        <dep name='libXrandr.so.1'/>
+      </provides>
+    </package>
+  </subchannel>
+</channel>
\ No newline at end of file
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-xfree-test.diff b/zypp/solver/testsuite/deptestomatic/exercise-xfree-test.diff
new file mode 100644 (file)
index 0000000..2a7dcb3
--- /dev/null
@@ -0,0 +1,11 @@
+--- exercise-xfree-test.solution       2005-11-06 12:12:34.000000000 +0100
++++ exercise-xfree-test.mistake        2005-11-30 10:37:36.000000000 +0100
+@@ -1,8 +0,0 @@
+->!> Installing XFree86 from channel test
+->!> Installing XFree86-libs from channel test
+->!> Solution #1:
+->!> install XFree86-4.3.0-1[test]
+->!> install XFree86-libs-4.3.0-1[test]
+->!> remove  xf86-4.2.0-176
+->!> remove  xshared-4.2.0-176
+->!> installs=2, upgrades=0, uninstalls=2
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-xfree-test.err b/zypp/solver/testsuite/deptestomatic/exercise-xfree-test.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-xfree-test.mistake b/zypp/solver/testsuite/deptestomatic/exercise-xfree-test.mistake
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-xfree-test.out b/zypp/solver/testsuite/deptestomatic/exercise-xfree-test.out
new file mode 100644 (file)
index 0000000..90a4f65
--- /dev/null
@@ -0,0 +1,34 @@
+Loaded 2 packages from deptestomatic/exercise-xfree-system.xml
+Loaded 2 packages from deptestomatic/exercise-xfree-packages.xml
+
+------------------------------------------------
+
+>!> Installing XFree86 from channel test
+>!> Installing XFree86-libs from channel test
+Can't find rcd 1.x subscription file '/var/lib/rcd/subscriptions.xml'
+
+Completed solutions: 1
+Pruned solutions: 0
+Deferred solutions: 0
+Invalid solutions: 0
+
+Best Solution:
+
+>!> Solution #1:
+Checksum = 22a93a1c
+>!> install XFree86-4.3.0-1[test]
+>!> install XFree86-libs-4.3.0-1[test]
+>!> remove  xf86-4.2.0-176
+>!> remove  xshared-4.2.0-176
+>!> installs=2, upgrades=0, uninstalls=2
+download size=0.2k, install size=0.9k
+total priority=0, min priority=800, max priority=800
+other penalties=0
+- - - - - - - - - -
+Installing XFree86-4.3.0-1[test]
+Installing XFree86-libs-4.3.0-1[test]
+xshared-4.2.0-176: replaced by  [XFree86-libs-4.3.0-1]
+xf86-4.2.0-176: replaced by  [XFree86-4.3.0-1]
+There are no installable providers of libXrandr.so.1 for xf86-4.2.0-176
+xshared provides libXrandr.so.1, but is scheduled to be uninstalled.
+
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-xfree-test.solution b/zypp/solver/testsuite/deptestomatic/exercise-xfree-test.solution
new file mode 100644 (file)
index 0000000..a412870
--- /dev/null
@@ -0,0 +1,8 @@
+>!> Installing XFree86 from channel test
+>!> Installing XFree86-libs from channel test
+>!> Solution #1:
+>!> install XFree86-4.3.0-1[test]
+>!> install XFree86-libs-4.3.0-1[test]
+>!> remove  xf86-4.2.0-176
+>!> remove  xshared-4.2.0-176
+>!> installs=2, upgrades=0, uninstalls=2
diff --git a/zypp/solver/testsuite/deptestomatic/exercise-xfree-test.xml b/zypp/solver/testsuite/deptestomatic/exercise-xfree-test.xml
new file mode 100644 (file)
index 0000000..8cf9e00
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<test>
+<setup>
+  <system file="exercise-xfree-system.xml"/>
+  <channel name="test" file="exercise-xfree-packages.xml"/>
+</setup>
+
+<!-- 
+# XFree86 obsoletes xf86 which requires somthing from xshared which in turn is
+# obsoleted by XFree86-libs so there must not be aconflict
+# XXX: depends on the order in which both are checked
+XFree86 XFree86-libs
+ -->
+<trial>
+  <install channel="test" package="XFree86"/>
+  <install channel="test" package="XFree86-libs"/>
+</trial>
+
+</test>
diff --git a/zypp/solver/testsuite/deptestomatic/makesolution.sh b/zypp/solver/testsuite/deptestomatic/makesolution.sh
new file mode 100755 (executable)
index 0000000..39f686e
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/bash
+test=$1
+base=`basename $1 .xml`
+../../testsuite/deptestomatic $test | grep \>\!\> > $base.solution
diff --git a/zypp/solver/testsuite/deptestomatic_multi.cc b/zypp/solver/testsuite/deptestomatic_multi.cc
new file mode 100644 (file)
index 0000000..b763ac0
--- /dev/null
@@ -0,0 +1,775 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+
+/*
+ * deptestomatic.cc
+ *
+ * Copyright (C) 2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ */
+
+/*
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <libxml/parser.h>
+#include <libxml/xmlmemory.h>
+#include <zypp/solver/detail/libzypp_solver.h>
+
+#include <y2util/stringutil.h>
+
+int assertOutput( const char* output)
+{
+    printf( "Assertion in %s, %d : %s  --> exit\n",  __FILE__, __LINE__,
+             output );
+    exit (0);
+}
+
+# define assertExit(expr) \
+  (__ASSERT_VOID_CAST ((expr) ? 0 :             \
+                      (assertOutput (__STRING(expr)))))
+
+
+
+using namespace std;
+using namespace ZYPP;
+
+static MultiWorldPtr world = NULL;
+
+typedef list<unsigned int> ChecksumList;
+
+//---------------------------------------------------------------------------
+
+#if 0
+static void
+lock_resolvable (ResolvablePtr resolvable)
+{
+    RCResolvableDep *dep;
+    RCResolvableMatch *match;
+
+    dep = rc_resolvable_dep_new_from_spec (RC_RESOLVABLE_SPEC (resolvable),
+                                       RC_RELATION_EQUAL, RC_TYPE_RESOLVABLE,
+                                       RC_CHANNEL_ANY, false, false);
+
+    match = rc_resolvable_match_new ();
+    rc_resolvable_match_set_dep (match, dep);
+
+    rc_resolvable_dep_unref (dep);
+
+    rc_world_add_lock (rc_get_world (), match);
+}
+
+
+static bool
+remove_resolvable_cb (RCWorld *world, gpointer user_data)
+{
+    ResolvablePtr resolvable = user_data;
+
+    rc_world_store_remove_resolvable (RC_WORLD_STORE (world), resolvable);
+
+    return true;
+}
+
+
+static void
+remove_resolvable (ResolvablePtr resolvable)
+{
+    rc_world_multi_foreach_subworld_by_type (RC_WORLD_MULTI (world),
+                                            RC_TYPE_WORLD_STORE,
+                                            remove_resolvable_cb, resolvable);
+}
+
+/* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** */
+
+#endif // 0
+
+
+//==============================================================================================================================
+
+//---------------------------------------------------------------------------------------------------------------------
+// helper functions
+
+typedef list<string> StringList;
+
+static void
+assemble_install_cb (constResolvablePtr resolvable,
+                    ResolvableStatus status,
+                    void *data)
+{
+    StringList *slist = (StringList *)data;
+    string str = stringutil::form ("%-7s ",  resolvable->isInstalled() ? "|flag" : "install");
+    str += resolvable->asString();
+
+    slist->push_back (str);
+}
+
+
+static void
+assemble_uninstall_cb (constResolvablePtr resolvable,
+                      ResolvableStatus status,
+                      void *data)
+{
+    StringList *slist = (StringList *)data;
+    string str = stringutil::form ("%-7s ",  resolvable->isInstalled() ? "remove" : "|unflag");
+    str += resolvable->asString();
+
+    slist->push_back (str);
+}
+
+
+static void
+assemble_upgrade_cb (constResolvablePtr res1,
+                    ResolvableStatus status1,
+                    constResolvablePtr res2,
+                    ResolvableStatus status2,
+                    void *data)
+{
+    StringList *slist = (StringList *)data;
+    string str = "upgrade ";
+
+    str += res2->asString();
+    str += " => ";
+    str += res1->asString();
+
+    slist->push_back (str);
+}
+
+
+
+static void
+print_sep (void)
+{
+    printf ("\n------------------------------------------------\n\n");
+}
+
+
+static void
+print_important (const string & str)
+{
+    printf (">!> %s\n", str.c_str());
+}
+
+
+static void
+print_solution (ResolverContextPtr context, int *count, ChecksumList & checksum_list)
+{
+    if (context->isValid ()) {
+
+       StringList items;
+       items.clear();
+
+       unsigned int checksum = 0;
+       bool is_dup = false;
+
+       printf (">!> Solution #%d:\n", *count);
+       ++*count;
+
+       context->foreachInstall (assemble_install_cb, &items);
+
+       context->foreachUninstall (assemble_uninstall_cb, &items);
+
+       context->foreachUpgrade (assemble_upgrade_cb, &items);
+
+       items.sort ();
+
+       for (StringList::const_iterator iter = items.begin(); iter != items.end(); iter++) {
+           const char *c = (*iter).c_str();
+           while (*c) {
+               checksum = 17 * checksum + (unsigned int)*c;
+               ++c;
+           }
+       }
+       printf ("Checksum = %x\n", checksum);
+
+       for (ChecksumList::const_iterator iter = checksum_list.begin(); iter != checksum_list.end() && !is_dup; iter++) {
+           if (*iter == checksum) {
+               is_dup = true;
+           }
+       }
+
+       if (! is_dup) {
+           for (StringList::const_iterator iter = items.begin(); iter != items.end(); iter++) {
+               print_important (*iter);
+           }
+           checksum_list.push_back (checksum);
+       } else {
+           printf (">!> This solution is a duplicate.\n");
+       }
+
+       items.clear();
+
+    } else {
+       printf (">!> Failed Attempt:\n");
+    }
+
+    printf (">!> installs=%d, upgrades=%d, uninstalls=%d\n", context->installCount(), context->upgradeCount(), context->uninstallCount());
+    printf ("download size=%.1fk, install size=%.1fk\n", context->downloadSize() / 1024.0, context->installSize() / 1024.0);
+    printf ("total priority=%d, min priority=%d, max priority=%d\n", context->totalPriority(), context->minPriority(), context->maxPriority());
+    printf ("other penalties=%d\n",  context->otherPenalties());
+    printf ("- - - - - - - - - -\n");
+    fflush (stdout);
+
+    context->spewInfo ();
+    fflush (stdout);
+
+}
+
+
+//---------------------------------------------------------------------------------------------------------------------
+static bool
+mark_as_system_cb (constResolvablePtr resolvable, void *unused)
+{
+    ResolvablePtr r = ResolvablePtr::cast_away_const(resolvable);
+    r->setInstalled (true);
+
+    return true;
+}
+
+static void
+undump (const char *filename)
+{
+    UndumpWorldPtr undump_world;
+
+    undump_world = new UndumpWorld (filename);
+    if (undump_world == NULL) {
+       fprintf (stderr, "Couldn't undump from file '%s'", filename);
+       return;
+    }
+
+    world->addSubworld (undump_world);
+}
+
+
+static ChannelPtr
+get_channel (const char *channel_name)
+{
+    ChannelPtr channel;
+
+    channel = world->getChannelById (channel_name);
+
+    if (channel == NULL)
+       channel = world->getChannelByAlias (channel_name);
+
+    if (channel == NULL)
+       channel = world->getChannelByName (channel_name);
+
+    return channel;
+}
+
+
+static constResolvablePtr
+get_resolvable (const char *channel_name, const char *package_name)
+{
+    constChannelPtr channel;
+    constResolvablePtr resolvable;
+
+    channel = get_channel (channel_name);
+
+    if (channel == NULL) {
+       fprintf (stderr, "Can't find package '%s': channel '%s' not defined\n", package_name, channel_name);
+       return NULL;
+    }
+
+    resolvable = world->findResolvable (channel, package_name);
+
+    if (resolvable == NULL) {
+       fprintf (stderr, "Can't find package '%s' in channel '%s': no such package\n", package_name, channel_name);
+       return NULL;
+    }
+
+    return resolvable;
+}
+
+//---------------------------------------------------------------------------------------------------------------------
+// setup related functions
+
+static bool
+add_to_world_cb (constResolvablePtr resolvable, void *data)
+{
+    WorldPtr world = *((WorldPtr *)data);
+    ((StoreWorldPtr)world)->addResolvable (resolvable);
+
+    return true;
+}
+
+
+static void
+load_channel (const string & name, const string & filename, const string & type, bool system_packages)
+{
+    string pathname = "deptestomatic/" + filename;
+    
+    if (getenv ("RC_SPEW")) fprintf (stderr, "load_channel(%s,%s,%s,%s)\n", name.c_str(), pathname.c_str(), type.c_str(), system_packages?"system":"non-system");
+
+    ChannelType chan_type = system_packages ? CHANNEL_TYPE_SYSTEM : CHANNEL_TYPE_UNKNOWN;
+    ChannelPtr channel;
+    unsigned int count;
+    StoreWorldPtr store = new StoreWorld();
+
+    World::globalWorld()->addSubworld (store);
+
+    if (type == "helix")
+       chan_type = CHANNEL_TYPE_HELIX;
+    else if (type == "debian")
+       chan_type = CHANNEL_TYPE_DEBIAN;
+#if 0
+    else
+       printf ("Unknown channel type '%s', defaulting to helix\n", type.c_str());
+#endif
+    if (chan_type == CHANNEL_TYPE_UNKNOWN) { /* default to helix */
+       chan_type = CHANNEL_TYPE_HELIX;
+    }
+
+    channel = new Channel (name, name, name, name);
+
+    if (system_packages)
+       channel->setSystem (true);
+
+    channel->setType (chan_type);
+
+    store->addChannel (channel);
+
+    if (chan_type == CHANNEL_TYPE_HELIX) {
+       count = extract_packages_from_helix_file (pathname, channel, add_to_world_cb, (void *)&store);
+    } else if (chan_type == CHANNEL_TYPE_DEBIAN) {
+       count = extract_packages_from_debian_file (pathname, channel, add_to_world_cb, (void *)&store);
+    } else {
+       fprintf (stderr, "Unsupported channel type\n");
+       return;
+    }
+
+    if (system_packages) {
+       store->foreachResolvable (channel, mark_as_system_cb, NULL);
+    }
+
+    printf ("Loaded %d package%s from %s\n", count, count == 1 ? "" : "s", pathname.c_str()); fflush (stdout);
+}
+
+
+static bool done_setup = false;
+
+static void
+parse_xml_setup (XmlNodePtr node)
+{
+    assertExit (node->equals("setup"));
+
+    if (done_setup) {
+       fprintf (stderr, "Multiple <setup>..</setup> sections not allowed!\n");
+       exit (0);
+    }
+    done_setup = true;
+
+    node = node->children();
+    while (node != NULL) {
+       if (!node->isElement()) {
+           node = node->next();
+           continue;
+       }
+
+       if (node->equals ("system")) {
+           const char *file = node->getProp ("file");
+           assertExit (file);
+           load_channel ("@system", file, "helix", true);
+           free ((void *)file);
+       } else if (node->equals ("channel")) {
+           string name = node->getProp ("name");
+           string file = node->getProp ("file");
+           string type = node->getProp ("type");
+           assertExit (!name.empty());
+           assertExit (!file.empty());
+           load_channel (name, file, type, false);
+       } else if (node->equals ("undump")) {
+           const char *file = node->getProp ("file");
+           assertExit (file);
+           undump (file);
+           free((void *)file);
+       } else if (node->equals ("force-install")) {
+           const char *channel_name = node->getProp ("channel");
+           const char *package_name = node->getProp ("package");
+           constResolvablePtr resolvable;
+           constChannelPtr system_channel;
+
+           assertExit (channel_name);
+           assertExit (package_name);
+
+           resolvable = get_resolvable (channel_name, package_name);
+           if (resolvable) {
+               printf (">!> Force-installing %s from channel %s\n", package_name, channel_name);
+
+               system_channel = world->getChannelById ("@system");
+
+               if (!system_channel)
+                   fprintf (stderr, "No system channel available!\n");
+
+               ResolvablePtr r = ResolvablePtr::cast_away_const(resolvable);
+               r->setChannel (system_channel);
+               r->setInstalled (true);
+           } else {
+               fprintf (stderr, "Unknown package %s::%s\n", channel_name, package_name);
+           }
+
+           free ((void *)channel_name);
+           free ((void *)package_name);
+       } else if (node->equals ("force-uninstall")) {
+           const char *package_name = node->getProp ("package");
+           constResolvablePtr resolvable;
+
+           assertExit (package_name);
+           resolvable = get_resolvable ("@system", package_name);
+           
+           if (! resolvable) {
+               fprintf (stderr, "Can't force-uninstall installed package '%s'\n", package_name);
+           } else {
+               printf (">!> Force-uninstalling '%s'\n", package_name);
+           }
+
+           free ((void *)package_name);
+       } else if (node->equals ("lock")) {
+           const char *channel_name = node->getProp ("channel");
+           const char *package_name = node->getProp ("package");
+           constResolvablePtr resolvable;
+
+           assertExit (channel_name);
+           assertExit (package_name);
+
+           resolvable = get_resolvable (channel_name, package_name);
+           if (resolvable) {
+               printf (">!> Locking %s from channel %s\n", package_name, channel_name);
+               ResolvablePtr r = ResolvablePtr::cast_away_const(resolvable);
+               r->setLocked (true);
+           } else {
+               fprintf (stderr, "Unknown package %s::%s\n", channel_name, package_name);
+           }
+
+           free ((void *)channel_name);
+           free ((void *)package_name);
+
+       } else {
+           fprintf (stderr, "Unrecognized tag '%s' in setup\n", node->name());
+       }
+
+       node = node->next();
+    }
+}
+
+//---------------------------------------------------------------------------------------------------------------------
+// trial related functions
+
+static void
+report_solutions (Resolver & resolver)
+{
+    int count = 1;
+    ChecksumList checksum_list;
+
+    printf ("\n");
+
+    if (!resolver.completeQueues().empty()) {
+       printf ("Completed solutions: %ld\n", (long) resolver.completeQueues().size());
+    }
+
+    if (resolver.prunedQueues().empty()) {
+       printf ("Pruned solutions: %ld\n", (long) resolver.prunedQueues().size());
+    }
+
+    if (resolver.deferredQueues().empty()) {
+       printf ("Deferred solutions: %ld\n", (long) resolver.deferredQueues().size());
+    }
+
+    if (resolver.invalidQueues().empty()) {
+       printf ("Invalid solutions: %ld\n", (long) resolver.invalidQueues().size());
+    }
+    
+    if (resolver.bestContext()) {
+       printf ("\nBest Solution:\n\n");
+       print_solution (resolver.bestContext(), &count, checksum_list);
+
+       ResolverQueueList complete = resolver.completeQueues();
+       if (complete.size() > 1)
+           printf ("\nOther Valid Solutions:\n\n");
+
+       if (complete.size() < 20) {
+           for (ResolverQueueList::const_iterator iter = complete.begin(); iter != complete.end(); iter++) {
+               ResolverQueuePtr queue = (*iter);
+               if (queue->context() != resolver.bestContext()) 
+                   print_solution (queue->context(), &count, checksum_list);
+           }
+       }
+    }
+
+    ResolverQueueList invalid = resolver.invalidQueues();
+    if (invalid.size() < 20) {
+       printf ("\n");
+
+       for (ResolverQueueList::const_iterator iter = invalid.begin(); iter != invalid.end(); iter++) {
+           ResolverQueuePtr queue = (*iter);
+           printf ("Failed Solution: \n%s\n", queue->context()->asString().c_str());
+           printf ("- - - - - - - - - -\n");
+           queue->context()->spewInfo ();
+           fflush (stdout);
+       }
+    } else {
+       printf ("(Not displaying more than 20 invalid solutions)\n");
+    }
+    fflush (stdout);
+}
+
+
+static bool
+trial_upgrade_cb (constResolvablePtr original, constResolvablePtr upgrade, void *user_data)
+{
+    Resolver *resolver = (Resolver *)user_data;
+
+    resolver->addResolvableToInstall (upgrade);
+
+    printf (">!> Upgrading %s => %s\n", original->asString().c_str(), upgrade->asString().c_str());
+
+    return false;
+}
+
+
+static void
+parse_xml_trial (XmlNodePtr node)
+{
+    bool verify = false;
+
+    assertExit (node->equals ("trial"));
+
+    if (getenv ("RC_SPEW_XML")) fprintf (stderr, "parse_xml_setup()\n");
+
+    if (! done_setup) {
+       fprintf (stderr, "Any trials must be preceeded by the setup!\n");
+       exit (0);
+    }
+
+    print_sep ();
+
+    Resolver resolver;
+    resolver.setWorld (world);
+
+    node = node->children();
+    while (node) {
+       if (!node->isElement()) {
+           node = node->next();
+           continue;
+       }
+
+       if (node->equals("note")) {
+
+           const char *note = node->getContent ();
+           printf ("NOTE: %s\n", note);
+           free ((void *)note);
+
+       } else if (node->equals ("verify")) {
+
+           verify = true;
+
+       } else if (node->equals ("current")) {
+
+           const char *channel_name = node->getProp ("channel");
+           constChannelPtr channel = get_channel (channel_name);
+
+           if (channel != NULL) {
+               resolver.setCurrentChannel (channel);
+           } else {
+               fprintf (stderr, "Unknown channel '%s' (current)\n", channel_name);
+           }
+
+           free ((void *)channel_name);
+
+       } else if (node->equals ("subscribe")) {
+
+           const char *channel_name = node->getProp ("channel");
+           ChannelPtr channel = get_channel (channel_name);
+
+           if (channel != NULL) {
+               channel->setSubscription (true);
+           } else {
+               fprintf (stderr, "Unknown channel '%s' (subscribe)\n", channel_name);
+           }
+
+           free ((void *)channel_name);
+       
+       } else if (node->equals ("install")) {
+
+           const char *channel_name = node->getProp ("channel");
+           const char *package_name = node->getProp ("package");
+           constResolvablePtr resolvable;
+
+           assertExit (channel_name);
+           assertExit (package_name);
+
+           resolvable = get_resolvable (channel_name, package_name);
+           if (resolvable) {
+               printf (">!> Installing %s from channel %s\n", package_name, channel_name);
+               resolver.addResolvableToInstall (resolvable);
+           } else {
+               fprintf (stderr, "Unknown package %s::%s\n", channel_name, package_name);
+           }
+
+           free ((void *)channel_name);
+           free ((void *)package_name);
+
+       } else if (node->equals ("uninstall")) {
+
+           const char *package_name = node->getProp ("package");
+           constResolvablePtr resolvable;
+
+           assertExit (package_name);
+
+           resolvable = get_resolvable ("@system", package_name);
+           if (resolvable) {
+               printf (">!> Uninstalling %s\n", package_name);
+               resolver.addResolvableToRemove (resolvable);
+           } else {
+               fprintf (stderr, "Unknown system package %s\n", package_name);
+           }
+
+           free ((void *)package_name);
+
+       } else if (node->equals ("upgrade")) {
+           int count;
+
+           printf (">!> Checking for upgrades...\n");
+
+           count = world->foreachSystemUpgrade (true, trial_upgrade_cb, (void *)&resolver);
+           
+           if (count == 0)
+               printf (">!> System is up-to-date, no upgrades required\n");
+           else
+               printf (">!> Upgrading %d package%s\n", count, count > 1 ? "s" : "");
+
+       } else if (node->equals ("solvedeps")) {
+
+           XmlNodePtr iter = node->children();
+
+           while (iter != NULL) {
+               DependencyPtr dep = new Dependency (iter);
+
+               /* We just skip over anything that doesn't look like a dependency. */
+
+               if (dep) {
+                   const char *conflict_str = iter->getProp ("conflict");
+
+                   printf (">!> Solvedeps %s%s\n", conflict_str ? "conflict " : "",  dep->asString().c_str());
+
+                   resolver.addExtraDependency (dep);
+
+                   free ((void *)conflict_str);
+               }
+               iter = iter->next();
+           }
+
+       } else {
+           fprintf (stderr, "Unknown tag '%s' in trial\n", node->name());
+       }
+
+       node = node->next();
+    }
+
+    if (getenv ("RC_DEPS_TIME")) {
+       int timeout = atoi (getenv ("RC_DEPS_TIME"));
+
+       resolver.setTimeout (timeout);
+    }
+
+    if (verify)
+       resolver.verifySystem ();
+    else
+       resolver.resolveDependencies ();
+
+    report_solutions (resolver);
+}
+
+//---------------------------------------------------------------------------------------------------------------------
+
+static void
+parse_xml_test (XmlNodePtr node)
+{
+    assertExit (node->equals("test"));
+
+    node = node->children();
+
+    while (node) {
+       if (node->type() == XML_ELEMENT_NODE) {
+           if (node->equals("setup")) {
+               parse_xml_setup (node);
+           } else if (node->equals ("trial")) {
+               parse_xml_trial (node);
+           } else {
+               fprintf (stderr, "Unknown tag '%s' in test\n", node->name());
+           }
+       }
+
+       node = node->next();
+    }
+}
+
+
+static void
+process_xml_test_file (const char *filename)
+{
+    xmlDocPtr xml_doc;
+    XmlNodePtr root;
+
+    xml_doc = xmlParseFile (filename);
+    if (xml_doc == NULL) {
+       fprintf (stderr, "Can't parse test file '%s'\n", filename);
+       exit (0);
+    }
+
+    root = new XmlNode (xmlDocGetRootElement (xml_doc));
+
+    if (getenv ("RC_SPEW_XML")) fprintf (stderr, "Parsing file '%s'\n", filename);
+    
+    parse_xml_test (root);
+    
+    xmlFreeDoc (xml_doc);
+}
+
+
+//---------------------------------------------------------------------------------------------------------------------
+
+static void
+init_libzypp (void)
+{
+//    rc_version_set_global (rc_version_rpm_new());            //  rpm is the default for GVersion
+
+      World::setGlobalWorld (new MultiWorld());
+}
+
+int
+main (int argc, char *argv[])
+{
+    if (argc != 2) {
+       fprintf (stderr, "Usage: deptestomatic testfile.xml\n");
+       exit (0);
+    }
+
+    init_libzypp ();
+
+    world = World::globalWorld();
+
+    if (getenv ("RC_SPEW_XML")) fprintf (stderr, "init_libzypp() done\n");
+
+    process_xml_test_file (argv[1]);
+
+    return 0;
+}
+
diff --git a/zypp/solver/testsuite/edition_single.cc b/zypp/solver/testsuite/edition_single.cc
new file mode 100644 (file)
index 0000000..2be88c5
--- /dev/null
@@ -0,0 +1,135 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* edition.cc
+ *
+ * Testcases for 'Edition'
+ *  contains epoch-version-release-arch
+ *
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <zypp/solver/detail/Edition.h>
+
+using namespace std;
+using namespace ZYPP;
+
+//---------------------------------------------------------------------------
+
+bool
+defaultarch(void)
+{
+   const Arch *arch = Arch::create("");                // the default should be 'unknown'
+
+   return arch == Arch::Any;
+}
+
+bool
+x86arch(void)
+{
+   const Arch *arch = Arch::create("x86");
+
+   return arch != Arch::Any;
+}
+
+//---------------------------------------------------------------------------
+
+bool
+emptyEdition(void)
+{
+    Edition edition;
+    return (edition.asString() == "");
+}
+
+bool
+epochEdition(void)
+{
+    Edition edition(1);
+
+    return (edition.asString() == "1:");
+}
+
+bool
+versionEdition(void)
+{
+    Edition edition(0,"42");
+
+    return (edition.asString() == "0:42");
+}
+
+bool
+releaseEdition(void)
+{
+    Edition edition(-1,"42","47.11");
+
+    return (edition.asString() == "42-47.11");
+}
+
+bool
+archEdition(void)
+{
+    Edition edition(0, "42", "47.11", Arch::create("x86_64"));
+
+    return (edition.asString() == "0:42-47.11.x86_64");
+}
+
+bool
+fullEdition(void)
+{
+    Edition edition(1, "42", "47.11", Arch::create("x86_64"));
+
+    return (edition.asString() == "1:42-47.11.x86_64");
+}
+
+//---------------------------------------------------------------------------
+
+int
+main (int argc, char *argv[])
+{
+    struct _testcase {
+       const char *name;
+       bool (*fun)();
+    } testcases[] = {
+
+#define FUN(name)      { #name, name }
+
+       FUN(defaultarch), FUN(x86arch),
+       FUN(emptyEdition), FUN(epochEdition), FUN(versionEdition), FUN(releaseEdition), FUN(archEdition), FUN(fullEdition), 
+       NULL, NULL
+
+    };
+
+    struct _testcase *testcase = testcases;
+
+    int failed = 0;
+
+    while (testcase->name)
+    {
+       bool result = (testcase->fun)();
+       printf ("%-16s ", testcase->name); fflush (stdout);
+       if (result) {
+           printf ("PASS\n");
+       }
+       else {
+           printf ("FAIL\n");
+           failed++;
+       }
+       testcase++;
+    }
+
+    return 0;
+}
+
+
diff --git a/zypp/solver/testsuite/lib/Makefile.am b/zypp/solver/testsuite/lib/Makefile.am
new file mode 100644 (file)
index 0000000..453a64f
--- /dev/null
@@ -0,0 +1,5 @@
+#
+# Makefile.am for solver/testsuite/lib
+#
+
+EXTRA_DIST = solver_init.exp
diff --git a/zypp/solver/testsuite/lib/solver_init.exp b/zypp/solver/testsuite/lib/solver_init.exp
new file mode 100644 (file)
index 0000000..2259c5a
--- /dev/null
@@ -0,0 +1,194 @@
+#
+# run a prg file for single-time used testcases
+#
+proc single-run { src } {
+
+  set path [split $src "/"]
+  set filename [lindex $path [expr [llength $path]-1]]
+
+  # extract basename and check extension
+
+  set fname [split $filename "."]
+
+  if {[llength $fname] < 2} {
+    fail "Bad filename syntax '$src'"
+    return -1
+  }
+  if {[lindex $fname [expr [llength $fname]-1]] != "single"} {
+    fail "Not .single extension '$src'"
+    return -1
+  }
+
+  # setup filenames
+
+  # $src is the name of the original testfile with absolute path
+  # tests/$filename is the name of the original testfile with relative path,
+  #                 relative to the testsuite directory
+  set test_prg  "$filename"
+
+  set base_name [lindex $fname 0]
+
+  puts "Running $base_name..."
+
+  #generate output directory
+
+  exec mkdir -p ./single.out/out
+  set outfile ./single.out/out/$base_name.out
+  set refoutfile ./single.out/$base_name.out
+  set errfile ./single.out/out/$base_name.err
+  set referrfile ./single.out/$base_name.err
+
+  # run the test
+
+  set command "LD_LIBRARY_PATH=\"\${LD_LIBRARY_PATH}:../src/.libs\" $src >$outfile 2>$errfile"
+  set result ""
+  set oops [catch { set result [exec sh -c $command] } catched]
+
+  if {$oops != 0} {
+    fail "test case failed for $base_name: $catched"
+    return -1
+  }
+
+  # check return code from runprg
+
+  if {$result != ""} {
+    warning "Run of $base_name results in '$result'"
+    return -1
+  }
+
+  if { [ file exists $refoutfile ] == 0 } {
+      perror "Missing file $refoutfile" 0
+  } else {
+      if { [ diff $refoutfile $outfile ] != 1 } {
+         puts "Output doesn't match expected data:"
+         puts [ exec sh -c "diff -u $refoutfile $outfile || true" ]
+         fail $base_name
+         return -1
+      }
+  }
+
+  if { [ file exists $referrfile ] == 0 } {
+      perror "Missing file $referrfile" 0
+  } else {
+      if { [ diff $referrfile $errfile ] != 1 } {
+         puts "Output doesn't match expected data:"
+         puts [ exec sh -c "diff -u $referrfile $errfile || true" ]
+         fail $base_name
+         return -1
+      }
+  }
+
+  # ok, all is fine
+
+  pass $base_name
+
+  return 0
+}
+
+
+#
+# run a prg file for several times ( defined in subdirectory <programname> )
+#
+proc multi-run { src } {
+  
+  set errorOccured 0
+  set path [split $src "/"]
+  set filename [lindex $path [expr [llength $path]-1]]
+
+  # extract basename and check extension
+
+  set fname [split $filename "."]
+
+  if {[llength $fname] < 2} {
+    fail "Bad filename syntax '$src'"
+    return -1
+  }
+  if {[lindex $fname [expr [llength $fname]-1]] != "multi"} {
+    fail "Not .multi extension '$src'"
+    return -1
+  }
+
+  # setup filenames
+
+  # $src is the name of the original testfile with absolute path
+  # tests/$filename is the name of the original testfile with relative path,
+  #                 relative to the testsuite directory
+  set test_prg  "$filename"
+
+  set base_name [lindex $fname 0]
+
+  puts "Running $base_name..."
+
+  set testcases [glob $base_name/*.xml ]
+
+  foreach testcase $testcases { 
+      set testPath [split $testcase "/"]
+      set testFilename [lindex $testPath [expr [llength $testPath]-1]]
+      set testFname [split $testFilename "."]
+      set testBase_name [lindex $testFname 0]
+      puts "   ... $testBase_name" 
+
+      #generate output directory
+
+      exec mkdir -p ./$base_name/out
+      set errfile ./$base_name/out/$testBase_name.err
+      set referrfile ./$base_name/$testBase_name.err
+      set outfile ./$base_name/out/$testBase_name.out
+      set refoutfile ./$base_name/$testBase_name.out
+
+      # run the test
+
+      set command "LD_LIBRARY_PATH=\"\${LD_LIBRARY_PATH}:../src/.libs\" $src $testcase >$outfile 2>$errfile"
+      set result ""
+      set oops [catch { set result [exec sh -c $command] } catched]
+
+      if {$oops != 0} {
+         fail "test case failed for $testBase_name: $catched"
+         set errorOccured 0
+         continue
+      }
+
+      # check return code from runprg
+      
+      if {$result != ""} {
+         warning "Run of $testBase_name results in '$result'"
+         set errorOccured 0
+         continue
+      }
+
+      if { [ file exists $refoutfile ] == 0 } {
+         perror "Missing file $refoutfile" 0
+      } else {
+         if { [ diff $refoutfile $outfile ] != 1 } {
+             puts "Output doesn't match expected data:"
+             puts [ exec sh -c "diff -u $refoutfile $outfile || true" ]
+             fail $testBase_name
+             set errorOccured 0
+             continue
+         }
+      }
+
+      if { [ file exists $referrfile ] == 0 } {
+         perror "Missing file $referrfile" 0
+      } else {
+         if { [ diff $referrfile $errfile ] != 1 } {
+             puts "Output doesn't match expected data:"
+             puts [ exec sh -c "diff -u $referrfile $errfile || true" ]
+             fail $testBase_name
+             set errorOccured 0
+             continue
+         }
+      }
+
+      # ok, all is fine
+      pass $testBase_name
+  }
+
+  if { $errorOccured == 0 } {
+      return 0
+  } else {
+      return -1
+  }
+
+}
+
diff --git a/zypp/solver/testsuite/libzypp_solver.test/Makefile.am b/zypp/solver/testsuite/libzypp_solver.test/Makefile.am
new file mode 100644 (file)
index 0000000..689a620
--- /dev/null
@@ -0,0 +1 @@
+EXTRA_DIST = single_test.exp multi_test.exp 
diff --git a/zypp/solver/testsuite/libzypp_solver.test/multi_test.exp b/zypp/solver/testsuite/libzypp_solver.test/multi_test.exp
new file mode 100644 (file)
index 0000000..e856337
--- /dev/null
@@ -0,0 +1,28 @@
+#
+# multi_test.exp
+# 'main' file for all solver tests
+#
+# Runs all tests with the extention "multi" for several times.
+# Each testprogram <programname>.multi has an own subdirectory
+# <programmname> in which several testcases are defined for this program
+# Each testcase has 3 files:
+#
+#             <programname>.in
+#             <programname>.out
+#             <programname>.err
+#
+# The program "<programname>.multi" will be called with the argument
+# "<programname>.in". The standard output will be compared with the 
+# files "<programname>.out" and "<programname>.err".
+# The testcase is successful if the program returns 0 AND the outputs
+# are identically equal to the files "<programname>.out" and 
+# "<programname>.err".
+
+
+if { [catch {  set filenames [glob $srcdir/*.multi] } ] } {
+    puts "No .multi files found"
+} else {
+    # foreach file, call multi-run (from testsuite/lib)
+
+    foreach file $filenames { multi-run $file }
+}
diff --git a/zypp/solver/testsuite/libzypp_solver.test/single_test.exp b/zypp/solver/testsuite/libzypp_solver.test/single_test.exp
new file mode 100644 (file)
index 0000000..46551b7
--- /dev/null
@@ -0,0 +1,16 @@
+#
+# single_test.exp
+# 'main' file for all solver tests
+#
+# Runs all tests with the extention "single" one-time
+#
+
+# get all files matching *.single
+
+if { [catch {  set filenames [glob $srcdir/*.single] } ] } {
+    puts "No .single files found"
+} else {
+    # foreach file, call single-run (from testsuite/lib)
+
+    foreach file $filenames { single-run $file }
+}
diff --git a/zypp/solver/testsuite/single.out/Makefile.am b/zypp/solver/testsuite/single.out/Makefile.am
new file mode 100644 (file)
index 0000000..361b19d
--- /dev/null
@@ -0,0 +1 @@
+EXTRA_DIST = *.out *.err
diff --git a/zypp/solver/testsuite/single.out/edition.err b/zypp/solver/testsuite/single.out/edition.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/single.out/edition.out b/zypp/solver/testsuite/single.out/edition.out
new file mode 100644 (file)
index 0000000..40186e0
--- /dev/null
@@ -0,0 +1,8 @@
+defaultarch      FAIL
+x86arch          PASS
+emptyEdition     PASS
+epochEdition     PASS
+versionEdition   PASS
+releaseEdition   PASS
+archEdition      FAIL
+fullEdition      FAIL
diff --git a/zypp/solver/testsuite/single.out/spec.err b/zypp/solver/testsuite/single.out/spec.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/single.out/spec.out b/zypp/solver/testsuite/single.out/spec.out
new file mode 100644 (file)
index 0000000..d743aed
--- /dev/null
@@ -0,0 +1,6 @@
+emptySpec        PASS
+epochSpec        PASS
+versionSpec      PASS
+releaseSpec      PASS
+archSpec         FAIL
+fullSpec         FAIL
diff --git a/zypp/solver/testsuite/single.out/utils.err b/zypp/solver/testsuite/single.out/utils.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/zypp/solver/testsuite/single.out/utils.out b/zypp/solver/testsuite/single.out/utils.out
new file mode 100644 (file)
index 0000000..4aa4e56
--- /dev/null
@@ -0,0 +1,19 @@
+FAIL
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
diff --git a/zypp/solver/testsuite/spec_single.cc b/zypp/solver/testsuite/spec_single.cc
new file mode 100644 (file)
index 0000000..c2dd960
--- /dev/null
@@ -0,0 +1,113 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* spec.cc
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * Testcases for 'Spec'
+ *  contains name + Edition
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <zypp/solver/detail/Spec.h>
+
+using namespace std;
+using namespace ZYPP;
+
+bool
+emptySpec (void)
+{
+    Spec spec(Kind::Package, "");
+    return spec.asString() == "";
+}
+
+bool
+epochSpec(void)
+{
+    Spec spec(Kind::Package, "foo", 1);
+
+    return (spec.asString() == "foo-1:");
+}
+
+bool
+versionSpec(void)
+{
+    Spec spec(Kind::Patch, "bar", 0,"42");
+    return (spec.asString() == "patch:bar-0:42");
+}
+
+bool
+releaseSpec(void)
+{
+    Spec spec(Kind::Package, "foobar", -1,"42","47.11");
+
+    return (spec.asString() == "foobar-42-47.11");
+}
+
+bool
+archSpec(void)
+{
+    Spec spec(Kind::Package, "arch", 0, "42", "47.11", Arch::create("x86_64"));
+
+    return (spec.asString() == "arch-0:42-47.11.x86_64");
+}
+
+bool
+fullSpec(void)
+{
+    Spec spec(Kind::Package, "full", 1, "42", "47.11", Arch::create("x86_64"));
+
+    return (spec.asString() == "full-1:42-47.11.x86_64");
+}
+
+
+
+//---------------------------------------------------------------------------
+
+int
+main (int argc, char *argv[])
+{
+    struct _testcase {
+       const char *name;
+       bool (*fun)();
+    } testcases[] = {
+
+#define FUN(name)      { #name, name }
+
+       FUN(emptySpec), FUN(epochSpec), FUN(versionSpec), FUN(releaseSpec), FUN(archSpec), FUN(fullSpec), 
+       NULL, NULL
+
+    };
+
+    struct _testcase *testcase = testcases;
+
+    int failed = 0;
+
+    while (testcase->name)
+    {
+       bool result = (testcase->fun)();
+       printf ("%-16s ", testcase->name); fflush (stdout);
+       if (result) {
+           printf ("PASS\n");
+       }
+       else {
+           printf ("FAIL\n");
+           failed++;
+       }
+       testcase++;
+    }
+
+    return 0;
+}
diff --git a/zypp/solver/testsuite/utils_single.cc b/zypp/solver/testsuite/utils_single.cc
new file mode 100644 (file)
index 0000000..5eb0d11
--- /dev/null
@@ -0,0 +1,163 @@
+#include <string.h>
+#include <zypp/solver/detail/utils.h>
+
+using namespace ZYPP;
+
+int
+main (int argc, char *argv[])
+{
+    if (strstrip(NULL) != NULL)
+    {
+       printf ("FAIL\n");
+    }
+    else
+    {
+       printf ("PASS\n");      
+    }
+    if (strstrip("") != NULL)
+    {
+       printf ("FAIL\n");
+    }
+    else
+    {
+       printf ("PASS\n");      
+    }  
+    if (strstrip(" ") != NULL)
+    {
+       printf ("FAIL\n");
+    }
+    else
+    {
+       printf ("PASS\n");      
+    }  
+    if (strstrip("\t") != NULL)
+    {
+       printf ("FAIL\n");
+    }
+    else
+    {
+       printf ("PASS\n");      
+    }  
+    if (strstrip("  ") != NULL)
+    {
+       printf ("FAIL\n");
+    }
+    else
+    {
+       printf ("PASS\n");      
+    }  
+    if (strstrip("\t\t") != NULL)
+    {
+       printf ("FAIL\n");
+    }
+    else
+    {
+       printf ("PASS\n");      
+    }  
+    if (strstrip(" \t ") != NULL)
+    {
+       printf ("FAIL\n");
+    }
+    else
+    {
+       printf ("PASS\n");      
+    }  
+    if (strcmp (strstrip("a"), "a"))
+    {
+       printf ("FAIL\n");
+    }
+    else
+    {
+       printf ("PASS\n");      
+    }  
+    if (strcmp (strstrip(" a"), "a"))
+    {
+       printf ("FAIL\n");
+    }
+    else
+    {
+       printf ("PASS\n");      
+    }  
+    if (strcmp (strstrip("a "), "a"))
+    {
+       printf ("FAIL\n");
+    }
+    else
+    {
+       printf ("PASS\n");      
+    }  
+    if (strcmp (strstrip(" a "), "a"))
+    {
+       printf ("FAIL\n");
+    }
+    else
+    {
+       printf ("PASS\n");      
+    }  
+    if (strcmp (strstrip("ab"), "ab"))
+    {
+       printf ("FAIL\n");
+    }
+    else
+    {
+       printf ("PASS\n");      
+    }  
+    if (strcmp (strstrip(" ab"), "ab"))
+    {
+       printf ("FAIL\n");
+    }
+    else
+    {
+       printf ("PASS\n");      
+    }  
+    if (strcmp (strstrip("ab "), "ab"))
+    {
+       printf ("FAIL\n");
+    }
+    else
+    {
+       printf ("PASS\n");      
+    }  
+    if (strcmp (strstrip(" ab "), "ab"))
+    {
+       printf ("FAIL\n");
+    }
+    else
+    {
+       printf ("PASS\n");      
+    }  
+    if (strcmp (strstrip("a b"), "a b"))
+    {
+       printf ("FAIL\n");
+    }
+    else
+    {
+       printf ("PASS\n");      
+    }  
+    if (strcmp (strstrip(" a b"), "a b"))
+    {
+       printf ("FAIL\n");
+    }
+    else
+    {
+       printf ("PASS\n");      
+    }  
+    if (strcmp (strstrip("a b "), "a b"))
+    {
+       printf ("FAIL\n");
+    }
+    else
+    {
+       printf ("PASS\n");      
+    }  
+    if (strcmp (strstrip(" a b "), "a b"))
+    {
+       printf ("FAIL\n");
+    }
+    else
+    {
+       printf ("PASS\n");      
+    }  
+
+    return 0;
+}