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