Skip to content

Commit 076daee

Browse files
authored
Merge pull request #245173 from Homebrew/sbcl-workaround
buildapp pgloader: workaround to avoid corrupted Linux bottle
2 parents 7b57e22 + 1bd7181 commit 076daee

File tree

2 files changed

+58
-30
lines changed

2 files changed

+58
-30
lines changed

Formula/b/buildapp.rb

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,13 @@ class Buildapp < Formula
1010
no_autobump! because: :requires_manual_review
1111

1212
bottle do
13-
rebuild 2
14-
sha256 arm64_tahoe: "571d55ab5313212cfa48bb6a522581f47368c8c6f56985c54316627c09a0694e"
15-
sha256 arm64_sequoia: "25eba8ba9388bbf422a7a5f14e2db9f1ea8d9e9add5cd58aecb3ea6a97f7eb83"
16-
sha256 arm64_sonoma: "4cd0afa49db04a858b694e03cb247d5fc67b5c73b082725032364102b6e24973"
17-
sha256 arm64_ventura: "41ce31edf3763b06c08acd06abfcfaecec13bfa0487d876ca37019f2aea85ead"
18-
sha256 arm64_monterey: "071a97e829ed1ca27927b7bb4539a552cc1a26f671f83d23cad621ad13b3cb4a"
19-
sha256 sonoma: "d54e9bdbef32deb80e6dcf9ad7089ae433e9594fd3fc8df6e1ae50065a8e2857"
20-
sha256 ventura: "e74370d3c6b1367de4d8edcee76878f8a380d7728f43f18cf4e2b28d6acb609e"
21-
sha256 monterey: "8c4d8793f2467b30a89079fd58099a79d331794d3667949736b91542279d1b6c"
22-
sha256 arm64_linux: "2c2711b913dccab60c2f0273493426a2e98c007b736711685387a4b33423cf65"
23-
sha256 x86_64_linux: "4642b29de810bdc8d7c9d5e1ea678c5f366dee7a3dd6ca48523dd36af4f559ea"
13+
rebuild 3
14+
sha256 arm64_tahoe: "1b91e415cf7ddeab7dc5585efe5b7e58d4798f336ae19bd8c33ebd4d24b19e58"
15+
sha256 arm64_sequoia: "a424c9298996d720b76dd934de8ba4f8fb90f30b05ab3a8f2916ff351bbe8318"
16+
sha256 arm64_sonoma: "3c6c239c61b755cf08e189979db5dfc599111067973befc8fa7155986a2d2e6f"
17+
sha256 sonoma: "e832088898a11ef56ff0b5000b5166df15e600d78da05b7061b1917ff932c90e"
18+
sha256 arm64_linux: "25b50dc88f92ffa69a1ca5f768b1b50338b37f3ff32078a93492e29b3f66b56b"
19+
sha256 x86_64_linux: "7fd612c69baa9387a3790c750c5fc8eb3a7c9787e9107cf7fb200aeb3d184f3b"
2420
end
2521

2622
depends_on "sbcl"
@@ -29,14 +25,28 @@ class Buildapp < Formula
2925
def install
3026
bin.mkpath
3127
system "make", "install", "DESTDIR=#{prefix}"
28+
29+
# Work around patchelf corrupting the SBCL core which is appended to binary
30+
# TODO: Find a better way to handle this in brew, either automatically or via DSL
31+
if OS.linux? && build.bottle?
32+
cp bin/"buildapp", prefix
33+
Utils::Gzip.compress(prefix/"buildapp")
34+
end
3235
end
3336

34-
test do
35-
# Fails in Linux CI with "Can't find sbcl.core"
36-
return if OS.linux? && ENV["HOMEBREW_GITHUB_ACTIONS"]
37+
def post_install
38+
if (prefix/"buildapp.gz").exist?
39+
system "gunzip", prefix/"buildapp.gz"
40+
bin.install prefix/"buildapp"
41+
(bin/"buildapp").chmod 0755
42+
end
43+
end
3744

38-
code = "(defun f (a) (declare (ignore a)) (write-line \"Hello, homebrew\"))"
45+
test do
46+
code = <<~LISP
47+
(defun f (a) (declare (ignore a)) (write-line "Hello, homebrew"))
48+
LISP
3949
system bin/"buildapp", "--eval", code, "--entry", "f", "--output", "t"
40-
assert_equal `./t`, "Hello, homebrew\n"
50+
assert_equal "Hello, homebrew\n", shell_output("./t")
4151
end
4252
end

Formula/p/pgloader.rb

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,13 @@ class Pgloader < Formula
1515
no_autobump! because: :requires_manual_review
1616

1717
bottle do
18-
rebuild 1
19-
sha256 cellar: :any, arm64_tahoe: "cc07415eedb3e46c7e7826846ed4bc9027e246db81ede0fac1041b0a157dc660"
20-
sha256 cellar: :any, arm64_sequoia: "cb7f5d7b24d71a33f540c1deac860c14ac23a722ea8d090dcee236d323fb91c7"
21-
sha256 cellar: :any, arm64_sonoma: "e9e988b590421ba3ebbf60331db3cb54d713d3629e53905218cdfe677d83190b"
22-
sha256 cellar: :any, arm64_ventura: "66c38d5680137c97900e8bc0345212df6ef9c246688263d27a1612f0c68362a3"
23-
sha256 cellar: :any, arm64_monterey: "368d8f4b75362e444098030d8a7de45e09c495d501037a679670a1349bc366a8"
24-
sha256 cellar: :any, sonoma: "4b2bb7c9ae9bd104768e44181fcb9536928d5d37a20a39b66dd29d3446eecef8"
25-
sha256 cellar: :any, ventura: "8abc681975f40539f48f3444ffee0d6028080ee7dfbff23a69d2d1ad283079cd"
26-
sha256 cellar: :any, monterey: "52cdba8d7bf8f2a836eeba8b6e2eae1521d95a31a0203edb0f5ae9b1a05ae394"
27-
sha256 cellar: :any_skip_relocation, arm64_linux: "cbd685f4531bdf498e069785d26e5944ee7f25a505c9e6f3e5a9a41d2a6d2dbe"
28-
sha256 cellar: :any_skip_relocation, x86_64_linux: "b3066fd9fdb9548c8e1d3f6bb445017b0da557e00247d72bb8c2cafc4aed41d3"
18+
rebuild 2
19+
sha256 cellar: :any, arm64_tahoe: "f5baa53cabbdcdba97c61a8734543b06ffecf1edfb6a072fffe33673b6adda14"
20+
sha256 cellar: :any, arm64_sequoia: "0b51ea7384a8623316882a7e4ca9fd5a67fd290fc2cea4f37e1b202b565a33cf"
21+
sha256 cellar: :any, arm64_sonoma: "02643e311b7153fc874298fc931b1a685a2cacee774b094807ca907938d1d778"
22+
sha256 cellar: :any, sonoma: "b3e66db5bd5d27ebb26eb4afad56169753c690f85606abcd28855f15eafbf5b2"
23+
sha256 cellar: :any_skip_relocation, arm64_linux: "9dad60ccd17c70c50388e58642587f660497c819d964544cb59ef9a80f942133"
24+
sha256 cellar: :any_skip_relocation, x86_64_linux: "3383d6eb3b97d354416fa7257bf7beafbbaa14d671dc285e44cf6b2c0116356b"
2925
end
3026

3127
depends_on "buildapp" => :build
@@ -36,15 +32,37 @@ class Pgloader < Formula
3632
depends_on "sbcl"
3733
depends_on "zstd"
3834

35+
on_linux do
36+
# Patchelf will corrupt the SBCL core which is appended to binary.
37+
on_arm do
38+
pour_bottle? only_if: :default_prefix
39+
end
40+
on_intel do
41+
pour_bottle? only_if: :default_prefix
42+
end
43+
end
44+
3945
def install
4046
system "make"
4147
bin.install "bin/pgloader"
48+
49+
# Work around patchelf corrupting the SBCL core which is appended to binary
50+
# TODO: Find a better way to handle this in brew, either automatically or via DSL
51+
if OS.linux? && build.bottle?
52+
cp bin/"pgloader", prefix
53+
Utils::Gzip.compress(prefix/"pgloader")
54+
end
4255
end
4356

44-
test do
45-
# Fails in Linux CI with "Can't find sbcl.core"
46-
return if OS.linux? && ENV["HOMEBREW_GITHUB_ACTIONS"]
57+
def post_install
58+
if (prefix/"pgloader.gz").exist?
59+
system "gunzip", prefix/"pgloader.gz"
60+
bin.install prefix/"pgloader"
61+
(bin/"pgloader").chmod 0755
62+
end
63+
end
4764

65+
test do
4866
output = shell_output("#{bin}/pgloader --summary 2>&1", 2)
4967
assert_match "pgloader [ option ... ] SOURCE TARGET", output
5068

0 commit comments

Comments
 (0)