15:00:28 #startmeeting Fedora Base Design Working Group (2014-08-29) 15:00:28 Meeting started Fri Aug 29 15:00:28 2014 UTC. The chair is pknirsch. Information about MeetBot at http://wiki.debian.org/MeetBot. 15:00:28 Useful Commands: #action #agreed #halp #info #idea #link #topic. 15:00:37 #meetingname Fedora Base Design Working Group 15:00:37 The meeting name has been set to 'fedora_base_design_working_group' 15:00:49 Hello and welcome again everyone for our weekly meeting! 15:01:11 #chair haraldh dgilmore masta msekleta vpavlin 15:01:11 Current chairs: dgilmore haraldh masta msekleta pknirsch vpavlin 15:01:16 <- 15:01:23 hi everyone! 15:01:41 Hi all! 15:02:59 alright, so first up, i'd like to give moben some time today to talk about his work on the reproducible builds and build requires reduction 15:03:05 #topic Status update builrequires/reproducible builds cleanup 15:03:31 As it's his last day unfortunately here in Stuttgart, he's heading back to University to continue his bachelor thesis 15:03:35 (poor guy :))) 15:03:56 * masta is here 15:04:46 pknirsch, will moben continue to work remotely then? 15:05:29 msekleta: unfortunately the internship ends as well, but maybe i've convinced him what a cool gang we are ;) 15:06:28 Believe me, I'd rather do some more of this instead of writing a thesis ;) 15:06:41 heheh 15:06:50 moben, ohh I believe you I remember me writing mine, was feeling the same 15:07:02 But I should probably finish my degree at _some_ point 15:07:18 Also, hi everyone! 15:08:28 The last weeks I've been working on some performance optimizations for my buildreq-check tool 15:08:37 * vpavlin is glad he has his thesis done:) 15:09:56 And I've got it down to O(#buildrequires) builds, as well as streamlining the pre-build setup, thanks to some pretty neat ideas from pknirsch 15:10:05 :) 15:10:14 woot! i'm not completely useless ;) 15:11:13 what does it mean? 15:11:19 O(#buildrequires) builds 15:11:32 and what have the neat ideas been? :) 15:12:22 using some dummy packages with conflicts to make sure that the dep we want to drop isn't pulled in indirectly 15:12:54 hmm.. ok 15:13:09 and then after installing the builddeps replacing that dummy package with another one that has the corresponding provides to make rpmbuild happy 15:13:33 which allowed me to drop some specfile rewriting I was doing before 15:13:52 ah, for bootstrapping 15:13:53 ok 15:14:32 so, dirty workarounds instead of fixing the root problem? :) 15:14:55 or valid workarounds for a non-fixable problem? 15:15:02 the second 15:15:31 moben, second enhancement only does the same thing as BuildReq: rewriting in spec file or there is something more? 15:16:10 imagine foo buildreqs bar-devel and baz-devel. bar-devel requires baz-devel. 15:16:32 We are building foo, leaving out one buildreq at a time to check if any are superfluous 15:17:00 this allows me to detect that we can't leave out baz-devel as it will be pulled in by bar-devel 15:17:21 ah, so it's a build requirement checking tool 15:17:40 " buildreq-check tool" 15:17:42 right :) 15:17:55 haraldh: :) 15:17:59 ^^ 15:18:04 do you check, if any differences in the "configure" output happens? 15:18:22 haraldh: I compare resulting rpms 15:18:37 binary, I guess 15:18:40 cool 15:19:11 haraldh: code at http://github.com/moben/buildreq-check 15:19:25 writing a README and status of upstream work atm ;) 15:19:40 so, did you check the whole distribution already? :) 15:19:49 heheh 15:19:52 and fixed all the specs? 15:19:57 haraldh: almost 15:20:02 -_- 15:20:03 oh.. wow 15:20:19 15:20:47 would be cool to dedicate a machine which just checks every package 15:20:54 moben, how long does it take to check packageset we have in base? 15:21:00 and automatically generates bugzillas 15:21:06 well until a few days ago it did way to many builds, but now it is relatively fast 15:21:08 or fixes the git spec file :) 15:21:36 msekleta: each package takes about count(BuildRequires)*NormalBuildtime 15:22:07 a bit less as some of the builds fail because the deps are missing ;) 15:23:15 moben, it is good that it is not 2^(count(buildreqs)) * normal_buildtime 15:23:42 msekleta: agreed 15:24:09 hey all 15:24:17 atm there are quite a few false positives though. test-deps where tests are skipped if they are missing 15:24:34 autotools sometimes 15:25:38 and potentially 'pick at least one'-type dependencies where both are listed in the spec 15:26:24 the first two are impossible to avoid, I guess 15:27:07 the last is a result of the build-time optimizations 15:27:46 but should be relatively rare and would be catched anyway 15:28:02 This all requires reproducible builds though 15:28:22 So I've been doing some of that, mostly upstream 15:29:18 upstream++ 15:29:19 :) 15:29:53 and I think I got most of my patches upstreamed by now, though I got one patch to rpmbuild 15:30:34 many problems were python related, but that might be selection bias due to fedoras heavy use of python 15:31:52 Last I checked about 90% of the tentative list of base-packages (as compiled by haraldh's script) had reproducible builds 15:32:04 which is already pretty neat imo 15:32:22 thumbs up 15:32:48 notable exceptions: kernel, gcc (among others) 15:33:23 sweet! 15:33:43 isn't the kernel and gcc always the exception :) 15:33:45 Thanks for the great work moben, this has been a really great start to our cleanup efforts 15:33:47 hehehehe 15:33:55 yeah, thanks moben 15:34:03 and good luck with your thesis 15:34:08 and remember, you're always welcome here! 15:34:10 :) 15:34:14 15:34:26 thanks haraldh :) 15:34:32 pknirsch: ;) 15:35:34 Alright, thanks for the lengthy report moben, lets hop to the next topic though, otherwise we'll run out of time today :/ 15:35:49 again :/ 15:35:54 pknirsch: sure :) 15:36:01 ^^ 15:36:21 Thanks moben =) 15:36:26 #info Buildrequires checking tool: http://github.com/moben/buildreq-check 15:36:46 #topic Systemd in Docker discussion (fakesystemd/systemd-container) 15:37:10 I belive that came up over the past week quite a bit and i've seen vpavlin discuss this quite a bit with msekleta and lennart. 15:37:24 haraldh: Can you poke Lennart to join us? 15:37:31 oh 15:37:32 And i just wanted to see whether there's a conclusion about this yet or if there are any loose ends 15:37:52 pknirsch: Yes. There were some problems in communication 15:38:17 I think the conclusion is that we won't have systemd-container in Fedora 15:38:40 hm 15:38:50 yes, there doesn't seem to be an interest in such component and systemd upstream doesn't really want to see it either 15:38:57 systemd itself should be "fixed" to run in Docker container and guys will move hwdb out of systemd to minimize the footprint 15:38:57 vpavlin, poked, but no answer yet 15:39:51 I am still not sure about fate of fakesystemd. It's a hack but it can be usefull for Docker containers 15:40:29 If you are not going to run more than one service, you don't need deadcode lying around in images 15:40:55 If we are going to run multiple services in container then we really really need systemd 15:41:12 we have to assume both 15:41:16 and there can be both usecases i suspect 15:41:18 right? 15:41:18 yea 15:41:24 yes 15:41:47 so would we then provide 2 docker containers? one with real systemd, one with the stripped one? 15:41:52 as for fakesystemd, I think it should stay, because of problems with CVEs and auditing discussed on ML 15:41:57 (if we get the stripped one that is) 15:42:06 On the other hand - If we decide to use systemd even in single-service containers than we can drop fakesystemd and we would get logging and other things solved out of the box 15:42:22 yea, seems Lennart wasn't convinced by the argument about CVEs 15:42:41 ah, right 15:42:54 as systemd does provide certain features that obviously fakesystemd doesnt :) 15:43:02 * vpavlin nods 15:43:43 pknirsch, I get his argument but at the end of the day, when running thing in production I don't think it applies 15:44:21 yea, i'd be worried in RHEL enterprise containers. Especially with the attack surface of containers today you really want to minimize it as much as possible 15:44:34 and avoid recreation of the whole stack, too 15:44:35 The problem is not CVE itself but the impact on user/customer and it's processes and needs 15:44:40 * pknirsch nods 15:44:47 btw fakesystemd doesn't really provide anything, it is just empty specfile with a lot of virtual provides 15:44:51 hehe 15:44:57 Ghost in a shell! 15:44:58 doesn't provide real API hence fake 15:44:58 ;) 15:45:15 msekleta: Oh it provides all directories that systemd does:D 15:46:00 hehe 15:46:14 So what if systemd would provide the filesystem subpackage? 15:46:19 would that be already sufficient? 15:46:24 vpavlin, we could drop those too if we really want 15:46:42 Or is it really about more of the provides of systemd, too? 15:46:46 And it provides empty rpm macros so that you don't get errors on package install 15:47:07 vpavlin, those have to stay 15:47:37 And without Provides:systemd the real systemd would be sucked in anyway - no matter if you have *-filesystem subpackage or not 15:47:44 ah 15:47:45 right 15:48:05 and how do we avoid fakesystemd being pulled into buildroots then instead of the real on? 15:48:32 I think the problem is this: http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd 15:48:59 ah 15:49:23 pknirsch: it's now one version behind systemd in Fedora. But we haven't tried to build and image in Koji with it yet 15:50:16 ah, and your docker KS specifices the exact version so that fakesystemd gets pulled in there? 15:50:18 So I am not sure what happens if you do "yum update" on image - it might figure out there is newer systemd and try to replace fakesystemd with real systemd 15:50:48 pknirsch, fakesystemd will never be part of the @core thus whoever installing that group should always get real thing 15:51:18 It does not specify fakesystemd at all yet - dgilmore, I'll send you patch for KS and ask you to try to build an image from it on Monday, ok? 15:51:39 (or you can just add fakesystemd to %packages:) ) 15:53:33 * pknirsch nods 15:53:42 That's why I wanted to have systemd without unneeded dependencies 15:53:48 vpavlin: sure 15:53:55 ace 15:54:21 Then we can just put it in the image and don't worry about CVE on other packages 15:54:25 It's really important we don't fubar the buildroots with the fakesystemd 15:54:54 otherwise i think it's be best of the suboptimal solutions if Lennart doesn't want to split up systemd 15:55:15 But I understand systemd maintainers - it would be pain if they need to maintain 2 versions 15:55:22 aye 15:55:33 and splitting it up might be really tricky, too 15:55:46 and iirc Lennart was at least already fine with moving the hwdb out, right? 15:55:53 right 15:55:57 (at least that's what i remembered from the thread) 15:57:06 there is maybe one more option 15:57:19 have one systemd srpm as we have now 15:58:07 but build twice, one normal fullblown thing and second time, really minimal with bunch of explicit --enable-*=no for ./configure 15:58:46 * vpavlin had the same idea but figured out it would be *a lot* of ifs in spec 15:58:58 brrr 15:59:02 that sounds quite ugly 15:59:10 yes that is very ugly 15:59:20 * pknirsch scratches his head 15:59:22 I don't want to go into this:) 15:59:28 yea 15:59:37 Hm, one crazy idea: 15:59:50 Are these features compiled hard into systemd? 16:00:04 Or is it just binaries that systemd uses if they are available? 16:00:32 Because if it's the later, you could always simply remove them in a post script after creating the docker image 16:00:56 My plan - have a base image with fakesystemd which is really minimal. Have a layered image with systemd instead of fakesystemd for those who want systemd - once we see what users want, we can change the base if needed 16:01:14 right 16:01:17 * msekleta nods 16:01:35 we can look at the statistics and see what people use/download 16:01:36 I'd like to have %post as small and simple as possible. 16:01:40 sure 16:02:30 ok so I think we are pretty much on the same page with fakesystemd 16:02:46 Yea, it's a working solution for now, so let's stick with it 16:03:02 Maybe if both of you follow up once more with Lennart that might be good 16:03:04 yes - we sort of need it now, but we might ditch it later if we see users doing so:) 16:03:15 aye 16:03:20 more difficult problem to solve is that systemd-216 doesn't really work in docker containers 16:03:28 ugh 16:03:36 I have to debug it further 16:03:49 I definitely will - I owe him an apology for not talking to him about fakesystemd firts:) 16:03:50 but f21 will have 215, so there is that :) 16:03:53 first 16:03:59 afaik 16:04:04 right vpavlin :) 16:04:15 moben: and you believe systemd won't be rebased prior to RC? ;P 16:04:17 HA! 16:04:59 touché 16:05:02 :) 16:05:10 anyway, I didn't have much time to look into the issue with 216 in more detail yet 16:05:22 hope to have it somehow working next week 16:05:28 cool, thanks msekleta ! 16:06:00 Ok, friday evening in a (shitty EMEA) summer, so lets close this subject, i think we covered it well enough 16:06:04 #topic Open Floor 16:06:13 anyone got anything for the open floor plan? 16:06:57 * vpavlin is going to finally finish his mail to devel about last week topic (sorry) 16:06:57 weekend, I guess :) 16:07:04 will report on next meeting how does it look with systemd-216 in docker 16:07:31 Just one note - I'd like to see F21 image(s) ready at F21 release:) 16:07:39 yar! 16:07:43 hopefully both - with and without systemd 16:07:59 pknirsch, that maybe a point for agenda as follow-up from this mtg 16:08:12 will put that up, thanks msekleta ! 16:08:26 pknirsch, thank you 16:09:41 okidokie, thanks everyone then for joining today, have a fantastic weekend and thanks again moben for your great work! 16:09:52 bye bye 16:09:55 o/ 16:10:02 Thanks moben and have a great weekend 16:10:10 have a great weekend everyone 16:10:12 #endmeeting