diff options
| author | Palica <palica+gitlab@liguros.net> | 2020-06-23 22:35:08 +0200 |
|---|---|---|
| committer | Palica <palica+gitlab@liguros.net> | 2020-06-23 22:35:08 +0200 |
| commit | ecdac123787b96ce6649f0f91da12ea6458cc2b1 (patch) | |
| tree | b89c74d9e6fe6e8aebc4c77bcbeb4ab73214127d /media-sound/timidity++ | |
| parent | 1be72aa41cf41dedadeecf59dca9f01de6381f5e (diff) | |
| download | baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.gz baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.xz baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.zip | |
Updating liguros repo
Diffstat (limited to 'media-sound/timidity++')
21 files changed, 1165 insertions, 0 deletions
diff --git a/media-sound/timidity++/Manifest b/media-sound/timidity++/Manifest new file mode 100644 index 000000000000..6417e3383c21 --- /dev/null +++ b/media-sound/timidity++/Manifest @@ -0,0 +1,2 @@ +DIST TiMidity++-2.14.0.tar.xz 1356476 BLAKE2B 8d4a360d1c16b250f3bef7c010e1e263fdda13446437ff2454dc2c2a717246c4d27836a3b40586b12b33e175bc54ee211a3a1798005733461cf5833eda11811a SHA512 d8fc06fa36e4dd42de80c61943da4cd9aec5f8aaf31057a9ededa633d2d48e64c4e53391378d82a7a46ffe4f96c756b010ea9727270f80b134ae1f8bad535bd3 +DIST TiMidity++-2.15.0.tar.xz 1363040 BLAKE2B 63612dc96ddef9b24ca35a8fa24c22fee8b0573efb09543e6017070b2d0a68494bc34afe8ffc50b5f7fe2d95397a971d5dc7afd4c9adbb524b119012e716b7f7 SHA512 36c3c79d941903109d5d6d529963d12e8192a857e80402ad5ab0d1e223451a7cf5dc8fdd046b22ae7da96f413d68db8587a8fce348635838eba2f30f7019192f diff --git a/media-sound/timidity++/files/50timidity++-gentoo.el b/media-sound/timidity++/files/50timidity++-gentoo.el new file mode 100644 index 000000000000..3f9e35ca106c --- /dev/null +++ b/media-sound/timidity++/files/50timidity++-gentoo.el @@ -0,0 +1,6 @@ + +;;; timidity++ site-lisp configuration + +(add-to-list 'load-path "@SITELISP@") +(autoload 'timidity "timidity" "TiMidity Interface" t) +(setq timidity-prog-path "/usr/bin/timidity") diff --git a/media-sound/timidity++/files/conf.d.timidity.2 b/media-sound/timidity++/files/conf.d.timidity.2 new file mode 100644 index 000000000000..0a153cad6a9e --- /dev/null +++ b/media-sound/timidity++/files/conf.d.timidity.2 @@ -0,0 +1,27 @@ +# TIMIDITY_OPTS +# Command line arguements to be passed to timidity. -iA is always used +# Common options: +# -Os : Output to ALSA pcm device +# -Oe : Output to esd +# -On : Output to NAS +# +# -B<n>,<m> : Set number of buffer fragments(n), and buffer size(2^m) +# +# -EFreverb=0 : Disable MIDI reverb effect control +# -EFreverb=1[,level] : Enable MIDI reverb effect control +# `level' is optional to specify reverb level [0..127] +# This effect is only available in stereo +# (default) +# -EFreverb=2 : Global reverb effect + +TIMIDITY_OPTS="-B2,8 -Os -EFreverb=0" + +# TIMIDITY_PCM_NAME +# This option can be used to choose an alternate ALSA pcm device. This will +# be most useful for users of the dmix alsa plugin or those with multiple +# cards. If you don't know what this is, chances are you want the default. + +#TIMIDITY_PCM_NAME="default" + +#LADSPA plugins library path +LADSPA_PATH="/usr/lib/ladspa" diff --git a/media-sound/timidity++/files/init.d.timidity.4 b/media-sound/timidity++/files/init.d.timidity.4 new file mode 100644 index 000000000000..1863a0197bf8 --- /dev/null +++ b/media-sound/timidity++/files/init.d.timidity.4 @@ -0,0 +1,20 @@ +#!/sbin/openrc-run + +depend() { + after alsasound esound +} + +start() { + ebegin "Starting TiMidity++ Virtual Midi Sequencer" + test -n "$TIMIDITY_PCM_NAME" && export TIMIDITY_PCM_NAME + start-stop-daemon --start --background --chdir /usr/share/timidity \ + --user timidity --group audio --make-pidfile --pidfile /var/run/timidity.pid \ + --exec /usr/bin/timidity -- -iA ${TIMIDITY_OPTS} + eend $? +} + +stop() { + ebegin "Stopping TiMidity++" + start-stop-daemon --stop --quiet --pidfile /var/run/timidity.pid + eend $? +} diff --git a/media-sound/timidity++/files/timidity++-2.14.0-CVE-2017-11546.patch b/media-sound/timidity++/files/timidity++-2.14.0-CVE-2017-11546.patch new file mode 100644 index 000000000000..94135e98b96a --- /dev/null +++ b/media-sound/timidity++/files/timidity++-2.14.0-CVE-2017-11546.patch @@ -0,0 +1,31 @@ +From 2386ec2c745f6c5075e53ea051da211336b44b84 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai <tiwai@suse.de> +Date: Tue, 26 Jun 2018 22:31:27 +0200 +Subject: readmidi: Fix division by zero + +References: CVE-2017-11546 + +An adhoc fix for division by zero in insert_note_steps(). + +Signed-off-by: Takashi Iwai <tiwai@suse.de> +bug-debian: https://bugs.debian.org/870338 +bug-suse: https://bugzilla.suse.com/show_bug.cgi?id=1081694 +bug: https://bugzilla.suse.com/show_bug.cgi?id=1081694 +origin: https://bugzilla.suse.com/attachment.cgi?id=760825 +--- + timidity/readmidi.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/timidity/readmidi.c b/timidity/readmidi.c +index 158388a..341777e 100644 +--- a/timidity/readmidi.c ++++ b/timidity/readmidi.c +@@ -4585,6 +4585,8 @@ static void insert_note_steps(void) + if (beat != 0) + meas++, beat = 0; + num = timesig[n].a, denom = timesig[n].b, n++; ++ if (!denom) ++ denom = 1; + } + a = (meas + 1) & 0xff; + b = (((meas + 1) >> 8) & 0x0f) + ((beat + 1) << 4); diff --git a/media-sound/timidity++/files/timidity++-2.14.0-CVE-2017-11547.patch b/media-sound/timidity++/files/timidity++-2.14.0-CVE-2017-11547.patch new file mode 100644 index 000000000000..12562a577e0e --- /dev/null +++ b/media-sound/timidity++/files/timidity++-2.14.0-CVE-2017-11547.patch @@ -0,0 +1,67 @@ +From 34328d22cbb4ccf03f29223f54f1834c796d86a2 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai <tiwai@suse.de> +Date: Tue, 26 Jun 2018 22:31:28 +0200 +Subject: resample: Fix out-of-bound access in resamplers + +References: CVE-2017-11547 + +An adhoc fix for out-of-bound accesses in resamples. +The offset might overflow the given data range. + +Signed-off-by: Takashi Iwai <tiwai@suse.de> +bug-debian: https://bugs.debian.org/870338 +bug-suse: https://bugzilla.suse.com/show_bug.cgi?id=1081694 +origin: https://bugzilla.suse.com/attachment.cgi?id=760826 +--- + timidity/resample.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/timidity/resample.c b/timidity/resample.c +index cd6b8e6..4a3fadf 100644 +--- a/timidity/resample.c ++++ b/timidity/resample.c +@@ -57,6 +57,8 @@ static resample_t resample_cspline(sample_t *src, splen_t ofs, resample_rec_t *r + { + int32 ofsi, ofsf, v0, v1, v2, v3, temp; + ++ if (ofs + (1 << FRACTION_BITS) >= rec->data_length) ++ return src[ofs >> FRACTION_BITS]; + ofsi = ofs >> FRACTION_BITS; + v1 = src[ofsi]; + v2 = src[ofsi + 1]; +@@ -96,6 +98,8 @@ static resample_t resample_lagrange(sample_t *src, splen_t ofs, resample_rec_t * + { + int32 ofsi, ofsf, v0, v1, v2, v3; + ++ if (ofs + (1 << FRACTION_BITS) >= rec->data_length) ++ return src[ofs >> FRACTION_BITS]; + ofsi = ofs >> FRACTION_BITS; + v1 = (int32)src[ofsi]; + v2 = (int32)src[ofsi + 1]; +@@ -154,6 +158,8 @@ static resample_t resample_gauss(sample_t *src, splen_t ofs, resample_rec_t *rec + sample_t *sptr; + int32 left, right, temp_n; + ++ if (ofs + (1 << FRACTION_BITS) >= rec->data_length) ++ return src[ofs >> FRACTION_BITS]; + left = (ofs>>FRACTION_BITS); + right = (rec->data_length>>FRACTION_BITS) - left - 1; + temp_n = (right<<1)-1; +@@ -261,6 +267,8 @@ static resample_t resample_newton(sample_t *src, splen_t ofs, resample_rec_t *re + int32 left, right, temp_n; + int ii, jj; + ++ if (ofs + (1 << FRACTION_BITS) >= rec->data_length) ++ return src[ofs >> FRACTION_BITS]; + left = (ofs>>FRACTION_BITS); + right = (rec->data_length>>FRACTION_BITS)-(ofs>>FRACTION_BITS)-1; + temp_n = (right<<1)-1; +@@ -330,6 +338,8 @@ static resample_t resample_linear(sample_t *src, splen_t ofs, resample_rec_t *re + { + int32 v1, v2, ofsi; + ++ if (ofs + (1 << FRACTION_BITS) >= rec->data_length) ++ return src[ofs >> FRACTION_BITS]; + ofsi = ofs >> FRACTION_BITS; + v1 = src[ofsi]; + v2 = src[ofsi + 1]; diff --git a/media-sound/timidity++/files/timidity++-2.14.0-ar.patch b/media-sound/timidity++/files/timidity++-2.14.0-ar.patch new file mode 100644 index 000000000000..5c58cfcb89f3 --- /dev/null +++ b/media-sound/timidity++/files/timidity++-2.14.0-ar.patch @@ -0,0 +1,23 @@ +https://bugs.gentoo.org/468176 + +--- a/configure.in ++++ b/configure.in +@@ -167,6 +167,7 @@ AC_PROG_CC + AC_PROG_GCC_TRADITIONAL + AC_PROG_INSTALL + AC_PROG_AWK ++AC_CHECK_TOOL([AR], [ar], :) + AC_PROG_RANLIB + AC_PROG_LN_S + CHECK_COMPILER_OPTION(rdynamic) +--- a/timidity/Makefile.am ++++ b/timidity/Makefile.am +@@ -417,7 +417,7 @@ calcnewt$(EXEEXT): $(calcnewt_OBJECTS) $(calcnewt_DEPENDENCIES) + $(LINK) $(calcnewt_LDFLAGS) $(calcnewt_OBJECTS) $(calcnewt_LDADD) $(LIBS) + timidity$(EXEEXT): $(timidity_OBJECTS) $(timidity_DEPENDENCIES) + @rm -f timidity$(EXEEXT) +- ar -cru timidity.exe $(timidity_LDFLAGS) $(timidity_OBJECTS) $(timidity_LDADD) ++ $(AR) -cru timidity.exe $(timidity_LDFLAGS) $(timidity_OBJECTS) $(timidity_LDADD) + else + calcnewt$(EXEEXT): $(calcnewt_OBJECTS) $(calcnewt_DEPENDENCIES) + @rm -f calcnewt$(EXEEXT) diff --git a/media-sound/timidity++/files/timidity++-2.14.0-configure-flags.patch b/media-sound/timidity++/files/timidity++-2.14.0-configure-flags.patch new file mode 100644 index 000000000000..e2e77e44f2ae --- /dev/null +++ b/media-sound/timidity++/files/timidity++-2.14.0-configure-flags.patch @@ -0,0 +1,140 @@ +do not add -L/-I flags pointing to the paths given by --prefix. +there's no need and it breaks multilib and cross-compiling. + +patch by Mike Frysinger <vapier@gentoo.org> + +--- a/autoconf/libFLAC.m4 ++++ b/autoconf/libFLAC.m4 +@@ -25,24 +25,8 @@ AC_ARG_ENABLE(libFLACtest, + [Do not try to compile and run a test libFLAC program]),, + [enable_libFLACtest=yes]) + +- if test "x$libFLAC_libraries" != "x" ; then +- LIBFLAC_LIBS="-L$libFLAC_libraries" +- elif test "x$libFLAC_prefix" != "x" ; then +- LIBFLAC_LIBS="-L$libFLAC_prefix/lib" +- elif test "x$prefix" != "xNONE" ; then +- LIBFLAC_LIBS="-L$prefix/lib" +- fi +- + LIBFLAC_LIBS="$LIBFLAC_LIBS -lFLAC -lm" + +- if test "x$libFLAC_includes" != "x" ; then +- LIBFLAC_CFLAGS="-I$libFLAC_includes" +- elif test "x$libFLAC_prefix" != "x" ; then +- LIBFLAC_CFLAGS="-I$libFLAC_prefix/include" +- elif test "$prefix" != "xNONE"; then +- LIBFLAC_CFLAGS="-I$prefix/include" +- fi +- + AC_MSG_CHECKING(for libFLAC) + no_libFLAC="" + +--- a/autoconf/libOggFLAC.m4 ++++ b/autoconf/libOggFLAC.m4 +@@ -25,24 +25,8 @@ AC_ARG_ENABLE(libOggFLACtest, + [Do not try to compile and run a test libOggFLAC program]),, + [enable_libOggFLACtest=yes]) + +- if test "x$libOggFLAC_libraries" != "x" ; then +- LIBOGGFLAC_LIBS="-L$libOggFLAC_libraries" +- elif test "x$libOggFLAC_prefix" != "x" ; then +- LIBOGGFLAC_LIBS="-L$libOggFLAC_prefix/lib" +- elif test "x$prefix" != "xNONE" ; then +- LIBOGGFLAC_LIBS="-L$prefix/lib" +- fi +- + LIBOGGFLAC_LIBS="$LIBOGGFLAC_LIBS -lOggFLAC -lFLAC -lm" + +- if test "x$libOggFLAC_includes" != "x" ; then +- LIBOGGFLAC_CFLAGS="-I$libOggFLAC_includes" +- elif test "x$libOggFLAC_prefix" != "x" ; then +- LIBOGGFLAC_CFLAGS="-I$libOggFLAC_prefix/include" +- elif test "$prefix" != "xNONE"; then +- LIBOGGFLAC_CFLAGS="-I$prefix/include" +- fi +- + AC_MSG_CHECKING(for libOggFLAC) + no_libOggFLAC="" + +--- a/autoconf/ogg.m4 ++++ b/autoconf/ogg.m4 +@@ -26,24 +26,8 @@ AC_ARG_ENABLE(oggtest, + [Do not try to compile and run a test Ogg program]),, + [enable_oggtest=yes]) + +- if test "x$ogg_libraries" != "x" ; then +- OGG_LIBS="-L$ogg_libraries" +- elif test "x$ogg_prefix" != "x" ; then +- OGG_LIBS="-L$ogg_prefix/lib" +- elif test "x$prefix" != "xNONE" ; then +- OGG_LIBS="-L$prefix/lib" +- fi +- + OGG_LIBS="$OGG_LIBS -logg" + +- if test "x$ogg_includes" != "x" ; then +- OGG_CFLAGS="-I$ogg_includes" +- elif test "x$ogg_prefix" != "x" ; then +- OGG_CFLAGS="-I$ogg_prefix/include" +- elif test "x$prefix" != "xNONE"; then +- OGG_CFLAGS="-I$prefix/include" +- fi +- + AC_MSG_CHECKING(for Ogg) + no_ogg="" + +--- a/autoconf/vorbis.m4 ++++ b/autoconf/vorbis.m4 +@@ -27,27 +27,10 @@ AC_ARG_ENABLE(vorbistest, + [Do not try to compile and run a test Vorbis program]), + , [enable_vorbistest=yes]) + +- if test "x$vorbis_libraries" != "x" ; then +- VORBIS_LIBS="-L$vorbis_libraries" +- elif test "x$vorbis_prefix" != "x" ; then +- VORBIS_LIBS="-L$vorbis_prefix/lib" +- elif test "x$prefix" != "xNONE"; then +- VORBIS_LIBS="-L$prefix/lib" +- fi +- + VORBIS_LIBS="$VORBIS_LIBS -lvorbis -lm" + VORBISFILE_LIBS="-lvorbisfile" + VORBISENC_LIBS="-lvorbisenc" + +- if test "x$vorbis_includes" != "x" ; then +- VORBIS_CFLAGS="-I$vorbis_includes" +- elif test "x$vorbis_prefix" != "x" ; then +- VORBIS_CFLAGS="-I$vorbis_prefix/include" +- elif test "x$prefix" != "xNONE"; then +- VORBIS_CFLAGS="-I$prefix/include" +- fi +- +- + AC_MSG_CHECKING(for Vorbis) + no_vorbis="" + +--- a/configure.in ++++ b/configure.in +@@ -91,21 +91,6 @@ else + x_config_flag=yes + fi + +-# Checking gcc environment +-for i in `echo $LIBRARY_PATH|sed -e 's,:, ,g'`; do +- LDFLAGS="$LDFLAGS -L${i}" +-done +-for i in `echo $C_INCLUDE_PATH|sed -e 's,:, ,g'`; do +- CPPFLAGS="$CPPFLAGS -I${i}" +-done +- +-# add $prefix if specified. +-if test "x$prefix" != xNONE -a "x$prefix" != "x$ac_default_prefix" -a "x$prefix" != "x/usr"; then +- LDFLAGS="-L$prefix/lib $LDFLAGS" +- SHLDFLAGS="-L$prefix/lib $SHLDFLAGS" +- CPPFLAGS="-I$prefix/include $CPPFLAGS" +-fi +- + dnl add --with-includes, --with-libraries + AC_ARG_WITH(includes, + AS_HELP_STRING([--with-includes=DIR], [Specify include directories (colon separated)]), diff --git a/media-sound/timidity++/files/timidity++-2.14.0-gcc5.patch b/media-sound/timidity++/files/timidity++-2.14.0-gcc5.patch new file mode 100644 index 000000000000..50d64e3bcbb5 --- /dev/null +++ b/media-sound/timidity++/files/timidity++-2.14.0-gcc5.patch @@ -0,0 +1,31 @@ +Upstream commit 6e189f6073e979ceccaf05c3bb5f495a1b9ed87e + +inline, defaults to "extern inline" with newer gcc versions + +With newer versions of gcc, "inline" defaults to extern, and not static if +not specified. This causes linking problems at the end of the compile. Most +of this occurences are fixed (or #ifdef'ed away) except these two small +ones in timidity/mfi.c + +Signed-off-by: Stian Skjelstad <stian.skjelstad@...> + +--- a/timidity/mfi.c 2004-02-17 17:02:18.000000000 +0100 ++++ b/timidity/mfi.c 2017-02-14 04:41:24.000000000 +0100 +@@ -344,7 +344,7 @@ + #define SEND_LASTNOTEINFO(lni, ch) if (LASTNOTEINFO_HAS_DATA((lni)[ch])) SendLastNoteInfo(lni, ch); + #define SEND_AND_CLEAR_LASTNOTEINFO(lni, ch) if (LASTNOTEINFO_HAS_DATA((lni)[ch])) { SendLastNoteInfo(lni, ch); (lni)[ch].on = NO_LAST_NOTE_INFO; } + +-inline void StoreLastNoteInfo(LastNoteInfo *info, int channel, int time, int duration, int note, int velocity) ++static inline void StoreLastNoteInfo(LastNoteInfo *info, int channel, int time, int duration, int note, int velocity) + { + info[channel].on = time; + info[channel].off = time + duration; +@@ -352,7 +352,7 @@ + info[channel].velocity = velocity; + } + +-inline void SendLastNoteInfo(const LastNoteInfo *info, int channel) ++static inline void SendLastNoteInfo(const LastNoteInfo *info, int channel) + { + NOTE_BUF_EV_DEBUGSTR(channel, info[channel].on, note_name[info[channel].note % 12], info[channel].note / 12, info[channel].velocity, info[channel].off); + MIDIEVENT(info[channel].on, ME_NOTEON, channel, info[channel].note, info[channel].velocity); diff --git a/media-sound/timidity++/files/timidity++-2.14.0-params.patch b/media-sound/timidity++/files/timidity++-2.14.0-params.patch new file mode 100644 index 000000000000..18790f8bffb4 --- /dev/null +++ b/media-sound/timidity++/files/timidity++-2.14.0-params.patch @@ -0,0 +1,22 @@ +--- a/configure.in ++++ b/configure.in +@@ -2245,10 +2245,15 @@ + + AM_CONDITIONAL(W32READDIR, test "x$W32READDIR" = "xyes") + +-SET_UNIQ_WORDS(LDFLAGS,$LDFLAGS) +-SET_UNIQ_WORDS(SHLDFLAGS,$SHLDFLAGS) +-SET_UNIQ_WORDS(CFLAGS,$EXTRACFLAGS $CFLAGS) +-SET_UNIQ_WORDS(CPPFLAGS,$CPPFLAGS $EXTRADEFS) ++# These break flags like --param wrt #276433 ++# SET_UNIQ_WORDS(LDFLAGS,$LDFLAGS) ++# SET_UNIQ_WORDS(SHLDFLAGS,$SHLDFLAGS) ++# SET_UNIQ_WORDS(CFLAGS,$EXTRACFLAGS $CFLAGS) ++# SET_UNIQ_WORDS(CPPFLAGS,$CPPFLAGS $EXTRADEFS) ++LDFLAGS="$LDFLAGS" ++SHLDFLAGS="$SHLDFLAGS" ++CFLAGS="$EXTRACFLAGS $CFLAGS" ++CPPFLAGS="$CPPFLAGS $EXTRADEFS" + + if test "x$oss_device" != x; then + AC_DEFINE_UNQUOTED(OSS_DEVICE,"$oss_device", oss device name) diff --git a/media-sound/timidity++/files/timidity++-2.14.0-pkg-config.patch b/media-sound/timidity++/files/timidity++-2.14.0-pkg-config.patch new file mode 100644 index 000000000000..15d6a4ec43f4 --- /dev/null +++ b/media-sound/timidity++/files/timidity++-2.14.0-pkg-config.patch @@ -0,0 +1,109 @@ +use $PKG_CONFIG rather than `pkg-config` + +https://bugs.gentoo.org/497362 +get ncurses info via pkg-config while we're at it + +patch by Mike Frysinger <vapier@gentoo.org> + +--- a/configure.in ++++ b/configure.in +@@ -148,6 +148,7 @@ AC_SUBST(xawresdir) + + # Checks for programs. + AM_PATH_LISPDIR ++PKG_PROG_PKG_CONFIG + AC_PROG_CC + AC_PROG_GCC_TRADITIONAL + AC_PROG_INSTALL +@@ -1318,8 +1319,8 @@ AC_MSG_CHECKING(enable_audio=jack) + if test "x$au_enable_jack" = xyes; then + AC_MSG_RESULT(yes) + SYSEXTRAS="$SYSEXTRAS jack_a.c" +- EXTRALIBS="$EXTRALIBS $(pkg-config --libs jack)" +- EXTRADEFS="$EXTRADEFS -DAU_JACK $(pkg-config --cflags jack)" ++ EXTRALIBS="$EXTRALIBS $(${PKG_CONFIG} --libs jack)" ++ EXTRADEFS="$EXTRADEFS -DAU_JACK $(${PKG_CONFIG} --cflags jack)" + else + AC_MSG_RESULT(no) + fi +@@ -1635,60 +1636,8 @@ dnl ncurses + AM_CONDITIONAL(ENABLE_NCURSES, false) + CONFIG_INTERFACE(ncurses,NCURSES,n, + AS_HELP_STRING([--enable-ncurses], [Enable ncurses interface (default is no)]), +- [ AC_CHECK_HEADERS(ncurses.h ncurses/curses.h curses.h) +- +-dnl #include <ncurses/curses.h> is failure on Plamo Linux 1.3/ncurses 1.9.9e +-dnl because <ncurses/curses.h> includes <unctrl.h>: +-dnl /usr/include/ncurses/curses.h:34: unctrl.h: No such file or directory +-dnl But surely there is unctl.h at /usr/include/ncurses/unctrl.h. +-dnl configure must check ncurses header with -I/usr/include/ncurses option. +- +- case "$ac_cv_header_curses_h$ac_cv_header_ncurses_curses_h$ac_cv_header_ncurses_h" in +- *yes*);; +- *) for i in /usr/include /usr/local/include; do +- if test -f "$i/ncurses/curses.h" -a -f "$i/ncurses/unctrl.h"; then +- AC_MSG_WARN(ncurses test is failure. Please check config.h and common.makefile later) +- CPPFLAGS="$CPPFLAGS -I$i/ncurses" +- break +- fi +- done +- ;; +- esac +- +- AC_CHECK_LIB(ncurses,initscr,lib_curses_opt=-lncurses, +- [ dnl checking pdcurses +- AC_CHECK_LIB(curses,PDC_set_ctrl_break, +- [ lib_curses_opt=-lcurses +- AC_DEFINE(USE_PDCURSES,1,Define to 1 if you use PDcurses) +- lib_user32_opt="$lib_user32_test" +- ], +- [ dnl checking libpdcurses +- AC_CHECK_LIB(pdcurses,PDC_set_ctrl_break, +- [ lib_curses_opt=-lpdcurses +- AC_DEFINE(USE_PDCURSES,1,Define to 1 if you use PDcurses) +- lib_user32_opt="$lib_user32_test" +- ], +- [ dnl OpenBSD use -lcurses instead of -lncurses. +- case "$target" in +- *openbsd*) +- AC_CHECK_LIB(curses,initscr,lib_curses_opt=-lcurses, +- [ AC_MSG_WARN(ncurses interface is not enabled) +- enable_ncurses=no ]) +- ;; +- *) +- if test "x$VCPP" = xyes || test "x$BORLANDC" = xyes || test "x$WATCOM_C" = xyes || test "x$DMC" = xyes || test "x$POCC" = xyes; then +- lib_curses_opt=libpdcurses.lib +- AC_DEFINE(USE_PDCURSES,1,Define to 1 if you use PDcurses) +- else +- AC_MSG_WARN(ncurses interface is not enabled) +- enable_ncurses=no +- fi +- ;; +- esac +- ]) +- ], +- $lib_user32_test) +- ]) ++ [ CPPFLAGS="$CPPFLAGS $(${PKG_CONFIG} --cflags ncurses)" ++ lib_curses_opt=$(${PKG_CONFIG} --libs ncurses) + ], + [ LIBS="$LIBS $lib_curses_opt" + case "$target" in +@@ -1855,7 +1804,7 @@ CONFIG_INTERFACE(xaw,XAW,a, + lib_xmu_opt=-lXmu + lib_xt_opt=-lXt + if test "x$enable_xft" = "xyes" && test "x$have_xaw" != "xno"; then +- XFT_CFLAGS="$(pkg-config --cflags xft)"; ++ XFT_CFLAGS="$(${PKG_CONFIG} --cflags xft)"; + EXTRACT_CPPFLAGS(CPPFLAGS,CFLAGS,$XFT_CFLAGS) + lib_xft_opt="-lXft"; + fi +@@ -1909,7 +1858,7 @@ CONFIG_INTERFACE(xaw,XAW,a, + ;; + esac + if test "x$enable_xft" = "xyes" && test "x$have_xaw" != "xno"; then +- XFT_CFLAGS="$(pkg-config --cflags xft)"; ++ XFT_CFLAGS="$(${PKG_CONFIG} --cflags xft)"; + EXTRACT_CPPFLAGS(CPPFLAGS,CFLAGS,$XFT_CFLAGS) + a_so_libs="$a_so_libs -lXft"; + fi diff --git a/media-sound/timidity++/files/timidity++-2.14.0-revert-for-required-ctl_speana_data-function.patch b/media-sound/timidity++/files/timidity++-2.14.0-revert-for-required-ctl_speana_data-function.patch new file mode 100644 index 000000000000..6f901eab8bc0 --- /dev/null +++ b/media-sound/timidity++/files/timidity++-2.14.0-revert-for-required-ctl_speana_data-function.patch @@ -0,0 +1,28 @@ +This will revert part of the commit from: + +http://timidity.git.sourceforge.net/git/gitweb.cgi?p=timidity/timidity;a=commit;h=e73b53437dbc1e57e61dd4d0c1407784797b08d9 + +Because otherwise TiMidity++ simply won't build as per: + +../interface/libinterface.a(xskin_c.o): In function `ctl_event': +xskin_c.c:(.text+0x17c): undefined reference to `ctl_speana_data' +collect2: error: ld returned 1 exit status + +--- a/interface/xskin_c.c ++++ b/interface/xskin_c.c +@@ -228,7 +228,6 @@ + } + } + +-#if 0 + static void ctl_speana_data(double *val, int size) { + + /* 0 <= val[n] <= (AMP*NCOLOR) */ +@@ -280,7 +279,6 @@ + + return; + } +-#endif + + /*ARGSUSED*/ + static int ctl_open(int using_stdin, int using_stdout) { diff --git a/media-sound/timidity++/files/timidity++-2.14.0-tcltk86.patch b/media-sound/timidity++/files/timidity++-2.14.0-tcltk86.patch new file mode 100644 index 000000000000..23ef62aa03e5 --- /dev/null +++ b/media-sound/timidity++/files/timidity++-2.14.0-tcltk86.patch @@ -0,0 +1,13 @@ +http://bugs.gentoo.org/451296 + +--- a/interface/tk_c.c ++++ b/interface/tk_c.c +@@ -913,7 +913,7 @@ + vsnprintf(buf, sizeof(buf), fmt, ap); + Tcl_Eval(my_interp, buf); + va_end(ap); +- return my_interp->result; ++ return Tcl_GetStringResult(my_interp); + } + + static const char *v_get2(const char *v1, const char *v2) diff --git a/media-sound/timidity++/files/timidity++-2.15.0-pkg-config.patch b/media-sound/timidity++/files/timidity++-2.15.0-pkg-config.patch new file mode 100644 index 000000000000..3c2e269be029 --- /dev/null +++ b/media-sound/timidity++/files/timidity++-2.15.0-pkg-config.patch @@ -0,0 +1,118 @@ +use $PKG_CONFIG rather than `pkg-config` + +https://bugs.gentoo.org/497362 +get ncurses info via pkg-config while we're at it + +patch by Mike Frysinger <vapier@gentoo.org> + +--- a/configure.in ++++ b/configure.in +@@ -163,6 +163,7 @@ AC_SUBST(xawresdir) + + # Checks for programs. + AM_PATH_LISPDIR ++PKG_PROG_PKG_CONFIG + AC_PROG_CC + AC_PROG_GCC_TRADITIONAL + AC_PROG_INSTALL +@@ -1348,8 +1349,8 @@ AC_MSG_CHECKING(enable_audio=jack) + if test "x$au_enable_jack" = xyes; then + AC_MSG_RESULT(yes) + SYSEXTRAS="$SYSEXTRAS jack_a.c" +- EXTRALIBS="$EXTRALIBS $(pkg-config --libs jack)" +- EXTRADEFS="$EXTRADEFS -DAU_JACK $(pkg-config --cflags jack)" ++ EXTRALIBS="$EXTRALIBS $(${PKG_CONFIG} --libs jack)" ++ EXTRADEFS="$EXTRADEFS -DAU_JACK $(${PKG_CONFIG} --cflags jack)" + else + AC_MSG_RESULT(no) + fi +@@ -1665,69 +1666,8 @@ dnl ncurses + AM_CONDITIONAL(ENABLE_NCURSES, false) + CONFIG_INTERFACE(ncurses,NCURSES,n, + AS_HELP_STRING([--enable-ncurses], [Enable ncurses interface (default is no)]), +- [ AC_CHECK_HEADERS(ncurses.h ncurses/curses.h curses.h) +- +-dnl #include <ncurses/curses.h> is failure on Plamo Linux 1.3/ncurses 1.9.9e +-dnl because <ncurses/curses.h> includes <unctrl.h>: +-dnl /usr/include/ncurses/curses.h:34: unctrl.h: No such file or directory +-dnl But surely there is unctl.h at /usr/include/ncurses/unctrl.h. +-dnl configure must check ncurses header with -I/usr/include/ncurses option. +- +- case "$ac_cv_header_curses_h$ac_cv_header_ncurses_curses_h$ac_cv_header_ncurses_h" in +- *yes*);; +- *) for i in /usr/include /usr/local/include; do +- if test -f "$i/ncurses/curses.h" -a -f "$i/ncurses/unctrl.h"; then +- AC_MSG_WARN(ncurses test is failure. Please check config.h and common.makefile later) +- CPPFLAGS="$CPPFLAGS -I$i/ncurses" +- break +- fi +- done +- ;; +- esac +- +- AC_CHECK_LIB(ncurses,initscr,lib_curses_opt=-lncurses, +- [ dnl checking pdcurses +- AC_CHECK_LIB(curses,PDC_set_ctrl_break, +- [ lib_curses_opt=-lcurses +- AC_DEFINE(USE_PDCURSES,1,Define to 1 if you use PDcurses) +- lib_user32_opt="$lib_user32_test" +- AC_CHECK_LIB(curses, vwprintw, +- AC_DEFINE(HAVE_VWPRINTW, 1, +- [Define to 1 if you have the `vwprintw' function.])) +- ], +- [ dnl checking libpdcurses +- AC_CHECK_LIB(pdcurses,PDC_set_ctrl_break, +- [ lib_curses_opt=-lpdcurses +- AC_DEFINE(USE_PDCURSES,1,Define to 1 if you use PDcurses) +- lib_user32_opt="$lib_user32_test" +- AC_CHECK_LIB(pdcurses, vwprintw, +- AC_DEFINE(HAVE_VWPRINTW, 1, +- [Define to 1 if you have the `vwprintw' function.])) +- ], +- [ dnl OpenBSD use -lcurses instead of -lncurses. +- case "$target" in +- *openbsd*) +- AC_CHECK_LIB(curses,initscr,lib_curses_opt=-lcurses, +- [ AC_MSG_WARN(ncurses interface is not enabled) +- enable_ncurses=no ]) +- ;; +- *) +- if test "x$VCPP" = xyes || test "x$BORLANDC" = xyes || test "x$WATCOM_C" = xyes || test "x$DMC" = xyes || test "x$POCC" = xyes; then +- lib_curses_opt=libpdcurses.lib +- AC_DEFINE(USE_PDCURSES,1,Define to 1 if you use PDcurses) +- AC_CHECK_LIB(pdcurses, vwprintw, +- AC_DEFINE(HAVE_VWPRINTW, 1, +- [Define to 1 if you have the `vwprintw' function.])) +- else +- AC_MSG_WARN(ncurses interface is not enabled) +- enable_ncurses=no +- fi +- ;; +- esac +- ]) +- ], +- $lib_user32_test) +- ]) ++ [ CPPFLAGS="$CPPFLAGS $(${PKG_CONFIG} --cflags ncurses)" ++ lib_curses_opt=$(${PKG_CONFIG} --libs ncurses) + ], + [ LIBS="$LIBS $lib_curses_opt" + case "$target" in +@@ -1894,7 +1834,7 @@ CONFIG_INTERFACE(xaw,XAW,a, + lib_xmu_opt=-lXmu + lib_xt_opt=-lXt + if test "x$enable_xft" = "xyes" && test "x$have_xaw" != "xno"; then +- XFT_CFLAGS="$(pkg-config --cflags xft)"; ++ XFT_CFLAGS="$(${PKG_CONFIG} --cflags xft)"; + EXTRACT_CPPFLAGS(CPPFLAGS,CFLAGS,$XFT_CFLAGS) + lib_xft_opt="-lXft"; + fi +@@ -1948,7 +1888,7 @@ CONFIG_INTERFACE(xaw,XAW,a, + ;; + esac + if test "x$enable_xft" = "xyes" && test "x$have_xaw" != "xno"; then +- XFT_CFLAGS="$(pkg-config --cflags xft)"; ++ XFT_CFLAGS="$(${PKG_CONFIG} --cflags xft)"; + EXTRACT_CPPFLAGS(CPPFLAGS,CFLAGS,$XFT_CFLAGS) + a_so_libs="$a_so_libs -lXft"; + fi diff --git a/media-sound/timidity++/files/timidity.cfg-r1 b/media-sound/timidity++/files/timidity.cfg-r1 new file mode 100644 index 000000000000..3923fb206204 --- /dev/null +++ b/media-sound/timidity++/files/timidity.cfg-r1 @@ -0,0 +1,24 @@ +############################################################################## +# +# timidity-update core configuration file +# +# Easy process: +# +# 1. Change directory to patch directory +# 2. Source current/timidity.cfg +# +# Current patch set will always be symlinked to current, so make sure that the +# proper timidity.cfg is in there +# +# +# - source /usr/share/timidity +# - source ~/.timidity/current +# - Make ~/.timidity/current point to the current patch set, or to whatever +# the individual user sets +# - If ~/.timidity/current isn't found, it will try +# /usr/share/timidity/current +# + +dir /usr/share/timidity +dir ~/.timidity +source current/timidity.cfg diff --git a/media-sound/timidity++/files/timidity.desktop.2 b/media-sound/timidity++/files/timidity.desktop.2 new file mode 100644 index 000000000000..00c7f1db2c2d --- /dev/null +++ b/media-sound/timidity++/files/timidity.desktop.2 @@ -0,0 +1,10 @@ +[Desktop Entry] +Comment=Software sound renderer (MIDI sequencer, MOD player) +Name=TiMidity++ MIDI sequencer +Terminal=true +NoDisplay=true +Type=Application +Exec=timidity %F +Categories=AudioVideo;Audio;Sequencer; +Icon=timidity +MimeType=audio/midi;audio/x-mod; diff --git a/media-sound/timidity++/files/timidity.service b/media-sound/timidity++/files/timidity.service new file mode 100644 index 000000000000..420d88813fd3 --- /dev/null +++ b/media-sound/timidity++/files/timidity.service @@ -0,0 +1,10 @@ +[Unit] +Description=TiMidity++ Daemon +After=sound.target + +[Service] +EnvironmentFile=-/etc/conf.d/timidity +ExecStart=/usr/bin/timidity -iA $TIMIDITY_OPTS + +[Install] +WantedBy=multi-user.target diff --git a/media-sound/timidity++/files/timidity.xpm b/media-sound/timidity++/files/timidity.xpm new file mode 100644 index 000000000000..dc56a6d1cf6a --- /dev/null +++ b/media-sound/timidity++/files/timidity.xpm @@ -0,0 +1,56 @@ +/* XPM */ +static char * timidity_xpm[] = { +"32 32 21 1", +" c None", +". c #333399", +"+ c #000000", +"@ c #666699", +"# c #FFFFFF", +"$ c #DDDDDD", +"% c #888888", +"& c #999999", +"* c #7777A4", +"= c #4949A4", +"- c #BBBBBB", +"; c #111111", +"> c #444444", +", c #2B2B2B", +"' c #555555", +") c #FF9999", +"! c #FF9966", +"~ c #666666", +"{ c #333333", +"] c #FF0000", +"^ c #00FF00", +" . .. ", +" . ... + ", +" . ..@ +#+ + ", +" .@@.. +#$#+%#+ ", +" ....@ +#$#$#+$#+ ", +" .... +#$#$#$#+$#+ ", +" @...@ +#$#$#$#$#+$#+ ", +" @.... +#$#$#$#$#$#+$#+ ", +" @...@. %#$#$#$#$#$#$#&$#& ", +" @...@ +++++++$#++$+++++&$++ ", +" ...@ ++$++#++$++#++$$++$++$ ", +" @..@ %++#++$++#++$++$&++$++ ", +" ... %#++$++#++$++#++&$++#++ ", +"*..@ .&++#++$++#++$++++++&++ ", +"=.. ...&#$#$#$#$#$#&-$#$& ", +"=.. ...+++++$++#+$+++++++ ++ ", +"=.. .. .&#$#$#$$&-$#&& ", +"=.. .. . +&$#$&+-$#&+ ", +" ;;;;;;;;;;;;;;;;;;;>;;;;;;; ", +",#%%%%%%%%%%%%%%%%%';#%%%%%'+ ", +",%+++++++++++++++''>;%'''''>+ ", +",%+#)))))))))))!;''>;%'%~+'>+ ", +",'+);;!;!!;!!!!!;>>>;'>+++>>+ ", +",'+)>!!;!!;!;!;!;>>>;'>>>>>>+ ", +",'+!!!!!!!!!!!!!;>>{;'>%~+>>+ ", +",'+;;;;;;;;;;;;;'>>{;'>+++>>+ ", +",'>>>>>>>>>>>>>>>>>{;'>>>>>>+> ", +",'%~'>>%~'>>'>'>'>>{;'>%~+>{++> ", +",']++>>^++>>+>+>+>>{;'>+++>{++>>", +",'>>>>>>>>>>>>>>{{{';'>>{{{'+>>~", +" +++++++++++++++++++>+++++++>>~ ", +" "}; diff --git a/media-sound/timidity++/metadata.xml b/media-sound/timidity++/metadata.xml new file mode 100644 index 000000000000..c82efbeba6b7 --- /dev/null +++ b/media-sound/timidity++/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>sound@gentoo.org</email> + <name>Gentoo Sound project</name> + </maintainer> + <upstream> + <remote-id type="sourceforge">timidity</remote-id> + </upstream> + <origin>gentoo-staging</origin> +</pkgmetadata> diff --git a/media-sound/timidity++/timidity++-2.14.0-r3.ebuild b/media-sound/timidity++/timidity++-2.14.0-r3.ebuild new file mode 100644 index 000000000000..6f7038afbfca --- /dev/null +++ b/media-sound/timidity++/timidity++-2.14.0-r3.ebuild @@ -0,0 +1,202 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit autotools desktop elisp-common systemd toolchain-funcs user xdg-utils + +MY_PV=${PV/_/-} +MY_P=TiMidity++-${MY_PV} +S=${WORKDIR}/${MY_P} + +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" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 ~arm ~arm64 ~hppa ppc ppc64 sparc x86" +IUSE="alsa ao emacs flac gtk jack motif nas ncurses oss selinux slang speex tk vorbis X" + +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= ) + slang? ( sys-libs/slang ) + speex? ( media-libs/speex ) + tk? ( dev-lang/tk:0= ) + vorbis? ( media-libs/libvorbis ) + X? ( + media-libs/libpng:0= + x11-libs/libXaw + x11-libs/libXext + ) +" +RDEPEND="${DEPEND} + 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 + +pkg_setup() { + enewgroup audio 18 # Just make sure it exists + enewuser timidity -1 -1 /var/lib/timidity audio +} + +DOCS=( AUTHORS ChangeLog NEWS README "${FILESDIR}"/timidity.cfg-r1 ) + +PATCHES=( + "${FILESDIR}"/${P}-params.patch + "${FILESDIR}"/${P}-revert-for-required-ctl_speana_data-function.patch + "${FILESDIR}"/${P}-tcltk86.patch + "${FILESDIR}"/${P}-ar.patch + "${FILESDIR}"/${P}-configure-flags.patch + "${FILESDIR}"/${P}-pkg-config.patch + "${FILESDIR}"/${P}-CVE-2017-1154{6,7}.patch + "${FILESDIR}"/${P}-gcc5.patch # bug 606894 +) + +src_prepare() { + default + eautoreconf +} + +src_configure() { + export EXTRACFLAGS="${CFLAGS}" #385817 + + local myconf=() + local audios + + use flac && audios+=",flac" + use speex && audios+=",speex" + use vorbis && audios+=",vorbis" + use oss && audios+=",oss" + use jack && audios+=",jack" + use ao && audios+=",ao" + + if use nas; then + audios+=",nas" + myconf+=( --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" + myconf+=( --with-default-output=alsa --enable-alsaseq ) + fi + + # We disable motif by default and then only enable it if it's requested. + if use motif; then + myconf+=( --enable-motif --with-x ) + use X || ewarn "Basic X11 support will be enabled because required by motif." + fi + + econf \ + --localstatedir=/var/state/timidity++ \ + --with-module-dir="${EPREFIX}/usr/share/timidity" \ + --with-lispdir="${SITELISP}/${PN}" \ + --with-elf \ + --enable-audio=${audios} \ + --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) \ + --disable-motif \ + "${myconf[@]}" +} + +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 + + diropts -o timidity -g nobody -m 0700 + keepdir /var/lib/timidity + + 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 "${D}"/usr/share/applications/timidity.desktop || die +} + +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_desktop_database_update +} + +pkg_postrm() { + use emacs && elisp-site-regen + xdg_desktop_database_update +} diff --git a/media-sound/timidity++/timidity++-2.15.0.ebuild b/media-sound/timidity++/timidity++-2.15.0.ebuild new file mode 100644 index 000000000000..e0407f9c9533 --- /dev/null +++ b/media-sound/timidity++/timidity++-2.15.0.ebuild @@ -0,0 +1,214 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools desktop elisp-common systemd toolchain-funcs user xdg + +MY_PV=${PV/_/-} +MY_P=TiMidity++-${MY_PV} +S=${WORKDIR}/${MY_P} + +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" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86" +IUSE="alsa ao emacs flac gtk jack motif nas ncurses oss selinux slang speex tk vorbis X" + +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= ) + slang? ( sys-libs/slang ) + speex? ( media-libs/speex ) + tk? ( dev-lang/tk:0= ) + vorbis? ( media-libs/libvorbis ) + X? ( + media-libs/libpng:0= + x11-libs/libXaw + x11-libs/libXext + ) +" +RDEPEND="${DEPEND} + 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 + +pkg_setup() { + enewgroup audio 18 # Just make sure it exists + enewuser timidity -1 -1 /var/lib/timidity audio +} + +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 +) + +src_prepare() { + default + eautoreconf +} + +src_configure() { + export EXTRACFLAGS="${CFLAGS}" #385817 + + local audios + 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 flac && audios+=",flac" + use speex && audios+=",speex" + use vorbis && audios+=",vorbis" + 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 + + diropts -o timidity -g nobody -m 0700 + keepdir /var/lib/timidity + + 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 +} |
