17:00:36 <geppetto> #startmeeting fpc
17:00:36 <zodbot> Meeting started Wed Sep  6 17:00:36 2017 UTC.  The chair is geppetto. Information about MeetBot at http://wiki.debian.org/MeetBot.
17:00:36 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic.
17:00:36 <zodbot> The meeting name has been set to 'fpc'
17:00:36 <geppetto> #meetingname fpc
17:00:36 <geppetto> #topic Roll Call
17:00:36 <zodbot> The meeting name has been set to 'fpc'
17:00:42 <geppetto> #chair tibbs
17:00:42 <zodbot> Current chairs: geppetto tibbs
17:00:45 <geppetto> #chair limburgher
17:00:45 <zodbot> Current chairs: geppetto limburgher tibbs
17:00:52 <orionp> hello
17:00:56 <geppetto> #chair orionp
17:00:56 <zodbot> Current chairs: geppetto limburgher orionp tibbs
17:00:57 <ignatenkobrain> .hello2
17:01:00 <zodbot> ignatenkobrain: ignatenkobrain 'Igor Gnatenko' <ignatenko@redhat.com>
17:01:32 <tibbs> Howdy.
17:02:56 <geppetto> tibbs goes full texan? ;)
17:07:41 <Rathann> hi
17:07:42 <Rathann> sorry
17:09:34 <geppetto> #chair Rathann
17:09:34 <zodbot> Current chairs: Rathann geppetto limburgher orionp tibbs
17:09:37 <geppetto> no problem
17:09:51 <geppetto> Not even 10 mins. past … and we are 5 now :)
17:10:30 <geppetto> #topic Schedule
17:10:35 <geppetto> #link https://lists.fedoraproject.org/archives/list/packaging@lists.fedoraproject.org/message/N2EC4SFVNWDPJHHSXJXEXMYPP7POOTD6/
17:11:30 <geppetto> So … we have a schedule, with three tickets … but nothing has changed on any of them since we last discussed them
17:11:37 <ignatenkobrain> I would like to talk about https://pagure.io/packaging-committee/issue/713 if you will have time after
17:12:06 <geppetto> Sure
17:12:46 <tibbs> On a first reading, I am against 713.  That much clutter for something that might not ever go to EPEL is not desirable.
17:13:12 <geppetto> #topic  #713 Forward-looking conditionals by default
17:13:14 <limburgher> And there are also bit of python that simply don't support Python 3.
17:13:15 <geppetto> .fpc 713
17:13:16 <zodbot> geppetto: Issue #713: Forward-looking conditionals by default - packaging-committee - Pagure - https://pagure.io/packaging-committee/issue/713
17:13:40 * ignatenkobrain sighs
17:13:43 <ignatenkobrain> probably python3 is not best example
17:13:56 <tibbs> My objections have nothing to do with python.
17:14:15 <limburgher> And mine scale beyond python.
17:14:29 <ignatenkobrain> what I wanted to say is that basically we don't do "%if 0%{?fedora} > 26", but we do "%if 0%{?fedora} <= 26"
17:15:00 <ignatenkobrain> so we know when to drop it easier
17:15:01 <tibbs> That's slightly more palatable.
17:15:16 <geppetto> We always do > or >= because 0{?fedora} is zero if there is no fedora macro
17:15:41 <ignatenkobrain> well, %if 0%{?fedora} && 0%{?fedora} <= 26
17:15:44 <geppetto> And you want it to fail in the "macro not set"
17:15:49 <geppetto> Yeh, I guess
17:16:07 <ignatenkobrain> that's what I wrote in ticket but was lazy here
17:16:07 <geppetto> But is that really easier than > 27 ?
17:16:27 <tibbs> Personally, no, I prefer "%if 0%{?fedora} > 27" because it's the least line noise and hence the least typing.
17:16:35 <limburgher> And if so, easier enough that it merits changing?
17:17:04 <tibbs> But I would not object to a paragraph in the DistTag page that discusses the various pitfalls.
17:17:48 <tibbs> Honestly, if you're touching a spec you pretty much have to know which distro releases it targets regardless.  Having more verbose conditionals doesn't save you from that.
17:18:30 <limburgher> Especially not in a way that applies to all the weird corner cases that die horribly if missed.
17:19:17 <ignatenkobrain> tibbs: well, I'm proposing to specify where feature **not** supported rather where it is
17:19:25 <ignatenkobrain> so assuming that feature is supported by default
17:19:33 <ignatenkobrain> apart from cases where it doesn't
17:19:52 <tibbs> But in the default case, that requires listing more things.
17:21:05 <geppetto> I'm not sold on it being better … but I'm fine to recommend future proofing things we know are likely to move into newer distros.
17:21:21 <limburgher> In which case find -type f -name '*.spec | wc -c goes WAAAY up.
17:21:27 <tibbs> I would be happy for someone to make a pass over https://fedoraproject.org/wiki/Packaging:DistTag
17:21:50 <tibbs> It could use a little love in any case.
17:23:35 <ignatenkobrain> unfortunately (or fortunately), usually only EL is behind all things. so my other reason is trying to achieve some interchangeable specs with other distros so we can get some unification in future
17:24:18 <geppetto> how does changing >= to <= help that?
17:24:38 <tibbs> That's a laudable goal in principle but pre-emptively adding more line noise doesn't really help.
17:24:50 <ignatenkobrain> geppetto: because it is **enabled** by default rather than **disabled**
17:25:03 <ignatenkobrain> s/it/feature/
17:25:27 <geppetto> Oh, I see … so you want to change the default if fedora and rhel are not set
17:26:01 <tibbs> Going from "%if 0%{?fedora} > 12" to "%if (0%{?rhel} && 0%{?rhel} <= 7) || (0%{?fedora} && 0%{?fedora} <= 12)" is simply bad on its face.
17:26:20 <ignatenkobrain> another point can be next EL version. I suppose that next version of EL will have py3 support which would mean that we will need to change it after next EL release.. all packages
17:26:23 <tibbs> I hesitate to think what it would require to "achieve some interchangable specs with other distros".
17:26:27 <geppetto> Just do that then, and keep the current lines … %if ! 0%{?fedora}%{?rhel} … set default
17:26:45 <tibbs> Since you'd need another block of that for every single other distro.  Not pleasant.
17:27:23 <tibbs> I wouldn't mind, however, some "feature macros" which would simply be set to 1 or 0 as appropriate for each "thing" like python3 support that you might want to check on.
17:27:35 <tibbs> That could get rid of some cruft, but certainly not all of it.
17:28:06 <tibbs> Sort of like how we have %foo_arches now.
17:28:13 <tibbs> Using those saves a lot of confusion.
17:28:59 <ignatenkobrain> tibbs: the right clause of your quote can be dropped because we know that F12 is dead
17:29:27 <tibbs> OK, so s/12/27/.
17:29:34 <tibbs> I was just cutting from your example.
17:29:43 <ignatenkobrain> so instead of %if 0%{?fedora} > 12 ... enable py3 ... transforms to  %if 0%{?rhel} && 0%{?rhel} <= 7 ... disable py3 ...
17:29:48 <limburgher> One problem with mandating particular idioms while chasing inter-distro operability is that it can lead to https://xkcd.com/927
17:29:55 <ignatenkobrain> so the feature is on by default
17:30:17 <tibbs> Anyway, I've said about all I can say.
17:30:21 <geppetto> ignatenkobrain: Again, you can set the feature on when there are no distro. macros without having to change the tests
17:30:23 <ignatenkobrain> limburgher: not really, since RPM is used everywhere we don't try to do something new
17:30:32 <limburgher> Which is not to say never do it, but just to make sure you're doing it where it brings vlaue.
17:30:49 <limburgher> RPM 4 or 5?
17:30:56 <ignatenkobrain> geppetto: that would work for me, but is it more readable?
17:31:04 <ignatenkobrain> limburgher: definitely 4, nothing uses 5 nowadays
17:31:07 <Rathann> I'm against increasing spec size and decreasing readability
17:31:17 <Rathann> ignatenkobrain: PLD Linux uses rpm5 AFAIK
17:31:32 <Rathann> all 5 users of it ;)
17:31:34 <ignatenkobrain> Rathann: AFAIK not anymore, but I didn't check recently
17:31:44 <ignatenkobrain> even Yocto switched to RPM4
17:31:45 <Rathann> oh? never mind then
17:32:14 <ignatenkobrain> and even first and last developer of RPM5 sends patches to RPM4 nowadays
17:32:14 <ignatenkobrain> :D
17:33:01 <limburgher> my point is that in a world of total interoperability i wouldnt need to know.
17:34:07 <geppetto> ignatenkobrain: It's a smaller change to the current, and probably easier to read if you split it to separate conditionals … but feel free to do both drafts and we can see.
17:34:42 <ignatenkobrain> geppetto: I will try to write one, though only after next week since I"m on vacation for next one
17:34:51 <ignatenkobrain> s/one/two/
17:34:52 <geppetto> no problem
17:34:56 <limburgher> Cool
17:35:25 <geppetto> #action ignatenkobrain To write a draft for changing the default to enable python3 when no distro. macros are in use
17:35:38 <ignatenkobrain> since this topic is over, what happened to ldconfig filetrigger?
17:36:04 <ignatenkobrain> I read that geppetto proposed solution but I don't see any updates in bugzilla for long time
17:36:12 <geppetto> Last I heard the glibc maintainers didn't want to take any change
17:36:31 <tibbs> They are very resistant to change.
17:36:52 <tibbs> I actually wanted to relay some stuff from Flock.
17:36:53 <geppetto> Will Woods and sgallagh had both looked at similar problems and presented at Flock
17:36:57 <ignatenkobrain> but are there some technical issues with it?
17:37:06 <geppetto> So we might get some push to fix this
17:37:07 <tibbs> No, no technical issues, really.
17:37:32 <tibbs> But they simply refuse to do it unless we can guarantee that there are never any mispackaged things in the distro that might be broken by it.
17:37:53 <tibbs> Basically, packages must include the symlinks that ldconfig would create.
17:38:04 <tibbs> And they insists that builds fail if a package doesn't do that.
17:38:11 <limburgher> Hoo boy.
17:38:21 <tibbs> It's the precautionary principle.
17:38:30 <tibbs> Make no change unless you can guarantee 100% safety.
17:38:51 <ignatenkobrain> well, we did such changes in RPM :D
17:38:56 <limburgher> And they're not confident that moving functionality from glibc to RPM is safe?
17:39:00 * limburgher snickers
17:39:01 <ignatenkobrain> unintentionally, partially.. but meh
17:39:08 <tibbs> OK, I'm not aware that RPM included changes for this.
17:39:14 <tibbs> Please provide some additional detail.
17:39:38 * geppetto shrugs … as I said we might get some push to remove scriptlets from rpms within the base system in the near future. So here's to being optimistic about that.
17:40:01 <tibbs> Yes, there were two separate efforts to try and cut down on the amount of stuff packages do in scriptlets.
17:40:19 <tibbs> And to make what's there somewhat "transparent" (not really using the right term.
17:40:31 <ignatenkobrain> tibbs: no, I was just saying about things which changed in RPM which broke some other packages (and even glibc). which is not really I'm proud of, but..
17:40:40 <tibbs> Oh, OK.
17:40:43 <tibbs> So, the scriptlet thing.
17:40:48 <ignatenkobrain> so just waiting that "everything should be 999% fine" is not going to work
17:41:07 <limburgher> That's a lot of fine.
17:41:12 <tibbs> The idea is that if you're externally composing a container or whatever, you can 't run scriptlet.
17:41:50 <sgallagh> tibbs: Less "transparent" so much as "introspectable"
17:41:55 <geppetto> #topic Open Floor
17:42:00 <tibbs> Someone at the door, sorry.
17:42:07 <geppetto> no problem
17:42:10 <sgallagh> It should be possible to interrogate dist-git to see what scriptlets want to do
17:42:23 <tibbs> As much as possible, yes.
17:42:48 <sgallagh> Will looked through all of the scriptlets in RHEL and determined that they pretty much all fell into six buckets, and he and I think we can probably make those things declarative rather than arbitrary scripts
17:43:05 <geppetto> sgallagh: IIRC you have to do it on packages because specfil sucks so much
17:43:11 <limburgher> Oh wow.
17:43:11 <tibbs> For cache-like things, moving things to an implicit model as we're doing with file triggers helps because now you only have to know the set of packages which add those triggers instead of looking at every single package.
17:43:12 <geppetto> But, yeh
17:43:27 <tibbs> For things like user creation, we should try to hide that behind a macro.
17:43:45 <tibbs> This requires a change to my previous long-held position that we shouldn't hide scriptlets behind macros.
17:43:54 <sgallagh> tibbs: Either a macro or a specialized interpreter
17:43:56 <tibbs> But I'm ready to do that as the benefits are palpable.
17:43:58 <Rathann> that sounds excellent and I'm glad someone is working on it
17:44:24 <sgallagh> Which is what we're looking at; a scriptlet interpreter that takes a declarative input (like YAML) rather than arbitrary code execution
17:44:25 <tibbs> Right, I wwoods's idea was to use a specialized interpreter, but perhaps further simplify the details with a macro.
17:44:43 <sgallagh> Right, if that turns out to be the better approach, so much the simpler
17:44:49 <tibbs> SO you just have %pre_createuser -option foo -x -y -z
17:45:16 <tibbs> Because the details of the interpreter are also something that would be nice to hide from packagers.
17:45:31 <tibbs> Anyway, I've previously been against this kind of thing but the benefits here are pretty big.
17:45:44 * sgallagh nods
17:45:55 <tibbs> And two separate groups have been going through specs to categorize the types of scriptlets in use, which is great work on its own.
17:46:06 <tibbs> Though I didn't get to see the raw results of that.
17:46:15 <tibbs> There is a whole lot of WTF in our distro scriptlets.
17:46:38 <tibbs> This reminds me that F24 is EOL and I can remove another block from the Packaging:Scriptlets page.
17:47:11 <tibbs> I am planning to work with both groups to provide a preview of what the guidelines would look like if this stuff existed.
17:47:26 <tibbs> Though %pre_createuser (or whatever it would be called) can exist today, trivially.
17:47:43 <tibbs> As would %ldconfig_scriptlets and %systemd_service or whatever.
17:48:48 <tibbs> Behind the scenes those could change without having to mess with loads of packages that use them.
17:49:10 * geppetto nods
17:49:21 <sgallagh> ack
17:49:52 <tibbs> But lots of work to do anyway.  If any FPC folks want to start yelling about this being a terrible idea, it would be good to start that discussion.
17:50:22 <tibbs> I will file a ticket just to get it all down somewhere.  I just haven't had much time since I got back.
17:50:46 * limburgher nods
17:53:22 <geppetto> I'm pretty sure everyone thinks it's cool :)
17:53:38 <geppetto> Anyway, unless there is anything else I'll close the meeting in the next minute or so
17:55:18 <limburgher> Not I, said the duck.
17:55:26 <geppetto> #endmeeting