All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Seiderer <ps.report@gmx.net>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v1 3/3] package/postgresql: set locale for initdb to C
Date: Tue, 22 Sep 2020 23:25:56 +0200	[thread overview]
Message-ID: <20200922232556.1c52acd6@gmx.net> (raw)
In-Reply-To: <d08f39b4-0461-cbb3-d18e-dce12bac6cad@mind.be>

Hello Arnout,

On Mon, 21 Sep 2020 23:25:03 +0200, Arnout Vandecappelle <arnout@mind.be> wrote:

> On 20/09/2020 17:06, Peter Seiderer wrote:
> > Postgresql systemd startup fails with:
> > 
> >   Starting PostgreSQL database server...
> >   [FAILED] Failed to start PostgreSQL database server.
> >   See 'systemctl status postgresql.service' for details.
> > 
> >   $ systemctl status postgresql.service | cat
> >   ? postgresql.service - PostgreSQL database server
> >        Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
> >        Active: failed (Result: exit-code) since Sat 2020-09-12 12:16:35 UTC; 35s ago
> >       Process: 164 ExecStartPre=/bin/sh -c if [ ! -f /var/lib/pgsql/PG_VERSION ]; then /usr/bin/pg_ctl initdb -D /var/lib/pgsql; fi (code=exited, status=1/FAILURE)
> > 
> >   Sep 12 12:16:35 buildroot systemd[1]: Starting PostgreSQL database server...
> >   Sep 12 12:16:35 buildroot postgres[166]: The files belonging to this database system will be owned by user "postgres".
> >   Sep 12 12:16:35 buildroot postgres[166]: This user must also own the server process.
> >   Sep 12 12:16:35 buildroot postgres[166]: initdb: error: invalid locale settings; check LANG and LC_* environment variables
> >   Sep 12 12:16:35 buildroot systemd[1]: postgresql.service: Control process exited, code=exited, status=1/FAILURE
> >   Sep 12 12:16:35 buildroot postgres[164]: pg_ctl: database system initialization failed
> >   Sep 12 12:16:35 buildroot systemd[1]: postgresql.service: Failed with result 'exit-code'.
> >   Sep 12 12:16:35 buildroot systemd[1]: Failed to start PostgreSQL database server.
> > 
> > Fix it by setting a sane/always available locale=C in the startup files.
> > 
> > A similare failure/fix was reported by Pascal de Bruijn ([1]), but with
> > en_US.UTF-8 instead of C.
> > 
> > [1] http://lists.busybox.net/pipermail/buildroot/2019-November/266700.html
> > 
> > Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> > ---
> > Notes:
> > 
> >  - tested with the following defconfig
> > 
> >     BR2_aarch64=y
> >     BR2_cortex_a72=y
> >     BR2_ARM_FPU_VFPV4=y
> >     BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
> >     BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y
> >     BR2_TOOLCHAIN_BUILDROOT_CXX=y
> >     BR2_INIT_SYSTEMD=y
> >     BR2_SYSTEM_DHCP="eth0"
> >     BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin"
> >     BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypi4-64/post-build.sh"
> >     BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypi4-64/post-image.sh"
> >     BR2_ROOTFS_POST_SCRIPT_ARGS="--add-miniuart-bt-overlay --aarch64"
> >     BR2_LINUX_KERNEL=y
> >     BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
> >     BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,1c64f4bc22811d2d371b271daa3fb27895a8abdd)/linux-1c64f4bc22811d2d371b271daa3fb27895a8abdd.tar.gz"
> >     BR2_LINUX_KERNEL_DEFCONFIG="bcm2711"
> >     BR2_LINUX_KERNEL_DTS_SUPPORT=y
> >     BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2711-rpi-4-b"
> >     BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
> >     BR2_PACKAGE_STRACE=y
> >     BR2_PACKAGE_RPI_FIRMWARE=y
> >     BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4=y
> >     BR2_PACKAGE_POSTGRESQL=y
> >     BR2_TARGET_ROOTFS_EXT2=y
> >     BR2_TARGET_ROOTFS_EXT2_4=y
> >     BR2_TARGET_ROOTFS_EXT2_SIZE="256M"
> >     # BR2_TARGET_ROOTFS_TAR is not set
> >     BR2_PACKAGE_HOST_DOSFSTOOLS=y
> >     BR2_PACKAGE_HOST_GENIMAGE=y
> >     BR2_PACKAGE_HOST_MTOOLS=y
> > ---
> >  package/postgresql/S50postgresql      | 2 +-
> >  package/postgresql/postgresql.service | 2 +-
> >  2 files changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/package/postgresql/S50postgresql b/package/postgresql/S50postgresql
> > index 1ece4fca9e..c47880dfd8 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=C'  
> 
>  I think it would be nicer if the default locale could be used instead of
> forcing C, but I can't be bother to find a solution for that, so

Is there the concept of default locale in buildroot? Did not find
anything setting/using /etc/locale.conf (maybe systemd is setting
something)?

Thanks for review...

Regards,
Peter

> 
> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
> 
> 
>  Regards,
>  Arnout
> 
> >  	echo "done"
> >  fi
> >  
> > diff --git a/package/postgresql/postgresql.service b/package/postgresql/postgresql.service
> > index 53e6f84f00..42d973255c 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=C; fi"
> >  ExecStart=/usr/bin/postgres -D /var/lib/pgsql
> >  ExecReload=/usr/bin/kill -HUP $MAINPID
> >  KillMode=mixed
> >   
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

      reply	other threads:[~2020-09-22 21:25 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-20 15:06 [Buildroot] [PATCH v1 1/3] package/glibc: install locale cmd independent of NLS Peter Seiderer
2020-09-20 15:06 ` [Buildroot] [PATCH v1 2/3] package/postgresql: needs locale command Peter Seiderer
2020-09-21  8:20   ` Thomas Petazzoni
2020-09-21 20:04     ` Peter Seiderer
2020-09-21 21:22       ` Arnout Vandecappelle
2020-09-22 21:20         ` Peter Seiderer
2020-09-20 15:06 ` [Buildroot] [PATCH v1 3/3] package/postgresql: set locale for initdb to C Peter Seiderer
2020-09-21 21:25   ` Arnout Vandecappelle
2020-09-22 21:25     ` Peter Seiderer [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200922232556.1c52acd6@gmx.net \
    --to=ps.report@gmx.net \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.