summaryrefslogtreecommitdiff
blob: 6edf6e2c664441f4034b55160ea4038bb2092f25 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
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
}