Subject: Re: pkgsrc Guide build failure
To: None <pkgsrc-users@NetBSD.org>
From: Jeremy C. Reed <reed@reedmedia.net>
List: pkgsrc-users
Date: 05/03/2007 12:53:00
I found the problem. At bottom of this email are some ideas to fix it. 
Please suggest which one is best ...

On Thu, 3 May 2007, Jeremy C. Reed wrote:

> Trying to do "bmake OUTPUTS=html" in pkgsrc/doc/guide is failing with:
...

> Entity: line 1: 
>  %dbcentx.mod; 
>               ^
> I/O error : Attempt to load network entity 
> http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl
> warning: failed to load external entity 
> "http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl"
> compilation error: file 
> file:///build/reed/tmp/pkgsrc/doc/guide/work.reed/htdocs/share/xsl/netbsd-docbook-html.xsl 
> line 16 element import
> xsl:import : unable to load 
> http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl
> *** Error code 5

So I looked in my old email from April 2006 and see I had same problem 
last year.

My workaround was:

mkdir /home/reed/pkg/etc/xml
ln -s /home/reed/etc/xml/catalog /home/reed/pkg/etc/xml/catalog

And now it builds fine.

My problem is I use PKG_SYSCONFBASE=/home/reed/etc, but something is using 
hard-coded ${PREFIX}/etc/xml/catalog.

Looking farther in my mail, I see another workaround is to set 
PKG_SYSCONFBASE=/home/reed/etc on my bmake line.

The htdocs/share/mk/web.site.mk checks for PKG_SYSCONFBASE not 
PKG_SYSCONFDIR.

MAKE_ENV doesn't have that. It has:
PKG_SYSCONFDIR=/home/reed/etc

According to documentation: Packages must not use PKG_SYSCONFBASE 
directly. (Although I see some do.)

Anyways I remove the symlink above and here is my other work-around:

 do-build:
 .for _output_ in ${OUTPUTS}
-       @cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} ${_output_}
+       @cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} PKG_SYSCONFBASE=${PKG_SYSCONFBASE} ${MAKE_PROGRAM} ${MAKE_FLAGS} ${_output_}
 .endfor


Should htdocs/share/mk/web.site.mk be fixed to check for PKG_SYSCONFDIR?

Should MAKE_ENV just include PKG_SYSCONFBASE?

Should we include as a "build" dependency the xmlcatmgr buildlink3.mk and 
modify htdocs/share/mk/web.site.mk to also use the XML_DEFAULT_CATALOG 
defined there?

Or should I just commit this patch for doc/guide/Makefile above?

  Jeremy C. Reed