Merge branch 'master' into pac-bti
This commit is contained in:
commit
49dac599da
6
.github/workflows/docker.yml
vendored
6
.github/workflows/docker.yml
vendored
@ -198,9 +198,9 @@ jobs:
|
||||
labels: ${{ needs.generate-tags.outputs.labels }}
|
||||
|
||||
- name: Run brew test-bot --only-setup
|
||||
# TODO: Remove this conditional when `brew doctor` no longer throws an error on ARM64 Linux.
|
||||
if: matrix.arch == 'x86_64'
|
||||
run: docker run --rm brew brew test-bot --only-setup
|
||||
run: docker run --env HOMEBREW_ARM64_TESTING --rm brew brew test-bot --only-setup
|
||||
env:
|
||||
HOMEBREW_ARM64_TESTING: 1
|
||||
|
||||
- name: Log in to GitHub Packages (BrewTestBot)
|
||||
if: fromJSON(steps.attributes.outputs.push)
|
||||
|
||||
@ -20,7 +20,7 @@ RUN touch /var/mail/ubuntu && chown ubuntu /var/mail/ubuntu && userdel -r ubuntu
|
||||
# shellcheck disable=SC1091,SC2154,SC2292
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends software-properties-common gnupg-agent \
|
||||
&& add-apt-repository -y ppa:git-core/ppa \
|
||||
&& if [ "$(uname -m)" != aarch64 ]; then add-apt-repository -y ppa:git-core/ppa; fi \
|
||||
&& apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
acl \
|
||||
|
||||
@ -118,11 +118,12 @@ class BottleSpecification
|
||||
tags = collector.tags.sort_by do |tag|
|
||||
version = tag.to_macos_version
|
||||
# Give `arm64` bottles a higher priority so they are first.
|
||||
priority = (tag.arch == :arm64) ? 2 : 1
|
||||
priority = (tag.arch == :arm64) ? 3 : 2
|
||||
"#{priority}.#{version}_#{tag}"
|
||||
rescue MacOSVersion::Error
|
||||
# Sort non-macOS tags below macOS tags.
|
||||
"0.#{tag}"
|
||||
# Sort non-macOS tags below macOS tags, and arm64 tags before other tags.
|
||||
priority = (tag.arch == :arm64) ? 1 : 0
|
||||
"#{priority}.#{tag}"
|
||||
end
|
||||
tags.reverse.map do |tag|
|
||||
spec = collector.specification_for(tag)
|
||||
|
||||
@ -143,7 +143,14 @@ module OS
|
||||
return if gcc_dependents.empty?
|
||||
|
||||
badly_linked = gcc_dependents.select do |dependent|
|
||||
keg = Keg.new(dependent.prefix)
|
||||
dependent_prefix = dependent.any_installed_prefix
|
||||
# Keg.new() may raise an error if it is not a directory.
|
||||
# As the result `brew doctor` may display `Error: <keg> is not a directory`
|
||||
# instead of proper `doctor` information.
|
||||
# There are other checks that test that, we can skip broken kegs.
|
||||
next if dependent_prefix.nil? || !dependent_prefix.exist? || !dependent_prefix.directory?
|
||||
|
||||
keg = Keg.new(dependent_prefix)
|
||||
keg.binary_executable_or_library_files.any? do |binary|
|
||||
paths = binary.rpaths
|
||||
versioned_linkage = paths.any? { |path| path.match?(%r{lib/gcc/\d+$}) }
|
||||
|
||||
@ -98,7 +98,7 @@ module Hardware
|
||||
when 0x11
|
||||
:amd_k8_k10_hybrid
|
||||
when 0x12
|
||||
:amd_k12
|
||||
:amd_k10_llano
|
||||
when 0x14
|
||||
:bobcat
|
||||
when 0x15
|
||||
|
||||
@ -149,26 +149,35 @@ module RuboCop
|
||||
end
|
||||
end
|
||||
|
||||
arm64_nodes = []
|
||||
intel_nodes = []
|
||||
arm64_macos_nodes = []
|
||||
intel_macos_nodes = []
|
||||
arm64_linux_nodes = []
|
||||
intel_linux_nodes = []
|
||||
|
||||
sha256_nodes.each do |node|
|
||||
version = sha256_bottle_tag node
|
||||
if version.to_s.start_with? "arm64"
|
||||
arm64_nodes << node
|
||||
if version == :arm64_linux
|
||||
arm64_linux_nodes << node
|
||||
elsif version.to_s.start_with?("arm64")
|
||||
arm64_macos_nodes << node
|
||||
elsif version.to_s.end_with?("_linux")
|
||||
intel_linux_nodes << node
|
||||
else
|
||||
intel_nodes << node
|
||||
intel_macos_nodes << node
|
||||
end
|
||||
end
|
||||
|
||||
return if sha256_order(sha256_nodes) == sha256_order(arm64_nodes + intel_nodes)
|
||||
sorted_nodes = arm64_macos_nodes + intel_macos_nodes + arm64_linux_nodes + intel_linux_nodes
|
||||
return if sha256_order(sha256_nodes) == sha256_order(sorted_nodes)
|
||||
|
||||
offending_node(bottle_node)
|
||||
problem "ARM bottles should be listed before Intel bottles" do |corrector|
|
||||
lines = ["bottle do"]
|
||||
lines += non_sha256_nodes.map { |node| " #{node.source}" }
|
||||
lines += arm64_nodes.map { |node| " #{node.source}" }
|
||||
lines += intel_nodes.map { |node| " #{node.source}" }
|
||||
lines += arm64_macos_nodes.map { |node| " #{node.source}" }
|
||||
lines += intel_macos_nodes.map { |node| " #{node.source}" }
|
||||
lines += arm64_linux_nodes.map { |node| " #{node.source}" }
|
||||
lines += intel_linux_nodes.map { |node| " #{node.source}" }
|
||||
lines << " end"
|
||||
corrector.replace(bottle_node.source_range, lines.join("\n"))
|
||||
end
|
||||
|
||||
@ -26,7 +26,7 @@ RSpec.describe Hardware::CPU do
|
||||
:amd_k8,
|
||||
:amd_k8_k10_hybrid,
|
||||
:amd_k10,
|
||||
:amd_k12,
|
||||
:amd_k10_llano,
|
||||
:arm,
|
||||
:arm_blizzard_avalanche,
|
||||
:arm_brava,
|
||||
|
||||
Binary file not shown.
@ -14,18 +14,20 @@ module UnpackStrategy
|
||||
module Bom
|
||||
extend SystemCommand::Mixin
|
||||
|
||||
DMG_METADATA = T.let(Set.new(%w[
|
||||
.background
|
||||
.com.apple.timemachine.donotpresent
|
||||
.com.apple.timemachine.supported
|
||||
.DocumentRevisions-V100
|
||||
.DS_Store
|
||||
.fseventsd
|
||||
.MobileBackups
|
||||
.Spotlight-V100
|
||||
.TemporaryItems
|
||||
.Trashes
|
||||
.VolumeIcon.icns
|
||||
DMG_METADATA = T.let(Set.new([
|
||||
".background",
|
||||
".com.apple.timemachine.donotpresent",
|
||||
".com.apple.timemachine.supported",
|
||||
".DocumentRevisions-V100",
|
||||
".DS_Store",
|
||||
".fseventsd",
|
||||
".MobileBackups",
|
||||
".Spotlight-V100",
|
||||
".TemporaryItems",
|
||||
".Trashes",
|
||||
".VolumeIcon.icns",
|
||||
".HFS+ Private Directory Data\r", # do not remove `\r`, it is a part of directory name
|
||||
".HFS+ Private Data\r",
|
||||
]).freeze, T::Set[String])
|
||||
private_constant :DMG_METADATA
|
||||
|
||||
|
||||
@ -259,3 +259,10 @@ Help us by [submitting a fix](https://github.com/Homebrew/homebrew-cask/blob/HEA
|
||||
## Other local issues
|
||||
|
||||
If your Homebrew installation gets messed up (and fixing the issues found by `brew doctor` doesn't solve the problem), reinstalling Homebrew may help to reset to a normal state. To easily reinstall Homebrew, use [Homebrew Bundle](https://github.com/Homebrew/homebrew-bundle) to automatically restore your installed formulae and casks. To do so, run `brew bundle dump`, [uninstall](https://docs.brew.sh/FAQ#how-do-i-uninstall-homebrew), [reinstall](https://docs.brew.sh/Installation) and run `brew bundle install`.
|
||||
|
||||
## Possible `curl` issues
|
||||
|
||||
Sometimes, the user's computer, configuration or network connection may cause issues downloading with `curl` which are outside Homebrew's control. Homebrew requires good internet connectivity and correct configuration to function correctly. Here some links that could help you identify cURL issues based on `curl`'s and `libcurl`'s exit codes:
|
||||
|
||||
* https://everything.curl.dev/cmdline/exitcode.html
|
||||
* https://curl.se/libcurl/c/libcurl-errors.html
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user