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.

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.

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

You can use

   %define %__requires_exclude libfoo.*

to remove a generated dependency. The same is possible for
%__provides_ and %__supplements_.

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.

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


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.


Note that there is /usr/lib/rpm/bin/rpmdeps --provides,-P and --requires,-R
that

can be dropped into find_provides and find_requires too. That's basically

what Poky/Yacto is doing, building without using *.spec files (yes *.spec
files

are used for templating the packaging but not for building).


73 de Jeff



--
later, Robert Xu

Reply via email to