summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/guix.texi38
-rw-r--r--gnu/local.mk2
-rw-r--r--gnu/packages/base.scm6
-rw-r--r--gnu/packages/boost.scm1
-rw-r--r--gnu/packages/build-tools.scm4
-rw-r--r--gnu/packages/certs.scm4
-rw-r--r--gnu/packages/compression.scm10
-rw-r--r--gnu/packages/cups.scm4
-rw-r--r--gnu/packages/databases.scm5
-rw-r--r--gnu/packages/freedesktop.scm8
-rw-r--r--gnu/packages/geo.scm3
-rw-r--r--gnu/packages/gl.scm19
-rw-r--r--gnu/packages/glib.scm4
-rw-r--r--gnu/packages/gnome.scm5
-rw-r--r--gnu/packages/gnuzilla.scm6
-rw-r--r--gnu/packages/gstreamer.scm28
-rw-r--r--gnu/packages/gtk.scm4
-rw-r--r--gnu/packages/imagemagick.scm4
-rw-r--r--gnu/packages/linux.scm18
-rw-r--r--gnu/packages/llvm.scm20
-rw-r--r--gnu/packages/maths.scm4
-rw-r--r--gnu/packages/patches/json-glib-fix-tests-32bit.patch174
-rw-r--r--gnu/packages/patches/postgresql-disable-resolve_symlinks.patch25
-rw-r--r--gnu/packages/ruby.scm25
-rw-r--r--gnu/packages/video.scm4
-rw-r--r--gnu/packages/vulkan.scm11
-rw-r--r--gnu/packages/xdisorg.scm4
-rw-r--r--gnu/services/databases.scm63
28 files changed, 214 insertions, 289 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 4ef2601579..1529d888ed 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -14181,13 +14181,49 @@ The @code{(gnu services databases)} module provides the following services.
@deffn {Scheme Procedure} postgresql-service [#:postgresql postgresql] @
[#:config-file] [#:data-directory ``/var/lib/postgresql/data''] @
- [#:port 5432] [#:locale ``en_US.utf8'']
+ [#:port 5432] [#:locale ``en_US.utf8''] [#:extension-packages '()]
Return a service that runs @var{postgresql}, the PostgreSQL database
server.
The PostgreSQL daemon loads its runtime configuration from @var{config-file},
creates a database cluster with @var{locale} as the default
locale, stored in @var{data-directory}. It then listens on @var{port}.
+
+@cindex postgresql extension-packages
+Additional extensions are loaded from packages listed in
+@var{extension-packages}. Extensions are available at runtime. For instance,
+to create a geographic database using the @code{postgis} extension, a user can
+configure the postgresql-service as in this example:
+
+@cindex postgis
+@example
+(use-package-modules databases geo)
+
+(operating-system
+ ...
+ ;; postgresql is required to run `psql' but postgis is not required for
+ ;; proper operation.
+ (packages (cons* postgresql %base-packages))
+ (services
+ (cons*
+ (postgresql-service #:extension-packages (list postgis))
+ %base-services)))
+@end example
+
+Then the extension becomes visible and you can initialise an empty geographic
+database in this way:
+
+@example
+psql -U postgres
+> create database postgistest;
+> \connect postgistest;
+> create extension postgis;
+> create extension postgis_topology;
+@end example
+
+There is no need to add this field for contrib extensions such as hstore or
+dblink as they are already loadable by postgresql. This field is only
+required to add extensions provided by other packages.
@end deffn
@deffn {Scheme Procedure} mysql-service [#:config (mysql-configuration)]
diff --git a/gnu/local.mk b/gnu/local.mk
index ae3aee7c21..3f19b3fe79 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -846,7 +846,6 @@ dist_patch_DATA = \
%D%/packages/patches/java-xerces-build_dont_unzip.patch \
%D%/packages/patches/java-xerces-xjavac_taskdef.patch \
%D%/packages/patches/jbig2dec-ignore-testtest.patch \
- %D%/packages/patches/json-glib-fix-tests-32bit.patch \
%D%/packages/patches/kdbusaddons-kinit-file-name.patch \
%D%/packages/patches/khmer-use-libraries.patch \
%D%/packages/patches/libziparchive-add-includes.patch \
@@ -1065,6 +1064,7 @@ dist_patch_DATA = \
%D%/packages/patches/poppler-CVE-2018-19149.patch \
%D%/packages/patches/portaudio-audacity-compat.patch \
%D%/packages/patches/portmidi-modular-build.patch \
+ %D%/packages/patches/postgresql-disable-resolve_symlinks.patch \
%D%/packages/patches/potrace-tests.patch \
%D%/packages/patches/procmail-ambiguous-getline-debian.patch \
%D%/packages/patches/procmail-CVE-2014-3618.patch \
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 60f8051dc6..55a0290600 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -1097,7 +1097,7 @@ command.")
(define-public tzdata
(package
(name "tzdata")
- (version "2018e")
+ (version "2018g")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1105,7 +1105,7 @@ command.")
version ".tar.gz"))
(sha256
(base32
- "0bk97fv2i5ns42prpmlaadsswdjwv0ifi7whj2s4q6l44rcqwa3b"))))
+ "05kayi3w9pvhj6ljx1hvwd0r8mxfzn436fjmwhx53xkj919xxpq2"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f
@@ -1155,7 +1155,7 @@ command.")
version ".tar.gz"))
(sha256
(base32
- "1kpb02631s58i068mwq63xlamcv1ffj4p6y4wpb9kdl01vr0qd6a"))))))
+ "09y44fzcdq3c06saa8iqqa0a59cyw6ni3p31ps0j1w3hcpxz8lxa"))))))
(home-page "https://www.iana.org/time-zones")
(synopsis "Database of current and historical time zones")
(description "The Time Zone Database (often called tz or zoneinfo)
diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm
index f9108b3ad6..f1ff1712e6 100644
--- a/gnu/packages/boost.scm
+++ b/gnu/packages/boost.scm
@@ -67,6 +67,7 @@
`(#:tests? #f
#:make-flags
(list "threading=multi" "link=shared"
+ "cxxflags=-std=c++14"
;; Set the RUNPATH to $libdir so that the libs find each other.
(string-append "linkflags=-Wl,-rpath="
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index a34e7ebff4..d42d03cee9 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -158,7 +158,7 @@ files and generates build instructions for the Ninja build system.")
(define-public meson
(package
(name "meson")
- (version "0.47.2")
+ (version "0.48.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/mesonbuild/meson/"
@@ -166,7 +166,7 @@ files and generates build instructions for the Ninja build system.")
version ".tar.gz"))
(sha256
(base32
- "1swmycf6p9p0ag6yiywyyri42ffkxxj38r2ic7in24km47cszn4j"))))
+ "01jmm2wmnqhqk6f2gfhzhyzh0il6bjbyl8syy457p76ws2zxisir"))))
(build-system python-build-system)
(arguments
`(;; FIXME: Tests require many additional inputs, a fix for the RUNPATH
diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm
index 6af6877423..bcca98fb1b 100644
--- a/gnu/packages/certs.scm
+++ b/gnu/packages/certs.scm
@@ -76,7 +76,7 @@
(define-public nss-certs
(package
(name "nss-certs")
- (version "3.39")
+ (version "3.40.1")
(source (origin
(method url-fetch)
(uri (let ((version-with-underscores
@@ -87,7 +87,7 @@
"nss-" version ".tar.gz")))
(sha256
(base32
- "0jw6qlfl2g47hhx056nvnj6h92bk3sn46hy3ig61a911dzblvrkb"))))
+ "1wf8qapd2lh8pbjd6pp9m32mx1zyddrmv5c4cr86xj3r5ap6n3jy"))))
(build-system gnu-build-system)
(outputs '("out"))
(native-inputs
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index e8a50c676c..c33d7ef093 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -796,13 +796,13 @@ writing of compressed data created with the zlib and bzip2 libraries.")
(version "1.8.1.2")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://github.com/lz4/lz4/archive/"
- "v" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference (url "https://github.com/lz4/lz4")
+ (commit (string-append "v" version))))
(sha256
(base32
- "1y93h6dyi3026gvpzdv310ldcylnnhwf32n75mdjf8x9fvkskwqj"))
- (file-name (string-append name "-" version ".tar.gz"))))
+ "1jggv4lvfav53advnj0pwqgxzn868lrj8dc9zp73iwvqlj82mhmx"))
+ (file-name (git-file-name name version))))
(build-system gnu-build-system)
(native-inputs `(("valgrind" ,valgrind))) ; for tests
(arguments
diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
index 4343910d59..acc58a840e 100644
--- a/gnu/packages/cups.scm
+++ b/gnu/packages/cups.scm
@@ -176,7 +176,7 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.")
(define-public cups-minimal
(package
(name "cups-minimal")
- (version "2.2.8")
+ (version "2.2.10")
(source
(origin
(method url-fetch)
@@ -184,7 +184,7 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.")
version "/cups-" version "-source.tar.gz"))
(sha256
(base32
- "1r7r7b3nqpzc1a9dczqpj2mr8rkcwf01676v11sp4j7w4qfzqs1r"))))
+ "1fq52aw1mini3ld2czv5gg37wbbvh4n7yc7wzzxvbs3zpfrv5j3p"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 0fa6d451ed..7647328361 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -18,7 +18,7 @@
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
;;; Copyright © 2016, 2017, 2018 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2017, 2018 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org>
;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com>
@@ -811,7 +811,8 @@ as a drop-in replacement of MySQL.")
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
- "0jv26y3f10svrjxzsgqxg956c86b664azyk2wppzpa5x11pjga38"))))
+ "0jv26y3f10svrjxzsgqxg956c86b664azyk2wppzpa5x11pjga38"))
+ (patches (search-patches "postgresql-disable-resolve_symlinks.patch"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--with-uuid=e2fs")
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 8982c0ec35..f8e97acf51 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -147,14 +147,14 @@ freedesktop.org project.")
(define-public libinput
(package
(name "libinput")
- (version "1.12.1")
+ (version "1.12.3")
(source (origin
(method url-fetch)
(uri (string-append "https://freedesktop.org/software/libinput/"
name "-" version ".tar.xz"))
(sha256
(base32
- "14l6bvgq76ls63qc9c448r435q9xiig0rv8ilx6rnjvlgg64h32p"))))
+ "0mg2zqbjcgj0aq7d9nwawvyhx43vakilahrc83hrfyif3a3gyrpj"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags '("-Ddocumentation=false")))
@@ -432,7 +432,7 @@ applications, X servers (rootless or fullscreen) or other display servers.")
(define-public wayland-protocols
(package
(name "wayland-protocols")
- (version "1.15")
+ (version "1.17")
(source (origin
(method url-fetch)
(uri (string-append
@@ -440,7 +440,7 @@ applications, X servers (rootless or fullscreen) or other display servers.")
"wayland-protocols-" version ".tar.xz"))
(sha256
(base32
- "1qlyf9cllr2p339xxplznh023qcwj5iisp02ikx7ps349dx75fys"))))
+ "0bw1sqixqk2a7mqw630cs4dlgcp5yib90vyikzm3lr05jz7ij4yz"))))
(build-system gnu-build-system)
(inputs
`(("wayland" ,wayland)))
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index fa2b259d7c..26f566a18b 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -753,7 +753,8 @@ utilities for data translation and processing.")
(synopsis "Spatial database extender for PostgreSQL")
(description "PostGIS is a spatial database extender for PostgreSQL
object-relational database. It adds support for geographic objects allowing
-location queries to be run in SQL.")
+location queries to be run in SQL. This package provides a PostgreSQL
+extension.")
(license (list
;; General license
license:gpl2+
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index d7c112928f..1bf53bcbb4 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -53,6 +53,7 @@
#:use-module (guix build utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system meson)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
@@ -220,7 +221,7 @@ also known as DXTn or DXTC) for Mesa.")
(define-public mesa
(package
(name "mesa")
- (version "18.1.8")
+ (version "18.2.6")
(source
(origin
(method url-fetch)
@@ -232,7 +233,7 @@ also known as DXTn or DXTC) for Mesa.")
version "/mesa-" version ".tar.xz")))
(sha256
(base32
- "06y28hpynb8w1qagznr85ml48hf8264w4ji6cmvm2fy7x5zyc6xx"))
+ "04nwxykmc80gicmal0zkk8is34rmbqawmfckirqhrps9h97zmfly"))
(patches
(search-patches "mesa-skip-disk-cache-test.patch"))))
(build-system gnu-build-system)
@@ -252,11 +253,11 @@ also known as DXTn or DXTC) for Mesa.")
("libva" ,(force libva-without-mesa))
("libxml2" ,libxml2)
;; TODO: Add 'libxml2-python' for OpenGL ES 1.1 and 2.0 support
+ ("libxrandr" ,libxrandr)
("libxvmc" ,libxvmc)
,@(match (%current-system)
((or "x86_64-linux" "i686-linux")
- ;; FIXME: Change to 'llvm' in the next rebuild cycle.
- `(("llvm" ,llvm-without-rtti)))
+ `(("llvm" ,llvm)))
(_
`()))
("makedepend" ,makedepend)
@@ -290,9 +291,6 @@ also known as DXTn or DXTC) for Mesa.")
"--enable-gles2"
"--enable-gbm"
"--enable-shared-glapi"
- ;; Without floating point texture support, drivers such as Nouveau
- ;; are stuck at OpenGL 2.1 instead of OpenGL 3.0+.
- "--enable-texture-float"
;; Enable Vulkan on i686-linux and x86-64-linux.
,@(match (%current-system)
@@ -547,7 +545,7 @@ OpenGL graphics API.")
(define-public libepoxy
(package
(name "libepoxy")
- (version "1.5.2")
+ (version "1.5.3")
(source (origin
(method url-fetch)
(uri (string-append
@@ -555,10 +553,11 @@ OpenGL graphics API.")
version "/libepoxy-" version ".tar.xz"))
(sha256
(base32
- "1n57xj5i6giw4mp5s59w1m9bm33sd6gjg7r00dzzvcwya6326mm9"))))
+ "0ga3qjv50x37my6pw5xr14g5n6z78hy5s8s06kays8c3ab2mha80"))))
(arguments
`(#:phases
(modify-phases %standard-phases
+ (delete 'bootstrap)
(add-before
'configure 'patch-paths
(lambda* (#:key inputs #:allow-other-keys)
@@ -570,7 +569,7 @@ OpenGL graphics API.")
(("libGL.so.1") (string-append mesa "/lib/libGL.so.1"))
(("libEGL.so.1") (string-append mesa "/lib/libEGL.so.1")))
#t))))))
- (build-system gnu-build-system)
+ (build-system meson-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
("python" ,python)))
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index cd9b48caff..61d8e84d54 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -485,7 +485,7 @@ by GDBus included in Glib.")
(define libsigc++
(package
(name "libsigc++")
- (version "2.10.0")
+ (version "2.10.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/libsigc++/"
@@ -493,7 +493,7 @@ by GDBus included in Glib.")
name "-" version ".tar.xz"))
(sha256
(base32
- "10cd54l4zihss9qxfhd2iip2k7mr292k37i54r2cpgv0c8sdchzq"))))
+ "00v08km4wwzbh6vjxb21388wb9dm6g2xh14rgwabnv4c2wk5z8n9"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)
("m4" ,m4)))
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 415398eeee..9d8e4a8d33 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2295,16 +2295,15 @@ configuration storage systems.")
(define-public json-glib
(package
(name "json-glib")
- (version "1.4.2")
+ (version "1.4.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
- (patches (search-patches "json-glib-fix-tests-32bit.patch"))
(sha256
(base32
- "1j3dd2xj1l9fi12m1gpmfgf5p4c1w0i970m6k62k3is98yj0jxrd"))))
+ "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
(build-system meson-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index d6b1f4c2d6..24b29394ba 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -364,7 +364,7 @@ in the Mozilla clients.")
(define-public nss
(package
(name "nss")
- (version "3.39")
+ (version "3.40.1")
(source (origin
(method url-fetch)
(uri (let ((version-with-underscores
@@ -375,7 +375,7 @@ in the Mozilla clients.")
"nss-" version ".tar.gz")))
(sha256
(base32
- "0jw6qlfl2g47hhx056nvnj6h92bk3sn46hy3ig61a911dzblvrkb"))
+ "1wf8qapd2lh8pbjd6pp9m32mx1zyddrmv5c4cr86xj3r5ap6n3jy"))
;; Create nss.pc and nss-config.
(patches (search-patches "nss-pkgconfig.patch"
"nss-increase-test-timeout.patch"))))
@@ -415,7 +415,7 @@ in the Mozilla clients.")
(lambda _
;; Use 127.0.0.1 instead of $HOST.$DOMSUF as HOSTADDR for testing.
;; The later requires a working DNS or /etc/hosts.
- (setenv "DOMSUF" "(none)")
+ (setenv "DOMSUF" "localdomain")
(setenv "USE_IP" "TRUE")
(setenv "IP_ADDRESS" "127.0.0.1")
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index f43a0fc2f5..755904231b 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -102,7 +102,7 @@ arrays of data.")
(define-public gstreamer
(package
(name "gstreamer")
- (version "1.14.3")
+ (version "1.14.4")
(source
(origin
(method url-fetch)
@@ -111,7 +111,7 @@ arrays of data.")
version ".tar.xz"))
(sha256
(base32
- "0mh4755an4gk0z3ygqhjpdjk0r2cwswbpwfgl0x6qmnln4757bhk"))))
+ "1izzhnlsy83rgr4zl3jcl1sryxqbbigrrqw3j4x3nnphqnb6ckzr"))))
(build-system gnu-build-system)
(outputs '("out" "doc"))
(arguments
@@ -150,7 +150,7 @@ This package provides the core library and elements.")
(define-public gst-plugins-base
(package
(name "gst-plugins-base")
- (version "1.14.3")
+ (version "1.14.4")
(source
(origin
(method url-fetch)
@@ -158,7 +158,7 @@ This package provides the core library and elements.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0lkr1fm3bz21nqq9vi5v74mlxw6dd6i7piw00fhc5zz0dg1ikczh"))))
+ "0qbllw4kphchwhy4p7ivdysigx69i97gyw6q0rvkx1j81r4kjqfa"))))
(build-system gnu-build-system)
(outputs '("out" "doc"))
(propagated-inputs
@@ -209,7 +209,7 @@ for the GStreamer multimedia library.")
(define-public gst-plugins-good
(package
(name "gst-plugins-good")
- (version "1.14.3")
+ (version "1.14.4")
(source
(origin
(method url-fetch)
@@ -218,7 +218,7 @@ for the GStreamer multimedia library.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0pgzgfqbfp8lz2ns68797xfxdr0cr5rpi93wd1h2grhbmzkbq4ji"))))
+ "0y89qynb4b6fry3h43z1r99qslmi3m8xhlq0i5baq2nbc0r5b2sz"))))
(build-system gnu-build-system)
(inputs
`(("aalib" ,aalib)
@@ -271,14 +271,14 @@ developers consider to have good quality code and correct functionality.")
(define-public gst-plugins-bad
(package
(name "gst-plugins-bad")
- (version "1.14.3")
+ (version "1.14.4")
(source (origin
(method url-fetch)
(uri (string-append "https://gstreamer.freedesktop.org/src/"
name "/" name "-" version ".tar.xz"))
(sha256
(base32
- "1mczcna91f3kkk3yv5fkfa8nmqdr9d93aq9z4d8sv18vkiflw8mj"))))
+ "1r8dma3x127rbx42yab7kwq7q1bhkmvz2ykn0rnqnzl95q74w2wi"))))
(outputs '("out" "doc"))
(build-system gnu-build-system)
(arguments
@@ -346,7 +346,7 @@ par compared to the rest.")
(define-public gst-plugins-ugly
(package
(name "gst-plugins-ugly")
- (version "1.14.3")
+ (version "1.14.4")
(source
(origin
(method url-fetch)
@@ -354,7 +354,7 @@ par compared to the rest.")
name "/" name "-" version ".tar.xz"))
(sha256
(base32
- "01i31g5rvw36rjlyi9w24n0g1xa6053d14vaiba6vqpas727z123"))))
+ "08vd1xgwmapnviah47zv5h2r02qdd20y4f07rvv5zhv6y4vxh0mc"))))
(build-system gnu-build-system)
(inputs
`(("gst-plugins-base" ,gst-plugins-base)
@@ -381,7 +381,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.")
(define-public gst-libav
(package
(name "gst-libav")
- (version "1.14.3")
+ (version "1.14.4")
(source (origin
(method url-fetch)
(uri (string-append
@@ -389,7 +389,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0xxnb80yhfa42x4wx1928zydaal35b2mcj0zdcdsv1apnjdm40wv"))
+ "1nk5g24z2xx5kaw5cg8dv8skdc516inahmkymcz8bxqxj28qbmyz"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -417,7 +417,7 @@ compression formats through the use of the libav library.")
(define-public python-gst
(package
(name "python-gst")
- (version "1.14.3")
+ (version "1.14.4")
(source (origin
(method url-fetch)
(uri (string-append
@@ -425,7 +425,7 @@ compression formats through the use of the libav library.")
"gst-python-" version ".tar.xz"))
(sha256
(base32
- "01w3mpimbm8drifhrkvpns79h15kd9h9v0dynr7yb12kjrnfghsg"))))
+ "06ssx19fs6pg4d32p9ph9w4f0xwmxaw2dxfj17rqkn5njd7v5zfh"))))
(build-system gnu-build-system)
(arguments
;; XXX: Factorize python-sitedir with python-build-system.
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 08f92df96c..3b9a4145e5 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -688,7 +688,7 @@ application suites.")
(name "gtk+")
;; NOTE: When updating the version of 'gtk+', the hash of 'mate-themes' in
;; mate.scm will also need to be updated.
- (version "3.24.0")
+ (version "3.24.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -696,7 +696,7 @@ application suites.")
name "-" version ".tar.xz"))
(sha256
(base32
- "1a1jbsh9fg5ykmwrcl3svy7xfvx0b87d314qsx9n483pj8w93s82"))
+ "0bxhsp7cjph7szg1iyv16nwi60bz59x1smjkqv6sv6mr0zipnf38"))
(patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"
"gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))))
(outputs '("out" "bin" "doc"))
diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm
index fe0923f479..a3a91fe10c 100644
--- a/gnu/packages/imagemagick.scm
+++ b/gnu/packages/imagemagick.scm
@@ -48,14 +48,14 @@
;; The 7 release series has an incompatible API, while the 6 series is still
;; maintained. Don't update to 7 until we've made sure that the ImageMagick
;; users are ready for the 7-series API.
- (version "6.9.10-14")
+ (version "6.9.10-15")
(source (origin
(method url-fetch)
(uri (string-append "mirror://imagemagick/ImageMagick-"
version ".tar.xz"))
(sha256
(base32
- "0vcfjvdk9in92x808djvy94l5gylpgds4a7mlr8jrxsv9snx88yi"))))
+ "0li39qs9dic5rkcq455nv6mchyj6xy55qjnw5aa96s7qxq1c6ix9"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch")
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 12c0033196..3d88b74daf 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -2038,20 +2038,26 @@ from the module-init-tools project.")
;; The post-systemd fork, maintained by Gentoo.
(package
(name "eudev")
- (version "3.2.5")
+ (version "3.2.7")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/gentoo/eudev/archive/v"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference (url "https://github.com/gentoo/eudev")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0dlkcgy7j4fdcksqrpc373zfybiif1bal3n6lpy1kfc5280j02c7"))
+ "1la7x7v7yqb84wnc7w0kj53sa0an0m9xp6wn01ypi8drh02wjjy2"))
(patches (search-patches "eudev-rules-directory.patch"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'make-source-writable
+ (lambda _
+ ;; XXX: Git checkouts are read-only, but this package needs to
+ ;; modify some of its files.
+ (for-each make-file-writable (find-files "."))
+ #t))
(add-before 'bootstrap 'patch-file-names
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "man/make.sh"
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 8a9d1d312b..4be86f3d21 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -95,26 +95,6 @@ languages is in development. The compiler infrastructure includes mirror sets
of programming tools as well as libraries with equivalent functionality.")
(license license:ncsa)))
-;; FIXME: This package is here to prevent many rebuilds on x86_64 and i686
-;; from commit fc9dbf41311d99d0fd8befc789ea7c0e35911890. Update users of
-;; this in the next rebuild cycle.
-(define-public llvm-without-rtti
- (package
- (inherit llvm)
- (arguments
- `(#:configure-flags '("-DCMAKE_SKIP_BUILD_RPATH=FALSE"
- "-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE"
- "-DBUILD_SHARED_LIBS:BOOL=TRUE"
- "-DLLVM_ENABLE_FFI:BOOL=TRUE"
- "-DLLVM_INSTALL_UTILS=ON")
- #:build-type "Release"
- #:phases (modify-phases %standard-phases
- (add-before 'build 'shared-lib-workaround
- (lambda _
- (setenv "LD_LIBRARY_PATH"
- (string-append (getcwd) "/lib"))
- #t)))))))
-
(define* (clang-runtime-from-llvm llvm hash
#:optional (patches '()))
(package
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index e088869682..7c0273bad6 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -2978,7 +2978,7 @@ parts of it.")
(define-public openblas
(package
(name "openblas")
- (version "0.3.3")
+ (version "0.3.4")
(source
(origin
(method url-fetch)
@@ -2987,7 +2987,7 @@ parts of it.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0cvlixnpc3cdvvn3f30phfvsgnqljqix6wn72ps9rj7xdhvw06jg"))))
+ "1s56lgilyyw86dzmj3jkci9zsg24n60wq4d0zri1hrxlxb6ihimj"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
diff --git a/gnu/packages/patches/json-glib-fix-tests-32bit.patch b/gnu/packages/patches/json-glib-fix-tests-32bit.patch
deleted file mode 100644
index 77ea134915..0000000000
--- a/gnu/packages/patches/json-glib-fix-tests-32bit.patch
+++ /dev/null
@@ -1,174 +0,0 @@
-Fix floating point issues on 32-bit platforms:
-
-https://gitlab.gnome.org/GNOME/json-glib/issues/27
-
-This is an amalgamation of the following upstream commits:
-https://gitlab.gnome.org/GNOME/json-glib/commit/70e2648e02232c1a439a7418388f18fee9afb3fe
-https://gitlab.gnome.org/GNOME/json-glib/commit/675e27505776a1d77fa1ffd1974284890caec1f4
-
-diff --git a/json-glib/tests/json-test-utils.h b/json-glib/tests/json-test-utils.h
-new file mode 100644
-index 0000000..83a02c6
---- /dev/null
-+++ b/json-glib/tests/json-test-utils.h
-@@ -0,0 +1,21 @@
-+#include <string.h>
-+#include <math.h>
-+#include <float.h>
-+#include <glib.h>
-+#include <json-glib/json-glib.h>
-+
-+#define json_fuzzy_equals(n1,n2,epsilon) \
-+ (((n1) > (n2) ? ((n1) - (n2)) : ((n2) - (n1))) < (epsilon))
-+
-+#define json_assert_fuzzy_equals(n1,n2,epsilon) \
-+ G_STMT_START { \
-+ double __n1 = (n1), __n2 = (n2), __epsilon = (epsilon); \
-+ if (json_fuzzy_equals (__n1, __n2, __epsilon)) ; else { \
-+ g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
-+ #n1 " == " #n2 " (+/- " #epsilon ")", \
-+ __n1, "==", __n2, 'f'); \
-+ } \
-+ } G_STMT_END
-+
-+#define json_assert_almost_equals(n1,n2) \
-+ json_assert_fuzzy_equals (n1, n2, DBL_EPSILON)
-diff --git a/json-glib/tests/array.c b/json-glib/tests/array.c
-index 98afeab..426cd72 100644
---- a/json-glib/tests/array.c
-+++ b/json-glib/tests/array.c
-@@ -1,9 +1,4 @@
--#include <stdio.h>
--#include <stdlib.h>
--#include <string.h>
--
--#include <glib.h>
--#include <json-glib/json-glib.h>
-+#include "json-test-utils.h"
-
- static void
- test_empty_array (void)
-@@ -37,7 +32,7 @@ test_add_element (void)
-
- json_array_add_double_element (array, 3.14);
- g_assert_cmpint (json_array_get_length (array), ==, 3);
-- g_assert_cmpfloat (json_array_get_double_element (array, 2), ==, 3.14);
-+ json_assert_fuzzy_equals (json_array_get_double_element (array, 2), 3.14, 0.001);
-
- json_array_add_boolean_element (array, TRUE);
- g_assert_cmpint (json_array_get_length (array), ==, 4);
-diff --git a/json-glib/tests/node.c b/json-glib/tests/node.c
-index 23bda63..80beb78 100644
---- a/json-glib/tests/node.c
-+++ b/json-glib/tests/node.c
-@@ -1,6 +1,4 @@
--#include <glib.h>
--#include <json-glib/json-glib.h>
--#include <string.h>
-+#include "json-test-utils.h"
-
- static void
- test_init_int (void)
-@@ -19,7 +17,7 @@ test_init_double (void)
- JsonNode *node = json_node_new (JSON_NODE_VALUE);
-
- json_node_set_double (node, 3.14159);
-- g_assert_cmpfloat (json_node_get_double (node), ==, 3.14159);
-+ json_assert_fuzzy_equals (json_node_get_double (node), 3.14159, 0.00001);
-
- json_node_free (node);
- }
-@@ -119,13 +117,13 @@ test_get_int (void)
-
- json_node_set_int (node, 0);
- g_assert_cmpint (json_node_get_int (node), ==, 0);
-- g_assert_cmpfloat (json_node_get_double (node), ==, 0.0);
-+ json_assert_almost_equals (json_node_get_double (node), 0.0);
- g_assert (!json_node_get_boolean (node));
- g_assert (!json_node_is_null (node));
-
- json_node_set_int (node, 42);
- g_assert_cmpint (json_node_get_int (node), ==, 42);
-- g_assert_cmpfloat (json_node_get_double (node), ==, 42.0);
-+ json_assert_almost_equals (json_node_get_double (node), 42.0);
- g_assert (json_node_get_boolean (node));
- g_assert (!json_node_is_null (node));
-
-@@ -138,7 +136,7 @@ test_get_double (void)
- JsonNode *node = json_node_new (JSON_NODE_VALUE);
-
- json_node_set_double (node, 3.14);
-- g_assert_cmpfloat (json_node_get_double (node), ==, 3.14);
-+ json_assert_fuzzy_equals (json_node_get_double (node), 3.14, 0.001);
- g_assert_cmpint (json_node_get_int (node), ==, 3);
- g_assert (json_node_get_boolean (node));
-
-@@ -232,9 +230,9 @@ test_gvalue_autopromotion (void)
- g_print ("Expecting a gdouble, got a %s\n", g_type_name (G_VALUE_TYPE (&check)));
-
- g_assert_cmpint (G_VALUE_TYPE (&check), ==, G_TYPE_DOUBLE);
-- g_assert_cmpfloat ((float) g_value_get_double (&check), ==, 3.14159f);
-+ json_assert_fuzzy_equals (g_value_get_double (&check), 3.14159, 0.00001);
- g_assert_cmpint (G_VALUE_TYPE (&value), !=, G_VALUE_TYPE (&check));
-- g_assert_cmpfloat ((gdouble) g_value_get_float (&value), ==, g_value_get_double (&check));
-+ json_assert_almost_equals (g_value_get_float (&value), g_value_get_double (&check));
-
- g_value_unset (&value);
- g_value_unset (&check);
-diff --git a/json-glib/tests/parser.c b/json-glib/tests/parser.c
-index f71584a..8c52a1d 100644
---- a/json-glib/tests/parser.c
-+++ b/json-glib/tests/parser.c
-@@ -1,11 +1,5 @@
--#include "config.h"
--
-+#include "json-test-utils.h"
- #include <stdlib.h>
--#include <stdio.h>
--
--#include <glib.h>
--
--#include <json-glib/json-glib.h>
-
- static const gchar *test_empty_string = "";
- static const gchar *test_empty_array_string = "[ ]";
-@@ -38,13 +32,13 @@ verify_string_value (JsonNode *node)
- static void
- verify_double_value (JsonNode *node)
- {
-- g_assert_cmpfloat (10.2e3, ==, json_node_get_double (node));
-+ json_assert_fuzzy_equals (10.2e3, json_node_get_double (node), 0.1);
- }
-
- static void
- verify_negative_double_value (JsonNode *node)
- {
-- g_assert_cmpfloat (-3.14, ==, json_node_get_double (node));
-+ json_assert_fuzzy_equals (-3.14, json_node_get_double (node), 0.01);
- }
-
- static const struct {
-diff --git a/json-glib/tests/reader.c b/json-glib/tests/reader.c
-index 43a6aac..9bab312 100644
---- a/json-glib/tests/reader.c
-+++ b/json-glib/tests/reader.c
-@@ -1,9 +1,4 @@
--#include <stdlib.h>
--#include <stdio.h>
--
--#include <glib.h>
--
--#include <json-glib/json-glib.h>
-+#include "json-test-utils.h"
-
- static const gchar *test_base_array_data =
- "[ 0, true, null, \"foo\", 3.14, [ false ], { \"bar\" : 42 } ]";
-@@ -78,7 +73,7 @@ test_base_object (void)
- g_assert (json_reader_get_error (reader) == NULL);
-
- json_reader_read_member (reader, "double");
-- g_assert_cmpfloat (json_reader_get_double_value (reader), ==, 42.47);
-+ json_assert_fuzzy_equals (json_reader_get_double_value (reader), 42.47, 0.01);
- json_reader_end_element (reader);
-
- g_object_unref (reader);
diff --git a/gnu/packages/patches/postgresql-disable-resolve_symlinks.patch b/gnu/packages/patches/postgresql-disable-resolve_symlinks.patch
new file mode 100644
index 0000000000..97ef6928fe
--- /dev/null
+++ b/gnu/packages/patches/postgresql-disable-resolve_symlinks.patch
@@ -0,0 +1,25 @@
+From 223c82d1d6ed1f29f26307249827ff679e09c780 Mon Sep 17 00:00:00 2001
+From: Julien Lepiller <julien@lepiller.eu>
+Date: Sat, 28 Jul 2018 12:22:12 +0200
+Subject: [PATCH] disable resolve_symlink
+
+---
+ src/common/exec.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/common/exec.c b/src/common/exec.c
+index 878fc29..6b3e283 100644
+--- a/src/common/exec.c
++++ b/src/common/exec.c
+@@ -218,6 +218,8 @@ find_my_exec(const char *argv0, char *retpath)
+ static int
+ resolve_symlinks(char *path)
+ {
++ // On GuixSD we *want* stuff relative to symlinks.
++ return 0;
+ #ifdef HAVE_READLINK
+ struct stat buf;
+ char orig_wd[MAXPGPATH],
+--
+2.18.0
+
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 52832eeeb8..6a2eece734 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -55,7 +55,7 @@
(define-public ruby
(package
(name "ruby")
- (version "2.4.3")
+ (version "2.5.3")
(source
(origin
(method url-fetch)
@@ -64,8 +64,7 @@
"/ruby-" version ".tar.xz"))
(sha256
(base32
- "0l9bv67dgsphk42lmiskhrnh47hbyj6rfg2rcjx22xivpx07srr3"))
- (patches (search-patches "ruby-rubygems-276-for-ruby24.patch"))
+ "0vrhrw7kcz9mg0jkqnihkcxqy5k05v8k1j0y2735z8wfk8sx1j8w"))
(modules '((guix build utils)))
(snippet `(begin
;; Remove bundled libffi
@@ -107,6 +106,26 @@ a focus on simplicity and productivity.")
(home-page "https://www.ruby-lang.org")
(license license:ruby)))
+(define-public ruby-2.4
+ (package
+ (inherit ruby)
+ (version "2.4.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
+ (version-major+minor version)
+ "/ruby-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0l9bv67dgsphk42lmiskhrnh47hbyj6rfg2rcjx22xivpx07srr3"))
+ (patches (search-patches "ruby-rubygems-276-for-ruby24.patch"))
+ (modules '((guix build utils)))
+ (snippet `(begin
+ ;; Remove bundled libffi
+ (delete-file-recursively "ext/fiddle/libffi-3.2.1")
+ #t))))))
+
(define-public ruby-2.3
(package
(inherit ruby)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index fc6caf3ff8..18fdffeb98 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -624,7 +624,7 @@ libebml is a C++ library to read and write EBML files.")
(define-public libva
(package
(name "libva")
- (version "2.2.0")
+ (version "2.3.0")
(source
(origin
(method url-fetch)
@@ -636,7 +636,7 @@ libebml is a C++ library to read and write EBML files.")
(string-append "https://www.freedesktop.org/software/vaapi/releases/"
"libva/libva-" version "/libva-" version ".tar.bz2")))
(sha256
- (base32 "1wjfrs261fp9wkhgpmrlz5smnhxrmsk31way646x6i2mg16a0v3g"))))
+ (base32 "1r6wiw4k044cpb39rfqqdw6qmzw0268whpz124hywck9v980x130"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm
index ff1088d2e1..3608196e5d 100644
--- a/gnu/packages/vulkan.scm
+++ b/gnu/packages/vulkan.scm
@@ -163,7 +163,7 @@ interpretation of the specifications for these languages.")
(define-public vulkan-headers
(package
(name "vulkan-headers")
- (version "1.1.85.0")
+ (version "1.1.92.0")
(source
(origin
(method url-fetch)
@@ -172,7 +172,7 @@ interpretation of the specifications for these languages.")
"archive/sdk-" version ".tar.gz"))
(sha256
(base32
- "166hqqb97kjg6h9vp8yxb1cq02i1kqaxvl693482gf8v21fl7ink"))))
+ "06bgiz1dnp57597vd26r2smsadpcnr425n9gfdbp6xm4wba4l5l9"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; No tests.
@@ -186,7 +186,8 @@ interpretation of the specifications for these languages.")
(define-public vulkan-loader
(package
(name "vulkan-loader")
- (version (package-version vulkan-headers))
+ ;; TODO: Inherit from vulkan-headers when version numbers match again
+ (version "1.1.92.1")
(source
(origin
(method url-fetch)
@@ -195,7 +196,7 @@ interpretation of the specifications for these languages.")
"archive/sdk-" version ".tar.gz"))
(sha256
(base32
- "04d53ynlc0ww8r67hv4sxwg5sirjhpr1laaa9hc6j4niliw0166n"))))
+ "1kx07ypbwnmn6cxv9z0vbngq5l83f1sffzh7wmkzrl69y1cmazi0"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;FIXME: 23/39 tests fail. Try "tests/run_all_tests.sh".
@@ -251,7 +252,7 @@ and the ICD.")
"archive/sdk-" version ".tar.gz"))
(sha256
(base32
- "0r26px9rh09giddajlmafv21rx1la1y3bbnjgnpai8aw98wvq9mm"))))
+ "0yd9dgkyradlk9gx0ps65nans7b29jg5c67b4m34ghpmy933dwx6"))))
(build-system cmake-build-system)
(inputs
`(("glslang" ,glslang)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 82ed065a3f..fdbe19c059 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -318,7 +318,7 @@ rasterisation.")
(define-public libdrm
(package
(name "libdrm")
- (version "2.4.93")
+ (version "2.4.96")
(source
(origin
(method url-fetch)
@@ -328,7 +328,7 @@ rasterisation.")
".tar.bz2"))
(sha256
(base32
- "0g6d9wsnb7lx8r1m4kq8js0wsc5jl20cz1csnlh6z9s8jpfd313f"))
+ "14xkip83qgljjaahzq40qgl60j54q7k00la1hbf5kk5lgg7ilmhd"))
(patches (search-patches "libdrm-symbol-check.patch"))))
(build-system gnu-build-system)
(arguments
diff --git a/gnu/services/databases.scm b/gnu/services/databases.scm
index aff78a0566..7113f1f2a1 100644
--- a/gnu/services/databases.scm
+++ b/gnu/services/databases.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -26,7 +27,10 @@
#:use-module (gnu system shadow)
#:use-module (gnu packages admin)
#:use-module (gnu packages databases)
+ #:use-module (guix build-system trivial)
+ #:use-module (guix build union)
#:use-module (guix modules)
+ #:use-module (guix packages)
#:use-module (guix records)
#:use-module (guix gexp)
#:use-module (srfi srfi-1)
@@ -141,16 +145,18 @@ host all all ::1/128 trust"))
(define-record-type* <postgresql-configuration>
postgresql-configuration make-postgresql-configuration
postgresql-configuration?
- (postgresql postgresql-configuration-postgresql ;<package>
- (default postgresql))
- (port postgresql-configuration-port
- (default 5432))
- (locale postgresql-configuration-locale
- (default "en_US.utf8"))
- (config-file postgresql-configuration-file
- (default (postgresql-config-file)))
- (data-directory postgresql-configuration-data-directory
- (default "/var/lib/postgresql/data")))
+ (postgresql postgresql-configuration-postgresql ;<package>
+ (default postgresql))
+ (port postgresql-configuration-port
+ (default 5432))
+ (locale postgresql-configuration-locale
+ (default "en_US.utf8"))
+ (config-file postgresql-configuration-file
+ (default (postgresql-config-file)))
+ (data-directory postgresql-configuration-data-directory
+ (default "/var/lib/postgresql/data"))
+ (extension-packages postgresql-configuration-extension-packages
+ (default '())))
(define %postgresql-accounts
(list (user-group (name "postgres") (system? #t))
@@ -162,15 +168,36 @@ host all all ::1/128 trust"))
(home-directory "/var/empty")
(shell (file-append shadow "/sbin/nologin")))))
+(define (final-postgresql postgresql extension-packages)
+ (if (null? extension-packages)
+ postgresql
+ (package
+ (inherit postgresql)
+ (source #f)
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils) (guix build union))
+ #:builder
+ (begin
+ (use-modules (guix build utils) (guix build union) (srfi srfi-26))
+ (union-build (assoc-ref %outputs "out") (map (lambda (input) (cdr input)) %build-inputs))
+ #t)))
+ (inputs
+ `(("postgresql" ,postgresql)
+ ,@(map (lambda (extension) (list "extension" extension))
+ extension-packages))))))
+
(define postgresql-activation
(match-lambda
- (($ <postgresql-configuration> postgresql port locale config-file data-directory)
+ (($ <postgresql-configuration> postgresql port locale config-file data-directory
+ extension-packages)
#~(begin
(use-modules (guix build utils)
(ice-9 match))
(let ((user (getpwnam "postgres"))
- (initdb (string-append #$postgresql "/bin/initdb"))
+ (initdb (string-append #$(final-postgresql postgresql extension-packages)
+ "/bin/initdb"))
(initdb-args
(append
(if #$locale
@@ -202,7 +229,8 @@ host all all ::1/128 trust"))
(define postgresql-shepherd-service
(match-lambda
- (($ <postgresql-configuration> postgresql port locale config-file data-directory)
+ (($ <postgresql-configuration> postgresql port locale config-file data-directory
+ extension-packages)
(let* ((pg_ctl-wrapper
;; Wrapper script that switches to the 'postgres' user before
;; launching daemon.
@@ -214,7 +242,8 @@ host all all ::1/128 trust"))
(match (command-line)
((_ mode)
(let ((user (getpwnam "postgres"))
- (pg_ctl #$(file-append postgresql "/bin/pg_ctl"))
+ (pg_ctl #$(file-append (final-postgresql postgresql extension-packages)
+ "/bin/pg_ctl"))
(options (format #f "--config-file=~a -p ~d"
#$config-file #$port)))
(setgid (passwd:gid user))
@@ -253,7 +282,8 @@ host all all ::1/128 trust"))
(port 5432)
(locale "en_US.utf8")
(config-file (postgresql-config-file))
- (data-directory "/var/lib/postgresql/data"))
+ (data-directory "/var/lib/postgresql/data")
+ (extension-packages '()))
"Return a service that runs @var{postgresql}, the PostgreSQL database server.
The PostgreSQL daemon loads its runtime configuration from @var{config-file}
@@ -264,7 +294,8 @@ and stores the database cluster in @var{data-directory}."
(port port)
(locale locale)
(config-file config-file)
- (data-directory data-directory))))
+ (data-directory data-directory)
+ (extension-packages extension-packages))))
;;;