On Wed, 27 Mar 2002 21:10:52 +0300 Sergey Vlasov wrote: > Теперь к вопросу, почему sgmltools -b ld2db не работает. Внутрь я не > лазил, но strace показал, что openjade вызывается с переменной > SGML_CATALOG_FILES=/usr/share/sgml/stylesheets/sgmltools/sgmltools.cat > > В этом каталоге не находятся: > 1) LinuxDoc DTD - на что и идет первая ругань; для нее еще нужны как > минимум iso-entities; > 2) внутренние DTD openjade (/usr/share/sgml/openjade-*); А я вот полез, и в backend-е Ld2db.py обнаружил такую пургу: метод PreJade кастрирует SGML_CATALOG_FILES и оставляет только те catalog файлы, в которых найдены подстроки вида: 'dtd/sgmltools', 'stylesheets/sgmltools', 'dtd/jade', 'entities/iso-entities-8879.1986' это мотивируется тем, что лишние catalog элементы будут создавать проблемы с "finding the wrong SGML declaration." До этой фильтрации Sgmltools.py засовывает в SGML_CATALOG_FILES: /etc/sgml/catalog:/usr/share/sgml/stylesheets/sgmltools/sgmltools.cat:/usr/share/sgml/CATALOG.docbkdsl из этого списка вышеуказанные подстроки есть только в /usr/share/sgml/stylesheets/sgmltools/sgmltools.cat поэтому /etc/sgml/catalog (с его DTD-openjade и iso-entities) остается за бортом !!! А ссылок на /usr/share/sgml/dtd/sgmltools/catalog вообще нигде нет! IMHO правильный метод решения: 1. создать /etc/sgml/sgml-linuxdoc.cat содержащий: CATALOG "/usr/share/sgml/dtd/sgmltools/catalog" CATALOG "/usr/share/sgml/openjade-1.3.1/catalog" CATALOG "/usr/share/sgml/sgml-iso-entities-8879.1986/catalog" CATALOG "/usr/share/sgml/stylesheets/sgmltools/sgmltools.cat"" Кстати почему подобного там нет? 2. Заставить PreJade в Ld2db.py включть этот catalog в SGML_CATALOG_FILES Например так: перед os.environ["SGML_CATALOG_FILES"] = string.join(newcatfiles, ':') вставить newcatfiles.append("/etc/sgml/sgml-linuxdoc.cat") У меня работает, хотя тоже немного хак :) Багу что-ли повесить ? -- С Уважением, Максим Дзюманенко