threads / discuss / 64618

meson -Drust=enabled fails on macOS without GNU sed

Subject: meson -Drust=enabled fails on macOS without GNU sed

## tl;dr

7 messages between Dec 12, 2025 and Dec 18, 2025.

replies: 6people: 3as markdown or json

D. Ben Knoble· Dec 12, 2025, 20:00 UTC · lore

I think it's due to e509b5b8be (rust: support for Windows, 2025-10-15) [relevant folks CC'd], where we assume sed can take "-s" (which AFAICT is a GNU extension). But perhaps "-n" was intended with a "p" flag on the substitution?

I've been building with Rust enabled on Gentoo now for a minute and haven't hit any issues, but that's perhaps because the command is running with "-s" and not working as intended (yet still producing the expected results).

The relevant snippet is this (reformatted slightly by GMail, apologies):
case "$(cargo -vV | sed -s 's/^host: \(.*\)$/\1/')" in
  *-windows-*) LIBNAME=gitcore.lib;;
  *) LIBNAME=libgitcore.a;;
esac
but "cargo -vV" produces something like

cargo 1.89.0 (c24e10642 2025-06-23) release: 1.89.0 commit-hash: c24e1064277fe51ab72011e2612e556ac56addf7 commit-date: 2025-06-23 host: x86_64-apple-darwin libgit2: 1.9.0 (sys:0.20.2 vendored) libcurl: 8.7.1 (sys:0.4.80+curl-8.12.1 system ssl:(SecureTransport) LibreSSL/3.3.6) ssl: OpenSSL 3.5.0 8 Apr 2025 os: Mac OS 12.7.6 [64-bit]

(on my older system, on which I haven't tried the build; the failure is on my newer system with close-enough-to-the-same output). I'm sure you can see why I don't understand why we need GNU's "-s" ("consider files as separate rather than as a single, continuous long stream") here?

Eric Sunshine· Dec 12, 2025, 20:32 UTC · re: D. Ben Knoble · lore

Re: meson -Drust=enabled fails on macOS without GNU sed

On Fri, Dec 12, 2025 at 3:01 PM D. Ben Knoble <ben.knoble+github@gmail.com> wrote:

Show 28 quoted lines
> I think it's due to e509b5b8be (rust: support for Windows, 2025-10-15)
> [relevant folks CC'd], where we assume sed can take "-s" (which AFAICT
> is a GNU extension). But perhaps "-n" was intended with a "p" flag on
> the substitution?
>
> I've been building with Rust enabled on Gentoo now for a minute and
> haven't hit any issues, but that's perhaps because the command is
> running with "-s" and not working as intended (yet still producing the
> expected results).
>
> The relevant snippet is this (reformatted slightly by GMail, apologies):
>
> case "$(cargo -vV | sed -s 's/^host: \(.*\)$/\1/')" in
>   *-windows-*) LIBNAME=gitcore.lib;;
>   *) LIBNAME=libgitcore.a;;
> esac
>
> but "cargo -vV" produces something like
>
> cargo 1.89.0 (c24e10642 2025-06-23)
> [...]
> host: x86_64-apple-darwin
>
> (on my older system, on which I haven't tried the build; the failure
> is on my newer system with close-enough-to-the-same output). I'm sure
> you can see why I don't understand why we need GNU's "-s" ("consider
> files as separate rather than as a single, continuous long stream")
> here?
Yup, that's a strange one. Indeed:
    sed -n 's/^host: \(.*\)$/\1/p'

would be the correct way to do it, while also being compatible with BSD-lineage `sed` (such as `sed` on macOS).

Patrick Steinhardt· Dec 15, 2025, 15:28 UTC · re: Eric Sunshine · lore

Re: meson -Drust=enabled fails on macOS without GNU sed

On Fri, Dec 12, 2025 at 03:32:30PM -0500, Eric Sunshine wrote:
Show 37 quoted lines
> On Fri, Dec 12, 2025 at 3:01 PM D. Ben Knoble
> <ben.knoble+github@gmail.com> wrote:
> > I think it's due to e509b5b8be (rust: support for Windows, 2025-10-15)
> > [relevant folks CC'd], where we assume sed can take "-s" (which AFAICT
> > is a GNU extension). But perhaps "-n" was intended with a "p" flag on
> > the substitution?
> >
> > I've been building with Rust enabled on Gentoo now for a minute and
> > haven't hit any issues, but that's perhaps because the command is
> > running with "-s" and not working as intended (yet still producing the
> > expected results).
> >
> > The relevant snippet is this (reformatted slightly by GMail, apologies):
> >
> > case "$(cargo -vV | sed -s 's/^host: \(.*\)$/\1/')" in
> >   *-windows-*) LIBNAME=gitcore.lib;;
> >   *) LIBNAME=libgitcore.a;;
> > esac
> >
> > but "cargo -vV" produces something like
> >
> > cargo 1.89.0 (c24e10642 2025-06-23)
> > [...]
> > host: x86_64-apple-darwin
> >
> > (on my older system, on which I haven't tried the build; the failure
> > is on my newer system with close-enough-to-the-same output). I'm sure
> > you can see why I don't understand why we need GNU's "-s" ("consider
> > files as separate rather than as a single, continuous long stream")
> > here?
> 
> Yup, that's a strange one. Indeed:
> 
>     sed -n 's/^host: \(.*\)$/\1/p'
> 
> would be the correct way to do it, while also being compatible with
> BSD-lineage `sed` (such as `sed` on macOS).
Ah, indeed. Would one of you want to turn this into a patch?
Thanks for the report!
Patrick
Eric Sunshine· Dec 15, 2025, 17:51 UTC · re: Patrick Steinhardt · lore

Re: meson -Drust=enabled fails on macOS without GNU sed

On Mon, Dec 15, 2025 at 10:28 AM Patrick Steinhardt <ps@pks.im> wrote:
Show 16 quoted lines
> On Fri, Dec 12, 2025 at 03:32:30PM -0500, Eric Sunshine wrote:
> > On Fri, Dec 12, 2025 at 3:01 PM D. Ben Knoble
> > <ben.knoble+github@gmail.com> wrote:
> > > I think it's due to e509b5b8be (rust: support for Windows, 2025-10-15)
> > > [relevant folks CC'd], where we assume sed can take "-s" (which AFAICT
> > > is a GNU extension). But perhaps "-n" was intended with a "p" flag on
> > > the substitution?
> >
> > Yup, that's a strange one. Indeed:
> >
> >     sed -n 's/^host: \(.*\)$/\1/p'
> >
> > would be the correct way to do it, while also being compatible with
> > BSD-lineage `sed` (such as `sed` on macOS).
>
> Ah, indeed. Would one of you want to turn this into a patch?

I'm not likely to have the time, presently. Ben is welcome to attack the task if he desires.

Ben Knoble· Dec 18, 2025, 02:56 UTC · re: Patrick Steinhardt · lore

Re: meson -Drust=enabled fails on macOS without GNU sed

Show 46 quoted lines
> Le 15 déc. 2025 à 10:28, Patrick Steinhardt <ps@pks.im> a écrit :
> 
> On Fri, Dec 12, 2025 at 03:32:30PM -0500, Eric Sunshine wrote:
>>> On Fri, Dec 12, 2025 at 3:01 PM D. Ben Knoble
>>> <ben.knoble+github@gmail.com> wrote:
>>> I think it's due to e509b5b8be (rust: support for Windows, 2025-10-15)
>>> [relevant folks CC'd], where we assume sed can take "-s" (which AFAICT
>>> is a GNU extension). But perhaps "-n" was intended with a "p" flag on
>>> the substitution?
>>> 
>>> I've been building with Rust enabled on Gentoo now for a minute and
>>> haven't hit any issues, but that's perhaps because the command is
>>> running with "-s" and not working as intended (yet still producing the
>>> expected results).
>>> 
>>> The relevant snippet is this (reformatted slightly by GMail, apologies):
>>> 
>>> case "$(cargo -vV | sed -s 's/^host: \(.*\)$/\1/')" in
>>>  *-windows-*) LIBNAME=gitcore.lib;;
>>>  *) LIBNAME=libgitcore.a;;
>>> esac
>>> 
>>> but "cargo -vV" produces something like
>>> 
>>> cargo 1.89.0 (c24e10642 2025-06-23)
>>> [...]
>>> host: x86_64-apple-darwin
>>> 
>>> (on my older system, on which I haven't tried the build; the failure
>>> is on my newer system with close-enough-to-the-same output). I'm sure
>>> you can see why I don't understand why we need GNU's "-s" ("consider
>>> files as separate rather than as a single, continuous long stream")
>>> here?
>> 
>> Yup, that's a strange one. Indeed:
>> 
>>    sed -n 's/^host: \(.*\)$/\1/p'
>> 
>> would be the correct way to do it, while also being compatible with
>> BSD-lineage `sed` (such as `sed` on macOS).
> 
> Ah, indeed. Would one of you want to turn this into a patch?
> 
> Thanks for the report!
> 
> Patrick
Work is ugly this week. I hope to send a patch this weekend. 
Patrick Steinhardt· Dec 18, 2025, 06:57 UTC · re: Ben Knoble · lore

Re: meson -Drust=enabled fails on macOS without GNU sed

On Wed, Dec 17, 2025 at 09:56:02PM -0500, Ben Knoble wrote:
Show 49 quoted lines
> 
> > Le 15 déc. 2025 à 10:28, Patrick Steinhardt <ps@pks.im> a écrit :
> > 
> > On Fri, Dec 12, 2025 at 03:32:30PM -0500, Eric Sunshine wrote:
> >>> On Fri, Dec 12, 2025 at 3:01 PM D. Ben Knoble
> >>> <ben.knoble+github@gmail.com> wrote:
> >>> I think it's due to e509b5b8be (rust: support for Windows, 2025-10-15)
> >>> [relevant folks CC'd], where we assume sed can take "-s" (which AFAICT
> >>> is a GNU extension). But perhaps "-n" was intended with a "p" flag on
> >>> the substitution?
> >>> 
> >>> I've been building with Rust enabled on Gentoo now for a minute and
> >>> haven't hit any issues, but that's perhaps because the command is
> >>> running with "-s" and not working as intended (yet still producing the
> >>> expected results).
> >>> 
> >>> The relevant snippet is this (reformatted slightly by GMail, apologies):
> >>> 
> >>> case "$(cargo -vV | sed -s 's/^host: \(.*\)$/\1/')" in
> >>>  *-windows-*) LIBNAME=gitcore.lib;;
> >>>  *) LIBNAME=libgitcore.a;;
> >>> esac
> >>> 
> >>> but "cargo -vV" produces something like
> >>> 
> >>> cargo 1.89.0 (c24e10642 2025-06-23)
> >>> [...]
> >>> host: x86_64-apple-darwin
> >>> 
> >>> (on my older system, on which I haven't tried the build; the failure
> >>> is on my newer system with close-enough-to-the-same output). I'm sure
> >>> you can see why I don't understand why we need GNU's "-s" ("consider
> >>> files as separate rather than as a single, continuous long stream")
> >>> here?
> >> 
> >> Yup, that's a strange one. Indeed:
> >> 
> >>    sed -n 's/^host: \(.*\)$/\1/p'
> >> 
> >> would be the correct way to do it, while also being compatible with
> >> BSD-lineage `sed` (such as `sed` on macOS).
> > 
> > Ah, indeed. Would one of you want to turn this into a patch?
> > 
> > Thanks for the report!
> > 
> > Patrick
> 
> Work is ugly this week. I hope to send a patch this weekend. 

Thanks! Let me know in case you don't get to it and I'll be happy to send a patch myself.

Patrick
D. Ben Knoble· Dec 18, 2025, 23:26 UTC · re: Patrick Steinhardt · lore

Re: meson -Drust=enabled fails on macOS without GNU sed

On Thu, Dec 18, 2025 at 1:57 AM Patrick Steinhardt <ps@pks.im> wrote:
>
> On Wed, Dec 17, 2025 at 09:56:02PM -0500, Ben Knoble wrote:
> >
> > > Le 15 déc. 2025 à 10:28, Patrick Steinhardt <ps@pks.im> a écrit :
[snip]
Show 12 quoted lines
> > > Ah, indeed. Would one of you want to turn this into a patch?
> > >
> > > Thanks for the report!
> > >
> > > Patrick
> >
> > Work is ugly this week. I hope to send a patch this weekend.
>
> Thanks! Let me know in case you don't get to it and I'll be happy to
> send a patch myself.
>
> Patrick

Should come in as <a33f4e5118938300bcd5b2991feeee855a1c8f86.1766100330.git.ben.knoble+github@gmail.com>

-- 
D. Ben Knoble

← back to recent threads