Category Archives: Sys. Admin

Migrating from autojump to fasd

fasd is an autojump clone with some nice extra goodies.

In case you don’t know either (let aside any of their many variants, like z, v, ‚Ķ), they all are shell hooks that learn from your filesystem browsing habits, by keeping a database of the paths you access with cd along with their frequency of visit.

This data comes particularly handy when used together with a (generally single letter) command that lets you fuzzy match against a path name, guess the most likely occurence, and send you automatically to it.

For instance, a lengthy cd ~/Developments/MyFavoriteLang/TheProjectType/MyHotProject can often be replaced by j d mhp which is arguably a huge keystroke, time and mind saver. One really has to try it to seize the full benefit.

Anyway, most of the value of such a tool boils down to the completeness and relevance of the underlying paths database, which makes switching from a tool to the alternative very tedious and counter-productive. Hopefully the file format is so simple that in case of a transition from autojump to fasd, it’s as simple as running the following:

cat ~/.local/share/autojump/autojump.txt | pyle -e "words[1]+'|'+words[0]+'|'+str("$(date +%s)")" > ~/.fasd

As to the reasons that pushed me towards fasd, well, the main one is that it also remember files (on top of directories), so it’s possible to use it to invoke vim or xdg-open on recent or frequently accessed files.

Donate Dogecoins: DJi4fgSMxcq5vRjytvCEq9A1TVsDZevd7c Whats This?


October 2, 2013

Hi, I just did some server-wide tweaks regarding cache management and php config, loading times should be way faster now.

Donate Dogecoins: DJi4fgSMxcq5vRjytvCEq9A1TVsDZevd7c Whats This?

Major update

Hi !

today wasn’t an easy sysadmin day : I switched host, moved from a virtual private server at ikoula to a dedicated one at OVH, I migrated all my services (finally !), and made a complete rewrite of all the apache config in order to handle more efficiently multiple DNs since I’m going to share this server.
That’s why this blog looks so shiny white, the new default wordpress theme isn’t that bad ūüôā , and I might well keep it as a basis for further typo-tuning.

See you around !

Donate Dogecoins: DJi4fgSMxcq5vRjytvCEq9A1TVsDZevd7c Whats This?

Howto : (Clean) Install of a Samsung SPL laser printer under GNU/Linux (without the whole “unified linux driver”)

Printing under GNU/Linux has turned very easy I the last years, by combining an improved compatibility with the even most recent hardware and polished user interfaces to let any user get in with it’s printing server configuration. Well, most of the time there is an opensource driver for your printer, and making it work is then as easy as plugin the USB chord and waiting a tenth of seconds for a green popup to tell you that everything is clean and working‚Ķ Most of the time.

Towards Samsung, at least for the laser printer I own (a SCX-3200), there is no such an easy install process, because of no tested opensource driver. Configuring your printer will likely drives you to your product’s support page (fr), and maybe will you finish installing the so called “Samsung Unified Linux printing drivers”, what is bad, very bad. This bundle comes with a brunch of middleware you’re likely not to want on your computer (because you may only want to use an USB/network printer). This script also installs it’s own Qt libraries for nothing more than a GUI that is totally redundant with your distrib’ system tools. As of system services and OS’ integration, I doubt those 2011 scripts are aware of the last changes in systemd, selinux, ‚Ķ anyway.

This post will describe how you can make your Samsung printer work as good as on any other platform (using Samsung’s proprietary driver), but without requiring you to install all the burden of the “Unified Linux Driver”.

Step 1: Download and unpack the needed files

This link is working at the date of writing and will download the 0.93 drivers. You can get a link by your own by visiting your printer’s support page at .

Step 2: Install the ppd file for your printer

Once unpacked, you can plug your printer and turn it on. Whatever your distrib, the wizard will fail finding a working driver but will allow you to specify a ppd file. The path to them is :


You just have to pick the good one (scx3200.ppd in my case).

Step 3: Install rastertosamsungspl

PPD files aren’t enough, the Samsung driver mostly consists on a tool that rasters the content you want to print to the Samsung Printing Language (SPL). This binary file is to be found under:


You need to copy this file to your cups filters folder :


Step 4: Configure SELinux to allow rastertosamsungspl to be run

If you try printing something, this kind of message will appear in dmesg :

Jan 20 13:09:53 NetAce setroubleshoot: SELinux is preventing /usr/sbin/cupsd from execute access on the file rastertosamsungspl. For complete SELinux messages. run sealert -l 81360021-b4dd-4f5d-9f78-760346329e48
sealert -l 81360021-b4dd-4f5d-9f78-760346329e48
 *SELinux is preventing /usr/sbin/cupsd from execute access on the file rastertosamsungspl.
*****  Plugin catchall (100. confidence) suggests  ***************************
If vous pensez que cupsd devrait être autorisé à accéder execute sur rastertosamsungspl file par défaut.
 Then vous devriez rapporter ceci en tant qu'anomalie.
 Vous pouvez générer un module de stratégie local pour autoriser cet accès.
 autoriser cet accès pour le moment en exécutant :
 # grep cupsd /var/log/audit/audit.log | audit2allow -M mypol
 # semodule -i mypol.pp
Additional Information:
 Source Context                system_u:system_r:cupsd_t:s0-s0:c0.c1023
 Target Context                unconfined_u:object_r:user_home_t:s0
 Target Objects                rastertosamsungspl [ file ]
 Source                        cupsd
 Source Path                   /usr/sbin/cupsd
 Port                          <Unknown>
 Host                          localhost.localdomain
 Source RPM Packages           cups-1.5.4-20.fc18.x86_64
 Target RPM Packages
 Policy RPM                    selinux-policy-3.11.1-71.fc18.noarch
 Selinux Enabled               True
 Policy Type                   targeted
 Enforcing Mode                Enforcing
 Host Name                     localhost.localdomain
 Platform                      Linux localhost.localdomain 3.7.2-204.fc18.x86_64
 #1 SMP Wed Jan 16 16:22:52 UTC 2013 x86_64 x86_64
 Alert Count                   3
 First Seen                    2013-01-20 04:52:54 CET
 Last Seen                     2013-01-20 13:09:52 CET
 Local ID                      81360021-b4dd-4f5d-9f78-760346329e48
Raw Audit Messages
 type=AVC msg=audit(1358683792.720:1284): avc:  denied  { execute } for  pid=873 comm="cupsd" name="rastertosamsungspl" dev="sda5" ino=1444799 scontext=system_u:system_r:cupsd_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:user_home_t:s0 tclass=file
type=SYSCALL msg=audit(1358683792.720:1284): arch=x86_64 syscall=execve success=no exit=EACCES a0=7fffcaff5d00 a1=7f7acb65ec90 a2=7fffcaff4930 a3=7fffcaff3b30 items=0 ppid=31168 pid=873 auid=4294967295 uid=4 gid=7 euid=4 suid=4 fsuid=4 egid=7 sgid=7 fsgid=7 ses=4294967295 tty=(none) comm=cupsd exe=/usr/sbin/cupsd subj=system_u:system_r:cupsd_t:s0-s0:c0.c1023 key=(null)
Hash: cupsd,cupsd_t,user_home_t,file,execute
#============= cupsd_t ==============
 allow cupsd_t user_home_t:file execute;
audit2allow -R
#============= cupsd_t ==============
 allow cupsd_t user_home_t:file execute;

As explained (in french, sorry…) you can fix it by simply running:

$ grep cupsd /var/log/audit/audit.log | audit2allow -M mypol
semodule -i mypol.pp

And then :

$ /sbin/restorecon -v /usr/lib/cups/filter/rastertosamsungspl

Now your printer should work as expected, without the definitely annoying and useless “Unified Linux Driver” stuff.

Donate Dogecoins: DJi4fgSMxcq5vRjytvCEq9A1TVsDZevd7c Whats This?

Prepare your centos/fedora apache server for streaming opus audio files

As you may have heard recently, the new Opus audio format is likely to be the next de facto standard for audio streaming all over the web.

Originated from the IETF Internet Wideband Audio Codec working group (including Xiph.Org, the non-profit organization behind the ogg formats, Mozilla, Microsoft, Skype, Broadcom, and others), this new codec is really interesting as it fills the gap between high quality formats (for audio restitution, like vorbis, mp3, aac,¬† ‚Ķ), and low latency codecs (mostly used in voice communications, like speex, G729, ‚Ķ), is fully open (free and opensource software, royalty-free), has one of the best restitution compared to other audio codecs, and is already mainstreamed by Mozilla (firefox >= 15) and Opera (>=12). The Webkit implementation should follow soon as Google decided to use opus as their default audio codec for the WebRTC communication standard. Further interesting readings can be found at Firefox Hackers blog, and project’s page.

So, what we want as webmasters or sysadmins is to make our servers compatible with opus. As of today, my up to date centos 6.3 doesn’t include the opus file format in it’s mimetype list, so the only thing you need to do is to add it to your /etc/mime.types file :
audio/ogg                                       oga ogg spx opus

Restarting apache should definitely fix it.

Donate Dogecoins: DJi4fgSMxcq5vRjytvCEq9A1TVsDZevd7c Whats This?