Re: systemd as external dependency



On Wed, 18.05.11 16:34, Josselin Mouette (joss debian org) wrote:

> Le mercredi 18 mai 2011 à 16:18 +0200, Lennart Poettering a écrit : 
> > On Wed, 18.05.11 15:49, Josselin Mouette (joss debian org) wrote:
> > > I don’t have anything against requiring systemd, since it is definitely
> > > the best init system out there currently, but the Linux dependency is an
> > > absolute no-no for us. Having optional Linux-only functionalities is OK;
> > > requiring Linux is not.
> > 
> > Quite frankly, I'd like to question this. In the light of GNOME OS I
> > think we need to ask ourselves the question if we do ourselves any good
> > if we continue to support all kinds of kernels that simply cannot keep
> > up with Linux anymore.
> 
> By definition, another kernel cannot « keep up with Linux » if you
> introduce the features you need in Linux and then expect others to have
> them instantly available. In contrast, they also have features that
> Linux does not.
> 
> Frankly, BSD is doing quite well. They have ported upower and I expect
> to have a udisks port eventually. So far nothing has prevented GNOME
> from fully working on BSD, and adding an arbitrary dependency just
> because you don’t want to maintain some #ifdef’s in systemd would be a
> real loss.

It's not just some #ifdefs. It's a ton. Lemme list a couple of Linux
specific interfaces that are used in systemd, you'd have to find
replacements for:

- cgroups
- timerfd
- signalfd
- epoll
- autofs4
- inotify
- fanotify
- /proc/*/stat
- /proc/*/comm
- /proc/*/cmdline
- libudev
- POSIX mqueue as fd
- AF_UNIX/SOCK_SEQPACKET
- abstract namespace AF_UNIX
- get_current_dir_name()
- canonicalize_file_name()
- O_CLOEXEC/SOCK_CLOEXEC
- /proc/*/fd
- numerous prctl() controls, like PR_SET_NAME, PR_CAPBSET_DROP, PR_SET_PDEATHSIG, ...
- capabilities
- numerous console ioctls, like TIOCLINUX, VT_ACTIVATE, TIOCSTTY/TIOCNOTTY ...
- /sys
- /dev/urandom
- /dev/char/*, /dev/disk/by-label/*, /dev/disk/by-uuid/*
- openat() and friends
- O_DIRECTORY
- waitid()
- /sys/class/tty/console/active
- /sys/class/dmi/id
- ioprio
- various rlimits, like RTPRIO/RTTIME
- F_SETPIPE_SZ
- IP_FREEBIND
- oom score
- binfmt_misc

And this is just what I found while going through two files in
systemd. Of course, a couple of these are easy to emulate, or have
obvious counterparts on the other OSes, or could be made optinal (or
even are already optional), but the point I want to make here is that it
wouldn't be a couple of #ifdefs. It would turn every second line of
systemd into #ifdefs. And I wouldn't want to maintain such a beast.

That all said, git is your friend. If people want to port this over to
other systems, they are welcome to do so and with "git rebase" they
could keep it somewhat up-to-date. I will not share your suffering if
you do.

Lennart

-- 
Lennart Poettering - Red Hat, Inc.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]