git: bb71c4161707 - main - games/kanatest: revive port

From: Robert Clausecker <fuz_at_FreeBSD.org>
Date: Tue, 14 Feb 2023 20:23:52 UTC
The branch main has been updated by fuz:

URL: https://cgit.FreeBSD.org/ports/commit/?id=bb71c4161707a95f215dc5f24165310265cb6cf0

commit bb71c4161707a95f215dc5f24165310265cb6cf0
Author:     Clockwork6400 <Clockwork6400@protonmail.com>
AuthorDate: 2023-02-01 20:04:31 +0000
Commit:     Robert Clausecker <fuz@FreeBSD.org>
CommitDate: 2023-02-14 20:23:34 +0000

    games/kanatest: revive port
    
    During test the Kanatest displays randomly selected kana char
    (respecting mode and lesson) and waits for user answer expected as
    romaji equivalent. This process continues until all questions will be
    answered or all questions will be answered correctly (depends on
    options). At the end of test a short info about drilling time and
    correctness ratio is displayed. The results are stored and user can
    review his performance in any time.
    
    Submitter becomes maintainer.
    
    Changelog: https://sourceforge.net/p/kanatest/code/ci/master/tree/ChangeLog
    
    PR:             268895
    Approved by:    eduardo (mentor)
    Differential Revision: https://reviews.freebsd.org/D38519
---
 MOVED                                     |  1 -
 games/Makefile                            |  1 +
 games/kanatest/Makefile                   | 32 +++++++++++++++++++
 games/kanatest/distinfo                   |  3 ++
 games/kanatest/files/patch-po_Makefile.in | 11 +++++++
 games/kanatest/files/patch-src_gui.c      | 51 +++++++++++++++++++++++++++++++
 games/kanatest/pkg-descr                  |  7 +++++
 games/kanatest/pkg-plist                  | 21 +++++++++++++
 8 files changed, 126 insertions(+), 1 deletion(-)

diff --git a/MOVED b/MOVED
index b324f1908cf3..36232cf07ccb 100644
--- a/MOVED
+++ b/MOVED
@@ -7907,7 +7907,6 @@ math/p5-Math-Geometry-Planar-GPC-Polygon||2015-12-30|Has expired: Broken for mor
 www/eliom||2015-12-30|Has expired: Depends on broken and expiring www/ocsigen
 audio/py-fastaudio||2015-12-30|Has expired: Broken for more than 6 months
 devel/jgoodies-common||2015-12-30|Has expired: Broken for more than 6 months
-games/kanatest||2015-12-30|Has expired: Broken for more than 6 months
 security/burpsuite||2015-12-30|Has expired: Broken for more than 6 months
 dns/bind10|dns/bundy|2015-12-31|Has expired: Is not developed any more, use dns/bundy
 lang/perl5.16||2015-12-31|Has expired: Unsupported, please upgrade to a more recent version of Perl
diff --git a/games/Makefile b/games/Makefile
index 6e99c9612207..033384ab7fba 100644
--- a/games/Makefile
+++ b/games/Makefile
@@ -425,6 +425,7 @@
     SUBDIR += jvgs
     SUBDIR += jzip
     SUBDIR += kanagram
+    SUBDIR += kanatest
     SUBDIR += kapman
     SUBDIR += kartofel
     SUBDIR += katomic
diff --git a/games/kanatest/Makefile b/games/kanatest/Makefile
new file mode 100644
index 000000000000..0775ad30e53c
--- /dev/null
+++ b/games/kanatest/Makefile
@@ -0,0 +1,32 @@
+PORTNAME=	kanatest
+PORTVERSION=	0.4.10.g20200611
+CATEGORIES=	games japanese
+
+MAINTAINER=	Clockwork6400@protonmail.com
+COMMENT=	Japanese kana (Hiragana and Katakana) simple flashcard tool
+WWW=		https://kanatest.sourceforge.io/
+
+LICENSE=	GPLv2
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+FETCH_DEPENDS=	git:devel/git
+LIB_DEPENDS+=	libharfbuzz.so:print/harfbuzz
+
+USES=		gettext gmake gnome pkgconfig tar:xz
+USE_GNOME+=	atk cairo gdkpixbuf2 glib20 gtk30 libxml2 pango
+GNU_CONFIGURE=	yes
+MAKE_ENV+=	LIBINTL="-lintl"
+
+OPTIONS_DEFINE=	NLS
+OPTIONS_SUB=	yes
+
+# this will break when upstream is updating, but unfortunately
+# SF won't let us fetch individual commits.
+do-fetch:
+	@${MKDIR} ${_DISTDIR}
+	@cd ${_DISTDIR} && [ -f ${DISTNAME}.tar.xz ] || \
+	    git archive --format=tar --prefix=${DISTNAME}/ \
+	    --remote=git://git.code.sf.net/p/kanatest/code master | \
+	    ${XZ_CMD} >${DISTNAME}.tar.xz
+
+.include <bsd.port.mk>
diff --git a/games/kanatest/distinfo b/games/kanatest/distinfo
new file mode 100644
index 000000000000..45cf4a136f50
--- /dev/null
+++ b/games/kanatest/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1675987637
+SHA256 (kanatest-0.4.10.g20200611.tar.xz) = 477bbf1fa655eaf067efb829533f05c90597922eb0827128fd88b925cae5f534
+SIZE (kanatest-0.4.10.g20200611.tar.xz) = 274228
diff --git a/games/kanatest/files/patch-po_Makefile.in b/games/kanatest/files/patch-po_Makefile.in
new file mode 100644
index 000000000000..8d0ef5685886
--- /dev/null
+++ b/games/kanatest/files/patch-po_Makefile.in
@@ -0,0 +1,11 @@
+--- po/Makefile.in.orig	2020-06-11 10:29:04 UTC
++++ po/Makefile.in
+@@ -445,7 +445,7 @@ all: $(MOFILES)
+ update-po: $(DOMAIN).pot $(POFILES) $(MOFILES)
+ 
+ %.mo: skip
+-	@po=$(@:.mo=.po); if test $$po -nt $@ ; then $(MSGFMT) -c --statistics $$po -o $@; echo "$@ updated."; fi
++	@po=$(@:.mo=.po); if true; then $(MSGFMT) -c --statistics $$po -o $@; echo "$@ updated."; fi
+ 
+ %.po: $(DOMAIN).pot
+ 	$(MSGMERGE) $@ $< -o $@.in && mv $@.in $@
diff --git a/games/kanatest/files/patch-src_gui.c b/games/kanatest/files/patch-src_gui.c
new file mode 100644
index 000000000000..47289d5a7ac0
--- /dev/null
+++ b/games/kanatest/files/patch-src_gui.c
@@ -0,0 +1,51 @@
+--- src/gui.c.orig	2020-06-11 10:29:04 UTC
++++ src/gui.c
+@@ -1129,40 +1129,40 @@ HildonGtkInputMode input_mode;
+ #ifdef MAEMO
+      gtk_container_add (GTK_CONTAINER (hbuttonbox), appGUI->reverse_button);
+      gtk_container_set_border_width (GTK_CONTAINER (appGUI->reverse_button), 4);
+-     GTK_WIDGET_SET_FLAGS (appGUI->reverse_button, GTK_CAN_DEFAULT);
++     gtk_widget_set_can_default (appGUI->reverse_button, TRUE);
+     
+      gtk_container_add (GTK_CONTAINER (hbuttonbox), appGUI->stat_button);
+      gtk_container_set_border_width (GTK_CONTAINER (appGUI->stat_button), 4);
+-     GTK_WIDGET_SET_FLAGS (appGUI->stat_button, GTK_CAN_DEFAULT);
++     gtk_widget_set_can_default (appGUI->stat_button, TRUE);
+ 
+      appGUI->chart_button = gui_stock_label_button(NULL, KANATEST_STOCK_BUTTON_CHART);
+-     GTK_WIDGET_UNSET_FLAGS (appGUI->chart_button, GTK_CAN_FOCUS);
++     gtk_widget_set_can_focus (appGUI->chart_button, FALSE);
+      g_signal_connect (G_OBJECT (appGUI->chart_button), "clicked",
+                          G_CALLBACK (show_chart_window_cb), appGUI);
+      gtk_widget_show (appGUI->chart_button);
+      gtk_container_add (GTK_CONTAINER (hbuttonbox), appGUI->chart_button);
+      gtk_container_set_border_width (GTK_CONTAINER (appGUI->chart_button), 4);
+-     GTK_WIDGET_SET_FLAGS (appGUI->chart_button, GTK_CAN_DEFAULT);
++     gtk_widget_set_can_default (appGUI->chart_button, TRUE);
+      gtk_widget_set_tooltip_text (appGUI->chart_button, _("Kana chart"));
+ 
+      appGUI->prefs_button = gui_stock_label_button(NULL, KANATEST_STOCK_BUTTON_OPTIONS);
+-     GTK_WIDGET_UNSET_FLAGS (appGUI->prefs_button, GTK_CAN_FOCUS);
++     gtk_widget_set_can_focus (appGUI->prefs_button, FALSE);
+      g_signal_connect (G_OBJECT (appGUI->prefs_button), "clicked",
+                          G_CALLBACK (show_options_window_cb), appGUI);
+      gtk_widget_show (appGUI->prefs_button);
+      gtk_container_add (GTK_CONTAINER (hbuttonbox), appGUI->prefs_button);
+      gtk_container_set_border_width (GTK_CONTAINER (appGUI->prefs_button), 4);
+-     GTK_WIDGET_SET_FLAGS (appGUI->prefs_button, GTK_CAN_DEFAULT);
++     gtk_widget_set_can_default (appGUI->prefs_button, TRUE);
+      gtk_widget_set_tooltip_text (appGUI->prefs_button, _("Options"));
+ 
+      appGUI->about_button = gui_stock_label_button(NULL, KANATEST_STOCK_BUTTON_ABOUT);
+-     GTK_WIDGET_UNSET_FLAGS (appGUI->about_button, GTK_CAN_FOCUS);
++     gtk_widget_set_can_focus (appGUI->about_button, FALSE);
+      g_signal_connect (G_OBJECT (appGUI->about_button), "clicked",
+                          G_CALLBACK (show_about_window_cb), appGUI);
+      gtk_widget_show (appGUI->about_button);
+      gtk_container_add (GTK_CONTAINER (hbuttonbox), appGUI->about_button);
+      gtk_container_set_border_width (GTK_CONTAINER (appGUI->about_button), 4);
+-     GTK_WIDGET_SET_FLAGS (appGUI->about_button, GTK_CAN_DEFAULT);
++     gtk_widget_set_can_default (appGUI->about_button, TRUE);
+ 
+      gtk_widget_set_tooltip_text (appGUI->about_button, _("About"));
+ #endif
diff --git a/games/kanatest/pkg-descr b/games/kanatest/pkg-descr
new file mode 100644
index 000000000000..e93803dd1a26
--- /dev/null
+++ b/games/kanatest/pkg-descr
@@ -0,0 +1,7 @@
+During test the Kanatest displays randomly selected kana char
+(respecting mode and lesson) and waits for user answer expected as
+romaji equivalent. This process continues until all questions will be
+answered or all questions will be answered correctly (depends on
+options). At the end of test a short info about drilling time and
+correctness ratio is displayed. The results are stored and user can
+review his performance in any time.
diff --git a/games/kanatest/pkg-plist b/games/kanatest/pkg-plist
new file mode 100644
index 000000000000..6c1a76feb5b8
--- /dev/null
+++ b/games/kanatest/pkg-plist
@@ -0,0 +1,21 @@
+bin/kanatest
+share/applications/kanatest.desktop
+share/icons/hicolor/16x16/apps/kanatest.png
+share/icons/hicolor/22x22/apps/kanatest.png
+share/icons/hicolor/24x24/apps/kanatest.png
+share/icons/hicolor/32x32/apps/kanatest.png
+share/icons/hicolor/48x48/apps/kanatest.png
+share/icons/hicolor/scalable/apps/kanatest.svg
+%%NLS%%share/locale/de/LC_MESSAGES/kanatest.mo
+%%NLS%%share/locale/el/LC_MESSAGES/kanatest.mo
+%%NLS%%share/locale/es/LC_MESSAGES/kanatest.mo
+%%NLS%%share/locale/fi/LC_MESSAGES/kanatest.mo
+%%NLS%%share/locale/fr/LC_MESSAGES/kanatest.mo
+%%NLS%%share/locale/hr/LC_MESSAGES/kanatest.mo
+%%NLS%%share/locale/hu/LC_MESSAGES/kanatest.mo
+%%NLS%%share/locale/it/LC_MESSAGES/kanatest.mo
+%%NLS%%share/locale/pl/LC_MESSAGES/kanatest.mo
+%%NLS%%share/locale/pt/LC_MESSAGES/kanatest.mo
+%%NLS%%share/locale/ru/LC_MESSAGES/kanatest.mo
+%%NLS%%share/locale/zh_CN/LC_MESSAGES/kanatest.mo
+share/pixmaps/kanatest.png