Re: [PATCHES] [HACKERS] msvc, build and install with cygwin in the PATH

2007-09-23 Thread Tom Lane
Magnus Hagander [EMAIL PROTECTED] writes:
 Andrew Dunstan wrote:
 I have committed a fix that is somewhat similar to this. The Install.pm
 module needs some love, but that will have to wait till the next cycle.

 Thanks, Andrew!

Guys, would you comment on whether this patch closes all the open issues
that Bruce has listed for the MSVC port on his pending patches page?
Specifically, the half-dozen messages with MSVC in their subjects at
http://momjian.us/cgi-bin/pgpatches

regards, tom lane

---(end of broadcast)---
TIP 3: Have you checked our extensive FAQ?

   http://www.postgresql.org/docs/faq


Re: [PATCHES] [HACKERS] msvc, build and install with cygwin in the PATH

2007-09-23 Thread Magnus Hagander
Tom Lane wrote:
 Magnus Hagander [EMAIL PROTECTED] writes:
 Andrew Dunstan wrote:
 I have committed a fix that is somewhat similar to this. The Install.pm
 module needs some love, but that will have to wait till the next cycle.
 
 Thanks, Andrew!
 
 Guys, would you comment on whether this patch closes all the open issues
 that Bruce has listed for the MSVC port on his pending patches page?
 Specifically, the half-dozen messages with MSVC in their subjects at
 http://momjian.us/cgi-bin/pgpatches

It should, but it'd be good if Hannes can confirm that.

Or - it should fix all except
http://momjian.us/mhonarc/patches/msg00310.html.

//Magnus


---(end of broadcast)---
TIP 2: Don't 'kill -9' the postmaster


Re: [PATCHES] [HACKERS] msvc, build and install with cygwin in the PATH

2007-09-23 Thread Andrew Dunstan



Tom Lane wrote:

Magnus Hagander [EMAIL PROTECTED] writes:
  

Andrew Dunstan wrote:


I have committed a fix that is somewhat similar to this. The Install.pm
module needs some love, but that will have to wait till the next cycle.
  


  

Thanks, Andrew!



Guys, would you comment on whether this patch closes all the open issues
that Bruce has listed for the MSVC port on his pending patches page?
Specifically, the half-dozen messages with MSVC in their subjects at
http://momjian.us/cgi-bin/pgpatches

  


All but WIP - MSVC build script replacements. I was intending to 
commit the two new perl files today, which will make adapting the 
buildfarm easier, but given how close we are to beta hold off on 
changing the .bat files to make them pure wrappers till the new dev cycle.


cheers

andrew

---(end of broadcast)---
TIP 3: Have you checked our extensive FAQ?

  http://www.postgresql.org/docs/faq


Re: [PATCHES] [HACKERS] msvc, build and install with cygwin in the PATH

2007-09-23 Thread Hannes Eder

Magnus Hagander schrieb:

Tom Lane wrote:
  

Magnus Hagander [EMAIL PROTECTED] writes:


Andrew Dunstan wrote:
  

I have committed a fix that is somewhat similar to this. The Install.pm
module needs some love, but that will have to wait till the next cycle.


Thanks, Andrew!
  

Guys, would you comment on whether this patch closes all the open issues
that Bruce has listed for the MSVC port on his pending patches page?
Specifically, the half-dozen messages with MSVC in their subjects at
http://momjian.us/cgi-bin/pgpatches



It should, but it'd be good if Hannes can confirm that.

  

I found two issues:

(a) use the current dir . instead of ../.. for the *.sample files, 
since there are the chdir's to ../../.. resp. to ../../../.. in line 28 
resp. 29. Using ../.. would traverse a too large part of the directory 
structure.


(b) a http://www.dict.cc/englisch-deutsch/superfluous.htmlsuperfluous 
\ for the Dictionaries sample files


see attached diff.

besides from that it works well in my configuration and it solves the 
intial issue with cygwin's dir in PATH. Thank you.


-Hannes

*** ../pgsql-cvshead/src/tools/msvc/Install.pm	Sun Sep 23 20:27:59 2007
--- src/tools/msvc/Install.pm	Sun Sep 23 21:24:13 2007
***
*** 50,56 
  	push(@$sample_files, $File::Find::name); 
  			} 
    }, 
! 	 ../.. );
  CopySetOfFiles('config files', $sample_files , $target . '/share/');
  CopyFiles(
  'Import libraries',
--- 50,56 
  	push(@$sample_files, $File::Find::name); 
  			} 
    }, 
! 	 . );
  CopySetOfFiles('config files', $sample_files , $target . '/share/');
  CopyFiles(
  'Import libraries',
***
*** 81,87 
     [ glob (src\\backend\\snowball\\stopwords\\*.stop) ], 
     $target . '/share/tsearch_data/');
  CopySetOfFiles('Dictionaries sample files', 
!    [ glob (src\\backend\\tsearch\\\*_sample.* ) ], 
     $target . '/share/tsearch_data/');
  CopyContribFiles($config,$target);
  CopyIncludeFiles($target);
--- 81,87 
     [ glob (src\\backend\\snowball\\stopwords\\*.stop) ], 
     $target . '/share/tsearch_data/');
  CopySetOfFiles('Dictionaries sample files', 
!    [ glob (src\\backend\\tsearch\\*_sample.* ) ], 
     $target . '/share/tsearch_data/');
  CopyContribFiles($config,$target);
  CopyIncludeFiles($target);

---(end of broadcast)---
TIP 9: In versions below 8.0, the planner will ignore your desire to
   choose an index scan if your joining column's datatypes do not
   match


Re: [PATCHES] [HACKERS] msvc, build and install with cygwin in the PATH

2007-09-23 Thread Andrew Dunstan



Hannes Eder wrote:


(a) use the current dir . instead of ../.. for the *.sample files, 
since there are the chdir's to ../../.. resp. to ../../../.. in line 
28 resp. 29. Using ../.. would traverse a too large part of the 
directory structure.


Actually, it should be restricted more, to src. I adjusted this and the 
other recursive search accordingly.


(b) a 
http://www.dict.cc/englisch-deutsch/superfluous.htmlsuperfluous \ 
for the Dictionaries sample files





Oops.

Fixes applied.

cheers

andrew



---(end of broadcast)---
TIP 2: Don't 'kill -9' the postmaster


Re: [PATCHES] [HACKERS] msvc, build and install with cygwin in the PATH

2007-07-25 Thread Hannes Eder

Magnus Hagander schrieb:

I used to have a different patch from Andrew that did part of this, and
more, and conflicted rather badly with it. However, I never got around
to applying that one, and I can't seem to find it anymore.

Andrew -do you recall if you had all this in yours, and is it still
something you want in, or should we just go with this one?
  

Do you want my to submit a patch against HEAD again?

-Hannes



---(end of broadcast)---
TIP 1: if posting/reading through Usenet, please send an appropriate
  subscribe-nomail command to [EMAIL PROTECTED] so that your
  message can get through to the mailing list cleanly


Re: [PATCHES] [HACKERS] msvc, build and install with cygwin in the PATH

2007-07-17 Thread Magnus Hagander
I used to have a different patch from Andrew that did part of this, and
more, and conflicted rather badly with it. However, I never got around
to applying that one, and I can't seem to find it anymore.

Andrew -do you recall if you had all this in yours, and is it still
something you want in, or should we just go with this one?

//Magnus

Bruce Momjian wrote:
 Magnus, what is your reaction to this patch?
 
 ---
 
 Hannes Eder wrote:
 Magnus Hagander wrote:
  Hannes Eder wrote:
   Is it worth doing this the Perl-way and using File::Find? If so, I 
 can
   work an a patch for that.
  
   It's certainly cleaner that way, but I don't find it a major issue. 
 But I'd
   rather see that fix than the other one.

 Here we go. See attached patch. Your comments are welcome.

 Hannes.

 
 *** ..\pgsql-cvshead\src\tools\msvc\Install.pm   Mo Mai 14 16:36:10 2007
 --- src\tools\msvc\Install.pmMi Jun  6 20:39:47 2007
 ***
 *** 10,15 
 --- 10,18 
   use Carp;
   use File::Basename;
   use File::Copy;
 + use File::Find;
 + use File::Glob;
 + use File::Spec;
   
   use Exporter;
   our (@ISA,@EXPORT_OK);
 ***
 *** 99,104 
 --- 102,142 
   print \n;
   }
   
 + sub FindFiles
 + {
 + my $spec = shift;
 + my $nonrecursive = shift;
 + my $pat = basename($spec);
 + my $dir = dirname($spec);
 + 
 + if ($dir eq '') { $dir = '.'; }
 + 
 + -d $dir || croak Could not list directory $dir: $!\n;
 + 
 + if ($nonrecursive)
 + {
 + return glob($spec);
 + }
 + 
 + # borrowed from File::DosGlob
 + # escape regex metachars but not glob chars
 + $pat =~ s:([].+^\-\${}[|]):\\$1:g;
 + # and convert DOS-style wildcards to regex
 + $pat =~ s/\*/.*/g;
 + $pat =~ s/\?/.?/g;
 + 
 + $pat = '^' . $pat . '\z';
 + 
 + my @res;
 + find(
 + {
 + wanted = sub { /$pat/s  push (@res, 
 File::Spec-canonpath($File::Find::name)); }
 + },
 + $dir
 + );
 + return @res;
 + }
 + 
   sub CopySetOfFiles
   {
   my $what = shift;
 ***
 *** 106,126 
   my $target = shift;
   my $silent = shift;
   my $norecurse = shift;
 - my $D;
   
 - my $subdirs = $norecurse?'':'/s';
   print Copying $what unless ($silent);
 ! open($D, dir /b $subdirs $spec |) || croak Could not list $spec\n;
 ! while ($D)
   {
 - chomp;
   next if /regress/; # Skip temporary install in regression subdir
 ! my $tgt = $target . basename($_);
   print .;
 ! my $src = $norecurse?(dirname($spec) . '/' . $_):$_;
 ! copy($src, $tgt) || croak Could not copy $src: $!\n;
   }
 ! close($D);
   print \n;
   }
   
 --- 144,161 
   my $target = shift;
   my $silent = shift;
   my $norecurse = shift;
   
   print Copying $what unless ($silent);
 ! 
 ! foreach (FindFiles($spec, $norecurse))
   {
   next if /regress/; # Skip temporary install in regression subdir
 ! my $src = $_;
 ! my $tgt = $target . basename($src);
   print .;
 ! copy($src, $tgt) || croak Could not copy $src to $tgt: $!\n;
   }
 ! 
   print \n;
   }
   
 ***
 *** 371,395 
   {
   my $target = shift;
   my $nlspath = shift;
 - my $D;
   
   print Installing NLS files...;
   EnsureDirectories($target, share/locale);
 ! open($D,dir /b /s nls.mk|) || croak Could not list nls.mk\n;
 ! while ($D)
   {
 - chomp;
   s/nls.mk/po/;
   my $dir = $_;
   next unless ($dir =~ /([^\\]+)\\po$/);
   my $prgm = $1;
   $prgm = 'postgres' if ($prgm eq 'backend');
 - my $E;
 - open($E,dir /b $dir\\*.po|) || croak Could not list contents of 
 $_\n;
   
 ! while ($E)
   {
 - chomp;
   my $lang;
   next unless /^(.*)\.po/;
   $lang = $1;
 --- 406,425 
   {
   my $target = shift;
   my $nlspath = shift;
   
   print Installing NLS files...;
   EnsureDirectories($target, share/locale);
 ! 
 ! foreach (FindFiles(nls.mk))
   {
   s/nls.mk/po/;
   my $dir = $_;
   next unless ($dir =~ /([^\\]+)\\po$/);
   my $prgm = $1;
   $prgm = 'postgres' if ($prgm eq 'backend');
   
 ! foreach (FindFiles($dir\\*.po, 1))
   {
   my $lang;
   next unless /^(.*)\.po/;
   $lang = $1;
 ***
 *** 401,409 
  croak(Could not run msgfmt on $dir\\$_);
   print .;
   }
 - close($E);
   }
 ! close($D);
   print \n;
   }
   
 --- 431,438 
  croak(Could not run msgfmt on $dir\\$_);
   print .;
   }
   }
 ! 
   print \n;
   }
   
 
 

Re: [PATCHES] [HACKERS] msvc, build and install with cygwin in the PATH

2007-07-17 Thread Andrew Dunstan


I am fighting some fires in my day job.

My pesonal TODO list for pg up to beta is:

. fix chunking muddle (see recent emails)
. complete CSV logs patch
. harden MSVC builds

I'll get to this when I can.  I can dig up the patch I did if you want 
it again.


cheers

andrew


Magnus Hagander wrote:

I used to have a different patch from Andrew that did part of this, and
more, and conflicted rather badly with it. However, I never got around
to applying that one, and I can't seem to find it anymore.

Andrew -do you recall if you had all this in yours, and is it still
something you want in, or should we just go with this one?

//Magnus

Bruce Momjian wrote:
  

Magnus, what is your reaction to this patch?

---

Hannes Eder wrote:


Magnus Hagander wrote:
 Hannes Eder wrote:
  Is it worth doing this the Perl-way and using File::Find? If so, I 
can

  work an a patch for that.
 
  It's certainly cleaner that way, but I don't find it a major issue. 
But I'd

  rather see that fix than the other one.

Here we go. See attached patch. Your comments are welcome.

Hannes.

  
*** ..\pgsql-cvshead\src\tools\msvc\Install.pm	Mo Mai 14 16:36:10 2007

--- src\tools\msvc\Install.pm   Mi Jun  6 20:39:47 2007
***
*** 10,15 
--- 10,18 
  use Carp;
  use File::Basename;
  use File::Copy;
+ use File::Find;
+ use File::Glob;
+ use File::Spec;
  
  use Exporter;

  our (@ISA,@EXPORT_OK);
***
*** 99,104 
--- 102,142 
  print \n;
  }
  
+ sub FindFiles

+ {
+ my $spec = shift;
+ my $nonrecursive = shift;
+ my $pat = basename($spec);
+ my $dir = dirname($spec);
+ 
+ if ($dir eq '') { $dir = '.'; }
+ 
+ -d $dir || croak Could not list directory $dir: $!\n;
+ 
+ if ($nonrecursive)

+ {
+ return glob($spec);
+ }
+ 
+ # borrowed from File::DosGlob

+ # escape regex metachars but not glob chars
+ $pat =~ s:([].+^\-\${}[|]):\\$1:g;
+ # and convert DOS-style wildcards to regex
+ $pat =~ s/\*/.*/g;
+ $pat =~ s/\?/.?/g;
+ 
+ $pat = '^' . $pat . '\z';
+ 
+ my @res;

+ find(
+ {
+ wanted = sub { /$pat/s  push (@res, 
File::Spec-canonpath($File::Find::name)); }
+ },
+ $dir
+ );
+ return @res;
+ }
+ 
  sub CopySetOfFiles

  {
  my $what = shift;
***
*** 106,126 
  my $target = shift;
  my $silent = shift;
  my $norecurse = shift;
- my $D;
  
- my $subdirs = $norecurse?'':'/s';

  print Copying $what unless ($silent);
! open($D, dir /b $subdirs $spec |) || croak Could not list $spec\n;
! while ($D)
  {
- chomp;
  next if /regress/; # Skip temporary install in regression subdir
! my $tgt = $target . basename($_);
  print .;
! my $src = $norecurse?(dirname($spec) . '/' . $_):$_;
! copy($src, $tgt) || croak Could not copy $src: $!\n;
  }
! close($D);
  print \n;
  }
  
--- 144,161 

  my $target = shift;
  my $silent = shift;
  my $norecurse = shift;
  
  print Copying $what unless ($silent);
! 
! foreach (FindFiles($spec, $norecurse))

  {
  next if /regress/; # Skip temporary install in regression subdir
! my $src = $_;
! my $tgt = $target . basename($src);
  print .;
! copy($src, $tgt) || croak Could not copy $src to $tgt: $!\n;
  }
! 
  print \n;

  }
  
***

*** 371,395 
  {
  my $target = shift;
  my $nlspath = shift;
- my $D;
  
  print Installing NLS files...;

  EnsureDirectories($target, share/locale);
! open($D,dir /b /s nls.mk|) || croak Could not list nls.mk\n;
! while ($D)
  {
- chomp;
  s/nls.mk/po/;
  my $dir = $_;
  next unless ($dir =~ /([^\\]+)\\po$/);
  my $prgm = $1;
  $prgm = 'postgres' if ($prgm eq 'backend');
- my $E;
- open($E,dir /b $dir\\*.po|) || croak Could not list contents of 
$_\n;
  
! while ($E)

  {
- chomp;
  my $lang;
  next unless /^(.*)\.po/;
  $lang = $1;
--- 406,425 
  {
  my $target = shift;
  my $nlspath = shift;
  
  print Installing NLS files...;

  EnsureDirectories($target, share/locale);
! 
! foreach (FindFiles(nls.mk))

  {
  s/nls.mk/po/;
  my $dir = $_;
  next unless ($dir =~ /([^\\]+)\\po$/);
  my $prgm = $1;
  $prgm = 'postgres' if ($prgm eq 'backend');
  
! foreach (FindFiles($dir\\*.po, 1))

  {
  my $lang;
  next unless /^(.*)\.po/;
  $lang = $1;
***
*** 401,409 
 croak(Could not run msgfmt on $dir\\$_);
  print .;
  }
- close($E);
  }
! close($D);
  print \n;
  }
  
--- 431,438 


Re: [PATCHES] [HACKERS] msvc, build and install with cygwin in the PATH

2007-07-16 Thread Bruce Momjian

Magnus, what is your reaction to this patch?

---

Hannes Eder wrote:
 Magnus Hagander wrote:
  Hannes Eder wrote:
   Is it worth doing this the Perl-way and using File::Find? If so, I 
 can
   work an a patch for that.
  
   It's certainly cleaner that way, but I don't find it a major issue. 
 But I'd
   rather see that fix than the other one.
 
 Here we go. See attached patch. Your comments are welcome.
 
 Hannes.
 

 *** ..\pgsql-cvshead\src\tools\msvc\Install.pmMo Mai 14 16:36:10 2007
 --- src\tools\msvc\Install.pm Mi Jun  6 20:39:47 2007
 ***
 *** 10,15 
 --- 10,18 
   use Carp;
   use File::Basename;
   use File::Copy;
 + use File::Find;
 + use File::Glob;
 + use File::Spec;
   
   use Exporter;
   our (@ISA,@EXPORT_OK);
 ***
 *** 99,104 
 --- 102,142 
   print \n;
   }
   
 + sub FindFiles
 + {
 + my $spec = shift;
 + my $nonrecursive = shift;
 + my $pat = basename($spec);
 + my $dir = dirname($spec);
 + 
 + if ($dir eq '') { $dir = '.'; }
 + 
 + -d $dir || croak Could not list directory $dir: $!\n;
 + 
 + if ($nonrecursive)
 + {
 + return glob($spec);
 + }
 + 
 + # borrowed from File::DosGlob
 + # escape regex metachars but not glob chars
 + $pat =~ s:([].+^\-\${}[|]):\\$1:g;
 + # and convert DOS-style wildcards to regex
 + $pat =~ s/\*/.*/g;
 + $pat =~ s/\?/.?/g;
 + 
 + $pat = '^' . $pat . '\z';
 + 
 + my @res;
 + find(
 + {
 + wanted = sub { /$pat/s  push (@res, 
 File::Spec-canonpath($File::Find::name)); }
 + },
 + $dir
 + );
 + return @res;
 + }
 + 
   sub CopySetOfFiles
   {
   my $what = shift;
 ***
 *** 106,126 
   my $target = shift;
   my $silent = shift;
   my $norecurse = shift;
 - my $D;
   
 - my $subdirs = $norecurse?'':'/s';
   print Copying $what unless ($silent);
 ! open($D, dir /b $subdirs $spec |) || croak Could not list $spec\n;
 ! while ($D)
   {
 - chomp;
   next if /regress/; # Skip temporary install in regression subdir
 ! my $tgt = $target . basename($_);
   print .;
 ! my $src = $norecurse?(dirname($spec) . '/' . $_):$_;
 ! copy($src, $tgt) || croak Could not copy $src: $!\n;
   }
 ! close($D);
   print \n;
   }
   
 --- 144,161 
   my $target = shift;
   my $silent = shift;
   my $norecurse = shift;
   
   print Copying $what unless ($silent);
 ! 
 ! foreach (FindFiles($spec, $norecurse))
   {
   next if /regress/; # Skip temporary install in regression subdir
 ! my $src = $_;
 ! my $tgt = $target . basename($src);
   print .;
 ! copy($src, $tgt) || croak Could not copy $src to $tgt: $!\n;
   }
 ! 
   print \n;
   }
   
 ***
 *** 371,395 
   {
   my $target = shift;
   my $nlspath = shift;
 - my $D;
   
   print Installing NLS files...;
   EnsureDirectories($target, share/locale);
 ! open($D,dir /b /s nls.mk|) || croak Could not list nls.mk\n;
 ! while ($D)
   {
 - chomp;
   s/nls.mk/po/;
   my $dir = $_;
   next unless ($dir =~ /([^\\]+)\\po$/);
   my $prgm = $1;
   $prgm = 'postgres' if ($prgm eq 'backend');
 - my $E;
 - open($E,dir /b $dir\\*.po|) || croak Could not list contents of 
 $_\n;
   
 ! while ($E)
   {
 - chomp;
   my $lang;
   next unless /^(.*)\.po/;
   $lang = $1;
 --- 406,425 
   {
   my $target = shift;
   my $nlspath = shift;
   
   print Installing NLS files...;
   EnsureDirectories($target, share/locale);
 ! 
 ! foreach (FindFiles(nls.mk))
   {
   s/nls.mk/po/;
   my $dir = $_;
   next unless ($dir =~ /([^\\]+)\\po$/);
   my $prgm = $1;
   $prgm = 'postgres' if ($prgm eq 'backend');
   
 ! foreach (FindFiles($dir\\*.po, 1))
   {
   my $lang;
   next unless /^(.*)\.po/;
   $lang = $1;
 ***
 *** 401,409 
  croak(Could not run msgfmt on $dir\\$_);
   print .;
   }
 - close($E);
   }
 ! close($D);
   print \n;
   }
   
 --- 431,438 
  croak(Could not run msgfmt on $dir\\$_);
   print .;
   }
   }
 ! 
   print \n;
   }
   

 
 ---(end of broadcast)---
 TIP 6: explain analyze is your friend

-- 
  Bruce Momjian  [EMAIL PROTECTED]  http://momjian.us
  EnterpriseDB   http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +

---(end of broadcast)---
TIP