apt-get install nvidia-331 triggers 691 packages to be installed

Bug #1401390 reported by linas
78
This bug affects 15 people
Affects Status Importance Assigned to Milestone
hwloc (Ubuntu)
Fix Released
High
Alberto Milone
Trusty
Fix Released
High
Alberto Milone
Utopic
Fix Released
High
Alberto Milone
nvidia-graphics-drivers-331 (Ubuntu)
Invalid
High
Unassigned
Trusty
Invalid
High
Unassigned
Utopic
Invalid
High
Unassigned

Bug Description

SRU request:

Please accept hwloc into trusty-proposed.

[Rationale]
The libhwloc-plugins package need to depend on ocl-icd-libopencl1 (>= 1.0) | libopencl1 rather than just on libopencl1, since the nvidia driver provides libopencl1 too now.

[Impact]
Without a rebuild, the libhwloc-plugins package will pull in the nvidia driver and a massive amount of packages which are not needed (or even recommended). ocl-icd-libopencl1 is the only recommended loader, as NVIDIA's only work with the nvidia driver.

[Test Case]
After installing the update, users should be able to install libhwloc-plugins without having nvidia-331 installed as a dependency

[Regression Potential]
Low. This is a mere no change rebuild. We only need to make sure that all the newly generated dependencies do not affect the system.

----------------------------

There appears to be a package dependency cascade that occurred approx 12 hours ago. Attempting to install libboost-all-dev causes this: "0 upgraded, 791 newly installed, 0 to remove and 3 not upgraded."

The 791 packages include much of the gnome and kde desktops, a web browser, some chat clients, all of X11 .. which is crazy for a package needed to compile C++ programs for a server.

I traced the dependencies: its a rather long, boring chain ... it depends on stuff which depends on libboost-mpi1.54.0 which causes 694 packages to be installed

Tracing through eventually leads to libhwloc5 which seems like it should be harmless .. but that leads to libopencl1 which is a virtual package. If you recall, opencl is a GPU general-purpose-computing thing, so, unsurprisingly, we see a dependence on nvidia:

Package libopencl1 is a virtual package provided by:
  nvidia-libopencl1-331-updates 331.113-0ubuntu0.0.4
  nvidia-libopencl1-331 331.113-0ubuntu0.0.4
  nvidia-libopencl1-304-updates 304.125-0ubuntu0.0.1
  nvidia-libopencl1-304 304.125-0ubuntu0.0.1
  ocl-icd-libopencl1 2.1.3-4

Next: apt-get install nvidia-libopencl1-331-updates results in: 0 upgraded, 681 newly installed, 0 to remove and 3 not upgraded.

Tracing through that, we get to nvidia-331-updates which requires nvidia-prime which causes this:
0 upgraded, 696 newly installed, 0 to remove and 3 not upgraded.

This is on a server that doesn't have a graphics card ..

It appears that nvidia-prime is the prime suspect, here: somehow, libhwloc5 , through libopencl, requies nvidia drivers to be installed, but the nvidia drivers require a package that cause the gnome+kde desktops to be installed ...

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in ubuntu:
status: New → Confirmed
Revision history for this message
linas (linasvepstas) wrote :

I forgot to mention: this was not a problem 12 hours ago, and started happening about 4 hours ago. Something was pushed to the Ubuntu trusty amd64 repositories that triggered this.

I also forgot to mention: its basically making a lot of docker image builds fail, because out of all those dependencies, it tires to install both hunspell and aspell, and there is some conflict with dictionaries-common and so apt-get install fails

Again: this is trusty on amd64

Revision history for this message
Tully (tully.foote) wrote :

As a very short term work around you can use apt-get install --no-install-recommends until this is fixed.

Revision history for this message
linas (linasvepstas) wrote :

and dictinaries-common is failing like this:

Setting up dictionaries-common (1.20.5) ...

update-default-wordlist: Question empty but elements installed for class "wordlist"
  dictionaries-common/default-wordlist: return code: "0", value: ""
  Choices: , Manual symlink setting
  shared/packages-wordlist: return code: "10" owners/error: "shared/packages-wordlist doesn't exist"
  Installed elements: american (American English)

  Please see "/usr/share/doc/dictionaries-common/README.problems", section
  "Debconf database corruption" for recovery info.

update-default-wordlist: Selected wordlist ""
does not correspond to any installed package in the system
and no alternative wordlist could be selected.
dpkg: error processing package dictionaries-common (--configure):
 subprocess installed post-installation script returned error exit status 255
dpkg: dependency problems prevent configuration of aspell:
 aspell depends on dictionaries-common (>> 0.40); however:
  Package dictionaries-common is not configured yet.

dpkg: error processing package aspell (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of aspell-en:
 aspell-en depends on aspell (>= 0.60.3-2); however:
  Package aspell is not configured yet.
 aspell-en depends on dictionaries-common (>= 0.49.2); however:
  Package dictionaries-common is not configured yet.

dpkg: error processing package aspell-en (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of hunspell-en-us:
 hunspell-en-us depends on dictionaries-common (>= 0.10); however:
  Package dictionaries-common is not configured yet.

dpkg: error processing package hunspell-en-us (--configure):
 dependency problems - leaving unconfigured
Setting up libhunspell-1.3-0:amd64 (1.3.2-6ubuntu2) ...
dpkg: dependency problems prevent configuration of libenchant1c2a:amd64:
 libenchant1c2a:amd64 depends on aspell-en | myspell-dictionary | aspell-dictionary | ispell-dictionary | hunspell-dictionary; however:
  Package aspell-en is not configured yet.
  Package myspell-dictionary is not installed.
  Package aspell-dictionary is not installed.
  Package aspell-en which provides aspell-dictionary is not configured yet.
  Package ispell-dictionary is not installed.
  Package hunspell-dictionary is not installed.
  Package hunspell-en-us which provides hunspell-dictionary is not configured yet.

dpkg: error processing package libenchant1c2a:amd64 (--configure):
 dependency problems - leaving unconfigured

------
So you can see the snowball here: putting ROS (robot operating system) into a docker file causes apt-get install to fail because dictionaries-common is somehow broken, because the gnome desktop was being installed, because nvidia-prime needs a gnome desktop, because libhwloc5 needs nvidia, because the C++ boost developemnt libraries need it, because parts of ROS are written in C++. Woooo hooo

Revision history for this message
Tully (tully.foote) wrote :

it looks like nvidia 331 came out about 12 hours ago: https://launchpad.net/ubuntu/+source/nvidia-graphics-drivers-331

The small change that I see has large consequences is that nvidia-libopencl1-304 's dependency on libgcc1 changed in the 331 version to nvidia-331-uvm whch depends on the nvidia driver.

http://packages.ubuntu.com/trusty/nvidia-libopencl1-304 vs http://packages.ubuntu.com/trusty/nvidia-libopencl1-331

Revision history for this message
Ubuntu Foundations Team Bug Bot (crichton) wrote :

Thank you for taking the time to report this bug and helping to make Ubuntu better. It seems that your bug report is not filed about a specific source package though, rather it is just filed against Ubuntu in general. It is important that bug reports be filed about source packages so that people interested in the package can find the bugs about it. You can find some hints about determining what package your bug might be about at https://wiki.ubuntu.com/Bugs/FindRightPackage. You might also ask for help in the #ubuntu-bugs irc channel on Freenode.

To change the source package that this bug is filed about visit https://bugs.launchpad.net/ubuntu/+bug/1401390/+editstatus and add the package name in the text box next to the word Package.

[This is an automated message. I apologize if it reached you inappropriately; please just reply to this message indicating so.]

tags: added: bot-comment
affects: ubuntu → nvidia-graphics-drivers-331 (Ubuntu)
Changed in nvidia-graphics-drivers-331 (Ubuntu):
importance: Undecided → High
tags: added: regression-update
Revision history for this message
Alberto Milone (albertomilone) wrote :

The dependency of nvidia-libopencl1-331 on nvidia-331-uvm (which in turn depends on nvidia-331) is correct. The problem here is that nvidia-libopencl1-331 shouldn't have been installed in the first place.

I think we need to fix the problem in either libhwloc5 or in one of its dependencies, as it should really depend on ocl-icd-libopencl1 rather than on the libopencl1 virtual package.

Revision history for this message
linas (linasvepstas) wrote :

Yes, I guess I agree w.r.t libhwloc -- but note also that the nvidia drivers depend on nvidia-prime, which depends on (lightdm or gdm or kdm) which is what causes the desktops to get pulled in. So I'm thinking that the drivrs should not depend on nvidia-prime. There are plausible scenarios, e.g. in docker images, to not want an entire desktop installed, just to do some graphics.

Revision history for this message
Alberto Milone (albertomilone) wrote :

nvidia-331 recommends nvidia-prime, which is needed in order to get hybrid graphics to work.

This said, I've just found out that simply rebuilding hwloc generates a libhwloc-plugins package with the correct dependencies:

Depends: libc6 (>= 2.4), libltdl7 (>= 2.4.2), libopencl-1.1-1, libpciaccess0, libxml2 (>= 2.7.4), ocl-icd-libopencl1 (>= 1.0) | libopencl1, libhwloc5

This will make sure that libhwloc-plugins does the right thing by pulling in ocl-icd-libopencl1.

Changed in hwloc (Ubuntu):
status: New → In Progress
importance: Undecided → High
assignee: nobody → Alberto Milone (albertomilone)
Changed in nvidia-graphics-drivers-331 (Ubuntu):
status: Confirmed → Invalid
Revision history for this message
Alberto Milone (albertomilone) wrote :

hwloc (1.8-1ubuntu1.1) is now waiting for approval in trusty-proposed

description: updated
Changed in hwloc (Ubuntu):
status: In Progress → Fix Committed
Changed in nvidia-graphics-drivers-331 (Ubuntu Trusty):
status: New → Invalid
Changed in hwloc (Ubuntu Trusty):
status: New → Triaged
importance: Undecided → High
Changed in hwloc (Ubuntu Utopic):
status: New → Triaged
importance: Undecided → High
Changed in nvidia-graphics-drivers-331 (Ubuntu Utopic):
status: New → Invalid
Changed in hwloc (Ubuntu Trusty):
assignee: nobody → Alberto Milone (albertomilone)
Changed in hwloc (Ubuntu Utopic):
assignee: nobody → Alberto Milone (albertomilone)
Revision history for this message
Alberto Milone (albertomilone) wrote :

the new sources (and versions) are: hwloc 1.8-1ubuntu1.14.04.1 for trusty, and hwloc 1.8-1ubuntu1.14.10.1 for utopic

Revision history for this message
Brian Murray (brian-murray) wrote : Please test proposed package

Hello linas, or anyone else affected,

Accepted hwloc into utopic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/hwloc/1.8-1ubuntu1.14.10.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in hwloc (Ubuntu Utopic):
status: Triaged → Fix Committed
tags: added: verification-needed
Changed in hwloc (Ubuntu Trusty):
status: Triaged → Fix Committed
Revision history for this message
Brian Murray (brian-murray) wrote :

Hello linas, or anyone else affected,

Accepted hwloc into trusty-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/hwloc/1.8-1ubuntu1.14.04.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Revision history for this message
Tully (tully.foote) wrote :

I have tested using trusty-proposed sources and the problem is fixed.

I asked for apt-get install libhwloc-dev and it installed only 36 dependencies including ocl-icd-libopencl1 and not the nvidia packages. The versions I ended up with are:

# dpkg -l | grep hwloc
ii libhwloc-dev:amd64 1.8-1ubuntu1.14.04.1 amd64 Hierarchical view of the machine - static libs and headers
ii libhwloc-plugins 1.8-1ubuntu1.14.04.1 amd64 Hierarchical view of the machine - plugins
ii libhwloc5:amd64 1.8-1ubuntu1.14.04.1 amd64 Hierarchical view of the machine - shared libs

Tully (tully.foote)
tags: added: verification-done
removed: verification-needed
tags: added: verification-done-trusty verification-failed
removed: verification-done
tags: added: verification-needed
removed: verification-failed
Revision history for this message
Tully (tully.foote) wrote :
Download full text (3.8 KiB)

I tested with utopic-proposed as well.

installing libhwloc-dev installed 19 total packages from a fresh docker image.

These were the packages:
# dpkg -l | grep hwloc
ii libhwloc-dev:amd64 1.8-1ubuntu1.14.10.1 amd64 Hierarchical view of the machine - static libs and headers
ii libhwloc-plugins 1.8-1ubuntu1.14.10.1 amd64 Hierarchical view of the machine - plugins
ii libhwloc5:amd64 1.8-1ubuntu1.14.10.1 amd64 Hierarchical view of the machine - shared libs

New dependency tree
# apt-get install libhwloc-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  libc-dev-bin libc6 libc6-dev libhwloc-plugins libhwloc5 libltdl7 libnuma1 libpci-dev libpci3 libpciaccess0 libxml2 libxml2-dev linux-libc-dev manpages
  manpages-dev ocl-icd-libopencl1 sgml-base xml-core zlib1g-dev
Suggested packages:
  glibc-doc libhwloc-contrib-plugins pciutils pkg-config man-browser opencl-icd sgml-base-doc debhelper
The following NEW packages will be installed:
  libc-dev-bin libc6-dev libhwloc-dev libhwloc-plugins libhwloc5 libltdl7 libnuma1 libpci-dev libpci3 libpciaccess0 libxml2 libxml2-dev linux-libc-dev
  manpages manpages-dev ocl-icd-libopencl1 sgml-base xml-core zlib1g-dev
The following packages will be upgraded:
  libc6
1 upgraded, 19 newly installed, 0 to remove and 24 not upgraded.
Need to get 11.8 MB of archives.
After this operation, 27.0 MB of additional disk space will be used.

I tested a baseline with the original and the problem was not as large as on trusty.

# dpkg -l | grep hwloc
ii libhwloc-dev:amd64 1.8-1ubuntu1 amd64 Hierarchical view of the machine - static libs and headers
ii libhwloc-plugins 1.8-1ubuntu1 amd64 Hierarchical view of the machine - plugins
ii libhwloc5:amd64 1.8-1ubuntu1 amd64 Hierarchical view of the machine - shared libs

Old dependency tree:

# apt-get install libhwloc-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  binutils cpp cpp-4.9 dkms fakeroot fglrx-updates-core gcc gcc-4.9 lib32gcc1
  libasan1 libatomic1 libc-dev-bin libc6 libc6-dev libc6-i386 libcilkrts5
  libcloog-isl4 libfakeroot libgcc-4.9-dev libgomp1 libhwloc-plugins libhwloc5
  libisl10 libitm1 liblsan0 libltdl7 libmpc3 libmpfr4 libnuma1 libpci-dev
  libpci3 libpciaccess0 libquadmath0 libtsan0 libubsan0 libxml2 libxml2-dev
  linux-libc-dev make manpages manpages-dev patch sgml-base xml-core
  zlib1g-dev
Suggested packages:
  binutils-doc cpp-doc gcc-4.9-locales dpkg-dev debhelper gcc-multilib
  autoconf automake libtool flex bison gdb gcc-doc gcc-4.9-multilib
  gcc-4.9-doc libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan1-dbg
  liblsan0-dbg libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libquadmath0-dbg
  glibc-doc libhwloc-contrib-plugins pciutils pkg-config make-doc man-browser
  ed diffutils-doc sgml-base-doc
The following NEW packages will be installed:
  binutils cpp cpp-4.9 dk...

Read more...

tags: added: verification-done verification-done-utopic
removed: verification-needed
Revision history for this message
linas (linasvepstas) wrote :

Tested on utopic, seems to be fine now.

Revision history for this message
linas (linasvepstas) wrote :

Tested on trusty-proposed, it now works for me.

Revision history for this message
Brian Murray (brian-murray) wrote : Update Released

The verification of the Stable Release Update for hwloc has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package hwloc - 1.8-1ubuntu1.14.04.1

---------------
hwloc (1.8-1ubuntu1.14.04.1) trusty-proposed; urgency=medium

  * No change rebuild to regenerate the dependencies of
    libhwloc-plugins (LP: #1401390).
 -- Alberto Milone <email address hidden> Thu, 11 Dec 2014 18:45:16 +0100

Changed in hwloc (Ubuntu Trusty):
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package hwloc - 1.8-1ubuntu1.14.10.1

---------------
hwloc (1.8-1ubuntu1.14.10.1) utopic-proposed; urgency=medium

  * No change rebuild to regenerate the dependencies of
    libhwloc-plugins (LP: #1401390).
 -- Alberto Milone <email address hidden> Thu, 11 Dec 2014 18:48:08 +0100

Changed in hwloc (Ubuntu Utopic):
status: Fix Committed → Fix Released
Revision history for this message
linas (linasvepstas) wrote :

Thank you! The code in the main repos works well now.

Revision history for this message
Miguel Prada (miguel-prada-sarasola) wrote :

On my machine, which does have a Nvidia graphics card, the libhwloc-plugins package is kept back as well. Forcing (simulated) installation yields the following output:

user@host:~$ sudo apt-get -s install libhwloc-plugins
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  ocl-icd-libopencl1
The following packages will be REMOVED:
  nvidia-libopencl1-331-updates
The following NEW packages will be installed:
  ocl-icd-libopencl1
The following packages will be upgraded:
  libhwloc-plugins
1 upgraded, 1 newly installed, 1 to remove and 0 not upgraded.
Inst libhwloc-plugins [1.8-1ubuntu1] (1.8-1ubuntu1.14.04.1 Ubuntu:14.04/trusty-updates [amd64]) []
Remv nvidia-libopencl1-331-updates [331.113-0ubuntu0.0.4] [nvidia-opencl-icd-331-updates:amd64 ]
Inst ocl-icd-libopencl1 (2.1.3-4 Ubuntu:14.04/trusty [amd64])
Conf ocl-icd-libopencl1 (2.1.3-4 Ubuntu:14.04/trusty [amd64])
Conf libhwloc-plugins (1.8-1ubuntu1.14.04.1 Ubuntu:14.04/trusty-updates [amd64])
user@host:~$

Is this as expected? Should nvidia-libopencl1-331-updates be replaced with ocl-icd-libopencl1 even on nvidia equipped machines?

Revision history for this message
Alberto Salvia Novella (es20490446e) wrote :

Bug #1403008 can be a duplicate.

Changed in nvidia-graphics-drivers-331 (Ubuntu Trusty):
importance: Undecided → High
Changed in nvidia-graphics-drivers-331 (Ubuntu Utopic):
importance: Undecided → High
Revision history for this message
Jeff Lambert (jl-newtraxtech) wrote :

I am getting the same output as Miguel Prada on 14.04 LTS

Revision history for this message
ex-oficio (wilkinson-luke) wrote :

I am also getting identical output as Miguel Prada on 14.04 LTS

Revision history for this message
somekool (somekool) wrote :

this is a major annoyance on Kubuntu 15.04

nvidia-prime comes with lightdm which in turns brings lots of GTK deps and brakes SDDM

might be nvidia-prime itself that brakes SDDM actually

I had to switch back to nouveau driver, under which I can't play steam, but at least I have a working desktop

please remove nvidia-prime and lightdm from nvidia dependency tree

I tried nvidia-340 and -346

Graham Inggs (ginggs)
Changed in hwloc (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.