homebrew-core/Formula/nss.rb
Jack Nagel 7c648d9732 Shore up a number of shell quoting issues
When interpolating in strings passed to Formula#system, it should be
done in such a way that if any interpolated variables contain spaces,
they are either (a) passed as part of a list or (b) protected by quotes
if they are part of a long string (which is subject to shell expansion).
Otherwise, they will be split on the space when expanded by the shell
and passed as multiple arguments to whatever process is being executed.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-05-15 14:03:11 -05:00

74 lines
1.9 KiB
Ruby

require 'formula'
class Nss < Formula
url 'http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_12_10_RTM/src/nss-3.12.10.tar.gz'
homepage 'http://www.mozilla.org/projects/security/pki/nss/'
md5 '027954e894f02732f4e66cd854261145'
depends_on 'nspr'
def install
ENV.deparallelize
args = [
'BUILD_OPT=1',
'NSS_ENABLE_ECC=1',
'NS_USE_GCC=1',
'NO_MDUPDATE=1',
'NSS_USE_SYSTEM_SQLITE=1',
"NSPR_INCLUDE_DIR=#{HOMEBREW_PREFIX}/include/nspr"
]
args << 'USE_64=1' if MacOS.prefer_64_bit?
system "make", "build_coreconf", "build_dbm", "all", "-C", "mozilla/security/nss", *args
# We need to use cp here because all files get cross-linked into the dist
# hierarchy, and Homebrew's Pathname.install moves the symlink into the keg
# rather than copying the referenced file.
bin.mkdir
Dir['mozilla/dist/Darwin*/bin/*'].each do |file|
cp file, bin
end
include.mkdir
include_target = include + "nss"
include_target.mkdir
['dbm', 'nss'].each do |dir|
Dir["mozilla/dist/public/#{dir}/*"].each do |file|
cp file, include_target
end
end
lib.mkdir
Dir['mozilla/dist/Darwin*/lib/*'].each do |file|
cp file, lib
end
(lib+'pkgconfig/nss.pc').write pkg_file
end
def test
# See: http://www.mozilla.org/projects/security/pki/nss/tools/certutil.html
mktemp do
File.open('passwd', 'w') {|f| f.write("It's a secret to everyone.") }
system "#{bin}/certutil", "-N", "-d", pwd, "-f", "passwd"
system "#{bin}/certutil", "-L", "-d", pwd
end
end
def pkg_file; <<-EOF
prefix=#{HOMEBREW_PREFIX}
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include/nss
Name: NSS
Description: Mozilla Network Security Services
Version: 3.12.10
Requires: nspr
Libs: -L${libdir} -lnss3 -lnssutil3 -lsmime3 -lssl3
Cflags: -I${includedir}
EOF
end
end