Why do many GNOME application packages depend on `libunity9`?

When investigating this question, I discovered that many GNOME applications' packages depend on the libunity9 package.

Dependencies

If I try to uninstall libunity9 on Precise, it tries to uninstall lots of GNOME applications:

Uninstall everything

MiJyn said in a comment,

how could the ubuntu developers possibly think that would be a good idea? Ubuntu is starting to be more and more like windows :(

The libunity9 package is described as:

binding to get places into the launcher - shared library

libunity is a shared library to be able to interact with the launcher and add places in Unity environment.

This package contains shared libraries to be used by applications

So obviously it's a component of Unity. It is odd that GNOME applications depend on Unity. Since Unity is an Ubuntu-specific addition, upstream GNOME apps shouldn't be depending on it.

Why these dependencies?


Solution 1:

In the case of Shotwell and Geary (and probably many other apps), libunity support is a compile-time option set when you run ./configure. That way it's enabled when Ubuntu builds it, but other distros can leave it off if they want to.

Unfortunately that means Ubuntu derivatives that don't use libunity either have to rebuild the .deb without Unity support, or use the official Ubuntu-compiled package and accept that it requires an unnecessary package.

Keep in mind that libunity is not Unity. For example, Elementary OS uses libunity for their own custom dock to display badges on top of the icons.

What any of this has to do with making Ubuntu "more and more like windows" is beyond me, particularly since Windows has no package management system.

Solution 2:

$ apt-cache rdepends libunity9
libunity9
Reverse Depends:
  libunity9:i386
  libunity9:i386
  libunity-dev:i386
  xchat-indicator
  wallch
  unity-china-music-scope
  psensor
  liferea
  libunity-tools
  geary
  diodon-plugins
  xchat-gnome-indicator
  unity-webapps-service
  unity-scope-musicstores
  unity-lens-shopping
  unity-lens-music
  unity-lens-gwibber
  unity-lens-files
  unity-lens-applications
  thunderbird-gnome-support
  telepathy-indicator
  shotwell
  nautilus
  libunity-dev
  libunity-dev
  libbrasero-media3-1
  gir1.2-unity-5.0
  evolution-indicator
  empathy
  deja-dup

All of the applications that depend on libunity9 actually use the library for Unity specific integrations like launcher badges, progress bar and urgency animation. If I am not wrong, the dependency on this library is actually Ubuntu specific modification to each of the GNOME application and probably has nothing to do with the upstream versions.