Summary Files Commits Branches @commit @diff @stats
path: root / src
diff options
context:
space:
mode:
Commitdfdac12296ec0887637e5cf747af24d4b7a43167 (patch)
Author
 Syndamia <kamen@syndamia.com>
2023-05-29 10:56:28 +0300
Committer
 Syndamia <kamen@syndamia.com>
2023-05-29 10:56:28 +0300
Files5891323ca6358ae2175cda366a68a3b5b3f38bba /src
syndamia.com-dfdac12296ec0887637e5cf747af24d4b7a43167.tar
syndamia.com-dfdac12296ec0887637e5cf747af24d4b7a43167.tar.gz
syndamia.com-dfdac12296ec0887637e5cf747af24d4b7a43167.zip
Parent0492d9f2f4a38c9c09c702ae8e5db6b16d6a926b (diff)
[fefgbf] Added terminology and elaborated on benefits
1 files changed, 41 insertions, 6 deletions
-rw-r--r--src/blog/friendship-ended-with-funtoo-now-gentoo-is-my-best-friend/index.md47
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 36a8792..03c0d5a 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
@@ -6,6 +6,18 @@ Around 6 months ago I wrote [Taming The Fun-too](/blog/taming-the-fun-too), a bl
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.
Here is what happened.
+## Terminology
+
+I want to take a second and explain some Gentoo/Funtoo termnology:
+
+- 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).
+- repository tree: the collection of all ebuilds
+
## 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.
@@ -37,8 +49,8 @@ Any member of the pack is supposed to:
Or more simply put, Funtoo is a small project, and you need to communicate with others to get things done.
Another way to look at it is that in a project of this scale, what gets supported is what the community uses, so in a way, I was trying to use Funtoo in the *wrong* way.
-This may sound ridiculous, but then again, they aren't making an Ubuntu or Linux Mint, a project that tries to work for everyone, in a way this is a project by the community for the community.
-You can't expect them to support everything that a big-scale distro does, like Gentoo, with a fraction of the manpower, so if something, which nobody supports, doesn't work and you don't at least speak up, it will probably stay broken[^kicad] (this kind of relates to the **Is Territorial** point in the philosophy).
+This may sound ridiculous, but then again, they aren't making a project which "just works" for everyone (like Ubuntu or Linux Mint), this is a project by the community for the community.
+You can't expect them to support everything that a big-scale distro does, like Gentoo, with a fraction of the manpower, so if nobody supports a package (which exists in the repository tree) that doesn't work and you don't at least speak up, it will probably stay broken[^kicad] (this kind of relates to the **Is Territorial** point in the philosophy).
However, in my defense, I didn't open bug reports or create forum posts because my issues weren't "directly" related to Funtoo, or a normal Funtoo installation.
Most of the time I would have an issue with a package, then get it's Gentoo counterpart, try to get all dependencies working one by one, and it will fail with some unsearchable error.
@@ -54,7 +66,7 @@ Looking back at it, the last two parts could be applied to a lot of distros, but
### Debunking benefits
But we did also talk about Gentoo, and he pointed out some reasons why Funtoo is better.
-Look at these with heignseight:
+Looking at these with heignseight:
> git > rsync
@@ -69,7 +81,7 @@ The idea is that you can group a whole set of packages and use flags into one na
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
+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.
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
@@ -80,9 +92,9 @@ The huge benefit is that you can very quickly reboot into your "install" (after
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.
-> release TODO
+> fixed release model
-[Funtoo isn't doing rolling release](TODO), which means, in theory, packages will be way more stable and tested than normally.
+[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.
> [autogens](https://www.funtoo.org/Autogen)
@@ -91,6 +103,29 @@ Rather than making ebuilds manually, on Funtoo you can automatically generate th
This system probably reduces management time quite a lot, especially for a smaller team of maintainers, but you would still need to understand ebuild files.
And I'm not a maintainer, so I don't really care.
+### Personal advantages over Gentoo
+
+> 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.
+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.
+
+> package.use > make.conf
+
+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
+
+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.
+
+> Slightly better documentation
+
+I'm not saying Gentoo's documentation is bad, but Funtoo's is often written a bit more simply.
+
[^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).