Jump to content
Read the Funtoo Newsletter: Summer 2023 ×

Systemd


Recommended Posts

Will funtoo ever support systemd? I know that everyone hates it but I think that we should at least support it along side openrc. Personally I like openrc better too but I wanted to try out systemd to see if it fixes some of the bugs with gnome 3.14 and to see just how fast I can get my computer to boot. Also correct me if I'm wrong but it is needed for wayland too, right? If not is there a funtoo tutorial on how to switch to wayland?

Link to comment
Share on other sites

There are plenty of distros that support systemd.  I believe that it's important that someone is doing the work to make a Linux distro that works without systemd.   The developers are tackling a complicated problem with upstream projects that are not always supportive (one might even say they're hostile) to their goal.   Unless the goal is to attract more users for the sake of having more users it makes no sense to compromise that effort by splitting the userbase and the development effort between installs with and without systemd.

Link to comment
Share on other sites

Well I'm currently working on installing systemd. It is kind of a pain as funtoo has removed support for it from some ebuilds. I just grabbed the offending ebuilds from the gentoo portage tree. I will write up a short tutorial of my steps when I'm done if everything works out. It is sad that gnome and everyone else is forcing systemd but it looks like they are winning and if you want the latest and greatest you have to use it or wait for the devs to patch it to work with openrc. I love funtoo but I also love bleeding edge. I would hate to have to leave funtoo just because I can't use systemd which I stated earlier that I hate anyway.

Link to comment
Share on other sites

OK I have systemd working on funtoo. The biggest difference is not only the boot time but also the time GDM takes to load. GDM loads almost instantly now, before with openrc GDM took about 5 seconds to load. I don't seem to have any other major problems. Tutorial coming soon.

 

OK here it is... How to use systemd in funtoo:

 

Go to gpo.zugaina.org and get the latest versions of the following pacakages from gentoo's version of portage

virtual/libudev
virtual/libgudev 
virtual/udev 
sys-apps/util-linux

Next add the following to USE= in /etc/portage/make.conf

systemd gudev -static-libs

run the following

echo "sys-fs/lvm2 -static" >> /etc/portage/pacakge.use

Then comes the scary part... removing packages. This may or may not be necessary. I found that it fixed blocks when emergeing systemd. (the packages are added back later anyway so not to worry)

emerge --unmerge virtual/libudev virtual/libgudev virtual/udev sys-auth/nss-myhostname lvm2

Now to install systemd run the following

emerge -v --oneshot virtual/libudev virtual/libgudev virtual/udev && emerge -v systemd

Finally do the following to update all affected packages.

emerge -NuvD world

The final steps are to rebuild your kernel enabling systemd which may not be necessary and then telling grub to use systemd. Add the following to /etc/boot.conf with the other kernel params.

params += init=/usr/lib/systemd/systemd

Once you are done with that all you have to do is run

boot-update

Now you can reboot and enjoy systemd. Note you might have to add networkmanager and gdm to systemctl to get them to start automatically. That can be accomplished by doing the following.

systemctl enable NetworkManager.service && systemctl enable gdm.service

One last configuration step is to set your hostname and you are done!

hostnamectl set-hostname <HOSTNAME>

I hope that this helps everyone who is trying to get systemd working on funtoo. Enjoy!

Link to comment
Share on other sites

l33t- do you really expect anyone to take you seriously with that name?

I'm really curious just how much faster its really booting - are we talking 2 or 3 seconds, or 10 or 15? And how many services are simply delayed to continue start-up after gdm has loaded? Perhaps a better test would be to have the system boot straight to the desktop without a login.

Other questions:

1 - Have you compared to OpenRC's parallel option?

2 - Have you tried changing /bin/sh to point to dash instead of bash? This will make your scripts run faster as long as they don't require bash extensions. I know a couple or packages seem to expect /bin/sh to have bash extensions when you emerge them, so expect problems. I hope to have some real information on how these two affect performance and if they are worth it very soon now.

 

The Gentoo flame war is only up to 30 pages, not 46

Link to comment
Share on other sites

l33t- do you really expect anyone to take you seriously with that name? I'm really curious just how much faster its really booting - are we talking 2 or 3 seconds, or 10 or 15? And how many services are simply delayed to continue start-up after gdm has loaded? Perhaps a better test would be to have the system boot straight to the desktop without a login. Other questions: 1 - Have you compared to OpenRC's parallel option? 2 - Have you tried changing /bin/sh to point to dash instead of bash? This will make your scripts run faster as long as they don't require bash extensions. I know a couple or packages seem to expect /bin/sh to have bash extensions when you emerge them, so expect problems. I hope to have some real information on how these two affect performance and if they are worth it very soon now. The Gentoo flame war is only up to 30 pages, not 46

I did not use dash or the openrc parallel boot option although I have used the later in the past. It only speeds it up by about 1-2 seconds but there is a noticible differnece in how long it takes gdm to finish setting up from the point when the screen goes black to when you can actually log in. It may have soemthing to do with gnome trying to force systemd. I think that it is because openrc is emulating systemd and that causes a performance slowdown.

 

Off Topic: Not to start a flame war but everyone tells me that binary distros are better than source based distros which always bugged me because I hated binary distros. Well becuase of my issues with systemd and openrc I decided to try another distro (arch linux). To my amazement I have it up and running exactly like my funtoo box in only 30 minutes instead of hours for an install. I am going to run it for a bit and if I hate it I will be back to funtoo as my daily driver. So far I'm impressed. Not as configureable as funtoo but the install times are so much faster since you don't have to compile anything. Just my 2 cents.

Link to comment
Share on other sites

I am a "systemd refugee". I chose to leave other distributions because of their insistence on using software that caused me all sorts of grief. A program/daemon cannot exist that saves devs/admins from themselves. I should not have to resort to pkill to take down a service. Its not about being a control freak, but does the user have control over the computer without being second guessed by some arbitrary program? With funtoo, I have that assurance the computer will do exactly what I tell it and if it fails I have the confidence to correct without shrugging my shoulders at the machinations of some undocumented black box program.

 

edited...

 

As has been pointed out - sure there are "needs" for systemd as other applications or libraries depend on it. I am greatful that funtoo doesn't enable this by default. For those who are "ripping out" these dependencies - Kudos! Please keep doing that. And to the funto admins - Please,please - don't enable systemd. Thank you.

Link to comment
Share on other sites

Well, systemd is an alternative to openrc, and I like it too.

 

No offense, but in my opinion, since systemd is still in-tree, then there should be some basic support for it. Otherwise, just remove it from portage tree. This is quite reasonable.

 

Another reason for systemd support: I want to have a bit taste on gnome 3.14 over wayland (but I do not like Arch or other distros). However, wayland requires systemd as its dependency.

 

Of course, if funtoo devs could remove systemd dependency from wayland, then I will happily stay with openrc.

Link to comment
Share on other sites

There's no need to be combative here. I see no no problem with documenting how to get it working for those who want to try it (although I'm not sure those instructions are 100% correct) so long as they understand that it is not officially supported (and while systemd does work in Funtoo it is necessary to restore certain ebuilds to the their Gentoo variants). There are actually quite a few Funtoo users using systemd because while they want systemd, they also want Funtoo be their underlying ecosystem so I see no reason to remove it.

In any case, it is not entirely systemd I dislike but rather the exponentially growing insistence that it must be used and the removal of support for any other alternatives and without a proper transition period.

This is why I decided to deliver a complete (or nearly complete) GNOME 3.12+ experience without systemd.

P.S. Woodelf, I remember you from your one blog post regarding GNOME 3.12. For the record, it took me about a week if you count testing, not half a year :).

Link to comment
Share on other sites

There's no need to be combative here. I see no no problem with documenting how to get it working for those who want to try it (although I'm not sure those instructions are 100% correct) so long as they understand that it is not officially supported (and while systemd does work in Funtoo it is necessary to restore certain ebuilds to the their Gentoo variants). There are actually quite a few Funtoo users using systemd because while they want systemd, they also want Funtoo be their underlying ecosystem so I see no reason to remove it.

 

In any case, it is not entirely systemd I dislike but rather the exponentially growing insistence that it must be used and the removal of support for any other alternatives and without a proper transition period.

 

This is why I decided to deliver a complete (or nearly complete) GNOME 3.12+ experience without systemd.

 

P.S. Woodelf, I remember you from your one blog post regarding GNOME 3.12. For the record, it took me about a week if you count testing, not half a year :).

Ya, my mistake. In my feelings, it really took a long way to move to gnome 3.12. Great work!

 

Now Funtoo is the only OS on my laptop, I enjoy it.

 

Just treat systemd as my personal excessive demands. Anyway, openrc works fine and it is simple.

 

Looking forward to the wayland support without systemd. :)

Link to comment
Share on other sites

I am a "systemd refugee". I chose to leave other distributions because of their insistence on using software that caused me all sorts of grief...

As has been pointed out - sure there are "needs" for systemd as other applications or libraries depend on it. I am greatful that funtoo doesn't enable this by default. For those who are "ripping out" these dependencies - Kudos! Please keep doing that. And to the funto admins - Please,please - don't enable systemd. Thank you.

 

I've taken refuge in Funtoo too.   My workstation, netbook and home server now run Funtoo because months of testing proved it to be more adaptable and reliable than Debian or Arch.  systemd was part of the problem in the land of popular binary distros -- their forums show thousands of little problems cropping up but enthusiasm causes a blind eye. 

 

I wouldn't say that systemd is "not ready", nor that "it's a matter of choice."  I don't see the problem being systemd itself but the binding of systemd to higher levels of software.  It is bad practice.  No "application" should care what init system was used to boot the computer.  But the systemd cabal IS pushing forward on a plan to create an interlocked monolith. 

 

Here's an experiment for the curious to explore the implications of the interlocking of layers:  create a self-hosting source-based linux system that builds itself from sources starting with the absolute minimum of executables (which will be bootstrapped by cross-compiling -- maybe use aboriginal linux).  The goal would be to create a bootable system with less than 20 packages in the base and which is capable of building itself up into a complete system.  This is a proof that your system is in fact a system (a single well-defined thing) and not just a pile of packages that happen to actually run at the moment. The base will need a compiler (gcc or clang), c library (glibc or musl), a linker and associated tools (binutils or toybox), an init system (toybox, busybox, bsd rc, sysvinit) and a package manager (something simple like butch from sabotage linux).  This can be done.  Now try to do it with systemd as the init system -- you just failed!  The package dependencies just blew up into a huge set and you are entangled in a mess of circular dependencies.

 

Thanks  to Dantrell for proving the point that the lock-in is not actually a technical requirement (I run Gnome 3.12 with OpenRC -- no systemd required). Thanks to Robbins for keeping Funtoo rationally designed.  Thanks to all you devs who know how to do good system design and keep Funtoo fun :D

Link to comment
Share on other sites

I have two questions:

 

Whats the point of wayland?  From what I can tell, its supposed to be faster, but is it really?  Won't we be losing the network transparency of X?  I kinda like being able to SSH into a host and run a GUI app.  And I don't think VNC is an alternative.  VNC still doesn't work as well or as fast as remote X.  I'm in no hurry to give up X. And I hear games are actually slower, and that is where speed matters most (I don't play games much, but thats not the point).

 

A few things I do with X:  I have a script that ties into bash that remembers what the window ID is for the window its running in.  When a command completes, it checks the top-window and compares it.  If its not currently the top window, it displays a notification of the command that just completed, the window's name, and its icon.  The window title is always updated with the current title, dropping back to just the shell name when the command completes - unless its not the top window at command completion - in that case it leaves the last command in the window title (and icon name if its minimized) to add in finding the window (in case you have multiple windows plastered all over the screen).  Would this sort of hackery (from a plain bash shell script) be possible with Wayland?  And this works remotely too - it's a bit harder to get the notify working remotely because of DBUS (although I could use 'dialog' to provide an alert and it would be easy and portable - just not as pretty, and so I'm forced into using backwards-ass dbus).  I have another app called X2X that lets me use a single keyboard and mouse with multiple machines - you move the cursor off one screen and it moves to another computer (over the network) via remote X protocol.  I don't think Wayland can do that!

 

@Dantrell: Great work on Gnome!  Just curious, you said "nearly complete".  What parts had to be removed?

 

As for the rest of the topic, only 12% (gentoo forum vote) think gentoo should use systemd.  I understand keeping it around in portage as an unsupported option (vs Gentoo's supported option), but I don't see either distro changing from OpenRC as the default.  Not for 12%!  I wonder how many people on other distros actually think it was a good move?  Personally I'm in the anti-systemd camp myself and I think more people would use alternatives if better ones existed.  Yes, funtoo is great, but the rather long compile and config process is a turn off for many, and once you are done, you may not get all the bells and whistles that other distros have without more tweaking and recompiling.   The systemd (and kdbus) issue is becoming a rather heated debate, almost as bad as Atari vs Amiga or Vi vs Emacs, and its really silly.  Everyone knows vi is better!

Link to comment
Share on other sites

 

woodelf,

 

I get what you mean. Overall, it did take a while (although I was on 3.8 and 3.10 througout it all; I regret nothing :P).

 

P.S. Regarding Wayland... no promises.

 

uudruid74,

 

The state of GNOME is such that:

  1. systemd is not a hard compile time dependency. You can build everything except for ~2 packages and it will all work out of the box.
  2. systemd is a hard run time dependency for basic functionality.

Basic functionality is what the GNOME team has decided includes:

  • power management
  • session tracking
  • lid close handling
  • log/event viewing
  • Wayland

My patchset has reintegrated support for everything but Wayland (I thank the relevant GNOME and Gentoo teams for making my job easier). Furthermore, my patchset was done for 2 reasons:

  1. It was trivial to do so (I'm of opinion that upstream should have left the relevant code in and marked it as deprecated but that's another matter).
  2. To buy more time to come up with a proper solution.

One possible solution is to fork ConsoleKit and pm-utils then have the GNOME team reintegrate support as they said they would.

Link to comment
Share on other sites

Hmm ... thank you for all the information.  Its quite interesting.  Would it be possible to patch ConsoleKit and pm-utils so that Gnome can use the same API that it uses to talk to systemd's utilities?  Sort of pretending to be systemd?  Or would that not be possible?  I'm just thinking that if you have to fork and maintain other utilities, perhaps it would be possible to avoid patching gnome as well (or waiting for them to put back the support upstream now that everyone is jumping on the systemd bandwagon).   I'm not sure what methods systemd uses, but I suppose if its a single socket for both services, expecting a "systemd" to do it all, then this makes it almost impossible to replace without modifying Gnome.  And I'm guessing that is the problem.

 

I'm surprised there isn't some sort of directory service API you could talk to on start-up (maybe in dbus) that says "who do I talk to for power management" ?  or "who do I get session service information from"?  And then machines without systemd could be pointed to the specific daemon for that service while machines based on systemd would just be told "systemd" for every answer. Or am I missing part of the picture?

Link to comment
Share on other sites

I've mentioned this here a few times, I use systemd with Funtoo(Or should I say NotFuntoo since drobbins says Funtoo is only Funtoo with OpenRC), I would have bothered to do what l33tlinuxh4x0r did, and post a guide and even an overlay, but I anticipated a flamewar like this, for no reason, anyway getting systemd to run isn't that hard, and any competent user would figure out the changes needed.

Many of you seem to know little about systemd, or can't read manuals(Undocumented?), and yet have big opinions on it, anyway this this has shown to be the tendency in among most of the systemd detractors. I understand devs don't want the burden of having to deal with bugs related to a software they dislike, but certainly It isn't attractive either to try to contribute for the few of us who like it, when any intent would turn into a flame war.

Link to comment
Share on other sites

Many of you seem to know little about systemd, or can't read manuals(Undocumented?), and yet have big opinions on it

That's one way to start a flame war.

 

My objection to systemd is based only on the negative experiences I have encountered. And asking for help with systemd and getting a reply similar to quote above doesn't help. This is why I came to funtoo. I was hopeful these kinds of discussions wouldn't occur here.

Link to comment
Share on other sites

That's one way to start a flame war.

 

My objection to systemd is based only on the negative experiences I have encountered. And asking for help with systemd and getting a reply similar to quote above doesn't help. This is why I came to funtoo. I was hopeful these kinds of discussions wouldn't occur here.

The flamewar was already started, and the tread was deviated(I even read a bit of a wayland rant) from the intent of the OP many posts before mine, contrary to your experience I've seen many times help given on the gentoo mailing list to people that want to try it, and lots of patience, It's a shame you didn't asked the right people, but if you go anywhere with the argument 'Theres no documentation' when there is and its even local, it's likely the one who took the effort to read and grasp the manuals(and don't say most manuals are easy, look at bash), might get unfriendly, because you don't want to put any effort, remember asking for help in the open source it's taking someone time for free, so an extra effort is required, to show appreciation of the time given to you.
Link to comment
Share on other sites

I don't mind people using systemd at all.  Its the lock-in that people are being forced to use it that I don't like!  And starting services with sockets and dbus just seems like a BAD idea to me.  I want as little as possible in-between my services and getting them up and running - the less to break the better.  I don't like adding MORE single points of failure.  I'm sure its fine on a desktop, but not if I'm forced into it.

 

I think systemd had good intentions, I can see what they were trying to do, but I don't like the way they want about it, nor do I like Gnome being so reliant on it (or any other service), but considering whos doing the backing on these projects ...

Link to comment
Share on other sites

I don't mind people using systemd at all. Its the lock-in that people are being forced to use it that I don't like!

But if you are a voluntary package maintainer or developer, in an open source distro where users aren't forced, you are being forced to maintain unit files and, init scripts, also deal with bugs for both. I see the forcing of systemd on many distros as a misfortune, due to the lack of man power to keep both maintained by different people, so maintainers aren't forced either to maintain compatibility with a software the don't use or dislike, as I said previously, I understand why funtoo devs would disable systemd from portage, it would just be an annoyance on the bugtracker. If you are a distro leader you would have to prioritize to keep in a good mood the people that contributes the most. certainly it would make less harm the forum rants than the increased bugs unhandled due to maintainers leaving burn-out.

 

And starting services with sockets and dbus just seems like a BAD idea to me. I want as little as possible in-between my services and getting them up and running - the less to break the better.  I don't like adding MORE single points of failure.  I'm sure its fine on a desktop, but not if I'm forced into it.

This is actually a strong point of systemd, remember you can have a shell-less boot, and run in your machine just to find a few examples:

 

$ egrep -rn ' sed | awk | grep ' /etc/init.d/

 

And the fast boot is rather than a intended feature, a consequence of running less programs at boot to get services going. about dbus, I haven't dealt with it directly, so I can't say much. but supposedly kdbus is an intent to take the good of it and ditch the bad.

I think systemd had good intentions, I can see what they were trying to do, but I don't like the way they want about it, nor do I like Gnome being so reliant on it (or any other service), but considering whos doing the backing on these projects ...

I don't think companies are all good intentions, but I don't really see much problem, when they:

- Want to hire open source developers, this is a really good thing if you are a developer, doing what you like and get paid for it.

-The code produced is being open sourced.

 

The fact that most companies are unlike this, is a shame, everyone would have so much better software if more talented developers would get paid to improve open source tools, and not so much home-grown stuff, totally closed.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...