Blame freecell-solver.spec

92cf925
%global major 0
92cf925
%global libname lib%{name}
92cf925
%global develname lib%{name}-devel
92cf925
92cf925
Name: freecell-solver
c62f045
Version: 6.6.0
576f578
Release: 1%{?dist}
92cf925
License: MIT
70ff5d8
Source0: https://fc-solve.shlomifish.org/downloads/fc-solve/%{name}-%{version}.tar.xz
70ff5d8
URL: https://fc-solve.shlomifish.org/
92cf925
Summary: The Freecell Solver Executable
92cf925
92cf925
BuildRequires: cmake
92cf925
BuildRequires: gcc
92cf925
BuildRequires: gcc-c++
92cf925
BuildRequires: gmp-devel
92cf925
BuildRequires: gperf
92cf925
BuildRequires: make
92cf925
BuildRequires: perl(autodie)
92cf925
BuildRequires: perl(Carp)
d6b21c2
BuildRequires: perl(CHI)
92cf925
BuildRequires: perl(Cwd)
92cf925
BuildRequires: perl(Data::Dumper)
92cf925
BuildRequires: perl(Digest::SHA)
f23db9d
BuildRequires: perl(Env::Path)
92cf925
BuildRequires: perl(File::Path)
d6b21c2
BuildRequires: perl(lib)
92cf925
BuildRequires: perl(File::Spec)
f23db9d
BuildRequires: perl(File::Which)
f23db9d
BuildRequires: perl(Games::Solitaire::Verify)
f23db9d
BuildRequires: perl(Games::Solitaire::Verify::Solution)
f23db9d
BuildRequires: perl(Inline)
f23db9d
BuildRequires: perl(Inline::C)
f23db9d
BuildRequires: perl(IPC::Open2)
92cf925
BuildRequires: perl(lib)
92cf925
BuildRequires: perl(List::MoreUtils)
f23db9d
BuildRequires: perl(Moo)
f23db9d
BuildRequires: perl(MooX)
f23db9d
BuildRequires: perl(MooX::late)
92cf925
BuildRequires: perl(parent)
92cf925
BuildRequires: perl(Path::Tiny)
f23db9d
BuildRequires: perl(Storable)
92cf925
BuildRequires: perl(strict)
f23db9d
BuildRequires: perl(String::ShellQuote)
f23db9d
# BuildRequires: perl(Task::FreecellSolver::Testing)
92cf925
BuildRequires: perl(Template)
f23db9d
BuildRequires: perl(Test::Data::Split)
f23db9d
BuildRequires: perl(Test::Data::Split::Backend::Hash)
f23db9d
BuildRequires: perl(Test::Data::Split::Backend::ValidateHash)
f23db9d
BuildRequires: perl(Test::Differences)
f23db9d
BuildRequires: perl(Test::More)
f23db9d
BuildRequires: perl(Test::RunValgrind)
f23db9d
BuildRequires: perl(Test::TrailingSpace)
f23db9d
BuildRequires: perl(Test::Trap)
92cf925
BuildRequires: perl(warnings)
f23db9d
BuildRequires: perl(YAML::XS)
92cf925
BuildRequires: perl-devel
2f7e130
BuildRequires: pkgconfig(cmocka)
add4c5b
BuildRequires: pkgconfig(librinutils) >= 0.2.0
f23db9d
BuildRequires: python3-cffi
867fbe0
BuildRequires: python3-freecell_solver
92590a7
BuildRequires: python3-pysol-cards
92cf925
BuildRequires: python3-random2
92cf925
BuildRequires: python3-rpm-macros
92cf925
BuildRequires: python3dist(six)
f23db9d
BuildRequires: python3dist(pycotap)
92cf925
Requires: %{libname}%{?_isa} = %{version}-%{release}
f23db9d
# BuildRequires: tap-devel
f23db9d
BuildRequires: the_silver_searcher
f23db9d
BuildRequires: valgrind
92cf925
92cf925
%description
92cf925
The Freecell Solver package contains the fc-solve executable which is
92cf925
a command-line program that can be used to solve games of Freecell and
92cf925
similar card solitaire variants.
92cf925
92cf925
This package also contains command line executables to generate the initial
92cf925
boards of several popular Freecell implementations.
92cf925
92cf925
%files
2a50593
%{_bindir}/dbm-fc-solver
2a50593
%{_bindir}/depth-dbm-fc-solver
92cf925
%{_bindir}/fc-solve
92cf925
%{_bindir}/find-freecell-deal-index.py
92cf925
%{_bindir}/freecell-solver-fc-pro-range-solve
92cf925
%{_bindir}/freecell-solver-multi-thread-solve
92cf925
%{_bindir}/freecell-solver-range-parallel-solve
92cf925
%{_bindir}/gen-multiple-pysol-layouts
92cf925
%{_bindir}/make_pysol_freecell_board.py
92cf925
%{_bindir}/pi-make-microsoft-freecell-board
92cf925
%{_bindir}/transpose-freecell-board.py
92cf925
%{_mandir}/*/*
92cf925
%{_docdir}/*
92cf925
92cf925
#--------------------------------------------------------------------
92cf925
92cf925
%package -n %{libname}
92cf925
Summary: The Freecell Solver dynamic libraries for solving Freecell games
92cf925
Requires: %{name}-data = %{version}-%{release}
92cf925
92cf925
%description -n %{libname}
92cf925
Contains the Freecell Solver libraries that are used by some programs to solve
92cf925
games of Freecell and similar variants of card solitaire.
92cf925
92cf925
This package is mandatory for the Freecell Solver executable too.
92cf925
92cf925
%files -n %{libname}
92cf925
%doc COPYING.asciidoc
92cf925
%{_libdir}/libfreecell-solver.so.%{major}{,.*}
92cf925
92cf925
#--------------------------------------------------------------------
92cf925
92cf925
%package -n %{name}-data
92cf925
Summary: The Freecell Solver data files
92cf925
BuildArch: noarch
92cf925
%description -n %{name}-data
92cf925
These are the presets for Freecell Solver
92cf925
92cf925
%files -n %{name}-data
92cf925
%{_datadir}/freecell-solver/
92cf925
%{python3_sitelib}/fc_solve_find_index_s2ints{.py,.pyc,.pyo}
92cf925
%{python3_sitelib}/__pycache__/*
92cf925
92cf925
#--------------------------------------------------------------------
92cf925
92cf925
%package -n %{develname}
92cf925
Summary: The Freecell Solver development tools for solving Freecell games
92cf925
Requires: %{libname}%{?_isa} = %{version}-%{release}
92cf925
Provides: %{name}-devel = %{version}-%{release}
92cf925
Provides: %{name}-devel%{?_isa} = %{version}-%{release}
92cf925
92cf925
%description -n %{develname}
92cf925
Freecell Solver is a library for automatically solving boards of Freecell and
92cf925
similar variants of card Solitaire. This package contains the header files and
92cf925
static libraries necessary for developing programs using Freecell Solver.
92cf925
92cf925
You should install it if you are a game developer who would like to use
92cf925
Freecell Solver from within your programs.
92cf925
92cf925
%files -n %{develname}
92cf925
%{_includedir}/freecell-solver/*.h
92cf925
%{_libdir}/pkgconfig/*.pc
92cf925
%{_libdir}/libfreecell-solver.so
92cf925
92cf925
#--------------------------------------------------------------------
92cf925
92cf925
%prep
92cf925
%setup -q
92cf925
92cf925
%build
92cf925
# The game limit flags are recommended by the PySolFC README.
867fbe0
%cmake -DLOCALE_INSTALL_DIR=%{_datadir}/locale -DLIB_INSTALL_DIR=%{_libdir} -DMAX_NUM_FREECELLS=8 -DMAX_NUM_STACKS=20 -DMAX_NUM_INITIAL_CARDS_IN_A_STACK=60 -DDISABLE_APPLYING_RPATH=TRUE
2b6be79
%cmake_build
92cf925
f23db9d
%check
2b6be79
%__rm -f t/t/py-flake8.t t/t/tidyall.t
2b6be79
src="`pwd`"
2b6be79
cd "%{__cmake_builddir}"
2b6be79
perl "$src"/run-tests.pl
f23db9d
92cf925
%install
2b6be79
%cmake_install
92cf925
bn="fc_solve_find_index_s2ints.py"
92cf925
dest="%{buildroot}/%{python3_sitelib}"
92cf925
src="%{buildroot}/%{_bindir}/$bn"
92cf925
mkdir -p "$dest"
92cf925
%__perl -0777 -p -e 's=\A#!/usr/bin/env python3\r?\n==' < "$src" > "$dest"/"$bn"
92cf925
rm -f "$src"
92cf925
chmod a-x "$dest/$bn"
92cf925
92cf925
# Delete static libraries
92cf925
find %{buildroot} -name *.a -delete
92cf925
92cf925
%changelog
c62f045
* Sat Oct 09 2021 Shlomi Fish <shlomif@shlomifish.org> 6.6.0-1
c62f045
- New version
c62f045
576f578
* Tue Sep 28 2021 Shlomi Fish <shlomif@shlomifish.org> 6.4.0-1
576f578
- New version
576f578
0798231
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.0-3
0798231
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
0798231
363325a
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.0-2
363325a
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
363325a
72bbeac
* Thu Oct 15 2020 Shlomi Fish <shlomif@shlomifish.org> 6.2.0-1
72bbeac
- New version
72bbeac
efb9699
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 6.0.1-2
efb9699
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
efb9699
2b6be79
* Sun Jul 26 2020 Shlomi Fish <shlomif@shlomifish.org> 6.0.1-1
2b6be79
- New version; convert to cmake macros.
2b6be79
179b0b3
* Tue Apr 14 2020 Shlomi Fish <shlomif@shlomifish.org> - 5.22.1-1
179b0b3
- New version
179b0b3
f9e4401
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 5.16.0-2
f9e4401
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
f9e4401
3a3f069
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 5.10.0-2
3a3f069
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
3a3f069
0959519
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 5.0.0-2
0959519
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
0959519
c708c35
* Fri Oct 19 2018 Shlomi Fish <shlomif@shlomifish.org> - 5.0.0-1
92cf925
- Adapted from the Mageia .spec.