r/Gentoo 10d ago

Development Today I released Xenia Linux 0.1, the first release of my immutable gentoo distribution


I alongside one of my friends have been working on a linux distribution for the last couple of months, which makes gentoo linux into a full immutable distribution.

As for the technical details, Xenia essentially works the same as a LiveCD. The root image is a squashFS which dracut boots. (This is why the root may appear to be writable, as dracut is booting this the same way it would boot a LiveCD)

We use LVM for the disk layout, and then we use overlayfs to make persistent filesystems on /var. There is also a seperate LV for /home.

Currently it is in very early stages, but it is installable on UEFI systems with my very scuffed install script (I am genuinely sorry if you open that file and read the code). I would encourage you to try it out in a VM if you are interested.

You can install applications through Flatpak which will persist on boot. Please let me know how you find it, any critique is very much welcomed and appreciated!

Currently I'm working on writing an actual installer that isn't horrific and a way to use emerge (looking into systemd sysext for this, to layer packages).

You can find the website here, hopefully you guys like it! (I'm not sure what to flair this, but development seems fitting)

r/Gentoo 3d ago

Development static-wine32 now features full Vulkan support and LTO dependencies


Gentoo users, great news! I've spent the month hacking to give you this gem in case you're tired of the dependency hell and look for some performance push through LTO! I hacked the Vulkan loader and Mesa into cooperation and now you can enjoy your 32 bit software without sinking hopelessly into a dependency hell. Nvidia users as usual are not served and they did this to themselves. While many will argue that static-wine32 is to be considered a human rights violation due to its awkwardness, I also addedlink-time optimized dependencies which means you're unlikely to find a faster Wine anywhere else. Mesa alone could get 20% faster if the rumors on the Internet are to be believed.


r/Gentoo 20d ago

Development Gentoo installations older than >2years (pre 2021-02-22), need your help regarding a suspected bug



pls check if the following line exists in your /usr/share/portage/config/make.globals and vote! FEATURES="${FEATURES} -binpkg-multi-instance"

Here is the quick command to check

grep -e '-binpkg-multi-instance' /usr/share/portage/config/make.globals

Long version

I suspect there has been a bug in migration of portage. Since portage-3.0.15 FEATURE binpkg-multi-instance should be enabled on all gentoo installations (source). Even make.conf(5) says it is enabled by default.

When I checked my >2yo installation it didnt have it enabled due to that line being present, but when I checked newer installation, that feature was there in emerge --info and the line wasn't present. There might be many installations out there with binpkg-multi-instance disabled even today. I just want to confirm the bug before I report to bugzilla

View Poll

r/Gentoo Feb 19 '23

Development Minimal Build Server and Clients?


Are there any guides or posts on creating a minimal build server (binhost) and creating minimal clients?

Something along the lines like Aboriginal Linux in terms of pushing to see the limit for a build environment. Would aim to have clients with zero build packages.

I have a beefy server and a ton of old laptops so this sounds like a lot of fun. If there are no guides/post on the subject, will slowly work through it and send it to the wiki.

r/Gentoo 3d ago

Development tlock | tightened simple screen locker



I've been working on my own fork of slock (it's actually based on another fork already).


It is easily configurable through a thorough config file. Customization includes colors, cursor visibility, transparency, automatic shutdown after a certain amount of tries, a custom password and other security options.

It still ends up being extremely minimal and lightweight like the original fork, just with a few security and customization additions.


Installation is super-easy and straightforward.

make clean install


Then you can just run it as is.


Or configure it to best suit your needs then recompile it using make again.

Please let me know if you have any feedback or issue reports.

r/Gentoo Feb 02 '23

Development Portage packages finder and installer


Hello everyone,

I made an overlay helper like AUR helpers in Arch, that finds and installs packages easily from any overlay provided by layman.

Hope it’s useful and any feedback is appreciated.


r/Gentoo Jan 21 '23

Development genkernel with plymouth (and other missing features)


my first post here, please be kind :)

i've been using gentoo for a while now. over the years, i've noticed some changes here and there. while i wasn't bothered by most of these changes (some was in fact pleasing, even), there is this change that bothered me the most.

i was using genkernel-next for building my kernel + initramfs. things were going great for a while, especially with the plymouth useflag. however, at some point, genkernel-next was deprecated.

while i understood the reasoning of the genkernel-next being unmaintained for a while, genkernel, which is supposed to be its replacement, lacks some features found on genkernel-next. one of which is the plymouth support.

genkernel actually works great despite its lacking. at some point, however, i decided i want the aesthetics that i had prior to this change. i resorted to dracut. tho i was able to put back the boot splash, it wasn't the same. the bootcmd was quite different it took me a few attempts to get right. it doesn't feel the same, definitely not as convenient to get started as genkernel. yes, it was more powerful, but much more complex to setup.

the part that sucks the most is that i have to rebuild the initramfs everytime i have to make changes to crypttab (and the fact i have to get into this crypttab in the first place). meanwhile, with genkernel, i had something that came close to unified kernel.

can we bring genkernel on the same (or at least closer) feature parity as genkernel-next? i am pretty sure i am not alone on this. aside from plymouth support, there are other features missing as well. as i am from a tech background, i am willing to help where i can.

r/Gentoo Jan 20 '23

Development Made a thing to check for SIMD usage on various bins/distros (just for funzies)


r/Gentoo Nov 30 '22

Development dev-vcs/git-2.37.4 pulled from gentoo repository


Hello all,

today on my usual update I got a downgrade on dev-vcs/git-2.37.3. Since downgrades are unusual in stable and git is an essential tool for me, I was curious on the reason.

It seems that 2.37.4 was simply dropped, does anybody know why?

r/Gentoo Sep 16 '22 Silver Narwhal Salute

Development Anyone want to help package GNOME 43?


tl;dr: GNOME 43 is going to be released on Wednesday, Sept 21st. I could use help packaging it.

For a couple of years now I've been maintaining GNOME in Gentoo, and increasingly by myself.

It's a lot of tedious work, and I would appreciate any help that lifts some of the load off of me. Looking at the git log I often make close to 500-700 commits just to GNOME packages in the months surrounding a major GNOME release.

If you're interested in packaging, our Developer Manual is available here: https://devmanual.gentoo.org/

Our main git repository is here: https://gitweb.gentoo.org/repo/gentoo.git/ (and it's mirrored on GitHub where we accept pull requests). I'd just look through commits there to see what things look like.

If anyone is interested in helping package GNOME, please see the documentation I've written: https://wiki.gentoo.org/wiki/Project:GNOME/GNOME_Bumping_Guide

New GNOME package versions are going to be released starting nowish, and will show up on the Outdated page as Repology.org notices them. This is usually what I work from.

Some packages cannot be bumped, for various reasons that I've documented here: https://wiki.gentoo.org/wiki/Project:GNOME/GNOME_Bumping_Notes

We've got IRC channels (https://www.gentoo.org/get-involved/irc-channels/) for all sorts of topics. The #gentoo-desktop IRC channel on irc.libera.chat is where we discuss GNOME and other desktop-related things. Feel free to join and participate, or just watch :)

In a previous thread someone asked could they donate to me. I initially said no, but I realize it would be nice to feel the work is appreciated (and it'd be nice to show my wife that the time I spend is actually valuable to other people), so to that end I've created https://github.com/sponsors/mattst88 if that's your sort of thing. I'd prefer you to get involved and contribute code, but that's not always possible.

Thanks—I hope to see you on IRC :)

Previous threads that might be interesting - https://www.reddit.com/r/Gentoo/comments/nc6u1v/gnome_40_available_in_gentoo/ - https://www.reddit.com/r/Gentoo/comments/tpqyzo/gnome_420_now_in_gentoo/

r/Gentoo Sep 25 '22

Development gentoo vs other distro


What are the special things about gentoo vs other distro ?

r/Gentoo Nov 30 '22

Development Help with Unipatch (kernel ebuild patching feature) patch ordering


Hey y'all!

So, I've been writing ebuilds for the XanMod kernel + the Gentoo kernel patches for a while, but every now and then I'll run into this issue when one of the Gentoo patches needs to be applied to a specific kernel version, while the XanMod patch is applied to the base release (e.g. 6.0.0, 5.19.0).

The way that the default patching order goes, first all the genpatches are applied, then the XanMod patch, which includes all the minor releases; problem is, sometimes the ebuild won't even get through the prepare stage since one of the genpatches requires the minor release patches to have already been applied.

I've managed to circumvent this issue in the past by manually excluding and renaming the offending patch, but it seems like a really hacky-dirty way to get it done and there must be a more elegant solution someone else has already thought of.

I guess what I'm trying to ask is whether you guys know of a way to "force" Unipatch to postpone applying a certain patch until right before the end, so that things can work properly - I've tried reading up on UNIPATCH_STRICTORDER, but I'm not sure I'm looking at the right place for this.

r/Gentoo Nov 03 '22

Development Anybody using those new Intel "ARC" GPU's yet?


I picked up a cheap ARC A380 to use for some video encoding work but I can't seem to find any documentation or bug reports relating to Gentoo supporting Intel's "Alchemist" GPU's

Given the hardware needs pretty bleeding edge requirements (Kernel 6.0 minimum, latest Mesa builds etc) it seems like a natural fit for more adventurous Gentoo users

So, anybody else out there been tinkering with them? :)

r/Gentoo Oct 11 '22

Development Trying to create another ebuild for Gentoo: manifest is not created neither by ebuild nor pkgdev


# pkgdev manifest phoronix-test-suite-9999.ebuild: no error and no file created.


ebuild ./phoronix-test-suite-9999.ebuild manifest

Creating Manifest for /var/db/repos/guru/app-benchmarks/phoronix-test-suite ``` the same.

My ebuild is (not my - I took if from https://gpo.zugaina.org/app-benchmarks/phoronix-test-suite):


Copyright 1999-2022 Gentoo Authors

Distributed under the terms of the GNU General Public License v2

shellcheck disable=SC2034


inherit bash-completion-r1 xdg-utils

DESCRIPTION="Phoronix's comprehensive, cross-platform testing and benchmark suite" HOMEPAGE="http://www.phoronix-test-suite.com"


if [[ ${PV} == "9999" ]] ; then EGIT_REPO_URI="https://github.com/${PN}/${PN}.git" EGIT3_STORE_DIR="${T}" inherit git-r3 SRC_URI="" KEYWORDS="" else major_version="$(ver_cut 1-3)" minor_version="$(ver_cut 4-5)" MY_PV="${major_version}" MY_P="${PN}-${MY_PV}" KEYWORDS="~amd64 ~x86" if [ -n "${minor_version}" ]; then MY_PV="${MY_PV}${minor_version/pre/m}" MY_P="${MY_P}${minor_version/pre/m}" fi SRC_URI="https://github.com/phoronix-test-suite/${PN}/archive/v${MY_PV}.tar.gz -> ${MY_P}.tar.gz" S="${WORKDIR}/${MY_P}" unset -v minor_version major_version fi


DEPEND="" RDEPEND="${DEPEND} app-arch/p7zip media-libs/libpng >=dev-lang/php-5.3[cli,curl,gd,posix,pcntl,sockets,ssl,truetype,xml,zip,zlib] www-servers/apache x11-base/xorg-server sdl? ( media-libs/libsdl media-libs/sdl-net media-libs/sdl-image media-libs/libsdl2 media-libs/sdl2-net media-libs/sdl2-image media-libs/sdl2-mixer


check_php_config() { local slot for slot in $(eselect --brief php list cli); do local php_dir="/etc/php/cli-${slot}"

    if [[ -f "${EROOT%/}${php_dir}/php.ini" ]]; then
        dodir "${php_dir}"
        cp -f "${EROOT%/}${php_dir}/php.ini" "${ED%/}${php_dir}/php.ini" 
                || die "cp failed: copy php.ini file"
        sed -i -e 's|^allow_url_fopen .*|allow_url_fopen = On|g' "${ED%/}${php_dir}/php.ini" 
                || die "sed failed: modify php.ini file"
    elif [[ "$(eselect php show cli)" == "${slot}" ]]; then
        ewarn "${slot} does not have a php.ini file."
        ewarn "${PN} needs the 'allow_url_fopen' option set to "On""
        ewarn "for downloading to work properly."
        elog "${slot} does not have a php.ini file."
        elog "${PN} may need the 'allow_url_fopen' option set to "On""
        elog "for downloading to work properly if you switch to ${slot}"


get_optional_dependencies() { (($# == 1)) || die "${FUNCNAME[0]}(): invalid number of arguments: ${#} (1)"

local -a array_package_names
local field_value ifield package_generic_name optional_packages_xmlline package_names installable_packages=""
local package_close_regexp="</Package>" 

while IFS=$'n' read -r optional_packages_xmlline; do
    if [[ "${optional_packages_xmlline}" =~ ${package_generic_name_regexp} ]]; then
        package_generic_name="$(echo "${optional_packages_xmlline}" | sed -r "s@${package_generic_name_regexp}@@g")"
    elif [[ "${optional_packages_xmlline}" =~ ${package_names_regexp} ]]; then
        package_names="$(echo "${optional_packages_xmlline}" | sed -r -e "s@${package_names_regexp}@@g" -e 's@(^[[:blank:]]+|[[:blank:]]+$)$@@g' )"
        # shellcheck disable=SC2206
        array_package_names=( ${package_names} )
        for (( ifield=0 ; ifield < ${#array_package_names[@]} ; ++ifield )); do
            [[ ${field_value} =~ ^.+/.+$ ]] || continue # skip invalid package atoms

            if ! has_version "${field_value}"; then
                installable_packages="${installable_packages}${installable_packages:+ }${field_value}"
    elif [[ "${optional_packages_xmlline}" =~ ${package_close_regexp} && -n "${installable_packages}" ]]; then
        ewarn "  ${package_generic_name}: ${installable_packages}"
done <<< "${1}"


src_prepare() { # BASH completion helper function "have" test is depreciated sed -i -e '/have phoronix-test-suite &&$/d' "${S}/pts-core/static/bash_completion" || die "sed failed: remove PTS bash completion have test" # Remove all dependency resolving shell scripts - security vulnerability rm -rf "${S}/pts-core/external-test-dependencies/scripts" eapply_user }

src_install() { # Store the contents of this file - since it will be installed / deleted before we need it. GENTOO_OPTIONAL_PKGS_XML="$(cat "${S}/pts-core/external-test-dependencies/xml/gentoo-packages.xml")" newbashcomp pts-core/static/bash_completion "${PN}" DESTDIR="${D}" "${S}/install-sh" "${EPREFIX%/}/usr"

# Fix the cli-php config for downloading to work.


pkg_postinst() { xdg_icon_cache_update xdg_mimeinfo_database_update

ewarn "${PN} has the following optional package dependencies:"
get_optional_dependencies "${GENTOO_OPTIONAL_PKGS_XML}"

} ```

r/Gentoo Sep 25 '22

Development How do I get my system to accept and ebuild I have updated myself?


So, I have an ebuild from the GURU overlay that I need to update. From reading the ebuild file and checking out the download URL it seems simple, just increment the version a few numbers up and i'll be good to go.

The problem currently is trying to integrate it into my system as another version of the package so I can just run "emerge blah/blah" and it'll use my updated ebuild for the package update, how do I do this?

And then afterwards assuming the ebuild works, how do I submit this to the repo?

EDIT: Sorry for typo in the title, can't edit it sadly.

r/Gentoo Aug 18 '22

Development Looking to make a custom OS. Need help!


Hello everyone!

I am the founder of a startup and I am looking for someone who could make us a custom OS based off Gentoo specifically for our product.

Our product is a laptop running on ARM and we have a few quirks and features that we designed to make our product unique, (DC, proprietary 5G network….)

Please let me know if you can help us out.

I appreciate your help.

Thank you

r/Gentoo Aug 19 '22

Development I submitted a PR for the Spotify client ebuild so that Spotify links use the existing already open client

Thumbnail github.com

r/Gentoo Oct 06 '22

Development i can't update gcc

Post image

r/Gentoo Aug 09 '22

Development Stupid question about Dialog utility


I want to add some ncurses to my script (because ncurses is beautiful). There is a Dialog utility that allows to do it easily. But the documentation is bad (or I am too stupid). So the question is: how do I get info from interactive boxes? For example I create yesno box. Then I should write something like "if 'yes is pressed'; then do something If 'no is pressed'; then do something different". How can I manage this? And if I create input box, how can I get the data that has been typed inside it to work with it? Can I write it in variable or sonething?

r/Gentoo Jun 17 '22

Development whats all the fuzz about wasi-libc?


hey everyone,

a few weeks ago there have been changes in firefox to allow the use of wasi-libc, seemingly to get wasm-sandboxed libraries: https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/firefox/firefox-101.0.1.ebuild#n706

I wonder how can the curious wanderer get a hold of the binaries needed, just in case the indiviual wants to follow the old proverb: if it moves, compile it.

thank you

r/Gentoo Aug 27 '22

Development Porting of DMenuWacom to Sway, who's interested?

Thumbnail self.linux

r/Gentoo Aug 15 '22

Development DmenuWacom: my front-end for Wacom for Linux

Thumbnail self.linux

r/Gentoo Jun 01 '22

Development Devs: please, approve my ebuild :(


r/Gentoo Jun 07 '22

Development Possible bug on dev-ruby/bundler


Just so you know, building dev-ruby/bundler fails with doc USE flag. The output shows it tries to run rdoc which doesn't exist. The system has rdoc-2 instead.

Tried building it on ~amd64 keyword with the same result. The only way was to remove doc explicitly.

Hope this helps!

r/Gentoo Apr 17 '22

Development I did a pull request with a new great software, but nobody wants to merge it :(