[Buildroot] [PATCH 1/2] package/postgresql: explicitly use en_US.UTF-8 locale for initdb

Pascal de Bruijn p.debruijn at unilogic.nl
Thu Nov 21 10:15:38 UTC 2019


From: Pascal de Bruijn <pmjdebruijn at pcode.nl>

postgres[290]: initdb: error: invalid locale settings; check LANG and LC_* environment variables
postgres[290]: pg_ctl: database system initialization failed

Signed-off-by: Pascal de Bruijn <p.debruijn at unilogic.nl>
---
 package/postgresql/Config.in          | 2 ++
 package/postgresql/S50postgresql      | 2 +-
 package/postgresql/postgresql.service | 2 +-
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/package/postgresql/Config.in b/package/postgresql/Config.in
index e548d3c..e912249 100644
--- a/package/postgresql/Config.in
+++ b/package/postgresql/Config.in
@@ -17,6 +17,8 @@ config BR2_PACKAGE_POSTGRESQL
 	  Enable the zlib package to gain builtin compression for
 	  archives with pg_dump and pg_restore.
 
+	  NOTE: PostgreSQL needs a working en_US.UTF-8 locale (BR2_GENERATE_LOCALE)
+
 	  http://www.postgresql.org
 
 comment "postgresql needs a toolchain w/ dynamic library, wchar"
diff --git a/package/postgresql/S50postgresql b/package/postgresql/S50postgresql
index 1ece4fc..3c0c520 100644
--- a/package/postgresql/S50postgresql
+++ b/package/postgresql/S50postgresql
@@ -7,7 +7,7 @@ umask 077
 
 if [ ! -f /var/lib/pgsql/PG_VERSION ]; then
 	echo "Initializing postgresql data base..."
-	su - postgres -c '/usr/bin/pg_ctl initdb -D /var/lib/pgsql'
+	su - postgres -c '/usr/bin/pg_ctl initdb -D /var/lib/pgsql -o --locale=en_US.UTF-8'
 	echo "done"
 fi
 
diff --git a/package/postgresql/postgresql.service b/package/postgresql/postgresql.service
index 53e6f84..4bbe742 100644
--- a/package/postgresql/postgresql.service
+++ b/package/postgresql/postgresql.service
@@ -17,7 +17,7 @@ StandardError=syslog
 SyslogIdentifier=postgres
 PIDFile=/var/lib/pgsql/postmaster.pid
 
-ExecStartPre=/bin/sh -c "if [ ! -f /var/lib/pgsql/PG_VERSION ]; then /usr/bin/pg_ctl initdb -D /var/lib/pgsql; fi"
+ExecStartPre=/bin/sh -c "if [ ! -f /var/lib/pgsql/PG_VERSION ]; then /usr/bin/pg_ctl initdb -D /var/lib/pgsql -o --locale=en_US.UTF-8; fi"
 ExecStart=/usr/bin/postgres -D /var/lib/pgsql
 ExecReload=/usr/bin/kill -HUP $MAINPID
 KillMode=mixed
-- 
2.7.4




More information about the buildroot mailing list