about summary refs log tree commit diff
path: root/nixpkgs/pkgs/misc/solfege
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/misc/solfege')
-rw-r--r--nixpkgs/pkgs/misc/solfege/css.patch33
-rw-r--r--nixpkgs/pkgs/misc/solfege/default.nix46
-rw-r--r--nixpkgs/pkgs/misc/solfege/menubar.patch7
-rw-r--r--nixpkgs/pkgs/misc/solfege/webbrowser.patch8
4 files changed, 94 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/misc/solfege/css.patch b/nixpkgs/pkgs/misc/solfege/css.patch
new file mode 100644
index 000000000000..40273df0132b
--- /dev/null
+++ b/nixpkgs/pkgs/misc/solfege/css.patch
@@ -0,0 +1,33 @@
+Fix theme parsing errors: https://savannah.gnu.org/bugs/index.php?53107
+
+--- a/solfege.css
++++ b/solfege.css
+@@ -7,19 +7,19 @@
+-#ProgressionNameLabel, #Feedback { font: "Sans 18" }
+-#ProgressionLabelNumber { font: "Sans 12" }
+-#BoldText { font: Bold }
++#ProgressionNameLabel, #Feedback { font: 18px Sans }
++#ProgressionLabelNumber { font: 12px Sans }
++#BoldText { font: 12px Sans Bold }
+ 
+-#StatisticsH1, #Heading1 { font: Sans 18 }
+-#StatisticsH2, #Heading2 { font: Sans 14 }
++#StatisticsH1, #Heading1 { font: 18px Sans }
++#StatisticsH2, #Heading2 { font: 14px Sans }
+ 
+-#BpmInactiveLabel { font: Sans 12 }
+-#BpmActiveLabel { font: Sans Bold 12 }
++#BpmInactiveLabel { font: 12px Sans }
++#BpmActiveLabel { font: 12px Sans Bold }
+ 
+ #DIALOGWARNING2 { background: red; }
+ #DIALOGWARNING  { background: yellow; }
+ 
+ #DEBUGWARNING {
+   background: red;
+-  font: Sans Bold 24;
++  font: 24px Sans Bold;
+ }
+ 
+-#FlashBarLabel { font: Sans 16 }
++#FlashBarLabel { font: 16px Sans }
diff --git a/nixpkgs/pkgs/misc/solfege/default.nix b/nixpkgs/pkgs/misc/solfege/default.nix
new file mode 100644
index 000000000000..05e13f3c9aae
--- /dev/null
+++ b/nixpkgs/pkgs/misc/solfege/default.nix
@@ -0,0 +1,46 @@
+{ lib, fetchurl, gettext, pkgconfig, texinfo, wrapGAppsHook
+, buildPythonApplication, pycairo, pygobject3
+, gobject-introspection, gtk3, librsvg
+, alsaUtils, timidity, mpg123, vorbis-tools, csound, lilypond
+}:
+
+buildPythonApplication rec {
+  name = "solfege-3.23.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/solfege/${name}.tar.gz";
+    sha256 = "0sc17vf4xz6gy0s0z9ghi68yskikdmyb4gdaxx6imrm40734k8mp";
+  };
+
+  patches = [
+    ./css.patch
+    ./menubar.patch
+    ./webbrowser.patch
+  ];
+
+  nativeBuildInputs = [ gettext pkgconfig texinfo wrapGAppsHook ];
+  buildInputs = [ gobject-introspection gtk3 librsvg ];
+  propagatedBuildInputs = [ pycairo pygobject3 ];
+
+  preBuild = ''
+    sed -i -e 's|wav_player=.*|wav_player=${alsaUtils}/bin/aplay|' \
+           -e 's|midi_player=.*|midi_player=${timidity}/bin/timidity|' \
+           -e 's|mp3_player=.*|mp3_player=${mpg123}/bin/mpg123|' \
+           -e 's|ogg_player=.*|ogg_player=${vorbis-tools}/bin/ogg123|' \
+           -e 's|csound=.*|csound=${csound}/bin/csound|' \
+           -e 's|lilypond-book=.*|lilypond-book=${lilypond}/bin/lilypond-book|' \
+           default.config
+  '';
+
+  format = "other";
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "Ear training program";
+    homepage = "http://www.solfege.org/";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ bjornfor orivej ];
+  };
+}
diff --git a/nixpkgs/pkgs/misc/solfege/menubar.patch b/nixpkgs/pkgs/misc/solfege/menubar.patch
new file mode 100644
index 000000000000..36d3944af61d
--- /dev/null
+++ b/nixpkgs/pkgs/misc/solfege/menubar.patch
@@ -0,0 +1,7 @@
+Fix https://savannah.gnu.org/bugs/index.php?53109
+
+--- a/solfege/mainwin.py
++++ b/solfege/mainwin.py
+@@ -270,1 +270,1 @@
+-        hdlbox = Gtk.HandleBox()
++        hdlbox = Gtk.HBox()
diff --git a/nixpkgs/pkgs/misc/solfege/webbrowser.patch b/nixpkgs/pkgs/misc/solfege/webbrowser.patch
new file mode 100644
index 000000000000..2c9b77d0b8eb
--- /dev/null
+++ b/nixpkgs/pkgs/misc/solfege/webbrowser.patch
@@ -0,0 +1,8 @@
+Fix startup.
+
+--- a/solfege/mainwin.py
++++ b/solfege/mainwin.py
+@@ -27,2 +27,3 @@ import textwrap
+ try:
++    webbrowser.register_standard_browsers()
+     i = webbrowser._tryorder.index("x-www-browser")