commit:     a1ea0e2cdcca239c482e788f80091e2322dbece6
Author:     Conrad Kostecki <conikost <AT> gentoo <DOT> org>
AuthorDate: Thu Nov 26 21:14:31 2020 +0000
Commit:     Conrad Kostecki <conikost <AT> gentoo <DOT> org>
CommitDate: Thu Nov 26 21:16:50 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a1ea0e2c

media-sound/teamspeak-client: add 'system-libcxx' use flag

There are users, where using systems libs of sys-libs/libcxx makes
media-sound/teamspeak-client segfaulting upon connecting to a server.

So, as for default, the ebuild will now install the shipped libs
instead. Since there are systems out there, where it does not segfault,
adding a choice selection via use flag.

Closes: https://bugs.gentoo.org/756148
Package-Manager: Portage-3.0.9, Repoman-3.0.2
Signed-off-by: Conrad Kostecki <conikost <AT> gentoo.org>

 media-sound/teamspeak-client/metadata.xml          |   3 +
 .../teamspeak-client-3.5.3-r1.ebuild               | 117 +++++++++++++++++++++
 .../teamspeak-client-3.5.6-r1.ebuild               | 117 +++++++++++++++++++++
 3 files changed, 237 insertions(+)

diff --git a/media-sound/teamspeak-client/metadata.xml 
b/media-sound/teamspeak-client/metadata.xml
index f16b483f34b..80b2e864755 100644
--- a/media-sound/teamspeak-client/metadata.xml
+++ b/media-sound/teamspeak-client/metadata.xml
@@ -12,4 +12,7 @@
                The client software connects to a TeamSpeak server of the 
user's choice,
                from which the user may join chat channels.
        </longdescription>
+       <use>
+               <flag name="system-libcxx">Use <pkg>sys-libs/libcxx</pkg> 
instead of shipped libs.</flag>
+       </use>
 </pkgmetadata>

diff --git a/media-sound/teamspeak-client/teamspeak-client-3.5.3-r1.ebuild 
b/media-sound/teamspeak-client/teamspeak-client-3.5.3-r1.ebuild
new file mode 100644
index 00000000000..7a9b41fc5fc
--- /dev/null
+++ b/media-sound/teamspeak-client/teamspeak-client-3.5.3-r1.ebuild
@@ -0,0 +1,117 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit desktop toolchain-funcs unpacker xdg-utils
+
+MY_PV="${PV/_/-}"
+
+DESCRIPTION="A client software for quality voice communication via the 
internet"
+HOMEPAGE="https://www.teamspeak.com/";
+SRC_URI="
+       amd64? ( 
https://files.teamspeak-services.com/releases/client/${PV}/TeamSpeak3-Client-linux_amd64-${MY_PV}.run
 )
+       x86? ( 
https://files.teamspeak-services.com/releases/client/${PV}/TeamSpeak3-Client-linux_x86-${MY_PV}.run
 )
+"
+
+KEYWORDS="-* amd64 x86"
+LICENSE="teamspeak3 || ( GPL-2 GPL-3 LGPL-3 )"
+SLOT="3"
+IUSE="+alsa pulseaudio system-libcxx"
+REQUIRED_USE="|| ( alsa pulseaudio )"
+
+BDEPEND=">=dev-util/patchelf-0.10"
+
+RDEPEND="
+       app-arch/snappy:0/1
+       dev-libs/openssl:0
+       dev-libs/quazip
+       dev-qt/qtcore:5
+       || (
+               dev-qt/qtgui:5[accessibility,dbus,X(-)]
+               dev-qt/qtgui:5[accessibility,dbus,xcb(-)]
+       )
+       dev-qt/qtnetwork:5
+       dev-qt/qtsql:5[sqlite]
+       dev-qt/qtsvg:5
+       dev-qt/qtwebchannel:5
+       dev-qt/qtwebengine:5[geolocation(+),widgets]
+       dev-qt/qtwebsockets:5
+       dev-qt/qtwidgets:5
+       net-libs/libsrtp:0
+       sys-libs/zlib:0/1
+       virtual/udev
+       alsa? ( media-libs/alsa-lib )
+       pulseaudio? ( media-sound/pulseaudio )
+       system-libcxx? ( sys-libs/libcxx[libcxxabi] )
+"
+
+RESTRICT="bindist mirror"
+
+S="${WORKDIR}"
+
+QA_PREBUILT="
+       opt/teamspeak3-client/libc++.so.1
+       opt/teamspeak3-client/libc++abi.so.1
+       opt/teamspeak3-client/error_report
+       opt/teamspeak3-client/package_inst
+       opt/teamspeak3-client/soundbackends/libalsa_linux_*.so
+       opt/teamspeak3-client/soundbackends/libpulseaudio_linux_*.so
+       opt/teamspeak3-client/ts3client
+       opt/teamspeak3-client/update
+"
+
+src_prepare() {
+       default
+
+       if ! use alsa; then
+               rm -f soundbackends/libalsa_linux_*.so || die
+       fi
+
+       if ! use pulseaudio ; then
+               rm -f soundbackends/libpulseaudio_linux_*.so || die
+       fi
+
+       mv ts3client_linux_* ts3client || die
+
+       # Fixes QA Notice: Unresolved soname dependencies.
+       # Since this is a binary only package, it must be patched.
+       local soname_files=( "error_report" "ts3client" )
+       for soname_file in ${soname_files[@]}; do
+               patchelf --replace-needed libquazip.so libquazip5.so.1 
"${soname_file}" || die
+       done
+
+       tc-export CXX
+}
+
+src_install() {
+       exeinto /opt/teamspeak3-client
+       doexe error_report package_inst ts3client update
+       newexe "${FILESDIR}"/ts3client-bin-r2 ts3client-bin
+       ! use system-libcxx && doexe libc++{,abi}.so.1
+
+       exeinto /opt/teamspeak3-client/soundbackends
+       doexe soundbackends/*.so
+
+       insinto /opt/teamspeak3-client
+       doins -r gfx html resources sound styles translations
+
+       dosym ../../usr/$(get_libdir)/qt5/libexec/QtWebEngineProcess 
/opt/teamspeak3-client/QtWebEngineProcess
+
+       dodir /opt/bin
+       dosym ../teamspeak3-client/ts3client-bin /opt/bin/ts3client
+
+       make_desktop_entry /opt/bin/ts3client "Teamspeak 3 Client" 
/opt/teamspeak3-client/styles/default/logo-128x128.png 
"Audio;AudioVideo;Network"
+
+       einstalldocs
+}
+
+pkg_postinst() {
+       xdg_desktop_database_update
+       xdg_mimeinfo_database_update
+}
+
+pkg_postrm() {
+       xdg_desktop_database_update
+       xdg_mimeinfo_database_update
+}

diff --git a/media-sound/teamspeak-client/teamspeak-client-3.5.6-r1.ebuild 
b/media-sound/teamspeak-client/teamspeak-client-3.5.6-r1.ebuild
new file mode 100644
index 00000000000..f85207cfb1a
--- /dev/null
+++ b/media-sound/teamspeak-client/teamspeak-client-3.5.6-r1.ebuild
@@ -0,0 +1,117 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit desktop toolchain-funcs unpacker xdg-utils
+
+MY_PV="${PV/_/-}"
+
+DESCRIPTION="A client software for quality voice communication via the 
internet"
+HOMEPAGE="https://www.teamspeak.com/";
+SRC_URI="
+       amd64? ( 
https://files.teamspeak-services.com/releases/client/${PV}/TeamSpeak3-Client-linux_amd64-${MY_PV}.run
 )
+       x86? ( 
https://files.teamspeak-services.com/releases/client/${PV}/TeamSpeak3-Client-linux_x86-${MY_PV}.run
 )
+"
+
+KEYWORDS="-* ~amd64 ~x86"
+LICENSE="teamspeak3 || ( GPL-2 GPL-3 LGPL-3 )"
+SLOT="3"
+IUSE="+alsa pulseaudio system-libcxx"
+REQUIRED_USE="|| ( alsa pulseaudio )"
+
+BDEPEND=">=dev-util/patchelf-0.10"
+
+RDEPEND="
+       app-arch/snappy:0/1
+       dev-libs/openssl:0
+       dev-libs/quazip
+       dev-qt/qtcore:5
+       || (
+               dev-qt/qtgui:5[accessibility,dbus,X(-)]
+               dev-qt/qtgui:5[accessibility,dbus,xcb(-)]
+       )
+       dev-qt/qtnetwork:5
+       dev-qt/qtsql:5[sqlite]
+       dev-qt/qtsvg:5
+       dev-qt/qtwebchannel:5
+       dev-qt/qtwebengine:5[geolocation(+),widgets]
+       dev-qt/qtwebsockets:5
+       dev-qt/qtwidgets:5
+       net-libs/libsrtp:0
+       sys-libs/zlib:0/1
+       virtual/udev
+       alsa? ( media-libs/alsa-lib )
+       pulseaudio? ( media-sound/pulseaudio )
+       system-libcxx? ( sys-libs/libcxx[libcxxabi] )
+"
+
+RESTRICT="bindist mirror"
+
+S="${WORKDIR}"
+
+QA_PREBUILT="
+       opt/teamspeak3-client/libc++.so.1
+       opt/teamspeak3-client/libc++abi.so.1
+       opt/teamspeak3-client/error_report
+       opt/teamspeak3-client/package_inst
+       opt/teamspeak3-client/soundbackends/libalsa_linux_*.so
+       opt/teamspeak3-client/soundbackends/libpulseaudio_linux_*.so
+       opt/teamspeak3-client/ts3client
+       opt/teamspeak3-client/update
+"
+
+src_prepare() {
+       default
+
+       if ! use alsa; then
+               rm -f soundbackends/libalsa_linux_*.so || die
+       fi
+
+       if ! use pulseaudio ; then
+               rm -f soundbackends/libpulseaudio_linux_*.so || die
+       fi
+
+       mv ts3client_linux_* ts3client || die
+
+       # Fixes QA Notice: Unresolved soname dependencies.
+       # Since this is a binary only package, it must be patched.
+       local soname_files=( "error_report" "ts3client" )
+       for soname_file in ${soname_files[@]}; do
+               patchelf --replace-needed libquazip.so libquazip5.so.1 
"${soname_file}" || die
+       done
+
+       tc-export CXX
+}
+
+src_install() {
+       exeinto /opt/teamspeak3-client
+       doexe error_report package_inst ts3client update
+       newexe "${FILESDIR}"/ts3client-bin-r2 ts3client-bin
+       ! use system-libcxx && doexe libc++{,abi}.so.1
+
+       exeinto /opt/teamspeak3-client/soundbackends
+       doexe soundbackends/*.so
+
+       insinto /opt/teamspeak3-client
+       doins -r gfx html resources sound styles translations
+
+       dosym ../../usr/$(get_libdir)/qt5/libexec/QtWebEngineProcess 
/opt/teamspeak3-client/QtWebEngineProcess
+
+       dodir /opt/bin
+       dosym ../teamspeak3-client/ts3client-bin /opt/bin/ts3client
+
+       make_desktop_entry /opt/bin/ts3client "Teamspeak 3 Client" 
/opt/teamspeak3-client/styles/default/logo-128x128.png 
"Audio;AudioVideo;Network"
+
+       einstalldocs
+}
+
+pkg_postinst() {
+       xdg_desktop_database_update
+       xdg_mimeinfo_database_update
+}
+
+pkg_postrm() {
+       xdg_desktop_database_update
+       xdg_mimeinfo_database_update
+}

Reply via email to