Gerrit for Core-Devs
Exherbo / September 29, 2013

There have been a few questions and potential misunderstandings I’m going to try to address here. I’ll update this post if new stuff comes up. Getting the foo Or: How do I become a Core-Dev on Gerrit? Simple: You register with your GitHub or Google account, then you ask any other core dev to add you to the group. At least Bo “zlin” Ørsted Andresen and I know how to do it and every member has the necessary privileges. Reviewing Or: +1+1 != +2 Every registered user can comment and/or -1/+1 a change. This is an indication said user has reviewed the patch and, ideally, tested it. It’s basically only an opinion, though. Only Core-Devs can +2 a change. This means they’ve reviewed and tested that change and are approving it. The change then will get merged and pushed. It’s important to remember, though, that +1’s do NOT add up. You can +1 a change a hundred times but it will still need one bold man (or woman) to +2 it. Important as well, don’t forget to press the “Submit” button if you want to get a change merged. What about testing (or the lack of)? Everyone who +2’s a change at least (ideally, +1 would…

Gerrit Code Review for Exherbo
Exherbo / September 15, 2013

This post is outdated and only kept for historical reasons. I’ve installed a Gerrit Code Review instance on my server for use with Exherbo. Gerrit is a code review tool and allows for discussing patches and keeping the results for future reference get notified by email about changes (if you want) easily work on every Exherbo repository contributors to get their repositories added to Gerrit as well (optional but strongly recommended) You’ll find an introduction to Gerrit here. Notes: You need a GitHub or Google account. The email address you wish to use in Gerrit must be configured in your GitHub account. You MUST use your real name for copyright reasons. Gerrit replicates merged changes pretty much immediately. This sometimes/rarely fails on the first attempt for various reason. I’ve implemented a fallback that occurs every 5 minutes. How to use Gerrit: Initial setup in two easy steps: Go to, in the upper right corner, click “Sign in”. Authorize Gerrit with GitHub or Google.  Cloning a repository: Click “Projects”, “List”, then choose a project. You should see several methods for cloning the project, the easiest way is to choose the ssh method. Clone, e. g. git clone ssh://<user name> Install a hook that sets a Change-Id automatically…

Exherbo’s Patch Queue
Exherbo / May 5, 2012

Today, on May, 5th 2012, our patch queue on Zebrapig the Ugly did the impossible; it achieved re-floration! 😉   [05.05.2012 21:57:36] <Philantrop> !pl [05.05.2012 21:57:37] [Notice] -zebrapig to #exherbo- 0 patches in queue: is gone for good. Please re-submit your patches.
Exherbo / April 28, 2012 is gone for good. Please re-submit your patches. Here’s the list of affected patches: [28.04.2012 17:24:28] [Notice] -zebrapig- 13 matching patches in queue: [28.04.2012 17:24:28] [Notice] -zebrapig- ::sydbox (submitted by worr 161 days and 17 hours ago): [PATCH] Fixed race condition in sydbox [28.04.2012 17:24:28] [Notice] -zebrapig- ::kde (submitted by heirecka_ 17 days and 5 hours ago): [PATCH 1/2] Move stuff from qt-creator-scm to its exlib [28.04.2012 17:24:28] [Notice] -zebrapig- ::arbor (submitted by SuperHeron 11 days and 20 hours ago): [PATCH] app-shells/bash-completion[=scm]: /etc/bash_completion.d is [28.04.2012 17:24:28] [Notice] -zebrapig- ::x11 (submitted by moben 11 days and 8 hours ago): [PATCH 1/2] mesa multilib: Use multiunpack exparam [28.04.2012 17:24:30] [Notice] -zebrapig- ::arbor (submitted by keruspe 11 days and 1 hour ago): [PATCH] llvm: allow gcc 4.7.0 [28.04.2012 17:24:32] [Notice] -zebrapig- ::mawww (submitted by heirecka 8 days and 3 hours ago): [PATCH] Fix building of espeak [28.04.2012 17:24:34] [Notice] -zebrapig- ::arbor (submitted by SuperHeron 7 days and 4 minutes ago): [PATCH] dev-lang/python: Add .pc file into alternatives [28.04.2012 17:24:36] [Notice] -zebrapig- ::anderslm (submitted by Philantrop 6 days and 18 hours ago): [PATCH] dev-libs/dotconf: ::anderslm -> ::media [28.04.2012 17:24:38] [Notice] -zebrapig- ::kde (submitted by…

Version bump to systemd-43 / Move to /usr
Exherbo / February 19, 2012

(This is the same as the news item but I want this to get maximum exposure.) Read ALL of this, it’s important to everyone using systemd. Up to systemd[=42] we installed boot-critical components to / and others to /usr. This split was causing issues with respect to tmpfiles, intrinsic dependencies and dependencies on stuff on /usr. systemd[=43] finally removes this split and installs everything but udev and pam stuff to /usr. This won’t matter much to you if you don’t have /usr split from / (it should not be split; cf. Even if you don’t have /usr != /, you need to update all packages that install to /${LIBDIR}/systemd/system because that got moved, too, of course. I’ve rev-bumped all packages, that install their own custom systemd units but even after you’ve updated those, you’ll still have some in /${LIBDIR}/systemd/system. Find out which package they belong to (use cave owner) and re-install them. Should you forget to do so, you might end up in systemd’s emergency mode. If that happens, don’t panic. Get your network connection up and continue updating/re-installing. You’ll live, I promise. There might be orphaned systemd units left behind. Check those on your own and decide if…

Multilib migration after The Great Merge (optional)
Exherbo / January 5, 2012

Disclaimer: The entire migration procedure as described below is completely optional. If you don’t need or want multilib/multibuild/multiple C targets support, you can ignore this email. We won’t force anyone to use it. I’m only going to use it on my desktop myself. 🙂   We’ve now merged all multilib branches into master (this will go down into history books as “The Great Merge”!). Thus, we don’t have any separate branches in our official and dev repositories anymore and if you still have a multilib branch  in your repository, please merge it, too. Now is a good time to write an updated multilib migration guide so, without further ado, here we go: Switch to the multibuild profile in arbor.conf (${location}/profiles/amd64/multilib) Ensure that CHOST is not set in bashrc, and note that CFLAGS will apply to all C targets. You can use MULTIBUILD_C_{32,64}_USER_C{,XX}FLAGS for individual C targets. Re-install/update sys-apps/skeleton-filesystem-layout Install sys-libs/glibc[bootstrap], note that this should pull in sys-devel/bootstrap-gcc, too. (This is going to take a long time.) Install sys-devel/gcc[-openmp] (This is potentially going to take a long time, especially if you have the java option set.) Use eclectic gcc to switch to the freshly compiled multilib gcc Install sys-libs/glibc[-bootstrap], you can let…

Exherbo – my goals for the remainder of 2011 & 2012
Exherbo / October 1, 2011

(Disclaimer: The following is just my personal opinion and what *I* want to achieve for Exherbo. It’s fairly likely not everyone will agree with everything I’m going to state. 🙂 ) We’ve come a long way with Exherbo since we started: – We have a pretty much complete set of packages to use Exherbo on desktop, notebook and server systems. – With exheres-0, we have a very powerful and useful EAPI. – We’re now a rather “stable” Linux distribution in that we don’t usually break things every other week anymore. – We’ve stopped actively discouraging people to try Exherbo.   That said, I still have a few goals I’d like to see achieved:   – Join the Open Invention Network (OIN).  For some months now, I’ve been in discussions with the OIN and I’m happy to say that we’re going to join them. I hope (and am confident) we’ll get this done in 2011. – Set up a structure that would allow us as a project (in contrast to individual developers) to accept donations. Currently, Exherbo doesn’t really have any means to accept donations as a project. Sure, as individuals, we can accept them (e. g. a generous donator (who…

You all suck at working on patches, my fellow Exherbo devs!
Exherbo / March 26, 2011

I originally posted this in 2011. Unfortunately, hardly any significantly changed since then. I decided to add !pd statistics this time, though: Philantrop: 557 sepek: 271 ar: 207 keruspe: 180 SardemFF7: 105 zlin: 98 compnerd: 94 sepek_: 88 SuperHeron: 67 heirecka: 53 moben: 43 mrothe: 37 woutershep: 33 pipping: 33 Bruners: 33 virkony: 30 arnej: 27 nicoo: 24 tgurr: 22 freeedrich|: 22     What really annoys me lately is the unwillingness of my fellow Exherbo core developers to act on user-contributed patches. While it’s certainly true that some patches need extensive testing and, thus, require a lot of time, there are usually a lot of trivial patches or patches that can be tested with moderate effort. Let’s look at an example: From 2a11f609e8be4f61a545112f1fceda6f8c40bfeb Mon Sep 17 00:00:00 2001 From: Johannes Nixdorf <> Date: Thu, 24 Mar 2011 16:26:59 +0100 Subject: [PATCH] revive agg in ::mixi — drizzt.graveyard | 7 ——- 1 files changed, 0 insertions(+), 7 deletions(-) diff –git a/drizzt.graveyard b/drizzt.graveyard index 98979b9..92ed79a 100644 — a/drizzt.graveyard +++ b/drizzt.graveyard @@ -287,10 +287,3 @@ www-servers/ homepage = removed-by = Wulf C. Krueger <> removed-from = drizzt -x11-libs/ – agg/ – :0 2.5 – description = A High Quality Rendering Engine…

HowTo: systemd on Exherbo
Exherbo / October 18, 2010

This comes up all too often, so here’s a HowTo for systemd on Exherbo: You have to run a Linux kernel >=2.6.39. The new kernel is only needed at runtime, not for building systemd. You should run a Linux kernel >=3.8. The new kernel is only needed at runtime, not for building systemd. Kernel options for systemd: cf. systemd’s README, here’s an excerpt: CONFIG_DEVTMPFS CONFIG_CGROUPS (it’s OK to disable all controllers) CONFIG_INOTIFY_USER CONFIG_SIGNALFD CONFIG_TIMERFD CONFIG_EPOLL CONFIG_NET CONFIG_SYSFS Linux kernel >= 3.8 for Smack support Udev will fail to work with the legacy layout: CONFIG_SYSFS_DEPRECATED=n Legacy hotplug slows down the system and confuses udev: CONFIG_UEVENT_HELPER_PATH=”” Userspace firmware loading is deprecated, will go away, and sometimes causes problems: CONFIG_FW_LOADER_USER_HELPER=n Some udev rules and virtualization detection relies on it: CONFIG_DMIID Mount and bind mount handling might require it: CONFIG_FHANDLE Optional but strongly recommended: CONFIG_IPV6 CONFIG_AUTOFS4_FS CONFIG_TMPFS_POSIX_ACL CONFIG_TMPFS_XATTR CONFIG_SECCOMP For systemd-bootchart a kernel with procfs support and several proc output options enabled is required: CONFIG_PROC_FS CONFIG_SCHEDSTATS CONFIG_SCHED_DEBUG For UEFI systems: CONFIG_EFI_VARS CONFIG_EFI_PARTITION Furthermore: CONFIG_FANOTIFY=y (only used for readahead stuff which is not enabled by default.) CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y (only used for readahead stuff which is not enabled by default.)   Set the “systemd” option globally in /etc/paludis/options.conf: */* systemd Install…

systemd and the Linux kernel
Exherbo / September 13, 2010

This comes up all too often, so here’s a HowTo for systemd on Exherbo: You have to run a Linux kernel >=2.6.39. The new kernel is only needed at runtime, not for building systemd. You should run a Linux kernel >=3.0. The new kernel is only needed at runtime, not for building systemd. Kernel options for systemd: In your kernel config, enable autofs4, devtmpfs and cgroups. Do not enable autofs3. Here’s what I’m using (I enable more kernel options than strictly necessary, though.): CONFIG_DEVTMPFS=y (Strictly required!) CONFIG_DEVTMPFS_MOUNT=y (unless you’re using an initramfs that’s mounting it for you, e. g. one created by Dracut) # CONFIG_AUTOFS_FS is not set (Strictly required!) CONFIG_AUTOFS4_FS=y (Strictly required!) CONFIG_CGROUPS=y (Strictly required!) # CONFIG_CGROUP_DEBUG is not set CONFIG_CGROUP_NS=y CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y # CONFIG_CGROUP_MEM_RES_CTLR is not set CONFIG_CGROUP_SCHED=y CONFIG_BLK_CGROUP=y # CONFIG_DEBUG_BLK_CGROUP is not set CONFIG_FANOTIFY=y (only used for readahead stuff which is not enabled by default.) CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y (only used for readahead stuff which is not enabled by default.)