Add Linux dependency check in cask.rb
This commit is contained in:
parent
9f6b421ad6
commit
756ba2ba59
@ -414,6 +414,7 @@ module Cask
|
|||||||
OnSystem::ALL_OS_ARCH_COMBINATIONS.each do |os, arch|
|
OnSystem::ALL_OS_ARCH_COMBINATIONS.each do |os, arch|
|
||||||
bottle_tag = ::Utils::Bottles::Tag.new(system: os, arch:)
|
bottle_tag = ::Utils::Bottles::Tag.new(system: os, arch:)
|
||||||
next unless bottle_tag.valid_combination?
|
next unless bottle_tag.valid_combination?
|
||||||
|
next if bottle_tag.linux? && @dsl.os.nil?
|
||||||
next if bottle_tag.macos? &&
|
next if bottle_tag.macos? &&
|
||||||
depends_on.macos &&
|
depends_on.macos &&
|
||||||
!@dsl.depends_on_set_in_block? &&
|
!@dsl.depends_on_set_in_block? &&
|
||||||
|
@ -324,6 +324,15 @@ RSpec.describe Cask::Cask, :cask do
|
|||||||
let(:expected_versions_variations) do
|
let(:expected_versions_variations) do
|
||||||
<<~JSON
|
<<~JSON
|
||||||
{
|
{
|
||||||
|
"sequoia": {
|
||||||
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine/darwin/1.2.3/intel.zip"
|
||||||
|
},
|
||||||
|
"sonoma": {
|
||||||
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine/darwin/1.2.3/intel.zip"
|
||||||
|
},
|
||||||
|
"ventura": {
|
||||||
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine/darwin/1.2.3/intel.zip"
|
||||||
|
},
|
||||||
"monterey": {
|
"monterey": {
|
||||||
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine/darwin/1.2.3/intel.zip"
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine/darwin/1.2.3/intel.zip"
|
||||||
},
|
},
|
||||||
@ -346,6 +355,21 @@ RSpec.describe Cask::Cask, :cask do
|
|||||||
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine/darwin/1.0.0/intel.zip",
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine/darwin/1.0.0/intel.zip",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"sha256": "1866dfa833b123bb8fe7fa7185ebf24d28d300d0643d75798bc23730af734216"
|
"sha256": "1866dfa833b123bb8fe7fa7185ebf24d28d300d0643d75798bc23730af734216"
|
||||||
|
},
|
||||||
|
"high_sierra": {
|
||||||
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine/darwin/1.0.0/intel.zip",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"sha256": "1866dfa833b123bb8fe7fa7185ebf24d28d300d0643d75798bc23730af734216"
|
||||||
|
},
|
||||||
|
"sierra": {
|
||||||
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine/darwin/1.0.0/intel.zip",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"sha256": "1866dfa833b123bb8fe7fa7185ebf24d28d300d0643d75798bc23730af734216"
|
||||||
|
},
|
||||||
|
"el_capitan": {
|
||||||
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine/darwin/1.0.0/intel.zip",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"sha256": "1866dfa833b123bb8fe7fa7185ebf24d28d300d0643d75798bc23730af734216"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
JSON
|
JSON
|
||||||
@ -353,6 +377,18 @@ RSpec.describe Cask::Cask, :cask do
|
|||||||
let(:expected_sha256_variations) do
|
let(:expected_sha256_variations) do
|
||||||
<<~JSON
|
<<~JSON
|
||||||
{
|
{
|
||||||
|
"sequoia": {
|
||||||
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel.zip",
|
||||||
|
"sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
||||||
|
},
|
||||||
|
"sonoma": {
|
||||||
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel.zip",
|
||||||
|
"sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
||||||
|
},
|
||||||
|
"ventura": {
|
||||||
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel.zip",
|
||||||
|
"sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
||||||
|
},
|
||||||
"monterey": {
|
"monterey": {
|
||||||
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel.zip",
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel.zip",
|
||||||
"sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
"sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
||||||
@ -368,21 +404,77 @@ RSpec.describe Cask::Cask, :cask do
|
|||||||
"mojave": {
|
"mojave": {
|
||||||
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel.zip",
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel.zip",
|
||||||
"sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
"sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
||||||
|
},
|
||||||
|
"high_sierra": {
|
||||||
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel.zip",
|
||||||
|
"sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
||||||
|
},
|
||||||
|
"sierra": {
|
||||||
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel.zip",
|
||||||
|
"sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
||||||
|
},
|
||||||
|
"el_capitan": {
|
||||||
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel.zip",
|
||||||
|
"sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
JSON
|
||||||
|
end
|
||||||
|
let(:expected_sha256_variations_os) do
|
||||||
|
<<~JSON
|
||||||
|
{
|
||||||
|
"sequoia": {
|
||||||
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel-darwin.zip",
|
||||||
|
"sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
||||||
|
},
|
||||||
|
"sonoma": {
|
||||||
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel-darwin.zip",
|
||||||
|
"sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
||||||
|
},
|
||||||
|
"ventura": {
|
||||||
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel-darwin.zip",
|
||||||
|
"sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
||||||
|
},
|
||||||
|
"monterey": {
|
||||||
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel-darwin.zip",
|
||||||
|
"sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
||||||
|
},
|
||||||
|
"big_sur": {
|
||||||
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel-darwin.zip",
|
||||||
|
"sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
||||||
|
},
|
||||||
|
"catalina": {
|
||||||
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel-darwin.zip",
|
||||||
|
"sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
||||||
|
},
|
||||||
|
"mojave": {
|
||||||
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel-darwin.zip",
|
||||||
|
"sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
||||||
|
},
|
||||||
|
"high_sierra": {
|
||||||
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel-darwin.zip",
|
||||||
|
"sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
||||||
|
},
|
||||||
|
"sierra": {
|
||||||
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel-darwin.zip",
|
||||||
|
"sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
||||||
|
},
|
||||||
|
"el_capitan": {
|
||||||
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel-darwin.zip",
|
||||||
|
"sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
||||||
|
},
|
||||||
|
"x86_64_linux": {
|
||||||
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel-linux.zip",
|
||||||
|
"sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
||||||
|
},
|
||||||
|
"arm64_linux": {
|
||||||
|
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-arm-linux.zip"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
JSON
|
JSON
|
||||||
end
|
end
|
||||||
|
|
||||||
before do
|
before do
|
||||||
# Use a more limited symbols list to shorten the variations hash
|
|
||||||
symbols = {
|
|
||||||
monterey: "12",
|
|
||||||
big_sur: "11",
|
|
||||||
catalina: "10.15",
|
|
||||||
mojave: "10.14",
|
|
||||||
}
|
|
||||||
stub_const("MacOSVersion::SYMBOLS", symbols)
|
|
||||||
|
|
||||||
# For consistency, always run on Monterey and ARM
|
# For consistency, always run on Monterey and ARM
|
||||||
MacOS.full_version = "12"
|
MacOS.full_version = "12"
|
||||||
allow(Hardware::CPU).to receive(:type).and_return(:arm)
|
allow(Hardware::CPU).to receive(:type).and_return(:arm)
|
||||||
@ -408,6 +500,14 @@ RSpec.describe Cask::Cask, :cask do
|
|||||||
expect(JSON.pretty_generate(h["variations"])).to eq expected_sha256_variations.strip
|
expect(JSON.pretty_generate(h["variations"])).to eq expected_sha256_variations.strip
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "returns the correct variations hash for a cask different sha256s on each arch and os" do
|
||||||
|
c = Cask::CaskLoader.load("sha256-os")
|
||||||
|
h = c.to_hash_with_variations
|
||||||
|
|
||||||
|
expect(h).to be_a(Hash)
|
||||||
|
expect(JSON.pretty_generate(h["variations"])).to eq expected_sha256_variations_os.strip
|
||||||
|
end
|
||||||
|
|
||||||
# NOTE: The calls to `Cask.generating_hash!` and `Cask.generated_hash!`
|
# NOTE: The calls to `Cask.generating_hash!` and `Cask.generated_hash!`
|
||||||
# are not idempotent so they can only be used in one test.
|
# are not idempotent so they can only be used in one test.
|
||||||
it "returns the correct hash placeholders" do
|
it "returns the correct hash placeholders" do
|
||||||
|
@ -0,0 +1,15 @@
|
|||||||
|
cask "sha256-os" do
|
||||||
|
os macos: "darwin", linux: "linux"
|
||||||
|
arch arm: "arm", intel: "intel"
|
||||||
|
|
||||||
|
version "1.2.3"
|
||||||
|
sha256 arm: "67cdb8a02803ef37fdbf7e0be205863172e41a561ca446cd84f0d7ab35a99d94",
|
||||||
|
intel: "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b",
|
||||||
|
x86_64_linux: "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b",
|
||||||
|
arm64_linux: "67cdb8a02803ef37fdbf7e0be205863172e41a561ca446cd84f0d7ab35a99d94"
|
||||||
|
|
||||||
|
url "file://#{TEST_FIXTURE_DIR}/cask/caffeine-#{arch}-#{os}.zip"
|
||||||
|
homepage "https://brew.sh/"
|
||||||
|
|
||||||
|
app "Caffeine.app"
|
||||||
|
end
|
Loading…
x
Reference in New Issue
Block a user