Skip to content

Commit

Permalink
sandbox: sandbox all taps by default.
Browse files Browse the repository at this point in the history
We've been doing this in `brew test-bot`, for our CI and for
homebrew/core long enough that this is a reasonable default that
provides more protection to our users of non-homebrew/core taps.
  • Loading branch information
MikeMcQuaid committed Jul 14, 2017
1 parent 4ca2efb commit fb310c5
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 15 deletions.
8 changes: 2 additions & 6 deletions Library/Homebrew/sandbox.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,14 @@

class Sandbox
SANDBOX_EXEC = "/usr/bin/sandbox-exec".freeze
SANDBOXED_TAPS = %w[
homebrew/core
].freeze

def self.available?
OS.mac? && OS::Mac.version >= "10.6" && File.executable?(SANDBOX_EXEC)
end

def self.formula?(formula)
def self.formula?(_formula)
return false unless available?
return false if ARGV.no_sandbox?
ARGV.sandbox? || SANDBOXED_TAPS.include?(formula.tap.to_s)
!ARGV.no_sandbox?
end

def self.test?
Expand Down
10 changes: 1 addition & 9 deletions Library/Homebrew/test/sandbox_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,7 @@

specify "#formula?" do
f = formula { url "foo-1.0" }
f2 = formula { url "bar-1.0" }
allow(f2).to receive(:tap).and_return(Tap.fetch("test/tap"))

ENV["HOMEBREW_SANDBOX"] = "1"
expect(described_class).to be_formula(f), "Formulae should be sandboxed if --sandbox was passed."

ENV.delete("HOMEBREW_SANDBOX")
expect(described_class).to be_formula(f), "Formulae should be sandboxed if in a sandboxed tap."
expect(described_class).not_to be_formula(f2), "Formulae should not be sandboxed if not in a sandboxed tap."
expect(described_class).to be_formula(f), "Formulae should be sandboxed."
end

specify "#test?" do
Expand Down

0 comments on commit fb310c5

Please sign in to comment.