media-sound/denemo: fix build for gcc-10
authorBernd Waibel <waebbl@gmail.com>
Fri, 20 Mar 2020 21:35:36 +0000 (22:35 +0100)
committerAndreas Sturmlechner <asturm@gentoo.org>
Sat, 21 Mar 2020 18:55:23 +0000 (19:55 +0100)
- add patches to work with gcc-10 -fno-common flag
- install appdata/metainfo into new recommended location
- remove support for gtk2
- make gtk3 non-optional
- remove static USE flag

Closes: https://bugs.gentoo.org/712926
Package-Manager: Portage-2.3.94, Repoman-2.3.21
Signed-off-by: Bernd Waibel <waebbl@gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/15029
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
media-sound/denemo/denemo-2.3.0-r1.ebuild [new file with mode: 0644]
media-sound/denemo/files/denemo-2.3.0-0002-Fix-issues-with-gcc10-fno-common-flag.patch [new file with mode: 0644]

diff --git a/media-sound/denemo/denemo-2.3.0-r1.ebuild b/media-sound/denemo/denemo-2.3.0-r1.ebuild
new file mode 100644 (file)
index 0000000..4924eed
--- /dev/null
@@ -0,0 +1,118 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools xdg
+
+DESCRIPTION="A music notation editor"
+HOMEPAGE="http://www.denemo.org/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3+ OFL-1.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+# configure options currently not used:
+# --enable-mem(no) memory debugging: needs Electric fence (efence), which
+#              is not available in portage. See https://github.com/boundarydevices/efence
+# --enable-gtk-doc-pdf(no) doesn't work
+IUSE="alsa +aubio debug jack +fluidsynth gtk-doc nls +portaudio +portmidi
+       +rubberband test"
+
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+       >=app-text/evince-3.22.1-r1:=
+       dev-libs/libxml2:2
+       >=dev-scheme/guile-2:12=
+       gnome-base/librsvg:2
+       media-libs/fontconfig:1.0
+       >=media-libs/libsmf-1.3
+       >=media-libs/libsndfile-1.0.28-r1
+       >=media-sound/lilypond-2.19.54[guile2(+)]
+       x11-libs/gtk+:3
+       x11-libs/gtksourceview:3.0=
+       alsa? ( >=media-libs/alsa-lib-1.1.2 )
+       aubio? ( >=media-libs/aubio-0.4.1-r1:= )
+       fluidsynth? ( >=media-sound/fluidsynth-1.1.6-r1:= )
+       jack? ( virtual/jack )
+       portaudio? (
+               >=media-libs/portaudio-19_pre20140130
+               sci-libs/fftw:3.0=
+       )
+       portmidi? ( >=media-libs/portmidi-217-r1 )
+       rubberband? ( >=media-libs/rubberband-1.8.1-r1 )
+"
+
+DEPEND="${RDEPEND}"
+
+BDEPEND="
+       >=dev-util/gtk-doc-am-1.25-r1
+       >=dev-util/intltool-0.51.0-r1
+       >=sys-devel/flex-2.6.1
+       virtual/pkgconfig
+       virtual/yacc
+       gtk-doc? ( >=dev-util/gtk-doc-1.25-r1 )
+       nls? ( >=sys-devel/gettext-0.19.8.1 )
+"
+
+DOCS=( AUTHORS ChangeLog docs/{DESIGN{,.lilypond},GOALS,TODO} NEWS )
+
+PATCHES=(
+       "${FILESDIR}/${P}-0001-configure.ac-patch-to-find-guile-2.2.patch"
+       "${FILESDIR}/${P}-0002-Fix-issues-with-gcc10-fno-common-flag.patch"
+)
+
+src_prepare() {
+       sed -e '/^Categories=/s/GNOME\;/GNOME\;GTK\;/' -i pixmaps/denemo.desktop || die
+       sed -e 's|appdatadir = \$(datarootdir)/appdata|appdatadir = \$(datarootdir)/metainfo|' \
+               -i Makefile.am || die
+       default
+       eautoreconf
+}
+
+src_configure() {
+       myeconfargs=(
+               --disable-gtk-doc-pdf
+               --disable-gtk2
+               --disable-installed-tests
+               --disable-mem
+               --disable-rpath
+               --disable-static
+               --enable-evince
+               --enable-gtk3
+               --enable-x11
+               $(use_enable alsa)
+               $(use_enable aubio)
+               # --enable-doc does nothing for itself
+               # basic html documentation is always being installed in the
+               # /usr/share/denemo/manual directory
+               $(use_enable gtk-doc doc)
+               $(use_enable gtk-doc gtk-doc)
+               $(use_enable gtk-doc gtk-doc-html)
+               $(use_enable fluidsynth)
+               $(use_enable jack)
+               $(use_enable nls)
+               $(use_enable portaudio)
+               $(use_enable portmidi)
+               $(use_enable rubberband)
+       )
+       econf "${myeconfargs[@]}"
+}
+
+src_test() {
+       # make check fails if used with parallel builds
+       emake -j1 check
+}
+
+src_install() {
+       default
+
+       # link html documentation installed in /usr/share/denemo/manual
+       dodir /usr/share/doc/${PF}/html
+       local f
+       for f in denemo-manual.html denemo.css images; do
+               dosym ../../../denemo/manual/"${f}" /usr/share/doc/${PF}/html/"${f}"
+       done
+}
diff --git a/media-sound/denemo/files/denemo-2.3.0-0002-Fix-issues-with-gcc10-fno-common-flag.patch b/media-sound/denemo/files/denemo-2.3.0-0002-Fix-issues-with-gcc10-fno-common-flag.patch
new file mode 100644 (file)
index 0000000..425662e
--- /dev/null
@@ -0,0 +1,62 @@
+From 54075086a5b7acceef6dff41e19148778e285475 Mon Sep 17 00:00:00 2001
+From: Bernd Waibel <waebbl@gmail.com>
+Date: Fri, 20 Mar 2020 21:03:02 +0100
+Subject: [PATCH] Fix issues with gcc10 -fno-common flag
+
+Signed-off-by: Bernd Waibel <waebbl@gmail.com>
+---
+ include/denemo/denemo_types.h | 7 ++++---
+ src/export/print.h            | 6 +++---
+ 2 files changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/include/denemo/denemo_types.h b/include/denemo/denemo_types.h
+index 1d67827..936892b 100644
+--- a/include/denemo/denemo_types.h
++++ b/include/denemo/denemo_types.h
+@@ -430,7 +430,7 @@ typedef enum{
+ } SCRIPT_TYPE;
+ //index of columns in the keymap command list store FIXME if you add columns you must add them in allocate_keymap !!!!
+-enum
++typedef enum
+ {
+   COL_TYPE = 0,
+   COL_NAME,
+@@ -1167,7 +1167,7 @@ struct cs_callback
+  * The (singleton) root object for the program
+  *
+  */
+-struct DenemoRoot
++typedef struct DenemoRoot
+ {
+   gboolean non_interactive; /* if TRUE denemo should not display project, receive or send sounds etc*/
+   gchar *scheme_file;/* filename for scheme code to run on startup */
+@@ -1258,6 +1258,7 @@ struct DenemoRoot
+   gboolean *silent; /** Don't log any message */
+   gboolean *verbose; /** Display every messages */
+   guint pending_layout_id;//Non zero when the current layout being created will be renamed to have this id 
+-}  Denemo; /**< The root object. */
++};
++extern struct DenemoRoot Denemo; /**< The root object. */
+ #endif
+diff --git a/src/export/print.h b/src/export/print.h
+index db0c8f1..64a3a8d 100644
+--- a/src/export/print.h
++++ b/src/export/print.h
+@@ -108,9 +108,9 @@ typedef struct WysiwygInfo
+   GtkWidget *dialog;            //an info dialog to tell the user what to do next...
+ } WysiwygInfo;
+-gint LilyPond_stderr;       //A file descriptor to pipe for LilyPond's stderr
+-GError *lily_err;
+-GPid previewerpid;
++extern gint LilyPond_stderr;       //A file descriptor to pipe for LilyPond's stderr
++extern GError *lily_err;
++extern GPid previewerpid;
+ WysiwygInfo* get_wysiwyg_info();
+ void initialize_print_status (void);
+-- 
+2.25.1
+