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" ?