Blob Blame History Raw
%global pkgname HAPcryst

Name:           gap-pkg-hapcryst
Version:        0.1.11
Release:        1%{?dist}
Summary:        Integral cohomology computations of Bieberbach groups

%global upver %(tr . _ <<< %{version})

License:        GPLv2+
URL:            http://csserver.evansville.edu/~mroeder/HAPcryst.html
Source0:        http://csserver.evansville.edu/~mroeder/HAPcryst/%{pkgname}%{upver}.tar.bz2
BuildArch:      noarch

BuildRequires:  gap-devel
BuildRequires:  GAPDoc-latex
BuildRequires:  gap-pkg-aclib
BuildRequires:  gap-pkg-carat
BuildRequires:  gap-pkg-cryst
BuildRequires:  gap-pkg-crystcat
BuildRequires:  gap-pkg-hap
BuildRequires:  gap-pkg-polycyclic
BuildRequires:  gap-pkg-polymaking

Requires:       gap-core
Requires:       gap-pkg-aclib
Requires:       gap-pkg-cryst
Requires:       gap-pkg-crystcat
Requires:       gap-pkg-hap
Requires:       gap-pkg-polycyclic
Requires:       gap-pkg-polymaking

Recommends:     gap-pkg-carat
Recommends:     gap-pkg-crystcat

%description
This package is an add-on for Graham Ellis' HAP package.  HAPcryst
implements some functions for crystallographic groups (namely
OrbitStabilizer-type methods).  It is also capable of calculating free
resolutions for Bieberbach groups.

%prep
%setup -q -n %{pkgname}

%build
export LC_ALL=C.UTF-8

# Link to main GAP documentation
ln -s %{_gap_dir}/doc ../../doc
mkdir ../pkg
ln -s ../%{pkgname} ../pkg/
gap -l "$PWD/..;%{_gap_dir}" << EOF
WriteBibXMLextFile("doc/HAPcryst_bib.xml", ParseBibFiles("doc/HAPcryst.bib") );
Exec("sed -i 's|\\\\url{http:\\([a-zA-Z0-9/\\.~]*\\)}|<URL>http:\\1</URL>|g' doc/HAPcryst_bib.xml");
LoadPackage("HAPcryst");;
MakeGAPDocDoc( "doc", "HAPcryst.xml", [], "HAPcryst", "../../..", "MathJax" );
CopyHTMLStyleFiles( "doc" );
GAPDocManualLab( "HAPcryst" );
EOF
pushd lib/datatypes
gap -l "$PWD/..;%{_gap_dir}" << EOF
LoadPackage("HAPcryst");;
MakeGAPDocDoc( "doc", "resolutionAccess.xml", [], "resolutionAccess", "../../../../..", "MathJax" );
CopyHTMLStyleFiles( "doc" );
GAPDocManualLab( "resolutionAccess" );
EOF
popd
rm -fr ../../doc ../pkg

%install
mkdir -p %{buildroot}%{_gap_dir}/pkg
cp -a ../%{pkgname} %{buildroot}%{_gap_dir}/pkg
find -O3 %{buildroot}%{_gap_dir}/pkg/%{pkgname} -name \*~ -exec rm {} +
rm -f %{buildroot}%{_gap_dir}/pkg/%{pkgname}/{.DS_Store,CHANGES.HAPcryst,LICENSE.txt,README.HAPcryst}
rm -f %{buildroot}%{_gap_dir}/pkg/%{pkgname}/doc/*.{aux,bbl,blg,brf,idx,ilg,ind,log,out,pnr,tex,toc}
rm -f %{buildroot}%{_gap_dir}/pkg/%{pkgname}/lib/datatypes/doc/*.{aux,bbl,blg,brf,idx,ilg,ind,log,out,pnr,tex,toc}

%check
export LC_ALL=C.UTF-8
cd tst

# Produce less chatter while running the test
polymake --reconfigure - <<< exit;

# Run the actual test; "noassert" prevents an infinite loop
gap -l "%{buildroot}%{_gap_dir};%{_gap_dir}" << EOF 2>&1 | tee log
LoadPackage( "HAPcryst" );
Test( "HAPcryst.tst", rec( compareFunction := "uptowhitespace" ) : noassert );
EOF
grep -Fvq fail log
rm -f log

%files
%doc CHANGES.HAPcryst README.HAPcryst
%license LICENSE.txt
%docdir %{_gap_dir}/pkg/%{pkgname}/doc
%docdir %{_gap_dir}/pkg/%{pkgname}/examples
%docdir %{_gap_dir}/pkg/%{pkgname}/htm
%docdir %{_gap_dir}/pkg/%{pkgname}/lib/datatypes/doc
%{_gap_dir}/pkg/%{pkgname}/

%changelog
* Fri Sep 16 2016 Jerry James <loganjerry@gmail.com> - 0.1.11-1
- Initial RPM