summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorGlenn Johnson <glenn-johnson@uiowa.edu>2023-01-16 09:03:03 -0600
committerGitHub <noreply@github.com>2023-01-16 16:03:03 +0100
commitfcf9c639ee4552ae45b7952be6f10e9517f4aa21 (patch)
tree5cd3c3c185c5aa8b10883615b0796310b64adc55 /var
parent4e63d92bc927aeb5380bdc48500abda4cda4b5bd (diff)
downloadspack-fcf9c639ee4552ae45b7952be6f10e9517f4aa21.tar.gz
spack-fcf9c639ee4552ae45b7952be6f10e9517f4aa21.tar.bz2
spack-fcf9c639ee4552ae45b7952be6f10e9517f4aa21.tar.xz
spack-fcf9c639ee4552ae45b7952be6f10e9517f4aa21.zip
Make docbook-xml work across all entity versions (#34733)
Packages that use docbook-xml may specify a specific entity version. When this is specified as a version constraint in the package recipe it will cause problems when using `unify = True` in a Spack environment, as there could be multiple versions of docbook-xml in the spec. In practice, any entity version should work with any other version and everything should work with the latest version. This PR maps all Spack docbook-xml entity versions to the docbook-xml version in the spec. Ideally, the version in the spec would be the latest version. With this PR, even if a package specifies an older entity version, it will map to the entity version (latest) in the spec. This means that there can be one docbook-xml version in a Spack environment spec and packages requesting older entity versions will still work. To help facilitate this, docbook-xml version constraints for packages that have them have been removed. Those packages are dbus and gtk-doc.
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/dbus/package.py3
-rw-r--r--var/spack/repos/builtin/packages/docbook-xml/package.py52
-rw-r--r--var/spack/repos/builtin/packages/docbook-xsl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gtk-doc/package.py4
4 files changed, 57 insertions, 4 deletions
diff --git a/var/spack/repos/builtin/packages/dbus/package.py b/var/spack/repos/builtin/packages/dbus/package.py
index 22b7d4d8ec..9a13a90a72 100644
--- a/var/spack/repos/builtin/packages/dbus/package.py
+++ b/var/spack/repos/builtin/packages/dbus/package.py
@@ -28,11 +28,12 @@ class Dbus(Package):
version("1.8.2", sha256="5689f7411165adc953f37974e276a3028db94447c76e8dd92efe910c6d3bae08")
depends_on("pkgconfig", type="build")
- depends_on("docbook-xml@4.4", type="build")
+ depends_on("docbook-xml", type="build")
depends_on("docbook-xsl", type="build")
depends_on("expat")
depends_on("glib")
depends_on("libsm")
+ depends_on("xmlto")
def install(self, spec, prefix):
configure("--prefix=%s" % prefix, "--disable-systemd", "--disable-launchd")
diff --git a/var/spack/repos/builtin/packages/docbook-xml/package.py b/var/spack/repos/builtin/packages/docbook-xml/package.py
index 81f91504b4..5d5863ba45 100644
--- a/var/spack/repos/builtin/packages/docbook-xml/package.py
+++ b/var/spack/repos/builtin/packages/docbook-xml/package.py
@@ -339,6 +339,58 @@ class DocbookXml(Package):
catalog,
)
+ # map all versions to current version
+ dtversions = [
+ "4.1",
+ "4.1.1",
+ "4.1.2",
+ "4.2",
+ "4.3",
+ "4.4",
+ "4.5",
+ ]
+ for dtversion in dtversions:
+ xmlcatalog(
+ "--noout",
+ "--add",
+ "public",
+ "-//OASIS//DTD DocBook XML V{0}//EN".format(dtversion),
+ "http://www.oasis-open.org/docbook/xml/{0}/docbookx.dtd".format(dtversion),
+ docbook,
+ )
+ xmlcatalog(
+ "--noout",
+ "--add",
+ "rewriteSystem",
+ "http://www.oasis-open.org/docbook/xml/{0}".format(dtversion),
+ "file://{0}".format(prefix),
+ docbook,
+ )
+ xmlcatalog(
+ "--noout",
+ "--add",
+ "rewriteURI",
+ "http://www.oasis-open.org/docbook/xml/{0}".format(dtversion),
+ "file://{0}".format(prefix),
+ docbook,
+ )
+ xmlcatalog(
+ "--noout",
+ "--add",
+ "delegateSystem",
+ "http://www.oasis-open.org/docbook/xml/{0}".format(dtversion),
+ "file://{0}".format(docbook),
+ catalog,
+ )
+ xmlcatalog(
+ "--noout",
+ "--add",
+ "delegateURI",
+ "http://www.oasis-open.org/docbook/xml/{0}".format(dtversion),
+ "file://{0}".format(docbook),
+ catalog,
+ )
+
def setup_run_environment(self, env):
catalog = self.catalog
env.prepend_path("XML_CATALOG_FILES", catalog, separator=" ")
diff --git a/var/spack/repos/builtin/packages/docbook-xsl/package.py b/var/spack/repos/builtin/packages/docbook-xsl/package.py
index e50f36f8f7..77b05d0841 100644
--- a/var/spack/repos/builtin/packages/docbook-xsl/package.py
+++ b/var/spack/repos/builtin/packages/docbook-xsl/package.py
@@ -62,7 +62,7 @@ class DocbookXsl(Package):
"--add",
docbook_rewrite,
"http://{0}/release/xsl/{1}".format(docbook_url, docbook_version),
- prefix,
+ "file://{0}".format(prefix),
catalog,
)
diff --git a/var/spack/repos/builtin/packages/gtk-doc/package.py b/var/spack/repos/builtin/packages/gtk-doc/package.py
index 87a557a218..7e5be0e49c 100644
--- a/var/spack/repos/builtin/packages/gtk-doc/package.py
+++ b/var/spack/repos/builtin/packages/gtk-doc/package.py
@@ -38,8 +38,8 @@ class GtkDoc(AutotoolsPackage):
depends_on("py-six", type=("test"))
depends_on("libxslt")
depends_on("libxml2@2.3.6:")
- depends_on("docbook-xsl@1.78.1")
- depends_on("docbook-xml@4.3")
+ depends_on("docbook-xsl")
+ depends_on("docbook-xml")
# depends_on('dblatex', when='+pdf')
patch("build.patch")