Re: Strange Windows problem, lock_timeout test request

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: Boszormenyi Zoltan <zb(at)cybertec(dot)at>
Cc: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>, Craig Ringer <craig(at)2ndQuadrant(dot)com>, Hans-Jürgen Schönig <hs(at)cybertec(dot)at>, Ants Aasma <ants(at)cybertec(dot)at>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Subject: Re: Strange Windows problem, lock_timeout test request
Date: 2013-01-19 20:15:31
Message-ID: 50FAFEE3.5040006@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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)
(current price $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 command window to \Mingw\Msys\1.0 and run
msys.bat
* run this command to install some useful packages:
o mingw-get install msys-wget msys-rxvt msys-unzip
* close that window
* open a normal command window and run the following to create an
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 take a 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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2013-01-19 20:24:34 Re: BUG #7815: Upgrading PostgreSQL from 9.1 to 9.2 with pg_upgrade/postgreql-setup fails - invalid status retrieve
Previous Message Dimitri Fontaine 2013-01-19 20:06:37 Re: Passing connection string to pg_basebackup