Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Jun 2013 23:13:47 GMT
From:      John Marino <draco@marino.st>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/179696: [PATCH] textproc/docbook-xsl: Fix xmlcatmgr errors caused by duplicate installation
Message-ID:  <201306182313.r5INDlQ3045948@oldred.freebsd.org>
Resent-Message-ID: <201306182320.r5INK0RX040960@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         179696
>Category:       ports
>Synopsis:       [PATCH] textproc/docbook-xsl: Fix xmlcatmgr errors caused by duplicate installation
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jun 18 23:20:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     John Marino
>Release:        
>Organization:
>Environment:
>Description:
each time docbook-xsl is installed from a package, errors such as these appear:

xmlcatmgr: entry already exists for `http://docbook.sourceforge.net/release/xsl/1.36' of type `rewriteSystem'
xmlcatmgr: entry already exists for `http://docbook.sourceforge.net/release/xsl/1.36' of type `rewriteURI'
xmlcatmgr: entry already exists for `http://docbook.sourceforge.net/release/xsl/1.37' of type `rewriteSystem'
xmlcatmgr: entry already exists for `http://docbook.sourceforge.net/release/xsl/1.37' of type `rewriteURI'
xmlcatmgr: entry already exists for `http://docbook.sourceforge.net/release/xsl/1.38' of type `rewriteSystem'
xmlcatmgr: entry already exists for `http://docbook.sourceforge.net/release/xsl/1.38' of type `rewriteURI'

The reason for this is that catalog.xml is created during the post-install target, then it's packaged, and when the package is installed, the post-install script is run again.  The xmlcatmgr code is run for a second time so ever command fails since the entry already exists.

The attached patch will fix this.
The catalog.xml creation code is moved to the Makefile where it's run during the install phase.  It's created in the $WRKSRC directory and then installed with the other files of the package list.  This allows the docbook-xml package to install without any errors.
>How-To-Repeat:

>Fix:


Patch attached with submission follows:

--- Makefile.orig	2013-06-18 22:45:49.000000000 +0000
+++ Makefile
@@ -27,6 +27,7 @@ SUB_LIST+=	INSTDIR="${INSTDIR}" \
 		CATALOG_PORTS="${LOCALBASE}/share/xml/catalog.ports"
 
 XMLCATMGR=	${LOCALBASE}/bin/xmlcatmgr
+CATALOG_XSL=	${WRKSRC}/catalog
 
 MODULES=	common fo html images lib manpages params xhtml
 
@@ -52,6 +53,14 @@ TOOLS_DESC=		Tools
 WEBSITE_DESC=		Website modules
 XHTML11_DESC=		XHTML 1.1 modules
 
+DXVERSIONS=	1.36 1.37 1.38 1.39 1.40 1.41 1.42 1.43 1.44 1.45 1.46 1.47 \
+		1.48 1.49 1.50.0 1.51.0 1.51.1 1.52.0 1.52.1 1.52.2 1.53.0 \
+		1.54.0 1.54.1 1.55.0 1.56.0 1.56.1 1.57.0 1.58.0 1.58.1 \
+		1.59.0 1.59.1 1.59.2 1.60.0 1.60.1 1.61.0 1.61.1 1.61.2 \
+		1.61.3 1.62.0 1.62.1 1.62.2 1.62.3 1.62.4 1.63.0 1.64.0 \
+		1.64.1 1.65.0 1.65.1 1.66.0 1.66.1 1.67.0 1.67.2 1.68.0 \
+		1.68.1 1.69.0 1.69.1 1.70.0 1.70.1 1.71.0 1.71.1 current
+
 .include <bsd.port.options.mk>
 
 .if ${PORT_OPTIONS:MDOCS}
@@ -169,6 +178,15 @@ do-install:
 			${INSTALL_DATA} $${i} ${PREFIX}/${INSTDIR}/${m}; \
 		done
 .endfor
+		${XMLCATMGR} -c ${CATALOG_XSL} create
+.for dxversion in ${DXVERSIONS}
+	${XMLCATMGR} -c "${CATALOG_XSL}" add rewriteSystem \
+		http://docbook.sourceforge.net/release/xsl/${dxversion} \
+		"file://${PREFIX}/${INSTDIR}"
+	${XMLCATMGR} -c "${CATALOG_XSL}" add rewriteURI \
+		http://docbook.sourceforge.net/release/xsl/${dxversion} \
+		"file://${PREFIX}/${INSTDIR}"
+.endfor		
 		files=$$(${FIND} ${WRKSRC} -type f -depth 1); \
 		for i in $${files}; do \
 			${INSTALL_DATA} $${i} ${PREFIX}/${INSTDIR}; \
--- files/pkg-install.in.orig	2013-06-18 22:46:32.000000000 +0000
+++ files/pkg-install.in
@@ -17,22 +17,6 @@ if [ "$2" != "POST-INSTALL" ]; then
 	exit 0
 fi
 
-VERSIONS='1.36 1.37 1.38 1.39 1.40 1.41 1.42 1.43 1.44 1.45 1.46 1.47 1.48 1.49 1.50.0 1.51.0 1.51.1 1.52.0 1.52.1 1.52.2 1.53.0 1.54.0 1.54.1 1.55.0 1.56.0 1.56.1 1.57.0 1.58.0 1.58.1 1.59.0 1.59.1 1.59.2 1.60.0 1.60.1 1.61.0 1.61.1 1.61.2 1.61.3 1.62.0 1.62.1 1.62.2 1.62.3 1.62.4 1.63.0 1.64.0 1.64.1 1.65.0 1.65.1 1.66.0 1.66.1 1.67.0 1.67.2 1.68.0 1.68.1 1.69.0 1.69.1 1.70.0 1.70.1 1.71.0 1.71.1 current'
-
-if [ ! -f ${CATALOG_XSL} ]; then
-	 %%XMLCATMGR%% -c "${CATALOG_XSL}" create
-fi
-
-for version in ${VERSIONS}
-do
-	%%XMLCATMGR%% -c "${CATALOG_XSL}" add rewriteSystem \
-		http://docbook.sourceforge.net/release/xsl/$version \
-		"file://${XSL_DIR}"
-	%%XMLCATMGR%% -c "${CATALOG_XSL}" add rewriteURI \
-		http://docbook.sourceforge.net/release/xsl/$version \
-		"file://${XSL_DIR}"
-done
-
 %%XMLCATMGR%% -c %%CATALOG_PORTS%% add delegateSystem \
 	http://docbook.sourceforge.net/release/xsl/ \
 	"file://${CATALOG_XSL}"


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201306182313.r5INDlQ3045948>