Thread: 9.4.19 devel packages pg_config.h broken
Hi folks
--
The 9.4.19 devel package appears to have a misplaced pg_config.h. Compare:
$ rpm -qlp ~/Downloads/postgresql94-devel-9.4.19-1PGDG.f27.x86_64.rpm |grep 'pg_config.h'
/usr/pgsql-9.4/include/postgresql-94-ecpg_config.h
/usr/pgsql-9.4/include/postgresql-94-pg_config.h
/usr/pgsql-9.4/include/server/postgresql-94-pg_config.h
with
$ rpm -qlp ~/Downloads/postgresql96-devel-9.6.10-1PGDG.f27.x86_64.rpm |grep 'pg_config.h'
/usr/pgsql-9.6/include/ecpg_config.h
/usr/pgsql-9.6/include/pg_config.h
/usr/pgsql-9.6/include/server/pg_config.h
Note we have postgresql-94-pg_config.h in 9.4, and pg_config.h in 9.6.
I suspect this was an unintended change. I can't see where it came from in any recent commits, which is a bit surprising.
There's
Source5: %{sname}-%{pgmajorversion}-pg_config.h
in the redhat master packages for postgresql, but that's fine/normal. Changes in 3a4b12670 on May 10 added unified Makefile for PostgreSQL 9.4, which seems to have changed
Source5: pg_config.h
to
Source5: %{sname}-%{pgmajorversion}-pg_config.h
Source5: %{sname}-%{pgmajorversion}-pg_config.h
and I'm guessing the problem got introduced there somehow.
I suspect the issue is that the 9.4 spec rpm/redhat/9.4/postgresql/master/postgresql-9.4.spec has
%{__install} -m 644 %{SOURCE5} %{buildroot}%{pgbaseinstdir}/include/
(line 715)
wheras the pg10 spec rpm/redhat/10/postgresql/master/postgresql-10.spec has
%{__install} -m 644 %{SOURCE5} %{buildroot}%{pgbaseinstdir}/include/pg_config.h
Note the destination file name specified for pg10 but not 9.4.
I see this fixed by commit
commit f448ded3a79dccfc1a95f032aa80ab228c2c7a09 (HEAD -> master, pgrpms/master)
Author: John K. Harvey <john.harvey@crunchydata.com>
Date: Wed Aug 15 15:32:56 2018 -0400
Fix broken PGXS=1 builds in -devel package (missing pg_config.h error)
so thanks. Unclear if you noticed this independently or from my mail, but either way, thanks.
Hi Craig, Petr also pinged me privately about this, and John fixed it yesterday. The new packages are up. Thanks for the report! I broke it while unifying the spec file, as you guessed. Regards, Devrim On Wed, 2018-08-15 at 16:58 +0800, Craig Ringer wrote: > Hi folks > > The 9.4.19 devel package appears to have a misplaced pg_config.h. Compare: > > $ rpm -qlp ~/Downloads/postgresql94-devel-9.4.19-1PGDG.f27.x86_64.rpm |grep > 'pg_config.h' > /usr/pgsql-9.4/include/postgresql-94-ecpg_config.h > /usr/pgsql-9.4/include/postgresql-94-pg_config.h > /usr/pgsql-9.4/include/server/postgresql-94-pg_config.h > > with > > $ rpm -qlp ~/Downloads/postgresql96-devel-9.6.10-1PGDG.f27.x86_64.rpm |grep > 'pg_config.h' > /usr/pgsql-9.6/include/ecpg_config.h > /usr/pgsql-9.6/include/pg_config.h > /usr/pgsql-9.6/include/server/pg_config.h > > Note we have postgresql-94-pg_config.h in 9.4, and pg_config.h in 9.6. > > I suspect this was an unintended change. I can't see where it came from in > any recent commits, which is a bit surprising. > > There's > > Source5: %{sname}-%{pgmajorversion}-pg_config.h > > in the redhat master packages for postgresql, but that's fine/normal. > Changes in 3a4b12670 on May 10 added unified Makefile for PostgreSQL 9.4, > which seems to have changed > > Source5: pg_config.h > to > Source5: %{sname}-%{pgmajorversion}-pg_config.h > > and I'm guessing the problem got introduced there somehow. > > I suspect the issue is that the 9.4 > spec rpm/redhat/9.4/postgresql/master/postgresql-9.4.spec has > > %{__install} -m 644 %{SOURCE5} > %{buildroot}%{pgbaseinstdir}/include/ > > (line 715) > > wheras the pg10 spec rpm/redhat/10/postgresql/master/postgresql-10.spec has > > %{__install} -m 644 %{SOURCE5} > %{buildroot}%{pgbaseinstdir}/include/pg_config.h > > Note the destination file name specified for pg10 but not 9.4. > > > > -- Devrim Gündüz EnterpriseDB: https://www.enterprisedb.com PostgreSQL Consultant, Red Hat Certified Engineer Twitter: @DevrimGunduz , @DevrimGunduzTR