hello raúl, i'm not a debian developer myself, so i can't help you with uploading, nor should you rely solely on my opinion here, but i hope these comments are helpful both to you and the developer reviewing your package for upload:
* as your upstream tarball contains the whole python-chardet module, that should be acknowledged in the copyright file; you can quote from python-chardet's. (whether or not to remove the duplicate data from the tarball is a question i've yet to get answered for my opencsg package too; preferably, upstreams would just not do that, but that's their decision). * installing by just copying python files to /usr/share/themole is far from elegant. there is no byte-compilation of files, unless themole gets invoked by root (which in term is a bad thing itself as /usr/share gets written to at run time, and it is not cleaned up on uninstall). a simple --with python3 after "dh $@" won't do by itself either. you could add a rather simple setup.py file to make a bunch of automatisms kick in (or rather not ... until bug #597105 is solved, it needs some kickstarting, but then it works), but the upstream package is not really prepared for that, and the installation would behave badly in some namespaces. ("import exceptions", from any python module, would import thmeole's exceptions. the main script would still be called mole.py, and debian doesn't like that.) see the attached minimal-setuppy.patch, which shows how it's done. (the setup.py is not a particularly good example of how to write one, just a very simple one). the cleaner solution would be to re-organize the source files into a more pythonic structure as described in [1] together with upstream. it's basically moving files around, making sure the import statements still go where they should (as it's python3, you can use relative imports without worrying about compatibility), and slimming down mole.py to the bare essentials (imo, it should be no more than from mole.commandline import run; if __name == "__main__": run() -- more or less). .. [1]: http://as.ynchrono.us/2007/12/filesystem-structure-of-python-project_21.html * there seems to be a -p option that is not documented in the man page. * your package is lintian clean. the only complaint on pedantic (!) level is unversioned-copyright-format-uri for your dep5 format, and afict there is no consensus yet on how this should be done exactly. regards chrysn -- Beware paths which narrow future possibilities. Such paths divert you from infinity into lethal traps. -- Leto Atreides II
diff --git a/debian/control b/debian/control index 6046ead..17fe0a3 100644 --- a/debian/control +++ b/debian/control @@ -2,9 +2,10 @@ Source: themole Section: web Priority: extra Maintainer: Raúl Benencia <rbenen...@linti.unlp.edu.ar> -Build-Depends: debhelper (>= 9.0.0) +Build-Depends: debhelper (>= 9.0.0), python3 Standards-Version: 3.9.2 Homepage: http://themole.nasel.com.ar +X-Python-Version: >= 3.0 Package: themole Architecture: all diff --git a/debian/rules b/debian/rules index ed933e6..65dfb5c 100755 --- a/debian/rules +++ b/debian/rules @@ -2,4 +2,12 @@ #export DH_VERBOSE=1 %: - dh $@ + dh $@ --with python3 + +# everything below this line is only required because of 597105 + +override_dh_auto_clean: + python3 setup.py clean -a + +override_dh_auto_install: + python3 setup.py install --force --root=debian/themole --no-compile -O0 --install-layout=deb diff --git a/debian/themole.install b/debian/themole.install deleted file mode 100644 index a4371ef..0000000 --- a/debian/themole.install +++ /dev/null @@ -1,6 +0,0 @@ -*py usr/share/themole/ -dbmsmoles/* usr/share/themole/dbmsmoles/ -htmlfilters/* usr/share/themole/htmlfilters/ -queryfilters/* usr/share/themole/queryfilters - - diff --git a/debian/themole.links b/debian/themole.links deleted file mode 100644 index dd8d35b..0000000 --- a/debian/themole.links +++ /dev/null @@ -1 +0,0 @@ -usr/share/themole/mole.py /usr/bin/themole diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..fb4efc6 --- /dev/null +++ b/setup.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python3 + +from distutils.core import setup + +setup( + name='themole', + version='0.2.6', + py_modules=[ + 'commands', + 'completion', + 'connection', + 'datadumper', + 'dbdump', + 'domanalyser', + 'exceptions', + 'filters', + 'injectioninspector', + 'output', + 'themole', + 'threader', + 'xmlexporter', + 'dbmsmoles.dbmsmole', + 'dbmsmoles.mysql', + 'dbmsmoles.oracle', + 'dbmsmoles.postgres', + 'dbmsmoles.sqlserver', + 'htmlfilters.base', + 'htmlfilters.genericfilters', + 'queryfilters.base', + 'queryfilters.genericfilters', + ], + scripts=['mole.py'], + )
signature.asc
Description: Digital signature