-- Leo's gemini proxy

-- Connecting to gemini.tuxmachines.org:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;lang=en-GB

Tux Machines


Gentoo Being Modernised in Portage (UPDATED)


Posted by Roy Schestowitz on Jun 19, 2023,

updated Jun 20, 2023


today's howtos

Today in Techrights


↺ Gentoo


Bonding period 1 – Modernization of Portage


↺ Bonding period 1 – Modernization of Portage


> Hello everyone,


> I am Berin Aniesh, one of the four contributors for Gentoo through GSOC 2023. You can read more about us here. In this post, I want to talk about the project I am working on and the first two weeks of the community bonding period


↺ here


> The title of the project is “Modernization of portage codebase by refactoring and rewriting performance critical parts as C++ extensions”.


> Portage is probably the most versatile package manager on the planet and this has been its boon and bane at the same time This versatility combined with portage’s feature richness has made it possible for not only gentoo users, but projects like chromium OS, Flatcar container linux, a numerous downstream projects and many more. In linux, it can support any underlying stack (eg. glibc vs musl, hardened systems, systemd vs openrc, etc). Other than linux, it can also run on BSD and MacOS. It supports compile time feature selection through USE flags. Taking all these factors into account, together with the fact that portage supports numerous architectures, seeing portage perform its duties as it was designed to is a huge feat of engineering. And above all, everything of portage is written by passionate volunteers. If anything, understanding the landscape of gentoo has brought me huge respect towards the gentoo developers and the community.


↺ here



Week 3 – Modernization of Portage


↺ Week 3 – Modernization of Portage


> It is the third week of the coding period. It is mostly an uneventful week. Most part was spent on trying to understand the dependency resolution algorithm. In the second part of the week I also did some refactoring and some type hints.


> I lost my password to access this blog and also had troubles resetting the password. That is why I have not been able to post per week. With help from BlueKnight, I got my access back. So, I am dumping the blog posts I have written, all at once. From next week, I expect posts to be at regular intervals (one per week). Sorry about the bulk posting, hope you don’t mind.



Week 1 – Modernization of Portage


↺ Week 1 – Modernization of Portage


> So, it’s the first week of the official coding period and I wanted to write some code and get it merged into the master branch (I understand it’s a bit over ambitious of me, but a man can wish). As I said in the first blog post, portage is relied up on by many people for different use cases and if something were a simple fix, the gentoo developers would have done it already. I just can’t storm in and make changes, expect things to work.


> So, we tried to find a place which has very little impact on the portage’s running and ended up at emerge --version.



Week 3 report on porting Gentoo packages to modern C


↺ Week 3 report on porting Gentoo packages to modern C


> Hello all,


> I’m here with my week 3 report for Modern C porting of Gentoo’s packages. For this week I diverted from my initial idea a bit and focused on the “C++17 does not allow register storage class specific” type error. Basically, C++14 deprecated the register storage class and it has been completely removed in C++17, thus resulting in C++ packages that use register keywords with this kind of error. A general fix is it either removes the keywords or replaces them with *int* where applicable.


> For example, in this PR [1] for the fox toolkit, I’m using sed to remove register keywords from various folders of the source. Whenever possible I’m sending patches upstream as well, for example, I’ve sent this [2] patch upstream while also applying it Gentoo tree.


UPDATE


Bonding Period 2 – Modernization of Portage


↺ Bonding Period 2 – Modernization of Portage


> In order to get familiar with the portage codebase, we decided that I’d fix a few bugs. This blog post talks about the second half of the community bonding period (weeks 3 and 4) where I try to do that.


> When it comes to bugs, the paradox of choice is real. To choose from, there is a heap of them (1439 at the moment of writing). Most of the bugs are quality of life improvements as the portage team has put in a lot of effort to make sure portage does it’s jobs without many errors. After searching, we decided to work on bug 634576.


↺ 634576


↺ 634576




gemini.tuxmachines.org

-- Response ended

-- Page fetched on Fri Jun 14 04:11:45 2024