Summary Files Commits Branches @commit @diff @stats
path: root / src
diff options
context:
space:
mode:
Commitafc2940e459ac395f5960fe53b8af11af996ab60 (patch)
Author
 Syndamia <kamen@syndamia.com>
2023-06-07 22:06:15 +0300
Committer
 Syndamia <kamen@syndamia.com>
2023-06-07 22:06:15 +0300
Filesb359aa7da2acd5b979e5c56378e1c4fb4daa2286 /src
syndamia.com-afc2940e459ac395f5960fe53b8af11af996ab60.tar
syndamia.com-afc2940e459ac395f5960fe53b8af11af996ab60.tar.gz
syndamia.com-afc2940e459ac395f5960fe53b8af11af996ab60.zip
Parentdfdac12296ec0887637e5cf747af24d4b7a43167 (diff)
[fefgbf] Finished post
1 files changed, 47 insertions, 29 deletions
-rw-r--r--src/blog/friendship-ended-with-funtoo-now-gentoo-is-my-best-friend/index.md76
diff --git a/src/blog/friendship-ended-with-funtoo-now-gentoo-is-my-best-friend/index.md b/src/blog/friendship-ended-with-funtoo-now-gentoo-is-my-best-friend/index.md
index 03c0d5a..64f94d4 100644
--- a/src/blog/friendship-ended-with-funtoo-now-gentoo-is-my-best-friend/index.md
+++ b/src/blog/friendship-ended-with-funtoo-now-gentoo-is-my-best-friend/index.md
@@ -2,36 +2,43 @@
## Contents
-Around 6 months ago I wrote [Taming The Fun-too](/blog/taming-the-fun-too), a blogpost sharing my personal experiences with the Funtoo linux distribution.
-What you don't know is that less than a month later, on the 30 December (2022) I installed Gentoo on my desktop computer, and on the 1 March (2023) my laptop followed.
+1. [Terminology](#terminology)
+2. [Public Enemy No 1: Packages](#public-enemy-no-1-packages)
+3. [I didn't follow the wolf pack philosophy](#i-didnt-follow-the-wolf-pack-philosophy)
+4. [Why did I choose Funtoo in the first place?](#why-did-i-choose-funtoo-in-the-first-place)
+ 1. [Debunking benefits](#debunking-benefits)
+ 2. [Personal advantages over Gentoo](#personal-advantages-over-gentoo)
+
+Around 6 months ago I wrote [Taming The Fun-too](/blog/taming-the-fun-too), a blog post sharing my personal experiences with the Funtoo linux distribution.
+What you don't know is that less than a month later, at the end of December, I installed Gentoo on my desktop computer, and an additional 3 months later my laptop followed.
Here is what happened.
## Terminology
-I want to take a second and explain some Gentoo/Funtoo termnology:
+Before we begin, I want to take a second and explain some Gentoo/Funtoo terminology:
-- emerge: (almost) every program is compiled, so saying you're "installing" a package isn't entirely transparent, because normally "install" refers to copying already created files in specific system places.
- A new term was created, called "emerge", which means a package (program) has it's source code downloaded, then compiled into an executable and that executable is put somewhere in the system.
-- ebuild (file): packages are compiled and the exact steps to do so differs from one program to the other.
- For this reason, the package manager works with special files called "ebuilds" (contrary to normal package managers, where installing a package means downloading the files, needed for the package and putting them somewhere).
- An ebuild generally contains: list of dependencies, source code location, preparation and configuration options (usually the way a program is compiled is defined in the source code, so special instructions usually aren't needed).
-- use flags: every program can be built with different flags (aka options), which enable or disable certain features from being built into the result binary (for example, the text editor [vim](https://packages.gentoo.org/packages/app-editors/vim) supports sound, but you might not want to have that).
+- `emerge` (as a verb): what does "install" mean? I would argue it means copying a program and the file it depends on somewhere on a system, with the goal of being able to run this program.
+ Now, in Gentoo and Funtoo, most programs are compiled from source code, so before you install you download it's source and compile.
+ For this reason, on such systems you would usually say a certain program/package is *being emerged, not installed* (and the words comes from the [package-manager command-line utility of the same name](https://wiki.gentoo.org/wiki/Emerge)).
+- `ebuild` (file): the exact steps needed to emerge a package differ from one project to another, but how do you manage packages then?
+ The solution is that when you try to emerge something, a special file with detailed instructions is looked up: an ebuild file.
- repository tree: the collection of all ebuilds
+- `use` flags: every program can be built with different flags (aka options), which enable or disable certain features from being available in the result package.
+ For example, the text editor [vim](https://packages.gentoo.org/packages/app-editors/vim) supports sound, but not everyone would want to have that feature.
## Public Enemy No 1: Packages
-For reasons I'll elaborate on later, a whole truckload of packages go unmaintained and untested for years, with the fix being to update 20-30 other packages, which is normally unviable.
-The result was having a system which is limited in it's ability to install and build software.
+Most packages and their dependencies on Funtoo go unmaintained and untested for years, which significantly limits your abilities to install and build software.
-Python was stuck at version 3.7, while a lot of packages like barrier, libplacebo, mpv and pulseeffects (though some of them weren't in the Funtoo repository tree, they still were part of Gentoo) required[^required-3.8] at least 3.8.
+Python was stuck at version 3.7, while a lot of packages like barrier, libplacebo, mpv and pulseeffects[^packages-in-repo-tree] required[^required-3.8] at least 3.8.
So, with a lot of effort and poking around, I got python 3.8 to work, just barely.
What's even better is that eventually I reached an **unfixable** circular python dependency (between dev-python/packaging and dev-python/setuptools).
Another problem child was glibc, it is *currently* at [version 2.33-r2](https://github.com/funtoo/core-kit/tree/1.4-release/sys-libs/glibc), which under Gentoo [is officially masked and discouraged for usage](https://gitweb.gentoo.org/repo/gentoo.git/tree/profiles/package.mask#n542)[^glibc] and wouldn't you know it, also prevents some packages from being compiled (mainly I remember ungoogled-chromium).
-Most definetly there were a lot more problematic packages, but I've forgotten almost all details.
+There were a lot more problematic packages, but I've forgotten most details.
What I do remember is that the day I decided to hop to Gentoo, I tried to update my system and yet again I got some sort of issue, either a package couldn't compile properly or there was some dependency conflict.
-That was preceded by my unsuccessful attmpets at getting the kicad package to work a couple of days prior.
+That was preceded by my unsuccessful attempts at getting the kicad package to work a couple of days prior.
At that point, this had become completely normal.
**But** Funtoo shouldn't be blamed for it!
@@ -42,9 +49,12 @@ On the [Welcome](https://www.funtoo.org/Welcome) page of Funtoo's website, in th
This is essentially a document describing how a member of the community should behave, and I didn't follow it.
Any member of the pack is supposed to:
-- **Be Mindful of the Pack**: but as I found (package) challenges, I tackled them on my own, not trying to consult anyone or ask for help
-- **Be Interconnected**: but I didn't connect with anyone on my issues
-- **Howl**: but I didn't express my desires and needs and share the work I've done
+- **Be Mindful of the Pack** by tackling challenges with the community
+ but as I found (package) challenges, I tackled them on my own, not trying to consult anyone or ask for help
+- **Be Interconnected** by supporting and being supported by the community
+ but I didn't connect with anyone on my issues
+- **Howl** by expressing their needs and sharing their "adventures"
+ but I didn't express them and didn't share the work I've done
Or more simply put, Funtoo is a small project, and you need to communicate with others to get things done.
@@ -60,13 +70,13 @@ After enough time, so many stuff like that accumulated, I'm pretty sure I starte
## Why did I choose Funtoo in the first place?
-The primary reason I switched was because of a fellow student in university convinced me of all the cool features, general stability and resilliance of Funtoo.
+The primary reason I switched was because of a fellow student in university convinced me of all the cool features, general stability and resilience of Funtoo.
Looking back at it, the last two parts could be applied to a lot of distros, but I was using Fedora at the time, wanted to switch, and without any clear preference, I went with what he offered.
### Debunking benefits
But we did also talk about Gentoo, and he pointed out some reasons why Funtoo is better.
-Looking at these with heignseight:
+Looking at these with the benefit of hindsight:
> git > rsync
@@ -80,22 +90,21 @@ Funtoo has a system called [profiles](https://www.funtoo.org/Funtoo_Profiles).
The idea is that you can group a whole set of packages and use flags into one name with the ability to turn them off and on again.
So, if you want to install gnome on your system, you don't have to worry about flags and potential dependency problems, just use the gnome mix-in and everything will be ready to go for emerging.
-This is pretty cool but it's also somewhat unecessary.
-You would save time on your very first install ever, but once you've set your flags on one machine, you'll just need to copy some files over and be done with it.
+This is pretty cool but it's also somewhat unnecessary.
+You would save time on your very first install ever, but once you've set your flags on one machine, you'll just need to copy some files over (make.conf and package.use) and be done with it.
There is a case to be made for people who often emerge and unmerge packages, but they are very much a minority (which I'm not a part of).
> Funtoo has [stage 3 tarballs](https://wiki.gentoo.org/wiki/Stage_tarball) with already setup DEs
This means that on a Funtoo system, you could directly unpack the tarball (the initial prebuilt binaries), and without emerging anything, have a ready-to-go desktop environment.
-The huge benefit is that you can very quickly reboot into your "install" (after setting up the booting of course), and use your computer normally and with the comfort of a graphical environment while everything else is being emerged.
+The huge benefit is that you can very quickly reboot into your "install" (after setting up the booting of course), and use your computer with the comfort of a graphical environment while everything else is being emerged.
-Again, this is really cool, but at the end of the day, a normal "text-only" installation isn't very difficult, the [Gentoo handbook](https://wiki.gentoo.org/wiki/Handbook:AMD64/Full/Installation) is very detailed and well written.
-And I personally use a very custom openbox setup, so those DEs would be bloat.
+Again, this is really cool, but at the end of the day, a normal "text-only" installation isn't very difficult, the [Gentoo handbook](https://wiki.gentoo.org/wiki/Handbook:AMD64/Full/Installation) is very detailed and well written, you install a system once so in the long term it wouldn't matter and I personally use a custom desktop environment setup, so those DEs would be bloat.
> fixed release model
[Funtoo releases fixed version of their distro](https://forums.funtoo.org/topic/1945-funtoo-release-model/#comment-9321), which means, in theory, packages will be way more stable and tested than normally.
-Of course, their situation is different, and rolling just doesn't make sense, but in general, I've not really found problems, related to Gentoo's release model, packages have never been too bleeding edge.
+I've never found problems with packages being "too new", and this is more relevant to how the packages are managed by the maintainers, so it doesn't make that much of a difference to the end user, in my opinion.
> [autogens](https://www.funtoo.org/Autogen)
@@ -105,10 +114,12 @@ And I'm not a maintainer, so I don't really care.
### Personal advantages over Gentoo
+Though I've "disproved" all of them, that's not to say there aren't any advantages:
+
> ccache
Imagine you are compiling a program with source code of over 20000 files and in the latest update, only 1000 of them were changed.
-It will significantly improve efficiency, if you recompile only those 1000 files and use your work from before for the others.
+It will be significantly faster, if you recompile only those 1000 files and use your work from before for the others.
That is the idea of ccache, and on Funtoo it works great, I had it enabled for all packages.
Unfortunately, for Gentoo it's the opposite effect, I couldn't compile most packages with it enabled.
@@ -117,15 +128,22 @@ Unfortunately, for Gentoo it's the opposite effect, I couldn't compile most pack
There is a big emphasis on writing your use flags in a separate `/etc/portage/package.use` file (or make it a folder and add use flags in different subfiles), and to try and change `/etc/portage/make.conf` as little as possible.
I generally believe this is a significantly better system than stuffing everything into `make.conf`, and it isn't pushed that hard on Gentoo.
-> Learning ebuilds
+That said, Gentoo still supports it, so I'm not missing out, but I probably wouldn't have used it.
+
+> better ebuilds
-Now, this one is extremely personal, but around all of my shenanigans with packages, I actually learned roughly how ebuilds work.
-This lead to my [first bugreport](https://bugs.gentoo.org/906643) in which I had also figured out a solution.
+Though I can't empirically prove this, I found that the packages that worked on Funtoo compiled faster than their Gentoo counterparts and generally the ebuilds were simpler and more manageable.
> Slightly better documentation
I'm not saying Gentoo's documentation is bad, but Funtoo's is often written a bit more simply.
+<br>
+
+Funtoo has it's audience, if you're ready to be a part of the wolf pack, it has to potential to be even better than Gentoo.
+That said, if you need something which always just works, your choice should be Gentoo, as it is for me.
+
+[^packages-in-repo-tree]: Not all of those packages are in the repository tree, but that doesn't matter, if you want to compile a program, you should be able to do so.
[^required-3.8]: Required might be a strong word, I don't remember if I tried (though I'm sure I did) just downgrading the Python version in the ebuild. Nevertheless, there were for sure useful packages which really did need it.
[^glibc]: This point may not be completely fair, since Funtoo has a system for [ebuild generation](https://web.archive.org/web/20230528115518/https://projects.funtoo.org/metatools/docs/autogen.html), which means that they might've made configuration changes and/or applied patches which "fix" that version, but still, it really isn't a good look.
[^kicad]: On that aforementioned kicad package, drobbins, the benevolent dictator for life of Funtoo, categorized it as a [package which people aren't interested in](https://bugs.funtoo.org/browse/FL-8435?focusedId=52907&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-52907).