%bcond docs 1 %bcond tests 1 # The libipuz shared library version %global ipuz_soversion 0.5 Name: crosswords Version: 0.3.151.5.0 Release: 1.20250417171059076207.master.268.ga48ad767%{?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.151.5.0.tar.gz # Remove pytest-runner from requirements.txt # https://gitlab.gnome.org/jrb/crosswords/-/merge_requests/204 # Big endian systems are not supported # https://jrb.pages.gitlab.gnome.org/crosswords/devel-docs/PACKAGING.html ExcludeArch: s390x 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} %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.151.5.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 # 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} %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 %changelog * Thu Apr 17 2025 Packit - 0.3.151.5.0-1.20250417171059076207.master.268.ga48ad767 - classes string should be a const gchar * (Jonathan Blandford) - Measure the action bar for the grid column correctly (Jonathan Blandford) - Fix memsize-comparison warning (Vinson Lee) - Remove extra newline (Victor Ma) - Move m_dep to root meson.build (Victor Ma) - Get focused color working for compound dividers (Victor Ma) - Get focused color working for simple dividers (Victor Ma) - Remove old commented-out debug statements (Jonathan Blandford) - measure labels with for_size=-1 if they haven't had a label set (Jonathan Blandford) - Remove measurement of child vbox in play-grid (Jonathan Blandford) - Skip the primary and secondary measures when determining the height (Jonathan Blandford) - Listen to notify:: and not changed:: (Jonathan Blandford) - Update TODO list with some more project ideas (Jonathan Blandford) - Add MIME sniffing to downloader (Victor Ma) - Make small fixes (Victor Ma) - Remove debugging code (Victor Ma) - Fix alignment for vertical and horizontal dividers (Victor Ma) - Finish divided_cross (Victor Ma) - Finish divided_up_left (Victor Ma) - Finish divided_up_right (Victor Ma) - Begin work on diagonal divider (Victor Ma) - Add math dep (Victor Ma) - Add support for divided_plus (Victor Ma) - Add remaining divided cases to divided function (Victor Ma) - Fix and refactor editor puzzle import (Victor Ma) - Small cleanups before merging (Jonathan Blandford) - Drive by indentation fix (Jonathan Blandford) - Syle fixes (Jonathan Blandford) - Style fixes (Jonathan Blandford) - Change crosswords_inside_flatpak to get_inside_flatpak (Jonathan Blandford) - rename crosswords-app-startup to crosswords-init-startup (Jonathan Blandford) - Update answers_update() (Jonathan Blandford) - Clear the bitref (Jonathan Blandford) - Remove call to update_from_runner (Jonathan Blandford) - Update ::commit-pencil (Jonathan Blandford) - Update ::reset (Jonathan Blandford) - Update ::reulst-selected (Jonathan Blandford) - Change ::grid-selected to ::result-selected (Jonathan Blandford) - Update ::start_solve (Jonathan Blandford) - Add result_index to the state. (Jonathan Blandford) - Use the right progname to pick the crosswords settings (Jonathan Blandford) - Acrostic: set_answers: call fix_labels (Tanmay Patil) - Acrostics: call update_all after changing selection (Tanmay Patil) - Set default filename and filter in Save As dialog (Mahmoud Abdelghany) - Remove call to update_all (Jonathan Blandford) - Reorder header file to match the .ui widget (Jonathan Blandford) - Remove unused function (Jonathan Blandford) - Remove unused function (Jonathan Blandford) - Hide/show the autofill details on load (Jonathan Blandford) - Fix units of profiling dump (Jonathan Blandford) - Switch to using the generic autofill code. (Jonathan Blandford) - Move acrostic generator to a different part of the puzzle (Jonathan Blandford) - Document the STATE_OP macro (Jonathan Blandford) - Added some hints for editing this file (Jonathan Blandford) - get rid of dedicated update_all_acrostic() (Jonathan Blandford) - Merge update_all_grid() and update_all_crossword() (Jonathan Blandford) - Guard against a non-arostic puzzle passed in (Jonathan Blandford) - Fix mismatched filenames in file header comments (Mahmoud Abdelghany) - Add focused highlighting to barred borders (urffsamhunt) - alphabetize includes (Jonathan Blandford) - Revert "Use alatiera's hacked CI template for now" (Jordan Petridis) - git: cleanup mess due to rebase (Tanmay Patil) - Acrostic: commit selected answers on "Accept" (Tanmay Patil) - EditAcrosticAnswers: Use TaskRunner to Display Answers Temporarily (Tanmay Patil) - Acrostic: set symmetry to IPUZ_SYMMETRY_NONE (Tanmay Patil) - Acrostic: Handle non-across/down puzzles (Tanmay Patil) - AcrosticGenerator: cli: add random seed (Tanmay Patil) - AcrosticGenerator: cli: Iterate through application data directories for word list path (Tanmay Patil) - Acrostics: Implement AcrosticAnswerModel for listing Answers (Tanmay Patil) - EditAcrosticAnswer: receive toggled signal (Tanmay Patil) - AcrosticGenerator: remove print on failure (Tanmay Patil) - Revert "AcrosticGenerator: look for answers for clues with least candidates first" (Tanmay Patil) - AcrosticGenerator: look for answers for clues with least candidates first (Tanmay Patil) - AcrosticGenerator: add CLI frontend for acrostic generator (Tanmay Patil) - AcrosticGenerator: fix logging of clue counter (Tanmay Patil) - Extend the barred borders to the corners of cells (urffsamhunt) - acrostic: EditAutofilldetails: fix leaks (Tanmay Patil) - EditAutofilldetails: handle acrostics (Tanmay Patil) - acrostic: autofill: Run the generator (Tanmay Patil) - Add non-functional EditAutofillDetails for acrostics (Tanmay Patil) - EditHistogram: acrostics: display lengths in sorted order (Tanmay Patil) - EditAcrosticDetails: Remove generate button (Tanmay Patil) - EditAcrosticAnswers: Highlight first letter (Tanmay Patil) - Quick-and-dirty update to get something rendering (Jonathan Blandford) - clean up acrostic-answers layout (Jonathan Blandford) - Acrostic answers widget building again (Jonathan Blandford) - Bring back the autofill and list part of acrostic details (Jonathan Blandford) - Remove clues when n_clues == 0 (Jonathan Blandford) - Update edit_acrostic_details_source_str_cb to match the docs (Jonathan Blandford) - There's no guarantee the old answer length is the same (Jonathan Blandford) - Update edit_acrostic_details_quote_str_cb to match the docs (Jonathan Blandford) - fix_clues() is just a wrapper for the acrostic call (Jonathan Blandford) - Change quote/source str to prefix with normalized- (Jonathan Blandford) - Use new initialize_answers() method (Jonathan Blandford) - Make our fixes to the acrostics a lot more conservative (Jonathan Blandford) - update to capture changes (Jonathan Blandford) - Doc now approved (Jonathan Blandford) - Update docs after feedback from tanmay (Jonathan Blandford) - Draft proposal for acrostic editing (Jonathan Blandford) - This width-request was never right for the editor. (Jonathan Blandford) - Refactor: Remove the autofill code from the AcrosticDetails widget (Jonathan Blandford) - Set the direction and visibility of the clue lists (Jonathan Blandford) - Don't let the puzzle override the mode. (Jonathan Blandford) - Fix typo in ACROSTIC check (Jonathan Blandford) - Add missing paren (Jonathan Blandford) - Start refactoring update() (Jonathan Blandford) - Fill out words (Jonathan Blandford) - Change the quirks focus location for acrostics (Jonathan Blandford) - We never make the main grid editable if we have an acrostic (Jonathan Blandford) - Add a new function to call fix_all() on puzzles when loading them. (Jonathan Blandford) - Keep style state to be SELECT (Jonathan Blandford) - Refactor parts of update_all into their own functions (Jonathan Blandford) - Match padding and fill of grid sidebar (Jonathan Blandford) - Store answerlen_historgram_group (Jonathan Blandford) - acrostic-generator: Cancel the run when signalled (Tanmay Patil) - Update clue list (Tanmay Patil) - Remove prev/next buttons (Tanmay Patil) - Disable Grid information for Acrostics (Tanmay Patil) - Acrostic: Update labels (Tanmay Patil) - EditAcrosticDetails: Update even if generator fails (Tanmay Patil) - Acrostic: Enable editing of clues (Tanmay Patil) - Acrostic: Add histogram summary for answer lengths (Tanmay Patil) - It's a pointer! (Tanmay Patil) - Use common piece of code (Tanmay Patil) - EditAcrosticDetails: Add prev/next buttons to switch between available answers (Tanmay Patil) - Acrostics: Set grid state to GRID_STATE_VIEW (Tanmay Patil) - AcrosticGenerator: add skip table (Tanmay Patil) - Rename APIs (Tanmay Patil) - Enable letters summary for Acrostics (Tanmay Patil) - Make "Generate" button insensitive during run (Tanmay Patil) - Display EditAcrosticDetails on loading acrostics (Tanmay Patil) - Add EditAcrosticAnswer to display answers (Tanmay Patil) - AcrosticGenerator: check if incoming quote/source strings are NULL (Tanmay Patil) - EditAcrosticDetails: Add GtkStringList model to display answers (Tanmay Patil) - Remove EditAcrosticAnswers widget (Tanmay Patil) - EditAcrosticDetails: Add a empty word list view (Tanmay Patil) - EditAcrosticDetails: remove min and max word size AdwSpinRow widgets (Tanmay Patil) - Avoid recursion to save stack space (Tanmay Patil) - Set the word-list resource for AcrosticGenerator (Tanmay Patil) - Acrostic: store answers in PuzzleTask (Tanmay Patil) - Acrostic: display error on changing min/max word size if invalid (Tanmay Patil) - Acrostic: allow user to set min and max word size for solutions (Tanmay Patil) - Call acrostic_generator_run asynchronously (Tanmay Patil) - Editor: Acrostic: bold the first letter of every answer (Tanmay Patil) - Editor: Acrostic: handle failures while generating answers (Tanmay Patil) - edit-state: Keep the GridStateMode as it as for Acrostics (Tanmay Patil) - Remove redundant calls to set_quote/source while passing puzzle to EditWindow (Tanmay Patil) - Editor: acrostic: Display answers using GtkListBox (Tanmay Patil) - Editor: acrostic: set grid behaviour to view only (Tanmay Patil) - Match new libipuz APIs (Tanmay Patil) - EditAcrosticDetails: Add solve button (Tanmay Patil) - Update the main grid on quote str change (Tanmay Patil) - Propogate quote and source strings from Greeter to EditWindow (Tanmay Patil) - Add font-style italic to first label along with bold in acrostic clue grids (sohamkorade) - Hoist the declaration of variable `is_first_in_row` (sohamkorade) - Sort Python import statements (Vinson Lee) - gitlab: Add a default merge request template (Tanmay Patil) - Add a word-list setting to org.gnome.Crosswords.gschema (Jonathan Blandford) - more minor style fixes (Mahmoud Abdelghany) - styling (Mahmoud Abdelghany) - mainly style changes + made crosswords_app_startup_init() take no arguments (Mahmoud Abdelghany) - gerror (Mahmoud Abdelghany) - gerror (Mahmoud Abdelghany) - removed some not needed includes from puzzle-downloader.c (Mahmoud Abdelghany) - moved the startyp logic to crosswords-app-startup.c/h and make puzzle_downloader_run_auto() use run_command (Mahmoud Abdelghany) - Bold the first letter in all acrostic clue grids (sohamkorade) - more g_warning removed (Mahmoud Abdelghany) - fix even more style issues + removed the g_warning for completley silent stuff (Mahmoud Abdelghany) - Modified svg_from_layout in svg.c to include overlay. Reverted thumnailer to original (arshakir) - fix some wrong indentation in function declarations (Mahmoud Abdelghany) - modified: src/puzzle-downloader.c (Mahmoud Abdelghany) - fix function i accidently broke (Mahmoud Abdelghany) - Updated thumbnail to now include overlays. Fixed ClueBlockCell coloring (arshakir) - minor changes on my initial take (Mahmoud Abdelghany) - my initial take on implementing the auto puzzle downloader (Mahmoud Abdelghany) - Fixed assertion error in svg.c which made the code crash (arshakir) - somehow working first attempt , it auto downloads but i lowkey destroyed the whole codebase with print statments trying to make it so i'll need to fix that ,also it gives a a dialog that blocks the ui during downloading i have also to fix that . it doesnt keep track on last update time and lastly i used wierd way to check fornetwork connectivity cause my machiene have some problems with flatpack (Mahmoud Abdelghany) - initial initial attempt just messing around . (Mahmoud Abdelghany) - made the auto-downloader button visible (Mahmoud Abdelghany) - Fix missing-field-initializers warning (Vinson Lee) - Add menu entry and overlay hints for Open (Jonathan Blandford) - Fix format warning (Vinson Lee) - fix ndentation (Mahmoud Abdelghany) - Refactor play_window_load_uri to include delete_when_done and remove play_window_load_puzzle_from_uri (Mahmoud Abdelghany) - Address style and error-handling reviews: replace g_error with g_assert, fix single-line if style, split declaration and assignment (Mahmoud Abdelghany) - Update required version of xdfile to a later snapshot (Jonathan Blandford) - Update the style guide with brace hints (Jonathan Blandford) - Fix misspelling and add a directory (Jonathan Blandford) - Regenerate cargo-sources.json to match libipuz updates (Jonathan Blandford) - Add XDG_DATA_DIRS= to the distrobox enter command (Jonathan Blandford) - Clean up wording a bit more (Jonathan Blandford) - Clean up the proposal a bit more (Jonathan Blandford) - Fix link to the design doc (Jonathan Blandford) - Add a reminder on regenerating requirements files (Jonathan Blandford) - Add a doc describing the word-scoring project for outreachy/gsoc (Jonathan Blandford) - install-rust-tools.sh: Use cargo-deny 0.17.0 so it can build with rustc 1.81 (Federico Mena Quintero) - Use alatiera's hacked CI template for now (Federico Mena Quintero) - Use the locally-cached freedesktop CI templates (Federico Mena Quintero) - Bump the rustup version to 1.28.0 (Federico Mena Quintero) - Remove unused imports (Vinson Lee) - Update 3 files (Mahmoud Abdelghany) - Fix style issues, use g_error (fixes #253) (Mahmoud Abdelghany) - Revert "Fix style issues, use g_error (fixes #253)" (Mahmoud Abdelghany) - Fix style issues, use g_error (fixes #253) (Mahmoud Abdelghany) - Fix single-bit-bitfield-constant-conversion warnings (Vinson Lee) - Add global Ctrl+O shortcut to open dialog (fixes #253) recomitted to Fix indentation issues (Mahmoud Abdelghany) - Revert "Add global Ctrl+O shortcut to open dialog (fixes #253)" (Mahmoud Abdelghany) - Add global Ctrl+O shortcut to open dialog (fixes #253) (Mahmoud Abdelghany) - Define the FLATPAK_PIP_GENERATOR at the top (Jonathan Blandford) - Update cargo.sources to match the latest version (Jonathan Blandford) - Did not mean to commit this. (Jonathan Blandford) - Add support for MIRRORED_DIAGONAL and MIRRORED_DIAGONAL_UP_RIGHT (Jonathan Blandford) - Include missing fixes to showenumerations -> show_enumerations (Jonathan Blandford) - Adjust to ipuz_crossword_new() API change (Jonathan Blandford) - s/showenumerations/show_enumerations (Jonathan Blandford) - Lots if things to do (Jonathan Blandford) - Add a comment (Jonathan Blandford) - Add some additional stats to our counter. (Jonathan Blandford) - Make the PUSH_TIMER string consistent. (Jonathan Blandford) - Add some profiling by default to both update_all() and the word list (Jonathan Blandford) - Print the stats on exit when in a development build (Jonathan Blandford) - Build the stats into the word-list library (Jonathan Blandford) - New code to measure how long certain operations take (Jonathan Blandford) - Fix Anna Shechtman's name (Jonathan Blandford) - Add word scores to our list of design drafts (Jonathan Blandford) - Some musings on scoring words. An early draft (Jonathan Blandford) - More updates to the docs (Jonathan Blandford) - Remove charset-entry-buffer (Jonathan Blandford) - Fix other problems with this doc (Jonathan Blandford) - Use the same format for my made cup grid diagrams (Jonathan Blandford) - Add an example to the word-solver.md doc to demonstrate the word problem (Jonathan Blandford) - Add a test for profiling the word list (Jonathan Blandford) - Add a comment on a possible optimization for the word-list (Jonathan Blandford) - Remove a malloc/memcpy/free from fragment_list_intersect() (Jonathan Blandford) - optimize word_list_index_get_section() (Jonathan Blandford) - Highlight that we follow the GNOME Code of conduct (Jonathan Blandford) - Move the word-solver.md out of the deprecated section (Jonathan Blandford) - Fix typos and missing words (Jonathan Blandford) - Update the word-solver doc to describe our algorithm (Jonathan Blandford) - Sort the words from the word-list by a score (Jonathan Blandford) - Don't double skip when calculating the crossing slots (Jonathan Blandford) - Update comments about the word sorting (Jonathan Blandford) - Consider initial val when autofilling a region (Jonathan Blandford) - Post release version bump (Jonathan Blandford)