Remix.run Logo
cf100clunk 4 hours ago

This is a mindblower. To quote Bruce Dubbs:

''As a personal note, I do not like this decision. To me LFS is about learning how a system works. Understanding the boot process is a big part of that. systemd is about 1678 "C" files plus many data files. System V is "22" C files plus about 50 short bash scripts and data files. Yes, systemd provides a lot of capabilities, but we will be losing some things I consider important.

However, the decision needs to be made.''

nine_k 2 hours ago | parent | next [-]

Runit is 5474 SLOCs. Most source files are shorter than 100 lines. Works like a charm. Implements an init system; does not replace DNS, syslog, inetd, or anything else.

Systemd, by construction, is a set of Unix-replacing daemons. An ideal embedded system setup is kernel, systemd, and the containers it runs (even without podman). This makes sense, especially given the Red Hat's line of business, but it has little relation to the Unix design, or to learning how to do things from scratch.

binkHN 2 hours ago | parent | next [-]

I use runit on my production workstation and don't think about it; it just works.

p_ing an hour ago | parent | prev [-]

> but it has little relation to the Unix design

It's more like Windows! /duck

its_magic an hour ago | parent [-]

I have been saying for years that Microsoft would eventually deprecate WinNT and switch Windows over to a Linux foundation. Things seem to be slowly but continually moving in that direction.

p_ing 44 minutes ago | parent [-]

Makes no sense to dump a superior kernel and executive for Linux.

The Win32 layer is the issue, not the underbelly.

clintfred 4 hours ago | parent | prev | next [-]

With limited resources, sometimes practicality needs to win. Kudos to Bruce for putting aside his (valid) feelings on the subject and doing what is best for the team and community overall.

its_magic 2 hours ago | parent | next [-]

I disagree.

I will soon be releasing a distro that is free of systemd, wayland, dbus, and other troublesome software. It is built starting from LFS in 2019, and now consists of over 1,500 packages, cross compiling to x86-32/64, powerpc32/64, and others if I had hardware to test. It's built entirely from shell scripts which are clean, organized, and easy to read.

I need help to get the system ready for release in 60-90 days. In particular, I need a fast build system, as my current 12+ year old workstation is too slow. Alpha/beta testers are welcome too. Anyone who wants to help in some way or hear more details, please get in touch:

domain: killthe.net

user: dave

M95D an hour ago | parent | next [-]

How did you get GTK3/4 to work without dbus?

its_magic an hour ago | parent [-]

I got rid of dbus in GTK3 by patching the code so that the "accessibility bridge" (to ATK) can be disabled. GTK4 is beneath my contempt and will not be supported.

The system uses GTK2 wherever possible, or GTK3 when not. I will either port everything to GTK2 later or create some kind of shim library. Help wanted here. Porting back to GTK2 isn't hard, I just don't have time to work on any of that at the moment.

M95D an hour ago | parent [-]

I'm running Gentoo without dbus and I'm stuck at gtk 3.24.34. I would love to see those patches. Your site appears to be down.

its_magic an hour ago | parent [-]

It's just HTTP only (no SSL) and there's nothing there. ... until now!

Here's some nice GTK3 patches for you:

http://killthe.net/patches/gtk-3.24.43-allow-disabling-atk-b...

http://killthe.net/patches/gtk-3.24.43-allow-transparent-win...

http://killthe.net/patches/gtk-3.24.43-allow-wheel-scrolling...

http://killthe.net/patches/gtk-3.24.43-appearance-tweaks-and...

http://killthe.net/patches/gtk-3.24.43-disable-mnemonics-del...

http://killthe.net/patches/gtk-3.24.43-file-chooser-tweaks.p...

http://killthe.net/patches/gtk-3.24.43-remove-dead-key-under...

http://killthe.net/patches/gtk-3.24.43-restore-old-context-m...

http://killthe.net/patches/gtk-3.24.43-set-default-settings....

http://killthe.net/patches/gtk-3.24.43-show-alternating-row-...

Note that GTK 3.24.43 is the last version of GTK3.

My system is full of patches like this to tweak, improve, and adjust things. The point is to get off the "upgrade" treadmill and focus on making things work right.

ripdog 2 hours ago | parent | prev [-]

So, devuan?

its_magic an hour ago | parent [-]

No, not even close. Totally different projects. This one is for experts only, or those who want to become experts. The type of person who has been toying with the idea of building a LFS system but doesn't really want to go through all the work and headache (and it's a ton, to build a full system.) It also supports cross compiling to other architectures, which LFS does not.

This system has many powerful features like built in ccache/distcc support for the build, support for building in QEMU, etc. Eventually it will be fully sandboxed.

There is a heavy emphasis on Doing Things Right according to an old school way of thinking. Everything is kept as simple as possible, yet as full featured as is practical. A major goal is to have everything documented and explained, starting with the shell scripts which build the system step by step in an easy to follow manner.

No package manager currently, though a simple one is in the works which is integrated into the build scripts. It's not really needed. You just build a complete system with all packages you want installed in a single run, with your own configuration pre-loaded. This gets compressed to a tarball. Then to install, create a partition, extract the tarball, edit a few files, install the bootloader, set passwords, and go.

adastra22 an hour ago | parent | prev [-]

How is this best? It defeats the whole point. I’m going to stop recommending LFS to people wanting to learn about this stuff.

spijdar an hour ago | parent [-]

Learn about what stuff? Linux? System V UNIX?

I haven't done LFS since my tweens (and I'm almost 30 now), but I remember the sysvinit portion amounted to, past building and installing the init binary, downloading and extracting a bunch of shell scripts into the target directory and following some instructions for creating the right symlinks.

Obviously, you can go and check out the init scripts (or any other individual part of LFS) as closely as you wish, and it is easier to "see" than systemd. But I strongly protest that sysvinit is either "Linux" (in that it constitutes a critical part of "understanding Linux" nor that it's really that understandable.

But setting aside all of that, and even setting aside the practical reasons given (maintenance burden), when the majority of "Linux" in the wild is based on systemd, if one wanted to do "Linux From Scratch" and get an idea of how an OS like Debian or Fedora works, you would want to build and install systemd from source.

adastra22 5 minutes ago | parent [-]

For me, Linux From Scratch is not about compiling linux from scratch, but on building up an entire Linux distro from the ground up, understanding how every piece fits together.

Doing it via systemd is like drawing a big black box, writing LINUX on the side, and calling it a day.

raggi 3 hours ago | parent | prev | next [-]

https://github.com/systemd/systemd/tree/main/src/core doesn't look like 1678 C files to me.

cientifico 3 hours ago | parent | next [-]

Github says 2.8k files when selecting c (including headers...) https://github.com/search?q=repo%3Asystemd%2Fsystemd++langua...

If the project is even split in different parts that you need to understand... already makes the point.

ktm5j 2 hours ago | parent [-]

Well to be fair, you don't need to understand how SystemD is built to know how to use it. Unit files are pretty easy to wrap your head around, it took me a while to adjust but I dig it now.

To make an analogy: another part of LFS is building a compiler toolchain. You don't need to understand GCC internals to know how to do that.

josephg 2 hours ago | parent | next [-]

> Well to be fair, you don't need to understand how SystemD is built to know how to use it.

The attitude that you don't need to learn what is inside the magic black box is exactly the kind of thing LFS is pushing against. UNIX traditionally was a "worse is better" system, where its seen as better design to have a simple system that you can understand the internals of even if that simplicity leads to bugs. Simple systems that fit the needs of the users can evolve into complex systems that fit the needs of users. But you (arguably) can't start with a complex system that people don't use and get users.

If anyone hasn't read the full Worse Is Better article before, its your lucky day:

https://www.dreamsongs.com/RiseOfWorseIsBetter.html

ktm5j an hour ago | parent [-]

LFS is full of packages that fit your description of a black box. It shows you how to compile and configure packages, but I don't remember them diving into the code internals of a single one.

I understand not wanting to shift from something that is wholly explainable to something that isn't, but it's not the end of the world.

adastra22 an hour ago | parent | prev [-]

The whole point of LFS is to understand how the thing works.

cf100clunk 3 hours ago | parent | prev [-]

In what way was Bruce incorrect, your one link excepted?

raggi 3 hours ago | parent [-]

he is counting every c file in the systemd _repository_ which houses multiple projects, libraries and daemons. he equates that to the c file count for a single init. it's a disingenuous comparison. systemd-init is a small slice of the code in the systemd repository.

cf100clunk 2 hours ago | parent [-]

I'm guessing he shares my belief that systemd-init cannot exist in the wild on its own, correct? When you want a teacup, you have to get the whole 12 place dinner set.

soldoutcold 4 hours ago | parent | prev [-]

I am looking forward to UnixFromScratch and Year of Unix on the desktop as Linux more and more sells itself out to the overstuffed software virus that is System D.

procone 3 hours ago | parent | next [-]

I know this is a bit tongue in cheek, but the systemd hate is so old and tiresome at this point.

I need my systems to work. Not once in my career have I experienced a showstopping issue with systemd. I cannot say the same for sysV.

Brian_K_White 2 hours ago | parent | next [-]

I can absolutely say that I've never had a showstopping problem with sysv. That is about 30 years as a unix & linux admin and developer.

The whole point of sysv is the components are too small and too simple to make it possible for "showstoppers". Each component, including init, does so little that there is no room for it to do something wrong that you as the end user at run-time don't have the final power to both diagnose and address. And to do so in a approximately infinite different ways that the original authors never had to try to think up and account for ahead of time.

You have god power to see into the workings, and modify them, 50 years later in some crazy new context that the original authors never imagined. Which is exactly why they did it that way, not by accident nor because it was cave man times and they would invent fancier wheels later.

You're tired of hearing complaints? People still complain because the problem did not go away. I'm tired of still having to live with the fact that all the major distros bought in to this crap and by now a lot of individual packages don't even pretend to support any other option, and my choices are now to eat this crap or go off and live in some totally unsupported hut in the wilderness.

You can just go on suffering the intolerable boring complaints as far as I'm concerned until you grow some consideration for anyone else to earn some for yourself.

mirashii 3 hours ago | parent | prev | next [-]

Equally tiring is the “it works for me so stop complaining” replies, which do nothing to stop the complaints but do increase the probability of arguments. Want the complaint posts to stop? Suggesting that they’re in some way invalid is not the way.

user3939382 2 hours ago | parent [-]

Yeah, it’s so tiresome that other people have a philosophy different from mine which seems to have prevailed for now. Like ok so sorry. Systemd on linux is the worst of both worlds imho which apparently according to GP to which I’m progressively less entitled. I like NetBSD and its rc init and config system. Oh no systemd sore winners incoming!

lagniappe 3 hours ago | parent | prev | next [-]

Imagine that, people on the internet disagreeing. I've had both sysv and sysd crap in my cheerios. The thing I appreciated about sysv was that it stayed in its lane and didn't want to keep branching out into new parts of the system. Sysvinit never proposed something like homed.

chucky_z 2 hours ago | parent | prev | next [-]

I understand where you’re coming from but early systemd with both ubuntu and centos was a fucking mess. It’s good now but goddamn it was painful and the hate is 100% justified.

fragmede 2 hours ago | parent [-]

Funny you should mention CentOS, which it outlived.

adastra22 an hour ago | parent | prev | next [-]

My experience, and the common experience I’ve read, is the exact opposite. Run scripts worked. They always worked. They were simple. I’ve run into so many difficulties with systemd, on the other hand. I gave up managing my own server as a result.

cf100clunk 3 hours ago | parent | prev | next [-]

OP here. I was hoping we could avoid the interminable, infernal discussion of systemd vis-a-vis emotional states.

themafia 3 hours ago | parent | prev [-]

> Not once in my career have I experienced a showstopping issue with systemd. I cannot say the same for sysV.

I have had both ruin days for me. In particular the "hold down" when it detects service flapping has caused issues in both.

I use runit now. It's been rock solid on dozens of systems for more than a decade.

molticrystal 3 hours ago | parent | prev [-]

While I'll ignore the System D hyperbole, your point about Unix has merit.

I think the *BSD are also good, at least from an educational standpoint, with their relative simplicity and low system requirements. Since there is a lot of integration making a from scratch distro might take less material, but it could be supplemented with more in depth/sysadmin exploration.

cf100clunk 3 hours ago | parent | next [-]

From an education standpoint for those who really, really want to understand, the *BSD init and SysVinit systems require direct human administration. You break it, you fix it. Then, and only then, does learning systemd's ''then something happens behind the curtain'' type of automation make sense. If the student decides that one is more suitable than the other(s), they've done so from an enlightened vantage point.

fragmede 2 hours ago | parent [-]

I thought systemd was fairly straightforwards, even if it does too many different things for my tastes. What's an example of it doing a too much magic behind the curtain thing?

3 hours ago | parent | prev [-]
[deleted]