A few years back (when I was working for GoDaddy) me and a few of my colleagues were talking about various Linux distributions and how each is special in its own way.
One of the names I brought up was Gentoo and to my surprise the majority of my colleagues were not familiar with it and the ones that were familiar with it used words like “hardcore” and “experts” to describe the kind of people it takes to use it in production so I decided I should do a show and tell.
Soon after I went ahead and installed it inside a VM and started showing how it looks, behaves, how packages are installed and etc and suddenly it sparked a bit of interest but the general feeling remained the same so at the time I made them a promise that I would go ahead and build them a custom image that would look and feel like CentOS (RHEL) but in reality under the hood it would be some sort of Gentoo voodoo and that should they find themselves SSH-ing into one such box in a prod environment they would not even realise it’s not CentOS.
As fate would have it I left GoDaddy before I could deliver on my word however I kept in touch with my team and the time has come for me to deliver.
I can’t tell you why but for some reason towards the end of 2023 / start of 2024 I felt this weird urge to give this project a go and so far it’s been awesome.
I started by installing Gentoo inside a VM and then worked on getting it working with pre-compiled packages (which worked by the way) but then while working on converting from the standard bin packages to rpm I soon realised that this would not really be a viable option as I would have needed to ditch portage completely and rely on rpm to install stuff (as otherwise I would have needed to rewrite a lot of portage to work with the rpm database) plus many of the Gentoo packages when they are built using emerge have a ton of calls to portage specific libraries and scripts and tools to detect the environment and dependencies and prepare the configuration and stuff like that so I soon realised it would be too much effort for one person so I decided to stop (after about 2 – 3 months during which I used a lot of my free time to mess about with this) and reconsider my options.
After a few months I woke up one morning thinking … hey … wait a minute … Gentoo is not even a Linux distro … it’s a meta distro … at the end of the day you use portage to compile from source … and that sparked a different idea – “why not give LFS a go?” because at the end of the day I could start with that and then get rpm/yum/dnf going and then apply some of the customisations from Gentoo and some of customisations from CentOS/Fedora/RHEL to spec files and get pretty much what I was aiming for.
With that in mind I then proceeded to building a first minimal LFS image, got that working as a VM in my lab (garage cluster) and after that I worked on getting rpm/yum/dnf working – that took another 2 months-ish to get right (calendar months not actual work, again … I’ve been using my free time for this project) and after that I started recompiling everything as an rpm and proceeded to generating a new VM by simply installing rpm packages.
At this point in time (so about 1 year in – actual work I’d say perhaps 1 month … maybe a bit more) I have a pipeline that spits out a raw VM image that works , I have pipelines to build about a third of all the packages, I managed to manually prepare an LXC container with my OS that works (but need to CI/CD that soon), I have a messy yum repo from where packages are pulled and installed ( about 250 – 300 packages – think cli stuff) and an insatiable hunger to get a first iso image going 🙂
Today I used Gemini AI to help with some graphics to prepare the “official” site for my linux distro – https://gentos.seceleanu.co.uk – where I have a coming soon page. Keep an eye on it as I’ll start adding content there soon enough.
A pretty cool way to end 2024 … looking forward to what next year will bring.
PS. In case you have not guessed it yet … GentOS comes from mixing Gentoo with CentOS and should be seen as a tribute to all the Linux distros and initiatives out there as when it will be officially available to everyone it will be the weirdest hybrid ever (you’ll understand later as I start populating its official site)
PS2. In case you were wondering why no new articles on my blog … the answer is I spent a lot of my free time on this project and forgot to update the blog 🙂