Re: [HACKERS] Windows NT port of Postgres

Lists: pgsql-hackers
From: "Joost Kraaijeveld" <JKraaijeveld(at)askesis(dot)nl>
To: "Pgsql-Hackers" <hackers(at)postgreSQL(dot)org>
Subject: Windows NT port of Postgres
Date: 1998-09-19 12:17:28
Message-ID: 000201bde3c7$77de8230$0200a8c0@panoramix
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Hi everybody,

A report of my attempts after my holiday.

1. Configure

Configure needed a little change in the detection of the way echo handles
en-of-line.

2. Make

Postgres compiles and links with EGCS 1.1 for CygWin B19 with some tools
from Andy Piper and a IPC library by Ludovic Lange. Some changes in the EGCS
source tree are needed (I did this so that I did not have to change any
Postgres source).

3. Make install

I had to strip the extension from the executables (I read somewhere that
that could be done from configure but I cannot find te correct message.
After Make instal I renamed the executables to the *.exe form again. If I
did not do that I got a lot of "access denied" messages in the rest of the
procedure.

4. Initdb

I created a postgres account (jkr).

I set the environmental variable USER to the account above.

This line in the script gave NOUSER as POSTGRES_SUPERUID:
POSTGRES_SUPERUID=`pg_id $POSTGRES_SUPERUSERNAME`
I think it has something to do with the way a user name is created in
Windows NT: WindowNTDomain\UserName and the way getpwnam() in pg_id.c works.
Running pg_id with no $POSTGRES_SUPERUSERNAME gave a number. So I changed
the line to:
POSTGRES_SUPERUID=500, the result of running pg_id without parameter.

After doing that the output of initdb was:

bash-2.01$ initdb
initdb: using /usr/local/pgsql/lib/local1_template1.bki.source as input to
create the template database.
initdb: using /usr/local/pgsql/lib/global1.bki.source as input to create the
global classes.
initdb: using /usr/local/pgsql/lib/pg_hba.conf.sample as the host-based
authentication control file.

We are initializing the database system with username jkr (uid=500).
This user will own all the files and must also own the server process.

initdb: creating template database in /usr/local/pgsql/data/base/template1
Running: postgres -boot -C -F -D/usr/local/pgsql/data -Q template1
(d:\unix\root\usr\local\pgsql\bin\postgres.exe 5333) Exception:
STATUS_ACCESS_VIOLATION
(d:\unix\root\usr\local\pgsql\bin\postgres.exe 5333) Dumping stack trace to
postgres.exe.core
initdb: could not create template database
initdb: cleaning up by wiping out /usr/local/pgsql/data/base/template1
bash-2.01$

Debugging postgres with the above commandline created some difficulties
because the debugger did not step into the function that was responsible for
the crash (bool IsBootstrapProcessingMode() in miscinit.c line 170). I have
not figured out what the problem is.

5. People who have offered help.

There are a few people who have offered to help (active coding / guidance /
moral support) :
Hugo Korwaser (hugo(dot)korwaser(at)dspace(dot)co(dot)uk)
J. Michael Roberts (mirobert(at)cs(dot)indiana(dot)edu)
Chris Williams (chris_d_williams(at)sterling(dot)com)

More help is welcome. (BTW because of some major hard and software prblems I
lost my entire email archive. So if you offered help and I did not mention
you please respond and don't be mad at me ;-)).

The people who have offered help will be contacted shortly to make a plan.
If you allready have one let me know.

Joost


From: "Thomas G(dot) Lockhart" <lockhart(at)alumni(dot)caltech(dot)edu>
To: Joost Kraaijeveld <JKraaijeveld(at)askesis(dot)nl>
Cc: Pgsql-Hackers <hackers(at)postgreSQL(dot)org>
Subject: Re: [HACKERS] Windows NT port of Postgres
Date: 1998-09-21 00:26:05
Message-ID: 36059D1D.3FEAD796@alumni.caltech.edu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

> More help is welcome. (BTW because of some major hard and software
> prblems I lost my entire email archive. So if you offered help and I
> did not mention you please respond and don't be mad at me ;-)).

Yeah, I know at least one other person who lot their e-mail system
because of memory problems on an NT machine.

One of the problems of running on a bleeding-edge retro system ;)

- Tom


From: Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us>
To: JKraaijeveld(at)askesis(dot)nl (Joost Kraaijeveld)
Cc: hackers(at)postgreSQL(dot)org
Subject: Re: [HACKERS] Windows NT port of Postgres
Date: 1998-09-21 02:14:38
Message-ID: 199809210214.WAA16929@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

[Charset iso-8859-1 unsupported, filtering to ASCII...]
> Hi everybody,
>
> A report of my attempts after my holiday.
>
> 1. Configure
>
> Configure needed a little change in the detection of the way echo handles
> en-of-line.
>
> 2. Make
>
> Postgres compiles and links with EGCS 1.1 for CygWin B19 with some tools
> from Andy Piper and a IPC library by Ludovic Lange. Some changes in the EGCS
> source tree are needed (I did this so that I did not have to change any
> Postgres source).
>
> 3. Make install
>
> I had to strip the extension from the executables (I read somewhere that
> that could be done from configure but I cannot find te correct message.
> After Make instal I renamed the executables to the *.exe form again. If I
> did not do that I got a lot of "access denied" messages in the rest of the
> procedure.
>
> 4. Initdb
>
> I created a postgres account (jkr).
>
> I set the environmental variable USER to the account above.
>
> This line in the script gave NOUSER as POSTGRES_SUPERUID:
> POSTGRES_SUPERUID=`pg_id $POSTGRES_SUPERUSERNAME`
> I think it has something to do with the way a user name is created in
> Windows NT: WindowNTDomain\UserName and the way getpwnam() in pg_id.c works.
> Running pg_id with no $POSTGRES_SUPERUSERNAME gave a number. So I changed
> the line to:
> POSTGRES_SUPERUID=500, the result of running pg_id without parameter.
>
> After doing that the output of initdb was:
>
> bash-2.01$ initdb
> initdb: using /usr/local/pgsql/lib/local1_template1.bki.source as input to
> create the template database.
> initdb: using /usr/local/pgsql/lib/global1.bki.source as input to create the
> global classes.
> initdb: using /usr/local/pgsql/lib/pg_hba.conf.sample as the host-based
> authentication control file.
>
> We are initializing the database system with username jkr (uid=500).
> This user will own all the files and must also own the server process.
>
> initdb: creating template database in /usr/local/pgsql/data/base/template1
> Running: postgres -boot -C -F -D/usr/local/pgsql/data -Q template1
> (d:\unix\root\usr\local\pgsql\bin\postgres.exe 5333) Exception:
> STATUS_ACCESS_VIOLATION
> (d:\unix\root\usr\local\pgsql\bin\postgres.exe 5333) Dumping stack trace to
> postgres.exe.core
> initdb: could not create template database
> initdb: cleaning up by wiping out /usr/local/pgsql/data/base/template1
> bash-2.01$
>
> Debugging postgres with the above commandline created some difficulties
> because the debugger did not step into the function that was responsible for
> the crash (bool IsBootstrapProcessingMode() in miscinit.c line 170). I have
> not figured out what the problem is.

This is pretty amazing you got this far. Hard to see how it could crash
on that code.

>
> 5. People who have offered help.
>
> There are a few people who have offered to help (active coding / guidance /
> moral support) :
> Hugo Korwaser (hugo(dot)korwaser(at)dspace(dot)co(dot)uk)
> J. Michael Roberts (mirobert(at)cs(dot)indiana(dot)edu)
> Chris Williams (chris_d_williams(at)sterling(dot)com)
>
> More help is welcome. (BTW because of some major hard and software prblems I
> lost my entire email archive. So if you offered help and I did not mention
> you please respond and don't be mad at me ;-)).
>
> The people who have offered help will be contacted shortly to make a plan.
> If you allready have one let me know.

This is all pretty amazing. To port something like this requires a huge
amount of supporting NT code to make it look like Unix.

--
Bruce Momjian | 830 Blythe Avenue
maillist(at)candle(dot)pha(dot)pa(dot)us | Drexel Hill, Pennsylvania 19026
http://www.op.net/~candle | (610) 353-9879(w)
+ If your life is a hard drive, | (610) 853-3000(h)
+ Christ can be your backup. |