Gentoo Archives: gentoo-dev

From: Ian Stakenvicius <axs@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Changing order of default virtual/udev provider
Date: Mon, 08 Feb 2016 16:00:32
Message-Id: 56B8BB8F.70603@gentoo.org
In Reply to: Re: [gentoo-dev] Changing order of default virtual/udev provider by "Michał Górny"
1 -----BEGIN PGP SIGNED MESSAGE-----
2 Hash: SHA256
3
4 On 08/02/16 07:46 AM, Michał Górny wrote:
5 > On Mon, 8 Feb 2016 10:08:22 +0100 Patrick Lauer
6 > <patrick@g.o> wrote:
7 >
8 >> Ohey,
9 >>
10 >> I've opened a bug at:
11 >> https://bugs.gentoo.org/show_bug.cgi?id=573922
12 >>
13 >> The idea here is to change the order of the providers of
14 >> virtual/udev. For existing installs this has zero impact. For
15 >> stage3 this would mean that eudev is pulled in instead of
16 >> udev.
17 >>
18 >> The rationale behind this is:
19 >>
20 >> * eudev is an in-house fork, and there's more than a dozen
21 >> distros already using it by default that are not us. Which is a
22 >> little bit weird ...
23 >
24 > That's not an argument. I can also fork random system components.
25 > Would you consider that a reason to replace the defaults with our
26 > 'in-house' forks?
27 >
28 >> * Both udev and eudev have pretty much feature parity, so there
29 >> won't be any user-visible changes
30 >>
31 >> * udev upstream strongly discourages standalone udev (without
32 >> systemd) since at least 2012
33 >>
34 >> (see for example:
35 >> https://lists.freedesktop.org/archives/systemd-devel/2012-June/0055
36 16.html
37 >>
38 >>
39 https://lkml.org/lkml/2012/10/3/618
40 >> )
41 >>
42 >> So it'd be (1) following upstreams recommendations and (2)
43 >> dogfooding our own tools. I don't see any downsides to this :)
44 >
45 > I'm strongly against this, because:
46 >
47 > 1. It is a conflict-induced fork. As such, it will never be
48 > merged upstream and it will never be supported upstream. In fact,
49 > it is continually forces to follow upstream changes and adapt to
50 > them. eudev is more likely to break because of the Gentoo
51 > developer(s) working hard to merge upstream changes to their
52 > incompatible code.
53
54 Yes this is true -- however, this claim is based on sys-fs/udev
55 actually being an upstream package and it really isn't -- it's a
56 partial package of systemd that upstream really doesn't support as a
57 separate package anyhow (hence the size and complexity of the ebuild
58 to build it).
59
60 >
61 > 2. Many of Gentoo users are programmers who appreciate the
62 > 'vanilla' API experience Gentoo often provides. Switching the
63 > defaults to a fork that is known to intentionally diverge from
64 > upstream goes against that principle. Programs written against
65 > eudev may not work correctly with upstream udev.
66
67 No. Eudev ensures compatibility with systemd-udev as a principle,
68 we are not going to fork the API. Unless upstream decides to do
69 something with udev that breaks it previous API in an incompatible
70 way that cannot be reproduced without the rest of systemd, eudev
71 will retain API compatibility with systemd-udev. Eudev would not be
72 nearly as useful as it is, if it wasn't a drop-in replacement for
73 upstream udevd and libudev.
74
75 Besides, now that gudev is its own package there's really just
76 libudev (rarely changes now), rules.d syntax (afaik hasnt changed
77 since before the fork), and the support for the builtin's (which we
78 keep up with) that we need to maintain.
79
80
81 > 3. eudev has fallen behind systemd/udev more than once in the
82 > past, and caused visible breakage to users this way.
83
84
85 Similarly, in the last 6-12 months eudev's releases have been AHEAD
86 of sys-fs/udev more than once, too.
87
88
89 > 4. eudev is underdocumented, and the maintainer admits that 'he
90 > sucks at documenting'. In fact, did anyone even bother to note
91 > how far eudev diverges from upstream udev to this point?
92
93
94 At this point, WITHOUT the patch applied by USE="rule-generator",
95 divergence is fairly minimal -- the primary difference is that udev
96 and libudev contain the internal functions that have been migrated
97 upstream into the giant libsystemd-common. Most of the various
98 improvement patches that we made in the early days have either been
99 integrated upstream or have been dropped as they are no longer
100 relevant. Blueness knows more on this, as I haven't done a thorough
101 examination of upstream's code in quite a while.
102
103
104 Oh, eudev also doesn't handle network link setup given that external
105 tools already do this just fine. That's another difference, though
106 not one that matters programmatically. That said, the network-link
107 setup was added primarily to support systemd's use-case, and there's
108 very little need or point in having it done by udevd on an rc-based
109 system.
110
111
112
113 -----BEGIN PGP SIGNATURE-----
114 Version: GnuPG v2
115
116 iF4EAREIAAYFAla4u48ACgkQAJxUfCtlWe02JgD+KjY9zpYjh8JZf1gAu3QUahjN
117 EqtAkPbXZLsELPBuAHgA/Aq2sHQIFg2iKYKow29HXIb43JKUbV96t37m9tUIBBm4
118 =trQk
119 -----END PGP SIGNATURE-----

Replies

Subject Author
Re: [gentoo-dev] Changing order of default virtual/udev provider Nicolas Sebrecht <nicolas.s-dev@×××××××.net>