Thread: Fwd: [GENERAL] pgxs/config/missing is... missing
Full story below, but in short: I see that there is a config/missing script in source, and that Makefile.global.in references it: > src/Makefile.global.in:missing = $(SHELL) $(top_srcdir)/config/missing AFAICT the problem is that missing wasn't included in install or uninstall in config/Makefile. Attached patch fixes that, and results in missing being properly installed in lib/pgxs/config. -------- Forwarded Message -------- Subject: [GENERAL] pgxs/config/missing is... missing Date: Wed, 28 Oct 2015 12:54:54 -0500 From: Jim Nasby <Jim.Nasby@BlueTreble.com> To: pgsql-general <pgsql-general@postgresql.org> CC: David E. Wheeler <david@justatheory.com> I'm trying to install pgTAP on a FreeBSD machine and running into an odd problem: > sed -e 's,MODULE_PATHNAME,$libdir/pgtap,g' -e 's,__OS__,freebsd,g' -e 's,__VERSION__,0.95,g' sql/pgtap-core.sql > sql/pgtap-core.tmp > /bin/sh /usr/local/lib/postgresql/pgxs/src/makefiles/../../config/missing perl compat/gencore 0 sql/pgtap-core.tmp > sql/pgtap-core.sql > cannot open /usr/local/lib/postgresql/pgxs/src/makefiles/../../config/missing: No such file or directory > Makefile:124: recipe for target 'sql/pgtap-core.sql' failed That particular recipe is > sql/pgtap-core.sql: sql/pgtap.sql.in > cp $< $@ > sed -e 's,sql/pgtap,sql/pgtap-core,g' compat/install-8.4.patch | patch -p0 > sed -e 's,sql/pgtap,sql/pgtap-core,g' compat/install-8.3.patch | patch -p0 > sed -e 's,MODULE_PATHNAME,$$libdir/pgtap,g' -e 's,__OS__,$(OSNAME),g' -e 's,__VERSION__,$(NUMVERSION),g' sql/pgtap-core.sql> sql/pgtap-core.tmp > $(PERL) compat/gencore 0 sql/pgtap-core.tmp > sql/pgtap-core.sql > rm sql/pgtap-core.tmp and it's the $(PERL) that's failing. If I add this recipe print-% : ; @echo $* = $($*) and do gmake print-PERL I indeed get PERL = /bin/sh /usr/local/lib/postgresql/pgxs/src/makefiles/../../config/missing perl even after explicitly exporting PERL=/usr/local/bin/perl I see that there is a config/missing script in source, and that Makefile.global.in references it: > src/Makefile.global.in:missing = $(SHELL) $(top_srcdir)/config/missing Any ideas why it's not being installed, or why the PGXS Makefile is ignoring/over-riding $PERL? -- Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX Experts in Analytics, Data Architecture and PostgreSQL Data in Trouble? Get it in Treble! http://BlueTreble.com -- Sent via pgsql-general mailing list (pgsql-general@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general
Attachment
Jim Nasby <Jim.Nasby@BlueTreble.com> writes: > AFAICT the problem is that missing wasn't included in install or > uninstall in config/Makefile. Attached patch fixes that, and results in > missing being properly installed in lib/pgxs/config. I thought we'd more or less rejected that approach in the previous thread. regards, tom lane
On 12/10/15 7:09 PM, Tom Lane wrote: > Jim Nasby <Jim.Nasby@BlueTreble.com> writes: >> AFAICT the problem is that missing wasn't included in install or >> uninstall in config/Makefile. Attached patch fixes that, and results in >> missing being properly installed in lib/pgxs/config. > > I thought we'd more or less rejected that approach in the previous thread. David Wheeler and I worked on a way to work around this in the pgTap extension, but AFAICT there's a bug here. The FreeBSD packages seems to be built without having PERL on the system, so if you try and use it with PGXS to set PERL, you end up with PERL = /bin/sh /usr/local/lib/postgresql/pgxs/src/makefiles/../../config/missing perl which is coming out of the PGXS makefile. And that would work fine, if we were actually installing config/missing. If instead of installing config/missing we want to just drop that file completely we can do that, but then we should remove it from sorce and from the makefiles. -- Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX Experts in Analytics, Data Architecture and PostgreSQL Data in Trouble? Get it in Treble! http://BlueTreble.com
On 12/11/15 6:25 PM, Jim Nasby wrote: > On 12/10/15 7:09 PM, Tom Lane wrote: >> Jim Nasby <Jim.Nasby@BlueTreble.com> writes: >>> AFAICT the problem is that missing wasn't included in install or >>> uninstall in config/Makefile. Attached patch fixes that, and results in >>> missing being properly installed in lib/pgxs/config. >> >> I thought we'd more or less rejected that approach in the previous >> thread. > > David Wheeler and I worked on a way to work around this in the pgTap > extension, but AFAICT there's a bug here. The FreeBSD packages seems to > be built without having PERL on the system, so if you try and use it > with PGXS to set PERL, you end up with > > PERL = /bin/sh > /usr/local/lib/postgresql/pgxs/src/makefiles/../../config/missing perl > > which is coming out of the PGXS makefile. And that would work fine, if > we were actually installing config/missing. > > If instead of installing config/missing we want to just drop that file > completely we can do that, but then we should remove it from sorce and > from the makefiles. Grr, right after sending this I found the thread you were talking about. I'm not really sure our missing is better than just letting the error bubble up. If folks think that's better then lets just rip missing out entirely. If we do decide to keep missing, we should probably clarify it's messages to indicate that the relevant file was missing when *configure was run*. -- Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX Experts in Analytics, Data Architecture and PostgreSQL Data in Trouble? Get it in Treble! http://BlueTreble.com
Jim Nasby <Jim.Nasby@BlueTreble.com> writes: > Grr, right after sending this I found the thread you were talking about. > I'm not really sure our missing is better than just letting the error > bubble up. If folks think that's better then lets just rip missing out > entirely. Well, that's what I was suggesting in the other thread, but it wasn't drawing consensus. Don't know if you noticed, but I committed your earlier patch a few hours ago. We can revert it if we somehow get to a consensus that we don't need "missing". regards, tom lane