I landed a nice gig writing a cross-platform C++ server to perform outage analysis for a smartgrid software package, using web services to communicate with the other components.  It started out completely cross-platform, and had me at leveraging all the goodies of the latest boost libraries to do a lot of the cross-platform sweatshop work.  But like many other projects, the idealism of the clean-slate design soon gave way to focusing on getting it done, and the project became dependent on Windows-only components.  Bleh.

Unfortunately, this left me using primarily a Windows development environment on my desktop during that push of the project.  Now I’m focusing on a mobile stock-trading app, with the first two components being an Android app and a corresponding cross-platform C++ server.  Bottom line: it’s time to bump up my desktop gentoo installation and get it humming again!Things that have changed that I keep running into over and over again:

  • unmerging of the various things that have withered on the vine… games, libraries…
  • systemd – Just fucking die.  Please.  Time to accept it I guess.  Such a pita.
  • webkit – Again, fucking die.  How does any software this convoluted and complex continue to survive?  A multi-hour compile leading to a link failure.  Fuck me.  Update from gcc 4.7 to 4.8 to fix.  “gcc-config -l” shows whats available, “gcc-config set (eg) 2” to set it.  Another issue: it doesn’t coexist with nvidia, so you have to temporarily select xorg: [eselect ogengl set xorg-x11] (then remember to fix that back to nvidia later).
  • UEFI booting – yes I still have a system that isn’t multi-booting with refind.  I never got through the full conversion to using the OSes on the newer SSD drive.  Time to fix that.  Updated the partition table to efi with gdisk, used gparted to create an efi boot partition as first on the drive, used fdisk to fix the numbering so that the efi boot partition was first (or something like that).  Got ubuntu going, but the gentoo kernel isn’t getting recognized.  Went back to make menuconfig, and the “systemd” catchall checkbox provided by gentoo got turned off, I guess when I was fiddling with setting things manually.  I also added these that were not listed on the Gentoo systemd docs page: EFI stub support, EFI mixed-mode support.  Because, why not.  Trying again…
  • synergy is now behind a paywall, pita.  Unless you know where to look.
  • Manual download of java so the lawyers can get their “agree” click, as per usual.  I get my dog to click on it.  Oracle, another death I look forward to.
  • emerge –unmerge libreoffice thunderbird firefox && emerge -av libreoffice-bin (etc), because I’m trying to cure myself of the mental illness that would have me compiling things like libreoffice and firefox and thunderbird…
  • AND finally… 915 packages upgrading/installing via portage… yeah this will go smoothly…

Here are my systemd upgrade notes:

  • make the shitton of kernel changes specified in the gentoo wiki writeup
  • ln -sf /proc/self/mounts /etc/mtab
  • make.conf: add systemd; remove udev consolekit
  • package.use: kde-base/kdm -consolekit
  • emerge –unmerge udev upower consolekit openrc udev-init-scripts
  • OK everything is now broken, all the way down to the metal of gcc (which relied on openrc scripts like /etc/init.d/functions.sh, who knew?).  FUCK.  CLEAN INSTALL TIME.  And even that is going to suck.  The gentoo handbook does not even have systemd integrated into it yet.  FUCK YOU systemd.  This is why people hate it.  So much wasted time and pain.  Cest la vie…

So let’s do a clean install of gentoo with Gnome 3, since that seems like the best chance of getting systemd going properly.  Currently Gentoo has three places we need to follow simultaneously to get it done:


  • Following the third link.  But using my own kernel with gentoo-sources.  This may not work at all…
  • First step of instructions, select gnome3/systemd profile and do a full emerge world.  OK then… 187 packages…
  • Had to add [-bindist] flag to openssl and openssh
  • Had to remove circular dependency with a temporary use flag: =virtual/notification-daemon-0 -gnome
  • Stupid webkit once again requires temporarily turning off nvidia: eselect opengl set xorg-x11
  • [emerge -DavuN gnome] finally taking flight… 395 packages…
  • and something called speex is bitching about this: ../libtool: line 482: CDPATH: command not found, libtool: Version mismatch error.

That was it.  Speex was the grain of sand that caused me to give up on gentoo.  At least until all the systemd bullshit dies down.

Leave a Reply