# libopenni-sensor-primesense0 conflict

We've run into a debian packages conflict on Ubuntu 14.04 with Indigo the past week, concerning libopenni-sensor-primesense0 package and the libopenni-sensor-pointclouds0 package. We worked around it by forcing the install of the /etc/openni/GlobalDefaults.ini from libopenni-sensor-primesense0, but there's definitely an upstream conflict between libopenni-sensor-primesense0 package and the libopenni-sensor-pointclouds0 package that needs to be resolved.

We did some digging and it looks like the /etc/openni/GlobalDefaults.ini file one of those packages installs has windows-based line endings while the other has the correct Unix line endings. Thus they conflict when you try to install both. Getting ROS setup on 14.04 is going to cause pain for anyone until that gets resolved.

(reposted from an email by Andy Sayler)

edit retag close merge delete

Sort by » oldest newest most voted

Update: This should be fixed by removing the masking package version from the PCL ppa: https://github.com/ros/rosdistro/issu...

Those two libraries do conflict on purpose. They both provide the same functionality, "libopenni_sensor" and conflict with other providers of "libopenni_sensor"

I don't believe you're supposed to be able to install them side by side.

Edit: It's not just that one file. That one file is just the first conflicting file.

If you install ros-indigo-openni-camera it does seem to lock up as described by @asayler That is a bad failure of apt

To recover you can do:

 apt-get -o Dpkg::Options::="--force-overwrite" -f install


Where you'll see that the two packages completely clobber each other.

Unpacking libopenni-sensor-primesense0 (5.1.0.41-3+trusty1) ...
dpkg: warning: overriding problem because --force enabled:
dpkg: warning: trying to overwrite '/etc/openni/GlobalDefaults.ini', which is also in package libopenni-sensor-pointclouds0 5.1.0.41.1-1
dpkg: warning: overriding problem because --force enabled:
dpkg: warning: trying to overwrite '/usr/lib/libXnDeviceSensorV2.so.0', which is also in package libopenni-sensor-pointclouds0 5.1.0.41.1-1
dpkg: warning: overriding problem because --force enabled:
dpkg: warning: trying to overwrite '/usr/lib/libXnDeviceFile.so.0', which is also in package libopenni-sensor-pointclouds0 5.1.0.41.1-1
dpkg: warning: overriding problem because --force enabled:
dpkg: warning: trying to overwrite '/usr/lib/libXnFormats.so.0', which is also in package libopenni-sensor-pointclouds0 5.1.0.41.1-1
dpkg: warning: overriding problem because --force enabled:
dpkg: warning: trying to overwrite '/usr/lib/libXnDDK.so.0', which is also in package libopenni-sensor-pointclouds0 5.1.0.41.1-1
dpkg: warning: overriding problem because --force enabled:
dpkg: warning: trying to overwrite '/usr/lib/libXnCore.so.0', which is also in package libopenni-sensor-pointclouds0 5.1.0.41.1-1
dpkg: warning: overriding problem because --force enabled:
dpkg: warning: trying to overwrite '/usr/lib/libopenni-sensor-primesense0/XnSensorServer', which is also in package libopenni-sensor-pointclouds0 5.1.0.41.1-1
Setting up libssl1.0.0:amd64 (1.0.1f-1ubuntu2.5) ...


And it will continue installing.

I retried with --no-install--recommends and it worked installed successfully.

This is probably worth filing upstream as a bug for libopenni developers to possibly remove the recommends. As the ros package can't do much more than declare it's dependencies, which are correct.

It's also a bug in apt that it doesn't catch the declared conflict.

Another work around is to install libopenni-sensor-primesense0 before or explicitly:

root@4529e16a9555:/# sudo apt-get install libopenni-sensor-primesense0 ros-indigo-openni-camera
Building dependency tree
The following extra packages will be installed:
libopenni-dev libopenni-sensor-primesense-dev libopenni0 openni-utils
Suggested packages:
openni-doc
The following NEW packages will be installed:
libopenni-dev libopenni-sensor-primesense-dev libopenni-sensor-primesense0 libopenni0 openni-utils ros-indigo-openni-camera
0 upgraded, 6 newly installed, 0 to remove and 41 not upgraded.
Need to get 1161 kB of archives.
After this operation, 6668 kB of additional disk space will be used.
Do you want to continue? [Y/n] n ...
more

That may be the case, but surely there is a way to define this in the package metadata which doesn't break apt-get. Also, windows line endings in one of the two doesn't make any sense.

( 2014-09-26 18:22:33 -0500 )edit

apt-get is not broken, it's correctly refusing to install the two things declared as conflicting. This is an Ubuntu/Debian level package. If you want you can file tickets against libopenni on launchpad, but these packages seem to be clearly defined as conflicting.

( 2014-09-26 18:52:43 -0500 )edit

@asayler why do we need both debs? Are they both in ros-indigo-desktop-full? If it is because of Baxter packages, I'd say the Baxter packages are just broken.

( 2014-09-26 22:50:11 -0500 )edit

ros-indigo-desktop-full installs fine. The issue occurs when installing ros-indigo-openni-launch, which installs ros-indigo-openni-camera, which triggers the error above. ros-indigo-openni-launch was requested by Mike for 3302, I assume to satisfy your build directions on github.

( 2014-09-26 23:13:36 -0500 )edit

Both are not required. ros-indigo-openni-camera will work fine as long as you explicitly ask for libopenni-sensor-primesense0 as well. apt is resolving the first of the ORd recommendations if unspecified, despite libopenni-sensor-primesense0 being required by upstream dependencies and conflicting.

( 2014-09-29 00:14:00 -0500 )edit

The issue seems to be related to the ros-indigo-openni-camera package:

    $apt-cache depends ros-indigo-openni-camera ros-indigo-openni-camera Depends: libboost-system1.54.0 Depends: libboost-thread1.54.0 Depends: libc6 Depends: libconsole-bridge0.2 Depends: libgcc1 Depends: liblog4cxx10 Depends: libopenni0 Depends: libstdc++6 Depends: libusb-1.0-0 Depends: liblog4cxx10-dev Depends: libopenni-dev Depends: libopenni-sensor-primesense-dev Depends: libusb-1.0-0-dev Depends: ros-indigo-camera-info-manager Depends: ros-indigo-dynamic-reconfigure Depends: ros-indigo-image-transport Depends: ros-indigo-nodelet Depends: ros-indigo-roscpp Depends: ros-indigo-sensor-msgs Conflicts: ros-indigo-openni-camera:i386  As you can see that package depends on both libopenni-dev (which depends on libopenni0) as well as libopenni-sensor-primesense-dev. But libopenni0 lists both libopenni-sensor-primesense and libopenni-sensor-pointclouds0 as recommended packages (one or the other), installing libopenni-sensor-pointclouds0 as the default. This leads to the conflict. The reason apt can't resolve this is that the libopenni-sensor-primesense packages doesn't list the corresponding libopenni-sensor-pointclouds packages as conflicts $ apt-cache depends libopenni-sensor-primesense0
libopenni-sensor-primesense0
Depends: libc6
Depends: libgcc1
Depends: libjpeg8
Depends: libopenni0
Depends: libstdc++6
Depends: openni-utils
Conflicts: libopenni-sensor-primesense0:i386
$apt-cache depends libopenni-sensor-primesense-dev libopenni-sensor-primesense-dev Depends: libopenni-sensor-primesense0 Conflicts: libopenni-sensor-primesense-dev:i386  Likewise, the libopenni-sensor-pointclouds packages only list libopenni-sensor as a conflict, not libopenni-sensor-primesense-dev: $ apt-cache depends libopenni-sensor-pointclouds0
libopenni-sensor-pointclouds0
Depends: libc6
Depends: libgcc1
Depends: libjpeg8
Depends: libopenni0
Depends: libstdc++6
Depends: openni-utils
Conflicts: <libopenni-sensor>
Conflicts: <libopenni-sensor:i386>
Replaces: <libopenni-sensor>
libopenni-sensor-pointclouds0
Replaces: <libopenni-sensor:i386>
libopenni-sensor-pointclouds0:i386
Conflicts: libopenni-sensor-pointclouds0:i386
\$ apt-cache depends libopenni-sensor-pointclouds-dev
libopenni-sensor-pointclouds-dev
Depends: libopenni-sensor-pointclouds0
Conflicts: <libopenni-sensor-dev>
Conflicts: <libopenni-sensor-dev:i386>
Replaces: <libopenni-sensor-dev>
libopenni-sensor-pointclouds-dev
Replaces: <libopenni-sensor-dev:i386>
libopenni-sensor-pointclouds-dev:i386
Conflicts: libopenni-sensor-pointclouds-dev:i386


Thus, the two package don't actually conflict as far as apt is concerned, which is why apt doesn't realize there is an issue until it goes to try to overwrite the existing files at runtime.

Thus, this seems to be a bug in the conflict list for both the libopenni-sensor backend packages on Ubuntu 14.04. Apt itself is working fine.

You can see others reporting the same issue at http://askubuntu.com/questions/502903... and at https://github.com/ros/rosdistro/issu... .

more