Bug 280542 - [NEW PORT] games/gargoyle: Interactive fiction player supporting all major formats
Summary: [NEW PORT] games/gargoyle: Interactive fiction player supporting all major fo...
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Vladimir Druzenko
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-07-31 20:42 UTC by Tobias Rehbein
Modified: 2024-08-03 01:46 UTC (History)
2 users (show)

See Also:


Attachments
"git format-patch" of the new port (6.02 KB, patch)
2024-07-31 20:42 UTC, Tobias Rehbein
no flags Details | Diff
Updated patch per review (6.02 KB, patch)
2024-08-01 19:59 UTC, Tobias Rehbein
no flags Details | Diff
Updated patch per review (revision 2) (6.25 KB, patch)
2024-08-02 20:19 UTC, Tobias Rehbein
no flags Details | Diff
Updated patch per review (revision 3) (6.25 KB, patch)
2024-08-02 22:10 UTC, Tobias Rehbein
no flags Details | Diff
Updated patch per review (revision 3) (6.30 KB, patch)
2024-08-02 22:14 UTC, Tobias Rehbein
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Tobias Rehbein 2024-07-31 20:42:05 UTC
Created attachment 252408 [details]
"git format-patch" of the new port

Gargoyle is an interactive fiction player that supports all the major interactive fiction formats.

Gargoyle is based on the standard interpreters for the formats it supports: Agility, Alan 2 and 3, Frotz, Glulxe, Hugo, Level 9, Magnetic, Scare, Tads 2 and 3.

QA:
* portlint -AC: 1 warning (pkg-descr: seems to have unnecessary blank lines at the last part)
* poudriere testport (14.1, amd64): ok
* I am currently playing "The King of Shreds and Patches"[2] using this port.

[1]: https://ccxvii.net/gargoyle/
[2]: http://maher.filfre.net/King/
Comment 1 Vladimir Druzenko freebsd_committer freebsd_triage 2024-08-01 00:03:11 UTC
1. Use DISTVERSION instead of PORTVERSION.
2. Why PORTNAME=gargoyle, but upstream project name is garglk?
3. Remove last blank line in pkg-descr.
4. Run "portclippy Makefile" (ports-mgmt/portfmt).
Comment 2 Mateusz Piotrowski freebsd_committer freebsd_triage 2024-08-01 08:09:20 UTC
Just a note: everyone seems to call it gargoyle: https://repology.org/project/gargoyle/versions. garglk is not a popular name in the packaging world: https://repology.org/project/garglk/versions
Comment 3 Tobias Rehbein 2024-08-01 19:59:07 UTC
Created attachment 252439 [details]
Updated patch per review

Thanks for taking the time to review this submission.

Regarding your remarks:
1. Done.
2. The software is universally called Gargoyle, even the upstream maintainer calls it Gargoyle in their communication (example: https://intfiction.org/t/gargoyle-2023-1/60506). On GitHub the project is indeed called garglk, but nobody who has not looked at the source code will know this name. That's why I think the port should be called games/gargoyle for discoverability. Also, as 0mp@ points out, the name gargoyle is widely used in other package repositories too.
3. Done, "portlint -AC" now "looks fine"
4. Done, fixed the reported issues.
Comment 4 Vladimir Druzenko freebsd_committer freebsd_triage 2024-08-01 21:16:34 UTC
Error: /usr/local/lib/libgarglk.so is linked to /usr/local/lib/libspeechd.so.2 from accessibility/speech-dispatcher but it is not declared as a dependency
Warning: you need LIB_DEPENDS+=libspeechd.so:accessibility/speech-dispatcher
Error: /usr/local/lib/libgarglk.so is linked to /usr/local/lib/libglib-2.0.so.0 from devel/glib20 but it is not declared as a dependency
Warning: you need USE_GNOME+=glib20
Error: /usr/local/lib/libgarglk.so is linked to /usr/local/lib/libintl.so.8 from devel/gettext-runtime but it is not declared as a dependency
Warning: you need USES+=gettext-runtime
Comment 5 Vladimir Druzenko freebsd_committer freebsd_triage 2024-08-01 23:23:37 UTC
PORTNAME=	gargoyle
DISTVERSION=	2023.1
CATEGORIES=	games
DISTNAME=	${GH_PROJECT}-${DISTVERSION}

MAINTAINER=	tobias.rehbein@web.de
COMMENT=	Interactive fiction player supporting all major formats
WWW=		https://ccxvii.net/gargoyle/

LICENSE=	ART10 BSD2CLAUSE BSD3CLAUSE BSD4CLAUSE GPLv2 GPLv3 MIT OFL11
LICENSE_COMB=	multi
LICENSE_FILE=	${WRKSRC}/License.txt

BUILD_DEPENDS=	libxkbcommon>=0.5.0:x11/libxkbcommon \
		vulkan-headers>0:graphics/vulkan-headers
LIB_DEPENDS=	libfontconfig.so:x11-fonts/fontconfig \
		libfreetype.so:print/freetype2 \
		libpng.so:graphics/png
RUN_DEPENDS=	libxkbcommon>=0.5.0:x11/libxkbcommon

USES=		cmake desktop-file-utils gl jpeg pkgconfig qt:6 sdl \
		shared-mime-info
USE_GITHUB=	yes
GH_ACCOUNT=	garglk
GH_PROJECT=	${GH_ACCOUNT}
USE_GL=		opengl
USE_QT=		base
USE_SDL=	mixer2

CMAKE_ON=	WITH_QT6

OPTIONS_DEFINE=		SPEECHD
SPEECHD_DESC=		Enable text-to-speech support
SPEECHD_LIB_DEPENDS=	libspeechd.so:accessibility/speech-dispatcher
SPEECHD_USES=		gettext-runtime gnome
SPEECHD_USE=		gnome=glib20
SPEECHD_CMAKE_BOOL=	WITH_TTS

.include <bsd.port.mk>
Comment 6 Tobias Rehbein 2024-08-02 20:19:27 UTC
Created attachment 252467 [details]
Updated patch per review (revision 2)

To be honest, I don't understand why your built pulls in speech-dispatcher. I did another poudriere testport run and this doesn't happen for me. That being said, it is a good idea to at the SPEECHD option for accessibility. As I wouldn't maintain a port containing a untested option, I configured TTS for my gargoyle and toyed around with. It seems to be working fine.

I updated the attached patch accordingly, following your suggestions. The only thing I changed was to LIB_DEPEND on libxkbcommon instead of adding it as both, a run and a build dependency.

Again, thanks for your patience and time.
Comment 7 Vladimir Druzenko freebsd_committer freebsd_triage 2024-08-02 21:47:37 UTC
(In reply to Tobias Rehbein from comment #6)
> To be honest, I don't understand why your built pulls in speech-dispatcher.
I tested build on live system too.

> I changed was to LIB_DEPEND on libxkbcommon instead of adding it as both, a run and a build dependency.
If you look at the poudriere testport log - no link with libxkbcommon.so, but it is detected at the configure stage. Probably used at runtime as well.
So the correct way to add it is in BUILD and RUN dependencies, but not in LIB.
Comment 8 Tobias Rehbein 2024-08-02 22:10:31 UTC
Created attachment 252468 [details]
Updated patch per review (revision 3)

> I tested build on live system too.

I see, I guess I should make this a habit too.

> So the correct way to add it is in BUILD and RUN dependencies, but not in LIB.

Done.
Comment 9 Tobias Rehbein 2024-08-02 22:14:20 UTC
Created attachment 252469 [details]
Updated patch per review (revision 3)

Reuploaded correct patch
Comment 10 commit-hook freebsd_committer freebsd_triage 2024-08-03 01:38:01 UTC
A commit in branch main references this bug:

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

commit 8c040a35ffc558fe2bdacb93ba6df9a670768e56
Author:     Tobias Rehbein <tobias.rehbein@web.de>
AuthorDate: 2024-08-03 01:34:07 +0000
Commit:     Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2024-08-03 01:34:07 +0000

    games/gargoyle: New port: Interactive fiction player supporting all major formats

    Gargoyle is an interactive fiction player that supports all the major
    interactive fiction formats.

    Gargoyle is based on the standard interpreters for the formats it
    supports: Agility, Alan 2 and 3, Frotz, Glulxe, Hugo, Level 9, Magnetic,
    Scare, Tads 2 and 3.

    PR:     280542

 games/Makefile                 |  1 +
 games/gargoyle/Makefile (new)  | 39 ++++++++++++++++++++++++++++
 games/gargoyle/distinfo (new)  |  3 +++
 games/gargoyle/pkg-descr (new) | 11 ++++++++
 games/gargoyle/pkg-plist (new) | 59 ++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 113 insertions(+)
Comment 11 Vladimir Druzenko freebsd_committer freebsd_triage 2024-08-03 01:46:29 UTC
Thanks!