aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/extend
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Homebrew/extend')
-rw-r--r--Library/Homebrew/extend/ARGV.rb2
-rw-r--r--Library/Homebrew/extend/ENV/std.rb4
-rw-r--r--Library/Homebrew/extend/os/extend/ENV/std.rb6
-rw-r--r--Library/Homebrew/extend/os/linux/extend/ENV/std.rb7
-rw-r--r--Library/Homebrew/extend/os/mac/diagnostic.rb71
-rw-r--r--Library/Homebrew/extend/os/mac/extend/ENV/std.rb2
-rw-r--r--Library/Homebrew/extend/os/mac/keg_relocate.rb6
-rw-r--r--Library/Homebrew/extend/pathname.rb16
-rw-r--r--Library/Homebrew/extend/string.rb4
9 files changed, 103 insertions, 15 deletions
diff --git a/Library/Homebrew/extend/ARGV.rb b/Library/Homebrew/extend/ARGV.rb
index 8cc2ccbc0..c6cb54f5d 100644
--- a/Library/Homebrew/extend/ARGV.rb
+++ b/Library/Homebrew/extend/ARGV.rb
@@ -138,7 +138,7 @@ module HomebrewArgvExtension
end
def next
- at(@n+1) || raise(UsageError)
+ at(@n + 1) || raise(UsageError)
end
def value(name)
diff --git a/Library/Homebrew/extend/ENV/std.rb b/Library/Homebrew/extend/ENV/std.rb
index c4cc0985f..4a871f9bb 100644
--- a/Library/Homebrew/extend/ENV/std.rb
+++ b/Library/Homebrew/extend/ENV/std.rb
@@ -98,7 +98,7 @@ module Stdenv
# @private
def determine_cxx
dir, base = determine_cc.split
- dir / base.to_s.sub("gcc", "g++").sub("clang", "clang++")
+ dir/base.to_s.sub("gcc", "g++").sub("clang", "clang++")
end
def gcc_4_0
@@ -210,6 +210,8 @@ module Stdenv
end
alias generic_set_cpu_flags set_cpu_flags
+ def x11; end
+
# @private
def effective_arch
if ARGV.build_bottle?
diff --git a/Library/Homebrew/extend/os/extend/ENV/std.rb b/Library/Homebrew/extend/os/extend/ENV/std.rb
index 8e6b13a61..18ede5b9e 100644
--- a/Library/Homebrew/extend/os/extend/ENV/std.rb
+++ b/Library/Homebrew/extend/os/extend/ENV/std.rb
@@ -1,2 +1,6 @@
require "extend/ENV/std"
-require "extend/os/mac/extend/ENV/std" if OS.mac?
+if OS.mac?
+ require "extend/os/mac/extend/ENV/std"
+elsif OS.linux?
+ require "extend/os/linux/extend/ENV/std"
+end
diff --git a/Library/Homebrew/extend/os/linux/extend/ENV/std.rb b/Library/Homebrew/extend/os/linux/extend/ENV/std.rb
new file mode 100644
index 000000000..ed19d2495
--- /dev/null
+++ b/Library/Homebrew/extend/os/linux/extend/ENV/std.rb
@@ -0,0 +1,7 @@
+module Stdenv
+ def libxml2
+ append "CPPFLAGS", "-I#{Formula["libxml2"].include/"libxml2"}"
+ rescue FormulaUnavailableError
+ nil
+ end
+end
diff --git a/Library/Homebrew/extend/os/mac/diagnostic.rb b/Library/Homebrew/extend/os/mac/diagnostic.rb
index ff936c75a..58d8c633d 100644
--- a/Library/Homebrew/extend/os/mac/diagnostic.rb
+++ b/Library/Homebrew/extend/os/mac/diagnostic.rb
@@ -307,6 +307,77 @@ module Homebrew
We recommend only installing stable releases of XQuartz.
EOS
end
+
+ def check_filesystem_case_sensitive
+ dirs_to_check = [
+ HOMEBREW_PREFIX,
+ HOMEBREW_REPOSITORY,
+ HOMEBREW_CELLAR,
+ HOMEBREW_TEMP,
+ ]
+ case_sensitive_dirs = dirs_to_check.select do |dir|
+ # We select the dir as being case-sensitive if either the UPCASED or the
+ # downcased variant is missing.
+ # Of course, on a case-insensitive fs, both exist because the os reports so.
+ # In the rare situation when the user has indeed a downcased and an upcased
+ # dir (e.g. /TMP and /tmp) this check falsely thinks it is case-insensitive
+ # but we don't care because: 1. there is more than one dir checked, 2. the
+ # check is not vital and 3. we would have to touch files otherwise.
+ upcased = Pathname.new(dir.to_s.upcase)
+ downcased = Pathname.new(dir.to_s.downcase)
+ dir.exist? && !(upcased.exist? && downcased.exist?)
+ end
+ return if case_sensitive_dirs.empty?
+
+ volumes = Volumes.new
+ case_sensitive_vols = case_sensitive_dirs.map do |case_sensitive_dir|
+ volumes.get_mounts(case_sensitive_dir)
+ end
+ case_sensitive_vols.uniq!
+
+ <<-EOS.undent
+ The filesystem on #{case_sensitive_vols.join(",")} appears to be case-sensitive.
+ The default macOS filesystem is case-insensitive. Please report any apparent problems.
+ EOS
+ end
+
+ def check_homebrew_prefix
+ return if HOMEBREW_PREFIX.to_s == "/usr/local"
+
+ <<-EOS.undent
+ Your Homebrew's prefix is not /usr/local.
+ You can install Homebrew anywhere you want but some bottles (binary packages)
+ can only be used with a /usr/local prefix and some formulae (packages)
+ may not build correctly with a non-/usr/local prefix.
+ EOS
+ end
+
+ def check_which_pkg_config
+ binary = which "pkg-config"
+ return if binary.nil?
+
+ mono_config = Pathname.new("/usr/bin/pkg-config")
+ if mono_config.exist? && mono_config.realpath.to_s.include?("Mono.framework")
+ <<-EOS.undent
+ You have a non-Homebrew 'pkg-config' in your PATH:
+ /usr/bin/pkg-config => #{mono_config.realpath}
+
+ This was most likely created by the Mono installer. `./configure` may
+ have problems finding brew-installed packages using this other pkg-config.
+
+ Mono no longer installs this file as of 3.0.4. You should
+ `sudo rm /usr/bin/pkg-config` and upgrade to the latest version of Mono.
+ EOS
+ elsif binary.to_s != "#{HOMEBREW_PREFIX}/bin/pkg-config"
+ <<-EOS.undent
+ You have a non-Homebrew 'pkg-config' in your PATH:
+ #{binary}
+
+ `./configure` may have problems finding brew-installed packages using
+ this other pkg-config.
+ EOS
+ end
+ end
end
end
end
diff --git a/Library/Homebrew/extend/os/mac/extend/ENV/std.rb b/Library/Homebrew/extend/os/mac/extend/ENV/std.rb
index 4853ecf0c..dd273cfbc 100644
--- a/Library/Homebrew/extend/os/mac/extend/ENV/std.rb
+++ b/Library/Homebrew/extend/os/mac/extend/ENV/std.rb
@@ -7,7 +7,7 @@ module Stdenv
# Mountain Lion's sed is stricter, and errors out when
# it encounters files with mixed character sets
delete("LC_ALL")
- self["LC_CTYPE"]="C"
+ self["LC_CTYPE"] = "C"
end
# Add lib and include etc. from the current macosxsdk to compiler flags:
diff --git a/Library/Homebrew/extend/os/mac/keg_relocate.rb b/Library/Homebrew/extend/os/mac/keg_relocate.rb
index 0b2ecd1c9..707710be6 100644
--- a/Library/Homebrew/extend/os/mac/keg_relocate.rb
+++ b/Library/Homebrew/extend/os/mac/keg_relocate.rb
@@ -63,9 +63,9 @@ class Keg
# expensive recursive search if possible.
def fixed_name(file, bad_name)
if bad_name.start_with? PREFIX_PLACEHOLDER
- bad_name.sub(PREFIX_PLACEHOLDER, HOMEBREW_PREFIX.to_s)
+ bad_name.sub(PREFIX_PLACEHOLDER, HOMEBREW_PREFIX)
elsif bad_name.start_with? CELLAR_PLACEHOLDER
- bad_name.sub(CELLAR_PLACEHOLDER, HOMEBREW_CELLAR.to_s)
+ bad_name.sub(CELLAR_PLACEHOLDER, HOMEBREW_CELLAR)
elsif (file.dylib? || file.mach_o_bundle?) && (file.parent + bad_name).exist?
"@loader_path/#{bad_name}"
elsif file.mach_o_executable? && (lib + bad_name).exist?
@@ -89,7 +89,7 @@ class Keg
# the basename of the file itself.
basename = File.basename(file.dylib_id)
relative_dirname = file.dirname.relative_path_from(path)
- opt_record.join(relative_dirname, basename).to_s
+ (opt_record/relative_dirname/basename).to_s
end
# Matches framework references like `XXX.framework/Versions/YYY/XXX` and
diff --git a/Library/Homebrew/extend/pathname.rb b/Library/Homebrew/extend/pathname.rb
index c413e9e94..767d83ff9 100644
--- a/Library/Homebrew/extend/pathname.rb
+++ b/Library/Homebrew/extend/pathname.rb
@@ -246,7 +246,7 @@ class Pathname
rmdir
true
rescue Errno::ENOTEMPTY
- if (ds_store = self+".DS_Store").exist? && children.length == 1
+ if (ds_store = join(".DS_Store")).exist? && children.length == 1
ds_store.unlink
retry
else
@@ -322,7 +322,7 @@ class Pathname
def sha256
require "digest/sha2"
- incremental_hash(Digest::SHA2)
+ incremental_hash(Digest::SHA256)
end
def verify_checksum(expected)
@@ -343,7 +343,7 @@ class Pathname
# @private
def resolved_path
- symlink? ? dirname+readlink : self
+ symlink? ? dirname.join(readlink) : self
end
# @private
@@ -353,7 +353,7 @@ class Pathname
# The link target contains NUL bytes
false
else
- (dirname+link).exist?
+ dirname.join(link).exist?
end
# @private
@@ -367,7 +367,7 @@ class Pathname
if !other.respond_to?(:to_str) && !other.respond_to?(:to_path)
odeprecated "Pathname#/ with #{other.class}", "a String or a Pathname"
end
- self + other.to_s
+ join(other.to_s)
end
end
@@ -403,7 +403,7 @@ class Pathname
mkpath
targets.each do |target|
target = Pathname.new(target) # allow pathnames or strings
- (self+target.basename).write <<-EOS.undent
+ join(target.basename).write <<-EOS.undent
#!/bin/bash
exec "#{target}" "$@"
EOS
@@ -427,7 +427,7 @@ class Pathname
Pathname.glob("#{self}/*") do |file|
next if file.directory?
dst.install(file)
- new_file = dst+file.basename
+ new_file = dst.join(file.basename)
file.write_env_script(new_file, env)
end
end
@@ -435,7 +435,7 @@ class Pathname
# Writes an exec script that invokes a java jar
def write_jar_script(target_jar, script_name, java_opts = "")
mkpath
- (self+script_name).write <<-EOS.undent
+ join(script_name).write <<-EOS.undent
#!/bin/bash
exec java #{java_opts} -jar #{target_jar} "$@"
EOS
diff --git a/Library/Homebrew/extend/string.rb b/Library/Homebrew/extend/string.rb
index 162666d2d..ae7a209db 100644
--- a/Library/Homebrew/extend/string.rb
+++ b/Library/Homebrew/extend/string.rb
@@ -1,7 +1,11 @@
+# Contains backports from newer versions of Ruby
+require_relative "../vendor/backports/string"
+
class String
def undent
gsub(/^[ \t]{#{(slice(/^[ \t]+/) || '').length}}/, "")
end
+ alias unindent undent
# eg:
# if foo then <<-EOS.undent_________________________________________________________72