Main menu:

Recent posts

Sponsoring

Please consider a small donation:

 

About this blog

I am Eric Hameleers, and this is where I think out loud.
More about me.

Search

My Favourites

Slackware

Categories

RSS Alien's Slackware packages

RSS Alien's unofficial KDE Slackware packages

RSS Alien's multilib packages

Tag cloud

Meta

KDE 4.8.0 arrives

The release schedule could have told you in advance – here we have the first installment in the KDE 4.8 series!

The Slackware KDE 4.8.0 packages are ready for your enjoyment..

A good primer on the how and why of the modularization of KDE, resulting in an abundance of smaller packages compared to the big meta packages of Slackware 13.37, please read my earlier post about KDE 4.7.0.

My packages have been compiled on Slackware-current. There has been an incompatible update to slackware-current recently (the glibc package). If you consider using KDE 4.8.0 on one of Slackware’s earlier (stable) releases, then you have no other option than to compile packages yourself. I have written down the guidelines in another blog post..

Read the accompanying README file for installation and upgrade instructions!

Some of the highlights of these KDE packages:

  • Being the first release in the KDE 4.8 series means, there will probably be some bugs to iron out. But, I really can not find anything wrong with this point zero release. It sports a new default background “Ariya” to replace “Horos” of the 4.6 and 4.7 releases. It’s nothing but straight-line geometry, giving the desktop a professional look. The desktop feels fast and snappy, partly thanks to the upgraded Qt 4.8.0 which I added as well, but also thanks to the improvements made to kwin, KDE’s window manager. Enabling the “blur” effect should no longer slow down your desktop.
  • There are a lot of updated dependencies compared to Slackware’s own KDE 4.5.5: PyQt, QScintilla, akonadi, attica, clucene, ebook-tools, hunspell, libdbusmenu-qt, libvncserver, phonon, polkit-qt-1, qt, raptor2, rascal, redland, shared-desktop-ontologies, sip, soprano, strigi, system-config-printer and virtuoso-ose. I really hope Slackware will catch up some day, as it is no fun to maintain so many packages outside of the main Slackware tree.
  • In comparison with my previous KDE 4.7.4 the number of updated dependencies is still rather big because I wanted to offer the best experience: akonadi, attica, hunspell, libatasmart, libvncserver, phonon, phonon-xine, polkit-qt-1, qt, strigi, udisks, and upower have all been brought to their most recent versions. Note that libktorrent is now located in “deps” instead of “kde” directory because it has become a dependency for more than just ktorrent.
  • KDE dpendencies that are not part of Slackware 13.37 at all (yet): grantlee, herqq, libatasmart, libbluedevil, libssh, phonon-gstreamer, phonon-xine, sg3_utils, udisks and upower. Note that I added phonon-gstreamer and phonon-xine only after I had already released KDE 4.7.0 packages because people reported that they no longer had sound. These two packages solve that issue.

Also worth mentioning is some stuff which is not completely new, since I added these to previous releases of KDE 4.7 already (but if you are new to KDE 4.8 this will certainly interest you):

  • You will find some additional useful new applications, which are not part of the KDE core set. They are new, compared to Slackware’s own version of KDE. I already added bluedevil to my 4.6.5 package-set. Bluedevil is the new KDE bluetooth stack with a nice GUI, based on the BlueZ libraries already present in Slackware. And with KDE 4.7.0, I included kplayer, a KDE front-end to MPlayer. With KDE 4.7.2, I added Quanta Plus, which disappeared from KDE4 because that migrated from Qt3 to Qt4. It is now being worked on again, but no longer as a standalone application – instead it is available as a plugin to the Kdevelop Platform. And with KDE 4.7.3, I added a native WICD applet for KDE, called “wicd-kde“. It can replace the GTK based “wicd-client” which is part of the wicd package.
  • I also added oxygen-gtk2 (renamed from “oxygen-gtk” now that there is also a version supporting GTK3). It is not really an application, but a theme engine. It (optionally) makes GTK2 applications visually blend in with KDE’s own Oxygen theme. There is a README in its documentation directory which explains how to enable it.
  • Since KDE 4.7.2, I include a “test” directory. This directory contains NetworkManager, plus some other dependencies, that allows me to create a KDE package for “networkmanagement“. Networkmanagement is an applet plus a kcontrol (i.e. a plugin for KDE’s systemsettings). Use the packages in this “test” directory if you want to switch from WICD to NetworkManager as your basic network management service. The applet plus kcontrol make it quite easy to configure your network in KDE (wired, wireless, vpn, dsl and mobile broadband). No new Gnome libraries had to be added for this (NM itself plus its supporting tools have no dependency on the rest of Gnome). I have added NM installation/configuration instructions to the README. Note that I moved from NM 0.8 (which I had in KDE 4.7) to the newer NM 0.9 because that is what KDE currently supports best.

The KDE 4.8.0 packages for Slackware-current are available for download from my “ktown” repository and several mirrors (taper will probably be in sync when I post this, the other mirrors will have to catch up):

Have fun! Eric

LibreOffice 3.4.5 released, OpenJDK package update.

There was a new maintenance release from the Document Foundation. We now have LibreOffice 3.4.5 and I spent the night (or rather, two virtual machines did the work while I slept) to produce packages for Slackware 13.37 and later.

You can find the packages in the usual locations (all of the mirrors below also offer  rsync access):

Also I rebuilt my OpenJDK packages (JDK as well as JRE and the browser plugin icedtea-web) to address the issues that had popped up in the comments section of my previous post:

  • The java web start (javaws, part of the “icedtea-web” package) would not work with just openjre installed – it worked fine with openjdk;
  • The openjre pakage missed two important configfiles which made it unusable,
  • The CA certificates file was empty in both JDK and JRE packages

Download locations for the updated packages: http://slackware.com/~alien/openjdk/ with a mirror here: http://alien.slackbook.org/slackware/openjdk/ . Please note that there is an updated (with regard to Slackware’s stock version) of ca-certificates. I needed that to generate a “cacerts” file for the openjdk and openjre package, but for you the upgrade is optional. You’ll see it appear in slackware-current soon enough anyway because the upgrade is well overdue.

Cheers, Eric

OpenJDK replacing Oracle’s binaries

I already wrote about it in an earlier post, that I was working on packages for OpenJDK. OpenJDK is an open-source implementation of the Java Platform, Standard Edition. In 2007, Sun delivered to its earlier promise to make Java open source and released the bulk of its code under a GPL license. Since then, high-profile companies like IBM and Apple have done major contributions to the OpenJDK codebase in order to create an industrial-strength alternative to the binary releases of Java SE..

Oracle assimilated Sun in 2010 and obtained the rights to Java SE.

For Linux distros, not much changed because binary releases of the JDK and JRE were still made available for re-distribution. In 2011 however, Oracle decided that new binary releases of its Java SE (the runtime or JRE as well as the SDK) may no longer be included with Linux distros. They retired the “Operating System Distributor License for Java” (DLJ) and decided that distros should compile their own packages using the Open Source codebase of OpenJDK,.which Oracle itself uses as well for their binary builds.

Of course, you as an “individual user of Java SE” still have the legal right to download and use Oracle’s binaries – you’re just not allowed to re-distribute it. Making a Slackware package out of your Oracle-downloaded binaries is simple – use the jdk.SlackBuild or jre.SlackBuild scripts which are part of Slackware and “wrap” those binaries into a convenient package.

While this is a nice solution for the individual, our own Slackware had to stop updating its Java packages. It now has to solve the question of keeping or removing Java from its distribution. Since Oracle’s binaries can no longer be included, Slackware has to follow the advice and build its own Java from source.

This situation now lasts since august 2011 and it is bothering me. So, in November 2011 I made a promise to Pat Volkerding that I would create a set of Slackware packages for the OpenJDK. Unfortunately that took me longer than expected because a lack of time and because (as outlined in my previous post) I wanted to build them in such a way that I could use the SlackBuild scripts on ARMedslack which still lacks a Java package.

I uploaded the results of my efforts last week but Pat has not responded since, so I am making the packages and sources/scriptes available to a wider audience. Please note that I named the resulting packages “openjdk” and “openjre” but the packages that could get included into Slackware eventually may be named differently (like “openjdk-jdk” and “openjdk-jre”). In any case, I invite you to test them and report your findings.

You can get all of it here: http://connie.slackware.com/~alien/openjdk/ with a mirror here: http://alien.slackbook.org/slackware/openjdk/

For ready-made packages (for Slackware-current !) you can check the two directories “pkg64″ (containing 64bit versions) and “pkg” (for the 32bit version of Slackware).  If you want to install my pre-built packages, then all you really need are “rhino” which is the JavaScript engine, “icedtea-web” which is the browser plugin, and one of “openjdk” or “openjre” packages, depending of course on whether you need the full Java compiler suite or only the Java Runtime Environment.

You will also find packages for apache-ant, xalan and xerces.  These are only needed if you want to re-compile OpenJDK yourself. If you want to build your own packages instead of using (or after installing) mine, then follow the instructions in the sources/README.txt file. If you are not running Slackware-current but one of the stable releases, then compiling from source will be your only option.

For you wannabe-compilers, I will repeat part of that README text here. OpenJDK will not compile successfully on Slackware unless you make some modifications to the gcc and seamonkey packages. You can either recompile those using the modified SlackBuild scripts and sources which I also provided in the openjdk sources tree, but you can also choose the less intrusive alternative by running (as root !) two small shell scripts that add the missing functionality to your system: create_gcj_jvm.sh and fix_seamonkey_pkgconfig.sh. These two scripts should work on every Slackware release.

After running the two shell scripts (or after rebuilding gcc and seamonkey) you are ready to (build and) install apache-ant, xalan, xerces and rhino, logout and log back in again to set the ANT_HOME environment variable, and proceed with building OpenJDK and icedtea-web. Good luck!

Any questions or feedback about these scripts and packages? Please post them here and I will follow up.

Cheers, Eric

Happy New Year 2012

I assume all of you had a safe year-ending? With all the fireworks, a finger or an eye is easily lost… I also assume that you are full of good intentions for the new year. I wish you all a prosperous and happy 2012, and I hope we will see a new shining release of Slackware Linux in the course of this new year!

Let me tell you some about what I have been doing in the past days. Thinking about the future of course – not much of that will interest you. More to the point, I have been thinking what needs to be done for Slackware to gain a little more ground.

There has not been a lot of movement in slackware-current for the past months and while that is pretty frustrating, we will have to respect Patrick Volkerding for giving his personal life a bit more priority now. In the meantime, I will keep myself busy with some of the “subsystems” in Slackware – KDE 4.8 is around the corner and I will certainly build packages for that.

There is also the urgent issue of dealing with JDK and JRE. As you may remember, Oracle decided that new binary releases of its own Java SE (the runtime or JRE as well as the SDK) may no longer be included with Linux distros. They retired the “Operating System Distributor License for Java” (DLJ) and decided that distros should compile their own packages using the Open Source codebase of OpenJDK,.which Oracle itself uses as well for their binary builds. Slackware has not seen an update to its Java packages since that announcement. I have been busy in the past weeks preparing a set of Slackware OpenJDK packages. That was not trivial, since OpenJDK requires several additional packages in order to be compiled from source. It also required changes to Slackware’s gcc-java and seamonkey packages since I wanted OpenJDK to be “bootstrapped” against GCC’s java compiler. I could have chosen the easy way and compile it using a binary Java package downloaded from Oracle (which is acceptable as long as I do not re-distribute the downloaded binaries) but I had my reasons for not doing that – see below. I have now a working OpenJDK installed on my Slackware-current laptop, including a web-browser plugin for Java. That looks promising and I have uploaded all my work to the Slackware server so that Pat V. can have a look at it and ultimately add it to Slackware.

I had a goal in mind when I decided to take the hard way and compile OpenJDK using the (not fully compliant) GCC Java compiler It is the only way that we may finally be able to create a Java package for ARMedslack! The ARM port of Slackware currently has no Java support at all and I intend to change that.

You may ask, where this interest in Slackware ARM comes from. You have not read my recent posts perhaps?

It’s quite simple really. Because I think this platform is ready for prime time. The first powerful ARM based laptops have finally shown up. They are currently mostly running Android – think of the ASUS Transformer (powered by a Tegra 2 – essentially the chip which also powers a lot of the new Android tablets). You can barely fail to notice that all the big distros (Arch Linux, Gentoo, Fedora, Debian, Ubuntu) are working hard on a port to these new ARM platforms. I believe that Slackware should be part of that effort.

So, first of all, I am eagerly waiting for the Raspberry Pi devices to become available for sale. A computer for 35 dollars, that is something nobody should be able to resist. I want one of those and install ARMedslack on it. Stuart Winter is willing to port ARMedslack to this new device (hopefully the kernel is the only package which needs to be crafted specifically for the new ARM CPU). And second, I already bought another ARM based computer: the TrimSlice Pro. The TrimSlice is of an entirely different league than the low-spec Raspberry Pi. It runs on the same Nvidia Tegra-2 chip I already mentioned earlier. The Tegra 2 has a dual-core ARM CPU running at 1 GHz and a GeForce GPU which should be capable of 1080p full-screen HD video payback.The TrimSlice also has 1 GB of RAM and comes pre-installed with Ubuntu Linux on a 32 GB SSD harddisk… now that screams to be replaced with Slackware. This device should be fast enough to be used for compilation of ARM packages. Stuart is working on a kernel for this device, but there are some complications. The TrimSlice uses a USB to SATA bridge to connect the SSD. That causes USB disconnects with the ARMedslack kernel when large amounts of data are written. Stuart will undoubtedly find a fix for that in the end.

And while Stuart works on the ARMedslack packages I have been considering what would be a second port to ARM. The crux is that ARMedslack supports a wide range of ARM computers (which is linked to the history of the port) and therefore does not profit from the new CPU’s which also have hardware floating point units (FPU). I want to try and start a port to “ARM hard float” architecture which should give it a big speed boost compared to ARMedslack. Of course, this means that the new port will not run on older devices like the SheevaPlug, or ARM based NAS/mediaplayer boxes which typically run cusom Debian distributions. I spent part of my holiday to write a script which cross-compiles a basic toolchain (kernel, binutils, glibc, gcc, bash and other necessary stuff) which can be used to compile the rest of Slackware. I now have a small root filesystem (containing a “armv7hl-slackware-linux-gnueabi” target) ready for testing on the TrimSlice. If only there is enough time left… my short X-Mas holiday is nearing its end, and with it the room to experiment.

Eric

Fixing audio sync with ffmpeg

The ffmpeg developers and their libav antipodes are engaged in a healthy battle. Ever since there was a fall-out and the ffmpeg developer community split in two (forking ffmpeg into “libav”), ffmpeg itself has seen many releases which tend to incorporate the good stuff from the other team as well as their own advancements.

Last in series is ffmpeg-0.9 for which I built Slackware packages (if you want to be able to create mp3 or aac sound, get the packages with MP3 and AAC encoding enabled instead.

The package will come in handy if you want to try what I am going to describe next.

Re-sync your movie’s audio.

You probably have seen the issue yourself too: for instance, I have a file “original.avi” which has an audio track (or “stream“) which is slightly out of sync with the video… just enough to annoy the hell out of me. I need to delay the audio by 0.2 seconds to make the movie playback in sync. Luckily, ffmpeg can fix this for you very easily.

Let’s analyze the available streams in the original video (remember, UNIX starts counting at zero):

$ ffmpeg -i original.avi

Input #0, avi, from ‘original.avi’:

Stream #0.0: Video: mpeg4, yuv420p, 672×272 [PAR 1:1 DAR 42:17], 23.98 fps, 23.98 tbr, 23.98 tbn, 23.98 tbc
Stream #0.1: Audio: mp3, 48000 Hz, stereo, s16, 128 kb/s

You see that ffmpeg reports a “stream #0.0” which is the first stream in the first input file (right now we have only one input file but that will change later on) – the video. The second stream, called “stream #0.1“, is the audio track.

What I need is to give ffmpeg the video and audio as separate inputs, instruct it to delay our audio and re-assemble the two streams into one resultant movie file. The parameters which define two inputs where the second input will be delayed for N seconds, goes like this:

$ ffmpeg -i inputfile1 -itsoffset N -i inputfile2

However, we do not have a separate audio and video tracks, we just have the single original AVI file. Luckily, the “inputfile1″ and “inputfile2″ can be the same file! We just need to find a way to tell ffmpeg what stream to use from which input. Look at how ffmpeg reports the content of input files if you list the same file twice:

$ ffmpeg -i original.avi -i original.avi

Input #0, avi, from ‘original.avi’:

Stream #0.0: Video: mpeg4, yuv420p, 672×272 [PAR 1:1 DAR 42:17], 23.98 fps, 23.98 tbr, 23.98 tbn, 23.98 tbc
Stream #0.1: Audio: mp3, 48000 Hz, stereo, s16, 128 kb/s

Input #1, avi, from ‘original.avi’:

Stream #1.0: Video: mpeg4, yuv420p, 672×272 [PAR 1:1 DAR 42:17], 23.98 fps, 23.98 tbr, 23.98 tbn, 23.98 tbc
Stream #1.1: Audio: mp3, 48000 Hz, stereo, s16, 128 kb/s

You see that the different streams in multiple input files are all numbered uniquely. We will need this defining quality. I colored the numbers with red & purple – these colors will show up in my example commands below.

Our remaining issue is that ffmpeg must be told that it has to use only the video stream of the first inputfile, and only the audio stream of the second inputfile. Ffmpeg will then have to do its magic and finally re-assemble the two streams into a resulting movie file. That resulting AVI file also expects video as the first stream, and audio as the second stream, just like our original AVI is laid out. Movie players will get confused otherwise.

Ffmpeg has the “map” parameter to specify this. I have looked long and hard at this parameter and its use… it is not easy for me to follow the logic. A bit like the git version control system, which does not fit into my brain conceptually, either. But perhaps I can finally explain it properly, to myself as well as to you, the reader.

Actually, we need two “map” parameters, one to map the input to the output video and another to map the input to the output audio. Map parameters are specified in the order the streams are going to be added to the output file. Remember, we want to delay the audio, so inherently the audio track must be taken from the second inputfile.

In the example below, the first “-map 0:0” parameter specifies how to create the first stream in the output. We need the first stream in the output to be video. The “0:0” value means “first_inputfile:first_stream“.

The second “-map 1:1” parameter specifies where ffmpeg should find the audio (which is going to be the second stream in the output). The value “1:1” specifies “second_inputfile:seccond_stream.

$ ffmpeg -i original.avi -itsoffset 0.2 -i original.avi -map 0:0 -map 1:1

There is one more thing (even though it looks like ffmpeg is smart enough to do this without explicitly telling so). I do not want any re-encoding of the audio or video to happen, so I instruct ffmpeg to “copy” the audio and video stream without intermediate decoding and re-encoding. The “‘-acodec copy” and “-vcodec copy” parameters take care of this.

We now have the information to write a ffmpeg commandline which takes audio and video streams from the same file and re-assembles the movie with the audio stream delayed by 0.2 seconds. The resulting synchronized movie is called “synced.avi” and the conversion takes seconds, rather than minutes:

$ ffmpeg -i original.avi -itsoffset 0.2 -i original.avi -map 0:0 -map 1:1  -acodec copy -vcodec copy synced.avi

Cheers, Eric

KDE 4.7.4 – last of the 4.7 series

The KDE team has already released two betas of the upcoming KDE 4.8, but I am not so much in a hurry. First things first! There is the last update in the 4.7 series, which was released earlier today. The Slackware KDE 4.7.4 packages are ready and you can grab them if you like.

For those who are trying my 4.7 packages for the first time and wonder why the hell am I offering so many packages, please read my earlier post about KDE 4.7.0 which explains more about splitting KDE for Slackware into many more (and smaller) packages.

My packages have been compiled on Slackware-current. Even though several people had reported that previous KDE 4.7 packages worked fine on Slackware 13.37, there has been an incompatible update to slackware-current recently (the glibc package). As a result, these new KDE 4.7.4 packages will only work on slackware-current (64-bit and 32-bit). If you are running Slackware 13.37, then stick to your currently installed version of KDE, or install my 4.6.5 packages (or upgrade your Slackware to -current).

Read the accompanying README file for installation and upgrade instructions!

Some of the highlights of these KDE packages:

  • Since this is the last edition of KDE 4.7, I decided to add updated versions of KDE related packages that I do not usually include: amarok, skanlite, ktorrent. I have no idea when Slackware-current will start moving again, but this set of packages allows you to have a complete, stable and up to date KDE environment for the time to come.
  • There are several updated dependencies compared to Slackware’s own KDE 4.5.5: PyQt, QScintilla, akonadi, attica, clucene, ebook-tools, hunspell, libdbusmenu-qt, phonon, polkit-qt-1, qt, raptor2, rascal, redland, shared-desktop-ontologies, sip, soprano, strigi, system-config-printer and virtuoso-ose.
  • In comparison with my previous KDE 4.7.3 the number of updated dependencies is a much smaller: attica, libktorrent, libmsn, and soprano. Note that libktorrent is now located in “deps” instead of “kde” directory because it has become a dependency for more than just ktorrent.
  • KDE dpendencies that are not part of Slackware 13.37 at all (yet): grantlee, herqq, libatasmart, libbluedevil, libssh, phonon-gstreamer, phonon-xine, sg3_utils and udisks. Note that I added phonon-gstreamer and phonon-xine only after I had already released KDE 4.7.0 packages because people reported that they no longer had sound. These two packages solve that issue.

Also worth mentioning is some stuff which is not completely new, since I added these to previous releases of KDE 4.7 already (but if you are new to KDE 4.7 this will certainly interest you):

  • You will find some additional useful new applications, which are not part of the KDE core set. They are new, compared to Slackware’s own version of KDE. I already added bluedevil to my 4.6.5 package-set. Bluedevil is the new KDE bluetooth stack with a nice GUI, based on the BlueZ libraries already present in Slackware. And with KDE 4.7.0, I included kplayer, a KDE front-end to MPlayer. With KDE 4.7.2, I added Quanta Plus, which disappeared from KDE4 because that migrated from Qt3 to Qt4. It is now being worked on again, but no longer as a standalone application – instead it is available as a plugin to the Kdevelop Platform. And with KDE 4.7.3, I added a native WICD applet for KDE, called “wicd-kde“. It can replace the GTK based “wicd-client” which is part of the wicd package.
  • I also added oxygen-gtk, which is not really an application, but a theme engine. It (optionally) makes GTK applications visually blend in with KDE’s own Oxygen theme. There is a README in its documentation directory which explains how to enable it.
  • Since KDE 4.7.2, I include a “test” directory. This directory contains Networkmanager, plus some other dependencies, that allow to create a KDE package for “networkmanagement” which is an applet plus a kcontrol (i.e. a plugin for KDE’s systemsettings). This test, which sofar has proved to be quite successful, allows you to switch from WICD to NetworkManager as your basic network management service. The applet plus kcontrol make it quite easy to configure your network in KDE (wired, wireless, vpn, dsl and mobile broadband). No new Gnome libraries had to be added for this (NM itself plus its supporting tools have no dependency on the rest of Gnome). I have added NM installation/configuration instructions to the README.

A small aside I want to mention:

There was one bug that has been plaguing me ever since KDE 4.7.0 (and I may have had this occasionally before 4.7 but I cannot remember for certain). The bug seems to be ALSA related, but unsure is whether the fault is with ALSA or with KDE. The “kde deamon (kded4)” crashes every time when I login to KDE. Surely, it will automatically restart but it is ugly. It was still there in KDE 4.7.3 and it is described in these two bug reports:

There is a workaround though. If you disable “KMixD Mixer Service (kmixd)” from being started at logon, the crash does not occur anymore and so far I have not found any lost functionality. My laptop’s hardware volume keys still work, and the KDE mixer applet is still functional. Go to System Settings > Startup and Shutdown > Service Manager, and remove the check in the checkbox for KMix Daemon.

The KDE 4.7.4 packages for Slackware-current are available for download from my “ktown” repository and several mirrors (taper will be in sync when I post this, the other mirrors will have to catch up):

Have fun! Eric

Recipe: traditional moussaka

Last weekend I prepared another diner which I had not cooked for a very long time.

I love rich oven dishes, and traditional greek “moussaka” is a long-time favourite of mine. I learnt how to cook it while I lived in a student home.

There are many variants of moussaka which do not honour the original method of preparation. Things like potatoes do not belong in moussaka.. while cinnamon, oregano and lots of vegetable oil do belong! I try to follow a more traditional approach. Any greek readers, please come up with improvements if your Mom had a different recipe!

The result will be a heavenly smell in your kitchen while the dish is finishing in the oven. Your belly will be all warm and fuzzy after emptying your plate.

The prime ingredient in moussaka is the aubergine, or eggplant. This fruit (commonly mistaken for a vegetable!)  is one of the family of nightshades – like tomatoes, cayenne, and even tobacco. It’s easy to spot in the pic below that this is a fruit – it contains seeds. Like with tomatoes and potatoes, there is a certain bitterness in the eggplant which you can eliminate by “sweating”, steaming or grilling. I am going to grill the eggplant.

Another ingredient which deserves a separate mention, is the béchamel sauce. This sauce of butter, flour and milk is thought by many people to be difficult to make, but in fact it is dead easy, The béchamel, along with grated cheese, will create a beautiful soft-crunchy crust on top of the moussaka.

Ingredients (4 persons):

  • One eggplant
  • one onion, chopped up
  • three cloves of garlic, chopped up (do not squeeze them out)
  • 400 grams of minced lamb meat (beef will do as well)
  • one can of peeled tomatoes
  • 150ml olive oil (sunflower oil will do)
  • plenty of cinnamon and oregano
  • pepper, salt
  • 50 grams of butter
  • 50 grams of flour
  • 1/2 liter of milk
  • 200 grams of grated young cheese

Preparation:

  • Pre-heat the oven to 200°C
  • First we create the meat/tomato sauce. Heat a few tablespoons of oil in a pan, add the chopped onion and garlic and let it cook for a few minutes until the onion gets a nice golden-brown color. Keep stirring with a wooden spoon to prevent the garlic from getting black and bitter.
  • Add the minced meat, turn up the heat and let it cook for a few minutes until all of the meat has turned brown. Add salt and pepper to taste. Add lots of cinnamon powder and oregano. Don’t hold back! In this dish, more is better. In particular, you can never have too much cinnamon.
  • Leave the meat and onions to simmer on a low fire for a few minutes. Then turn up the heat under the pan again, and add the peeled tomatoes. If these are not chopped-up tomato parts, you cut the tomatoes up into smaller pieces before you add them to the pan. Allow the tomato to integrate with the meat and onions; there is a lot of liquid in the tomatoes which needs to boil away. Then turn down the heat and leave it to simmer on low heat with the lid on the pan. We will not need the meat sauce until later and we might just as well allow the flavors to mix for as long as possible – it will enhance the dish. Don’t forget to taste! It may require more salt and cinnamon.
  • We continue with the béchamel and the eggplant. You can work on these in parallel.

Eggplant:

  • If you have a grill-pan, put it on the stove and heat it up. If you do not have a grill-pan, you can do with a flat frying pan, or use the oven grill – we are going to grill the eggplant
  • Cut the top and bottom off the eggplant, removing the leaves. Cut the eggplant along its long side in slices of 0.5 cm (0.2 inch). Once exposed to the air, the slices will color brownish after a while so it is best to cut only a few slices at a time and apply the next step in the preparations.
  • Brush both sides of an eggplant slice with olive oil and place it in the grill-pan. Leave it on the grill for a minute or two and then turn it over. This will make it tender, eliminate the bitter taste and sweeten the eggplant. You can put several slices in the grill pan at a time, to speed up the process.

Béchamel:

  • Melt the butter in a pan (low heat) or in the microwave.
  • Add the flour (all at once) and keep stirring the mixture (with the heat kept low!) so that you get a smooth mixture. Let the mixture (the “roux”) cook on low heat for about 4 minutes, this will eliminate the floury taste. While stirring, take the pan off the fire from time to time to keep the flour from turning brown – we want the béchamel to keep its white color.
  • Gently, add the milk while you keep stirring the mix. Let it cook for another 10 minutes at least, stirring the béchamel sauce from time to time to keep it smooth and prevent burning. Then turn off the heat.

We continue with the final part:

  • Brush the inside of an oven dish with olive oil. More is better. The oil will prevent the eggplant from sticking to the dish when it bakes in the oven.
  • Cover the bottom of the oven dish with slices of grilled eggplant. On top of that, pour half of your meat/tomato sauce until it covers the eggplant. Then, add a new layer of eggplant slices and on top of that you pour the remaining half of the meat/tomato sauce. Sprinkle this with a generous amount of grated cheese. If you still have eggplant slices left, you can place those on top.
  • Grab the pan with the béchamel sauce,, and pour it over the other ingredients in the oven dish. It will trickle down into the dish, but the majority will remain on top. Sprinkle some more grated cheese over the béchamel. Not too much cheese, the béchamel must remain visible! We do not want a burnt cheese crust, we want to create a soft crust of cheese mixed with the béchamel.
  • Place the dish in the middle of your oven and let it bake for 20 minutes. The moussaka is ready when the crust starts turning light brown.

Serve it with some greek white wine like retsina.

I could eat this every week… but it took years to find an opportunity cook it because my son dislikes the taste of the eggplant. He still did not like it much… but he ate it all anyway.

Enjoy your meal!

Eric

Raspberry Pi deserves Slackware

Some time ago I ran into this website promoting a very cheap computer the size of a credit card. The Raspberry Pi is being created by a charitable foundation. It is designed to “plug into a TV or be combined with a touch screen for a low cost tablet“. Typically its target is “teaching computer programming to children“, but such a cheap computing device will certainly have “many other applications both in the developed and the developing world“.

You have to see the device to believe it, I guess. The videos and photos look very promising. It’s not in production yet but according to the developer team’s schedule first shipments should commence before the end of the year.

Its specifications are not stellar (256 MB of RAM will likely rule out the top-heavy desktop environments like KDE) but hey! it only costs 35 euros! And the ARM processor, a Broadcom BCM2835 SoC with a ARM1176JZF-S core seems to have good support in the Linux kernel (a patch that adds support to linux-3.0.4 is fairly trivial). Check out this video which shows the Raspberry Pi running Quake III in 1920×1080 resolution with 4x antialiasing.

There is a thread on LinuxQuestions which shows that it may in fact not be hard to boot Slackware – or rather, ARMedslack. Using the latest QEMU which supports the Broadcom’s ARM version, and a recent kernel compiled for ARM (see above), QEMU can successfully boot one of ARMedslack’s “mini rootfs” filesystem images.

So, I think that the Raspberry Pi deserves Slackware. If we are going to bring Slackware to the masses, this ARM device would be a nice vehicle. I am going to get myself one or two of them. Stuart Winter (ARMedslack developer) promised to help me with the nasty bits. We will see how this ends up – either incorporated into ARMedslack, or as a separate development tree hosted by me, or (nicest option but not a very realistic one perhaps) folded into the main Slackware tree. It would be cool to have the main tree expand to support a third architecture besides x86 and x86_64.

Cool, another project for my evergrowing TODO list! Oh my… I can’t even find the time to spend on another project that is itching at the back of my mind… I guess should at least make an effort to upload all of the OCR related packages I created a month ago.

Eric

Fixes for LibreOffice in KDE

Those of you who use KDE as their desktop environment and also use my LibreOffice packages, will know that there are two major annoyances, related to KDE’s theming engine but ultimately caused by bugs in LibreOffice.

Those annoyances are:

  • Tooltips in LO applications show up as black text on black background, effectively rendering them useless. You can fix that by changing the color of Tooltips in “System Settings > Application Appearance > Colors” and then in the tab called “colors” look for “Tooltip background” and change that to some lighter color. But that changes the behaviour of every tooltip in other applications as well, so this should really be fixed in LibreOffice.
  • When using KDE’s Oxygen window decorations, all LO applications will have a non-functional horizontal scrollbar – you can not grab hold of it or move it left-right with your mouse.

Two patches which I found in OpenSuse were needed to fix both these annoyances. I rebuilt my LibreOffice packages for Slackware after applying them. Get them if you were annoyed by these issues just like me.

Note that the mirror sites also offer rsync access as well as faster download speeds. Only taper.alienbase.nl and alien.slackbook.org are up to date at this moment (because I maintain those myself) but the other mirrors should pick up the updates automatically soon enough.

Eric

Multilib version of Slackware’s “11-11-11″ glibc

 The glibc packages in Slackware -current were updated to 2.14.1 a few days ago. Unfortunately, a couple of issues were reported, you will find them in this LinuxQuestions thread.

Since I had to compile my multilib version of glibc still, I decided to wait a bit with releasing them, and that allowed me to find and apply the patch reported in the above thread that seems to solve the issues. The patch comes from Linux From Scratch and appears to be upstream fixes that are going to be in the next release of glibc. I upgraded my laptop with this new multilib glibc package, and can confirm that applications like firefox, libreoffice, calibre, mplayer run without any issues here.

I know that several people have mentioned this patch to Pat Volkerding already, and if the patch gets applied to Slackware’s glibc package I will simply rename my own multilib versions from “1alien” to “2alien” in order to stay in sync with the versioning of the originals.

Along with the updated mulitilib glibc packages, I also uploaded a new version of the “compat32-tools” package to the “current” section, containing a bug-fixed convertpkg-compat32 script. I also refreshed the “slackware64-compat32” subdirectory which contains the packages converted by the “massconvert32.sh” script.

Eric