aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xCellar/homebrew/brew290
-rw-r--r--Cellar/homebrew/brewkit.rb188
-rwxr-xr-xCellar/homebrew/unittest.rb55
-rw-r--r--Formula/__template.rb11
-rw-r--r--Formula/ack.rb18
-rw-r--r--Formula/asciidoc.rb12
-rw-r--r--Formula/boost.rb25
-rw-r--r--Formula/cmake.rb24
-rw-r--r--Formula/dmd.rb57
-rw-r--r--Formula/fftw.rb30
-rw-r--r--Formula/git.rb24
-rw-r--r--Formula/grc.rb62
-rw-r--r--Formula/lame.rb15
-rw-r--r--Formula/liblastfm.rb23
-rw-r--r--Formula/libogg.rb15
-rw-r--r--Formula/libsamplerate.rb15
-rw-r--r--Formula/mad.rb16
-rw-r--r--Formula/pkg-config.rb19
-rw-r--r--Formula/pngcrush.rb17
-rw-r--r--Formula/qt.rb43
-rw-r--r--Formula/taglib.rb16
-rw-r--r--Formula/term.rb17
-rw-r--r--Formula/wget.rb17
-rw-r--r--Formula/xmlrpc-c.rb24
-rw-r--r--Formula/yajl.rb27
-rw-r--r--README5
26 files changed, 664 insertions, 401 deletions
diff --git a/Cellar/homebrew/brew b/Cellar/homebrew/brew
index d857c6068..9782c4edd 100755
--- a/Cellar/homebrew/brew
+++ b/Cellar/homebrew/brew
@@ -3,7 +3,10 @@
# Licensed as per the GPL version 3
require 'find'
require 'pathname'
-$root = Pathname.new(__FILE__).realpath.dirname.parent.parent
+$:.unshift "#{File.dirname __FILE__}/../Cellar/homebrew"
+$root=Pathname.new(__FILE__).realpath.dirname.parent.parent
+$formula=$root+'Formula'
+$cellar=$root+'Cellar'
def prune
n=0
@@ -25,95 +28,224 @@ def prune
end
end
# entries lists '.' and '..' so 2 is minimum basically
- dirs.sort.reverse_each { |d| d.rmdir if d.children.length == 0 }
+ dirs.sort.reverse_each do |d|
+ if d.children.length == 0
+ d.rmdir
+ n+=1
+ end
+ end
return n
end
-case ARGV[0]
- when 'brew', 'install' then
- abort "You must specify a Formula" unless ARGV[1]
- ARGV.shift
- file="#{$root}/Formula/#{ARGV.shift}"
- file+='.rb' unless File.exist? file
- system "ruby #{file} #{ARGV.join ' '}"
-
- when 'rm', 'uninstall' then
- path=$root+'Cellar'+ARGV[1]
- abort "#{ARGV[1]} is not installed" unless path.directory?
- path.rmtree
- prune
- puts "#{path} removed"
-
- when 'ln' then
- target=Pathname.new(ARGV[1])
- target=$root+'Cellar'+target unless target.exist?
-
- abort "#{target} is not a directory" unless target.directory?
-
- target=target.realpath
-
- if target.parent.parent == $root
- # we are one dir too high
- kids=target.children
- abort "#{target} is empty :(" if kids.length == 0
- abort "There are multiple versions of #{target.basename} installed please specify one" if kids.length > 1
- target=target.children.first
- abort "#{target} is not a directory!" unless target.directory?
- elsif target.parent.parent.parent != $root
- abort '#{target} is not a keg'
- end
+def shift_formulae
+ name=Pathname.new ARGV.shift
- #TODO you should mkdirs as you find them and symlink files otherwise
- #TODO consider using hardlinks
+ return name if name.directory? and name.parent.realpath == $cellar
+ return File.basename(name, '.rb') if name.file? and name.extname == '.rb' and name.parent.realpath == $formula
- n=0
- target.find do |from|
- next if from == ARGV[1] #rubysucks
+ name=name.to_s
+ raise "#{name} is an invalid name for a formula" if name.include? '/'
- to=$root+from.relative_path_from(target)
+ return name if ($formula+(name+'.rb')).file?
+ return name if ($cellar+name).directory?
- if from.directory?
- to.mkpath unless to.exist?
- elsif from.file?
- tod=to.dirname
- Dir.chdir(tod) do
- `ln -sf "#{from.relative_path_from tod}"`
- n+=1
- end
- end
+ raise "No formula or keg for #{name} found"
+end
+
+def __class name
+ #remove invalid characters and camelcase
+ name.capitalize.gsub(/[-_\s]([a-zA-Z0-9])/) { $1.upcase }
+end
+
+def __rb name
+ $formula+(name+'.rb')
+end
+
+def __obj name
+ require "#{__rb name}"
+ o=eval(__class(name)).new
+ o.name=name
+ return o
+end
+
+def rm keg
+ #TODO if multiple versions don't rm all unless --force
+ path=$cellar+keg
+ path.rmtree
+ puts "#{path} removed (#{prune} files)"
+end
+
+def ln name
+ keg=$cellar+name
+ keg=keg.realpath
+
+ if keg.parent.parent == $root
+ # we are one dir too high
+ kids=keg.children
+ raise "#{keg} is empty :(" if kids.length == 0
+ raise "There are multiple versions of #{keg.basename} installed please specify one" if kids.length > 1
+ keg=keg.children.first
+ raise "#{keg} is not a directory" unless keg.directory?
+ elsif keg.parent.parent.parent != $root
+ raise '#{keg} is not a keg'
+ end
+
+ #TODO consider using hardlinks
+
+ # yeah indeed, you have to force anything you want in the main tree into
+ # these directories :P
+ $n=0
+ lnd(keg, 'etc') {nil}
+ lnd(keg, 'include') {nil}
+
+ lnd(keg, 'lib') do |path|
+ :mkpath if ['pkgconfig','php'].include? path.to_s
+ end
+
+ lnd(keg, 'bin') do |path|
+ if path.extname.to_s == '.app'
+ # no need to put .app bundles in the path, just use spotlight, or the
+ # open command
+ :skip
+ else
+ :mkpath
end
- puts "Created #{n} links"
-
- when 'abv', 'stats', 'statistics'
- cellar=$root+'Cellar'
- print `find #{cellar} -type f | wc -l`.strip+' files, '+`du -hd0 #{cellar} | cut -d"\t" -f1`.strip
-
- when 'prune', 'pasteurize' then
- puts "Pruned #{prune} files"
-
- when 'prefix'
- # Get the clean path to $prefix/Cellar/homebrew/brew/../../../
- # Don't resolve any symlinks of that final result.
- # Rationale: if the user calls /usr/local/bin/brew but that will resolve
- # to /Brewery/Cellar/homebrew/brew we should give /usr/local and not
- # /Brewery because the user probably has chosen /usr/local as the Homebrew
- # to expose to the system.
- if File.symlink? __FILE__
- # using pathname as it will handle readlink returning abs or rel paths
- d=Pathname.new(__FILE__).dirname
- puts File.expand_path(d+File.readlink(__FILE__)+'../../../')
+ end
+
+ lnd(keg, 'share') do |path|
+ path=path.to_s
+ if ['man','doc','locale','info'].include? path
+ :mkpath
else
- # Dir.pwd resolves the symlink :P #rubysucks
- # we use the cwd because __FILE__ can be relative and expand_path
- # resolves the symlink for the working directory if fed a relative path
- # SIGH
- cwd=Pathname.new `pwd`.strip
- puts File.expand_path(cwd+__FILE__+'../../../')
+ mans=(1..9).collect {|x| "man/man#{x}"}
+ :mkpath if mans.include? path
+ end
+ end
+
+ return $n
+end
+
+def symlink_relative_to from, to
+ tod=to.dirname
+ tod.mkpath
+ Dir.chdir(tod) do
+ #TODO use ruby function so we get exceptions
+ `ln -sf "#{from.relative_path_from tod}"`
+ $n+=1
+ end
+end
+
+# symlinks a directory recursively into our FHS tree
+def lnd keg, start
+ start=keg+start
+ return unless start.directory?
+
+ start.find do |from|
+ next if from == start
+
+ prune=false
+ relative_path=from.relative_path_from keg
+ to=$root+relative_path
+
+ if from.directory?
+ cmd=yield from.relative_path_from(start)
+
+ if :skip == cmd
+ Find.prune
+ elsif :mkpath == cmd
+ to.mkpath
+ $n+=1
+ else
+ symlink_relative_to from, to
+ Find.prune
+ end
+ elsif from.file?
+ symlink_relative_to from, to
end
+ end
+end
+
+def prefix
+ # Get the clean path to $prefix/Cellar/homebrew/brew/../../../
+ # Don't resolve any symlinks of that final result.
+ # Rationale: if the user calls /usr/local/bin/brew but that will resolve
+ # to /Brewery/Cellar/homebrew/brew we should give /usr/local and not
+ # /Brewery because the user probably has chosen /usr/local as the Homebrew
+ # to expose to the system.
+ if File.symlink? __FILE__
+ # using pathname as it will handle readlink returning abs or rel paths
+ d=Pathname.new(__FILE__).dirname
+ File.expand_path(d+File.readlink(__FILE__)+'../../../')
+ else
+ # Dir.pwd resolves the symlink :P #rubysucks
+ # we use the cwd because __FILE__ can be relative and expand_path
+ # resolves the symlink for the working directory if fed a relative path
+ # SIGH
+ cwd=Pathname.new `pwd`.strip
+ File.expand_path(cwd+__FILE__+'../../../')
+ end
+end
+
+def usage
+ name=File.basename $0
+ <<-EOS
+Usage: #{name} [abv] [prune] [--prefix] [--cache]
+Usage: #{name} [install] [ln] [rm] [info] [list] beverage
+ EOS
+end
- when 'cache'
- puts File.expand_path('~/Library/Application Support/Homebrew')
+######################################################################### impl
+begin
+ #TODO proper options parsing so --options can go first if necessary
+
+ case ARGV.shift
+ when 'abv'
+ `find #{$cellar} -type f | wc -l`.strip+' files, '+`du -hd0 #{$cellar} | cut -d"\t" -f1`.strip
+ when 'prune'
+ puts "Pruned #{prune} files"
+ when '--prefix'
+ puts prefix
+ when '--cache'
+ puts File.expand_path('~/Library/Application Support/Homebrew')
+ when '-h', '--help', '--usage', '-?'
+ puts usage
+ when '-v', '--version'
+ puts HOMEBREW_VERSION
+ when 'list'
+ puts `find #{$cellar+shift_formulae}`
+ when 'install'
+ name=shift_formulae
+ beginning = Time.now
+ o=__obj(name)
+ raise "#{o.prefix} already exists!" if o.prefix.exist?
+ o.brew { o.install }
+ ln name
+ puts "#{o.prefix}: "+`find #{o.prefix} -type f | wc -l`.strip+
+ ' files, '+
+ `du -hd0 #{o.prefix} | cut -d"\t" -f1`.strip+
+ ", built in #{Time.now - beginning} seconds"
+ when 'ln'
+ puts "Created #{ln shift_formulae} links"
+ when 'rm'
+ rm shift_formulae
+ when 'info'
+ o=__obj shift_formulae
+ puts "#{o.name} #{o.version}"
+ puts o.homepage
+ else
+ puts usage
+ end
+rescue StandardError, Interrupt => e
+ if ARGV.include? '--verbose' or ENV['HOMEBREW_DEBUG']
+ raise
+ elsif e.kind_of? Interrupt
+ puts # seeimgly a newline is typical
+ exit 130
+ elsif e.kind_of? StandardError and not e.kind_of? NameError
+ puts "\033[1;31mError\033[0;0m: #{e}"
+ exit 1
else
- puts "usage: #{$0} [prune] [ln path] [install pkg]"
+ raise
+ end
end \ No newline at end of file
diff --git a/Cellar/homebrew/brewkit.rb b/Cellar/homebrew/brewkit.rb
index f0daa48c8..b19cfcf66 100644
--- a/Cellar/homebrew/brewkit.rb
+++ b/Cellar/homebrew/brewkit.rb
@@ -2,8 +2,7 @@
# Licensed as per the GPL version 3
require 'pathname'
-$agent = "Homebrew 0.1 (Ruby; Mac OS X 10.5 Leopard)"
-$cellar = Pathname.new(__FILE__).dirname.parent.realpath
+HOMEBREW_VERSION='0.1'
# optimise all the way to eleven, references:
# http://en.gentoo-wiki.com/wiki/Safe_Cflags/Intel
@@ -18,9 +17,9 @@ ENV['CC']='gcc-4.2'
ENV['CXX']='g++-4.2'
ENV['MAKEFLAGS']='-j2'
-unless $cellar.parent.to_s == '/usr/local'
- ENV['CPPFLAGS']="-I#{$cellar.parent}/include"
- ENV['LDFLAGS']="-L#{$cellar.parent}/lib"
+unless $root.to_s == '/usr/local'
+ ENV['CPPFLAGS']='-I'+$root+'include'
+ ENV['LDFLAGS']='-L'+$root+'lib'
end
@@ -35,21 +34,59 @@ def appsupport
return appsupport
end
+
+# make our code neater
+class Pathname
+ def mv dst
+ FileUtils.mv to_s, dst
+ end
+ def cp dst
+ if file?
+ FileUtils.cp to_s, dst
+ else
+ FileUtils.cp_r to_s, dst
+ end
+ end
+end
+
+
class Formula
require 'find'
require 'fileutils'
- # if you reimplement, assign @name, @version, @url and @md5
- def initialize(url, md5)
- @name = File.basename $0, '.rb' #original script that the interpreter started
- @url = url
- @md5 = md5
+ # fuck knows, ruby is weird
+ def self.url
+ @url
+ end
+ def url
+ self.class.url
+ end
+ def self.md5
+ @md5
+ end
+ def md5
+ self.class.md5
+ end
+ def self.homepage
+ @homepage
+ end
+ def homepage
+ self.class.homepage
+ end
+ # end ruby is weird section
+
+ def initialize
+ # fuck knows, ruby is weird
+ @url=url if @url.nil?
+ raise "@url.nil?" if @url.nil?
+ @md5=md5 if @md5.nil?
+ # end ruby is weird section
# pls improve this version extraction crap
- filename=File.basename url
+ filename=File.basename @url
i=filename.index /[-_]\d/
unless i.nil?
- /^((\d+[._])*(\d+-)?\d+)/.match filename[i+1,1000] #1000 because rubysucks
+ /^((\d+[._])*(\d+-)?\d+[abc]?)/.match filename[i+1,1000] #1000 because rubysucks
@version=$1
# if there are no dots replace underscores, boost do this, the bastards!
@version.gsub!('_', '.') unless @version.include? '.'
@@ -59,26 +96,57 @@ class Formula
@version = $1
end
end
+
+private
+ def maybe_mkpath path
+ path.mkpath unless path.exist?
+ return path
+ end
- #yields a Pathname object for the installation prefix
- def brew
- raise "@name.nil?" if @name.nil?
+public
+ def prefix
+ raise "@name.nil!" if @name.nil?
raise "@version.nil?" if @version.nil?
+ $cellar+@name+@version
+ end
+ def bin
+ maybe_mkpath prefix+'bin'
+ end
+ def doc
+ maybe_mkpath prefix+'share'+'doc'+name
+ end
+ def man
+ maybe_mkpath prefix+'share'+'man'
+ end
+ def lib
+ maybe_mkpath prefix+'lib'
+ end
+ def include
+ maybe_mkpath prefix+'include'
+ end
- # disabled until the regexp makes sense :P
- #raise "@name does not validate to our regexp" unless /^\w+$/ =~ @name
+ def name=name
+ raise "Name assigned twice, I'm not letting you do that!" if @name
+ @name=name
+ end
- beginning = Time.now
+protected
+ def caveats
+ nil
+ end
- prefix=$cellar+@name+@version
- raise "#{prefix} already exists!" if prefix.exist?
+public
+ #yields a Pathname object for the installation prefix
+ def brew
+ # disabled until the regexp makes sense :P
+ #raise "@name does not validate to our regexp" unless /^\w+$/ =~ @name
ohai "Downloading #{@url}"
Dir.chdir appsupport do
tgz=Pathname.new(fetch()).realpath
md5=`md5 -q "#{tgz}"`.strip
- raise "MD5 mismatch: #{md5}" unless md5 == @md5.downcase
+ raise "MD5 mismatch: #{md5}" unless md5 and md5 == @md5.downcase
# we make an additional subdirectory so know exactly what we are
# recursively deleting later
@@ -86,26 +154,27 @@ class Formula
# can't handle being built in a directory with spaces in it :P
tmp=nil
begin
- tmp=`mktemp -dt #{@name}-#{@version}`.strip
+ tmp=`mktemp -dt #{File.basename @url}`.strip
Dir.chdir tmp do
Dir.chdir uncompress(tgz) do
- caveats = yield prefix
+ prefix.mkpath
+ yield self
if caveats
ohai "Caveats"
puts caveats
- ohai "Summary"
end
#TODO copy changelog or CHANGES file to pkg root,
#TODO maybe README, etc. to versioned root
end
end
- rescue
+ rescue Interrupt, RuntimeError
if ARGV.include? '--debug'
# debug mode allows the packager to intercept a failed build and
# investigate the problems
puts "Rescued build at: #{tmp}"
exit! 1
else
+ FileUtils.rm_rf prefix
raise
end
ensure
@@ -115,27 +184,26 @@ class Formula
ohai 'Finishing up'
- # stay in appsupport in case any odd files gets created etc.
- `#{$cellar}/homebrew/brew ln #{prefix}` if prefix.exist?
-
prefix.find do |path|
if path==prefix #rubysucks
next
elsif path.file?
- fo=`file -h #{path}`
- args=nil
- args='-SxX' if fo =~ /Mach-O dynamically linked shared library/
- args='' if fo =~ /Mach-O executable/ #defaults strip everything
- if args
- puts "Stripping: #{path}" if ARGV.include? '--verbose'
- `strip #{args} #{path}`
+ if path.extname == '.la'
+ path.unlink
+ else
+ fo=`file -h #{path}`
+ args=nil
+ args='-SxX' if fo =~ /Mach-O dynamically linked shared library/
+ args='' if fo =~ /Mach-O executable/ #defaults strip everything
+ if args
+ puts "Stripping: #{path}" if ARGV.include? '--verbose'
+ `strip #{args} #{path}`
+ end
end
elsif path.directory? and path!=prefix+'bin' and path!=prefix+'lib'
Find.prune
end
end
-
- puts "#{prefix}: "+`find #{prefix} -type f | wc -l`.strip+' files, '+`du -hd0 #{prefix} | cut -d"\t" -f1`.strip+", built in #{Time.now - beginning} seconds"
end
end
@@ -159,8 +227,10 @@ protected
tgz=File.expand_path File.basename(@url)
end
+ agent="Homebrew #{HOMEBREW_VERSION} (Ruby #{VERSION}; Mac OS X 10.5 Leopard)"
+
unless File.exists? tgz
- `curl -#LA "#{$agent}" #{oarg} "#{@url}"`
+ `curl -#LA "#{agent}" #{oarg} "#{@url}"`
raise "Download failed" unless $? == 0
else
puts "File already downloaded and cached"
@@ -178,9 +248,15 @@ protected
raise "Compression tool failed" if $? != 0
entries=Dir['*']
- raise "Empty tar!" if entries.nil? or entries.length == 0
- raise "Too many folders in uncompressed result. You need to reimplement the Recipe.uncompress function." if entries.length > 1
- return entries.first
+ if entries.nil? or entries.length == 0
+ raise "Empty tarball!"
+ elsif entries.length == 1
+ # if one dir enter it as that will be where the build is
+ entries.first
+ else
+ # if there's more than one dir, then this is the build directory already
+ Dir.pwd
+ end
end
def cache?
@@ -193,22 +269,21 @@ private
end
end
-# you have to reimplement initialize to set the version, for example usage
-# see the ack script
-class UncompressedScriptFormula < Formula
- def initialize(url)
- @url=url
- @name=File.basename url
- end
+# see ack.rb for an example usage
+class UncompressedScriptFormula <Formula
def uncompress path
path.dirname
end
def cache?
false
end
+ def install
+ FileUtils.cp name, bin
+ (bin+name).chmod 0544
+ end
end
-class GithubGistFormula < Formula
+class GithubGistFormula <Formula
def initialize(url, md5)
@url=url
@name=File.basename url
@@ -225,7 +300,7 @@ class GithubGistFormula < Formula
end
def uncompress path
- File.dirname path
+ path.dirname
end
end
@@ -259,19 +334,6 @@ def system cmd
end
end
-# force a prettier exception handler unless --verbose or HOMEBREW_DEBUG
-Kernel.at_exit {
- if $! and not (ARGV.include? '--verbose' or ENV['HOMEBREW_DEBUG'])
- if $!.kind_of? Interrupt #control-c
- puts # seeimgly a newline is more typical
- exit! 130
- elsif $!.kind_of? StandardError
- puts "\033[1;31mError\033[0;0m: #{$!}"
- exit! 1
- end
- end
-}
-
########################################################################script
if $0 == __FILE__
d=$cellar.parent+'bin'
diff --git a/Cellar/homebrew/unittest.rb b/Cellar/homebrew/unittest.rb
index 8e1e01cb3..1982faefc 100755
--- a/Cellar/homebrew/unittest.rb
+++ b/Cellar/homebrew/unittest.rb
@@ -1,64 +1,77 @@
#!/usr/bin/ruby
-cwd=File.dirname(__FILE__)
-$:.unshift cwd #rubysucks
+$:.unshift File.dirname(__FILE__)
+require 'pathname'
+$root=Pathname.new(__FILE__).realpath.dirname.parent.parent
+$cellar=$root+'Cellar'
require 'brewkit'
require 'test/unit'
-$cellar=Pathname.new(cwd).parent.realpath
-class BeerTasting < Test::Unit::TestCase
+
+class TestFormula <Formula
+ def initialize url, md5
+ @url=url
+ @md5=md5
+ @name='test'
+ super()
+ end
+end
+
+
+class BeerTasting <Test::Unit::TestCase
def test_version_all_dots
- r=Formula.new "http://example.com/foo.bar.la.1.14.zip", 'nomd5'
+ r=TestFormula.new "http://example.com/foo.bar.la.1.14.zip", 'nomd5'
assert_equal '1.14', r.version
end
def test_version_underscore_separator
- r=Formula.new "http://example.com/grc_1.1.tar.gz", 'nomd5'
+ r=TestFormula.new "http://example.com/grc_1.1.tar.gz", 'nomd5'
assert_equal '1.1', r.version
end
def test_version_underscores_all_the_way
- r=Formula.new "http://example.com/boost_1_39_0.tar.bz2", 'nomd5'
+ r=TestFormula.new "http://example.com/boost_1_39_0.tar.bz2", 'nomd5'
assert_equal '1.39.0', r.version
end
def test_version_internal_dash
- r=Formula.new "http://example.com/foo-arse-1.1-2.tar.gz", 'nomd5'
+ r=TestFormula.new "http://example.com/foo-arse-1.1-2.tar.gz", 'nomd5'
assert_equal '1.1-2', r.version
end
def test_version_single_digit
- r=Formula.new "http://example.com/foo_bar.45.tar.gz", 'nomd5'
+ r=TestFormula.new "http://example.com/foo_bar.45.tar.gz", 'nomd5'
assert_equal '45', r.version
end
def test_noseparator_single_digit
- r=Formula.new "http://example.com/foo_bar45.tar.gz", 'nomd5'
+ r=TestFormula.new "http://example.com/foo_bar45.tar.gz", 'nomd5'
assert_equal '45', r.version
end
def test_version_developer_that_hates_us_format
- r=Formula.new "http://example.com/foo-bar-la.1.2.3.tar.gz", 'nomd5'
+ r=TestFormula.new "http://example.com/foo-bar-la.1.2.3.tar.gz", 'nomd5'
assert_equal '1.2.3', r.version
end
def test_version_regular
- r=Formula.new "http://example.com/foo_bar-1.21.tar.gz", 'nomd5'
+ r=TestFormula.new "http://example.com/foo_bar-1.21.tar.gz", 'nomd5'
assert_equal '1.21', r.version
end
+ def test_yet_another_version
+ r=TestFormula.new "http://example.com/mad-0.15.1b.tar.gz", 'nomd5'
+ assert_equal '0.15.1b', r.version
+ end
+
def test_prefix
url='http://www.methylblue.com/test-0.1.tar.gz'
md5='d496ea538a21dc4bb8524a8888baf88c'
- begin #rubysyntaxFAIL
- Formula.new(url, md5).brew do |prefix|
- # we test for +/unittest/0.1 because we derive @name from $0
- assert_equal File.expand_path(prefix), ($cellar+'unittest'+'0.1').to_s
- assert_kind_of Pathname, prefix
- end
- rescue IOError => e
- # this is not an error, cook will throw as nothing was installed
- raise unless e.errno == Errno::ENOENT
+ TestFormula.new(url, md5).brew do |f|
+ prefix=f.prefix
+ # we test for +/unittest/0.1 because we derive @name from $0
+ assert_equal File.expand_path(prefix), ($cellar+'test'+'0.1').to_s
+ assert_kind_of Pathname, prefix
end
end
end \ No newline at end of file
diff --git a/Formula/__template.rb b/Formula/__template.rb
deleted file mode 100644
index 2d7ba2407..000000000
--- a/Formula/__template.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-$:.unshift "#{File.dirname __FILE__}/../Cellar/homebrew" #rubysucks
-require 'brewkit'
-
-homepage=''
-url=''
-md5='' # leave this blank and brewkit will error out, but show you the md5
-
-Formula.new(url, md5).brew do |prefix|
- system "./configure --disable-debug --prefix='#{prefix}'"
- system "make install" # if this fails, split into two steps
-end \ No newline at end of file
diff --git a/Formula/ack.rb b/Formula/ack.rb
index b27d827ac..4bab09c89 100644
--- a/Formula/ack.rb
+++ b/Formula/ack.rb
@@ -1,22 +1,10 @@
-$:.unshift "#{File.dirname __FILE__}/../Cellar/homebrew" #rubysucks
require 'brewkit'
-require 'fileutils'
-homepage='http://betterthangrep.com/'
-
-class AckFormula < UncompressedScriptFormula
+class Ack <UncompressedScriptFormula
def initialize
- super('http://ack.googlecode.com/svn/tags/1.88/ack')
@version='1.88'
+ @url="http://ack.googlecode.com/svn/tags/#{@version}/ack"
@md5='8009a13ab0fc66047bea0ea2ad89419c'
+ @homepage='http://betterthangrep.com/'
end
-end
-
-ack=AckFormula.new
-ack.brew do |prefix|
- bin=prefix+'bin'
- bin.mkpath
- FileUtils.cp ack.name, bin
- (bin+ack.name).chmod 0544
- nil
end \ No newline at end of file
diff --git a/Formula/asciidoc.rb b/Formula/asciidoc.rb
new file mode 100644
index 000000000..6b53ff83c
--- /dev/null
+++ b/Formula/asciidoc.rb
@@ -0,0 +1,12 @@
+require 'brewkit'
+
+class Asciidoc <Formula
+ @url='http://www.methods.co.nz/asciidoc/asciidoc-8.4.4.tar.gz'
+ @md5='579bcd5762b177ee0ddccece8c34724b'
+ @homepage='http://www.methods.co.nz/asciidoc'
+
+ def install
+ system "./configure --disable-debug --prefix='#{prefix}'"
+ system "make install"
+ end
+end \ No newline at end of file
diff --git a/Formula/boost.rb b/Formula/boost.rb
index 91a875a9b..2022ef952 100644
--- a/Formula/boost.rb
+++ b/Formula/boost.rb
@@ -1,17 +1,16 @@
-$:.unshift "#{File.dirname __FILE__}/../Cellar/homebrew" #rubysucks
require 'brewkit'
-homepage='http://www.boost.org'
-url='http://kent.dl.sourceforge.net/sourceforge/boost/boost_1_39_0.tar.bz2'
-md5='a17281fd88c48e0d866e1a12deecbcc0'
+class Boost <Formula
+ @homepage='http://www.boost.org'
+ @url='http://kent.dl.sourceforge.net/sourceforge/boost/boost_1_39_0.tar.bz2'
+ @md5='a17281fd88c48e0d866e1a12deecbcc0'
-Formula.new(url, md5).brew do |prefix|
- lib=prefix+'lib'
- # we specify libdir too because the script is apparently broken
-
- #TODO we can save 6300 links if we just had the intelligence to symlink the
- # include/boost dir and not more
-
- system "./bootstrap.sh --prefix='#{prefix}' --libdir='#{lib}'"
- system "./bjam --layout=system --prefix='#{prefix}' --libdir='#{lib}' install"
+ def install
+ #TODO we can save 6300 links if we just had the intelligence to symlink
+ #the include/boost dir and not more
+
+ # we specify libdir too because the script is apparently broken
+ system "./bootstrap.sh --prefix='#{prefix}' --libdir='#{lib}'"
+ system "./bjam --layout=system --prefix='#{prefix}' --libdir='#{lib}' install"
+ end
end \ No newline at end of file
diff --git a/Formula/cmake.rb b/Formula/cmake.rb
index 2f3a3af1f..ee35e3eef 100644
--- a/Formula/cmake.rb
+++ b/Formula/cmake.rb
@@ -1,19 +1,13 @@
-$:.unshift "#{File.dirname __FILE__}/../Cellar/homebrew" #rubysucks
require 'brewkit'
-require 'fileutils'
-url='http://www.cmake.org/files/v2.6/cmake-2.6.3.tar.gz'
-md5='5ba47a94ce276f326abca1fd72a7e7c6'
+class Cmake <Formula
+ @url='http://www.cmake.org/files/v2.6/cmake-2.6.3.tar.gz'
+ @md5='5ba47a94ce276f326abca1fd72a7e7c6'
-Formula.new(url, md5).brew do |prefix|
- system "./bootstrap --prefix=#{prefix} --system-libs"
- system "make"
- system "make install"
-
- # the people who develop cmake are just idiots
- share=prefix+'share'
- FileUtils.mv prefix+'man', share
- FileUtils.mv prefix+'doc', share
-
- nil
+ def install
+ system "./bootstrap --prefix=#{prefix} --system-libs"
+ system "make install"
+
+ ['man','doc'].each { |d| (prefix+d).mv prefix+'share' }
+ end
end \ No newline at end of file
diff --git a/Formula/dmd.rb b/Formula/dmd.rb
index 2ca36a757..9ad5784be 100644
--- a/Formula/dmd.rb
+++ b/Formula/dmd.rb
@@ -1,29 +1,42 @@
-$:.unshift "#{File.dirname __FILE__}/../Cellar/homebrew" #rubysucks
require 'brewkit'
-homepage='http://www.digitalmars.com/d/'
-url='http://ftp.digitalmars.com/dmd.1.043.zip'
-md5='6c83b7296cb84090a9ebc11ab0fb94a2'
+class Dmd <Formula
+ @homepage='http://www.digitalmars.com/d/'
+ @url='http://ftp.digitalmars.com/dmd.1.043.zip'
+ @md5='6c83b7296cb84090a9ebc11ab0fb94a2'
-Formula.new(url, md5).brew do |prefix|
- ohai "make"
- prefix.mkpath
- FileUtils.cp_r 'osx/bin', prefix
- FileUtils.cp_r 'osx/lib', prefix
- FileUtils.cp_r 'man', prefix
- FileUtils.cp_r 'src', prefix
+ def doc
+ #use d and not dmd, rationale: meh
+ prefix+'share'+'doc'+'d'
+ end
- share=prefix+'share'+'doc'+'d'
- html=share+'html'
- samples=share+'examples' #examples is the more typical directory name
- html.mkpath
- samples.mkpath
+ def install
+ ohai "install"
+ FileUtils.cp_r 'osx/bin', prefix
+ FileUtils.cp_r 'osx/lib', prefix
+ FileUtils.cp_r 'man/man1', man
+ FileUtils.cp_r 'src', prefix
- FileUtils.cp_r Dir['html/d/*'], html unless ARGV.include? '--no-html'
- FileUtils.cp_r Dir['samples/d/*'], samples unless ARGV.include? '--no-samples'
-
- # zip files suck
- Dir.chdir(prefix+'bin') { `chmod u+x dmd dumpobj obj2asm` }
+ #lol
+ man5=man+'man5'
+ man5.mkpath
+ (man+'man1'+'dmd.conf.5').mv man5
+ #lol ends
+
+ html=doc+'html'
+ samples=doc+'examples' #examples is the more typical directory name
+ html.mkpath
+ samples.mkpath
+
+ FileUtils.cp_r Dir['html/d/*'], html unless ARGV.include? '--no-html'
+ FileUtils.cp_r Dir['samples/d/*'], samples unless ARGV.include? '--no-samples'
- nil
+ # zip files suck TODO FileUtils.chmod
+ Dir.chdir(bin) { `chmod u+x dmd dumpobj obj2asm` }
+
+ (prefix+'bin'+'dmd.conf').open('w') do |f|
+ f.puts "[Environment]"
+ f.puts "DFLAGS=-I#{prefix}/src/phobos -L-L#{prefix}/lib"
+ end
+ end
end \ No newline at end of file
diff --git a/Formula/fftw.rb b/Formula/fftw.rb
index 2220270f2..e79002fc4 100644
--- a/Formula/fftw.rb
+++ b/Formula/fftw.rb
@@ -1,17 +1,21 @@
-$:.unshift "#{File.dirname __FILE__}/../Cellar/homebrew" #rubysucks
require 'brewkit'
-homepage='http://www.fftw.org'
-url='http://www.fftw.org/fftw-3.2.1.tar.gz'
-md5='712d3f33625a0a76f5758648d4b925f7'
+class Fftw <Formula
+ @homepage='http://www.fftw.org'
+ @url='http://www.fftw.org/fftw-3.2.1.tar.gz'
+ @md5='712d3f33625a0a76f5758648d4b925f7'
-Formula.new(url, md5).brew do |prefix|
- configure=<<-EOS
- ./configure --enable-shared --disable-debug --prefix='#{prefix}'
- --enable-threads --enable-single --enable-sse
- --disable-dependency-tracking
- --disable-fortran
- EOS
- system configure.gsub("\n", ' ').strip.squeeze(' ')
- system "make install"
+ def install
+ configure=<<-EOS
+ ./configure --enable-shared --disable-debug --prefix='#{prefix}'
+ --enable-threads --enable-single --enable-sse
+ --disable-dependency-tracking
+ --disable-fortran
+ EOS
+ system configure.gsub("\n", ' ').strip.squeeze(' ')
+ system "make install"
+
+ #wtf file?
+ (prefix+'share'+'info'+'dir').unlink
+ end
end \ No newline at end of file
diff --git a/Formula/git.rb b/Formula/git.rb
index e0ec8d34d..0f0620f40 100644
--- a/Formula/git.rb
+++ b/Formula/git.rb
@@ -1,12 +1,20 @@
-$:.unshift "#{File.dirname __FILE__}/../Cellar/homebrew" #rubysucks
require 'brewkit'
-homepage='http://git-scm.com'
-url='http://kernel.org/pub/software/scm/git/git-1.6.3.1.tar.bz2'
-md5='c1f4aab741359c29f0fbf28563ac7387'
+class GitManuals <Formula
+ @url='http://kernel.org/pub/software/scm/git/git-manpages-1.6.3.1.tar.bz2'
+ @md5='971d573e8f261feb83290a59728c2b33'
+end
-Formula.new(url, md5).brew do |prefix|
- system "./configure --disable-debug --prefix='#{prefix}'"
- system "make"
- system "make install"
+class Git <Formula
+ @url='http://kernel.org/pub/software/scm/git/git-1.6.3.1.tar.bz2'
+ @md5='c1f4aab741359c29f0fbf28563ac7387'
+ @homepage='http://git-scm.com'
+
+ def install
+ system "./configure --prefix='#{prefix}' --disable-debug"
+ system "make install"
+
+ # the manuals come separately, well sort of, it's easier this way though
+ GitManuals.new.brew { FileUtils.mv Dir['*'], man }
+ end
end \ No newline at end of file
diff --git a/Formula/grc.rb b/Formula/grc.rb
index c80cabf96..7f6db90b0 100644
--- a/Formula/grc.rb
+++ b/Formula/grc.rb
@@ -1,6 +1,4 @@
-$:.unshift "#{File.dirname __FILE__}/../Cellar/homebrew" #rubysucks
require 'brewkit'
-require 'fileutils'
def profile_string
<<-sput
@@ -33,36 +31,40 @@ case ARGV[0]
end
######################################################################### cook
-homepage='http://korpus.juls.savba.sk/~garabik/software/grc.html'
-url='http://korpus.juls.savba.sk/~garabik/software/grc/grc_1.1.tar.gz'
-md5='eeb612aba2fff14cbaf1f3bec7e1eb60'
+class Grc <Formula
+ @homepage='http://korpus.juls.savba.sk/~garabik/software/grc.html'
+ @url='http://korpus.juls.savba.sk/~garabik/software/grc/grc_1.1.tar.gz'
+ @md5='eeb612aba2fff14cbaf1f3bec7e1eb60'
-Formula.new(url, md5).brew do |prefix|
- ohai "make"
- #TODO we should deprefixify since it's python and thus possible
- inreplace 'grc', '/etc', prefix+'etc'
- inreplace 'grc.1', '/etc', prefix+'etc'
- inreplace 'grcat', '/usr/local', prefix
- inreplace 'grcat.1', '/usr/local', prefix
+ def install
+ ohai "make"
+ #TODO we should deprefixify since it's python and thus possible
+ inreplace 'grc', '/etc', prefix+'etc'
+ inreplace 'grc.1', '/etc', prefix+'etc'
+ inreplace 'grcat', '/usr/local', prefix
+ inreplace 'grcat.1', '/usr/local', prefix
- FileUtils.mkpath prefix
- Dir.chdir prefix do
- FileUtils.mkpath 'bin'
- FileUtils.mkpath 'share/grc'
- FileUtils.mkpath 'share/man/man1'
- FileUtils.mkpath 'etc'
- end
-
- `cp -fv grc grcat #{prefix}/bin`
- `cp -fv conf.* #{prefix}/share/grc`
- `cp -fv grc.conf #{prefix}/etc`
- `cp -fv grc.1 grcat.1 #{prefix}/share/man/man1`
+ FileUtils.mkpath prefix
+ Dir.chdir prefix do
+ FileUtils.mkpath 'bin'
+ FileUtils.mkpath 'share/grc'
+ FileUtils.mkpath 'share/man/man1'
+ FileUtils.mkpath 'etc'
+ end
- <<-nruter
-grc won't work as is. One option is to add some aliases to your ~/.profile
-file. Homebrew can do that for you, just execute this command:
+ `cp -fv grc grcat #{prefix}/bin`
+ `cp -fv conf.* #{prefix}/share/grc`
+ `cp -fv grc.conf #{prefix}/etc`
+ `cp -fv grc.1 grcat.1 #{prefix}/share/man/man1`
+ end
+
+ def caveats
+ <<-EOS
+ grc won't work as is. One option is to add some aliases to your ~/.profile
+ file. Homebrew can do that for you, just execute this command:
- ruby #{$0} --profile >> ~/.profile
+ ruby #{$0} --profile >> ~/.profile
-nruter
-end
+ EOS
+ end
+end \ No newline at end of file
diff --git a/Formula/lame.rb b/Formula/lame.rb
index 8bbf7b3d8..2c248285c 100644
--- a/Formula/lame.rb
+++ b/Formula/lame.rb
@@ -1,11 +1,12 @@
-$:.unshift "#{File.dirname __FILE__}/../Cellar/homebrew" #rubysucks
require 'brewkit'
-homepage='http://lame.sourceforge.net/'
-url='http://kent.dl.sourceforge.net/sourceforge/lame/lame-398-2.tar.gz'
-md5='719dae0ee675d0c16e0e89952930ed35'
+class Lame <Formula
+ @homepage='http://lame.sourceforge.net/'
+ @url='http://kent.dl.sourceforge.net/sourceforge/lame/lame-398-2.tar.gz'
+ @md5='719dae0ee675d0c16e0e89952930ed35'
-Formula.new(url, md5).brew do |prefix|
- system "./configure --disable-debug --prefix='#{prefix}' --enable-nasm"
- system "make install" # if this fails, split into two steps
+ def install
+ system "./configure --disable-debug --prefix='#{prefix}' --enable-nasm"
+ system "make install"
+ end
end \ No newline at end of file
diff --git a/Formula/liblastfm.rb b/Formula/liblastfm.rb
index fe0d67ba3..5d1999172 100644
--- a/Formula/liblastfm.rb
+++ b/Formula/liblastfm.rb
@@ -1,14 +1,19 @@
-$:.unshift "#{File.dirname __FILE__}/../Cellar/homebrew" #rubysucks
require 'brewkit'
-homepage='http://github.com/mxcl/liblastfm/'
-url='http://github.com/mxcl/liblastfm/tarball/0.3.0'
-md5='b348917689b90f3f40125d0968f0b643'
+class Liblastfm <Formula
+ @homepage='http://github.com/mxcl/liblastfm/'
+ @url='http://github.com/mxcl/liblastfm/tarball/0.3.0'
+ @md5='08e90275ccd06476426a5002d1dad762'
-external_deps=['qmake']
+ def deps
+ dep_test_bin 'qmake' or 'qt'
+ dep_test_lib 'fftw3f' or 'fftw'
+ dep_test_lib 'samplerate' or 'libsamplerate'
+ end
-Formula.new(url, md5).brew do |prefix|
- system "./configure --release --prefix '#{prefix}'"
- system "make"
- system "make install"
+ def install
+ system "./configure --release --prefix '#{prefix}'"
+ system "make"
+ system "make install"
+ end
end \ No newline at end of file
diff --git a/Formula/libogg.rb b/Formula/libogg.rb
index 28a1d84d1..178835342 100644
--- a/Formula/libogg.rb
+++ b/Formula/libogg.rb
@@ -1,11 +1,12 @@
-$:.unshift "#{File.dirname __FILE__}/../Cellar/homebrew" #rubysucks
require 'brewkit'
-homepage='http://www.xiph.org/ogg/'
-url='http://downloads.xiph.org/releases/ogg/libogg-1.1.3.tar.gz'
-md5='eaf7dc6ebbff30975de7527a80831585'
+class Libogg <Formula
+ @homepage='http://www.xiph.org/ogg/'
+ @url='http://downloads.xiph.org/releases/ogg/libogg-1.1.3.tar.gz'
+ @md5='eaf7dc6ebbff30975de7527a80831585'
-Formula.new(url, md5).brew do |prefix|
- system "./configure --disable-debug --prefix='#{prefix}'"
- system "make install"
+ def install
+ system "./configure --disable-debug --prefix='#{prefix}'"
+ system "make install"
+ end
end \ No newline at end of file
diff --git a/Formula/libsamplerate.rb b/Formula/libsamplerate.rb
index 7c9a9c5ec..d6dedc6c7 100644
--- a/Formula/libsamplerate.rb
+++ b/Formula/libsamplerate.rb
@@ -1,11 +1,12 @@
-$:.unshift "#{File.dirname __FILE__}/../Cellar/homebrew" #rubysucks
require 'brewkit'
-homepage='http://www.mega-nerd.com/SRC'
-url='http://www.mega-nerd.com/SRC/libsamplerate-0.1.7.tar.gz'
-md5='ad093e60ec44f0a60de8e29983ddbc0f'
+class Libsamplerate <Formula
+ @homepage='http://www.mega-nerd.com/SRC'
+ @url='http://www.mega-nerd.com/SRC/libsamplerate-0.1.7.tar.gz'
+ @md5='ad093e60ec44f0a60de8e29983ddbc0f'
-Formula.new(url, md5).brew do |prefix|
- system "./configure --disable-debug --prefix='#{prefix}'"
- system "make install"
+ def install
+ system "./configure --disable-debug --prefix='#{prefix}'"
+ system "make install"
+ end
end \ No newline at end of file
diff --git a/Formula/mad.rb b/Formula/mad.rb
index ba11fe33c..0bbcab8f9 100644
--- a/Formula/mad.rb
+++ b/Formula/mad.rb
@@ -1,12 +1,12 @@
-$:.unshift "#{File.dirname __FILE__}/../Cellar/homebrew" #rubysucks
require 'brewkit'
-homepage='http://www.underbit.com/products/mad/'
-url='http://kent.dl.sourceforge.net/sourceforge/mad/libmad-0.15.1b.tar.gz'
-md5='1be543bc30c56fb6bea1d7bf6a64e66c'
+class Mad <Formula
+ @homepage='http://www.underbit.com/products/mad/'
+ @url='http://kent.dl.sourceforge.net/sourceforge/mad/libmad-0.15.1b.tar.gz'
+ @md5='1be543bc30c56fb6bea1d7bf6a64e66c'
-Formula.new(url, md5).brew do |prefix|
- system "./configure --disable-debugging --enable-fpm=intel --prefix='#{prefix}'"
- system "make"
- system "make install"
+ def install
+ system "./configure --disable-debugging --enable-fpm=intel --prefix='#{prefix}'"
+ system "make install"
+ end
end \ No newline at end of file
diff --git a/Formula/pkg-config.rb b/Formula/pkg-config.rb
index 18c321090..9254c5a65 100644
--- a/Formula/pkg-config.rb
+++ b/Formula/pkg-config.rb
@@ -1,15 +1,14 @@
-require 'pathname'
-$root=Pathname.new(__FILE__).dirname.parent
-$:.unshift "#{$root}/Cellar/homebrew" #rubysucks
require 'brewkit'
-homepage='http://pkgconfig.freedesktop.org'
-url='http://pkgconfig.freedesktop.org/releases/pkg-config-0.23.tar.gz'
-md5='d922a88782b64441d06547632fd85744'
+class PkgConfig <Formula
+ @homepage='http://pkgconfig.freedesktop.org'
+ @url='http://pkgconfig.freedesktop.org/releases/pkg-config-0.23.tar.gz'
+ @md5='d922a88782b64441d06547632fd85744'
-#TODO depend on our glib? --with-installed-glib
+ #TODO depend on our glib? --with-installed-glib
-Formula.new(url, md5).brew do |prefix|
- system "./configure --with-pc-path=/usr/lib/pkgconfig:/usr/local/lib/pkgconfig:#{$root}/lib/pkgconfig --disable-debug --prefix='#{prefix}'"
- system "make install"
+ def install
+ system "./configure --with-pc-path=/usr/lib/pkgconfig:/usr/local/lib/pkgconfig:#{$root}/lib/pkgconfig --disable-debug --prefix='#{prefix}'"
+ system "make install"
+ end
end \ No newline at end of file
diff --git a/Formula/pngcrush.rb b/Formula/pngcrush.rb
index 0a60781f3..00a889403 100644
--- a/Formula/pngcrush.rb
+++ b/Formula/pngcrush.rb
@@ -1,13 +1,12 @@
-$:.unshift "#{File.dirname __FILE__}/../Cellar/homebrew" #rubysucks
require 'brewkit'
-homepage='http://pmt.sourceforge.net/pngcrush/'
-url='http://kent.dl.sourceforge.net/sourceforge/pmt/pngcrush-1.6.17.tar.bz2'
-md5='8ba31ae9b1b14e7648df320fd1ed27c7'
+class Pngcrush <Formula
+ @homepage='http://pmt.sourceforge.net/pngcrush/'
+ @url='http://kent.dl.sourceforge.net/sourceforge/pmt/pngcrush-1.6.17.tar.bz2'
+ @md5='8ba31ae9b1b14e7648df320fd1ed27c7'
-Formula.new(url, md5).brew do |prefix|
- system "make"
- bin=prefix+'bin'
- bin.mkpath
- FileUtils.cp 'pngcrush', bin
+ def install
+ system "make"
+ FileUtils.cp 'pngcrush', bin
+ end
end \ No newline at end of file
diff --git a/Formula/qt.rb b/Formula/qt.rb
new file mode 100644
index 000000000..9ce82d600
--- /dev/null
+++ b/Formula/qt.rb
@@ -0,0 +1,43 @@
+require 'brewkit'
+
+class Qt <Formula
+ @url='http://get.qtsoftware.com/qt/source/qt-mac-opensource-src-4.5.1.tar.gz'
+ @md5='9fc0e96197df6db48a0628ac4d63e0dd'
+ @homepage='http://www.qtsoftware.com'
+
+ def install
+ if version == '4.5.1'
+ # Reported 6 months ago (at 4.5.0-rc1), still not fixed in the this release! :(
+ makefiles=['plugins/sqldrivers/sqlite/sqlite.pro', '3rdparty/webkit/WebCore/WebCore.pro']
+ makefiles.each { |makefile| `echo 'LIBS += -lsqlite3' >> src/#{makefile}` }
+ end
+
+ configure=<<-EOS
+ ./configure -prefix '#{prefix}'
+ -system-sqlite -system-libpng -system-zlib
+ -nomake demos -nomake examples -no-qt3support
+ -release -cocoa -arch x86
+ -confirm-license -opensource
+ -I /usr/X11R6/include -L /usr/X11R6/lib
+ -fast
+ EOS
+
+ system configure.gsub("\n", ' ').strip.squeeze(' ')
+ system "make install"
+
+ # fuck weird prl files
+ `find #{lib} -name \*.prl -delete`
+ # fuck crazy disk usage
+ `rm -r #{prefix+'doc'+'html'} #{prefix+'doc'+'src'}`
+ # wtf are these anyway?
+ `rm -r #{bin}/Assistant_adp.app #{bin}/pixeltool.app #{bin}/qhelpconverter.app`
+ # we specified no debug already! :P
+ `rm #{lib}/libQtUiTools_debug.a`
+ # meh
+ `rm #{prefix}/q3porting.xml`
+ end
+
+ def caveats
+ "We agreed to the Qt opensource license for you.\nIf this is unacceptable you should uninstall :P"
+ end
+end \ No newline at end of file
diff --git a/Formula/taglib.rb b/Formula/taglib.rb
index 48e76b5d7..2811decec 100644
--- a/Formula/taglib.rb
+++ b/Formula/taglib.rb
@@ -1,12 +1,12 @@
-$:.unshift "#{File.dirname __FILE__}/../Cellar/homebrew" #rubysucks
require 'brewkit'
-homepage='http://developer.kde.org/~wheeler/taglib.html'
-url='http://developer.kde.org/~wheeler/files/src/taglib-1.5.tar.gz'
-md5='7b557dde7425c6deb7bbedd65b4f2717'
+class Taglib <Formula
+ @url='http://developer.kde.org/~wheeler/files/src/taglib-1.5.tar.gz'
+ @md5='7b557dde7425c6deb7bbedd65b4f2717'
+ @homepage='http://developer.kde.org/~wheeler/taglib.html'
-Formula.new(url, md5).brew do |prefix|
- system "./configure --disable-debug --prefix='#{prefix}'"
- system "make"
- system "make install"
+ def install
+ system "./configure --disable-debug --prefix='#{prefix}'"
+ system "make install"
+ end
end \ No newline at end of file
diff --git a/Formula/term.rb b/Formula/term.rb
index fb8149a3c..427d3607a 100644
--- a/Formula/term.rb
+++ b/Formula/term.rb
@@ -1,21 +1,10 @@
-$:.unshift "#{File.dirname __FILE__}/../Cellar/homebrew" #rubysucks
require 'brewkit'
-require 'fileutils'
-homepage='http://gist.github.com/116587'
-
-class TermFormula < UncompressedScriptFormula
+class Term <UncompressedScriptFormula
def initialize
- super('http://github.com/liyanage/macosx-shell-scripts/raw/e29f7eaa1eb13d78056dec85dc517626ab1d93e3/term')
+ @url='http://github.com/liyanage/macosx-shell-scripts/raw/e29f7eaa1eb13d78056dec85dc517626ab1d93e3/term'
@md5='1bbf4509a50224b27ac8c20d3fe8682e'
@version='2.1'
+ @homepage='http://gist.github.com/116587'
end
-end
-
-term=TermFormula.new
-term.brew do |prefix|
- bin=(prefix+'bin')
- bin.mkpath
- FileUtils.cp term.name, bin
- nil
end \ No newline at end of file
diff --git a/Formula/wget.rb b/Formula/wget.rb
index 0f5a02362..2ba5722e0 100644
--- a/Formula/wget.rb
+++ b/Formula/wget.rb
@@ -1,12 +1,13 @@
-$:.unshift "#{File.dirname __FILE__}/../Cellar/homebrew" #rubysucks
require 'brewkit'
-homepage='http://www.gnu.org/software/wget/'
-url='http://ftp.gnu.org/gnu/wget/wget-1.11.4.tar.bz2'
-md5='f5076a8c2ec2b7f334cb6e3059820f9c'
+class Wget <Formula
+ @homepage='http://www.gnu.org/software/wget/'
+ @url='http://ftp.gnu.org/gnu/wget/wget-1.11.4.tar.bz2'
+ @md5='f5076a8c2ec2b7f334cb6e3059820f9c'
-Formula.new(url, md5).brew do |prefix|
- system "./configure --disable-debug --prefix='#{prefix}'"
- system "make"
- system "make install"
+ def install
+ system "./configure --disable-debug --prefix='#{prefix}'"
+ system "make"
+ system "make install"
+ end
end \ No newline at end of file
diff --git a/Formula/xmlrpc-c.rb b/Formula/xmlrpc-c.rb
index 2d0fba3b7..27d6f3a1e 100644
--- a/Formula/xmlrpc-c.rb
+++ b/Formula/xmlrpc-c.rb
@@ -1,16 +1,16 @@
-$:.unshift "#{File.dirname __FILE__}/../Cellar/homebrew" #rubysucks
require 'brewkit'
-homepage='http://xmlrpc-c.sourceforge.net/'
-url='http://kent.dl.sourceforge.net/sourceforge/xmlrpc-c/xmlrpc-c-1.06.33.tgz'
-md5='7dda4d8c5d26ae877d3809e428ce7962'
+class XmlrpcC <Formula
+ @url='http://kent.dl.sourceforge.net/sourceforge/xmlrpc-c/xmlrpc-c-1.06.33.tgz'
+ @md5='7dda4d8c5d26ae877d3809e428ce7962'
+ @homepage='http://xmlrpc-c.sourceforge.net/'
-Formula.new(url, md5).brew do |prefix|
- ENV['MAKEFLAGS']='' #parallel build doesn't work
- # choosing --enable-libxml2-backend to lose some weight and not statically
- # link in expat
- #NOTE seemingly it isn't possible to build dylibs with this thing
- system "./configure --disable-debug --enable-libxml2-backend --prefix='#{prefix}'"
- system "make"
- system "make install"
+ def install
+ ENV['MAKEFLAGS']='' #parallel build doesn't work
+ # choosing --enable-libxml2-backend to lose some weight and not statically
+ # link in expat
+ #NOTE seemingly it isn't possible to build dylibs with this thing
+ system "./configure --disable-debug --enable-libxml2-backend --prefix='#{prefix}'"
+ system "make install"
+ end
end \ No newline at end of file
diff --git a/Formula/yajl.rb b/Formula/yajl.rb
index a4784d715..f72432dda 100644
--- a/Formula/yajl.rb
+++ b/Formula/yajl.rb
@@ -1,16 +1,21 @@
-$:.unshift "#{File.dirname __FILE__}/../Cellar/homebrew" #rubysucks
require 'brewkit'
-homepage='http://lloyd.github.com/yajl/'
-url='http://github.com/lloyd/yajl/tarball/1.0.5'
-md5='f4a3cbc764c43231ed1aedc54438b69b'
+class Yajl <Formula
+ @homepage='http://lloyd.github.com/yajl/'
+ @url='http://github.com/lloyd/yajl/tarball/1.0.5'
+ @md5='f4a3cbc764c43231ed1aedc54438b69b'
-deps=['cmake']
+ def deps
+ dep_test_bin 'cmake'
+ end
-Formula.new(url, md5).brew do |prefix|
-
- inreplace 'configure', 'cmake \.\.', "cmake -DCMAKE_INSTALL_PREFIX='#{prefix}' \.\."
-
- system "./configure --prefix '#{prefix}'"
- system "make install"
+ def install
+ ENV['MAKEFLAGS']='' # can't do parallel builds
+
+ # I have pushed this fix upstream
+ inreplace 'configure', 'cmake \.\.', "cmake -DCMAKE_INSTALL_PREFIX='#{prefix}' \.\." if @version == "1.0.5"
+
+ system "./configure --prefix '#{prefix}'"
+ system "make install"
+ end
end \ No newline at end of file
diff --git a/README b/README
index de4f0e938..8687df8d5 100644
--- a/README
+++ b/README
@@ -128,12 +128,15 @@ Congratulations, you have contributed to an open source project!
Contributing
============
-New Formulas
+New Formulae
------------
Relative to every other stupid packaging system ever, this is trivial. Just
fork it at: http://github.com/mxcl/homebrew and create a new recipe. Then ask
me to pull. Using git made all this so much easier.
+HomeBrew is not an Autarky so any dependencies outside of OS X that a package
+may require may be installed separately. We have functions to help with that.
+
Code
----
Yes please! Fork and improve :)