
If the docbook packages - docbook-xml - docbook-xsl are installed in a spack environment view the catalog files will be in conflict in the view directory. This PR resolves that by adding an appropriate prefix to each catalog name so that they are unique in the view. The resulting XML_CATALOG_FILES environment variable will then be able to point to both of them.
76 lines
2.8 KiB
Python
76 lines
2.8 KiB
Python
# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
|
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
|
#
|
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
|
|
|
from spack.package import *
|
|
|
|
|
|
class DocbookXsl(Package):
|
|
"""DocBook XSLT 1.0 Stylesheets."""
|
|
|
|
homepage = "https://github.com/docbook/xslt10-stylesheets"
|
|
url = "https://github.com/docbook/xslt10-stylesheets/releases/download/release%2F1.79.2/docbook-xsl-1.79.2.tar.bz2"
|
|
|
|
version("1.79.2", sha256="316524ea444e53208a2fb90eeb676af755da96e1417835ba5f5eb719c81fa371")
|
|
version(
|
|
"1.78.1",
|
|
sha256="c98f7296ab5c8ccd2e0bc07634976a37f50847df2d8a59bdb1e157664700b467",
|
|
url="https://sourceforge.net/projects/docbook/files/docbook-xsl/1.78.1/docbook-xsl-1.78.1.tar.bz2",
|
|
)
|
|
|
|
depends_on("docbook-xml")
|
|
depends_on("libxml2", type="build")
|
|
|
|
patch("docbook-xsl-1.79.2-stack_fix-1.patch", when="@1.79.2")
|
|
|
|
def install(self, spec, prefix):
|
|
install_tree(".", prefix)
|
|
|
|
@property
|
|
def catalog(self):
|
|
return join_path(self.prefix, "xsl-catalog")
|
|
|
|
@run_after("install")
|
|
def config_docbook(self):
|
|
catalog = self.catalog
|
|
version = self.version
|
|
xml_xsd = join_path(prefix, "slides", "schema", "xsd", "xml.xsd")
|
|
xmlcatalog = which("xmlcatalog")
|
|
|
|
# create catalog
|
|
xmlcatalog("--noout", "--create", catalog)
|
|
xmlcatalog(
|
|
"--noout", "--add", "system", "https://www.w3.org/2001/xml.xsd", xml_xsd, catalog
|
|
)
|
|
xmlcatalog(
|
|
"--noout", "--add", "system", "https://www.w3.org/2009/01/xml.xsd", xml_xsd, catalog
|
|
)
|
|
xmlcatalog("--noout", "--add", "uri", "https://www.w3.org/2001/xml.xsd", xml_xsd, catalog)
|
|
xmlcatalog(
|
|
"--noout", "--add", "uri", "https://www.w3.org/2009/01/xml.xsd", xml_xsd, catalog
|
|
)
|
|
|
|
docbook_urls = ["docbook.sourceforge.net", "cdn.docbook.org"]
|
|
docbook_rewrites = ["rewriteSystem", "rewriteURI"]
|
|
docbook_versions = ["current", version]
|
|
for docbook_url in docbook_urls:
|
|
for docbook_rewrite in docbook_rewrites:
|
|
for docbook_version in docbook_versions:
|
|
xmlcatalog(
|
|
"--noout",
|
|
"--add",
|
|
docbook_rewrite,
|
|
"http://{0}/release/xsl/{1}".format(docbook_url, docbook_version),
|
|
"file://{0}".format(prefix),
|
|
catalog,
|
|
)
|
|
|
|
def setup_run_environment(self, env):
|
|
catalog = self.catalog
|
|
env.prepend_path("XML_CATALOG_FILES", catalog, separator=" ")
|
|
|
|
def setup_dependent_build_environment(self, env, dependent_spec):
|
|
catalog = self.catalog
|
|
env.prepend_path("XML_CATALOG_FILES", catalog, separator=" ")
|