]> git.ipfire.org Git - thirdparty/git.git/commitdiff
rust: build correctly without GNU sed
authorD. Ben Knoble <ben.knoble+github@gmail.com>
Thu, 18 Dec 2025 23:25:44 +0000 (18:25 -0500)
committerJunio C Hamano <gitster@pobox.com>
Fri, 19 Dec 2025 08:57:26 +0000 (17:57 +0900)
From e509b5b8be (rust: support for Windows, 2025-10-15), we check
cargo's information to decide which library to build. However, that
check mistakenly used "sed -s" ("consider files as separate rather than
as a single, continuous long stream"), which is a GNU extension. The
build thus fails on macOS with "meson -Drust=enabled", which comes with
BSD-derived sed.

Instead, use the intended "sed -n" and print the matching section of the
output. This failure mode likely went unnoticed on systems with GNU sed
(common for developer machines and CI) because, in those instances, the
output being matched by case is the full cargo output (which either
contains the string "-windows-" or doesn't).

Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Helped-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: D. Ben Knoble <ben.knoble+github@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
src/cargo-meson.sh

index 3998db043548640b48ab502a7d848bf87ad627bb..38728a371137f9d2a98e2e98749cd693e0a005ed 100755 (executable)
@@ -26,7 +26,7 @@ then
        exit $RET
 fi
 
-case "$(cargo -vV | sed -s 's/^host: \(.*\)$/\1/')" in
+case "$(cargo -vV | sed -n 's/^host: \(.*\)$/\1/p')" in
        *-windows-*)
                LIBNAME=gitcore.lib;;
        *)