Skip to content

Commit

Permalink
add package with debug symbols
Browse files Browse the repository at this point in the history
  • Loading branch information
kalikaneko committed Feb 4, 2015
1 parent 2d164a5 commit c155277
Show file tree
Hide file tree
Showing 5 changed files with 53 additions and 7 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
amalgamation
build
*.pyc
.pybuild/
dist/
MANIFEST
debian/python-sqlcipher
debian/python-sqlcipher-dbg
debian/*.log
debian/files
debian/*.substvars
Expand Down
13 changes: 12 additions & 1 deletion debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Maintainer: Ben Carrillo <ben@futeisha.org>
Section: python
Priority: optional
Build-Depends: python-all-dev (>= 2.6.6-3), libsqlcipher-dev (>=2.2.1-2~), debhelper (>= 9)
Standards-Version: 3.9.4
Standards-Version: 3.9.6
Uploaders: Micah Anderson <micah@debian.org>
X-Python-Version: >= 2.5

Expand All @@ -17,3 +17,14 @@ Description: DB-API 2.0 interface for SQLCIPHER 3.x
database engine. It is almost fully compliant with the Python database API
version 2.0. At the same time, it also exposes the unique features of
SQLCipher.

Package: python-sqlcipher-dbg
Section: debug
Priority: extra
Architecture: any
Depends: python-dbg, python-sqlcipher, libsqlcipher0 (>=2.2.1-2),
${misc:Depends}, ${python:Depends}, ${shlibs:Depends}
Description: DB-API 2.0 interface for SQLCIPHER 3.x
Python interface to SQLCipher (debug extension)
.
This package contains the extensions built for the python debug interpreter.
17 changes: 16 additions & 1 deletion debian/rules
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,31 @@
# Prevent setuptools/distribute from accessing the internet.
export http_proxy = http://127.0.0.1:9

PACKAGE=python-sqlcipher

%:
dh $@ --with python2 --buildsystem=python_distutils

override_dh_auto_build:
python$* setup.py build_sqlcipher
python$* setup.py build_with_system_sqlcipher
python$* setup.py build_py

export DEBUG_MODE=1 && export DEB_CFLAGS_MAINT_APPEND=-O0 && python$*-dbg setup.py build_with_system_sqlcipher
export DEBUG_MODE=1 && export DEB_CFLAGS_MAINT_APPEND=-O0 && python$*-dbg setup.py build_py

override_dh_auto_install:
python$* setup.py install --skip-build --root=debian/python-sqlcipher \
--install-layout=deb
python$*-dbg setup.py install --skip-build --root=debian/python-sqlcipher-dbg \
--install-layout=deb

override_dh_installdocs:
dh_installdocs
rm -rf debian/$(PACKAGE)-dbg/usr/share/doc/$(PACKAGE)-dbg
ln -s $(PACKAGE) debian/$(PACKAGE)-dbg/usr/share/doc/$(PACKAGE)-dbg

override_dh_strip:
dh_strip --dbg-package=$(PACKAGE)-dbg

override_dh_python2:
dh_python2 --no-guessing-versions
Expand Down
4 changes: 0 additions & 4 deletions debian/watch

This file was deleted.

24 changes: 23 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,15 +141,37 @@ def __init__(self, *args, **kwargs):
build.__init__(self, *args, **kwargs)


DEBUG_MODE = os.environ.get("DEBUG_MODE", False)


class LibSQLCipherBuilder(build_ext):

description = ("Build C extension linking against libsqlcipher library.")

def build_extension(self, ext):
if DEBUG_MODE:
self.__remove_compiler_option("-O2")
self.__remove_compiler_option("-O1")

ext.extra_compile_args.append("-I/usr/include/sqlcipher/")
ext.extra_link_args.append("-lsqlcipher")
build_ext.build_extension(self, ext)

def __remove_compiler_option(self, option):
"""
Remove the specified compiler option.
Return true if the option was found. Return false otherwise.
"""
found = 0
for attrname in ('compiler', 'compiler_so'):
compiler = getattr(self.compiler, attrname, None)
if compiler is not None:
while option in compiler:
compiler.remove(option)
found += 1
return found


class MyBuildExt(build_ext):
amalgamation = True # We want amalgamation on the default build for now
Expand Down Expand Up @@ -353,7 +375,7 @@ def get_setup_args():
{"build_docs": DocBuilder,
"build_ext": MyBuildExt,
"build_static": AmalgamationBuilder,
"build_sqlcipher": LibSQLCipherBuilder,
"build_with_system_sqlcipher": LibSQLCipherBuilder,
"cross_bdist_wininst": cross_bdist_wininst.bdist_wininst})
return setup_args

Expand Down

0 comments on commit c155277

Please sign in to comment.