Dnia 17 lutego 2016 09:17:37 CET, Patrick Lauer <patr...@gentoo.org> napisał(a):
>On 02/17/2016 07:37 AM, Michał Górny wrote:
>>
>>>>> * Both udev and eudev have pretty much feature parity, so there
>won't be
>>>>> any user-visible changes
>>>>>
>>>>> * udev upstream strongly discourages standalone udev (without
>systemd)
>>>>> since at least 2012
>>>>>
>>>>> (see for example:
>>>>>
>https://lists.freedesktop.org/archives/systemd-devel/2012-June/005516.html
>>>>> https://lkml.org/lkml/2012/10/3/618
>>>>> )
>>>>>
>>>>> So it'd be (1) following upstreams recommendations and (2)
>dogfooding
>>>>> our own tools. I don't see any downsides to this :)  
>>>> I'm strongly against this, because:
>>>>
>>>> 1. It is a conflict-induced fork. As such, it will never be merged
>>>> upstream and it will never be supported upstream. In fact, it is
>>>> continually forces to follow upstream changes and adapt to them.
>eudev
>>>> is more likely to break because of the Gentoo developer(s) working
>hard
>>>> to merge upstream changes to their incompatible code.  
>>> That was the entire point of the project. Upstream rejected any
>attempts
>>> to do things that we actually needed and broke things claiming the
>>> distributions were responsible for handling the breakage, so eudev
>was
>>> started on the basis that we needed a project that would ensure that
>>> changes in udev occur in a way that makes sense.
>> What things? Things like 'let's try to spawn this script third time
>in
>> case someone mounted something so that it happens to work this time'?
>> Yes, that old behavior really made sense.
>It did. Not having it made booting a lot more exciting, and exciting is
>bad.

So, to summarize. Random non-repeatable behavior is good. Having repeatable 
boots is bad and exciting. Because then you can't claim your bugs are not bugs, 
right?

>
>Now you need to boot before you boot (mount all relevant filesystems
>before starting PID1?), which is fragile and suddenly makes the
>initramfs complex enough to require, err, a dhcp client, different fsck
>implementations, and pretty much all that would have been in /bin or
>/sbin before the /usr movearounding started. And firmware and kernel
>modules, like this it's easy to go >150MB for a compressed initramfs if
>you need firmware and a dhcp client to bring up the NFS share with
>/boot
>(hey, with ceph it's even more exciting ...)
>
>"initramfs is the new rootfs" - yeah, that sounds like a good idea,
>until you figure out that the initramfs doesn't fit in /boot anymore
>(kernels are ~3-4MB each, so 25MB is plenty, eh?) and you need to
>either
>repartition or boot from USB.
>
>And since there was no visible failure mode for us before, of course
>some of us are very confused why a reasonable and effective feature got
>pruned without replacement. Just because somewhere else it didn't work
>100% - that's no reason to remove features for everyone!
>>
>>>> 2. Many of Gentoo users are programmers who appreciate the
>'vanilla'
>>>> API experience Gentoo often provides. Switching the defaults to a
>fork
>>>> that is known to intentionally diverge from upstream goes against
>that
>>>> principle. Programs written against eudev may not work correctly
>with
>>>> upstream udev.  
>>> If upstream udev were stable, that would be one thing, but it
>>> intentionally diverges from itself continuously. The only experience
>>> that could be reliably provided with upstream udev is one of
>continual
>>> breakage.
>> This is FUD, without any proof.
>See your reply to (3) - you disagree with yourself!
>>>> 3. eudev has fallen behind systemd/udev more than once in the past,
>>>> and caused visible breakage to users this way.  
>>> When?
>> Whenever we installed new systemd and udev versions, and needed to
>bump
>> the dependency in virtual, and eudev maintainers were nowhere to be
>> found.
>Which was only needed due to API changes and/or feature removal. Which
>is exactly what you claimed didn't happen, so go FUD yourself :)
>>
>>> Can we also consider all of the times udev broke the boot process
>>> because upstream just didn't care about doing changes in a sane way
>and
>>> the people interested in providing the upstream experience delivered
>on
>>> that goal?
>> Proof needed.
>"Persistent network naming" caused me at least three independent boot
>failures -
>
>(1) network device got renamed away from eth0 by default. That's
>horrible, why would you change the default like this?!
>(If it were an option that I had to consciously turn on it'd be great)
>
>(2) persistent naming only triggers when net link status is up. Thus if
>the switch takes more time than the server (which it did) the renaming
>did *not* happen, init script looks for en3p7 or whatever but now it's
>eth0 again. This means I can't automatically power on systems after
>power failure ...
>
>(3) race condition in persistent naming renames on average 2 out of 4
>of
>the interfaces on bnx2 / bnx2x quad ethernet cards. So you may have
>en3p0, eth1, eth2, en3p4 ... or eth0, en3p1, eth3, eth2.
>
>The only available fixes for this are *not* using the persistently
>buggy
>renamer thingy and instead use either MAC-based naming or pass
>'net.ifnames=0' on the kernel command line to keep the stable kernel
>names.
>
>At my current workplace we're stapling it to the MAC address - that way
>whenever a NIC fails we need to also change udev config, but at least
>we
>can guarantee which interface is which. Quite useful for server
>machines
>that have between two and six interfaces.
>
>And that's independent of the movearounding - see udev init script:
>
>bins="/sbin/udevd /lib/systemd/systemd-udevd
>/usr/lib/systemd/systemd-udevd"
>
>I'm not even going to ask why a binary is in /lib when it used to live
>in /sbin.
>
>(And I will not point out the wrongness of config in /lib, because
>apparently people get upset when the madness is pointed out ... )

The wrongness is relying on any particular location of a daemon. The init 
system setup needs to know where it is, and that should go along with a package 
that installs it. Of course, it falls apart if you split scripts apart, then 
force movearounding to suit your fancy love to the past.

>>
>>>> 4. eudev is underdocumented, and the maintainer admits that 'he
>sucks
>>>> at documenting'. In fact, did anyone even bother to note how far
>eudev
>>>> diverges from upstream udev to this point?  
>>> The FreeBSD developers were complaining about how poorly documented
>udev
>>> was well before eudev existed. This is not a regression unless
>systemd's
>>> innovations in replacing documented things with undocumented things
>made
>>> them worse.
>> So... replacing thing that has some docs with a thing that has no
>docs
>> and links to docs of udev that aren't exact match for eudev is good?
>> Good to know.
>>
>Having tried to use the systemd 'documentation' -
>
>that's actually progress, having no documentation is better than a
>random pile of braindumps. "Read the source", as usual ...


-- 
Best regards,
Michał Górny (by phone)

Reply via email to