17:06:28 #startmeeting fpc 17:06:28 Meeting started Wed Jan 23 17:06:28 2013 UTC. The chair is abadger1999. Information about MeetBot at http://wiki.debian.org/MeetBot. 17:06:28 Useful Commands: #action #agreed #halp #info #idea #link #topic. 17:06:43 I'm mostly around. 17:06:53 * abadger1999 is a little hesitant to talk about some of these big things with spot out but we'll see what happens. 17:07:03 #topic Roll Call 17:07:31 * geppetto is here 17:08:11 racor, Rathann, rdieter, Smoother1rOgZ, limburgher, spot: FPC meeting time, ya'll here? 17:08:18 More or less. 17:08:22 eep, ok 17:09:01 Well, that's five. 17:09:49 First off, is there anything anyone would like to deal with today that's easy? 17:09:59 half present 17:10:06 here 17:10:10 There's two that are hard but that will block features so I want to be sure we get to those. 17:11:36 * abadger1999 starts us off then 17:12:00 #topic NodeJS Guidelines 17:12:12 https://fedoraproject.org/wiki/PackagingDrafts:Node.js 17:13:00 This came up last week at FESCo for the Nodejs feature. I reviewed it with sgallagh at fudcon... it seemed pretty reasonable. 17:13:10 I hadn't seen this before. 17:13:21 yeah, I just noticed that it didn't get an fpc ticket. 17:13:54 seems ok offhand 17:13:56 If we want to read this now, the only other thing I think we need to get to is the proposed ruby guidelines and the question of mostly-compatible interpreters. 17:14:37 I see nothing grievously errant. 17:14:37 though, https://fedoraproject.org/wiki/PackagingDrafts:Node.js#Correcting_Dependencies seems... odd. patching package.json could yield safer results, no? 17:15:06 meh, not a blocker though 17:15:22 __nodejs macro value seems … weird. 17:15:41 Oh, that's the binary not a dir. 17:15:52 Nevermind 17:15:56 Why would you need that at all? 17:15:56 Right, in case it has to change later. 17:16:05 It conflicted with node. :) 17:16:17 rdieter: ah I see -- patch the file with %patch. Then submit the patch upstream. I think I agree. 17:16:20 Probably a non-issue, but I see the logic. 17:16:28 We already discourage use of those macros. 17:16:50 Unless there's a good reason, of course; I'm just not sure what that reason might be. 17:17:35 * abadger1999 had changed the %{_bindir}/nodejs-symlink-deps and %{_bindir}/nodejs-fixdep location to %_bindir earlier but after some further conversation we think it belongs in its original spot, in /usr/lib/rpm/ 17:17:43 I'll change that back now. 17:18:26 if those are rpm-only tools, that makes sense 17:19:38 yeah -- tc hollingsworth told me via email that they only work from within a spec file. 17:20:18 Okay, so the only thing we think is that nodejs-fixdep should jsut be turned into a request to patch and submit the patch upstream? 17:20:43 abadger1999: or at least mention that as an (prefered?) option 17:20:49 Right, I think so. 17:21:21 also, shouldn't this go into nodejs-devel? 17:21:29 Rathann: yes 17:21:30 What's actually behind that fixdep macro? 17:21:51 I mean, "fix everything automatically" sounds kind of magical. 17:22:05 https://fedoraproject.org/wiki/PackagingDrafts:Node.js#BuildRequires should cover that 17:22:07 I know approximately nothing about nodejs, so. 17:22:40 * abadger1999 checks out hte nodejs pacakge to see 17:23:26 No nodejs-devel appears to be in my repository, so... 17:23:35 http://pkgs.fedoraproject.org/cgit/nodejs.git/tree/nodejs-fixdep 17:23:48 For the symlin script: http://pkgs.fedoraproject.org/cgit/nodejs.git/tree/nodejs-symlink-deps 17:25:10 I do not comprehend the multilib exception rationale. If everything inside is single-arched, everything is arched, hence everything can go into %{libdir} (*sitelib, *sitearch) 17:27:40 * rdieter is ready to vote on nodejs proposal 17:28:13 racor: Not sure I understand you... Most things will be noarch. A few packages (none submitted yet, so I don't know what they look like) will have arch-specific extensions. 17:28:59 I guess the question there is how does any kind of multilib exemption have bearing on whether the package puts non-arch-specific stuff under %libdir. 17:29:20 tibbs: It's %{_prefix}/lib 17:29:24 rdieter: as-is gets -1 from me, the draft needs some fixes mentioned here 17:29:35 So it would need an exemption like java 17:29:55 Rathann: The fixdep thing? I can fix that now. 17:29:56 Well, OK. But the note doesn't say that. 17:30:06 Rathann: ok, I consider those just bug fixes, not worth blocking the guideline 17:30:22 It says that because no multilib, the two directories are the same, which doesn't really make sense to me. 17:31:10 also moving rpm macros and helpers into -devel package 17:33:00 Someone just removed the request for an example spec from the end. 17:33:09 Still needs one, though. 17:33:27 agreed 17:34:16 abadger1999: They are demanding an exception because the whole package set as they build it is non-multilibed. 17:34:45 => If they treat everything as non-noarch, they don't need an exception. 17:36:20 tibbs: ah -- that was me -- it was a request to see an srpm so we'd know what node-gyp would look like but the author added all the sections on node-gyp and left the note in. 17:37:13 racor: correct. But that's not something we need to decide -- we made a rule that they could get an exemption from fesco to be non-multilib and then it would be okay for them to do this. 17:37:32 fixdep has been changed. You can refresh to see the change. 17:39:32 Hmm, I don't know about that. 17:39:43 tibbs: refresh and see if the sitelib vs sitearch note is better now. 17:40:14 I mean, I don't see a problem telling upstream that their dependencies need to be fixed somehow and still using the fixdep macro until they apply the change. 17:40:23 k 17:40:35 It's not really necessary to communicate that to upstream in the form of a patch. 17:41:05 But, either way; the point is that most of the times the macro is needed, upstream actually has something to fix. 17:42:22 tibbs, rdieter: How about now? 17:42:23 Also, on the topic of that multilib note, is there actually a reason pure javascript stuff isn't in /usr/share? 17:42:35 hm, I don't like it that binary addons are linked statically by node: http://nodejs.org/api/addons.html 17:42:53 I assume it's just because they don't have two search paths. 17:43:04 abadger1999: worksforme 17:43:32 tibbs: As far as I know, it's the same as other languages -- they don't have a way to split the arch'd from the non-arched and upstream installs to /usr/lib/ by default instead of to %{_libdir} 17:43:57 abadger1999: I figured as much, just needed the knowledge. 17:44:14 Rathann: I got the impression that had been dealt with in Fedora somehow. 17:44:19 Not sure where I got that impression, though. 17:44:40 The draft talks about shared v8 and such. 17:45:10 the nodejs package is not patched in any way 17:45:10 Also, something's missing here: 17:45:20 The Fedora version of node-gyp will handle the fact that shared versions of libuv, v8, and http_parser without modification to the module, 17:45:56 Rathann: sgallagh worked with upstream when resolving a bunch of this stuff... it might be that the upstream doc is lagging the implementation 17:46:00 There's a verb missed out. 17:46:21 Rathann: or that might be different than the unbundling work he did and it's still an issue. 17:46:33 Alright -- shall we vote or make a list of things to ask? 17:46:47 * abadger1999 could vote +1 but is fine with making a list. 17:47:05 abadger1999: I disagree. It's our job to teach them "best practices". That said "exceptions" are band-aids to bugs. If they can be avoided, we must point them out. 17:47:36 abadger1999: vote, resort to list if it fails 17:47:44 Okay. 17:48:42 Proposal: Approve the current version of the Guidelines, ask for clarification (does not need vote) of the "[...]shared versions of libuv,[...]" line before we write it up. 17:48:44 +1 17:48:45 +1 nodejs proposed guidelines 17:48:50 +1 17:48:54 +1 17:49:03 -1 from me, it still says: "The nodejs package includes an automatic Requires and Provides generator that automatically adds versioned dependencies based on the information provided in a module's package.json file." and the static linking of binary addons is an issue, too 17:49:11 -1, the proposal is defective 17:50:05 Rathann: would fixing that to nodejs-devel sway your vote? 17:50:08 Ugh, even f18 doesn't have nodejs in the repos. 17:50:45 tibbs: Yeah, I think deps aren't at the needed versions until f19 (although they may just be waiting on updates) 17:50:53 tibbs: i *think* it needed newer v8 17:51:03 rdieter: no, the static linking is my main issue, also we don't have any example srpm or spec 17:51:06 I just brought up a VM so I could look, and it was the wrong OS. 17:52:48 So I think fundamentally this draft is OK, but there's still stuff that needs fixing. 17:53:11 And that big question about static stuff, which I hope wouldn't have made it past the package review. 17:53:15 k. /me works on list 17:53:45 Rathann: note: the static linking just needs to be clarified as to which it is right? We aren't mandating that they must fix upstream in some way? 17:53:55 (since we allow other things to be static linked.) 17:54:44 Okay => List of questions: https://fedoraproject.org/wiki/PackagingDrafts:Node.js#Questions 17:54:56 If you have other questions feel free to ask them. 17:55:13 I'm going to change topics so we can at least start to discuss the other big issue. 17:55:38 #topic Ruby Guidelines update: https://fedorahosted.org/fpc/ticket/242 17:56:10 BTW, /usr/bin/node is dynamically linked in the current rawhide package. 17:56:24 https://fedoraproject.org/wiki/PackagingDrafts/Ruby 17:56:31 At least against libuv, libv8, libssl, libhttp_parser and such. 17:56:39 https://fedoraproject.org/w/index.php?title=PackagingDrafts%2FRuby&diff=320351&oldid=320350 17:57:02 There's not many lines changed but there's a big policy question to be resolved: 17:57:26 How to deal with interpreters that are almost compatible with each other. 17:57:26 not entirely happy with the ruby(abi) -> ruby(release) change, requires all packages to adapt, but I also understand the rationale for it. 17:57:50 That question influences whether several of the changes are acceptable: 17:58:06 " Alternate Ruby interpreters (currently JRuby) also Provide: ruby(release). This implies, that pure RubyGems packages (these are shared among interpreters) '''must not''' have Requires: ruby or Requires: jruby to have their dependencies satisfied by any of these interpreters" 17:58:23 "* If the package is pure Ruby, it '''must not''' Requires: ruby or Requires: jruby (but be aware of implementation specific methods, such as fork)." 17:59:22 The first question is: are we okay with interpreters that are compatible for most code sharing the files for their modules. 17:59:37 If we're okay with that, then we need to ask whether the proposed implementation is fine. 17:59:38 I think so … why would we be against that? 17:59:39 Seems better than the alternative, I'd think. 18:00:02 probably good enough, for now, given how little we know about it yet. 18:00:29 * abadger1999 is also okay with the idea of sharing 18:01:11 limburgher, Rathann, racor: is the basic premise okay with you too? 18:02:05 I think so. 18:02:28 geppetto: I suppose an argument could be made that it's hard to test that situation (ie: that the code in this particular package runs on both interpreters) 18:03:40 Maybe for implementation we could say that code needs to run its unittests under both ruby and jruby? 18:03:45 abadger1999: seems better than having two packages and testing it twice that way. 18:03:52 yeah 18:04:01 RIght, you have to test it N times anyway. 18:04:29 Okay, well that's five who are okay with the basic idea so we can potentially approve an implementation as well. 18:04:31 Python has shown us that having separate packages generated from the same spec gets pretty messy. 18:05:01 I mean, I guess we could ask what the alternative looks like, but that seems an awful amount of work just to prove a point. 18:05:08 tibbs: heh. yeah -- but python2/python3 is different than this.... python2 + pypy would be similar (and add another layer of complexity to the current packages) 18:05:21 abadger1999: 18:06:21 Could we come up with questions about the current ruby proposal so the authors can address those this week? 18:06:41 abadger1999: sorry, I don't feel able to vote or comment, The discussion referenced in trac is too long and comes with too many implications, which would me to have more time to think about it. 18:06:51 sorry, had to take a call 18:07:21 I'd like to see the rubypick (script to allow users and packagers to choose which version of ruby interpreter an application to use) stuff have a recipe in the guidelines. 18:07:24 My fear is that my dumb questions are all in that trac ticket somewhere. 18:07:31 abadger1999: I'm more or less okay with the basic premise 18:07:49 I'm not sure about hte Provides and Requires... I want to be sure that we're protecting end-users. 18:07:50 Changing rubygems to gems, changing gem_extdir to gem_extdir_mri and such, just seems like busy work for packagers. 18:08:05 But then, the same folks proposing these changes maintain essentially all of the packages. 18:08:24 Maybe what it needs is to have a section on when it's appropriate to Require: the real ruby or real jruby packages rather than the virtual provide. 18:08:55 I guess that comes down to "when the module uses something that's not compatible between interpreters". 18:09:00 But maybe they have a better list. 18:09:35 Yeah. But it's not written into the Guideline Proposal that way 18:09:44 That statement is quite confusing, actually. 18:10:05 (ie: " If the package is pure Ruby, it '''must not''' Requires: ruby" rather than having a clause about incompatibility) 18:10:06 "must not" require a specific interpreter. But be aware of something. 18:10:28 And it doesn't tell you why you should be aware of it, or what you should do in that case. 18:11:04 okay. that's two questions to ask. 18:11:09 Anyone have anything else? 18:12:38 To me this doesn't really look that invasive. 18:13:10 I do suspect that regardless of what gets in this guideline, weird compatibility problems are going to crop up and someone who isn't us is going to have to deal with them. 18:13:17 why do we need %{gem_extdir_mri} ? 18:13:45 It's just a rename, I guess, to match upstream terminology. 18:13:57 Rathann: I think that there's going to be different extdirs for the various ruby interpreters. 18:14:17 So C-ruby will use gem-extdir_mri and jruby might use gem_extdir_jruby 18:14:25 We can ask if that's the case. 18:14:31 oh, so it's interpreter-specific? 18:14:58 Hmm, so only pure ruby modules can be shared. 18:14:59 all other dirs for gem packages seem to be interpreter-agnostic 18:15:04 Which kind of makes sense. 18:16:14 tibbs: correct. 18:16:26 at least, that's been my understanding of what they've written 18:16:39 * rdieter needs to lunch soon, sounding like this will or will not get voted on today? 18:16:48 * rdieter guesses no 18:17:04 I think the main question was whether we were fundamentally opposed to the sharing issue. 18:17:43 Will not get voted. 18:18:03 Just try to add questions and comments to the draft if you think of any. 18:18:11 * abadger1999 will write up the ones we've mentioned here. 18:18:28 I guess they'll submit guidelines for packaging non-MRI extensions later. 18:18:40 Not that I know what MRI means in this context, but.... 18:18:56 * abadger1999 will ask what mri means as well. 18:19:12 Okay. Seems like that's all we're going to get to this week. 18:19:13 Matz's Ruby Interpreter 18:19:27 k 18:19:35 Thanks for coming everyone! 18:19:40 #endmeeting