diff options
| -rw-r--r-- | .travis.yml | 13 | ||||
| -rw-r--r-- | Library/Homebrew/cask/lib/hbc/artifact/moved.rb | 8 | ||||
| -rw-r--r-- | Library/Homebrew/compat/dependency_collector.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/dependency_collector.rb | 14 | ||||
| -rw-r--r-- | Library/Homebrew/extend/os/mac/dependency_collector.rb | 4 | ||||
| -rw-r--r-- | Library/Homebrew/os.rb | 1 | ||||
| -rw-r--r-- | Library/Homebrew/os/linux.rb | 28 | ||||
| -rw-r--r-- | Library/Homebrew/test/cask/cli/reinstall_spec.rb | 3 | ||||
| -rw-r--r-- | Library/Homebrew/test/cask/cli/uninstall_spec.rb | 3 | ||||
| -rw-r--r-- | Library/Homebrew/test/os/linux/dependency_collector_spec.rb | 53 | ||||
| -rw-r--r-- | Library/Homebrew/test/os/mac/dependency_collector_spec.rb | 12 |
11 files changed, 122 insertions, 19 deletions
diff --git a/.travis.yml b/.travis.yml index fd43e3942..37417a10a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -36,22 +36,13 @@ before_install: mv "$HOMEBREW_REPOSITORY/Library/Taps" "$PWD/Library"; sudo rm -rf "$HOMEBREW_REPOSITORY"; sudo ln -s "$PWD" "$HOMEBREW_REPOSITORY"; - else - HOMEBREW_CORE_TAP_DIR="$(brew --repo "homebrew/core")"; - mkdir -p "$HOMEBREW_CORE_TAP_DIR"; fi - if [ "$MACOS" ]; then travis_retry git -C Library/Taps/homebrew/homebrew-core fetch --depth=1 origin; + else + travis_retry git clone --depth=1 https://github.com/Homebrew/homebrew-core Library/Taps/homebrew/homebrew-core; fi - travis_retry git clone --depth=1 https://github.com/Homebrew/homebrew-test-bot Library/Taps/homebrew/homebrew-test-bot - - if [ "$LINUX" ]; then - HOMEBREW_TEST_BOT_TAP_DIR="$(brew --repo "homebrew/test-bot")"; - ln -s "$HOMEBREW_TEST_BOT_TAP_DIR/.git" "$HOMEBREW_TEST_BOT_TAP_DIR/Formula" "$HOMEBREW_CORE_TAP_DIR"; - fi - # can be removed after 1.5.3 is tagged - - if [ "$LINUX" ]; then - export HOMEBREW_FORCE_VENDOR_RUBY=1; - fi script: - brew test-bot diff --git a/Library/Homebrew/cask/lib/hbc/artifact/moved.rb b/Library/Homebrew/cask/lib/hbc/artifact/moved.rb index 856ab2766..31cede71a 100644 --- a/Library/Homebrew/cask/lib/hbc/artifact/moved.rb +++ b/Library/Homebrew/cask/lib/hbc/artifact/moved.rb @@ -62,14 +62,16 @@ module Hbc raise CaskError, "It seems the #{self.class.english_name} source '#{target}' is not there." end - ohai "Moving #{self.class.english_name} '#{target.basename}' back to '#{source}'." + ohai "Backing #{self.class.english_name} '#{target.basename}' up to '#{source}'." source.dirname.mkpath if target.parent.writable? - FileUtils.move(target, source) + FileUtils.cp_r(target, source) else - command.run("/bin/mv", args: [target, source], sudo: true) + command.run("/bin/cp", args: ["-r", target, source], sudo: true) end + + delete(target, force: force, command: command, **options) end def delete(target, force: false, command: nil, **_) diff --git a/Library/Homebrew/compat/dependency_collector.rb b/Library/Homebrew/compat/dependency_collector.rb index 84d5431f3..88d393488 100644 --- a/Library/Homebrew/compat/dependency_collector.rb +++ b/Library/Homebrew/compat/dependency_collector.rb @@ -59,7 +59,7 @@ class DependencyCollector Dependency.new("python3", tags) when :emacs, :mysql, :perl, :postgresql, :rbenv, :ruby output_deprecation(spec) - Dependency.new(spec, tags) + Dependency.new(spec.to_s, tags) else super end diff --git a/Library/Homebrew/dependency_collector.rb b/Library/Homebrew/dependency_collector.rb index 03a86d661..7d3b90f9c 100644 --- a/Library/Homebrew/dependency_collector.rb +++ b/Library/Homebrew/dependency_collector.rb @@ -63,11 +63,19 @@ class DependencyCollector end def cvs_dep_if_needed(tags) - Dependency.new("cvs", tags) + Dependency.new("cvs", tags) unless which("cvs") end def xz_dep_if_needed(tags) - Dependency.new("xz", tags) + Dependency.new("xz", tags) unless which("xz") + end + + def zip_dep_if_needed(tags) + Dependency.new("zip", tags) unless which("zip") + end + + def bzip2_dep_if_needed(tags) + Dependency.new("bzip2", tags) unless which("bzip2") end def ld64_dep_if_needed(*); end @@ -158,6 +166,8 @@ class DependencyCollector def parse_url_spec(url, tags) case File.extname(url) when ".xz" then xz_dep_if_needed(tags) + when ".zip" then zip_dep_if_needed(tags) + when ".bz2" then bzip2_dep_if_needed(tags) when ".lha", ".lzh" then Dependency.new("lha", tags) when ".lz" then Dependency.new("lzip", tags) when ".rar" then Dependency.new("unrar", tags) diff --git a/Library/Homebrew/extend/os/mac/dependency_collector.rb b/Library/Homebrew/extend/os/mac/dependency_collector.rb index 108b6ccb2..a7e5d7ffc 100644 --- a/Library/Homebrew/extend/os/mac/dependency_collector.rb +++ b/Library/Homebrew/extend/os/mac/dependency_collector.rb @@ -18,6 +18,10 @@ class DependencyCollector Dependency.new("xz", tags) end + def zip_dep_if_needed(tags); end + + def bzip2_dep_if_needed(tags); end + def ld64_dep_if_needed(*) # Tiger's ld is too old to properly link some software return if MacOS.version > :tiger diff --git a/Library/Homebrew/os.rb b/Library/Homebrew/os.rb index d35a49dd7..d56b03228 100644 --- a/Library/Homebrew/os.rb +++ b/Library/Homebrew/os.rb @@ -21,6 +21,7 @@ module OS end PATH_OPEN = "/usr/bin/open".freeze elsif OS.linux? + require "os/linux" ISSUES_URL = "https://github.com/Linuxbrew/brew/wiki/troubleshooting".freeze PATH_OPEN = "xdg-open".freeze end diff --git a/Library/Homebrew/os/linux.rb b/Library/Homebrew/os/linux.rb new file mode 100644 index 000000000..e5af301b2 --- /dev/null +++ b/Library/Homebrew/os/linux.rb @@ -0,0 +1,28 @@ +module OS + # Define OS::Mac on Linux for formula API compatibility. + module Mac + module_function + + ::MacOS = self # rubocop:disable Naming/ConstantName + + def prefer_64_bit? + Hardware::CPU.is_64_bit? + end + + def version + Version::NULL + end + + def full_version + Version::NULL + end + + module Xcode + module_function + + def version + Version::NULL + end + end + end +end diff --git a/Library/Homebrew/test/cask/cli/reinstall_spec.rb b/Library/Homebrew/test/cask/cli/reinstall_spec.rb index 3737a7a70..f2d1322ad 100644 --- a/Library/Homebrew/test/cask/cli/reinstall_spec.rb +++ b/Library/Homebrew/test/cask/cli/reinstall_spec.rb @@ -13,7 +13,8 @@ describe Hbc::CLI::Reinstall, :cask do Already downloaded: .*local-caffeine--1.2.3.zip ==> Verifying checksum for Cask local-caffeine ==> Uninstalling Cask local-caffeine - ==> Moving App 'Caffeine.app' back to '.*Caffeine.app'. + ==> Backing App 'Caffeine.app' up to '.*Caffeine.app'. + ==> Removing App '.*Caffeine.app'. ==> Purging files for version 1.2.3 of Cask local-caffeine ==> Installing Cask local-caffeine ==> Moving App 'Caffeine.app' to '.*Caffeine.app'. diff --git a/Library/Homebrew/test/cask/cli/uninstall_spec.rb b/Library/Homebrew/test/cask/cli/uninstall_spec.rb index 322394de4..38ee1bb73 100644 --- a/Library/Homebrew/test/cask/cli/uninstall_spec.rb +++ b/Library/Homebrew/test/cask/cli/uninstall_spec.rb @@ -12,7 +12,8 @@ describe Hbc::CLI::Uninstall, :cask do output = Regexp.new <<~EOS ==> Uninstalling Cask local-caffeine - ==> Moving App 'Caffeine.app' back to '.*Caffeine.app'. + ==> Backing App 'Caffeine.app' up to '.*Caffeine.app'. + ==> Removing App '.*Caffeine.app'. ==> Purging files for version 1.2.3 of Cask local-caffeine EOS diff --git a/Library/Homebrew/test/os/linux/dependency_collector_spec.rb b/Library/Homebrew/test/os/linux/dependency_collector_spec.rb new file mode 100644 index 000000000..543ed39b0 --- /dev/null +++ b/Library/Homebrew/test/os/linux/dependency_collector_spec.rb @@ -0,0 +1,53 @@ +require "dependency_collector" + +describe DependencyCollector do + alias_matcher :be_a_build_requirement, :be_build + + after(:each) do + described_class.clear_cache + end + + describe "#add" do + resource = Resource.new + + context "when xz, zip, and bzip2 are not available" do + it "creates a resource dependency from a '.xz' URL" do + resource.url("http://example.com/foo.xz") + allow_any_instance_of(Object).to receive(:which).with("xz") + expect(subject.add(resource)).to eq(Dependency.new("xz", [:build])) + end + + it "creates a resource dependency from a '.zip' URL" do + resource.url("http://example.com/foo.zip") + allow_any_instance_of(Object).to receive(:which).with("zip") + expect(subject.add(resource)).to eq(Dependency.new("zip", [:build])) + end + + it "creates a resource dependency from a '.bz2' URL" do + resource.url("http://example.com/foo.tar.bz2") + allow_any_instance_of(Object).to receive(:which).with("bzip2") + expect(subject.add(resource)).to eq(Dependency.new("bzip2", [:build])) + end + end + + context "when xz, zip, and bzip2 are available" do + it "does not create a resource dependency from a '.xz' URL" do + resource.url("http://example.com/foo.xz") + allow_any_instance_of(Object).to receive(:which).with("xz").and_return(Pathname.new("foo")) + expect(subject.add(resource)).to be nil + end + + it "does not create a resource dependency from a '.zip' URL" do + resource.url("http://example.com/foo.zip") + allow_any_instance_of(Object).to receive(:which).with("zip").and_return(Pathname.new("foo")) + expect(subject.add(resource)).to be nil + end + + it "does not create a resource dependency from a '.bz2' URL" do + resource.url("http://example.com/foo.tar.bz2") + allow_any_instance_of(Object).to receive(:which).with("bzip2").and_return(Pathname.new("foo")) + expect(subject.add(resource)).to be nil + end + end + end +end diff --git a/Library/Homebrew/test/os/mac/dependency_collector_spec.rb b/Library/Homebrew/test/os/mac/dependency_collector_spec.rb index 5d260ebf7..a8fe8ba54 100644 --- a/Library/Homebrew/test/os/mac/dependency_collector_spec.rb +++ b/Library/Homebrew/test/os/mac/dependency_collector_spec.rb @@ -36,6 +36,18 @@ describe DependencyCollector do expect(subject.add(resource)).to be nil end + specify "Resource dependency from a '.zip' URL" do + resource = Resource.new + resource.url("http://example.com/foo.zip") + expect(subject.add(resource)).to be nil + end + + specify "Resource dependency from a '.bz2' URL" do + resource = Resource.new + resource.url("http://example.com/foo.tar.bz2") + 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") |
