golly/golly.spec

159 lines
4.6 KiB
RPMSpec

#
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%if 0%{?suse_version} == 1110
%define number 2.2
%else
%define number 2.6
%endif
Name: golly
Version: %{number}
Release: 1
License: GPL-2.0+
Summary: Tool for exploring Game of Life and other automata
Url: http://golly.sourceforge.net/
Group: Amusements/Toys/Graphics
Source: %{name}-%{version}-src.tar.gz
Source1: %{name}.png
Source2: %{name}.desktop
BuildRequires: gcc-c++ cmake
BuildRequires: fdupes
%if 0%{?fedora}
BuildRequires: perl-devel perl-ExtUtils-Embed
%else
BuildRequires: perl update-desktop-files
%endif
BuildRequires: python-devel
%if 0%{?suse_version} == 1110 || 0%{?fedora}
BuildRequires: wxGTK-devel
%else
BuildRequires: wxWidgets-devel
%endif
BuildRequires: zlib-devel
BuildRequires: desktop-file-utils
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
Key features:
- Supports both bounded and unbounded universes.
- Supports various topologies (plane, torus, Klein bottle, etc.).
- Supports multi-state universes (cells can have up to 256 states).
- Includes QuickLife, a fast, memory-efficient algorithm.
- Use the HashLife algorithm to see large patterns evolve at huge time scales.
- Supports many different rules, including Wolfram's 1D rules, WireWorld, Generations, and John von Neumann's 29-state CA.
- Use the RuleLoader algorithm to load your own rules.
- Responsive even while generating or garbage collecting.
- Reads RLE, macrocell, Life 1.05/1.06, dblife, and MCell files.
- Can also read common graphic formats: BMP, PNG, GIF, TIFF.
- Can extract patterns, scripts and rules from zip files.
- Download files from online archives.
- Includes a state-of-the-art pattern collection.
- Fast loading of large patterns.
- Paste in patterns from the clipboard.
- Unlimited undo/redo.
- Unbounded zooming out for astronomical patterns.
- Auto fit option keeps a generating pattern within view.
- Full screen option (no menu/status/tool/scroll bars).
- Supports multiple layers, including cloned layers.
- HTML-based help with an integrated Life Lexicon.
- Scriptable via Perl or Python.
- User-configurable keyboard shortcuts.
%package devel
Summary: Development files for %{name}
Group: Development/Libraries/C and C++
License: GPL-2.0+
Requires: %{name} = %{version}
%description devel
This package contains, header files and libraries needed to
develop application that use %{name}
%package -n %{name}-devel-static
Summary: Development files and libraries for %{name}
Group: Development/Libraries/C and C++
License: GPL-2.0+
Requires: %{name}-devel = %{version}
%description -n %{name}-devel-static
This package contains, header files and libraries needed to
develop application that use %{name}
%prep
%setup -q -n %{name}-%{version}-src
%build
export CFLAGS="%{optflags}"
export CXXFLAGS="$CFLAGS"
%if 0%{?suse_version} == 1110
make %{?_smp_mflags} ZLIB_LDFLAGS=-lz -f makefile-gtk
%else
cd gui-wx
mkdir build
pushd build
cmake ../
make %{?_smp_mflags}
popd
%endif
%install
install -d %{buildroot}%{_bindir}
install -m 0755 bgolly golly %{buildroot}%{_bindir}
%if 0%{?suse_version} >= 1140 || 0%{?fedora}
install -D -m 0644 gui-wx/build/libgollybase.a %{buildroot}%{_libdir}/libgollybase.a
%endif
rm -f {Help/Lexicon/modify.pl,docs/Build.html}
# install data files
mkdir -p %{buildroot}%{_datadir}/%{name}
for i in Help Patterns Rules Scripts; do
find ./$i -type d -exec chmod 755 {} \;
find ./$i -type f -exec chmod 644 {} \;
cp -a $i %{buildroot}%{_datadir}/%{name}/$i
done
install -D -m 0644 %{SOURCE1} %{buildroot}%{_datadir}/pixmaps/%{name}.png
install -D -m 0644 %{SOURCE2} %{buildroot}%{_datadir}/applications/%{name}.desktop
%if 0%{?suse_version}
%suse_update_desktop_file %{name}
%endif
%fdupes %{buildroot}%{_datadir}
%check
desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop
%clean
rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
%if 0%{?suse_version} == 1110
%doc LICENSE README TODO
%else
%doc docs/License.* docs/ReadMe.* docs/ToDo.*
%endif
%{_bindir}/*%{name}
%{_datadir}/%{name}
%{_datadir}/applications/%{name}.desktop
%{_datadir}/pixmaps/%{name}.png
%exclude %{_datadir}/%{name}/Rules/TableGenerators
%exclude %{_datadir}/%{name}/Rules/TreeGenerators
%files devel
%defattr(-,root,root,-)
%{_datadir}/%{name}/Rules/TableGenerators
%{_datadir}/%{name}/Rules/TreeGenerators
%if 0%{?suse_version} >= 1140 || 0%{?fedora}
%files -n %{name}-devel-static
%defattr(-,root,root,-)
%{_libdir}/libgollybase.a
%endif
%changelog