Snott

Category: Arch Linux

Rolling release distribution focused on simplicity and code elegance

  • Docky in ArchLinux does not launch anymore after a system upgrade

    Docky in ArchLinux does not launch anymore after a system upgrade

    Docky LogoIf you, like me, use docky for managing your windows and launching your applications, you should have noted that recently an ArchLinux update broke docky because it installed a newer version of mono that docky doesn’t like. Anyways, here is how to fix it.

    This is the error when trying to launch docky:

    [1111@MNAME ~]$ docky
    Could not load file or assembly 'Mono.GetOptions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756' or one of its dependencies.
    
    Unhandled Exception: System.TypeLoadException: Could not load type 'Docky.Docky' from assembly 'Docky, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null'.

    You can just recompile the package the usual way, but the best and easiest way to do it is to use the ABS (Arch Build System). If you already have ABS installed you can safely skip to the “Compiling docky using ABS” part. Here is a step by step guide:

    To install ABS:

    sudo pacman -S abs

    Also you will need some compiling tools, install with:

    sudo pacman -S base-devel

    Next edit /etc/abs.conf to have the desired repos fetched

    sudo nano /etc/abs.conf

    Make sure that the last line is uncommented, if you don’t want to fetch some repo, just add a ! in front of its name and you should be good to go, I would recommend fetching all of them, it doesn’t take much space (entire tree is like 56mb uncompressed, about 18mb download) and it is really handy.

    Next, download the abs tree:

    sudo abs

    Your ABS tree is now created under /var/abs. Note the appropriate branches of the ABS tree now exist and correspond to the ones you specified in /etc/abs.conf.

    The abs command should be run periodically to keep in sync with the official repositories.

    Next thing you have to do is create a build directory, a folder on your home

    mkdir -p $HOME/abs

    There you will compile the files you need for getting docky to work.

    Now that ABS is installed and correctly configured, we can get on to:

    Compiling Docky using ABS:

    docky package its in community so we need to copy those files to our pc:

    cp -r /var/abs/community/docky $HOME/abs

    and change directory to $HOME/abs:

    cd ~/abs/docky

    now run:

    makepkg -s

    NOTE: DON’T ever do “sudo makepkg -s” be sure to run it as a normal user or else you could end up breaking your system.

    This will compile the package, wait for it to finish and then install it using pacman:

    sudo pacman -U slim-1.3.0-2-i686.pkg.tar.xz

    now test docky, everything should be working now :D

    Any questions leave it in the comments.

    Thanks for reading!

    NOTE: I’m leaving this here just for reference purposes or If you encounter a similar issue in the future, as of now, this isn’t needed anymore because the appropriate changed have been made on the Arch Linux packages

  • Fix Firefox crash running Quake Live on ArchLinux

    Fix Firefox crash running Quake Live on ArchLinux

    Quake Live logo

    If you tried to play Quake Live on Arch Linux, you might get this error if you don’t have libpng version 1.2 (run Firefox via terminal to check this)

    libpng warning: Application was compiled with png.h from libpng-1.2.24
    libpng warning: Application  is  running with png.c from libpng-1.4.3
    libpng warning: Incompatible libpng version in application and library

    Terminal will be spammed with this series of warnings and Quake Live wont start or can even make Firefox crash (Screen images don’t load at all and you only see squares).

    The problem here is, as you can tell from the terminal output, the libpng version to compile the software is older than the one arch has installed.

    So, to fix this you have to do two things:

    1) Install the old libpng on arch (available on the AUR)

    sudo yaourt -S libpng12

    2) Tell Firefox to use it on Quake Live page

    Here is the command:

    LD_PRELOAD=/usr/lib/libpng12.so /usr/bin/firefox

    This will load the library and Firefox will open up, then go to the Quake Live page and try a training session to see if it loads correctly.

    If it worked, then you can make the change permanent and automate the process with this command:

    alias quakelive='LD_PRELOAD=/usr/lib/libpng12.so /usr/bin/firefox http://www.quakelive.com'
    

    This way, when you type "quakelive" on the terminal, it will open up Firefox and everything will work right away, no need to remember the previous command.

    Some more tips so you don’t have to search for them:

    – alt+enter makes Quake Live Fullscreen

    – Quake Live supports Firefox ONLY regarding Linux, so don’t bother trying to get another browser to work with Quake Live, but they are working to get other browsers work too (like chrome-chromium). Nevertheless If I find a way to make the game work on chromium (my primary browser) I will put the HOWTO here.