diff --git a/var/spack/repos/builtin/packages/docbook-xml/package.py b/var/spack/repos/builtin/packages/docbook-xml/package.py
index 62f87a6ae191a4a290fb83228d6b42b3d0b3a5ed..71da1a798924beece479b7702474d6fd78922e37 100644
--- a/var/spack/repos/builtin/packages/docbook-xml/package.py
+++ b/var/spack/repos/builtin/packages/docbook-xml/package.py
@@ -9,20 +9,17 @@
 
 class DocbookXml(Package):
     """Docbook DTD XML files."""
-    homepage = "http://www.oasis-open.org/docbook"
-    url = "http://www.oasis-open.org/docbook/xml/4.5/docbook-xml-4.5.zip"
+
+    homepage = "https://www.oasis-open.org/docbook"
+    url      = "https://www.oasis-open.org/docbook/xml/4.5/docbook-xml-4.5.zip"
+    list_url = "https://www.oasis-open.org/docbook/xml/"
+    list_depth = 1
 
     version('4.5', '03083e288e87a7e829e437358da7ef9e')
 
     def install(self, spec, prefix):
-        for item in os.listdir('.'):
-            src = os.path.abspath(item)
-            dst = os.path.join(prefix, item)
-            if os.path.isdir(item):
-                install_tree(src, dst, symlinks=True)
-            else:
-                install(src, dst)
+        install_tree('.', prefix)
 
     def setup_environment(self, spack_env, run_env):
-        catalog = os.path.join(self.spec.prefix, 'catalog.xml')
+        catalog = os.path.join(self.prefix, 'catalog.xml')
         run_env.set('XML_CATALOG_FILES', catalog, separator=' ')