Skip to content

Commit

Permalink
bash: update 5.2.32 bottle.
Browse files Browse the repository at this point in the history
  • Loading branch information
gromgit committed Sep 3, 2024
1 parent 37fce16 commit f41b201
Showing 1 changed file with 116 additions and 0 deletions.
116 changes: 116 additions & 0 deletions Formula/b/bash.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
class Bash < Formula
desc "Bourne-Again SHell, a UNIX command interpreter"
homepage "https://www.gnu.org/software/bash/"
license "GPL-3.0-or-later"
head "https://git.savannah.gnu.org/git/bash.git", branch: "master"

stable do
url "https://ftp.gnu.org/gnu/bash/bash-5.2.tar.gz"
mirror "https://ftpmirror.gnu.org/bash/bash-5.2.tar.gz"
mirror "https://mirrors.kernel.org/gnu/bash/bash-5.2.tar.gz"
mirror "https://mirrors.ocf.berkeley.edu/gnu/bash/bash-5.2.tar.gz"
sha256 "a139c166df7ff4471c5e0733051642ee5556c1cc8a4a78f145583c5c81ab32fb"
version "5.2.32"

%w[
001 f42f2fee923bc2209f406a1892772121c467f44533bedfe00a176139da5d310a
002 45cc5e1b876550eee96f95bffb36c41b6cb7c07d33f671db5634405cd00fd7b8
003 6a090cdbd334306fceacd0e4a1b9e0b0678efdbbdedbd1f5842035990c8abaff
004 38827724bba908cf5721bd8d4e595d80f02c05c35f3dd7dbc4cd3c5678a42512
005 ece0eb544368b3b4359fb8464caa9d89c7a6743c8ed070be1c7d599c3675d357
006 d1e0566a257d149a0d99d450ce2885123f9995e9c01d0a5ef6df7044a72a468c
007 2500a3fc21cb08133f06648a017cebfa27f30ea19c8cbe8dfefdf16227cfd490
008 6b4bd92fd0099d1bab436b941875e99e0cb3c320997587182d6267af1844b1e8
009 f95a817882eaeb0cb78bce82859a86bbb297a308ced730ebe449cd504211d3cd
010 c7705e029f752507310ecd7270aef437e8043a9959e4d0c6065a82517996c1cd
011 831b5f25bf3e88625f3ab315043be7498907c551f86041fa3b914123d79eb6f4
012 2fb107ce1fb8e93f36997c8b0b2743fc1ca98a454c7cc5a3fcabec533f67d42c
013 094b4fd81bc488a26febba5d799689b64d52a5505b63e8ee854f48d356bc7ce6
014 3ef9246f2906ef1e487a0a3f4c647ae1c289cbd8459caa7db5ce118ef136e624
015 ef73905169db67399a728e238a9413e0d689462cb9b72ab17a05dba51221358a
016 155853bc5bd10e40a9bea369fb6f50a203a7d0358e9e32321be0d9fa21585915
017 1c48cecbc9b7b4217990580203b7e1de19c4979d0bd2c0e310167df748df2c89
018 4641dd49dd923b454dd0a346277907090410f5d60a29a2de3b82c98e49aaaa80
019 325c26860ad4bba8558356c4ab914ac57e7b415dac6f5aae86b9b05ccb7ed282
020 b6fc252aeb95ce67c9b017d29d81e8a5e285db4bf20d4ec8cdca35892be5c01d
021 8334b88117ad047598f23581aeb0c66c0248cdd77abc3b4e259133aa307650cd
022 78b5230a49594ec30811e72dcd0f56d1089710ec7828621022d08507aa57e470
023 af905502e2106c8510ba2085aa2b56e64830fc0fdf6ee67ebb459ac11696dcd3
024 971534490117eb05d97d7fd81f5f9d8daf927b4d581231844ffae485651b02c3
025 5138f487e7cf71a6323dc81d22419906f1535b89835cc2ff68847e1a35613075
026 96ee1f549aa0b530521e36bdc0ba7661602cfaee409f7023cac744dd42852eac
027 e12a890a2e4f0d9c6ec1ce65b73da4fe116c8e4209bac8ac9dc4cd96f486ab39
028 6042780ba2893daca4a3f0f9b65728592cd7bb6d4cebe073855a6aad4d63aac1
029 125cacb37e625471924b3ee06c54cb1bf21b3b7fe0e569d24a681b0ec4a29987
030 c3ff73230e123acdb5ac216921a386df8f74340459533d776d02811a1f76698f
031 c2d1b7be2df771126105020af7fafa00fffd4deff4a4e45d60fc6a235bcba795
032 7b9c77daeca93ff711781d7537234166e83ed9835ce1ee7dcd5742319c372a16
].each_slice(2) do |p, checksum|
patch :p0 do
url "https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-#{p}"
mirror "https://ftpmirror.gnu.org/bash/bash-5.2-patches/bash52-#{p}"
mirror "https://mirrors.kernel.org/gnu/bash/bash-5.2-patches/bash52-#{p}"
mirror "https://mirrors.ocf.berkeley.edu/gnu/bash/bash-5.2-patches/bash52-#{p}"
sha256 checksum
end
end
end

# We're not using `url :stable` here because we need `url` to be a string
# when we use it in the `strategy` block.
livecheck do
url "https://ftp.gnu.org/gnu/bash/?C=M&O=D"
regex(/href=.*?bash[._-]v?(\d+(?:\.\d+)+)\.t/i)
strategy :gnu do |page, regex|
# Match versions from files
versions = page.scan(regex)
.flatten
.uniq
.map { |v| Version.new(v) }
.sort
next versions if versions.blank?

# Assume the last-sorted version is newest
newest_version = versions.last

# Simply return the found versions if there isn't a patches directory
# for the "newest" version
patches_directory = page.match(%r{href=.*?(bash[._-]v?#{newest_version.major_minor}[._-]patches/?)["' >]}i)
next versions if patches_directory.blank?

# Fetch the page for the patches directory
patches_page = Homebrew::Livecheck::Strategy.page_content(URI.join(@url, patches_directory[1]).to_s)
next versions if patches_page[:content].blank?

# Generate additional major.minor.patch versions from the patch files in
# the directory and add those to the versions array
patches_page[:content].scan(/href=.*?bash[._-]?v?\d+(?:\.\d+)*[._-]0*(\d+)["' >]/i).each do |match|
versions << "#{newest_version.major_minor}.#{match[0]}"
end

versions
end
end

bottle do
root_url "https://github.com/gromgit/homebrew-core-aarch64_linux/releases/download/bash-5.2.32"
sha256 cellar: :any_skip_relocation, aarch64_linux: "f947a8fab22fc7e8c567a1796d78b6297aa23322f0ff3629e8c6c7992df1eb5c"
end

def install
# When built with SSH_SOURCE_BASHRC, bash will source ~/.bashrc when
# it's non-interactively from sshd. This allows the user to set
# environment variables prior to running the command (e.g. PATH). The
# /bin/bash that ships with macOS defines this, and without it, some
# things (e.g. git+ssh) will break if the user sets their default shell to
# Homebrew's bash instead of /bin/bash.
ENV.append_to_cflags "-DSSH_SOURCE_BASHRC"

system "./configure", "--prefix=#{prefix}"
system "make", "install"
end

test do
assert_equal "hello", shell_output("#{bin}/bash -c \"echo -n hello\"")
end
end

0 comments on commit f41b201

Please sign in to comment.