Loading pkgs/by-name/am/amber-lang/fix_gnused_detection.patchdeleted 100644 → 0 +0 −29 Original line number Diff line number Diff line From cae2ad70d6202bc97623be8c7c123ee2736a4644 Mon Sep 17 00:00:00 2001 From: aleksana <me@aleksana.moe> Date: Sun, 9 Mar 2025 21:19:27 +0800 Subject: [PATCH] replace_regex: remove bash word boundary when detecting gnused Bash linked against C libraries other than GLibc may not support GNU extensions of POSIX Extended Regular Regex. For example, > re='\bx'; [[ 'x' =~ $re ]] && echo "1" does not output the same result on Linux/GLibc and macOS. --- src/std/text.ab | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/std/text.ab b/src/std/text.ab index fe071e33..82449a02 100644 --- a/src/std/text.ab +++ b/src/std/text.ab @@ -19,7 +19,7 @@ pub fun replace_regex(source: Text, search: Text, replace: Text, extended: Bool // GNU sed versions 4.0 through 4.2 support extended regex syntax, // but only via the "-r" option; use that if the version information // contains "GNU sed". - $ re='\bCopyright\b.+\bFree Software Foundation\b'; [[ \$(sed --version 2>/dev/null) =~ \$re ]] $ + $ re='Copyright.+Free Software Foundation'; [[ \$(sed --version 2>/dev/null) =~ \$re ]] $ let flag = status == 0 then "-r" else "-E" return $ echo "{source}" | sed "{flag}" -e "s/{search}/{replace}/g" $ } else { pkgs/by-name/am/amber-lang/fix_word_boundaries.patch 0 → 100644 +38 −0 Original line number Diff line number Diff line From efdbecaf721ccb217ece34a5105eaac68e27aa51 Mon Sep 17 00:00:00 2001 From: Max Karou <maxkarou@protonmail.com> Date: Sun, 4 Jan 2026 01:47:51 +0100 Subject: [PATCH] sed_version: remove word boundary assertions Word boundary assertions (\b) are GNU regex extensions that may fail on systems using non-glibc C libraries (e.g., musl, macOS). This was previously fixed in replace_regex() via NixOS/nixpkgs#388412, which was subsequently upstreamed in amber-lang/amber#686. Changes in amber-lang/amber#717 reintroduced the same portability issue. --- src/std/text.ab | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/std/text.ab b/src/std/text.ab index 5f2d935..a5dac3f 100644 --- a/src/std/text.ab +++ b/src/std/text.ab @@ -51,12 +51,12 @@ const SED_VERSION_BUSYBOX = 2 fun sed_version(): Int { // We can't match against a word "GNU" because // alpine's busybox sed returns "This is not GNU sed version" - trust $ re='\bCopyright\b.+\bFree Software Foundation\b'; [[ \$(sed --version 2>/dev/null) =~ \$re ]] $ + trust $ re='Copyright.+Free Software Foundation'; [[ \$(sed --version 2>/dev/null) =~ \$re ]] $ if status == 0 { return SED_VERSION_GNU } // On BSD single `sed` waits for stdin. We must use `sed --help` to avoid this. - trust $ re='\bBusyBox\b'; [[ \$(sed --help 2>&1) =~ \$re ]] $ + trust $ re='BusyBox'; [[ \$(sed --help 2>&1) =~ \$re ]] $ if status == 0 { return SED_VERSION_BUSYBOX } -- 2.51.2 pkgs/by-name/am/amber-lang/package.nix +6 −5 Original line number Diff line number Diff line Loading @@ -15,21 +15,22 @@ rustPlatform.buildRustPackage rec { pname = "amber-lang"; version = "0.4.0-alpha"; version = "0.5.1-alpha"; src = fetchFromGitHub { owner = "amber-lang"; repo = "amber"; tag = version; hash = "sha256-N9G/2G8+vrpr1/K7XLwgW+X2oAyAaz4qvN+EbLOCU1Q="; hash = "sha256-v1uJe3vVGKXaZcQzdoYzu/bJKMQnS4IYET4QLPW+J8Y="; }; patches = [ # https://github.com/amber-lang/amber/pull/686 ./fix_gnused_detection.patch # Upstreamed in #995, can be removed in >= 0.5.2 # github.com/amber-lang/amber/pull/995 ./fix_word_boundaries.patch ]; cargoHash = "sha256-e5+L7Qgd6hyqT1Pb9X7bVtRr+xm428Z5J4hhsYNnGtU="; cargoHash = "sha256-aXcxlmmDYLFbyRJYyGE1gbQMbdysHx4iWXsrUj10Eco="; preConfigure = '' substituteInPlace src/compiler.rs \ Loading Loading
pkgs/by-name/am/amber-lang/fix_gnused_detection.patchdeleted 100644 → 0 +0 −29 Original line number Diff line number Diff line From cae2ad70d6202bc97623be8c7c123ee2736a4644 Mon Sep 17 00:00:00 2001 From: aleksana <me@aleksana.moe> Date: Sun, 9 Mar 2025 21:19:27 +0800 Subject: [PATCH] replace_regex: remove bash word boundary when detecting gnused Bash linked against C libraries other than GLibc may not support GNU extensions of POSIX Extended Regular Regex. For example, > re='\bx'; [[ 'x' =~ $re ]] && echo "1" does not output the same result on Linux/GLibc and macOS. --- src/std/text.ab | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/std/text.ab b/src/std/text.ab index fe071e33..82449a02 100644 --- a/src/std/text.ab +++ b/src/std/text.ab @@ -19,7 +19,7 @@ pub fun replace_regex(source: Text, search: Text, replace: Text, extended: Bool // GNU sed versions 4.0 through 4.2 support extended regex syntax, // but only via the "-r" option; use that if the version information // contains "GNU sed". - $ re='\bCopyright\b.+\bFree Software Foundation\b'; [[ \$(sed --version 2>/dev/null) =~ \$re ]] $ + $ re='Copyright.+Free Software Foundation'; [[ \$(sed --version 2>/dev/null) =~ \$re ]] $ let flag = status == 0 then "-r" else "-E" return $ echo "{source}" | sed "{flag}" -e "s/{search}/{replace}/g" $ } else {
pkgs/by-name/am/amber-lang/fix_word_boundaries.patch 0 → 100644 +38 −0 Original line number Diff line number Diff line From efdbecaf721ccb217ece34a5105eaac68e27aa51 Mon Sep 17 00:00:00 2001 From: Max Karou <maxkarou@protonmail.com> Date: Sun, 4 Jan 2026 01:47:51 +0100 Subject: [PATCH] sed_version: remove word boundary assertions Word boundary assertions (\b) are GNU regex extensions that may fail on systems using non-glibc C libraries (e.g., musl, macOS). This was previously fixed in replace_regex() via NixOS/nixpkgs#388412, which was subsequently upstreamed in amber-lang/amber#686. Changes in amber-lang/amber#717 reintroduced the same portability issue. --- src/std/text.ab | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/std/text.ab b/src/std/text.ab index 5f2d935..a5dac3f 100644 --- a/src/std/text.ab +++ b/src/std/text.ab @@ -51,12 +51,12 @@ const SED_VERSION_BUSYBOX = 2 fun sed_version(): Int { // We can't match against a word "GNU" because // alpine's busybox sed returns "This is not GNU sed version" - trust $ re='\bCopyright\b.+\bFree Software Foundation\b'; [[ \$(sed --version 2>/dev/null) =~ \$re ]] $ + trust $ re='Copyright.+Free Software Foundation'; [[ \$(sed --version 2>/dev/null) =~ \$re ]] $ if status == 0 { return SED_VERSION_GNU } // On BSD single `sed` waits for stdin. We must use `sed --help` to avoid this. - trust $ re='\bBusyBox\b'; [[ \$(sed --help 2>&1) =~ \$re ]] $ + trust $ re='BusyBox'; [[ \$(sed --help 2>&1) =~ \$re ]] $ if status == 0 { return SED_VERSION_BUSYBOX } -- 2.51.2
pkgs/by-name/am/amber-lang/package.nix +6 −5 Original line number Diff line number Diff line Loading @@ -15,21 +15,22 @@ rustPlatform.buildRustPackage rec { pname = "amber-lang"; version = "0.4.0-alpha"; version = "0.5.1-alpha"; src = fetchFromGitHub { owner = "amber-lang"; repo = "amber"; tag = version; hash = "sha256-N9G/2G8+vrpr1/K7XLwgW+X2oAyAaz4qvN+EbLOCU1Q="; hash = "sha256-v1uJe3vVGKXaZcQzdoYzu/bJKMQnS4IYET4QLPW+J8Y="; }; patches = [ # https://github.com/amber-lang/amber/pull/686 ./fix_gnused_detection.patch # Upstreamed in #995, can be removed in >= 0.5.2 # github.com/amber-lang/amber/pull/995 ./fix_word_boundaries.patch ]; cargoHash = "sha256-e5+L7Qgd6hyqT1Pb9X7bVtRr+xm428Z5J4hhsYNnGtU="; cargoHash = "sha256-aXcxlmmDYLFbyRJYyGE1gbQMbdysHx4iWXsrUj10Eco="; preConfigure = '' substituteInPlace src/compiler.rs \ Loading