GNU guix system is a step in the right direction, but the future will be a mixture of guix and gentoo

  • GNU guix system is for people who want reproducible declarative system configuration and produces extremely clean systems. However, its community is fractured into many invisible pieces because the core maintainers refuse to integrate or document essential non-free softwares like firmware blobs. Most hardwares require firmware blobs. The core maintainers are also resistant to adding real ZFS support because they are afraid that Oracle might sue them. Because GNU guix system maintainers refuse to document ZFS and non-free softwares and make it easy for users to find and search all the other third party channels, the user experience is bad even for linux veterans with 10+ years of experience. It took weeks for me to find https://toys.whereis.みんăȘ/. It took days to find nonguix. The lack of a central place that binds them all is a huge disadvantage. In the future, there can be a linux distro that combines all pieces of fractured gnu guix ecosystem in a central place, or there can be a practical and flexible linux distro inspired by gnu guix system. GNU guix system’s disadvantage is that its ecosystem is not unified in one place where everyone can search for everything easily.
    • GNU guix doesn’t have version solver which gentoo linux uses to pick any version of a package name within the specified version range. Each dependency in a gentoo package can have lower boundary and upper boundary. Lack of version solver means guix dependencies are guile symbols which can disappear anytime. This means dependencies from other guix channels will break far more often than dependencies from other gentoo overlays. Gentoo packages depend on package names and optionally exact versions or version boundaries. Version solver allows different package repositories to co-exist without dependencies from other repositories breaking often.
  • Gentoo linux is for people who want customizability and control. It doesn’t get in the way of customization. But, the update process is somewhat messy because portage has advanced features that conflict with global packages. However, once you get the hang of the update process, you can navigate the messy update process smoothly. I don’t like its messy update process, but once I finish updating, I can enjoy the customizability and the degree of control I have over the system. Gentoo linux gives me more control than other linux distributions. It lets me do exactly what I want to do without getting in the way. Gentoo wiki is very helpful. Gentoo website provides a list of all gentoo overlays(equivalent to guix channels). If I type “gentoo overlay” on a search engine, I easily find a search engine that searches all gentoo overlays for packages. Gentoo’s ecosystem is largely unified.

My idea for a new linux distro inspired by gentoo linux and gnu guix system

  • Combine guix with gentoo’s version solver so that dependencies from other package repositories don’t break often.
    • Expecting one package repository to be sufficient for everything is foolish. One package repository’s maintainers cannot take care of every package. For this reason, gentoo linux has multiple official package repositories.
  • Combine guix with gentoo’s USE flags.
  • The distro should provide a search interface that searches official repositories and third party repositories for packages, services, repositories, and symbols(?). The search interface will search all repositories including ones that are not enabled on the local system.
  • The distro doesn’t avoid documenting proprietary softwares in its own manual. The disto wiki doesn’t avoid proprietary softwares. Sometimes, proprietary softwares are necessary. For example, firmware blobs.
  • The distro must include non-free firmware blobs for hardware compatibility. Proprietary softwares are provided by the distro or third party repositories when they are necessary or superior. For example, kdenlive is not a substitute for davinci resolve. Let proprietary softwares deal with payment internally. The package manager won’t deal with payment.
  • GNU guile is fine, but another lisp language like janet can be considered because GPL comes with rigid narrow left-brain visions of software that prevent unification of a linux distribution’s ecosystem. 0BSD is a fine public-domain-equivalent license that removes friction inside open-source ecosystem. Even the attribution requirement by MIT and BSD is cumbersome and introduces friction.
  • Proprietary softwares and open-source softwares live together seamlessly as long as those softwares can be included by the distro. This is a distro that can be used even by mac os content creators who would use proprietary softwares when they are substantially superior than open-source alternatives. Those mac os content creators do not have tolerance for complexity of most linux distros.
  • Make it so that it’s easy to add GUI package installer and GUI config on top of text config. GUI for beginner intuitiveness. Text config for expert customizations. GUI package installer should make it easy to enable and disable package repositories and services. GUI config and text config should seamlessly mesh with each other for both beginners and experts.
  • Provide a GUI/TUI installer for beginners. Document manual installation for experts.
  • For GUI intuitiveness, packages required by services cannot be deleted by GUI package manager or CLI package manager.
  • For GUI intuitiveness, deleted services and explicitly installed packages that are removed from repositories should be deal with properly, but I don’t know how to deal with them now in a way that even mac os content creators find intuitive.

If you create a holistic linux distro that satisfies both beginners and experts and unites open-source softwares and proprietary softwares and combines GUI config and text config, people will want to support it, and it will get a lot of donations and other kinds of support.

People really want to champion open-source softwares, but they avoid linux because linux is unintuitive with command line stuff. Don’t burden people with complexity, but reveal the inner details for experts. Utilize GUI and TUI whenever possible. Provide proprietary softwares when they are necessary or superior. People want to support open-source softwares, but they also want to get things done efficiently. Helping independent content creators get things done efficiently will contribute to human freedom far more than obsessing over open-source softwares or free softwares. In a sense, Mac OS contributes to human freedom better than linux distros by being friendly to independent content creators. Independent content creators are the last bastion of human freedom. When they fall, human species fall. Nazis rose to power when alternative media outlets fell. GPL proponents don’t really understand freedom unfortunately. GPL doesn’t prevent new kinds of nazis(a metaphor for authoritarians) from rising to power. Media outlets control what people think. Monopoly by mainstream media outlets will lead to rise of different kinds of authoritarianism because media outlets are funded by authoritarians. That’s why mass media outlets are distributed freely.

https://www.pantherx.org/ gets closer to my idea. It is a linux distro based on gnu guix.

It combines guix channel, nonguix channel, and its own channel. It avoids the problem of often missing dependencies from other channels by only providing tested commits from other channels through its own servers.

pantherx also provides GUI package installer. PantherX installer lets you choose a desktop environment. PantherX website has a config generator that generates a config for each desktop environment.

People may still need to run some commands for update, but I don’t know for sure. The built-in GUI package intaller might be able to handle the system update.

If PantherX documents or integrates https://toys.whereis.みんăȘ/, it will be closer to my idea.

1 Like

If I’m really honest with myself, gnu guix won’t really let me spend less time on maintenance than gentoo or arch. The amount of time saved by transactional update will be spent on writing support for programs because rigid mindset of GNU people introduces significant friction in sharing work with others. There are a lot of gnu guix users who don’t know about https://toys.whereis.みんăȘ/ because GNU people prevent people from talking about third party efforts in official communication channels. Third party means non-free softwares. Even gnu guix veterans who know how to write complicated services didn’t know about toys search engine.

nonguix isn’t very difficult to find, but nonguix is bottlenecked by its maintainers. There is a backlog of merge requests that haven’t been merged for a long time. On the other hand, gentoo provides an official channel that gives commit access to people who know how to write packages. Gentoo isn’t bottlenecked by maintainers. Gentoo tries its best to minimize friction in contribution.

If it’s hard to share work with others, the ecosystem will not grow as fast as it can.

On gentoo or arch, a few programs break for a few hours once in a while. On gnu guix, people end up writing the same code again and again because people don’t know an obvious way to share work with the world.

You aren’t really going to save time
 The grass is not greener on the other side. If you really want to save time, perhaps use mac os.