Search
1000 results for “Gentoo_eV”
-
I'm building webkit-gtk right now. It's one of these messy packages where a few source files need a lot of memory to compile, and ninja can randomly order jobs so that all of them suddenly start compiling simultaneously. So to keep things going smoothly without OOM-ing, I've been dynamically adjusting the available job count via steve the #jobserver.
While doing that, I've noticed that ninja isn't taking new jobs immediately after I increased the job count. So I've started debugging steve, and couldn't find out anything wrong with it. Finally, I've looked into ninja and realized how lazy their code is.
So, there are two main approaches to acquiring job tokens. Either you do blocking reads, and therefore wait for a token to become available, or you use polling to get noticed when it becomes available. Ninja instead does non-blocking reads, and if there are no more tokens available… it waits till one of its own jobs finish.
This roughly means that as other processes release tokens, ninja won't take them until one of its own jobs finish. And if ninja didn't manage to acquire any job tokens to begin with, it is just running a single process via implicit slot, and that process finishing provides it with the only chance to acquire additional tokens. So realistically speaking, as long as there are other build jobs running in parallel, ninja is going to need to be incredibly lucky to ever get a job token, since all other processes will grab the available tokens immediately.
This isn't something that steve can fix.
-
I'm building webkit-gtk right now. It's one of these messy packages where a few source files need a lot of memory to compile, and ninja can randomly order jobs so that all of them suddenly start compiling simultaneously. So to keep things going smoothly without OOM-ing, I've been dynamically adjusting the available job count via steve the #jobserver.
While doing that, I've noticed that ninja isn't taking new jobs immediately after I increased the job count. So I've started debugging steve, and couldn't find out anything wrong with it. Finally, I've looked into ninja and realized how lazy their code is.
So, there are two main approaches to acquiring job tokens. Either you do blocking reads, and therefore wait for a token to become available, or you use polling to get noticed when it becomes available. Ninja instead does non-blocking reads, and if there are no more tokens available… it waits till one of its own jobs finish.
This roughly means that as other processes release tokens, ninja won't take them until one of its own jobs finish. And if ninja didn't manage to acquire any job tokens to begin with, it is just running a single process via implicit slot, and that process finishing provides it with the only chance to acquire additional tokens. So realistically speaking, as long as there are other build jobs running in parallel, ninja is going to need to be incredibly lucky to ever get a job token, since all other processes will grab the available tokens immediately.
This isn't something that steve can fix.
-
I'm building webkit-gtk right now. It's one of these messy packages where a few source files need a lot of memory to compile, and ninja can randomly order jobs so that all of them suddenly start compiling simultaneously. So to keep things going smoothly without OOM-ing, I've been dynamically adjusting the available job count via steve the #jobserver.
While doing that, I've noticed that ninja isn't taking new jobs immediately after I increased the job count. So I've started debugging steve, and couldn't find out anything wrong with it. Finally, I've looked into ninja and realized how lazy their code is.
So, there are two main approaches to acquiring job tokens. Either you do blocking reads, and therefore wait for a token to become available, or you use polling to get noticed when it becomes available. Ninja instead does non-blocking reads, and if there are no more tokens available… it waits till one of its own jobs finish.
This roughly means that as other processes release tokens, ninja won't take them until one of its own jobs finish. And if ninja didn't manage to acquire any job tokens to begin with, it is just running a single process via implicit slot, and that process finishing provides it with the only chance to acquire additional tokens. So realistically speaking, as long as there are other build jobs running in parallel, ninja is going to need to be incredibly lucky to ever get a job token, since all other processes will grab the available tokens immediately.
This isn't something that steve can fix.
-
it was ultimately pretty easy, since im :gentoo: with netifrc going, i was finally pointed to by someone in the #gentoo irc to the default config examples for
/etc/conf.d/netand with some followup i found out that i just had to symlink the service file for the ens18 device, and then do this:config_ens18="dhcp 2605:a141:2219:1995::1/64"(its not exactly a secret, this server is broadcasting an ip address thats kind of the point here lol) and i was able to restart the interface without it kicking me out of the ssh yay! anyway just some #akkoadmin #fediadmin #contabo #gentoo #netifrc #ipv6 tips as i did not find any of the documentation on this straightforward, especially since netifrc isn’t as in vogue as whatever systemd-based hunks of junk everyone is running now
-
What could I be doing right now, on a Friday evening?
Of course filing bugs on random #Python / #RustLang packages requesting a #PyO3 version update and a new release, to support #PyPy 3.11 in #Gentoo. Because obviously the right way to maintain modern Python packages is to rewrite random parts of them in Rust, then neglect updating their dependencies for half a year or more.
Yes, I'm talking about all the packages that don't even support PyO3 0.23.x yet.
And then they'll come and say that we should leave dependency management and security to upstreams.
-
i can play them inside the browser ofc, but... theyre changing colors! even on the pause! like hew shifts randomly. not too strong, but annoying!
i'm interested in building #chromium os (#chromiumos) - #gentoo based system tthats #cromeos is based on, and ig this openfyde is also based on it (but latest build is chromium 120 in the beginning of august)
maybe i can even add some additional packages to it, idk -
New on blog: "The perils of transition to 64-bit #time_t"
"""
In the "Overview of cross-architecture portability problems", I have dedicated a section to the problems resulting from use of #32-bit `time_t` type. This design decision, still affecting Gentoo systems using glibc, means that 32-bit applications will suddenly start failing in horrible ways in 2038: they will be getting `-1` error instead of the current time, they won't be able to `stat()` files. In one word: complete mayhem will emerge.There is a general agreement that the way forward is to change `time_t` to a 64-bit type. Musl has already switched to that, glibc supports it as an option. A number of other distributions such as Debian have taken the leap and switched. Unfortunately, source-based distributions such as #Gentoo don't have it that easy. So we are still debating the issue and experimenting, trying to figure out a maximally safe upgrade path for our users.
Unfortunately, that's nowhere near trivial. Above all, we are talking about a breaking ABI change. It's all-or-nothing. If a library uses `time_t` in its API, everything linking to it needs to use the same type width. In this post, I'd like to explore the issue in detail — why is it so bad, and what we can do to make it safer.
"""https://blogs.gentoo.org/mgorny/2024/09/28/the-perils-of-transition-to-64-bit-time_t/
-
Today #Inea, my ISP, had a major fiber fault — apparently ranging from the Dębiec district of Poznań, all the way south to Czempiń (something like 30 km). What did I discover due to that?
Firstly, I couldn't find any way to find information on current faults anywhere on their website. Finally, I've decided to use the "chat" with their "virtual advisor" (i.e. some stupid LLM). Immediately after opening it and agreeing to the terms of service, it threw a list of current faults at me. Couldn't they have put that somewhere in the website instead?
Secondly, I had a hard time getting #tethering with my phone to work. I couldn't figure out why #DHCP wasn't working. And neither #systemd, nor #Android, provides any useful way to debug this shit, so I've finally tried Wireshark. Using it, I was able to tell what IP the phone is using, gave my PC an address in the same range, and DHCP miraculously started working.
In fact, I do believe it isn't the first time that DHCP didn't work for me until I gave some random IP address to the computer. I admit that I'm not a networking expert, nor would I even call myself a sysadmin, but WTF?!
-
Daniel Robbins announced the end of #Funtoo. Well, as someone who had the short unpleasantness of working on Funtoo, I'm going to share an unpopular opinion: "sorry, but I'm not sorry".
https://forums.funtoo.org/topic/5182-all-good-things-must-come-to-an-end/
Daniel Robbins left #Gentoo, because he couldn't stand the idea that the project grew and people wanted a say too. He tried coming back, more than once. This post is one of the great summaries of the situation:
https://lwn.net/Articles/224615/
While Funtoo sounds like fun, it really wasn't. Sure, back in the day, it had some cool hacks on top of Gentoo. But then it started falling behind. Over time, it stopped offering users real advantages over Gentoo, and focused on buzzwords instead. In the end, it's hard not to feel that eventually, it was just another attempt to monetize on Gentoo.
Funtoo was an inherently toxic place. There were times when you felt that the only thing keeping the core developers together was hatred for Gentoo (for one reason or another). So while new people came, they soon left the project. Daniel Robbins also tried hiring developers to work on Funtoo (myself included), but as you can probably guess, he was the kind of employer who was never satisfied with your work and always found justifications not to actually pay what he owe. Did automatic pull from Gentoo just break Funtoo? "You're a Gentoo dev too, it's all your fault!"
So, no, I'm not sorry that the story of Funtoo ends here. At least people won't be lured into a toxic, half-dead buzzword Gentoo fork. I just hope Daniel Robbins won't try to come back to Gentoo again now.
-
The #TimeMachine package is relying on CPython implementation details, so it suffers from a bunch of portability problems. #FreezeGun works everywhere. So what's the correct way to get your package portable?
Of course, create a complex chain of classifiers that decide whether FreezeGun or time-machine should be pulled on a particular target. Because it's important that the dozen tiny tests relying on time mocking are OMG so fast!!!111eleven
https://github.com/pypa/virtualenv/blob/2a149ec196eefceceb3b017a0a8df7788f52522a/pyproject.toml#L67
-
Of course, there's a #PEP517 backend for #SCons, one of the most horrible build systems ever made by humankind.
Of course, it managed not to implement PEP517 correctly.
https://discuss.python.org/t/are-build-backends-that-use-different-keyword-arguments-to-the-standard-spec-compliant/53056
https://github.com/dholth/enscons/issues/42 -
Of course, there's a #PEP517 backend for #SCons, one of the most horrible build systems ever made by humankind.
Of course, it managed not to implement PEP517 correctly.
https://discuss.python.org/t/are-build-backends-that-use-different-keyword-arguments-to-the-standard-spec-compliant/53056
https://github.com/dholth/enscons/issues/42 -
Of course, there's a #PEP517 backend for #SCons, one of the most horrible build systems ever made by humankind.
Of course, it managed not to implement PEP517 correctly.
https://discuss.python.org/t/are-build-backends-that-use-different-keyword-arguments-to-the-standard-spec-compliant/53056
https://github.com/dholth/enscons/issues/42 -
Of course, there's a #PEP517 backend for #SCons, one of the most horrible build systems ever made by humankind.
Of course, it managed not to implement PEP517 correctly.
https://discuss.python.org/t/are-build-backends-that-use-different-keyword-arguments-to-the-standard-spec-compliant/53056
https://github.com/dholth/enscons/issues/42 -
There's a #Python package called #WatchDog. It provides an API to "monitor file system events", and has a bunch of reverse dependencies. Historically these included #uvicorn.
In 2020, uvicorn replaced WatchDog with #WatchGod. If I recall correctly, it was the only package to use it in #Gentoo.
In 2022, WatchGod was abandoned, or rather rewritten in #RustLang as #WatchFiles. Uvicorn followed suit, removing WatchGod support (just like WatchDog support was removed before) in favor of WatchFiles.
Today, WatchFiles is used by 2 Gentoo packages: uvicorn and pelican. It has known incompatibilities with anyio >= 4 that hasn't gotten any upstream attention in 2 months now. WatchFiles seems pretty much unmaintained at this point.
In the meantime, WatchDog has had a release a few days ago and doesn't need any blockers.
-
Wow, just tried btop++ for the first time, and LOVE it. Everything I need, all in one place. Very helpful.
Heard about it on #TWiT #UntitledLinuxShow recently.
Find btop++ at https://github.com/aristocratos/btop or through your package manager. #Gentoo has an ebuild for it.
-
CW: half-baked musing on linux distros and init systems, in which i compare gentoo and openrc to steampunk
When I'm being paid, I'm probably working with #debian and #systemd. When I'm not being paid, it's probably #gentoo and #openrc.
I don't have a problem with debian, and—well—I have a lot of complaints about systemd, but I can work with it (and I have to!), so I'll leave it at that.
I think because of that context, working with gentoo and openrc feels like I get to travel to an alternative linux future where everything is just, quietly, good.
It's sort of like how early steampunk felt, all, "what if a few key decisions had gone differently, and making technology were still a craft?"
I feel like there's some stuff I could unpack there, but I have a workday to get to, so, pause
-
How about considering coming over to #guix @rek2. Maybe you will find what you were looking for in arch and gentoo there. Note the guix community is also actively supporting the #hurd and even ramping it up https://guix.gnu.org/en/blog/2026/the-64-bit-hurd/
-
Ten hour days always forces me to move from working out in the morning to evening. And frankly it never works out as well as my normal schedule. By the end of the day I want dinner and sleep. Its hard to do my routine this way
Still transferring from the Ubuntu Servers to Gentoo servers. Moved the websites today. Having issues with Nginx configuration. Kinda just trying to get it working properly. Snippets are being a bitch.
-
#SigStore / #PyPI attestations: #PGP is hard! We must invent a new signing scheme that's so much easier on users.
The tools, after I've spent hours *integrating* them into #Gentoo, and getting them working for everything before:
* Verifying google_auth-2.46.0.tar.gz ...
Provenance signed by a Google Cloud account, but no service account provided; use '--gcp-service-account'Yeah, I'm sure that's *so much simpler* than PGP.
-
Hirn sein komisch.
Plötzlich muss ich an Lehmanns Online Bibliothek denken und an all die #SuSE-Editionen, die ich damals dort bestellt hatte.
Bevor ich keine Lust mehr auf #yast als gui statt als ncurses hatte, weil ich für eine graphische Systemsteuerung auch Windows hätte nutzen könnte. Ich bin dann auf #gentoo umgestiegen. Beste Entscheidung ever!
-
Hirn sein komisch.
Plötzlich muss ich an Lehmanns Online Bibliothek denken und an all die #SuSE-Editionen, die ich damals dort bestellt hatte.
Bevor ich keine Lust mehr auf #yast als gui statt als ncurses hatte, weil ich für eine graphische Systemsteuerung auch Windows hätte nutzen könnte. Ich bin dann auf #gentoo umgestiegen. Beste Entscheidung ever!
-
Hirn sein komisch.
Plötzlich muss ich an Lehmanns Online Bibliothek denken und an all die #SuSE-Editionen, die ich damals dort bestellt hatte.
Bevor ich keine Lust mehr auf #yast als gui statt als ncurses hatte, weil ich für eine graphische Systemsteuerung auch Windows hätte nutzen könnte. Ich bin dann auf #gentoo umgestiegen. Beste Entscheidung ever!
-
Hirn sein komisch.
Plötzlich muss ich an Lehmanns Online Bibliothek denken und an all die #SuSE-Editionen, die ich damals dort bestellt hatte.
Bevor ich keine Lust mehr auf #yast als gui statt als ncurses hatte, weil ich für eine graphische Systemsteuerung auch Windows hätte nutzen könnte. Ich bin dann auf #gentoo umgestiegen. Beste Entscheidung ever!
-
Yeah, so the GNU #make jobserver protocol is trivial, which can be a blessing and a curse. It puts the job management entirely on the clients, which means that they must reliably return job tokens, or otherwise the jobserver will be left with no jobs available and everything will hang. The make documentation is clear on this:
> Your tool should be sure to write back the tokens it read, even under error conditions. This includes not only errors in your tool but also outside influences such as interrupts (SIGINT), etc. You may want to install signal handlers to manage this write-back.
https://www.gnu.org/software/make/manual/html_node/POSIX-Jobserver.html
I was worried that the #NinjaBuild jobserver implementation may not handle this correctly, but fortunately it does. The irony is, it turns out that GNU make does not…
-
Yeah, so the GNU #make jobserver protocol is trivial, which can be a blessing and a curse. It puts the job management entirely on the clients, which means that they must reliably return job tokens, or otherwise the jobserver will be left with no jobs available and everything will hang. The make documentation is clear on this:
> Your tool should be sure to write back the tokens it read, even under error conditions. This includes not only errors in your tool but also outside influences such as interrupts (SIGINT), etc. You may want to install signal handlers to manage this write-back.
https://www.gnu.org/software/make/manual/html_node/POSIX-Jobserver.html
I was worried that the #NinjaBuild jobserver implementation may not handle this correctly, but fortunately it does. The irony is, it turns out that GNU make does not…
-
Yeah, so the GNU #make jobserver protocol is trivial, which can be a blessing and a curse. It puts the job management entirely on the clients, which means that they must reliably return job tokens, or otherwise the jobserver will be left with no jobs available and everything will hang. The make documentation is clear on this:
> Your tool should be sure to write back the tokens it read, even under error conditions. This includes not only errors in your tool but also outside influences such as interrupts (SIGINT), etc. You may want to install signal handlers to manage this write-back.
https://www.gnu.org/software/make/manual/html_node/POSIX-Jobserver.html
I was worried that the #NinjaBuild jobserver implementation may not handle this correctly, but fortunately it does. The irony is, it turns out that GNU make does not…
-
Yeah, so the GNU #make jobserver protocol is trivial, which can be a blessing and a curse. It puts the job management entirely on the clients, which means that they must reliably return job tokens, or otherwise the jobserver will be left with no jobs available and everything will hang. The make documentation is clear on this:
> Your tool should be sure to write back the tokens it read, even under error conditions. This includes not only errors in your tool but also outside influences such as interrupts (SIGINT), etc. You may want to install signal handlers to manage this write-back.
https://www.gnu.org/software/make/manual/html_node/POSIX-Jobserver.html
I was worried that the #NinjaBuild jobserver implementation may not handle this correctly, but fortunately it does. The irony is, it turns out that GNU make does not…
-
@filippo Meanwhile, bootstrapping a current OpenJDK involves compiling multiple ancient packages (each with its own set of outdated dependencies, of course) and then going up all the way from Java 7, version by version.
@stikonas has described this tedious process and developed some ebuilds for Gentoo here: https://git.stikonas.eu/andrius/gentoo-bootstrap
This also applies to Rust in a way, but at least it's not as bad there – not yet, as the old versions might eventually succumb to bitrot, too.
Please, dear programming language community, can we do better at this? For resilience, for reproducibility, for reliability, for portability and for preservation?
#bootstrappablebuilds #bootstrapping #reproduciblebuilds #trustingtrust #gentoo #openjdk #rust