Binary Build With No Binary Artifacts Found

I’ve been attempting to wrangle the openSUSE build service to build kanidm all day. Wow. What a… fun Saturday. Suffice it to say, the documentation’s basically “oh yeah, that thing you do with Debian packaging? Do that, it’ll be fine.”

… Not. Even. Fucking. Close.

Then the Debian docs are “oh yeah do all this”… “oh wait, it’s broken, do something else”… in the SIMPLE PACKAGING TUTORIAL.

simple packaging, my arse

“Should run fine” … it doesn’t. Not even close.

I started getting this nonsense:

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

Searching for the errors resulted in … nothing helpful. Eventually I found a thread on askubuntu.com which gave me a vague sideways hint.

In my debian.rules file I had clean/build/install/binary stages defined and it was breaking things… somehow? I can’t even tell anymore.

I changed my build step to be inside override_dh_auto_build and…. it stopped failing. At least… I think?

Here’s a link to my code changes

code diff

Update: still fucked.

This system is so insanely convoluted and the documentation’s so spread out and doesn’t link to each other and assumes you already know how the Makefiles are supposed to work (I’m not even USING a Makefile! It’s a rust project!) So it only tries to explain that one thing… kinda?

Target system image? What is that even?

Three times in “Chapter 8. More Examples

Debian packaging requires changing this “make install” process to install files to the target system image location instead of the normal location under /usr/local.

NOWHERE IS THE TARGET SYSTEM IMAGE LOCATION SPECIFIED. Where is it? What does that even mean?

“dh_usrlocal <blah> is not a directory "

Turns out, if you try to install things in /usr/local/bin like half the rest of the distro world allows you to, you’ll get something like this bullshit:

dh_usrlocal: debian/kanidm/usr/local/bin/<filename> is not a directory

That’s because it can’t handle the idea that someone might want to install something in /usr/local/ that isn’t some maintainer script thing I can’t find a definition for either, so it just barfs and dies.



#debian #packaging #software #fixes