commit:     8ed09d7c40c3ac74314039fc9fd90b4805b140cd
Author:     Jan Seeger <jan.seeger <AT> thenybble <DOT> de>
AuthorDate: Wed Aug  5 13:44:04 2020 +0000
Commit:     Daniel Pielmeier <billie <AT> gentoo <DOT> org>
CommitDate: Thu Aug  6 15:10:02 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8ed09d7c

app/admin-conky-1.10.8-r10: Patched crash on virtual Pulseaudio sinks

Using upstream commits
https://github.com/brndnmtthws/conky/commit/2a7226d89331f7d5d0abf0b9aff6d75435dd3a2d
 and
https://github.com/brndnmtthws/conky/commit/ddf8a0f58f3110e31ec4c44ecff838d2b231f6f3.
 Added missing
braces for multi-line macro, added version bumped ebuild.

Signed-off-by: Jan Seeger <jan.seeger <AT> thenybble.de>
Signed-off-by: Daniel Pielmeier <billie <AT> gentoo.org>

 app-admin/conky/conky-1.10.8-r10.ebuild            | 186 +++++++++++++++++++++
 .../conky/files/conky-1.10.8-virtual-sinks.patch   |  49 ++++++
 2 files changed, 235 insertions(+)

diff --git a/app-admin/conky/conky-1.10.8-r10.ebuild 
b/app-admin/conky/conky-1.10.8-r10.ebuild
new file mode 100644
index 00000000000..d84975354f0
--- /dev/null
+++ b/app-admin/conky/conky-1.10.8-r10.ebuild
@@ -0,0 +1,186 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake linux-info readme.gentoo-r1
+
+DESCRIPTION="An advanced, highly configurable system monitor for X"
+HOMEPAGE="https://github.com/brndnmtthws/conky";
+SRC_URI="https://github.com/brndnmtthws/${PN}/archive/v${PV}.tar.gz -> 
${P}.tar.gz"
+
+LICENSE="GPL-3 BSD LGPL-2.1 MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ppc ~ppc64 ~sparc ~x86"
+IUSE="apcupsd cmus curl eve hddtemp ical iconv imlib iostats ipv6 irc
+       lua-cairo lua-imlib lua-rsvg math moc mpd mysql nano-syntax ncurses
+       nvidia +portmon pulseaudio rss systemd thinkpad truetype vim-syntax
+       weather-metar webserver wifi X xmms2"
+
+COMMON_DEPEND="
+       X? (
+               imlib? ( media-libs/imlib2[X] )
+               lua-cairo? ( >=dev-lua/toluapp-1.0.93 x11-libs/cairo[X] )
+               lua-imlib? ( >=dev-lua/toluapp-1.0.93 media-libs/imlib2[X] )
+               lua-rsvg? ( >=dev-lua/toluapp-1.0.93 gnome-base/librsvg )
+               nvidia? ( x11-drivers/nvidia-drivers[tools,static-libs] )
+               truetype? ( x11-libs/libXft >=media-libs/freetype-2 )
+               x11-libs/libX11
+               x11-libs/libXdamage
+               x11-libs/libXinerama
+               x11-libs/libXfixes
+               x11-libs/libXext
+               xmms2? ( media-sound/xmms2 )
+       )
+       cmus? ( media-sound/cmus )
+       curl? ( net-misc/curl )
+       eve? ( net-misc/curl dev-libs/libxml2 )
+       ical? ( dev-libs/libical:= )
+       iconv? ( virtual/libiconv )
+       irc? ( net-libs/libircclient )
+       mysql? ( dev-db/mysql-connector-c )
+       ncurses? ( sys-libs/ncurses:= )
+       pulseaudio? ( media-sound/pulseaudio )
+       rss? ( dev-libs/libxml2 net-misc/curl dev-libs/glib:2 )
+       systemd? ( sys-apps/systemd )
+       wifi? ( net-wireless/wireless-tools )
+       weather-metar? ( net-misc/curl )
+       webserver? ( net-libs/libmicrohttpd )
+       || ( dev-lang/lua:0 dev-lang/lua:5.1 )
+"
+RDEPEND="
+       ${COMMON_DEPEND}
+       apcupsd? ( sys-power/apcupsd )
+       hddtemp? ( app-admin/hddtemp )
+       moc? ( media-sound/moc )
+       nano-syntax? ( app-editors/nano )
+       vim-syntax? ( || ( app-editors/vim app-editors/gvim ) )
+"
+DEPEND="
+       ${COMMON_DEPEND}
+       app-text/docbook2X
+"
+
+CONFIG_CHECK=~IPV6
+
+DOCS=( README.md TODO ChangeLog NEWS AUTHORS )
+
+PATCHES=(
+       "${FILESDIR}"/${P}-use-pkgconfig.patch
+       "${FILESDIR}"/${P}-libical-3.patch
+       "${FILESDIR}"/${P}-portmon.patch
+       "${FILESDIR}"/${P}-clang.patch
+       "${FILESDIR}"/${P}-virtual-sinks.patch
+)
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="You can find sample configurations at 
${ROOT}/usr/share/doc/${PF}.
+To customize, copy to ${XDG_CONFIG_HOME}/conky/conky.conf
+and edit it to your liking.
+
+There are pretty html docs available at the conky homepage
+or in ${ROOT}/usr/share/doc/${PF}/html.
+
+Also see https://wiki.gentoo.org/wiki/Conky/HOWTO";
+
+pkg_setup() {
+       use ipv6 && linux-info_pkg_setup
+}
+
+src_prepare() {
+       cmake_src_prepare
+
+       sed -i -e "s|find_program(APP_MAN man)|set(APP_MAN $(which man) CACHE 
FILEPATH MAN_BINARY)|" \
+               cmake/ConkyPlatformChecks.cmake || die
+}
+
+src_configure() {
+       local mycmakeargs
+
+       if use X; then
+               mycmakeargs=(
+                       -DBUILD_X11=ON
+                       -DOWN_WINDOW=ON
+                       -DBUILD_XDAMAGE=ON
+                       -DBUILD_XINERAMA=ON
+                       -DBUILD_XDBE=ON
+                       -DBUILD_XFT=$(usex truetype)
+                       -DBUILD_IMLIB2=$(usex imlib)
+                       -DBUILD_XSHAPE=ON
+                       -DBUILD_ARGB=ON
+                       -DBUILD_LUA_CAIRO=$(usex lua-cairo)
+                       -DBUILD_LUA_IMLIB2=$(usex lua-imlib)
+                       -DBUILD_LUA_RSVG=$(usex lua-rsvg)
+                       -DBUILD_NVIDIA=$(usex nvidia)
+                       -DBUILD_XMMS2=$(usex xmms2)
+               )
+       else
+               mycmakeargs=(
+                       -DBUILD_X11=OFF
+                       -DBUILD_NVIDIA=OFF
+                       -DBUILD_LUA_CAIRO=OFF
+                       -DBUILD_LUA_IMLIB2=OFF
+                       -DBUILD_LUA_RSVG=OFF
+                       -DBUILD_XMMS2=OFF
+               )
+       fi
+
+       mycmakeargs+=(
+               -DBUILD_APCUPSD=$(usex apcupsd)
+               -DBUILD_CMUS=$(usex cmus)
+               -DBUILD_CURL=$(usex curl)
+               -DBUILD_EVE=$(usex eve)
+               -DBUILD_HDDTEMP=$(usex hddtemp)
+               -DBUILD_IOSTATS=$(usex iostats)
+               -DBUILD_ICAL=$(usex ical)
+               -DBUILD_ICONV=$(usex iconv)
+               -DBUILD_IPV6=$(usex ipv6)
+               -DBUILD_IRC=$(usex irc)
+               -DBUILD_MATH=$(usex math)
+               -DBUILD_MOC=$(usex moc)
+               -DBUILD_MPD=$(usex mpd)
+               -DBUILD_MYSQL=$(usex mysql)
+               -DBUILD_NCURSES=$(usex ncurses)
+               -DBUILD_PORT_MONITORS=$(usex portmon)
+               -DBUILD_PULSEAUDIO=$(usex pulseaudio)
+               -DBUILD_RSS=$(usex rss)
+               -DBUILD_JOURNAL=$(usex systemd)
+               -DBUILD_IBM=$(usex thinkpad)
+               -DBUILD_HTTP=$(usex webserver)
+               -DBUILD_WEATHER_METAR=$(usex weather-metar)
+               -DBUILD_WLAN=$(usex wifi)
+               -DBUILD_BUILTIN_CONFIG=ON
+               -DBUILD_OLD_CONFIG=ON
+               -DBUILD_I18N=ON
+               -DMAINTAINER_MODE=ON
+               -DRELEASE=ON
+               -DBUILD_AUDACIOUS=OFF
+               -DBUILD_BMPX=OFF
+               -DDOC_PATH=/usr/share/doc/${PF}
+       )
+
+       cmake_src_configure
+}
+
+src_install() {
+       cmake_src_install
+
+       if use vim-syntax; then
+               insinto /usr/share/vim/vimfiles/ftdetect
+               doins "${S}"/extras/vim/ftdetect/conkyrc.vim
+
+               insinto /usr/share/vim/vimfiles/syntax
+               doins "${S}"/extras/vim/syntax/conkyrc.vim
+       fi
+
+       if use nano-syntax; then
+               insinto /usr/share/nano/
+               doins "${S}"/extras/nano/conky.nanorc
+       fi
+
+       readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+       readme.gentoo_print_elog
+}

diff --git a/app-admin/conky/files/conky-1.10.8-virtual-sinks.patch 
b/app-admin/conky/files/conky-1.10.8-virtual-sinks.patch
new file mode 100644
index 00000000000..c0198ccc4ec
--- /dev/null
+++ b/app-admin/conky/files/conky-1.10.8-virtual-sinks.patch
@@ -0,0 +1,49 @@
+From 8221ba62045012abf8a4443de20f17a0a8fc1288 Mon Sep 17 00:00:00 2001
+From: Jan Seeger <jan.see...@thenybble.de>
+Date: Wed, 5 Aug 2020 15:39:20 +0200
+Subject: Fixed crash on virtual sinks.
+
+Taken from upstream commits
+https://github.com/brndnmtthws/conky/commit/ddf8a0f58f3110e31ec4c44ecff838d2b231f6f3
 and
+https://github.com/brndnmtthws/conky/commit/2a7226d89331f7d5d0abf0b9aff6d75435dd3a2d.
+
+Signed-off-by: Jan Seeger <jan.see...@thenybble.de>
+---
+ src/pulseaudio.cc | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/src/pulseaudio.cc b/src/pulseaudio.cc
+index 93226c1b..af814bd6 100644
+--- a/src/pulseaudio.cc
++++ b/src/pulseaudio.cc
+@@ -53,8 +53,13 @@ void pa_sink_info_callback(pa_context *c, const 
pa_sink_info *i, int eol, void *
+         pdr->sink_mute = i->mute;
+         pdr->sink_card = i->card;
+         pdr->sink_index = i->index;
+-        pdr->sink_active_port_name.assign(i->active_port->name);
+-        pdr->sink_active_port_description.assign(i->active_port->description);
++              if (i->active_port != nullptr) {
++                      pdr->sink_active_port_name.assign(i->active_port->name);
++                      
pdr->sink_active_port_description.assign(i->active_port->description);
++              } else {
++                      pdr->sink_active_port_name.erase();
++                      pdr->sink_active_port_name.erase();
++              }
+         pdr->sink_volume = round_to_int(100.0f * 
(float)pa_cvolume_avg(&(i->volume)) / (float)PA_VOLUME_NORM);
+         pa_threaded_mainloop_signal(pulseaudio->mainloop, 0);
+     }
+@@ -224,9 +229,10 @@ void init_pulseaudio(struct text_object *obj) {
+         return;
+     }
+ 
+-    if(pulseaudio->result.sink_card!=(uint32_t)-1)
++    if(pulseaudio->result.sink_card!=(uint32_t)-1) {
+         
PULSEAUDIO_WAIT(pa_context_get_card_info_by_index(pulseaudio->context, 
pulseaudio->result.sink_card,
+                                                           
pa_card_info_callback, &pulseaudio->result));
++      }
+ 
+       // get notification when something changes in PA
+     pa_context_set_subscribe_callback(pulseaudio->context, subscribe_cb, 
&pulseaudio->result);
+-- 
+2.26.2
+

Reply via email to