From 100a4f84fec03bdf31523232f9f6587bb201ea7c Mon Sep 17 00:00:00 2001 From: Sharlatan Hellseher Date: Tue, 19 Jan 2021 22:23:21 +0000 Subject: gnu: Add pgloader. * gnu/packages/databases.scm (pgloader): New variable. Signed-off-by: Guillaume Le Vaillant --- gnu/packages/databases.scm | 91 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 88 insertions(+), 3 deletions(-) (limited to 'gnu/packages/databases.scm') diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 817ccdf6de..ee883c10f5 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -86,15 +86,16 @@ (define-module (gnu packages databases) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages gnupg) - #:use-module (gnu packages guile) - #:use-module (gnu packages time) #:use-module (gnu packages golang) + #:use-module (gnu packages guile) #:use-module (gnu packages icu4c) #:use-module (gnu packages jemalloc) #:use-module (gnu packages language) #:use-module (gnu packages libedit) #:use-module (gnu packages libevent) #:use-module (gnu packages linux) + #:use-module (gnu packages lisp) + #:use-module (gnu packages lisp-xyz) #:use-module (gnu packages logging) #:use-module (gnu packages man) #:use-module (gnu packages maths) @@ -111,8 +112,8 @@ (define-module (gnu packages databases) #:use-module (gnu packages protobuf) #:use-module (gnu packages python) #:use-module (gnu packages python-crypto) - #:use-module (gnu packages python-web) #:use-module (gnu packages python-science) + #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages rdf) #:use-module (gnu packages readline) @@ -125,6 +126,7 @@ (define-module (gnu packages databases) #:use-module (gnu packages tcl) #:use-module (gnu packages terminals) #:use-module (gnu packages textutils) + #:use-module (gnu packages time) #:use-module (gnu packages tls) #:use-module (gnu packages valgrind) #:use-module (gnu packages web) @@ -1246,6 +1248,89 @@ (define-public postgresql-9.6 (base32 "1rr2dgv4ams8r2lp13w85c77rkmzpb88fjlc28mvlw6zq2fblv2w")))))) +(define-public pgloader + (package + (name "pgloader") + (version "3.6.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dimitri/pgloader") + (commit (string-append "v" version)))) + (sha256 + (base32 "06i1jd2za3ih5caj2b4vzlzags5j65vv8dfdbz0ggdrp40wfd5lh")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + (arguments + ;; NOTE: (Sharlatan-20210119T211511+0000) Tests are disabled due to being + ;; dependent on Quicklisp, main build target is `pgloader-standalone' which + ;; does not require Quicklisp workarounds. There is no `install' target + ;; configured in Makefile. + `(#:tests? #f + #:strip-binaries? #f + #:make-flags + (list "pgloader-standalone" "BUILDAPP_SBCL=buildapp") + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'set-home + (lambda _ + (setenv "HOME" "/tmp") + #t)) + (add-after 'unpack 'patch-Makefile + (lambda _ + (substitute* "Makefile" + (("--sbcl.*") "--sbcl $(CL) --asdf-path . \\\n")) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (mkdir-p bin) + (install-file "build/bin/pgloader" bin)) + #t))))) + (native-inputs + `(("buildapp" ,buildapp) + ("sbcl" ,sbcl))) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("cl-abnf" ,sbcl-cl-abnf) + ("cl-base64" ,sbcl-cl-base64) + ("cl-csv" ,sbcl-cl-csv) + ("cl-fad" ,sbcl-cl-fad) + ("cl-log" ,sbcl-cl-log) + ("cl-markdown" ,sbcl-cl-markdown) + ("cl-mustache" ,sbcl-cl-mustache) + ("cl-ppcre" ,sbcl-cl-ppcre) + ("cl-sqlite" ,sbcl-cl-sqlite) + ("closer-mop" ,sbcl-closer-mop) + ("command-line-arguments" ,sbcl-command-line-arguments) + ("db3" ,sbcl-db3) + ("drakma" ,sbcl-drakma) + ("esrap" ,sbcl-esrap) + ("flexi-streams" ,sbcl-flexi-streams) + ("ixf" ,sbcl-ixf) + ("local-time" ,sbcl-local-time) + ("lparallel" ,sbcl-lparallel) + ("metabang-bind" ,sbcl-metabang-bind) + ("mssql" ,sbcl-mssql) + ("postmodern" ,sbcl-postmodern) + ("py-configparser" ,sbcl-py-configparser) + ("qmynd" ,sbcl-qmynd) + ("quri" ,sbcl-quri) + ("split-sequence" ,sbcl-split-sequence) + ("trivial-backtrace" ,sbcl-trivial-backtrace) + ("usocket" ,sbcl-usocket) + ("uuid" ,sbcl-uuid) + ("yason" ,sbcl-yason) + ("zs3" ,sbcl-zs3))) + (home-page "https://pgloader.io/") + (synopsis "Tool to migrate data to PostgreSQL") + (description + "@code{pgloader} is a program that can load data or migrate databases from +CSV, DB3, iXF, SQLite, MS-SQL or MySQL to PostgreSQL.") + (license (license:x11-style "file://LICENSE")))) + (define-public python-pymysql (package (name "python-pymysql") -- cgit v1.2.3