Bugzilla – Bug 157494
createrepo doesn't include Supplements tags
Last modified: 2006-03-18 13:36:22 UTC
http://svn.suse.de/trac/zypp/wiki/Dependencies summarizes the possible dependencies between packages. Createrepo fails to include some of them in the metadata, so whoever is using the repository cannot resolve some kinds of dependencies properly anymore. RPM itself currently can't dump the Recommends, Supplements, Suggests, and Enhances tags from the command line, either (bug 155301). You can use ~mls/rpmdumpreq to that end for now. (Also see bug 157493.) Freshens and Essentialfor don't seem to exist for rpm packages; they probably are for patches only.
Created attachment 72462 [details] Spec file used
Created attachment 72463 [details] repomd.xml
Created attachment 72464 [details] primary.xml.gz (decompressed)
Created attachment 72465 [details] filelists.xml.gz (decompressed)
Created attachment 72466 [details] other.xml.gz (decompressed)
Consequently, libzypp does not see those dependencies in yum (createrepo) repositories, and cannot resolve them.
Created attachment 72564 [details] Fake repodata with missing tags Here is a spec file and rpm that has the tags, together with how the meta-data should look. The metadata were created by hand-editing, and so unfortunately the checksums are bogus.
Result of the test with fixed yum repo: storagetargettest.cc(readSourceResolvables):155 done reading source type YUM: ResStore: 2 storagetargettest.cc(dump):70 [package]rpmtags-0.0-0.x86_64 storagetargettest.cc(dump):71 ------------------------------------------------ storagetargettest.cc(dump):72 Dependencies: [ storagetargettest.cc(dump):72 PROVIDES: storagetargettest.cc(dump):72 [package] (namedcap) pro-vides == 1 storagetargettest.cc(dump):72 [package] (namedcap) rpmtags == 0.0-0 storagetargettest.cc(dump):72 REQUIRES: storagetargettest.cc(dump):72 [package] (namedcap) re-quires >= 2 storagetargettest.cc(dump):72 CONFLICTS: storagetargettest.cc(dump):72 [package] (namedcap) con-flicts <= 3 storagetargettest.cc(dump):72 OBSOLETES: storagetargettest.cc(dump):72 [package] (namedcap) ob-so-letes <= 4 storagetargettest.cc(dump):72 ] storagetargettest.cc(dump):70 [package]rpmtags2-0.0-0.x86_64 storagetargettest.cc(dump):71 ------------------------------------------------ storagetargettest.cc(dump):72 Dependencies: [ storagetargettest.cc(dump):72 PROVIDES: storagetargettest.cc(dump):72 [package] (namedcap) pro-vides == 1 storagetargettest.cc(dump):72 [package] (namedcap) rpmtags2 == 0.0-0 storagetargettest.cc(dump):72 REQUIRES: storagetargettest.cc(dump):72 [package] (namedcap) re-quires >= 2 storagetargettest.cc(dump):72 CONFLICTS: storagetargettest.cc(dump):72 [package] (namedcap) con-flicts <= 3 storagetargettest.cc(dump):72 OBSOLETES: storagetargettest.cc(dump):72 [package] (namedcap) ob-so-letes <= 4 storagetargettest.cc(dump):72 RECOMMENDS: storagetargettest.cc(dump):72 [package] (namedcap) rec-om-ments >= 5 storagetargettest.cc(dump):72 SUGGESTS: storagetargettest.cc(dump):72 [package] (namedcap) sug-gests >= 6 storagetargettest.cc(dump):72 SUPPLEMENTS: storagetargettest.cc(dump):72 [package] (namedcap) sup-ple-ments <= 7 storagetargettest.cc(dump):72 ENHANCES: storagetargettest.cc(dump):72 [package] (namedcap) en-han-ces <= 8 storagetargettest.cc(dump):72 ]
Created attachment 72609 [details] The first repository generated with createrepo that has the extra tags
It was a problem with the repositories not containing the tags (because they were not extracted). Andreas fixed the createrepo script. libzypp works with it without changes.