Monday, April 7, 2014

Playing with Cinnamon 2

On my weekend last Sunday, i decided to try on building Cinnamon on top of Slackware 14.1. I know it's going to be a hell of a mess and lots of problems, but still it's a challenging project for myself.

I started by building a new VM of Slackware64 14.1 and update it with all the software updates coming from -stable branch. Next, i tried to list down cinnamon dependencies one by one. I must say, Cinnamon is way more complex in terms of software dependencies compared to MATE. I didn't build all the optional dependencies, but just the hard dependencies.

The biggest problem when building cinnamon is that some of it's dependencies require systemd and PAM and some other require newer glib than what we have in Slackware 14.1 For glib, i tried to avoid it, since i'm not going to change any packages in Slackware's tree. That makes me easier when i want to update the packages without conflicting with Patrick's packages.

For systemd, i can avoid this as well, by picking some older version of the deps that doesn't require systemd, but in order to get the latest version of those libraries, you must have systemd in your system. For now, this situation is still OK, but not really sure for future releases as systemd is now getting more and more used in many upstream projects.

At the end, i can't avoid of using PAM even though many Slackware users does not like to use PAM. Building Cinnamon without PAM is quite impossible, since the only backend authentication implemented is PAM. Luckily, i managed to build PAM for my MSB project, so i only need to grab it and make minor modifications to make it work.

After compiling, testing, debugging for almost 2 days, finally i'm able to bring the Cinnamon desktop running well on top of Slackware 14.1. It's still running under software rendering mode, since i installed it on a VM, so i'm not sure if the performance is good or not.

I still want to make more tweaks before publishing the results of this project to public and making the SlackBuild script more robust. During the development, i often experienced a different result when running the script when new packages are introduced or recompiled. Probably it's just a matter of build order and hopefully i can get it fixed.

Anyway, here's the early screenshot of Cinnamon 2.0.14 on top of Slackware 14.1:

Big thanks to everyone who have submitted their packages to SBo project. It makes it easier for me to build Cinnamon using some of the scripts available in SBo to satisfy it's dependencies.