%bcond docs 1 %bcond tests 1 # The libipuz shared library version %global ipuz_soversion 0.5 Name: crosswords Version: 0.3.19.10.20.3 Release: 1.20261028072851464238.main.88.g9b6bad17%{?dist} Summary: Solve crossword puzzles # * crosswords itself is GPL-3.0-or-later # * the puzzle sets it bundles are CC-BY-SA-4.0 # * the broda word list is LicenseRef-Fedora-UltraPermissive per # https://gitlab.com/fedora/legal/fedora-license-data/-/issues/627 # * the wordnik word list is MIT per word-lists/LICENSE.wordnik License: GPL-3.0-or-later AND CC-BY-SA-4.0 AND LicenseRef-Fedora-UltraPermissive AND MIT URL: https://gitlab.gnome.org/jrb/crosswords Source: crosswords-0.3.19.10.20.3.tar.gz # Big endian systems are not supported # https://jrb.pages.gitlab.gnome.org/crosswords/devel-docs/PACKAGING.html ExcludeArch: s390x BuildRequires: blueprint-compiler BuildRequires: desktop-file-utils BuildRequires: cmake BuildRequires: gcc BuildRequires: libappstream-glib BuildRequires: meson BuildRequires: python3-devel BuildRequires: sed %if %{with docs} BuildRequires: python3dist(sphinx) BuildRequires: python3dist(sphinx-rtd-theme) BuildRequires: python3dist(myst-parser) %endif %if %{with tests} # gen-word-list requires en_US.UTF8 # https://gitlab.gnome.org/jrb/crosswords/-/issues/109 BuildRequires: glibc-langpack-en %endif BuildRequires: pkgconfig(gio-2.0) BuildRequires: pkgconfig(gio-unix-2.0) BuildRequires: pkgconfig(gtk4) BuildRequires: pkgconfig(iso-codes) BuildRequires: pkgconfig(json-glib-1.0) BuildRequires: pkgconfig(libadwaita-1) BuildRequires: pkgconfig(libipuz-%{ipuz_soversion}) BuildRequires: pkgconfig(libpanel-1) BuildRequires: pkgconfig(librsvg-2.0) Requires: dbus-common Requires: %{name}-puzzle-sets-cats-and-dogs = %{version}-%{release} Requires: %{name}-puzzle-sets-uri = %{version}-%{release} Recommends: %{name}-thumbnailer = %{version}-%{release} Suggests: crossword-editor = %{version}-%{release} %if %{with docs} Suggests: %{name}-doc = %{version}-%{release} %endif %description A simple and fun game of crosswords. Load your crossword files, or play one of the included games. Features include: - Support for shaped and colored crosswords - Loading .ipuz and .puz files - Hint support, such as showing mistakes and suggesting words - Dark mode support - Locally installed crosswords as well as support for 3rd party downloaders %package puzzle-sets-cats-and-dogs Summary: Puzzles about cats and dogs for GNOME Crosswords Requires: %{name} = %{version}-%{release} BuildArch: noarch %description puzzle-sets-cats-and-dogs This package contains a puzzle set about cats and dogs for GNOME Crosswords. %package puzzle-sets-internal Summary: Load additional puzzles for GNOME Crosswords Requires: %{name} = %{version}-%{release} Provides: crosswords-puzzle-sets-uri = %{version}-%{release} Obsoletes: crosswords-puzzle-sets-uri < 0.3.6-3 BuildArch: noarch # Used to load .puz files from disk Recommends: ipuz-convertor = %{version}-%{release} %description puzzle-sets-internal This package contains puzzle sets used internally by GNOME Crosswords to load additional puzzles from disk. %package thumbnailer Summary: GNOME Crosswords Thumbnailer %description thumbnailer This package provides a thumbnailer for crosswords puzzles in formats supported by GNOME Crosswords. %if %{with docs} %package doc Summary: Documentation for %{name} BuildArch: noarch %description doc This package contains additional documentation for GNOME Crosswords. %endif %package -n crossword-editor Summary: Crossword puzzle editor Requires: %{name}%{?_isa} = %{version}-%{release} Recommends: %{name}-thumbnailer = %{version}-%{release} # Used to load .puz files from disk Recommends: ipuz-convertor = %{version}-%{release} Suggests: ipuz2pdf = %{version}-%{release} %description -n crossword-editor Standalone-tool to create crossword puzzles based on GNOME Crosswords. It can be used to create simple puzzles with grids and clues. It has a pattern solver and grid autofill dialog for filling in hard-to-finish corners, and will make suggestions of words when creating the grid. %package -n ipuz-convertor Summary: Converts puz files to ipuz files BuildArch: noarch Requires: crosswords Requires: python3 Requires: python3dist(beautifulsoup4) Requires: python3dist(dateparser) Requires: python3dist(lxml) Requires: python3dist(puzpy) Requires: python3dist(regex) Requires: python3dist(requests) Requires: python3dist(xdfile) %description -n ipuz-convertor ipuz-convertor is a script to convert puzzle files from puz to ipuz. %package -n ipuz2pdf Summary: Export IPUZ puzzles to printable PDF documents %description -n ipuz2pdf ipuz2pdf is a tool to export IPUZ puzzles to printable PDF documents. %prep %autosetup -p1 -n crosswords-0.3.19.10.20.3 # Relax regex version pin sed -i 's:^regex==.*$:regex:' requirements.txt # Update image references in README cp -pr data/images images sed -i 's:data/images/:images/:g' README.md # Relax lxml version pin on older releases %if 0%{?fedora} < 42 sed -i 's:^lxml>=.*:lxml:' requirements.txt %endif # Generate Python dependencies for the converter %generate_buildrequires %pyproject_buildrequires -N requirements.txt %build %meson -Ddevelopment=false %meson_build %if %{with docs} sphinx-build-3 docs html rm -rf html/.{doctrees,buildinfo} %endif %install %meson_install %find_lang %{name} # https://gitlab.gnome.org/jrb/crosswords/-/blob/master/docs/PACKAGING.md#version-0316 rm -f %{buildroot}%{_libexecdir}/gen-word-list-resource %if %{with tests} %check %meson_test appstream-util validate-relax --nonet \ %{buildroot}%{_metainfodir}/org.gnome.Crosswords.metainfo.xml desktop-file-validate \ %{buildroot}/%{_datadir}/applications/org.gnome.Crosswords.desktop \ %{buildroot}/%{_datadir}/applications/org.gnome.Crosswords.Editor.desktop %endif %files -f %{name}.lang %license COPYING %doc CONTRIBUTING.md NEWS.md README.md TODO.md images %{_bindir}/%{name} %dir %{_datadir}/%{name} %dir %{_datadir}/%{name}/puzzle-sets %dir %{_datadir}/%{name}/word-lists/ %{_datadir}/%{name}/word-lists/player.gresource %{_datadir}/applications/org.gnome.Crosswords.desktop %{_datadir}/dbus-1/services/org.gnome.Crosswords.service %{_datadir}/glib-2.0/schemas/org.gnome.Crosswords.gschema.xml %{_datadir}/glib-2.0/schemas/org.gnome.Crosswords.Editor.gschema.xml %{_datadir}/icons/hicolor/scalable/apps/org.gnome.Crosswords.svg %{_datadir}/icons/hicolor/symbolic/apps/org.gnome.Crosswords-symbolic.svg %{_datadir}/mime/packages/org.gnome.Crosswords.xml %{_metainfodir}/org.gnome.Crosswords.metainfo.xml %if %{with docs} %files doc %license COPYING %doc html %endif %files puzzle-sets-cats-and-dogs %license COPYING %{_datadir}/%{name}/puzzle-sets/cats-and-dogs %files puzzle-sets-internal %license COPYING %{_datadir}/%{name}/puzzle-sets/* %exclude %{_datadir}/%{name}/puzzle-sets/cats-and-dogs %files thumbnailer %license COPYING %{_bindir}/%{name}-thumbnailer %dir %{_datadir}/thumbnailers %{_datadir}/thumbnailers/%{name}.thumbnailer %files -n crossword-editor %license word-lists/LICENSE.wordnik %{_bindir}/crossword-editor %{_datadir}/%{name}/word-lists/broda.gresource %{_datadir}/%{name}/word-lists/wordnik.gresource %{_datadir}/applications/org.gnome.Crosswords.Editor.desktop %{_datadir}/dbus-1/services/org.gnome.Crosswords.Editor.service %{_datadir}/icons/hicolor/scalable/apps/org.gnome.Crosswords.Editor.svg %{_datadir}/icons/hicolor/symbolic/apps/org.gnome.Crosswords.Editor-symbolic.svg %{_metainfodir}/org.gnome.Crosswords.Editor.metainfo.xml %files -n ipuz-convertor %license COPYING %{_datadir}/%{name}/ipuz-convertor %{_libexecdir}/ipuz-convertor %files -n ipuz2pdf %license COPYING %{_bindir}/ipuz2pdf %changelog * Wed Oct 28 2026 Packit - 0.3.19.10.20.3-1.20261028072851464238.main.88.g9b6bad17 - Add tests for CMD_JUMP (Jonathan Blandford) - Implement CMD_JUMP (Jonathan Blandford) - Add a selectable setting on play cells (Jonathan Blandford) - Fix compilation error (Jonathan Blandford) - Style the layers dialog like libadwaita (Jonathan Blandford) - Port the zoom levels from gtk-text-editor (Jonathan Blandford) - Port the gnome-text-editor zoom popover to blp (Jonathan Blandford) - Update docs to reflect new scaling (Jonathan Blandford) - Change labels grow at the same rate as the cells (Jonathan Blandford) - Add a reset-zoom option (Jonathan Blandford) - Clean up Game main menu (Jonathan Blandford) - Fix print.svg to animate from the first frame every time (Jonathan Blandford) - Use units for touchpad/wheel zooming (Jonathan Blandford) - Turn of can_target for widgets with opacity == 0 (Jonathan Blandford) - Test guessing/solving "" (Jonathan Blandford) - Normalize guesses to NULL when they're "" (Jonathan Blandford) - Test reveal clue and cell (Jonathan Blandford) - Implement clue/cell reveal (Jonathan Blandford) - call post_change on cell/clue selected (Jonathan Blandford) - Remove reveal_mode on PlayXword (Jonathan Blandford) - Change keybindings for reveal options to Ctrl-*-E for Error (Jonathan Blandford) - Set default font to "Adwaita Sans, Sans" (Jonathan Blandford) - Fix mem leak in picker grid (Jonathan Blandford) - Test for acrostic left<> right at the beginning and end (Jonathan Blandford) - Wrap with acrostic clues to the next clue (Jonathan Blandford) - Experiment with a new zoom behavior (Jonathan Blandford) - Try applying the workaround for gtk 7400 in snapshot (Jonathan Blandford) - Test Ctrl-Backspace with enumerations (Jonathan Blandford) - Change Ctrl-backspace to stop at enumerations (Jonathan Blandford) - Enable hint metrics explicitly for the label in the grid (Jonathan Blandford) - Pin play-cell label dpi in CSS instead of using set_absolute_size (Jonathan Blandford) - Stop backspace/ctrl-backspace moving the cursor in readonly grids (Jonathan Blandford) - Tests for Ctrl-Backspace (Jonathan Blandford) - New CMD: BACKSPACE_WORD (Jonathan Blandford) - Change backspace to correctly return TRUE/FALSE (Jonathan Blandford) - Add an acrostic test for backspace (Jonathan Blandford) - Change backspace behavior (Jonathan Blandford) - ci: add Ubuntu 26.10 build and test job (Vinson Lee) - puzzle-stack: assert that the saved frame loop stays in the list (Vinson Lee) - Add a padding to the bottom of the cluelis in the game (Jonathan Blandford) - Scroll to the clue in allocation (Jonathan Blandford) - Reindent protos (Jonathan Blandford) - Drop layout manager from PlayClueList (Jonathan Blandford) - Expand margin around puzzle button icon from 12→18 (Jonathan Blandford) - Fix the label in hte cell to fixed pixel size (Jonathan Blandford) - Add spacing to the bottom of the grid to match the sides (Jonathan Blandford) - Require a new ipuz version (Jonathan Blandford) - Change show_all_languages switch to a menu item in the filter (Jonathan Blandford) - Change Rebus from Ctrl-I to Alt-Enter (Jonathan Blandford) - Make `Header` and `Title` of cats-and-dogs match (Jonathan Blandford) - Reload the game if the guesses have changed (Jonathan Blandford) - Resort the list when any percentage changes (Jonathan Blandford) - Reindentation (Jonathan Blandford) - Pass the percent-changed signal up to the puzzle-picker (Jonathan Blandford) - Remove redundant member (Jonathan Blandford) - Hide the progressbar in puzzlebuttons when we haven't started yet (Jonathan Blandford) - Compare the grid checksum at start/end of update (Jonathan Blandford) - Add tests for the puzzle stack (Jonathan Blandford) - Fix saved frame (Jonathan Blandford) - Pull task running out of the update call. (Jonathan Blandford) - s/edit_state_tasks_update/edit_state_tasks_run/g (Jonathan Blandford) - Revert "Only grab focus in EditGrid:update if we already have focus." (Jonathan Blandford) - Add a better comment for the transient settings in EditState (Jonathan Blandford) - Remove unused edit_state->grid_stage (Jonathan Blandford) - Remove the Active widgets bitfield from EditState (Jonathan Blandford) - Remove edit_autofill_details_get_scale_value() (Jonathan Blandford) - Only grab focus in EditGrid:update if we already have focus. (Jonathan Blandford) - Use xwd_editable_disable_undo() in the remaining editables (Jonathan Blandford) - shared funciton to disable undo/redo for editables (Jonathan Blandford) - Disable undo for all entries (Jonathan Blandford) - Fix undo when the text the GtkText matches the previous value (Jonathan Blandford) - Fixup puzzle when we load it before editing (Jonathan Blandford) - s/next_clue_button/auto_advance_button/g (Jonathan Blandford) - Reindent protos (Jonathan Blandford) - Change auto-advance button to a signal (Jonathan Blandford) - Change up/down to skip the advance quirk (Jonathan Blandford) - Detect XD files without strcasestr() (Vinson Lee) - Delete temporary files with g_unlink() (Vinson Lee) - Use the platform separator for search path variables (Vinson Lee) - Update Georgian translation (Ekaterine Papava) - ci: use atomic profile counter updates in the coverage job (Vinson Lee)