How to add shared library dependencies to debian/control?












3














I am trying to make a debian package from a Qt application relying on OpenCV.



What I did so far:




  1. I set up an Ubuntu in a Virtualbox

  2. I installed the neccessary software to compile and run the application (Qt related things, ffmpeg, codecs, OpenCV etc.)

  3. I successfully compiled and ran the application

  4. I created a GPG key

  5. With dh_make I created the debian directory in my project dir

  6. I added the packages to debian/control->Build Depends what I got by executing dpkg-depcheck -d qmake

  7. I added to the Depends also what I got by dpkg-depcheck -d SampleApp

  8. I edited the copyright and changelog files

  9. I tried to run dpkg-buildpackage -b


At this point I got the error message:



dpkg-shlibdeps: error: no dependency information found for /usr/local/lib/libopencv_imgcodecs.so.3.1 (used by debian/sampleapp/opt/SampleApp/bin/SampleApp)

dh_shlibdeps: dpkg-shlibdeps -Tdebian/sampleapp.substvars debian/sampleapp/opt/SampleApp/bin/SampleApp returned exit code 2

make: *** [binary] Error 2

dpkg-buildpackage: error: debian/rules binary gave error exit status 2


All these files can be found under /usr/local/lib/. I have read this: https://www.debian.org/doc/debian-policy/ch-sharedlibs.html but I could not find the solution. How could I add these dependencies to the package?



Edit:



Build-Depends field:

Build-Depends: debhelper (>= 8.0.0), libpopt0:i386, libqt5core5a:i386, qtdeclarative5-dev, libglib2.0-0:i386, qtchooser, pkg-config, qt5-qmake:i386, locales

Depends field:

Depends: ${shlibs:Depends}, ${misc:Depends}, udev, libxext6:i386, libxcomposite1:i386, libopencore-amrwb0:i386, libglib2.0-0:i386, libpangocairo-1.0-0:i386, libva-drm1:i386, libxinerama1:i386, libmp3lame0:i386, libnih1:i386, libx11-6:i386, libxcb-render0:i386, libffi6:i386, libgdk-pixbuf2.0-0:i386, libdrm2:i386, libvorbis0a:i386, libfontconfig1:i386, libxrender1:i386, libpango-1.0-0:i386, libdbus-1-3:i386, libpixman-1-0:i386, libopenexr6:i386, libxvidcore4:i386, libjpeg-turbo8:i386, libcgmanager0:i386, libcairo2:i386, libjasper1:i386, libxfixes3:i386, libilmbase6:i386, libtiff5:i386, libusb-1.0-0:i386, libdc1394-22:i386, libxi6:i386, libfreetype6:i386, libxrandr2:i386, libqt5network5:i386, libpng12-0:i386, libthai0:i386, libxcb-shm0:i386, libva1:i386, libvorbisenc2:i386, libtheora0:i386, libharfbuzz0b:i386, libicu52:i386, libjbig0:i386, libopencore-amrnb0:i386, libogg0:i386, libxcursor1:i386, libxcb1:i386, libraw1394-11:i386, libudev1:i386, libnih-dbus1:i386, libqt5core5a:i386, libgraphite2-3:i386, libva-x11-1:i386, libatk1.0-0:i386, libexpat1:i386, libgtk2.0-0:i386, libpangoft2-1.0-0:i386, libdatrie1:i386, libxdmcp6:i386, libvdpau1:i386, libxdamage1:i386, libxau6:i386









share|improve this question





























    3














    I am trying to make a debian package from a Qt application relying on OpenCV.



    What I did so far:




    1. I set up an Ubuntu in a Virtualbox

    2. I installed the neccessary software to compile and run the application (Qt related things, ffmpeg, codecs, OpenCV etc.)

    3. I successfully compiled and ran the application

    4. I created a GPG key

    5. With dh_make I created the debian directory in my project dir

    6. I added the packages to debian/control->Build Depends what I got by executing dpkg-depcheck -d qmake

    7. I added to the Depends also what I got by dpkg-depcheck -d SampleApp

    8. I edited the copyright and changelog files

    9. I tried to run dpkg-buildpackage -b


    At this point I got the error message:



    dpkg-shlibdeps: error: no dependency information found for /usr/local/lib/libopencv_imgcodecs.so.3.1 (used by debian/sampleapp/opt/SampleApp/bin/SampleApp)

    dh_shlibdeps: dpkg-shlibdeps -Tdebian/sampleapp.substvars debian/sampleapp/opt/SampleApp/bin/SampleApp returned exit code 2

    make: *** [binary] Error 2

    dpkg-buildpackage: error: debian/rules binary gave error exit status 2


    All these files can be found under /usr/local/lib/. I have read this: https://www.debian.org/doc/debian-policy/ch-sharedlibs.html but I could not find the solution. How could I add these dependencies to the package?



    Edit:



    Build-Depends field:

    Build-Depends: debhelper (>= 8.0.0), libpopt0:i386, libqt5core5a:i386, qtdeclarative5-dev, libglib2.0-0:i386, qtchooser, pkg-config, qt5-qmake:i386, locales

    Depends field:

    Depends: ${shlibs:Depends}, ${misc:Depends}, udev, libxext6:i386, libxcomposite1:i386, libopencore-amrwb0:i386, libglib2.0-0:i386, libpangocairo-1.0-0:i386, libva-drm1:i386, libxinerama1:i386, libmp3lame0:i386, libnih1:i386, libx11-6:i386, libxcb-render0:i386, libffi6:i386, libgdk-pixbuf2.0-0:i386, libdrm2:i386, libvorbis0a:i386, libfontconfig1:i386, libxrender1:i386, libpango-1.0-0:i386, libdbus-1-3:i386, libpixman-1-0:i386, libopenexr6:i386, libxvidcore4:i386, libjpeg-turbo8:i386, libcgmanager0:i386, libcairo2:i386, libjasper1:i386, libxfixes3:i386, libilmbase6:i386, libtiff5:i386, libusb-1.0-0:i386, libdc1394-22:i386, libxi6:i386, libfreetype6:i386, libxrandr2:i386, libqt5network5:i386, libpng12-0:i386, libthai0:i386, libxcb-shm0:i386, libva1:i386, libvorbisenc2:i386, libtheora0:i386, libharfbuzz0b:i386, libicu52:i386, libjbig0:i386, libopencore-amrnb0:i386, libogg0:i386, libxcursor1:i386, libxcb1:i386, libraw1394-11:i386, libudev1:i386, libnih-dbus1:i386, libqt5core5a:i386, libgraphite2-3:i386, libva-x11-1:i386, libatk1.0-0:i386, libexpat1:i386, libgtk2.0-0:i386, libpangoft2-1.0-0:i386, libdatrie1:i386, libxdmcp6:i386, libvdpau1:i386, libxdamage1:i386, libxau6:i386









    share|improve this question



























      3












      3








      3







      I am trying to make a debian package from a Qt application relying on OpenCV.



      What I did so far:




      1. I set up an Ubuntu in a Virtualbox

      2. I installed the neccessary software to compile and run the application (Qt related things, ffmpeg, codecs, OpenCV etc.)

      3. I successfully compiled and ran the application

      4. I created a GPG key

      5. With dh_make I created the debian directory in my project dir

      6. I added the packages to debian/control->Build Depends what I got by executing dpkg-depcheck -d qmake

      7. I added to the Depends also what I got by dpkg-depcheck -d SampleApp

      8. I edited the copyright and changelog files

      9. I tried to run dpkg-buildpackage -b


      At this point I got the error message:



      dpkg-shlibdeps: error: no dependency information found for /usr/local/lib/libopencv_imgcodecs.so.3.1 (used by debian/sampleapp/opt/SampleApp/bin/SampleApp)

      dh_shlibdeps: dpkg-shlibdeps -Tdebian/sampleapp.substvars debian/sampleapp/opt/SampleApp/bin/SampleApp returned exit code 2

      make: *** [binary] Error 2

      dpkg-buildpackage: error: debian/rules binary gave error exit status 2


      All these files can be found under /usr/local/lib/. I have read this: https://www.debian.org/doc/debian-policy/ch-sharedlibs.html but I could not find the solution. How could I add these dependencies to the package?



      Edit:



      Build-Depends field:

      Build-Depends: debhelper (>= 8.0.0), libpopt0:i386, libqt5core5a:i386, qtdeclarative5-dev, libglib2.0-0:i386, qtchooser, pkg-config, qt5-qmake:i386, locales

      Depends field:

      Depends: ${shlibs:Depends}, ${misc:Depends}, udev, libxext6:i386, libxcomposite1:i386, libopencore-amrwb0:i386, libglib2.0-0:i386, libpangocairo-1.0-0:i386, libva-drm1:i386, libxinerama1:i386, libmp3lame0:i386, libnih1:i386, libx11-6:i386, libxcb-render0:i386, libffi6:i386, libgdk-pixbuf2.0-0:i386, libdrm2:i386, libvorbis0a:i386, libfontconfig1:i386, libxrender1:i386, libpango-1.0-0:i386, libdbus-1-3:i386, libpixman-1-0:i386, libopenexr6:i386, libxvidcore4:i386, libjpeg-turbo8:i386, libcgmanager0:i386, libcairo2:i386, libjasper1:i386, libxfixes3:i386, libilmbase6:i386, libtiff5:i386, libusb-1.0-0:i386, libdc1394-22:i386, libxi6:i386, libfreetype6:i386, libxrandr2:i386, libqt5network5:i386, libpng12-0:i386, libthai0:i386, libxcb-shm0:i386, libva1:i386, libvorbisenc2:i386, libtheora0:i386, libharfbuzz0b:i386, libicu52:i386, libjbig0:i386, libopencore-amrnb0:i386, libogg0:i386, libxcursor1:i386, libxcb1:i386, libraw1394-11:i386, libudev1:i386, libnih-dbus1:i386, libqt5core5a:i386, libgraphite2-3:i386, libva-x11-1:i386, libatk1.0-0:i386, libexpat1:i386, libgtk2.0-0:i386, libpangoft2-1.0-0:i386, libdatrie1:i386, libxdmcp6:i386, libvdpau1:i386, libxdamage1:i386, libxau6:i386









      share|improve this question















      I am trying to make a debian package from a Qt application relying on OpenCV.



      What I did so far:




      1. I set up an Ubuntu in a Virtualbox

      2. I installed the neccessary software to compile and run the application (Qt related things, ffmpeg, codecs, OpenCV etc.)

      3. I successfully compiled and ran the application

      4. I created a GPG key

      5. With dh_make I created the debian directory in my project dir

      6. I added the packages to debian/control->Build Depends what I got by executing dpkg-depcheck -d qmake

      7. I added to the Depends also what I got by dpkg-depcheck -d SampleApp

      8. I edited the copyright and changelog files

      9. I tried to run dpkg-buildpackage -b


      At this point I got the error message:



      dpkg-shlibdeps: error: no dependency information found for /usr/local/lib/libopencv_imgcodecs.so.3.1 (used by debian/sampleapp/opt/SampleApp/bin/SampleApp)

      dh_shlibdeps: dpkg-shlibdeps -Tdebian/sampleapp.substvars debian/sampleapp/opt/SampleApp/bin/SampleApp returned exit code 2

      make: *** [binary] Error 2

      dpkg-buildpackage: error: debian/rules binary gave error exit status 2


      All these files can be found under /usr/local/lib/. I have read this: https://www.debian.org/doc/debian-policy/ch-sharedlibs.html but I could not find the solution. How could I add these dependencies to the package?



      Edit:



      Build-Depends field:

      Build-Depends: debhelper (>= 8.0.0), libpopt0:i386, libqt5core5a:i386, qtdeclarative5-dev, libglib2.0-0:i386, qtchooser, pkg-config, qt5-qmake:i386, locales

      Depends field:

      Depends: ${shlibs:Depends}, ${misc:Depends}, udev, libxext6:i386, libxcomposite1:i386, libopencore-amrwb0:i386, libglib2.0-0:i386, libpangocairo-1.0-0:i386, libva-drm1:i386, libxinerama1:i386, libmp3lame0:i386, libnih1:i386, libx11-6:i386, libxcb-render0:i386, libffi6:i386, libgdk-pixbuf2.0-0:i386, libdrm2:i386, libvorbis0a:i386, libfontconfig1:i386, libxrender1:i386, libpango-1.0-0:i386, libdbus-1-3:i386, libpixman-1-0:i386, libopenexr6:i386, libxvidcore4:i386, libjpeg-turbo8:i386, libcgmanager0:i386, libcairo2:i386, libjasper1:i386, libxfixes3:i386, libilmbase6:i386, libtiff5:i386, libusb-1.0-0:i386, libdc1394-22:i386, libxi6:i386, libfreetype6:i386, libxrandr2:i386, libqt5network5:i386, libpng12-0:i386, libthai0:i386, libxcb-shm0:i386, libva1:i386, libvorbisenc2:i386, libtheora0:i386, libharfbuzz0b:i386, libicu52:i386, libjbig0:i386, libopencore-amrnb0:i386, libogg0:i386, libxcursor1:i386, libxcb1:i386, libraw1394-11:i386, libudev1:i386, libnih-dbus1:i386, libqt5core5a:i386, libgraphite2-3:i386, libva-x11-1:i386, libatk1.0-0:i386, libexpat1:i386, libgtk2.0-0:i386, libpangoft2-1.0-0:i386, libdatrie1:i386, libxdmcp6:i386, libvdpau1:i386, libxdamage1:i386, libxau6:i386






      debian packaging qt shared-library opencv






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 2 days ago









      GAD3R

      25.6k1750107




      25.6k1750107










      asked Dec 4 '16 at 3:03









      John WilliamsJohn Williams

      183




      183






















          1 Answer
          1






          active

          oldest

          votes


















          3














          If the shared library you depend upon is installed in /usr/local/lib rather than /usr/lib (or similar) then I suspect it's not part of any package managed by the dpkg package manager. dh_shlibdeps wants to build a complete list of all of the things that your new package will have to depend on, but in this case one of those things seems to exist outside of any package so it can't be listed.



          You should install OpenCV from a Debian package (plus its corresponding -dev package, so you can build against it), not from a local installation.






          share|improve this answer





















            Your Answer








            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "106"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f327889%2fhow-to-add-shared-library-dependencies-to-debian-control%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            3














            If the shared library you depend upon is installed in /usr/local/lib rather than /usr/lib (or similar) then I suspect it's not part of any package managed by the dpkg package manager. dh_shlibdeps wants to build a complete list of all of the things that your new package will have to depend on, but in this case one of those things seems to exist outside of any package so it can't be listed.



            You should install OpenCV from a Debian package (plus its corresponding -dev package, so you can build against it), not from a local installation.






            share|improve this answer


























              3














              If the shared library you depend upon is installed in /usr/local/lib rather than /usr/lib (or similar) then I suspect it's not part of any package managed by the dpkg package manager. dh_shlibdeps wants to build a complete list of all of the things that your new package will have to depend on, but in this case one of those things seems to exist outside of any package so it can't be listed.



              You should install OpenCV from a Debian package (plus its corresponding -dev package, so you can build against it), not from a local installation.






              share|improve this answer
























                3












                3








                3






                If the shared library you depend upon is installed in /usr/local/lib rather than /usr/lib (or similar) then I suspect it's not part of any package managed by the dpkg package manager. dh_shlibdeps wants to build a complete list of all of the things that your new package will have to depend on, but in this case one of those things seems to exist outside of any package so it can't be listed.



                You should install OpenCV from a Debian package (plus its corresponding -dev package, so you can build against it), not from a local installation.






                share|improve this answer












                If the shared library you depend upon is installed in /usr/local/lib rather than /usr/lib (or similar) then I suspect it's not part of any package managed by the dpkg package manager. dh_shlibdeps wants to build a complete list of all of the things that your new package will have to depend on, but in this case one of those things seems to exist outside of any package so it can't be listed.



                You should install OpenCV from a Debian package (plus its corresponding -dev package, so you can build against it), not from a local installation.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Dec 4 '16 at 3:57









                CeladaCelada

                30.7k46484




                30.7k46484






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Unix & Linux Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.





                    Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                    Please pay close attention to the following guidance:


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f327889%2fhow-to-add-shared-library-dependencies-to-debian-control%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    How to reconfigure Docker Trusted Registry 2.x.x to use CEPH FS mount instead of NFS and other traditional...

                    is 'sed' thread safe

                    How to make a Squid Proxy server?