On May 22, 2011, at 10:32 PM, Robert Xu wrote:

> 
> 
> On May 22, 2011, at 22:19, Jeff Johnson <n3...@mac.com> wrote:
> 
>> 
>> On May 22, 2011, at 10:05 PM, Robert Xu wrote:
>> 
>>> Hi all,
>>> 
>>> SuSE doesn't like using an internal generator. Figures.
>>> 
>> 
>> SuSE and Mandriva just gotta be different yes.
>> 
>> The difference is at the product level with multilib, not in how
>> packages are built. The internal ELF generator is known reliable
>> for years, just SuSE and Mandriva can never figger that out.
>> 
>> The core issue to watch out for is -- if not using the internal generator --
>> that the rpmds data gets sorted somehow. That is/was one of the reasons
>> for the implementation (not multilib).
>> 
>> But if y'all want linear behavior instead of logN with bsearch,
>> well vendors can run as SLOWER and S-L-O-W-E-R as they wish, not my
>> problem mon.
> 
> Actually, with rpm 4.9 they switched to the internal generator:
> 
> --
> 
> Hi Packagers,
> 
> I've spent the last week to upgrade rpm from 4.8.0 to 4.9.0.
> The package was submitted to Factory yesterday and is already
> checked in.
> 

Only took 6 years ... *shrug*

> Besides some bug fixes and an update to a newer BerkeleyDB
> library rpm-4.9.0 contains plugin architecture for dependency
> generation. In older rpms, the internal dependency generator
> was pretty much hardcoded in C, so we always used the old
> external one to generate dependencies. With rpm-4.9.0, the
> internal generator has become flexible enough so that we
> can use it.
> 

The term "hardcoded" is misused here ...

> This means for you, that rpm will no longer use the %__find_provides
> and %__find_requires macros. Some packages redefined those
> macros to be able to filter the generated dependencies.
> This will no longer work in rpm-4.9.0. Instead, support for
> dependency filtering was added to rpm. You can now use
> 
>    %define %__requires_exclude_from ^/foo.*bar
> 
> to tell rpm to ignore files matching the regexp when generating
> requires (the $RPM_BUILD_ROOT is already stripped).
> 

... and this was added from PLD 2+ years ago. The dialect of *RE
had to be established first, and its likely PCRE != POSIX RE's for extra
funnerliness.

> You can use
> 
>    %define %__requires_exclude libfoo.*
> 
> to remove a generated dependency. The same is possible for
> %__provides_ and %__supplements_.
> 

Don't need no steenking supplements. This is OBS only.

> As the generator definitions are now pluggable, I'll migrate them
> from the rpm package into the corresponding packages in the next
> days, i.e. the mono plugin definition into the mono package.
> 

And "pluggable" is misused here.

> Have fun with rpm-4.9.0,
>  Michael.
> 
> --
> 
> I'll need to take a look at recent commits in rpm to see what has been done 
> since I last checked out and if I need to patch some more.
> 
> And I don't know about RPM5's internal generator, so...
> 

The internal generator can be seen outside of rpm by doing things like

        find /bin | /usr/lib/rpm/bin/rpmdeps --provides

and similarly for --requires.

>> 
>>> Can %_perl_provides and %_perl_requires, and %_python_provides ...
>>> etc... be omitted?
>>> Because AFAICT, SuSE just uses regular find-provides and find-requires.
>>> 
>> 
>> All depends on what is implemented in find-provides/find-requires. What's
>> in rpm5.org sources hasn't been looked at (by me) for 6+ years now, caveat 
>> emptor.
>> 
>> You CAN add a sort there ... someone tell Mandriva please.
> 
> Per Oyvind's job ;)
> 
>> 
>> Yes %_perl* et al can be ignored if find-provides/find-requires are written 
>> correctly.
> 
> To me it looks ok, but again see above with regard to rpm 4.9 in which I 
> might have to go nuts.
> 

The divergence is mostly in configgery. A glob is used to gather files
that configure 6 or so parameters per type.

Otherwise its the same basic mechanism, just now exploded into gazillions
of teensy config files to match on paths and suffices.

I personaly don't believe in paths because FHS keeps changing,
and I don't believe in mime-type suffixes because they are too
flimsy, and so never bothered to explode out the configuration.

*Yawn* -- likely gotta keep up with the Joneses and mow the lawn and trim the 
weeds.

todo++

> 
hth

73 de Jeff

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to