Tag Archives: Ubuntu

Correcting obsolete dependency requirements in DEB packages

I use the excellent XMind mind-mapping tool. Moving from Linux Mint 13 (Ubuntu 12.04 LTS) to Xubuntu 14.04 LTS revealed a problem with the way XMind was packaged for Ubuntu. It had a hard-coded dependency on specific versions of the Java runtime – either of openjdk-6-jre, oracle-java6-jre, sun-java6-jre or sun-java5-jre. That wouldn’t do. The 14.04 LTS uses openjdk-7.

Of  course, the DEB package is built to support the widest range of Java runtimes and on some systems, they can go back up to Java 5 – when Sun Microsystems was still alive. But that should not be a reason to force up-to-date systems to pull in older runtimes. We can let XMind know about the issue and wait for them to update the dependencies and rebuild the package. Or we can do it ourselves.

DEB files are compressed archives with some control information. The dpkg-deb utility makes it very easy to modify DEB files.

$ mkdir -p extract/DEBIAN
$ mkdir build
# dpkg-deb -x package.deb extract/
# dpkg-deb -e package.deb extract/DEBIAN
[...do something, e.g. edit the control file...]
# dpkg-deb -b extract build

The control file was edited as follows:

-Depends: libgtk2.0-0 (>= 2.8.0), openjdk-6-jre | oracle-java6-jre | sun-java6-jre | sun-java5-jre
+Depends: libgtk2.0-0 (>= 2.8.0), default-jre | openjdk-6-jre | oracle-java6-jre | sun-java6-jre | sun-java5-jre

Now, the package will first check for the default Java package on the system and then move on to its list of specific runtimes.

Redmine + Thin + Nginx

Redmine, is by far, the best project management tool I have used. Earlier, I had deployed it using Apache and mod_passenger. This was on Debian 6. It was straight-forward, possible with just apt-get. Now I wanted to deploy it with Nginx, on Ubuntu 12.04.

There are two ways – use Phusion Passenger (similar to Apache’s mod_passenger) with Nginx or use an application server like Mongrel or Thin.

Phusion Passenger requires the user to recompile Nginx, since Nginx doesn’t have loadable modules.

Mongrel was the gold standard for Ruby on Rails deployment until Passenger came along. Development of Mongrel ceased in 2008. Those who still want to use application servers use Unicorn or Thin and put a reverse proxy/load balancer in front.

This is my take-away from four days (I am dumb – sue me!) of googling and reading. My requirements were clear – no compiling, no ruby gems, no installation outside of apt-get. Redmine + Thin met these criteria.

1. Get all the packages.

sudo apt-get install redmine redmine-mysql thin

2. dpkg will configure Redmine for us. We also have to configure the email delivery method. Redmine configuration is standard and well documented. We  now have to configure Thin. This will create two servers on sequential ports, beginning with 3000.

sudo thin config -C /etc/thin1.8/redmine.yml -c /usr/share/redmine/ --servers 2 -e production -a -p 3000

3. This will create the configuration file (redmine.yml) in the correct folder. The file looks like this:

timeout: 30
wait: 30
max_persistent_conns: 512
log: log/thin.log
chdir: /usr/share/redmine
servers: 2
require: []

daemonize: true
pid: tmp/pids/thin.pid
environment: production
max_conns: 1024
port: 3000

4. Finally, use the Redmine template for Nginx, as explained on the Nginx wiki, to act as a proxy in front of the Thin servers.



Winner! In The Green Corner – Cinnamon!!

This is my new desktop. I am confident of keeping it till the next the LTS two years away.


Long time GNOME users were a worried lot because of GNOME 3 with its GNOME Shell. Ubuntu was not helping matters with its Unity desktop either. Thankfully, Linux Mint, led by Clem, stepped up to the challenge. They provided not one, but two alternatives to those fleeing from GNOME Shell and Unity – MATE, for those wanting to stick with GNOME 2.3x and Cinnamon, for those wanting to try GNOME 3 with a classical desktop layout.

I was willing to move to GNOME 3, but abandoning existing desktop metaphors and work-flows sounded too much of a hassle. Sue me! I was also suspicious of my three-year old laptop’s ability to run these modern desktops.

I decided to use MATE at first.  However I ran into a few issues.

  • There was noticeable flickering in the installer slide-show. This did not inspire confidence in the compositor or whatever component it is that takes the output from all desktop windows and renders it on your desktop.
  • The installer crashed once. It has been a long time since a Linux installer crashed on me!
  • MATE developers renamed various apps to maintain compatibility with GNOME 3. I found my myself double-guessing and hunting for apps. Though I agree – this wouldn’t be an issue after a few days of usage.
  • Some functionality was missing. Some applets and utilities were missing. Expected and forgiven, given that it is a new project with less developer resources than GNOME.
  • I missed the Scale and Expo Compiz plug-ins. Don’t ask me which does what. One exposes all the windows on a particular workspace and the other exposes all the workspaces.

In general, the environment felt neither solid nor familiar. If I was going to poke around and keep crossing my fingers, I ‘d rather use Cinnamon! At least I would be happy using a new, shiny piece of software. And boy, did it work out! I am very happy with Cinnamon. None of the four issues I mentioned above appeared in Cinnamon.

It’s not all rainbows and unicorns though. Cinnamon has some issues to clear out before it can dethrone GNOME 2.3x. Underneath Cinnamon is not GNOME 2.3x but GNOME 3.x. No matter how much Cinnamon is tuned and tweaked, it will never be GNOME 2.3x. Users will find that this is for the better.

Cinnamon is so good now, that after a week of usage, I actually have no complaints. All the issues I have are subjective.

  • Cinnamon is not feature heavy. Its developers should resist the temptation and user pressure to create a resource hogging Compiz clone. We don’t need rotating cubes, wobbly windows or fire trails after the mouse pointer.
  • Cinnamon’s implementation of Scale and Expo absolutely ROCK!
  • I actually prefer the Cinnamon Menu to the earlier Mint Menu.
  • I counted three tool-tip styles – Cinnamon, GNOME 3 and GTK+ theme. There are that many systems working together (whew!) to give you this awesome desktop. Come on guys, Linux Mint is now at the stage where you should have a OCD about such things. Get all of ’em styles linked and synced!
  • Some notification area icons (e.g. for Transmission and GNote) take up almost double the usual space. This doesn’t happen with others like Pidgin or Firetray for Thunderbird. So, is there a problem here or not?
  • The panels disappear when the gksudo prompt appears. It is disconcerting – the first time it appeared, I though Cinnamon had crashed.
  • I could not take screen-shots using the Print Screen button when a menu was in use in Pidgin. I don’t recollect this being a problem in GNOME 2.3x.
  • The reason I wanted to take a screen-shot was because the menu was disappearing below the Cinnamon panels – rendering the top-most and lower-most items difficult to reach.
  • It would be nice to have a placeholder applet on the panel to mark hot-spot corners, for users using the classic GNOME layout.
  • Applets need a ‘gravity’ sensor. For instance, check the cinnamon settings applet in the screen-shot. The icon (^) is fine if placed on the lower panel. It should have rotated 180 degrees when placed on the upper panel.
  • Cinnamon’s most exciting feature – applets and extensions – could be its breakout feature. It already has some sort of quality control and user feedback to up-vote good extensions and applets. There is also a PPA for Cinnamon extensions, applets and themes – users can easily and regularly upgrade Cinnamon components.
  • I tried the Coverflow AltTab extension and a timer applet, but had to remove them when Cinnamon started crashing just as I was getting down to work for the first time on the new setup. There are no issues running Cinnamon as it came out of the box.  May be these new applets and extensions need some more testing. May be Cinnamon needs better crash handling – something like Firefox’s Crash Reporter perhaps?

Despite these issues, Linux Mint with Cinnamon is a solid bet and I can’t wait to see how it matures in the future.

On the OS front, I have been more forgiving towards the default apps that come with the base install. About the only change I did was substituting Totem and GNOME MPlayer with SMPlayer. Everything else is as it came out of the box.


Enhanced by Zemanta

Ubuntu 8.04

I’m happy happy happy!

The hardware guy has returned my video card and my Gladiator DVD! My system is complete! I ‘ve to look into installing some nvidia thingy to get a better look at the card’s capabilities.

As for the scheduled upgrade, just like from 7.04 to 7.10, 7.10 to 8.04 has gone smoothly. In case you are wondering why I had to do a clean install for 7.04: I assembled my current machine in late March 2007 – 7.04 was just in time to be the first OS to be loaded on to this machine.

The upgrade pulled 463 MB from the net in spite of having the alternate CD at its disposal. I ran the update-upgrade sequence a couple of more times to get the third party repos up to the mark.

No major surprises except for XMMS, which is replaced by Audacious. And it may be the novelty of the upgrade, but things look even more glossy than in Ubuntu 7.10.

Life is good.

Wishlist for Ubuntu 8.04

No software is perfect, not even Linux. For Ubuntu 8.04 coming out tomorrow, here are a few eccentricities I hope will disappear.

  • The desktop doesn’t arrange the icons in a grid – at least, not as well as Windows does it. The current ‘grid’ looks like it was laid out by a toddler; its that loose. And while the devs are at it, can they do something about the overlapping text for adjacent icons?
  • Whenever I edit a file on the Desktop, its icon moves to the upper left corner on its own. What gives?
  • The balloon popup with the update notification icon is nice, but maybe it should be pointing at the orange update icon, not at some other icon in the notification area.
  • I use an ADSL net connection and run Apache on localhost. Now get this: in Firefox, without an active ADSL net connection, I can’t visit localhost. The page times out! The Apache access log shows no request made to apache to serve a page. It works in Epiphany without any problems!
  • When playing a video file, the video stream goes kaput. Reopening the video (in any player) doesn’t help; I still get the weird pink snowing static. Restarting X server solves the problem. To be fair, this has occurred exactly two times in two years.

Now you may ask (with justification) why I haven’t filed bug reports. None of the above are predictable or reproducible, as far as I know. The last one has occurred just two times in two years – if I were the developer, I would shrug it off. For the rest, I’m pretty sure I’m missing some config setting somewhere.

Be ready to open up your torrents.