Re: git: 48a481f83ecb - main - www/firefox: fix build with sndio

From: Jung-uk Kim <jkim_at_FreeBSD.org>
Date: Tue, 26 Apr 2022 21:14:55 UTC
On 22. 4. 26., Guido Falsi wrote:
> On 26/04/22 20:51, Christoph Moench-Tegeder wrote:
>> The branch main has been updated by cmt:
>>
>> URL: 
>> https://cgit.FreeBSD.org/ports/commit/?id=48a481f83ecbb669a22c2c9f9dc3712bf5a7b71c 
>>
>>
>> commit 48a481f83ecbb669a22c2c9f9dc3712bf5a7b71c
>> Author:     Christoph Moench-Tegeder <cmt@FreeBSD.org>
>> AuthorDate: 2022-04-26 18:49:11 +0000
>> Commit:     Christoph Moench-Tegeder <cmt@FreeBSD.org>
>> CommitDate: 2022-04-26 18:49:11 +0000
>>
>>      www/firefox: fix build with sndio
>>      upstream sndio handling was fixed for non-OpenBSD systems:
>>      https://bugzilla.mozilla.org/show_bug.cgi?id=1351378
>>      so our own "fixing" actually broke build.
>>      PR:             263587
>>      Reported by:    Robert Cina, jkim@
>> ---
>>   Mk/bsd.gecko.mk | 5 +++++
>>   1 file changed, 5 insertions(+)
>>
>> diff --git a/Mk/bsd.gecko.mk b/Mk/bsd.gecko.mk
>> index eef9db747685..cee597e4e465 100644
>> --- a/Mk/bsd.gecko.mk
>> +++ b/Mk/bsd.gecko.mk
>> @@ -270,10 +270,15 @@ MOZ_OPTIONS+=    --disable-pulseaudio
>>   .    if ${PORT_OPTIONS:MSNDIO}
>>   BUILD_DEPENDS+=    ${LOCALBASE}/include/sndio.h:audio/sndio
>> +MOZ_OPTIONS+=    --enable-sndio
>> +.      if ${MOZILLA_VER:R:R} < 100
>>   post-patch-SNDIO-on:
>>       @${REINPLACE_CMD} -e 's|OpenBSD|${OPSYS}|g' \
>>           -e '/DISABLE_LIBSNDIO_DLOPEN/d' \
>>           ${MOZSRC}/media/libcubeb/src/moz.build
>> +.      endif
>> +.    else
>> +MOZ_OPTIONS+=    --disable-sndio
>>   .    endif
>>   .    if ${PORT_OPTIONS:MDEBUG}
>>
> 
> Unluckily this makes thunderbird fail:
> 
> checking whether cross compiling... no
> Traceback (most recent call last):
>    File 
> "/wrkdirs/usr/ports/mail/thunderbird/work/thunderbird-91.8.1/configure.py", 
> line 226, in <module>
>      sys.exit(main(sys.argv))
>    File 
> "/wrkdirs/usr/ports/mail/thunderbird/work/thunderbird-91.8.1/configure.py", 
> line 50, in main
>      sandbox.run(os.path.join(os.path.dirname(__file__), "moz.configure"))
>    File 
> "/wrkdirs/usr/ports/mail/thunderbird/work/thunderbird-91.8.1/python/mozbuild/mozbuild/configure/__init__.py", 
> line 554, in run
>      raise InvalidOptionError(msg)
> mozbuild.configure.options.InvalidOptionError: Unknown option: 
> --disable-sndio
> ===>  Script "configure" failed unexpectedly.
> 
> 
> I'm trying to fix it locally, but thought to report it right away.

I originally suggested something like this:

diff --git a/Mk/bsd.gecko.mk b/Mk/bsd.gecko.mk
index eef9db747685..450f1d998147 100644
--- a/Mk/bsd.gecko.mk
+++ b/Mk/bsd.gecko.mk
@@ -270,10 +270,18 @@ MOZ_OPTIONS+=     --disable-pulseaudio

  .    if ${PORT_OPTIONS:MSNDIO}
  BUILD_DEPENDS+=        ${LOCALBASE}/include/sndio.h:audio/sndio
+.      if ${MOZILLA_VER} < 100
  post-patch-SNDIO-on:
         @${REINPLACE_CMD} -e 's|OpenBSD|${OPSYS}|g' \
                 -e '/DISABLE_LIBSNDIO_DLOPEN/d' \
                 ${MOZSRC}/media/libcubeb/src/moz.build
+.      else
+MOZ_OPTIONS+=  --enable-sndio
+.      endif
+.    else
+.      if ${MOZILLA_VER} >= 100
+MOZ_OPTIONS+=  --disable-sndio
+.      endif
  .    endif

  .    if ${PORT_OPTIONS:MDEBUG}

But it was rejected because of "if ${MOZILLA_VER} < 100". :-(

Something like this should fix it.

diff --git a/Mk/bsd.gecko.mk b/Mk/bsd.gecko.mk
index cee597e4e465..af3e496a05c5 100644
--- a/Mk/bsd.gecko.mk
+++ b/Mk/bsd.gecko.mk
@@ -270,15 +270,18 @@ MOZ_OPTIONS+=     --disable-pulseaudio

  .    if ${PORT_OPTIONS:MSNDIO}
  BUILD_DEPENDS+=        ${LOCALBASE}/include/sndio.h:audio/sndio
-MOZ_OPTIONS+=  --enable-sndio
  .      if ${MOZILLA_VER:R:R} < 100
  post-patch-SNDIO-on:
         @${REINPLACE_CMD} -e 's|OpenBSD|${OPSYS}|g' \
                 -e '/DISABLE_LIBSNDIO_DLOPEN/d' \
                 ${MOZSRC}/media/libcubeb/src/moz.build
+.      else
+MOZ_OPTIONS+=  --enable-sndio
  .      endif
  .    else
+.      if ${MOZILLA_VER:R:R} >= 100
  MOZ_OPTIONS+=  --disable-sndio
+.      endif
  .    endif

  .    if ${PORT_OPTIONS:MDEBUG}

Jung-uk Kim