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