The package rpms/gap-pkg-polycyclic.git has added or updated architecture specific content
in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/gap-pkg-polycyclic.git/commit/?id....
Change:
+ExclusiveArch: aarch64 ppc64le s390x x86_64 noarch
Thanks.
Full change:
============
commit a4871e11c60e1657a6702ca6f3f01dc8aa100cfa
Author: Jerry James <loganjerry(a)gmail.com>
Date: Tue Sep 27 12:59:25 2022 -0600
Update for gap 4.12.0.
- Add post-release bug fix patches from upstream.
- Convert License tag to SPDX.
diff --git a/gap-pkg-polycyclic-abelianpcpgroup-infinity.patch
b/gap-pkg-polycyclic-abelianpcpgroup-infinity.patch
new file mode 100644
index 0000000..f7c5a31
--- /dev/null
+++ b/gap-pkg-polycyclic-abelianpcpgroup-infinity.patch
@@ -0,0 +1,50 @@
+--- doc/libraries.xml.orig 2020-07-24 17:55:13.000000000 -0600
++++ doc/libraries.xml 2022-09-11 10:11:23.941827015 -0600
+@@ -7,11 +7,14 @@
+
+ There are the following generic pcp-groups available.
+ <ManSection>
+-<Func Name="AbelianPcpGroup" Arg="n, rels"/>
++<Func Name="AbelianPcpGroup" Arg="n[, rels]"/>
++<Func Name="AbelianPcpGroup" Arg="rels"/>
+ <Description>
+ constructs the abelian group on <A>n</A> generators such that
+ generator <M>i</M> has order <M>rels[i]</M>. If this
order is infinite,
+- then <M>rels[i]</M> should be either unbound or 0.
++ then <M>rels[i]</M> should be either unbound or 0 or infinity.
++ If <A>n</A> is not provided then the length of <A>rels</A>
is used.
++ If <A>rels</A> is omitted then all generators will have infinite
order.
+ </Description>
+ </ManSection>
+
+--- doc/methods.xml.orig 2020-07-24 17:55:13.000000000 -0600
++++ doc/methods.xml 2022-09-11 10:11:54.293893324 -0600
+@@ -729,7 +729,7 @@ g2^-2*g4
+ and <M>R/C</M> is isomorphic to <A>M</A>.
+
+ <Example><![CDATA[
+-gap> G := AbelianPcpGroup( 3,[] );
++gap> G := AbelianPcpGroup( 3 );
+ Pcp-group with orders [ 0, 0, 0 ]
+ gap> ext := SchurCover( G );
+ Pcp-group with orders [ 0, 0, 0, 0, 0, 0 ]
+@@ -753,7 +753,7 @@ true
+ <Example><![CDATA[
+ gap> G := DihedralPcpGroup( 0 );
+ Pcp-group with orders [ 2, 0 ]
+-gap> DirectProduct( G, AbelianPcpGroup( 2, [] ) );
++gap> DirectProduct( G, AbelianPcpGroup( 2 ) );
+ Pcp-group with orders [ 0, 0, 2, 0 ]
+ gap> AbelianInvariantsMultiplier( last );
+ [ 0, 2, 2, 2, 2 ]
+--- gap/basic/construct.gi.orig 2020-07-24 17:55:13.000000000 -0600
++++ gap/basic/construct.gi 2022-09-11 10:12:49.853014707 -0600
+@@ -40,7 +40,7 @@ function( filter, ints )
+ # construct group
+ coll := FromTheLeftCollector( n );
+ for i in [1..n] do
+- if IsBound( r[i] ) and r[i] > 0 then
++ if IsBound( r[i] ) and r[i] > 0 and r[i] <> infinity then
+ SetRelativeOrder( coll, i, r[i] );
+ fi;
+ od;
diff --git a/gap-pkg-polycyclic-cohom-example.patch
b/gap-pkg-polycyclic-cohom-example.patch
new file mode 100644
index 0000000..409b8b6
--- /dev/null
+++ b/gap-pkg-polycyclic-cohom-example.patch
@@ -0,0 +1,11 @@
+--- doc/cohom.xml.orig 2020-07-24 17:55:13.000000000 -0600
++++ doc/cohom.xml 2022-09-11 10:23:39.439380853 -0600
+@@ -388,7 +388,7 @@ gap> cc.factor.rels;
+ # infinite image in H^2(G,M)
+ gap> c := cc.factor.prei[2];
+ [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 1 ]
+-gap> H := ExtensionCR( CR, c);
++gap> H := ExtensionCR( C, c);
+ Pcp-group with orders [ 0, 0, 0, 0, 0, 0 ]
+
+ # check that the extension does not split - get the normal subgroup
diff --git a/gap-pkg-polycyclic-conjugacyelementsbyseries.patch
b/gap-pkg-polycyclic-conjugacyelementsbyseries.patch
new file mode 100644
index 0000000..b3247e7
--- /dev/null
+++ b/gap-pkg-polycyclic-conjugacyelementsbyseries.patch
@@ -0,0 +1,11 @@
+--- gap/pcpgrp/centcon.gi.orig 2020-07-24 17:55:13.000000000 -0600
++++ gap/pcpgrp/centcon.gi 2022-09-11 10:17:13.701588633 -0600
+@@ -297,7 +297,7 @@ ConjugacyElementsBySeries := function( G
+ M := SubgroupByIgs( G, DenominatorOfPcp(pcp) );
+ f := ExponentsByPcp( pcp, c^-1*h ); Add( f, 1 );
+ fac := Pcp( C, M );
+- act := AffineActionByElement( fac, pcp, g );
++ act := AffineActionByElement( fac, pcp, c );
+ nat := NaturalHomomorphismByNormalSubgroup( C, M );
+ stb := OrbitIntegralAction( Image(nat), act, e, f );
+
diff --git a/gap-pkg-polycyclic-infinity.patch b/gap-pkg-polycyclic-infinity.patch
new file mode 100644
index 0000000..a35947d
--- /dev/null
+++ b/gap-pkg-polycyclic-infinity.patch
@@ -0,0 +1,22 @@
+--- gap/basic/construct.gi.orig 2022-09-11 10:12:49.853014707 -0600
++++ gap/basic/construct.gi 2022-09-11 10:15:10.231321437 -0600
+@@ -26,7 +26,7 @@ InstallMethod( AbelianGroupCons,
+ function( filter, ints )
+ local coll, i, n, r, grp;
+
+- if not ForAll( ints, IsInt ) then
++ if not ForAll( ints, x -> IsInt(x) or IsInfinity(x) ) then
+ Error( "<ints> must be a list of integers" );
+ fi;
+ # We allow 0, and interpret it as indicating an infinite factor.
+--- gap/exam/generic.gi.orig 2020-07-24 17:55:13.000000000 -0600
++++ gap/exam/generic.gi 2022-09-11 10:15:39.470385339 -0600
+@@ -25,7 +25,7 @@ InstallGlobalFunction( AbelianPcpGroup,
+ # construct group
+ coll := FromTheLeftCollector( n );
+ for i in [1..n] do
+- if IsBound( r[i] ) and r[i] > 0 then
++ if IsBound( r[i] ) and r[i] > 0 and r[i] <> infinity then
+ SetRelativeOrder( coll, i, r[i] );
+ fi;
+ od;
diff --git a/gap-pkg-polycyclic-inverse-mutable.patch
b/gap-pkg-polycyclic-inverse-mutable.patch
new file mode 100644
index 0000000..d42af03
--- /dev/null
+++ b/gap-pkg-polycyclic-inverse-mutable.patch
@@ -0,0 +1,11 @@
+--- gap/basic/pcpelms.gi.orig 2020-07-24 17:55:13.000000000 -0600
++++ gap/basic/pcpelms.gi 2022-09-11 10:22:19.223216148 -0600
+@@ -358,7 +358,7 @@ function( g )
+ return PcpElementByGenExpListNC( clt, k );
+ end );
+
+-InstallMethod( INV,
++InstallMethod( InverseMutable,
+ "for pcp elements",
+ [IsPcpElement],
+ function( g )
diff --git a/gap-pkg-polycyclic-isnormal.patch b/gap-pkg-polycyclic-isnormal.patch
new file mode 100644
index 0000000..637a0a7
--- /dev/null
+++ b/gap-pkg-polycyclic-isnormal.patch
@@ -0,0 +1,35 @@
+--- gap/basic/pcpgrps.gi.orig 2022-09-11 10:18:48.429783223 -0600
++++ gap/basic/pcpgrps.gi 2022-09-11 10:20:11.413953672 -0600
+@@ -160,22 +160,6 @@ end );
+
+ #############################################################################
+ ##
+-#M IsNormal( H, U ) . . . . . . . . . . . . . . .test if U is normalized by H
+-##
+-InstallMethod( IsNormalOp, "for pcp groups",
+- IsIdenticalObj, [ IsPcpGroup, IsPcpGroup ],
+-function( H, U )
+- local u, h;
+- for h in GeneratorsOfPcp( Pcp(H, U)) do
+- for u in Igs(U) do
+- if not u^h in U then return false; fi;
+- od;
+- od;
+- return true;
+-end );
+-
+-#############################################################################
+-##
+ #M Size( <pcpgrp> )
+ ##
+ InstallMethod( Size, [ IsPcpGroup ],
+--- gap/pcpgrp/fitting.gi.orig 2020-07-24 17:55:13.000000000 -0600
++++ gap/pcpgrp/fitting.gi 2022-09-11 10:20:59.263051944 -0600
+@@ -56,6 +56,7 @@ end );
+ ##
+ InstallMethod( FittingSubgroup,
+ "for pcp groups", [IsPcpGroup],
++ SUM_FLAGS, # Prevent generic GAP library method for finite groups being
ranked higher
+ function( G )
+ local efas, pcps, l, F, i;
+
diff --git a/gap-pkg-polycyclic-issinglevalued.patch
b/gap-pkg-polycyclic-issinglevalued.patch
new file mode 100644
index 0000000..ef81317
--- /dev/null
+++ b/gap-pkg-polycyclic-issinglevalued.patch
@@ -0,0 +1,24 @@
+--- gap/basic/grphoms.gi.orig 2020-07-24 17:55:13.000000000 -0600
++++ gap/basic/grphoms.gi 2022-09-11 10:29:16.792073715 -0600
+@@ -158,6 +158,10 @@ function( hom )
+ gens := hom!.igs_gens_to_imgs[1];
+ imgs := hom!.igs_gens_to_imgs[2];
+
++ if Length(gens) = 0 then
++ return true;
++ fi;
++
+ # check relators
+ for i in [1..Length( gens )] do
+ if RelativeOrderPcp( gens[i] ) > 0 then
+@@ -216,6 +220,10 @@ function( hom )
+
+ C := TrivialSubgroup(Range(hom)); # the cokernel
+
++ if Length(gens) = 0 then
++ return C;
++ fi;
++
+ # check relators
+ for i in [1..Length( gens )] do
+ if RelativeOrderPcp( gens[i] ) > 0 then
diff --git a/gap-pkg-polycyclic-random-trivial.patch
b/gap-pkg-polycyclic-random-trivial.patch
new file mode 100644
index 0000000..6b4635c
--- /dev/null
+++ b/gap-pkg-polycyclic-random-trivial.patch
@@ -0,0 +1,12 @@
+--- gap/basic/pcpgrps.gi.orig 2020-07-24 17:55:13.000000000 -0600
++++ gap/basic/pcpgrps.gi 2022-09-11 10:18:48.429783223 -0600
+@@ -99,6 +99,9 @@ InstallMethodWithRandomSource( Random, "
+ function( rs, G )
+ local pcp, rel, g, i;
+ pcp := Pcp(G);
++ if Length( pcp ) = 0 then
++ return One( G );
++ fi;
+ rel := RelativeOrdersOfPcp( pcp );
+ g := [];
+ for i in [1..Length(rel)] do
diff --git a/gap-pkg-polycyclic-subsword-dup.patch
b/gap-pkg-polycyclic-subsword-dup.patch
new file mode 100644
index 0000000..cc8fce4
--- /dev/null
+++ b/gap-pkg-polycyclic-subsword-dup.patch
@@ -0,0 +1,22 @@
+--- gap/action/extend.gi.orig 2020-07-24 17:55:13.000000000 -0600
++++ gap/action/extend.gi 2022-09-11 10:24:51.790529410 -0600
+@@ -7,19 +7,6 @@
+
+ #############################################################################
+ ##
+-#F SubsWord( w, list ) . . . . . . . . . . . . . . . . . . .substitute a word
+-##
+-SubsWord := function( w, list )
+- local g, i;
+- g := list[1]^0;
+- for i in [1..Length(w)] do
+- g := g * list[w[i][1]]^w[i][2];
+- od;
+- return g;
+-end;
+-
+-#############################################################################
+-##
+ #F SubsWordPlus( w, gens, invs, id ) . . . . . . . .use inverses and identity
+ ##
+ SubsWordPlus := function( w, gens, invs, id )
diff --git a/gap-pkg-polycyclic.spec b/gap-pkg-polycyclic.spec
index 4463c48..f4cb56a 100644
--- a/gap-pkg-polycyclic.spec
+++ b/gap-pkg-polycyclic.spec
@@ -7,17 +7,48 @@
# 3. Build gap-pkg-radiroot
# 4. Build gap-pkg-alnuth in non-bootstrap mode.
# 5. Build this package in non-bootstrap mode.
-%bcond_with bootstrap
+%bcond_without bootstrap
Name: gap-pkg-%{pkgname}
Version: 2.16
-Release: 6%{?dist}
+Release: 7%{?dist}
Summary: Algorithms on polycylic groups for GAP
-License: GPLv2+
+License: GPL-2.0-or-later
+BuildArch: noarch
+ExclusiveArch: aarch64 ppc64le s390x x86_64 noarch
URL:
https://gap-packages.github.io/polycyclic/
Source0:
https://github.com/gap-packages/polycyclic/releases/download/v%{version}/...
-BuildArch: noarch
+
+## Post-release bug fixes from upstream
+
+# Update AbelianPcpGroup, support infinity
+#
https://github.com/gap-packages/polycyclic/commit/37af5a8832b9f0872f058fd...
+Patch0: %{name}-abelianpcpgroup-infinity.patch
+# Support infinity in AbelianPcpGroup and AbelianGroupCons
+#
https://github.com/gap-packages/polycyclic/commit/929755ef354319268a7cd8c...
+Patch1: %{name}-infinity.patch
+# Fix a bug in ConjugacyElementsBySeries
+#
https://github.com/gap-packages/polycyclic/commit/e9312334e0be52f6aebb04d...
+Patch2: %{name}-conjugacyelementsbyseries.patch
+# Fix Random not working for the trivial group
+#
https://github.com/gap-packages/polycyclic/commit/f3bdcbd90f729cf9e231614...
+Patch3: %{name}-random-trivial.patch
+# Fix IsNormal, uprank FittingSubgroup method
+#
https://github.com/gap-packages/polycyclic/commit/3f385e49fca33917bfcf5f6...
+Patch4: %{name}-isnormal.patch
+# Replace INV by its official name InverseMutable
+#
https://github.com/gap-packages/polycyclic/commit/237ed84786fd8477805241e...
+Patch5: %{name}-inverse-mutable.patch
+# Fix a cohomology example
+#
https://github.com/gap-packages/polycyclic/commit/2d4c8d475f51075f2692e29...
+Patch6: %{name}-cohom-example.patch
+# Remove a duplicate SubsWord definition
+#
https://github.com/gap-packages/polycyclic/commit/7455d890b97b77cdede6d34...
+Patch7: %{name}-subsword-dup.patch
+# Fix a bug in IsSingleValued
+#
https://github.com/gap-packages/polycyclic/commit/02ebcc4f22d165e4f823a91...
+Patch8: %{name}-issinglevalued.patch
BuildRequires: gap-devel
BuildRequires: gap-pkg-autodoc
@@ -26,7 +57,6 @@ BuildRequires: gap-pkg-alnuth
%endif
BuildRequires: gap-pkg-autpgrp
-Requires: gap-core
%if %{without bootstrap}
Requires: gap-pkg-alnuth
%endif
@@ -58,7 +88,7 @@ Requires: gap-online-help
This package contains documentation for gap-pkg-%{pkgname}.
%prep
-%autosetup -n %{pkgname}-%{version}
+%autosetup -n %{pkgname}-%{version} -p0
# Fix character encodings
for fil in gap/basic/colcom.gi; do
@@ -69,31 +99,35 @@ done
%build
export LC_ALL=C.UTF-8
-gap < makedoc.g
+gap makedoc.g
%install
-mkdir -p %{buildroot}%{_gap_dir}/pkg
-cp -a ../%{pkgname}-%{version} %{buildroot}%{_gap_dir}/pkg/
-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}/{CHANGES.md,LICENSE,README.md}
+mkdir -p %{buildroot}%{gap_dir}/pkg/%{pkgname}/doc
+cp -a *.g gap tst %{buildroot}%{gap_dir}/pkg/%{pkgname}
+%gap_copy_docs
%if %{without bootstrap}
%check
export LC_ALL=C.UTF-8
-gap -l "%{buildroot}%{_gap_dir};%{_gap_dir}" tst/testall.g
+gap -l "%{buildroot}%{gap_dir};" tst/testall.g
%endif
%files
%doc CHANGES.md README.md
%license LICENSE
-%{_gap_dir}/pkg/%{pkgname}-%{version}/
-%exclude %{_gap_dir}/pkg/%{pkgname}-%{version}/doc/
+%{gap_dir}/pkg/%{pkgname}/
+%exclude %{gap_dir}/pkg/%{pkgname}/doc/
%files doc
-%docdir %{_gap_dir}/pkg/%{pkgname}-%{version}/doc/
-%{_gap_dir}/pkg/%{pkgname}-%{version}/doc/
+%docdir %{gap_dir}/pkg/%{pkgname}/doc/
+%{gap_dir}/pkg/%{pkgname}/doc/
%changelog
+* Tue Sep 27 2022 Jerry James <loganjerry(a)gmail.com> - 2.16-7
+- Update for gap 4.12.0
+- Add post-release bug fix patches from upstream
+- Convert License tag to SPDX
+
* Thu Jul 21 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.16-6
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild