Hi Vincent, first of all sorry for taking so long to look at this, but the freeze is approaching and time is running out (specially because this bug needs a trip on the new queue for being fixed, and won't be fixed in jessie probably)
>I just looked at the various package in src:boinc (only the debian/control >file, I did not inspect the real packages). If I understand correctly >(correct me if I'm wrong), only the 'client' part of boinc is concerned >by gpu/OpenCL/... >You package it with >- boinc-client that contains all the client software (and that can use > GPU, ... due to the use of dlopen if these additional software are > present) >- boinc-nvidia-cuda that installs dependencies required for boinc-client > to use NVidia cards with CUDA >- boinc-amd-opencl that installs dependencies required for boinc-client > to use AMD cards with OpenCL or Catalyst directly ? exactly. >If this is the case, I would have put 'client' in the last two package names >and make them depends on boinc-client. But if GPU can also be used >by the boinc manager, then I would let these packages as they are. you are completely right, the manager is just a package that allows you to control the client (and various else, but nothing GPU related). >My main "problem" is the target of boinc-amd-opencl. >boinc-nvidia-cuda seems clear: to allow the use of NVidia cards with CUDA. >I do not look a lot in the sources, so I can be wrong, but I think that >other targets of accelerated boinc-client can be : >[A] AMD cards with Catalyst (fglrx drivers directly) >[B] NVidia cards with OpenCL (through NVidia ICD packaged in > nvidia-opencl-icd) >[C] AMD cards with OpenCL (through AMD ICD packaged in amd-opencl-icd) >[D] Intel cards with OpenCL (through Intel ICD not (yet) packaged) >[E] other OpenCL implementations >And I fail to see what of these is targeted by boinc-amd-opencl. >Probably A or B/C/D/E but without requiring to install any specific ICD in >the case of OpenCL > Note that, contrary to NVidia, AMD really maintains its OpenCL drivers. >So, you probably should either split A and OpenCL support but you can >ensure that OpenCL default to the AMD ICD by default. Looking at the code there is a client/gpu_amd.cpp but seems to detect also intel cards so I'll go for something like "opencl" rather than "amd-opencl" >Let's try: >Package: boinc-client >Suggests: boinc-opencl, boinc-nvidia-cuda, boinc-amd-fglrx, ... >=> install software client I did: Suggests: boinc-client-opencl, boinc-client-fglrx, boinc-client-nvidia-cuda >Package: boinc-nvidia-cuda (or boinc-client-nvidia-cuda) >Depends: boinc-client, libcuda1 >Recommends: libcudart5.5 | libcudart6.0 >=> install what is required to run client with NVidia cards > used with Cuda @Package: boinc-client-nvidia-cuda @Architecture: amd64 i386 @Section: contrib/net @Priority: extra @Breaks: boinc-nvidia-cuda @Replaces: boinc-nvidia-cuda @Depends: ${misc:Depends}, boinc-client, libcuda1 | libcudart5.5 | libcudart6.0 | libcudart6.5 (the first for debian, the others for ubuntu) (there is an upcoming 6.5) >Package: boinc-amd-fglrx >Depends: boinc-client, libfglrx-virtual >Recommends: fglrx-driver, libgl1-fglrx-glx-virtual >=> install what is required to run client with AMD cards > used with Catalyst/fglrx just client-fglrx for me (if I understand correctly what you mean) @Package: boinc-client-fglrx @Architecture: amd64 i386 @Section: contrib/net @Priority: extra @Breaks: boinc-nvidia-cuda @Replaces: boinc-nvidia-cuda @Depends: ${misc:Depends}, boinc-client @Recommends: libfglrx | fglrx-updates | fglrx >Package: boinc-opencl >Depends: ocl-icd-libopencl1 | libopencl-1.1-1 >Recommends: amd-opencl-icd | opencl-icd >=> install what is required to run client with OpenCL > recommends an ICD (OpenCL implementation) and ask, > by default, the AMD one BTW I put "any" as architecture, since it seems to be available on almost all archs now @Package: boinc-client-opencl @Architecture: any @Section: contrib/net @Priority: extra @Breaks: boinc-amd-opencl @Replaces: boinc-amd-opencl @Depends: ${misc:Depends}, ocl-icd-libopencl1 | libopencl-1.1-1 @Recommends: amd-opencl-icd | opencl-icd >I know less plain cuda and fglrx than OpenCL. So I'm less >confident for proposed dependencies for these two. >You should not. >nvidia-libopencl1, amd-libopencl1 and ocl-icd-libopencl1 must be >fully interchangeable (for OpenCL 1.1). If you also want OpenCL 1.2 >and/or OpenCL 2.0, then only amd-libopencl1 and ocl-icd-libopencl1 >support them. ocl-icd-libopencl1 should be preferred because its free >(hence the proposed alternative above) wonderful, this is really nice when omething is standard :) >All boinc ? Or only the boinc-nvidia-cuda ? sadly all boinc! >At least, OpenCL interface (provided by either nvidia-libopencl1, >amd-libopencl1 or ocl-icd-libopencl1) is very stable. It is normalized >by the Chronos consortium. wonderful to hear that somebody does a good job on maintaining a stable interface >Put it in Recommends or Suggests. It is the OpenCL implementation >and the 'right' Depends depends on your hardware. So, there is no >way to have apt always selecting the good driver. >Use alternatives. It just that I do not consider them in my first >mail (nor in this one) because, as I do not have ubuntu, I cannot >easily look at package descriptions and dependencies with >apt-cache Hint: sometimes it happens to have necessity to look at such things, there is an easy and great tool helping you to achieve the result: pbuilder-dist utopic create pbuilder-dist utopic login and you can play whatever you want ;) I'm attaching the patch diff --git a/debian/control.in b/debian/control.in index 0a5433d..6ac4c55 100644 --- a/debian/control.in +++ b/debian/control.in @Section: contrib/net @Priority: extra -@Depends: ${misc:Depends}, boinc-client, libcuda1 -@Suggests: libcudart5.5 | libcudart6.0 | libcudart6.5 +@Breaks: boinc-nvidia-cuda +@Replaces: boinc-nvidia-cuda +@Depends: ${misc:Depends}, boinc-client, libcuda1 | libcudart5.5 | libcudart6.0 | libcudart6.5 @Description: metapackage for CUDA-savvy BOINC client and manager @ The Berkeley Open Infrastructure for Network Computing (BOINC) is a @ software platform for distributed computing: several initiatives of @@ -86,6 +87,8 @@ Package: boinc @Architecture: any @Section: contrib/net @Priority: extra +@Breaks: boinc-amd-opencl +@Replaces: boinc-amd-opencl @Depends: ${misc:Depends}, ocl-icd-libopencl1 | libopencl-1.1-1 @Recommends: amd-opencl-icd | opencl-icd @Description: metapackage for AMD/ATI OpenCL-savvy BOINC client and manager @@ -106,8 +109,10 @@ Package: boinc @Architecture: amd64 i386 @Section: contrib/net @Priority: extra -@Depends: ${misc:Depends}, boinc-client, libfglrx-virtual -@Recommends: fglrx-driver, libgl1-fglrx-glx-virtual +@Breaks: boinc-nvidia-cuda +@Replaces: boinc-nvidia-cuda +@Depends: ${misc:Depends}, boinc-client +@Recommends: libfglrx | fglrx-updates | fglrx @Description: metapackage for AMD/ATI fglrx-savvy BOINC client and manager @ The Berkeley Open Infrastructure for Network Computing (BOINC) is a @ software platform for distributed computing: several initiatives of many thanks for helping in fixing this long stading bug!!! cheers, Gianfranco -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org