Deprecate Git, Subversion requirements.

These rely on `default_formula` to be useful and are better following
the `*_dep_if_needed` pattern.
This commit is contained in:
Mike McQuaid 2018-01-10 13:19:45 +00:00
parent f06b54f1bb
commit 27be33b245
6 changed files with 43 additions and 26 deletions

View File

@ -44,6 +44,18 @@ class GPG2Requirement < Requirement
satisfy { which "gpg" } satisfy { which "gpg" }
end 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 XcodeDependency = XcodeRequirement
MysqlDependency = MysqlRequirement MysqlDependency = MysqlRequirement
PostgresqlDependency = PostgresqlRequirement PostgresqlDependency = PostgresqlRequirement

View File

@ -52,6 +52,16 @@ class DependencyCollector
parse_spec(spec, Array(tags)) parse_spec(spec, Array(tags))
end 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) def cvs_dep_if_needed(tags)
Dependency.new("cvs", tags) Dependency.new("cvs", tags)
end end
@ -126,9 +136,9 @@ class DependencyCollector
if strategy <= CurlDownloadStrategy if strategy <= CurlDownloadStrategy
parse_url_spec(spec.url, tags) parse_url_spec(spec.url, tags)
elsif strategy <= GitDownloadStrategy elsif strategy <= GitDownloadStrategy
GitRequirement.new(tags) git_dep_if_needed(tags)
elsif strategy <= SubversionDownloadStrategy elsif strategy <= SubversionDownloadStrategy
SubversionRequirement.new(tags) subversion_dep_if_needed(tags)
elsif strategy <= MercurialDownloadStrategy elsif strategy <= MercurialDownloadStrategy
Dependency.new("mercurial", tags) Dependency.new("mercurial", tags)
elsif strategy <= FossilDownloadStrategy elsif strategy <= FossilDownloadStrategy

View File

@ -1,6 +1,13 @@
require "os/mac/ld64_dependency" require "os/mac/ld64_dependency"
class DependencyCollector 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) def cvs_dep_if_needed(tags)
return if MacOS.version < :lion return if MacOS.version < :lion
Dependency.new("cvs", tags) Dependency.new("cvs", tags)

View File

@ -9,15 +9,3 @@ require "requirements/unsigned_kext_requirement"
require "requirements/x11_requirement" require "requirements/x11_requirement"
require "requirements/arch_requirement" require "requirements/arch_requirement"
require "requirements/xcode_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

View File

@ -78,24 +78,12 @@ describe DependencyCollector do
expect(spec).to eq(copy) expect(spec).to eq(copy)
end 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 it "creates a resource dependency from a CVS URL" do
resource = Resource.new resource = Resource.new
resource.url(":pserver:anonymous:@example.com:/cvsroot/foo/bar", using: :cvs) resource.url(":pserver:anonymous:@example.com:/cvsroot/foo/bar", using: :cvs)
expect(subject.add(resource)).to eq(Dependency.new("cvs", [:build])) expect(subject.add(resource)).to eq(Dependency.new("cvs", [:build]))
end 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 it "creates a resource dependency from a '.7z' URL" do
resource = Resource.new resource = Resource.new
resource.url("http://example.com/foo.7z") resource.url("http://example.com/foo.7z")

View File

@ -35,4 +35,16 @@ describe DependencyCollector do
resource.url("http://example.com/foo.tar.xz") resource.url("http://example.com/foo.tar.xz")
expect(subject.add(resource)).to be nil expect(subject.add(resource)).to be nil
end 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 end