From Fedora Project Wiki

Fedora Packaging Committee Meeting 2009-01-20


  • Denis Leroy (delero)
  • Dominik Mierzejewski (Rathann)
  • Hans de Goede (hansg)
  • Jason Tibbitts (tibbs)
  • Ralf Corsepius (racor)
  • Rex Dieter (rdieter)
  • Tom Callaway (spot)
  • Toshio Kuratomi (abadger1999)


  • Xavier Lamien (SmootherFrOgZ)


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


The following proposals are submitted to FESCo for approval:

IRC Logs

*** spot sets the channel topic to "Fedora Packaging Committee Meeting -". 11:05
--> racor has joined this channel ( 11:05
spot i see hans, me, and racor 11:06
* rdieter puts on fpc hat 11:06
spot abadger19991, tibbs, SmootherFrOgZ? 11:06
tibbs Yep. 11:06
tibbs First day of the semester; very busy here at work. 11:07
--> Rathann has joined this channel (n=rathann@fedora/rathann). 11:07
Rathann hi guys, sorry for being late 11:07
Rathann I just got home 11:07
spot no worries 11:07
* spot apologizes in advance, i have the US presidential inauguration on in the background 11:08
spot first draft for review: 11:08
Rathann +1 for ExplicitRequires 11:09
hansg What is with the "non-superfluous or versioned explicit" language 11:09
hansg If I read it correctly it states any explicit requires should have a comment? 11:09
spot hansg: that's what it says 11:10
tibbs That seems a bit excessive. 11:10
tibbs I mean, rpm simply doesn't generate automatic dependencies for a lot of things. 11:10
spot i can make that a should 11:10
hansg It says that "non-superfluous or versioned explicit" should have a comment, but since superfluous Requires should be removed that means all Requires should have a comment ? 11:10
spot yeah, that doesn't make much sense to be a must 11:11
spot i'll make it a should 11:11
hansg To be clear I'm not arguing against that per se, but the language seems more complicated then necessary 11:11
hansg It could be just "Any explicit requires should have a comment" 11:11
spot okay, it is no longer a must. :) 11:11
tibbs Even then, I'd hate to see an argument about comments on dependencies for some python or ruby package review. 11:11
spot hansg: i like that 11:12
tibbs On some level, this is common sense. "Let RPM figure out what it can, fill in any dependencies it doesn't handle automatically." 11:13
hansg Although I must agree with tibbs that it seems a bit excessive (hence the should I understand, but will reviewers understand) ? 11:13
hansg For example any package which installs an icon under the freedesktop icon hierarchy has a "Requires: hicolor-icon-theme" 11:14
--> delero has joined this channel (n=denis@nat/sun/x-057c9b84b5d7f2a0). 11:14
* spot made some of the language simplification changes 11:14
delero sorry for being late 11:14
hansg I think putting a comment next to that in all such spec files will not help readability, but rather hurt it 11:14
Rathann tibbs: python/ruby/whatever requires should ideally be discovered automagically, like perl 11:14
tibbs Oh, sure, but they aren't. 11:14
tibbs We live with the RPM we have, remember. 11:14
Rathann indeed 11:15
hansg This is not the RPM you are looking for :) 11:15
Rathann delero: we're discussing 11:15
tibbs Maybe the python stuff us coming, but does it work for ruby or haskell or lua or whatever is coming up next? 11:15
delero rathann: thanks 11:15
rdieter this discussion tickles a memory... isn't this similar in spirit to the existing directory ownership guidelines? 11:16
racor I think, in the last sentence, the "explicit versioned dependency" should be changed into "explicit dependency" 11:16
spot racor: yes, i agree. (changes it) 11:16
tibbs Are versioned dependencies really special to this guideline? 11:16
racor tibbs, spot: IMO, no. 11:17
tibbs I mean, there is often the issue of requires: glibc > 2.0 or somesuch. The version here is obviously superfluous. 11:18
tibbs But that's not what this guideline is about. 11:18
spot well, if it helps reviewers ask the question of whether that Requires: glibc > 2.0 is necessary, i think this has value 11:19
spot (or Requires: glibc) 11:19
delero +1 from me overall 11:20
spot +1 from me as well 11:20
delero is there a tool that will automatically prune out unnecessary Rs given a list ? 11:20
delero (i.e. where one of the R already brings in the other one, like gnome,glib) 11:21
spot delero: not that I know of, but it would be useful (and I suspect, not terribly difficult to write) 11:21
racor IMO, the primary problem is explicit "package" deps tending to cause broken deps and installation bloat 11:21
racor +1 11:21
rdieter +1 11:21
tibbs spot: I'm concerned that the guideline doesn't actually talk about the situation of versioned dependencies becoming out of date. 11:21
tibbs It just says "out-of-date" but doesn't really define what it means. 11:22
tibbs I know we have a general "present in the last two releases" rule, but it might be worthwhile to state that explicitly. 11:22
Rathann good point tibbs 11:22
spot okay, I can do that 11:23
hansg Suggestion could we change the second part of the review guidelines modification from: "(2) ensure that any explicit Requires are explained with comments in the spec file." to "(2) ensure that any *non standard * explicit Requires are explained with comments in the spec file." 11:24
abadger19991 here now 11:24
hansg The * * denote the change 11:24
spot i'm not opposed to that change. what does everyone else think? 11:24
hansg Otherwise I'm afraid new inexperience reviewers are going to ask for comments for each and every Requires 11:25
tibbs Does "ensure" sort of imply "must" to anyone? 11:25
Rathann hansg: "non-standard" as in: not explicitely mentioned in packaging guidelines? 11:25
hansg I know non standard is vague, but it atleast hints that not each and every Requires needs a comment 11:25
hansg Rathann, yes and no that sort of covers it but not completely, Directory ownership requires are in the guidelines, but i'm sure there are other very straightforward Requires uses which are not 11:26
spot tibbs: how does this sound as an added sentence: "For example, Fedora packages are only required to retain historical provides for two full release cycles." 11:26
racor tibbs: yes, to me "ensure" is a synonym to "must" 11:27
tibbs spot: Yes, I agree. 11:27
hansg racor, tibbs to me too 11:27
abadger19991 I'd -1 the whole of section (2). 11:27
delero i'd add a comment to make it clear this only applies to Requires, not BuildRequires 11:28
tibbs How about "please consider adding comments to dependencies which are nonobvious"? 11:29
tibbs Hell, "please comment anything in your spec which is nonobvious". 11:29
hansg abadger19991, that might actually be a good idea, the need to add comments in a non standard situation is something which applies to any non standard situation, so if we just leave in (1) for the review guidelines and adjust the package guidelines addition to match this (ie no talk about comments) I think it will be better 11:29
tibbs But then we get to argue about obviousness. 11:29
*** abadger19991 is now known as abadger1999. 11:29
hansg tibbs, exactly we need a "please comment anything in your spec which is nonobvious". This does not belong (*here*) (as in no in a piece about Requires( 11:30
spot how about: "SHOULD: Reviewer should examine an RPM package's list of dependencies and recommend that any unnecessary explicit Requires within the spec file are removed." 11:30
rdieter my obviousness bikeshed is pale blue 11:30
hansg spot: "SHOULD: Reviewer should examine an RPM package's list of dependencies and any unnecessary explicit Requires found must be removed." 11:30
spot i don't like putting "must" in a SHOULD. 11:31
hansg As in the checking the requires is optional, but if the reviewer goes through the trouble to do it, the submitter must fix it ? 11:31
abadger1999 can we make it a MUST without the comment section? 11:31
spot we could do it as a MUST and a SHOULD 11:32
hansg Spot, But I'm fine with your original one too 11:32
hansg spot MUST and SHOULD ? 11:32
hansg I'm ok with making this a MUST without the comment thingie 11:32
spot MUST: Reviewer must examine an RPM package's list of dependencies and any unnecessary explicit Requires found must be removed. 11:32
hansg spot +1 11:32
spot SHOULD: Any explicit Requires should have a comment which describes why they are necessary. 11:33
hansg spot -1 11:33
spot i think there is some value in the comments, we should encourage them, but not require them. 11:33
spot if someone picks up a retired package, they may not know why there is a versioned Requires. 11:33
hansg I think we need to add something like: "SHOULD: anything in the spec file which is nonobvious should have a comment explaining it" 11:34
spot SHOULD: Anything in the spec file which is nonobvious (such as explicit Requires) should have a comment explaining it 11:34
hansg Erm, sorry, but no. explicit requires can actually be very obvious 11:35
spot such as "some explicit Requires" 11:35
hansg How about: SHOULD: Any versioned Requires should have a comment explaining it 11:35
abadger1999 If this is a top level SHOULD, it shouldn't mention Requires.... 11:36
spot no, because that doesn't cover someone who really does need Requires: glibc for some horrible reason 11:36
hansg I could live with that (change from Spot's proposal I -1 -ed is the adding of versioned) 11:36
abadger1999 We can have a sentence in the longer explanation in the Requires guideline saying, Remember the "Should: Comments!" guideline 11:36
spot abadger1999: yeah, okay, let me draft that up a bit... 11:37
hansg spot, if someone needs something for some horrible reason that is plain non obvious and thus needs a comment independend on wether it is a Requires or some !@%$ ugly shell or whatever 11:37
spot what would some other examples of non-obvious items in a spec file be? 11:40
tibbs I'm always requesting that things be commented in specfiles, but I can't think of a single example off the top of my head. 11:41
abadger1999 FHS violations 11:41
tibbs Maybe things like Obsoletes:, complex licensing issues. 11:41
tibbs When you run sed over libtool to filter rpath or pass -Wl,as-needed. 11:42
abadger1999 Changes to optflags 11:43
hansg sed -ing the hell out of Makefile(s) / configure scripts 11:43
hansg Not using %configure because the configure script is non standard and does not like being called through %configure 11:43
hansg Not using make install but DIY for various reasons 11:43
abadger1999 excluding patented code from an upstream tarball 11:44
hansg Need we go on ?  :) 11:44
spot no, i think thats enough examples. :) 11:44
spot okay, take a look at it now 11:45
spot 11:45
rdieter worksforme, +1 11:47
abadger1999 How about: :MUST: an RPM package's list of dependencies must not contain any unnecessary explicit Requires 11:47
hansg looks good, but 11:48
hansg Under "Addition to Packaging Guidelines" 11:48
abadger1999 That's just because I don't think anything else speaks to reviewers specifically. 11:48
hansg It still says: Any explicit Requires should be explained with comments in the spec file." 11:48
spot abadger1999: that is better wording. 11:48
abadger1999 Instead it's about what the package must conform to. 11:48
hansg Its a should, but still a bit strong IMHO 11:49
spot if i add "non-obvious" there... 11:49
spot would that make it less strong? 11:49
hansg Also "Packages should not contain superfluous explicit Requires within the spec file, except when absolutely necessary." is a bit double, when something is "absolutely necessary." it clearly is not "superfluous" 11:49
hansg spot, adding no obvious +1 11:50
spot hansg: how about i drop superfluous from that sentence? 11:50
hansg spot, yes that would be better 11:50
hansg +1 with those 2 changes 11:51
spot and really, we made that a must 11:51
spot so... it should be a must in the guidelines too 11:51
hansg spot, ack 11:51
spot "Packages must not contain explicit Requires within the spec file, except when absolutely necessary. " 11:51
spot okay everyone 11:52
spot one last time. 11:52
abadger1999 Okay, looks good. +1 11:52
delero +1 11:53
spot +1 from me 11:53
rdieter +1 11:53
Rathann +1 11:53
tibbs +1 11:53
racor +1 11:53
spot i'm assuming hansg's +1 holds over 11:53
hansg yes, still +1 11:54
spot it passes 11:54
spot the next item is the updated Haskell guidelines 11:54
spot 11:54
hansg Yes I was already reading them (hence the no voting) 11:54
spot I manually did a diff of the proposed new guidelines and the old ones 11:54
spot the key differences are: some of the macros have been changed (the update reflects the new ones) 11:55
spot They've improved some of the wording without changing the meaning, and they've documented the use of the "cabal" tool further 11:55
hansg +1 from me 11:56
spot +1 from me as well 11:56
Rathann I like them although I have a question 11:56
* hansg goes to help put the children in bed, back in 15 or so 11:56
Rathann why are -doc and -prof subpackages optional? 11:56
tibbs Well, the -prof packages aren't always generally useful. 11:57
tibbs -doc packages might be pointless if there's very little documentation. 11:57
Rathann all these %if %endif sections add clutter to an otherwise clean specfile 11:57
Rathann just MHO 11:58
spot yes, but that's not a new change. 11:58
Rathann +1 from me anyway 11:58
spot (and they're just templates, if you don't need those sections, you can drop them entirely) 11:58
Rathann right 11:58
tibbs +1 11:59
spot thats a +4... 11:59
racor 0, i think this all should go to rpmdev templates and not into the FPG 11:59
abadger1999 It's interesting that they have %cabal build but %cabal_install 12:00
Rathann racor: it is in rpm macros provided by the ghc package IIUC 12:00
rdieter +1 12:00
Rathann ah, you mean the spec templates 12:00
delero +1 from me 12:00
Rathann racor: yes, not a bad idea 12:00
spot okay, +6, it passes 12:01
Rathann or rpmdevtools-haskell subpackage 12:01
* spot notes that the templates aren't actually in the FPG, they're just linked to from the guidelines 12:01
abadger1999 +1 12:01
spot okay, next item (this should be fun): 12:02
spot ignore the font related text here. 12:02
spot the real question is, what do we want to require for symbolic and absolute links in Fedora packages 12:02
tibbs Did we have any luck with just doing it automatically? 12:02
spot last meeting, we hoped this could be handed with the "symlinks" utility as part of rpm 12:02
spot Jeremy looked into it, but determined that it was not possible with that tool 12:03
spot because it was finding tons of false positives due to the rpm buildroot being involved 12:03
abadger1999 enrico pointed out that relative symlinks break when bind mounting or symlinking directories. 12:03
spot The simplest solution would be to not require any sort of forced symlinking methodology and ask the rpmlint maintainer to silence that warning in Fedora 12:05
spot basically, leave how a packager creates a symlink up to the packager. 12:05
spot It seems there are notable pluses and minuses for both approaches. 12:06
Rathann indeed 12:06
Rathann I wonder why is option 3 any better 12:06
abadger1999 option 3 is what debian does but I don't think it has any advantages. 12:06
spot i think option 3 is how Debian tries to average it out. 12:06
Rathann I'd say leave it up to the packager, but maybe document pros and cons of each option 12:07
spot okay, that makes sense. what are the pros/cons of the absolute links 12:08
* spot is writing a new mini draft 12:08
tibbs The chroot issue, I guess, is the biggest one. 12:10
Rathann absolute symlinks are straightforward and easier to create (you don't get lost in multiple ../../ levels) 12:10
Rathann nicolas' draft says: "Relative symlinks may break or behave unexpectedly when a part of a filesystem is mounted to a custom location." 12:11
racor IMO, it's amd and programs which somehow try to resolve paths but get confused by obtaining unexpected results. 12:11
Rathann 12:13
racor Rathann: nicolas is right on this. It's essentially the same as what I referred to as amd issue. 12:13
racor in a nutshell it is: Which directory will tools/programs be see if /foo/boo/ is mounted under /bar/baz/ ? 12:15
Rathann something like that 12:16
Rathann also, this is a very old issue: 12:16
racor Rathan: This issue likely predates linux ;) 12:17
rdieter the rpmlint-discuss thread includes some additional abs->rel recipes, worth exploring? 12:18
Rathann 12:18
spot 12:19
Rathann in particular: 12:19
Rathann spot: s,/usr/bin,%{_bindir},g ;) 12:20
spot heh, fixed now 12:21
spot i know we're way over time, so if everyone still with us could take a look at that draft 12:22
Rathann so if this passes, what are maintainers supposed to do about bugs like this: 12:22
buggbot Bug 474057: medium, low, ---,, ASSIGNED, meinproc4 creates absolute instead of relative symlinks for the common directory 12:22
spot Rathann: they can decide to either make the change or close it wontfix 12:22
tibbs Does rpm have any issues with symlinks (replacing symlinks with files/directories and such) that would relate to this guideline? 12:22
spot tibbs: no, this one arose from rpmlint throwing warnings 12:22
tibbs I understand; I'm just wondering if there's any instance where rpm itself would care whether a symlink is absolute or relative. 12:23
spot not that i'm aware of. 12:24
rdieter I'm ok with the draft as-is +1, there seems to be no clear cut winner 12:25
spot I'm also +1 on this 12:25
*** rdieter is now known as rdieter_away. 12:25
--> rdieter has joined this channel ( 12:26
abadger1999 How about: "relative symlinks will point to the same file inside or outside of a chroot" 12:26
spot as a pro? 12:26
abadger1999 As the pro. 12:27
racor spot: Can we let this proposal rest until the next meeting? 12:27
spot sure. 12:27
abadger1999 Just saying "better" leads to "Why are they better?" 12:27
spot racor: i suppose we can, if necessary 12:27
spot if possible, i'd like to vote on it now and then adjourn 12:27
abadger1999 Since there's no actions to be taken by packagers, just information I'm +1. 12:28
Rathann +1 12:28
racor abadger1999: rel symlinks are better in most cases ;) 12:28
spot I count +4 for this 12:28
abadger1999 heh 12:28
racor spot: My time's up, I got to go, bye. 12:28
spot racor: thanks for your time 12:28
spot tibbs, delero, hansg? 12:28
hansg I'm back, what should I vote about ? :) 12:29
spot 12:29
tibbs I'm sort of ambivalent. 12:29
spot tibbs: then this is the perfect draft for you, as it really lets the packager decide. ;) 12:30
hansg +1 from me 12:30
spot okay, thats +5, but if anyone else wants to vote on the record, feel free 12:30
nim-nim relative symlinks have one more cons 12:31
nim-nim they assume the value of rpm directory macros is known beforehand and set in stone 12:31
Rathann I wonder how relative symlinks are better, aside from the chroot issue 12:31
tibbs How about some requirement that packagers be consistent? 12:31
tibbs Or is that important? 12:31
spot tibbs: I think there is merit in that 12:32
spot is anyone opposed to adding a line that says that packagers should be consistent with the symlinking method throughout a package? 12:32
nim-nim spot: what's the value? 12:33
nim-nim sometimes making a relative symlink will be trivial 12:33
delero not a big fan of absolute symlinking 12:33
spot well, if half of a package works with a chroot and the other half doesn't... 12:33
spot i think it would be better if all of it worked or none of it. 12:33
spot less unexpected surprises. 12:33
spot "Packagers should use their best judgement when deciding which method of symlink creation is appropriate, but should also be consistent with whichever method they choose." 12:34
Rathann spot: +1, even if that's obvious 12:34
nim-nim spot: the case is when your package creates its own directory tree and does relative symlinks within it 12:34
nim-nim (which is what the debian people tried to express IMHO) 12:34
nim-nim but anyway I don't care as long as the warning is shot 12:35
spot ehh, okay, i see that point. 12:35
spot i"Packagers should use their best judgement when deciding which method of symlink creation is appropriate, but should also be consistent with whichever method they choose to use in the spec file." 12:35
spot how about that? 12:35
spot or should we just drop the consistency... 12:35
spot eh. i'll drop the consistency req. if we really need it, we can add it later. 12:36
nim-nim spot: IMHO the "consistency" thing is just too hard to define in a sane way 12:36
spot nim-nim: yeah, i think you're right 12:36
spot okay, the floor is open to any other items 12:36
spot please keep in mind, we're waaay over time for today. :) 12:36
abadger1999 spot: Well... /usr/bin/gzcat => gzip could be a valid relative symlink amidst more major absolute symlinks 12:36
Rathann abadger1999: it's in the same directory, those are quite safe 12:37
abadger1999 (sorry... was aimed at droppin gconsistency) 12:37
spot if there are no other new issues, i'm going to call the meeting... 12:37
nim-nim spot: just a question, what is the procedure to add a "check your font files" to the package review list? 12:38
Rathann abadger1999: ah, right :) 12:38
spot nim-nim: just write a draft that has the line you want to add to the ReviewGuidelines 12:38
* nim-nim does not want to do another audit next year 12:38
nim-nim spot: ok, will do 12:38
spot alright, we're done for today. 12:39
spot thanks everyone. 12:39