%bcond docs 1 %bcond tests 1 # The libipuz shared library version %global ipuz_soversion 0.5 Name: crosswords Version: 0.3.161.5.0 Release: 1.20250716073728898573.master.247.g0d9a7f4a%{?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.161.5.0.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} %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.161.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} # 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 %changelog * Wed Jul 16 2025 Packit - 0.3.161.5.0-1.20250716073728898573.master.247.g0d9a7f4a - Remove play-style.[ch] (Jonathan Blandford) - Copy the shapebg over to the cell preview (Jonathan Blandford) - Match the shapebg clear button to the color popups (Jonathan Blandford) - Add a missing popdown when clear is ativated (Jonathan Blandford) - Change css of clear button to have no radius up top (Jonathan Blandford) - Hook up the clear button to the style update (Jonathan Blandford) - Add a css style to color swatches (Jonathan Blandford) - Remove garbage code for storing swatches (Jonathan Blandford) - Support switching dark mode state (Jonathan Blandford) - Use the swatches "selected" property (Jonathan Blandford) - Add a "selected" property to the swatch (Jonathan Blandford) - Change EditColorSwatch to inherit from Button (Jonathan Blandford) - Set the padding/margin to 0 (Jonathan Blandford) - Change the swatches to buttons, and put them in boxes (Jonathan Blandford) - Use the GNOME Color Palette for the style popover (Jonathan Blandford) - fix layout_cell_equal() (Jonathan Blandford) - Add a comment to describe the next operations (Jonathan Blandford) - Migrate from play-style to color-palette (Jonathan Blandford) - Remove play-style.h header from includes (Jonathan Blandford) - migrate from play-style to color-palette (Jonathan Blandford) - Remove default colors from grid-layout (Jonathan Blandford) - Add color_darken to palette (Jonathan Blandford) - Move from play-style.h to color-palette.h (Jonathan Blandford) - Move `play_style_color_luminance()` to pallete-color.h (Jonathan Blandford) - play-style isn't needed by this file anymore (Jonathan Blandford) - Remove svg.[ch] (Jonathan Blandford) - Remove coloring_from_adwaita (Jonathan Blandford) - Move spacer_size_group out of the template (Jonathan Blandford) - Tidy up and remove boilerplate code in `xwd_thumbnail_puzzle()` (Toluwaleke Ogundipe) - puzzle-render: Ignore the `filled` member of layout items (Toluwaleke Ogundipe) - puzzle-render: Clear the current path on fill/stroke with `alpha==0` (Toluwaleke Ogundipe) - puzzle-render: Render `NULL` cells when visible (Toluwaleke Ogundipe) - puzzle-render: Fix cell color logic (Toluwaleke Ogundipe) - puzzle-render: Eliminate gaps between rendered items (Toluwaleke Ogundipe) - Add color scheme support to game/editor thumbnails (Toluwaleke Ogundipe) - Add a comment at the top of puzzle-render.c (Toluwaleke Ogundipe) - `xwd_thumbnail_puzzle()`: Return `GdkTexture` instead of `GdkPaintable` (Toluwaleke Ogundipe) - Remove unused commented code in `picker-grid.c` (Toluwaleke Ogundipe) - Use the Cairo renderer for puzzle button thumbnails (Toluwaleke Ogundipe) - Use the Cairo renderer for puzzle template thumbnails (Toluwaleke Ogundipe) - Rewrite `xwd_thumbnail_puzzle()` (Toluwaleke Ogundipe) - Add color scheme support to `PlayGrid` overlay (Toluwaleke Ogundipe) - puzzle-render: Add color scheme support for overlays (Toluwaleke Ogundipe) - puzzle-render: Tidy up dark scheme colors init (Toluwaleke Ogundipe) - puzzle-render: Remove special cases for darkened colors (Toluwaleke Ogundipe) - puzzle-render: Use palette macros to initialize colors (Toluwaleke Ogundipe) - Add GNOME color palette definitions and helper macros (Toluwaleke Ogundipe) - puzzle-render: Initialize undefined dark colors to light variants (Toluwaleke Ogundipe) - thumbnailer: Add color scheme support (Toluwaleke Ogundipe) - Add a utility function to derive render color scheme from adwaita (Toluwaleke Ogundipe) - Update puzzle render color-scheme/styling comments (Toluwaleke Ogundipe) - puzzle-render: Add color scheme support to cell styling (Toluwaleke Ogundipe) - puzzle-render: Add color scheme support to border styling (Toluwaleke Ogundipe) - puzzle-render: Add initial color scheme support (Toluwaleke Ogundipe) - Require libipuz > 0.5.2 (Vinson Lee) - Write an origin tag when saving (Jonathan Blandford) - Update Slovenian translation (Martin) - Add KP_Add/Subtract and equals to the zoom keybindings (Jonathan Blandford) - Remove Word List from the preference group (Jonathan Blandford) - Add blueprint-compiler to the build requirements (Jonathan Blandford) - Fix leaks in `render_puzzle_with_config()` (Toluwaleke Ogundipe) - PlayGrid: Remove `update_overlay()` and SVG details (Toluwaleke Ogundipe) - PlayGrid: Render overlays using the Cairo renderer (Toluwaleke Ogundipe) - Update Ukrainian translation (Yuri Chornoivan) - Limit size changes for the histograms (Jonathan Blandford) - Break up composition stats into multiple lines (Jonathan Blandford) - Update min sizes of sidebar and ClueGrid (Jonathan Blandford) - Change header to be Clue instead of the somewhat nonsensical "Details" (Jonathan Blandford) - Change spacing to match grid and style spacking (Jonathan Blandford) - Update Brazilian Portuguese translation (Rafael Fontenelle) - cleanup the style for the clue grid (Jonathan Blandford) - Add blueprint to the flatpak manifests (Jonathan Blandford) - Bump the version. Maybe this will work. (Jonathan Blandford) - Try manually including python-gi (Jonathan Blandford) - add blueprint-compiler to the list of required packages for SUSE (Jonathan Blandford) - Remove subtitle from ActionRows (Jonathan Blandford) - Remove the title — it's already in the PreferencesGroup (Jonathan Blandford) - Change blueprint meson code to not compile on install (Jonathan Blandford) - Remove the Navigation page (Jonathan Blandford) - Set some minimum sizes for the sidebar (Jonathan Blandford) - Update Brazilian Portuguese translation (Rafael Fontenelle) - Use cairo renderer in `crosswords-thumbnailer` (Toluwaleke Ogundipe) - Remove extraneous AdwViewStack from sidebar (Jonathan Blandford) - render: Document the CSS colors for every border and cell style (Toluwaleke Ogundipe) - Rename src/render.{c,h} -> src/puzzle-render.{c,h} (Toluwaleke Ogundipe) - render: Properly document the derivation of border and cell style colors (Toluwaleke Ogundipe) - Set styles on the title/subtitle labels (Jonathan Blandford) - Result of `blueprint port` (Jonathan Blandford) - render: Tidy up code (Toluwaleke Ogundipe) - Add Brazilian Portuguese translation (Rafael Fontenelle) - Update Slovenian translation (Martin) - render: Add functions to render puzzle instances directly (Toluwaleke Ogundipe) - Include `.arrow_placement` in `layout_overlay_equal()` (Toluwaleke Ogundipe) - Fix layout overlay extents tests (Toluwaleke Ogundipe) - Exclude divided and arrow overlays in SVG generation (Toluwaleke Ogundipe) - Implement rendering of arrow overlays (Toluwaleke Ogundipe) - Define layout extents for arrow overlays (Toluwaleke Ogundipe) - Tidy up `grid_layout_get_overlay_extents()` (Toluwaleke Ogundipe) - Define layout path ops for arrow overlays (Toluwaleke Ogundipe) - Simplify layout path ops definitions (Toluwaleke Ogundipe) - Extend `LayoutPath` transformation (Toluwaleke Ogundipe) - Add layout overlays for arrowword arrows (Toluwaleke Ogundipe) - Correct union field name for `REL_MOVE` path ops definitions (Toluwaleke Ogundipe) - render: Implement cell styling (Toluwaleke Ogundipe) - render: Implement border and intersection styling (Toluwaleke Ogundipe) - render: Make color definitions more compact (Toluwaleke Ogundipe) - Fix color of focused layout overlays (Toluwaleke Ogundipe) - Preserve layout aspect ratio when rendering with cairo (Toluwaleke Ogundipe) - Implement rendering of divided overlays (Toluwaleke Ogundipe) - Define layout extents and paths for divided overlays (Toluwaleke Ogundipe) - Change path operations naming scheme (Toluwaleke Ogundipe) - Add layout overlays for divided styles (Toluwaleke Ogundipe) - Add line layout element shape and rendering (Toluwaleke Ogundipe) - render: Implement path stroke operation (Toluwaleke Ogundipe) - render: Separate path draw and fill operations (Toluwaleke Ogundipe) - Update layout overlay extents tests (Toluwaleke Ogundipe) - Redefine apostrophe enumeration path based on `border_size=4` (Toluwaleke Ogundipe) - Do not return cairo status from puzzle render funtions (Toluwaleke Ogundipe) - Fix/Improve grid-layout header file structure (Toluwaleke Ogundipe) - Add "relative move to" path operation for layout elements (Toluwaleke Ogundipe) - Explain layout element position for different shapes (Toluwaleke Ogundipe) - Render apostrophe enumeration as a path instead of text (Toluwaleke Ogundipe) - Add path layout element shape and rendering (Toluwaleke Ogundipe) - Render period enumeration as a circle instead of text (Toluwaleke Ogundipe) - Add circle layout element shape (Toluwaleke Ogundipe) - Implement layout overlay rendering using cairo (Toluwaleke Ogundipe) - Start implementing puzzle rendering using cairo directly (Toluwaleke Ogundipe) - Update layout tests for barred overlay extents (Toluwaleke Ogundipe) - Restructure definitions for layout element extents (Toluwaleke Ogundipe) - Use more verbose variable names (Victor Ma) - Fix code for handling CLUE_DIRECTION_NONE (Victor Ma) - Reunite the update functions (Victor Ma) - Reimplement using a single model (Victor Ma) - CI: add a test coverage job (Federico Mena Quintero) - Implement title switching (Victor Ma) - Update cargo-sources.json to make the flatpak build (Federico Mena Quintero) - ci/requirements.txt: Add aiohttp and toml for flatpak-builder-tools (Federico Mena Quintero) - Make both lists initially hidden (Victor Ma) - Store clue direction as a field in EditWordList (Victor Ma) - Change visible word list based on cursor direction (Victor Ma) - CI: Update the Rust toolchain (Federico Mena Quintero) - Make only one word list visible (Victor Ma) - CI: Update the CI template (Federico Mena Quintero) - Remove GtkSizeGroup (Victor Ma) - Add down word list to the single prefs group (Victor Ma) - Bind preferences group (Victor Ma) - Remove down word list (Victor Ma) - edit-window-controls.c: Update IpuzAcrostic API changes (Tanmay Patil) - Use -1 for strlen maxsize (Victor Ma) - Use simpler method to account for rebus (Victor Ma) - Rename FIXME category for consistency (Victor Ma) - Use guint instead of gint (Victor Ma) - Account for rebus padding (Victor Ma) - Make minor formatting fixes (Victor Ma) - Add rebus hotkeys to editor help overlay (Victor Ma) - Update Slovenian translation (Martin) - Bring back the test to make sure the overlap is right (Jonathan Blandford) - Go back to the test word list (Jonathan Blandford) - Add test case (Victor Ma) - Comment out broken assertion (Victor Ma) - Add function to use Broda resource in tests (Victor Ma) - Use utf8 functions (Victor Ma) - Improve word_array_print function (Victor Ma) - Clean up code (Victor Ma) - Update Slovenian translation (Martin) - Update Ukrainian translation (Yuri Chornoivan) - Add Slovenian translation (Martin) - Add Ukrainian translation (Yuri Chornoivan) - Fix word_array_equals function (Victor Ma) - Comment out debug statements (Victor Ma) - LINGUAS: Rename de_DE to de (Vinson Lee) - Do null check before calling sort function (Victor Ma) - Rename de_DE.po to de.po (Jonathan Blandford) - Fix is_sorted function (Victor Ma) - Handle different cases in intersection function (Victor Ma) - Add test running function (Victor Ma) - Finish equivalent test function (Victor Ma) - Add word_array_equals (Victor Ma) - Begin work on equivalent_intersection_test (Victor Ma) - Add order checking function for tests (Victor Ma) - Sort WordArray by index (Victor Ma) - Fix name conflict (Victor Ma) - Add debugging code (Victor Ma) - Add skeleton for word_array_sort (Victor Ma) - Remove comment about WordArray being auto-sorted (Victor Ma) - Add Russian translation (David Sultaniiazov) - Add a link to damned lies (Jonathan Blandford) - Add a hint to packager about gen-word-list-resource (Jonathan Blandford) - Install gen-word-list-resource to libexecdir (Jonathan Blandford) - Update RELEASING to use damned lies in the workflow (Jonathan Blandford) - Fix trivial issues in strings (Rafael Fontenelle) - Update Azerbaijani translation (Ramal Rəhimov) - Add Azerbaijani translation (Ramal Rəhimov) - Update the python requirements while we're doing this (Jonathan Blandford) - Update cargo-sources (Jonathan Blandford) - Remove two ghost files from POTFILES.in (Jonathan Blandford) - I need the desktop file keywords after all (Jonathan Blandford) - Remove libadwaita snapshot from the Editor flatpak manifest (Jonathan Blandford) - We now need to explicitly set PUZZLE_SET_PATH to include /app (Jonathan Blandford) - Change POFILES to POFILES.in (Jonathan Blandford) - Correct the semantics of a macro function (AnonymouX47) - Make expression evaluation order explicit for readability (AnonymouX47) - Add tests for layout overlay geometry computation (AnonymouX47) - Add tests for layout item geometry computation (AnonymouX47) - Test that all layout overlay kinds are loaded (AnonymouX47) - Add layout test helpers (AnonymouX47) - Add `LayoutElementExtents` sizing discriminant (AnonymouX47) - Zero out fields of layout element extents not explictly set (AnonymouX47) - Update .gitlab-ci.yml file to use new CI image (Jonathan Blandford) - Sigh. Forgot a close-quote (Jonathan Blandford) - Clean up some SVG code (AnonymouX47) - Opensuse remote URI hasn't been updated in 3 years (Jonathan Blandford) - Remove `x=0, y=0` attributes from SVG item and overlay definitions (AnonymouX47) - Post release version bump (Jonathan Blandford) - Refactor SVG overlay drawing (AnonymouX47) - End SVG arrow definition strings with newline sequence (AnonymouX47) - Merge SVG element instantiation functions (AnonymouX47) - Use the centrally computed extents for SVG layout item definitions (AnonymouX47) - Specify layout element sizing discriminant source (AnonymouX47) - Factor out layout overlay geometry computation (AnonymouX47) - Extend layout element sizing to allow overlays (AnonymouX47) - Do not specify sizes for layout item SVG instances (AnonymouX47) - Collapse redundant union in `LayoutOverlay` (AnonymouX47) - Improve layout item geometry computation (AnonymouX47) - Use doubles for layout item geometry (AnonymouX47) - Deduplicate SVG element instantiation code for layout items (AnonymouX47) - Extract layout item geometry computation (AnonymouX47)