[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: how to prevent dpkg-shlibdeps from Depending on CONFLICTING packages?



Oh, I've resolved this issue by myself, with assistance of
codesearch.d.n, which is really quite a useful site.

:-)

I solved it by this way:

107 override_dh_shlibdeps:
108     dh_shlibdeps \
109         --package=caffe-cpu \
110         --package=libcaffe-cpu0 \
111         --package=libcaffe-cpu-dev \
112         --package=python-caffe-cpu \
113         -- \
114         -xlibcaffe-cuda0
115 ifeq (y, $(flag_build_caffe_cuda))
116     dh_shlibdeps \
117         --package=caffe-cuda \
118         --package=libcaffe-cuda0 \
119         --package=libcaffe-cuda-dev \
120         --package=python-caffe-cuda \
121         -- \
122         -xlibcaffe-cpu0
123 endif

Thank you all.

On Thu, 2015-09-03 at 07:10 +0000, lumin wrote:
> Hi mentors,
> 
> I'm packaging caffe, which is nearly done.
> 
> http://mentors.debian.net/package/caffe
> 
> http://mentors.debian.net/debian/pool/contrib/c/caffe/caffe_0.9999~rc2+git20150902+e8e660d3-1.dsc
> 
> Source caffe are built twice against different configurations,
> and are compiled into 2 groups of binary packages, 4 in each group:
> 
> caffe-cpu          conflict with   caffe-cuda
> libcaffe-cpu0      conflict with   libcaffe-cuda0
> libcaffe-cpu-dev   conflict with   libcaffe-cuda-dev
> python-caffe-cpu   conflict with   python-caffe-cuda
> 
> They are well built on my amd64 build machine, but when I'm testing
> installing them I found this:
> (I stripped some lines)
> 
>  Package: caffe-cpu
>  Source: caffe
>  Depends: libcaffe-cpu0 (= 0.9999~rc2+git20150902+e8e660d3-1), libboost-python1.55.0, libc6 (>= 2.14), libcaffe-cuda0 (>= 0.9999~rc2+git20150902+e8e660d3), libgcc1 (>= 1:4.1.1), libgflags2, libgoogle-glog0, libleveldb1, liblmdb0 (>= 0.9.7), libopencv-core2.4, libopencv-highgui2.4, libopencv-imgproc2.4, libprotobuf9, libpython2.7 (>= 2.7), libstdc++6 (>= 4.9)
>  Conflicts: caffe-cuda
> 
>  Package: caffe-cuda
>  Source: caffe
>  Depends: libcaffe-cuda0 (= 0.9999~rc2+git20150902+e8e660d3-1), libboost-python1.55.0, libc6 (>= 2.14), libcudart6.5 (>= 2.0), libgcc1 (>= 1:4.1.1), libgflags2, libgoogle-glog0, libleveldb1, liblmdb0 (>= 0.9.7), libopencv-core2.4, libopencv-highgui2.4, libopencv-imgproc2.4, libprotobuf9, libpython2.7 (>= 2.7), libstdc++6 (>= 4.9)
>  Conflicts: caffe-cpu
> 
>  Package: libcaffe-cpu-dev
>  Source: caffe
>  Depends: libcaffe-cpu0 (= 0.9999~rc2+git20150902+e8e660d3-1)
>  Conflicts: libcaffe-cuda-dev
> 
>  Package: libcaffe-cpu0
>  Source: caffe
>  Provides: libcaffe.so.0         <-----------------NOTICE-------------
>  Depends: libboost-python1.55.0, libboost-system1.55.0, libboost-thread1.55.0, libc6 (>= 2.14), libgcc1 (>= 1:4.1.1), libgflags2, libgoogle-glog0, libhdf5-8, libleveldb1, liblmdb0 (>= 0.9.7), libopenblas-base, libopencv-core2.4, libopencv-highgui2.4, libopencv-imgproc2.4, libprotobuf9, libpython2.7 (>= 2.7), libstdc++6 (>= 4.9)
>  Conflicts: libcaffe-cuda0
> 
>  Package: libcaffe-cuda-dev
>  Source: caffe
>  Depends: libcaffe-cuda0 (= 0.9999~rc2+git20150902+e8e660d3-1)
>  Conflicts: libcaffe-cpu-dev
> 
>  Package: libcaffe-cuda0
>  Source: caffe
>  Provides: libcaffe.so.0          <----------NOTICE--------------------
>  Depends: libboost-python1.55.0, libboost-system1.55.0, libboost-thread1.55.0, libc6 (>= 2.14), libcublas6.5 (>= 4.0), libcudart6.5 (>= 5.0), libcurand6.5 (>= 3.2), libgcc1 (>= 1:4.1.1), libgflags2, libgoogle-glog0, libhdf5-8, libleveldb1, liblmdb0 (>= 0.9.7), libopenblas-base, libopencv-core2.4, libopencv-highgui2.4, libopencv-imgproc2.4, libprotobuf9, libpython2.7 (>= 2.7), libstdc++6 (>= 4.9)
>  Conflicts: libcaffe-cpu0
> 
>  Package: python-caffe-cpu
>  Source: caffe
>  Depends: python:any (<< 2.8), python:any (>= 2.7.5-5~), libboost-python1.55.0, libc6 (>= 2.4), libcaffe-cuda0 (>= 0.9999~rc2+git20150902+e8e660d3), libgcc1 (>= 1:4.1.1), libgoogle-glog0, libprotobuf9, libpython2.7 (>= 2.7), libstdc++6 (>= 4.2.1), libcaffe-cpu0
>  Conflicts: python-caffe-cuda
> 
>  Package: python-caffe-cuda
>  Source: caffe
>  Depends: python:any (<< 2.8), python:any (>= 2.7.5-5~), libboost-python1.55.0, libc6 (>= 2.4), libcaffe-cpu0 (>= 0.9999~rc2+git20150902+e8e660d3), libgcc1 (>= 1:4.1.1), libgoogle-glog0, libprotobuf9, libpython2.7 (>= 2.7), libstdc++6 (>= 4.2.1), libcaffe-cuda0
>  Conflicts: python-caffe-cpu
> 
> We can see that:
> 
>  * there is no problem at dependency of libcaffe-cpu0 and libcaffe-cuda0
>  * libdev packages have correct and healthy dependency.
>  * caffe-cpu depends on libcaffe-cpu0 (correct), and  libcaffe-cuda0 (wrong), so does caffe-cuda
>  * python packages depends on both libcaffe-cpu0 and libcaffe-cuda0
> 
> However caffe-cpu and caffe-cuda suites are conflicting with each other,
> which means the dependency entry generated by `dpkg-shlibdeps` is wrong.
> 
> I looked up dpkg-shlibdeps(1), but found no option like 'exclude' 'prevent' etc...
> 
> How should I prevent that wrong and needless dependencies ?
> Sed'ing caffe-cpu.substvars, throwing "libcaffe-cuda0*" out ?
> 
> Thanks in advance. :-)
> 

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: