14d63ff8cc
Removes the devel block. As far as upstream are concerned, the 0.11.x branch is pretty much done, and won’t receive further dependencies updates, including OpenSSL. The v0.12 branch, which is our current HEAD, is the new development branch. Closes Homebrew/homebrew#34527. Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
136 lines
4 KiB
Ruby
136 lines
4 KiB
Ruby
require "formula"
|
|
|
|
# Note that x.even are stable releases, x.odd are devel releases
|
|
class Node < Formula
|
|
homepage "http://nodejs.org/"
|
|
url "http://nodejs.org/dist/v0.10.33/node-v0.10.33.tar.gz"
|
|
sha256 "75dc26c33144e6d0dc91cb0d68aaf0570ed0a7e4b0c35f3a7a726b500edd081e"
|
|
revision 1
|
|
|
|
bottle do
|
|
revision 9
|
|
sha1 "c9d4bffeae1a6996715efcde907f98bab1f7bd57" => :yosemite
|
|
sha1 "a75fd66670c781b0b8248c5000e652bc20dcb924" => :mavericks
|
|
sha1 "5db55f05590a23149b1459d522075b8b2facee79" => :mountain_lion
|
|
end
|
|
|
|
head do
|
|
url "https://github.com/joyent/node.git", :branch => "v0.12"
|
|
|
|
depends_on "pkg-config" => :build
|
|
depends_on "icu4c"
|
|
end
|
|
|
|
deprecated_option "enable-debug" => "with-debug"
|
|
|
|
option "with-debug", "Build with debugger hooks"
|
|
option "without-npm", "npm will not be installed"
|
|
option "without-completion", "npm bash completion will not be installed"
|
|
|
|
depends_on :python => :build
|
|
|
|
# Once we kill off SSLv3 in our OpenSSL consider forcing our OpenSSL
|
|
# over Node's shipped version with --shared-openssl.
|
|
# Would allow us quicker security fixes than Node's release schedule.
|
|
# See https://github.com/joyent/node/issues/3557 for prior discussion.
|
|
|
|
fails_with :llvm do
|
|
build 2326
|
|
end
|
|
|
|
resource "npm" do
|
|
url "https://registry.npmjs.org/npm/-/npm-2.1.10.tgz"
|
|
sha1 "a571ae408ac1b5e515f6c34c033503a7bb828cb4"
|
|
end
|
|
|
|
def install
|
|
args = %W{--prefix=#{prefix} --without-npm}
|
|
args << "--debug" if build.with? "debug"
|
|
args << "--without-ssl2" << "--without-ssl3" if build.stable?
|
|
|
|
# This should eventually be able to use the system icu4c, but right now
|
|
# it expects to find this dependency using pkgconfig.
|
|
if build.head?
|
|
ENV.prepend_path "PKG_CONFIG_PATH", "#{Formula["icu4c"].opt_prefix}/lib/pkgconfig"
|
|
args << "--with-intl=system-icu"
|
|
end
|
|
|
|
system "./configure", *args
|
|
system "make", "install"
|
|
|
|
resource("npm").stage libexec/"npm" if build.with? "npm"
|
|
end
|
|
|
|
def post_install
|
|
return if build.without? "npm"
|
|
|
|
(libexec/"npm").cd { system "make", "uninstall" }
|
|
Pathname.glob(HOMEBREW_PREFIX/"share/man/*") do |man|
|
|
next unless man.directory?
|
|
man.children.each do |file|
|
|
next unless file.symlink?
|
|
file.unlink if file.readlink.to_s.include? "/node_modules/npm/man/"
|
|
end
|
|
end
|
|
|
|
node_modules = HOMEBREW_PREFIX/"lib/node_modules"
|
|
node_modules.mkpath
|
|
cp_r libexec/"npm", node_modules
|
|
|
|
npm_root = node_modules/"npm"
|
|
npmrc = npm_root/"npmrc"
|
|
npmrc.atomic_write("prefix = #{HOMEBREW_PREFIX}\n")
|
|
|
|
# set log level temporarily for npm's `make install`
|
|
ENV["NPM_CONFIG_LOGLEVEL"] = "verbose"
|
|
|
|
# make sure npm can find node
|
|
ENV["PATH"] = "#{opt_bin}:#{ENV["PATH"]}"
|
|
|
|
ENV["NPM_CONFIG_USERCONFIG"] = npmrc
|
|
npm_root.cd { system "make", "install" }
|
|
|
|
if build.with? "completion"
|
|
bash_completion.install_symlink \
|
|
npm_root/"lib/utils/completion.sh" => "npm"
|
|
end
|
|
end
|
|
|
|
def caveats
|
|
s = ""
|
|
|
|
if build.with? "npm"
|
|
s += <<-EOS.undent
|
|
If you update npm itself, do NOT use the npm update command.
|
|
The upstream-recommended way to update npm is:
|
|
npm install -g npm@latest
|
|
EOS
|
|
else
|
|
s += <<-EOS.undent
|
|
Homebrew has NOT installed npm. If you later install it, you should supplement
|
|
your NODE_PATH with the npm module folder:
|
|
#{HOMEBREW_PREFIX}/lib/node_modules
|
|
EOS
|
|
end
|
|
|
|
s
|
|
end
|
|
|
|
test do
|
|
path = testpath/"test.js"
|
|
path.write "console.log('hello');"
|
|
|
|
output = `#{bin}/node #{path}`.strip
|
|
assert_equal "hello", output
|
|
assert_equal 0, $?.exitstatus
|
|
|
|
if build.with? "npm"
|
|
# make sure npm can find node
|
|
ENV.prepend_path "PATH", opt_bin
|
|
assert_equal which("node"), opt_bin/"node"
|
|
assert (HOMEBREW_PREFIX/"bin/npm").exist?, "npm must exist"
|
|
assert (HOMEBREW_PREFIX/"bin/npm").executable?, "npm must be executable"
|
|
system "#{HOMEBREW_PREFIX}/bin/npm", "--verbose", "install", "npm@latest"
|
|
end
|
|
end
|
|
end
|