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