Re: A change in the Debian install

From: Stephen Frost <sfrost(at)snowman(dot)net>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: rob stone <floriparob(at)gmail(dot)com>, "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: A change in the Debian install
Date: 2017-04-06 13:46:29
Message-ID: 20170406134629.GT9812@tamriel.snowman.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Tom,

* Tom Lane (tgl(at)sss(dot)pgh(dot)pa(dot)us) wrote:
> (But ... these statements are based on an assumption of out-of-the-
> box Postgres behavior. I would not exactly put it past the Debian
> packagers to have decided to change this for reasons of their own,
> and their track record of telling us about such decisions is many
> miles south of abysmal. So you might look at whatever patches
> are in the Debian package to see if there's anything touching
> pgstat.c's socket-setup logic.)

I don't believe this is really a fair assessment. Maybe at some point
in the distant past, but not today. Christoph is regularly on this list
contributing to threads regarding packaging, submitting patches of his
own for improvements to PG, and the patches currently included in the
Debian distribution, at least mostly, are for things which really should
be possible to do with configure options, but which we don't provide
today, or things we should just be handling already.

The non-comment/documentation patches include for the Debian PG 9.6
packages are:

50-per-version-dirs.patch
Use version specific installation directories so that several major
versions can be installed in parallel. This includes changing
pkglibdir and includedir_server. Those might be able to be set
through existing configure flags and that's probably something we
could work with Christoph to do. There's also a change to pg_config
which might be a bit more difficult to handle in upstream (related to
how pg_config ends up in /usr/bin, but that isn't the "right" BINDIR).

51-default-sockets-in-var.patch
Use /var/run/postgresql/ for the DEFAULT_PGSOCKET_DIR. We really
should allow this to be changed in configure.

54-debian-alternatives-for-external-tools.patch
Use 'sensible-editor' for DEFAULT_EDITOR, and 'pager' for
DEFAULT_PAGER. These could also be done through configure switches, I
would think.

64-pg_upgrade-sockdir
This is a bit of a curious one, the description is:
Fix for: connection to database failed: Unix-domain socket path
"/build/buildd-postgresql-9.3_9.3~beta1-1-i386-mHjRUH/postgresql-9.3-9.3~beta1/build/contrib/pg_upgrade/.s.PGSQL.50432"
is too long (maximum 107 bytes)

See also: http://lists.debian.org/debian-wb-team/2013/05/msg00015.html

This basically adds a mechanism to fall back to using /tmp if the
socket path is too long. Would probably be good to figure out a
better way.

filter-debug-prefix-map
Description: Remove -fdebug-prefix-map=/p/w/d=. from CFLAGS and
CONFIGURE in pg_config. The embedded path makes the build
non-reproducible, and the flag is useless for building extensions
anyway.
Not sure there's much we can do about this one, but it's also just for
pg_config.

hurd-sem_init
Adds -pthread to LIBS and forces POSIX semaphores on hurd. I'm not
sure if this is all still required, but if so, it'd probably be ideal
if we could figure out a way to handle it automatically instead of
making the Debian packagers have to do it.

In short, there's certainly nothing that touches pgstat.c's socket-setup
logic and almost all of the changes are just changes to #define's to
specify alternative paths or external tools.

I'll start a discussion with Christoph on if we might, already, be able
to remove some of these, and where we might be able to make upstream
changes to remove the need for others.

Thanks!

Stephen

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message pinker 2017-04-06 14:10:01 Re: Archiving data to another server using copy, psql with pipe
Previous Message Ertan Küçükoğlu 2017-04-06 13:40:29 Re: Advise on primary key for detail tables (OS: Raspberry Pi)