From Fedora Project Wiki

Fedora Packaging Committee Meeting of {2008-04-22}


  • DenisLeroy (delero)
  • DominikMierzejewski (Rathann|work)
  • HansdeGoede (hansg)
  • JasonTibbitts (tibbs)
  • RexDieter (rdieter)
  • TomCallaway (spot)
  • ToshioKuratomi (abadger1999)
  • XavierLamien (SmootherFrOgZ)


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

  • No packages may own files or dirs in /srv:

  • Build GCJ AOT bits conditionally


The following proposals were considered:

held to grant it an exception which passed with the following voting for: Rathann spot tibbs hansg rdieter

Other Discussions

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

a usable set of guidelines.

  • Discussions about possibly moving the meeting time to account for DST will

happen on-list.

IRC Logs

[12:02]  * spot pings racor, hansg, abadger1999, delero, SmootherFrOgZ, tibbs
[12:02]  <tibbs> "SmootherFrOgZ"?
[12:02]  <delero> hi
[12:02]  --> Rathann has joined this channel (
[12:03]  * hansg is present
[12:03]  <spot> and there's Rathann. :)
[12:03]  <Rathann> present
[12:03]  <Rathann> (semi-)
[12:03]  * Rathann is fiddling with audio cables
[12:03]  <SmootherFrOgZ> tibbs, yep ?
[12:04]  <spot> tibbs: so, spot is ok, but you draw the line at "SmootherFr0gZ" ? :)
[12:04]  <tibbs> I simply have no idea who this person is.
[12:04]  * abadger1999 is late but here now.
[12:05]  <spot> tibbs: he's one of our two new members, specifically, Xavier Lamien
[12:05]  <tibbs> Whatever happened to Panu?
[12:05]  <spot> delero is our other new member, aka, Denis Leroy
[12:05]  <spot> tibbs: thats how the vote came out.
[12:05]  * delero raises his hand
[12:05]  <tibbs> Hmm, disappointing.
[12:07]  <spot> anyways. :)
[12:07]  <spot> i don't see racor or abadger1999 awake, but everyone else is alive
[12:08]  <abadger1999> I'm here, I'm here!
[12:08]  <spot> ok, so thats 8 of 9
[12:08]  * abadger1999 jumps up and down
[12:08]  <spot> lets get to the first item of business
[12:08]  <spot> abadger1999: is Javascript ready?
[12:08]  * hansg wonders why someone is jumping up and down, adhd?
[12:09]  <abadger1999> spot: It can be discussed.
[12:09]  <spot> ok. first item is:
[12:09]  <abadger1999> I'm satisfied with it but I'm also happy to kick the completed draft out to the list one more time.
[12:10]  <tibbs> The issues surrounding this are weird enough that I'd really like to see some input from upstream developers of some of the packages which would fall under this guideline.
[12:10]  <abadger1999> Okay.  What questions would you like to see specifically asked and answered?
[12:10]  <abadger1999> I know I'll get pushback from upstream.
[12:11]  <tibbs> Specifically, the mootools stuff is just nuts, and the compression issue.
[12:11]  <abadger1999> It'll be a matter of whether concerns like security trump what upstreams perceive as easiest.
[12:11]  <abadger1999> Okay.  So talking to mootools and a few of the mootools consumers.
[12:12]  <tibbs> Well, here's the problem.  I have to package mootools in some form in order to update zoneminder.
[12:12]  <tibbs> And this guideline doesn't actually help me do that.
[12:12]  <abadger1999> <nod>
[12:12]  <abadger1999> Very true, that.
[12:12]  <tibbs> I mean, I could package the exact mootools bits that zoneminder needs, but then that should go in zoneminder and thus would be forbidden by this guideline.
[12:13]  <tibbs> So for the only real-world example that I have interest in, it's counterproductive.
[12:13]  <spot> perhaps working through mootools might provide a good basis for fleshing out this guideline?
[12:13]  <abadger1999> I don't believe there's any work to do something like this anywhere else.
[12:13]  <tibbs> We could package all ~8192 versions of mootools separately.
[12:13]  <delero> is the mootools issue really javascript-specific, or is mootools a special case ?
[12:14]  <tibbs> Oops, there are three or four compressors you can apply, so that's too small.
[12:14]  <tibbs> Well, mootools is a javascript library.
[12:14]  <abadger1999> Can we package the complete mootools package as separate files by working with their source?
[12:14]  <rdieter> mootools sound like a pathelogical special-case to me.
[12:14]  <tibbs> abadger1999: I don't believe so.
[12:14]  <abadger1999> Or..hmm... No I see the problem with that.  URLs in the zoneminder package...
[12:14]  <tibbs> rdieter: Yes, but "A package MUST not include javascript libraries that have a separate upstream."
[12:14]  <Kevin_Kofler> IMHO you should make clear that this is only for JavaScript stuff which is part of a web app. There's going to be plenty of JavaScript stuff in future versions of KDE 4 which has nothing to do with Apache and thus "MUST: A javascript library package must provide an apache config file that lets the library be served by apache. This file is placed in %{_sysconfdir}/js/ with a filename extension of *.conf" makes no sen
[12:14]  <Kevin_Kofler> se without defining "javascript library".
[12:15]  <rdieter> tibbs: guidelines remember, can have exceptions
[12:15]  <rdieter> Kevin_Kofler: Javascript library with separate upstream.
[12:15]  <abadger1999> Kevin_Kofler: That's a good point.  Will there be javascript libraries in KDE4?
[12:16]  <tibbs> There are some in KDE3 already, aren't there?
[12:16]  <abadger1999> ie: libraris of javascript code... but intended for building non-web applications?
[12:16]  <delero> with seperate usptream + "and managable release mechanism" ?
[12:16]  <spot> delero: thats really vague.
[12:16]  <abadger1999> delero: We've never let "managable release mechanism" stop us before.
[12:16]  <delero> spot: i agree
[12:16]  <Kevin_Kofler> There are bindings for C++ stuff to use with JavaScript (and there will be one for libplasma), not sure about actual JS libraries.
[12:17]  <rdieter> upstreams without a managable release mechanism deserve cluestick treatment, regardless.
[12:17]  <spot> i think perhaps mootools might need to be a special case, given the large number of variants
[12:17]  <tibbs> For web-intended javascript outside of mootools, I think this guideline serves us well although the compression but gets tricky with the "must rebuild from source" bit.
[12:17]  <spot> tibbs: perhaps we could use all of their compression methods?
[12:17]  <tibbs> "compression bit gets tricky".
[12:17]  <abadger1999> Kevin_Kofler: Okay.  I'd say that qualifies... So the "separate (sub)package" part would still apply.  But the config file should be make clear that it doesn't apply
[12:18]  <tibbs> Well, do we have the actual compressors as installable packages in Fedora?
[12:18]  <spot> tibbs: i dunno. worth checking at least.
[12:18]  <tibbs> I.e. is it intended that we not take the pre-compressed source from upstream?
[12:18]  <abadger1999> tibbsWe are missing at leat jsmin.
[12:18]  <abadger1999> So I think we aren't able to compress at this time.
[12:19]  <abadger1999> tibbs: Yes.  That is intended.
[12:20]  <abadger1999> The minified stuff is technically javascript still, but it's extremely hard to read.  The actual compressed stuff has to be uncompressed in order to read.
[12:20]  <tibbs> There's GPL interaction with that stuff, too, with the "usual form for making modifications" clause.
[12:21]  <tibbs> I don't even want to think about how putting compressed GPL javascript code on your web site involves "distribution".
[12:22]  <abadger1999> <shivers>
[12:22]  <tibbs> I think it's pretty obvious that we should always have the uncompressed version available.
[12:23]  <abadger1999> As in, in the binary rpm?  Or just in the source rpm?
[12:23]  <tibbs> In the web-accessible location.
[12:23]  <spot> i suspect (from what i'm hearing here, not from personal opinion) that many javascript libraries will be incredibly painful to package
[12:23]  <tibbs> Well, actually most of them are trivial.
[12:23]  <tibbs> It's just that the issues are complicated.
[12:23]  <tibbs> All you have to do is stick them in a location and drop in an apache redirect.
[12:24]  <tibbs> Also, I recall recent grumbling about how that stuff doesn't work at all with another web server.
[12:25]  <abadger1999> spot: Yes.  Although ivazquez's MochiKit is both simple and good.
[12:25]  <tibbs> So: proposed action plan:
[12:25]  <abadger1999> Err.. tibbs's explanation is better :-)
[12:25]  <tibbs> Investigate what javascript compressors we have in Fedora.
[12:25]  <tibbs> Look at a couple of non-mootools javascript libraries.  (I have another one needed for zoneminder.)
[12:26]  <spot> seems like a good plan to me.
[12:26]  <tibbs> spot: Are the GPL-related issues worth looking into?
[12:26]  <spot> i'll leave this on the agenda, and we'll revisit it next time
[12:26]  <spot> tibbs: only if we have a specific case
[12:26]  <spot> because i will have to take it to the lawyers for interpretation
[12:27]  <abadger1999> tibbs: Sounds good.  Do we want to bring any of this up with any upstreams?  Or just look at it from the "How easy is it to package" side?
[12:27]  <tibbs> I think it would be better to have something more fleshed out first.
[12:27]  <abadger1999> Okay.
[12:27]  <spot> Alright. Next item:
[12:28]  <spot> This has changes for multilib and directory naming
[12:29]  <tibbs> Is this the correct diff from last time:
[12:29]  <tibbs>
[12:29]  <tibbs> ?
[12:29]  <spot> yes
[12:30]  <spot> This seems pretty straightforward to me
[12:31]  <spot> (and not just because i helped Dennis clean it up)
[12:31]  <tibbs> This looks much better to me, although it's hard to evaluate the "Architecture-specific Activities" bit without actually seeing an example.
[12:31]  <spot> tibbs: SimCity is an example
[12:31]  <tibbs> I'm hoping "as appropriate" is pretty obvious.
[12:31]  <spot> they have python code that launches it as a sugar activity
[12:31]  <spot> there is a /usr/bin/SimCity
[12:32]  <spot> as appopriate in the context of the other Packaging Guidelines
[12:32]  <tibbs> Ah, OK.
[12:32]  <rdieter> the new draft looks like a winner to me.
[12:32]  <tibbs> +1
[12:32]  <spot> +1
[12:32]  <spot> ok guys, lets vote on it.
[12:33]  <rdieter> +1
[12:33]  <hansg> +1
[12:33]  <SmootherFrOgZ> +1
[12:33]  <delero> +1
[12:33]  <abadger1999> +1
[12:33]  <spot> Rathann, racor: feel free to vote if you would like it to be on the record.
[12:33]  <spot> but with a +7, it passes
[12:33]  <spot> for the new guys, anything +5 passes
[12:34]  <hansg> and -1 does not substract, so there is no _Real_ difference between 0 and -1
[12:34]  <spot> ok, next item:
[12:34]  <hansg> but where possible we try to achieve no -1's
[12:34]  <hansg> Ah yes
[12:34]  <spot> i reworked this somewhat this morning, there is no longer the concept of "static-noshared"
[12:35]  <spot> after thinking about that, it doesn't make any sense.
[12:35]  <hansg> I've got a very interesting package with regard to this, to so called exception to the rule I guess
[12:35]  <hansg> I'm happy to pass this if allegro gets excepted
[12:35]  <spot> hansg: what's allegro's situation?
[12:36]  * rdieter likes the amended static policy better.
[12:36]  <spot> (one of those apostrophes was unnecessary)
[12:36]  <hansg> I was just going to ask if anyone wanted to know the long story, but spot beat me to it
[12:37]  <hansg> Okay, so here it goes, allegro is a shared libary, with some asm code used on various platforms
[12:37]  <hansg> this asm code however is not PIC, which is a no go on anything but i386 and frowned up on i386
[12:37]  <hansg> upstream has fixed this in an interesting way
[12:38]  <hansg> the non PIC asm code is in a static lib called liballeg_unsharable.a
[12:38]  <Rathann> so... what's the difference between current guideline and the new draft?
[12:38]  * Rathann can't find any
[12:38]  <spot> Rathann: almost nothing. its just a clarification, really.
[12:38]  <hansg> and all the applications which link to allegro use the following (allegro-config --libs)
[12:38]  <hansg> -Wl,--export-dynamic -lalleg-4.2.2 -lalleg_unsharable
[12:39]  <Kevin_Kofler> Surely the right solution there is to fix the ASM?
[12:39]  <Rathann> surely :)
[12:39]  <Kevin_Kofler> Many libs manage to make PIC ASM.
[12:39]  <hansg> So the non pic code gets put in the binary not in the .so and then exported to the shared lib
[12:39]  <spot> hansg: so, the scenario is that the shared library is useless without the static?
[12:39]  <hansg> yes
[12:39]  <Rathann> making it pic compatible might make it slower though
[12:39]  <hansg> spot yes that is
[12:39]  <spot> wow, thats a hell of a corner case.
[12:39]  <hansg> Kevin_Kofler, I'm happy to take paches for this and send them upstream
[12:40]  <spot> could you put it in -static, and then have base depend on -static ?
[12:40]  <hansg> yes, which I don't think we need to cover in the guidelines, as there will always be exceptions, lets just grant an exception to allegro, keep both the .a and .so  symlink in -devel and be done with it
[12:41]  <hansg> spot, not usefull, as the .a isn't needed to run the applications, as its already linked into the applications
[12:41]  <spot> eh, ok.
[12:41]  <spot> i'm alright with that being a permitted exception
[12:41]  <spot> given how unusual it is.
[12:41]  <abadger1999> So... wouldn't we still want to know that a static library is being linked here?
[12:42]  * rdieter was wondering that too
[12:42]  <spot> thats a valid point.
[12:42]  <tibbs> I did think the whole point of the guideline was to make it easy to find what linked against a static lib.
[12:42]  <delero> if the static lib is part of the devel package also ?
[12:42]  <hansg> yes but thats easy if a security bug is ever found in allegro's static code we can just query for anything depending on the .so as that will have the static code linked in
[12:42]  <hansg> as the .so is useless (unresolved symbols) otherwise
[12:43]  <rdieter> hansg: ok, since it's exceptional already. :)
[12:43]  <spot> ok, lets vote on the draft as is:
[12:43]  <spot> +1
[12:43]  <delero> +1
[12:43]  <hansg> +1
[12:44]  <SmootherFrOgZ> +1
[12:44]  <Rathann> +1
[12:44]  <tibbs> Let me be clear:
[12:44]  <tibbs> What's gone here is the weird contradictory exception about being able to BR *-devel if there are only static libaries present?
[12:44]  <spot> tibbs: yes.
[12:44]  <tibbs> +1
[12:45]  <rdieter> +1
[12:45]  <rdieter> and anything static linking needs: BR: *-static ?
[12:46]  * abadger1999 would also like to know what rdieter asked
[12:46]  <rdieter> reading, looks like the answer is yes.
[12:46]  <spot> yes.
[12:47]  <tibbs> What we lose is the "auto-switch" if a package suddenly starts providing dynamic libs.
[12:47]  <spot> yes, but we gain in tracking
[12:47]  <abadger1999> So to use allegro as an example, apps linking against allegro will BuildRequire: allegro-static
[12:47]  <spot> which is infinitely more important
[12:47]  <tibbs> That's such a corner case that it's worth the guideline clarity to get rid of it.
[12:47]  <abadger1999> But we're making an exception so the static library can go in -devel?
[12:48]  <hansg> Erm, lets not use allegro as an example please
[12:48]  <spot> allegro is a bad example
[12:48]  <abadger1999> Well, the exception is being written in.
[12:48]  <spot> abadger1999: not into the guidelines it isn't.
[12:48]  <abadger1999> err.... That's how we've done evey other guiedeline exception.
[12:49]  <spot> well, we could write it in.
[12:49]  <abadger1999> spec file naming with gcc, for instance.
[12:49]  <spot> if i was going to do it, this is what I would say:
[12:50]  <spot> "If (and only if) a packages shared libraries require static libraries to be functional, the static libraries can be included in the -devel subpackage. The devel subpackage must provide -static, and packages dependent on it must BR -static.
[12:50]  <abadger1999> Sounds good.
[12:50]  <abadger1999> +1
[12:51]  <hansg> Can't we just document the exception in the meeting Minutes, if we are going to put every exception ever granted into the guidelines things will become messy
[12:51]  <spot> lets get a round of votes on the "allegro" exception?
[12:51]  <abadger1999> hansg: The idea is not to have exceptions.
[12:51]  <Rathann> sounds OK
[12:51]  <Rathann> +1
[12:51]  <spot> +1 from me
[12:52]  <tibbs> I have no problems with excepting allegro.  +1
[12:52]  <hansg> I don't like it, why should the packages BR the -static, what if the code ever gets pic-ified (I'm counting on a patch from Kevin for this soon)
[12:52]  <abadger1999> When we do have exceptions, the reasons are listed so that we have a basis to adjust the guidelines when things become unwieldy.
[12:52]  <spot> hansg: then they fix their BR.
[12:52]  <spot> hansg: think of this from rel-eng's perspective
[12:52]  <hansg> This would mean changing the BR's of 29 packages now and changing them back if this ever changes
[12:53]  <abadger1999> hansg: That's what tibbs and spot were mentioning earlier:
[12:53]  <abadger1999> (10:47:23 AM) tibbs: What we lose is the "auto-switch" if a package suddenly starts providing dynamic libs.
[12:53]  <abadger1999> (10:47:34 AM) spot: yes, but we gain in tracking
[12:53]  <hansg> Thats a lot of needless churn
[12:53]  <spot> they'd like to know every package which uses static libs
[12:53]  <Kevin_Kofler> Speaking of the GCC specfile naming exception, why does GCC have a gcc43.spec now when the guidelines clearly stated that the next version should move to just gcc.spec?
[12:53]  * hansg is starting to with I've just kept quiet about this
[12:53]  <Kevin_Kofler> I made that point in the merge review and got entirely ignored.
[12:53]  <tibbs> "a lot"?
[12:53]  <hansg> s/with/wish/
[12:53]  <tibbs> This happens, what, once every couple of years?
[12:53]  <spot> Kevin_Kofler: i'll poke jakub.
[12:54]  <hansg> What guideline changes, no they seem to happen all the time
[12:54]  <tibbs> No, a package suddenly providing dynamic libraries when it only provided static ones before.
[12:54]  <hansg> tibbs that not the case here
[12:55]  <spot> hansg: i do think it is important that we track static library use, even in this weird hybrid case.
[12:55]  <spot> hansg: you can BR both if you'd like
[12:55]  <hansg> Yes and I think its important we support every piece of hardware out there, but there is only so little time and so much todo
[12:56]  <hansg> I'm fine with this if someone else will fix all the allegro packages
[12:56]  <spot> hansg: i will do it then. :)
[12:56]  <hansg> ok +!
[12:56]  <hansg> make that +1 even
[12:56]  <spot> alright, i think we have enough +1s for this to be passed
[12:57]  <spot> i'll add the exception before FESCo looks at it
[12:57]  <spot> that is all i had for the agenda today
[12:57]  <spot> the floor is open for other issues
[12:57]  <rdieter> +1 here too
[12:58]  <spot> if you have no additional issues for today, please say "no".
[12:58]  <spot> so i can close this up and go eat lunch. :)
[12:58]  <hansg> no
[12:58]  <tibbs> I can't recall if we have new guidelines this week.
[12:58]  <rdieter> no
[12:58]  * Rathann has nothing
[12:58]  <hansg> or rather yes, meeting time?
[12:58]  <abadger1999> no
[12:58]  <hansg> since spot's remark queued me that DST has hit the US now too
[12:59]  <spot> hansg: ah, yes. i will send out an email asking for people to fill out a "good time for meeting" matrix
[12:59]  <hansg> I'm fine with the current time, but maybe some others want to it changed?
[12:59]  <spot> we'll see if we can come up with "better" options
[12:59]  <hansg> ok
[12:59]  <spot> no more from me
[12:59]  <tibbs> Ahh,  NoBitsInSrv and the GCJ update were ratified last week.
[13:00]  <spot> tibbs: thats right. i'll tackle the writeups while i'm poking things today
[13:00]  <tibbs> OK.  Nothing else from me.
[13:00]  <spot> alrighty. lunch time for me, this meeting is done!
[13:00]  <spot> thanks everyone
[13:01]  <tibbs> Next meeting in two weeks, 2008.05.06