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 +