MSVC installs too much stuff?

Started by Andrew Dunstanalmost 6 years ago4 messages
#1Andrew Dunstan
andrew.dunstan@2ndquadrant.com

When I was working on the test_json stuff yesterday, I noticed that
there are some unexpected (by me at least) things installed when we do
an MSVC build:

$ ls -l bin| egrep 'regress|isolation'
-rwxr-xr-x 1 pgrunner None 72192 Jan 30 07:51 isolationtester.exe
-rwxr-xr-x 1 pgrunner None 112640 Jan 30 07:51 pg_isolation_regress.exe
-rwxr-xr-x 1 pgrunner None 112128 Jan 30 07:51 pg_regress.exe
-rwxr-xr-x 1 pgrunner None 112640 Jan 30 07:51 pg_regress_ecpg.exe

This is made all the more obscure by the fact that the install script
doesn't tell you exactly what it's installing, unlike the "make"
driven install. There could well be other things that are installed
that shouldn't be.

So I think we need to do several things:

. make the install script more verbose
. work out how to ensure the things above (and test_json when we add
it) are not installed.
. check that nothing else is installed that shouldn't be.

cheers

andrew

--
Andrew Dunstan https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#2Michael Paquier
michael@paquier.xyz
In reply to: Andrew Dunstan (#1)
Re: MSVC installs too much stuff?

On Fri, Jan 31, 2020 at 12:47:29PM +1030, Andrew Dunstan wrote:

When I was working on the test_json stuff yesterday, I noticed that
there are some unexpected (by me at least) things installed when we do
an MSVC build:

$ ls -l bin| egrep 'regress|isolation'
-rwxr-xr-x 1 pgrunner None 72192 Jan 30 07:51 isolationtester.exe
-rwxr-xr-x 1 pgrunner None 112640 Jan 30 07:51 pg_isolation_regress.exe
-rwxr-xr-x 1 pgrunner None 112128 Jan 30 07:51 pg_regress.exe
-rwxr-xr-x 1 pgrunner None 112640 Jan 30 07:51 pg_regress_ecpg.exe

This is made all the more obscure by the fact that the install script
doesn't tell you exactly what it's installing, unlike the "make"
driven install. There could well be other things that are installed
that shouldn't be.

+1. Looking at vcregress.pl, all four are always invoked from the
root of the build folder.

So I think we need to do several things:

. make the install script more verbose
. work out how to ensure the things above (and test_json when we add
it) are not installed.
. check that nothing else is installed that shouldn't be.

Hmm. It seems to me that an exclusion list with patterns to match
should be enough in Install.pm. Having only one code path for the
filtering would be nice, which means merging CopyFiles and
CopySetOfFiles.
--
Michael

#3Craig Ringer
craig@2ndquadrant.com
In reply to: Michael Paquier (#2)
Re: MSVC installs too much stuff?

On Fri, 31 Jan 2020 at 13:27, Michael Paquier <michael@paquier.xyz> wrote:

On Fri, Jan 31, 2020 at 12:47:29PM +1030, Andrew Dunstan wrote:

When I was working on the test_json stuff yesterday, I noticed that
there are some unexpected (by me at least) things installed when we do
an MSVC build:

$ ls -l bin| egrep 'regress|isolation'
-rwxr-xr-x 1 pgrunner None 72192 Jan 30 07:51 isolationtester.exe
-rwxr-xr-x 1 pgrunner None 112640 Jan 30 07:51 pg_isolation_regress.exe
-rwxr-xr-x 1 pgrunner None 112128 Jan 30 07:51 pg_regress.exe
-rwxr-xr-x 1 pgrunner None 112640 Jan 30 07:51 pg_regress_ecpg.exe

These tools should be installed. They are useful, important in fact,
for testing extensions.

In *nix builds we install them to
$PREFIX/lib/postgresql/pgxs/src/test/regress/pg_regress etc.

On Windows we don't have PGXS. It probably doesn't make sense to
install them to the pgxs dir. So putting them in bin is pretty
reasonable.

--
Craig Ringer http://www.2ndQuadrant.com/
2ndQuadrant - PostgreSQL Solutions for the Enterprise

#4Andrew Dunstan
andrew.dunstan@2ndquadrant.com
In reply to: Craig Ringer (#3)
Re: MSVC installs too much stuff?

On Fri, Jan 31, 2020 at 4:35 PM Craig Ringer <craig@2ndquadrant.com> wrote:

On Fri, 31 Jan 2020 at 13:27, Michael Paquier <michael@paquier.xyz> wrote:

On Fri, Jan 31, 2020 at 12:47:29PM +1030, Andrew Dunstan wrote:

When I was working on the test_json stuff yesterday, I noticed that
there are some unexpected (by me at least) things installed when we do
an MSVC build:

$ ls -l bin| egrep 'regress|isolation'
-rwxr-xr-x 1 pgrunner None 72192 Jan 30 07:51 isolationtester.exe
-rwxr-xr-x 1 pgrunner None 112640 Jan 30 07:51 pg_isolation_regress.exe
-rwxr-xr-x 1 pgrunner None 112128 Jan 30 07:51 pg_regress.exe
-rwxr-xr-x 1 pgrunner None 112640 Jan 30 07:51 pg_regress_ecpg.exe

These tools should be installed. They are useful, important in fact,
for testing extensions.

In *nix builds we install them to
$PREFIX/lib/postgresql/pgxs/src/test/regress/pg_regress etc.

On Windows we don't have PGXS. It probably doesn't make sense to
install them to the pgxs dir. So putting them in bin is pretty
reasonable.

Oh, Ha! Forget I spoke.

cheers

andrew

--
Andrew Dunstan https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services