2

So I want to create a .deb file too. I am now blocking at this error:

dh_installdeb
 dpkg-genbuildinfo
dpkg-genbuildinfo: error: binary build with no binary artifacts found; .buildinfo is meaningless

Which I have difficulties finding information for.

Of course, my recipes may be not correct so I'll appreciate any review!


I am building a .deb from sources.

In the debian/ folder I have:

  • compat to 10
  • copyright
  • changelog
  • control
  • rules

My control file:

Source: foo
Maintainer: foo developers
Section: Web Software
Priority: extra
Version: 1.3.1
Standards-Version: 1.3.1
Build-Depends: debhelper (>= 8.0.0)

Package: foo
Architecture: any
Priority: extra
Homepage: http://foo.com
Depends: sbcl (>= 1.3),
         ${shlibs:Depends},
         libwebkit2gtk-4.0-dev (>= 2.24),
         default-dbus-session-bus | dbus-session-bus,
         glib-networking,
         sqlite,
         gsettings-desktop-schemas,
         libfixposix,
         gstreamer,
         gst-plugins-base-1.0,
         xclip,
         ${misc:Depends}
Description: foo
  foo is foo.

My rules file:

#!/usr/bin/make -f
DH_VERBOSE = 1

%:
    dh $@

NAME=foo
VERSION=1.3.1
DESTDIR=$(CURDIR)/debian/$(NAME)/


build:
    dh_testdir
    dh_testroot
    dh_prep
    make all

# I quickly tried this
# override_dh_auto_build:
    # dh_auto_build -- all
# with no apparent effect
# (I want to call `make all` of my Makefile).

binary:
    dh_testdir
    dh_testroot
    dh_installchangelogs
    dh_prep
    echo $(DESTDIR)
    make install DESTDIR=$(DESTDIR)

    dh_installdeb
    # dh_gencontrol
    # dh_md5sums
    # dh_builddeb  # only for binary packages ?

# override_dh_auto_binary:
    # make install

clean:
    dh_testdir
    dh_testroot
    # make clean DESTDIR=$(DESTDIR)
    # dh_clean

(note that I tried to use override_dh_auto_build with no apparent success. I want to call make all of my Makefile).


I run everything with

sudo debuild -us -uc

I can see the compilation steps, until the error message.

I see my binary under debian/foo/usr/local/bin.

There is a directory debian/foo/DEBIAN/, but empty.

Note that when I run the binary target only with

sudo fakeroot debian/rules binary

it finishes alright:

for i in 16 32 128 256 512; do \
    mkdir -p "/home/vince/work/foo/debian/foo//usr/local/share/icons/hicolor/${i}x${i}/apps/" ; \
    cp -f assets/foo_${i}x${i}.png "/home/vince/work/foo/debian/foo//usr/local/share/icons/hicolor/${i}x${i}/apps/foo.png" ; \
    done
make[1]: Leaving directory '/home/vince/work/foo'
dh_installdeb
# dh_gencontrol
# dh_md5sums
# dh_builddeb  # only binary packages ?
# make install

Thanks!


Documentation I'm looking at:

0

I realized defining the build target with its lot of "dh_" rules is not the way to go.

I rewrote it with

override_dh_auto_build:
    $(MAKE) all

I also added

override_dh_usrlocal:
    echo

to avoid a

desktop is not a directory

error which I don't understand, and my .deb builds fine.

I still have a

dpkg-genbuildinfo: error: badly formed line in files list file, line 2

at the end though.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.