|
|
Log in / Subscribe / Register

The eudev project launches

From:  Richard Yao <ryao-AT-gentoo.org>
To:  gentoo-dev-announce+subscribe-AT-lists.gentoo.org
Subject:  eudev project announcement
Date:  Fri, 14 Dec 2012 22:52:32 -0500
Message-ID:  <50CBF400.2060104@gentoo.org>
Cc:  "gentoo-dev-AT-lists.gentoo.org" <gentoo-dev-AT-lists.gentoo.org>, gentoo-project-AT-lists.gentoo.org
Archive‑link:  Article

Dear Everyone,

	I am pleased to announce the Gentoo eudev project. Many of you already
know about the eudev project from early publicity that we had before
things were ready. Despite that, I hope to take advantage of the
official announcement to explain what we are doing, why we are doing it
and what it means for you. I have broken the announcement into
subsections, each with a title for ease of reading.

Why fork udev?

	Earlier this year, udev upstream was absorbed into systemd. udev often
breaks compatibility with older systems by depending upon recent Linux
kernel releases, even when such dependencies are avoidable. This became
worse after udev became part of systemd, which has jeopardized our
ability to support existing installations. The systemd developers are
uninterested in providing full support in udev to systemd alternatives.
These are problems for us and we have decided to fork udev to address them.

You are a Gentoo project. What does this mean?

	Gentoo as an organization is quite similar to github, although it is
exclusive to Gentoo developers. Our rules permit all Gentoo developers
have the ability to start a project and such projects are entitled to be
hosted on Gentoo infrastructure. This by no means constitutes official
endorsement by Gentoo's governing body and we have no authority to
dictate the future direction of Gentoo. We do have the ability to
provide an alternative to Gentoo users, which we fully intend to do.
	eudev will be by no means exclusive to Gentoo. We will handle bug
reports from users of other distribution in the same way that we handle
bug reports involving Gentoo. This will be much like other Gentoo-hosted
projects such as portage and OpenRC.

What is your project's license?

	The systemd developers were in the middle of a transition to the LGPL
from the GPL when we forked. We inherited the code in the middle of that
transition and we see no reason to pursue a different course. Therefore,
all future changes that we make to eudev will be available under the LGPL.

What are your project's goals?

	Our primary goal is to address the problems with systemd-udev that
caused us to fork it in the first place. In particular, we want better
compatibility with existing software such as OpenRC and Upstart, older
kernels, various toolchains and anything else required by users and
various distributions. We also want to minimize regressions and work
with developers of other distributions (and components used by them) to
address issues.

How will you minimize regressions?

	We intend to maintain HEAD in a releaseable state. All minor changes
require review from one eudev developer and all major changes require
review from two eudev developers. This does not include the author. In
addition, we intend to require commits to make logically independent
changes with descriptive commit messages to make regression hunting
easier when regressions do happen.
	These rules were not enforced at the beginning, but we are
transitioning toward enforcement. They will enter full effect once we
tag our first release candidate.

How do you intend to work with other distributions?

	We have our repository on github, which is known for easy
collaboration. If a distribution developer identifies a problem with
eudev, they can file an issue and we will do our best to resolve their
problem. If they wish to work with us to resolve it, we can talk in IRC
and they can also file pull requests. Provided that the changes are not
entirely unreasonable (e.g. pushing an init system into udev), we are
willing to work with authors of pull requests to get them into a
mergeable state. The only hard rule is that changes cannot break the
ability of existing systems to upgrade.
	We also plan to make an official mailing list, which will be hosted on
Gentoo infrastructure.

Will you make the boot process faster?

	We have ideas on how to make udevd faster. However, people usually only
notice the time that udevd takes when there is a bug and we are more
interested in fixing those bugs than we are in shaving milliseconds off
boot time. There are plenty of areas that could use attention by people
that are interested in a faster boot process before udev becomes one of
them. We consider things such as a reliable boot process to be more
important than speed and we are willing to subject users to the
additional few hundred milliseconds that failing to tweak things for
speed incurs.
	We are already dealing with regressions that the systemd developers
introduced in their attempt to make things faster and we consider fixing
them to be a priority. However, we would be happy to collaborate with
people willing to work on boot speed improvements to get them into a
mergeable state. We encourage people interested in speed improvements to
talk to us about how they could be done in a reasonable manner. It would
be premature to do it at this instant, but it would definitely be
something that could be done after we have tagged a few stable releases.

What did systemd break when trying to make things faster?

	A good example involves module loading. Previously, each module load
would incur a roughly 10 to 20 ms disk access latency and a 0.01 ms fork
overhead. This was partially masked by udev's ability to execute rules
asynchronously through fork(), which meant that multiple modules could
be read in parallel.
	The introduction of kmod eliminated the 0.01 ms fork() overhead, and
consequently required each module to be loaded sequentially. This
imposes an overhead of 10 to 20 milliseconds times the number of
modules, which is asymptotically worse than what it replaced. A feature
of kmod intended to address that placed all modules into a single file,
which would actually make things faster. However, none of our users use
it and all of our users would suffer from it.
	In addition, the manner in which kmod was integrated has implications
beyond speed regressions. The use of kmod by udev permits a buggy kernel
module (possibly interacting with bad hardware) to hang in module_init.
This causes udevd to hang, which prevents further rule processing. This
is a bad situation, but we feel that it is important to handle bad
situations in a graceful manner. Previously, the system would have a
chance of booting in this situation. The manner in which kmod was
introduced makes this situation far more likely to cripple systems.
	If you want to understand the worst case scenario when dealing with
this regression, disable udev and reboot your system. You should have a
virtual terminal with no networking and no X. Should this happen with
systemd-udevd, then you would also have a hung systemd-udevd process
that you cannot kill. Attempts restart systemd-udevd should result in
more hung processes.

Where is development now?

	We have rewritten the build system and restored support for older
kernels and verified compatibility as far back as Linux 2.6.31. We have
tagged 1_beta1 and eudev is in the portage tree. A few lingering
dependency issues exist, but we should have them ironed out shortly.
	Work is on-going to introduce uclibc support, to reintroduce
70-persistent-net.rules and to reintroduce support for a separate /usr
support without an initramfs. Strictly speaking, we do not recommend
having a separate /usr mount, but we intend to support such
configurations in eudev indefinitely.
	We are also looking into fixing various regressions that the systemd
developers introduced, which include the kmod regressions.

What are your plans for future development?

	We intend to demonstrate to the current Gentoo udev maintainers that
maintaining systemd-udevd outside of the systemd package is unnecessary
when we have eudev. If they wish to continue maintaining systemd-udevd
as they are, then that is fine unless the Gentoo Council decides otherwise.
	After eudev has reached stable status in Gentoo, we intend to start
reaching out to other distributions to collaborate on further
development. Ideally, eudev will be something that all distributions can
use as a drop-in replacement for systemd-udevd.

Yours truly,
Richard Yao

P.S. I have BCCed a few people that might be interested in reading the
project announcement. Unfortunately, the gentoo-dev list requires
registration to avoid spammers, so you will need to register to reply to
the list. Documentation on how to register on the list is available at
the following address:

http://www.gentoo.org/main/en/lists.xml




to post comments

The eudev project launches

Posted Dec 16, 2012 23:55 UTC (Sun) by nix (subscriber, #2304) [Link] (2 responses)

Congratulations! Maybe I'll be able to upgrade at last...

I wonder if various arbitrary capability losses (e.g. the ability to name device nodes whatever you want, and to boot without devtmpfs) will be brought back too? I suspect so, because booting without devtmpfs is a requirement of early-kernel support, and naming device nodes whatever you want is easy if you can boot without devtmpfs.

The eudev project launches

Posted Dec 17, 2012 4:15 UTC (Mon) by josh (subscriber, #17465) [Link] (1 responses)

> booting without devtmpfs is a requirement of early-kernel support

What does "early-kernel" refer to, and why does it not work with devtmpfs?

The eudev project launches

Posted Dec 17, 2012 11:55 UTC (Mon) by HelloWorld (guest, #56129) [Link]

> What does "early-kernel" refer to
Old kernels without devtmpfs.

The eudev project launches

Posted Dec 17, 2012 0:15 UTC (Mon) by jengelh (subscriber, #33263) [Link] (1 responses)

Now, if eudev also works with systemd, that will be even more awesome.

The eudev project launches

Posted Dec 17, 2012 15:07 UTC (Mon) by prometheanfire (subscriber, #65683) [Link]

we hope to maintain abi compat with upstream udev.

The eudev project launches

Posted Dec 17, 2012 0:45 UTC (Mon) by gerdesj (subscriber, #5446) [Link]

This is why I love Gentoo - it's all about choice.

I have systems that run OpenRC (~30 odd) and my personal laptop runs systemd (boots quick and some things work nicely at last, maybe I'll tame it eventually). I suspect I'll have a VM running eudev in a few days.

mmmmm choice ...

Jon

The eudev project launches

Posted Dec 17, 2012 1:34 UTC (Mon) by hadrons123 (guest, #72126) [Link] (77 responses)

I hope debian picks eudev as well.

The eudev project launches

Posted Dec 17, 2012 1:47 UTC (Mon) by Cyberax (✭ supporter ✭, #52523) [Link] (74 responses)

I hope it won't. The reasons for this project and the first steps are mostly hostile.

For example, kmod changes strike me as totally pointless.

The eudev project launches

Posted Dec 17, 2012 1:53 UTC (Mon) by gfa (guest, #53331) [Link] (72 responses)

> For example, kmod changes strike me as totally pointless.

i don't agree, i really miss modprobe -l |grep 'string'

The eudev project launches

Posted Dec 17, 2012 1:56 UTC (Mon) by Cyberax (✭ supporter ✭, #52523) [Link] (66 responses)

You still can do this. kmod doesn't prevent you from using modprobe to your heart's delight.

The eudev project launches

Posted Dec 17, 2012 1:58 UTC (Mon) by rahulsundaram (subscriber, #21946) [Link] (61 responses)

Even better, udev already treats kmod as a compile time option. So stating that as a reason for forking is not right. What would be useful is to cite specific patches that were rejected before Gentoo decided to fork.

The eudev project launches

Posted Dec 17, 2012 3:56 UTC (Mon) by Ford_Prefect (subscriber, #36934) [Link] (60 responses)

s/Gentoo/some Gentoo developers/

The eudev project launches

Posted Dec 17, 2012 4:28 UTC (Mon) by rahulsundaram (subscriber, #21946) [Link] (59 responses)

"I am pleased to announce the Gentoo eudev project"

You can't have it both ways.

The eudev project launches

Posted Dec 17, 2012 4:57 UTC (Mon) by Ford_Prefect (subscriber, #36934) [Link] (58 responses)

Please read the "You are a Gentoo project. What does this mean?" section of the original announcement. It was included to prevent exactly this misunderstanding.

The eudev project launches

Posted Dec 17, 2012 5:02 UTC (Mon) by rahulsundaram (subscriber, #21946) [Link] (3 responses)

*shrug* Don't call it Gentoo eudev if you don't want to suggest it has the support of Gentoo as an organization.

The eudev project launches

Posted Dec 17, 2012 12:24 UTC (Mon) by Ford_Prefect (subscriber, #36934) [Link] (2 responses)

A pretty thorough explanation about how it isn't some sort of organisation-endorsed project is included in the announcement. If you deliberately choose to ignore it, there's nothing productive left to be discussed.

The eudev project launches

Posted Dec 17, 2012 12:39 UTC (Mon) by Ford_Prefect (subscriber, #36934) [Link] (1 responses)

p.s.: otoh if you're only referring to it being called "Gentoo eudev", the author of the annoucement has duly noted this.

The eudev project launches

Posted Dec 17, 2012 13:58 UTC (Mon) by bagder (guest, #38414) [Link]

It also happened to be announced by a gentoo.org person on a gentoo.org list in addition to the name being prefixed with Gentoo. Quite a lot of gentoo in there to aid us all into believing there's something about gentoo in this project...

The eudev project launches

Posted Dec 17, 2012 10:30 UTC (Mon) by ovitters (guest, #27950) [Link] (1 responses)

As already said, you're trying to have it both ways. Get recognition by using "Gentoo", but at the same time avoiding criticism. I'd say "man up".

Anway, the entire announcement to me is funny. The "Gentoo", but not really, then all the comments about udev. Things which have been pointed out and explained before. Yet still repeated in this announcement.

eudev: the project which is confused and confusing :P

Seems not much was learned after Greg criticized this.

The eudev project launches

Posted Dec 17, 2012 23:41 UTC (Mon) by rich0 (guest, #55509) [Link]

That's just how Gentoo operates - Gentoo is about choice. That often means that we put effort into supporting choices that many users will not make, such as allowing users to use systemd as their init system, or creating a udev fork.

Is eudev officially part of Gentoo? Yes. Does that mean it will ever be the default replacement for udev? Not necessarily.

Eudev does have the official support of Gentoo, but that really amounts to little more than some hosting. They could of course apply for financial support like any other Gentoo project, but such requests are rare, and honestly I'm not sure what it would be needed for here.

Gentoo is a volunteer organization. If somebody wants to work on something, they can. If others think that what they're working on is dumb, they can work on something else. As long as nobody is breaking the law we're fine with that.

The eudev project launches

Posted Dec 17, 2012 11:52 UTC (Mon) by HelloWorld (guest, #56129) [Link] (51 responses)

> Please read the "You are a Gentoo project. What does this mean?" section of the original announcement.
You can't fix poorly-chosen terminology by explaining it afterwards, it just doesn't work. KDE got a huge amount of flak for calling a beta release "4.0". The FSF needs to explain over and over again that Free Software isn't about price. There are dozens of examples like that.

The eudev project launches

Posted Dec 17, 2012 12:28 UTC (Mon) by Ford_Prefect (subscriber, #36934) [Link] (43 responses)

Agreed, but our organisation structure lets us do this, and I appreciate that freedom. Other than the poor choice of wording ("Gentoo eudev project"), I don't know if I'd want to change that, despite the damage that this is undoubtedly causing us.

The eudev project launches

Posted Dec 17, 2012 16:59 UTC (Mon) by HelloWorld (guest, #56129) [Link] (42 responses)

There is nothing wrong with offering hosting services for Gentoo developers. Just don't make it look as if it were part of Gentoo. The GNU project uses nongnu.org for similar purposes; the Gentoo project should consider adopting a similar policy.

The eudev project launches

Posted Dec 17, 2012 23:50 UTC (Mon) by rich0 (guest, #55509) [Link] (41 responses)

Eudev is part of Gentoo. It isn't simply hosted there.

Something being part of Gentoo simply means that at least one Gentoo developer has decided to work on it.

Gentoo is about choice. There are lots of things that are a part of Gentoo that the average user following the installation handbook will never see. And that's fine.

If you want to run systemd on Gentoo just follow the appropriate howto.

I personally doubt that eudev will ever be the default, but Gentoo users are better off having it as an option.

The eudev project launches

Posted Dec 18, 2012 0:23 UTC (Tue) by HelloWorld (guest, #56129) [Link] (40 responses)

> Gentoo is about choice.
I can't stand this "choice" crap any more. Adam Jackson put it better than I could:
http://www.redhat.com/archives/rhl-devel-list/2008-Januar...

Idiocies like the eudev project have nothing to do with offering more (sensible) choices, they have to do with bickering, NIH syndrome, stupidity and people being small-minded and generally pathetic.

The eudev project launches

Posted Dec 18, 2012 0:52 UTC (Tue) by gfa (guest, #53331) [Link] (11 responses)

need to 's/eudev/redhat/' for your comment to make any sense

proof:

upstart is older than systemd
mkinitramfs is older than dracut
systemd+udev merge does not make any sense, they are just pushing systemd everywhere
/usr on a separate partition has worked for ages (and still works everywhere !fedora)

The eudev project launches

Posted Dec 18, 2012 1:55 UTC (Tue) by rahulsundaram (subscriber, #21946) [Link]

Can we stop with separate /usr misconceptions already? It works in Fedora as well as it does in other distributions and systemd or udev does NOT affect that in any way. Rest of what you said is basically irrelevant to the discussion.

The eudev project launches

Posted Dec 18, 2012 2:16 UTC (Tue) by HelloWorld (guest, #56129) [Link] (8 responses)

upstart is older than systemd mkinitramfs is older than dracut

Whether a project makes sense or not has nothing at all to do with whether it's younger or older than some other project. systemd is a good and useful project despite having been started after upstart because it's technically superior and one couldn't have altered upstart to provide the same functionality without essentially rewriting it from scratch.

eudev otoh is useless. udev works perfectly fine without systemd, and while it's true that udev doesn't support old kernels, it doesn't really matter. Because why would you run a long-obsolete kernel, and yet require a brand-new version of udev?

systemd+udev merge does not make any sense
This is a development issue and thus should be left up to the systemd/udev maintainers.
they are just pushing systemd everywhere
How so? Udev works perfectly fine without systemd.
/usr on a separate partition has worked for ages (and still works everywhere !fedora)
  1. The "separate /usr" thing has nothing, zilch, nada to do with systemd or udev, both work perfectly fine without /usr. The only difference between systemd and upstart/sysvinit in this regard is that systemd prints a warning (which you can choose to ignore).
  2. There are things that break when /usr isn't mounted during early boot, though perhaps it doesn't affect your system. Do you really think Poettering makes that kind of stuff up just to piss people off?
  3. Fedora supports a separate /usr partition just fine by mounting it inside the initramfs during early boot.
Get your facts straight next time before making random false accusations.

The eudev project launches

Posted Dec 18, 2012 2:50 UTC (Tue) by gfa (guest, #53331) [Link] (2 responses)

i won't reply all your comments, because is boring.

i will just say, Adam Jackson and Poettering on many ocation accused ubuntu (or other distros) to fragment the comunity, while they suffer from NIH sindrome. i haven't see any proof that systemd is better than upstart

the dracut documentation on freedesktop suggest not to implement another initrd maker because dracut is here, the same rationale could be applied to mkinitramfs which is older, extensible and better tested than dracut.

i don't care what fedora/rh guys think about how linux should be. just don't bother us with your bloat, many of us are very happy with sysinit, shell scripts and such. leave our tools alone

udev+systemd is not fine
http://lists.freedesktop.org/archives/systemd-devel/2012-...

bye, have a nice life (i do)

The eudev project launches

Posted Dec 18, 2012 3:03 UTC (Tue) by rahulsundaram (subscriber, #21946) [Link]

You haven't provided any reference for your claims about Adam Jackson and I suspect you don't have any and just made that up. Also, you seem to misunderstand the link you have provided which has nothing to do with separate /usr and there isn't any Fedora specific issue here.

If you want to understand, the differences between mkinitramfs and dracut, refer to https://lwn.net/Articles/317793/. There is a reason why several distributions have adopted Dracut by default now

If you want to continue using a older init system and shell scripts, you are welcome to.

The eudev project launches

Posted Dec 18, 2012 3:09 UTC (Tue) by HelloWorld (guest, #56129) [Link]

Ah, trolls. They just don't make them like they used to any more :(

The eudev project launches

Posted Dec 18, 2012 17:51 UTC (Tue) by nix (subscriber, #2304) [Link] (4 responses)

Because why would you run a long-obsolete kernel, and yet require a brand-new version of udev?
Because new versions of udev contain new libudev APIs, and applications can depend on those. Were it not for eudev, we'd be required to upgrade the kernel in order to run such applications. This sort of tight coupling is not good. (Well, OK, some people seem to think that the tighter the coupling, the better, but I very much hold with the traditional viewpoint that loose coupling is to be preferred.)

The eudev project launches

Posted Dec 18, 2012 18:29 UTC (Tue) by HelloWorld (guest, #56129) [Link] (3 responses)

> Because new versions of udev contain new libudev APIs, and applications can depend on those. Were it not for eudev, we'd be required to upgrade the kernel in order to run such applications.
You have a point, but I don't think that this is a good reason to fork udev. As Cyberax pointed out (https://lwn.net/Comments/529570/), that kind of thing can be done within a branch. Git makes this kind of work flow quite easy, and eglibc has shown that such an approach can work.

The eudev project launches

Posted Dec 18, 2012 19:14 UTC (Tue) by dlang (guest, #313) [Link] (2 responses)

There's no difference between a branch that's managed by different people and a fork.

The eudev project launches

Posted Dec 18, 2012 20:09 UTC (Tue) by nix (subscriber, #2304) [Link]

Quite. That is to say, there is no difference *at all* -- the version control system model is identical. The people behind this just think that saying 'eudev' is easier than saying 'the Gentoo udev git repository' all the time.

The eudev project launches

Posted Dec 18, 2012 22:21 UTC (Tue) by HelloWorld (guest, #56129) [Link]

I disagree. PREEMPT-RT is a branch, it's not maintained by Linus, but it's not what I'd call a fork either.

The eudev project launches

Posted Dec 18, 2012 7:02 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link]

It's OK to fork a project if it's dead or if its maintainers are too slow/abusive/unresponsive. Nobody really argued that forking glibc by Debian was a hostile move because glibc's maintainers were well known for their, shall we say, nice demeanor. However, in this case udev's upstream is responsive and mostly sane. I've been following udev's mailing lists and it appears that they have a normal working relationship with distributions.

Well, udev developers do appear a little bit unstable and it looks like they enjoy conducting cruel medical experiments on unsuspecting users. So maintaining official stable _branches_ of udev with backported fixes and updates would be great idea. Perhaps even a branch with some additional patches for a separate build system, etc.

But that's not what eudev does. Its developers basically took udev, made a few dumb changes (kmod revert), changed license and sticked their names all over the project.

The eudev project launches

Posted Dec 18, 2012 9:24 UTC (Tue) by GhePeU (subscriber, #56133) [Link] (2 responses)

Who died and made Adam Jackson supreme guide?

If they think Linux is about choice and they want to spend their time to allow other to choose, who are you to tell them they can't?

The eudev project launches

Posted Dec 18, 2012 18:44 UTC (Tue) by HelloWorld (guest, #56129) [Link] (1 responses)

> If they think Linux is about choice and they want to spend their time to allow other to choose, who are you to tell them they can't?
I only said that I think it's a stupid idea. In what universe does that imply I'm telling people what they can or can't do?

The eudev project launches

Posted Dec 19, 2012 7:50 UTC (Wed) by GhePeU (subscriber, #56133) [Link]

Oh, sorry. My delicate sensibility was so distracted by the pile of abuse you showered on the eudev developers that I must have misinterpreted what you were trying to say. Of course you're perfectly ok with other people spending their time how they want, how could I have thought otherwise.

The eudev project launches

Posted Dec 18, 2012 13:38 UTC (Tue) by nye (subscriber, #51576) [Link] (24 responses)

>I can't stand this "choice" crap any more. Adam Jackson put it better than I could:

Then use Windows and strop trolling FFS.

(BTW I think Adam Jackson's poisonous opinion expressed there is probably the single most damaging thing that has been done to Free Software in history; at the very least it is utterly, insanely, disastrously, self-destructively, indefensibly wrong.)

The eudev project launches

Posted Dec 18, 2012 13:56 UTC (Tue) by nye (subscriber, #51576) [Link] (23 responses)

I'll expand upon this a little.

If we look at the four freedoms defined by the FSF, they are *all* about choice and control - control being essentially the ability to exercise one's choice.

By disavowing choice, one rejects the fundamental ideals of Free Software; by spreading that idea, one is engaged in an attack on the entire concept of Free Software.

This very thread contains numerous examples of attacks on a project for choosing to exercise those freedoms, and it is typical of the 'Linux is not about choice' meme that has been spreading like a cancer for the last few years.

The eudev project launches

Posted Dec 18, 2012 14:16 UTC (Tue) by rahulsundaram (subscriber, #21946) [Link] (21 responses)

If you are look at the context, we are not talking about individual freedoms to fork which is what FSF is all about but the cost of forks in terms of integration, interface compatibility, bug fixes etc and that is often something that is overlooked. If you are willing to take up all the cost of the fork singularly, that's fine and it's your freedom to do so but when you are asking other developers or distributions to support two or three different alternatives at the same time, that is a maintenance burden and something we need to work on reducing.

The eudev project launches

Posted Dec 18, 2012 16:29 UTC (Tue) by hummassa (guest, #307) [Link] (20 responses)

> that is a maintenance burden and something we need to work on reducing.

That is the part of the "Linux is not about choice" meme that I don't understand. No distro is made at gunpoint to bear the burden of all the different choices; just the popular ones.

And besides that, if we want to reduce maintenance burden, let's stay with sysvinit (that is, or at least was, pratically stable) and udev (that was pratically stable too, before being integrated into systemd), and try to develop other stuff. But nooooo, wee iss enviousss of OSX's init system, my precioussss....

The eudev project launches

Posted Dec 18, 2012 17:53 UTC (Tue) by rahulsundaram (subscriber, #21946) [Link] (3 responses)

It is not just the distributions that have to deal with it. It is also developers and ISV vendors and so on. It affects the entire ecosystem. forks in system components often have a serious cost. systemd isn't a fork and you are utterly silly if really think Fedora, SUSE, RHEL, Arch Linux etc are switching to it because of OS X envy.

The eudev project launches

Posted Dec 18, 2012 20:12 UTC (Tue) by nix (subscriber, #2304) [Link] (2 responses)

Forks in system components have a serious cost if they have ABIs or APIs on which a lot of things depend, and if those APIs diverge. Neither of these things are true of udev/eudev, and udev's constant churn and endlessly changing requirements is *already* having a serious enough cost on a lot of people that we have ceased updating some time ago. I am personally glad that some development is being done by people who care about the cost of upgrade to people who may not have Fedora's resources or Fedora's apparent happiness with breaking booting every five minutes when upgrades happen.

It doesn't hurt you, and it helps others. Why are you so opposed?

The eudev project launches

Posted Dec 18, 2012 20:29 UTC (Tue) by rahulsundaram (subscriber, #21946) [Link]

Someone asked why forks can be a problem and I answered that. The concerns over eudev are quite different and has been thoroughly addressed already. Let's not rehash that here.

The eudev project launches

Posted Dec 20, 2012 15:01 UTC (Thu) by daniels (subscriber, #16193) [Link]

> Forks in system components have a serious cost if they have ABIs or APIs on which a lot of things depend, and if those APIs diverge.

I agree, but I also define the ABI as pretty much the entire consumer-visible behaviour of the stack, rather than what's in a header file. Even if you do a straight like-for-like reimplementation, you're bound to end up with subtle differences in behaviour that will trip up unsuspecting users.

The eudev project launches

Posted Dec 19, 2012 9:13 UTC (Wed) by anselm (subscriber, #2796) [Link] (15 responses)

And besides that, if we want to reduce maintenance burden, let's stay with sysvinit (that is, or at least was, pratically stable)

One of the more important selling points of systemd is that it replaces the baroque shell scripts sysvinit uses to control daemons, which are usually distribution-specific and a major nuisance to maintain, with fairly simple declarative configuration files that distributions generally do not need to customise. This has the potential to reduce the maintenance burden in a noticeable way.

Sysvinit is only »stable« because it is essentially dead.

The eudev project launches

Posted Dec 19, 2012 11:00 UTC (Wed) by hummassa (guest, #307) [Link] (14 responses)

> One of the more important selling points of systemd is that it replaces the baroque shell scripts sysvinit uses to control daemons, which are usually distribution-specific and a major nuisance to maintain, with fairly simple declarative configuration files that distributions generally do not need to customise. This has the potential to reduce the maintenance burden in a noticeable way.

Neither systemd nor upstart are required to do that. This could have been done by an external tool, something like a streamlined version of start-stop-daemon, or ANYTHING but systemd/upstart. ANYTHING but something that replaces good old stable PID 1 /sbin/init with something not as good nor as old nor as stable.

I would even concede for a streamlined version of sysvinit (like s6 or some other?), something that has LESS funcionality and so, LESS opportunity for bugs.

> Sysvinit is only »stable« because it is essentially dead.

Yes! And as our colleague, nix, tried to say many times on this threads lately, that is A GOOD THING. Dead and stable, that's how you want your PID 1. No old bugs, no new bugs, no bugs. Just work, respawning services, keeping the "current system level", well, level, as it has worked for the last ten years or so, the whole time the machine is turned on. For each and every machine. Everything else is cruft.

The eudev project launches

Posted Dec 19, 2012 14:57 UTC (Wed) by nix (subscriber, #2304) [Link] (13 responses)

I'm not willing to go so far as to say that sysvinit has no bugs. It has no bugs that any significant number of people ever encounter, and it is reasonable to say after this long that it never will.

That is a *good* property -- even if, as others have pointed out to me, it really does more than a PID 1 needs to, and thus more than it should. Fixing that would also be churn, thus bad, for largely theoretical benefit.

The eudev project launches

Posted Dec 19, 2012 15:51 UTC (Wed) by andresfreund (subscriber, #69562) [Link] (9 responses)

If we were to follow that argument, we a) wouldn't have sysvinit today, b) cannot ever improve upon the status quo?

Sure, I also want more emphasis on reliability in critical pieces of software and I think there's quite something going wrong around that atm, but I find the extent of the argument youre making somewhat absurd.
If we were to follow this line of thought the kernel couldn't be developed either, its even more critical to the stability of the system than init.
And we all would be using microkernel designs. We know how well that one went.

The eudev project launches

Posted Dec 19, 2012 16:16 UTC (Wed) by nix (subscriber, #2304) [Link] (8 responses)

Er... I didn't say systemd is bad, nor did I say that you cannot develop software that runs as PID 1. I just said I'm not going to run it on any systems that matter because it's not safe enough, just as I wouldn't have run btrfs on important systems until it's had many years to bed down and get the bugs shaken out. Filesystem developers understand this, it is uncontroversial there. I can't understand why it is any less uncontroversial that the same apply to init systems.

The eudev project launches

Posted Dec 19, 2012 16:43 UTC (Wed) by andresfreund (subscriber, #69562) [Link] (7 responses)

Ok. Then I am sorry for understanding it that way.

But you *do* run new kernels, right? I think where I am left behind is the focus on init stability where that has to mean years of essentially not being touched at all while other essential parts are allowed to change in non-fundamental ways.
Note that for now I strive to avoid running systemd on essential systems as well as long as it doesn't mean significantly diverting from what the distro I have to use normally uses (and tests for) or what the local admins know well. Both has a higher chance of causing critical problems in my experience... But thats because it is - like btrfs - "fundamentally new" and not yet "incrementally new".

The eudev project launches

Posted Dec 19, 2012 17:00 UTC (Wed) by nix (subscriber, #2304) [Link] (6 responses)

It's a tradeoff.

I run new-ish kernels, I have to to get security fixes unless I want to run an ancient distro kernel or backport the fixes myself: I don't as a rule run anything that hasn't come out of the stable tree, on the grounds that this has had a lot more people running it than something that's just emerged from -rc: and even so it goes wrong about a third of the time when jumping to a new major kernel release and I have to scramble back down and submit a bug report, so if I could I would upgrade less often. (And sometimes it goes wrong on non-major upgrades within a single stable series, e.g. the ext4 corruption flap, though even that was actually introduced over a major version hop and I was just lucky not to get bitten for a few major releases. I have been bitten by typos and other bugs within stable series repeatedly, too.)

Upgrading the kernel brings not only security fixes -- so I have no choice but to upgrade -- but brings other advantages with it; right now, I'm seeing substantial increases in performance of my desktop's graphics card on every kernel release due to improvements in the Radeon KMS code. Changes to init bring what advantages? init does everything I need of it. Indeed, as I said, it could be argued that it does too much.

(For that matter, even if I had run a distro kernel until recently, I'd have been forced to stop, because e.g. Debian is still on 3.2.x and most distros are even older, and those kernels are too old to support said graphics card so I'd have lost X support, which I value rather a lot.)

The eudev project launches

Posted Dec 19, 2012 18:57 UTC (Wed) by man_ls (guest, #15091) [Link] (2 responses)

Also, kernel developers take extreme care to maintain backwards compatibility with user interfaces, precisely so that people can upgrade their kernels without worrying about regressions (well, about intended regressions at least). As far as other developers don't do the same, they will not see everyone upgrade as often as they would like to.

The eudev project launches

Posted Dec 19, 2012 19:33 UTC (Wed) by nix (subscriber, #2304) [Link] (1 responses)

Exactly. The kernel regresses a lot, but I know that none of those regressions are intentional, and I have never yet reported a regression and had anything but helpfulness from the famously robust and brutal kernel community. Say what you like, but when it comes to regression management, the kernel is not half bad nowadays. (One hardware-dependent network card lockup bug got repeatedly overlooked and headscratched over, but eventually solved -- it just took a year and a half before I figured out a way to get useful debugging out of it so that anyone else stood a chance. I had to make do with an obscure and ugly workaround in the meantime, but the workaround was given to me in only hours after the initial report.)

The eudev project launches

Posted Dec 19, 2012 20:04 UTC (Wed) by andresfreund (subscriber, #69562) [Link]

I totally agree on this. As long as you do your part by far most of the kernel devs are *awesome* in fixing bugs. Up to giving you custom code that could possibly recover your lost data due to a fringe bug...

That attitude makes me hell of a lot more forgiving/accepting when facing problems or not totally thought through designs.

The eudev project launches

Posted Dec 21, 2012 2:45 UTC (Fri) by mathstuf (subscriber, #69389) [Link] (2 responses)

> and even so it goes wrong about a third of the time when jumping to a new major kernel release and I have to scramble back down and submit a bug report

I have less issues than that running Rawhide. Is this on your development machine(s) or some special use-cased machine (e.g., database server, heavily loaded machine, etc.)? Do you typically do development closer to the kernel such that it matters more? The things I use constantly that depend highly on the kernel tend to be VirtualBox-OSE or GPU drivers. Other than that, GCC, Python, and Boost are probably my biggest on-upgrade problem causers.

The eudev project launches

Posted Dec 21, 2012 9:35 UTC (Fri) by nix (subscriber, #2304) [Link] (1 responses)

It's my dev box, yes (or rather the server which runs my development VMs and Emacs, since I don't actually like rebooting that much: it also happens to be a router between two halves of my local net).

I'd say that 90% of the issues on that machine have been NIC related. If I could have gone back in time to the time I bought the box and picked something other than an e1000e, I would have -- not only did this allegedly server-class box (with ECCRAM and hardware RAID) come with what turned out to be workstation-class 82574Ls wired into the motherboard, the things have had at least two nasty (link dead after a while, reboot required) unfixable firmware bugs requiring driver workarounds, and have had at least three bugs in the drivers breaking things like jumbo frames (which doesn't seem too bad until you realise that the *other* machines on the same subnet will still be using jumbo frames, whoops). I actually have to keep an eye on the log for drivers/net/e1000e these days to make sure that nothing *else* broke on each release. Probably as many as 75% of my upgrade problems come down to that one model of NIC on that one machine. (And yes, I report these problems when uncovered unless someone else has done so first.)

Perhaps the out of tree drivers would work better, but I have a general rule never to use out of tree drivers unless absolutely unavoidable -- the pain factor is just too high, particularly since I prefer non-modular kernels, especially for something critical to system function like the network card.

The question is, are there any gigabit NICs out there which don't suck? r8169 seems OK at first sight but has had rumours of very bad performance in the past, and even security problems where people able to send arbitrary Ethernet packets can cause the card to DMA over arbitrary memory.

'cos it's sort of stupid that with all this advanced and complex hardware in modern machines, and with rarely-used stuff like an Areca RAID card in one machine, the piece of hardware which causes me most trouble is not any of that but a widely-used model of NIC.

The eudev project launches

Posted Dec 21, 2012 17:50 UTC (Fri) by mathstuf (subscriber, #69389) [Link]

If it's related to poorly supported hardware, that makes it more understandable as to why I've not had such issues enough to make me feel like I'm risking weeks of "fixing the machine" stuff by running Rawhide.

I did had to keep building the rtl8192se drivers from staging to get my netbook to do much of anything with wireless (and they were flaky, but that's better than nothing). Luckily it's upstream now and the only problem has been that I had a wired interface listed first in the list of interfaces wpa_supplicant was to manage (who knew that wired interfaces didn't support WPA2 :) ). Other than that, things have been fairly solid from kernel land.

As for non-sucky gigabit NICs, I think my desktop machines have the support, but I don't think the rest of the stuff I use supports it, so maybe the gigabit-ness parts never got tickled.

The eudev project launches

Posted Dec 19, 2012 18:08 UTC (Wed) by hummassa (guest, #307) [Link] (2 responses)

> It has no bugs that any significant number of people ever encounter, and it is reasonable to say after this long that it never will.

This is statistically equivalent to saying "no bugs"; it's like saying "today a meteor will not end all life on Earth" when the rigorous phrasing would be "with 99,99% certainty, there is a probability of less then 0,00001% that a meteor will today end all life on Earth".

But re-reading my post, I understand that it can be construed as saying "nix said that sysvinit has no bugs at all". And, for the record, you didn't, so I stand corrected!

The eudev project launches

Posted Dec 19, 2012 19:41 UTC (Wed) by nix (subscriber, #2304) [Link] (1 responses)

Quite. My pedantry is on a high-power kick today, I'm afraid!

The eudev project launches

Posted Dec 20, 2012 15:50 UTC (Thu) by hummassa (guest, #307) [Link]

Not to worry about -- the poisonous atmosphere of this whole discussion and affair kind of warrants it.

The eudev project launches

Posted Dec 18, 2012 19:44 UTC (Tue) by HelloWorld (guest, #56129) [Link]

Now this is something that most people don't seem to grok: Just because it's a good thing we're allowed to do something doesn't mean it's a good idea to do it. There are dozens of examples for this, both within and outside of software development. I leave it up to you to think of a few.

And this applies here. Being allowed to fork is a good thing. But there's a cost associated with forks and it's larger than most people seem to realise, and thus people should think long and hard before forking. The eudev maintainers don't give me the impression of having done that.

The eudev project launches

Posted Dec 18, 2012 15:45 UTC (Tue) by Wol (subscriber, #4433) [Link] (1 responses)

KDE made a big point of saying "4.0 means we've frozen the api, so that the app developers can now work to a fixed target".

The fact that far too many people with a voice but no ears started screaming "4.0 - new - shiny - but where are the apps?" wasn't KDE's fault. Maybe they should have called it 3.99.

Cheers,
Wol

The eudev project launches

Posted Dec 18, 2012 20:17 UTC (Tue) by HelloWorld (guest, #56129) [Link]

> The fact that far too many people with a voice but no ears started screaming "4.0 - new - shiny - but where are the apps?" wasn't KDE's fault.
Otoh it was KDEs fault that they called an utterly broken piece of software that was crashing all the time "4.0". 4.0 suggests that it's ready to use, yet it was nowhere near.

> Maybe they should have called it 3.99.
Definitely.

The eudev project launches

Posted Dec 20, 2012 19:40 UTC (Thu) by Jandar (subscriber, #85683) [Link] (4 responses)

> You can't fix poorly-chosen terminology by explaining it afterwards, it just doesn't work. KDE got a huge amount of flak for calling a beta release "4.0".

KDE got a huge amount of flak even though the beta-status of 4.0 was announced beforehand.

excerpt from http://www.commit-digest.org/issues/2007-12-30/ :

Before everyone starts to spread their opinion about KDE 4.0, let me spread some reminders:
KDE 4.0 is not KDE4 but only the first (4.0.0 even non-bugfix) release in a years-long KDE 4 series to come.
KDE 4.0 is known to have missing parts or temporary implementations (eg. printing, PIM, Plasma).
Most changes happened under the surface and cannot be discovered in a "30 minutes usage" review anyway.
User interfaces being unchanged in 4.0 compared to 3.5 may be still changed/improved during KDE 4 life time.
KDE 4.0 will not be the fastest KDE 4 release - like for KDE 2 most speed optimizations will happen later during KDE 4.
Most applications (many are not even fully ported yet) will take only advantage of new features which the new Qt/KDE libraries offer later.
Don't measure portability success (eg. MS Windows) by current availability of application releases, they will come.
KDE 4.0 is only expected to be used by early adopters, not every KDE 3.5 user (and IMHO KDE 4.0 shouldn't be pushed onto other user types like planned for Kubuntu ShipIt (which by the way is said to have only 6 months support for its packages)).
KDE 4.1 development will not require the same amount of time as the big technology jump of KDE 4.0: expect KDE 4.1 later this year.
Last, again: KDE 4.0 is not KDE 4.

The eudev project launches

Posted Dec 20, 2012 20:02 UTC (Thu) by bronson (subscriber, #4806) [Link] (1 responses)

Please. All this has been hashed out to death and ignored before.

The KDE4 lesson is simple: if something's not ready for release, don't put a .0 on it.

People don't read disclaimers. Nor should they have to.

The eudev project launches

Posted Dec 20, 2012 22:14 UTC (Thu) by Jandar (subscriber, #85683) [Link]

> People don't read disclaimers. Nor should they have to.

Average people shouldn't forced to read disclaimers but distribution maintainers should. Distributing KDE 4.0 was a irresponsible decision for any distribution catering normal users.

The eudev project launches

Posted Dec 20, 2012 21:07 UTC (Thu) by HelloWorld (guest, #56129) [Link]

> KDE got a huge amount of flak even though the beta-status of 4.0 was announced beforehand.
You really don't get it, do you? Nobody reads that crap you've been quoting. It's really, really simple: if it's not a proper release, don't call it 4.0. No ifs, no buts, just don't do it.

The eudev project launches

Posted Dec 20, 2012 21:12 UTC (Thu) by HelloWorld (guest, #56129) [Link]

I just realised that that quote even clearly says that KDE 4.0 is meant to be used:

> KDE 4.0 is only expected to be used by early adopters
An early adopter is *not* a beta tester and shouldn't be treated as such.

The eudev project launches

Posted Dec 17, 2012 2:04 UTC (Mon) by gfa (guest, #53331) [Link] (3 responses)

> You still can do this. kmod doesn't prevent you from using modprobe to
> your heart's delight.

kinda it does,

0 io:~# modprobe -l
modprobe: invalid option -- 'l'
1 io:~# dpkg -S `which modprobe`
kmod: /sbin/modprobe

kmod replaced module-init-tools everywhere. anyway it is an 'issue' with kmod and not (e)udev

The eudev project launches

Posted Dec 17, 2012 2:11 UTC (Mon) by Cyberax (✭ supporter ✭, #52523) [Link] (2 responses)

WORKSFORME - on Ubuntu 12.10 and on the recent Debian. Perhaps you haven't installed module-init-tools?

The eudev project launches

Posted Dec 17, 2012 2:27 UTC (Mon) by gfa (guest, #53331) [Link]

is getting off topic

> WORKSFORME - on Ubuntu 12.10 and on the recent Debian. Perhaps you
> haven't installed module-init-tools?

module-init-tools 9-2 transitional dummy package (module-init-tools to kmod)

debian wheezy, up to date. i don't have an ubuntu system to check. i will check asap

thanks

The eudev project launches

Posted Dec 17, 2012 2:42 UTC (Mon) by apoelstra (subscriber, #75205) [Link]

> WORKSFORME - on Ubuntu 12.10 and on the recent Debian. Perhaps you haven't installed module-init-tools?

I've got module-init-tools installed on Beefy Miracle and 'modprobe -l' also doesn't work for me. I didn't realize until this thread that kmod was responsible for breaking it.

The eudev project launches

Posted Dec 17, 2012 5:12 UTC (Mon) by demarchi (subscriber, #67492) [Link] (4 responses)

modprobe -l was already deprecated in module-init-tools. Its implementation could be very well replaced by things like:

find /lib/module/$(uname -r) -name '*.ko' | grep your-module

See its man page: http://linux.die.net/man/8/modprobe.

We may actually provide an alternative implementation in kmod that works better than what module-init-tools provided, but no one had enough interest to implement it yet.

By the way, AFAIR this was usually used to check "where is the file for kernel module XYZ?" This can be better done by modinfo.

The eudev project launches

Posted Dec 17, 2012 9:46 UTC (Mon) by gfa (guest, #53331) [Link] (2 responses)

i remember that feature being deprecated (but worked) on module-init-tools

can you tell me why it was deprecated? what was the issue with it? i only saw the deprecation notice, but never the rationale behind

thanks

The eudev project launches

Posted Dec 18, 2012 7:38 UTC (Tue) by jamesh (guest, #1159) [Link] (1 responses)

You could read the man page, which states "This option is provided for backwards compatibility and may go away in future: see find(1) and basename(1) for a more flexible alternative".

So presumably they felt it was better to direct people to use standard shell tools.

modprobe -l replacement

Posted Dec 19, 2012 5:04 UTC (Wed) by pr1268 (guest, #24648) [Link]

For those who need a non-deprecated version: the shell command

find /lib/modules/$(uname -r) -name "*.ko" -printf "%P\n"
gives the same result as
modprobe -l
albeit in a different sort order (at least on my laptop). I'm unsure where basename(1) fits into all this.

The eudev project launches

Posted Dec 17, 2012 10:50 UTC (Mon) by zuki (subscriber, #41808) [Link]

> By the way, AFAIR this was usually used to check "where is the file for
> kernel module XYZ?" This can be better done by modinfo.

I don't think so: most people (me included) use it to generate a list of modules or to remind oneself about the name of some module. Using 'find' is of course possible, but much less convenient.

The eudev project launches

Posted Dec 21, 2012 7:42 UTC (Fri) by felipec (guest, #75494) [Link]

The kmod changes are *optional*, how is that hard to understand? Build eudev with --enable-kmod and you have *exactly* the same behavior as original udev.

The eudev project launches

Posted Dec 18, 2012 18:28 UTC (Tue) by mirabilos (subscriber, #84359) [Link] (1 responses)

Me too, but what I read about this on the list and what I know about the maintainers involved leaves open few hope.

I will do a GR against a systemd-only Debian, though, if it comes to that.

The eudev project launches

Posted Dec 20, 2012 5:47 UTC (Thu) by smurf (subscriber, #17840) [Link]

Since systemd will not work on BSD and Hurd kernels, there probability that somebody would try to force Debian to not support any other init systems is slim to nonexistent.

OTOH, a policy change which requires systemd support (there are, for instance, a few packages whose init scripts don't use the standard LSB functions) is something I'd appreciate.

So, what are they doing about kmod?

Posted Dec 17, 2012 1:55 UTC (Mon) by mmonaco (guest, #84041) [Link] (1 responses)

The solution to kmod-related problems is unclear from that announcement.

Are they going to maintain a forked kmod? Use module-init-tools again? Work around kmod issues?

So, what are they doing about kmod?

Posted Dec 17, 2012 21:46 UTC (Mon) by Homer512 (subscriber, #85295) [Link]

module-init-tools. Since it wasn't broken it won't be fixed.

The eudev project launches

Posted Dec 17, 2012 4:16 UTC (Mon) by cyanit (guest, #86671) [Link]

> The introduction of kmod eliminated the 0.01 ms fork() overhead, and
> consequently required each module to be loaded sequentially.

Maybe they should use threads or AIO?

The eudev project launches

Posted Dec 17, 2012 4:42 UTC (Mon) by josh (subscriber, #17465) [Link] (35 responses)

> The systemd developers are uninterested in providing full support in udev to systemd alternatives.

Apart from one offhand comment *wishing* for the ability to drop support for other init systems in the future, presumably if and when systemd becomes sufficiently universal, I've seen no signs that udev has anything less than full support for other init systems.

The eudev project launches

Posted Dec 17, 2012 7:10 UTC (Mon) by bangert (subscriber, #28342) [Link]

i agree.

the other argument in the paragraph quoted before this sentence was news to me. i can see how dropping support for kernels as recent as 2.6.32 can be a problem for rolling release distributions like gentoo.

perhaps udev really needs to be merged into the kernel though ;-)

The eudev project launches

Posted Dec 17, 2012 15:11 UTC (Mon) by prometheanfire (subscriber, #65683) [Link] (33 responses)

One way to think about this is hedging our bets.

The eudev project launches

Posted Dec 17, 2012 15:37 UTC (Mon) by Kit (guest, #55925) [Link] (32 responses)

Seeing as it could be forked at any point, is there really much of a reason to fork at this point, rather than trying to contribute upstream until upstream becomes inhospitable? This just seems like a divisive and premature decision.

The eudev project launches

Posted Dec 17, 2012 16:01 UTC (Mon) by prometheanfire (subscriber, #65683) [Link] (31 responses)

Well, seeing as how upstream is becoming inhospitable I guess it was time to fork.

The eudev project launches

Posted Dec 17, 2012 16:41 UTC (Mon) by rahulsundaram (subscriber, #21946) [Link] (29 responses)

what contributions were rejected?

The eudev project launches

Posted Dec 17, 2012 17:11 UTC (Mon) by koenkooi (subscriber, #71861) [Link]

The better question is: what contributions were actually sent to the relevant mailinglists?

You can't claim rejection if you haven't sent anything.

The eudev project launches

Posted Dec 18, 2012 19:59 UTC (Tue) by prometheanfire (subscriber, #65683) [Link] (27 responses)

I haven't kept a full list, but here is one thing.

http://www.mail-archive.com/systemd-devel@lists.freedeskt...

The eudev project launches

Posted Dec 18, 2012 20:48 UTC (Tue) by rleigh (guest, #14622) [Link] (22 responses)

The bad attitude on the part of the systemd developers here is quite incredible... but was entirely predictable even before udev was merged into systemd. It was clear that udev standalone would be a poorly-supported stepchild, and deliberately rejecting patches which permit users to just build udev alone beggars belief! This lack of accommodation for entirely legitimate use cases is harmful, and will drive a wedge through the Linux ecosystem. Forcefully ramming systemd down our throats at each and every opportunity is not winning you any friends from over on this side of the fence... not cool.

It's things like this that will actively spur the creation of forks like eudev. And while I think in general forking is bad, when treated to such assholery, is there really an alternative? Just sad all around.

The eudev project launches

Posted Dec 18, 2012 21:48 UTC (Tue) by HelloWorld (guest, #56129) [Link] (19 responses)

> It was clear that udev standalone would be a poorly-supported stepchild,
udev works perfectly fine without systemd, so stop spreading this kind of FUD.

> and deliberately rejecting patches which permit users to just build udev alone beggars belief!
The patch increases complexity in the build system and the benefit is totally negligible: it doesn't make *any* difference whatsoever at run time and only requires a few more packages to be installed at build time, which is a tiny inconvenience for a tiny group of people.

So, in your world, rejecting that kind of patch justifies calling other people assholes and accusing them of ramming things down your throat? You're right, this is
> Just sad all around.

The eudev project launches

Posted Dec 18, 2012 22:09 UTC (Tue) by rleigh (guest, #14622) [Link] (18 responses)

>> It was clear that udev standalone would be a poorly-supported stepchild,
>udev works perfectly fine without systemd, so stop spreading this kind of FUD.

It's not FUD when it's true. It's possible to /run/ but not /build/
udev alone without taking additional efforts to do so, you must build
systemd unless you patch it out or make it configurable (which this is
doing). Which is the whole crux of the discussion which you are
not-so-helpfully ignoring.

The fundamental point here is that the current state is not satisfying
a certainly number of users (and distributors). They wouldn't have
gone to the effort in making, testing and submitting a patch if they
didn't consider it important enough to do so. To not recognise that
this work was done to satisfy a legitimate need is explicitly
alienating these people when it would make a whole lot more sense to
accommodate them in this respect. It costs almost nothing to help
others and generates a whole lot of goodwill in the process, rather
than being all take and no give.

>> and deliberately rejecting patches which permit users to just build
>> udev alone beggars belief!

> The patch increases complexity in the build system and the benefit
> is totally negligible: it doesn't make *any* difference whatsoever
> at run time and only requires a few more packages to be installed at
> build time, which is a tiny inconvenience for a tiny group of
> people.

This group is likely greater overall, in terms of numbers building the
software, than for the binary-only distributions if you include
source-only distributions, embedded developers, etc. In terms of end
user counts, you are correct. But that does not mean the other use
cases are any less important or necessary, even if it's not of direct
interest to the core developers.

It's not like the complexity of configure switches and conditional
compilation is at all high. And this doesn't even factor in that it
should have been doing this from the start.

> So, in your world, rejecting that kind of patch justifies calling
> other people assholes and accusing them of ramming things down your
> throat?

It only appears to occur repeatedly in the case of systemd, and pretty
much only because its maintainers' bad attitude has not improved with
time. But yes, in this case I do think it's justified. In adopting
udev, they do have an obligation to keep this type of build working
since it /worked before/, and there are clearly users who /want/ and
/need/ such functionality. To not do so, and to do so deliberately
and intentionally, is greatly disrespectful and will cause unnecessary
fragmentation.

Roger

The eudev project launches

Posted Dec 18, 2012 23:06 UTC (Tue) by HelloWorld (guest, #56129) [Link] (1 responses)

> But yes, in this case I do think it's justified.
Well, you're wrong, and I certainly won't waste any more time with someone with such bad manners.

The eudev project launches

Posted Dec 18, 2012 23:48 UTC (Tue) by hummassa (guest, #307) [Link]

This discussion has been funny to watch because both sides are guilty of this same attitude: "I think something, and I don't have time to properly discuss it, so I will throw some arguments -- valid or not -- and I will call it quits."

The eudev project launches

Posted Dec 19, 2012 14:16 UTC (Wed) by mezcalero (subscriber, #45103) [Link] (15 responses)

Roger,

thank you for calling us assholes.

From time to time we do refuse patches. But when we do we attempt to give very precise explanations why we do that.

I know you are disappointed that we refused the patch that allowed building arbitrary subsets of systemd, and that we refused adopting this Debianism of moving /dev/shm to /run/shm (which I still think is a bad and unnecessary idea). These two items where high up on your personal wishlist. As such I can understand you are disappointed. However, there's no reason to constantly complain about our horrible attitude just because we refused two of your favourite patches.

One cannot always get what one wants. We don't always get that, and you don't get that. We do not fulfil all wishes from the community, but try hard to cover many. Please learn to accept that.

In our attempt to explain in detail what we suggest people to do, instead of merging the proposed split-up patch, we even put together a wiki page that explains how to build arbitrary subsets of systemd:

http://www.freedesktop.org/wiki/Software/systemd/MinimalB...

And that's what I mean with trying hard to explain why we do what we do. It's our attempt to accommodate for these specific requests. I am sorry if this is not 100% what you are asking for, but it would be cool if you could at least acknowledge that we tried to provide something similarly useful.

Following these guidelines you can build any subset you want. You can just build tmpfiles, or just detect-virt, or just udevd, or udevd with its helpers, or only the helpers, or only some helpers, it's entirely up to you.

Constantly calling us assholes and complaining about our attitude on debian-devel, on LWN and everywhere else just because we didn't give you *all* you wanted, but only *some* things, only makes you appear bitter, but will not help us respect you, will not convince us, or even make use the tiniest bit more receptive to your ideas. Right the opposite. Calling us assholes might just get you added to our list of crazy people we ignore by default.

Lennart

The eudev project launches

Posted Dec 19, 2012 16:31 UTC (Wed) by GhePeU (subscriber, #56133) [Link] (13 responses)

That wiki page is ridiculous. People tell you that they want to build only udev because they don't need the rest and they'd like to avoid installing all systemd dependencies just to get a system component that's not dependent on systemd at all and your answer is:

a) restating the problem as a solution
b) suggesting that they create arbitrary empty files who could change at any time if the dependencies list change and then mess with the environment, not exactly the easier thing to do for a build system (and it doesn't even work always!)

And finally you end by saying that you're open to all patches but the patch that would solve the problem. Remove that page, there's no need to mock people.

The eudev project launches

Posted Dec 19, 2012 16:58 UTC (Wed) by raven667 (subscriber, #5198) [Link]

> Remove that page, there's no need to mock people.

Seems like a fairly reasonable solution given the desire to keep the build system simple and not break the config for the core components. No one is being mocked or being sarcastic although a few people are acting very butt-hurt, spreading a lot of negativity with very little basis in reality as far as I can tell.

The eudev project launches

Posted Dec 19, 2012 17:22 UTC (Wed) by HelloWorld (guest, #56129) [Link] (11 responses)

> b) suggesting that they create arbitrary empty files who could change at any time if the dependencies list change and then mess with the environment, not exactly the easier thing to do for a build system (and it doesn't even work always!)
That is an appropriate kind of solution for a problem that is a) a minor nuisance more than anything else and b) affects only a tiny group of people. Some people choose to make their own lives hard by using a source-based distro, and they should live with the consequences. If you can't stand the heat, get out of the kitchen.

The eudev project launches

Posted Dec 19, 2012 17:33 UTC (Wed) by hummassa (guest, #307) [Link] (10 responses)

> affects only a tiny group of people

Nonsense, poppycock!

If "patch to build only udev" was something that "affects only a tiny group of people", you and Leonard wouldn't be here in LWN tying to defend the undefensable. If it was true, eudev would be something of use only for that "tiny group of people".

Regardless of any incorrectness or even downright falsehoods that may or may not be contained on eudev's announcement, the complexity of making and maintaining a ./configure flag "--udev-only" is irrisory. And still, Poettering came here and put up a wiki page (taking more time than he will ever take to make and maintain such flag) TO DEFEND THAT HE WILL NEVER ACCEPT SUCH PATCHES. Oh, come on!

As I said before, both sides are arguing like five-years-olds. Fingers in their ears, la-la-la-la-la. Pathetic.

The eudev project launches

Posted Dec 19, 2012 18:42 UTC (Wed) by HelloWorld (guest, #56129) [Link] (4 responses)

If "patch to build only udev" was something that "affects only a tiny group of people", you and Leonard wouldn't be here in LWN tying to defend the undefensable.

Let me get this straight: the fact that a handful of people on lwn.net flame Poettering is somehow a proof that there's more than a tiny fraction of linux users who care about this?

You can deny it, that won't change the facts: the vast majority of linux users use binary distros. Of those who use source-based distros, at least some use systemd as well, making the issue moot. Of those who use a source-based distro and don't want systemd, most require systemd's dependencies anyway and thus don't have a problem with installing them. Of those who use source-based distros and want neither systemd nor its dependencies, most are probably reasonable people who just get over it, install the dependencies, build udev and remove the dependencies again. So that's a fraction of a fraction of a fraction of a fraction of udev's users for whom this is a problem, and you're actually trying to convince others that that's not what one would call a tiny group?

the complexity of making and maintaining a ./configure flag "--udev-only" is irrisory.
It's easy for you to say that as you don't have to do the work. You should leave that decision to those who do.

The eudev project launches

Posted Dec 19, 2012 19:30 UTC (Wed) by hummassa (guest, #307) [Link]

> It's easy for you to say that as you don't have to do the work. You should leave that decision to those who do.

Let's do exactly THAT: welcome eudev into the community, and all is Ok. Because that is what eudev developers are doing (taking the decision, doing the work).

The eudev project launches

Posted Dec 19, 2012 19:31 UTC (Wed) by hummassa (guest, #307) [Link] (2 responses)

> Let me get this straight: the fact that a handful of people on lwn.net flame Poettering is somehow a proof that there's more than a tiny fraction of linux users who care about this?

No, but the fact that he personally feels like he has to respond seems like a hint.

The eudev project launches

Posted Dec 22, 2012 12:42 UTC (Sat) by ovitters (guest, #27950) [Link] (1 responses)

Your behaviour towards Lennart is really poor. hint: he corrected claims. you just suggest bad intend. Meaning, getting personal, yet again.

The eudev project launches

Posted Dec 23, 2012 3:16 UTC (Sun) by hummassa (guest, #307) [Link]

You should re-read the whole thread.

The eudev project launches

Posted Dec 19, 2012 20:23 UTC (Wed) by mezcalero (subscriber, #45103) [Link] (4 responses)

You know, what you are missing here is that people who go minimalist enough to only want udev from the systemd tree and nothing else, usually don't stop there and want even less than "all of udev" too. i.e. they want some of the helpers and not all, i.e. why would I need the accelerometer helper on my server or the MTD prober on my desktop?

Similar, some folks want only tmpfiles, or only detect-virt or some of the other stuff...

And you know if you then try to accommodate of making all these things optional and selectable specifically at configure time then you necessarily end up with a makefile where every second line is ifdef'ed in by a different configure switch, and even the .c sources are littered with #ifdef HAVE_xxx sections. And that is a) very hard to read and maintain, b) impossible to test in all combinations (explodes the test matrix...), and c) entirely unnecessary, as "make" is already good enough to allow people to build exactly what they need and what they don't want. And yeah, I have no interest in maintaining such a beast, especially since it makes our life harder and gains us nothing.

Anyway, calling us pathetic, and five-year olds also doesn't really make use take you seriously.

Also, to clarify one thing: I don't really care whether somebody forks udev, quite frankly I am quite happy if they do so that they can deal with people like felipec, barbato or rulgard, and I don't have to. What I am annoyed about though is the FUD and falsehoods they spread while doing so. Most specifically their constantly repeated claim that udev upstream wouldn't allow non-initrd with /usr split off, even though we each time point out that udev doesn't care and it's other software that will break, not udev.

But anyway, I'll leave it at this. It's unlikely I'll change you mind on things, and quite frankly you are not really succeeding to change mine either...

Lennart

The eudev project launches

Posted Dec 20, 2012 0:09 UTC (Thu) by nix (subscriber, #2304) [Link]

And you know if you then try to accommodate of making all these things optional and selectable specifically at configure time
You mean like the helpers already were? I suppose that's been taken out now, too.

The eudev project launches

Posted Dec 20, 2012 0:29 UTC (Thu) by hummassa (guest, #307) [Link]

> And you know if you then try to accommodate of making all these things optional and selectable specifically at configure time then you necessarily end up with a makefile where every second line is ifdef'ed in by a different configure switch, and even the .c sources are littered with #ifdef HAVE_xxx sections. And that is a) very hard to read and maintain, b) impossible to test in all combinations (explodes the test matrix...), and c) entirely unnecessary, as "make" is already good enough to allow people to build exactly what they need and what they don't want.

This is a real nice argument; except maybe for the part that you wouldn't be forced to think and make the patch nor maintaining it working (you could shift the responsability that half of the test matrix to the other, more interested, part). Your thing, when a patch like that comes, would be to overlook it, apply it, test *your* side of the test matrix and voilà.

> And yeah, I have no interest in maintaining such a beast, especially since it makes our life harder and gains us nothing.

This is the Most Honest part of your argument. "I am not in the mood, MY code (the code I have to look at from time to time) will get uglier, and it's mine, so I won't do it."

> Anyway, calling us pathetic, and five-year olds also doesn't really make use take you seriously.

Let's be honest here: I called BOTH sides of the discussion pathetic five-year olds; if you can't re-read this whole discussion, take a little distance and see how it is funny, I hate to tell you but you could use some sense of humour. I don't want to be taken seriously -- I want you (and by you, again, I mean both sides of this discussion) to perceive no one is really taking you seriously when you start bickering and sidetracking and trhowing tantrum fits. And this (bickering/sidetracking/tantrums, not being seen as serious) is a BIG loss to the Free Software Community as a whole; so you might want to consider that...

> Also, to clarify one thing: I don't really care whether somebody forks udev, quite frankly I am quite happy if they do so that they can deal with people like felipec, barbato or rulgard, and I don't have to. What I am annoyed about though is the FUD and falsehoods they spread while doing so. Most specifically their constantly repeated claim that udev upstream wouldn't allow non-initrd with /usr split off, even though we each time point out that udev doesn't care and it's other software that will break, not udev.

That is Ugly and Wrong. And that is the pathetic five-year olds part for the other side of the discussion.

Free Software does not need a REASON to be forked: the answer to "we have a team of developers and some infrastructure, we think we could do better maintaining this" is "Good! Be my guest! If it's copyleft, just distribute the source and all is well, maybe you will do a good job and I will use your commits here too!"

> But anyway, I'll leave it at this. It's unlikely I'll change you mind on things, and quite frankly you are not really succeeding to change mine either...

I never intended to change your mind. Even if I don't personally like systemd -- for the reasons I stated elsewhere in this thread, I admire your hard work and I am thankful for it. I just wished (before) that you were more accomodating, but you are not up to it, and there is nothing I can do about it. Now, eudev is a reality, and we all continue to win.

The eudev project launches

Posted Dec 20, 2012 4:14 UTC (Thu) by nevets (subscriber, #11875) [Link] (1 responses)

> And you know if you then try to accommodate of making all these things optional and selectable specifically at configure time then you necessarily end up with a makefile where every second line is ifdef'ed in by a different configure switch, and even the .c sources are littered with #ifdef HAVE_xxx sections. And that is a) very hard to read and maintain, b) impossible to test in all combinations (explodes the test matrix...)

Maybe you should have a look at the Linux kernel. It's probably the most configurable project that ever existed. The kernel has matured where we don't have lots of #ifdef HAVE_xxx in the .c sources. We do put them into the .h files, where a static inline may act differently depending on the configs set. It's actually quite an elegant solution.

I based my Makefile for trace-cmd and kernelshark partially off of the Linux kbuild system. It's much more versatile and easier to understand than autoconf. I should work on making the kbuild system available for other projects as well. Package it up and reuse it.

Yes, we don't test all the different config options either, but you test what you ship. If someone finds a set of options that break, it's not that difficult (or time consuming) to fix it. I know this from experience as well.

I left off 'c)' because it was entirely an opinion, and not a technical issue at all.

The eudev project launches

Posted Dec 21, 2012 7:35 UTC (Fri) by felipec (guest, #75494) [Link]

Completely true, in fact, there are other projects using Linux's kbuild system; buildroot.

The only way to make a software project work for everyone, is to allow configuration options for everyone. If you don't, for laziness, or whatever reason; forks are bound to happen, as eudev demonstrates.

The eudev project launches

Posted Dec 19, 2012 18:35 UTC (Wed) by man_ls (guest, #15091) [Link]

One cannot always get what one wants. We don't always get that, and you don't get that. We do not fulfil all wishes from the community, but try hard to cover many. Please learn to accept that.
The great thing about Free software is that everyone can get what they want, provided they wish it hard enough... to create and maintain a fork. No need to deny their ponies if they are going to feed them. A fork might even be less work for the main project given that it will accept patches otherwise rejected and avoid a bit of the bitterness.

The eudev project launches

Posted Dec 18, 2012 22:04 UTC (Tue) by raven667 (subscriber, #5198) [Link] (1 responses)

I don't know why such a simple, clear explanation of why this patch was rejected generates such hyperbole and apoplectic rage on your part. Explaining that splitting the makefiles would be fragile because of the additional complication involved and that while the build products are separable the build process is unified hardly seems like "asshoery". I'm not sure how this is supposed to be "forcefully ramming systemd down our throats" or how that is supposed to work with software? Does your computer get cooties if it builds some systemd binaries that you hold your nose and throw away at the end?

The eudev project launches

Posted Dec 18, 2012 22:42 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link]

>I'm not sure how this is supposed to be "forcefully ramming systemd down our throats" or how that is supposed to work with software?
It's a bit like kernel developers love to do with submitted patches.

Rejecting a patch because it's 'ugly' is a privilege reserved for kernelspace. All userspace patches must be immediately accepted even if they are butt-ugly in case they solve a kernel maintainer's problem.

The eudev project launches

Posted Dec 19, 2012 16:29 UTC (Wed) by raven667 (subscriber, #5198) [Link] (3 responses)

As a matter of academic interest I wonder what the problematic dependancies are? I just tried building systemd-196 on a couple of systems (CentOS 6.2, Ubuntu 12.04, Fedora 17) and, while I was not actually successful in any case (missing xattr.h from socket.c even though xattr support disabled), the dependancies I had to pull in were gperf, intltool, dbus-devel, libcap-devel, everything else was already on my system. I don't know of these dependancies are in addition to what udev needs, my guess is that gperf probably is, but in a lot of cases these other libraries are going to be on any default install Linux system because they are very widely used.

I'm sure it seems less elegant or offends some sense of "cleanliness" to build and depend on more than you are going to use, but how much of an actual technical problem is that going to be in reality?

The eudev project launches

Posted Dec 19, 2012 16:32 UTC (Wed) by prometheanfire (subscriber, #65683) [Link]

Given the way that package dependencies work in Gentoo it does present a problem. What should be two packages have to be combined because of their mangled build system.

The eudev project launches

Posted Dec 19, 2012 17:01 UTC (Wed) by nix (subscriber, #2304) [Link]

gperf and intltool are only build dependencies anyway, not runtime dependencies (of anything).

The eudev project launches

Posted Dec 20, 2012 16:40 UTC (Thu) by mbiebl (subscriber, #41876) [Link]

The xattr build issue is indeed a bug which has been fixed in [1]
Unfortunately this missed the v196 release.

[1] http://cgit.freedesktop.org/systemd/systemd/commit/?id=cf...

The eudev project launches

Posted Dec 18, 2012 14:27 UTC (Tue) by ovitters (guest, #27950) [Link]

Did you actually send something to the systemd mailing list. I lurk on that list, and the only issue that some people could be having is that the developers are really clear about their opinion. What you might miss due to culture is that *at the same time* they're open for different opinions (and IMO they make really clear that they're open for different opinions/arguments).

Maybe if you're used to only very subtle ways of communicating, it can appear as aggressive. In my view, it is useful and I see the same style more often in The Netherlands, Germany (any business communication) as well as technology related communication.

The eudev project launches

Posted Dec 17, 2012 4:58 UTC (Mon) by demarchi (subscriber, #67492) [Link] (6 responses)

> The introduction of kmod eliminated the 0.01 ms fork() overhead, and
> consequently required each module to be loaded sequentially. This
> imposes an overhead of 10 to 20 milliseconds times the number of
> modules, which is asymptotically worse than what it replaced. A feature
> of kmod intended to address that placed all modules into a single file,
> which would actually make things faster. However, none of our users use
> it and all of our users would suffer from it.

This paragraph is full of misconceptions.

a) kmod didn't eliminate the fork overhead, but rather the exec one (and not only the time of the exec syscall, but also the config parsing, index loading, etc). It's particularly important when the module is already loaded and all you want is to check it is actually loaded.

b) there's no way to load modules in parallel. Please check the kernel implementation of module_init before stating things like above. Exec'ing several instances of modprobe doesn't mean you are loading the modules in parallel.

c) Exec'ing modprobe is no better than using the library. Saying that while exec'ing modprobe you have all modules in "10ms ~ 20ms" vs "10ms ~ 20ms times the number of modules" is not true. And the use of "which is asymptotically worse than what it replaced" shows intention to distort data. Please, publish your measurements.

d) There's no such "all modules in a single file" feature in kmod. And if it had it would have *nothing* to do to any of the problems you mentioned. What udev uses is a cached version of resources, meaning config, index, etc. To be fair, there's such an item in the TODO of kmod, but it was from its early days and I'm totally baffled about you thinking that was implemented.

> In addition, the manner in which kmod was integrated has implications
> beyond speed regressions. The use of kmod by udev permits a buggy kernel
> module (possibly interacting with bad hardware) to hang in module_init.

Do you mean the firmware issue? It was fixed in different places, both in kernel and udev. Not an issue anymore. Otherwise, exec'ing modprobe doesn't give you any other guarantee the module will not fail on module's init.

The eudev project launches

Posted Dec 17, 2012 11:13 UTC (Mon) by gidoca (subscriber, #62438) [Link] (3 responses)

There is no way to load modules in parallel, but it would be possible to read the .ko files from disk in parallel. I think that's what happens when you call multiple instances of modprobe in parallel.

The eudev project launches

Posted Dec 17, 2012 15:05 UTC (Mon) by khim (subscriber, #9252) [Link] (1 responses)

Why would you want that? If it's spinning rust then it's not a good idea at all and if it's an SSD then speedup will be unnoticeable.

The eudev project launches

Posted Dec 17, 2012 17:00 UTC (Mon) by gidoca (subscriber, #62438) [Link]

I'm not sure. Presumably you could read a module from disk while another is being init_module()d, which might make things slightly faster. I don't have enough insights into the inner workings of udev, kmod, modprobe and the kernel to tell if that would work, though. Also, it wouldn't have asymptotically better complexity, as was claimed by Richard.

The eudev project launches

Posted Dec 17, 2012 17:23 UTC (Mon) by s0f4r (guest, #52284) [Link]

Readahead already takes care of this, so there is little to no gain from duplicating the same functionality in udev.

The eudev project launches

Posted Dec 17, 2012 19:00 UTC (Mon) by vrfy (guest, #13362) [Link]

> The introduction of kmod eliminated the 0.01 ms fork() overhead, and
> consequently required each module to be loaded sequentially.

Sequentially?

Udev's workers are all fully async, run in parallel, and can call
module_init() all at the same time.

I really wonder how much you guys know about the project you try to maintain. :)

> This
> > imposes an overhead of 10 to 20 milliseconds times the number of
> > modules, which is asymptotically worse than what it replaced.

I mean, sure, I love simple explanations, but some things just aren't
that simple. This is as wrong as it can get. :)

The eudev project launches

Posted Dec 21, 2012 7:50 UTC (Fri) by felipec (guest, #75494) [Link]

I have a hang that happens very often, and it's not the "firmware issue".

The eudev project launches

Posted Dec 17, 2012 10:41 UTC (Mon) by GhePeU (subscriber, #56133) [Link] (2 responses)

After this thread, I'm not surprised they decided to fork.

"Embrace, extend and extinguish" was bad when Microsoft was doing it, and it doesn't become magically good when systemd does it.

The eudev project launches

Posted Dec 17, 2012 12:23 UTC (Mon) by HelloWorld (guest, #56129) [Link] (1 responses)

What precisely did systemd "extinguish"? Or is this just more anti-systemd FUD?

The eudev project launches

Posted Dec 17, 2012 14:40 UTC (Mon) by drago01 (subscriber, #50715) [Link]

That's just more anti change ^W system FUD.

The eudev project launches

Posted Dec 17, 2012 15:06 UTC (Mon) by ulissesf (guest, #57772) [Link]

I don't see any of the kmod related comments being sent to the mailing-list and discussed. Maybe there's lack of technical arguments for discussing and spreading FUD is just easier? This fork has a lot of that, if you ask me, specially after seeing people involved don't seem to understand the subject to be able to do the work. Too bad Gentoo's name is being ashamed like this. :-/

Hostility in plain sight

Posted Dec 18, 2012 7:26 UTC (Tue) by man_ls (guest, #15091) [Link] (55 responses)

Why all the hostility towards eudev? It is just a fork. Forking is a fundamental right, and it doesn't have to be bad necessarily. On github, people fork projects to add features all the time. If the original udev can learn a trick or two from the fork, why not let them play for a while? And, even if nothing comes out of it, it is Gentoo (or the maintainers) who bear the burden of keeping a fork, not you.

There has to be some deep political background to this question, and I suspect the agenda is pushing systemd adoption. Red Hat is seeing their hegemony plans foiled by a myriad of projects such as upstart, eudev and so on; and they have to blame those other projects. After all, every project that Red Hat makes the default in Linux is another reason to hire Red Hat for its engineering knowledge of the plumbings of the platform.

This campaign cannot just be for technical reasons. Is there any other possible explanation?

Hostility in plain sight

Posted Dec 18, 2012 7:41 UTC (Tue) by neilbrown (subscriber, #359) [Link]

Well put! What are people afraid of that make them want to attack?

Hostility in plain sight

Posted Dec 18, 2012 8:02 UTC (Tue) by viro (subscriber, #7872) [Link] (42 responses)

Oh, it's political, all right, and it *is* about pushing systemd and allied turds as wide as possible, but AFAICS you are mistaking the self-interest of duhvelopers for dark corporate plans. I'm no telepath and I would've stayed as far as possible from those minds in any case, but there's a very simple (and ugly) mechanics involved:
* a project joining that group gets an extra leverage when it comes to pushing changes in past objections. Note that devtmpfs (a piece of code that shouldn't have been merged into mainline, optional or not) had been made mandatory by udev changes. In this case the maintainer is the same guy, but the same cross-reinforcement can work between the "vertically integrated" groups.
* any potential fork is going to play losing game against deliberate API changes. Note that there's libudev and I wouldn't bet a dime on such changes not being consciously used as a weapon.
* the more programs grow dependencies on that stuff, the more leverage these guys get.

IMO it's more about bypassing review than anything else. And it's attractive for some people, unfortunately. And then there are fanboys, but how *those* minds operate is something I won't speculate about.

Hostility in plain sight

Posted Dec 18, 2012 8:18 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link] (40 responses)

>And then there are fanboys, but how *those* minds operate is something I won't speculate about.
Pot. Kettle. Black.

Hostility in plain sight

Posted Dec 18, 2012 14:35 UTC (Tue) by viro (subscriber, #7872) [Link] (39 responses)

Explain. And unless I've misparsed you, you'd better have *very* good proof of what you are saying.

Hostility in plain sight

Posted Dec 18, 2012 17:36 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link] (38 responses)

You're just as comically hostile to the idea of systemd, cgroups and other modern infrastructure developments.

BTW, I'm going to buy GregKH a beer for devtmpfs - it has saved me a lot of time a couple of times.

Hostility in plain sight

Posted Dec 18, 2012 17:56 UTC (Tue) by nix (subscriber, #2304) [Link] (37 responses)

Er, Al's a minimalist who hates ugly code. All his opposition is understandable in light of that.

Hostility in plain sight

Posted Dec 18, 2012 20:11 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link] (32 responses)

Devtmpfs is as minimalistic as it gets. Yet he still hates it. Why?

Hostility in plain sight

Posted Dec 18, 2012 21:14 UTC (Tue) by nix (subscriber, #2304) [Link] (22 responses)

I don't know Al's reasons, but I know mine. It wires policy (device names) into the kernel, just like devfs used to: worse, you can't even change its decisions without hacking the kernel, since udev lost the ability to do a mknod or even a rename() on the nodes devtmpfs creates (sure, I'd agree that renaming /dev/zero is probably a bad idea, but that doesn't mean that *no* kernel-named device node is ever reasonable to rename: indeed I had several renamings that broke when I upgraded udev, with no fix other than kernel hacking or backing the change out of udev).

Also it is plain ugly and inelegant to have a filesystem that magically automounts itself on /dev, and even less elegant to have one that magically automounts itself if and only if you're not using an initramfs (and you've flipped the appropriate kernel config option and you haven't turned it off again on the command line and Saturn is in Taurus).

It's a nasty kludge. It may be necessary for huge installations with many thousands of block devices, but for the rest of us coldplugging worked perfectly well with undetectable delay and let us rename devices if we wanted to (not that devtmpfs broke that, udev userspace did).

Worse yet: amount of documentation in Documentation/ for this profoundly unusual filesystem: nil, as far as I can see. And where's the source code? Is it in fs/? No, it's in drivers/base, the last place one would ever expect to find a filesystem.

Hostility in plain sight

Posted Dec 18, 2012 21:58 UTC (Tue) by viro (subscriber, #7872) [Link] (1 responses)

Fortunately, I'd been able to stay with versions of udev that still work without that sucker (more recent ones whine about its absense, but that's it). The headache kernel-side had been there from the day it got merged...

IOW, your reasons are more about disliking current udev dependency on that thing. All valid, and devtmpfs has enabled that shite, but it's not entirely fair to blame devtmpfs itself for it.

That probably was the last time somebody got away with "it's just optional, don't enable it if you don't want it" kind of excuse at merge time, though...

Hostility in plain sight

Posted Dec 19, 2012 14:54 UTC (Wed) by nix (subscriber, #2304) [Link]

True enough. devtmpfs, if built in but not used, doesn't do any harm to me, and even if built in, it *is* possible to rename, delete and mknod nodes: it's just that udev threw that capability away.

Hostility in plain sight

Posted Dec 18, 2012 22:10 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link] (19 responses)

Device names should have been there from the start.

>you can't even change its decisions without hacking the kernel, since udev lost the ability to do a mknod or even a rename() on the nodes devtmpfs creates
????
You most certainly can rename kernel-created devices in udev scripts.

> It's a nasty kludge. It may be necessary for huge installations with many thousands of block devices, but for the rest of us coldplugging worked perfectly well with undetectable delay and let us rename devices if we wanted to (not that devtmpfs broke that, udev userspace did).
I'm using it on a small devices where it saves a lot of bother with mdev or static device nodes. Also, it has helped me a couple of times with the emergency recovery.

Hostility in plain sight

Posted Dec 19, 2012 14:53 UTC (Wed) by nix (subscriber, #2304) [Link] (18 responses)

You most certainly can rename kernel-created devices in udev scripts.
You cannot. From udev 154 NEWS:
Udev now gradually starts to pass control over the primary device nodes and their names to the kernel, and will in the end only manage the permissions of the node, and possibly create additional symlinks. As a first step NAME="" will be ignored, and NAME= setings with names other than the kernel provided name will result in a logged warning. Kernels that don't provide device names, or devtmpfs is not used, will still work as they did before, but it is strongly recommended to use only the same names for the primary device node as the recent kernel provides for all devices.
From udev 175 NEWS:
The 'devtmpfs' filesystem is required now, udev will not create or delete device nodes anymore, it only adjusts permissions and ownership of device nodes and maintains additional symlinks.
So, no creation, no removal, no renaming.

Hostility in plain sight

Posted Dec 19, 2012 15:14 UTC (Wed) by HelloWorld (guest, #56129) [Link] (17 responses)

I just fail to see why that is supposed to be a problem.

Hostility in plain sight

Posted Dec 19, 2012 16:15 UTC (Wed) by nix (subscriber, #2304) [Link] (16 responses)

Well, yeah, this *is* something that depends on your configuration, isn't it. That's the whole point. Those of us who had depended on it now have it wrenched away. There was warning, but still, this is not by any means the first time udev has lost functionality. It seems like a risk to rely on it for anything at all by this point.

Hostility in plain sight

Posted Dec 19, 2012 17:33 UTC (Wed) by HelloWorld (guest, #56129) [Link] (15 responses)

What does renaming accomplish that can't be done with a symlink just as well? Something like sed -r 's/NAME="([^"]+)"/SYMLINK+="\1"/' will rewrite your rules to create symlinks instead of renaming. I don't think is is a huge deal.

But then, I'm a liberal, you're a self-confessed conservative.

Hostility in plain sight

Posted Dec 19, 2012 19:40 UTC (Wed) by nix (subscriber, #2304) [Link] (14 responses)

What does renaming accomplish that can't be done with a symlink just as well? Something like sed -r 's/NAME="([^"]+)"/SYMLINK+="\1"/' will rewrite your rules to create symlinks instead of renaming. I don't think is is a huge deal.
I am of course now using symlinks, but this is nowhere near as elegant, and those things that attempt to tell me what devices they are having trouble with tend to chase the links and blither about /dev/sd{blah} rather than /dev/backup or /dev/helpfulname, and I have to manually track down what they're blathering about. I didn't have to do that until udev took away the ability to rename: even if the apps chased the links, their error messages remained valid.

I would have preferred it if it didn't now require that everything that accessed devices and emitted errors about them be audited to make sure it's not doing symlink-chasing too.

But then, I'm a liberal, you're a self-confessed conservative.
On the other matter: in my part of the world the Conservatives are the liberals, that is to say, the economically right-wing lot. (And I'm a leftish Liberal Democrat voter, that is to say, not a liberal. :) )

One's emotional inclinations, one's desires in software, and one's political inclinations need not correspond.

Hostility in plain sight

Posted Dec 19, 2012 20:01 UTC (Wed) by HelloWorld (guest, #56129) [Link]

> I am of course now using symlinks, but this is nowhere near as elegant, and those things that attempt to tell me what devices they are having trouble with tend to chase the links and blither about /dev/sd{blah} rather than /dev/backup or /dev/helpfulname, and I have to manually track down what they're blathering about.
OK, I can see why that's ugly.

Hostility in plain sight

Posted Dec 20, 2012 8:53 UTC (Thu) by man_ls (guest, #15091) [Link]

One's emotional inclinations, one's desires in software, and one's political inclinations need not correspond.
Let me put this sentence into my personal QotW. The reason is easy to see if we reason about change (or lack of it): one can dislike change in general, may dislike changes in software, and still desire a change in how the world is run. So the degree of conservatism can vary depending on the subject at hand.

Hostility in plain sight

Posted Dec 20, 2012 9:09 UTC (Thu) by apoelstra (subscriber, #75205) [Link]

> One's emotional inclinations, one's desires in software, and one's political inclinations need not correspond.

To add to man_ls's comment...another reason for this is that we often have very different opinions about how people must behave, how people ought to behave, and how we actually behave.

Hostility in plain sight

Posted Dec 21, 2012 2:25 UTC (Fri) by mathstuf (subscriber, #69389) [Link] (10 responses)

Maybe I'm missing something, but why not use /dev/disk/by-id/backup instead of renaming to /dev/backup? It seems prone to being wrong if disks are added/removed from the system.

Hostility in plain sight

Posted Dec 21, 2012 9:21 UTC (Fri) by nix (subscriber, #2304) [Link] (9 responses)

Because that
- only works for disk devices
- requires me to figure out whether /dev/disk/by-id works for this particular sort of device
- requires me to compensate for ID string changes across udev upgrades (which have happened, though rarely), adding yet *another* source of pain to udev upgrades
- doesn't actually help with the problem described at all because the /dev/disk/by-id names are still symlinks.

/dev/backup and other such nodes are identified by whatever I see fit and wired in via hardwired udev rules; generally I use the USB device serial number and wire in the partition number explicitly. It has never broken (modulo the now-I-can't-rename-but-have-to-symlink thing).

Hostility in plain sight

Posted Dec 21, 2012 17:37 UTC (Fri) by Cyberax (✭ supporter ✭, #52523) [Link] (8 responses)

So create /dev/backup symlink or even a hardlink.

Hostility in plain sight

Posted Dec 21, 2012 22:02 UTC (Fri) by nix (subscriber, #2304) [Link] (7 responses)

I don't think you can do hardlinks with udev. I explained why symlinks are worse than a rename (or, admittedly, a hardlink: I don't care if the original device name is still there) a few comments up in the thread.

Hostility in plain sight

Posted Dec 22, 2012 0:16 UTC (Sat) by Cyberax (✭ supporter ✭, #52523) [Link] (6 responses)

I think it's still possible to catch "add" events and hook up hardlink creation there.

Hostility in plain sight

Posted Dec 22, 2012 0:30 UTC (Sat) by nix (subscriber, #2304) [Link] (5 responses)

What, a direct RUN="ln ..." call? That's beyond gross, tantamount to lying to udev about the state of /dev, the sort of thing I'd expect to cause trouble.

Hostility in plain sight

Posted Dec 22, 2012 1:00 UTC (Sat) by Cyberax (✭ supporter ✭, #52523) [Link] (4 responses)

Yep. So?

Assigning names like /dev/backup is an even bigger hack.

Hostility in plain sight

Posted Dec 22, 2012 5:44 UTC (Sat) by raven667 (subscriber, #5198) [Link] (3 responses)

No. Assigning names to specific devices is exactly one of the use cases udev and dynamic device names were supposed to handle.

Hostility in plain sight

Posted Dec 22, 2012 7:16 UTC (Sat) by Cyberax (✭ supporter ✭, #52523) [Link] (2 responses)

Assigning additional names/symlinks to devices is fine. I quite like various hierarchies by attachments, UUIDs, etc.

However, I also quite like stable and consistent device naming.

Hostility in plain sight

Posted Dec 22, 2012 15:18 UTC (Sat) by HelloWorld (guest, #56129) [Link] (1 responses)

Linux/devtmpfs doesn't give you stable device names, at least some device names depend on the order in which the devices were discovered at boot, which is why most distros today use UUIDs in their fstab.

Hostility in plain sight

Posted Dec 22, 2012 19:07 UTC (Sat) by nix (subscriber, #2304) [Link]

It's trivial to get stable device names of your choosing. Simply set up a udev rule that matches some unique property of the device, and set NAME=... only nowadays you can't do that: symlinking is all you can do.

The UUID stuff is not magic: it's doing just that, only using RUN= to populate some env vars, then assigning symlinks depending on the value of those vars.

Hostility in plain sight

Posted Dec 18, 2012 21:26 UTC (Tue) by viro (subscriber, #7872) [Link] (8 responses)

Read it someday, would you? The logics around the removal (or non-removal) of directory trees in there is really nasty, and I'm not talking about the implementation - semantics from hell, no matter how you implement. For a long time it also had been a constant source of headache for fs/namei.c interfaces; took quite a while to get it more or less tolerable in that respect. In the form it went in, it had been amazingly bad. A lot of races is avoided these days *only* because it's serialized to hell and back. Besides, it's very unfriendly to containers. By design.

Hostility in plain sight

Posted Dec 18, 2012 23:21 UTC (Tue) by HelloWorld (guest, #56129) [Link] (7 responses)

> Besides, it's very unfriendly to containers.
How does it affect containers?

Hostility in plain sight

Posted Dec 18, 2012 23:46 UTC (Tue) by viro (subscriber, #7872) [Link] (6 responses)

It's a single-tree filesystem; *any* container mounting it will see the same system-wide tree. And yes, sysfs suffers the same problem (and that's one of the reasons why sysfs sucks by design), but there's it's somewhat alleviated (at the price of rather gross hacks). devtmpfs simply exposes the same directory tree, no matter which container has mounted it.

It's less of an issue than for sysfs (there we have network interfaces exposed, which hurts a lot more) and the most immediate problem has an fs of its own (devpts), but it's going to cause trouble as soon as container folks get serious about per-container block device visibility, etc.

I'd chalk that up to "lousy design likely to cause PITA for kernel work". Note that the only reason the problem exists at all is that this thing has been put kernel-side. And yes, we can kill the single-tree part of that mess, but then we'll get another source of headache with deciding how to propagate creation/removal events.

And no, that's not the only problem with that sucker.

Hostility in plain sight

Posted Dec 18, 2012 23:55 UTC (Tue) by HelloWorld (guest, #56129) [Link]

Interesting, thank you.

Hostility in plain sight

Posted Dec 19, 2012 0:49 UTC (Wed) by Cyberax (✭ supporter ✭, #52523) [Link] (4 responses)

Oh, come on.

udev in containers is no better than devtmpfs. And besides, you can simply enumerate device nodes by going through all major/minor numbers and be done with it.

Real namespacing of kernel resources is required in any case. And not a window dressing you're proposing.

Hostility in plain sight

Posted Dec 19, 2012 1:25 UTC (Wed) by viro (subscriber, #7872) [Link] (3 responses)

Liar^WPolitician, do show me where the hell have I proposed any kind of "window dressing" regarding the interaction of udev or devtmpfs with containers. What I'm saying is that this thing (among its other problems) is going to be a source of PITA for container folks. And again, that's _not_ the only problem with it, lest you feel tempted to spin it that way.

Hostility in plain sight

Posted Dec 19, 2012 3:30 UTC (Wed) by Cyberax (✭ supporter ✭, #52523) [Link] (2 responses)

So you're admitting that udev/devtmpfs problems are not the result of devtmpfs/udev design, but are fundamental issues that would have to be tackled on.

Then why so much hate at devtmpfs? It's certainly not mandatory and it's useful for a wide class of users. Its source code is simple and short (yeah, it probably should be moved to /fs directory).

I kinda don't understand what criteria you're applying to 'good' vs. 'bad' design. I suspect it mostly is "if it makes someone's life easier than it's a bad design".

Hostility in plain sight

Posted Dec 19, 2012 4:36 UTC (Wed) by viro (subscriber, #7872) [Link] (1 responses)

You, sir, are a shameless liar.
1) devtmpfs problems include lousy semantics of directory removal. As I clearly said in this thread. The only "fundamental issue" here is that of crap not getting enough review.
2) devtmpfs problems include being extremely sloppy piece of code, both at the moment of inclusion and later, despite fixes of some of the problems [bet this shit will selectively quote up to the words "moment of inclusion" and claim that I admit it's good now]
3) sufficiently recent udev *does* make devtmpfs mandatory. As you very well know.

Hostility in plain sight

Posted Dec 19, 2012 5:05 UTC (Wed) by Cyberax (✭ supporter ✭, #52523) [Link]

>1) devtmpfs problems include lousy semantics of directory removal. As I clearly said in this thread. The only "fundamental issue" here is that of crap not getting enough review.
Doesn't matter for devtmpfs' purposes. Also, udev has lousy directory removal properties too.

>2) devtmpfs problems include being extremely sloppy piece of code, both at the moment of inclusion and later, despite fixes of some of the problems
What exactly is lousy there? It's a small 450-line skeleton FS. There's nothing complicated going on there.

Can you be even less specific?

> 3) sufficiently recent udev *does* make devtmpfs mandatory. As you very well know.
Ah, I've been using udev-172 on my devices. Looks like it's time to upgrade, I'm glad they're now relying on devtmpfs.

You can easily re-add support for new node creation in udev. But why bother? What exactly are you planning to achieve that way?

Hostility in plain sight

Posted Dec 18, 2012 21:07 UTC (Tue) by viro (subscriber, #7872) [Link] (3 responses)

I'm also a bastard with deep loathing for fanboys of all kinds. And if somebody sounds as if they are trying to imply that I *am* one of those, they'd better be ready to present a strong proof or very clear retraction. I'm yet to see either.

Cyberax: one word - "западло".

Hostility in plain sight

Posted Dec 18, 2012 21:11 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link] (2 responses)

> I'm also a bastard with deep loathing for fanboys of all kinds.
Well, your anti-fanboism for cgroups (and devtmpfs) is quite famous. I'd say it easily qualifies as 'irrational'.

> Cyberax: one word - "западло".
Which doesn't say much.

Hostility in plain sight

Posted Dec 18, 2012 21:26 UTC (Tue) by HelloWorld (guest, #56129) [Link] (1 responses)

What does западло mean?

Hostility in plain sight

Posted Dec 18, 2012 21:41 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link]

That kinda depends on the situation :) Its meaning varies from "I'm bored with this sh*t" to "I'm above doing this sh*t".

udev in the kernel

Posted Dec 18, 2012 12:14 UTC (Tue) by DonDiego (guest, #24141) [Link]

What happened to your plan to maintain udev in the kernel? I can assure you it would be welcomed by many, probably including the eudev developers...

Hostility in plain sight

Posted Dec 18, 2012 13:14 UTC (Tue) by demarchi (subscriber, #67492) [Link] (10 responses)

I don't mind any fork. The problem is the accusations they make for the program they forked and related ones. This just shows they have absolutely no understanding what they are trying to maintain, yet (smart) people think they are doing a good thing because of past issues they had. See the amount of nonsense that was pointed out in their announcement in the comments here and elsewhere.

I have not relationship with RH and no intention to politically defend it.

Hostility in plain sight

Posted Dec 18, 2012 13:20 UTC (Tue) by man_ls (guest, #15091) [Link] (8 responses)

Even so, if eudev developers are ignorant or just wrong, just educate them. Why take everything they say as "accusations" and get angry? This project might as well be just an educational experiment for them, and it is alright.

Hostility in plain sight

Posted Dec 18, 2012 14:20 UTC (Tue) by ovitters (guest, #27950) [Link] (7 responses)

The explanations have already been given various times. I lurk on various distribution mailing lists, so have noticed that claims are made despite the various explanations by multiple people. The explanations&corrections were given, claim is repeated again.

There is of course no need to get angry.

Hostility in plain sight

Posted Dec 18, 2012 14:39 UTC (Tue) by man_ls (guest, #15091) [Link] (6 responses)

Explaining is not educating. Anyway, the developers will probably realize the errors of their ways now that they have to maintain the project, in those respects where they are wrong. Or reinforce their beliefs if they were right.

Qualifying the forking decision as "hostile", as has been done above, is unnecessary.

Hostility in plain sight

Posted Dec 18, 2012 14:55 UTC (Tue) by ovitters (guest, #27950) [Link] (5 responses)

Could you either explain the difference between explaining and educating or suggest how to educate them?

I'm not sure which of the two have been done, as I'm not sure of the difference.

That someone creates is a fork is totally fine IMO, no reason needed to do so.

Hostility in plain sight

Posted Dec 18, 2012 15:16 UTC (Tue) by man_ls (guest, #15091) [Link] (4 responses)

An explanation is no use if the recipient does not learn what is explained. There are many possible reasons: it may be that whoever explains is using a hostile or condescending tone, or that the reasons given are just weak or untrue. That is assuming that the explanation reaches the recipient at all. I don't know what is the case here, but "explanations have been given and ignored" is not good enough.

I am not (god forbid) a udev expert. From a quick scan of the announcement and the comments here and there, I see many valid reasons and others that have been refuted. The top reason:

The systemd developers are uninterested in providing full support in udev to systemd alternatives.
seems valid to me, especially after Poettering has accused other distros of fragmenting the Linux ecosystem. I may be wrong, but the hostility I see here reinforces the feeling. Anyway it is good to keep an eye about modifications to udev; and keeping a fork is cheap these days.

Hostility in plain sight

Posted Dec 18, 2012 15:27 UTC (Tue) by ovitters (guest, #27950) [Link]

Thanks for taking the time to educate me :)

Hostility in plain sight

Posted Dec 18, 2012 20:11 UTC (Tue) by HelloWorld (guest, #56129) [Link] (2 responses)

The top reason:
The systemd developers are uninterested in providing full support in udev to systemd alternatives.
seems valid to me,
It's a total red herring. udev works just fine without systemd and that isn't about to change. Poettering even praised the cooperation with Ubuntu's udev maintainer.

Hostility in plain sight

Posted Dec 21, 2012 7:45 UTC (Fri) by felipec (guest, #75494) [Link] (1 responses)

And he also said he was looking forward to the day when this stops and udev only works on systemd.

The only reason he is OK with udev working without systemd *for now*, is that it advances his agenda, and it's doesn't really require much effort.

Hostility in plain sight

Posted Dec 21, 2012 17:58 UTC (Fri) by HelloWorld (guest, #56129) [Link]

> And he also said he was looking forward to the day when this stops and udev only works on systemd.
So? If he intended to drop support for udev on non-systemd systems, he could have done it already. He didn't, and other than one off-hand command in one email, there's no indication that he will in the forseeable future. OTOH, he and Kay Sievers repeatedly confirmed that they *will* keep udev working on non-systemd system. Who are you to accuse them of such a blatant lies?

And even if they do drop support for non-systemd systems (which wouldn't be a huge loss anyway, I might add), people should fork *then* and not now.

Hostility in plain sight

Posted Dec 21, 2012 7:48 UTC (Fri) by felipec (guest, #75494) [Link]

Either way it's the fault of udev developers in the first place for not listening to their users, and forcing them to fork.

It's funny how people say "if you don't like it, then fork; it's open source", and then when they do "oh, but you don't know what you are doing". The original developers probably didn't know either, it's only with time that they learned enough to be udev developers.


Copyright © 2012, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds