aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Formula
diff options
context:
space:
mode:
authorTim D. Smith2015-04-01 23:36:10 -0700
committerTim D. Smith2015-04-02 11:20:43 -0700
commitc9029992904ced1210066272c4cf67f65ac3737f (patch)
tree8daa8d1431c842f616cede82174de187c8e02c2b /Library/Formula
parent0ffdc80d1800b1b5e957963faaf7bb1d06b7e5a3 (diff)
downloadhomebrew-c9029992904ced1210066272c4cf67f65ac3737f.tar.bz2
ooniprobe 1.3.0 (new formula)
Closes #38292.
Diffstat (limited to 'Library/Formula')
-rw-r--r--Library/Formula/ooniprobe.rb166
1 files changed, 166 insertions, 0 deletions
diff --git a/Library/Formula/ooniprobe.rb b/Library/Formula/ooniprobe.rb
new file mode 100644
index 000000000..bc00cab02
--- /dev/null
+++ b/Library/Formula/ooniprobe.rb
@@ -0,0 +1,166 @@
+class Ooniprobe < Formula
+ homepage "https://ooni.torproject.org/"
+ url "https://pypi.python.org/packages/source/o/ooniprobe/ooniprobe-1.3.0.tar.gz"
+ sha256 "ff9c7974937d3d3d5f03fe04d561c5ef31cd4757c4112641fc88308f80cc16a7"
+
+ depends_on "geoip"
+ depends_on "libdnet"
+ depends_on "libyaml"
+ depends_on "openssl"
+ depends_on "tor"
+ depends_on :python if MacOS.version <= :snow_leopard
+
+ # these 4 need to come first or else cryptography will let setuptools
+ # easy_install them (which is bad)
+ resource "cffi" do
+ url "https://pypi.python.org/packages/source/c/cffi/cffi-0.9.2.tar.gz"
+ sha256 "1988ce7ff9c64ecd5077776175e90fd8f0a8c827cb241a23647175ce08126bb2"
+ end
+
+ resource "enum34" do
+ url "https://pypi.python.org/packages/source/e/enum34/enum34-1.0.4.tar.gz"
+ sha256 "d3c19f26a6a34629c18c775f59dfc5dd595764c722b57a2da56ebfb69b94e447"
+ end
+
+ resource "pyasn1" do
+ url "https://pypi.python.org/packages/source/p/pyasn1/pyasn1-0.1.7.tar.gz"
+ sha256 "e4f81d53c533f6bd9526b047f047f7b101c24ab17339c1a7ad8f98b25c101eab"
+ end
+
+ resource "pycparser" do
+ url "https://pypi.python.org/packages/source/p/pycparser/pycparser-2.10.tar.gz"
+ sha256 "957d98b661c0b64b580ab6f94b125e09b6714154ee51de40bca16d3f0076b86c"
+ end
+ # end "these 4"
+
+ resource "characteristic" do
+ url "https://pypi.python.org/packages/source/c/characteristic/characteristic-14.3.0.tar.gz"
+ sha256 "ded68d4e424115ed44e5c83c2a901a0b6157a959079d7591d92106ffd3ada380"
+ end
+
+ resource "cryptography" do
+ url "https://pypi.python.org/packages/source/c/cryptography/cryptography-0.8.1.tar.gz"
+ sha256 "f4e041bc83c1be94d87116a7aa201c378b7c6581be4d83994b2da0a84499f73b"
+ end
+
+ resource "GeoIP" do
+ url "https://pypi.python.org/packages/source/G/GeoIP/GeoIP-1.3.2.tar.gz"
+ sha256 "a890da6a21574050692198f14b07aa4268a01371278dfc24f71cd9bc87ebf0e6"
+ end
+
+ resource "ipaddr" do
+ url "https://pypi.python.org/packages/source/i/ipaddr/ipaddr-2.1.11.tar.gz"
+ sha256 "1b555b8a8800134fdafe32b7d0cb52f5bdbfdd093707c3dd484c5ea59f1d98b7"
+ end
+
+ resource "Parsley" do
+ url "https://pypi.python.org/packages/source/P/Parsley/Parsley-1.2.tar.gz"
+ sha256 "50d30cee70770fd44db7cea421cb2fb75af247c3a1cd54885c06b30a7c85dd23"
+ end
+
+ resource "pyasn1-modules" do
+ url "https://pypi.python.org/packages/source/p/pyasn1-modules/pyasn1-modules-0.0.5.tar.gz"
+ sha256 "be65f00ed28e30756f1ef39377cb382480a2368699179d646a84d79fe9349941"
+ end
+
+ resource "pyOpenSSL" do
+ url "https://pypi.python.org/packages/source/p/pyOpenSSL/pyOpenSSL-0.14.tar.gz"
+ sha256 "a99db8e59c120138ad8a72eecedcc24b4510d2eed3ce48213b7e32f22cc4ee6e"
+ end
+
+ resource "pypcap" do
+ url "https://pypi.python.org/packages/source/p/pypcap/pypcap-1.1.1.tar.gz"
+ sha256 "b310d5af36f5d68ef4217fda68086ffce56345b415eaac15ad618f94057b017b"
+ end
+
+ resource "PyYAML" do
+ url "https://pypi.python.org/packages/source/P/PyYAML/PyYAML-3.11.tar.gz"
+ sha256 "c36c938a872e5ff494938b33b14aaa156cb439ec67548fcab3535bb78b0846e8"
+ end
+
+ resource "scapy" do
+ url "https://bitbucket.org/secdev/scapy/downloads/scapy-2.3.1.zip"
+ sha256 "8972c02e39a826a10c02c2bdd5025f7251dce9589c57befd9bb55c65f02e4934"
+ end
+
+ resource "service_identity" do
+ url "https://pypi.python.org/packages/source/s/service_identity/service_identity-14.0.0.tar.gz"
+ sha256 "3105a319a7c558490666694f599be0c377ad54824eefb404cde4ce49e74a4f5a"
+ end
+
+ resource "six" do
+ url "https://pypi.python.org/packages/source/s/six/six-1.9.0.tar.gz"
+ sha256 "e24052411fc4fbd1f672635537c3fc2330d9481b18c0317695b46259512c91d5"
+ end
+
+ resource "Twisted" do
+ url "https://pypi.python.org/packages/source/T/Twisted/Twisted-15.0.0.tar.bz2"
+ sha256 "ac609262253057cf2aeb9dc049ba7877d646f31b4caef06a50189a023df46b51"
+ end
+
+ resource "txsocksx" do
+ url "https://pypi.python.org/packages/source/t/txsocksx/txsocksx-1.13.0.3.tar.gz"
+ sha256 "df1a9e7062c7e3693c39953705b75e0feb7b8746a05135ffb2b8cd98708c9c43"
+ end
+
+ resource "txtorcon" do
+ url "https://pypi.python.org/packages/source/t/txtorcon/txtorcon-0.12.0.tar.gz"
+ sha256 "206b1bd8a840119c12d9b85d638ab9defec5b376436fa36be9139ab1ebc8cd78"
+ end
+
+ resource "zope.interface" do
+ url "https://pypi.python.org/packages/source/z/zope.interface/zope.interface-4.1.2.tar.gz"
+ sha256 "441fefcac1fbac57c55239452557d3598571ab82395198b2565a29d45d1232f6"
+ end
+
+ def install
+ ENV["PYTHONPATH"] = Formula["libdnet"].opt_lib/"python2.7/site-packages"
+ ENV.prepend_create_path "PYTHONPATH", libexec/"vendor/lib/python2.7/site-packages"
+ resources.each do |r|
+ r.stage do
+ system "python", *Language::Python.setup_install_args(libexec/"vendor")
+ end
+ end
+
+ # namespace package hint
+ touch libexec/"vendor/lib/python2.7/site-packages/zope/__init__.py"
+
+ inreplace "requirements.txt" do |s|
+ # provided by libdnet
+ s.gsub! "pydumbnet", ""
+ # don't expect the pypi version of scapy
+ s.gsub! /scapy-real.*/, "scapy>=2.3.1"
+ end
+
+ # force a distutils install
+ inreplace "setup.py", "def run(", "def norun("
+ (buildpath/"ooni/settings.ini").atomic_write <<-EOS.undent
+ [directories]
+ usr_share = #{share}/ooni
+ var_lib = #{var}/lib/ooni
+ EOS
+
+ ENV.prepend_create_path "PYTHONPATH", libexec/"lib/python2.7/site-packages"
+ system "python", *Language::Python.setup_install_args(libexec)
+ bin.install Dir["#{libexec}/bin/*"]
+ bin.env_script_all_files(libexec/"bin", :PYTHONPATH => ENV["PYTHONPATH"])
+
+ man1.install Dir["data/*.1"]
+ (share/"ooni").install Dir["data/*"]
+ (var/"lib/ooni").mkpath
+ end
+
+ def post_install
+ system bin/"ooniresources", "--update-inputs", "--update-geoip"
+ end
+
+ def caveats; <<-EOS.undent
+ Decks are installed to #{HOMEBREW_PREFIX}/share/ooni.
+ EOS
+ end
+
+ test do
+ (testpath/"hosts.txt").write "github.com:443\n"
+ system bin/"ooniprobe", "blocking/tcp_connect", "-f", testpath/"hosts.txt"
+ end
+end