16:00:17 #startmeeting fpc 16:00:17 Meeting started Thu Jul 26 16:00:17 2018 UTC. 16:00:17 This meeting is logged and archived in a public location. 16:00:17 The chair is geppetto. Information about MeetBot at http://wiki.debian.org/MeetBot. 16:00:17 Useful Commands: #action #agreed #halp #info #idea #link #topic. 16:00:17 The meeting name has been set to 'fpc' 16:00:17 #meetingname fpc 16:00:17 The meeting name has been set to 'fpc' 16:00:17 #topic Roll Call 16:00:21 hi 16:00:23 Hey folks. 16:00:27 #chair mhroncok 16:00:27 Current chairs: geppetto mhroncok 16:00:30 #chair tibbs 16:00:30 Current chairs: geppetto mhroncok tibbs 16:00:33 .hello2 16:00:33 decathorpe: [hellomynameis decathorpe] 16:00:44 #chair decathorpe 16:00:44 Current chairs: decathorpe geppetto mhroncok tibbs 16:00:47 .hello2 16:00:47 redi: [hellomynameis redi] 16:00:52 #chair redi 16:00:52 Current chairs: decathorpe geppetto mhroncok redi tibbs 16:01:19 .hello2 16:01:19 ignatenkobrain: [hellomynameis ignatenkobrain] 16:01:23 #chair ignatenkobrain 16:01:23 Current chairs: decathorpe geppetto ignatenkobrain mhroncok redi tibbs 16:03:47 Down to 33 tickets. So that's something. 16:04:10 10 active 16:04:25 well, for the meeting 16:04:33 which is the one I care about ;) 16:04:48 I think most of the remaining ones just need to be closed at this point, but some have just fallen through the cracks. 16:05:09 We could try that, see what happens :) 16:05:17 #topic Schedule 16:05:20 https://lists.fedoraproject.org/archives/list/packaging@lists.fedoraproject.org/message/3F6PPWY22VAWUBZ5ITUJIBD6SN3RLVE2/ 16:05:25 We should try to talk about everything tagged as meeting, or at least untag the ones we aren't going to talk about. 16:05:36 #topic #784 forbid globs for shared libraries as it conceals sonames 16:05:44 .fpc 784 16:05:44 geppetto: [showticket https://pagure.io/packaging-committee/issue/%s 784] 16:05:56 Ok, we talked about this a little in the open floor last week 16:05:56 zodbot: go home, you are drunk 16:05:57 zodbot seems to be tired today 16:06:07 Nice, adding tags and adding a comment at the same time... doesn't always add the tags. 16:06:21 That might explain why some of the tickets never got tagged for a meeting. 16:06:45 https://pagure.io/packaging-committee/issue/784 16:07:00 I can imagine this one taking the whole meeting. 16:07:07 so for this one I tend to agree that packagers should explicitly specify SONAME and not glob it 16:07:15 heh 16:07:16 Well, "SHOULD". 16:07:24 I also think it should be a SHOULD 16:07:25 I have a question: does RPM extract the "real" version from the library for automatic provides and requires, or does it use the file name? 16:07:37 decathorpe: filename AFAIK 16:07:43 then the last comment is moot 16:07:45 decathorpe: extracts it 16:07:46 ??? 16:07:50 it must get the real soname 16:07:53 not use the filename 16:07:59 or it's completely broken 16:08:05 * decathorpe shrugs 16:08:08 it extracts it 16:08:13 It does, it does if you rename to just .so 16:08:13 it MUST 16:08:15 ok, sorry in that case 16:08:24 tools/elfdeps.c 16:08:24 219: case DT_SONAME: 16:08:25 318: * For DSOs, add DT_SONAME as provide. If its missing, we can fake 16:08:30 phew 16:08:45 mhroncok: causing redi a minor heart attack ;) 16:08:50 if DT_SONAME is empty, the filename it is 16:08:57 :D 16:09:00 Note: the draft in the initial comment is not the actual draft. 16:09:06 okok, so ... we can't rely on the file name at all? 16:09:16 right 16:09:23 yeah I updated it, and nobody seemed to notice ... 16:09:25 decathorpe: You should be able to edit the initial comment to either update the draft there or indicate that it's not current. 16:09:29 well filenames with different versions in them, that's just wrong 16:09:37 right, and it's probably very rare 16:09:55 but it's incorrect to assume the filename is the SONAME, or the filename and the first digit is the SONAME 16:09:59 that was the case for glibc until recently 16:10:15 libcrypt.so had SONAME for libcrypt-nss 16:10:17 or vice-versa 16:10:18 or something similar 16:10:22 wow 16:10:23 but yes, that's rare 16:10:57 ok, I've updated the issue text directly 16:11:00 and whether it's ok or not is for a different dicussion I guess 16:11:18 it's not Fedora's decision to make 16:11:27 imho 16:11:36 So I'm of two minds here. 16:12:05 On one hand, stricture here could have helped with several unannounced soname bumps just in the past several days. 16:12:22 On the other hand, I see no way to clearly state what people should and shouldn't do. 16:12:49 I liked what somebody said on the ticket 16:12:55 about requirement of rebuilds 16:13:05 (that was me) 16:13:12 I'm actually leaning towards inverting the sense of the guideline: 16:13:25 decathorpe: "What about something like: "don't use globs for file names or parts thereof, when a change in the matched part of the file name requires dependent packages to be rebuilt"?" 16:14:09 "Packagers SHOULD, if possible, structure the patterns in the %files section such that those patterns will need to be updated when the library version changes in such a way that rebuilds of other packages will be needed." 16:14:28 tibbs: I like that, if examples are given 16:14:28 that's at least not incorrect 16:14:48 Right, examples are the key. 16:15:12 But also a certain vagueness; attempting to specify how the globs should look just leads down a rabbit hole of sorrow and flames. 16:15:27 I would go with something which references the SONAME word 16:15:44 yes 16:15:48 we already have SONAME described in guidelines somewhere 16:15:52 Oh, and what about libraries which don't reflect the soname in the filename? 16:15:58 we even have examples how to create library with soname 16:16:30 tibbs: I don't think that's in the scope of this ticket ... one would have to use rpmabidiff(?) for that? 16:17:14 "Packagers SHOULD, if possible, structure the patterns in the %files section such that those patterns will need to be updated when the library changes in such a way that rebuilds of other packages will be needed (change of SONAME for instance)." 16:17:15 Well, the problem is that we're trying to prevent some specific effect (unannounced soname bumps). 16:18:11 And one important question (that doesn't necessarily need to be answered in the guideline) is: When is that not possible? 16:18:20 and this particular guideline will only prevent it in some cases, probably in the majority of them 16:18:35 upstream can always do nasty things 16:18:38 which is fine 16:18:40 I don't know enough to say, but the case of a library which doesn't reflect the soname in the filename would probably be one such case. 16:18:41 decathorpe: abipkgdiff 16:19:08 ignatenkobrian: right 16:19:10 I don't think we need to design it an a way that would prevent all cases 16:19:21 at least not now 16:19:24 It would probably be worth a sentence just after this guideline that suggests that people do run the relevant tool to look for such changes. 16:19:39 tibbs: nss just ships libnss3.so 16:20:00 that's the only example I can think of … but there are probably more 16:20:04 absolutely. I didn't know about abipkgdiff until recently. It should be mentioned in the Update Guidelines or somewhere 16:20:58 I honestly don't even know how how to see what the soversion of a library is. 16:21:09 we should not try to solve this problem entirely, we just can't 16:21:10 readelf -d libfoo.so | grep SONAME 16:21:23 we should just tell people to be very careful when update packages 16:21:32 ignatenkobrain: +1 16:22:12 ignatenkobrain: It might be cool if someone added something more usable … having both the old package and new one sucks a bit. 16:22:36 ignatenkobrain: I mean, I think we do … mostly. But automated checks better than telling people things :) 16:22:43 But SONAME of libnss3.so is just libnss3.so 16:22:50 Is ther no field that contais the version? 16:23:15 there's no such thing 16:23:22 tibbs: no 16:23:27 there is no such thing as version 16:23:28 the linker only cares about the SONAME 16:23:31 it's an opaque string 16:23:33 OK, so it's all more fail than I thought. 16:23:48 tibbs: They use symbol versioning … objdump -T 16:23:57 you could have a SONAME of "this_is_my_soname" and it would work fine 16:24:25 cmake's "soversion" is just a convention 16:24:54 So there's this thing which we try to conflate with a version and then conflate it again with a filename and we really hope that people will change it when somehow they're supposed to change it if they even realize that it needs to change. 16:24:58 I think we should make some agreement and move on 😉I almost liked tibbs' proposal 16:25:08 as I kept saying in the ticket, the filename is not the soname 16:25:27 they might be related, and usually are 16:25:44 but trying to define a guideline in terms of the filename along is not wise 16:25:50 s/along/alone/ 16:25:56 yeh, tibbs thing that says "make sure it blows up when deps. need to rebuild" is the least objectionable 16:26:17 Except that.... the filename is all we have here. 16:26:43 well, the only fail-safe way would be to run abipkgdiff? 16:27:06 Right, which we can of course mention. 16:27:10 yes, and I believe there are some automated checks which ru nit 16:27:18 or if we can define a macro with the provide and the automatic provides would compare it 16:27:23 in fedora? 16:27:27 but it doesn't stop people from breaking things 16:27:30 geppetto: yes 16:27:33 The automated checks only run _after_ you have done your rawhide build and broken everything. 16:27:50 ignatenkobrain: automated checks don't stop anyone. nobody reads the results, except maybe in bodhi 16:27:54 (well, even bodhi checks didn't prevent a faulty update to be pushed to f27) 16:27:58 tibbs: and thagt 16:27:58 tibbs: 👍 16:28:18 tibbs: that's true, but you still have time to untag it until it hit compose 😃 16:28:20 I'm sure we all recognize that this is just a small bandage on top of a larger problem. 16:28:39 yes 16:28:56 The people who will flame us for trying to put a solution in the guidelines will just ignore it anyway. 16:29:21 can we maybe proceed on the bandage at least, acknowledging it's only partial? 16:29:28 I don't think anyone would classify my suggestion as a "solution". But at least it would be something 16:29:36 Yes, so what do we do from here? 16:29:59 We have a couple of proposals, but mine was just tossed out there and isn't complete. 16:30:03 someone make a least worst proposal and we can all vote on it ? 16:30:04 we add examples to tibbs's propsal modified by ignatenkobrain? 16:30:12 I'm fine with that 16:30:14 "Packagers SHOULD, if possible, structure the patterns in the %files section such that those patterns will need to be updated when the library changes in such a way that rebuilds of other packages will be needed (change of SONAME for instance)." 16:30:36 Meh, +1 16:30:41 I can +1 that. 16:30:47 geppetto: But why "meh"? 16:31:14 +1 provided that examples are added 16:31:26 tibbs: As I said, I'm not a fan of this bandage … but it says should 16:31:28 +1 modulo examples 16:31:35 +1 with some examples 16:31:44 Certainly we can work on examples in the ticket if we accept the basic concept. 16:31:51 And maybe a wall of shame of packages that do this? ;) 16:31:57 tibbs: that's what I had in mind 16:31:58 +1 with some examples to tibbs' proposal modified by me :) 16:32:10 decathorpe: should be special wiki page 16:32:13 my suggestion's already in the ticket: Example: if the SONAME is libfoo.so.11 then %_libdir/libfoo.so.* SHOULD NOT be used, but %_libdir/libfoo.so.11{,.*} is OK. 16:32:15 and then give up a badges ;) 16:32:25 decathorpe: Well, if there is a basic detection script then I will add it to the set of reports that I do occasionally. 16:32:27 (although that's phrased as SHOULD NOT and the new suggestion inverts it) 16:32:46 Just send it to the misc-fedora-package-utilities repo. I'll give you commit access if you want. 16:32:53 #action forbid globs for shared libraries as it conceals sonames (+1:6, 0:0, -1:0) 16:33:05 I pushed the script to a pagure repo and linked to it in the ticket 16:33:17 #action Need examples added to the proposal voted on. 16:34:02 Well, OK, but it's easier for everyone if these things are in as few random repos as possible. 16:34:34 geppetto: so what's next? 16:34:36 on our radar 16:34:41 #topic #782 Forbid %{pythonX_site(lib|arch)}/* in %files 16:34:45 .fpc 782 16:34:45 geppetto: [showticket https://pagure.io/packaging-committee/issue/%s 782] 16:34:52 * limburgher here finally 16:34:56 #chair limburgher 16:34:56 Current chairs: decathorpe geppetto ignatenkobrain limburgher mhroncok redi tibbs 16:35:04 I guess zodbot broke that when they updated it recently. 16:35:14 https://pagure.io/packaging-committee/issue/782 16:36:14 mhroncok: what does you repoquery thing show? 16:36:45 geppetto: about ownling / ? 16:36:48 So last week we agreed to basically saying "MUST NOT own the toplevel __pycache__" 16:37:00 ahh 16:37:04 or about pycache? 16:37:32 yeh, the __pycache__ thing … but I see now 16:37:36 plenty of packages own pycache currently, I cannot do the qery now 16:37:38 I believe we have mostly fixed the fallout from %python_sitelib and _sitearch being empty. 16:37:56 tibbs: I found ~10 more, PRs open 16:38:07 will merge on Friday 16:38:44 Honestly we should just be fixing these. 16:39:05 61 binary packages currently own /usr/lib/python3.7/site-packages/__pycache__ 16:39:06 I just open PRs and say I'll merge them in 3 days 16:39:40 for those 61 packages, I'll try to invent a fixer script 16:39:42 Since they can possibly be breaking the distro, I've been fixing them as I notice them. 16:39:59 Another 22 packages own /usr/lib64/python3.7/site-packages/__pycache__ 16:40:03 * geppetto nods … AFAIK there isn't anything to discuss here, right? Just BZs/PRs to file? 16:40:18 Well, mhroncok indicated that he originally wanted other changes. 16:40:32 I believe a prohibition on using %{python2_sitelib}/* 16:40:37 yes 16:41:21 I don't want to fix all the packages with that, but I'd like to forbid it for the future ones 16:41:24 And I may try to restructure slightly so that the current restriction on owning __pycache__ isn't in the section on byte compilation. 16:41:42 it tends to get updated to %{python3_sitelib}/* and that often leads to the __pycache__ thing 16:42:10 Personally I'm just not sure that's a good reason to ban it. 16:42:53 it it dangerous in a similar way to the soname thing. random stuff keeps popping there 16:42:59 In most cases a ban wouldn't lead to much additional complexity in the %files section, I guess, but saying "It's not wrong, but it could lead to you doing something that's wrong in the future" isn't the greatest of reasons. 16:43:05 such as %{python2_sitelib}/tests 16:43:30 The soname thing leads to distro breakage, though. This... doesn't. 16:43:35 right 16:43:47 I'm ok if we say shouldn't 16:43:58 or that it's not necouraged 16:44:08 or something like that 16:44:14 So what would this look like? Need something concrete to vote on. 16:44:28 SHOULD NOT works for me as well 16:45:13 Packages should not list %{pythonX_sitelib}/* (and sitearch) in %files section, as it can easily lead to unnoticed errors. 16:45:48 I would do s/list/use/, but either way I'm +1 16:45:56 I can +1 that. 16:46:00 +1 from me too 16:46:14 and should not should be upper case ;) 16:46:16 A more specific globs are recommended, such as %{pythonX_sitelib}/modname*. 16:46:20 +1 16:46:39 +1 16:46:58 I'm +1 obviously 16:46:59 PythonX: For Xtreme Development 16:47:02 +1 16:47:19 But when writing this up, I would want to lift these restrictions up to either a separate section or merge with the "Files to include section". 16:47:38 And don't worry about case of should and must; I can fix that all up when doing writeups. 16:47:56 (whatever +1 even on that) 16:48:09 #action Recommend not listing %{pythonX_sitelib}/* (and sitearch) in files (+1:7, 0:0, -1:0) 16:48:40 #topic #719 Simplify packaging of forge-hosted projects 16:48:48 https://pagure.io/packaging-committee/issue/719 16:49:05 So tibbs had some confusion here, or stuff didn't work out? 16:49:17 No, the draft isn't up to date 16:49:35 and the submitter seems not responsive 16:49:38 I asked for an updated one two months ago 16:49:44 the PR on redhat-rpm-macros is stalled 16:49:59 I'm going to merge the PR today. 16:50:05 https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/24 16:50:06 Was going to do it yesterday but got distracted. 16:50:39 Note that I have actually used the forge macros in a couple of packages and... it's certainly much nicer than doing it all by hand. 16:51:17 Note that nim posted to fedora-devel just a few hours ago. 16:51:25 so what are we voting on? 16:51:26 yay! … success? improvements? :) 16:51:33 Nothing to vote on, I think. 16:51:45 Ok, with your update I wasn't sure if we needed to change something 16:51:48 I just tossed in a comment because I had actually used the thing and wanted to give feedback. 16:52:07 which I said I'd do weeks ago and never did 16:52:12 I will probably copy the stale draft and start hammering it into shape. 16:52:29 sounds good to me 16:52:32 ok 16:52:41 tibbs: that would be great, thank you 16:53:01 But I'm going to be away on vacation soon so I don't know how much progress I'll make in the near term. 16:53:16 But after using these things, they saved me time and so I like them. 16:53:22 * geppetto nods 16:53:38 Ok, then … 16:53:40 it's stalled for months, I don't think it's time sensitive 16:53:42 Too bad the vim specfile mode doesn't handle them. 16:53:46 #topic Open floor 16:54:02 There was one old ticket which never got tagged meeting for some reason. 16:54:18 https://pagure.io/packaging-committee/issue/703 16:54:27 Had a draft an everything, but has sat there for a year. 16:54:56 I'm leaning towards preferring upstream's name 16:55:17 I'm leaning towards lowercase 16:55:18 Should definitely be lower case except for specific things. 16:55:40 Where the specific thing is basically Perl because we've always done it that way. 16:55:45 exactly. I mean for example Flask is uppercase on pypi, yet I'd prefer python-flask over python-Flask 16:55:58 The case contributes nothing useful except to make it harder to type when you're typing. 16:56:06 exactly 16:56:21 and I think more people would try lowercase if they cannot find CamelCase 16:56:24 Since packages with differing case can't coexist anyway, there is absolutely zero benefit. 16:56:27 sudo dnf repoquery --qf="%{NAME}\n" | grep "[[:upper:]]" | wc -l 18:56:08 16:56:27 than the other way around 16:56:27 Last metadata expiration check: 2:05:16 ago on Thu 26 Jul 2018 04:50:58 PM CEST. 16:56:28 I think if upstream is Upper the fedora pkg should be "upper" but if it's UPper or UPPer UpPer the package can use that 16:56:28 5053 16:57:01 ignatenkobrain: grep -v perl 16:57:18 In any case, note that the whole "Package names should be in lower case" is already there; I just failed to drop the second part when I wrote this up ages ago for whatever dumb reason. 16:57:51 sudo dnf repoquery --qf="%{NAME}\n" | grep "[[:upper:]]" | grep -v perl | wc -l 18:56:15 16:57:52 Last metadata expiration check: 2:06:46 ago on Thu 26 Jul 2018 04:50:58 PM CEST. 16:57:53 2028 16:57:54 mhroncok: ^ 16:58:07 ignatenkobrain: thanks. still a lot 16:58:16 why don't we just make dnf to be case-insensitive instead? ;) 16:58:22 I don't think anyone is talking about mass-renaming these things. 16:58:36 ignatenkobrain: it would be nice 16:58:38 If dnf is case insensitive then great, we should definitely force the actual package name to lower case then. 16:59:13 dnf being ci would also produce a lot of inconsistency in requires specs 16:59:29 somebody would use the actaul package name, somebody lowercase 16:59:50 Not really, no. 17:00:14 You make the dnf command line be case insensitive, not the dependency resolver. 17:00:17 we'd need more guidelines for that 17:00:23 tibbs: oh, ok 17:00:32 that'll be nice 17:00:40 and wouldn't need a change from our part 17:00:42 I guess 17:01:03 But anyway, we have the dnf we have, and we still have this bad contradiction in the guidelines. 17:01:26 we'd need dnf to reject packages that are the same name but differ in case only … if it did that I'd happily +1 17:01:58 ok, what are we voting? that we say lowercase and be done with it? 17:02:19 what would be the exceptions? 17:02:23 Well we already do say lowercase, but we do it in a confusing way. 17:02:27 I think so … that's generally been best practice forever … but there were a few outliers 17:02:29 what zbyszek says - +1 17:02:50 I could draft a more comprehensive change if folks would like that. 17:02:54 sure 17:03:03 we are technically over 17:03:19 My penance for not fixing this properly back when we first agreed on "just use lower case". 17:03:35 #action tibbs will draft a more comprehensive change to say "use lowercase" 17:03:58 and we vote on that once ready, right? 17:04:06 yeh 17:04:08 #undo 17:04:08 Removing item from minutes: ACTION by geppetto at 17:03:35 : tibbs will draft a more comprehensive change to say "use lowercase" 17:04:25 #action tibbs will draft a more comprehensive change to say "use lowercase" for 703 17:04:59 Ok, unless anyone really needs to talk about something else I'll end the meeting at 5 past. 17:05:30 I'm pretty much done. There are some other tickets tagged as meeting; I will either ping them, untag them or just close them. 17:05:46 #endmeeting