all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#37845] [PATCH] gnu: Add ephemeralpg.
@ 2019-10-21  6:00 Christopher Baines
  2019-10-21 13:44 ` Ludovic Courtès
  0 siblings, 1 reply; 3+ messages in thread
From: Christopher Baines @ 2019-10-21  6:00 UTC (permalink / raw)
  To: 37845

This is a general utility, but I'm particularly interested in using this to
enable build time tests for the guix-data-service package.

* gnu/packages/databases.scm (ephemeralpg): New variable.
---
 gnu/packages/databases.scm | 62 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index f8e72565a0..7e26e9ebbd 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -216,6 +216,68 @@ standard Go idioms.")
     (home-page "http://labix.org/mgo")
     (license license:bsd-2)))
 
+(define-public ephemeralpg
+  (package
+    (name "ephemeralpg")
+    (version "2.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "http://eradman.com/ephemeralpg/code/ephemeralpg-"
+             version ".tar.gz"))
+       (sha256
+        (base32 "1dpfxsd8a52psx3zlfbqkw53m35w28qwyb87a8anz143x6gnkkr4"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:make-flags (list "CC=gcc"
+                          (string-append "PREFIX=" %output))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (replace 'check
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; The intention for one test is to test without PostgreSQL on
+             ;; the $PATH, so replace the test $PATH with just the util-linux
+             ;; bin, which contains getopt. It will hopefully be possible to
+             ;; remove this for releases after 2.8.
+             (substitute* "test.rb"
+               (("/bin:/usr/bin")
+                (string-append (assoc-ref inputs "util-linux")
+                               "/bin")))
+             ;; Set the LC_ALL=C as some tests use sort, and the locale
+             ;; affects the order. It will hopefully be possible to remove
+             ;; this for releases after 2.8.
+             (setenv "LC_ALL" "C")
+             (invoke "ruby" "test.rb")
+             #t))
+         (add-after 'install 'wrap
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (wrap-program (string-append out "/bin/pg_tmp")
+                 `("PATH" ":" prefix
+                   (,(string-append (assoc-ref inputs "util-linux")
+                                    "/bin")
+                    ,(string-append (assoc-ref inputs "postgresql")
+                                    "/bin")
+                    ;; For getsocket
+                    ,(string-append out "/bin")))))
+             #t)))))
+    (inputs
+     `(("postgresql" ,postgresql)
+       ("util-linux" ,util-linux)))
+    (native-inputs
+     `(("ruby" ,ruby)))
+    (home-page "http://eradman.com/ephemeralpg/")
+    (synopsis "Run temporary PostgreSQL databases")
+    (description
+     "@code{pg_tmp} creates temporary PostgreSQL databases, suitable for tasks
+like running software test suites.  Temporary databases created with
+@code{pg_tmp} have a limited shared memory footprint and are automatically
+garbage-collected after a configurable number of seconds (the default is
+60).")
+    (license license:gpl2)))
+
 (define-public es-dump-restore
   (package
     (name "es-dump-restore")
-- 
2.23.0

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [bug#37845] [PATCH] gnu: Add ephemeralpg.
  2019-10-21  6:00 [bug#37845] [PATCH] gnu: Add ephemeralpg Christopher Baines
@ 2019-10-21 13:44 ` Ludovic Courtès
  2019-10-21 17:29   ` bug#37845: " Christopher Baines
  0 siblings, 1 reply; 3+ messages in thread
From: Ludovic Courtès @ 2019-10-21 13:44 UTC (permalink / raw)
  To: Christopher Baines; +Cc: 37845

Hi Chris,

Christopher Baines <mail@cbaines.net> skribis:

> This is a general utility, but I'm particularly interested in using this to
> enable build time tests for the guix-data-service package.
>
> * gnu/packages/databases.scm (ephemeralpg): New variable.

[...]

> +    (license license:gpl2)))

I think this is ISC, no?

Apart from that, it LGTM.  Thanks!

Ludo’.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#37845: [PATCH] gnu: Add ephemeralpg.
  2019-10-21 13:44 ` Ludovic Courtès
@ 2019-10-21 17:29   ` Christopher Baines
  0 siblings, 0 replies; 3+ messages in thread
From: Christopher Baines @ 2019-10-21 17:29 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 37845-done

[-- Attachment #1: Type: text/plain, Size: 648 bytes --]


Ludovic Courtès <ludo@gnu.org> writes:

> Hi Chris,
>
> Christopher Baines <mail@cbaines.net> skribis:
>
>> This is a general utility, but I'm particularly interested in using this to
>> enable build time tests for the guix-data-service package.
>>
>> * gnu/packages/databases.scm (ephemeralpg): New variable.
>
> [...]
>
>> +    (license license:gpl2)))
>
> I think this is ISC, no?

Ah, yep, I probably didn't change that from whatever package definition
I copied... I've updated it now.

> Apart from that, it LGTM.  Thanks!

Great, with the above change, I've pushed this as
6fc03fccd41c1687933a0a70a40efcb5ed821995.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 962 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-10-21 17:30 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-10-21  6:00 [bug#37845] [PATCH] gnu: Add ephemeralpg Christopher Baines
2019-10-21 13:44 ` Ludovic Courtès
2019-10-21 17:29   ` bug#37845: " Christopher Baines

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.