diff --git a/nixos/doc/manual/release-notes/rl-1909.xml b/nixos/doc/manual/release-notes/rl-1909.xml index b8cb83113266..97a381020139 100644 --- a/nixos/doc/manual/release-notes/rl-1909.xml +++ b/nixos/doc/manual/release-notes/rl-1909.xml @@ -62,6 +62,16 @@ compatible with Python 3. + + + PostgreSQL now uses + /run/postgresql as its socket + directory instead of /tmp. So + if you run an application like eg. Nextcloud, where you need to use + the Unix socket path as the database host name, you need to change it + accordingly. + + diff --git a/nixos/modules/services/databases/postgresql.nix b/nixos/modules/services/databases/postgresql.nix index aeab445a9983..87b236dd5fd1 100644 --- a/nixos/modules/services/databases/postgresql.nix +++ b/nixos/modules/services/databases/postgresql.nix @@ -238,6 +238,7 @@ in User = "postgres"; Group = "postgres"; PermissionsStartOnly = true; + RuntimeDirectory = "postgresql"; Type = if lib.versionAtLeast cfg.package.version "9.6" then "notify" else "simple"; diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix index 5ad241ace5c8..eedcccac723c 100644 --- a/nixos/modules/services/web-apps/nextcloud.nix +++ b/nixos/modules/services/web-apps/nextcloud.nix @@ -172,7 +172,7 @@ in { Database host. Note: for using Unix authentication with PostgreSQL, this should be - set to /tmp. + set to /run/postgresql. ''; }; dbport = mkOption { diff --git a/nixos/modules/services/web-apps/nextcloud.xml b/nixos/modules/services/web-apps/nextcloud.xml index 098625aa02f2..dfefa55c5d5e 100644 --- a/nixos/modules/services/web-apps/nextcloud.xml +++ b/nixos/modules/services/web-apps/nextcloud.xml @@ -33,7 +33,7 @@ config = { dbtype = "pgsql"; dbuser = "nextcloud"; - dbhost = "/tmp"; # nextcloud will add /.s.PGSQL.5432 by itself + dbhost = "/run/postgresql"; # nextcloud will add /.s.PGSQL.5432 by itself dbname = "nextcloud"; adminpassFile = "/path/to/admin-pass-file"; adminuser = "root"; diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix index 44559885850f..b42a494ff106 100644 --- a/pkgs/servers/sql/postgresql/default.nix +++ b/pkgs/servers/sql/postgresql/default.nix @@ -60,7 +60,7 @@ let (if atLeast "9.6" then ./patches/less-is-more-96.patch else ./patches/less-is-more.patch) (if atLeast "9.6" then ./patches/hardcode-pgxs-path-96.patch else ./patches/hardcode-pgxs-path.patch) ./patches/specify_pkglibdir_at_runtime.patch - ]; + ] ++ lib.optional stdenv.isLinux ./patches/socketdir-in-run.patch; installTargets = [ "install-world" ]; diff --git a/pkgs/servers/sql/postgresql/patches/socketdir-in-run.patch b/pkgs/servers/sql/postgresql/patches/socketdir-in-run.patch new file mode 100644 index 000000000000..969f80ff8fc7 --- /dev/null +++ b/pkgs/servers/sql/postgresql/patches/socketdir-in-run.patch @@ -0,0 +1,13 @@ +diff --git a/src/include/pg_config_manual.h b/src/include/pg_config_manual.h +index 743401cb96..be5c5f61d2 100644 +--- a/src/include/pg_config_manual.h ++++ b/src/include/pg_config_manual.h +@@ -179,7 +179,7 @@ + * here's where to twiddle it. You can also override this at runtime + * with the postmaster's -k switch. + */ +-#define DEFAULT_PGSOCKET_DIR "/tmp" ++#define DEFAULT_PGSOCKET_DIR "/run/postgresql" + + /* + * This is the default event source for Windows event log.