From 54a086e2fe06218c8a336fb7033da60078db7d78 Mon Sep 17 00:00:00 2001 From: "Bob W. Hogg" Date: Tue, 3 May 2016 07:27:25 -0400 Subject: [PATCH 01/15] dependency_collector: Fix ant_dep for Linux. Signed-off-by: Bob W. Hogg --- Library/Homebrew/dependency_collector.rb | 2 +- Library/Homebrew/test/test_dependency_collector.rb | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/dependency_collector.rb b/Library/Homebrew/dependency_collector.rb index 08b5fc12bd..ed9fc3a851 100644 --- a/Library/Homebrew/dependency_collector.rb +++ b/Library/Homebrew/dependency_collector.rb @@ -136,7 +136,7 @@ class DependencyCollector end def ant_dep(spec, tags) - if MacOS.version >= :mavericks + if MacOS.version >= :mavericks || !OS.mac? Dependency.new(spec.to_s, tags) end end diff --git a/Library/Homebrew/test/test_dependency_collector.rb b/Library/Homebrew/test/test_dependency_collector.rb index a94b4959e8..3057775091 100644 --- a/Library/Homebrew/test/test_dependency_collector.rb +++ b/Library/Homebrew/test/test_dependency_collector.rb @@ -76,6 +76,20 @@ class DependencyCollectorTests < Homebrew::TestCase assert_predicate dep, :optional? end + def test_ant_dep_mavericks_or_newer + skip "Only for Mac OS" unless OS.mac? + MacOS.stubs(:version).returns(MacOS::Version.new("10.9")) + @d.add :ant => :build + assert_equal find_dependency("ant"), Dependency.new("ant", [:build]) + end + + def test_ant_dep_pre_mavericks + skip "Only for Mac OS" unless OS.mac? + MacOS.stubs(:version).returns(MacOS::Version.new("10.7")) + @d.add :ant => :build + assert_nil find_dependency("ant") + end + def test_raises_typeerror_for_unknown_classes assert_raises(TypeError) { @d.add(Class.new) } end From 0a4bc8494dddad1d843c51d4707a0d290b2a148d Mon Sep 17 00:00:00 2001 From: "Bob W. Hogg" Date: Sun, 18 Sep 2016 12:11:30 -0400 Subject: [PATCH 02/15] switch to using extend pattern --- Library/Homebrew/dependency_collector.rb | 12 ++++++------ Library/Homebrew/extend/os/linux/ant_dep.rb | 4 ++++ Library/Homebrew/extend/os/mac/ant_dep.rb | 5 +++++ 3 files changed, 15 insertions(+), 6 deletions(-) create mode 100644 Library/Homebrew/extend/os/linux/ant_dep.rb create mode 100644 Library/Homebrew/extend/os/mac/ant_dep.rb diff --git a/Library/Homebrew/dependency_collector.rb b/Library/Homebrew/dependency_collector.rb index ed9fc3a851..20bf39d83e 100644 --- a/Library/Homebrew/dependency_collector.rb +++ b/Library/Homebrew/dependency_collector.rb @@ -5,6 +5,12 @@ require "requirement" require "requirements" require "set" +if OS.mac? + require "extend/os/mac/ant_dep" +elsif OS.linux? + require "extend/os/linux/ant_dep" +end + ## A dependency is a formula that another formula needs to install. ## A requirement is something other than a formula that another formula ## needs to be present. This includes external language modules, @@ -135,12 +141,6 @@ class DependencyCollector end end - def ant_dep(spec, tags) - if MacOS.version >= :mavericks || !OS.mac? - Dependency.new(spec.to_s, tags) - end - end - def resource_dep(spec, tags) tags << :build strategy = spec.download_strategy diff --git a/Library/Homebrew/extend/os/linux/ant_dep.rb b/Library/Homebrew/extend/os/linux/ant_dep.rb new file mode 100644 index 0000000000..adc85ebb07 --- /dev/null +++ b/Library/Homebrew/extend/os/linux/ant_dep.rb @@ -0,0 +1,4 @@ +def ant_dep(spec, tags) + # Always use brewed ant on Linux + Dependency.new(spec.to_s, tags) +end diff --git a/Library/Homebrew/extend/os/mac/ant_dep.rb b/Library/Homebrew/extend/os/mac/ant_dep.rb new file mode 100644 index 0000000000..397eb0e720 --- /dev/null +++ b/Library/Homebrew/extend/os/mac/ant_dep.rb @@ -0,0 +1,5 @@ +def ant_dep(spec, tags) + if MacOS.version >= :mavericks + Dependency.new(spec.to_s, tags) + end +end From 5c926b1db323291c74077375310b50605b14c9fa Mon Sep 17 00:00:00 2001 From: "Bob W. Hogg" Date: Sun, 18 Sep 2016 12:12:44 -0400 Subject: [PATCH 03/15] make names more generic --- .../extend/os/linux/{ant_dep.rb => dependency_collector.rb} | 0 .../extend/os/mac/{ant_dep.rb => dependency_collector.rb} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename Library/Homebrew/extend/os/linux/{ant_dep.rb => dependency_collector.rb} (100%) rename Library/Homebrew/extend/os/mac/{ant_dep.rb => dependency_collector.rb} (100%) diff --git a/Library/Homebrew/extend/os/linux/ant_dep.rb b/Library/Homebrew/extend/os/linux/dependency_collector.rb similarity index 100% rename from Library/Homebrew/extend/os/linux/ant_dep.rb rename to Library/Homebrew/extend/os/linux/dependency_collector.rb diff --git a/Library/Homebrew/extend/os/mac/ant_dep.rb b/Library/Homebrew/extend/os/mac/dependency_collector.rb similarity index 100% rename from Library/Homebrew/extend/os/mac/ant_dep.rb rename to Library/Homebrew/extend/os/mac/dependency_collector.rb From f65217f61e522ee447a4feeace2a2271efe8e358 Mon Sep 17 00:00:00 2001 From: "Bob W. Hogg" Date: Sun, 18 Sep 2016 12:14:55 -0400 Subject: [PATCH 04/15] Oops, forgot to rename it in-code --- Library/Homebrew/dependency_collector.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/dependency_collector.rb b/Library/Homebrew/dependency_collector.rb index 20bf39d83e..ec9693cc6d 100644 --- a/Library/Homebrew/dependency_collector.rb +++ b/Library/Homebrew/dependency_collector.rb @@ -6,9 +6,9 @@ require "requirements" require "set" if OS.mac? - require "extend/os/mac/ant_dep" + require "extend/os/mac/dependency_collector" elsif OS.linux? - require "extend/os/linux/ant_dep" + require "extend/os/linux/dependency_collector" end ## A dependency is a formula that another formula needs to install. From 2a82770f70151c027c151a817f7b9e7e4bb9463c Mon Sep 17 00:00:00 2001 From: "Bob W. Hogg" Date: Sun, 18 Sep 2016 12:24:29 -0400 Subject: [PATCH 05/15] move mac-specific tests elsewhere --- Library/Homebrew/test/test_dependency_collector.rb | 14 -------------- .../test/test_os_mac_dependency_collector.rb | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Library/Homebrew/test/test_dependency_collector.rb b/Library/Homebrew/test/test_dependency_collector.rb index 3057775091..a94b4959e8 100644 --- a/Library/Homebrew/test/test_dependency_collector.rb +++ b/Library/Homebrew/test/test_dependency_collector.rb @@ -76,20 +76,6 @@ class DependencyCollectorTests < Homebrew::TestCase assert_predicate dep, :optional? end - def test_ant_dep_mavericks_or_newer - skip "Only for Mac OS" unless OS.mac? - MacOS.stubs(:version).returns(MacOS::Version.new("10.9")) - @d.add :ant => :build - assert_equal find_dependency("ant"), Dependency.new("ant", [:build]) - end - - def test_ant_dep_pre_mavericks - skip "Only for Mac OS" unless OS.mac? - MacOS.stubs(:version).returns(MacOS::Version.new("10.7")) - @d.add :ant => :build - assert_nil find_dependency("ant") - end - def test_raises_typeerror_for_unknown_classes assert_raises(TypeError) { @d.add(Class.new) } end diff --git a/Library/Homebrew/test/test_os_mac_dependency_collector.rb b/Library/Homebrew/test/test_os_mac_dependency_collector.rb index 37b6191015..ff3e43c5c6 100644 --- a/Library/Homebrew/test/test_os_mac_dependency_collector.rb +++ b/Library/Homebrew/test/test_os_mac_dependency_collector.rb @@ -19,4 +19,18 @@ class OSMacDependencyCollectorTests < Homebrew::TestCase MacOS.stubs(:version).returns(MacOS::Version.new("10.5")) assert_nil @d.build(:ld64) end + + def test_ant_dep_mavericks_or_newer + skip "Only for Mac OS" unless OS.mac? + MacOS.stubs(:version).returns(MacOS::Version.new("10.9")) + @d.add :ant => :build + assert_equal find_dependency("ant"), Dependency.new("ant", [:build]) + end + + def test_ant_dep_pre_mavericks + skip "Only for Mac OS" unless OS.mac? + MacOS.stubs(:version).returns(MacOS::Version.new("10.7")) + @d.add :ant => :build + assert_nil find_dependency("ant") + end end From 25b6c0c23694a53176720a6c4330c6730707aaa7 Mon Sep 17 00:00:00 2001 From: "Bob W. Hogg" Date: Sun, 18 Sep 2016 12:25:29 -0400 Subject: [PATCH 06/15] Remove unnecessary skips --- Library/Homebrew/test/test_os_mac_dependency_collector.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/Library/Homebrew/test/test_os_mac_dependency_collector.rb b/Library/Homebrew/test/test_os_mac_dependency_collector.rb index ff3e43c5c6..7d95f3eba6 100644 --- a/Library/Homebrew/test/test_os_mac_dependency_collector.rb +++ b/Library/Homebrew/test/test_os_mac_dependency_collector.rb @@ -21,14 +21,12 @@ class OSMacDependencyCollectorTests < Homebrew::TestCase end def test_ant_dep_mavericks_or_newer - skip "Only for Mac OS" unless OS.mac? MacOS.stubs(:version).returns(MacOS::Version.new("10.9")) @d.add :ant => :build assert_equal find_dependency("ant"), Dependency.new("ant", [:build]) end def test_ant_dep_pre_mavericks - skip "Only for Mac OS" unless OS.mac? MacOS.stubs(:version).returns(MacOS::Version.new("10.7")) @d.add :ant => :build assert_nil find_dependency("ant") From ddccbf22aebc76d653e71bc5e4ff885a62deb257 Mon Sep 17 00:00:00 2001 From: "Bob W. Hogg" Date: Sun, 18 Sep 2016 16:04:43 -0400 Subject: [PATCH 07/15] remove comment about brewed ant on Linux; not necessary --- Library/Homebrew/extend/os/linux/dependency_collector.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/Library/Homebrew/extend/os/linux/dependency_collector.rb b/Library/Homebrew/extend/os/linux/dependency_collector.rb index adc85ebb07..b7ac9d78ac 100644 --- a/Library/Homebrew/extend/os/linux/dependency_collector.rb +++ b/Library/Homebrew/extend/os/linux/dependency_collector.rb @@ -1,4 +1,3 @@ def ant_dep(spec, tags) - # Always use brewed ant on Linux Dependency.new(spec.to_s, tags) end From 01b93117cddd2b90277bf1b8030675868328940b Mon Sep 17 00:00:00 2001 From: "Bob W. Hogg" Date: Sun, 18 Sep 2016 16:23:36 -0400 Subject: [PATCH 08/15] move os checks to extend/os --- Library/Homebrew/dependency_collector.rb | 8 ++------ Library/Homebrew/extend/os/dependency_collector.rb | 5 +++++ 2 files changed, 7 insertions(+), 6 deletions(-) create mode 100644 Library/Homebrew/extend/os/dependency_collector.rb diff --git a/Library/Homebrew/dependency_collector.rb b/Library/Homebrew/dependency_collector.rb index ec9693cc6d..f83e7adf3e 100644 --- a/Library/Homebrew/dependency_collector.rb +++ b/Library/Homebrew/dependency_collector.rb @@ -5,12 +5,6 @@ require "requirement" require "requirements" require "set" -if OS.mac? - require "extend/os/mac/dependency_collector" -elsif OS.linux? - require "extend/os/linux/dependency_collector" -end - ## A dependency is a formula that another formula needs to install. ## A requirement is something other than a formula that another formula ## needs to be present. This includes external language modules, @@ -175,3 +169,5 @@ class DependencyCollector end end end + +require "extend/os/dependency_collector" diff --git a/Library/Homebrew/extend/os/dependency_collector.rb b/Library/Homebrew/extend/os/dependency_collector.rb new file mode 100644 index 0000000000..f3635e3da9 --- /dev/null +++ b/Library/Homebrew/extend/os/dependency_collector.rb @@ -0,0 +1,5 @@ +if OS.mac? + require "extend/os/mac/dependency_collector" +elsif OS.linux? + require "extend/os/linux/dependency_collector" +end From 769cab7e4f936c8ebb04852b1f6202479a34710f Mon Sep 17 00:00:00 2001 From: "Bob W. Hogg" Date: Sun, 18 Sep 2016 16:32:10 -0400 Subject: [PATCH 09/15] follow the pattern more closely --- Library/Homebrew/extend/os/dependency_collector.rb | 2 ++ Library/Homebrew/extend/os/linux/dependency_collector.rb | 6 ++++-- Library/Homebrew/extend/os/mac/dependency_collector.rb | 8 +++++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Library/Homebrew/extend/os/dependency_collector.rb b/Library/Homebrew/extend/os/dependency_collector.rb index f3635e3da9..83e9e2b61e 100644 --- a/Library/Homebrew/extend/os/dependency_collector.rb +++ b/Library/Homebrew/extend/os/dependency_collector.rb @@ -1,3 +1,5 @@ +require "dependency_collector" + if OS.mac? require "extend/os/mac/dependency_collector" elsif OS.linux? diff --git a/Library/Homebrew/extend/os/linux/dependency_collector.rb b/Library/Homebrew/extend/os/linux/dependency_collector.rb index b7ac9d78ac..37758c307a 100644 --- a/Library/Homebrew/extend/os/linux/dependency_collector.rb +++ b/Library/Homebrew/extend/os/linux/dependency_collector.rb @@ -1,3 +1,5 @@ -def ant_dep(spec, tags) - Dependency.new(spec.to_s, tags) +class DependencyCollector + def ant_dep(spec, tags) + Dependency.new(spec.to_s, tags) + end end diff --git a/Library/Homebrew/extend/os/mac/dependency_collector.rb b/Library/Homebrew/extend/os/mac/dependency_collector.rb index 397eb0e720..76f40d910d 100644 --- a/Library/Homebrew/extend/os/mac/dependency_collector.rb +++ b/Library/Homebrew/extend/os/mac/dependency_collector.rb @@ -1,5 +1,7 @@ -def ant_dep(spec, tags) - if MacOS.version >= :mavericks - Dependency.new(spec.to_s, tags) +class DependencyCollector + def ant_dep(spec, tags) + if MacOS.version >= :mavericks + Dependency.new(spec.to_s, tags) + end end end From d02c8a46dfcd3bbd12d43dc7e01c61850a470b64 Mon Sep 17 00:00:00 2001 From: "Bob W. Hogg" Date: Tue, 20 Sep 2016 08:10:18 -0400 Subject: [PATCH 10/15] add missing method to test_os_mac_dependency_collector --- Library/Homebrew/test/test_os_mac_dependency_collector.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Library/Homebrew/test/test_os_mac_dependency_collector.rb b/Library/Homebrew/test/test_os_mac_dependency_collector.rb index 7d95f3eba6..6175e8019c 100644 --- a/Library/Homebrew/test/test_os_mac_dependency_collector.rb +++ b/Library/Homebrew/test/test_os_mac_dependency_collector.rb @@ -2,6 +2,10 @@ require "testing_env" require "dependency_collector" class OSMacDependencyCollectorTests < Homebrew::TestCase + def find_dependency(name) + @d.deps.find { |dep| dep.name == name } + end + def setup @d = DependencyCollector.new end From fc1f4e41935c217361bd4bea0d12002fbc856939 Mon Sep 17 00:00:00 2001 From: "Bob W. Hogg" Date: Tue, 20 Sep 2016 10:57:14 -0400 Subject: [PATCH 11/15] use newer ruby hash style --- Library/Homebrew/test/test_os_mac_dependency_collector.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/test/test_os_mac_dependency_collector.rb b/Library/Homebrew/test/test_os_mac_dependency_collector.rb index 6175e8019c..05b466c945 100644 --- a/Library/Homebrew/test/test_os_mac_dependency_collector.rb +++ b/Library/Homebrew/test/test_os_mac_dependency_collector.rb @@ -26,13 +26,13 @@ class OSMacDependencyCollectorTests < Homebrew::TestCase def test_ant_dep_mavericks_or_newer MacOS.stubs(:version).returns(MacOS::Version.new("10.9")) - @d.add :ant => :build + @d.add ant: :build assert_equal find_dependency("ant"), Dependency.new("ant", [:build]) end def test_ant_dep_pre_mavericks MacOS.stubs(:version).returns(MacOS::Version.new("10.7")) - @d.add :ant => :build + @d.add ant: :build assert_nil find_dependency("ant") end end From 57c2c560a123157d4fd8e00b31a42ceff2f73eaf Mon Sep 17 00:00:00 2001 From: "Bob W. Hogg" Date: Thu, 22 Sep 2016 08:36:10 -0400 Subject: [PATCH 12/15] one less block in mac dep --- Library/Homebrew/extend/os/mac/dependency_collector.rb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Library/Homebrew/extend/os/mac/dependency_collector.rb b/Library/Homebrew/extend/os/mac/dependency_collector.rb index 76f40d910d..ee98045b64 100644 --- a/Library/Homebrew/extend/os/mac/dependency_collector.rb +++ b/Library/Homebrew/extend/os/mac/dependency_collector.rb @@ -1,7 +1,6 @@ class DependencyCollector def ant_dep(spec, tags) - if MacOS.version >= :mavericks - Dependency.new(spec.to_s, tags) - end + return if MacOS.version < :mavericks + Dependency.new(spec.to_s, tags) end end From 0029ad2929d1ece249047b381299e63ba9b858fa Mon Sep 17 00:00:00 2001 From: "Bob W. Hogg" Date: Thu, 22 Sep 2016 17:36:57 -0400 Subject: [PATCH 13/15] add the other test back in --- Library/Homebrew/test/test_dependency_collector.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Library/Homebrew/test/test_dependency_collector.rb b/Library/Homebrew/test/test_dependency_collector.rb index a94b4959e8..61b13d18b0 100644 --- a/Library/Homebrew/test/test_dependency_collector.rb +++ b/Library/Homebrew/test/test_dependency_collector.rb @@ -76,6 +76,11 @@ class DependencyCollectorTests < Homebrew::TestCase assert_predicate dep, :optional? end + def test_ant_dep + @d.add :ant => :build + assert_equal find_dependency("ant"), Dependency.new("ant", [:build]) + end + def test_raises_typeerror_for_unknown_classes assert_raises(TypeError) { @d.add(Class.new) } end From 1de9f3baf351392d4c50726ba2d591dfcc3c4247 Mon Sep 17 00:00:00 2001 From: "Bob W. Hogg" Date: Thu, 22 Sep 2016 17:47:50 -0400 Subject: [PATCH 14/15] make linux behaviour the default. override only for macos --- Library/Homebrew/dependency_collector.rb | 4 ++++ Library/Homebrew/extend/os/dependency_collector.rb | 2 -- Library/Homebrew/extend/os/linux/dependency_collector.rb | 5 ----- 3 files changed, 4 insertions(+), 7 deletions(-) delete mode 100644 Library/Homebrew/extend/os/linux/dependency_collector.rb diff --git a/Library/Homebrew/dependency_collector.rb b/Library/Homebrew/dependency_collector.rb index f83e7adf3e..ef3a712e96 100644 --- a/Library/Homebrew/dependency_collector.rb +++ b/Library/Homebrew/dependency_collector.rb @@ -135,6 +135,10 @@ class DependencyCollector end end + def ant_dep(spec, tags) + Dependency.new(spec.to_s, tags) + end + def resource_dep(spec, tags) tags << :build strategy = spec.download_strategy diff --git a/Library/Homebrew/extend/os/dependency_collector.rb b/Library/Homebrew/extend/os/dependency_collector.rb index 83e9e2b61e..d295263f62 100644 --- a/Library/Homebrew/extend/os/dependency_collector.rb +++ b/Library/Homebrew/extend/os/dependency_collector.rb @@ -2,6 +2,4 @@ require "dependency_collector" if OS.mac? require "extend/os/mac/dependency_collector" -elsif OS.linux? - require "extend/os/linux/dependency_collector" end diff --git a/Library/Homebrew/extend/os/linux/dependency_collector.rb b/Library/Homebrew/extend/os/linux/dependency_collector.rb deleted file mode 100644 index 37758c307a..0000000000 --- a/Library/Homebrew/extend/os/linux/dependency_collector.rb +++ /dev/null @@ -1,5 +0,0 @@ -class DependencyCollector - def ant_dep(spec, tags) - Dependency.new(spec.to_s, tags) - end -end From aae4dfaec0362019974f8a49ee217352a1df75d6 Mon Sep 17 00:00:00 2001 From: "Bob W. Hogg" Date: Thu, 22 Sep 2016 22:10:32 -0400 Subject: [PATCH 15/15] automated rubocop fixup --- Library/Homebrew/test/test_dependency_collector.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/test/test_dependency_collector.rb b/Library/Homebrew/test/test_dependency_collector.rb index 61b13d18b0..4e87c85157 100644 --- a/Library/Homebrew/test/test_dependency_collector.rb +++ b/Library/Homebrew/test/test_dependency_collector.rb @@ -77,7 +77,7 @@ class DependencyCollectorTests < Homebrew::TestCase end def test_ant_dep - @d.add :ant => :build + @d.add ant: :build assert_equal find_dependency("ant"), Dependency.new("ant", [:build]) end