]> granicus.if.org Git - postgresql/commitdiff
MSVC: Future-proof installation file skip logic.
authorNoah Misch <noah@leadboat.com>
Thu, 30 Jul 2015 02:48:25 +0000 (22:48 -0400)
committerNoah Misch <noah@leadboat.com>
Thu, 30 Jul 2015 02:48:25 +0000 (22:48 -0400)
This code relied on knowing exactly where in the source tree temporary
installations might appear.  A reasonable hacker may not think to update
this code when adding use of a temporary installation, making it
fragile.  Observe that commit 9fa8b0ee90c44c0f97d16bf65e94322988c94864
broke it unnoticed, and commit dcae5faccab64776376d354decda0017c648bb53
fixed it unnoticed.  Back-patch to 9.5 only; use of temporary
installations is unlikely to change in released versions.

src/tools/msvc/Install.pm

index b592f997f6cf9863c77a906f915fdc506b63b0db..f9557254a4b2b1c481b89f8d33c527415dfb0c06 100644 (file)
@@ -98,6 +98,9 @@ sub Install
                {   wanted => sub {
                                /^.*\.sample\z/s
                                  && push(@$sample_files, $File::Find::name);
+
+                               # Don't find files of in-tree temporary installations.
+                               $_ eq 'share' and $File::Find::prune = 1;
                          }
                },
                @top_dir);
@@ -152,6 +155,9 @@ sub Install
                        {   wanted => sub {
                                        /^(.*--.*\.sql|.*\.control)\z/s
                                          && push(@$pl_extension_files, $File::Find::name);
+
+                                       # Don't find files of in-tree temporary installations.
+                                       $_ eq 'share' and $File::Find::prune = 1;
                                  }
                        },
                        @pldirs);
@@ -199,8 +205,6 @@ sub CopySetOfFiles
        print "Copying $what" if $what;
        foreach (@$flist)
        {
-               next if /regress/;      # Skip temporary install in regression subdir
-               next if /ecpg.test/;    # Skip temporary install in regression subdir
                my $tgt = $target . basename($_);
                print ".";
                lcopy($_, $tgt) || croak "Could not copy $_: $!\n";