wine1.6-i386 recommends of ocl-icd-libopencl1 is making it uninstallable on nvidia due to conflict with libopencl1

Bug #1313123 reported by Frank Denissen
150
This bug affects 30 people
Affects Status Importance Assigned to Milestone
wine1.6 (Ubuntu)
Fix Released
High
Scott Ritchie

Bug Description

As nouveau driver blocks by GPU, I have installed the propriatery driver nvidia-libopencl1-304. This prevents me from installing wine because this only allows ocl-icd-libopencl1 as dependency and not libopencl1.

On the ubuntu website however, I find in the description of wine1.6-i386:

ocl-icd-libopencl1 (>= 1.0)
    Generic OpenCL ICD Loader
of libopencl1
    virtueel pakket geboden door nvidia-libopencl1-304, nvidia-libopencl1-304-updates, nvidia-libopencl1-331, nvidia-libopencl1-331-updates, ocl-icd-libopencl1

So I assume the dependency to libopencl1 was deleted by accident.

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

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

Changed in wine1.6 (Ubuntu):
status: New → Confirmed
Revision history for this message
unrud (unrud) wrote :

The following dependency of the packages "wine1.6-i386" and "wine1.6-amd64" is causing the problem:

libopencl-1.1-1
    virtual package provided by ocl-icd-libopencl1

unrud (unrud)
tags: added: packaging
Revision history for this message
unrud (unrud) wrote :

I've filled a bug against nvidia-graphics-drivers because I think the root of the problem is there:

https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-304/+bug/1317528

Revision history for this message
Frank Denissen (aankoopdenissen) wrote :

I don't see how making nvidia-graphics-drivers-304 implement libopencl-1.1-1 and libopencl-1.2-1 could solve this problem as the wine package has a dependency to ocl-icd-libopencl1 and not to libopencl-1.1-1 or libopencl-1.2-1. nvidia-graphics-drivers-304 implements libopencl1.

Revision history for this message
unrud (unrud) wrote :

The wine1.6-i386 (and wine1.6-amd64) packages have dependencies to libopencl1 and libopencl-1.1-1.

From http://packages.ubuntu.com/trusty/wine1.6-i386:
* libopencl-1.1-1
          virtual package provided by ocl-icd-libopencl1
* ocl-icd-libopencl1 (>= 1.0)
          Generic OpenCL ICD Loader
      or libopencl1
          virtual package provided by nvidia-libopencl1-304, ...

The second dependency is fulfilled by either ocl-icd-libopencl1 or libopencl1.

Revision history for this message
Frank Denissen (aankoopdenissen) wrote :

This is indeed what the website mentions, but when I download the source of the wine package, I find in the debian/control file only a dependency to ocl-icd-libopencl1 and not to libopencl1.

apt-get source wine1.6-i386=1:1.6.2-0ubuntu4
cd wine1.6-1.6.2/debian
grep libopencl control
               ocl-icd-libopencl1,
            ocl-icd-libopencl1,
            ocl-icd-libopencl1,

I would have expected to find ocl-icd-libopencl1|libopencl1

Revision history for this message
unrud (unrud) wrote :

$ apt-cache show wine1.6-i386 | grep ^Depends
Depends: ..., libopencl-1.1-1, ..., ocl-icd-libopencl1 (>= 1.0) | libopencl1, ...

The website is right and if you take a look at the file wine1.6-1.6.2/debian/control you will see that ocl-icd-libopencl1 is only in the Build-Depends section. The dependencies of the final package are generated automatically by the build system so you don't find them in the control file. You can find description in section 8.6.1 on this webpage: https://www.debian.org/doc/debian-policy/ch-sharedlibs.html

Revision history for this message
Frank Denissen (aankoopdenissen) wrote :

Indeed I was wrong. I tried to rebuild the nvidia package to verify if extending Provides with libopencl-1.1-1 would solve all problems. I failed, so I suppose we have to wait for the owner of the nvidia package to react ...

Revision history for this message
Frank Denissen (aankoopdenissen) wrote :

I tried to find a temporary solution by creating a private package that provides libopencl-1.1-1 instead of the nvidia package, but I still can't install wine1.6-i386 without remove the nvidia package:

apt-cache show fden-nvidia | grep Provides
Provides: libopencl-1.1-1

frank@panter:/mnt/packet/linux/source$ sudo apt-get install wine1.6-i386
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd
De status informatie wordt gelezen... Klaar
De volgende extra pakketten zullen geïnstalleerd worden:
  ocl-icd-libopencl1 wine1.6
Voorgestelde pakketten:
  dosbox:any
De volgende pakketten zullen VERWIJDERD worden:
  nvidia-libopencl1-304
De volgende NIEUWE pakketten zullen geïnstalleerd worden:
  ocl-icd-libopencl1 wine1.6 wine1.6-i386
0 pakketten opgewaardeerd, 3 pakketten nieuw geïnstalleerd, 1 te verwijderen en 0 niet opgewaardeerd.
Er moeten 16,6 MB aan archieven opgehaald worden.
Door deze operatie zal er 121 MB extra schijfruimte gebruikt worden.
Wilt u doorgaan? [J/n] n

Revision history for this message
unrud (unrud) wrote :

I've added libopencl-1.1-1 and libopencl-1.2-1 to the nvidia-libopencl1-... packet and it was not possible to install wine1.6 afterwards.

$ apt-cache show wine1.6-i386 | grep ^Recommends
Recommends: ..., ocl-icd-libopencl1, ...

apt-get treats recommends the same as dependencies. I also tried to install it with --no-install-recommends but it still didn't work.

Revision history for this message
Frank Denissen (aankoopdenissen) wrote :

Does it work when "Recommends" is replaced by "Suggests" or when ocl-icd-libopencl1 is replaced by ocl-icd-libopencl1|libopencl1 ?

I assume it is always necessary that the nvidia package provides at least libopencl-1.1-1.

Revision history for this message
Scott Ritchie (scottritchie) wrote :

wine1.6-i386 has the following depend:
ocl-icd-libopencl1 (>= 1.0) | libopencl1

It has the following recommend:
ocl-icd-libopencl1

The recommend was placed there manually by me. It should be removed since it's duplicitous with the above.

The depend is automatically placed there by the substitution variable ${shlibs:Depends}, which is calculated at package build time.

Wine being uninstallable on nvidia due to the RECOMMENDS above feels wrong to me. I think I ran into that issue earlier but I can't find the bug now. It's odd that a recommends conflict would render a package flat-out uninstallable, as missing recommends are just silently ignored.

Anyway I've removed the issue in the wine1.7 ppa packages (that I just introduced it in), and will look to removing it in Trusty via SRU.

summary: - wine1.6-i386 is only dependent on ocl-icd-libopencl1 and not also on
- libopencl1
+ wine1.6-i386 recommends of ocl-icd-libopencl1 is making it uninstallable
+ on nvidia due to conflict with libopencl1
Changed in wine1.6 (Ubuntu):
assignee: nobody → Scott Ritchie (scottritchie)
importance: Undecided → High
status: Confirmed → Triaged
Revision history for this message
Scott Ritchie (scottritchie) wrote :

Does the new wine1.7 package in the Ubuntu Wine PPA have the same problem? I added ocl-icd-libopencl1 to the build-depends there. Wine1.7 now gets the depends: libopencl-1.1-1, ocl-icd-libopencl1 (>= 1.0) | libopencl1

But it doesn't have the Recommends on ocl-icd-libopencl1 that may have been adding to the problem.

But I do think the issue is either in nvidia drivers (should provide libopencl-1.1-1 the same way ocl-icd-libopencl1 does, or in debhelper (shlibdeps should not generate a dependency on purely virtual package libopencl-1.1-1 when it also generates ocl-icd-libopencl1 | libopencl1)

Revision history for this message
Bart Willemsen (b-willemsen8) wrote :

I'll try that one tonight. I did saw some posts from users on AskUbuntu that said that it doesn't happen with Wine1.7 however.. anyway, will post results when I have them!

Revision history for this message
Scott Ritchie (scottritchie) wrote :

Yes, prior to the most recent wine1.7 package was immune due to not building with opencl headers (and thus not having support entirely) -- the most recent one should actually have support if available, however it may come at the cost of a similar issue.

Revision history for this message
pelm (pelle-ekh) wrote :

This is really confusing! I have Nvidia drivers on 14.04 and 'nvidia-libopencl1-304-update' installed. Trying to upgrade the wine1.7 from the Ubuntu Wine PPA uninstalls the Wine-1.7 packages. When i trying to reinstall Wine-1.7 it removes the 'nvidia-libopencl1-304-update' package and installs 'ocl-icd-libopencl1' package. Is that the right behaviour? And will it have some negative impact on Nvidia proprietary driver to uninstall that Nvidia package? Regards.

Revision history for this message
Ashley Bone (ashley-w-bone-deactivatedaccount) wrote :

I can confirm I'm seeing the same problem with the current wine 1.7 package from the Ubuntu Wine PPA and the nvidia 331 opencl packages.

Revision history for this message
Brian Hicks (bhicks1000) wrote :

Same problem with 14.04 LTS; I can't install any version of wine without removal of nvidia-libopencl1-331-updates. I haven't tried uninstalling nvidia-libopencl1-331-updates, instead waiting to see if a there is a fix. Thanks.

Revision history for this message
Bart Willemsen (b-willemsen8) wrote :

Scott: I tried adding the Ubuntu Wine PPA (with sudo add-apt-repository ppa:ubuntu-wine/ppa) and installing wine1.7 from the terminal. This one also still requires me to uninstall nvidia-libopencl1-331-updates

Revision history for this message
Bart Willemsen (b-willemsen8) wrote :

I don't know if it helps, but someone posted this workaround (found here in another bug report: https://bugs.launchpad.net/ubuntu/+source/ocl-icd/+bug/1247736/comments/7):

sudo apt-get install nvidia-cuda toolkit
sudo apt-get install ocl-icd-opencl-dev (this will remove nvidia-libopencl1-* and nvidia-opencl-dev)
sudo apt-get install wine1.6

This will work around the bug and allows installing Wine without asking for the removal, but it also keeps the file in question at /usr/lib/*/libOpenCL.so

Revision history for this message
Richard Hansen (rhansen) wrote :

> Does the new wine1.7 package in the Ubuntu Wine PPA have the same problem?

Yes, both 1:1.7.19-0ubuntu2~trusty1 and 1:1.7.19-0ubuntu2~trusty2 have this problem (the version uploaded to the PPA ~16 hours ago didn't fix it for me).

If I uninstall nvidia-libopencl1-331-updates-331.38-0ubuntu7 and instead let it install ocl-icd-libopencl1 then I can install the latest wine from the PPA.

Brian Hicks (bhicks1000)
no longer affects: wine1.7 (Ubuntu)
Revision history for this message
Brian Hicks (bhicks1000) wrote :

Sorry - I'm uncertain how I generated the 'no longer affects" wine1.7' message above. I tried to add a bug specifically for 1.7 as this dependency still prevents installation of wine 1.7.

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

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

Changed in wine1.7 (Ubuntu):
status: New → Confirmed
Revision history for this message
Mark Fraser (launchpad-mfraz) wrote :

Thanks Bart, that workaround has allowed me to install Wine1.7 again.

BTW the first line should read:
sudo apt-get install nvidia-cuda-toolkit

Revision history for this message
pelm (pelle-ekh) wrote :

Thanks! But the solution that Bart Willemsen stated seems to require that i uninstall nvidia-libopencl1-304-updates and i don't want that. I want wine to install without changing anything. As before. Isn't that possible with the new wine-release? Regards.

Revision history for this message
Brian Hicks (bhicks1000) wrote :

I notice that there are some updates related to this problem for the video driver package (331-updates) for the utopic distribution, but I don't see any update that allow clean installation for 14.04 LTS trusty.

Is Bart's fix the final answer for now, or will the dependencies for 'wine' be updated to permit clean installation?

Thank you for your help!

Revision history for this message
Scott Ritchie (scottritchie) wrote :

There is no (easy) way for me to fix Wine without completely disabling opencl in it. The problem really is in the NVidia packages. If someone could test the update in bug 1317528

Revision history for this message
Brian Hicks (bhicks1000) wrote :

I saw this earlier, but it look like the update only applied to 'utopic' and not 'trusty'. I'm still somewhat of a novice, so I wasn't sure how to test the fix. I don't see any option to update/upgrade. Any advice? Thanks!

Revision history for this message
Brian Hicks (bhicks1000) wrote :

I'm assuming that they want to test this fix in 'utopic' before including it in a driver for an LTS.

Revision history for this message
Graham Inggs (ginggs) wrote :

There is a version of nvidia-graphics-drivers-331 for Trusty in my PPA which should allow wine to install, see LP: #1247736 comment #16

Revision history for this message
Brian Hicks (bhicks1000) wrote :

---> Is there any tangible disadvantage to running the workaround discussed in #20?

It looked like the dependency was removed from Utopic in comment #12, but 'wine' is still uninstallable in Trusty. I've never heard of 'OpenCL' and have to wonder how adverse the affect on 'Wine' would be if it didn't support it.

I am running the proprietary NVIDIA 'nvidia-331-updates' under 14.04TS. I've tried to follow the discourse regarding changes to the video driver, but I'm unable to apply the patch myself (the Ubuntu wiki entry regarding this is gone) and am worried I'll demolish my installation messing with the driver. I'm just getting started.

Revision history for this message
Bart Willemsen (b-willemsen8) wrote :

I am going to install that latest update for the Trusty package tonight. I see that is already applied for Utopic however. Is there a change that this fix will find its way down to Trusty too if it is considered stable?

Revision history for this message
Graham Inggs (ginggs) wrote :

Brian Hicks wrote:
> Is there any tangible disadvantage to running the workaround discussed in #20?

No, there should be no difference between the workaround and the behaviour of the updated Nvidia driver packages, 331.38-0ubuntu8 in Utopic and 331.38-0ubuntu7.1 in Trusty (when it lands). The workaround causes nvidia-libopencl1-* (Nvidia's OpenCL ICD loader) to be removed and replaced by ocl-icd-libopencl1 (the generic OpenCL ICD loader). The updated Nvidia drivers have their dependencies fixed so the package manager is able to figure this out on its own.

Wine and all other packages using OpenCL in the Ubuntu repository were compiled against ocl-icd-libopencl1 and thus depend on it in order to run. There can only be one OpenCL ICD loader installed on your system, so removing nvidia-libopencl1-* and installing ocl-icd-libopencl1 is the correct action. One can, however, have multiple OpenCL ICDs installed, of which nvidia-opencl-icd-* is one.

Bart Willemsen wrote:
> Is there a change that this fix will find its way down to Trusty too if it is considered stable?

Yes, LP: 1247736 has already entered the Stable Release Update (SRU) process. If this process is successful the fix will be made available in trusty-updates.

Revision history for this message
Scott Ritchie (scottritchie) wrote :

I've uploaded a fix to remove the spurious recommends in the wine1.6 package to Utopic. Sometimes mere recommends like this can render a package uninstallable, especially in the multi-arch case.

If someone could confirm that it in fact makes a difference on utopic then we'll need to SRU wine1.6 as well.

Revision history for this message
Brian Hicks (bhicks1000) wrote :

If the wine1.7 development release for Trusty was patched, I could test this and report back. I don't have a Utopic installation.

Thank you for your help!

Revision history for this message
dino99 (9d9) wrote :

@Scott

from post #13 above: wine1.7 depends on ocl-icd-libopencl1 (>= 1.0) | libopencl1

Utopic archive does not have such 'libopencl1', so it depends on ocl-icd-libopencl1 (no other choice)

For the coming kernel 3.16 i need to install nvidia-340 driver but get then the ocl-icd-libopencl1 conflict: https://bugs.launchpad.net/ubuntu/+source/ocl-icd/+bug/1247736 (did the workaround post #7)
but without succeeding.

I think you should update the possible dependencies, for example propose:

ocl-icd-libopencl1 (>= 1.0) | ocl-icd-opencl-dev

or simply propose ocl-icd-libopencl1 as 'suggests' instead of 'depends'

Note: hopes to get that change made for the waited 1.7.20 packages

Revision history for this message
dino99 (9d9) wrote :

#37 feedback on Utopic i386 + wine1.7 + nvidia-340

I've found the solution to bypass the conflict reported above:

First, from synaptic:
- purge all the nvidia, cuda, ubuntu-drivers-common installed packages (and theirs dependencies)
- set synaptic's preferences to 'install without "recommends"'
- install nvidia-340, nvidia-settings
- install wine1.7

Then the issue is clearly about nvidia-libopencl1-340 which wants to uninstall wine, so opencl cant be installed due to the wine's opencl conflict.

Revision history for this message
Graham Inggs (ginggs) wrote :

@dino99: I don't see an nvidia-340 package in the official repositories. Where did you get it? Does it include the fixes for LP: #1247736 that are in nvidia-331 and nvidia-331-updates?

Revision history for this message
dino99 (9d9) wrote :

@Graham
to get the 340 driver i'm loading it from pp:xorg-edgers/ppa

Revision history for this message
dino99 (9d9) wrote :

Also reported comments about the ocl-icd ubuntu packaging which seems the most awaited fix about that issue.
https://bugs.launchpad.net/ubuntu/+source/fglrx-driver/+bug/1328542

Revision history for this message
Graham Inggs (ginggs) wrote :

I suggest you report it to the xorg-edgers as well.

Revision history for this message
Graham Inggs (ginggs) wrote :

@dino99: The version of nvidia-graphics-drivers-340 published in https://launchpad.net/~xorg-edgers/+archive/ubuntu/ppa on 2014-07-09 includes the fixes from 331.38-0ubuntu8 in Utopic.

Revision history for this message
Scott Ritchie (scottritchie) wrote :

I'm marking this a dupe of 1247736 but adding a wine1.7 task there (since I need to re-add the recommends after the SRU goest through)

Revision history for this message
Sam Segers (sam-sgrs) wrote :

This is also affects fglrx

Revision history for this message
Mich@l (michaltalar) wrote :

Hi there, I can't manage to install wine 1.6 or wine 1.7 on my Ubuntu 14.04.
Here's my log (in polish)
@:~$ sudo apt-get install wine1.7 winetricks
[sudo] password for acer:
Czytanie list pakietów... Gotowe
Budowanie drzewa zależności
Odczyt informacji o stanie... Gotowe
Nie udało się zainstalować niektórych pakietów. Może to oznaczać,
że zażądano niemożliwej sytuacji lub użyto dystrybucji niestabilnej,
w której niektóre pakiety nie zostały jeszcze utworzone lub przeniesione
z katalogu Incoming ("Przychodzące").
Następujące informacje mogą pomóc rozwiązać sytuację:

Następujące pakiety mają niespełnione zależności:
 wine1.7 : Wymaga: wine1.7-i386 (= 1:1.7.26-0ubuntu1~ppa1)
E: Nie udało się naprawić problemów, zatrzymano uszkodzone pakiety.
@:~$
Waiting for you support.
Cheers!

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

This bug was fixed in the package wine1.6 - 1:1.6.2-0ubuntu6

---------------
wine1.6 (1:1.6.2-0ubuntu6) utopic; urgency=medium

  * Remove experimental pthread patch (causes regressions)
    - http://bugs.winehq.org/show_bug.cgi?id=36772
    - http://bugs.winehq.org/show_bug.cgi?id=36744
  * Actually apply the extraneously large buffer revert patch
    - Was somehow turned off in previous update
    - Reduces audio latency; upstream only increased buffer for non-linux drivers
  * Build-depend on ocl-icd-opencl-dev instead of its deps (LP: #1371196)
    - Remove direct build-depend on ocl-icd-libopencl1 and opencl-headers
  * Add Arabic and Japanese translations for the .desktop files (LP: #1320290)
    - Thank you Akira Nakagawa
  * Remove ocl-icd-libopencl1 from recommends (LP: #1313123, #1376587)
    - Spurious as there is an automatic dependency on it or its substitutes
    - Might fix some installability problems on proprietary drivers
  * Exclude libpulse0 from auto-dependency generation (LP: #1226314)
    - It correctly remains a recommends, as it is possible to run Wine without pulseaudio
    - debian/rules: exclude winepulse.drv.so from parsing by dh_shlibdeps
  * Import patch to mostly fix wine icon appearing instead of app icon (LP: #1103833)
    - Patch courtesy Michael Müller, possibly to be replaced by later patches
  * Downgrade winbind from Recommends to Suggests (LP: #302148)
 -- Scott Ritchie <email address hidden> Mon, 06 Oct 2014 14:22:27 -0700

Changed in wine1.6 (Ubuntu):
status: Triaged → Fix Released
Revision history for this message
Bruno Nova (brunonova) wrote :

This is marked as a duplicate of Bug #1247736, but that bug doesn't list "wine" as affected (Scott Ritchie, haven't you done that yet?).
This issue is still not fixed in Trusty!

Revision history for this message
Bruno Nova (brunonova) wrote :

Ok, this issue is being worked in Bug #1320217 (why is this not marked as a duplicate of that one?).

Revision history for this message
Scott Ritchie (scottritchie) wrote :

The reason for the duplicate confusion was that this was originally a series of concurrent issues, some of which have been fixed. There are now separate bugs for the remaining issues (backport of wine1.6 to trusty, backport of nvidia-304 to trusty, fix and update and backport of fglrx)

no longer affects: wine1.7 (Ubuntu)
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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