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