17:00:58 #startmeeting fpc 17:00:58 Meeting started Wed Aug 9 17:00:58 2017 UTC. The chair is geppetto. Information about MeetBot at http://wiki.debian.org/MeetBot. 17:00:58 Useful Commands: #action #agreed #halp #info #idea #link #topic. 17:00:58 The meeting name has been set to 'fpc' 17:00:58 #meetingname fpc 17:00:58 #topic Roll Call 17:00:58 The meeting name has been set to 'fpc' 17:01:12 #chair orionp 17:01:12 Current chairs: geppetto orionp 17:01:12 * limburgher oh captain my captain 17:01:16 #chair limburgher 17:01:16 Current chairs: geppetto limburgher orionp 17:01:48 ignatenkobrain: hopefully meeting starting soon 17:02:03 uhh, wasn't it supposed to be on Thursday? =( 17:02:16 ignatenkobrain: no … this week it's on Wed. 17:02:33 ohh 17:02:50 * ignatenkobrain is in rush to update Rust guidelines while you are discussing other stuff 17:03:49 Hi 17:04:01 #chair mbooth 17:04:01 Current chairs: geppetto limburgher mbooth orionp 17:06:50 Oof, these weds meetings are not in the habit of achieving quorum so you may have more time than you think to write those guidelines, ignatenkobrain :-( 17:07:24 Yeh, summer has been bad too though … lots of holidays 17:09:14 On the bright side, my salad was lovely. #nonsequitor 17:09:35 What kind? 17:09:38 hi sorry 17:09:42 #chair Rathann 17:09:42 Current chairs: Rathann geppetto limburgher mbooth orionp 17:10:09 Woo, and then there were 5! 17:10:45 Spinach, goat cheese, kalamata olives, black beans, edamame, more spinach, and asian sesame dressing. 17:10:50 #topic Schedule 17:10:51 https://lists.fedoraproject.org/archives/list/packaging@lists.fedoraproject.org/message/NDA6IG5WZYIYZTTC77FUKYDXPF6MWHDT/ 17:11:20 limburgher: My wife would probably like that … me, not so much 17:11:39 blurgh, olives 17:11:49 #topic #697 simplify github urls 17:11:49 Poison for mbooths 17:11:50 lol 17:11:53 .fpc 697 17:11:56 geppetto: Issue #697: simplify github urls - packaging-committee - Pagure - https://pagure.io/packaging-committee/issue/697 17:12:08 * geppetto agrees with mbooth 17:12:44 * Pharaoh_Atem waves 17:12:46 ignatenkobrain: hello 17:12:53 I already +1'd this on the ticket 17:13:13 I haven't. 17:13:18 Until now. +1 17:14:04 +1 , but need to remove the line "Note that the numeric identifier after commit, gittag and shortcommit matches the associated identifier of the Source0: tag. " 17:14:27 This is just removing the # from the name because github supports it directly now? 17:15:00 Yeh, most of the changes here appear to be for the commit0 => commit change. Sigh. 17:15:02 well, if you do github.com/foo/archive/version/foo-version.tar.gz, it gives the tarball 17:15:04 geppetto: Yeah, github got saner 17:15:12 About time. 17:15:18 I'm +1 17:16:07 the meat is the simplified github url. But lots of commit0 -> commit as well (which is nice) 17:16:53 Though commit0 had a nice rubber-monstery feel to it. 17:17:10 +1 17:18:30 #action simplify github urls (+1:5, 0:0, -1:0) 17:18:57 #topic #698 Forbid the use of /usr/bin/python 17:19:05 .fpc 698 17:19:08 geppetto: Issue #698: Forbid the use of /usr/bin/python - packaging-committee - Pagure - https://pagure.io/packaging-committee/issue/698 17:20:13 Seems straightforward. 17:20:39 yeh, do we really need this yet? 17:21:00 What's upstream say about python … I thought it was still python == python2 17:21:06 it's always good to be prepared in advance, isn't it? 17:21:20 Given the typical lag between guideline and implementation, yes, do it now. 17:22:30 ignatenkobrain: are upstream planning on changing it soon? 17:22:43 geppetto: IIRC 2019 or 2020 17:22:48 but I didn't reember exact year 17:22:58 * geppetto nods … fair enough 17:23:10 but given how much time it took to add python3 subpackages... 17:23:11 I guess I'm +1 17:23:11 Sooner than widespread fusion energy. 17:23:21 +1 also if that wasn't clear. 17:23:25 one thing which I should mention here 17:23:37 is probably one should implement something like %chshebang 17:23:51 because sed copied over packages is nice, but everyone does their own stuff 17:24:21 moreover, if we want, we can even make some automation of this through brp scripts.. 17:24:35 but that's "implementation details" 17:24:45 +1 17:25:06 Therein lie devils. 17:25:07 +1 - i think with the orginal text 17:25:29 Yeh, if anything I'd prefer a %_foo bar.py … which changes the #! line. 17:26:09 +1 sounds okay to me 17:26:28 Also happy to deal with env in a different ticket 17:26:54 %conform_to_guidelines would be awesome. 17:27:11 limburgher: yeah, full spec file should look like that ;) 17:27:46 then %unbundle_all_the_things and %remove_bugs and we're golden. 17:28:04 ha 17:28:38 Folks, sorry, I've been on vacation the past two meeting times. 17:29:01 don't be sorry, everyone needs vacation 17:29:07 welcome back 17:29:08 #chair tibbs 17:29:08 Current chairs: Rathann geppetto limburgher mbooth orionp tibbs 17:29:37 I think we're at +5 for this … did you want to loo at it tibbs or just move on? 17:30:06 No, that's fine. I will read the log later. 17:30:08 geppetto: Eeeeew 17:30:43 #action Forbid the use of /usr/bin/python (+1:5, 0:0, -1:0) 17:30:53 #topic #700 Globally ban use of /usr/bin/env in executables 17:30:56 .fpc 700 17:30:58 geppetto: Issue #700: Globally ban use of /usr/bin/env in executables - packaging-committee - Pagure - https://pagure.io/packaging-committee/issue/700 17:31:11 I thought we'd already done this! 17:31:24 I had too. 17:31:50 But if it's actually in there somewhere I wasn't successful in finding it. 17:32:14 * geppetto nods … well. +1 17:32:54 orionp had a point about the second bullet point 17:33:27 True. 17:33:50 I would move it into the paragraph above 17:33:50 could just remove "rules". 17:34:24 Not entirely sure what I was trying to communicate there. 17:34:25 also we should exempt templates from the rule like vondruch and churchyard wrote 17:34:50 but I guess they fall under "not executables" 17:34:53 Are templates installed as executables? 17:35:00 so might not need a specific mention 17:35:12 Not sure what they mean by templates, really. 17:35:52 Like examples that ship with docs, I suppose 17:36:07 those should be chmod -x anyway 17:36:10 I'd hope that wouldn't be executable. 17:36:17 * geppetto nods 17:36:23 yes, docs shouldn't be executable 17:36:23 so RPM will not pick dependencies for them 17:36:37 Sure, but that's what I understood by their use of "templates" 17:36:43 Although I don't actually mind if examples don't show ppl to use env 17:36:56 even if file is a %doc, we still generate deps for its shebang and such... there is bugzilla somewhere to make those deps as recommends or such, but we still didn't got to the point of discussing it 17:37:12 Sure, for your own code it's fine. For system-packaged executables.... 17:37:26 ln -s /bin/false ~/bin/python and see what breaks... 17:37:49 ;) 17:38:05 * Rathann guesses a lot 17:38:45 Part of the problem is that this seems so completely obvious to me that you wouldn't want some system-pacakged thing to break because you put something in your personal path. 17:38:46 Anyway, I'm +1 to the proposal 17:39:23 So I'll remove the second bullet point entirely. I'm not sure why I put that there. 17:39:30 +1, env can DIAF 17:39:54 ok, the rest looks good to me, +1 17:40:45 +1 17:40:45 Ok, I think that's +5 … just orionp not voted, yet 17:40:53 and there we go 17:41:00 I'm obviously +1 in any case 17:41:13 #action Forbid the use of /usr/bin/python (+1:5, 0:0, -1:0) 17:41:17 There was a comment that there should be a macro to fix this. 17:41:26 yup 17:41:35 #topic #705 Rust Packaging Guidelines 17:41:40 Pharaoh_Atem: ^ 17:41:47 There are probably a thousand little things we could have macros for fixing. 17:41:48 #undo 17:41:48 Removing item from minutes: 17:41:51 #undo 17:41:51 Removing item from minutes: ACTION by geppetto at 17:41:13 : Forbid the use of /usr/bin/python (+1:5, 0:0, -1:0) 17:42:00 #action Forbid the use of /usr/bin/python (+1:6, 0:0, -1:0) 17:42:06 #topic #705 Rust Packaging Guidelines 17:42:19 .fpc 705 17:42:20 geppetto: Issue #705: Rust Packaging Guidelines - packaging-committee - Pagure - https://pagure.io/packaging-committee/issue/705 17:42:23 ignatenkobrain: You ready? 17:42:31 yeah, I feel this will be hot and long discussion 17:42:51 ignatenkobrain: I finished writing the first round of revisions 17:42:52 probably we will not be able to merge them on this meeting, but we would love to hear feedback 17:42:58 it should be a little bit more comprehensible now 17:44:56 on a side note, RPM implementation of with/without rich dependencies is landing today/tomorrow (libsolv already has everything in) 17:44:56 Are the "# [dependencies]" and "# [dev-dependencies]" intended to be mandatory? 17:45:06 tibbs: nope, but useful to see 17:45:15 from where deps is coming from Cargo.toml 17:45:24 nowadays, rust2rpm generates all this 17:45:53 we are successfully built ~150 libraries and ~4 applications using these spec files 17:46:05 https://pagure.io/fedora-rust/playground 17:46:24 https://copr.fedorainfracloud.org/coprs/g/rust/playground/monitor/ 17:46:25 The first line should be s/can not/MUST not/ ? 17:46:55 ignatenkobrain: As in … not from crates.io … MUST NOT use these 17:47:03 "Packagers MUST NOT package crates which do not work with distribution." 17:47:10 What does that actually mean? 17:47:11 geppetto: ack 17:47:26 tibbs: this should technically be which do not work with OS 17:47:26 tibbs: like windows-only / nightly-only / bsd-only dependencies 17:47:34 there are non-Linux crates, for example 17:47:39 * Pharaoh_Atem goes to reword 17:47:50 it is possible to package them, but they are completely useless 17:48:08 s/should become to/should become/ 17:49:01 Rathann: ack 17:49:16 ignatenkobrain: Is rust_arches macro used anywhere apart from setting exclusivearch? 17:49:16 s/SHOULD try to/SHOULD/g 17:49:29 geppetto: only ExclusiveArch 17:49:34 so far at least 17:49:55 'for each "feature" crate provides' -> 'for each "feature" the crate provides' 17:50:07 Hmm, just wondering if it's better to have the public macro one that does the exclusivearch and the value 17:50:23 Pharaoh_Atem, ignatenkobrain, I think the "work with distribution" part is covered by the review guidelines 17:50:33 Nod. 17:50:37 which say the package should work as advertised 17:50:55 Rathann: in this case I think we should keep section but reference to main guidelines 17:51:04 because example is useful there 17:51:12 and also 17:51:18 Rathann: I just fleshed out that sentence a bit 17:51:26 so hopefully it's more obvious and Rust specific 17:51:30 people are expected to rip such crates from Cargo.toml for now 17:52:27 hm interesting 17:52:44 there's no way to specify platform-specific or weak dependencies? 17:52:50 I mean in .toml 17:53:00 there are ways to do platform-specific 17:53:04 but no concept of weak 17:53:13 ok 17:53:14 are there going to be multiple versions of crates in a release? 17:53:22 but we were not able to automate parsing that platform-specific things so far 17:53:28 because the example patch simply deletes windows deps from .toml file 17:53:28 but that's planned in future 17:53:33 and that's not upstreamable 17:53:34 orionp: yes, but hopefully not much 17:53:51 so a better example would show how to do platform-specific deps 17:53:55 orionp: so far we have only 2 crates with 2 different versions 17:54:01 Rathann: agreed, will prepare better example 17:54:02 such patch could be sent upstream 17:54:08 thank you :) 17:54:40 others notes fixed 17:54:47 s/others/other/ 17:55:11 of that's the kind of spec that rust2rpm generates then I'm quite happy with the result 17:55:17 s/of/if/ 17:55:18 yeah 17:55:22 we spent a lot of time tuning it 17:55:29 Rathann: yep, that's what it does ;) 17:55:35 excellent job 17:55:36 we wanted to be automated-first, and fall back to manual only when needed 17:55:40 Seconded. 17:55:40 Pharaoh_Atem++ 17:55:44 s/packagers MUST forward these upstream/SHOULD/ … opinions? 17:56:03 SHOULD. Allows for dead upstreams for useful crates. 17:56:03 I think that if we're just fixing it to work with latest versions of crates, we MUST forward 17:56:06 geppetto: yeah, was asking Pharaoh_Atem to do this ;) 17:56:08 ah 17:56:11 okay, didn't think of that 17:56:13 downgrading now 17:56:37 downgraded 17:56:59 Rathann: main problem with parsing platform-specific stuff is that either we need to write our own parser or we should rewrite rust2rpm in rust... 17:57:08 so far we didn't have time to do any of those 17:57:15 I'm sort of loathed to do either 17:57:21 no opinions about the extraneous "try to" in https://fedoraproject.org/wiki/PackagingDrafts/Rust#Versions section? 17:57:27 * ignatenkobrain has been busy with work on upstream RPM and stuff like that 17:57:47 especially since the stuff isn't fully stabilized in cargo yet 17:57:56 Rathann: yeah, I think SHOULD implies "try to" 17:58:00 so I think we should remove it 17:58:08 What iganenkobrain said. 17:58:14 fixing 17:58:19 fixed 17:58:37 :D 17:58:56 is the "with" dep syntax documented somewhere? 17:59:16 there's an RFC I wrote about it... 17:59:17 one sec 17:59:27 I don't quite understand how Requires: ((crate(syn) >= 0.11.0 with crate(syn) < 0.12.0) with crate(syn/visit)) is different from 17:59:30 Rathann: we will document it in RPM release notes. 17:59:46 Requires: (crate(syn) >= 0.11.0 with crate(syn) < 0.12.0) 17:59:48 Rathann: http://lists.rpm.org/pipermail/rpm-ecosystem/2017-February/000471.html 17:59:49 Requires: crate(syn/visit 17:59:54 Rathann: it matches against one dependency 18:00:03 there will be formal documentation with the 4.14 release, but that gives you a good idea of what it does 18:00:18 basically one package must satisfy all conditions 18:00:27 ^ 18:00:31 Rathann: I've found one upstream bug due to this btw 18:00:45 the use of "with" is not intuitive here, "and" would be much more appropriate 18:00:56 unfortunately, and means something different =( 18:01:05 Question for those less Rust-ignorant than myself: What does Rust do in lieu of ldconfig? 18:01:05 *sigh* 18:01:21 limburgher: it doesn't ;) until you do dynamic libs 18:01:25 which we don't do so far 18:01:27 nothing right now 18:01:30 we don't have dylibs 18:01:35 Rathann: and was already taken 18:01:50 I'm not sure either is more obvious about it's special feature 18:01:51 Rathann: I wish we could have used "and", but :( 18:01:56 Eew. K, thanks. 18:02:04 :) 18:02:18 there's a *long* discussion about getting the rust ABI stabilized so we can switch to dylibs 18:02:18 otoh it makes sense in terms of `Requires: (kernel with flavor = desktop)` 18:02:29 in that case I wouldn't put `and` there ;) 18:02:54 ok, got it 18:02:56 thanks 18:03:00 So if there are no dynamic libraries, how do you ensure rebuilds are done? 18:03:17 Ocaml packaging ensures this through dependencies somehow. 18:03:23 we don't have fanciness, so I guess we're going to just do it like the poor guys who do Boost :/ 18:03:38 tibbs: well... ;) same as with golang packages... we have ticket to get somehow information what was used to build binary 18:03:41 Boost and Go 18:03:45 but so far it seems it requires Rust RFC 18:03:57 Well, go still has no packaging guidelines. 18:04:11 once I will get free'd a bit, I will write upstream Rust RFC to put this information somewhere in binary 18:04:38 tibbs: we're trying to avoid the mistakes of golang :) 18:04:55 I maintain a huge Go package and I want everything I have to do there not a thing here :) 18:04:56 tibbs: true :) so for now, people have to rebuild stuff as they find it. I will try to make some additional deps asap 18:05:12 https://pagure.io/fedora-rust/rust2rpm/issue/39 18:05:24 we probably want some kind of "rust-gather" script to triggger properly ordered rebuilds, since Koji can't do it 18:06:27 I'm not suggesting it's something that can be fixed with packaging guidelines anyway. I honestly don't know if the ocaml dependencies actually enforce rebilds or if they just facilitate some other mechanism which does it. 18:06:43 afaik, rwmjones just gathers them and does it 18:07:03 I think the ghc guys do something similar 18:07:29 hm how about requiring all rust libraries to provide %{name}-static, too, because that's what they are right now, static libs 18:07:31 ? 18:07:31 Would be nice if we could find some generic method that can be used to standardize. 18:08:08 ah maybe not 18:08:12 Pharaoh_Atem: Sadly rwmjones, though awesome, only scales so far. :) 18:08:14 Rathann: well, those are sources.. I remember that we do it that way with headers.. but I never understood it. 18:08:25 I just noticed that devel subpackages are noarch 18:08:33 limburgher: I know, it's why I keep begging for some OBS-like auto-rebuilding power in the Fedora buildsystem 18:09:02 just updating the compiler triggers a targeted rebuild, fixing everything :) 18:09:19 tibbs: in modularity Fedora, this will not be a problem, everything will be rebuilt automatically btw 18:09:29 ignatenkobrain: I don't have high hopes for that 18:09:31 but that's unrelated ;) 18:09:34 still, I'd like to see a note somewhere that there's not support for dylibs for now and the libraries must be treated as header-only static libs 18:09:59 Pharaoh_Atem: ^ could you make a note about this 18:10:04 sure 18:10:05 though I was mentioning this one day :D 18:10:48 Rathann: YES 18:11:23 Anyway, I think what's there is certainly reasonable. 18:11:33 hm why are some BuildRequires: under # [dependencies] and some under # [build-dependencies] ? 18:12:04 aren't they all build dependencies? 18:12:23 Rathann: #[dependencies] is something what used to build package, #[build-dependencies] is something what used to do "pre-build" steps 18:12:30 and # [dev-dependencies] 18:12:46 and dev-deps is just test deps 18:12:53 Rathann: it's all poorly named in Cargo 18:12:57 ok 18:13:01 basically, they all map to BuildRequires 18:13:06 http://doc.crates.io/specifying-dependencies.html 18:13:09 The terminology is basically something that won't make much sense once they have actual runtime dependencies. 18:13:12 I see 18:13:15 ignatenkobrain: notes added 18:13:17 But, well, that's their mistake. 18:13:37 yep 18:13:41 nothing we can do about it for now 18:13:49 and one of the reasons I'm loathed to have our own parser for this 18:14:00 I think they'll wind up significantly reworking this in the future 18:14:07 ok, I'm +1 to the current version 18:14:25 +1 18:14:41 +1 18:14:48 +1 18:14:52 :D 18:15:01 +1 18:15:03 one thing I slightly dislike is the use of %{summary} as %description of subpackages 18:15:11 #petpeeve 18:15:19 Usually %{summary}. :) 18:15:40 Rathann: probably I have to explicitly mention one thing here ;) `with` is new richop which are currently banned in fedora due to rel-eng tools are not supporting those. But I'm pushing hard and offering any help to rel-eng to start supporting them. And looks like it is going to be ready within F27 timeline. 18:15:40 I personally don't like it either, but afaik, long descriptions aren't a thing in Cargo 18:15:56 Pharaoh_Atem: Cargo has only long description ;) 18:16:03 so it doesn't have summary 18:16:18 Implement %{tldr} 18:16:33 Rathann: I usually put `%{summary}.` if description is same as summary 18:16:43 otherwise description has more info than summary 18:16:46 ok 18:17:09 e.g. check "Binary" section 18:17:15 ignatenkobrain: How bad is it if with is changed to and? 18:17:35 geppetto: see ML link I posted earlier :) 18:17:39 geppetto: it will just pull random packages into buildroot ;) 18:17:46 ^ 18:17:50 ahh 18:18:01 that's the whole point of new richop we were working on ;) 18:18:07 * geppetto nods 18:18:20 just wondered if it was a corner case thing, or a nothing works thing 18:18:28 it's a nothing works thing 18:18:40 geppetto: it's not corner case, but very very common ;) 18:18:53 other people have hit it (nodejs, ruby, php, etc.) 18:18:58 but we hit it *all* the time 18:19:01 maintainers of every ecosystem were reporting bugs on this ;) 18:19:09 ok 18:19:21 actually, we were talking about this one day with Rathann here about it =) 18:19:56 mbooth: I think you're the only one that hasn't voted 18:20:06 geppetto: +1 as well 18:20:33 #action Rust Packaging Guidelines (+1:6, 0:0, -1:0) 18:20:37 so the only note from me here is how are we going to handle allowance of rich deps ;) 18:20:55 #topic Open Floor 18:21:11 Ok, we are over time by 20mins … so anyone have anything they need to talk about today? 18:21:18 not really =) 18:21:39 Not I said the duck. 18:21:43 I had something but I forgot what it was 18:21:53 * geppetto hands the duck a comma 18:21:58 something I wanted to mention to orionp specifically 18:22:01 ... :( 18:22:39 have to run.. thank you a lot for feedback! 18:22:40 * limburgher is grateful 18:22:42 I'm around a few more hours if it comes to you... 18:23:02 (and obviously for your time spent) 18:23:17 ignatenkobrain: No problem 18:23:25 I've got to go myself 18:23:33 Ok, I'm going to close anyway 18:23:42 but thanks for looking it over 18:23:42 thanks everyone 18:23:43 Thanks for the work on the guidelines 18:23:46 Thanks all! 18:24:12 #endmeeting