summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--databases/Makefile1
-rw-r--r--databases/pgloader3/Makefile45
-rw-r--r--databases/pgloader3/distinfo5
-rw-r--r--databases/pgloader3/files/patch-Makefile38
-rw-r--r--databases/pgloader3/files/patch-pgloader__wrapper.sh11
-rw-r--r--databases/pgloader3/pkg-descr9
6 files changed, 109 insertions, 0 deletions
diff --git a/databases/Makefile b/databases/Makefile
index 365075068ef2..0f01bb30fced 100644
--- a/databases/Makefile
+++ b/databases/Makefile
@@ -586,6 +586,7 @@
SUBDIR += pgFormatter
SUBDIR += pgfouine
SUBDIR += pgloader
+ SUBDIR += pgloader3
SUBDIR += pglogical
SUBDIR += pgmodeler
SUBDIR += pgpool
diff --git a/databases/pgloader3/Makefile b/databases/pgloader3/Makefile
new file mode 100644
index 000000000000..62bd20192b1b
--- /dev/null
+++ b/databases/pgloader3/Makefile
@@ -0,0 +1,45 @@
+# Created by: Jov <amutu@amutu.com>
+# $FreeBSD$
+
+PORTNAME= pgloader
+PORTVERSION= 3.4.1
+DISTVERSIONPREFIX= v
+CATEGORIES= databases
+PKGNAMESUFFIX= 3
+
+MAINTAINER= amutu@amutu.com
+COMMENT= Data loading tool for PostgreSQL,using the COPY command
+
+LICENSE= PostgreSQL
+
+BUILD_DEPENDS= ccl:lang/ccl
+LIB_DEPENDS= libsqlite3.so:databases/sqlite3 \
+ libtdsodbc.so:databases/freetds
+
+CONFLICTS= pgloader-2*
+
+USES= gmake
+
+USE_GITHUB= yes
+GH_ACCOUNT= dimitri
+GH_TUPLE= amutu:quicklisp_offline:e9008cc:qlp/build/quicklisp
+
+PLIST_FILES= bin/pgloader \
+ bin/pgloader3 \
+ man/man1/pgloader.1.gz
+
+MAKE_ARGS= CL=ccl
+MAKE_ENV= ASDF_OUTPUT_TRANSLATIONS=/:
+
+# stripping can break lisp binaries
+STRIP=
+
+post-patch:
+ ${LN} ${WRKSRC}/build/quicklisp/quicklisp.lisp ${WRKSRC}/build
+
+do-install:
+ ${INSTALL_PROGRAM} ${WRKSRC}/build/bin/pgloader ${STAGEDIR}${PREFIX}/bin/pgloader3
+ ${INSTALL_SCRIPT} ${WRKSRC}/pgloader_wrapper.sh ${STAGEDIR}${PREFIX}/bin/pgloader
+ ${INSTALL_MAN} ${WRKSRC}/pgloader.1 ${STAGEDIR}${MANPREFIX}/man/man1
+
+.include <bsd.port.mk>
diff --git a/databases/pgloader3/distinfo b/databases/pgloader3/distinfo
new file mode 100644
index 000000000000..0633adcfcc77
--- /dev/null
+++ b/databases/pgloader3/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1499825145
+SHA256 (dimitri-pgloader-v3.4.1_GH0.tar.gz) = 3ac4d03706057a35e1d4d0e63571b84be7d0d07ea09e015d90e242200488fe82
+SIZE (dimitri-pgloader-v3.4.1_GH0.tar.gz) = 4218005
+SHA256 (amutu-quicklisp_offline-e9008cc_GH0.tar.gz) = 2085b87b2c62b0eca85784995c86a66a0a202950c242e100273c9cea4cde0453
+SIZE (amutu-quicklisp_offline-e9008cc_GH0.tar.gz) = 4833120
diff --git a/databases/pgloader3/files/patch-Makefile b/databases/pgloader3/files/patch-Makefile
new file mode 100644
index 000000000000..bca53923c3b3
--- /dev/null
+++ b/databases/pgloader3/files/patch-Makefile
@@ -0,0 +1,38 @@
+--- Makefile.orig 2017-07-06 14:53:29 UTC
++++ Makefile
+@@ -84,7 +84,7 @@ $(QLDIR)/local-projects/cl-csv:
+
+ $(QLDIR)/setup.lisp:
+ mkdir -p $(BUILDDIR)
+- curl -o $(BUILDDIR)/quicklisp.lisp http://beta.quicklisp.org/quicklisp.lisp
++# curl -o $(BUILDDIR)/quicklisp.lisp http://beta.quicklisp.org/quicklisp.lisp
+ $(CL) $(CL_OPTS) --load $(BUILDDIR)/quicklisp.lisp \
+ --load src/getenv.lisp \
+ --eval '(quicklisp-quickstart:install :path "$(BUILDDIR)/quicklisp" :proxy (getenv "http_proxy"))' \
+@@ -97,7 +97,7 @@ clones: $(QLDIR)/local-projects/cl-ixf \
+ $(QLDIR)/local-projects/cl-csv \
+ $(QLDIR)/local-projects/qmynd ;
+
+-$(LIBS): $(QLDIR)/setup.lisp clones
++$(LIBS): $(QLDIR)/setup.lisp
+ $(CL) $(CL_OPTS) --load $(QLDIR)/setup.lisp \
+ --eval '(push "$(PWD)/" asdf:*central-registry*)' \
+ --eval '(ql:quickload "pgloader")' \
+@@ -113,7 +113,7 @@ $(MANIFEST): $(LIBS)
+
+ manifest: $(MANIFEST) ;
+
+-$(BUILDAPP_CCL): $(QLDIR)/setup.lisp
++$(BUILDAPP_CCL): $(QLDIR)/setup.lisp $(LIBS)
+ mkdir -p $(BUILDDIR)/bin
+ $(CL) $(CL_OPTS) --load $(QLDIR)/setup.lisp \
+ --eval '(ql:quickload "buildapp")' \
+@@ -176,7 +176,7 @@ $(BUNDLE): $(BUNDLEDIR)
+ sed -e s/%VERSION%/$(VERSION)/ < bundle/Makefile > $(BUNDLEDIR)/Makefile
+ git archive --format=tar --prefix=pgloader-$(VERSION)/ master \
+ | tar -C $(BUNDLEDIR)/local-projects/ -xf -
+- make QLDIR=$(BUNDLEDIR) clones
++ make QLDIR=$(BUNDLEDIR)
+ tar -C build/bundle \
+ --exclude bin \
+ --exclude test/sqlite \
diff --git a/databases/pgloader3/files/patch-pgloader__wrapper.sh b/databases/pgloader3/files/patch-pgloader__wrapper.sh
new file mode 100644
index 000000000000..0f6137dd9c78
--- /dev/null
+++ b/databases/pgloader3/files/patch-pgloader__wrapper.sh
@@ -0,0 +1,11 @@
+--- pgloader_wrapper.sh.orig 2017-07-14 08:47:14 UTC
++++ pgloader_wrapper.sh
+@@ -0,0 +1,8 @@
++#!/bin/sh
++
++# There is a bug for current ccl on FreeBSD, which is determine_executable_name
++# doesn't do the job for FreeBSD. Now we use this script as a workaround. See:
++# https://github.com/Clozure/ccl/issues/38
++
++BIN_DIR="$(cd $(/usr/bin/dirname $0);pwd)"
++exec "${BIN_DIR}"/pgloader3 "${@}"
diff --git a/databases/pgloader3/pkg-descr b/databases/pgloader3/pkg-descr
new file mode 100644
index 000000000000..d9e93db9ed4e
--- /dev/null
+++ b/databases/pgloader3/pkg-descr
@@ -0,0 +1,9 @@
+Pgloader loads data into PostgreSQL using the COPY streaming protocol,and
+doing so with separate threads for reading and writing data.Asynchronous
+IO,compiled to the metal programming language.
+pgloader knows how to read data from MySQL,SQLite or dBase databases,and
+knows how to discover the schema and properly cast data types over.It also
+knows how to read CSV files in several definitions of CSV,and fixed columns
+files.
+
+WWW: http://pgloader.io