%bcond_without docs # tests are broken on s390x # https://gitlab.gnome.org/jrb/crosswords/-/issues/118 %ifarch s390x %bcond_with tests %else %bcond_without tests %endif Name: crosswords Version: 0.3.111.2.0 Release: 1.20231021060823184995.master.213.gc3a25b4 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.111.2.0.tar.gz # docs: fix build with sphinx 7.1.2 BuildRequires: desktop-file-utils BuildRequires: cmake BuildRequires: gcc BuildRequires: libappstream-glib BuildRequires: meson 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} 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. %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} # 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(dateparser) Requires: python3dist(lxml) Requires: python3dist(puzpy) Requires: python3dist(regex) %description -n ipuz-convertor ipuz-convertor is a script to convert puzzle files from puz to ipuz. %prep %autosetup -p1 -n crosswords-0.3.111.2.0 # 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 %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 %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}/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 -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 * Sat Oct 21 2023 Packit - 0.3.111.2.0-1.20231021060823184995.master.213.gc3a25b4 - Finish select-region (Jonathan Blandford) - Shift-select works when you move the cursor (Jonathan Blandford) - Pass the anchor_coord and new_coord to select_drag_start (Jonathan Blandford) - Fix indentation (Jonathan Blandford) - Add select-all (Jonathan Blandford) - Add a keybinding to invert the current selection (Jonathan Blandford) - Only show the clue_hints_widget when we are showing clues (Jonathan Blandford) - Improve appearance (Jonathan Blandford) - Display anagram results (Jonathan Blandford) - Quick-and-dirty-widget to display anagram results (Jonathan Blandford) - Pass the mode through WordListModel::set_filter() (Jonathan Blandford) - Select_all() by default when changing/setting a ClueGrid (Jonathan Blandford) - Add select_all/none/invert (Jonathan Blandford) - add cell_array_set_size() (Jonathan Blandford) - quick-and-dirty test code to do something when the selection changes (Jonathan Blandford) - Catch and re-emit the signal when the ClueGrid selection changes (Jonathan Blandford) - Emit a signal when the selection changes (Jonathan Blandford) - Iniitial test for the anagram code (Jonathan Blandford) - Alphabetize the words in the list. (Jonathan Blandford) - Clear the list when we don't have a hash hit (Jonathan Blandford) - Push/pop the packing instructions (Jonathan Blandford) - Update the docs to match the reality (Jonathan Blandford) - Anagrams work now (Jonathan Blandford) - Find the AnagramHashIndex in the word list. Now to resolve it. (Jonathan Blandford) - move the hash function into the shared code (Jonathan Blandford) - We don't support ? characters for anagrams yet (Jonathan Blandford) - Parse the anagram header (Jonathan Blandford) - Add a safety check against a buffer overrun (Jonathan Blandford) - Add documentation to the charset (Jonathan Blandford) - Add tests for the charset (Jonathan Blandford) - Add an iter-based API for the charset (Jonathan Blandford) - Make the charset API more consistent (Jonathan Blandford) - change charset_set to charset_set_text () (Jonathan Blandford) - Don't select blocks (Jonathan Blandford) - Move the autofill dialog to use the new selection code (Jonathan Blandford) - Have xword_state_print() display the selection arrays (Jonathan Blandford) - Remove extraneous print statement (Jonathan Blandford) - Keep CellArray sorted after inserting a row (Jonathan Blandford) - Add a print function to CellArray (Jonathan Blandford) - Handle negative widget offsets correctly (Jonathan Blandford) - Repurpose XwordSelectionMode (Jonathan Blandford) - Change state->cell_array to state->selected_cells (Jonathan Blandford) - New selection API (Jonathan Blandford) - Initial cut at selection dragging (Jonathan Blandford) - We don't use these callbacks yet (Jonathan Blandford) - Use the new selection code (Jonathan Blandford) - Add corresponding actions to XWordState (Jonathan Blandford) - Initial selection interface (Jonathan Blandford) - extract to convert widget coords to a cell into its own func (Jonathan Blandford) - Move the cell click handling into PlayGrid (Jonathan Blandford) - Remove EditPanelWidget (Jonathan Blandford) - Update this doc to reflect the current code (Jonathan Blandford) - Change EditMetadata to use the new scheme (Jonathan Blandford) - Add comments to describe the three classes of functions in this file (Jonathan Blandford) - Start porting edit-metadata to the new system (Jonathan Blandford) - play-clue-details now uses a clue-grid to display the larger hint (Jonathan Blandford) - This function won't be needed (Jonathan Blandford) - Remove the cursor state. We don't need it afterall (Jonathan Blandford) - Save/restore state on undo/redo (Jonathan Blandford) - EditState save/restore to the puzzle stack (Jonathan Blandford) - String change: the EditClueList is no longer an answer key (Jonathan Blandford) - Change PlayClueRow's behavior (Jonathan Blandford) - Change show_answers into a mode (Jonathan Blandford) - Try to fix flatpak CI builds (Jonathan Blandford) - convert EditClueList to the new system and reenable it (Jonathan Blandford) - clean up includes (Jonathan Blandford) - reeenable committing clue changes when the stage changes. (Jonathan Blandford) - remove extraneous bars callback (Jonathan Blandford) - commit changes whenever the cursor is committed. (Jonathan Blandford) - fix typo in edit_clue_details_commit_changes (Jonathan Blandford) - Finish hooking up edit-clue-details.c (Jonathan Blandford) - emit the right type in the signal (Jonathan Blandford) - emit the right type in the signal (Jonathan Blandford) - Hook up the Clues EditGrid to update signals (Jonathan Blandford) - First cut at edit-clue-details.c (Jonathan Blandford) - Fix sensitivity of bottom/right bars in a puzzle (Federico Mena Quintero) - Remove the FIXME from the callback (Jonathan Blandford) - Use guess_word instead of manually updating the cells (Jonathan Blandford) - Change xword_state_guess_word() to do what the docs says (Jonathan Blandford) - remove unused protos (Jonathan Blandford) - Made copy and paste work again (Jonathan Blandford) - Change function naming to match the others (Jonathan Blandford) - Remove some dead code (Jonathan Blandford) - We are using the quirks as the state-of-truth of symmetry (Jonathan Blandford) - We are anchoring to one quirks object per puzzle. (Jonathan Blandford) - Move the symmetry widget to the new scheme. (Jonathan Blandford) - Remove the last of the old scheme (Jonathan Blandford) - We still need this code for now (Jonathan Blandford) - New nomenclature for control functions (Jonathan Blandford) - add xword_state_swap_xword() (Jonathan Blandford) - Move edit-bars to the new system (Jonathan Blandford) - No longer need cursor-changed callback (Jonathan Blandford) - Convert word-list to the new style (Jonathan Blandford) - Add a guard (Jonathan Blandford) - reenable the puzzle_stack_changed in the main C file (Jonathan Blandford) - Remove grabs for now (Jonathan Blandford) - Surgery checkpoint 1 (Jonathan Blandford) - New porting approach (Jonathan Blandford) - Add a parallel test_grid (Jonathan Blandford) - propagate states from the toplevel down to the underlying grid (Jonathan Blandford) - Update the edit_state (Jonathan Blandford) - Don't allow an empty EditState. (Jonathan Blandford) - Set up the callbacks for edit-grid (Jonathan Blandford) - Create an EditState (Jonathan Blandford) - Remove this call, for now. (Jonathan Blandford) - pluralize clues (Jonathan Blandford) - Proxy the signals for the play grid (Jonathan Blandford) - Style fixes: xword->self, and clean line ends (Jonathan Blandford) - Store an EditState in the edit_window (Jonathan Blandford) - Forgot this, somehow (Jonathan Blandford) - Add the beginings of edit-window-controls (Jonathan Blandford) - Move the keybinding actions to edit-window-actions.c (Jonathan Blandford) - Add a disclaimer to edit-window-actions (Jonathan Blandford) - Clean up #includes (Jonathan Blandford) - Fix a leak (Jonathan Blandford) - Start of an EditState struct (Jonathan Blandford) - We aren't using these anymore (Jonathan Blandford) - Fix indentation (Jonathan Blandford) - Revert "edit_bars_get_enabled_sides(): new function" (Jonathan Blandford) - Remove dispose method (Jonathan Blandford) - CI: Install python modules via pip, but not on the system installation (Federico Mena Quintero) - EditBars: remove all the properties boilerplate (Federico Mena Quintero) - Move the code to handle EditBars::side-changed to EditWindow (Federico Mena Quintero) - EditBars: emit the side-changed signal (Federico Mena Quintero) - edit_bars_get_enabled_sides(): new function (Federico Mena Quintero) - EditBars::side_changed: new signal (Federico Mena Quintero) - edit_bars_update_state(): Have the caller pass in just whether the puzzle is barred, instead of a whole IPuzPuzzle (Federico Mena Quintero) - edit_bars_update_state(): Have the caller pass in the cluenum string (Federico Mena Quintero) - edit_bars_update_state(): Have the caller pass in the state of the bars (Federico Mena Quintero) - edit_bars_set_property(): don't auto-update when the puzzle_stack is set (Federico Mena Quintero) - Assert that we have a puzzle now that puzzle_stack_get_puzzle() shouldn't return NULL (Federico Mena Quintero) - edit-bars.c: Remove the connectino to cursor-changed (Federico Mena Quintero) - edit-bars.c: Remove the connection to "changed" on the puzzle (Federico Mena Quintero) - edit_bars_update_state(): Make public, and use it from edit_window_update() (Federico Mena Quintero) - EditBars: use a helper function to set one toggle (Federico Mena Quintero) - EditBars: move all the logic to update the number_label to update_number_label() (Federico Mena Quintero) - EditBars: extract function to update the number label (Federico Mena Quintero) - edit_bars_update_state(): Take in the puzzle, don't extract it here (Federico Mena Quintero) - edit_bars_update_state(): Compute a value only once (Federico Mena Quintero) - Move edit-window-actions to its own file. (Jonathan Blandford) - Move the EditWindow definition out of edit-window.c (Jonathan Blandford) - Catch changed signals from the WordListModelRow items (Jonathan Blandford) - Use GtkListView correctly (Jonathan Blandford) - add a word_list_get_filter() function (Jonathan Blandford) - Convert edit-symmetry to the new system (Jonathan Blandford) - Add the change_type to the update call (Jonathan Blandford) - clean up whitespace (Jonathan Blandford) - Use new EditWordList panel widget correctly (Jonathan Blandford) - Migrate EditWordList to our new base class (Jonathan Blandford) - Use new runtime for the editor (Jonathan Blandford) - revert libadwaita 1.4 change until things stabilize a little more (Jonathan Blandford) - add a convenience function to get the puzzle (Jonathan Blandford) - Use the correct parent_class type (Jonathan Blandford) - Initial implementation of EditPanelWidget base class (Jonathan Blandford) - reenable the shapebg_widget for now (Jonathan Blandford) - Update the doc to capture decisions made with federico (Jonathan Blandford) - clean whitespace (Jonathan Blandford) - Require a new libadwaita version (Jonathan Blandford) - Move to GNOME 45 (Jonathan Blandford) - Finish a dangling sentence (Jonathan Blandford) - Add the mockup to go with the doc (Jonathan Blandford) - Add a scope section to indicate what's covered by this (Jonathan Blandford) - More edits (Jonathan Blandford) - Update design doc with a lot more detail (Jonathan Blandford) - Update table to match current design (Jonathan Blandford) - Add the version to the README. Remind myself in RELEASING.md (Jonathan Blandford) - docs: fix build with sphinx 7.1.2 (Davide Cavalca) - Acrostic: Fix Intersection css when main grid has focus (Tanmay Patil) - Minor changes (Tanmay Patil) - Update to reflect Tanmay's awesome work over ths eummer (Jonathan Blandford) - Return GtkWidget (Tanmay Patil) - Use existing functions instead of duplicating (Tanmay Patil) - Removed Approach-1 code (Pratham Gupta) - Add signals to clue_label (Tanmay Patil) - Removed the length variable (Pratham Gupta) - Added index to store number of fragments (Pratham Gupta) - Remove the anagram test file (Pratham Gupta) - Improved variable naming (Pratham Gupta) - Changed comment styling (Pratham Gupta) - Code made cleaner (Pratham Gupta) - Use %u for unsigned ints (Jonathan Blandford) - Initialize array to NULL (Jonathan Blandford) - Create the anagram_list after calculating offsets (Jonathan Blandford) - Anagram Hash stored in word_list.dict (Pratham Gupta) - Small change (Pratham Gupta) - Anagram test added (Pratham Gupta) - Find the branches and cull them in empty (Pratham Gupta) - One small change (Pratham Gupta) - Fix indentation (Pratham Gupta) - Make code more readable and improve memory management (Pratham Gupta) - Make code more readable and improve memory management (Pratham Gupta) - word-list: Add Anagram Support (Pratham Gupta)