Many fixes for clojure and clojure-contrib formulae.
- clojure formula now works with HEAD installs. - Use /bin/sh rather than /bin/bash in the clj script. - Fix argument-passing in the clj script. (Fixes Homebrew/homebrew#867) - Remove the Java -server flag in the clj script. This is the default option on 64-bit Macs running 10.5 and 10.6 anyway, unless the user has used Java Preferences to make the 32-bit VM the preferred VM, in which case the default is -client. Choosing the 32-bit VM happens to be the only way to use the client HotSpot VM, as the client VM is not currently supported on 64-bit architectures. Presumably, if the user prefers the 32-bit client VM, he has his reasons, and the clj script should respect them. (The client VM has a faster start-up time, for example, which may benefit command-line scripts written in Clojure and invoked using clj.) It would be nice to allow the user to be explicit about which VM to use when invoking the clj script, but this would almost certainly not be portable to other systems' implementations of the 'clj' script, and would be difficult to document due to the fact that clojure.main outputs its own usage message when supplied with a --help/-h/-? argument. Anyone with special needs can simply write his own wrapper script. In any case, users of 64-bit Macs who haven't explicitly chosen the 32-bit Java VM in Java Preferences (i.e., probably most Homebrew users) are unaffected by this change. - clojure-contrib formula now installs the latest stable release (1.1.0) by default (it used to install HEAD always). HEAD installs are still supported via the --HEAD flag but require the HEAD version of clojure; the build will break if the HEAD version of clojure is not installed. - clojure-contrib installs the pre-packaged JAR file, supplied in the release ZIP file, if installing the release version. - clojure-contrib only conditionally depends on maven, if installing HEAD. - clojure-contrib HEAD builds explicitly use the installed clojure HEAD JAR file, per the clojure-contrib documentation. (HEAD builds prior to this change would often mysteriously create a nearly-empty clojure-contrib JAR file.) - clojure-contrib always installs the JAR file as clojure-contrib.jar, rather than adding a version suffix. The Cellar path is sufficient to discriminate versions, and this way the JAR file name is consistent. - Change the clojure-contrib homepage to point to the clojure-contrib documentation, rather than the project's GitHub homepage. - Clojure does not find the clojure-contrib JAR file unless the CLASSPATH includes the JAR file name. Fix the clojure-contrib caveat to reflect this behavior. - Fix "already initialized constant JAR" warnings in both formulae. Signed-off-by: David Höppner <0xffea@gmail.com>
This commit is contained in:
parent
7e903b4281
commit
8df99bf4cb
2 changed files with 24 additions and 18 deletions
|
@ -1,15 +1,24 @@
|
|||
require 'formula'
|
||||
|
||||
class ClojureContrib <Formula
|
||||
url 'http://clojure-contrib.googlecode.com/files/clojure-contrib-1.1.0.zip'
|
||||
md5 'ffaa8d5ea72abd9547186ec38f37c198'
|
||||
head 'git://github.com/richhickey/clojure-contrib.git'
|
||||
homepage 'http://github.com/richhickey/clojure-contrib'
|
||||
homepage 'http://richhickey.github.com/clojure-contrib/branch-1.1.x/index.html'
|
||||
|
||||
depends_on 'clojure'
|
||||
depends_on 'maven'
|
||||
depends_on 'maven' if ARGV.include? '--HEAD'
|
||||
|
||||
def jar
|
||||
'clojure-contrib.jar'
|
||||
end
|
||||
|
||||
def install
|
||||
system "mvn package"
|
||||
prefix.install Dir["target/clojure-contrib-*.jar"]
|
||||
if ARGV.include? '--HEAD'
|
||||
system "mvn package -Dclojure.jar=#{HOMEBREW_PREFIX}/Cellar/clojure/HEAD/clojure.jar"
|
||||
system "mv target/clojure-contrib-*.jar #{jar}"
|
||||
end
|
||||
prefix.install jar
|
||||
end
|
||||
|
||||
def caveats
|
||||
|
@ -17,11 +26,11 @@ class ClojureContrib <Formula
|
|||
For Clojure to detect the contrib libs, the following path must be in your
|
||||
CLASSPATH ENV variable:
|
||||
|
||||
#{prefix}
|
||||
#{prefix}/#{jar}
|
||||
|
||||
To do this with bash, add the following to your ~/.profile file:
|
||||
|
||||
export CLASSPATH=$CLASSPATH:#{prefix}
|
||||
export CLASSPATH=$CLASSPATH:#{prefix}/#{jar}
|
||||
END_CAVEATS
|
||||
end
|
||||
end
|
||||
|
|
|
@ -5,30 +5,27 @@ class Clojure <Formula
|
|||
md5 '9c9e92f85351721b76f40578f5c1a94a'
|
||||
head 'git://github.com/richhickey/clojure.git'
|
||||
homepage 'http://clojure.org/'
|
||||
JAR = "clojure.jar"
|
||||
|
||||
def jar
|
||||
'clojure.jar'
|
||||
end
|
||||
|
||||
def script
|
||||
<<-EOS
|
||||
#!/bin/bash
|
||||
#!/bin/sh
|
||||
# Runs clojure.
|
||||
# With no arguments, runs Clojure's REPL.
|
||||
# With one or more arguments, the first is treated as a script name, the rest
|
||||
# passed as command-line arguments.
|
||||
|
||||
# resolve links - $0 may be a softlink
|
||||
CLOJURE=$CLASSPATH:$(brew --cellar)/#{name}/#{version}/#{JAR}
|
||||
CLOJURE=$CLASSPATH:$(brew --cellar)/#{name}/#{version}/#{jar}
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
java -server -cp $CLOJURE clojure.main
|
||||
else
|
||||
scriptname=$1
|
||||
java -server -cp $CLOJURE clojure.main $scriptname $*
|
||||
fi
|
||||
java -cp $CLOJURE clojure.main "$@"
|
||||
EOS
|
||||
end
|
||||
|
||||
def install
|
||||
prefix.install JAR
|
||||
system "ant" if ARGV.include? '--HEAD'
|
||||
prefix.install jar
|
||||
(bin+'clj').write script
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue