Installation of ros-kinetic fails on Xenial after OS Update

I was running Ubuntu Trusty (14.04) until recently and decided to update it to Xenial (16.04). I was using ros-indigo in Trusty. When I decided to update Ubuntu to Xenial, due to the compatibility issues, I decided to remove ros-indigo. All that went as planned and I had Xenial running. Then I decided to install the latest version of ROS – Kinetic.

When I ran the install, there were some errors and synaptic reported that some programs are not configured. I had made quite a lot of changes in that installation step, after a reboot I tried apt-get in the terminal. It threw these errors at me.

sudo apt-get install ros-kinetic-desktop-full
Reading package lists… Done
Building dependency tree
Reading state information… Done
ros-kinetic-desktop-full is already the newest version (1.3.0-0xenial-20170430-131230-0800).
The following packages were automatically installed and are no longer required:
libcdaudio1 libp11-kit0:i386 libslv2-9 libtasn1-6:i386
linux-headers-4.4.0-36 linux-headers-4.4.0-36-generic
linux-image-4.4.0-36-generic linux-image-extra-4.4.0-36-generic snap-confine
tcl-vtk ubuntu-core-launcher wx-common xserver-xorg-legacy
Use ‘sudo apt autoremove’ to remove them.
0 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade.
13 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n]
Setting up libopenni0 (1.5.4.0-14) …
mv: cannot stat ‘/var/lib/ni/licenses.xml.dpkg-old’: No such file or directory
dpkg: error processing package libopenni0 (–configure):
subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of libopenni-dev:
libopenni-dev depends on libopenni0 (= 1.5.4.0-14); however:
Package libopenni0 is not configured yet.

dpkg: error processing package libopenni-dev (–configure):
dependency problems – leaving unconfigured
dpkg: dependency problems prevent configuration of openni-utils:
openni-utils depends on libopenni0; however:
Package libopenni0 is not configured yet.

dpkg: error processing package openni-utils (–configure):
dependency problems – leaving unconfigured
dpkg: dependency problems prevent configuration of libopenni-sensor-pointclouds0:
libopenni-sensor-pointclouds0 depends on libopenni0; however:
Package libopenni0 is not configured yet.
libopenni-sensor-pointclouds0 depends on openni-utils; however:
Package openni-utils is not configured yet.

dpkg: error processing package libopenni-sensor-pointclouds0 (–configure):
dependency problems – leaving unconfigured
dpkg: dependency problems prevent configurationNo apport report written because the error message indicates it’s a follow-up error from a previous failure.
No apport report written because the error message indicates it’s a follow-up error from a previous failure.
No apport report written because MaxReports has already been reached
No apport report written because MaxReports has already been reached
No apport report written because MaxReports has already been reached
No apport report written because MaxReports has already been reached
No apport report written because MaxReports has already been reached
No apport report written because MaxReports has already been reached
No apport report written because MaxReports has already been reached
No apport report written because MaxReports has already been reached
No apport report written because MaxReports has already been reached
No apport report written because MaxReports has already been reached
of libpcl-io1.7:amd64:
libpcl-io1.7:amd64 depends on libopenni0; however:
Package libopenni0 is not configured yet.

dpkg: error processing package libpcl-io1.7:amd64 (–configure):
dependency problems – leaving unconfigured
dpkg: dependency problems prevent configuration of libpcl-visualization1.7:amd64:
libpcl-visualization1.7:amd64 depends on libpcl-io1.7; however:
Package libpcl-io1.7:amd64 is not configured yet.

dpkg: error processing package libpcl-visualization1.7:amd64 (–configure):
dependency problems – leaving unconfigured
dpkg: dependency problems prevent configuration of libpcl1.7:
libpcl1.7 depends on libpcl-io1.7; however:
Package libpcl-io1.7:amd64 is not configured yet.
libpcl1.7 depends on libpcl-visualization1.7; however:
Package libpcl-visualization1.7:amd64 is not configured yet.

dpkg: error processing package libpcl1.7 (–configure):
dependency problems – leaving unconfigured
dpkg: dependency problems prevent configuration of libpcl-dev:
libpcl-dev depends on libopenni-dev; however:
Package libopenni-dev is not configured yet.
libpcl-dev depends on libpcl1.7 (= 1.7.2-14build1); however:
Package libpcl1.7 is not configured yet.

dpkg: error processing package libpcl-dev (–configure):
dependency problems – leaving unconfigured
dpkg: dependency problems prevent configuration of ros-kinetic-pcl-conversions:
ros-kinetic-pcl-conversions depends on libpcl-dev; however:
Package libpcl-dev is not configured yet.
ros-kinetic-pcl-conversions depends on libpcl1.7; however:
Package libpcl1.7 is not configured yet.

dpkg: error processing package ros-kinetic-pcl-conversions (–configure):
dependency problems – leaving unconfigured
dpkg: dependency problems prevent configuration of ros-kinetic-pcl-ros:
ros-kinetic-pcl-ros depends on libpcl-io1.7; however:
Package libpcl-io1.7:amd64 is not configured yet.
ros-kinetic-pcl-ros depends on libpcl-dev; however:
Package libpcl-dev is not configured yet.
ros-kinetic-pcl-ros depends on ros-kinetic-pcl-conversions; however:
Package ros-kinetic-pcl-conversions is not configured yet.

dpkg: error processing package ros-kinetic-pcl-ros (–configure):
dependency problems – leaving unconfigured
dpkg: dependency problems prevent configuration of ros-kinetic-perception-pcl:
ros-kinetic-perception-pcl depends on ros-kinetic-pcl-conversions; however:
Package ros-kinetic-pcl-conversions is not configured yet.
ros-kinetic-perception-pcl depends on ros-kinetic-pcl-ros; however:
Package ros-kinetic-pcl-ros is not configured yet.

dpkg: error processing package ros-kinetic-perception-pcl (–configure):
dependency problems – leaving unconfigured
dpkg: dependency problems prevent configuration of ros-kinetic-perception:
ros-kinetic-perception depends on ros-kinetic-perception-pcl; however:
Package ros-kinetic-perception-pcl is not configured yet.

dpkg: error processing package ros-kinetic-perception (–configure):
dependency problems – leaving unconfigured
dpkg: dependency problems prevent configuration of ros-kinetic-desktop-full:
ros-kinetic-desktop-full depends on ros-kinetic-perception; however:
Package ros-kinetic-perception is not configured yet.

dpkg: error processing package ros-kinetic-desktop-full (–configure):
dependency problems – leaving unconfigured
Processing triggers for libc-bin (2.23-0ubuntu7) …
/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 is not a symbolic link

/sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 is not a symbolic link

Errors were encountered while processing:
libopenni0
libopenni-dev
openni-utils
libopenni-sensor-pointclouds0
libpcl-io1.7:amd64
libpcl-visualization1.7:amd64
libpcl1.7
libpcl-dev
ros-kinetic-pcl-conversions
ros-kinetic-pcl-ros
ros-kinetic-perception-pcl
ros-kinetic-perception
ros-kinetic-desktop-full
E: Sub-process /usr/bin/dpkg returned an error code (1)

I quick search got this github page with a solution. Just run the following to remove any version of libopenni* that was installed in Trusty.

sudo apt-get purge libopenni*

Problem sorted and I could complete the installation of ros-kinetic-desktop-full. 🙂

About Canonical Ditching Convergence Initiatives

It was quite a surprise for me, like many Ubuntu enthusiasts when Mark Shuttleworth decided to stop all the development activities on their vision on convergence and along with that Unity8, Ubuntu next generation desktop environment with convergence as the main key feature. I was waiting for a very long time for a high spec Ubuntu powered smartphone to get released. As it was taking painstakingly too long, I ended up using an Android powered phone. Although I have done all possible things to get that phone dissociated with all Google services, I was still hopeful of getting an Ubuntu phone. Alas, it is not going to be.

First of all, no one can blame Canonical to stop the development on the convergence concept and Unity 8. As a company they have been piling up losses for a long time and how long Mark can keep funding it was always in everyone’s mind. The Unity 8 with convergence should have been released many years ago, but they couldn’t get it ready for the desktop after many years. However, some people have picked up the codebase and have started working on it.

The main challenge faced was the negative views from the open source community about Canonical’s (hidden) goals. Many were against signing off the license to Canonical (CLA) to the code they develop. If Canonical decided to start developing Mir (instead of using Wayland), may be life would have been a lot easier. Mir was always going to be just for Ubuntu. All other distributions started supporting wayland in the meantime. Unity was also working only on Ubuntu. If they made the interoperability better – enabling someone to easily install on another distro, say Fedora, then they would have had a bigger user base. Many users were OK with Unity 7 and didn’t want to jump to Gnome 3’s initial mess. But, Gnome did get improvements as more releases came by and with the availability of many good extensions (this is the most important reason). Many who were against Gnome 3 came back to it later. Now Yunit wants to move the code to work with Wayland. Hope they achieve that and Unity 8 is not completely lost. Canonical might have been at a better stage if they ensured Android apps can run on Ubuntu. All the talks about scopes did not reach anywhere. There were not enough applications to attract even the die-hard Ubuntu fans. If they addressed that first before concentrating more on the convergence part, they would have had a good mobile operating system that hundreds of 1000s people would use. Even Samsung managed to sell their Tizen powered mediocre phone to many. We have to remember that Canonical managed to get more than 10 million in their IndieGoGo campaign many years ago. People really wanted Canonical’s smart phone ambitions to be a success. 

Here is hoping the many people’s efforts don’t go wasted, and in future someone might comeup with a good hardware and working convergence.

New Position

I have taken up the post of Assistant Professor (Selection Grade) with the Ammachi Labs and Department of Mechanical Engineering, Amrita School of Engineering, Amritapuri Campus, Amrita Vishwa Vidyapeetham University, India on Jan 2017. My teaching and research focus will be mainly on mobile robotics and applications of machine learning techniques.

New Addition to the Family

We have been blessed with a baby boy, ours first, in Feb. We couldn’t get any family from India on time, so we have to manage everything on our own. A decision, not very well-thought out from first-time to-be-parents. As most parents must be knowing, it is exhausting, yet a rewarding experience. Happy parenting.

Meizu MX4 Ubuntu Edition?

mx4_invite

Nah, I will wait for the much talked about convergence to be ready.

I was waiting to buy a really good Ubuntu phone and Meizu MX4 was definitely a phone I was looking forward to when Ubuntu’s first two phones were announced. In fact I was hoping it will be MX4 Pro when its Android variant came out. Apparently it was not. I am not one of those who keep buying new phones once in a while. MX4’s specifications are modest, although far better than the BQ phones that came out. The major limitations are the lack of removable battery and external SD card support. I tried my luck on the Origami puzzle and got an invite, but I am not going for this. I will wait wee bit longer to get a better hardware and a phone that is not another android phone with Ubuntu on it.

Firefox SSL Error

I am currently running Firefox 38.0.5 on my Archlinux. After a recent update I started getting an SSL error on some https websites as below.

Secure Connection Failed

An error occurred during a connection to bancaincasa.sba.bcc.it. SSL received a weak ephemeral Diffie-Hellman key in Server Key Exchange handshake message. (Error code: ssl_error_weak_server_ephemeral_dh_key)

The page you are trying to view cannot be shown because the authenticity of the received data could not be verified.
Please contact the website owners to inform them of this problem.

This is because Firefox now requires 1024bit keys to avoid Logjam vulnerability. I saw a bug report in redhat bugzilla and a discussion in mozillazine on this. There is also a discussion on the Manjaro forum, which also says there is no problem in current windows installations. In short words, the server has a weak key which should be replaced with a stronger one. This is going to be like this from Firefox 39 onwards.

Temperory workarounds include install the Disable DHE extension from mozilla and downgrading openssl and nss on Archlinux. The extension seems to be the better solution at the moment to avoid other possible vulnerabilities by using older openssl. However this is not a safe option in long run. I expect the extension to stop working in FF39 or pretty soon after that.

PhD Thesis Submitted

Finally, my PhD research is completed with the submission of the hardbound copies of the thesis after addressing the comments in the thesis defense. On 4th Feb I collected the hard-bound copies of the PhD thesis and submitted them to the research office at Coleraine. It turned out to be a long day, but I could have managed better if I properly checked the train and bus timings.  Anyway, it was a big relief to get it over with after all these years.

thesis_cover thesis_front_page

More details of my PhD research is available here.

Resetting Default File Manager in Gnome

Ever since I updated to GNOME 3.14, I was facing some problems with the default application for folders. I am using more or less vanilla GNOME, so the default application for folders should be Nautilus. Whenever I open a folder from Nautilus, there are no problems. However, when I open a folder location from another application, say Skype after receiving a file from a friend or from file-roller (Archive Manager) after extracting files, it was getting opened in some other applications (e.g. Anjuta, Audacious etc). This is partly because these applications set themselves capable of opening a folder, I guess, for importing files. You might be able to get rid of this feature for each of these applications, but this was not an ideal solution.

As far as I know, there are two standard options to set default applications in GNOME.

  1. When you browse using Nautilus, right click on a file and go to properties. In the properties dialog window, select the tab “Open With”. In the list of applications shown there select the application you want to use and click on “Set as default”. In future the file (and other files of the same type) will be opened with the new default application.
  2. Open the Settings application and select “Details”. In that you have the option to set “Default Applications” on the left hand side list. When this is selected on the right hand side pane, you can set the default applications for a few generic types (Web, Mail, Calendar, Music, Video and Photos).

Both the above methods cannot be used to set the default application for a directory. Although one may think that it should work in the first option, you don’t get the tab “Open With”, when you access the properties of a directory. So no luck here.

Finally I managed to do this by editing “~/.config/mimeapps.list”. Open this file in your favourite text editor and add/edit the which sets “inode/directory”. To set Nautilus as the default application to for a directory, in the “[Default Applications]” category, add

inode/directory=org.gnome.Nautilus.desktop

and in the “[Added Associations]” category, add

inode/directory=org.gnome.Nautilus.desktop;

An alternate approach is by entering the following in terminal. When you do this, behind the scene, the above steps will be carried out. (source: Arch Wiki)

xdg-mime default org.gnome.Nautilus.desktop inode/directory

PhD Viva Successfully Completed

My PhD viva has been successfully completed on 4th Nov, with minor corrections to be made and submit the corrected thesis in three months. The examiners were Prof. Jeremy L. Wyatt (University of Birmingham) and Prof. Liam McGuire (Ulster University). As expected the viva was a tough one. Nearly three hours discussion on original chapters!!! Many thanks to Prof. Wyatt to read through the whole thesis and having an interesting discussion on it. Hoping to complete the corrections and submit the final version in Jan 2015.

Gnome 3.10 in ArchLinux

Gnome 3.10 has been moved to Extra repository and whoever updated the system recently must have it running. I had done a custom install of the gnome group application the previous time. So I guess I don’t have any technology preview releases of applications like maps, music, photos, notes, weather and clocks. I don’t use boxes and documents either.    The update was done using usual pacman -Syu after disabling all gnome-shell extensions. It went on without any troubles, thanks to the extensive testing done by Arch gnome packagers and users. This time I wanted to help the testing, and I did start a virtual machine for that purpose. Anyway, Virtualbox had many bugs in the meantime and I couldn’t join in the staging/testing stage.

The most noticeable change is in the system status area. The individual controls for volume, power off, networking and bluetooth have been clubbed together and clicking on the top-right corner gives you something like this. I still don’t like it. Far too less system status are available.

01.gnome.3.10.status.area

Probably because of the application grouping I did when upgraded to 3.8, the dashboard apps are grouped into different categories. It can be the default behaviour as well. I am not sure of that at this stage as this was a direct update from 3.8, thanks to Arch’s rolling release model.

02.gnome.3.10.dashboard

Along with the background, now you have option to change the lock screen image as well.

03.gnome.3.10.background.select

The window controls in the title bars are moved to the toolbar. So most of those apps have a close button at the top right in the toolbar, whether the window is maximised or not. There is some space savings too. I like it.

04.gnome.3.10.toolbar.window.controls

 

Other than these other changes seem to be under the hood modifications stabilising the wobbly parts and technology previews introduced in 3.8.