#1041470 RFP: gnome-crosswords -- crossword player and editor

#1041470#5
Date:
2023-07-19 10:34:30 UTC
From:
To:
* Package name    : gnome-crosswords
  Version         : 0.3.4
  Upstream Contact: Jonathan Blandford?
* URL             : https://gitlab.gnome.org/jrb/crosswords
* License         : GPL3
  Programming Lang: C
  Description     : crossword player and editor

Features:

 • Uses .ipuz files internally and supports a significant chunk of the open .ipuz spec for crosswords
 • Supports cryptic, barred, arrowword, filippine, and rebus-style puzzles
 • Loads .ipuz, .puz, and .jpz files from disk
 • Supports standalone puzzle collections of crosswords with multiple ways of playing them
 • External puzzle set downloaders can be used to download puzzles
 • Extensive styling support for crosswords. Square, black and white crosswords are traditional, but this game can also take advantage of color and shapes
 • Reveal button to find mistakes in the puzzle
 • Hint button to suggest possible answers using Peter Broda's Wordlist
 • Puzzle checksums for puzzles that don't include an answer
 • Respects the Desktop-wide dark-mode preference
 • Language-specific quirks
 • Adaptive sizing to let it work on tablets or mobile form-factors

While Debian has crossword puzzle apps, they're all very dated.
They are mostly using Xlib or Xaw so they look unpleasant.

This depends on libipuz-dev from the same author, so
that would have to be packaged at the same time.
https://gitlab.gnome.org/jrb/libipuz

I suppose technically that should also have an RFP, but
I don't think it has any use beyond "so I can have gnome-crosswords".

#1041470#10
Date:
2023-07-19 12:25:42 UTC
From:
To:
I have a bare-minimum packaging working (below).
The libipuz stuff is a total mess, but enough to at least run the app.
If I do any more work on it (unlikely) it'll end up at
https://github.com/cyberitsolutions/bootstrap2020/tree/twb/debian-12-PrisonPC.packages


    bash5$ grep -rnH ^ libipuz crosswords
    libipuz/debian/source/format:1:3.0 (quilt)
    libipuz/debian/rules:1:#!/usr/bin/make -f
    libipuz/debian/rules:2:export DEB_BUILD_MAINT_OPTIONS = hardening=+all
    libipuz/debian/rules:3:%:
    libipuz/debian/rules:4:	dh $@
    libipuz/debian/control:1:Source: libipuz
    libipuz/debian/control:2:Section: games
    libipuz/debian/control:3:Priority: optional
    libipuz/debian/control:4:Homepage: https://gitlab.gnome.org/jrb/libipuz/
    libipuz/debian/control:5:Standards-Version: 4.5.1
    libipuz/debian/control:6:Maintainer: Trent W. Buck <twb@cyber.com.au>
    libipuz/debian/control:7:Rules-Requires-Root: no
    libipuz/debian/control:8:Build-Depends: debhelper-compat (= 13),
    libipuz/debian/control:9: meson (>= 0.59.0),
    libipuz/debian/control:10: pkg-config,
    libipuz/debian/control:11: python3,
    libipuz/debian/control:12: libglib2.0-dev,
    libipuz/debian/control:13: libjson-glib-dev,
    libipuz/debian/control:14: cmake,
    libipuz/debian/control:15:
    libipuz/debian/control:16:Package: libipuz-1
    libipuz/debian/control:17:Depends:
    libipuz/debian/control:18: ${misc:Depends},
    libipuz/debian/control:19: ${shlibs:Depends},
    libipuz/debian/control:20:Architecture: any
    libipuz/debian/control:21:Description: FIXME
    libipuz/debian/control:22: FIXME
    libipuz/debian/changelog:1:libipuz (0.4.2-1) bookworm; urgency=medium
    libipuz/debian/changelog:2:
    libipuz/debian/changelog:3:  * Initial Debianization.
    libipuz/debian/changelog:4:
    libipuz/debian/changelog:5: -- Trent W. Buck <trentbuck@gmail.com>  Thu, 25 Aug 2022 20:19:14 +1000
    libipuz/debian/watch:1:# Stolen from https://sources.debian.org/src/gucharmap/1:14.0.3-1/debian/watch/
    libipuz/debian/watch:2:version=4
    libipuz/debian/watch:3:https://gitlab.gnome.org/jrb/@PACKAGE@/tags \
    libipuz/debian/watch:4:  .*/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@
    libipuz/debian/copyright:1:Files: *
    libipuz/debian/copyright:2:Copyright: 2021 Trent W. Buck
    libipuz/debian/copyright:3:License: expat
    libipuz/debian/copyright:4:
    libipuz/debian/copyright:5:License: expat
    libipuz/debian/copyright:6: Permission is hereby granted, free of charge, to any person obtaining
    libipuz/debian/copyright:7: a copy of this software and associated documentation files (the
    libipuz/debian/copyright:8: "Software"), to deal in the Software without restriction, including
    libipuz/debian/copyright:9: without limitation the rights to use, copy, modify, merge, publish,
    libipuz/debian/copyright:10: distribute, sublicense, and/or sell copies of the Software, and to
    libipuz/debian/copyright:11: permit persons to whom the Software is furnished to do so, subject to
    libipuz/debian/copyright:12: the following conditions:
    libipuz/debian/copyright:13: .
    libipuz/debian/copyright:14: The above copyright notice and this permission notice shall be included
    libipuz/debian/copyright:15: in all copies or substantial portions of the Software.
    libipuz/debian/copyright:16: .
    libipuz/debian/copyright:17: THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    libipuz/debian/copyright:18: EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    libipuz/debian/copyright:19: MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
    libipuz/debian/copyright:20: IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    libipuz/debian/copyright:21: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
    libipuz/debian/copyright:22: TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
    libipuz/debian/copyright:23: SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    crosswords/debian/copyright:1:Files: *
    crosswords/debian/copyright:2:Copyright: 2021 Trent W. Buck
    crosswords/debian/copyright:3:License: expat
    crosswords/debian/copyright:4:
    crosswords/debian/copyright:5:License: expat
    crosswords/debian/copyright:6: Permission is hereby granted, free of charge, to any person obtaining
    crosswords/debian/copyright:7: a copy of this software and associated documentation files (the
    crosswords/debian/copyright:8: "Software"), to deal in the Software without restriction, including
    crosswords/debian/copyright:9: without limitation the rights to use, copy, modify, merge, publish,
    crosswords/debian/copyright:10: distribute, sublicense, and/or sell copies of the Software, and to
    crosswords/debian/copyright:11: permit persons to whom the Software is furnished to do so, subject to
    crosswords/debian/copyright:12: the following conditions:
    crosswords/debian/copyright:13: .
    crosswords/debian/copyright:14: The above copyright notice and this permission notice shall be included
    crosswords/debian/copyright:15: in all copies or substantial portions of the Software.
    crosswords/debian/copyright:16: .
    crosswords/debian/copyright:17: THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    crosswords/debian/copyright:18: EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    crosswords/debian/copyright:19: MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
    crosswords/debian/copyright:20: IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    crosswords/debian/copyright:21: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
    crosswords/debian/copyright:22: TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
    crosswords/debian/copyright:23: SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    crosswords/debian/changelog:1:crosswords (0.3.8-1) bullseye; urgency=medium
    crosswords/debian/changelog:2:
    crosswords/debian/changelog:3:  * Initial Debianization.
    crosswords/debian/changelog:4:
    crosswords/debian/changelog:5: -- Trent W. Buck <trentbuck@gmail.com>  Thu, 25 Aug 2022 20:19:14 +1000
    crosswords/debian/rules:1:#!/usr/bin/make -f
    crosswords/debian/rules:2:export DEB_BUILD_MAINT_OPTIONS = hardening=+all
    crosswords/debian/rules:3:%:
    crosswords/debian/rules:4:	dh $@
    crosswords/debian/rules:5:
    crosswords/debian/rules:6:
    crosswords/debian/rules:7:
    crosswords/debian/rules:8:
    crosswords/debian/rules:9:
    crosswords/debian/rules:10:
    crosswords/debian/rules:11:# ==================================== 6/6 =====================================
    crosswords/debian/rules:12:# test:         gen-word-list
    crosswords/debian/rules:13:# start time:   11:46:47
    crosswords/debian/rules:14:# duration:     0.22s
    crosswords/debian/rules:15:# result:       killed by signal 6 SIGABRT
    crosswords/debian/rules:16:# command:      MALLOC_PERTURB_=204 G_TEST_SRCDIR=/X/Y/src G_TEST_BUILDDIR=/X/Y/obj-x86_64-linux-gnu/src /X/Y/obj-x86_64-linux-gnu/src/gen-word-list --tap -k
    crosswords/debian/rules:17:# ----------------------------------- stdout -----------------------------------
    crosswords/debian/rules:18:# # random seed: R02S48c3e50f1099cb82e84c97d931a342bc
    crosswords/debian/rules:19:# 1..5
    crosswords/debian/rules:20:# # Start of gen_word_list tests
    crosswords/debian/rules:21:# ok 1 /gen_word_list/rejects_invalid_lines
    crosswords/debian/rules:22:# ok 2 /gen_word_list/get_entry_works_for_ascii_words
    crosswords/debian/rules:23:# ok 3 /gen_word_list/get_entry_works_for_non_ascii_words
    crosswords/debian/rules:24:# Bail out! ERROR:../src/gen-word-list.c:831:sorts_words: assertion failed (entry.word == "?RBOL"): ("ARTES" == "\303\201RBOL")
    crosswords/debian/rules:25:# ----------------------------------- stderr -----------------------------------
    crosswords/debian/rules:26:# **
    crosswords/debian/rules:27:# ERROR:../src/gen-word-list.c:831:sorts_words: assertion failed (entry.word == "?RBOL"): ("ARTES" == "\303\201RBOL")
    crosswords/debian/rules:28:# ==============================================================================
    crosswords/debian/rules:29:
    crosswords/debian/rules:30:
    crosswords/debian/rules:31:# Summary of Failures:
    crosswords/debian/rules:32:
    crosswords/debian/rules:33:# 6/6 gen-word-list         FAIL            0.22s   killed by signal 6 SIGABRT
    crosswords/debian/rules:34:override_dh_auto_test:
    crosswords/debian/rules:35:	echo "FIXME: a test is failing and DEB_BUILD_OPTIONS=nocheck isn't skipping them, so I am going to comment them out completely for EVERYONE in here for now."
    crosswords/debian/source/format:1:3.0 (quilt)
    crosswords/debian/control:1:Source: crosswords
    crosswords/debian/control:2:Section: games
    crosswords/debian/control:3:Priority: optional
    crosswords/debian/control:4:Homepage: https://gitlab.gnome.org/jrb/crosswords/
    crosswords/debian/control:5:Standards-Version: 4.5.1
    crosswords/debian/control:6:Maintainer: Trent W. Buck <twb@cyber.com.au>
    crosswords/debian/control:7:Rules-Requires-Root: no
    crosswords/debian/control:8:Build-Depends: debhelper-compat (= 13),
    crosswords/debian/control:9: meson (>= 0.59.0),
    crosswords/debian/control:10: pkg-config,
    crosswords/debian/control:11:# ../meson.build:111:6: ERROR: Program 'update-desktop-database' not found or not executable
    crosswords/debian/control:12: desktop-file-utils,
    crosswords/debian/control:13: libglib2.0-dev,
    crosswords/debian/control:14: libgtk-4-dev,
    crosswords/debian/control:15: libjson-glib-dev,
    crosswords/debian/control:16: librsvg2-dev,
    crosswords/debian/control:17: libadwaita-1-dev,
    crosswords/debian/control:18:# https://gitlab.gnome.org/jrb/libipuz
    crosswords/debian/control:19: libipuz-1,
    crosswords/debian/control:20:
    crosswords/debian/control:21:Package: gnome-crosswords
    crosswords/debian/control:22:Depends:
    crosswords/debian/control:23: ${misc:Depends},
    crosswords/debian/control:24: ${shlibs:Depends},
    crosswords/debian/control:25:Architecture: any
    crosswords/debian/control:26:Description: crossword player and editor for GNOME
    crosswords/debian/control:27: GNOME Crosswords is a crossword player and editor.
    crosswords/debian/control:28: Features:
    crosswords/debian/control:29: .
    crosswords/debian/control:30:  * Loads .ipuz and .puz files.
    crosswords/debian/control:31:    Supports a significant chunk of the .ipuz spec for Crosswords
    crosswords/debian/control:32:  * Supports standalone puzzle sets with multiple ways of playing them
    crosswords/debian/control:33:  * External puzzle set downloaders can be used to download puzzles
    crosswords/debian/control:34:  * Extensive styling support for crosswords.
    crosswords/debian/control:35:    Square, black and white crosswords are traditional, but
    crosswords/debian/control:36:    it can also take advantage of color and shapes
    crosswords/debian/control:37:  * Reveal button to find mistakes and hint button to suggest answers
    crosswords/debian/control:38:  * Puzzle checksums for puzzles that don't include an answer
    crosswords/debian/control:39:  * Respects the Desktop-wide dark-mode preference.
    crosswords/debian/control:40:  * Language-specific quirks
    crosswords/debian/watch:1:# Stolen from https://sources.debian.org/src/gucharmap/1:14.0.3-1/debian/watch/
    crosswords/debian/watch:2:version=4
    crosswords/debian/watch:3:https://gitlab.gnome.org/jrb/@PACKAGE@/tags \
    crosswords/debian/watch:4:  .*/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@

#1041470#17
Date:
2026-09-29 00:24:36 UTC
From:
To:
For the record,

Earlier this year I looked to update my proof-of-concept packaging.

libipuz and crosswords is now partly rewritten in rust, but it is not
using any of the normal rust packaging/distributing infrastructure.

I wasn't familiar with normal rust, and the Debian rust packaging docs
expect you to be packaging normal rust.

So this was just Too Hard for me at my current rust experience level.