Use @@HOMEBREW_PREFIX@@ for replacements in external patches

This commit is contained in:
Przemysław Kryger 2024-10-23 16:51:01 +01:00
parent 13a26d5517
commit ff03947ba0
5 changed files with 7 additions and 5 deletions

View File

@ -142,7 +142,7 @@ class ExternalPatch
patch_file = patch_dir/patch_file
Utils.safe_popen_write("patch", "-g", "0", "-f", "-#{strip}") do |p|
File.foreach(patch_file) do |line|
data = line.gsub("HOMEBREW_PREFIX", HOMEBREW_PREFIX)
data = line.gsub("@@HOMEBREW_PREFIX@@", HOMEBREW_PREFIX)
p.write(data)
end
end

View File

@ -47,7 +47,7 @@ RSpec.describe "patching", type: :system do
formula.patch
s = File.read("libexec/NOOP")
expect(s).not_to include("NOOP"), "libexec/NOOP was not patched as expected"
expect(s).not_to include("HOMEBREW_PREFIX"), "libexec/NOOP was not patched as expected"
expect(s).not_to include("@@HOMEBREW_PREFIX@@"), "libexec/NOOP was not patched as expected"
expect(s).to include(HOMEBREW_PREFIX.to_s), "libexec/NOOP was not patched as expected"
end
end

View File

@ -6,5 +6,5 @@ index bfdda4c..e08d8f4 100755
#!/bin/bash
-echo NOOP
\ No newline at end of file
+echo HOMEBREW_PREFIX
+echo @@HOMEBREW_PREFIX@@
\ No newline at end of file

View File

@ -47,6 +47,6 @@ TESTBALL_SHA256 = "91e3f7930c98d7ccfb288e115ed52d06b0e5bc16fec7dce8bdda865300270
TESTBALL_PATCHES_SHA256 = "799c2d551ac5c3a5759bea7796631a7906a6a24435b52261a317133a0bfb34d9"
PATCH_A_SHA256 = "83404f4936d3257e65f176c4ffb5a5b8d6edd644a21c8d8dcc73e22a6d28fcfa"
PATCH_B_SHA256 = "57958271bb802a59452d0816e0670d16c8b70bdf6530bcf6f78726489ad89b90"
PATCH_D_SHA256 = "29946529088576919b0a56146c346e63692832ab3568cc34fed647c3e4dc2072"
PATCH_D_SHA256 = "07c72c4463339e6e2ce235f3b26e316d4940017bf4b5236e27e757a44d67636c"
TEST_SHA256 = "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"

View File

@ -639,7 +639,9 @@ Patches can also be embedded by passing a string. This makes it possible to prov
patch :p0, "..."
```
In patches, the string "HOMEBREW\_PREFIX" is replaced with the value of the constant `HOMEBREW_PREFIX` before the patch is applied.
In embedded patches, the string "HOMEBREW\_PREFIX" is replaced with the value of the constant `HOMEBREW_PREFIX` before the patch is applied.
In external patches, the string "@@HOMEBREW\_PREFIX@@" is replaced with the value of the constant `HOMEBREW_PREFIX` before the patch is applied.
### Creating the diff