Index: Makefile =================================================================== --- /dev/null +++ Makefile @@ -0,0 +1,45 @@ +# Created by: Jov +# $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 Index: distinfo =================================================================== --- /dev/null +++ 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 Index: files/patch-Makefile =================================================================== --- /dev/null +++ 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 \ Index: files/patch-pgloader__wrapper.sh =================================================================== --- /dev/null +++ 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 "${@}" Index: pkg-descr =================================================================== --- /dev/null +++ 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