aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPawel Pekala <pawel@FreeBSD.org>2013-03-28 00:59:17 +0800
committerPawel Pekala <pawel@FreeBSD.org>2013-03-28 00:59:17 +0800
commit134da7dfa5e2e30a8f4e0a531148ce3351366d19 (patch)
tree4713c52b14091def2643bdff04614d2fb3002444
parentbe82768dae59b0c1cff329fed966f60b9b4c1288 (diff)
downloadfreebsd-ports-gnome-134da7dfa5e2e30a8f4e0a531148ce3351366d19.tar.gz
freebsd-ports-gnome-134da7dfa5e2e30a8f4e0a531148ce3351366d19.tar.zst
freebsd-ports-gnome-134da7dfa5e2e30a8f4e0a531148ce3351366d19.zip
pyspatialite is an interface to the SQLite 3.x embedded relational database
engine with spatialite extensions. It is almost fully compliant with the Python database API version 2.0 also exposes the unique features of SQLite and spatialite. WWW: https://code.google.com/p/pyspatialite/ PR: ports/173079 Submitted by: lbartoletti <coder@tuxfamily.org>
-rw-r--r--databases/Makefile1
-rw-r--r--databases/pyspatialite/Makefile29
-rw-r--r--databases/pyspatialite/distinfo4
-rw-r--r--databases/pyspatialite/files/patch-setup.py85
-rw-r--r--databases/pyspatialite/files/patch-src-connection.h11
-rw-r--r--databases/pyspatialite/pkg-descr6
-rw-r--r--databases/pyspatialite/pkg-plist52
7 files changed, 188 insertions, 0 deletions
diff --git a/databases/Makefile b/databases/Makefile
index fc1369890b76..c062f97655cb 100644
--- a/databases/Makefile
+++ b/databases/Makefile
@@ -767,6 +767,7 @@
SUBDIR += pydbdesigner
SUBDIR += pydbx
SUBDIR += pymongo
+ SUBDIR += pyspatialite
SUBDIR += qdbm
SUBDIR += qdbm-plus
SUBDIR += qt-mysql-plugin
diff --git a/databases/pyspatialite/Makefile b/databases/pyspatialite/Makefile
new file mode 100644
index 000000000000..819bdf067cfd
--- /dev/null
+++ b/databases/pyspatialite/Makefile
@@ -0,0 +1,29 @@
+# Created by: lbartoletti <coder@tuxfamily.org>
+# $FreeBSD$
+
+PORTNAME= pyspatialite
+PORTVERSION= 3.0.1
+CATEGORIES= databases python
+MASTER_SITES= CHEESESHOP:pyspatialite \
+ http://www.gaia-gis.it/gaia-sins/libspatialite-sources/:amalgam
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:pyspatialite \
+ ${AMALGAMATION_NAME}${EXTRACT_SUFX}:amalgam
+
+MAINTAINER= coder@tuxfamily.org
+COMMENT= DB-API 2.0 interface for SQLite 3.x with Spatialite 3.x
+
+LIB_DEPENDS= spatialite:${PORTSDIR}/databases/spatialite
+
+USE_PYTHON= yes
+USE_PYDISTUTILS=yes
+PYDISTUTILS_PKGNAME= pyspatialite
+
+AMALGAMATION_NAME= libspatialite-amalgamation-${PORTVERSION}
+
+post-patch:
+ @${REINPLACE_CMD} -e "s|pyspatialite-doc|${DOCSDIR}|g" \
+ -e "s|%%LOCALBASE%%|${LOCALBASE}|g" ${WRKSRC}/setup.py
+ @${MV} ${WRKDIR}/${AMALGAMATION_NAME} ${WRKSRC}/amalgamation
+
+.include <bsd.port.mk>
diff --git a/databases/pyspatialite/distinfo b/databases/pyspatialite/distinfo
new file mode 100644
index 000000000000..d56383f8b249
--- /dev/null
+++ b/databases/pyspatialite/distinfo
@@ -0,0 +1,4 @@
+SHA256 (pyspatialite-3.0.1.tar.gz) = 81a3e4966fb6348802a985486cbf62e019a0fcb0a1e006b9522e8b02dc08f238
+SIZE (pyspatialite-3.0.1.tar.gz) = 75099
+SHA256 (libspatialite-amalgamation-3.0.1.tar.gz) = 51f08c6c9180b1f8979d0469960a5c20a79a574c08fe032ae292042245ad46b6
+SIZE (libspatialite-amalgamation-3.0.1.tar.gz) = 2485779
diff --git a/databases/pyspatialite/files/patch-setup.py b/databases/pyspatialite/files/patch-setup.py
new file mode 100644
index 000000000000..beb65587af07
--- /dev/null
+++ b/databases/pyspatialite/files/patch-setup.py
@@ -0,0 +1,85 @@
+--- setup.py.orig 2012-01-11 23:54:57.000000000 +0100
++++ setup.py 2013-03-24 09:52:46.000000000 +0100
+@@ -44,7 +44,7 @@
+
+ include_dirs = []
+ library_dirs = []
+-libraries = ['geos','geos_c','proj']
++libraries = ['geos','geos_c','proj','iconv']
+ runtime_library_dirs = []
+ extra_objects = []
+ define_macros = []
+@@ -86,29 +86,30 @@
+
+ def get_amalgamation():
+ """Download the Spatialite amalgamation if it isn't there, already."""
+- if os.path.exists(AMALGAMATION_ROOT):
+- return
+- os.mkdir(AMALGAMATION_ROOT)
+- print "Downloading amalgation."
+-
+- # find out what's current amalgamation ZIP file
+- download_page = urllib.urlopen("https://www.gaia-gis.it/fossil/libspatialite/index").read()
+- pattern = re.compile("(libspatialite-amalgamation.*?\.zip)")
+- download_file = pattern.findall(download_page)[0]
+- amalgamation_url = "http://www.gaia-gis.it/gaia-sins/" + download_file
+- zip_dir = string.replace(download_file,'.zip','')
+- # and download it
+- urllib.urlretrieve(amalgamation_url, "tmp.zip")
+-
+- zf = zipfile.ZipFile("tmp.zip")
+- files = ["sqlite3.c", "headers/spatialite/sqlite3.h", "spatialite.c", "headers/spatialite/sqlite3ext.h","headers/spatialite/spatialite.h","headers/spatialite/gaiaaux.h","headers/spatialite/gaiaexif.h","headers/spatialite/gaiageo.h"]
+- for fn in files:
+- print "Extracting", fn
+- outf = open(AMALGAMATION_ROOT + os.sep + string.split(fn,'/')[-1], "wb")
+- outf.write(zf.read(zip_dir + '/' + fn))
+- outf.close()
+- zf.close()
+- os.unlink("tmp.zip")
++# into ${FILESDIR} for FreeBSD
++# if os.path.exists(AMALGAMATION_ROOT):
++# return
++# os.mkdir(AMALGAMATION_ROOT)
++# print "Downloading amalgation."
++#
++# # find out what's current amalgamation ZIP file
++# download_page = urllib.urlopen("http://www.gaia-gis.it/gaia-sins/libspatialite-sources/").read()
++# pattern = re.compile("(libspatialite-amalgamation.*?\.zip)")
++# download_file = pattern.findall(download_page)[-1]
++# amalgamation_url = "http://www.gaia-gis.it/gaia-sins/libspatialite-sources/" + download_file
++# zip_dir = string.replace(download_file,'.zip','')
++# # and download it
++# urllib.urlretrieve(amalgamation_url, "tmp.zip")
++#
++# zf = zipfile.ZipFile("tmp.zip")
++# files = ["sqlite3.c", "headers/spatialite/sqlite3.h", "spatialite.c", "headers/spatialite/sqlite3ext.h","headers/spatialite/spatialite.h","headers/spatialite/gaiaaux.h","headers/spatialite/gaiaexif.h","headers/spatialite/gaiageo.h"]
++# for fn in files:
++# print "Extracting", fn
++# outf = open(AMALGAMATION_ROOT + os.sep + string.split(fn,'/')[-1], "wb")
++# outf.write(zf.read(zip_dir + '/' + fn))
++# outf.close()
++# zf.close()
++# os.unlink("tmp.zip")
+
+ class MyBuildExt(build_ext):
+
+@@ -119,8 +120,10 @@
+ ext.libraries.append("iconv")
+
+ #Default locations for Mac
++ ext.include_dirs.append("%%LOCALBASE%%/include/")
+ ext.include_dirs.append("/Library/Frameworks/GEOS.framework/unix/include/")
+ ext.include_dirs.append("/Library/Frameworks/PROJ.framework/unix/include/")
++ ext.library_dirs.append("%%LOCALBASE%%/lib")
+ ext.library_dirs.append("/Library/Frameworks/GEOS.framework/unix/lib")
+ ext.library_dirs.append("/Library/Frameworks/PROJ.framework/unix/lib")
+
+@@ -132,7 +135,7 @@
+ ext.sources.append(os.path.join(AMALGAMATION_ROOT, "spatialite.c"))
+ ext.include_dirs.append(AMALGAMATION_ROOT)
+ build_ext.build_extension(self, ext)
+-
++
+
+ # def __setattr__(self, k, v):
+ # # Make sure we don't link against the SQLite library, no matter what setup.cfg says
diff --git a/databases/pyspatialite/files/patch-src-connection.h b/databases/pyspatialite/files/patch-src-connection.h
new file mode 100644
index 000000000000..34df7abbef34
--- /dev/null
+++ b/databases/pyspatialite/files/patch-src-connection.h
@@ -0,0 +1,11 @@
+--- src/connection.h.bak 2012-10-25 19:40:06.000000000 +0200
++++ src/connection.h 2012-10-25 19:40:25.000000000 +0200
+@@ -33,8 +33,6 @@
+ #include "sqlite3.h"
+ #include "spatialite.h"
+
+-int spatialite_init(int verbose);
+-
+ typedef struct
+ {
+ PyObject_HEAD
diff --git a/databases/pyspatialite/pkg-descr b/databases/pyspatialite/pkg-descr
new file mode 100644
index 000000000000..2d067f18583b
--- /dev/null
+++ b/databases/pyspatialite/pkg-descr
@@ -0,0 +1,6 @@
+pyspatialite is an interface to the SQLite 3.x embedded relational database
+engine with spatialite extensions.
+It is almost fully compliant with the Python database API version 2.0 also
+exposes the unique features of SQLite and spatialite.
+
+WWW: https://code.google.com/p/pyspatialite/
diff --git a/databases/pyspatialite/pkg-plist b/databases/pyspatialite/pkg-plist
new file mode 100644
index 000000000000..2cd80b63e295
--- /dev/null
+++ b/databases/pyspatialite/pkg-plist
@@ -0,0 +1,52 @@
+%%PYTHON_SITELIBDIR%%/pyspatialite/__init__.py
+%%PYTHON_SITELIBDIR%%/pyspatialite/__init__.pyc
+%%PYTHON_SITELIBDIR%%/pyspatialite/__init__.pyo
+%%PYTHON_SITELIBDIR%%/pyspatialite/_spatialite.so
+%%PYTHON_SITELIBDIR%%/pyspatialite/dbapi2.py
+%%PYTHON_SITELIBDIR%%/pyspatialite/dbapi2.pyc
+%%PYTHON_SITELIBDIR%%/pyspatialite/dbapi2.pyo
+%%PYTHON_SITELIBDIR%%/pyspatialite/dump.py
+%%PYTHON_SITELIBDIR%%/pyspatialite/dump.pyc
+%%PYTHON_SITELIBDIR%%/pyspatialite/dump.pyo
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/__init__.py
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/__init__.pyc
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/__init__.pyo
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/dbapi.py
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/dbapi.pyc
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/dbapi.pyo
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/dump.py
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/dump.pyc
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/dump.pyo
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/factory.py
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/factory.pyc
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/factory.pyo
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/hooks.py
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/hooks.pyc
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/hooks.pyo
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/py25/__init__.py
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/py25/__init__.pyc
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/py25/__init__.pyo
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/py25/py25tests.py
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/py25/py25tests.pyc
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/py25/py25tests.pyo
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/regression.py
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/regression.pyc
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/regression.pyo
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/spatial.py
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/spatial.pyc
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/spatial.pyo
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/transactions.py
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/transactions.pyc
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/transactions.pyo
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/types.py
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/types.pyc
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/types.pyo
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/userfunctions.py
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/userfunctions.pyc
+%%PYTHON_SITELIBDIR%%/pyspatialite/test/userfunctions.pyo
+%%DOCSDIR%%/install-source.txt
+@dirrm %%DOCSDIR%%/code
+@dirrm %%DOCSDIR%%
+@dirrm %%PYTHON_SITELIBDIR%%/pyspatialite/test/py25
+@dirrm %%PYTHON_SITELIBDIR%%/pyspatialite/test
+@dirrm %%PYTHON_SITELIBDIR%%/pyspatialite