Thread: libpq_pipeline in tmp_install

libpq_pipeline in tmp_install

From
Peter Eisentraut
Date:
The test program libpq_pipeline produced by the test suite in 
src/test/modules/libpq_pipeline/ is installed into tmp_install as part 
of make check.  This isn't a real problem by itself, but I think it 
creates a bit of an asymmetric situation that might be worth cleaning up.

Before, the contents of tmp_install exactly matched an actual 
installation.  There were no extra test programs installed.

Also, the test suite code doesn't actually use that installed version, 
so it's not of any use, and it creates confusion about which copy is in use.

The reason this is there is that the test suite uses PGXS to build the 
test program, and so things get installed automatically.  I suggest that 
we should either write out the build system by hand to avoid this, or 
maybe extend PGXS to support building programs but not installing them. 
The advantage of the former approach is that it would allow additional 
test programs to be added later as well.  (We should really collect the 
libpq tests under src/interfaces/libpq/ anyway at some point.)



Re: libpq_pipeline in tmp_install

From
Peter Eisentraut
Date:
On 10.05.21 20:26, Peter Eisentraut wrote:
> The test program libpq_pipeline produced by the test suite in 
> src/test/modules/libpq_pipeline/ is installed into tmp_install as part 
> of make check.  This isn't a real problem by itself, but I think it 
> creates a bit of an asymmetric situation that might be worth cleaning up.
> 
> Before, the contents of tmp_install exactly matched an actual 
> installation.  There were no extra test programs installed.
> 
> Also, the test suite code doesn't actually use that installed version, 
> so it's not of any use, and it creates confusion about which copy is in 
> use.
> 
> The reason this is there is that the test suite uses PGXS to build the 
> test program, and so things get installed automatically.  I suggest that 
> we should either write out the build system by hand to avoid this, or 
> maybe extend PGXS to support building programs but not installing them. 

Here is a patch that implements the second solution, which turned out to 
be very easy.

Attachment

Re: libpq_pipeline in tmp_install

From
Tom Lane
Date:
Peter Eisentraut <peter.eisentraut@enterprisedb.com> writes:
> On 10.05.21 20:26, Peter Eisentraut wrote:
>> The reason this is there is that the test suite uses PGXS to build the 
>> test program, and so things get installed automatically.  I suggest that 
>> we should either write out the build system by hand to avoid this, or 
>> maybe extend PGXS to support building programs but not installing them. 

> Here is a patch that implements the second solution, which turned out to 
> be very easy.

+1, except that you should add documentation for NO_INSTALL to the
list of definable symbols at the head of pgxs.mk, and to the list
in extend.sgml (compare that for NO_INSTALLCHECK).

            regards, tom lane



Re: libpq_pipeline in tmp_install

From
Alvaro Herrera
Date:
On 2021-May-19, Tom Lane wrote:

> Peter Eisentraut <peter.eisentraut@enterprisedb.com> writes:
> > On 10.05.21 20:26, Peter Eisentraut wrote:
> >> The reason this is there is that the test suite uses PGXS to build the 
> >> test program, and so things get installed automatically.  I suggest that 
> >> we should either write out the build system by hand to avoid this, or 
> >> maybe extend PGXS to support building programs but not installing them. 
> 
> > Here is a patch that implements the second solution, which turned out to 
> > be very easy.

Great, thank you.

> +1, except that you should add documentation for NO_INSTALL to the
> list of definable symbols at the head of pgxs.mk, and to the list
> in extend.sgml (compare that for NO_INSTALLCHECK).

I propose this.

-- 
Álvaro Herrera       Valdivia, Chile

Attachment

Re: libpq_pipeline in tmp_install

From
Tom Lane
Date:
Alvaro Herrera <alvherre@alvh.no-ip.org> writes:
> On 2021-May-19, Tom Lane wrote:
>> +1, except that you should add documentation for NO_INSTALL to the
>> list of definable symbols at the head of pgxs.mk, and to the list
>> in extend.sgml (compare that for NO_INSTALLCHECK).

> I propose this.

WFM.

            regards, tom lane



Re: libpq_pipeline in tmp_install

From
Peter Eisentraut
Date:
On 19.05.21 19:35, Tom Lane wrote:
> Alvaro Herrera <alvherre@alvh.no-ip.org> writes:
>> On 2021-May-19, Tom Lane wrote:
>>> +1, except that you should add documentation for NO_INSTALL to the
>>> list of definable symbols at the head of pgxs.mk, and to the list
>>> in extend.sgml (compare that for NO_INSTALLCHECK).
> 
>> I propose this.
> 
> WFM.

Thanks for the feedback.  I found that my proposal doesn't quite work, 
because "check" doesn't depend on "all" (anymore; see dbf2ec1a1c0), so 
running make check-world doesn't build the test program first.  The 
easiest workaround I found was to add an "install: all" line even for 
the NO_INSTALL case.  It's all a bit hackish, though.

Attachment