Results 1 to 3 of 3

Thread: Lintian keeps saying "empty-binary-package"

  1. #1
    Join Date
    Jul 2014
    Beans
    7

    Lintian keeps saying "empty-binary-package"

    Hello,

    I'm trying to make a deb package out of a QT application that I wrote. Currently, my QT app compiles with no problem by doing "qmake" then "make". So I made a tarball called "SGF-Client.tar.gz", then I typed
    Code:
    bzr dh-make sgf-bose-hubbard-client 1.0 SGF-Client.tar.gz
    and mentioned "single binary". I got the message:
    Code:
    Done. Please edit the files in the debian/ subdirectory now. You should also
    check that the sgf-bose-hubbard-client Makefiles install into $DESTDIR and not in / .
    I don't know how to setup this variable '$DESTDIR' since the Makefile is automatically generated by the command 'qmake' whose result depends on the
    machine on which it is executed. Nevertheless, let me explain what I did afterwards. As suggested in the many tutorials I followed, I went to the
    directory 'sgf-bose-hubbard-client/debian' and did:
    Code:
    rm *.ex *.EX
    rm README*
    Then I edited the remaining files by following the instructions that I got from these tutorials.
    Here is my 'changelog' file:
    Code:
    sgf-bose-hubbard-client (1.0-1) trusty; urgency=low
    
      * Initial release (Closes: #100)
    
     -- Dr. Valy G. Rousseau <Valy.Gator@free.fr>  Thu, 24 Jul 2014 20:40:51 -0500
    Here is my 'control' file:
    Code:
    Source: sgf-bose-hubbard-client
    Section: science
    Priority: optional
    Maintainer: Dr. Valy G. Rousseau <Valy.Gator@free.fr>
    Build-Depends: debhelper (>= 9.0.0), qt5-qmake:amd64, libqt5webkit5-dev, qtlocation5-dev, qtdeclarative5-dev, libqt5core5a:amd64, qtchooser, qtpositioning5-dev, libqt5sensors5-dev
    Standards-Version: 3.9.5
    Homepage: http://www.phys.lsu.edu/~rousseau
    #Vcs-Git: git://git.debian.org/collab-maint/sgf-bose-hubbard-client.git
    #Vcs-Browser: http://git.debian.org/?p=collab-maint/sgf-bose-hubbard-client.git;a=summary
    
    Package: sgf-bose-hubbard-client
    Architecture: any
    Depends: ${shlibs:Depends}, ${misc:Depends}
    Description: SGF Bose-Hubbard client
     This SGF Bose-Hubbard client performs a quantum Monte Carlo simulation of
     the one-dimensional Bose-Hubbard model.
    Then I did
    Code:
    bzr commit -m "Initial commit of Debian packaging."
    and then:
    Code:
    bzr builddeb -- -us -uc
    Here is the output that I got:
    Code:
    Building using working tree
    Building package in normal mode
    Looking for a way to retrieve the upstream tarball
    Upstream tarball already exists in build directory, using that
    Building the package in /home/AngeSurTerre/build-area/sgf-bose-hubbard-client-1.0, using debuild -us -uc
     dpkg-buildpackage -rfakeroot -D -us -uc
    dpkg-buildpackage: source package sgf-bose-hubbard-client
    dpkg-buildpackage: source version 1.0-1
    dpkg-buildpackage: source distribution trusty
    dpkg-buildpackage: source changed by Dr. Valy G. Rousseau <Valy.Gator@free.fr>
     dpkg-source --before-build sgf-bose-hubbard-client-1.0
    dpkg-buildpackage: host architecture amd64
     fakeroot debian/rules clean
    dh clean 
       dh_testdir
       dh_auto_clean
    make[1]: Entering directory `/home/AngeSurTerre/build-area/sgf-bose-hubbard-client-1.0'
    rm -f SGF-Client.o OperatorString.o UdpSocket.o FormatedText.o
    rm -f *~ core *.core
    rm -f SGF-Bose-Hubbard-Client 
    rm -f Makefile
    make[1]: Leaving directory `/home/AngeSurTerre/build-area/sgf-bose-hubbard-client-1.0'
       dh_clean
     dpkg-source -b sgf-bose-hubbard-client-1.0
    dpkg-source: warning: no source format specified in debian/source/format, see dpkg-source(1)
    dpkg-source: info: using source format `1.0'
    dpkg-source: info: building sgf-bose-hubbard-client using existing sgf-bose-hubbard-client_1.0.orig.tar.gz
    dpkg-source: info: building sgf-bose-hubbard-client in sgf-bose-hubbard-client_1.0-1.diff.gz
    dpkg-source: warning: ignoring deletion of file Makefile
    dpkg-source: warning: newly created empty file 'debian/docs' will not be represented in diff
    dpkg-source: info: building sgf-bose-hubbard-client in sgf-bose-hubbard-client_1.0-1.dsc
     debian/rules build
    dh build 
       dh_testdir
       dh_auto_configure
       dh_auto_build
    make[1]: Entering directory `/home/AngeSurTerre/build-area/sgf-bose-hubbard-client-1.0'
    g++ -c -m64 -pipe -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -I. -I/usr/include/qt5 -I/usr/include/qt5/QtWidgets -I/usr/include/qt5/QtNetwork -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I. -o SGF-Client.o SGF-Client.cpp
    g++ -c -m64 -pipe -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -I. -I/usr/include/qt5 -I/usr/include/qt5/QtWidgets -I/usr/include/qt5/QtNetwork -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I. -o OperatorString.o OperatorString.cpp
    g++ -c -m64 -pipe -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -I. -I/usr/include/qt5 -I/usr/include/qt5/QtWidgets -I/usr/include/qt5/QtNetwork -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I. -o UdpSocket.o UdpSocket.cpp
    g++ -c -m64 -pipe -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -I. -I/usr/include/qt5 -I/usr/include/qt5/QtWidgets -I/usr/include/qt5/QtNetwork -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I. -o FormatedText.o FormatedText.cpp
    g++ -m64 -Wl,-Bsymbolic-functions -Wl,-z,relro -o SGF-Bose-Hubbard-Client SGF-Client.o OperatorString.o UdpSocket.o FormatedText.o   -L/usr/X11R6/lib64 -lQt5Widgets -L/usr/lib/x86_64-linux-gnu -lQt5Network -lQt5Gui -lQt5Core -lGL -lpthread 
    make[1]: Leaving directory `/home/AngeSurTerre/build-area/sgf-bose-hubbard-client-1.0'
       dh_auto_test
     fakeroot debian/rules binary
    dh binary 
       dh_testroot
       dh_prep
       dh_auto_install
       dh_installdocs
       dh_installchangelogs
       dh_perl
       dh_link
       dh_compress
       dh_fixperms
       dh_strip
       dh_makeshlibs
       dh_shlibdeps
       dh_installdeb
       dh_gencontrol
    dpkg-gencontrol: warning: Depends field of package sgf-bose-hubbard-client: unknown substitution variable ${shlibs:Depends}
       dh_md5sums
       dh_builddeb
    dpkg-deb: building package `sgf-bose-hubbard-client' in `../sgf-bose-hubbard-client_1.0-1_amd64.deb'.
     dpkg-genchanges  >../sgf-bose-hubbard-client_1.0-1_amd64.changes
    dpkg-genchanges: including full source code in upload
     dpkg-source --after-build sgf-bose-hubbard-client-1.0
    dpkg-buildpackage: full upload (original source is included)
    Now running lintian...
    W: sgf-bose-hubbard-client: empty-binary-package
    Finished running lintian.
    Cleaning build dir: /home/AngeSurTerre/build-area/sgf-bose-hubbard-client-1.0
    So Lintian say that the package is empty, and indeed this is the content that I get:
    Code:
    AngeSurTerre@Hector:~$ lesspipe sgf-bose-hubbard-client_1.0-1_amd64.deb
    sgf-bose-hubbard-client_1.0-1_amd64.deb:
     new debian package, version 2.0.
     size 1670 bytes: control archive=501 bytes.
         374 bytes,    11 lines      control              
         174 bytes,     2 lines      md5sums              
     Package: sgf-bose-hubbard-client
     Version: 1.0-1
     Architecture: amd64
     Maintainer: Dr. Valy G. Rousseau <Valy.Gator@free.fr>
     Installed-Size: 25
     Section: science
     Priority: optional
     Homepage: http://www.phys.lsu.edu/~rousseau
     Description: SGF Bose-Hubbard client
      This SGF Bose-Hubbard client performs a quantum Monte Carlo simulation of
      the one-dimensional Bose-Hubbard model.
    
    *** Contents:
    drwxr-xr-x root/root         0 2014-07-24 20:47 ./
    drwxr-xr-x root/root         0 2014-07-24 20:47 ./usr/
    drwxr-xr-x root/root         0 2014-07-24 20:47 ./usr/share/
    drwxr-xr-x root/root         0 2014-07-24 20:47 ./usr/share/doc/
    drwxr-xr-x root/root         0 2014-07-24 20:47 ./usr/share/doc/sgf-bose-hubbard-client/
    -rw-r--r-- root/root       852 2014-07-24 20:45 ./usr/share/doc/sgf-bose-hubbard-client/copyright
    -rw-r--r-- root/root       165 2014-07-24 20:47 ./usr/share/doc/sgf-bose-hubbard-client/changelog.Debian.gz
    AngeSurTerre@Hector:~$
    Any idea of what I'm doing wrong? Is this related to this '$DESTDIR' variable?

  2. #2
    Join Date
    Jul 2014
    Beans
    7

    Re: Lintian keeps saying "empty-binary-package"

    Nobody can help?

  3. #3
    Join Date
    Oct 2014
    Beans
    13

    Re: Lintian keeps saying "empty-binary-package"

    I suggest replacing dh_auto_install with dh_install. Pass it your build directory (relative), and use –list-missing. i.e.
    Code:
     dh_install --sourcedir=<whatever> --list-missing
    You need to set up a text file called <packagename>.install that consists of lines of source desination pairs, separated by whitespace. They can be single files, wildcard, or whole directories. Destination would typically be /usr/bin. Use the output of --list-missing to get the sources.

    See
    HTML Code:
    http://manpages.ubuntu.com/manpages/trusty/en/man1/dh_install.1.html

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •