Thread: Cannot build docs of 9.1 on Windows

Cannot build docs of 9.1 on Windows

From
"MauMau"
Date:
Hello,

I posted the following mail to pgsql-docs, but let me re-post it here 
because I'm afraid much less people watch pgsql-docs and pgsql-docs might be 
inactive. And the problem is not about the contents of docs but about the 
build system, so I thought here might be better.


I'm developing my first patch for PostgreSQL. The target is v9.2.

I'm trying to build HTML docs on Windows Vista (32-bit) with the latest v9.1
Git branch, but the build fails. I followed the procedures in the v9.0
manual. Could you tell me what might be the cause? The situation is as
follows:

The latest commit on my Git repository that "git log -1" shows is:

--------------------------------------------------
commit 9bb6d9795253bb521f81c626fea49a704a369ca9
Author: Robert Haas <rhaas@postgresql.org>
Date:   Fri May 13 15:47:31 2011 -0400
   More cleanup of FOREIGN TABLE permissions handling.
--------------------------------------------------

I could successfully build and install the program, do initdb, and
start/stop the PostgreSQL server.

The whole content of src/tools/msvc/buildenv.pl is:

$ENV{M4} = 'C:\GNUWin32\bin\m4.exe';
$ENV{DOCROOT} = 'D:\pgdev\doctool';

I ran "builddoc.bat > out.txt 2>&1" in src/tools/msvc. I expected to get
"html" directory in doc/src/sgml, but I couldn't get it after minutes of
execution. The output of builddoc.bat contains some errors. I'll show the
partial contents of out.txt below. The size of out.txt is too large (20.9MB)
to attach. out.txt appears to contain all the HTML manual.

--------------------------------------------------
Hash %ENV missing the % in argument 1 of each() at -e line 1.
Hash %ENV missing the % in argument 1 of each() at -e line 1.
Can't open perl script "make-errcodes-table.pl": No such file or directory
Running first build...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>PostgreSQL 9.1beta1 Documentation</TITLE
><META
...
></BODY
></HTML
>
Running collateindex...
collateindex.pl: file "HTML.index" does not exist
Running second build...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>PostgreSQL 9.1beta1 Documentation</TITLE
><META
...
></BODY
></HTML

>
Docs build complete.
--------------------------------------------------

Regards,
MauMau



Re: Cannot build docs of 9.1 on Windows

From
Robert Haas
Date:
2011/5/16 MauMau <maumau307@gmail.com>:
> Can't open perl script "make-errcodes-table.pl": No such file or directory

I think this is the root of the problem.  We have no script called
make-errcodes-table.pl.  Can you try changing it to
generate-errcodes-table.pl and see if that works?

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Cannot build docs of 9.1 on Windows

From
"Andrew Dunstan"
Date:
On Thu, May 19, 2011 10:32 am, Robert Haas wrote:
> 2011/5/16 MauMau <maumau307@gmail.com>:
>> Can't open perl script "make-errcodes-table.pl": No such file or
>> directory
>
> I think this is the root of the problem.  We have no script called
> make-errcodes-table.pl.  Can you try changing it to
> generate-errcodes-table.pl and see if that works?
>


Building docs under Windows in the buildfarm is on my TODO list. We
already support it (as of a few weeks ago) for non-Windows build systems.

That will help us make sure we don't have this kind of drift.

cheers

andrew




Re: Cannot build docs of 9.1 on Windows

From
"MauMau"
Date:
From: "Andrew Dunstan" <andrew@dunslane.net>
> On Thu, May 19, 2011 10:32 am, Robert Haas wrote:
>> 2011/5/16 MauMau <maumau307@gmail.com>:
>>> Can't open perl script "make-errcodes-table.pl": No such file or
>>> directory
>>
>> I think this is the root of the problem.  We have no script called
>> make-errcodes-table.pl.  Can you try changing it to
>> generate-errcodes-table.pl and see if that works?
>>
>
>
> Building docs under Windows in the buildfarm is on my TODO list. We
> already support it (as of a few weeks ago) for non-Windows build systems.
>
> That will help us make sure we don't have this kind of drift.

Thank you. I could remove the error "Can't open perl script 
"make-errcodes-table.pl": N..." by changing "make-errcodes-table.pl" to 
"generate-errcodes-table.pl", but all other results seems to be same as 
before.

Andrew, could you announce the commit when you have successfully built docs 
on Windows? Can I know that fact by watching pgsql-hackers and pgsql-docs? 
I'll git-fetch the patch.

Regards
MauMau



Re: Cannot build docs of 9.1 on Windows

From
Andrew Dunstan
Date:

On 05/19/2011 06:29 PM, MauMau wrote:
> From: "Andrew Dunstan" <andrew@dunslane.net>
>> On Thu, May 19, 2011 10:32 am, Robert Haas wrote:
>>> 2011/5/16 MauMau <maumau307@gmail.com>:
>>>> Can't open perl script "make-errcodes-table.pl": No such file or
>>>> directory
>>>
>>> I think this is the root of the problem.  We have no script called
>>> make-errcodes-table.pl.  Can you try changing it to
>>> generate-errcodes-table.pl and see if that works?
>>>
>>
>>
>> Building docs under Windows in the buildfarm is on my TODO list. We
>> already support it (as of a few weeks ago) for non-Windows build
>> systems.
>>
>> That will help us make sure we don't have this kind of drift.
>
> Thank you. I could remove the error "Can't open perl script
> "make-errcodes-table.pl": N..." by changing "make-errcodes-table.pl"
> to "generate-errcodes-table.pl", but all other results seems to be
> same as before.
>
> Andrew, could you announce the commit when you have successfully built
> docs on Windows? Can I know that fact by watching pgsql-hackers and
> pgsql-docs? I'll git-fetch the patch.
>
>

builddoc.bat failed on my system and reading it made my head hurt. So I
did what I've done with other bat files and rewrote it in Perl. The
result is attached. It works for me, and should be a dropin replacement.
Just put it in the src/tools/msvc directory and run "perl builddoc.pl".
Please test it and if it works for you we'll use it and make
builddoc.bat a thin wrapper like build.bat and vcregress.bat.

cheers

andrew

Attachment

Re: Cannot build docs of 9.1 on Windows

From
"MauMau"
Date:
Andrew,

From: "Andrew Dunstan" <andrew@dunslane.net>
> builddoc.bat failed on my system and reading it made my head hurt. So I
> did what I've done with other bat files and rewrote it in Perl. The
> result is attached. It works for me, and should be a dropin replacement.
> Just put it in the src/tools/msvc directory and run "perl builddoc.pl".
> Please test it and if it works for you we'll use it and make
> builddoc.bat a thin wrapper like build.bat and vcregress.bat.

It worked successfully! doc\src\sgml\html directory and its contents was 
created, and the HTML contents appear to be correct. Thank you very much. 
The output of "perl builddoc.pl" was as follows:


--------------------------------------------------
perl mk_feature_tables.pl YES 
../../../src/backend/catalog/sql_feature_packages.txt 
../../../src/backend/catalog/sql_features.txt > features-supported.sgmlperl 
mk_feature_tables.pl NO 
"../../../src/backend/catalog/sql_feature_packages.txt" 
"../../../src/backend/catalog/sql_features.txt" > features-unsupported.sgml
perl generate-errcodes-table.pl "../../../src/backend/utils/errcodes.txt" > 
errcodes-table.sgml
Running first build...
"D:\pgdev\doctool/openjade-1.3.1/bin/openjade" -V 
html-index -wall -wno-unused-param -wno-empty -D . -c 
"D:\pgdev\doctool/docbook-dsssl-1.79/catalog" -d stylesheet.dsl -i 
output-html -t sgml postgres.sgml 2>&1 | findstr /V "DTDDECL catalog entries 
are not supported"
Running collateindex...
perl "D:\pgdev\doctool/docbook-dsssl-1.79/bin/collateindex.pl" -f -g -i 
bookindex -o bookindex.sgml HTML.index
Processing HTML.index...
2158 entries loaded...
0 entries ignored...
Done.
Running second build...
"D:\pgdev\doctool/openjade-1.3.1/bin/openjade" -wall -wno-unused-param -wno-empty -D . -c
"D:\pgdev\doctool/docbook-dsssl-1.79/catalog"-d stylesheet.dsl -t 
 
sgml -i output-html -i include-index postgres.sgml 2>&1 | findstr /V 
"DTDDECL catalog entries are not supported"
Docs build complete.
--------------------------------------------------