aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Formula/docbook.rb
diff options
context:
space:
mode:
authorJack Nagel2012-02-14 23:57:56 -0600
committerJack Nagel2012-02-15 09:22:59 -0600
commitfba3d905eecbebabf1740824bb9d556b00b33c13 (patch)
tree293c622bf0da52fea3a59da672cec25dd7295236 /Library/Formula/docbook.rb
parentbc82010bf1fdd6bf854f8cde926a769c59c13815 (diff)
downloadhomebrew-fba3d905eecbebabf1740824bb9d556b00b33c13.tar.bz2
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 <jacknagel@gmail.com>
Diffstat (limited to 'Library/Formula/docbook.rb')
-rw-r--r--Library/Formula/docbook.rb78
1 files changed, 46 insertions, 32 deletions
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 <Docbookxml
+
+class Docbookxml412 < Docbookxml
url 'http://www.docbook.org/xml/4.1.2/docbkx412.zip'
md5 '900d7609fb7e6d78901b357e4acfbc17'
version '4.1.2'
- homepage 'http://www.docbook.org/'
end
-class Docbookxml42 <Docbookxml
+
+class Docbookxml42 < Docbookxml
url 'http://www.docbook.org/xml/4.2/docbook-xml-4.2.zip'
md5 '73fe50dfe74ca631c1602f558ed8961f'
- homepage 'http://www.docbook.org/'
end
-class Docbookxml43 <Docbookxml
+
+class Docbookxml43 < Docbookxml
url 'http://www.docbook.org/xml/4.3/docbook-xml-4.3.zip'
md5 'ab200202b9e136a144db1e0864c45074'
- homepage 'http://www.docbook.org/'
end
-class Docbookxml44 <Docbookxml
+
+class Docbookxml44 < Docbookxml
url 'http://www.docbook.org/xml/4.4/docbook-xml-4.4.zip'
md5 'cbb04e9a700955d88c50962ef22c1634'
- homepage 'http://www.docbook.org/'
end
-class Docbookxml45 <Docbookxml
+
+class Docbookxml45 < Docbookxml
url 'http://www.docbook.org/xml/4.5/docbook-xml-4.5.zip'
md5 '03083e288e87a7e829e437358da7ef9e'
- homepage 'http://www.docbook.org/'
end
-class Docbookxml50 <Docbookxml
+
+class Docbookxml50 < Docbookxml
url 'http://www.docbook.org/xml/5.0/docbook-5.0.zip'
md5 '2411c19ed4fb141f3fa3d389fae40736'
- homepage 'http://www.docbook.org/'
end
+
class Docbookxsl < Formula
+ homepage 'http://docbook.sourceforge.net/'
url 'http://downloads.sourceforge.net/project/docbook/docbook-xsl/1.76.1/docbook-xsl-1.76.1.tar.bz2'
md5 'b5340507cb240cc7ce00632b9c40bff5'
- homepage 'http://docbook.sourceforge.net/'
+
def install
doc_files = %w[AUTHORS BUGS README RELEASE-NOTES.txt TODO VERSION NEWS COPYING]
- xsl_files = %w[catalog.xml common eclipse epub extensions fo highlighting html htmlhelp images javahelp lib manpages params profiling roundtrip slides template tools website xhtml xhtml-1_1]
+ xsl_files = %w[catalog.xml common eclipse epub extensions fo highlighting html
+ htmlhelp images javahelp lib manpages params profiling roundtrip
+ slides template tools website xhtml xhtml-1_1]
docbook = Formula.factory 'docbook'
(docbook.prefix+'docbook/xsl'+version).install xsl_files + doc_files
end
+
+ def catalog; 'docbook/xsl/'+version; end
end