Re: Strange Windows problem, lock_timeout test request - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: Strange Windows problem, lock_timeout test request
Date
Msg-id 50FAFEE3.5040006@dunslane.net
Whole thread Raw
In response to Re: Strange Windows problem, lock_timeout test request  (Boszormenyi Zoltan <zb@cybertec.at>)
Responses Re: Strange Windows problem, lock_timeout test request
Re: Strange Windows problem, lock_timeout test request
List pgsql-hackers
On 01/19/2013 02:36 AM, Boszormenyi Zoltan wrote:
>
>>
>> Cross-compiling is not really a supported platform. Why don't you 
>> just build natively? This is know to work as shown by the buildfarm 
>> animals doing it successfully.
>
> Because I don't have a mingw setup on Windows. (Sorry.)
>

A long time ago I had a lot of sympathy with this answer, but these days 
not so much. Getting a working mingw/msys environment sufficient to 
build a bare bones PostgreSQL from scratch is both cheap and fairly 
easy. The improvements that mingw has made in its install process, and 
the presence of cheap or free windows instances in the cloud combine to 
make this pretty simple.  But since it's still slightly involved here is 
how I constructed one such  this morning:
 * Create an Amazon t1.micro spot instance of   Windows_Server-2008-SP2-English-64Bit-Base-2012.12.12 (ami-554ac83c)
(currentprice $0.006 / hour) * get the credentials and log in using:     o rdesktop -g 80%  -u Administrator -p
'password'amazon-hostname * turn off annoying IE security enhancements, and fire up IE * go to
<http://sourceforge.net/projects/mingw/files/Installer/mingw-get-inst/>  and download latest mingw-get-inst * run this
-make sure to select the Msys and the developer toolkit in   addition to the C compiler * navigate in explorer or a
commandwindow to \Mingw\Msys\1.0 and run   msys.bat * run this command to install some useful packages:     o mingw-get
installmsys-wget msys-rxvt msys-unzip * close that window * open a normal command window and run the following to
createan   unprivileged user and open an msys window as that user:     o net user pgrunner SomePw1234 /add     o runas
/user:pgrunner"cmd /c \mingw\msys\1.0\msys.bat --rxvt" * in the rxvt window run:     o wget
http://ftp.postgresql.org/pub/snapshot/dev/postgresql-snapshot.tar.gz    o tar -z -xf postgresql-snapshot.tar.gz     o
wget
"http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Automated%20Builds/mingw-w64-bin_i686-mingw_20111220.zip/download"
   o mkdir /mingw64     o cd /mingw64     o unzip ~/mingw-w64-bin_i686-mingw_20111220.zip     o cd
~/postgresql-9.3devel    o export PATH=/mingw64/bin:$PATH     o ./configure --host=x86_64-w64-mingw32 --without-zlib &&
make &&       make check         + ( make some coffee and do the crossword or read War and           Peace - this can
takea while)
 

Of course, for something faster you would pick a rather more expensive 
instance than t1.micro (say, m1.large, which usually has a spot price of 
$0.03 to $0.06 per hour), and if you're going to do this a lot you'll 
stash your stuff on an EBS volume that you can remount as needed,  or 
zip it up and put it on S3, and then just pull it and unpack it in one 
hit from there. And there's barely enough room left on the root file 
system to do what's above anyway. But you can get the idea  from this. 
Note that we no longer need to look elsewhere for extra tools like flex 
and bison as we once did - the ones that come with modern Msys should 
work just fine.

If you want more build features (openssl, libxml, libxslt, perl, python 
etc) then there is extra work to do in getting hold of those. But then 
cross-compiling for those things might not be easy either.

Somebody more adept at automating Amazon than I am should be able to 
automate most or all of this.

Anyway that should be just about enough info for just about any 
competent developer to get going, even if they have never touched 
Windows. (No doubt one or two people will want to quibble with what I've 
done. That's fine - this is a description, not a prescription.)

cheers

andrew



pgsql-hackers by date:

Previous
From: Dimitri Fontaine
Date:
Subject: Re: Passing connection string to pg_basebackup
Next
From: Tom Lane
Date:
Subject: Re: proposal: fix corner use case of variadic fuctions usage