# # spec file for package gap # # Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # Name: gap Version: 4.8.8 Release: 0 Summary: System for Computational Discrete Algebra License: GPL-2.0+ Group: Productivity/Scientific/Math Url: http://gap-system.org/ Source: https://www.gap-system.org/pub/gap/gap4core/gap4r8p8_nopackages.zip Source2: macros.gap Source3: %name-rpmlintrc Patch1: gap-final-dir.diff Patch2: gap-multiarch.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build %if 0%{?suse_version} BuildRequires: fdupes %endif BuildRequires: gmp-devel BuildRequires: libtool BuildRequires: ncurses-devel BuildRequires: readline-devel BuildRequires: unzip %if 0%{?suse_version} BuildRequires: fastjar %endif Requires: gap-core Requires: gap-devel Requires: gap-doc %define gap_sitelib_anchor %_datadir/%name %define gap_sitearch_anchor %_libexecdir/%name %define gapdir %gap_sitearch_anchor %define gapdatadir %gap_sitelib_anchor %description GAP is a system for computational discrete algebra, with particular emphasis on Computational Group Theory. GAP provides a programming language, a library of thousands of functions implementing algebraic algorithms written in the GAP language as well as large data libraries of algebraic objects. GAP is used in research and teaching for studying groups and their representations, rings, vector spaces, algebras, combinatorial structures, and more. This package is for a medium GAP installation: core, documentation and development. See gap-full if you want everything of the GAP distribution. %package core Summary: Runtime for GAP (System for Computational Discrete Algebra) Group: Productivity/Scientific/Math Requires: gap-data = %version Requires: gap-gapdoc >= 1.5.1 %description core GAP is a system for computational discrete algebra, with particular emphasis on Computational Group Theory. GAP provides a programming language, a library of thousands of functions implementing algebraic algorithms written in the GAP language as well as large data libraries of algebraic objects. GAP is used in research and teaching for studying groups and their representations, rings, vector spaces, algebras, combinatorial structures, and more. This package only pulls in the GAP core. %package data Summary: Data files for GAP (System for Computational Discrete Algebra) Group: Productivity/Scientific/Math %if 0%{?suse_version} >= 1120 BuildArch: noarch %endif %description data GAP is a system for computational discrete algebra, with particular emphasis on Computational Group Theory. This subpackage contains arch-independent supplementary data for GAP. %package devel Summary: Development environment for GAP Group: Development/Tools/Other Requires: gap-core = %version %description devel GAP is a system for computational discrete algebra, with particular emphasis on Computational Group Theory. This package will pull in the current version of the GAP compiler and utilities required to build GAP packages that need compilation. %package doc Summary: Documentation for GAP Group: Documentation/Other %if 0%{?suse_version} >= 1120 BuildArch: noarch %endif %description doc GAP is a system for computational discrete algebra, with particular emphasis on Computational Group Theory. This subpackage contains the documentation to GAP. %package full Summary: Metapackage to cause installation of the GAP Distribution Group: Productivity/Scientific/Math BuildArch: noarch Requires: gap >= %version Requires: gap-4ti2interface >= 2017.01.05 Requires: gap-ace >= 5.2 # gap-aclib-1.2 has no license attached: cannot ship that #Requires: gap-aclib >= 1.2 Requires: gap-alnuth >= 3.0.0 # gap-anupq-3.1.5 has no license attached: cannot ship that #Requires: gap-anupq >= 3.1.5 Requires: gap-atlasrep >= 1.5.1 Requires: gap-autodoc >= 2016.12.04 Requires: gap-automata >= 1.13 Requires: gap-automgrp >= 1.3 Requires: gap-autpgrp >= 1.8 Requires: gap-browse >= 1.8.7 # gap-cap-2017.07.25 has no license attached: cannot ship that #Requires: gap-cap >= 2017.07.25 # depends on unfinished carat #Requires: gap-carat >= 2.1.6 Requires: gap-circle >= 1.5.4 Requires: gap-cohomolo >= 1.6.4 Requires: gap-congruence >= 1.1.1 Requires: gap-convex >= 2013.12.05 Requires: gap-corelg >= 1.20 Requires: gap-crime >= 1.4 Requires: gap-crisp >= 1.4.4 Requires: gap-cryst >= 4.1.12 Requires: gap-crystcat >= 1.1.6 Requires: gap-ctbllib >= 1.2.2 # depends on grpconst (which is unfree) #Requires: gap-cubefree >= 1.16 Requires: gap-cvec >= 2.5.7 Requires: gap-design >= 1.6 Requires: gap-digraphs >= 0.10.1 Requires: gap-edim >= 1.3.2 Requires: gap-example >= 3.5.1 Requires: gap-examplesforhomalg >= 2017.05.25 Requires: gap-factint >= 1.5.4 Requires: gap-fga >= 1.3.1 Requires: gap-fining >= 1.3.3 Requires: gap-float >= 0.7.6 # gap-format-1.3 has no license attached: cannot ship that #Requires: gap-format >= 1.3 Requires: gap-forms >= 1.2.3 # gap-fplsa-1.1 has no license attached: cannot ship that #Requires: gap-fplsa >= 1.1 Requires: gap-fr >= 2.4.1 # gap-fwtree-1.0 has no license attached: cannot ship that #Requires: gap-fwtree >= 1.0 Requires: gap-gapdoc >= 1.6 Requires: gap-gauss >= 2017.06.14 Requires: gap-gaussforhomalg >= 2015.11.06 Requires: gap-gbnp >= 1.0.3 # gap-generalizedmorphismsforcap-2017.07.25 has no license attached: cannot ship that #Requires: gap-generalizedmorphismsforcap >= 2017.07.25 Requires: gap-genss >= 1.6.4 Requires: gap-gradedmodules >= 2017.05.10 Requires: gap-gradedringforhomalg >= 2017.05.26 Requires: gap-grape >= 4.7 Requires: gap-groupoids >= 1.51 # gap-grpconst-2.5 has no license attached: cannot ship that #Requires: gap-grpconst >= 2.5 Requires: gap-guarana >= 0.94 Requires: gap-guava >= 3.13 # Proscribed hap 1.11.15 tarball that should come with gap 4.8.8 is awol Requires: gap-hap >= 1.11.13 # depends on polymake (not ready) #Requires: gap-hapcryst >= 0.1.11 Requires: gap-happrime >= 0.6 Requires: gap-hecke >= 1.4 Requires: gap-help >= 3.1 Requires: gap-homalg >= 2017.05.10 Requires: gap-homalgtocas >= 2017.08.01 Requires: gap-idrel >= 2.34 Requires: gap-intpic >= 0.2.1 Requires: gap-io >= 4.4.6 Requires: gap-io_forhomalg >= 2017.07.01 Requires: gap-irredsol >= 1.4 # gap-itc-1.4 has no license attached: cannot ship that #Requires: gap-itc >= 1.4 Requires: gap-json >= 1.1.0 Requires: gap-kan >= 1.27 Requires: gap-kbmag >= 1.5.4 Requires: gap-laguna >= 3.7.0 # gap-liealgdb-2.1 has no license attached: cannot ship that #Requires: gap-liealgdb >= 2.1 Requires: gap-liepring >= 1.8 Requires: gap-liering >= 2.3 # not ready #Requires: gap-linboxing >= 0.5.2 # gap-linearalgebraforcap-2017.07.25: no license attached; cannot ship #Requires: gap-linearalgebraforcap >= 2017.07.25 Requires: gap-localizeringforhomalg >= 2017.07.17 Requires: gap-loops >= 3.3.0 Requires: gap-lpres >= 0.4.1 Requires: gap-mapclass >= 1.2 Requires: gap-matgrp >= 0.4 Requires: gap-matricesforhomalg >= 2017.08.02 # gap-modisom-2.3.2 not OSI compliant: cannot ship: # permits distribution and use, but not modification. #Requires: gap-modisom >= 2.3.3 # gap-modulepresentationsforcap requires a non-existant gap-complexesandfilteredobjectsforgap #Requires: gap-modulepresentationsforcap >= 2017.07.25 Requires: gap-modules >= 2017.07.17 Requires: gap-nilmat >= 1.2 Requires: gap-normalizinterface >= 0.9.8 Requires: gap-nq >= 2.5.3 Requires: gap-numericalsgps >= 1.0.1 Requires: gap-openmath >= 11.4.2 Requires: gap-orb >= 4.7.6 #Needs separate gap-core built with openmpi and update-alternatives #Requires: gap-pargap >= 1.4.0 # gap-patternclass-2.3 has no license attached: cannot ship that #Requires: gap-patternclass >= 2.3 # depends on gap-format which is not ready #Requires: gap-permut >= 1.03 Requires: gap-polenta >= 1.3.7 Requires: gap-polycyclic >= 2.11 # polymake not ready #Requires: gap-polymakeinterface >= 2015.01.26 #Requires: gap-polymaking >= 0.8.1 # gap-profiling-1.3.0: no license on "first-party" code (bundled thirdparty code is ok tho..) #Requires: gap-profiling >= 1.3.0 Requires: gap-qaos >= 1.5 Requires: gap-qpa >= 1.26 Requires: gap-quagroup >= 1.8 Requires: gap-radiroot >= 2.7 # depends on grape which is not ready #Requires: gap-rcwa >= 4.5.1 Requires: gap-rds >= 1.6 Requires: gap-recog >= 1.2.5 Requires: gap-recogbase >= 1.2.5 # gap-repsn-3.2 has no license attached: cannot ship that #Requires: gap-repsn >= 3.0.2 Requires: gap-resclasses >= 4.6.0 Requires: gap-ringsforhomalg >= 2017.08.02 Requires: gap-sco >= 2015.11.06 Requires: gap-scscp >= 2.2.2 Requires: gap-semigroups >= 2.8.0 # gap-sglppow-2.0 not OSI compliant: cannot ship # permits distribution, but not use (how stupid), nor modification #Requires: gap-sglppow >= 2.0 Requires: gap-sgpviz >= 0.998 Requires: gap-simpcomp >= 2.1.6 # gap-singular-12.04.28 has no license attached: cannot ship #Requires: gap-singular >= 12.04.28 Requires: gap-sla >= 1.2 Requires: gap-smallsemi >= 0.6.11 Requires: gap-sonata >= 2.8 # gap-sophus-1.23 has no license attached: cannot ship #Requires: gap-sophus >= 1.23 Requires: gap-spinsym >= 1.5 Requires: gap-symbcompcc >= 1.2 # gap-tomlib-1.2.6 has no license attached: cannot ship #Requires: gap-tomlib >= 1.2.6 Requires: gap-toolsforhomalg >= 2017.05.10 Requires: gap-toric >= 1.9.4 Requires: gap-toricvarieties >= 2012.12.22 # gap-unipot-1.2 has no license attached: cannot ship #Requires: gap-unipot >= 1.2 Requires: gap-unitlib >= 3.2.0 Requires: gap-utils >= 0.46 Requires: gap-wedderga >= 4.7.3 # gap-xgap-4.24 has no license attached: cannot ship #Requires: gap-xgap >= 4.26 Requires: gap-xmod >= 2.62 Requires: gap-xmodalg >= 1.12 %description full GAP is a system for computational discrete algebra, with particular emphasis on Computational Group Theory. This subpackage will pull in all contributed packages of the GAP distribution. %package prim-groups Summary: GAP: Database of primitive groups Group: Productivity/Scientific/Math %if 0%{?suse_version} >= 1120 BuildArch: noarch %endif %description prim-groups GAP is a system for computational discrete algebra, with particular emphasis on Computational Group Theory. This subpackage contains the database of primitive groups. %package rpm-devel Summary: RPM macros for building GAP packages # Not noarch: contains arch-specific paths in RPM macros Group: Development/Tools/Other %description rpm-devel GAP is a system for computational discrete algebra, with particular emphasis on Computational Group Theory. This subpackage provides RPM macros for use with packaging simple GAP modules that do not require the presence of GAP itself. %package small-groups Summary: GAP: Database of small groups Group: Productivity/Scientific/Math %if 0%{?suse_version} >= 1120 BuildArch: noarch %endif %description small-groups GAP is a system for computational discrete algebra, with particular emphasis on Computational Group Theory. This subpackage contains the database of small groups. %package trans-groups Summary: GAP: Database of transitive groups Group: Productivity/Scientific/Math %if 0%{?suse_version} >= 1120 BuildArch: noarch %endif %description trans-groups GAP is a system for computational discrete algebra, with particular emphasis on Computational Group Theory. This subpackage contains the database of transitive groups. %prep %setup -qn gap4r8 %patch -P 1 -P 2 -p1 %build rm -f bin/*.bat pushd extern/ find . -type f ! -name "Makefile*" -print -delete popd pushd cnf/ make popd %if 0%{?suse_version} == 1110 # odd breakage: # checking for trunc... no # ./configure: line 10014: syntax error near unexpected token `fi' # ./configure: line 10014: `fi' # make: *** [bin/i686-suse-linux-gnu-gcc-default32/config.status] Error 2 autoreconf -fi %endif # # Having $GAParch (for example with /bin/$GAParch) is practically useless, # because /sysinfo.gap is already arch-specific and needs to reside in an # arch-specific directory. # %configure --with-gmp=system --target="%_host" --with-gapdir="%gapdir" \ COPTS="%optflags" # # See what fancy tuple they brought us and rerun configure so we can tell it # the _real_ path of gapbindir. (Using $PWD/`pwd` in configure is absolutely # hostile to distros.) # cat sysinfo.gap; . ./sysinfo.gap; %configure --with-gmp=system --target="%_host" --with-gapdir="%gapdir" \ --with-gapbindir="%gapdir/bin/$GAParch" COPTS="%optflags" # And now, another configure run. make config; # Actual compile make %{?_smp_mflags} compile # Someone screwed up permissions bigtime. # Resolve rpmlint: W: spurious-executable-perm # Resolve rpmlint: W: script-without-shebang find . -type f "(" \ -name "*.c" -o -name "*.fp" -o -name "*.g" -o -name "*.gd" -o \ -name "*.gi" -o -name "*.grp" -o -name "*.ind" -o -name "*.tex" -o \ -name "*.tst" -o -name "*.xml" \ ")" -exec chmod a-x "{}" "+"; # Do not let these be installed. find . -type f -name "*.orig" -print -delete %install b="%buildroot" # Move doc into FHS mkdir -p "$b/%_docdir"; mv doc "$b/%_docdir/%name"; ln -s "%_docdir/%name" "doc"; # Move data into FHS rm -f tst/remake.sh doc/test/re; mkdir -p "$b/%gapdatadir/pkg" "$b/%gapdir/pkg"; dirs="grp lib prim small trans tst"; mv $dirs "$b/%gapdatadir"; for i in $dirs; do ln -s "%gapdatadir/$i" "$i"; done; # Populate FHS bindir . ./sysinfo.gap mkdir -p "$b/%_bindir" cp -aH bin/gap.sh "$b/%_bindir/gap-%version" rm -f bin/gap*.sh ln -s "%gapdir/bin/$GAParch/gac" "$b/%_bindir/gac-%version" ln -s "gap-%version" "$b/%_bindir/gap" ln -s "gac-%version" "$b/%_bindir/gac" # Move compiled things into place (lack of a `make install` target). # Throw out autogenerated objects, but keep source (3rd-party pkgs make use of it). mkdir -p "$b/%gapdir"; cp -a . "$b/%gapdir"; rm -Rf "$b/%gapdir"/{autom4*,cnf,configu*,.hgignore,.travis.yml} # RPM extras mkdir -p "$b/%_sysconfdir/rpm" cp "%_sourcedir/macros.gap" "$b/%_sysconfdir/rpm/" cat >>"$b/%_sysconfdir/rpm/macros.gap" <<-EOF # Anchor directory for %%files list %%gap_sitelib_anchor %gap_sitelib_anchor %%gap_sitearch_anchor %gap_sitearch_anchor # The GAP runtime directory (GAPPATH) %%gapdir %gapdir # Directory for modules extending the core %%gap_sitelib %gapdatadir/pkg %%gap_sitearch %%gapdir/pkg EOF %if 0%{?fdupes:1} %fdupes %buildroot/%_prefix %endif %files %defattr(-,root,root) # Dummy entry %dir %gap_sitelib_anchor/ %files core %defattr(-,root,root) %_bindir/gap %_bindir/gap-* %dir %gapdir/ %gapdir/CITATION %dir %gapdir/bin/ %gapdir/bin/cygwin.ver %gapdir/bin/gapicon* %gapdir/bin/gaprxvt* %dir %gapdir/bin/%_host-*/ %gapdir/bin/%_host-*/gap %gapdir/doc %gapdir/etc/ %gapdir/gap.ini %gapdir/gap.shi %gapdir/grp %gapdir/lib %gapdir/pkg/ %gapdir/prim %gapdir/small %gapdir/sysinfo* %gapdir/trans %gapdir/tst %gapdir/appveyor.yml %files data %defattr(-,root,root) %dir %gap_sitelib_anchor/ %gapdatadir/lib/ %gapdatadir/grp/ %gapdatadir/pkg/ %gapdatadir/tst/ %files devel %defattr(-,root,root) %_bindir/gac %_bindir/gac-* %dir %gapdir/ %gapdir/*.md %gapdir/LICENSE %gapdir/Makefile* %dir %gapdir/bin/ %gapdir/bin/%_host-* %gapdir/bin/BuildPackages.sh %exclude %gapdir/bin/%_host-*/gap %gapdir/config* %gapdir/extern/ %gapdir/src/ %files doc %defattr(-,root,root) %_docdir/%name/ %files full %defattr(-,root,root) # Dummy entry %dir %gap_sitelib_anchor/ %files prim-groups %defattr(-,root,root) %dir %gap_sitelib_anchor/ %gapdatadir/prim/ %files rpm-devel %defattr(-,root,root) %config %_sysconfdir/rpm/ %files small-groups %defattr(-,root,root) %dir %gap_sitelib_anchor/ %gapdatadir/small/ %files trans-groups %defattr(-,root,root) %dir %gap_sitelib_anchor/ %gapdatadir/trans/ %changelog