summaryrefslogtreecommitdiff
path: root/media-sound/solfege
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2020-04-12 03:41:30 +0100
committerV3n3RiX <venerix@redcorelinux.org>2020-04-12 03:41:30 +0100
commit623ee73d661e5ed8475cb264511f683407d87365 (patch)
tree993eb27c93ec7a2d2d19550300d888fc1fed9e69 /media-sound/solfege
parentceeeb463cc1eef97fd62eaee8bf2196ba04bc384 (diff)
gentoo Easter resync : 12.04.2020
Diffstat (limited to 'media-sound/solfege')
-rw-r--r--media-sound/solfege/Manifest9
-rw-r--r--media-sound/solfege/files/solfege-3.23.4-fix-menubar.patch16
-rw-r--r--media-sound/solfege/files/solfege-3.23.4-fix-webbrowser-module.patch26
-rw-r--r--media-sound/solfege/files/solfege-3.23.4-itstool.patch161
-rw-r--r--media-sound/solfege/files/solfege-3.23.4-no-xmllint.patch16
-rw-r--r--media-sound/solfege/files/solfege-3.23.4-topdocs-encodings.patch39
-rw-r--r--media-sound/solfege/solfege-3.22.2.ebuild56
-rw-r--r--media-sound/solfege/solfege-3.23.4.ebuild77
8 files changed, 342 insertions, 58 deletions
diff --git a/media-sound/solfege/Manifest b/media-sound/solfege/Manifest
index eb1cf97955d7..674eb8e7d2e6 100644
--- a/media-sound/solfege/Manifest
+++ b/media-sound/solfege/Manifest
@@ -1,3 +1,8 @@
-DIST solfege-3.22.2.tar.gz 6890977 BLAKE2B e9e4c34a3ebf91470442d294fd97b51e8845b4634dbb9dd0ba786d8c855d177a4fd00e63f0e872c45d52a0bb7be32d7efbd17ab77448c8f8bf9903ca4a626a7b SHA512 7767d5747b324558fb5ebc82767fd592636acbea78d083992ae100a6b288bb3cc233745e9f12c66f5059a8531a85be2ec82aa856d9251206c737a090b1d42a26
-EBUILD solfege-3.22.2.ebuild 1306 BLAKE2B 9f376a1e6e10563c3ded1ae8c82827f2a94cc173c5cf04e0c8a2c68205e45a2b1f3f991afa2d439bcfa025fd3b1fcf907f92ba3ac2b2a90e8de2b5411a1deb5a SHA512 5679b894a4a1b6fefeeafa9bc91b49c43220f0d95d4e52b23b87cf34889e6984e13f0a77903fae4225e9052d1f2c4a79fb397d66a5df439acffcdfed3bca8368
+AUX solfege-3.23.4-fix-menubar.patch 618 BLAKE2B 284817806aaf27b17f7733b5bbcf149ba5b2d9be3b2b6bcb77127bcb04ef7ad7647df4a78f807312237dae478a789c1426753791f3131f52ecb55c30c865c1fc SHA512 1f7340b7ba4224900b94af8060c125f631748938488c87b5c26e20feb2f8b24e927fe5fc8bb9591d6ab87d6b16a11462373b6d3324a9a95c97f1d4352b35de1f
+AUX solfege-3.23.4-fix-webbrowser-module.patch 831 BLAKE2B ac1375dd407f1085cbefd5fb9fb38c9f16cfb283e72f70de12d6343bb279be4b4c95122e872b6c20df16685210b6b549eda704881378db893fecc5a15d25657b SHA512 bd4452792bb85e48dc597180b3eab3b67ecb3541b24b0c56a9e137fc6c9cabe634c3db1b352d3eb7b706a9fce6b915cfdbc213ff7e8c1572e927dd238ce308ac
+AUX solfege-3.23.4-itstool.patch 6767 BLAKE2B 0f0fe564fea7ab8396fb597257bccf90ca7760d36d1c4e780243220b0f356353ca188f4a7bb87c2bef94d6b031ee27277d479ca4c3de304ad3672e09f2ba01c9 SHA512 c18dce43d22f81b288ce6b3b42f76457e7371adf83e89f92676b3c96535c1b4eaf64037e32d4d650d126c65551aab4fa67f4479a86e7c2579305790829de6f44
+AUX solfege-3.23.4-no-xmllint.patch 448 BLAKE2B bbc9b1247f68f36ab2a426972255dee4fa6c2531919df090133c9daf59e964eb6be93bac04f99e88c0d1184f10429b2b3d63b8b7a6eeb8acb089628f25295832 SHA512 3eda0a2c845d6f4e82b79542835a9a20658a522c86b162821b0b0a61187505c811710660ee1fa5395709f14607fbd8e95b542263c155284e47950b5178a1854d
+AUX solfege-3.23.4-topdocs-encodings.patch 1347 BLAKE2B 40211d4dada0e2d3d9185f299ab2ad7e8b4e3afeab24a6c35d9c5bdd8685f35bea157d3f6ab916aa6a347c96f5a35495c7e61682b118513e3a2a35833334a712 SHA512 550f1ad9a01fb27e3d3a5e6b8b99a2126b8607cf72bcaef2d8f039c28c77e0f11e0e41da3f01907f4fdc430cb97b114135b9c1a64317fdbff106d9377cfeed8d
+DIST solfege-3.23.4.tar.gz 5148412 BLAKE2B 8543aaa659f753af87f7b911401ee38713aa51afcf3dc33d4bfacbc880c8088aff78a81ce03369ba0b58d14a4b6965d78d97486ac2c3481f066591db0f29743d SHA512 e489dec514b4f387ebac7627d83d1a7766718d10a26c3ec6257d3f4b27a082501df16a27c8a16023b34a06cd4832fabaa1c73bcded52c502fc68ab57b303eeea
+EBUILD solfege-3.23.4.ebuild 1735 BLAKE2B 2d693bc3247ce4ef11139786c5eac4819f3c840a97b80ba03cf0e3e9b9bb1370b53258b5e681b6b8517bf2d9a5a3b70f9037c3ac4fcd8547d438298de4a612f3 SHA512 bc4ef02636872095c72fef17870c8c5921cecfafc0fb009d20261c7685bb200e3b4c78d5b2c95df84e5e69cd698b0e14c20e42f3daf9182b7d7623ff224d62bc
MISC metadata.xml 330 BLAKE2B 7b72c052aeabd90cb225ca7ccc8ba50caceacccc2d2265dfbcc9c99e535753c5413cc6428b159c62b7bc7aeae0107e8f583371a8f813190f7085c16a43936bb4 SHA512 8b9ec04258e5d3437339d00e9ce5e565b865b7f80230d78bd39cafcea569a4d5f413d0f251899842adbfc7583c77041aaa50e9ee101f2a0496b01393b0740c86
diff --git a/media-sound/solfege/files/solfege-3.23.4-fix-menubar.patch b/media-sound/solfege/files/solfege-3.23.4-fix-menubar.patch
new file mode 100644
index 000000000000..e45e1baa4825
--- /dev/null
+++ b/media-sound/solfege/files/solfege-3.23.4-fix-menubar.patch
@@ -0,0 +1,16 @@
+Author: Reiner Herrmann <reiner@reiner-h.de>
+Description: with recent gtk+ versions, the menubar text is not visibile
+ As a workaround another container (HBox) is used.
+Bug: https://savannah.gnu.org/bugs/index.php?53109
+
+--- a/solfege/mainwin.py
++++ b/solfege/mainwin.py
+@@ -267,7 +267,7 @@
+ self.g_ui_manager.add_ui_from_file("ui.xml")
+
+ self.add_accel_group(self.g_ui_manager.get_accel_group())
+- hdlbox = Gtk.HandleBox()
++ hdlbox = Gtk.HBox()
+ hdlbox.show()
+ hdlbox.add(self.g_ui_manager.get_widget('/Menubar'))
+ self._vbox.pack_start(hdlbox, False, False, 0)
diff --git a/media-sound/solfege/files/solfege-3.23.4-fix-webbrowser-module.patch b/media-sound/solfege/files/solfege-3.23.4-fix-webbrowser-module.patch
new file mode 100644
index 000000000000..1fe93228bdfb
--- /dev/null
+++ b/media-sound/solfege/files/solfege-3.23.4-fix-webbrowser-module.patch
@@ -0,0 +1,26 @@
+From 9cf6ec0727344bc3e86acc96b4a751a54f9de302 Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <asturm@gentoo.org>
+Date: Sun, 22 Mar 2020 23:47:21 +0100
+Subject: [PATCH] fix early access of webbrowser module internal, leading to
+ AttributeError
+
+See also: https://bugs.archlinux.org/task/63703
+---
+ solfege/mainwin.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/solfege/mainwin.py b/solfege/mainwin.py
+index c058976..a384d57 100644
+--- a/solfege/mainwin.py
++++ b/solfege/mainwin.py
+@@ -25,6 +25,7 @@ import textwrap
+ # debian etch system, the browser does will freeze solfege until
+ # I close the browser window.
+ try:
++ webbrowser.register_standard_browsers()
+ i = webbrowser._tryorder.index("x-www-browser")
+ webbrowser._tryorder.append(webbrowser._tryorder[i])
+ del webbrowser._tryorder[i]
+--
+2.25.2
+
diff --git a/media-sound/solfege/files/solfege-3.23.4-itstool.patch b/media-sound/solfege/files/solfege-3.23.4-itstool.patch
new file mode 100644
index 000000000000..755ed1f77e7d
--- /dev/null
+++ b/media-sound/solfege/files/solfege-3.23.4-itstool.patch
@@ -0,0 +1,161 @@
+diff --git a/Makefile.in b/Makefile.in
+index 5de799b..9851380 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -39,10 +39,9 @@ export MAKEINFO:=@MAKEINFO@
+ export MSGFMT:=@MSGFMT@
+ export MSGGREP:=@MSGGREP@
+ export MSGMERGE:=@MSGMERGE@
+-export XML2PO:=@XML2PO@
++export ITSTOOL:=@ITSTOOL@
+ export XSLTPROC:=@XSLTPROC@
+ export STYLESHEET:=@STYLESHEET@
+-export HAVE_STYLESHEET:=@HAVE_STYLESHEET@
+ export PYTHON:=@PYTHON@
+ export PYTHON_VERSION:=@PYTHON_VERSION@
+ export PYTHON_PREFIX:=@PYTHON_PREFIX@
+@@ -288,7 +287,7 @@ help:
+ @echo "set skipmanual=yes Don't rebuild the music theory images"
+ @echo "make po-update Update po/solfege.pot and msgmerge with po/*.po"
+ @echo "make manual-po-update Update help/*/solfege.pot and msgmerge with help/*/*.po"
+- @echo "make update-manual Rebuild the manual, requiring xml2po etc."
++ @echo "make update-manual Rebuild the manual, requiring itstool etc."
+ @echo "make test-screenshots See which screenshots are missing in the user manual"
+ @echo "make help Display this message."
+ @echo "help/C/one-big-page.html Make documentation in on big html file."
+diff --git a/configure.ac b/configure.ac
+index 323eb27..7751792 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -92,23 +92,12 @@ MY_PATH_PROG(CAT, cat)
+
+ # FIXME we had to comment out this to run on win32
+ # PKG_CHECK_MODULES(XML2PO, xml2po >= 0.4)
+-AC_PATH_PROG(XML2PO, xml2po)
+-AC_SUBST(XML2PO)
++AC_PATH_PROG(ITSTOOL, itstool)
++AC_SUBST(ITSTOOL)
+
+ AC_PATH_PROG(XSLTPROC, xsltproc)
+ AC_SUBST(XSLTPROC)
+
+-AC_ARG_ENABLE(docbook-stylesheet,
+- AC_HELP_STRING([--enable-docbook-stylesheet=PATH],
+- [PATH is filename including full path to the html/chunk.xsl
+- stylesheet.]),
+- [STYLESHEET=$enableval],
+- [STYLESHEET=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/html/chunk.xsl])
+-
+-AC_CHECK_FILE($STYLESHEET, HAVE_STYLESHEET=yes, HAVE_STYLESHEET=no)
+-AC_SUBST(STYLESHEET)
+-AC_SUBST(HAVE_STYLESHEET)
+-
+ AC_CHECK_HEADER(sys/soundcard.h, HAVE_SOUNDCARD_H=yes, HAVE_SOUNDCARD_H=no)
+ AC_SUBST(HAVE_SOUNDCARD_H)
+
+@@ -178,9 +167,9 @@ AC_OUTPUT
+
+ AC_MSG_NOTICE
+ AC_MSG_NOTICE([Please remember to rerun configure if you change swig versions!])
+-if test -z "$XML2PO"; then
++if test -z "$ITSTOOL"; then
+ AC_MSG_NOTICE
+-AC_MSG_NOTICE([xml2po was not found. This is no big deal, but it mean that the])
++AC_MSG_NOTICE([itstool was not found. This is no big deal, but it mean that the])
+ AC_MSG_NOTICE([translated user manuals will not be updated if you make changes])
+ AC_MSG_NOTICE([to the english manual.])
+ fi
+diff --git a/help/C/Makefile b/help/C/Makefile
+index c14c3c8..f169682 100644
+--- a/help/C/Makefile
++++ b/help/C/Makefile
+@@ -38,13 +38,13 @@ dist_files += help/C/solfege.pot \
+ $(wildcard help/C/scales/images/modes/scales/*.png) \
+
+ help/C/solfege.pot: $(USER_MANUAL_SOURCES)
+-ifndef XML2PO
++ifndef ITSTOOL
+ @echo
+- @echo "You need to install xml2po to update help/C/solfege.pot"
++ @echo "You need to install itstool to update help/C/solfege.pot"
+ @echo
+ @exit 64
+ else
+- $(XML2PO) --keep-entities $(USER_MANUAL_SOURCES) | $(MSGGREP) -v -K -e "@@image:" -e "^Tom" -e "^Amundsen" -e "^tca@gnu.org" -e "^bug-solfege@gnu.org" -e "^solfege-devel@lists.sourceforge.net" -e "^solfege-announce@lists.sourceforge.net" -o help/C/solfege.pot
++ $(ITSTOOL) $(USER_MANUAL_SOURCES) | $(MSGGREP) -v -K -e "@@image:" -e "^Tom" -e "^Amundsen" -e "^tca@gnu.org" -e "^bug-solfege@gnu.org" -e "^solfege-devel@lists.sourceforge.net" -e "^solfege-announce@lists.sourceforge.net" -o help/C/solfege.pot
+ endif
+
+ help/C/index.html: $(USER_MANUAL_SOURCES) $(NOT_TRANSLATED_SOURCES)
+diff --git a/help/Makefile b/help/Makefile
+index f333161..a712266 100644
+--- a/help/Makefile
++++ b/help/Makefile
+@@ -13,6 +13,7 @@ XSLTPARAMS:= \
+ --param callout.graphics 0 \
+ --param xref.with.number.and.title 0 \
+ --xinclude \
++--nonet \
+ --stringparam html.stylesheet "../style.css"
+
+ dist_files += help/Makefile help/README \
+@@ -65,12 +66,11 @@ help/ru/solfege.xml: help/C/solfege.pot help/ru/ru.po $(USER_MANUAL_SOURCES)
+ help/tr/solfege.xml: help/C/solfege.pot help/tr/tr.po $(USER_MANUAL_SOURCES)
+
+ help/%/solfege.xml:
+-ifdef XML2PO
++ifdef ITSTOOL
+ ifneq "$(skipmanual)" "yes"
+- for filename in $(notdir $(USER_MANUAL_SOURCES)); do \
+- $(XML2PO) --keep-entities -p $(patsubst help/%/solfege.xml, help/%, $@)/$(patsubst help/%/solfege.xml,%,$@).po -o $(dir $@)/$$filename help/C/$$filename; \
+- done
+- rm -f .xml2po.mo
++ msgfmt $(patsubst help/%/solfege.xml, help/%, $@)/$(patsubst help/%/solfege.xml,%,$@).po -o $(patsubst help/%/solfege.xml, help/%, $@)/$(patsubst help/%/solfege.xml,%,$@).mo;
++ $(ITSTOOL) -m $(patsubst help/%/solfege.xml, help/%, $@)/$(patsubst help/%/solfege.xml,%,$@).mo -o help/$(patsubst help/%/solfege.xml,%,$@) $(USER_MANUAL_SOURCES);
++ rm -f $(patsubst help/%/solfege.xml, help/%, $@)/$(patsubst help/%/solfege.xml,%,$@).mo
+ endif
+ endif
+
+@@ -113,13 +113,12 @@ help/C/rhythmtable.xml: tools/gen_rhythms_table.py
+ $(PYTHON) tools/gen_rhythms_table.py
+
+ %/one-big-page.html: %/solfege.xml
+- (cd $(dir $<); $(XSLTPROC) $(I18NDEFS) --xinclude --stringparam html.stylesheet "../style.css" --stringparam root.filename "one-big-page" --param onechunk 1 $(subst chunk,onechunk,$(STYLESHEET)) $(notdir $<) )
++ (cd $(dir $<); $(XSLTPROC) $(I18NDEFS) --xinclude --stringparam html.stylesheet "../style.css" --stringparam root.filename "one-big-page" --param onechunk 1 "http://docbook.sourceforge.net/release/xsl/current/html/onechunk.xsl" $(notdir $<) )
+
+ %/index.html: %/solfege.xml
+ ifneq "$(skipmanual)" "yes"
+-ifeq "$(HAVE_STYLESHEET)" "yes"
+ ifneq "$(XSLTPROC)" ""
+- (cd $(dir $<); $(XSLTPROC) $(I18NDEFS) $(XSLTPARAMS) $(STYLESHEET) $(notdir $<))
++ (cd $(dir $<); $(XSLTPROC) $(I18NDEFS) $(XSLTPARAMS) "http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl" $(notdir $<))
+ else
+ ifneq "$(skipmanual)" "yes"
+ @echo "*** Cannot rebuild the user manual because you don't have xsltproc installed."
+@@ -127,25 +126,17 @@ ifeq "$(HAVE_STYLESHEET)" "yes"
+ exit 64
+ endif
+ endif
+-else
+- ifneq "$(skipmanual)" "yes"
+- @echo "*** Cannot rebuild html docs because we are missing the docbook stylesheet."
+- @echo "*** Try to install the missing software and reconfigure."
+- @echo "*** Run make as 'make skipmanual=yes' to ignore the problem and don't build the docs"
+- exit 64
+- endif
+-endif
+ endif
+ ifeq "$(skipmanual)" "yes"
+ @echo "*** Not building manual because nomanual=yes"
+ endif
+
+ .PHONY: update-manual
+-ifdef XML2PO
++ifdef ITSTOOL
+ update-manual: $(addsuffix /index.html,$(addprefix help/,C $(USER_MANUAL_LANGUAGES)))
+ else
+ update-manual:
+- @echo "You have to install xml2po to run 'make update-manual'"
++ @echo "You have to install itstool to run 'make update-manual'"
+ endif
+
+ %.png:%.ly
diff --git a/media-sound/solfege/files/solfege-3.23.4-no-xmllint.patch b/media-sound/solfege/files/solfege-3.23.4-no-xmllint.patch
new file mode 100644
index 000000000000..b031483b923c
--- /dev/null
+++ b/media-sound/solfege/files/solfege-3.23.4-no-xmllint.patch
@@ -0,0 +1,16 @@
+Author: Tom Cato Amundsen <tca@debian.org>
+Description: don't run xmllint to fix FTBFS
+Bug-Debian: https://bugs.debian.org/643609
+Forwarded: not-needed
+
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -197,7 +197,7 @@
+
+ .PHONY: test
+
+-test: xmllint po/solfege.pot
++test: po/solfege.pot
+ if grep -H -n -e "[Uu]ser'*s manual" po/solfege.pot; then \
+ echo "Don't write \"users manual\" or \"user's manual\". Always write \"user manual\""; \
+ exit 10; \
diff --git a/media-sound/solfege/files/solfege-3.23.4-topdocs-encodings.patch b/media-sound/solfege/files/solfege-3.23.4-topdocs-encodings.patch
new file mode 100644
index 000000000000..497a646c4e8c
--- /dev/null
+++ b/media-sound/solfege/files/solfege-3.23.4-topdocs-encodings.patch
@@ -0,0 +1,39 @@
+From 176610fa27d8415d67c8f24974e83e7e851b889c Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <asturm@gentoo.org>
+Date: Sun, 22 Mar 2020 23:44:53 +0100
+Subject: [PATCH] Fix encoding
+
+---
+ topdocs/AUTHORS.texi | 2 +-
+ topdocs/README.texi | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/topdocs/AUTHORS.texi b/topdocs/AUTHORS.texi
+index dcef2fb..3bc9ba8 100644
+--- a/topdocs/AUTHORS.texi
++++ b/topdocs/AUTHORS.texi
+@@ -35,7 +35,7 @@ Small update to fr.po
+ Updated @file{es.po} file and added @file{es_MX.po}. Compiled binaries
+ for RedHat 8.0. Testing and bugreporting.
+
+-@item David Asorey lvares and @email{die@@die.com.fr, Diego Duchowney}
++@item David Asorey Álvares and @email{die@@die.com.fr, Diego Duchowney}
+
+ Spannish translations.
+
+diff --git a/topdocs/README.texi b/topdocs/README.texi
+index fcedd28..b4aa798 100644
+--- a/topdocs/README.texi
++++ b/topdocs/README.texi
+@@ -166,7 +166,7 @@ You are welcome to ask questions on
+ @section History
+
+ The first versions of Solfege was written in the first quarter
+-of 1999 when I studied my 4th and last year at Malm Academy of Music.
++of 1999 when I studied my 4th and last year at Malmö Academy of Music.
+ I was writing a "special subject" (what is the english term??) about
+ ear training and used GNU Lilypond and LaTeX to typeset the paper.
+
+--
+2.25.2
+
diff --git a/media-sound/solfege/solfege-3.22.2.ebuild b/media-sound/solfege/solfege-3.22.2.ebuild
deleted file mode 100644
index 4b2a288d34e1..000000000000
--- a/media-sound/solfege/solfege-3.22.2.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="sqlite"
-
-inherit python-single-r1
-
-DESCRIPTION="GNU Solfege is a program written to help you practice ear training"
-HOMEPAGE="https://www.gnu.org/software/solfege/"
-SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="amd64 ~ppc x86"
-IUSE="alsa oss"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-RDEPEND="${PYTHON_DEPS}
- >=dev-python/pygtk-2.12
- gnome-base/librsvg
- alsa? ( dev-python/pyalsa )
- !oss? ( media-sound/timidity++ )"
-DEPEND="${PYTHON_DEPS}
- dev-lang/swig
- sys-devel/gettext
- sys-apps/texinfo
- virtual/pkgconfig
- dev-libs/libxslt
- app-text/txt2man
- >=app-text/docbook-xsl-stylesheets-1.60"
-
-RESTRICT="test"
-
-src_prepare() {
- sed -i -e '/^CFLAGS/s:-I/usr/src/linux/include::' \
- solfege/soundcard/Makefile || die
-}
-
-src_configure() {
- local xslloc=$( xmlcatalog /etc/xml/catalog http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl | sed 's@file://@@' )
-
- econf \
- --enable-docbook-stylesheet=${xslloc} \
- $(use_enable oss oss-sound)
-}
-
-src_compile() {
- emake skipmanual=yes
-}
-
-src_install() {
- emake DESTDIR="${ED}" nopycompile=YES skipmanual=yes install
- dodoc AUTHORS *hange*og FAQ README
-}
diff --git a/media-sound/solfege/solfege-3.23.4.ebuild b/media-sound/solfege/solfege-3.23.4.ebuild
new file mode 100644
index 000000000000..84956a2abe8c
--- /dev/null
+++ b/media-sound/solfege/solfege-3.23.4.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7,8} )
+PYTHON_REQ_USE="sqlite"
+inherit autotools python-single-r1
+
+DESCRIPTION="GNU program to help practicing ear training"
+HOMEPAGE="https://www.gnu.org/software/solfege/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="alsa oss"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+BDEPEND="${PYTHON_DEPS}
+ >=app-text/docbook-xsl-stylesheets-1.60
+ app-text/txt2man
+ dev-lang/swig
+ dev-libs/libxslt
+ dev-util/itstool
+ sys-apps/texinfo
+ sys-devel/gettext
+ virtual/pkgconfig
+"
+RDEPEND="${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/pycairo[${PYTHON_MULTI_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_MULTI_USEDEP}]
+ ')
+ x11-libs/gtk+:3
+ alsa? ( dev-python/pyalsa )
+ !oss? ( media-sound/timidity++ )
+"
+DEPEND="${RDEPEND}"
+
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}/${P}-no-xmllint.patch"
+ "${FILESDIR}/${P}-fix-menubar.patch"
+ "${FILESDIR}/${P}-itstool.patch"
+ "${FILESDIR}/${P}-topdocs-encodings.patch"
+ "${FILESDIR}/${P}-fix-webbrowser-module.patch"
+)
+
+src_prepare() {
+ default
+
+ # fix encoding of the Hungarian translation, thanks to Arch Linux
+ iconv -f ISO-8859-2 -t UTF-8 po/hu.po -o po/hu.po.new || die
+ sed -i 's/charset=iso-8859-2/charset=utf-8/' po/hu.po.new || die
+ mv po/hu.po.new po/hu.po || die
+
+ sed -E 's|(PYTHON_INCLUDES=).+|\1"$(pkg-config --cflags-only-I python3)"|g' \
+ -i acinclude.m4 || die
+
+ eautoreconf
+}
+
+src_configure() {
+ econf $(use_enable oss oss-sound)
+}
+
+src_compile() {
+ emake skipmanual=yes
+}
+
+src_install() {
+ emake DESTDIR="${ED}" nopycompile=YES skipmanual=yes install
+ dodoc AUTHORS changelog FAQ README
+}