From Fedora Project Wiki

Fedora Packaging Committee Meeting of {2007-07-10}


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


No proposals were submitted to FESCo last week, so no new guidelines this week.


The following proposals were considered:

Other Discussions

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

IRC Logs

[12:02]  * spot is here
[12:03]  * tibbs here
[12:03]  * lutter here
[12:04]  * rdieter here
[12:04]  <racor> racor is here
[12:04]  <spot> i know f13 and abadger aren't going to be here
[12:04]  <spot> scop?
[12:04]  <scop> pong, working on UsersAndGroups
[12:05]  <spot> ok. i just looked at it to see if it had changed. :)
[12:05]  --> thimm has joined this channel (
[12:05]  <spot> ok, with thimm everyone is accounted for
[12:06]  <spot> Lets start with R
[12:06]  <spot>
[12:06]  <spot> i hope that is fairly straightforward
[12:07]  <spot> theres not a lot of R packages in Fedora yet, but there is a lot of interest
[12:07]  <tibbs> There are a bunch up for review.
[12:07]  <spot> these guidelines were put past the fedora R community for feedback
[12:07]  <spot> and they are pretty happy with them
[12:07]  <spot> i made some minor changes, mostly clarification items
[12:08]  <tibbs> The "Installing the R addon bits" section mentions %{_datadir} but that only works for noarch packages.
[12:08]  <spot> ah, ok. easyfix. :)
[12:08]  <tibbs> Anyway, I've gone through these before, so +1
[12:09]  <rdieter> looks purty nice: +1
[12:09]  <thimm> +1
[12:09]  * spot votes +1 for his own draft
[12:10]  <lutter> +1
[12:10]  <scop> there's no "normal" dependency on R in the templates, just (post) and (postun)?
[12:10]  <spot> scop: the arch specific packages will pick up a libR dependency
[12:10]  <spot> the noarch packages will need a Requires: R
[12:10]  <racor> I'm hesitant on the "cd .."'s
[12:10]  <thimm> (BTW always a tetex dependency or just for the example's sake?)
[12:11]  <spot> thimm: the R docs rely on tetex
[12:11]  <spot> racor: its either cd .. or a much more complicated %setup
[12:11]  <racor> because I've occasionally seen rpm screwing up outside of RPM_BUILD..
[12:11]  <racor> or what the correct name is ... ;)
[12:11]  <spot> i tested with cd .. and it worked ok for me
[12:12]  <thimm> spot: but are there always ARE-docs?
[12:12]  <racor> debug-infos?
[12:12]  <spot> thimm: in every package I've ever done, yes.
[12:12]  <thimm> s/ARE/ARE/
[12:12]  <thimm> Dammit!
[12:12]  <spot> thimm: i know what you meant. ;)
[12:12]  <spot> racor: they're being generated ok
[12:12]  <racor> spot: if YOU say so ...
[12:12]  <tibbs> I think the CD is OK.
[12:12]  <spot> the only reason we have to cd .. is because R wants to look at the toplevel module name
[12:12]  <scop> wouldn't %setup -c, then cd %{packname} instead of ".." in %build, %install and friends work?
[12:13]  <thimm> That's an ugly feature of gaim, replacing  this package's name with "are" ...
[12:13]  <tibbs> After all, if you have multiple setup macros, you're making multiple directories there and may need to manipluate them.
[12:13]  <spot> you end up doing: %setup -T -c -a 0
[12:13]  <spot> or something similar
[12:13]  <tibbs> It's not escaping from the sandbox that's given to it.
[12:14]  <tibbs> But yes, you can save the cd if you tell setup not to cd into there in the first place.
[12:14]  <spot> I'm not opposed to %setup -c
[12:15]  * spot does a quick test
[12:15]  <tibbs> It is a couple of characters shorter.
[12:16]  <spot> racor: [spot@localhost cvs] $ rpm -qlp /home/spot/rpmbuild/RPMS/x86_64/R-hdf5-debuginfo-1.6.6-1.fc8.x86_64.rpm
[12:16]  <spot> /usr/lib/debug/usr/lib64/R/library/hdf5/libs/
[12:16]  <spot> /usr/src/debug/hdf5
[12:16]  <spot> /usr/src/debug/hdf5/hdf5
[12:16]  <spot> /usr/src/debug/hdf5/hdf5/src
[12:16]  <spot> /usr/src/debug/hdf5/hdf5/src/hdf5.c
[12:16]  <spot> and yeah, %setup -c works nicely.
[12:16]  <spot> i'll make that change
[12:17]  <tibbs> It gets rid of the need for the cd in the check section as well, doesn't it?
[12:17]  <spot> yes
[12:17]  <spot> so its win win
[12:18]  <spot> ok, i made the changes to the draft.
[12:18]  <spot> anyone want to add or change a vote?
[12:19]  <scop> # Clean up in advance of check
[12:19]  <scop> doesn't that break repeated -bi --short-circuit builds?
[12:19]  <spot> well, i'm not sure we've ever "supported" --short-circuit builds
[12:20]  <scop> why not?
[12:20]  <spot> eh, because most people don't get what they expect.
[12:20]  <tibbs> I don't see how it would break them.  It's an idempotent operation.
[12:20]  <racor> what about the explicit tetex dep? If, as you said, "Building R always requires tetex", shouldn't R-devel better pull-in tetex?
[12:21]  <spot> racor: it is possible for an R package to not include documentation
[12:21]  <spot> then it wouldn't need tetex
[12:21]  <scop> 1) we have *.o and *.so in place, R CMD INSTALL installs them
[12:21]  <scop> 2) we remove *.o and *.so
[12:21]  <scop> 3) R CMD INSTALL runs again, *.o and *.so are no longer there
[12:21]  <scop> what happens?
[12:21]  <spot> R CMD INSTALL will rebuild them
[12:21]  <spot> if they're not present
[12:22]  <scop> ah, ok, didn't notice the empty %build section
[12:22]  <scop> so there's no R CMD BUILD or something that would just build the stuff to place in %build?
[12:22]  <spot> not really, no.
[12:22]  <tibbs> Unfortunately not.
[12:23]  <spot> and even if there was...
[12:23]  <scop> ok, I think the current template is ok then
[12:23]  <tibbs> I'm assuming R gets the proper CFLAGS and such from when it was built.
[12:23]  <spot> tibbs: it does
[12:23]  <scop> oops
[12:23]  <scop> what about --target i686 on a i386 R system?
[12:24]  <spot> it asks R for the flags it was built with
[12:24]  <spot> and maps up to that
[12:24]  <spot> so it wouldn't i686 opt without a hack
[12:24]  <scop> that's different from others
[12:24]  <racor> spot: This would mean R isn't multilib-able
[12:24]  <scop> we honor the user's choice in perl, python, ruby templates
[12:24]  <spot> racor: ehh...
[12:24]  <spot> it will build i386 and x86_64 fine
[12:25]  <spot> it just doesn't normally know how to handle any subarches
[12:25]  <racor> spot: How? How does compilation receive the appropriate CFLAGS?
[12:26]  <racor> Normally in x86: -m32/-m64
[12:26]  * spot looks to tell you exactly how
[12:29]  <racor> anyway, as usual ;), my time's up for today, I'll have to leave. preliminary +1 to Spot's proposal.
[12:29]  <spot> ok
[12:29]  <spot> so when R builds
[12:29]  <spot> it looks at all the compiler related flag environmentals
[12:29]  <spot> and saves them in a file called Makeconf
[12:30]  <spot> then, everytime R CMD INSTALL gets called after that, it sources Makeconf
[12:30]  <spot> and reuses those flags
[12:30]  <spot> their goal is to prevent compiler mismatches due to altered flags between library addons and the main R library
[12:30]  <spot> think of this like an app polling pkg-config for flag information
[12:31]  <spot> this means that on x86_64, we get the x86_64 flags
[12:31]  <spot> it could be overridden, but R upstream would likely blow a fuse. :)
[12:31]  <scop> perl, python, ruby don't...
[12:32]  <scop> s/don't/upstreams don't/
[12:32]  <spot> but we're not building for these other "subarch" targets currently, are we?
[12:32]  <scop> _we_ are not, but users may want to
[12:32]  * rdieter is ok with R's use of Makeconf
[12:33]  <spot> scop: i'm not sure how well it would work, to optimize an R sublibrary at a different level than R
[12:33]  <spot> if the user really wanted to do that, they'd rebuild R for i686
[12:33]  <spot> then, the addon library modules
[12:33]  <tibbs> I don't think it's productive to refuse to supply guidelines for R simply because there's disagreement about the way R upstream handles builds.
[12:33]  <spot> and it would work.
[12:33]  <scop> use of Makeconf as is effectively means R packages will ignore $RPM_OPT_FLAGS, which is directly against our guidelines
[12:33]  <f13> I'm here
[12:34]  <f13> the eagle has landed
[12:34]  <tibbs> Erm, only if R wasn't built with RPM_OPT_FLAGS
[12:34]  <tibbs> Otherwise Perl has the same problem.
[12:34]  <scop> no, regardless
[12:34]  <rdieter> I'd assume %{optflags} would be included in Makeconf.
[12:35]  <rdieter> yes, no?
[12:35]  <scop> rdieter, probably yes, %{optflags} of R, not the R add-on being build
[12:35]  <tibbs> If they differ, that would again be a violation of our guidelines.
[12:35]  <scop> uh?
[12:36]  <tibbs> It would mean that R wasn't built properly.
[12:36]  <tibbs> In violation of our guidelines.
[12:36]  <rdieter> spot commented this is upstreams intent for all of R to use the same flags.  as long as it includes optflags, I'm ok with that.
[12:36]  <scop> they differ if the user rebuilding the R add-on chooses to make them differ
[12:36]  <rdieter> bending things to tweak flags for individual add-ons is -EWASTEOFTIME.
[12:37]  * f13 looks at topic, is this the KDE meeting or the packaging one?
[12:37]  <scop> I disagree
[12:37]  <rdieter> hee, forgot to change topic.
[12:37]  *** rdieter sets the channel topic to " -- Fedora Packaging Committee meeting".
[12:38]  <spot> well, we have +6 for the draft
[12:38]  <scop> my -1 for the record unless it's changed to honor $RPM_OPT_FLAGS
[12:38]  <spot> ok, i'll research that as a possible future change
[12:38]  <spot> and note the -1.
[12:38]  <scop> but if it passes anyway, please document the reason for ignoring them
[12:39]  <spot> scop: sure, that seems reasonable.
[12:39]  <spot> next item:
[12:40]  <spot>
[12:40]  <spot> this update doesn't let %pre fail
[12:41]  <scop> changes since last week:
[12:41]  <tibbs> That's much slimmed down from before.
[12:41]  <spot> the only item i think i'm concerned about is groupadd vs getent
[12:41]  <scop> spot, that's listed in the TODO section
[12:41]  <spot> i know
[12:42]  <spot> i think its safer to use getent
[12:42]  <scop> I don't feel competent to make the call between "id" and "getent passwd", and "groupadd -f" and "getent group"
[12:42]  <scop> (nor even to have an opinion)
[12:43]  <spot> I trust simo's judgement on that
[12:43]  <spot> he knows that code very well
[12:43]  <spot> and he thinks we should use:
[12:43]  <spot> getent passwd <user> >/dev/null
[12:43]  <spot> > getent group <group> >/dev/null
[12:43]  <spot> >
[12:43]  <spot> > if the user/group exist then 0 is returned if not then non zero (2 iirc)
[12:43]  <spot> > is returned
[12:44]  <spot> otherwise, I'm ok with the draft.
[12:44]  <rdieter> ditto what spot said. :)
[12:44]  <scop> does getent consult external databases as well if so configured in NSS?
[12:45]  <spot> scop: yes, getent is tied right into NSS
[12:45]  <scop> okay
[12:45]  <spot> The getent program gathers entries from the specified administrative
[12:45]  <spot>        database using the specified search keys.  Where database is one of
[12:45]  <spot>        aliases, ethers, group, hosts, netgroup, networks, passwd, protocols,
[12:45]  <spot>        rpc, services or shadow.
[12:46]  * scop was just worried that eg. "passwd" == "/etc/passwd"
[12:46]  <spot> nah. :)
[12:46]  <spot> simo pointed that out to me when i was grepping through /etc/passwd
[12:47]  <scop> ok, want me to make those changes and vote then, or already now?
[12:47]  <spot> i'd like to just see the changes before voting
[12:47]  <spot> if only because i know this is going to get a lot of attention
[12:48]  <scop> I have no problem with that, but it'll mean it'll be up to vote next week
[12:48]  <spot> thats fine.
[12:48]  <scop> I want to test and be sure I get it right
[12:48]  * spot nods
[12:48]  <scop> ok, will do that
[12:48]  <spot> ok, thats all i had on the agenda for this week. open to items from anyone else:
[12:49]  <f13> did we talk about the icon cache updating thing?
[12:49]  <rdieter> no
[12:49]  <spot> f13: since i don't know what you're referring to, no, we didn't.
[12:49]  <f13> the scriptlet-snippits stuff that says we shouldn't add a dep on the icon stuff, but we don't safely wrap the script to fail silently if the tool isn't there.
[12:49]  <spot> oh, thats an obvious fix that needs to be made.
[12:49]  <f13>
[12:50]  <spot> someone want to volunteer to fix it?
[12:50]  <f13> rdieter: you replied to the message
[12:50]  <f13> with an example of how to fix it
[12:50]  <f13> rdieter: I volunteer you to just fix it.
[12:50]  <rdieter> what's preferred, wrap with [ -x /usr/bin/gtk-update-icon-cache ]  &&  or >& /dev/null the output?
[12:50]  <f13> fail silently I thikn
[12:50]  <f13> it's "quicker"
[12:50]  <rdieter> the latter is shorter. :)
[12:50]  <spot> yeah, fail silently.
[12:50]  <rdieter> ok, I'll do it.
[12:50]  <f13> of course, somebody will yell at us about this...
[12:50]  <f13> hrm.
[12:51]  <scop> --quiet can be dropped too if you redirect both stdout,stderr to /dev/null
[12:51]  <f13> maybe we should just ask the desktop folks their opinion.  Maybe we're interested in errors should the executable actually be there.
[12:51]  <rdieter> that means wrapping...
[12:51]  <spot> rdieter: want to talk to mclasen and folks about it?
[12:51]  <spot> see what they'd prefer?
[12:51]  <rdieter> sure, will do
[12:51]  <rdieter> fedora-desktop list?
[12:52]  <f13> ok, and the next item is the init scripts LSB stuff
[12:52]  <spot> seems like as good a place as any.
[12:52]  <f13> we've got folks filling mass bugs about this, but there doesn't seem to be clear definition of what we should do to be LSB compliant.  This I think falls into packaging unforch.
[12:52]  <spot> well, the guidelines already say "follow the LSB"
[12:52]  <spot> i would really prefer to see the bug filers present a draft here
[12:52]  <f13> I personally have no clue about this, and others have pointed out that the LSB is rather vague in places, so we probably need a "Fedora interpretation" of the LSB
[12:52]  <f13> spot: I would too, dearly.
[12:53]  <spot> as I'm not an expert on what makes an initscript LSB compliant
[12:53]  <scop>
[12:53]  <spot> f13: can you email and see if he is willing to help draft that?
[12:53]  <scop> I added some answered and unanswered questions there
[12:53]  <f13> spot: sure.
[12:54]  <f13> scop: want to be kept in the loop?  I don't really grok this stuff currently
[12:54]  <f13> (I haven't put effort into it yet is all)
[12:54]  <scop> f13, sure, why not
[12:54]  <scop> I have more questions than answers though ;)
[12:54]  <f13> that's perfect!
[12:55]  <spot> ok, any other items?
[12:55]  <spot> (other than my need for lunch....)
[12:55]  <tibbs> Nothing from me.
[12:56]  <spot> ok. lunchtime for me.
[12:56]  <spot> thanks all.