Packaging:Minutes20070327

Present
The entire committee was present:
 * AxelThimm (normally )
 * DavidLutterkort
 * JasonTibbitts
 * JesseKeating
 * RalfCorsepius
 * RexDieter
 * TomCallaway
 * ToshioKuratomi
 * VilleSkyttä

Writeups
The following draft has been accepted by FESCO and is to be written into the guidelines:


 * Guidelines for using cmake: PackagingDrafts/cmake

Votes
The following proposals were considered:


 * Modifications to the Naming Guidelines for handling non-numeric post-releases PackagingDrafts/PostRelease
 * Accepted (6 - 0).
 * Voting for: f13 tibbs spot rdieter scop abadger1999
 * Voting against: (none)


 * Additional dist-related macros: PackagingDrafts/ExtraDistTagConditionalMacros
 * Accepted (7 - 0).
 * Voting for: f13 spot rdieter tibbs thimm lutter abadger1999
 * Voting against: (none)


 * Mandating that filenames in RPMs be utf8: PackagingDrafts/Utf8Filenames
 * Accepted (7 - 0).
 * Voting for: f13 spot lutter abadger1999 rdieter tibbs thimm
 * Voting against: (none)

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


 * Reviewing the guidelines to make sure that they are valid for EPEL. (For example, we need to make sure that none of the guidelines require RPM functionality that is not present in RHEL4.)  EPEL should ping FPC when any issues of this nature come up.


 * Making sure that rpmlint acquires checks for new guidelines when possible.


 * Getting brp-python-bytecompile to perhaps hardlink *.pyc and *.pyo filee together when they do not differ; scop found this would save 9MB on his system.

IRC Logs
[11:58] * spot is here [11:58] I'm here. [11:58] * sereinity too [11:59] I'm here [12:01] * mmcgrath not here [12:02] here [12:02] f13, lutter, racor: ping [12:02] so, we're missing lutter, f13, racor, thimm, scop [12:03] --> scop has joined this channel (n=scop@cs27014175.pp.htv.fi). [12:03] scop: welcome! [12:03] spot: I am on the phone, should be done in 10-15 mins [12:03] sorry, i've been distracted ... but due to DST shift am very short on time and will probably have to leave early [12:04] Odd, I though the meeting time for Europeans did not change. [12:04] it did last weekend [12:05] k.  We should get started then. [12:05] item 1 [12:06] cmake draft was ratified by FESCO [12:06] item 2 [12:06] http://fedoraproject.org/wiki/PackagingDrafts/PostRelease [12:06] Post Release Package guidelines [12:07] I made some comments on-list. [12:08] this is essentially what it was in the original fedora.us guidelines, and it was met with strong opposition when it got transferred to FE [12:08]  Which part resulted in strong opposition? [12:08] I am missing %{?dist} [12:08] racor: dist goes on the end [12:09] tibbs, moving the non-numeric part to the release tag [12:09] I see no need to specifically mention dist in every section of the guidelines separatelyl. [12:09] then this postrelease won't work [12:09] racor: why not? [12:09] I fail to see now it won't work. [12:09] It works fine for prereleases where we use the same scheme. [12:09] 1.1.1-1.fc6 [12:10] spot: looks good to me, I'm all for it. [12:10] post release of release [12:10] post-release or release? [12:10] scop: If we can't do that, then we can't use upstream versioning at all if it doesn't sort properly. [12:10] 1.1.1-2.GA1.fc6 [12:10] 2 > 1 [12:10]  1.1.1-2.GA1.fc6.1 [12:10] tibbs, yes we can, we just bump the epoch in the extremely rare cases where there is a problem [12:11] The problem is that there are packages where this isn't an extremely rare case. [12:11] care to mention one by name? [12:11] You'd get an epoch bump rather often for those. [12:11] Fnasser mentioned at least one on-lis5t. [12:12] That was the reason this came up at all. [12:12] i'm not sure we can craft a generic solution to that other than "use epoch" [12:12] tibbs: imo, in cases where it's not rare, upstream needs some whacking. [12:13] i'd rather pound on upstream if it becomes a problem [12:13] Well, yes, but we know that there are cases where upstream does things on purpose just to screw with us. [12:13] tibbs: Unfortunately true :-( [12:13]  eep, I'm here. [12:13]  exceptions can be dealt with. [12:14]  If epoch is the answer, then great, we just need to at least mention it somewhere. [12:14]  i'd like to get these ground rules in, we can add extra bits later as needed [12:14]  spot: I think the issue is that scop objects to basically everything you're adding in your draft. [12:15]  scop: do you? [12:15]  alli saw was that he said it was the same as the old fedora.us guidelines and some people opposed it [12:15]  and I didn't think "some people" = "scop". :) [12:16] So where is the "strong opposition"? [12:16] and I have no desire to be a part of re-igniting those flamewars [12:16] well, we're simply adding another option to the existing guidelines [12:16] we're not mandating that it be used. [12:16] ok, I missed that bit [12:16] This is a rule to cover the case of non-sorting upstream versioning. It seems to me to be a sane enough way of dealing with non-sane upstreams. [12:17] if it's not a must, I won't object [12:17] but if you want the post-release tag in the n-v-r, these are the two ways to do it. [12:17] you don't have to have it at all. [12:17] spot: Perhaps add a note that you can use this, or just bump Epoch: when necessary. [12:17] i can add a one-liner for epoch. [12:18] I think the point is that there really aren't any other options. [12:18] tibbs: sure there is, don't put the post-release tag in the n-v-r. :) [12:18] can we vote on the draft + epoch line? [12:18]  I'd like to see a little tweaking of the wording: "More complicated versions" but I'm okay with the draft otherwise. [12:18]  If that's a real option then it needs to be listed out as well, I think. [12:19]  abadger1999: suggested alternative? [12:19]  I wasn't aware that it was permitted to deviate from upstream versioning in that manner. [12:19]  tibbs: we never said it wasn't. [12:19]  Something like: "When upstream tries to use versions that include abbreviations we can run into ordering problems" [12:20]  spot: can we chnage ALPHATAG to POSTTAG ? [12:20]  versioned self-obsoletes would be another alternative way to handle this, alas IIRC that doesn't work nowadays so it doesn't make sense to promote it [12:20]  nit-picky but might save confusion. [12:20]  So now I'm confused; are packagers under no obligation to follow upstream versioning? [12:20] tibbs: you should when you can (and it is sane). [12:21] My wording wasn't that great either, but the essence is to answer the question "How does a novice packager tell when upstream is smoking the crack pipe?" [12:21] use of >1 non-numeric in version = crack-pipe [12:22] Use of anything besides real numbers = crack pipe. [12:22] ok, i just amended the draft. alphatag is now posttag, changed to abadger's wording, added two lines on epoch. [12:22] Hmmm. [12:22] * f13 refreshes [12:23] slow wiki, might not have gotten it yet, my browser is still waiting [12:23] I see it. [12:23] rdieter: +1 [12:24] got it, looks good to me. [12:24] I see it. [12:24] looks reasonable to me. [12:24] I would trim the prereleases from the example [12:24] scop: the only reason i left it in there was to make it clear how the whole process works [12:24] in my estimate, if they do post, they do pre too. [12:24] I don't think my wording works quite right either. For instance 1.0beta 1.0rc 1.0final [12:25] Oops. That's pre-release, not post release. [12:25] abadger1999: maybe "When upstream uses versions that either have or are likely to have ordering problems" [12:26] "When upstream uses versions that attempt to have meaning to humans instead of being easy for a computer to order" [12:26] ooh, i like that [12:27] "For instance, GA1, CR2, PR3" [12:27] I like that too [12:27] counting starts at 0 damnit! (: [12:27] * rdieter liked "When upstream smokes crack-pipe" better, but oh well? :) [12:27] * spot commits that change [12:27] ok guys, lets vote on this draft. [12:28] +1 [12:28]  +1 [12:28]  +1 [12:28]  +1 [12:28]  +1 [12:28]  +1 [12:29]  * spot isn't sure if racor is still here or not [12:29] but the vote passes [12:29] "For instance, GA1, CR2, PR3" -- CR2 and PR3 look like prereleases, not postreleases? [12:29] next item: [12:29] scop: believe it or not, they're post. [12:29] hooray for java crack. [12:29] ooh [12:29] http://fedoraproject.org/wiki/PackagingDrafts/ExtraDistTagConditionalMacros [12:30] Dag pointed this out on epel-list [12:30] I like these but I'm concerned that the syntax is even less pleasant than the %if bits. [12:30] ok .. off the phone [12:30] I like it. [12:30] And there seems to be a general dislike of more RPM macros from some quarters. [12:30] me too [12:30] tibbs: it seems pretty clean to me. [12:31] tiibs: then "those quarters" shouldn't use them. [12:31] * spot points out that all of these macros are optional [12:31] tibbs: and we use %{?macro: ...} in quite a few otehr places [12:31] they're there if you want/need em [12:31]  Does it work for multiline bits? [12:31] those macros are not available to people who rpmbuild --rebuild locally [12:32] if the packager has chosen to use those "optional" macros, the build will most likely be screwed [12:32] scop: mock, mock, baby. [12:32] I.e. can the "a", "b", etc. in the examples be multiline? [12:32] tibbs: i think so, but i'm not 100% sure there [12:32] scop: likewise if they depend on the existing %{fedora} or %{rhel} macros [12:32] they could always do: [12:32] %if "%el5" [12:32] or rely on something in %{?dist} [12:33] instead of %if "%rhel" == "5" [12:33] f13 yes, which is why I think it's a bad idea to use any of those macros [12:33] I don't think it's bad, I think they should be used with care. [12:33] spot: consider me gone, I can't follow today's meeting in reasonalbe manners. This time-slot isn't working for me :( [12:33] speaking of "local" builds (like scop's comment), why not put buildsys-macros in the main repo? [12:33]  I really think we should start shipping buildsys-macros in say fedora-release though [12:34]  racor: sorry. :( [12:34] so that these things WILL get resolved locally and they can override if need be (or use mock) [12:34] rdieter: +1 [12:34] f13: :) [12:34]  I know jeremy has had concerns with this possibly "surprising" people, but really I think they'd be more surprised if these macros /didn't/ resolve. [12:35]  no macros are changing. we're just adding some new ones. [12:35]  and we'll announce the change. [12:35]  include the macros in redhat-rpm-config instead [12:35]  So do we have buy-in from the maintainer of whatever package will contain these?  And what releases will be covered? [12:35]  tibbs: fedora and rhel [12:35]  who owns buildsys-macros? [12:36]  I'd rather these continue to be packaged separately, but they get Require:'d by fedora-release or redhat-rpm-config. [12:36]  I don't think anyone officially owns it (yet), who owns mock? [12:36]  <-- giallu has left this server (Read error: 110 (Connection timed out)). [12:36]  f13: dgregor [12:36]  spot: The examples cover el2, though; surely we can't get updates going that far back. [12:37] spot: he owns that in Extras? weird. [12:37] f13: oh, extras? [12:37] yeah [12:37] sure, pulling them in through a dependency in redhat-rpm-config would work as well [12:37] f13: i dont think its in FE [12:38]  tibbs: the DistTag document mentions .el2 [12:38] spot: how is it populating the Extras buildroots with these macros? [12:38] afaik, they are just floating around out there, like on buildsys.fp.org [12:38] perhaps someone on FPC could/should own it? [12:38] interesting. [12:38] I can own them. [12:38] I own them internally or at least make the changes to them. [12:38] yeah, i think you should own them. :) [12:38] --> thimm has joined this channel (n=thimm@p54BD5D7C.dip.t-dialin.net). [12:38]  spot: I'm not sure how that's relevant, though.  The example will never actually work, will it? [12:39]  tibbs: not for any case we care about [12:39]  * thimm is sorry, I couldn't make it in time :/ [12:39]  tibbs: but for dag, he might be using them somewhere else. [12:39]  and there is really no reason EPEL couldn't support RHEL 2.1 someday [12:39]  if they were feeling horribly masochistic. [12:39]  for general sanity, would probably be good if buildsys-macros was in fc proper [12:40]  yeah, I want to run the idea again of having it available in the repo [12:40]  f13: you look into owning it and making it get pulled in by redhat-rpm-config ? [12:41]  yeah [12:41]  ok. lets vote on the draft, with the knowledge that we're working on the buildsys-macros package issue [12:41]  +1 [12:41]  +1 [12:41]  URL? [12:41] +1 [12:41]  http://fedoraproject.org/wiki/PackagingDrafts/ExtraDistTagConditionalMacros [12:42] +1 although I do object to including an example that we don't intend to make work. [12:42] Thanks, +1 [12:42] tibbs: which example? [12:42] thimm: el2 [12:42] why wouldn't we make it work within EPEL? [12:42] +1 [12:43]  we can populate the buildroots with whatever we want [12:43] abadger1999: would you like to vote? :) [12:43] %{?dist} tag was functional in Extras long before I enabled it in Core / RHEL [12:43]  We actually have an el2 buildroot? [12:43]  Suggestion: Please add a comment that we actually discourage using these if features are being probed [12:43]  +1 if we get the macros into the distro. [12:44]  thimm: seems reasonable. [12:44]  thimm: define "feature probing"? [12:44]  Otherwise people would not prope for say selinux [12:44]  probe [12:44]  tibbs: we don't as there isn't any demand.  Should there be demand, we just might do el2 buildroots. [12:45]  f13: demand for RHEL3 is already 1/20th of RHEL4 [12:45]  So for RHEL2.1 it will be even smaller I guess [12:45]  ok, the draft passes [12:45]  point is, *we* shouldn't rule it out as a possibility. [12:45]  no, but we don't, do we? [12:45]  next item: ruby gems [12:46]  lutter: do you have anything new this week? [12:46]  spot: no, sorrry, didn't haevb time last week to look into the rubygems stuff we discussed [12:46] ok. we'll put that aside. [12:46] hopefully next week [12:46] next item: http://fedoraproject.org/wiki/PackagingDrafts/UsersAndGroups [12:47] scop: is this ready to be looked at? [12:47] no [12:47]  ok. we'll move on. [12:47] there's a "---" in the middle of the doc, stuff after that was added by Enrico [12:47] Should we talk about the fact that we're now to make policy for EPEL as well? [12:48] I haven't dug into it, but I have a feeling I don't personally agree with it [12:48]  tibbs: i mentioned that last week [12:48] i'm pretty sure i did. [12:48] spot: you did [12:48] Perhaps, but I don't recall discussing any changes we will have to make because of it. [12:48] For example, are all of our current guidelines appropriate for EPEL? [12:48] We'll have to find out on the way I guess [12:49] Do we need to make a review of them? [12:49] no one has said that they aren't. [12:49]  I think the idea is to have EPEL ping us when something is wrong for EPEL [12:49] I'm sure many of our package specific macros don't work with RHEL4's rpm [12:49] I'll package a helper package for that [12:49] and things like kmods may not work well at all. [12:49] * thl wonders if we need the explicit "python(abi)" stuff abck for EPEL < 5 [12:49] f13: now now, no need to curse. [12:50] thimm: some of it is the rpm version itself, not just missing macros. [12:50] thimm: certain conditionals are not usable by RHEL4's rpm [12:50] f13: which ones? [12:50] thl: yes, explicit python(abi) is/would-be required for epel < 5. [12:50] I can't remember which, I just noticed it came up a month or so back internally [12:50] %bcond_* [12:50] That's a macro, f13 means something else [12:51] f13: Could you dig it up and PM me? Thanks! [12:51] well, that's a conditional too, and not usable by RHEL4's rpmbuild :) [12:51]  thimm: that may have been it. [12:51]  ok, so there are a few items on the todo list that need some work [12:51]  scop: I will create a "fedora-compatibility-rpm-macro-package" for EPEL :) [12:51] rdieter, then I'd say we should add it back somewhere somehow; even I forgot how it works exactly... [12:52] thl: I think the python page still references it (somewhere). [12:52] specifically, i'm looking at arch specific script packages, user/group handling, cross compilations, license tags [12:52] if you own one of these (f13, rdieter, tibbs, scop) [12:52] well, not rdieter. sorry. ;) [12:53] * rdieter though he was getting drafted there for a minute. [12:53]  I shouldn't be on cross-compilation any longer. [12:53]  please either clean it up for consideration or pull it off the todo list [12:53]  spot: I know you have something else going on with regards to licenses. [12:53]  yeah, feel free to drop that item entirely for now [12:54]  I'll pull the iconcache proposal from ToDo, since it is indefinitely tabled (someday maybe) [12:54]  Why? [12:54]  Weren't we about to approve it? [12:54]  I'll try to beat UsersAndGroups into a discussion draft shape for next week's meeting [12:54]  scop: you may want to run it past notting via email [12:54]  thimm: talking to me? [12:54]  spot: If you want to work on licenses, I'm game, but I'd like to know what you have planned at some point. [12:55]  scop: he had a lot of thoughts on that [12:55]  spot, ok, will do [12:55]  rdieter: yes, about iconchache [12:55] tibbs: no problem. [12:55] spot: hrm, I still have no good solution for the arch specific noarch script stuff. :/ [12:55] (and now, after having a look at stuff people have added to the current draft, a lot of those make perfect sense) [12:55] I think it requires changes to rpm, and well... [12:56] If we're out of items to discuss, we could look at this: http://fedoraproject.org/wiki/PackagingDrafts/Utf8Filenames [12:56] thimm: well, icon_cache is still a volatile subject to some, maybe giving it some time can garner a little more consensus. [12:57] rdieter: Is anyone of the FPC volatile? [12:57] I thought that "only" some package maintainers were against it [12:57]  thimm:   f13 (by proxy) :) [12:57]  utf8filenames: what's "convmv"? ASCII is UTF-8 compatible, so plain "Filenames must be encoded as utf8" suffices [12:58]  rdieter: But the proxy only promised to fix that in the far future [12:58]  It's more of an issue that we can't use packaging guidelines to force Gnome to do anything. [12:58]  utf8filenames seems ok to me. [12:58]  I agree with utf8filenames. [12:58]  I just continue to get pushback on enforcing any packaging guideline if we don't take their concerns into consideration and just force things down their throat. :/ [12:58]  +1 to utf8 [12:59]  +1 to utf8 [12:59]  tibbs: it's more of gnome forcing everyone else to use gtk-update-icon-cache. :)  But we've been down that road... [12:59] +1 for utf8 [12:59] +1 utf8 [12:59] +1 utf8. [12:59] +1 utf8. [12:59] scop: convmv is a program that can rename files from one encoding to another. [13:00] needs a BuildRequires? [13:00] What package is it in? [13:00] f13 has a point about pushback, I'm willing to let the topic/issue simmer for awhile. [13:00] *** thl is now known as thl_afk. [13:00] Ah, the convmv package. [13:01] Does rpmlint complain about non-utf8 filenames? [13:01] if it, we can make it do so easily [13:01] and if we pass this we should. [13:01] s/use convmv in your %install/can use for example convmv in your %install/ [13:01] actually, that brings up a good point. [13:01] one step in adding any new rule should be "can rpmlint check for this" and helping to create an rpmlint check if possible. [13:01] yes, rpmlint seems to. [13:02] What about the contrapositive? "If it's not in the guidelines, rpmlint shouldn't complain about it." [13:02]                         if use_utf8 and not is_utf8(path): [13:02]                             printWarning(pkg, 'file-not-utf8', f) [13:02]  utf8-voting: -1 [13:02] Sorry [13:02] spot, that's for file contents [13:02] +1 [13:02]  scop: ah, ok. [13:02] but bleeding edge svn rpmlint checks file names too: http://rpmlint.zarb.org/cgi-bin/trac.cgi/changeset/1327 [13:02] tibbs: erm... I'm not exactly comfortable with that. [13:03] scop: Changed to " If upstream ships filenames that are not encoded in utf8 you can use a utility like convmv (from the convmv package) to convert the filename in your %install section. [13:03]  " [13:03] f13: Perhaps not, but it's an interesting question. "mixed spaces and tabs", is a good example. [13:03] abadger1999, better, +1 [13:04] ok, utf8 passes [13:04] abadger1999, or just "mv", eg. mv Skytt? Skyttä [13:04] Need EPEL branches and maintainer for convmv, I guess. [13:04] tibbs: sure. I'm fine with objecting to specific rpmlint tests and adding it to a fedora specific filter. [13:05] scop: Seems nice and KISS [13:05] But rpmlint will probably thing specfile is non-utf8 ;) [13:05]  no, the "?" is a literal question mark [13:06]  ah, OK :) [13:06] ok guys, any other issues? or are we done? [13:06] * spot has lots and lots to do today, so... ;) [13:06] done: +1 [13:07]  thanks all. [13:07]  spot working +1 [13:07]  ;) [13:07] bye all [13:07] I'll write up the minutes. [13:07] Thanks tibbs [13:07] If anyone has any comments on the format, please let me know. [13:07] scop: Hmm... I wonder how that works with multibyte characters. [13:08] nothing urgent, but food for thought: I came across PLD hardlinking *.pyc and *.pyo in binary packages whenever they're identical, and they are in a lot of cases [13:08] abadger1999, use * then :) [13:08]  scop: I wonder how much space that saves [13:09]  scop: :-) [13:09] f13, not much in *.rpm sizes (surprisingly?) but of course some when installed [13:09] Something could run through and do that automatically for any identical files in a package. [13:09] yes, OTOH taking possible filesystem boundaries into account [13:10] Unfortunately that would restrict it to files in the same directory. Or rpm needs to be able to break those links at install time. [13:10] yep [13:10] but in the *.pyc, *.pyo case, they are in the same dir [13:10] $ /usr/sbin/hardlink -nvc /usr/lib64/python2.4 2>&1 | tail -n 1 [13:10] Would save 9859072 [13:11] Unfortunately don't forget that rpmbuild compiles the files itself. We have no hook to get in after that process, so rpmbuild would have to do the hardlinking itself. [13:12] yes, that could be done in the very same hook that compiles the files [13:12] (and should be done there, if it's seen something worth adopting in the first place) [13:13] Anything to save space, sure. [13:14] But I guess it's a discussion for the rpm maintainer. (Or is that the python maintainer?) [13:14] brp-python-bytecompile is in rpm-build. [13:15] scop: draft it? :) [13:17] I'll post to fedora-devel sometime for discussion first [13:18]  anyway I found it somewhat odd that it didn't save practically any space in *.rpm files [13:18]  perhaps rpmbuild already does something like hardlinking internally when it composes the payload [13:19]  Or the regular compression is taking care of it. [13:21]  <-- thimm has left this channel. [13:22]  would we lose out any functionality by making them hardlinks? [13:22]  we _do_ care a lot about the size of the stuff once installed, for things like LiveCD and OLPC [13:22]  I can't imagine how it could make any difference.  The system will just break the link if for some reason one of them gets modified. [13:29]  tibbs: just covering the bases.