Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 7 Aug 2017 13:46:50 +0000 (UTC)
From:      Torsten Zuehlsdorff <tz@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r447494 - in head/databases: . pgloader3 pgloader3/files
Message-ID:  <201708071346.v77DkoK6016248@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: tz
Date: Mon Aug  7 13:46:50 2017
New Revision: 447494
URL: https://svnweb.freebsd.org/changeset/ports/447494

Log:
  New port: databases/pgloader3
  
  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
  
  PR:           219165
  Submitted by: Jov <amutu@amutu.com>

Added:
  head/databases/pgloader3/
  head/databases/pgloader3/Makefile   (contents, props changed)
  head/databases/pgloader3/distinfo   (contents, props changed)
  head/databases/pgloader3/files/
  head/databases/pgloader3/files/patch-Makefile   (contents, props changed)
  head/databases/pgloader3/files/patch-pgloader__wrapper.sh   (contents, props changed)
  head/databases/pgloader3/pkg-descr   (contents, props changed)
Modified:
  head/databases/Makefile

Modified: head/databases/Makefile
==============================================================================
--- head/databases/Makefile	Mon Aug  7 13:43:28 2017	(r447493)
+++ head/databases/Makefile	Mon Aug  7 13:46:50 2017	(r447494)
@@ -586,6 +586,7 @@
     SUBDIR += pgFormatter
     SUBDIR += pgfouine
     SUBDIR += pgloader
+    SUBDIR += pgloader3
     SUBDIR += pglogical
     SUBDIR += pgmodeler
     SUBDIR += pgpool

Added: head/databases/pgloader3/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/databases/pgloader3/Makefile	Mon Aug  7 13:46:50 2017	(r447494)
@@ -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>

Added: head/databases/pgloader3/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/databases/pgloader3/distinfo	Mon Aug  7 13:46:50 2017	(r447494)
@@ -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

Added: head/databases/pgloader3/files/patch-Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/databases/pgloader3/files/patch-Makefile	Mon Aug  7 13:46:50 2017	(r447494)
@@ -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           \

Added: head/databases/pgloader3/files/patch-pgloader__wrapper.sh
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/databases/pgloader3/files/patch-pgloader__wrapper.sh	Mon Aug  7 13:46:50 2017	(r447494)
@@ -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 "${@}"

Added: head/databases/pgloader3/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/databases/pgloader3/pkg-descr	Mon Aug  7 13:46:50 2017	(r447494)
@@ -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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201708071346.v77DkoK6016248>