From e50102d91e5fc13fd59589967bb97bb6159bbad0 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Fri, 30 Dec 2016 20:20:13 +0000 Subject: [PATCH] ENV: deprecate old methods. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These should have been deprecated long ago but we didn’t really have the necessary framework to do so. --- Library/Homebrew/compat.rb | 3 ++ Library/Homebrew/compat/ENV/shared.rb | 6 +++ Library/Homebrew/compat/ENV/std.rb | 27 +++++++++++ Library/Homebrew/compat/ENV/super.rb | 47 +++++++++++++++++++ Library/Homebrew/compat/macos.rb | 16 +++---- Library/Homebrew/compilers.rb | 10 ++-- Library/Homebrew/development_tools.rb | 18 +++---- Library/Homebrew/extend/ENV/std.rb | 15 +----- Library/Homebrew/extend/ENV/super.rb | 21 +-------- .../extend/os/mac/development_tools.rb | 6 +-- .../extend/os/mac/extend/ENV/super.rb | 7 +-- Library/Homebrew/os/mac.rb | 14 +++--- Library/Homebrew/system_config.rb | 12 ++--- Library/Homebrew/test/ENV_test.rb | 2 +- Library/Homebrew/test/stdlib_test.rb | 7 +-- 15 files changed, 128 insertions(+), 83 deletions(-) create mode 100644 Library/Homebrew/compat/ENV/shared.rb create mode 100644 Library/Homebrew/compat/ENV/std.rb create mode 100644 Library/Homebrew/compat/ENV/super.rb diff --git a/Library/Homebrew/compat.rb b/Library/Homebrew/compat.rb index 5d78c715f1..92b687725a 100644 --- a/Library/Homebrew/compat.rb +++ b/Library/Homebrew/compat.rb @@ -22,3 +22,6 @@ require "compat/json" require "compat/ARGV" require "compat/build_options" require "compat/tab" +require "compat/ENV/shared" +require "compat/ENV/std" +require "compat/ENV/super" diff --git a/Library/Homebrew/compat/ENV/shared.rb b/Library/Homebrew/compat/ENV/shared.rb new file mode 100644 index 0000000000..200e7b132b --- /dev/null +++ b/Library/Homebrew/compat/ENV/shared.rb @@ -0,0 +1,6 @@ +module SharedEnvExtension + def j1 + odeprecated "ENV.j1", "ENV.deparallelize" + deparallelize + end +end diff --git a/Library/Homebrew/compat/ENV/std.rb b/Library/Homebrew/compat/ENV/std.rb new file mode 100644 index 0000000000..26dabe440d --- /dev/null +++ b/Library/Homebrew/compat/ENV/std.rb @@ -0,0 +1,27 @@ +module Stdenv + def fast + odeprecated "ENV.fast" + end + + def O4 + odeprecated "ENV.O4" + end + + def Og + odeprecated "ENV.Og" + end + + def gcc_4_0_1 + odeprecated "ENV.gcc_4_0_1", "ENV.gcc_4_0" + gcc_4_0 + end + + def gcc + odeprecated "ENV.gcc", "ENV.gcc_4_2" + gcc_4_2 + end + + def libpng + odeprecated "ENV.libpng", "ENV.x11" + end +end diff --git a/Library/Homebrew/compat/ENV/super.rb b/Library/Homebrew/compat/ENV/super.rb new file mode 100644 index 0000000000..2020ad752c --- /dev/null +++ b/Library/Homebrew/compat/ENV/super.rb @@ -0,0 +1,47 @@ +module Superenv + def fast + odeprecated "ENV.fast" + end + + def O4 + odeprecated "ENV.O4" + end + + def Og + odeprecated "ENV.Og" + end + + def gcc_4_0_1 + odeprecated "ENV.gcc_4_0_1", "ENV.gcc_4_0" + gcc_4_0 + end + + def gcc + odeprecated "ENV.gcc", "ENV.gcc_4_2" + gcc_4_2 + end + + def libxml2 + odeprecated "ENV.libxml2" + end + + def minimal_optimization + odeprecated "ENV.minimal_optimization" + end + + def no_optimization + odeprecated "ENV.no_optimization" + end + + def enable_warnings + odeprecated "ENV.enable_warnings" + end + + def macosxsdk + odeprecated "ENV.macosxsdk" + end + + def remove_macosxsdk + odeprecated "ENV.remove_macosxsdk" + end +end diff --git a/Library/Homebrew/compat/macos.rb b/Library/Homebrew/compat/macos.rb index 17f4670cc7..3acd2f9ef7 100644 --- a/Library/Homebrew/compat/macos.rb +++ b/Library/Homebrew/compat/macos.rb @@ -100,23 +100,23 @@ module OS end def gcc_40_build_version - odeprecated "MacOS.gcc_40_build_version", "DevelopmentTools.gcc_40_build_version" - DevelopmentTools.gcc_40_build_version + odeprecated "MacOS.gcc_40_build_version", "DevelopmentTools.gcc_4_0_build_version" + DevelopmentTools.gcc_4_0_build_version end def gcc_4_0_build_version - odeprecated "MacOS.gcc_4_0_build_version", "DevelopmentTools.gcc_40_build_version" - DevelopmentTools.gcc_40_build_version + odeprecated "MacOS.gcc_4_0_build_version", "DevelopmentTools.gcc_4_0_build_version" + DevelopmentTools.gcc_4_0_build_version end def gcc_42_build_version - odeprecated "MacOS.gcc_42_build_version", "DevelopmentTools.gcc_42_build_version" - DevelopmentTools.gcc_42_build_version + odeprecated "MacOS.gcc_42_build_version", "DevelopmentTools.gcc_4_2_build_version" + DevelopmentTools.gcc_4_2_build_version end def gcc_build_version - odeprecated "MacOS.gcc_build_version", "DevelopmentTools.gcc_42_build_version" - DevelopmentTools.gcc_42_build_version + odeprecated "MacOS.gcc_build_version", "DevelopmentTools.gcc_4_2_build_version" + DevelopmentTools.gcc_4_2_build_version end def llvm_build_version diff --git a/Library/Homebrew/compilers.rb b/Library/Homebrew/compilers.rb index 9ee847db0e..628e71e9b8 100644 --- a/Library/Homebrew/compilers.rb +++ b/Library/Homebrew/compilers.rb @@ -4,7 +4,7 @@ module CompilerConstants GNU_GCC_REGEXP = /^gcc-(4\.[3-9]|[5-7])$/ COMPILER_SYMBOL_MAP = { "gcc-4.0" => :gcc_4_0, - "gcc-4.2" => :gcc, + "gcc-4.2" => :gcc_4_2, "clang" => :clang, "llvm_clang" => :llvm_clang, }.freeze @@ -68,7 +68,7 @@ class CompilerFailure COLLECTIONS = { cxx11: [ create(:gcc_4_0), - create(:gcc), + create(:gcc_4_2), create(:clang) { build 425 }, create(gcc: "4.3"), create(gcc: "4.4"), @@ -87,9 +87,9 @@ class CompilerSelector Compiler = Struct.new(:name, :version) COMPILER_PRIORITY = { - clang: [:clang, :gcc, :gnu, :gcc_4_0, :llvm_clang], - gcc: [:gcc, :gnu, :clang, :gcc_4_0], - gcc_4_0: [:gcc_4_0, :gcc, :gnu, :clang], + clang: [:clang, :gcc_4_2, :gnu, :gcc_4_0, :llvm_clang], + gcc_4_2: [:gcc_4_2, :gnu, :clang, :gcc_4_0], + gcc_4_0: [:gcc_4_0, :gcc_4_2, :gnu, :clang], }.freeze def self.select_for(formula, compilers = self.compilers) diff --git a/Library/Homebrew/development_tools.rb b/Library/Homebrew/development_tools.rb index ea7f5837d0..10020a2365 100644 --- a/Library/Homebrew/development_tools.rb +++ b/Library/Homebrew/development_tools.rb @@ -34,15 +34,11 @@ class DevelopmentTools end def default_compiler - if default_cc =~ /^gcc/ - :gcc - else - :clang - end + :clang end - def gcc_40_build_version - @gcc_40_build_version ||= begin + def gcc_4_0_build_version + @gcc_4_0_build_version ||= begin if (path = locate("gcc-4.0")) && build_version = `#{path} --version 2>/dev/null`[/build (\d{4,})/, 1] Version.new build_version @@ -51,10 +47,9 @@ class DevelopmentTools end end end - alias gcc_4_0_build_version gcc_40_build_version - def gcc_42_build_version - @gcc_42_build_version ||= begin + def gcc_4_2_build_version + @gcc_4_2_build_version ||= begin gcc = locate("gcc-4.2") || HOMEBREW_PREFIX.join("opt/apple-gcc42/bin/gcc-4.2") if gcc.exist? && !gcc.realpath.basename.to_s.start_with?("llvm")&& build_version = `#{gcc} --version 2>/dev/null`[/build (\d{4,})/, 1] @@ -64,7 +59,6 @@ class DevelopmentTools end end end - alias gcc_build_version gcc_42_build_version def clang_version @clang_version ||= begin @@ -115,7 +109,7 @@ class DevelopmentTools end def clear_version_cache - @gcc_40_build_version = @gcc_42_build_version = nil + @gcc_4_0_build_version = @gcc_4_2_build_version = nil @clang_version = @clang_build_version = nil @non_apple_gcc_version = {} end diff --git a/Library/Homebrew/extend/ENV/std.rb b/Library/Homebrew/extend/ENV/std.rb index 14f9b81b8e..403ea19783 100644 --- a/Library/Homebrew/extend/ENV/std.rb +++ b/Library/Homebrew/extend/ENV/std.rb @@ -82,10 +82,6 @@ module Stdenv old end - alias j1 deparallelize - - # These methods are no-ops for compatibility. - %w[fast O4 Og].each { |opt| define_method(opt) {} } %w[O3 O2 O1 O0 Os].each do |opt| define_method opt do @@ -110,13 +106,11 @@ module Stdenv super set_cpu_cflags "-march=nocona -mssse3" end - alias gcc_4_0_1 gcc_4_0 - def gcc + def gcc_4_2 super set_cpu_cflags end - alias gcc_4_2 gcc GNU_GCC_VERSIONS.each do |n| define_method(:"gcc-#{n}") do @@ -144,13 +138,6 @@ module Stdenv end alias generic_no_optimization no_optimization - def libxml2 - end - - def x11 - end - alias libpng x11 - # we've seen some packages fail to build when warnings are disabled! def enable_warnings remove_from_cflags "-w" diff --git a/Library/Homebrew/extend/ENV/super.rb b/Library/Homebrew/extend/ENV/super.rb index a75cba406d..7503e88768 100644 --- a/Library/Homebrew/extend/ENV/super.rb +++ b/Library/Homebrew/extend/ENV/super.rb @@ -16,9 +16,7 @@ module Superenv # @private attr_accessor :keg_only_deps, :deps - attr_accessor :x11 - alias x11? x11 def self.extended(base) base.keg_only_deps = [] @@ -263,7 +261,6 @@ module Superenv old end - alias j1 deparallelize def make_jobs self["MAKEFLAGS"] =~ /-\w*j(\d+)/ @@ -329,23 +326,9 @@ module Superenv def set_x11_env_if_installed end + # This method does nothing in superenv since there's no custom CFLAGS API # @private - def noop(*_args); end - - # These methods are no longer necessary under superenv, but are needed to - # maintain an interface compatible with stdenv. - alias fast noop - alias O4 noop - alias Og noop - alias libxml2 noop - alias set_cpu_flags noop - - # These methods provide functionality that has not yet been ported to - # superenv. - alias gcc_4_0_1 noop - alias minimal_optimization noop - alias no_optimization noop - alias enable_warnings noop + def set_cpu_flags; end end class Array diff --git a/Library/Homebrew/extend/os/mac/development_tools.rb b/Library/Homebrew/extend/os/mac/development_tools.rb index 7c97b9d69e..b80d70d5bf 100644 --- a/Library/Homebrew/extend/os/mac/development_tools.rb +++ b/Library/Homebrew/extend/os/mac/development_tools.rb @@ -64,15 +64,15 @@ class DevelopmentTools case default_cc # if GCC 4.2 is installed, e.g. via Tigerbrew, prefer it # over the system's GCC 4.0 - when /^gcc-4\.0/ then gcc_42_build_version ? :gcc : :gcc_4_0 - when /^gcc/ then :gcc + when /^gcc-4\.0/ then gcc_4_2_build_version ? :gcc_4_2 : :gcc_4_0 + when /^gcc/ then :gcc_4_2 when "clang" then :clang else # guess :( if MacOS::Xcode.version >= "4.3" :clang else - :gcc + :gcc_4_2 end end end diff --git a/Library/Homebrew/extend/os/mac/extend/ENV/super.rb b/Library/Homebrew/extend/os/mac/extend/ENV/super.rb index 5f4a3e4aa8..f97a2dbbbf 100644 --- a/Library/Homebrew/extend/os/mac/extend/ENV/super.rb +++ b/Library/Homebrew/extend/os/mac/extend/ENV/super.rb @@ -1,4 +1,6 @@ module Superenv + alias x11? x11 + # @private def self.bin return unless DevelopmentTools.installed? @@ -120,9 +122,4 @@ module Superenv def no_weak_imports append "HOMEBREW_CCCFG", "w" if no_weak_imports_support? end - - # These methods are no longer necessary under superenv, but are needed to - # maintain an interface compatible with stdenv. - alias macosxsdk noop - alias remove_macosxsdk noop end diff --git a/Library/Homebrew/os/mac.rb b/Library/Homebrew/os/mac.rb index b2f0515a0a..9468a6c1e7 100644 --- a/Library/Homebrew/os/mac.rb +++ b/Library/Homebrew/os/mac.rb @@ -152,13 +152,13 @@ module OS end STANDARD_COMPILERS = { - "2.0" => { gcc_40_build: 4061 }, - "2.5" => { gcc_40_build: 5370 }, - "3.1.4" => { gcc_40_build: 5493, gcc_42_build: 5577 }, - "3.2.6" => { gcc_40_build: 5494, gcc_42_build: 5666, clang: "1.7", clang_build: 77 }, - "4.0" => { gcc_40_build: 5494, gcc_42_build: 5666, clang: "2.0", clang_build: 137 }, - "4.0.1" => { gcc_40_build: 5494, gcc_42_build: 5666, clang: "2.0", clang_build: 137 }, - "4.0.2" => { gcc_40_build: 5494, gcc_42_build: 5666, clang: "2.0", clang_build: 137 }, + "2.0" => { gcc_4_0_build: 4061 }, + "2.5" => { gcc_4_0_build: 5370 }, + "3.1.4" => { gcc_4_0_build: 5493, gcc_4_2_build: 5577 }, + "3.2.6" => { gcc_4_0_build: 5494, gcc_4_2_build: 5666, clang: "1.7", clang_build: 77 }, + "4.0" => { gcc_4_0_build: 5494, gcc_4_2_build: 5666, clang: "2.0", clang_build: 137 }, + "4.0.1" => { gcc_4_0_build: 5494, gcc_4_2_build: 5666, clang: "2.0", clang_build: 137 }, + "4.0.2" => { gcc_4_0_build: 5494, gcc_4_2_build: 5666, clang: "2.0", clang_build: 137 }, "4.2" => { clang: "3.0", clang_build: 211 }, "4.3" => { clang: "3.1", clang_build: 318 }, "4.3.1" => { clang: "3.1", clang_build: 318 }, diff --git a/Library/Homebrew/system_config.rb b/Library/Homebrew/system_config.rb index 9c7a8d1b01..043f609193 100644 --- a/Library/Homebrew/system_config.rb +++ b/Library/Homebrew/system_config.rb @@ -6,12 +6,12 @@ require "development_tools" class SystemConfig class << self - def gcc_42 - @gcc_42 ||= DevelopmentTools.gcc_42_build_version if DevelopmentTools.installed? + def gcc_4_2 + @gcc_4_2 ||= DevelopmentTools.gcc_4_2_build_version if DevelopmentTools.installed? end - def gcc_40 - @gcc_40 ||= DevelopmentTools.gcc_40_build_version if DevelopmentTools.installed? + def gcc_4_0 + @gcc_4_0 ||= DevelopmentTools.gcc_4_0_build_version if DevelopmentTools.installed? end def clang @@ -143,8 +143,8 @@ class SystemConfig f.puts "HOMEBREW_BOTTLE_DOMAIN: #{BottleSpecification::DEFAULT_DOMAIN}" f.puts hardware if hardware f.puts "Homebrew Ruby: #{describe_homebrew_ruby}" - f.puts "GCC-4.0: build #{gcc_40}" unless gcc_40.null? - f.puts "GCC-4.2: build #{gcc_42}" unless gcc_42.null? + f.puts "GCC-4.0: build #{gcc_4_0}" unless gcc_4_0.null? + f.puts "GCC-4.2: build #{gcc_4_2}" unless gcc_4_2.null? f.puts "Clang: #{clang.null? ? "N/A" : "#{clang} build #{clang_build}"}" f.puts "Git: #{describe_git}" f.puts "Perl: #{describe_perl}" diff --git a/Library/Homebrew/test/ENV_test.rb b/Library/Homebrew/test/ENV_test.rb index 6c0e68a9e3..dd60250842 100644 --- a/Library/Homebrew/test/ENV_test.rb +++ b/Library/Homebrew/test/ENV_test.rb @@ -133,7 +133,7 @@ module SharedEnvTests end def test_switching_compilers_updates_compiler - [:clang, :gcc, :gcc_4_0].each do |compiler| + [:clang, :gcc_4_2, :gcc_4_0].each do |compiler| @env.send(compiler) assert_equal compiler, @env.compiler end diff --git a/Library/Homebrew/test/stdlib_test.rb b/Library/Homebrew/test/stdlib_test.rb index ee53e7c8cd..3babfd58af 100644 --- a/Library/Homebrew/test/stdlib_test.rb +++ b/Library/Homebrew/test/stdlib_test.rb @@ -6,7 +6,8 @@ class CxxStdlibTests < Homebrew::TestCase def setup @clang = CxxStdlib.create(:libstdcxx, :clang) @gcc = CxxStdlib.create(:libstdcxx, :gcc) - @gcc4 = CxxStdlib.create(:libstdcxx, :gcc_4_0) + @gcc40 = CxxStdlib.create(:libstdcxx, :gcc_4_0) + @gcc42 = CxxStdlib.create(:libstdcxx, :gcc_4_2) @gcc48 = CxxStdlib.create(:libstdcxx, "gcc-4.8") @gcc49 = CxxStdlib.create(:libstdcxx, "gcc-4.9") @lcxx = CxxStdlib.create(:libcxx, :clang) @@ -15,7 +16,7 @@ class CxxStdlibTests < Homebrew::TestCase def test_apple_libstdcxx_intercompatibility assert @clang.compatible_with?(@gcc) - assert @clang.compatible_with?(@gcc4) + assert @clang.compatible_with?(@gcc42) end def test_compatibility_same_compilers_and_type @@ -42,7 +43,7 @@ class CxxStdlibTests < Homebrew::TestCase def test_apple_compiler_reporting assert_predicate @clang, :apple_compiler? assert_predicate @gcc, :apple_compiler? - assert_predicate @gcc4, :apple_compiler? + assert_predicate @gcc42, :apple_compiler? refute_predicate @gcc48, :apple_compiler? end