summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlfred Wingate <parona@protonmail.com>2024-08-27 21:10:44 +0300
committerArsen Arsenović <arsen@gentoo.org>2024-09-18 15:06:42 +0200
commitdc3e2348609b3c156dd9e06aba46be5f7b69fefb (patch)
tree415235aefb5c58ed89c4755bd335393ea6bb2749 /media-sound/denemo
parentdev-scheme/guile-gi: update live to use new guile mechanism (diff)
downloadgentoo-dc3e2348609b3c156dd9e06aba46be5f7b69fefb.tar.gz
gentoo-dc3e2348609b3c156dd9e06aba46be5f7b69fefb.tar.bz2
gentoo-dc3e2348609b3c156dd9e06aba46be5f7b69fefb.zip
media-sound/denemo: switch to new guile mechanism
Bug: https://bugs.gentoo.org/927336 Signed-off-by: Alfred Wingate <parona@protonmail.com> Signed-off-by: Arsen Arsenović <arsen@gentoo.org>
Diffstat (limited to 'media-sound/denemo')
-rw-r--r--media-sound/denemo/denemo-2.6.0-r100.ebuild136
-rw-r--r--media-sound/denemo/files/denemo-2.6.0-fix-c99.patch38
-rw-r--r--media-sound/denemo/files/denemo-2.6.0-incompatible-pointers.patch36
3 files changed, 210 insertions, 0 deletions
diff --git a/media-sound/denemo/denemo-2.6.0-r100.ebuild b/media-sound/denemo/denemo-2.6.0-r100.ebuild
new file mode 100644
index 000000000000..5b89d259294e
--- /dev/null
+++ b/media-sound/denemo/denemo-2.6.0-r100.ebuild
@@ -0,0 +1,136 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+GUILE_COMPAT=( 2-2 )
+inherit autotools font guile-single 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
+# fluidsynth currently broken. See https://savannah.gnu.org/bugs/index.php?62202
+IUSE="alsa +aubio debug jack gtk-doc nls +portaudio +portmidi
+ +rubberband test"
+
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="${GUILE_REQUIRED_USE}"
+
+RDEPEND="
+ ${GUILE_DEPS}
+ >=app-text/evince-3.22.1-r1:=
+ dev-libs/glib:2
+ dev-libs/libxml2:2
+ gnome-base/librsvg:2
+ media-libs/fontconfig:1.0
+ >=media-libs/libsmf-1.3
+ >=media-libs/libsndfile-1.0.28-r1
+ >=media-sound/fluidsynth-1.1.6-r1:=
+ >=media-sound/lilypond-2.24.4-r100
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3
+ x11-libs/gtksourceview:3.0=
+ x11-libs/pango
+ alsa? ( >=media-libs/alsa-lib-1.1.2 )
+ aubio? ( >=media-libs/aubio-0.4.1-r1:= )
+ jack? ( virtual/jack )
+ portaudio? (
+ >=media-libs/portaudio-19_pre20140130
+ sci-libs/fftw:3.0=
+ )
+ portmidi? ( media-libs/portmidi )
+ rubberband? ( >=media-libs/rubberband-1.8.1-r1 )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ >=dev-build/gtk-doc-am-1.25-r1
+ >=dev-util/intltool-0.51.0-r1
+ app-alternatives/lex
+ virtual/pkgconfig
+ app-alternatives/yacc
+ gtk-doc? ( >=dev-util/gtk-doc-1.25-r1 )
+ nls? ( >=sys-devel/gettext-0.19.8.1 )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.6.0-respect-user-CFLAGS.patch
+ "${FILESDIR}"/${PN}-2.6.0-fix-c99.patch
+ "${FILESDIR}"/${PN}-2.6.0-incompatible-pointers.patch
+)
+DOCS=( AUTHORS ChangeLog docs/{DESIGN{,.lilypond},GOALS,TODO} NEWS )
+
+src_prepare() {
+ sed -e '/^Categories=/s/GNOME\;/GNOME\;GTK\;/' -i pixmaps/org.denemo.Denemo.desktop || die
+ sed -e 's|appdatadir = \$(datarootdir)/appdata|appdatadir = \$(datarootdir)/metainfo|' \
+ -i Makefile.am || die
+ guile-single_src_prepare
+ eautoreconf
+}
+
+src_configure() {
+ myeconfargs=(
+ --disable-gtk-doc-pdf
+ --disable-gtk2
+ --disable-installed-tests
+ --disable-mem
+ --disable-rpath
+ --disable-static
+ --enable-evince
+ --enable-fluidsynth
+ --enable-gtk3
+ --enable-x11
+ $(use_enable alsa)
+ $(use_enable aubio)
+ $(use_enable debug)
+ # --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 jack)
+ $(use_enable nls)
+ $(use_enable portaudio)
+ $(use_enable portmidi)
+ $(use_enable rubberband)
+ $(use_enable test always-build-tests)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_test() {
+ # make check fails if used with parallel builds
+ emake -j1 check
+}
+
+src_install() {
+ guile-single_src_install
+
+ # 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 -r /usr/share/denemo/manual/"${f}" /usr/share/doc/${PF}/html/"${f}"
+ done
+}
+
+pkg_postinst() {
+ font_pkg_postinst
+ xdg_desktop_database_update
+}
+
+pkg_postrm() {
+ font_pkg_postrm
+ xdg_desktop_database_update
+}
diff --git a/media-sound/denemo/files/denemo-2.6.0-fix-c99.patch b/media-sound/denemo/files/denemo-2.6.0-fix-c99.patch
new file mode 100644
index 000000000000..8d1c30c895f2
--- /dev/null
+++ b/media-sound/denemo/files/denemo-2.6.0-fix-c99.patch
@@ -0,0 +1,38 @@
+https://bugs.gentoo.org/927336
+https://savannah.gnu.org/bugs/?63720
+
+From 509906e7cc4669b525cbcb05022e7e10c6663627 Mon Sep 17 00:00:00 2001
+From: Nikita Popov <npopov@redhat.com>
+Date: Fri, 27 Jan 2023 12:13:10 +0100
+Subject: [PATCH] Fix C99 support in sffile.c
+
+This fixes one -Wimplicit-function-declaration and one
+-Wimplicit-int warning, which will become errors in future
+compiler versions.
+
+Related to:
+
+ <https://fedoraproject.org/wiki/Changes/PortingToModernC>
+ <https://fedoraproject.org/wiki/Toolchain/PortingToModernC>
+--- a/libs/libsffile/sffile.c
++++ b/libs/libsffile/sffile.c
+@@ -20,6 +20,7 @@
+ *================================================================*/
+ //Interface to Denemo License: FSF GPL version 3 or later
+
++#include <ctype.h>
+ #include <stdio.h>
+ #include <string.h>
+ #include <stdlib.h>
+@@ -51,7 +52,7 @@ static void ConvertIllegalChar(char *name){
+ int ParseSoundfont(char *soundfont, int index, char **name, int *preset, int *bank) {
+ FILE *fp;
+ static SFInfo sf;
+- static initialized = FALSE;
++ static int initialized = FALSE;
+ int i;
+ int number = 0;
+ if(soundfont) {
+--
+2.39.1
+
diff --git a/media-sound/denemo/files/denemo-2.6.0-incompatible-pointers.patch b/media-sound/denemo/files/denemo-2.6.0-incompatible-pointers.patch
new file mode 100644
index 000000000000..28274e810eb9
--- /dev/null
+++ b/media-sound/denemo/files/denemo-2.6.0-incompatible-pointers.patch
@@ -0,0 +1,36 @@
+diff --git a/src/source/proof.c b/src/source/proof.c
+index f9a02bf0e..3b8f5fc82 100644
+--- a/src/source/proof.c
++++ b/src/source/proof.c
+@@ -280,7 +280,7 @@ press (EvView * view, GdkEventButton *event, EvDocumentModel *model)
+ infodialog (help_text);
+ nearest_annotation_text = NULL;
+ extern EvMappingList * ev_document_annotations_get_annotations();
+- EvMappingList *mapping_list = ev_document_annotations_get_annotations (doc, ev_document_get_page(doc, i));
++ EvMappingList *mapping_list = ev_document_annotations_get_annotations (EV_DOCUMENT_ANNOTATIONS (doc), ev_document_get_page(doc, i));
+ if(mapping_list)
+ {
+ gdouble nearest = G_MAXDOUBLE;
+@@ -313,7 +313,7 @@ find_annotated_pages (EvDocumentModel *model)
+ for (i=0; i< ev_document_get_n_pages(doc);i++)
+ {
+ extern EvMappingList * ev_document_annotations_get_annotations();
+- EvMappingList *mapping_list = ev_document_annotations_get_annotations (doc, ev_document_get_page(doc, i));
++ EvMappingList *mapping_list = ev_document_annotations_get_annotations (EV_DOCUMENT_ANNOTATIONS (doc), ev_document_get_page(doc, i));
+ if(mapping_list)
+ {
+ annotated_pages = g_list_append (annotated_pages, GINT_TO_POINTER(i));
+diff --git a/tests/integration.c b/tests/integration.c
+index f3aad7a1f..5910425e6 100644
+--- a/tests/integration.c
++++ b/tests/integration.c
+@@ -248,7 +248,7 @@ parse_dir_and_run_complex_test(gchar* path, const gchar* extension)
+ while(files){
+ filename = g_build_filename(path, files->data, NULL);
+ gchar* test_case_path = g_strdup_printf("%s-%d", test_case_path_fragment, test_case_path_counter);
+- g_test_add (test_case_path, gchar*, filename, setup, test_open_save_complex_file, teardown);
++ g_test_add (test_case_path, void, filename, setup, test_open_save_complex_file, teardown);
+ g_free(test_case_path);
+ test_case_path_counter ++;
+ files = g_list_next(files);
+