fpc
LOGS
16:00:44 <geppetto> #startmeeting fpc
16:00:44 <zodbot> Meeting started Thu Jun 11 16:00:44 2015 UTC.  The chair is geppetto. Information about MeetBot at http://wiki.debian.org/MeetBot.
16:00:44 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic.
16:00:45 <geppetto> #meetingname fpc
16:00:45 <zodbot> The meeting name has been set to 'fpc'
16:00:45 <geppetto> #topic Roll Call
16:01:04 * tomspur_ is here
16:01:19 <geppetto> #chair tomspur
16:01:19 <zodbot> Current chairs: geppetto tomspur
16:01:46 <geppetto> I assume you are tomspur too?
16:02:03 <tibbs|w> Howdy.
16:02:14 <geppetto> #chair tibbs
16:02:14 <zodbot> Current chairs: geppetto tibbs tomspur
16:02:33 <tomspur_> Yes, tomsur is at work and this is now at home
16:02:36 <tibbs|w> Have had a crap weekend/week and haven't done much FPC wise.
16:03:02 <tomspur_> Similar to tibbs and tibbs|w
16:03:57 <geppetto> #chair racor
16:03:57 <zodbot> Current chairs: geppetto racor tibbs tomspur
16:04:03 <geppetto> tibbs: no problem
16:04:05 <Rathann> hi
16:04:08 <geppetto> #chair Rathann
16:04:08 <zodbot> Current chairs: Rathann geppetto racor tibbs tomspur
16:04:16 <geppetto> mbooth: ping
16:04:16 <zodbot> geppetto: Ping with data, please: https://fedoraproject.org/wiki/No_naked_pings
16:04:24 <mbooth> Hi
16:04:26 <tibbs|w> I really need to announce some things.
16:04:28 <geppetto> #chair mbooth
16:04:28 <zodbot> Current chairs: Rathann geppetto mbooth racor tibbs tomspur
16:04:44 <tibbs|w> Will hopefully have time after the meeting, assuming we finish at a reasonable time.
16:04:58 <tibbs|w> Also need to write two new drafts, ugh.
16:05:39 <tomspur_> tibbs|w: Can I help with the python lua macro somehow?
16:05:46 <tomspur_> Where will it be added in the end?
16:06:08 <tibbs|w> The macro itself, I don't know.  python*-devel, I guess.
16:06:55 <geppetto> #topic Schedule
16:06:58 <geppetto> https://lists.fedoraproject.org/pipermail/packaging/2015-June/010680.html
16:06:59 * tomspur_ would like to rename python.spec to python2.spec and put such macros to the unversioned python-devel, but got no response about that yet from the python maintainer
16:07:00 <Rathann> I have to leave at 17:15 UTC latest today
16:07:11 <tibbs|w> I'm not sure there's any point in showing the definition in the guideline, though python is long enough that I would consider putting stuff like that in a linked appendix.
16:08:15 <tomspur_> Or link to the git repo where it lives maybe is enough
16:10:29 <geppetto> #topic #539 	Procedure for approving package review process exceptions
16:10:29 <geppetto> .fpc 539
16:10:29 <geppetto> https://fedorahosted.org/fpc/ticket/539
16:10:31 <zodbot> geppetto: #539 (Procedure for approving package review process exceptions) – fpc - https://fedorahosted.org/fpc/ticket/539
16:11:01 <tomspur_> Who would approve such exceptions in the end in pkgdb?
16:11:29 <geppetto> I'm guessing, skip this one?
16:11:39 <tibbs|w> Yeah, I just need to finish writing it up.
16:11:50 <tomspur_> https://admin.fedoraproject.org/pkgdb/request/package/ requires a review url, but maybe a trac url?
16:11:57 <tibbs|w> We have two SCM admins in FPC, so all of that should be handlable.
16:12:01 <racor> I seem to be lacking context, esp. what are "package review exceptions"?
16:12:09 <geppetto> #topic #533 	Distinguish between packaging modules and applications in python packaging
16:12:09 <geppetto> .fpc 533
16:12:09 <geppetto> https://fedorahosted.org/fpc/ticket/533
16:12:10 <zodbot> geppetto: #533 (Distinguish between packaging modules and applications in python packaging) – fpc - https://fedorahosted.org/fpc/ticket/533
16:12:27 <tibbs|w> racor: Exceptions to the package review process.  Did I not link to the FESCo ticket?
16:12:41 <tibbs|w> Yeah, I didn't.  My fault.
16:12:53 <tibbs|w> It's not a huge deal anyway.
16:13:17 <tibbs|w> For 533, I don't think this belongs in python at all.
16:13:32 <tibbs|w> Drafting a general guideline for this is on my list.
16:13:51 <tibbs|w> It really doesn't apply to python specifically.
16:14:19 <geppetto> yeh, I mean python is a bit special … but not much.
16:14:26 <Rathann> tibbs|w: would be nice to have, of course, I'm +1 to it either way
16:14:50 <mbooth> Do we have other cases of multiple versions of a runtime?
16:14:55 <tibbs|w> The hard part of drafting a guideline is getting it right for compiled languages.
16:15:02 <Rathann> ruby?
16:15:04 <tibbs|w> mbooth: Anything arch-specific, really.
16:15:12 <tomspur_> iiuc applications must use python%{?py_default_major} and modules can use the python2/python3 variants
16:15:24 <geppetto> mbooth: about to have 2 versions of C++, AIUI
16:15:34 <tibbs|w> 32 versus 64 bit is pretty much an analogous case, though of course you don't worry about building for both in your spec.
16:15:38 <geppetto> or just did, I'm not sure about my timeline anymore ;)
16:16:02 <Rathann> geppetto: which compiler, clang?
16:16:06 <tibbs|w> Anyway, I will try to draft something but I'm sure it will need discussion and revision before a vote.
16:16:18 <tomspur_> The problem I see is, that the applications must use python3 although python2 is the "default" unversioned macro, so to both types of packages apply different rules... :/
16:16:41 <geppetto> Rathann: I thought a new GCC had a big C++ break
16:16:52 <Rathann> tomspur_: f23+ makes python3 the default
16:17:04 <Rathann> geppetto: oh
16:17:15 <Rathann> you mean the new C++ ABI in gcc
16:17:19 <Rathann> gcc5
16:17:20 <geppetto> yeh
16:17:40 <Rathann> but we don't have two in parallel
16:17:58 <geppetto> Ahh, I assumed they'd keep the old one around for a bit.
16:18:03 <tomspur_> Rathann: Depends what you mean by that. I think %python == python2 will still stay in f23+ and only be switched later when upstream recommends it
16:18:09 <Rathann> it's gcc5 with old C++ ABI in f22 and new ABI in f23+
16:18:13 <Rathann> if I remember correctly
16:18:18 <geppetto> ahh
16:18:27 * geppetto is assuming too much about backwards compat. again ;)
16:18:39 <Rathann> tomspur_: no, upstream said /usr/bin/python stays python2
16:18:49 <Rathann> %python is our macro, isn't it?
16:18:57 <tomspur_> Yes
16:19:16 <Rathann> and also, we've made using /usr/bin/python[23] mandatory
16:19:31 <Rathann> #!/usr/bin/python is against FPG now
16:19:48 <tibbs|w> Is that in there currently or do I need to write it up?
16:19:58 <tibbs|w> I'm getting so confused with all of the python changes.
16:20:20 <tomspur_> Same here
16:20:32 <geppetto> it was very recent
16:20:40 <geppetto> and I doubt half the distro. complies
16:20:43 <tibbs|w> I guess I need to sit down and take stock.
16:21:01 <tibbs|w> Oh, of course, most of the distro fails to comply with pretty much anything.
16:21:37 <Rathann> tibbs|w: it's there
16:21:38 <Rathann> However, packages in Fedora should not depend on where /usr/bin/python happens to point but instead should call the proper executable for the needed python major version directly, either /usr/bin/python2 or /usr/bin/python3 as appropriate.
16:21:39 <tibbs|w> I keep wanting to clean up every package I happen to look at, but think maybe they still want it to build on RHEL4 or something.
16:21:46 <Rathann> same about macros
16:21:50 <tibbs|w> Rathann: Ah, good.
16:21:57 <Rathann> The generic %{_python} macros
16:21:57 <Rathann> The unversioned macros, %{__python}, %{python_sitelib}, and %{python_sitearch} are generic macros that will always point to the default implementation. You may only use them with applications that need to choose to use the system's default version of python. (Currently this is the python2 interpreter.)
16:21:57 <Rathann> This is future proofing for the time when things will be switched over to python3 by default instead of python2.
16:22:18 <Rathann> You should use %{__python2}, %{python2_sitelib}, and %{python2_sitearch} to explicitly reference the python2 interpreter instead.
16:24:51 <geppetto> Ok, moving on
16:24:53 <geppetto> #topic #513 	Use python -Es in shbang
16:24:53 <geppetto> .fpc 513
16:24:54 <geppetto> https://fedorahosted.org/fpc/ticket/513
16:24:55 <zodbot> geppetto: #513 (Use python -Es in shbang) – fpc - https://fedorahosted.org/fpc/ticket/513
16:25:06 <geppetto> more python stuff ;)
16:25:15 <tibbs|w> I don't think there was ever any consensus about this.
16:25:40 <tibbs|w> I think this ticket just derailed into more python macro work.
16:26:15 <geppetto> yeh, kind of
16:26:25 <tomspur_> I thought this is moved into #281
16:26:34 <geppetto> I think the desire was that people use a macro so that extra security features could be added at some future point
16:27:01 <tibbs|w> Personally I think we should just get the macros done and then let the python maintainers decide what they want to actually put in there.
16:27:16 <geppetto> seems fine to me
16:27:19 <tibbs|w> As an aside, I linked ~/bin/python to python3 and stuff does break.
16:27:36 <tibbs|w> Because some packages are still using env, which they really, really shouldn't do.
16:27:41 <geppetto> tomspur: 281 is also on our schedule, I think they were similar but still separate.
16:27:41 <Rathann> well, -s usage was approved
16:27:51 <Rathann> -E wasn't
16:28:01 * geppetto nods
16:28:06 <tibbs|w> But python3 uses something different.
16:28:56 <tibbs|w> Or is it just -s for both?
16:29:04 <tibbs|w> I guess  -I was shot down.
16:29:29 <Rathann> -I is for python3
16:29:42 <tibbs|w> Yes, that's what I was saying.
16:30:00 <tibbs|w> But -l implies -E, which I gather is bad, so it's out.
16:30:01 <tomspur_> -I implies -E
16:30:37 <tibbs|w> I would still like any macros and examples to not imply that py2 and py3 will have the same default args, but not enough to make a big argument against it.
16:31:09 <geppetto> that seems rational, esp. as not all the new stuff is being backported to py2
16:31:28 <Rathann> both -Es and -I should be safe to use for building packages (however they may not be safe to use for running testsuites)
16:31:54 <Rathann> i.e. you wouldn't be able to add the newly built stuff to PYTHONPATH
16:32:03 <tibbs|w> I think the question here is whether I should just write "must use -s" into the guidelines now or wait for the macro.
16:32:14 <tibbs|w> Everything else has really been decided.
16:32:36 <tibbs|w> I think I'll just minimally tweak the guidelines now, fix up the examples and close the ticket.
16:33:11 <Rathann> I think the macros proposed by rkuska are fine (even with -Es and -I, respectively)
16:33:42 <tibbs|w> Rathann: Where were those exactly?
16:33:45 <tibbs|w> So many macros....
16:33:54 <tibbs|w> Comment 15?
16:34:01 <Rathann> %{python2_build} which would expand to %{__python2} setup.py build --executable="%{__python2} -s"
16:34:01 <Rathann> %{python2_install} which would expand to %{__python2} setup.py install
16:34:47 <Rathann> though python2_install might be a bit too much
16:34:48 <tibbs|w> Those have to get into some package somewhere before anyone can actually use the guidelines, though, if I write those macros in.
16:35:11 <tibbs|w> I don't have a problem with %{python2_install} but in the end I don't care.
16:35:51 <tibbs|w> The question is, what package will have the actual macros and how soon can they actually get in there and out to updates?
16:36:04 <Rathann> ah looks like I missed the meeting when -s was approved
16:36:42 <tomspur_> I guess they must go into python-devel and python3-devel
16:37:24 <tomspur_> $ rpm -qf /usr/lib/rpm/macros.d/macros.python3
16:37:24 <tomspur_> python3-devel-3.4.2-4.fc22.x86_64
16:37:32 <geppetto> yeh, whatever has the other build macros.
16:37:39 <geppetto> yeh
16:38:05 <geppetto> having them work in anything before F22 (at best) is going to be problematic.
16:38:13 * geppetto shrugs
16:38:21 <tibbs|w> I'm not sure I understand why.
16:38:41 <geppetto> just that I doubt they'll want to do a python update for F21 just for this.
16:38:52 <tibbs|w> It's not that big of a deal, is it?
16:38:54 <geppetto> I'm not ure if they'll want it for F22 even
16:39:14 <tibbs|w> Seems like we update texlive for less.
16:39:21 <geppetto> Fair enough.
16:39:40 <tibbs|w> If only the macros had been split out to a separate package way back when.
16:39:49 <geppetto> What we'd really like here is "don't bother normal users with this, but have it propagate to the build roots"
16:40:04 <tibbs|w> That's unpossible, unfortunately.
16:40:11 <tibbs|w> Well, maybe not unpossible.
16:40:15 <geppetto> yeh, but it's like 666x harder to get a new pacvkage than just add a sub package
16:40:27 <geppetto> tibbs: Yeh I know, just wishing for unicorns
16:40:37 <tomspur_> tibbs|w: you mean a fpc-macros package for all macros available?
16:40:46 <tibbs|w> Not really.
16:40:59 <tibbs|w> Just have python-devel depend on python-macros which is a separate package.
16:41:08 <tibbs|w> Anyway, it doesn't much matter now.
16:41:31 <tibbs|w> If we had buildsys-macros or whatever we'd just have to have dependencies on that everywhere.
16:41:43 <tibbs|w> Now, they could be put in redhat-rpm-config temporarily.
16:42:11 <tibbs|w> Nobody really cares if you rebuild that.
16:42:21 <tibbs|w> And regular users never see it.
16:43:03 <tibbs|w> Anyway, this is kind of immaterial to the actual guideline; it would just change any potential "use only in rawhide" clause.
16:43:15 <tibbs|w> So let me write up the "must use -s" thing.
16:43:29 <tibbs|w> When the macros make it in somewhere, I can update everything to use those macros.
16:44:18 <tibbs|w> Do we need to vote on those macros?
16:44:57 <geppetto> The last thing we had was basically "Let tibbs write some macros and then we'll vote on adding them to policy" :)
16:45:10 <tomspur_> I think that comes with the next ticket
16:45:23 <tomspur_> #281
16:45:37 <geppetto> Well, all python tickets have macros … it's a rule or something
16:45:38 <tibbs|w> OK, then let's deal with the macros separately and I'll write up the "-s is mandatory" thing now.
16:45:59 <tibbs|w> And then close 513 and make sure those macros get rolled into the big "new python macros" ticket.
16:46:05 <tibbs|w> Deal?
16:46:41 <tomspur_> :)
16:46:44 <geppetto> sure
16:46:57 <Rathann> +1
16:47:01 <geppetto> So 513 should be moved to writeup?
16:47:30 <tibbs|w> Yes, please.
16:47:33 <geppetto> #action tibbs Deal with non-voted on parts of 513 in other tickets, macros. etc.
16:47:54 <geppetto> Ok, so that leads nicely into:
16:47:55 <geppetto> #topic #281 	New Python Macros for Easier Packaging
16:47:55 <geppetto> .fpc 281
16:47:55 <geppetto> https://fedorahosted.org/fpc/ticket/281
16:47:57 <zodbot> geppetto: #281 (New Python Macros for Easier Packaging) – fpc - https://fedorahosted.org/fpc/ticket/281
16:48:00 <geppetto> "-o
16:48:55 <tibbs|w> Last thing was "nonworking macros".
16:49:47 <tomspur_> I think it is fine to use the macros one comment above and work around cases, where we don't have a setup.py script
16:50:29 <tibbs|w> Yes, of course; we should work to make the common case as simple as possible.
16:50:45 <tibbs|w> I forget, what does py_rt_build do again?
16:50:48 <tomspur_> or redefine %{py_setup} :/
16:51:25 <tomspur_> It seems py_rt_build is just used internally to build the python*_install macros
16:51:41 <tibbs|w> Right, but what does it actually do?
16:51:54 <tibbs|w> I'm lost following the nested {{}{}}{{}}}
16:52:24 <tibbs|w> Also, why does it call __python?
16:52:39 <tibbs|w> And does anyone know why we have these horrible double underscores in front of everything?
16:53:29 <tibbs|w> If we're going to be messing with macros anyway, can we just define %{python3} and such?
16:54:59 <tomspur_> +1
16:55:11 <geppetto> fine by me
16:55:30 <tibbs|w> I'm still lost with py_rt_build
16:56:38 <tibbs|w> OK, I understand now.
16:56:45 <tibbs|w> %{!?1:%{__python}}%{?1:%{1}}
16:56:57 <tibbs|w> Says use the first argument if present, otherwise __python.
16:57:27 <tibbs|w> I think... that shouldn't be in there.
16:57:48 <tibbs|w> If py3 is the default, that should just use py3.
16:58:17 <tibbs|w> But I guess that's down at the nitpicking level since the only uses of that macro will have everything specified.
16:59:03 <tibbs|w> What else can we do here besides test and figure out any issues?
16:59:15 <tibbs|w> Does anyone have any specific objections to that batch of macros?
16:59:24 <geppetto> no
17:00:11 <mbooth> Can %{?1:%{1}} not be simplified to %{?1} ?
17:00:17 <Rathann> I need to drop off unfortunately
17:00:34 <Rathann> take care, guys
17:00:41 <tomspur_> A quick example on how to (re)define  py_setup and py_setup_args would be nice
17:01:16 <tibbs|w> Why would you need to do so?
17:02:06 <tomspur_> py_setup_args is not mentioned so far, but maybe one needs to pass something and can just %define it above to py2_build
17:03:06 <tomspur_> I saw packages, that use setupegg.py to build the package and not setup.py, so I was trying to deal with that with my changes (not successfully so far)
17:03:26 <tomspur_> But I haven't thought on redefining the macro :(
17:04:25 <tibbs|w> Honestly I think we can optimize for the common case, and then if there's another class of less-common cases which we can handle without too much pain then we can handle them later.
17:05:29 <geppetto> tomspur: they have a setup and setupegg … but call the later to build?
17:06:46 <tomspur_> geppetto: yes
17:07:38 <geppetto> interesting
17:07:39 <tibbs|w> Is that kind of thing common at all?
17:08:18 <tibbs|w> If what we're doing simplifies even half of the python packages, I'm all for it.
17:08:24 <tomspur_> I don't think so, I only saw that a few times
17:09:03 <tomspur_> Isn't http://fpaste.org/231209/40425191/ simple enough?
17:09:38 <tibbs|w> I mean, personally I'd use %{optflags}, but yeah, that's simple.
17:09:56 <tomspur_> Or maybe also replace py_build_args with 1
17:11:17 <geppetto> py_build_args?
17:11:41 <tibbs|w> In that paste, he's saying that just pass the build args to the macro instead of defining another macro for them.
17:11:49 <tibbs|w> Makes sense to me.
17:12:01 <tibbs|w> Now, adjust for py3, test and update the ticket?
17:12:05 <geppetto> ahh, right
17:12:25 * tomspur_ tests it now with a random package
17:13:08 <tibbs|w> I don't think we can really do the development live here, unless we have no more tickets to handle.
17:15:22 <tomspur_> we can also come back again to this after another one?
17:15:37 <tibbs|w> What's left on the schedule?
17:15:49 <geppetto> nothing
17:15:51 <tibbs|w> I have another hour before I absolutely have to go.
17:16:05 <tibbs|w> Ah, good.  Then I think I'll get started on some writeups.
17:16:18 <geppetto> sounds good
17:16:25 <tibbs|w> I'm sick of staring at javascript anyway.
17:16:32 <geppetto> tomspur: You want to talk more about this, or move to open floor?
17:17:22 <geppetto> #topic Open Floor
17:17:47 <tibbs|w> There was talk of doing a python packaging tutorial.  I'm hoping after we're done we won't really need it.
17:18:03 <tibbs|w> There was one other thing I promised to draft, but of course I've now forgotten it.
17:18:11 <geppetto> yeh, having it be a simple bunch of macros would be nice
17:18:37 <geppetto> 533?
17:18:53 <tibbs|w> No, it was during a discussion elsewhere.
17:18:56 <geppetto> ahh
17:19:41 <geppetto> ok, well thanks for coming. Enjoy lunch.
17:19:52 <geppetto> #endmeeting