git: 8264d443eecd - main - games/quackle: Crossword game artificial intelligence and analysis tool

From: Robert Clausecker <fuz_at_FreeBSD.org>
Date: Fri, 03 Nov 2023 21:18:21 UTC
The branch main has been updated by fuz:

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

commit 8264d443eecddf4eab64334edc5fcab2fcd66e09
Author:     Robert Clausecker <fuz@FreeBSD.org>
AuthorDate: 2023-11-03 05:00:17 +0000
Commit:     Robert Clausecker <fuz@FreeBSD.org>
CommitDate: 2023-11-03 21:16:24 +0000

    games/quackle: Crossword game artificial intelligence and analysis tool
    
    Quackle is a free crossword game artificial intelligence and analysis
    tool that rivals the best players in the world!
    
    It can be configured to play and analyze crossword games with any board
    layout and use the newest lexicons. Quackle includes a move generator,
    move evaluator, simulator, and Qt-based user interface and can be used
    with any board layout, alphabet, lexicon, and tile distribution.
    
    WWW: https://people.csail.mit.edu/jasonkb/quackle/
---
 MOVED                          |  1 -
 games/Makefile                 |  1 +
 games/quackle/Makefile         | 32 +++++++++++++++++++++++
 games/quackle/distinfo         |  3 +++
 games/quackle/files/Quackle.in |  3 +++
 games/quackle/pkg-descr        |  7 +++++
 games/quackle/pkg-plist        | 59 ++++++++++++++++++++++++++++++++++++++++++
 7 files changed, 105 insertions(+), 1 deletion(-)

diff --git a/MOVED b/MOVED
index 4a14070b3dd8..3f87d062c04f 100644
--- a/MOVED
+++ b/MOVED
@@ -1318,7 +1318,6 @@ games/kcheckers||2019-03-16|Has expired: Qt4 has been EOL since december 2015
 games/openpref||2019-03-16|Has expired: Qt4 has been EOL since december 2015
 games/qgo||2019-03-16|Has expired: Qt4 has been EOL since december 2015
 games/qtads||2019-03-16|Has expired: Qt4 has been EOL since december 2015
-games/quackle||2019-03-16|Has expired: Qt4 has been EOL since december 2015
 games/spellathon||2019-03-16|Has expired: Qt4 has been EOL since december 2015
 games/sudoku-sensei||2019-03-16|Has expired: Qt4 has been EOL since december 2015
 games/tbe||2019-03-16|Has expired: Qt4 has been EOL since december 2015
diff --git a/games/Makefile b/games/Makefile
index 5d3c4579b103..9905c845c5d7 100644
--- a/games/Makefile
+++ b/games/Makefile
@@ -812,6 +812,7 @@
     SUBDIR += qstat
     SUBDIR += quadra
     SUBDIR += quadrapassel
+    SUBDIR += quackle
     SUBDIR += quake-data
     SUBDIR += quake-dpmod
     SUBDIR += quake-source
diff --git a/games/quackle/Makefile b/games/quackle/Makefile
new file mode 100644
index 000000000000..56a7e8d89011
--- /dev/null
+++ b/games/quackle/Makefile
@@ -0,0 +1,32 @@
+PORTNAME=	quackle
+DISTVERSIONPREFIX=	v
+DISTVERSION=	1.0.4
+CATEGORIES=	games
+
+MAINTAINER=	fuz@FreeBSD.org
+COMMENT=	Crossword game artificial intelligence and analysis tool
+WWW=		https://people.csail.mit.edu/jasonkb/quackle/
+
+# dictionaries may not be distributed apart from Quackle
+# forbid selling to be on the safe side
+LICENSE=	GPLv3Quackle
+LICENSE_NAME=	GPLv3 with Quackle dictionary exception
+LICENSE_FILE=	${WRKSRC}/LICENSE
+LICENSE_PERMS=	dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept
+
+USES=		cmake qt:5
+USE_GITHUB=	yes
+USE_QT=		core qmake:build buildtools:build gui widgets
+
+CMAKE_SOURCE_PATH=	${WRKSRC}/quacker
+DESKTOP_ENTRIES=	"Quackle" "Crossword game artificial intelligence and analysis tool" \
+			"${DATADIR}/IconSmall.png" "Quackle" "Game;BoardGame;Languages;" false
+SUB_FILES=	Quackle
+
+do-install:
+	${INSTALL_PROGRAM} ${BUILD_WRKSRC}/Quackle ${STAGEDIR}${PREFIX}/libexec/
+	(cd ${WRKSRC} && ${COPYTREE_SHARE} data ${STAGEDIR}${DATADIR}/ '! -name CMakeLists.txt')
+	${INSTALL_DATA} ${WRKSRC}/IconSmall.png ${STAGEDIR}${DATADIR}/
+	${INSTALL_SCRIPT} ${WRKDIR}/Quackle ${STAGEDIR}${PREFIX}/bin/
+
+.include <bsd.port.mk>
diff --git a/games/quackle/distinfo b/games/quackle/distinfo
new file mode 100644
index 000000000000..4d7391773362
--- /dev/null
+++ b/games/quackle/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1698980055
+SHA256 (quackle-quackle-v1.0.4_GH0.tar.gz) = f938c3c0e8ef7ef95cc0505bb1425bf90d783275f365d3aaef19586da70a46b6
+SIZE (quackle-quackle-v1.0.4_GH0.tar.gz) = 36997462
diff --git a/games/quackle/files/Quackle.in b/games/quackle/files/Quackle.in
new file mode 100644
index 000000000000..a1d7497160d6
--- /dev/null
+++ b/games/quackle/files/Quackle.in
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+(cd %%DATADIR%% && %%PREFIX%%/libexec/Quackle "$@")
diff --git a/games/quackle/pkg-descr b/games/quackle/pkg-descr
new file mode 100644
index 000000000000..d48af6c84eb6
--- /dev/null
+++ b/games/quackle/pkg-descr
@@ -0,0 +1,7 @@
+Quackle is a free crossword game artificial intelligence and analysis
+tool that rivals the best players in the world!
+
+It can be configured to play and analyze crossword games with any board
+layout and use the newest lexicons. Quackle includes a move generator,
+move evaluator, simulator, and Qt-based user interface and can be used
+with any board layout, alphabet, lexicon, and tile distribution.
diff --git a/games/quackle/pkg-plist b/games/quackle/pkg-plist
new file mode 100644
index 000000000000..9fe5f9281519
--- /dev/null
+++ b/games/quackle/pkg-plist
@@ -0,0 +1,59 @@
+bin/Quackle
+@(,,555) libexec/Quackle
+%%DATADIR%%/IconSmall.png
+%%DATADIR%%/data/alphabets/english.quackle_alphabet
+%%DATADIR%%/data/alphabets/english_super.quackle_alphabet
+%%DATADIR%%/data/alphabets/english_wild.quackle_alphabet
+%%DATADIR%%/data/alphabets/french.quackle_alphabet
+%%DATADIR%%/data/alphabets/greek.quackle_alphabet
+%%DATADIR%%/data/alphabets/korean.quackle_alphabet
+%%DATADIR%%/data/alphabets/mandarin.quackle_alphabet
+%%DATADIR%%/data/alphabets/norwegian.quackle_alphabet
+%%DATADIR%%/data/alphabets/pinyin.quackle_alphabet
+%%DATADIR%%/data/alphabets/polish.quackle_alphabet
+%%DATADIR%%/data/alphabets/russian.quackle_alphabet
+%%DATADIR%%/data/alphabets/swedish.quackle_alphabet
+%%DATADIR%%/data/alphabets/turkish.quackle_alphabet
+%%DATADIR%%/data/alphabets/tuvan.quackle_alphabet
+%%DATADIR%%/data/alphabets/zhuyin.quackle_alphabet
+%%DATADIR%%/data/lexica/copyrights.txt
+%%DATADIR%%/data/lexica/csw07.dawg
+%%DATADIR%%/data/lexica/csw12.dawg
+%%DATADIR%%/data/lexica/csw15.dawg
+%%DATADIR%%/data/lexica/csw19.dawg
+%%DATADIR%%/data/lexica/greek.dawg
+%%DATADIR%%/data/lexica/korean.dawg
+%%DATADIR%%/data/lexica/naspa.gif
+%%DATADIR%%/data/lexica/norwegian.dawg
+%%DATADIR%%/data/lexica/nswl18.dawg
+%%DATADIR%%/data/lexica/nwl18.dawg
+%%DATADIR%%/data/lexica/ods5.dawg
+%%DATADIR%%/data/lexica/osps.dawg
+%%DATADIR%%/data/lexica/sowpods.dawg
+%%DATADIR%%/data/lexica/turkish.dawg
+%%DATADIR%%/data/lexica/twl06.dawg
+%%DATADIR%%/data/lexica/twl98.dawg
+%%DATADIR%%/data/raw_lexica/cswapr07.raw
+%%DATADIR%%/data/raw_lexica/cswfeb07.raw
+%%DATADIR%%/data/raw_lexica/greek.raw
+%%DATADIR%%/data/raw_lexica/korean.raw
+%%DATADIR%%/data/raw_lexica/norwegian.raw
+%%DATADIR%%/data/raw_lexica/ods4.raw
+%%DATADIR%%/data/raw_lexica/ods5.raw
+%%DATADIR%%/data/raw_lexica/sowpods.raw
+%%DATADIR%%/data/raw_lexica/turkish.raw
+%%DATADIR%%/data/raw_lexica/twl06.raw
+%%DATADIR%%/data/raw_lexica/twl98.raw
+%%DATADIR%%/data/strategy/csw/superleaves
+%%DATADIR%%/data/strategy/default/bogowin
+%%DATADIR%%/data/strategy/default/worths
+%%DATADIR%%/data/strategy/default_english/superleaves
+%%DATADIR%%/data/strategy/default_english/syn2
+%%DATADIR%%/data/strategy/default_english/vcplace
+%%DATADIR%%/data/strategy/default_english/worths
+%%DATADIR%%/data/strategy/ods5/superleaves
+%%DATADIR%%/data/strategy/ods5/worths
+%%DATADIR%%/data/strategy/twl98/worths
+%%DATADIR%%/data/themes/modern.ini
+%%DATADIR%%/data/themes/plain.ini
+%%DATADIR%%/data/themes/traditional.ini