pkgsrc-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
pkg/48567: databases/py-postgresql fails with PostgreSQL < 9.0
>Number: 48567
>Category: pkg
>Synopsis: databases/py-postgresql fails with PostgreSQL < 9.0
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Feb 03 03:45:00 +0000 2014
>Originator: Richard Hansen
>Release: 2013Q4
>Organization:
BBN
>Environment:
NetBSD foo 6.1 NetBSD 6.1 (GENERIC) ... i386
>Description:
PyGreSQL (databases/py-postgresql) fails with PostgreSQL older than
9.0, even though the PyGreSQL web site claims support for versions as
old as 8.3:
Traceback (most recent call last):
...
File "/usr/pkg/lib/python2.6/site-packages/pgdb.py", line 66, in <module>
from _pg import *
ImportError: /usr/pkg/lib/python2.6/site-packages/_pg.so: Undefined PLT
symbol "PQescapeIdentifier" (symnum = 4)
The symbol 'PQescapeIdentifier' was introduced in PostgreSQL 9.0.
Upstream is aware of the issue[1] and has committed a fix[2], but has
not yet made a release containing the fix.
[1] http://thread.gmane.org/gmane.comp.python.db.pygresql/1175
[2]
http://shell.vex.net/viewvc.cgi/pygresql/trunk/module/setup.py?r1=509&r2=517&pathrev=517
>How-To-Repeat:
cd /usr/pkgsrc/databases/py-postgresql &&
make install PGSQL_VERSION_DEFAULT=84 &&
python2.7 <<EOF
import pgdb
EOF
>Fix:
diff --git a/pkgsrc/databases/py-postgresql/Makefile
b/pkgsrc/databases/py-postgresql/Makefile
index 2f51d64..9828fc5 100644
--- a/pkgsrc/databases/py-postgresql/Makefile
+++ b/pkgsrc/databases/py-postgresql/Makefile
@@ -2,6 +2,7 @@
DISTNAME= PyGreSQL-4.1.1
PKGNAME= ${PYPKGPREFIX}-postgresql-4.1.1
+PKGREVISION= 1
CATEGORIES= databases python
MASTER_SITES= http://pygresql.org/files/
EXTRACT_SUFX= .tgz
diff --git a/pkgsrc/databases/py-postgresql/distinfo
b/pkgsrc/databases/py-postgresql/distinfo
index 94369db..df2139a 100644
--- a/pkgsrc/databases/py-postgresql/distinfo
+++ b/pkgsrc/databases/py-postgresql/distinfo
@@ -3,3 +3,4 @@ $NetBSD: distinfo,v 1.16 2013/01/08 15:09:59 darcy Exp $
SHA1 (PyGreSQL-4.1.1.tgz) = eafd5b9ae92102bec088c7f2fe3ce3b359eb60c4
RMD160 (PyGreSQL-4.1.1.tgz) = 5cd30aceb7cb82acb2e3a36045be30b21112dd3f
Size (PyGreSQL-4.1.1.tgz) = 100883 bytes
+SHA1 (patch-setup.py) = 7b81bbd56e35b6449173480595bce4e74b2de641
diff --git a/pkgsrc/databases/py-postgresql/patches/patch-setup.py
b/pkgsrc/databases/py-postgresql/patches/patch-setup.py
new file mode 100644
index 0000000..b267eaf
--- /dev/null
+++ b/pkgsrc/databases/py-postgresql/patches/patch-setup.py
@@ -0,0 +1,50 @@
+$NetBSD$
+
+ * Fix when building against PostgreSQL < 9.0:
+ http://shell.vex.net/viewvc.cgi/pygresql?view=revision&revision=517
+ http://thread.gmane.org/gmane.comp.python.db.pygresql/1175
+
+--- setup.py.orig 2013-01-08 14:47:33.000000000 +0000
++++ setup.py
+@@ -68,6 +68,17 @@ def pg_config(s):
+ return d
+
+
++def pg_version():
++ """Return the PostgreSQL version as a tuple of integers."""
++ parts = []
++ for part in pg_config('version').split()[-1].split('.'):
++ if part.isdigit():
++ part = int(part)
++ parts.append(part)
++ return tuple(parts or [8])
++
++
++pg_version = pg_version()
+ py_modules = ['pg', 'pgdb']
+ libraries = ['pq']
+ # Make sure that the Python header files are searched before
+@@ -95,7 +106,7 @@ class build_pg_ext(build_ext):
+ "enable string escaping functions")]
+
+ boolean_options = build_ext.boolean_options + [
+- 'direct-access', 'large-objects', 'default-vars']
++ 'direct-access', 'large-objects', 'default-vars', 'escaping-funcs']
+
+ def get_compiler(self):
+ """Return the C compiler used for building the extension."""
+@@ -103,10 +114,10 @@ class build_pg_ext(build_ext):
+
+ def initialize_options(self):
+ build_ext.initialize_options(self)
+- self.direct_access = 1
+- self.large_objects = 1
+- self.default_vars = 1
+- self.escaping_funcs = 1
++ self.direct_access = True
++ self.large_objects = True
++ self.default_vars = True
++ self.escaping_funcs = pg_version[0] >= 9
+
+ def finalize_options(self):
+ """Set final values for all build_pg options."""
Home |
Main Index |
Thread Index |
Old Index