Red Hat Bugzilla – Bug 442138
comps.dtd file is missing
Last modified: 2014-01-21 01:10:28 EST
Description of problem:
can not locate 'comps.dtd' for XML validation, it is an external reference of
comps.xml file on installation media. The DTD file is used for users' custom
RPM group definition file, custom.xml, as well.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. find the installation CDs and can not locate the dtd file.
2. query all the RPMs but still can not find the file
3. google Internet but still can not find it.
can not locate the file.
it should be at where, like inside the comps RPM, and Internet accessible.
The comps.dtd should be a simple text file and of no other uses besides
validation Redhat, or Redhat variants Linux Distributions. Please make it
available through Internet at least.
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux maintenance release. Product Management has requested
further review of this request by Red Hat Engineering, for potential
inclusion in a Red Hat Enterprise Linux Update release for currently deployed
products. This request is not yet committed for inclusion in an Update
My take is the following:
it should be put somewhere on a public web site (www.redhat.com/fedoraproject.org or rpm.org), preferably with a versionned URL.
Then it should also be installed on local disks possibly as part of the
rpm or yum package, and in the post-install you add it to the XML Catalog
(see http://xmlsoft.org/catalog.html for explanations)
Then in the comps.xml shipped you keep the SYSTEM identifier as the
URL on the public web site but validation will look first in the catalog
and avoid the remote lookup.
Examples of packages doing exactly this are xhtml1-dtds and docbook-dtds
For paths to XML DTDs in the distro and catalogs, this has been discuted
as part of the standardization group,
/usr/share/xml/comps/1.0/comps.dtd would be just fine, and the
mapping could be added directly in /etc/xml/catalog
Seth, I think it would make sense for the yum package to be the one that includes the comps.dtd file and xml catalog entries. Do you agree?
comps format is driven from anaconda. Yum just supports what anaconda wants to do with it. It might make more sense for it to be in anaconda.
Having anaconda provide comps.dtd in an RPM is probably the easiest way considering comps is a special component in the distribution.
You guys just want to remove it from the comps package in dist-cvs and add it to anaconda? We can install it as part of anaconda-runtime. Then we just need to update the comps files to reference the comps.dtd location correctly on the filesystem.
Created attachment 317649 [details]
Sounds good. I've moved this bug to the anaconda component and attached the comps.dtd file.
Where should this file be installed on the system?
Adding exception flag
I will get this bug taken care of and add the comps.dtd file if someone can tell me where on the system
OK, comps.dtd added to /usr/share/xml/comps/1.0 as comps.dtd. The file is part of the anaconda-runtime package and now anaconda-runtime will depend on xml-common and the libxml2 package (for xmlcatalog).
I do not know where DTD files should live on our http servers, so I'm going to punt that decision to someone else's to do stack. The comps*.xml files I see in the current RHEL 5 trees just reference "comps.dtd" at the top, so I have added this as the %post script for the anaconda-runtime package:
/usr/bin/xmlcatalog --noout --add "rewriteSystem" \
/usr/bin/xmlcatalog --noout --add "rewriteURI" \
When/if the comps.dtd file is published on an HTTP site, we change the rewrite rule generation here.
Fixed in anaconda-22.214.171.124-1
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.