gnu: Add ephemeralpg.
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.
This commit is contained in:
		
							parent
							
								
									e9d48bdad4
								
							
						
					
					
						commit
						6fc03fccd4
					
				
					 1 changed files with 62 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -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:isc)))
 | 
			
		||||
 | 
			
		||||
(define-public es-dump-restore
 | 
			
		||||
  (package
 | 
			
		||||
    (name "es-dump-restore")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue