diff --git a/.gitignore b/.gitignore
index 909a6b9..03fb359 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
/HAPcryst0_1_11.tar.bz2
+/hapcryst-*.tar.gz
diff --git a/gap-pkg-hapcryst-carat.patch b/gap-pkg-hapcryst-carat.patch
index a29b9c1..2df0192 100644
--- a/gap-pkg-hapcryst-carat.patch
+++ b/gap-pkg-hapcryst-carat.patch
@@ -1,5 +1,5 @@
---- doc/intro.xml.orig 2013-10-27 11:31:20.000000000 -0600
-+++ doc/intro.xml 2019-12-31 14:28:49.375301481 -0700
+--- doc/intro.xml.orig 2020-02-02 05:09:45.000000000 -0700
++++ doc/intro.xml 2020-02-02 08:48:00.624233367 -0700
@@ -81,7 +81,7 @@ The following ⪆ packages are require
The following ⪆ packages are not required but highly recommended:
@@ -9,14 +9,14 @@
- CrystCat
- GAPDoc is needed to display the online manual
---- PackageInfo.g.orig 2013-10-27 11:31:20.000000000 -0600
-+++ PackageInfo.g 2019-12-31 14:28:05.295403414 -0700
-@@ -235,7 +235,7 @@ Dependencies := rec(
+--- PackageInfo.g.orig 2020-02-02 08:48:00.625233365 -0700
++++ PackageInfo.g 2020-02-02 08:48:50.373123965 -0700
+@@ -74,7 +74,7 @@ Dependencies := rec(
+ ["polymaking",">=0.7.9"],
],
- # without these the package will issue a warning while loading
SuggestedOtherPackages := [
- [ "Carat", ">=1.1" ],
-+ ["CaratInterface", ">=1.1" ],
- ["CrystCat",">=1.1.2"],
++ [ "CaratInterface", ">=1.1" ],
+ ["CrystCat",">=1.1.2"],
["GAPDoc", ">= 0.99"]
],
diff --git a/gap-pkg-hapcryst-dims.patch b/gap-pkg-hapcryst-dims.patch
deleted file mode 100644
index 511a5ce..0000000
--- a/gap-pkg-hapcryst-dims.patch
+++ /dev/null
@@ -1,47 +0,0 @@
---- lib/FaceLatticeAndBoundaryBieberbachGroup.gi.orig 2013-10-27 11:31:20.000000000 -0600
-+++ lib/FaceLatticeAndBoundaryBieberbachGroup.gi 2019-02-05 15:41:50.063228063 -0700
-@@ -247,26 +247,23 @@ InstallMethod(FaceLatticeAndBoundaryBieb
- ######## patch for next genertion polymake ###
- ## first part
- polymakeFaceLattice:=function(polygon)
-- local faces,dimlist, dim, lattice, i;
-+ local faces, map, dim, lattice, i;
-
- faces:=Polymake(polygon,"FACES");
-- dimlist:=Polymake(polygon,"DIMS");
-- dim := Length(dimlist);
-+ map:=Polymake(polygon,"INVERSE_RANK_MAP");
-+ dim := Length(map)-1;
- lattice:=EmptyPlist(dim);
-
-- ## walk through the face list from top to bottom
-- # the dim list contains the maximal index of a face in the
-- # respective dimension. The top face containing all vertices
-- # has no entry in the dimlist, so we add it beforehand.
-- ##
-- lattice[dim] := [StructuralCopy(faces[Length(faces)])];
-- for i in [1..dim-1] do
-- lattice[i] := StructuralCopy(faces{[dimlist[i]+1..dimlist[i+1]]});
-+ ## walk through the inverse rank map from top to bottom
-+ # the inverse rank map contains the index of each face in the
-+ # respective dimension.
-+ for i in [1..dim] do
-+ lattice[i] := StructuralCopy(faces{map[i]});
- od;
-
- ## The reverse probably runs every time
- ## panic-coding? I don't know, let's keep it...
-- if Length(lattice[1][1]) = 1 then
-+ if Length(lattice[dim][1]) <> 1 then
- lattice := Reversed(lattice);
- fi;
-
-@@ -455,7 +452,7 @@ InstallMethod(FaceLatticeAndBoundaryBieb
- ## patch for next generation polymake:
- # second part. If you have the old polymake version,
- # use "FACE_LATTICE" instead of "FACES DIMS" but keep the VERTICES!
-- Polymake(poly,"FACES DIMS VERTICES");
-+ Polymake(poly,"FACES INVERSE_RANK_MAP VERTICES");
- vertices:=Polymake(poly,"VERTICES");
- MakeImmutable(vertices);
- if not dim=Size(vertices[1]-1)
diff --git a/gap-pkg-hapcryst-doc.patch b/gap-pkg-hapcryst-doc.patch
index d6f84fd..3f5e917 100644
--- a/gap-pkg-hapcryst-doc.patch
+++ b/gap-pkg-hapcryst-doc.patch
@@ -1,21 +1,10 @@
---- doc/geometry.xml.orig 2013-10-27 11:31:20.000000000 -0600
-+++ doc/geometry.xml 2019-01-31 11:06:21.925772163 -0700
-@@ -80,7 +80,7 @@ gap> List([0..3],Dimension(R));
-
-
- This representation is compatible with the representation of free
-- \Z G modules in Hap and this method essentially
-+ ZG modules in Hap and this method essentially
- calculates a free resolution of group. If the value of
- is 2 or more, additional information about
- the number of faces in every codimension, the number of orbits of the group
---- doc/HAPcryst.bib.orig 2013-10-27 11:31:20.000000000 -0600
-+++ doc/HAPcryst.bib 2019-01-31 11:29:28.118968014 -0700
+--- doc/HAPcryst.bib.orig 2020-02-02 05:09:45.000000000 -0700
++++ doc/HAPcryst.bib 2020-02-03 09:36:21.466993090 -0700
@@ -1,14 +1,14 @@
@Misc{polymake,
author = "Ewgenij Gawrilow and Michael Joswig",
title = {polymake},
-- howpublished = {\URL{http://www.math.tu-berlin.de/polymake/}}
+- howpublished = {{http://www.math.tu-berlin.de/polymake/}}
+ howpublished = {\url{http://www.math.tu-berlin.de/polymake/}}
}
@@ -23,7 +12,7 @@
@Misc{polyhedral,
author = {Dutour Sikiric, Mathieu},
title = {Polyhedral},
-- howpublished = {\URL{http://www.liga.ens.fr/~dutour/Polyhedral/index.html}}
+- howpublished = {{http://www.liga.ens.fr/~dutour/Polyhedral/index.html}}
+ howpublished = {\url{http://www.liga.ens.fr/~dutour/Polyhedral/index.html}}
}
@@ -32,16 +21,34 @@
@Misc{hap,
author = {Graham Ellis},
title = {HAP},
-- howpublished = {\URL{http://hamilton.nuigalway.ie/Hap/www/}}
+- howpublished = {{http://hamilton.nuigalway.ie/Hap/www/}}
+ howpublished = {\url{http://hamilton.nuigalway.ie/Hap/www/}}
}
@Misc{cryst,
-- author = "Bettina Eick and Franz G\"ahler and Werner Nickel",
-+ author = "Bettina Eick and Franz G{\"a}hler and Werner Nickel",
+ author = "Bettina Eick and Franz Gahler and Werner Nickel",
title = {cryst},
-- howpublished = {\URL{http://www.gap-system.org/Packages/cryst.html}}
+- howpublished = {{http://www.gap-system.org/Packages/cryst.html}}
+ howpublished = {\url{http://www.gap-system.org/Packages/cryst.html}}
}
+--- lib/datatypes/doc/makedoc.gap.orig 2020-02-02 05:09:45.000000000 -0700
++++ lib/datatypes/doc/makedoc.gap 2020-02-03 09:39:16.778639321 -0700
+@@ -12,7 +12,7 @@ stdout:=OutputTextString(files,false);
+ stdin:=InputTextNone();;
+ Process( libdir, lscommand , stdin, stdout, [] );
+ files:=Set(SplitString(files,"\n"));
+-SubtractSet(files,Filtered(files,f->'~' in f));
++SubtractSet(files,["doc"]);
+ Apply(files,f->Concatenation([docdir2libdir,f]));
+
+ MakeGAPDocDoc(docdir,main,files,bookname);
+--- makedoc.g.orig 2020-02-02 05:09:45.000000000 -0700
++++ makedoc.g 2020-02-03 09:38:19.258755390 -0700
+@@ -7,4 +7,5 @@ if fail = LoadPackage("AutoDoc", ">= 201
+ Error("AutoDoc 2016.01.21 or newer is required");
+ fi;
+
++HELP_ADD_BOOK( "HAPprog", "An experimental framework for objectifying the data structures of Hap", Directory( "./lib/datatypes/doc" ) );
+ AutoDoc(rec( scaffold := rec( MainPage := false )));
diff --git a/gap-pkg-hapcryst-test.patch b/gap-pkg-hapcryst-test.patch
new file mode 100644
index 0000000..90a0649
--- /dev/null
+++ b/gap-pkg-hapcryst-test.patch
@@ -0,0 +1,7 @@
+--- tst/testall.g.orig 2020-02-02 05:09:45.000000000 -0700
++++ tst/testall.g 2020-02-02 09:58:09.075254960 -0700
+@@ -1,3 +1,3 @@
+ LoadPackage("hapcryst");
+-TestDirectory(DirectoriesPackageLibrary("hapcryst", "tst"), rec(exitGAP := true));
++TestDirectory(DirectoriesPackageLibrary("hapcryst", "tst"), rec(exitGAP := true, testOptions := rec(compareFunction := "uptowhitespace")));
+ FORCE_QUIT_GAP(1);
diff --git a/gap-pkg-hapcryst.rpmlintrc b/gap-pkg-hapcryst.rpmlintrc
new file mode 100644
index 0000000..dbe513e
--- /dev/null
+++ b/gap-pkg-hapcryst.rpmlintrc
@@ -0,0 +1,14 @@
+# THIS FILE IS FOR WHITELISTING RPMLINT ERRORS AND WARNINGS IN TASKOTRON
+# https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmlint#Whitelisting_errors
+
+# The dictionary is missing some technical terms
+addFilter(r'W: spelling-error .* cohomology')
+
+# This package has no binary bits
+addFilter(r'W: only-non-binary-in-usr-lib')
+
+# The explicit lib dependency detector is not very bright
+addFilter(r'E: explicit-lib-dependency gap-pkg-aclib')
+
+# The documentation subpackage is the documentation
+addFilter(r'gap-pkg-hapcryst-doc\.noarch: W: no-documentation')
diff --git a/gap-pkg-hapcryst.spec b/gap-pkg-hapcryst.spec
index 6f387f7..01e6f07 100644
--- a/gap-pkg-hapcryst.spec
+++ b/gap-pkg-hapcryst.spec
@@ -1,35 +1,40 @@
%global pkgname hapcryst
-%global upname HAPcryst
Name: gap-pkg-%{pkgname}
-Version: 0.1.11
-Release: 10%{?dist}
+Version: 0.1.12
+Release: 1%{?dist}
Summary: Integral cohomology computations of Bieberbach groups
-%global upver %(tr . _ <<< %{version})
-
License: GPLv2+
-URL: http://csserver.evansville.edu/~mroeder/%{upname}.html
-Source0: http://csserver.evansville.edu/~mroeder/%{upname}/%{upname}%{upver}.tar.bz2
+URL: https://gap-packages.github.io/hapcryst/
+Source0: https://github.com/gap-packages/hapcryst/releases/download/v%{version}/%{pkgname}-%{version}.tar.gz
# Fix documentation bugs
Patch0: %{name}-doc.patch
-# Adapt to newer polymake versions that do not support DIMS
-Patch1: %{name}-dims.patch
# Adapt to Carat -> CaratInterface name change
-Patch2: %{name}-carat.patch
+Patch1: %{name}-carat.patch
+# Ignore whitespace differences in test output
+Patch2: %{name}-test.patch
BuildArch: noarch
BuildRequires: gap-devel
-BuildRequires: GAPDoc-latex
+BuildRequires: gap-pkg-aclib
+BuildRequires: gap-pkg-autodoc
BuildRequires: gap-pkg-caratinterface
+BuildRequires: gap-pkg-cryst
+BuildRequires: gap-pkg-crystcat
BuildRequires: gap-pkg-hap
BuildRequires: gap-pkg-nq
+BuildRequires: gap-pkg-polycyclic
BuildRequires: gap-pkg-polymaking-doc
+Requires: gap-pkg-aclib
+Requires: gap-pkg-cryst
Requires: gap-pkg-hap
+Requires: gap-pkg-polycyclic
Requires: gap-pkg-polymaking
Recommends: gap-pkg-caratinterface
+Recommends: gap-pkg-crystcat
%description
This package is an add-on for Graham Ellis' HAP package. HAPcryst
@@ -46,67 +51,63 @@ Requires: gap-online-help
This package contains documentation for gap-pkg-%{pkgname}.
%prep
-%autosetup -p0 -n %{upname}
+%autosetup -p0 -n %{pkgname}-%{version}
+
+# Fix a documentation build failure
+sed -i 's/Filtered(.*f)/["doc"]/' lib/datatypes/doc/makedoc.gap
%build
export LC_ALL=C.UTF-8
-# Create version.ver, which the doc files expect to exist
-echo %{version} > ../version.ver
-
-# Link to main GAP documentation
-ln -s %{_gap_dir}/doc ../../doc
-mkdir ../pkg
-ln -s ../%{upname} ../pkg
-ln -s %{_gap_dir}/pkg/polymaking ../pkg
-gap -l "$PWD/..;%{_gap_dir}" << EOF
-WriteBibXMLextFile("doc/HAPcryst_bib.xml", ParseBibFiles("doc/HAPcryst.bib") );
-Exec("sed -i 's|\\\\\\\\url{\\\\([^}]*\\\\)}|\\\\1|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" );
-EOF
-popd
-rm -fr ../version.ver ../../doc ../pkg
+# Build the HAPprog book first
+cd lib/datatypes/doc
+gap < makedoc.gap
+cd -
+
+# Build the main documentation second
+gap < makedoc.g
+
+# Fix up broken HTML links between the two books
+sed -i "s,\./lib,.&,g" doc/*.html
%install
mkdir -p %{buildroot}%{_gap_dir}/pkg
-cp -a ../%{upname} %{buildroot}%{_gap_dir}/pkg
-find -O3 %{buildroot}%{_gap_dir}/pkg/%{upname} -name \*~ -delete
-rm -f %{buildroot}%{_gap_dir}/pkg/%{upname}/{.DS_Store,CHANGES.HAPcryst,LICENSE.txt,README.HAPcryst}
-rm -f %{buildroot}%{_gap_dir}/pkg/%{upname}/doc/*.{aux,bbl,blg,brf,idx,ilg,ind,log,out,pnr,tex}
-rm -f %{buildroot}%{_gap_dir}/pkg/%{upname}/lib/datatypes/doc/*.{aux,bbl,blg,brf,idx,ilg,ind,log,out,pnr,tex}
+cp -a ../%{pkgname}-%{version} %{buildroot}%{_gap_dir}/pkg
+rm -f %{buildroot}%{_gap_dir}/pkg/%{pkgname}-%{version}/{CHANGES,LICENSE,README,doc/clean}
+rm -f %{buildroot}%{_gap_dir}/pkg/%{pkgname}-%{version}/doc/*.{aux,bbl,blg,brf,idx,ilg,ind,log,out,pnr,tex}
+rm -f %{buildroot}%{_gap_dir}/pkg/%{pkgname}-%{version}/lib/datatypes/doc/*.{aux,bbl,blg,brf,idx,ilg,ind,log,out,pnr,tex}
%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
-LoadPackage( "HAPcryst" );
-GAP_EXIT_CODE(Test( "HAPcryst.tst", rec( compareFunction := "uptowhitespace" ) : noassert ));
-EOF
+# Run the actual tests
+gap -l "%{buildroot}%{_gap_dir};%{_gap_dir}" < tst/testall.g
%files
-%doc CHANGES.HAPcryst README.HAPcryst
-%license LICENSE.txt
-%docdir %{_gap_dir}/pkg/%{upname}/doc
-%docdir %{_gap_dir}/pkg/%{upname}/examples
-%docdir %{_gap_dir}/pkg/%{upname}/htm
-%docdir %{_gap_dir}/pkg/%{upname}/lib/datatypes/doc
-%{_gap_dir}/pkg/%{upname}/
+%doc CHANGES README
+%license LICENSE
+%{_gap_dir}/pkg/%{pkgname}-%{version}/
+%exclude %{_gap_dir}/pkg/%{pkgname}-%{version}/doc/
+%exclude %{_gap_dir}/pkg/%{pkgname}-%{version}/examples/
+%exclude %{_gap_dir}/pkg/%{pkgname}-%{version}/lib/datatypes/doc/
+
+%files doc
+%docdir %{_gap_dir}/pkg/%{pkgname}-%{version}/doc/
+%docdir %{_gap_dir}/pkg/%{pkgname}-%{version}/examples/
+%docdir %{_gap_dir}/pkg/%{pkgname}-%{version}/lib/datatypes/doc/
+%{_gap_dir}/pkg/%{pkgname}-%{version}/doc/
+%{_gap_dir}/pkg/%{pkgname}-%{version}/examples/
+%{_gap_dir}/pkg/%{pkgname}-%{version}/lib/datatypes/doc/
%changelog
+* Mon Feb 3 2020 Jerry James - 0.1.12-1
+- Version 0.1.12
+- Drop upstreamed -dims patch
+- Actually put some files into the -doc subpackage
+
* Tue Jan 28 2020 Fedora Release Engineering - 0.1.11-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
diff --git a/sources b/sources
index 5a8f1a9..1e7552b 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-dbca567919ac40224bdbddfd6560b66f HAPcryst0_1_11.tar.bz2
+SHA512 (hapcryst-0.1.12.tar.gz) = df0b63994ee6edc123e7e1e302506dc6be4565e741e9a2ce2299f73548b1147dd29d85e72246b0bc92a273c24ffb31685c0e29b131f98e7480a1f93079c3ac0c