I do some macro gymnastics with vym to prevent it Requiring a perl module that's named one thing in SuSE and another in Fedora. With my latest f17 build, that stopped working, while builds of the same code and spec on f15 and f16 seem to be ok. Did rpm's behaviour change?
-J
On Thu, Aug 18, 2011 at 3:22 PM, Jon Ciesla limb@jcomserv.net wrote:
I do some macro gymnastics with vym to prevent it Requiring a perl module that's named one thing in SuSE and another in Fedora. With my latest f17 build, that stopped working, while builds of the same code and spec on f15 and f16 seem to be ok. Did rpm's behaviour change?
The perl_default_filter macro changed with perl 5.14. We're now using rpm's native __requires_exclude macro (and friends) instead of the slightly hacky filter_setup stuff. Ideally, we'd drop the filter_setup/filter_from_requires entirely, but to keep a single spec compatible with all current fedora branches, you can do:
--- vym.spec.orig 2011-07-20 19:58:57.000000000 +0200 +++ vym.spec 2011-08-18 15:37:06.427529132 +0200 @@ -22,6 +22,7 @@ %filter_from_requires /^perl(BugzillaClient)$/d %?perl_default_filter } +%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}perl\(BugzillaClient\) Requires: perl-BZ-Client
%description
On Thu, Aug 18, 2011 at 3:42 PM, Iain Arnell iarnell@gmail.com wrote:
On Thu, Aug 18, 2011 at 3:22 PM, Jon Ciesla limb@jcomserv.net wrote:
I do some macro gymnastics with vym to prevent it Requiring a perl module that's named one thing in SuSE and another in Fedora. With my latest f17 build, that stopped working, while builds of the same code and spec on f15 and f16 seem to be ok. Did rpm's behaviour change?
The perl_default_filter macro changed with perl 5.14. We're now using rpm's native __requires_exclude macro (and friends) instead of the slightly hacky filter_setup stuff. Ideally, we'd drop the filter_setup/filter_from_requires entirely, but to keep a single spec compatible with all current fedora branches, you can do:
--- vym.spec.orig 2011-07-20 19:58:57.000000000 +0200 +++ vym.spec 2011-08-18 15:37:06.427529132 +0200 @@ -22,6 +22,7 @@ %filter_from_requires /^perl(BugzillaClient)$/d %?perl_default_filter } +%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}perl\(BugzillaClient\)
^ That should be one line, of course.
And I noticed that you already have a __requires_exclude. But at the minute, it *must* come after perl_default_filter.
Iain Arnell wrote:
On Thu, Aug 18, 2011 at 3:42 PM, Iain Arnell iarnell@gmail.com wrote:
On Thu, Aug 18, 2011 at 3:22 PM, Jon Ciesla limb@jcomserv.net wrote:
I do some macro gymnastics with vym to prevent it Requiring a perl module that's named one thing in SuSE and another in Fedora. With my latest f17 build, that stopped working, while builds of the same code and spec on f15 and f16 seem to be ok. Did rpm's behaviour change?
The perl_default_filter macro changed with perl 5.14. We're now using rpm's native __requires_exclude macro (and friends) instead of the slightly hacky filter_setup stuff. Ideally, we'd drop the filter_setup/filter_from_requires entirely, but to keep a single spec compatible with all current fedora branches, you can do:
--- vym.spec.orig 2011-07-20 19:58:57.000000000 +0200 +++ vym.spec 2011-08-18 15:37:06.427529132 +0200 @@ -22,6 +22,7 @@ %filter_from_requires /^perl(BugzillaClient)$/d %?perl_default_filter } +%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}perl\(BugzillaClient\)
^ That should be one line, of course.
And I noticed that you already have a __requires_exclude. But at the minute, it *must* come after perl_default_filter.
Worked like a charm, thanks very much!
-J
"IA" == Iain Arnell iarnell@gmail.com writes:
IA> The perl_default_filter macro changed with perl 5.14. We're now IA> using rpm's native __requires_exclude macro (and friends) instead of IA> the slightly hacky filter_setup stuff.
Really? Is there documentation for how this is supposed to work now? There's an open draft on this, but I was struggling to find enough macro magic to support the old Perl macros with the new filtering system (and failing).
If this is taken care of, I'd really like to proceed with updating the filtering instructions to include mention of the new hotness.
- J<
On Thu, Aug 18, 2011 at 9:39 PM, Jason L Tibbitts III tibbs@math.uh.edu wrote:
"IA" == Iain Arnell iarnell@gmail.com writes:
IA> The perl_default_filter macro changed with perl 5.14. We're now IA> using rpm's native __requires_exclude macro (and friends) instead of IA> the slightly hacky filter_setup stuff.
Really? Is there documentation for how this is supposed to work now? There's an open draft on this, but I was struggling to find enough macro magic to support the old Perl macros with the new filtering system (and failing).
If this is taken care of, I'd really like to proceed with updating the filtering instructions to include mention of the new hotness.
The only documentation I'm aware of is the same draft you're working on. I'll take a look later this morning and see if I can help fill in some of the gaps for you based on what we've learnt.
"IA" == Iain Arnell iarnell@gmail.com writes:
IA> The only documentation I'm aware of is the same draft you're working IA> on.
Ah, OK. For some reason I interpreted what I read to say that the Perl filtering macros had been rewritten to make use of the new filtering system. I'm still hoping that's possible, but differences in regexp language and the vagaries of rpm macro expansion would seem to make it rather difficult.
- J<
On Fri, Aug 19, 2011 at 5:46 AM, Jason L Tibbitts III tibbs@math.uh.edu wrote:
"IA" == Iain Arnell iarnell@gmail.com writes:
IA> The only documentation I'm aware of is the same draft you're working IA> on.
Ah, OK. For some reason I interpreted what I read to say that the Perl filtering macros had been rewritten to make use of the new filtering system. I'm still hoping that's possible, but differences in regexp language and the vagaries of rpm macro expansion would seem to make it rather difficult.
Yes, perl_default_filter macro has been rewritten to use rpm's new features. And as part of the perl 5.14 rebuild, all of the perl-* spec files that extend the default filtering have been updated to use the new macros directly, while preserving the old-style macros for f14/f15 (in the same way I suggest for vym). It was considerably simpler to update the ~70 or so affected packages than try to make the old filter macros work with new exclude stuff. It's a little messy, but hopefully we'll be able to clean up this time next year.