From Fedora Project Wiki

Fedora Packaging Committee Meeting of {2007-04-24}


  • AxelThimm (thimm)
  • DavidLutterkort (lutter)
  • JasonTibbitts (tibbs)
  • JesseKeating (f13)
  • RexDieter (rdieter)
  • TomCallaway (spot)
  • ToshioKuratomi (abadger1999)
  • VilleSkyttä (scop)


The following drafts have been accepted by FESCO and are to be written into the guidelines:


No proposals are submitted for FESCo consideration this week. There was preliminary voting on one issue (see below) but there will be further discussion at the next FPC meeting.

Other Discussions

The following additional items were discussed; see the logs for full details.

  • Switching the guidelines to recommend the use of %global instead of %define in specfiles. %define works unintuitively in some situations where %global works as expected. See for a reference. A draft on the differences between %global and %define in specfiles is being prepared and should be presented next week.
  • FPC's obligations to present information to FESCO and the manner in which that's done. We'll continue to use the current method until FESCO decides they'd like it done differently.

IRC Logs

[12:00]  * tibbs here
[12:00]  * spot is here
[12:01]  <thimm> /me, too
[12:01]  <lutter> kinda here
[12:03]  <tibbs> Hmmm.
[12:03]  <tibbs> We can get something done if we have one more committee member.
[12:03]  <spot> f13 is almost certainly not going to be here
[12:04]  <spot> he's on vacation
[12:04]  <tibbs> Who allowed that?
[12:04]  --> scop has joined this channel (
[12:05]  <spot> eh, he escaped from his cage
[12:05]  <spot> we've got dogs tracking him down
[12:05]  <rdieter> here
[12:05]  * scop here in just a moment
[12:06]  <rdieter> thimm: wrt python macros, any thoughts on putting the macros directly into python-devel, kinda like how we recently did with cmake?
[12:06]  <thimm> That would be a separate issue
[12:06]  <tibbs> Well, we're good to go on the encoding guidelines change, although there was a suggestion to u0pload the ascii chart to our wiki instead of linking to wikipedia.
[12:06]  <thimm> But why not put them into redhat-rpm-config?
[12:07]  --> prosody has joined this channel (n=prosody@
[12:07]  <rdieter> ok, I don't care where they go, honestly, but (re)defining them in *every* python-related specfile seems overkill.
[12:07]  <thimm> ++++
[12:07]  <spot> rdieter: i'm not sure anyone is advocating that
[12:07]  <spot> rather that the macros be fixed.
[12:08]  <rdieter> spot: well, consider *me* as an advocate then. :)
[12:08]  <thimm> anyone disagrees on %define -> %global changes?
[12:08]  <rdieter> thimm: no, %global is a good idea.
[12:08]  <thimm> If not, we could make it a QuickVote
[12:08]  <spot> yeah, using global makes sense, its a pretty straightforward bug avoidance
[12:08]  <spot> +1
[12:08]  --> Pingoomax has joined this channel (n=Maxime@fedora/Pingoomax).
[12:08]  <rdieter> +1
[12:08]  <thimm> +1
[12:08]  <lutter> +1
[12:09]  <-- gilboa has left this server (Read error: 110 (Connection timed out)).
[12:09]  * scop here
[12:09]  <scop> do we know all the effects of %define -> %global?
[12:09]  <spot> scop: using %global instead of %define to avoid recursion bugs in macros
[12:09]  <thimm> scop: In theory, yes, and in limited praxis
[12:10]  <thimm> It effectively places the %define outside of the surrounding braces
[12:10]  <thimm> while stil being conditional
[12:11]  <scop> well it sounds good to me, but without knowing the exact semantics of either I don't feel comfortable voting for nor against
[12:11]  <tibbs> I don't even understand the difference; I'm sure there are subleties only divined by memorizing the RPM source.
[12:11]  <thimm> Difference:
[12:11]  <thimm> %define is local scope
[12:11]  <thimm> %global is ... global scope
[12:11]  <tibbs> RPM actually has defined scoping rules?
[12:11]  <thimm> Simple %define == simple %global
[12:11]  <scop> what is "local scope" in the context of rpm specfiles?
[12:12]  <thimm> If used within another macro, then %define is only locally defined for the macros definition, %global not
[12:12]  <rdieter> and %define will re-evaluate stuff inside %()'s, where's %global evaluates only once.
[12:12]  <thimm> local scope= %{...}
[12:12]  <thimm> Or the definition of a multiline macro
[12:12]  <scop> how does %{expand: ...} fit into the picture?
[12:12]  <thimm> Same
[12:13]  <thimm> it's local
[12:13]  <thimm> So %{expand: } will break, too
[12:13]  <scop> what does %{expand: %global ...} mean?
[12:13]  <thimm> If it also has lazy (=sloppy) grabage collection
[12:13]  <scop> s/%global/%%global/
[12:13]  <rdieter> scop: %{expand:%define} is roughly equivalent to %global
[12:13]  <thimm> Same as %define, only that %define may be level 1 nested, while %global is always level 0
[12:14]  <rdieter> scop: %{expand:%global ...} is (afaik) kinda redundant.
[12:14]  <scop> hm
[12:14]  <thimm> Anyway it fixes a mean problem
[12:15]  <thimm> And was commented by the god of rpm in a sane way
[12:15]  <tibbs> I'm reading the bug report ATM
[12:15]  <scop> sure, but what exactly are we voting for?
[12:15]  <scop> always use %global?
[12:15]  <thimm>
[12:15]  <XulChris> who is the god of rpm?
[12:15]  <thimm> Use %global in %{!?...}
[12:15]  <tibbs> Hmm, CLOSED NOTABUG
[12:16]  <thimm> That was me
[12:16]  <thimm> It isn't a bug in rpm
[12:16]  <spot> tibbs: axel closed it, not paul.
[12:16]  <rdieter> XulChris: he who must not be named. :)
[12:16]  <thimm> Proposal is bug's summary: "%{!?bar: %define bar ...} construct broken by design, use %global instead"
[12:16]  <tibbs> So is there any reason to actually use %define anywhere?
[12:17]  <XulChris> rdieter: lol
[12:17]  --> fabian_a has joined this channel (
[12:17]  <thimm> tibbs: Not really for non-.advanced stuff
[12:17]  <scop> we have lots of python packages using the same template which uses %define - why are they not affected?
[12:17]  <thimm> If you have complicated macros that temporaily define a macro and dump it at the end you need %define
[12:18]  <thimm> Because there was no other macros invoced that did garbage collection
[12:18]  * abadger1999 is here
[12:18]  <thimm> To my knowledge this includes paramterized macros and expand
[12:18]  <scop> what was the package that triggered the issue?  vtk?
[12:18]  <thimm> OK, if you need more testing we can table this
[12:18]  <thimm> Yes, vtk
[12:18]  <thimm> But I've seen this bug before
[12:19]  <tibbs> OK, I've read the bug report and it makes sense to me.
[12:19]  <thimm> And I have always worked around it with trial and error not understanding it
[12:19]  <thimm> But now with Jeff's comments on garbage collection it makes sense
[12:19]  <thimm> So, we've ben using an ill construct all the time and were just "lucky"
[12:20]  <lutter> yeah, it's also in the ruby guidelines .. probably other places, too
[12:20]  <tibbs> So the earlier voting was about changing the suggested python macros to use %global instead of %define?
[12:20]  <thimm> Aynway, if you need some more time to spend on this, we can table this
[12:20]  <thimm> tibbs: Not only python, every usage of this kind
[12:20]  <thimm> Including ruby, if it uses that
[12:21]  <spot> i thought it was wherever "%{!?bar: %define bar ...}" appears in the guidelines, it should be replaced with "%{!?bar: %global bar ...}
[12:21]  <XulChris> pear template uses %global
[12:21]  <tibbs> Well, I'm all for it if it fixes bizarre bugs.  Our guidelines should always be as correct as we can get them.
[12:21]  <tibbs> So +1.
[12:21]  <thimm> Proposal is "Make%{!?bar:%define bar ...} to %{!?bar: %global bar ...} everywhere"
[12:21]  <spot> ok, lets vote on thimm's proposal
[12:21]  <spot> +1
[12:21]  <rdieter> +1
[12:21]  <lutter> +1
[12:21]  <thimm> +1
[12:21]  <tibbs> Where "everywhere" == "wherever it appears in the guidelines", I assume.
[12:21]  <tibbs> +1
[12:22]  <scop> so do we want to encourage use of %define _anywhere_?
[12:22]  <thimm> Well, we are only authitative for the guidelines
[12:22]  <-- prosody has left this server (Read error: 60 (Operation timed out)).
[12:22]  <spot> well, %define foo bar works fine
[12:22]  <lutter> yeah, it seems that for spec files, %global is always preferrable
[12:22]  <abadger1999> +1
[12:22]  <thimm> scop: Maybe not to avoid such bugs
[12:22]  <spot> its really only when you start to recurse that you hit issues.
[12:22]  <spot> %global would avoid them all
[12:23]  <lutter> and it's what I always thought %define does :(
[12:23]  <tibbs> RPM for the win!
[12:23]  <thimm> I think the preference of %define over %global is historical
[12:23]  <thimm> %define was there first
[12:23]  <thimm> And when nesting was invented one needed %global
[12:23]  <scop> +1 for the current proposal, but I suggest we add an item about possibly s/%define/%global/g everywhere in the guidelines and spec templates
[12:24]  <spot> yeah, i think we should do the following:
[12:24]  <thimm> OK, we are unanimous for the change :)
[12:24]  <spot> Use %global everywhere in the guidelines. Add a section to the guidelines describing %global vs %define.
[12:24]  <rdieter> where's Ralf when you need him? :)
[12:25]  <thimm> I can prepare the section and we vote on it next time, OK?
[12:25]  <scop> any ideas in which rpm version was %global introduced, if it was added after %define?
[12:25]  <scop> thimm++
[12:25]  <lutter> sounds good
[12:25]  <tibbs> OK.  Do we want to pass any part of this to FESCo this week?
[12:25]  <scop> let's do the whole shebang when it's ready
[12:25]  <spot> sounds good.
[12:26]  --> prosody has joined this channel (n=prosody@
[12:26]  <thimm> Is it OK, to push packages using %global for now?
[12:26]  <thimm> I have ancient vtk review request and that need %global
[12:26]  <spot> thimm: there was never anything that said you couldn't use %global
[12:27]  <thimm> Well, we do have guidelines that tell me the exact line to paste in and that contains %define
[12:27]  <spot> and yet, you're smart enough to know that you need to diverge from that with a good reason. :)
[12:27]  <scop> no need to start campaigning for use of %global in packages where %define works right now, I think
[12:27]  <thimm> OK, point taken
[12:28]  <spot> thimm: we'll make the guidelines fix next week, we'll look forward to your draft.
[12:28]  <thimm> OK
[12:28]  <spot> lutter: any progress on ruby?
[12:29]  <lutter> spot: sadly still nothing .. sorry
[12:29]  <spot> ok.
[12:29]  <spot> scop: got a draft for user/groups?
[12:29]  <scop> one way almost there
[12:29]  <scop> at least ready for discussion
[12:29]  <scop> (one way == all dynamic)
[12:29]  <spot> i think we might want to do the discussion on the list
[12:30]  <f13> still going?
[12:30]  <f13> or meeting over?
[12:30]  <spot> when the draft is ready, of course. :)
[12:30]  <spot> f13: still going, barely.
[12:30]  <f13> k
[12:30]  <tibbs> Well, one thing to note
[12:31]  <tibbs> There was discussion at the FESCO meeting
[12:31]  <tibbs> about whether they need to ack "minor" changes.
[12:31]  <tibbs> I don't think the define -> global thing is "minor" but some could consider it to be so.
[12:32]  <thimm> It's a dangerous game to let us draw the line, later we will be accused of slipping thing under the carpet
[12:32]  <rdieter> imo, minor and not controversial.
[12:32]  <thimm> If it is really minor, then fesco just nods off
[12:32]  <tibbs> That's what I said, but FESCO seems to think differently.
[12:32]  --> [splinux]  has joined this channel (n=splinux@fedora/splinux).
[12:32]  <tibbs> So I still plan to pass all changes by them.
[12:32]  <thimm> Waste of 30secs of fesco time per minor item?
[12:33]  <spot> FESCO will get over it.
[12:33]  <tibbs> It's not as if we presented 100 items per meeting.
[12:33]  <tibbs> Or even five.
[12:33]  <spot> if they really get annoyed by "minor" issues, they can clearly define what they think is minor
[12:33]  <rdieter> how does it work, that FESCO ACKS everything, or that they have the ability to NACK(ie, veto) items? (there's a difference)
[12:33]  <tibbs> Officially they have veto power.
[12:33]  <thimm> rdieter: isn't that the same?
[12:34]  <spot> when i was told to create this committee, it was with the mandate that FESCO can veto anything
[12:34]  <tibbs> But they still need to have the items presented to them for consideration.  Otherwise we could just make changes and not report them.
[12:34]  <rdieter> no, because "not voting = not NACK'ing"
[12:34]  <rdieter> tibbs: doesn't the packging report to fedora-maintainers (or whatever) could as items presented?
[12:34]  <rdieter> s/could/count/
[12:35]  <tibbs> Yes, but we all know that people don't read, and FESCO asks us for a summary at the beginning of every meeting.
[12:35]  <spot> it could. but we're being nice about it. :)
[12:35]  <knurd> from the rabble seats: rdieter, that how it was planed in the past
[12:35]  <thimm> rdieter: you mean if fesco doesn't pay attention we get to do what we want? ;)
[12:35]  <rdieter> thimm: we have a winner!
[12:35]  <XulChris> until you do something controversial and fesco notices
[12:35]  <rdieter> XulChris: exactly.
[12:35]  <thimm> OK, then let's do the veto procedure and tibbs send his reports to fedora-noone-reads-this-list ;)
[12:36]  <rdieter> tibbs/I whoever can still give summaries when/if FESCo wants.  no biggie.
[12:36]  <thimm> Aynway, if that's the way fesco wants to handle it, it's OK
[12:36]  <thimm> I just don't want to be the one deciding waht is major and minor
[12:36]  <f13> how about this.
[12:37]  <f13> how about we report on what we decided, we lset fesco decide if they want ot vote on something or not
[12:37]  <XulChris> f13: isnt that how it works now?
[12:37]  <-- bpepple has left this channel ("Ex-Chat").
[12:37]  <tibbs> That's pretty much what I've been doing.
[12:37]  <f13> no, they get to vote on everything
[12:37]  <knurd> XulChris, they vote on everything
[12:37]  <f13> of course, voting to vote is silly
[12:37]  <XulChris> thats silly
[12:37]  <knurd> XulChris, that happend somehow over time and was never planed like this afaik
[12:37]  <tibbs> Usually I present and it goes through if nobody has a complaint.
[12:38]  <tibbs> Which is precisely what I understood "they can veto" to mean.
[12:38]  <spot> yeah, i'm ok with what we're doing now
[12:38]  <spot> if FESCO wants us to change, they can tell us that.
[12:39]  <scop> back to UsersAndGroups, it's as finished as I'm going to make it for now without more discussion
[12:39]  <spot> ok
[12:39]  <spot> i'd like to try and do this discussion on the list
[12:40]  <scop> if someone wants to document the other approaches (fixed uid mappings etc), it'd be better if someone other than me does it - I'm probably a bit too biased to do that objectively :)
[12:40]  <spot> since its bound to be controversial
[12:40]  <spot> scop: can you announce the draft on the mailing list?
[12:41]  <scop> sure, if you think it needs to be announced in addition to being mentioned in the meeting report
[12:41]  <thimm> scop: I'll do the semi-static uid proponent
[12:41]  --> llaumgui has joined this channel (
[12:41]  <thimm> "Nah, I think semi-static model sucks, I go for Ville's model"
[12:42]  <scop> if we want the other models documented, I think we should do them in a "black box" manner
[12:42]  <scop> ie. stick with the implementation, and compare/bash others later when we have all documented
[12:42]  <thimm> From what I read your proposal looks quite sane
[12:43]  <spot> one item for the meeting: meeting time.
[12:43]  <thimm> It would be sad to create lots of noise with 10 more models
[12:43]  <spot> i'm really going to send out a request for us to consider a meeting time change
[12:43]  <spot> we're losing racor entirely
[12:43]  <spot> i'm going to clear out and let people fill it back in
[12:44]  <spot> (i know i said this last week, but i _will_ do it this time)
[12:44]  <spot> so, keep your eyes open for that, and try to be flexible
[12:44]  <spot> anything else for today?
[12:45]  <thimm> We still have 15 min
[12:45]  <XulChris> i got some php stuff but wont be ready until next week
[12:45]  <thimm> Maybe fix multilib?
[12:46]  <tibbs> I don't think it's within our power to fix multilib.
[12:46]  <thimm> (since no one bites, I'll amdit it was a joke)
[12:46]  <thimm> OK, one bites :)
[12:46]  <tibbs> We can write guidelines for how to split packages to avoid problems, though.
[12:46]  <thimm> No, I was joking, the multilib design is currently making people smash their heads
[12:46]  <rdieter> tibbs: +1
[12:46]  <spot> thats an F8 item. i'll write the draft for that after F7.
[12:47]  <XulChris> remi seemed kinda angry at packaging comittee for not looking at his pecl proposal, any familiar with that?
[12:47]  <spot> what pecl proposal?
[12:47]  *** knurd is now known as knurd_afk.
[12:47]  <XulChris> spot: im not sure, i vaguely remember him mentioning it several months ago on packaging list
[12:47]  <rdieter> "what proposal?" is exactly the problem.  :)
[12:47]  <XulChris> spot: ill get more info and present it to you with other stuff next week
[12:48]  <tibbs> spot: Regarding the meeting time, I'm honestly not sure that chart would look any different than it does now.
[12:48]  <spot> tibbs: eh, well, we'll see
[12:48]  <thimm> XulChris: Please check
[12:49]  <XulChris> thimm: cool thx
[12:49]  <spot> ok, then, lets adjourn early. thanks all.
[12:49]  <thimm> XulChris: you or remi create the proposal under
[12:49]  <thimm> OK, buy all
[12:49]  <tibbs> rdieter: Are you still blocked at 16:00?
[12:50]  <rdieter> tibbs: no worries, we can move if need be.
[12:50]  <thimm> BTW I may not be able to make it next and next to next time, I'll mail that on the list, too