summaryrefslogtreecommitdiff
path: root/packages/voip/mumble/mumble-scm.exheres-0
diff options
context:
space:
mode:
Diffstat (limited to 'packages/voip/mumble/mumble-scm.exheres-0')
-rw-r--r--packages/voip/mumble/mumble-scm.exheres-0205
1 files changed, 205 insertions, 0 deletions
diff --git a/packages/voip/mumble/mumble-scm.exheres-0 b/packages/voip/mumble/mumble-scm.exheres-0
new file mode 100644
index 0000000..8343043
--- /dev/null
+++ b/packages/voip/mumble/mumble-scm.exheres-0
@@ -0,0 +1,205 @@
+# Copyright 2010-2011 Johannes Nixdorf <mixi@user-helfen-usern.de>
+# Copyright 2012-2013 Lasse Brun <bruners@gmail.com>
+# Copyright 2013-2018 Timo Gurr <tgurr@exherbo.org>
+# Distributed under the terms of the GNU General Public License v2
+# Based in part upon 'mumble-1.2.2.ebuild' from Gentoo, which is:
+# Copyright 1999-2010 Gentoo Foundation
+
+
+SCM_REPOSITORY="https://github.com/mumble-voip/mumble.git"
+
+SCM_EXTERNAL_REFS="
+ 3rdparty/speex-src:speex
+ 3rdparty/celt-0.11.0-src:celt011
+ 3rdparty/opus-src:opus
+ 3rdparty/sbcelt-src:sbcelt
+ 3rdparty/minhook-src:minhook
+ 3rdparty/mach-override-src:machoverride
+ 3rdparty/speexdsp-src:speexdsp
+ themes/Mumble:mumblethemes
+ 3rdparty/celt-0.7.0-src:celt07
+"
+
+SCM_sbcelt_EXTERNAL_REFS="
+ celt-0.7.0:celt07sbcelt
+"
+
+SCM_SECONDARY_REPOSITORIES="
+ speex
+ celt07
+ celt011
+ opus
+ sbcelt
+ minhook
+ machoverride
+ speexdsp
+ mumblethemes
+ celt07sbcelt
+"
+
+SCM_speex_REPOSITORY="https://github.com/mumble-voip/speex.git"
+SCM_celt07_REPOSITORY="https://github.com/mumble-voip/celt-0.7.0.git"
+SCM_celt011_REPOSITORY="https://github.com/mumble-voip/celt-0.11.0.git"
+SCM_opus_REPOSITORY="https://github.com/mumble-voip/opus.git"
+SCM_sbcelt_REPOSITORY="https://github.com/mumble-voip/sbcelt.git"
+SCM_minhook_REPOSITORY="https://github.com/mumble-voip/minhook.git"
+SCM_machoverride_REPOSITORY="https://github.com/mumble-voip/mach_override.git"
+SCM_speexdsp_REPOSITORY="https://github.com/mumble-voip/speexdsp.git"
+SCM_mumblethemes_REPOSITORY="https://github.com/mumble-voip/mumble-theme.git"
+SCM_celt07sbcelt_REPOSITORY="https://git.xiph.org/celt.git/"
+
+require scm-git \
+ qmake [ slot=5 ] \
+ freedesktop-desktop \
+ gtk-icon-cache \
+ option-renames [ renames=[ 'speechd tts' ] ]
+
+SUMMARY="Mumble is an open source, low-latency, high quality voice chat software"
+DESCRIPTION="
+Mumble is a voice chat application for groups. While it can be used for any kind of
+activity, it is primarily intended for gaming. It can be compared to programs like Ventrilo or
+TeamSpeak. People tend to simplify things, so when they talk about Mumble they either talk about
+\"Mumble\" the client application or about \"Mumble & Murmur\" the whole voice chat application suite.
+"
+HOMEPAGE+=" https://wiki.${PN}.info/wiki/Main_Page"
+DOWNLOADS=""
+
+LICENCES="BSD-3 MIT"
+SLOT="0"
+PLATFORMS="~amd64 ~x86"
+MYOPTIONS="
+ alsa
+ avahi
+ dbus
+ oss
+ pulseaudio
+ tts [[ description = [ Support for text to speech ] ]]
+ ( providers: libressl openssl ) [[ number-selected = exactly-one ]]
+"
+
+DEPENDENCIES="
+ build:
+ virtual/pkg-config
+ x11-libs/qttools:5 [[ note = [ Qt5LinguistTools ] ]]
+ x11-proto/xorgproto
+ build+run:
+ dev-libs/boost
+ dev-libs/protobuf:=
+ media-libs/libsndfile
+ media-libs/opus[>=1.0.0]
+ media-libs/speex[>=1.2_rc1]
+ media-libs/speexdsp[>=1.2_rc1]
+ x11-libs/libX11
+ x11-libs/libXi
+ x11-libs/qtbase:5[gui][sql][sqlite]
+ x11-libs/qtsvg:5
+ alsa? ( sys-sound/alsa-lib )
+ avahi? ( net-dns/avahi[dns_sd] )
+ pulseaudio? ( media-sound/pulseaudio )
+ tts? ( app-speech/speechd )
+ providers:libressl? ( dev-libs/libressl:= )
+ providers:openssl? ( dev-libs/openssl )
+ !media-sound/mumble [[
+ description = [ media-sound/mumble was moved to ::desktop voip/mumble ]
+ resolution = uninstall-blocked-before
+ ]]
+"
+
+DEFAULT_SRC_PREPARE_PATCHES=(
+ "${FILES}"/gcc.patch
+ "${FILES}"/tls12_strong_ciphers.patch
+ "${FILES}"/higher_opus_complexity.patch
+ "${FILES}"/allow_higher_bitrate_and_frame_size.patch
+)
+
+
+
+src_prepare() {
+ default
+
+ # TODO: report upstream
+ edo sed \
+ -e "s:pkg-config:${PKG_CONFIG}:g" \
+ -i main.pro \
+ -i qmake/pkgconfig.pri \
+ -i src/${PN}.pri \
+ -i src/${PN}/${PN}.pro
+
+ # set version
+ edo sed \
+ -e "s:Compiled by User:${PV}:g" \
+ -i src/Version.h
+
+# edo rmdir ${WORK}/3rdparty/celt-0.{7,11}.0-src
+# edo ln -s ${WORKBASE}/celt-0.7.0-${CELT7_REV} ${WORK}/3rdparty/celt-0.7.0-src
+# edo ln -s ${WORKBASE}/celt-0.11.0-${CELT11_REV} ${WORK}/3rdparty/celt-0.11.0-src
+
+# edo rmdir ${WORK}/themes/Mumble
+# edo ln -s ${WORKBASE}/mumble-theme-${MUMBLETHEME_REV} ${WORK}/themes/Mumble
+}
+
+src_configure() {
+ config=(
+ release # release build
+ bundled-celt # bundled celt
+ no-bundled-opus # bundled opus
+ no-bundled-speex # bundled speex
+ no-embed-qt-translations # Qt translations embedding
+ no-g15 # Logitech g15 keyboard support
+ no-server # server part (voip/murmur)
+ no-update # new versions check
+ )
+ option alsa || config+=( no-alsa )
+ option avahi || config+=( no-bonjour )
+ option dbus || config+=( no-dbus )
+ option oss || config+=( no-oss )
+ option pulseaudio || config+=( no-pulseaudio )
+ option tts || config+=( no-speechd )
+
+ eqmake main.pro -recursive \
+ CONFIG+="${config[*]}" \
+ DEFINES+="PLUGIN_PATH=/usr/$(exhost --target)/lib/mumble"
+}
+
+src_install() {
+ local host=$(exhost --target)
+
+ dobin release/${PN}
+ dobin scripts/${PN}-overlay
+
+ exeinto /usr/${host}/lib/${PN}
+ doexe release/libmumble.so.$(ever range 1-3)
+ dosym libmumble.so.$(ever range 1-3) /usr/${host}/lib/${PN}/libmumble.so
+ dosym libmumble.so.$(ever range 1-3) /usr/${host}/lib/${PN}/libmumble.so.$(ever range 1)
+ dosym libmumble.so.$(ever range 1-3) /usr/${host}/lib/${PN}/libmumble.so.$(ever range 1-2)
+ doexe release/plugins/lib*.so*
+ doexe release/libcelt0.so.0.{7,11}.0
+
+ insinto /usr/share/applications
+ doins scripts/${PN}.desktop
+
+ insinto /usr/share/icons/hicolor/scalable/apps
+ doins icons/${PN}.svg
+
+ insinto /usr/share/kde4/services
+ doins scripts/${PN}.protocol
+
+ doman man/${PN}.1
+ doman man/${PN}-overlay.1
+
+ emagicdocs
+}
+
+pkg_postinst() {
+ freedesktop-desktop_pkg_postinst
+ gtk-icon-cache_pkg_postinst
+
+ elog "Mumble supports reading the kernel input devices, but may fall back to using the less optimal xinput2"
+ elog "This can be solved with a simple udev rule: SUBSYSTEM==\"input\", GROUP=\"input\" MODE=\"660\""
+}
+
+pkg_postrm() {
+ freedesktop-desktop_pkg_postrm
+ gtk-icon-cache_pkg_postrm
+}
+