linux-automation / usbsdmux

USB-SD-Mux Project - Driver and Documentation
GNU Lesser General Public License v2.1
66 stars 19 forks source link

Add stdeb configuration #37

Closed sephalon closed 2 years ago

sephalon commented 3 years ago

Adds a configuration for stdeb, a Python to Debian source package conversion utility.

stdeb can be used to directly create Debian packages for local installations:

$ python setup.py bdist_deb

However, it can also create a debian source folder that can be checked in and maintained separately:

$ python setup.py debianize

It should be possible to turn this into an upstream Debian package with minimal modifications (e.g. fixing the description, see Lintian output), likely with the help of gbp. Would you consider doing this?

Please be aware of the fact that stdeb currently has a bug preventing the udev rule from ending up in the package. I have filed a pull request to fix this; for now you just might want to take a look at my pre-built debian-source branch.

jluebbe commented 3 years ago

Just adding a debian/ directory to the master branch seems simple and works fine with dpkg-buildpackage. Why would one prefer stdeb?

sephalon commented 3 years ago

stdeb allows one to treat Debian packages as yet another built distribution (like wheel or rpm); therefore some complexities of Debian package creation are hidden from the user and e.g. dependencies are solely maintained in setup.py. This is great for creating packages for local installations.

On the other hand, you can just create the said debian directory with the debianize command, check it in and from then on maintain it manually or keep it in sync with changes in setup.py by repeatedly calling the debianize command. This is a requirement for upstreaming the package.

The proper way to maintain an upstream Debian package however seems to be in using gbp and by following the recommended layout for Git packaging repositories of DEP-14 (e.g. the debian directory would then end up first in branch debian/latest). Arguably, gbp is a bit complex to use if you are not a Debian maintainer (which I am not).

The gist is: To build Debian packages from a single configuration that just work™, stdeb is well-suited for. For upstreaming the package, one cannot get around checking the debian directory in (and modify it at least slightly); however in that case, gbp and DEP-14 is the way to go.

SmithChart commented 2 years ago

Hi sephalon, for now we have decided to go with @jluebbe 's way as merged in #38. Feel free to re-open.