21:00:01 #startmeeting Rust SIG (2017-03-01) 21:00:01 Meeting started Wed Mar 1 21:00:01 2017 UTC. The chair is ignatenkobrain. Information about MeetBot at http://wiki.debian.org/MeetBot. 21:00:01 Useful Commands: #action #agreed #halp #info #idea #link #topic. 21:00:01 The meeting name has been set to 'rust_sig_(2017-03-01)' 21:00:05 #meetingname rust-sig 21:00:05 The meeting name has been set to 'rust-sig' 21:00:08 #chair ignatenkobrain jistone 21:00:08 Current chairs: ignatenkobrain jistone 21:00:11 #topic Agenda 21:00:14 #link https://docs.pagure.org/fedora-rust.sig/meetings/2017-03-01.html 21:00:17 #info (1) Roll Call 21:00:21 #info (2) Current state of affairs 21:00:23 #info (3) Packaging Guidelines 21:00:26 #info (4) Integration of system registry 21:00:29 #info (5) Open Floor 21:00:32 #topic Roll Call 21:00:36 .hello ignatenkobrain 21:00:36 .hello ngompa 21:00:37 ignatenkobrain: ignatenkobrain 'Igor Gnatenko' 21:00:40 Pharaoh_Atem: ngompa 'Neal Gompa' 21:00:49 .hello jistone 21:00:50 jistone: jistone 'Josh Stone' 21:01:13 mich181189: are you around? :) 21:01:18 Akien: you here? 21:01:25 * jwf idles in the back :) 21:01:30 .hello 21:01:30 Akien: (hello ) -- Alias for "hellomynameis $1". 21:01:34 .hello jflory7 21:01:35 jwf: jflory7 'Justin W. Flory' 21:01:35 (half there) 21:01:37 .hello akien 21:01:41 Akien: akien 'RĂ©mi Verschelde' 21:02:06 .hello msehnout 21:02:08 msehnout: msehnout 'Martin Sehnoutka' 21:02:11 hi msehnout 21:02:11 hey! 21:02:22 hi msehnout, mich181189! 21:02:39 #topic Current state of affairs 21:02:44 #info 80 SRPMs, 91 RPMs: rustfilt, ripgrep, rustfmt are packaged 21:02:47 #info Migrated from COPR to fedorapeople.org due to mock limitations 21:02:51 #link https://fedorapeople.org/groups/rust 21:02:56 #info mich181189 has implemented dual-bootstrap feature to support using non-system RPM 21:02:59 #link https://github.com/rpm-software-management/mock/pull/51 21:03:08 yay! 21:03:15 ignatenkobrain is a packaging machine! 21:03:22 mich181189++ too 21:03:22 jistone: Karma for mich181189 changed to 2 (for the f25 release cycle): https://badges.fedoraproject.org/tags/cookie/any 21:03:32 ignatenkobrain++ 21:03:32 Conan_Kudo: Karma for ignatenkobrain changed to 19 (for the f25 release cycle): https://badges.fedoraproject.org/tags/cookie/any 21:04:08 I've talked to clime and we can try patched mock with COPR next week 21:04:15 awesome 21:04:18 ah great! 21:04:43 so if it works fine and msuchy merges stuff, then in couple of weeks we can switch back to COPR 21:04:52 What exactly is the problem with mock? 21:04:58 remind me, what's the timeline for getting the necessary rpm/dnf/etc changes into Fedora proper? 21:05:04 mock fundamentally relies on system rpm/dnf 21:05:08 jistone: F27 21:05:14 which causes problems when attempting to rely on new functionality 21:05:28 msehnout: rust packages use the "with" rich dependency 21:05:28 jistone: RPM 4.14 will support all necessary stuff for us 21:05:47 ok thanks for clarifying 21:05:48 s/will/should (I expect to)/ 21:05:58 on the Mageia side, if there won't be backports to RPM 4.13 supported by Fedora, I expect that Fedora 27 and Mageia 7 will line up on this front 21:05:58 and 4.14 is planned for F27 21:06:25 jistone: but I'll be maintaining backported patches for F24+ 21:06:27 and even if there were, we have our legacy package manager as a noose around our necks 21:06:48 so Mageia 7 will be the earliest on our front, as I hope I can get us to fully move to DNF for MGA7 21:06:53 so even we can't get it in fedora for those releases, we can support it meanwhile in COPR 21:07:01 ignatenkobrain, is it too intrusive to backport officially? 21:07:17 jistone: problem is fedora infra mostly 21:07:34 pungi needs its new dnf based resolver merged 21:07:35 while it is possible to backport RPM features, infra can't be changed for stable releases 21:07:41 and koji needs to be ported to DNF 21:07:53 Pharaoh_Atem: all this is planned for F27 21:07:56 yep 21:08:04 and that will line up nicely for Mageia 7, too 21:08:07 ok 21:08:30 and one thing which should be outcome from today's meeting is me understanding what to tell relengs 21:08:54 I promised that I will describe everything what we will need for F27 21:09:23 well, the mock thing is coming Real Soon Now(TM), so there's that 21:09:45 pungi just needs a final pass to make sure it's richdep compatible, then it can be merged in and supported 21:10:13 mash is "officially" going to be dead, since the "final version" of the signed repos stuff is awaiting final review for koji 21:10:32 so after that is merged, the priority should be making it possible for Koji to use DNF instead of Yum 21:10:56 the ARM and Live Media composes are already using DNF 21:11:35 though livecd-tools and Anaconda need to be checked over to be richdep compatible 21:11:42 Pharao_Atem: what's missing there? Is it just koji stuff, or are there DNF features missing that koji would need? 21:12:01 mich181189: Koji uses createrepo and Yum to parse and generate information about RPMs, as well as create repodata 21:12:35 Koji will crash if it attempts to process rich deps on Requires and Recommends (and maybe Suggests, too) 21:12:43 because Yum crashes when it encounters them there 21:12:48 tl;dr koji contains a lot of `import yum` inside :P 21:12:55 aha ok 21:13:09 but let's move to next topic 21:13:11 #topic Packaging Guidelines 21:13:16 #link https://pagure.io/fedora-rust/sig/issue/5 21:15:39 thoughts on this? what should I mention? 21:15:58 do we anticipate the "target(windows)" patching to be a long-term requirement? 21:16:10 I'd hope we'd eventually do away with that 21:17:07 jistone: someone has to write that tokenizer and automagically strip stuff from Requires 21:17:12 should the whole not making dynamic libraries thing be mentioned? 21:17:15 probably I will do that over next week 21:17:47 it probably should be... 21:17:51 mich181189, probably... 21:18:03 it's not a default policy thing, so it's probably quite important to mention 21:18:14 it's sort of implicit already, because you'll be missing deps if you try to link libstd dynamically 21:18:23 (they are filtered from Provides) 21:18:38 if nothing else the guidelines would be a good place to explain the policy 21:18:41 cdylib is fine though 21:18:48 so number80 doesn't like the idea of giving Rust SIG only an exception for the SPDX thing 21:19:04 Pharaoh_Atem: I don't like exceptions either 21:19:04 which I agree, I would actually prefer if we were generally allowed to start using SPDX 21:19:08 and that we could just be first :) 21:20:11 jistone: cdylib? 21:20:21 how do we package that? 21:20:24 *.so made for ffi use 21:20:31 I don't know if we package that yet... 21:20:48 doesn't that mean we need to take special care when doing the dep generation for that? 21:20:58 Do we package librsvg? 21:21:18 we do 21:21:22 librsvg is simpler, cargo builds as a staticlib, then that's linked into the full librsvg.so 21:21:22 msehnout: I suppose that we do and I guess that tere are a lot of bundled stuff 21:21:34 iirc 21:21:38 librsvg is already in the distro, though 21:21:47 it's just going to start pulling in cargo+rust 21:21:51 for build 21:22:00 I'd imagine the fact it would make the package archful rather than noarch is a bigger headache than deps... 21:22:03 yes, it was just the only library that came to my mind 21:22:36 so for cdylib I would just mention that we just don't support it for now 21:22:39 2.41 added rust, looks like it was attempted once: https://koji.fedoraproject.org/koji/packageinfo?packageID=274 21:23:35 I don't see build logs, but they probably need to vendor dependencies for now 21:23:54 I don't see a problem with cdylib in theory - just need to work out the details of how :-) 21:24:01 yeah 21:24:17 so far I didn't got into that point, so.. 21:24:44 I don't even know of any cdylib crates yet 21:24:50 just something we should expect eventually 21:25:07 jistone: once we will encounter, we can take a look 21:25:31 makes sense. If I get really bored I might try writing a dummy one to play with 21:25:57 okay, anything else to mention in guidelines? 21:26:17 do we have like some kind of generic example template for guidelining with? 21:26:25 like how we do for Python, et al 21:26:29 Pharaoh_Atem: yes, look in the code :D 21:26:33 * ignatenkobrain is joking 21:26:40 heh 21:26:43 let me find 21:27:04 basically, for the published guidelines, having examples of a "library" and a "program" help quite a bit 21:27:06 do we expect folks to always use rust2rpm? or just suggest this 21:27:20 like the golang guys, we will strongly recommend rust2rpm 21:27:38 https://pagure.io/fedora-rust/playground/blob/master/f/serde/rust-serde.spec 21:27:41 but some people are automation haters, so we should give them the ability to work themselves to the bone :) 21:28:11 jistone: I would like to force people to use rust2rpm 21:28:32 because writing those version range dependencies 21:28:35 once they've worked themselves to the bone on doing it by hand, they'll eagerly use rust2rpm :) 21:28:35 with "features" 21:28:41 it's just too much time-consuming 21:29:01 cdylib might be a case that makes more sense to do by hand 21:29:11 for example, 21:29:12 BuildRequires: ((crate(syn) >= 0.11.0 with crate(syn) < 0.12.0) with crate(syn/visit)) 21:29:17 even then it might be a good starting point 21:29:38 I don't think it matters what people use as long as the output is the same. 21:30:05 mich181189: what scares me more is that people will tend to omit versions 21:30:12 in (Build)Requires 21:30:16 yeah 21:30:18 which will lead always to problems 21:30:18 I think most people love automation when it comes to RPM packaging :-D 21:30:29 msehnout: RemiFedora doesn't 21:30:45 he doesn't even like the concept of dependency generators for php stuff :( 21:30:47 * ignatenkobrain never uses any automation tools for packaging apart from rust2rpm 21:30:59 Pharaoh_Atem, ok that's the first one I know about 21:31:10 because all of them generate useless specfile 21:31:21 gofed and rust2rpm are the only two I use 21:31:24 ignatenkobrain: hmm. Sounds like a guideline should be versions should be done this way then! 21:31:27 ignatenkobrain, :-) 21:31:27 gofed because... golang is insane 21:31:34 and rust2rpm because it actually works 21:31:48 Pharaoh_Atem: gofed produces 300 lines for simple thing 21:31:50 pyp2rpm is getting there, but it's not quite there yet 21:31:54 I don't think you can force people because that just causes people to copy/paste and make more subtle mistakes if they're determined 21:31:55 because they don't know what is RPM macro 21:32:01 ignatenkobrain: I blame the Docker team 21:32:22 the Docker packaging guys made gofed and made it impossible to read any golang package spec 21:32:42 good ideas, horrid implementation 21:32:54 that's what I wanted to avoid. and I think we're in good shape with this 21:33:13 at least, I like ripgrep's spec: https://pagure.io/fedora-rust/playground/blob/master/f/ripgrep/ripgrep.spec 21:33:29 and lo, a readable, autogenerated spec 21:33:36 I've only seen that with pyp2rpm and rust2rpm :) 21:33:42 yeah. I think it should be strongly advised to use it, with a packaging guideline that dependencies must be used as rust2rpm would 21:34:03 which means we're going to have to actually document how rich deps work 21:34:14 because no one in Fedora understands them, because most people are stuck in ~2009 :( 21:34:18 #agreed to strongly advise usage of rust2rpm 21:34:41 #action ignatenkobrain to prepare draft until next meeting 21:34:51 #topic Integration of system registry 21:34:55 #link https://pagure.io/fedora-rust/sig/issue/6 21:34:57 #link https://pagure.io/fedora-rust/sig/issue/6 21:35:20 this seems like a "cargo need change" kind of thing 21:35:23 yes 21:35:30 I have no idea how to do that and whether it's possible at all :D 21:35:30 it's an excellent idea, though 21:35:35 but this would be very cool 21:35:35 ISTR a cargo issue on this already, but couldn't find it 21:35:44 the Java guys do this now with gradle and a few other build tools 21:35:50 what exactly are the issues here? as I understand it we already kinda have this with the config hack. How would this go beyond that? 21:36:10 java has a mvn-local package for this purpose I think 21:36:10 mich181189: config hack works when building packages 21:36:20 but I want to have proper integration in cargo 21:36:23 we want to make our registry preferred 21:36:29 like how Java does it 21:36:33 so if it will find package in local registry, it will use it 21:36:36 ok yeah I got it 21:36:37 ^ 21:36:50 Pharaoh_Atem: yeah, mizdebsk does a lot of good stuff :) 21:36:57 mizdebsk is amazing 21:37:03 I guess it needs to be a prefers rather than the hack's replace as well 21:37:06 and supremely helpful 21:37:26 for package builds, it should be a full-on replace 21:37:43 for development purposes, it should be a preference thing 21:37:48 Pharaoh_Atem: agreed 21:38:58 So I guess what we want is some sort of config block to specify repos to check first. We could then install a config file to point it at the local repo 21:39:12 jistone: so, can you find/open issue for cargo about this and cross-link it to pagure issue? 21:39:37 yeah, looking again now, but if I don't find it I'll open one 21:39:38 not now, but when you will have time :) 21:39:59 jistone: I don't see one on rust-lang/cargo 21:40:07 so I think you'll have to open one 21:40:12 np 21:40:25 #action jistone to find/open cargo issue for system-wide registry and cross-link it to pagure 21:40:32 #topic Open Floor 21:40:45 so, I forgot to mention about packaged applications 21:41:00 you don't need any patched RPM/dnf, you can enable repo and just install binaries 21:41:07 since they don't have any fancy dependencies 21:41:13 it's only needed for building, right? 21:41:24 for -devel packages and for building, yes 21:42:03 coolness 21:42:08 jistone: do you know whether debuginfo is generated correctly nowadays? 21:42:29 it should be 21:42:38 afaik, it should be now, since mjw did the fixes and they're in Fedora now 21:42:42 have been for a little while 21:42:43 when I build, I get bunch of "Missing source for librust.a" or such 21:42:55 didn't remember real error 21:43:00 (well, warning) 21:43:11 you need up to date elfutils, I think 21:43:12 oh, well, there may be some oddness around source paths 21:43:37 I was just thinking, we are having an event for students in Brno Red Hat's office, do you think it would be worth proposing a talk about Rust in Fedora? Is there enough things to talk about for 20-30 minutes? 21:43:59 Reading symbols from /usr/bin/rg...Reading symbols from /usr/lib/debug/usr/bin/rg.debug...done. done. warning: Invalid entry in .debug_gdb_scripts section 21:44:04 rpm debuginfo rewrites paths to /usr/src/debug/... but this doesn't help for things you get from an rlib 21:44:05 I think ignatenkobrain could chat up a room all day :) 21:44:14 ignatenkobrain, for that, use the rust-gdb wrapper 21:44:20 jistone: I use it :) 21:44:27 $ rust-gdb --args /usr/bin/rg foo 21:44:40 ah, then maybe that's broken... 21:44:45 file a bug please? 21:45:18 and really, I need to get this into /etc/gdbinit.d/ so the wrapper isn't needed 21:45:23 #action ignatenkobrain to file a bug about broken(?) generated debuginfo for new binaries 21:45:46 msehnout: what kind of talk? 21:46:25 Pharaoh_Atem shared slides from a talk he gave recently 21:46:28 yes 21:46:30 msehnout: though establishing local Rust group would be nice 21:46:32 Not sure yet. Maybe something about what is Rust and how to make a RPM package from it 21:46:33 I was about to share them again 21:46:37 Pharaoh_Atem: remind me link? 21:46:47 here are my slides from my talk back at the beginning of February: https://files.norwalklinux.space/presentations/2017/mtg2017-02-01-rust-and-fedora.pdf 21:47:01 #info Pharaoh_Atem has nice slides -- https://files.norwalklinux.space/presentations/2017/mtg2017-02-01-rust-and-fedora.pdf 21:47:21 msehnout: I'm planning to make talk about this on Flock 21:47:32 which should be this August in US 21:47:35 IIRC 21:47:43 hopefully, jistone will join :) 21:47:48 and all others 21:48:03 I'd love to be there :( 21:48:13 sadly, outlook not so good 21:48:22 I'd like to, but my August plans are very tentative right now 21:48:26 I'll be at Red Hat Summit, but I dunno about Flock 21:48:50 ignatenkobrain, this would be much shorter talk, anyway you are from Brno office right? 21:48:51 msehnout: golang guys have Coding Dojo every week, so probably we should become their competitors 21:48:54 rustconf is also in August, which is a higher priority for me 21:49:15 msehnout: yes, I am 21:49:24 though I tend to work from home :) 21:49:57 ignatenkobrain, that would be very nice to meet some people also interested in Rust 21:51:34 jistone: if you're at Summit, we should meet up :) 21:51:43 msehnout: yeah, so let's discuss local things offline :) w/ some beer 21:51:45 as far as I know, I shouldn't expect ignatenkobrain there :P 21:51:54 redhatters, please make sure to join our internal #rust community too :) 21:52:25 jistone: also, what's important that internal #rust community should join #fedora-rust community :) 21:52:38 Yes! 21:52:48 Pharaoh_Atem, I'm not sure about Summit... haven't ever attended before 21:52:51 more Rustaceans(?) 21:52:54 ! 21:53:23 jistone: I find it to be a very fascinating event, so if you have the chance, you should go 21:54:52 they also have a developer-y track, which is interesting 21:56:35 jistone: btw, any news about [workspace] stuff and path thing? 21:56:57 kinda annoying to fix Cargo.toml everytime :) 21:57:01 uh, no. jeez, I need to check my backlog 21:57:20 although with -p option, it's very easy 21:57:35 it opens file automagically and when I save it, it creates patch 21:58:40 jistone: not urgent, but just reminding :) 21:59:32 anything else? 21:59:36 we have half minute ;) 22:00:01 #endmeeting