Bug 236060 - databases/postgresql11-server: pkg-message-server.in is wrong about login classes
Summary: databases/postgresql11-server: pkg-message-server.in is wrong about login cla...
Status: Open
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Many People
Assignee: Palle Girgensohn
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-02-26 17:02 UTC by Michael Osipov
Modified: 2019-08-17 13:37 UTC (History)
3 users (show)

See Also:
bugzilla: maintainer-feedback? (pgsql)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Osipov 2019-02-26 17:02:16 UTC
The file says:

> Then add 'postgresql_class="postgres"' to /etc/rc.conf.

I believe that this is wrong because the manpage of rc.subr(8) says:

> ${name}_login_class
>	Login class to use with ${name}_limits.  Defaults
> 	to ``daemon''.

So I expect it to be 'postgresql_login_class="postgres"'.

This issue seems to exist multiple times:

> [mosipov@mika-ion /usr/ports/databases]$ grep -r postgresql_class .
> ./postgresql10-server/files/postgresql.in:#  postgresql_class="default"
> ./postgresql10-server/files/postgresql.in:postgresql_class=${postgresql_class:-"default"}
> ./postgresql10-server/files/postgresql.in:    ${su_cmd} -l -c ${postgresql_class} ${postgresql_user} -c "exec %%PREFIX%%/bin/initdb ${postgresql_initdb_flags} -D ${postgresql_data} -U ${postgresql_user}"
> ./postgresql10-server/files/pkg-message-server.in:Then add 'postgresql_class="postgres"' to /etc/rc.conf.
> ./postgresql94-server/files/pkg-message-server.in:Then add 'postgresql_class="postgres"' to /etc/rc.conf.
> ./postgresql94-server/files/postgresql.in:#  postgresql_class="default"
> ./postgresql94-server/files/postgresql.in:postgresql_class=${postgresql_class:-"default"}
> ./postgresql94-server/files/postgresql.in:    ${su_cmd} -l -c ${postgresql_class} ${postgresql_user} -c "exec %%PREFIX%%/bin/initdb ${postgresql_initdb_flags} -D ${postgresql_data} -U ${postgresql_user}"
> ./postgresql95-server/files/postgresql.in:#  postgresql_class="default"
> ./postgresql95-server/files/postgresql.in:postgresql_class=${postgresql_class:-"default"}
> ./postgresql95-server/files/postgresql.in:    ${su_cmd} -l -c ${postgresql_class} ${postgresql_user} -c "exec %%PREFIX%%/bin/initdb ${postgresql_initdb_flags} -D ${postgresql_data} -U ${postgresql_user}"
> ./postgresql95-server/files/pkg-message-server.in:Then add 'postgresql_class="postgres"' to /etc/rc.conf.
> ./postgresql96-server/files/postgresql.in:#  postgresql_class="default"
> ./postgresql96-server/files/postgresql.in:postgresql_class=${postgresql_class:-"default"}
> ./postgresql96-server/files/postgresql.in:    ${su_cmd} -l -c ${postgresql_class} ${postgresql_user} -c "exec %%PREFIX%%/bin/initdb ${postgresql_initdb_flags} -D ${postgresql_data} -U ${postgresql_user}"
> ./postgresql96-server/files/pkg-message-server.in:Then add 'postgresql_class="postgres"' to /etc/rc.conf.
> ./postgresql11-server/files/pkg-message-server.in:Then add 'postgresql_class="postgres"' to /etc/rc.conf.
> ./postgresql11-server/files/postgresql.in:#  postgresql_class="default"
> ./postgresql11-server/files/postgresql.in:postgresql_class=${postgresql_class:-"default"}
> ./postgresql11-server/files/postgresql.in:    ${su_cmd} -l -c ${postgresql_class} ${postgresql_user} -c "exec %%PREFIX%%/bin/initdb ${postgresql_initdb_flags} -D ${postgresql_data} -U ${postgresql_user}"
>
Comment 1 Palle Girgensohn freebsd_committer 2019-02-26 21:52:23 UTC
Hi,

Hmm, yes, although just by looking at the rc script, I'm not sure it actually honors the class at all, either way you configure it. I have to look into this. The rc script could do with some refactoring anyway...
Comment 2 Michael Osipov 2019-02-27 08:39:37 UTC
Something still seems fishy about it:

postgres:\
        :lang=C.UTF-8:\
        :setenv=LC_COLLATE=C:\
        :tc=default:

# PostgreSQL database
postgresql_enable="YES"
postgresql_data="/usr/local/pgsql/data"
postgresql_class="postgres"

2063 # procstat -e 96452
  PID COMM             ENVIRONMENT
96452 postgres         LSCOLORS=gxfxcxdxbxegedabagacad HTTP_PROXY=http://194.145.60.1:9400 LANG=de_DE.UTF-8 NO_PROXY="localhost .siemens.net .siemens.com .siemens.de" MAIL=/var/mail/postgres PGLOCALEDIR=/usr/local/share/locale PATH=/sbin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/var/db/postgres/bin PGDATA=/usr/local/pgsql/data PWD=/var/db/postgres PGSYSCONFDIR=/usr/local/etc/postgresql TERM=xterm HOME=/var/db/postgres USER=postgres SHELL=/bin/sh PG_GRANDPARENT_PID=96450 MM_CHARSET=UTF-8 HTTPS_PROXY=https://194.145.60.1:9400 FTP_PROXY=ftp://194.145.60.1:9400 BLOCKSIZE=K

It isn't passed to the process..
Comment 3 Palle Girgensohn freebsd_committer 2019-02-27 10:27:11 UTC
(In reply to Michael Osipov from comment #2)

Indeed, it looks plain wrong. I'm lookin into it.

Palle
Comment 4 Michael Osipov 2019-02-27 10:33:53 UTC
(In reply to Michael Osipov from comment #2)

The rc.conf section was supposed to read:

# PostgreSQL database
postgresql_enable="YES"
postgresql_data="/usr/local/pgsql/data"
postgresql_class="postgres"
postgresql_login_class="postgres"
Comment 5 Michael Osipov 2019-02-27 16:23:52 UTC
Just wanted to add that I have tried to ally the very same for the nexus2 port. Does not work either. I have ended up with _env="LANG=C.UTF-8", but this should be necessary.
Comment 6 Walter Schwarzenfeld freebsd_triage 2019-08-17 13:37:55 UTC
ping!