I'm currently building a large project that contains sources written in few languages such as C,C++ & Python. I recently managed to (painfuly) handle autotools to make a proper install. Next step is to create .deb because our project is meant to run on debian stretch.
I tried several ways to do this but i can't get it working whether the way.
Tree .deb generated by checkinstall :
unpack/ ├── etc │ └── nina │ ├── auto_blacklist.txt │ ├── blacklist.txt │ ├── conf │ ├── keywords.txt │ ├── rubbish_links.txt │ └── whitelist.txt └── usr ├── local │ ├── bin │ │ ├── geckodriver │ │ └── nina │ ├── lib │ │ └── python2.7 │ │ └── dist-packages │ │ ├── nina.py │ │ ├── nina_py_installed_files.txt │ │ ├── Uinput_wrapping_module-2.0.egg-info │ │ └── uinput_wrapping_module.so │ └── share │ └── man │ └── man1 │ └── nina.1.gz └── share └── doc └── nina ├── COPYING ├── doc │ ├── Doxyfile │ └── nina.1 ├── README └── README.md Tree .deb generated by debhelper (v9):
unpack/ ├── etc │ └── nina │ ├── auto_blacklist.txt │ ├── blacklist.txt │ ├── conf │ ├── keywords.txt │ ├── rubbish_links.txt │ └── whitelist.txt └── usr ├── bin │ └── nina ├── lib │ └── python2.7 │ └── dist-packages │ └── nina.py └── share ├── doc │ └── nina │ ├── changelog.Debian.gz │ └── copyright └── man └── man1 └── nina.1.gz As you can see it's not quite the same (sic). I'm more or less understanding what checkinstall does : it runs make install commands and just get files outputs to place it where it's installing on MY machine. debhelper seems to be a way more proper tool here. (installing in /usr/lib and not /usr/local/lib, allow us to sign packages & so on.) and i'd prefer to use it but it's not working as expected to do.
And on huge plus on debhelper way is that it's actually handling dependancies specified in debian/control and stuff. But checkinstall doesn't.
What debhelper is not doing :
Getting some binary (geckodriver) from internet source and placing it in /usr/bin
installing an homemade python module
Those actions are performed in my Makefile.am by overriding install-exec-local: (& respectively uninstall-local:) methods and executing some bash commands.
---
So my question is : how could i keep best parts of those two packaging ways to made it "perfect" ?