---------- 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

Reply via email to