Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deprecate Git, Subversion requirements. #3651

Merged
merged 1 commit into from
Jan 10, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions Library/Homebrew/compat/requirements.rb
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,18 @@ class GPG2Requirement < Requirement
satisfy { which "gpg" }
end

class GitRequirement < Requirement
fatal true
default_formula "git"
satisfy { Utils.git_available? }
end

class SubversionRequirement < Requirement
fatal true
default_formula "subversion"
satisfy { Utils.svn_available? }
end

XcodeDependency = XcodeRequirement
MysqlDependency = MysqlRequirement
PostgresqlDependency = PostgresqlRequirement
Expand Down
14 changes: 12 additions & 2 deletions Library/Homebrew/dependency_collector.rb
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,16 @@ def build(spec)
parse_spec(spec, Array(tags))
end

def git_dep_if_needed(tags)
return if Utils.git_available?
Dependency.new("git", tags)
end

def subversion_dep_if_needed(tags)
return if Utils.svn_available?
Dependency.new("subversion", tags)
end

def cvs_dep_if_needed(tags)
Dependency.new("cvs", tags)
end
Expand Down Expand Up @@ -126,9 +136,9 @@ def resource_dep(spec, tags)
if strategy <= CurlDownloadStrategy
parse_url_spec(spec.url, tags)
elsif strategy <= GitDownloadStrategy
GitRequirement.new(tags)
git_dep_if_needed(tags)
elsif strategy <= SubversionDownloadStrategy
SubversionRequirement.new(tags)
subversion_dep_if_needed(tags)
elsif strategy <= MercurialDownloadStrategy
Dependency.new("mercurial", tags)
elsif strategy <= FossilDownloadStrategy
Expand Down
7 changes: 7 additions & 0 deletions Library/Homebrew/extend/os/mac/dependency_collector.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
require "os/mac/ld64_dependency"

class DependencyCollector
def git_dep_if_needed(tags)
return if MacOS.version >= :lion
Dependency.new("git", tags)
end

def subversion_dep_if_needed(tags); end

def cvs_dep_if_needed(tags)
return if MacOS.version < :lion
Dependency.new("cvs", tags)
Expand Down
12 changes: 0 additions & 12 deletions Library/Homebrew/requirements.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,3 @@
require "requirements/x11_requirement"
require "requirements/arch_requirement"
require "requirements/xcode_requirement"

class GitRequirement < Requirement
fatal true
default_formula "git"
satisfy { Utils.git_available? }
end

class SubversionRequirement < Requirement
fatal true
default_formula "subversion"
satisfy { Utils.svn_available? }
end
12 changes: 0 additions & 12 deletions Library/Homebrew/test/dependency_collector_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -78,24 +78,12 @@ def find_requirement(klass)
expect(spec).to eq(copy)
end

it "creates a resource dependency from a '.git' URL" do
resource = Resource.new
resource.url("git://example.com/foo/bar.git")
expect(subject.add(resource)).to be_an_instance_of(GitRequirement)
end

it "creates a resource dependency from a CVS URL" do
resource = Resource.new
resource.url(":pserver:anonymous:@example.com:/cvsroot/foo/bar", using: :cvs)
expect(subject.add(resource)).to eq(Dependency.new("cvs", [:build]))
end

it "creates a resource dependency from a Subversion URL" do
resource = Resource.new
resource.url("svn://example.com/foo/bar")
expect(subject.add(resource)).to be_an_instance_of(SubversionRequirement)
end

it "creates a resource dependency from a '.7z' URL" do
resource = Resource.new
resource.url("http://example.com/foo.7z")
Expand Down
12 changes: 12 additions & 0 deletions Library/Homebrew/test/os/mac/dependency_collector_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,16 @@
resource.url("http://example.com/foo.tar.xz")
expect(subject.add(resource)).to be nil
end

specify "Resource dependency from a '.git' URL" do
resource = Resource.new
resource.url("git://example.com/foo/bar.git")
expect(subject.add(resource)).to be nil
end

specify "Resource dependency from a Subversion URL" do
resource = Resource.new
resource.url("svn://example.com/foo/bar")
expect(subject.add(resource)).to be nil
end
end