Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Aug 2023 18:56:00 GMT
From:      Vladimir Druzenko <vvd@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 08c1696fb18e - main - audio/mumble: switch from USE_GITHUB to pre-rolled release and fix build on ARCHes other than x86
Message-ID:  <202308281856.37SIu0ZO011000@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by vvd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=08c1696fb18eac0edbbdc884b5c346e9699c27cc

commit 08c1696fb18eac0edbbdc884b5c346e9699c27cc
Author:     Vladimir Druzenko <vvd@FreeBSD.org>
AuthorDate: 2023-08-28 18:41:13 +0000
Commit:     Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2023-08-28 18:41:13 +0000

    audio/mumble: switch from USE_GITHUB to pre-rolled release and fix build on ARCHes other than x86
    
    1. Switch from USE_GITHUB to pre-rolled release.
    2. Use CMake to install the files instead of using custom do-install target.
    3. Unbundle devel/microsoft-gsl.
    4. Fix build and keep possibility to build 32bit overlay on other ARCHes than x86.
    5. "Pet portclippy".
    
    Ideas, patches and testing: fuz, jhale, pkubaj.
    
    PR:                     273203 272881
    Approved by:            tcberner
    Differential Revision:  https://reviews.freebsd.org/D41604
    MFH:                    2023Q3
---
 audio/mumble/Makefile                              | 118 ++++++++-------------
 audio/mumble/distinfo                              |  20 +---
 ...auxiliary__files_run__scripts_mumble-overlay.in |  32 ++++++
 .../mumble/files/patch-overlay__gl_CMakeLists.txt  |  16 +++
 audio/mumble/pkg-plist                             |  19 ++--
 5 files changed, 107 insertions(+), 98 deletions(-)

diff --git a/audio/mumble/Makefile b/audio/mumble/Makefile
index e6692e1e70e4..548a820ab797 100644
--- a/audio/mumble/Makefile
+++ b/audio/mumble/Makefile
@@ -1,7 +1,12 @@
 PORTNAME=	mumble
 DISTVERSION=	1.5.517
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	audio
+MASTER_SITES=	https://github.com/${PORTNAME}-voip/${PORTNAME}/releases/download/v${DISTVERSION}/
+
+PATCH_SITES=	https://github.com/${PORTNAME}-voip/${PORTNAME}/commit/
+PATCHFILES=	952dfaf4983097d7b9c9b5d9f5b01ffeb6d3463d.patch:-p1 # Fix detection of unbundled GSL
+#PATCHFILES+=	589bfbfd634925b47b3a812745bc5a423b7f4285.patch:-p1 # Install 32-bit lib on FreeBSD
 
 MAINTAINER=	vvd@FreeBSD.org
 COMMENT=	Voice chat software primarily intended for use while gaming
@@ -11,6 +16,7 @@ LICENSE=	BSD3CLAUSE
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
 BUILD_DEPENDS=	boost-libs>0:devel/boost-libs \
+		microsoft-gsl>=3.0.0:devel/microsoft-gsl \
 		${LOCALBASE}/include/nlohmann/json.hpp:devel/nlohmann-json
 LIB_DEPENDS=	libsndfile.so:audio/libsndfile \
 		libopus.so:audio/opus \
@@ -22,119 +28,85 @@ LIB_DEPENDS=	libsndfile.so:audio/libsndfile \
 		libexpat.so:textproc/expat2
 
 USES=		cmake compiler:c++14-lang cpe desktop-file-utils gl \
-		pkgconfig python:build qmake qt:5 ssl xorg
-
-PATCHVERSION=	${DISTVERSION}
-MINORVERSION=	${DISTVERSION:R}
-MAJORVERSION=	${DISTVERSION:R:R}
-
-PLIST_SUB+=	PATCHVERSION="${PATCHVERSION}"
-PLIST_SUB+=	MINORVERSION="${MINORVERSION}"
-PLIST_SUB+=	MAJORVERSION="${MAJORVERSION}"
-
+		pkgconfig python:build qt:5 ssl xorg
 USE_CXXSTD=	c++14
-USE_GITHUB=	yes
-GH_TUPLE=	mumble-voip:mumble:v${DISTVERSION} \
-		Krzmbrzl:FindPythonInterpreter:bb4d3ea:mumble_FindPythonInterpreter/3rdparty/FindPythonInterpreter \
-		microsoft:GSL:0f6dbc9:mumble_gsl/3rdparty/gsl \
-		mumble-voip:mach_override:919148f:mumble_mach_override/3rdparty/mach-override-src \
-		mumble-voip:minhook:5e338f8:mumble_minhook/3rdparty/minhook \
-		mumble-voip:speexdsp:6e4634f:mumble_speexdsp/3rdparty/speexdsp \
-		wolfpld:tracy:1a4f369:mumble_tracy/3rdparty/tracy
-
-USE_QT=		buildtools:build concurrent core gui l10n linguist:build network \
-		sql sql-sqlite3:run svg widgets xml
+USE_GL=		gl
 USE_LDCONFIG=	yes
-
+USE_QT=		buildtools:build concurrent core gui l10n linguist:build network \
+		qmake:build sql sql-sqlite3:run svg widgets xml
 USE_XORG=	x11 xext xi
-USE_GL=		gl
 
-CMAKE_ON=	bundled-gsl client oss overlay overlay-xcompile plugins \
-		translations xinput2
-CMAKE_OFF=	bundled-json bundle-qt-translations bundled-speex crash-report \
-		g15 server tracy update
+CMAKE_ON=	client oss overlay plugins translations xinput2
+CMAKE_OFF=	bundled-gsl bundled-json bundle-qt-translations bundled-speex \
+		crash-report g15 server tracy update
+
+CONFIGURE_ENV=	MUMBLE_PYTHON=${PYTHON_CMD}
+
+PLIST_SUB=	MUMBLE_VERSION="${DISTVERSION:R}"
 
 OPTIONS_DEFINE=		ALSA AVAHI DBUS JACK LTO PIPEWIRE PORTAUDIO PULSEAUDIO RNNOISE
+OPTIONS_DEFINE_amd64=	OVERLAY_32BIT
 OPTIONS_DEFAULT=	DBUS
+OPTIONS_DEFAULT_amd64=	OVERLAY_32BIT
 OPTIONS_RADIO=		SPEECH
 OPTIONS_RADIO_SPEECH=	QTSPEECH SPEECHD
 
+OVERLAY_32BIT_DESC=	Build and install 32bit overlay module
 QTSPEECH_DESC=		Use Qt's text-to-speech system
 RNNOISE_DESC=		Use RNNoise for machine learning noise reduction
 SPEECH_DESC=		Support text-to-speech
 SPEECHD_DESC=		Support for Speech Dispatcher
 
-ALSA_CMAKE_BOOL=	alsa
 ALSA_LIB_DEPENDS=	libasound.so:audio/alsa-lib
+ALSA_CMAKE_BOOL=	alsa
 
-AVAHI_CMAKE_BOOL=	zeroconf
 AVAHI_LIB_DEPENDS=	libdns_sd.so:net/avahi-libdns
+AVAHI_CMAKE_BOOL=	zeroconf
 
-DBUS_USES=		qt:5
 DBUS_USE=		QT=dbus
 DBUS_CMAKE_BOOL=	dbus
 
-JACK_CMAKE_BOOL=	jackaudio
 JACK_LIB_DEPENDS=	libjack.so:audio/jack
+JACK_CMAKE_BOOL=	jackaudio
 
 LTO_BROKEN=		"QWidget: Cannot create a QWidget without QApplication": \
 			https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=273078
 LTO_CMAKE_BOOL=		lto
 
-PIPEWIRE_CMAKE_BOOL=	pipewire
+OVERLAY_32BIT_CMAKE_BOOL=	overlay-xcompile
+
 PIPEWIRE_LIB_DEPENDS=	libpipewire-0.3.so:multimedia/pipewire
+PIPEWIRE_CMAKE_BOOL=	pipewire
 
-PORTAUDIO_CMAKE_BOOL=	portaudio
 PORTAUDIO_LIB_DEPENDS=	libportaudio.so:audio/portaudio
+PORTAUDIO_CMAKE_BOOL=	portaudio
 
-PULSEAUDIO_CMAKE_BOOL=	pulseaudio
 PULSEAUDIO_LIB_DEPENDS=	libpulse.so:audio/pulseaudio
+PULSEAUDIO_CMAKE_BOOL=	pulseaudio
 
-QTSPEECH_USES=		qt:5
 QTSPEECH_USE=		QT=speech
 QTSPEECH_CMAKE_BOOL=	qtspeech
 
+RNNOISE_LIB_DEPENDS=	librnnoise.so:audio/rnnoise
 RNNOISE_CMAKE_BOOL=	rnnoise
 RNNOISE_CMAKE_ON=	-Dbundled-rnnoise:BOOL=off
-RNNOISE_LIB_DEPENDS=	librnnoise.so:audio/rnnoise
 
+SPEECHD_LIB_DEPENDS=	libspeechd.so:accessibility/speech-dispatcher
 SPEECHD_USES=		gettext-runtime gnome
 SPEECHD_USE=		GNOME=glib20
 SPEECHD_CMAKE_BOOL=	speechd
-SPEECHD_LIB_DEPENDS=	libspeechd.so:accessibility/speech-dispatcher
 
-CONFIGURE_ENV+=		MUMBLE_PYTHON=${PYTHON_CMD}
-
-.include <bsd.port.pre.mk>
-
-do-install:
-	${INSTALL_PROGRAM} ${WRKDIR}/.build/mumble ${STAGEDIR}${PREFIX}/bin
-	${INSTALL_LIB} ${WRKDIR}/.build/libmumbleoverlay.x86_64.so.${MINORVERSION}.0 \
-		${STAGEDIR}${PREFIX}/lib/libmumbleoverlay.x86_64.so.${PATCHVERSION}
-	${RLN} ${STAGEDIR}${PREFIX}/lib/libmumbleoverlay.x86_64.so.${PATCHVERSION} \
-		${STAGEDIR}${PREFIX}/lib/libmumbleoverlay.x86_64.so
-	${RLN} ${STAGEDIR}${PREFIX}/lib/libmumbleoverlay.x86_64.so.${PATCHVERSION} \
-		${STAGEDIR}${PREFIX}/lib/libmumbleoverlay.x86_64.so.${MAJORVERSION}
-	${RLN} ${STAGEDIR}${PREFIX}/lib/libmumbleoverlay.x86_64.so.${PATCHVERSION} \
-		${STAGEDIR}${PREFIX}/lib/libmumbleoverlay.x86_64.so.${MINORVERSION}
-	${INSTALL_LIB} ${WRKDIR}/.build/libmumbleoverlay.x86.so.${MINORVERSION}.0 \
-		${STAGEDIR}${PREFIX}/lib/libmumbleoverlay.x86.so.${PATCHVERSION}
-	${RLN} ${STAGEDIR}${PREFIX}/lib/libmumbleoverlay.x86.so.${PATCHVERSION} \
-		${STAGEDIR}${PREFIX}/lib/libmumbleoverlay.x86.so
-	${RLN} ${STAGEDIR}${PREFIX}/lib/libmumbleoverlay.x86.so.${PATCHVERSION} \
-		${STAGEDIR}${PREFIX}/lib/libmumbleoverlay.x86.so.${MAJORVERSION}
-	${RLN} ${STAGEDIR}${PREFIX}/lib/libmumbleoverlay.x86.so.${PATCHVERSION} \
-		${STAGEDIR}${PREFIX}/lib/libmumbleoverlay.x86.so.${MINORVERSION}
-	${INSTALL_DATA} ${WRKDIR}/.build/auxiliary_files/info.mumble.Mumble.desktop \
-			${STAGEDIR}${PREFIX}/share/applications/mumble.desktop
-	${INSTALL_DATA} ${WRKSRC}/icons/mumble.xpm ${STAGEDIR}${PREFIX}/share/pixmaps
-	${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/256x256/apps \
-		${STAGEDIR}${PREFIX}/share/icons/hicolor/scalable/apps
-	${INSTALL_DATA} ${WRKSRC}/icons/mumble.svg \
-			${STAGEDIR}${PREFIX}/share/icons/hicolor/scalable/apps
-	${INSTALL_DATA} ${WRKSRC}/icons/mumble_256x256.png \
-			${STAGEDIR}${PREFIX}/share/icons/hicolor/256x256/apps/mumble.png
-	${INSTALL_MAN} ${WRKSRC}/auxiliary_files/man_files/mumble.1 \
-			${STAGEDIR}${MANPREFIX}/share/man/man1/mumble.1
-
-.include <bsd.port.post.mk>
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MOVERLAY_32BIT}
+. if ${ARCH} == amd64
+PLIST_SUB+=	OVERLAY_32BIT=""
+PLIST_SUB+=	OVERLAY_32BIT_SUFFIX=.x86
+PLIST_SUB+=	OVERLAY_NATIVE_SUFFIX=.x86_64
+. endif
+.else
+PLIST_SUB+=	OVERLAY_32BIT="@comment "
+PLIST_SUB+=	OVERLAY_NATIVE_SUFFIX=""
+.endif
+
+.include <bsd.port.mk>
diff --git a/audio/mumble/distinfo b/audio/mumble/distinfo
index 38986e9722ca..b116fe3219f5 100644
--- a/audio/mumble/distinfo
+++ b/audio/mumble/distinfo
@@ -1,15 +1,5 @@
-TIMESTAMP = 1690555998
-SHA256 (mumble-voip-mumble-1.5.517-v1.5.517_GH0.tar.gz) = f7ea7c8f5267fa8f744a7622bb96ad373ee40c6458b9ce01d81d071898f6a6da
-SIZE (mumble-voip-mumble-1.5.517-v1.5.517_GH0.tar.gz) = 6120684
-SHA256 (Krzmbrzl-FindPythonInterpreter-bb4d3ea_GH0.tar.gz) = 8439bfe7daeb478d8e8aa09b3c111c3dc360064144d181fc5dcfef950e8eaa05
-SIZE (Krzmbrzl-FindPythonInterpreter-bb4d3ea_GH0.tar.gz) = 4817
-SHA256 (microsoft-GSL-0f6dbc9_GH0.tar.gz) = 63d53ed611862f90517048db57617d8264200810a1e9fbb7ff9a524747f8dab3
-SIZE (microsoft-GSL-0f6dbc9_GH0.tar.gz) = 78207
-SHA256 (mumble-voip-mach_override-919148f_GH0.tar.gz) = 81b2e705a7cce1e3a9eb440cb2bca2f14fd83db162123f44faf17f0bf45da1bd
-SIZE (mumble-voip-mach_override-919148f_GH0.tar.gz) = 66278
-SHA256 (mumble-voip-minhook-5e338f8_GH0.tar.gz) = bc675c5b9def1fcef4b58c62e6d69eaa6e76d2fed89ace681059a7648e808033
-SIZE (mumble-voip-minhook-5e338f8_GH0.tar.gz) = 27651
-SHA256 (mumble-voip-speexdsp-6e4634f_GH0.tar.gz) = f596d946feeffc66ad2f8a5886945019d79a1a45f3e9c1a1191b4faabb0e84ea
-SIZE (mumble-voip-speexdsp-6e4634f_GH0.tar.gz) = 895204
-SHA256 (wolfpld-tracy-1a4f369_GH0.tar.gz) = b1fbb7b8ec38c58addd97f9cd6d17e879ecab9bfc184751297ce2162a6b8d008
-SIZE (wolfpld-tracy-1a4f369_GH0.tar.gz) = 4633541
+TIMESTAMP = 1692992913
+SHA256 (mumble-1.5.517.tar.gz) = 8efd06a0f47ebfe27735f7575ba0becfb21d0f400a5082202dbbd998ab8351de
+SIZE (mumble-1.5.517.tar.gz) = 12091432
+SHA256 (952dfaf4983097d7b9c9b5d9f5b01ffeb6d3463d.patch) = 3316fd3cab0d797d78fa34df358892699db0bde6c45c61a87f095e514c2e5575
+SIZE (952dfaf4983097d7b9c9b5d9f5b01ffeb6d3463d.patch) = 1138
diff --git a/audio/mumble/files/patch-auxiliary__files_run__scripts_mumble-overlay.in b/audio/mumble/files/patch-auxiliary__files_run__scripts_mumble-overlay.in
new file mode 100644
index 000000000000..408ceb723a9d
--- /dev/null
+++ b/audio/mumble/files/patch-auxiliary__files_run__scripts_mumble-overlay.in
@@ -0,0 +1,32 @@
+Remove bashism that doesn't seem to serve a purpose.
+${var/old_str/new_str} in bash replaces the first match of "old_str"
+with "new_str" within ${var} [1]. There doesn't seem to be a point in
+removing the first match of the escape character within ${var} only to
+compare it with itself, unless it was a workaround for some ancient
+bash bug, as this test was committed 15 years ago [2]. According to [3],
+the escaping backslash is discarded in pattern matching. Works in bash
+with and without this test, but sh(1) has no concept of this syntax.
+
+[1] https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html
+[2] https://github.com/mumble-voip/mumble/commit/048343f81e4f6b8e0514380e88fef55a3781563f
+[3] https://www.gnu.org/software/bash/manual/html_node/Pattern-Matching.html
+
+--- auxiliary_files/run_scripts/mumble-overlay.in.orig	2023-08-15 16:48:56 UTC
++++ auxiliary_files/run_scripts/mumble-overlay.in
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ #
+ # Copyright 2005-@MUMBLE_BUILD_YEAR@ The Mumble Developers. All rights reserved.
+ # Use of this source code is governed by a BSD-style license
+@@ -27,9 +27,7 @@
+ fi
+ 
+ binary="$1"
+-if [ "${binary/\/}" = "$binary" ]; then
+-  binary=$(which "$binary")
+-fi
++binary=$(which "$binary")
+ if [ ! -x "$binary" ]; then
+   echo "$1 not found" >&2
+   exit 1
diff --git a/audio/mumble/files/patch-overlay__gl_CMakeLists.txt b/audio/mumble/files/patch-overlay__gl_CMakeLists.txt
new file mode 100644
index 000000000000..a6fa6fafdf06
--- /dev/null
+++ b/audio/mumble/files/patch-overlay__gl_CMakeLists.txt
@@ -0,0 +1,16 @@
+Install the 32-bit overlay library on FreeBSD-amd64
+
+--- overlay_gl/CMakeLists.txt.orig
++++ overlay_gl/CMakeLists.txt
+@@ -96,6 +96,11 @@ if(NOT APPLE)
+ 					"-ldl"
+ 					"-lrt"
+ 			)
++		endif()
++	endif()
++
++	if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
++		if(TARGET overlay_gl_x86)
+ 			# install 32bit overlay library
+ 			install(TARGETS overlay_gl_x86 LIBRARY DESTINATION "${MUMBLE_INSTALL_LIBDIR}")
+ 		endif()
diff --git a/audio/mumble/pkg-plist b/audio/mumble/pkg-plist
index 752646ef3d9a..ce360f1e5aef 100644
--- a/audio/mumble/pkg-plist
+++ b/audio/mumble/pkg-plist
@@ -1,14 +1,13 @@
 bin/mumble
-lib/libmumbleoverlay.x86_64.so
-lib/libmumbleoverlay.x86_64.so.%%MAJORVERSION%%
-lib/libmumbleoverlay.x86_64.so.%%MINORVERSION%%
-lib/libmumbleoverlay.x86_64.so.%%PATCHVERSION%%
-lib/libmumbleoverlay.x86.so
-lib/libmumbleoverlay.x86.so.%%MAJORVERSION%%
-lib/libmumbleoverlay.x86.so.%%MINORVERSION%%
-lib/libmumbleoverlay.x86.so.%%PATCHVERSION%%
-share/applications/mumble.desktop
+bin/mumble-overlay
+%%OVERLAY_32BIT%%lib/mumble/libmumbleoverlay%%OVERLAY_32BIT_SUFFIX%%.so
+%%OVERLAY_32BIT%%lib/mumble/libmumbleoverlay%%OVERLAY_32BIT_SUFFIX%%.so.%%MUMBLE_VERSION%%.0
+lib/mumble/libmumbleoverlay%%OVERLAY_NATIVE_SUFFIX%%.so
+lib/mumble/libmumbleoverlay%%OVERLAY_NATIVE_SUFFIX%%.so.%%MUMBLE_VERSION%%.0
+lib/mumble/plugins/liblink.so
+share/applications/info.mumble.Mumble.desktop
 share/icons/hicolor/256x256/apps/mumble.png
 share/icons/hicolor/scalable/apps/mumble.svg
 share/man/man1/mumble.1.gz
-share/pixmaps/mumble.xpm
+share/man/man1/mumble-overlay.1.gz
+share/metainfo/info.mumble.Mumble.appdata.xml



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202308281856.37SIu0ZO011000>