---------- Forwarded message ---------- From: Per Øyvind Karlsen <peroyv...@mandriva.org> Date: 2011/5/3 Subject: Re: Repodata additions To: rpm-t...@rpm5.org
2011/5/3 Jeff Johnson <n3...@mac.com>: > A sane opinion as always, and Distepoch is nicely done and handled. > > Would you mind reposting on the Cooker list? > > My private agenda is trying to get some abstraction > layer on top of the spewage before having to > do battle with DUDF and synthesis/hdlists directly > in RPM itself. > > DUDF is this huge pugly mish-mosh of JSON and perl dump that someone > whacked together in afternoon and proudly blogged about the hack. > > And synthesis/hdlists have pushed file paths into > Provide: /foo/bar/baz > totally boogering up M&M distro packaging to save bandwidth. > > You sare aving bandwidth by _ADDING_ dependencies?!? Does not compute, sorry. > > tnx > > 73 de Jeff > > The > On May 3, 2011, at 5:12 AM, Anders F Björklund wrote: > >> Hi, Matthew Dawkins pointed me to the Cooker discussion >> (http://lists.mandriva.com/cooker/2011-05/msg00069.php) >> about extending rpm-metadata with disttag/distepoch... >> (http://lists.mandriva.com/cooker/2011-04/msg00423.php) >> >> Last year, Unity wanted to show the disttag/distepoch >> in the package version (e.g. -unity2010, -mdv2011.0) >> so the repodata had to be extended with that information >> in order to match the versions from the rpm header loader: >> >> <rpm:disttag>unity</rpm:disttag> >> <rpm:distepoch>2011.0</rpm:distepoch> >> >> I helped implement this for createrepo, similar to how >> repodata was earlier extended to add a "hint" value for >> Requires(hint) like the earlier "pre" for Requires(pre) >> and matching retrofits for the missing RPMSENSE_PREREQ >> >> The Smart version parser had to be modified too, so that >> it wouldn't choke on the "double dash" in rpm versions. >> i.e. going from foo-1.2-3mdv2010.0 to foo-1.2-3-mdv2011.0 >> it now needs to parse "version-release-distepoch" as well. >> >> The next change was when the :distepoch was added to the >> dependencies, and going from EVR to EVRD in comparisons. >> This required modifying the vercmp routine used, as well >> as making sure it was called rather than a plain strcmp. >> >> Smart doesn't support EVRD, so does plain EVR_ comparisons >> (in future, this might become be pluggable / use rpmvercmp) >> Likewise, there has been no attempts done to add EVRD support >> to yum/createrepo and the rpm-metadata <package> and friends: >> >> rpm-5.3.9-0.20110330.6-mdv2011.0.i586.rpm (filename) >> # rpm-1:5.3.9-0.20110330.6-mdv2011.0@i586 (in smart) >> >> <package type="rpm"> >> <name>rpm</name> >> <arch>i586</arch> >> <version epoch="1" ver="5.3.9" rel="0.20110330.6"/> >> <format> >> <rpm:provides> >> <rpm:entry name="rpm" flags="EQ" epoch="1" ver="5.3.9" >> rel="0.20110330.6"/> >> >> The version comparison routine used makes it still match >> "rpm = 1:5.3.9-0.20110330.6:2011.0" (=ignoring distepoch) >> You can find the createrepo and smart patches / branches >> here, also including the openSUSE additions made earlier: >> >> http://afb.users.sourceforge.net/repodata/ >> >> https://code.launchpad.net/~afb/smart/dist/ >> >> As far as I know, all attempts to add distepoch="" and >> pre="" are blocked upstream at createrepo.baseurl.org >> and the XML format deprecated in favor of SQL format... >> (which is harder to extend without changing dbversion) >> >> All the yum code (as required and used by createrepo now) >> uses EVR tuples internally, so changing to EVRD requires >> modifying all that. I don't think it is worth the effort, >> and I don't see the benefit of distepoch in dependencies. >> >> >> Feel free to open new Smart bugs about how EVRD is as >> important as CVOG, meanwhile it'll just use EVR and A. >> >> https://bugs.launchpad.net/smart >> https://bugs.launchpad.net/smart/+bug/587448 (archscore) Btw. Jeff, I think you're free to redesign DUDF format and also implement it directly in RPM, and we'll use adopt it right away. :) -- Regards, Per Øyvind ______________________________________________________________________ RPM Package Manager http://rpm5.org Developer Communication List rpm-devel@rpm5.org