From 65eed885d636e74eb3349b3aacee5e945a99f092 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Thu, 8 Jul 2021 19:38:09 -0500 Subject: [PATCH 1/4] klavaro: 3.11 -> 3.13, espeak support * espeak fixup from #64488 * gtkdatabox --- pkgs/games/klavaro/default.nix | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/pkgs/games/klavaro/default.nix b/pkgs/games/klavaro/default.nix index 2a8f68ddd2cc..25bfb4daee28 100644 --- a/pkgs/games/klavaro/default.nix +++ b/pkgs/games/klavaro/default.nix @@ -2,23 +2,29 @@ , fetchurl , makeWrapper , curl +, espeak , file , gtk3 +, gtkdatabox , intltool , pkg-config }: stdenv.mkDerivation rec { pname = "klavaro"; - version = "3.11"; + version = "3.13"; src = fetchurl { url = "mirror://sourceforge/klavaro/${pname}-${version}.tar.bz2"; - sha256 = "1rkxaqb62w4mv86fcnmr32lq6y0h4hh92wmsy5ddb9a8jnzx6r7w"; + sha256 = "0z6c3lqikk50mkz3ipm93l48qj7b98lxyip8y6ndg9y9k0z0n878"; }; nativeBuildInputs = [ intltool makeWrapper pkg-config ]; - buildInputs = [ curl gtk3 ]; + buildInputs = [ curl gtk3 gtkdatabox ]; + + postPatch = '' + substituteInPlace src/tutor.c --replace '"espeak ' '"${espeak}/bin/espeak ' + ''; postInstall = '' wrapProgram $out/bin/klavaro \ From 09c7cf2f4ecc1665b58002bb9683ba00fbc559cd Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Sun, 13 Mar 2022 21:43:03 -0500 Subject: [PATCH 2/4] klavaro: patch to fix invalid free --- pkgs/games/klavaro/default.nix | 2 + .../klavaro/trans_lang_get_similar.patch | 71 +++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 pkgs/games/klavaro/trans_lang_get_similar.patch diff --git a/pkgs/games/klavaro/default.nix b/pkgs/games/klavaro/default.nix index 25bfb4daee28..ec00b8308de7 100644 --- a/pkgs/games/klavaro/default.nix +++ b/pkgs/games/klavaro/default.nix @@ -26,6 +26,8 @@ stdenv.mkDerivation rec { substituteInPlace src/tutor.c --replace '"espeak ' '"${espeak}/bin/espeak ' ''; + patches = [ ./trans_lang_get_similar.patch ]; + postInstall = '' wrapProgram $out/bin/klavaro \ --prefix LD_LIBRARY_PATH : $out/lib diff --git a/pkgs/games/klavaro/trans_lang_get_similar.patch b/pkgs/games/klavaro/trans_lang_get_similar.patch new file mode 100644 index 000000000000..3b6644c5f7f7 --- /dev/null +++ b/pkgs/games/klavaro/trans_lang_get_similar.patch @@ -0,0 +1,71 @@ +--- a/src/translation.c (revision 137) ++++ b/src/translation.c (working copy) +@@ -257,23 +257,23 @@ + * Private auxiliar function + */ + static gboolean +-trans_lang_get_similar (gchar * test) ++trans_lang_get_similar (gchar ** test) + { + gint i; + gchar aux_code_2[3]; + + /* Prefer C over en_GB for English variants other than en_GB. (Debian patch 02) */ +- if (g_str_has_prefix (test, "en")) ++ if (g_str_has_prefix (*test, "en")) + { +- g_free (test); +- test = g_strdup ("C"); ++ g_free (*test); ++ *test = g_strdup ("C"); + return (TRUE); + } + +- if (g_str_equal (test, "C")) ++ if (g_str_equal (*test, "C")) + return TRUE; + +- strncpy (aux_code_2, test, 2); ++ strncpy (aux_code_2, *test, 2); + aux_code_2[2] = '\0'; + + for (i = 0; i < lang_num; i++) +@@ -280,15 +280,15 @@ + { + if (strstr (lang[i].code, aux_code_2)) + { +- g_free (test); +- test = g_strdup (lang[i].code); ++ g_free (*test); ++ *test = g_strdup (lang[i].code); + break; + } + } +- if (i == lang_num && g_str_has_prefix (test, "en")) ++ if (i == lang_num && g_str_has_prefix (*test, "en")) + { +- g_free (test); +- test = g_strdup ("C"); ++ g_free (*test); ++ *test = g_strdup ("C"); + return (TRUE); + } + return (i == lang_num ? FALSE : TRUE); +@@ -356,7 +356,7 @@ + lang_ok = (i == 0 ? TRUE : FALSE); + break; + } +- lang_ok = trans_lang_get_similar (tmp_code); ++ lang_ok = trans_lang_get_similar (&tmp_code); + if (lang_ok == TRUE) + break; + g_free (tmp_code); +@@ -368,7 +368,7 @@ + tmp_code = g_win32_getlocale (); + lang_ok = trans_lang_is_available (tmp_code); + if (lang_ok == FALSE) +- lang_ok = trans_lang_get_similar (tmp_code); ++ lang_ok = trans_lang_get_similar (&tmp_code); + #endif + } + if (tmp_code == NULL) From 606eab00d04f298a98a8c9e468b1cd19d7faec48 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Sun, 13 Mar 2022 22:27:16 -0500 Subject: [PATCH 3/4] klavaro: patch to use non-deprecated names for icons Started just wanting to fix the "gtk-strikethrough" icon, but kept finding items marked deprecated. This change may be incomplete, but all changes were to deprecated icons (that used to be "stock", I think). Icon name candidates were identified by extracting all used icon-name values and checking which existed in my system's copy of the 'breeze' theme. If missing, these were checked online to find the new replacement. (I couldn't find an authoritative list of the replacements, but looking each up finds the right deprecation warning) --- pkgs/games/klavaro/default.nix | 2 +- pkgs/games/klavaro/icons.patch | 137 +++++++++++++++++++++++++++++++++ 2 files changed, 138 insertions(+), 1 deletion(-) create mode 100644 pkgs/games/klavaro/icons.patch diff --git a/pkgs/games/klavaro/default.nix b/pkgs/games/klavaro/default.nix index ec00b8308de7..6ea029176482 100644 --- a/pkgs/games/klavaro/default.nix +++ b/pkgs/games/klavaro/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { substituteInPlace src/tutor.c --replace '"espeak ' '"${espeak}/bin/espeak ' ''; - patches = [ ./trans_lang_get_similar.patch ]; + patches = [ ./icons.patch ./trans_lang_get_similar.patch ]; postInstall = '' wrapProgram $out/bin/klavaro \ diff --git a/pkgs/games/klavaro/icons.patch b/pkgs/games/klavaro/icons.patch new file mode 100644 index 000000000000..750a899d23d6 --- /dev/null +++ b/pkgs/games/klavaro/icons.patch @@ -0,0 +1,137 @@ +--- a/data/klavaro.glade (revision 137) ++++ b/data/klavaro.glade (working copy) +@@ -311,7 +311,7 @@ + + True + False +- gtk-delete ++ edit-delete + + + False +@@ -1232,7 +1232,7 @@ + + True + False +- gtk-delete ++ edit-delete + + + False +@@ -1352,7 +1352,7 @@ + + True + False +- gtk-open ++ document-open + + + True +@@ -1510,7 +1510,7 @@ + + True + False +- gtk-open ++ document-open + 2 + + +@@ -1557,7 +1557,7 @@ + + True + False +- gtk-paste ++ edit-paste + 2 + + +@@ -1604,7 +1604,7 @@ + + True + False +- gtk-delete ++ edit-delete + 2 + + +@@ -2051,7 +2051,7 @@ + + True + False +- gtk-delete ++ edit-delete + + + False +@@ -2343,7 +2343,7 @@ + + True + False +- gtk-media-rewind ++ media-seek-backward + 1 + + +@@ -2418,7 +2418,7 @@ + + True + False +- gtk-go-back ++ go-previous + + + False +@@ -2469,7 +2469,7 @@ + + True + False +- gtk-go-forward ++ go-next + + + False +@@ -2577,7 +2577,7 @@ + + True + False +- gtk-save ++ document-save + + + False +@@ -2825,7 +2825,7 @@ + + True + False +- gtk-strikethrough ++ format-text-strikethrough + 6 + + +@@ -2901,7 +2901,7 @@ + + True + False +- gtk-bold ++ format-text-bold + 6 + + +@@ -3630,7 +3630,7 @@ + + True + False +- gtk-goto-top ++ go-top + + + False +@@ -3678,7 +3678,7 @@ + + True + False +- gtk-goto-bottom ++ go-bottom + + + False From 5dd15bb54cb9e8eebc285b9a7c871051ec1e8baf Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Mon, 14 Mar 2022 07:30:48 -0500 Subject: [PATCH 4/4] klavaro: another icon fix per PR feedback --- pkgs/games/klavaro/icons.patch | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkgs/games/klavaro/icons.patch b/pkgs/games/klavaro/icons.patch index 750a899d23d6..1717fdf44e68 100644 --- a/pkgs/games/klavaro/icons.patch +++ b/pkgs/games/klavaro/icons.patch @@ -9,6 +9,15 @@ False +@@ -708,7 +708,7 @@ + True + True + Drag and drop text here to practice with it. +- gtk-clear ++ edit-clear + Press here to restart the exercise. Hotkey: [Ctrl-R] + Press here to restart the exercise. Hotkey: [Ctrl-R] + @@ -1232,7 +1232,7 @@ True