public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: media-sound/timidity++/files/, media-sound/timidity++/
Date: Mon, 12 Sep 2022 20:08:36 +0000 (UTC)	[thread overview]
Message-ID: <1663013011.8ebfae3dd7d5badea7fa7dd04bbd59bfd96762b5.sam@gentoo> (raw)

commit:     8ebfae3dd7d5badea7fa7dd04bbd59bfd96762b5
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 12 20:03:07 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Sep 12 20:03:31 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8ebfae3d

media-sound/timidity++: fix configure tests with Clang 15

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../timidity++-2.15.0-clang-15-configure.patch     |  27 +++
 media-sound/timidity++/timidity++-2.15.0-r5.ebuild | 236 +++++++++++++++++++++
 2 files changed, 263 insertions(+)

diff --git a/media-sound/timidity++/files/timidity++-2.15.0-clang-15-configure.patch b/media-sound/timidity++/files/timidity++-2.15.0-clang-15-configure.patch
new file mode 100644
index 000000000000..80fa7a904d12
--- /dev/null
+++ b/media-sound/timidity++/files/timidity++-2.15.0-clang-15-configure.patch
@@ -0,0 +1,27 @@
+conftest.c:114:4: error: call to undeclared library function 'exit' with type 'void (int) __attribute__((noreturn))'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
+--- a/configure.in
++++ b/configure.in
+@@ -696,6 +696,7 @@ dnl ***
+ AC_CACHE_CHECK([for an implementation of va_copy()],lib_cv_va_copy,[
+ 	AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ 	#include <stdarg.h>
++	#include <stdlib.h>
+ 	void f (int i, ...) {
+ 	va_list args1, args2;
+ 	va_start (args1, i);
+@@ -715,6 +716,7 @@ AC_CACHE_CHECK([for an implementation of va_copy()],lib_cv_va_copy,[
+ AC_CACHE_CHECK([for an implementation of __va_copy()],lib_cv___va_copy,[
+ 	AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ 	#include <stdarg.h>
++	#include <stdlib.h>
+ 	void f (int i, ...) {
+ 	va_list args1, args2;
+ 	va_start (args1, i);
+@@ -745,6 +747,7 @@ fi
+ AC_CACHE_CHECK([whether va_lists can be copied by value],lib_cv_va_val_copy,[
+ 	AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ 	#include <stdarg.h>
++	#include <stdlib.h>
+ 	void f (int i, ...) {
+ 	va_list args1, args2;
+ 	va_start (args1, i);

diff --git a/media-sound/timidity++/timidity++-2.15.0-r5.ebuild b/media-sound/timidity++/timidity++-2.15.0-r5.ebuild
new file mode 100644
index 000000000000..7748c68b9c2b
--- /dev/null
+++ b/media-sound/timidity++/timidity++-2.15.0-r5.ebuild
@@ -0,0 +1,236 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools desktop elisp-common flag-o-matic systemd xdg
+
+MY_PV="${PV/_/-}"
+MY_P="TiMidity++-${MY_PV}"
+
+DESCRIPTION="A handy MIDI to WAV converter with OSS and ALSA output support"
+HOMEPAGE="http://timidity.sourceforge.net/"
+SRC_URI="mirror://sourceforge/timidity/${MY_P}.tar.xz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="alsa ao emacs flac gtk jack motif nas ncurses ogg oss selinux slang speex tk vorbis X Xaw3d"
+
+REQUIRED_USE="tk? ( X )"
+
+DEPEND="
+	alsa? ( media-libs/alsa-lib )
+	ao? ( >=media-libs/libao-0.8.5 )
+	emacs? ( >=app-editors/emacs-23.1:* )
+	flac? ( media-libs/flac:= )
+	gtk? ( x11-libs/gtk+:2 )
+	jack? ( virtual/jack )
+	motif? ( >=x11-libs/motif-2.3:0 )
+	nas? ( >=media-libs/nas-1.4 )
+	ncurses? ( sys-libs/ncurses:0= )
+	ogg? ( media-libs/libogg )
+	slang? ( sys-libs/slang )
+	speex? ( media-libs/speex )
+	tk? ( dev-lang/tk:= )
+	vorbis? ( media-libs/libvorbis )
+	X? (
+		media-libs/libpng:=
+		x11-libs/libX11
+		x11-libs/libXext
+		Xaw3d? ( x11-libs/libXaw3d )
+		!Xaw3d? ( x11-libs/libXaw )
+	)
+"
+
+RDEPEND="
+	${DEPEND}
+	acct-group/audio
+	acct-group/nobody
+	acct-user/timidity
+	app-eselect/eselect-timidity
+	alsa? ( media-sound/alsa-utils )
+	selinux? ( sec-policy/selinux-timidity )
+"
+
+PDEPEND="|| ( media-sound/timidity-eawpatches media-sound/timidity-freepats )"
+
+SITEFILE=50${PN}-gentoo.el
+
+DOCS=( AUTHORS ChangeLog NEWS README "${FILESDIR}"/timidity.cfg-r1 )
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-2.14.0-params.patch
+	"${FILESDIR}"/${PN}-2.14.0-ar.patch
+	"${FILESDIR}"/${PN}-2.14.0-configure-flags.patch
+	"${FILESDIR}"/${PN}-2.15.0-pkg-config.patch
+	"${FILESDIR}"/${PN}-2.14.0-CVE-2017-1154{6,7}.patch
+	"${FILESDIR}"/${PN}-2.15.0-lto-workaround.patch
+	"${FILESDIR}"/${PN}-2.15.0-clang-15-configure.patch
+)
+
+src_prepare() {
+	default
+
+	mv configure.{in,ac} || die
+
+	eautoreconf
+}
+
+src_configure() {
+	export EXTRACFLAGS="${CFLAGS}" #385817
+
+	local audios
+	# List by preference
+	local xaw_provider=$(usex Xaw3d 'xaw3d' 'xaw')
+
+	# configure workarounds: configure.in here is written for an old version
+	# of autoconf and upstream seems quite dead.
+	#
+	# 1. Avoid janky configure test breaking
+	# ```checking for sys/wait.h that is POSIX.1 compatible... yes
+	# ./configure: 7995: test: =: unexpected operator```
+	export ac_cv_header_sys_time_h=yes
+	#
+	# 2. And yes, we expect standard header locations (this configure test is flaky for us too)
+	# This avoids a bunch of implicit decl. errors which only happen with USE=-Xaw3d(?!)
+	append-cppflags -DSTDC_HEADERS
+
+	local myeconfargs=(
+		--localstatedir=/var/state/${PN}
+		--with-module-dir="${EPREFIX}/usr/share/timidity"
+		--with-lispdir="${SITELISP}/${PN}"
+		--with-elf
+		--enable-server
+		--enable-network
+		--enable-dynamic
+		--enable-vt100
+		--enable-spline=cubic
+		$(use_enable emacs)
+		$(use_enable slang)
+		$(use_enable ncurses)
+		$(use_with X x)
+		$(use_enable X spectrogram)
+		$(use_enable X wrd)
+		$(use_enable X xskin)
+		$(use_enable X xaw)
+		$(use_enable gtk)
+		$(use_enable tk tcltk)
+		$(use_enable motif)
+		$(use_with Xaw3d xawlib ${xaw_provider})
+	)
+
+	use flac && audios+=",flac"
+	use speex && audios+=",speex"
+	use vorbis && audios+=",vorbis"
+	use ogg && audios+=",ogg"
+	use oss && audios+=",oss"
+	use jack && audios+=",jack"
+	use ao && audios+=",ao"
+
+	if use nas; then
+		audios+=",nas"
+		myeconfargs+=(
+			--with-nas-library="/usr/$(get_libdir)/libaudio.so"
+			--with-x
+		)
+		use X || ewarn "Basic X11 support will be enabled because required by nas."
+	fi
+
+	if use alsa; then
+		audios+=",alsa"
+		myeconfargs+=(
+			--with-default-output=alsa
+			--enable-alsaseq
+		)
+	fi
+
+	if use motif; then
+		myeconfargs+=(
+			--with-x
+		)
+		use X || ewarn "Basic X11 support will be enabled because required by motif."
+	fi
+
+	# needs to come after all audios have been collected
+	myeconfargs+=(
+		--enable-audio=${audios}
+	)
+
+	econf "${myeconfargs[@]}"
+}
+
+src_install() {
+	emake DESTDIR="${D}" install
+	einstalldocs
+
+	# these are only for the ALSA sequencer mode
+	if use alsa; then
+		newconfd "${FILESDIR}"/conf.d.timidity.2 timidity
+		newinitd "${FILESDIR}"/init.d.timidity.4 timidity
+
+		systemd_dounit "${FILESDIR}"/timidity.service
+	fi
+
+	insinto /etc
+	newins "${FILESDIR}"/timidity.cfg-r1 timidity.cfg
+
+	dodir /usr/share/timidity
+	dosym ../../../etc/timidity.cfg /usr/share/timidity/timidity.cfg
+
+	if use emacs; then
+		elisp-site-file-install "${FILESDIR}/${SITEFILE}"
+	fi
+
+	doicon "${FILESDIR}"/timidity.xpm
+	newmenu "${FILESDIR}"/timidity.desktop.2 timidity.desktop
+
+	# Order of preference: gtk, X (Xaw), ncurses, slang
+	# Do not create menu item for terminal ones
+	local interface="-id"
+	local terminal="true"
+	local nodisplay="true"
+	if use gtk || use X; then
+		interface="-ia"
+		terminal="false"
+		nodisplay="false"
+		use gtk && interface="-ig"
+	elif use ncurses || use slang; then
+		local interface="-is"
+		use ncurses && interface="-in"
+	fi
+	sed -e "s/Exec=timidity/Exec=timidity ${interface}/" \
+		-e "s/Terminal=.*/Terminal=${terminal}/" \
+		-e "s/NoDisplay=.*/NoDisplay=${nodisplay}/" \
+		-i "${ED}"/usr/share/applications/timidity.desktop || die
+}
+
+pkg_preinst() {
+	xdg_pkg_preinst
+}
+
+pkg_postinst() {
+	use emacs && elisp-site-regen
+
+	elog "A timidity config file has been installed in /etc/timidity.cfg."
+	elog "Do not edit this file as it will interfere with the eselect timidity tool."
+	elog "The tool 'eselect timidity' can be used to switch between installed patchsets."
+
+	if use alsa; then
+		elog "An init script for the alsa timidity sequencer has been installed."
+		elog "If you wish to use the timidity virtual sequencer, edit /etc/conf.d/timidity"
+		elog "and run 'rc-update add timidity <runlevel> && /etc/init.d/timidity start'"
+	fi
+
+	if use sparc; then
+		elog "Only saving to wave file and ALSA soundback has been tested working."
+	fi
+
+	xdg_pkg_postinst
+}
+
+pkg_postrm() {
+	use emacs && elisp-site-regen
+	xdg_pkg_postrm
+}


             reply	other threads:[~2022-09-12 20:08 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-12 20:08 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2021-01-07  1:24 [gentoo-commits] repo/gentoo:master commit in: media-sound/timidity++/files/, media-sound/timidity++/ Sam James
2019-03-12  8:25 Lars Wendler
2018-08-26  9:50 Andreas Sturmlechner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1663013011.8ebfae3dd7d5badea7fa7dd04bbd59bfd96762b5.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox