%bcond docs 1 # tests are broken on s390x # https://gitlab.gnome.org/jrb/crosswords/-/issues/118 %ifarch s390x %bcond tests 0 %else %bcond tests 1 %endif Name: crosswords Version: 0.3.14 Release: 1.20241124184607983649.master.219.g216efd16%{?dist} Summary: Solve crossword puzzles # crosswords itself is GPL-3.0-or-later, the puzzle sets it bundles are # CC-BY-SA-4.0 License: GPL-3.0-or-later AND CC-BY-SA-4.0 URL: https://gitlab.gnome.org/jrb/crosswords Source: crosswords-0.3.14.tar.gz # Update requirements.txt and add a warning # build: relax Python version pins in requirements.txt # Fix gresource generation 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-0.4) 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} %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. %prep %autosetup -p1 -n crosswords-0.3.14 # Update image references in README mkdir images cp -p data/images/{a-dogs-day,hero}.png images/ sed -i 's:data/images/:images/:g' README.md # 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} %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 # TODO: remove when the 0.3.14 is out mkdir -p %{buildroot}%{_datadir}/%{name}/word-lists %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 %{_datadir}/%{name}/word-lists/ %{_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}/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 %{_bindir}/crossword-editor %{_datadir}/applications/org.gnome.Crosswords.Editor.desktop %{_datadir}/dbus-1/services/org.gnome.Crosswords.Editor.service %{_datadir}/glib-2.0/schemas/org.gnome.Crosswords.Editor.gschema.xml %{_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 %changelog * Sun Nov 24 2024 Packit - 0.3.14-1.20241124184607983649.master.219.g216efd16 - Only load AdwStyleManager if we have a display (Jonathan Blandford) - bump the glib dependency (Jonathan Blandford) - Update the copyright date to be the build year (Jonathan Blandford) - Standardize our admonition format (Jonathan Blandford) - Add a disclaimer about installing distrobox (Jonathan Blandford) - Fix instructions to source the environment, and preserve it (Jonathan Blandford) - Add a call to download libipuz explicitly (Jonathan Blandford) - CI: Bump the container base tag (Federico Mena Quintero) - RELEASING.md: Update with instructions for the new script (Federico Mena Quintero) - ci/update-python-requirements: New script to generate python3-requirements.json with the special modules (Federico Mena Quintero) - RELEASING.md: add cheatsheet with the json for puzpy/xdfile (Federico Mena Quintero) - Explicitly require lxml 5.3.0 or later (Federico Mena Quintero) - Update python3-requirements.json by hand (Federico Mena Quintero) - Add comment to requirements.txt to distinguish it from the CI's own (Federico Mena Quintero) - CI: Put a checkout of flatpak-builder-tools in /usr/local (Federico Mena Quintero) - CI: add requirements-parser for flatpak-builder-tools/pip (Federico Mena Quintero) - CI: Bump the Rust stable version (Federico Mena Quintero) - CI: Explicitly install diffutils/less so the busybox version doesn't conflict with distrobox (Federico Mena Quintero) - Try a different way to get the analyzer to not complain (Jonathan Blandford) - Avoid triggering a potential error with asan (Jonathan Blandford) - disable test functions to avoid warnings about unused functions (Jonathan Blandford) - disable tests with custom data for now (Jonathan Blandford) - Read the frequencies from the frequency table (Jonathan Blandford) - Write the frequency-table-offset to the index (Jonathan Blandford) - Calculate letter frequencies and write them to the word index (Jonathan Blandford) - Add a landing page for GitLab Pages (Federico Mena Quintero) - Temporarily compile with -Wno-expansion-to-defined (Jonathan Blandford) - Try bumping the flatpak runtime versions to match (Jonathan Blandford) - Move to the latest version of GNOME (Jonathan Blandford) - Port to AdwDialog (Jonathan Blandford) - Port to AdwAboutDialog (Jonathan Blandford) - Port to AdwAboutDialog (Jonathan Blandford) - Port to AdwAboutDialog (Jonathan Blandford) - Port to AdwAboutDialog (Jonathan Blandford) - Port to AdwAboutDialog (Jonathan Blandford) - Port to AdwAboutDialog (Jonathan Blandford) - use g_sort_array() (Jonathan Blandford) - I forget word (Jonathan Blandford) - Update basic-types description (Jonathan Blandford) - Move the convertor into its own subdirectory in the tools/ directory (Jonathan Blandford) - use API for IpuzCell rather than poke the structure (Jonathan Blandford) - Remove stray g_print (Jonathan Blandford) - Change the game won toast to use_markup (Jonathan Blandford) - Add the label to the clues when they're not tied to a direction (Jonathan Blandford) - Fix Typo (Jonathan Blandford) - Add a guard against jpz acrostic files. (Jonathan Blandford) - Make error message a little more understandable (Jonathan Blandford) - Add another namespace to the namespaces we support (Jonathan Blandford) - Change the applet to also allow namespaces (Jonathan Blandford) - use self.assert instead of manually exiting (Jonathan Blandford) - Optionally unzip the src jpz file if it's zipped up (Jonathan Blandford) - Link to the issue and not the design (Jonathan Blandford) - Update startup-actions doc to add a few more possible directions (Jonathan Blandford) - style the scorolledwindows in the sidebar explicitly (Jonathan Blandford) - Initialize result to NULL (Jonathan Blandford) - s/WordSolver/TaskRunner/g (Jonathan Blandford) - remove unneeded header files (Jonathan Blandford) - Rename get_solution to get_result (Jonathan Blandford) - Make WordSolver generic (Jonathan Blandford) - Rethought the initial_word_table (Jonathan Blandford) - remove cross-thread communication info from _new() (Jonathan Blandford) - move code to set up the run to PuzzleTask (Jonathan Blandford) - Use PuzzleTask to clear the solution (Jonathan Blandford) - Change word-solver-task-cell to inherit from PuzzleTask (Jonathan Blandford) - New object to act as the base of a task (Jonathan Blandford) - Add a comment to explain the setlocale call (Jonathan Blandford) - Add a warning if setlocale fails (Jonathan Blandford) - migrate to ipuz_clue_get_first_coord (Jonathan Blandford) - ipuz_clue_get_enumeration no longer refs on return (Jonathan Blandford) - use accessors for ipuz_clue (Jonathan Blandford) - move to new IpuzClue API (Jonathan Blandford) - s/get_size/get_total_count/g (Jonathan Blandford) - Adjust to new ipuz_charset iterator functionality (Jonathan Blandford) - migrate to ipuz_puzzle_game_won (Jonathan Blandford) - Migrate to ipuz-grid (Jonathan Blandford) - Acrostic: advance to the next cell using the quote clue, irrespective of the set preference (Tanmay Patil) - migrate from ipuz_crossword_find_clue_by_* (Jonathan Blandford) - migrate from ipuz_crossword_clue_guessed (Jonathan Blandford) - migrate from ipuz_crossword_get_clue/guess_string_by_id (Jonathan Blandford) - migrate from ipuz_crossword_get_id_by_clue (Jonathan Blandford) - migrate from ipuz_clues_get_clue_by_id (Jonathan Blandford) - migrate from ipuz_crossword_get_n_clues (Jonathan Blandford) - migrate from ipuz_crossword_get_clues (Jonathan Blandford) - migrate from ipuz_crossword_clue_set_get_label (Jonathan Blandford) - migrate from ipuz_clues_clue_set_get_dir (Jonathan Blandford) - Migrate ipuz_crossword_get_n_clue_sets to ipuzclues (Jonathan Blandford) - Match with new libipuz acrostic api (Jonathan Blandford) - Sync with updated libipuz changes (Jonathan Blandford) - Always try to scroll to the row (Jonathan Blandford) - Change ipuz-convertor to avoid failing on missing imports (Adam Fontenot) - Add builddir = true to the json (Jonathan Blandford) - More header updates (Jonathan Blandford) - update headers (Jonathan Blandford) - Reminder to update docs in RELEASING (Jonathan Blandford) - update headers (Jonathan Blandford) - Update doc index page (Jonathan Blandford) - update some doc headers (Jonathan Blandford) - go back to building with network (Jonathan Blandford) - Include cargo-sources.json (Jonathan Blandford) - close the preview window with esc or ctrl-w (Jonathan Blandford) - remove selection from preview (Jonathan Blandford) - Add an AdwHeaderBar to the window (Jonathan Blandford) - Keep a separate state for the preview window, and pop it up on C-S-p (Jonathan Blandford) - Refactor EditPreviewWindow (Jonathan Blandford) - Refactor measure (Jonathan Blandford) - Add a collapsible property to PlayXwordColumn (Jonathan Blandford) - Fix a long-standing bug with calculating the initial x of the puzzle (Jonathan Blandford) - Remove dispose (Jonathan Blandford) - Set up stub for edit-preview-window (Jonathan Blandford) - Update reflect what we are planning and include justifications (Jonathan Blandford) - Use new tags for building (Jonathan Blandford) - Remove skip_filled (Jonathan Blandford) - Add explicit dependency on metainfo file meson objects and paths (Jonathan Blandford) - Grab libipuz first (Jonathan Blandford) - explicitly build libipuz without introspection and docs (Jonathan Blandford) - Use the script to run tests (Jonathan Blandford) - New script to preinstall libipuz before running tests (Jonathan Blandford) - disable docs and gobject-introspection on the build for now (Jonathan Blandford) - Fix edit-hero.ipuz JSON strings (Vinson Lee) - load the url, not author (Jonathan Blandford) - Initialize autoptr to NULL (Jonathan Blandford) - Update RELEASING to reflect new location (Jonathan Blandford) - Remove these two word lists (Jonathan Blandford) - bump the CI version, which shoudl force it to rebuild (Jonathan Blandford) - Clean up tests in meson.build (Jonathan Blandford) - Disable the tests that run the acrostic generator (Jonathan Blandford) - Dup the charset (Jonathan Blandford) - Create a test generator with a custom word-list (Jonathan Blandford) - Add a "word-list" property to AcrosticGenerator (Jonathan Blandford) - reindent (Jonathan Blandford) - Charset should be a boxed, not a pointer (Jonathan Blandford) - reindent (Jonathan Blandford) - Update tests to pass. (Jonathan Blandford) - Install the test word list in the right place in the resource (Jonathan Blandford) - Add four anagrams for testing purposes. (Jonathan Blandford) - Default WordList:track-settings to FALSE (Jonathan Blandford) - Change the built-in word-list resource to be a smaller list (Jonathan Blandford) - Clear out the skip-list when the resource changes (Jonathan Blandford) - use the new word-array-model (Jonathan Blandford) - use the new word-array-model (Jonathan Blandford) - Use the new array-word-model (Jonathan Blandford) - split word-array-model into it's own file (Jonathan Blandford) - cancel the autosolver when the resource changes (Jonathan Blandford) - Update the model when the word-list source changes (Jonathan Blandford) - Recalculate the filter after changing the word-list source (Jonathan Blandford) - Listen to changes in the default word-list (Jonathan Blandford) - Emit a signal when the default resource changes (Jonathan Blandford) - Try the newest version of tubleweed (Jonathan Blandford) - disable some gtk build options for the subprojects (Jonathan Blandford) - Pin the wrap files to the newer required versions (Jonathan Blandford) - Bump gtk requirements (Jonathan Blandford) - Add default_options to libadwaita (Jonathan Blandford) - AdwDialog is in libadwaita-1.5. Bump the version requirement (Jonathan Blandford) - Bump the meson version requirement (Jonathan Blandford) - Make global word-list a GObject (Jonathan Blandford) - Revert the devel flatpak file to build with network (Jonathan Blandford) - Revert the devel flatpak file to build with network (Jonathan Blandford) - Fix leaks (Jonathan Blandford) - Use the default word list from the gsetting (Jonathan Blandford) - s/is_selected/is_default (Jonathan Blandford) - use default values for new puzzles (Jonathan Blandford) - Hook up default author/copyright/url to the UI (Jonathan Blandford) - Add default author/copyright/url to the schema (Jonathan Blandford) - Hook up radio buttons to the default word-list. (Jonathan Blandford) - Add set_default() (Jonathan Blandford) - update comment description (Jonathan Blandford) - Create radio buttons for each word list (Jonathan Blandford) - Add is_selected (Jonathan Blandford) - Add a gsetting to keep the preferred word-list (Jonathan Blandford) - Drop the 'word-list-' prefix for the resource files (Jonathan Blandford) - Add new files to parse the resources from disk (Jonathan Blandford) - Parse word-count from the index (Jonathan Blandford) - Set a WORD_LIST_PATH env variable (Jonathan Blandford) - Add the word count to the exported index (Jonathan Blandford) - Pass the output directory to gen-word-list-resource (Jonathan Blandford) - Add an autoclean function to WordListIndex (Jonathan Blandford) - Make sure output matches target filename. (Jonathan Blandford) - Add the index to the gresource file (Jonathan Blandford) - Change gen-word-list to output the index json block separately (Jonathan Blandford) - Create standalone gresource files for the word lists (Jonathan Blandford) - Apply earlier docs (Jonathan Blandford) - Convert to AdwPreferencesDialog (Jonathan Blandford) - Convert to AdwPreferencesDialog (Jonathan Blandford) - remove cell-array from libword-list (Jonathan Blandford) - Initial stub for edit preferences dialog (Jonathan Blandford) - Add display-name to the wordlist headers (Jonathan Blandford) - Update doc (Jonathan Blandford) - Match new acrostic API (Jonathan Blandford) - s/get_info/get_puzzle_info() (Jonathan Blandford) - Match new signature for IpuzArrowwordForeachBlocksFunc (Jonathan Blandford) - Match new foreach signature (Jonathan Blandford) - Match new foreach function naming and signature (Jonathan Blandford) - Migrate to IpuzCellType (Jonathan Blandford) - Foreach now takes a const IpuzCellCoord* (Jonathan Blandford) - Match IpuzArrowword passing coords by reference (Jonathan Blandford) - Migrate to IpuzGuesses passing coords by ref (Jonathan Blandford) - Change run script to have it load the library/GI from libipuz (Jonathan Blandford) - Move IpuzBoard to pass the coord by ref (Jonathan Blandford) - Change libipuz calls to pass IpuzCellCoord by reference (Jonathan Blandford) - Move IpuzClueId calls to libipuz to be by reference (Jonathan Blandford) - use ipuz_crossword_get_id_by_clue() (Jonathan Blandford) - Reenable network build (Jonathan Blandford) - build: relax Python version pins in requirements.txt (Davide Cavalca) - Great renaming (Jonathan Blandford) - post release version bump (Jonathan Blandford) - Update and add a warning (Jonathan Blandford) - sync with versions from flathub (Jonathan Blandford)