From 66a5d9a470a1b65ca07aed3f5e1d1ad654df36c8 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Fri, 2 Oct 2026 01:34:00 +0200 Subject: [PATCH] Rewrite the installation section of the manual The section described a GAP 4.8.8 installation: /opt/gap4r8 paths, running configure and make in each package by hand, and transcripts whose banners show dead author homepages and outdated versions. Explain instead which dependencies need compiling and why, how to do that with BuildPackages.sh, how to diagnose a failed LoadPackage, and how to install a newer release into the user GAP root directory. Assisted-by: Claude Code (Opus 5.5) --- doc/intro.xml | 328 ++++++++------------------------------------------ 1 file changed, 53 insertions(+), 275 deletions(-) diff --git a/doc/intro.xml b/doc/intro.xml index 043cb00..dab88a4 100644 --- a/doc/intro.xml +++ b/doc/intro.xml @@ -80,297 +80,75 @@ In Chapter the functionality for classical po Getting and installing FinInG FinInG -Since version 4.7.8, the official ⪆ distribution includes the FinInG package. The FinInG package requires the GAP packages GAPDoc, version 1.6 or higher, Forms, version 1.2.3 or higher, Orb, version 4.7.6 or higher, GenSS, version 1.6.4 or higher, and GRAPE, version 4.7 or higher, and cvec, version 2.5.7 or higher. These required packages are all part of the standard ⪆ distribution. However, the packages cvec, GRAPE, IO, and Orb may require additional compilation (cfr. infra for detailed instructions). Note that the IO is a package required by cvec and Orb, and is also part of the standard ⪆ distribution.

- -Summarized, to get FinInG working, download and install ⪆ as explained in its installation instructions, and, under UNIX like systems (including MacOS), make sure that the compilation of the packages cvec, GRAPE, IO, and Orb is done. Note that the windows distribution of ⪆ contains precompiled binaries of these packages, so under Windows, no further steps are required after installing ⪆ according to its installation instructions. In the next section we summarize the installation procedure under UNIX like systems. - - +FinInG is part of the ⪆ distribution, so it is already present in a standard +⪆ installation. It requires the packages cvec, Forms, +GenSS, GRAPE and Orb, and cvec +in turn requires IO. All of these are part of the ⪆ distribution too. The required +versions are listed in the file PackageInfo.g of FinInG. -Installation procedure under UNIX like systems - -The installation of ⪆ itself is generic for each UNIX like system, including the different flavours of Mac OS. You only need a terminal application, and you need access to the standard unix tools gunzip and tar, and the make tools. Detailed information on how to install ⪆, can be found in the documentation of ⪆. The installation procedure for FinInG, a standard GAP package, does not require compilation, however the packages cvec, GRAPE, IO, and Orb do. First install ⪆ according to the installation instructions. If you start ⪆ the output might look like in the example below. Note that IO is not listed as loaded package (see line starting with 'Packages' in the example output). This means that IO has not been compiled. Trying to load the IO will result in an error message. - - -jdebeule ~ $ gap4r8 - +-------+ GAP 4.8.8, 20-Aug-2017, build of 2017-09-04 15:17:33 (CEST) - | GAP | https://www.gap-system.org - +-------+ Architecture: x86_64-apple-darwin16.7.0-gcc-default64 - Libs used: gmp - Loading the library and packages ... - Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0 - Packages: AClib 1.2, Alnuth 3.0.0, AtlasRep 1.5.1, AutPGrp 1.8, - CRISP 1.4.4, Cryst 4.1.12, CrystCat 1.1.6, CTblLib 1.2.2, - FactInt 1.5.4, FGA 1.3.1, GAPDoc 1.6, IRREDSOL 1.4, LAGUNA 3.7.0, - Polenta 1.3.7, Polycyclic 2.11, RadiRoot 2.7, ResClasses 4.6.0, - Sophus 1.23, SpinSym 1.5, TomLib 1.2.6, Utils 0.46 - Try '??help' for help. See also '?copyright', '?cite' and '?authors' -gap> LoadPackage("io"); -#I IO package is not available. To see further details, enter -#I SetInfoLevel(InfoPackageLoading,4); and try to load the package again. -fail - - - - - -Compiling packages -In this subsection it is explained how to compile the necessary packages in case this is not yet done for your ⪆ installation. We assume that you have write access to the ⪆ installation on your computer. If this is not the case, you should ask your system administrator to do this for you. Locate your ⪆ installation. The examples below are generated using a GAP4.8.8 installation residing in "/opt/gap4r8". Clearly, subsequent versions of gap will reside in a differently named directory, e.g. "/opt/gap4r9". Another commonly used directory under UNIX like systems to install software is "/usr/local", so gap might reside in "/usr/local/gap4r8" too. In all examples in this section, we assume your ⪆ installation resides in "/opt/gap4r8". Therefore, replace any occurrence of "/opt/gap4r8" with the actual directory of your ⪆ installation when executing the installation steps.

- -Three steps will be necessary to compile the IO package: go into the correct directory, and issue the 'configure' command and then issue the 'make' command. Note that the directory name of the package is dependent on its version number. The correct name can be found as follows: - -jdebeule ~ $ ls /opt/gap4r8/pkg/ |grep io- -io-4.4.6 - - -From this output, it can be determined that the IO resides in "/opt/gap4r8/pkg/io-4.4.6/". The three steps to be taken to compile io are demonstrated in the example below. - - -root ~ $ cd /opt/gap4r8/pkg/io-4.4.6/ -root /opt/gap4r8/pkg/io-4.4.6 $ ./configure -checking for a BSD-compatible install... /usr/bin/install -c -checking whether build environment is sane... yes -checking for a thread-safe mkdir -p... cnf/install-sh -c -d -... -...lots of output -... -config.status: creating Makefile -config.status: creating src/pkgconfig.h -config.status: src/pkgconfig.h is unchanged -config.status: executing depfiles commands -config.status: executing libtool commands -root /opt/gap4r8/pkg/io-4.4.6 $ make - CC src/io_la-io.lo - CCLD io.la -cnf/install-sh -c -d ./bin/x86_64-apple-darwin16.7.0-gcc-default64 -cp .libs/io.so bin/x86_64-apple-darwin16.7.0-gcc-default64/io.so - - -Now starting &GAP; should produce the following output, notice the presence -of "IO 4.4.6" as one of the loaded packages. +Compiling the required packages + +Some of the required packages contain code that must be compiled: + +IO and cvec must be compiled, otherwise +FinInG cannot be loaded. +GRAPE uses the program nauty to compute automorphism groups of graphs. +FinInG relies on this for the collineation groups of generalised polygons (see Chapter +) and for AutGroupIncidenceStructureWithNauty and +IsIsomorphicIncidenceStructureWithNauty. +Orb works without compilation, but its compiled part makes it faster. + + +The &GAP; installer for Windows contains compiled versions of these packages, so no further steps are +needed there. On Linux, macOS and other UNIX-like systems, use the script BuildPackages.sh +that comes with &GAP;. Run it from the pkg directory of your &GAP; installation; when given +package directories as arguments, it compiles only those: + + +cd /path/to/gap/pkg +../bin/BuildPackages.sh io* cvec* orb* grape* + + +Afterwards, start &GAP; and load FinInG. The output should end as follows. -jdebeule ~ $ gap4r8 - +-------+ GAP 4.8.8, 20-Aug-2017, build of 2017-09-04 15:17:33 (CEST) - | GAP | https://www.gap-system.org - +-------+ Architecture: x86_64-apple-darwin16.7.0-gcc-default64 - Libs used: gmp - Loading the library and packages ... - Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0 - Packages: AClib 1.2, Alnuth 3.0.0, AtlasRep 1.5.1, AutPGrp 1.8, - CRISP 1.4.4, Cryst 4.1.12, CrystCat 1.1.6, CTblLib 1.2.2, - FactInt 1.5.4, FGA 1.3.1, GAPDoc 1.6, IO 4.4.6, IRREDSOL 1.4, - LAGUNA 3.7.0, Polenta 1.3.7, Polycyclic 2.11, RadiRoot 2.7, - ResClasses 4.6.0, Sophus 1.23, SpinSym 1.5, TomLib 1.2.6, - Utils 0.46 - Try '??help' for help. See also '?copyright', '?cite' and '?authors' -gap> - - -Similar steps are now necessary to compile the package cvec, Orb, and grape: -go into the correct directory, and issue the 'configure' and 'make' command. In the example below, we include -the determination of the correct directory names. Note that the directory name of the grape package -is not dependent on its version number, so it resides in "/opt/gap4r8/pkg/grape". - - -root /opt/gap4r8/pkg/cvec-2.5.7 $ cd -root ~ $ ls /opt/gap4r8/pkg/ |grep cvec- -cvec-2.5.7 -root ~ $ cd /opt/gap4r8/pkg/cvec-2.5.7/ -root /opt/gap4r8/pkg/cvec-2.5.7 $ ./configure -... -...lots of output -... -config.status: executing libtool commands -root /opt/gap4r8/pkg/cvec-2.5.7 $ make - CC src/cvec_la-cvec.lo - CCLD cvec.la -cnf/install-sh -c -d ./bin/x86_64-apple-darwin16.7.0-gcc-default64 -cp .libs/cvec.so bin/x86_64-apple-darwin16.7.0-gcc-default64/cvec.so -root ~ $ ls /opt/gap4r8/pkg/ |grep orb- -orb-4.7.6 -root ~ $ cd /opt/gap4r8/pkg/orb-4.7.6/ -root /opt/gap4r8/pkg/orb-4.7.6 $ ./configure -... -...lots of output -... -config.status: executing libtool commands -root /opt/gap4r8/pkg/orb-4.7.6 $ make -...some output -cp .libs/orb.so bin/x86_64-apple-darwin16.7.0-gcc-default64/orb.so -root ~ $ cd /opt/gap4r8/pkg/grape -root /opt/gap4r8/pkg/grape $ ./configure -root /opt/gap4r8/pkg/grape $ make -...lots of output -root /opt/gap4r8/pkg/grape $ - - -Note that warnings may occur during the compilation process, which can all be ignored. If compilation of -these packages has been successful, restart &GAP; and load FinInG using "LoadPackage("fining")". -The output should look as follows. - - -jdebeule ~ $ gap4r8 - +-------+ GAP 4.8.8, 20-Aug-2017, build of 2017-09-04 15:17:33 (CEST) - | GAP | https://www.gap-system.org - +-------+ Architecture: x86_64-apple-darwin16.7.0-gcc-default64 - Libs used: gmp - Loading the library and packages ... - Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0 - Packages: AClib 1.2, Alnuth 3.0.0, AtlasRep 1.5.1, AutPGrp 1.8, - CRISP 1.4.4, Cryst 4.1.12, CrystCat 1.1.6, CTblLib 1.2.2, - FactInt 1.5.4, FGA 1.3.1, GAPDoc 1.6, IO 4.4.6, IRREDSOL 1.4, - LAGUNA 3.7.0, Polenta 1.3.7, Polycyclic 2.11, RadiRoot 2.7, - ResClasses 4.6.0, Sophus 1.23, SpinSym 1.5, TomLib 1.2.6, - Utils 0.46 - Try '??help' for help. See also '?copyright', '?cite' and '?authors' - gap> LoadPackage("fining"); +... --------------------------------------------------------------------- -Loading 'Forms' 1.2.5 (21/09/2017) -by John Bamberg (http://school.maths.uwa.edu.au/~bamberg/) - Jan De Beule (http://www.debeule.eu) -For help, type: ?Forms ---------------------------------------------------------------------- ---------------------------------------------------------------------- -Loading orb 4.7.6 (Methods to enumerate orbits) -by Juergen Mueller (http://www.math.rwth-aachen.de/~Juergen.Mueller), - Max Neunhöffer (http://www-groups.mcs.st-and.ac.uk/~neunhoef), and - Felix Noeske (http://www.math.rwth-aachen.de/~Felix.Noeske). -Homepage: https://gap-packages.github.io/orb ---------------------------------------------------------------------- ---------------------------------------------------------------------- -Loading cvec 2.5.7 (Compact vectors over finite fields) -by Max Neunhöffer (http://www-groups.mcs.st-and.ac.uk/~neunhoef). -Homepage: https://gap-packages.github.io/cvec ---------------------------------------------------------------------- ---------------------------------------------------------------------- -Loading genss 1.6.4 (Generic Schreier-Sims) -by Max Neunhöffer (http://www-groups.mcs.st-and.ac.uk/~neunhoef) and - Felix Noeske (http://www.math.rwth-aachen.de/~Felix.Noeske). -Homepage: https://gap-packages.github.io/genss ---------------------------------------------------------------------- ---------------------------------------------------------------------- -Loading GRAPE 4.7 (GRaph Algorithms using PErmutation groups) -by Leonard H. Soicher (http://www.maths.qmul.ac.uk/~leonard/). -Homepage: http://www.maths.qmul.ac.uk/~leonard/grape/ ---------------------------------------------------------------------- -------------------------------------------------------------------------------- - ______________ ________ _________ __________ __ - ___ ____/__(_)__________ _/________ ____/ __< /_ // / - __ /_ __ /__ __ __ / __ __ / __ __ /_ // /_ - _ __/ _ / _ / / /_/ / _ / / / /_/ / _ /_/__ __/ - /_/ /_/ /_/ /_//___/ /_/ /_/____/ /_/_(_)/_/ -------------------------------------------------------------------------------- -Loading FinInG 1.4.1 (Finite Incidence Geometry) -by John Bamberg (http://school.maths.uwa.edu.au/~bamberg/) - Anton Betten (http://www.math.colostate.edu/~betten) - Jan De Beule (http://www.debeule.eu) - Philippe Cara (http://homepages.vub.ac.be/~pcara) - Michel Lavrauw (http://people.sabanciuniv.edu/~mlavrauw/) - Max Neunhoeffer (http://www-groups.mcs.st-and.ac.uk/~neunhoef/) + ______________ ________ _________ + ___ ____/__(_)__________ _/________ ____/ + __ /_ __ /__ __ __ / __ __ / __ + _ __/ _ / _ / / /_/ / _ / / / /_/ / + /_/ /_/ /_/ /_//___/ /_/ /_/____/ +--------------------------------------------------------------------- +Loading FinInG &VERSION; (Finite Incidence Geometry) +by John Bamberg (https://johnbamberg.github.io) + Anton Betten (https://www.math.colostate.edu/~betten) + Philippe Cara (https://wids.research.vub.be/nl/philippe-cara) + Jan De Beule (https://wids.research.vub.be/en/node/149) + Michel Lavrauw (https://mlavrauw.github.io) + Max Neunhoeffer For help, type: ?FinInG --------------------------------------------------------------------- true -gap> +If LoadPackage returns fail instead, enter SetInfoLevel(InfoPackageLoading, 4); +and load the package again to see which requirement is missing. + Updating FinInG -New releases of FinInG will be distributed automatically with new releases of &GAP;. However, -it is possible easily to update FinInG in an existing installation of &GAP;, provided -the new version of FinInG does not require newer versions of existing packages in the -installation. It is also possible to have different versions of FinInG installed on -one system. - -To update FinInG it is sufficient to download and unpack the archive containing the new release. First find the -location of your existing &GAP; installation. We assume in the example below that it is -/opt/gap4r8/ -Make sure you have write permission on this location. If this is not the case, you must ask your system administrator to do -this. Download the FinInG archive "fining-....tgz" to this location, and unpack the archive. This can be done by issuing -gunzip fining-....tgz -which yields a file "fining-....tar", in the pkg directory, after which issuing the command -tar -xf fining-....tar -Unpack the archive in a subdirectory fining. Starting &GAP; and loading FinInG the usual -way should give you the newly installed version. - -Please notice that you can unpack your archive in your favorite local -"./pkg" directory, e.g. "/home/yourself/pkg/", in case you are using -&GAP; on a server on which you have only a restricted access. -In this case, i.e. if you installed FinInG in your local pkg directory, -e.g. "/home/yourself/pkg/", then move to "/home/yourself", and issue the command -gap -l "/opt/gap4r8;./" -This will cause gap to startup and use as pkg directory both its own central pkg directory, i.e. -"/opt/gap4r8/pkg/", as well as your local pkg directory, i.e. "/home/yourself/pkg/". -You should see something like the following output. - - - +-------+ GAP 4.8.8, 20-Aug-2017, build of 2017-09-04 15:17:33 (CEST) - | GAP | https://www.gap-system.org - +-------+ Architecture: x86_64-apple-darwin16.7.0-gcc-default64 -Libs used: gmp -Loading the library and packages ... -Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0 -Packages: AClib 1.2, Alnuth 3.0.0, AtlasRep 1.5.0, AutPGrp 1.6, - Browse 1.8.6, CRISP 1.3.8, Cryst 4.1.12, CrystCat 1.1.6, - CTblLib 1.2.2, FactInt 1.5.3, FGA 1.2.0, GAPDoc 1.5.1, IO 4.4.4, - IRREDSOL 1.2.4, LAGUNA 3.7.0, Polenta 1.3.2, Polycyclic 2.11, - RadiRoot 2.7, ResClasses 3.4.0, Sophus 1.23, SpinSym 1.5, - TomLib 1.2.5 -Try '?help' for help. See also '?copyright' and '?authors' -gap> LoadPackage("fining"); ---------------------------------------------------------------------- -Loading 'Forms' 1.2.5 (21/09/2017) -by John Bamberg (http://school.maths.uwa.edu.au/~bamberg/) - Jan De Beule (http://www.debeule.eu) -For help, type: ?Forms ---------------------------------------------------------------------- ---------------------------------------------------------------------- -Loading orb 4.7.6 (Methods to enumerate orbits) -by Juergen Mueller (http://www.math.rwth-aachen.de/~Juergen.Mueller), - Max Neunhöffer (http://www-groups.mcs.st-and.ac.uk/~neunhoef), and - Felix Noeske (http://www.math.rwth-aachen.de/~Felix.Noeske). -Homepage: https://gap-packages.github.io/orb ---------------------------------------------------------------------- ---------------------------------------------------------------------- -Loading cvec 2.5.7 (Compact vectors over finite fields) -by Max Neunhöffer (http://www-groups.mcs.st-and.ac.uk/~neunhoef). -Homepage: https://gap-packages.github.io/cvec ---------------------------------------------------------------------- ---------------------------------------------------------------------- -Loading genss 1.6.4 (Generic Schreier-Sims) -by Max Neunhöffer (http://www-groups.mcs.st-and.ac.uk/~neunhoef) and - Felix Noeske (http://www.math.rwth-aachen.de/~Felix.Noeske). -Homepage: https://gap-packages.github.io/genss ---------------------------------------------------------------------- ---------------------------------------------------------------------- -Loading GRAPE 4.7 (GRaph Algorithms using PErmutation groups) -by Leonard H. Soicher (http://www.maths.qmul.ac.uk/~leonard/). -Homepage: http://www.maths.qmul.ac.uk/~leonard/grape/ ---------------------------------------------------------------------- -------------------------------------------------------------------------------- - ______________ ________ _________ __________ __ - ___ ____/__(_)__________ _/________ ____/ __< /_ // / - __ /_ __ /__ __ __ / __ __ / __ __ /_ // /_ - _ __/ _ / _ / / /_/ / _ / / / /_/ / _ /_/__ __/ - /_/ /_/ /_/ /_//___/ /_/ /_/____/ /_/_(_)/_/ -------------------------------------------------------------------------------- -Loading FinInG 1.4.1 (Finite Incidence Geometry) -by John Bamberg (http://school.maths.uwa.edu.au/~bamberg/) - Anton Betten (http://www.math.colostate.edu/~betten) - Jan De Beule (http://www.debeule.eu) - Philippe Cara (http://homepages.vub.ac.be/~pcara) - Michel Lavrauw (http://people.sabanciuniv.edu/~mlavrauw/) - Max Neunhoeffer (http://www-groups.mcs.st-and.ac.uk/~neunhoef/) -For help, type: ?FinInG ---------------------------------------------------------------------- -true - +New releases of FinInG are included in new releases of &GAP;, and are also +available from https://github.com/gap-packages/FinInG/releases. To use a newer release +with an existing &GAP; installation, unpack its archive in the pkg subdirectory of your user +&GAP; root directory, which is given by GAPInfo.UserGapRoot (see +). If several versions of a package are installed, +&GAP; loads the newest one that can be loaded. The PackageManager package can +download and install releases into this directory for you.