From fba3d905eecbebabf1740824bb9d556b00b33c13 Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Tue, 14 Feb 2012 23:57:56 -0600 Subject: docbook: keep XML catalog inside HOMEBREW_PREFIX Rather than download a shell script and tell users to run it with `sudo`, it is better to keep everything under Homebrew's control. Luckily, the XML toolchain provides the environment variable XML_CATALOG_FILES to allow files otehr than /etc/xml/catalog to be used. So remove the shell script, and do all the work inside the formula itself. When we're done, we just tell the user to add HOMEBREW_PREFIX/etc/xml/catalog to their shell configuration, rather than tell them to `sudo docbook-register`. Rather than download the shell script, just download docbook 5.0, which we need anyway. This also simplifies the logic in a handful of docbook-using formula. Signed-off-by: Jack Nagel --- Library/Formula/docbook.rb | 78 +++++++++++++++++++++++++++------------------- Library/Formula/gtk-doc.rb | 3 +- Library/Formula/xmlto.rb | 28 +++-------------- 3 files changed, 53 insertions(+), 56 deletions(-) (limited to 'Library/Formula') diff --git a/Library/Formula/docbook.rb b/Library/Formula/docbook.rb index b8d1f59e8..3ef3f7d7a 100644 --- a/Library/Formula/docbook.rb +++ b/Library/Formula/docbook.rb @@ -1,33 +1,39 @@ require 'formula' class Docbook < Formula - url 'https://gist.github.com/raw/462528/098ccc609b039cf5b6d11fcd9c8ef333c3861b65/docbook-register' - md5 '0fbc35a136190050de3598354655fd82' - version '5.0' homepage 'http://docbook.sourceforge.net/' - - def packages; [ - Docbookxml412, - Docbookxml42, - Docbookxml43, - Docbookxml44, - Docbookxml45, - Docbookxml50, - Docbookxsl, - ]; end + url 'http://www.docbook.org/xml/5.0/docbook-5.0.zip' + md5 '2411c19ed4fb141f3fa3d389fae40736' def install - bin.install 'docbook-register' + packages = [Docbookxml412, + Docbookxml42, + Docbookxml43, + Docbookxml44, + Docbookxml45, + Docbookxml50, + Docbookxsl] + + (etc+'xml').mkpath + system "xmlcatalog", "--noout", "--create", "#{etc}/xml/catalog" + packages.each do |pkg| - pkg.new.brew { |formula| formula.install } + pkg.new.brew do |f| + f.install + catalog = prefix+f.catalog+'catalog.xml' + system "xmlcatalog", "--noout", "--del", + "file://#{catalog}", "#{etc}/xml/catalog" + system "xmlcatalog", "--noout", "--add", "nextCatalog", + "", "file://#{catalog}", "#{etc}/xml/catalog" + end end end def caveats; <<-EOS.undent - To use the DocBook package in your XML toolchain, you need to - register it with the global XML catalog with this command: + To use the DocBook package in your XML toolchain, + you need to add the following to your ~/.bashrc: - sudo docbook-register + export XML_CATALOG_FILES="#{etc}/xml/catalog" EOS end end @@ -38,46 +44,54 @@ class Docbookxml < Formula docbook = Formula.factory 'docbook' (docbook.prefix+'docbook/xml'+version).install Dir['*'] end + + def catalog; 'docbook/xml/'+version; end end -class Docbookxml412