[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: RFS: themole

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

* 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

  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

  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.


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 <rbenencia@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
+	python3 setup.py clean -a
+	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
+        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'],
+        )

Attachment: signature.asc
Description: Digital signature

Reply to: