From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 224E758973 for ; Tue, 9 Feb 2016 13:06:45 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 43B4021C14B; Tue, 9 Feb 2016 13:06:32 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 30A2521C048 for ; Tue, 9 Feb 2016 13:06:31 +0000 (UTC) Received: from [192.168.1.2] (c-73-53-75-119.hsd1.wa.comcast.net [73.53.75.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: zlg) by smtp.gentoo.org (Postfix) with ESMTPSA id 0546F3408A2 for ; Tue, 9 Feb 2016 13:06:29 +0000 (UTC) Subject: Re: [gentoo-dev] Changing order of default virtual/udev provider To: gentoo-dev@lists.gentoo.org References: <56B85B06.7020500@gentoo.org> <56B936DB.1010407@gentoo.org> <56B939C4.20804@gentoo.org> From: Daniel Campbell X-Enigmail-Draft-Status: N1110 Message-ID: <56B9E454.1010609@gentoo.org> Date: Tue, 9 Feb 2016 05:06:28 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Archives-Salt: 13388415-1038-4900-a798-e61eb7f25354 X-Archives-Hash: 62002c9acaafc452b48bbf5586d31630 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On 02/09/2016 04:17 AM, Rich Freeman wrote: > On Tue, Feb 9, 2016 at 3:43 AM, Kent Fredric > wrote: >> >> A pure udev system is in comparison, much simpler than a systemd >> system. > > I don't buy that at all. In systemd you have a unified object > model across device nodes, mountpoints, services, and cron jobs. > In the alternate model you have completely different > implementations of all of those, each with their own configurations > and behaviors. Perhaps that's because each of those things should not actually be considered the same object type. That sort of design may be convenient to users, but is more akin to treating everything like a nail when you have a hammer. Also note that in the 'alternate' model, each of the above is handled by a different tool. It's obvious that using a combination of different tools will result in different conceptualizations of each of those parts in a system. I see little benefit in a single project pretending to understand everything about each of them. > >> >> And that's much of the beauty of OpenRC. Its simple, it achieves >> the same goals as Systemd and Upstart, etc, but does so with a >> lot less mechanics under the hood, and doesn't clutter up systems >> with features you don't need prematurely. > > OpenRC doesn't achieve MANY of the goals of systemd. Maybe you > don't personally care about some of them, but you really can't > compare the feature sets at this point. > >> And there are great benefits from simplicity over complexity. > > Absolutely. It is great to create a text file and symlink it in a > directory named after a service to make that service auto-restart, > or have a memory limit, or set an IO priority for that service. It > is great to not have to think about anything to have just about all > your processes organized into a sensible cgroup hierarchy. It is > great to be able to tweak one config file to ensure that users who > log out of a system can't leave any processes behind. > > It is great to be able to tweak something in policykit and change > things like who can shut down the system, or who can restart a > service. > > The simplicity of systemd comes from the fact that it has brought > what used to be a collection of many independent tools under one > roof, and created a converging set of interfaces for all of them. If I didn't know any better I'd say this reads like shilling. Firstly, there's a real problem if you're depending on a daemon restarting itself. Why is it stopping in the first place? If it's stopping, something wrong is happening and restarting it *isn't* going to fix it. Existing permission systems handle a lot of cases. *kit (logind, is more like it) has some extra things to make it a bit more granular. It's mostly unneeded complexity. The biggest benefit logind brings to a system is multi-seat capability. > >> And a lot of Gentoo is surprisingly simple: Like our use of bash >> scripts for recipies to build things, like using rsync to >> deploy/relay not just those recipies, but security notices and >> news items, which are themselves reasonably simple formats. > > Well, one thing about Gentoo that certainly isn't simple is our > init.d scripts. > > Compare this: http://pastebin.com/sSDtpF4t > > With this: http://pastebin.com/Lfn8r7qP > > Systemd does the job in 10% of the code (and half of it is a > comment), and doesn't implement its own service polling and killer > script during shutdown independently for every service (not that > every init.d script even does this - most of them will just leave > orphans behind, and systemd will catch orphans that even the > lengthy init.d script for apache misses). This is a dishonest comparison. You're comparing a declarative configuration file with a Turing-complete scripting language. If we're going by SLOC, we would need to also consider all the C code that systemd uses to *act* on said declarative file. One could argue that rc scripts in this case are a lot of repetition, and that'd be correct. There's nothing stopping rc scripts from becoming similar to systemd's unit files. It'd be akin to our eclass system. But why is this important? OpenRC supports cgroups, so if a daemon isn't reaping its children correctly, a bug needs to be filed, either on the package providing the script or on OpenRC itself. > >> >> The only preference I see here is the preference to not have and >> install things your system has no use for, which I find an odd >> preference to be complaining about, and depending on your system >> requirements, that may also be not so much "preference". >> > > And hence my suggestion that we simply get this stuff out of the > stage3s in the first place. Then everybody can just pick the > implementation that best suits their requirements. I can get behind that. This dodges all sorts of arguments regarding initial installations. There's still the issue of the virtual, however; would we add sys-fs/udev to p.mask in non-systemd profiles to clarify the decision, or make eudev the default choice in the virtual? I think we can all agree on making it an additional step in the handbook, but the default is still at hand. > > If you want to talk about default providers, the most > straightforward one to use is systemd. It is what people are going > to be used to coming from other distros, it is what every upstream > package expects to be running anyway, and it is the simpler tool > that does everything that most people want. > > For people who want a more exotic configuration, there are > alternatives, and Gentoo should certainly support using them as > long as people care to maintain them. This is the same argument other distros used before they switched completely to systemd. When has Gentoo ever been about marching to the beat of other distros? Are you advocating for following what others do simply because it's popular? We have nothing to gain by making systemd the default init system, and it would tick off a considerable portion of our userbase, even with it being changeable. It's one thing to put it on the live media, or even as part of (a flavor of) a stage4, but to push for it being a default across the board on a standard install is a bit much. The e-mails I've seen from you in this thread seem out of the ordinary. Has the systemd team been talking with you, or people from other distributions urging for Gentoo to switch? To clarify, there's nothing wrong with systemd as a choice. It's special enough that it has its own set of profiles. I think that's enough, and creates a workable path for both. For this thread, it seems that we need to do something similar with eudev. sys-fs/udev already comes with the systemd profile, and eudev fulfills all the same needs. Maybe we should speak with our users and find out just how many people are using systemd-udev intentionally rather than going along with it as a default, and their reasoning for doing so. The same could go for eudev. Not so much for numbers (because unlike Debian, we have nothing comparable to popcon), but to see where people are standing on it. - -- Daniel Campbell - Gentoo Developer OpenPGP Key: 0x1EA055D6 @ hkp://keys.gnupg.net fpr: AE03 9064 AE00 053C 270C 1DE4 6F7A 9091 1EA0 55D6 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJWueRSAAoJEAEkDpRQOeFw7DYP/i4hqRWuhSVUZsAXE8DX9GAa vapYjX43fb5S5BzgqS5KVbRWUdDUQNAghyy9kywPUFjjQRArzTF+xX3EmBhj5rUG Agar+BB3fGh19NbvMtwoJ3C+eHBw7aNGkmlj65vpMOmOnZ/7lDZNU0PbZ4GtDdmp FoQ2ooR5+TAV7xZaMRf5liwcptMcIPrOhksvUWtzRPhFjGyJLRtg60xO6hxC5Zc0 yF+hrO8/QNnqIvKn5u1sXAx3GyRE2UZtPX+Fad6Z376gH+8T7CtbqjLT1rxIZedd CYLusg/AdENLsS6EVy6KN5exIH1oAeAqWwtiUS88VURzP7QY7TA3RbCPVVgCFe0M kM2J5JZqlrdCxG935zEk3kiO9dtW4wBQNbjyLD7G3PCkWWnv2eZsP+lk+pFQlIvw +Sfbb4nrtusSu8MYkeLnAQJ3oyt8qYUQN0Ip07Y/5h+3pKizMi/A2NVjLdoH35tx KXnpy5LPYn7Hk7UrVGPdgNQC/GckRcIAgwjH90fvO2cOAV6pdcPAR/VYxaodQeWZ AUZdT6ksmuZuhfBgZBEU2X2ilEVZsDI22egjz5/+FCDZjr2c56cURCP6+GXcW4ao LaM/OoTmHkEQSG4PVTSNE6wXN9lrVx5v/TvH9vDjdViugdzOUHyt58gXiC+Bk8wA XD8LH56ilZGFcoJWdmSR =Ggkl -----END PGP SIGNATURE-----