21:00:34 #startmeeting Rust SIG (2017-02-08) 21:00:34 Meeting started Wed Feb 8 21:00:34 2017 UTC. The chair is ignatenkobrain. Information about MeetBot at http://wiki.debian.org/MeetBot. 21:00:34 Useful Commands: #action #agreed #halp #info #idea #link #topic. 21:00:34 The meeting name has been set to 'rust_sig_(2017-02-08)' 21:00:40 #meetingname rust-sig 21:00:40 The meeting name has been set to 'rust-sig' 21:00:45 #chair ignatenkobrain jistone 21:00:45 Current chairs: ignatenkobrain jistone 21:00:49 #topic Agenda 21:00:54 #info (1) Roll Call 21:00:59 #info (2) Cargo metadata vs [workspace] paths 21:01:04 #info (3) Tool for checking crates (with dependencies) in upstream vs Fedora ones 21:01:09 #info (4) Open Floor 21:01:13 #topic Roll Call 21:01:16 .hello ignatenkobrain 21:01:17 ignatenkobrain: ignatenkobrain 'Igor Gnatenko' 21:01:25 .hello msehnout 21:01:26 msehnout: msehnout 'Martin Sehnoutka' 21:01:59 hey msehnout 21:02:18 hey 21:02:35 .hello jistone 21:02:36 jistone: jistone 'Josh Stone' 21:03:17 #topic Cargo metadata vs [workspace] paths 21:03:22 #info libc uses [workspace] which doesn't exist in archive on crates.io 21:03:27 #link https://pagure.io/fedora-rust/rust2rpm/issue/10 21:03:32 #link https://github.com/rust-lang/cargo/issues/3642 21:03:52 how do we deal with this issue? 21:04:17 jistone: Unfortunately I don't get position of upstream developer.. 21:04:48 I intend to open a new issue to discuss ways to make this work better for us 21:04:53 oops, late 21:04:57 I'm here now though 21:05:23 I believe @alexcrichton is open to changes, just not what you were implying in the bug report (to include everything) 21:06:08 jistone: my main point there was that cargo metadata fails on such archives 21:06:13 yes 21:06:36 but that's not how you framed the subject 21:07:07 meh 21:07:09 I would like to see cargo metadata/build/test all work on unpacked *.crate 21:07:23 * ignatenkobrain needs to train soft skills :D 21:07:28 without worrying about path-deps, workspaces, or optional deps 21:07:41 ignatenkobrain: now is as good of a time as any :) 21:08:27 cargo knows how to do this indirectly, when a crate is a dependency of the current target 21:08:51 so I think it will just be a matter of connecting the dots, maybe a new --flag 21:09:17 feel free to assign me to follow up on this, as I mean to anyway :) 21:09:55 jistone: use action from zodbot ;) 21:11:05 #action jistone to followup on cargo's handling of unpacked *.crate packages 21:11:37 jistone: what do I do for now with libc? just sed'ing that line? 21:11:46 sure 21:12:03 #agreed just drop [workspace] thing for now in libc crate 21:12:07 #topic Tool for checking crates (with dependencies) in upstream vs Fedora ones 21:12:16 I didn't made anything on this... 21:12:23 but I think we need something like this 21:12:27 at least to have overview 21:12:38 e.g. we need to print graph of deps for ripgrap 21:12:41 ripgrep 21:12:56 to see what we didn't address yet, what we did and so on 21:12:58 wdyt? 21:13:03 there are tools for this, cargo-tree and cargo-graph 21:13:21 hmm 21:13:32 those are crates? 21:13:37 yeah 21:13:43 cargo install cargo-tree 21:13:56 * ignatenkobrain installs 21:14:20 it has some number of deps.. 21:14:20 or, "cargo metadata" without the --nodeps should have enough info to form a graph 21:15:47 Do we have/plan to have any special tools for Fedora? 21:15:50 still compiles.. 21:16:17 I think some handy script to see which crates are packaged would be nice 21:16:50 msehnout, yes there's rust2rpm under development 21:17:01 in python, so we don't have chicken/egg problems ;) 21:17:36 * ignatenkobrain nods, it still compiles 21:18:00 rustc is not fast, it is known 21:18:10 error: Invalid arguments. 21:18:14 Usage: cargo tree [options] 21:18:18 very helpful 21:18:19 It'd be nice to have README files in both repositories as a high level overview of what it should do. 21:18:23 there's no -h/--help 21:18:30 don't run it as cargo-tree, just "cargo tree" 21:19:43 however, last I checked, cargo-tree didn't expand recursive build-deps properly 21:20:00 so the full "cargo metadata" json may be more useful 21:21:26 cargo metadata doesn't do recursive.. 21:21:39 yes it does 21:21:42 or wait 21:21:43 hmm 21:21:45 it does 21:21:47 right 21:22:13 we've just been using --no-deps which disables that 21:23:06 I'll try to make some script which will show tree of some crate + their packaged versions in Fedora (or at this moment, in COPR) 21:23:14 ack? 21:24:04 ack 21:24:05 #action ignatenkobrain to write some simple script to show tree of dependencies and their packaged version in Fedora 21:24:09 which copr? 21:24:22 jistone: @rust/playground 21:24:30 I didn't built anything there yet 21:24:40 ah right, thanks 21:24:40 since I didn't have time to work on anything since last meeting 21:24:54 but feel free to build there anything you want ;) 21:24:59 #topic Open Floor 21:25:15 Rust 1.15.1 is tagged, should be announced today 21:25:29 I'm ready to go in the spec 21:25:47 #info Rust 1.15.1 is tagged, should be announced today, jistone is ready to build it in Fedora 21:25:50 just a note, i'm experimenting with rust for ostree: https://github.com/ostreedev/ostree/pull/656 https://github.com/ostreedev/ostree/pull/669 21:26:18 autofoo + rs.. 21:26:23 if it goes well i may do more, i have some uncertanty around making this critical path particularly with respect to alternative architectures 21:26:51 walters: I think we cover all arches for now? 21:26:53 walters, rawhide at least has all arches covered now 21:26:55 autofoo + rust? :'( 21:26:57 right 21:27:03 IIRC only s390 is not supported 21:27:08 or is it? 21:27:10 it is 21:27:23 s390x, not the 31-bit s390 21:27:25 s390x is, but I don't think rawhide has s390 21:27:29 right 21:28:07 Pharaoh_Atem: it will.. 21:28:14 dgilmore was talking something about it 21:28:25 I thought we retired s390 with F25? 21:29:09 yeah, looks like s390 is gone as of F25: https://s390.koji.fedoraproject.org/koji/buildinfo?buildID=455400 21:29:48 well, if it did come back, there's no support at all for s390 in upstream Rust 21:31:14 anyway, walters, the alt arches aren't as well tested upstream, so it rests a lot on us. if you find issues, please do file bugs 21:31:31 yeah, my main concern is ppc64le 21:31:39 as i'd like to support that 21:31:42 s390x is 64 bit and supported s390 is 31 bit and not supported 21:31:55 ppc64le and ppc64 are both fully supported, afaik 21:32:06 for now 21:32:06 dgilmore, thanks, that's good 21:32:24 there is talk that ppc64 will get retired and we will only have ppc64le 21:32:30 but thats just talk right now 21:33:22 walters: opportunity to test it ;) 21:33:34 at least it compiles there :D 21:35:33 do we need to review former action items? mine are "sorry, I was busy elsewhere..." 21:35:48 jistone: I think it's same for everyone :) 21:35:51 though I completed one item 21:35:54 :-P 21:36:29 https://pagure.io/fedora-rust/rust2rpm/c/c946648932a7aaa4e59154b7a3e5fda06f75cb50?branch=master 21:36:32 this one :) 21:37:46 so I think we should try harder and make them prior next meeting 21:37:49 =) 21:38:34 well, it was more bad timing :) 21:38:54 Akien was basically gone over the weekend due to FOSDEM, and I've been busy earlier in this week 21:39:10 Pharaoh_Atem: that's fine. Everyone of us have other things to do 21:39:58 so, anything you would like to discuss? 21:40:31 ignatenkobrain: do we have any idea of a packaging procedure yet for rust-y things? 21:40:41 Pharaoh_Atem: what do you mean? 21:42:09 well, we have the dep generator and we have the rust2rpm thing, but how do we judge things coming in for package review? 21:42:29 what's our measures for what is "good" or "bad" about the package 21:42:31 ? 21:42:49 Pharaoh_Atem: rust2rpm generates something which should be acceptable for inclusion. license, docs and such should be only fixed 21:43:03 I don't think we have something else to do at this point 21:43:15 bundled deps are as usual 21:43:17 no bundling 21:43:40 we should use our macro 21:43:59 although I should really merge those %cargo_install and %cargo_install_crate 21:44:10 I will, this weekend 21:45:28 do you have something else in mind? 21:46:29 * Pharaoh_Atem shrugs 21:46:39 it's just that there's a number of "general things" we need to check for 21:46:51 but are there any rust-specific things we need to check for? 21:47:20 I think only 1) usage of our macro 2) proper BuildRequires/BuildConflicts 21:47:29 and also mixed projects 21:47:38 Rust + C/C++ or Rust + Python or ... 21:47:43 oh, right 21:47:49 the most prominent usages of Rust right now are mixed language 21:47:54 I would prefer to not touch this at this point :D 21:48:15 I think everyone does it in a different way.. 21:48:19 I believe firefox is vendoring all their rust crates right now 21:48:31 right 21:48:38 jistone: and I guess firefox package doesn't have Prv: bundled(xxx) = yyy 21:48:42 this is the kind of stuff that I'm just not sure whow we should handle... 21:48:46 *how 21:49:05 Pharaoh_Atem: %cargo_prep is the thing which should set up override for crates.io 21:49:23 walters: how do you do it for ostree? 21:49:42 ignatenkobrain, https://github.com/ostreedev/ostree/pull/669 21:49:59 i should look at what firefox does 21:50:17 also cargo vendor, ok 21:50:21 I suspect that will be common 21:51:01 rustc itself is now vendoring stuff too after the no-makefiles change 21:51:30 I think if vendoring is going to be common, we should probably be checking and ensuring bundled() provides are in place 21:51:55 https://github.com/rust-lang/rust/tree/master/src/vendor 21:52:08 ignatenkobrain: that might mean we need something to generate that list by looking in a vendor tree and spitting them out to paste into a spec 21:52:12 jistone: not even submodules... 21:52:13 but a lot of these are used only for build tools, not in shipped binaries 21:52:55 ignatenkobrain, submodules were considered, don't recall why they didn't 21:53:07 probably just because "cargo vendor" doesn't work that way 21:53:12 hehe 21:53:39 jistone: Pharaoh_Atem: is it always in ./vendor directory? 21:53:50 (relative to Cargo.toml) 21:54:06 that's what cargo-vendor does, but it doesn't have to stay there 21:54:18 if they're (hopefully lazy), it'll be there 21:54:56 I'm vendoring cargo's own deps too. in that case, I made it as a separate Source tarball 21:55:06 then we can try to automatically add Provides: bundled() 21:55:29 Pharaoh_Atem: file issue for rust2rpm 21:55:58 ignatenkobrain, won't it be hard to tell what's actually shipped? I don't think you need bundled() for transient build artifacts 21:56:12 jistone: good question.. 21:56:38 at this point I don't have answer 21:57:03 probably it should be manual task 21:57:13 (fwiw, current firefox doesn't declare *anything* bundled, nevermind rust) 21:57:27 jistone: that's probably violation of guidelines :D 21:58:22 anyhow this is anyway manual task, because you need to file licenses properly 21:58:31 and license files 21:58:38 ignatenkobrain: done: https://pagure.io/fedora-rust/rust2rpm/issue/15 21:58:40 since rust2rpm isn't AI.. 21:59:05 rust2rpm is going to rise and destroy us all :P 21:59:12 okay, let's leave it for future 21:59:19 anything else? (we have 1 minute) 21:59:19 =) 21:59:40 fwiw, Golang guys consider input stuff worth marking too 21:59:47 though I'm not sure that they do it... 22:00:13 as it's possible that builds could break due to a bundled build-time thing 22:00:24 #endmeeting