commit:     499b1d05def066a51b3ba805ba42cc6eb3e46d21
Author:     Aisha Tammy <gentoo <AT> aisha <DOT> cc>
AuthorDate: Thu Oct 22 03:50:37 2020 +0000
Commit:     Aisha Tammy <gentoo <AT> aisha <DOT> cc>
CommitDate: Thu Oct 22 03:50:43 2020 +0000
URL:        https://gitweb.gentoo.org/proj/sci.git/commit/?id=499b1d05

sci-mathematics/gap-core: core package for GAP

all tests for core package passing

Package-Manager: Portage-3.0.8, Repoman-3.0.1
Signed-off-by: Aisha Tammy <gentoo <AT> aisha.cc>

 profiles/package.mask                              |   5 +
 .../gap-core/files/gap-core-4.11.0-autoconf.patch  | 136 ++++++++++++++++++++
 sci-mathematics/gap-core/gap-core-4.11.0.ebuild    | 140 +++++++++++++++++++++
 sci-mathematics/gap-core/metadata.xml              |  30 +++++
 4 files changed, 311 insertions(+)

diff --git a/profiles/package.mask b/profiles/package.mask
index 56b672d8d..f495d9865 100644
--- a/profiles/package.mask
+++ b/profiles/package.mask
@@ -30,3 +30,8 @@
 
 #--- END OF EXAMPLES ---
 
+# Aisha Tammy <gen...@aisha.cc> (2020-10-21)
+# This ebuild is unmaintainable and the package
+# is going to be split subpackages
+# suggested replacement - sci-mathematics/gap-core
+sci-mathematics/gap
\ No newline at end of file

diff --git a/sci-mathematics/gap-core/files/gap-core-4.11.0-autoconf.patch 
b/sci-mathematics/gap-core/files/gap-core-4.11.0-autoconf.patch
new file mode 100644
index 000000000..ea3ebdfe6
--- /dev/null
+++ b/sci-mathematics/gap-core/files/gap-core-4.11.0-autoconf.patch
@@ -0,0 +1,136 @@
+diff --git a/Makefile.rules b/Makefile.rules
+index c2971b2..3c04e8b 100644
+--- a/Makefile.rules
++++ b/Makefile.rules
+@@ -483,20 +483,22 @@ clean:
+ 
+ LTINSTALL=$(LIBTOOL) --mode=install $(INSTALL)
+ 
+-install:
+-      @echo "Error, 'make install' has not yet been implemented"
+-      exit 1
++install: install-bin install-libgap install-headers install-gaproot
+ 
+ install-bin:
+-      @echo "Warning, 'make install-bin' is incomplete"
+       $(INSTALL) -d -m 0755 $(DESTDIR)$(bindir)
+-      $(INSTALL) -m 0755 gap $(DESTDIR)$(bindir)/gap.real
+-      echo "!/bin/sh\nexec \"$(bindir)/gap.real\" -l \"$(datarootdir)/gap\" 
\"$@\"" > gap-wrapper.sh
+-      $(INSTALL) -m 0755 gap-wrapper.sh $(DESTDIR)$(bindir)/gap
+-      # TODO: make gac installable; this requires adjusting path in it, and
+-      # installing the libtool script generated by configure somewhere; and 
then
+-      # putting that path to it into gac)
+-      #$(INSTALL) gac $(DESTDIR)$(bindir)
++      $(INSTALL) -m 0755 gap $(DESTDIR)$(datarootdir)/gap
++      echo "!/bin/sh\nexec \"$(datarootdir)/gap\" -l \"$(datarootdir)/gap\" 
\"$@\"" > gap
++      $(INSTALL) -m 0755 gap $(DESTDIR)$(bindir)
++      sed -e 
"s:^abs_top_builddir=.*$:abs_top_builddir=\"$(datarootdir)/gap\":" \
++          -e "s:^abs_top_srcdir=.*$:abs_top_srcdir=\"$(datarootdir)/gap\":" \
++          -i gac
++      $(INSTALL) -m 0755 gac $(DESTDIR)$(bindir)
++
++install-libgap: libgap.la
++      @echo "Warning, 'make install-libgap' is incomplete"
++      $(INSTALL) -d -m 0755 $(DESTDIR)$(libdir)
++      $(LTINSTALL) libgap.la $(DESTDIR)$(libdir)
+ 
+ install-gaproot:
+       @echo "Warning, 'make install-gaproot' is incomplete"
+@@ -538,11 +540,6 @@ install-headers:
+       $(INSTALL) -m 0644 $(srcdir)/src/hpc/*.h $(DESTDIR)$(includedir)/gap/hpc
+       # TODO: take care of config.h, this is difficult
+ 
+-install-libgap: libgap.la
+-      @echo "Warning, 'make install-libgap' is incomplete"
+-      $(INSTALL) -d -m 0755 $(DESTDIR)$(libdir)
+-      $(LTINSTALL) libgap.la $(DESTDIR)$(libdir)
+-
+ 
+ .PHONY: install install-bin install-gaproot install-headers install-libgap
+ 
+diff --git a/configure.ac b/configure.ac
+index 938fcd3..b3b2340 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -6,6 +6,7 @@ AC_INIT([GAP], [4.dev], [supp...@gap-system.org], [gap], 
[https://www.gap-system
+ 
+ AC_CONFIG_SRCDIR([src/gap.c])
+ AC_CONFIG_AUX_DIR([cnf])
++AC_CONFIG_MACRO_DIR([m4])
+ 
+ AC_CONFIG_HEADERS([gen/config.h:src/config.h.in])
+ AC_CONFIG_COMMANDS([gen/stamp-h], [echo timestamp > gen/stamp-h])
+@@ -207,29 +208,41 @@ dnl User setting: Debug mode (off by default)
+ dnl
+ AC_ARG_ENABLE([debug],
+     [AS_HELP_STRING([--enable-debug], [enable debug mode])],
+-    [AC_DEFINE([GAP_KERNEL_DEBUG], [1], [define if building in debug mode])
+-     AC_DEFINE([GAP_PRINT_BACKTRACE], [1], [to enable backtraces upon 
crashes])],
++    [],
+     [enable_debug=no]
+     )
+ AC_MSG_CHECKING([whether to enable debug mode])
+ AC_MSG_RESULT([$enable_debug])
+ 
++AS_IF([test "x$enable_debug" != "xno"],
++    [AC_DEFINE([GAP_KERNEL_DEBUG], [1], [define if building in debug mode])
++     AC_DEFINE([GAP_PRINT_BACKTRACE], [1], [to enable backtraces upon 
crashes])],
++) 
++
+ AC_ARG_ENABLE([memory-checking],
+     [AS_HELP_STRING([--enable-memory-checking], [enable memory checking])],
+-    [AC_DEFINE([GAP_MEM_CHECK], [1], [define if building with memory 
checking])],
++    [],
+     [enable_memory_checking=no]
+     )
+ AC_MSG_CHECKING([whether to enable memory checking])
+ AC_MSG_RESULT([$enable_memory_checking])
+ 
++AS_IF([test "x$enable_memory_checking" != "xno"],
++  [AC_DEFINE([GAP_MEM_CHECK], [1], [define if building with memory checking])]
++)
++
+ AC_ARG_ENABLE([valgrind],
+     [AS_HELP_STRING([--enable-valgrind], [enable valgrind extensions to 
GASMAN])],
+-    [AC_DEFINE([GAP_MEMORY_CANARY], [1], [define if building with valgrind 
extensions])],
++    [],
+     [enable_valgrind=no]
+     )
+ AC_MSG_CHECKING([whether to enable valgrind extensions to GASMAN])
+ AC_MSG_RESULT([$enable_valgrind])
+ 
++AS_IF([test "x$enable_valgrind" != "xno"],
++  [AC_DEFINE([GAP_MEMORY_CANARY], [1], [define if building with valgrind 
extensions])]
++)
++
+ if test "x$enable_valgrind" != "xno" -a "x$enable_memory_checking" != "xno"; 
then
+     AC_MSG_ERROR([--enable-valgrind and --enable-memory-checking cannot be 
used at the same time])
+ fi
+@@ -549,10 +562,9 @@ AS_IF([test "x$with_gc" = xboehm],
+   #
+   # As a side benefit, users do not have to worry about installing 
dependencies.
+ 
+-  BUILD_LIBATOMIC_OPS=yes
+-  
LIBATOMIC_OPS_CPPFLAGS='-I${abs_builddir}/extern/install/libatomic_ops/include'
+-  
LIBATOMIC_OPS_LDFLAGS='${abs_builddir}/extern/install/libatomic_ops/lib/libatomic_ops.la'
+-  LIBATOMIC_OPS_LIBS=
++  BUILD_LIBATOMIC_OPS=no
++  #PKG_CHECK_MODULES([LIBATOMIC_OPS], [atomic_ops])
++
+   AC_SUBST([BUILD_LIBATOMIC_OPS])
+   AC_SUBST([LIBATOMIC_OPS_CPPFLAGS])
+   AC_SUBST([LIBATOMIC_OPS_LDFLAGS])
+@@ -561,11 +573,8 @@ AS_IF([test "x$with_gc" = xboehm],
+   ATOMIC_OPS_CFLAGS=$LIBATOMIC_OPS_CPPFLAGS
+   ATOMIC_OPS_LIBS=$LIBATOMIC_OPS_LDFLAGS
+ 
+-
+-  BUILD_BOEHM_GC=yes
+-  BOEHM_GC_CPPFLAGS='-I${abs_builddir}/extern/install/gc/include'
+-  BOEHM_GC_LDFLAGS='${abs_builddir}/extern/install/gc/lib/libgc.la'
+-  BOEHM_GC_LIBS=
++  BUILD_BOEHM_GC=no
++  #PKG_CHECK_MODULES([BOEHM_GC], [bdw-gc])
+   AC_SUBST([BUILD_BOEHM_GC])
+   AC_SUBST([BOEHM_GC_CPPFLAGS])
+   AC_SUBST([BOEHM_GC_LDFLAGS])

diff --git a/sci-mathematics/gap-core/gap-core-4.11.0.ebuild 
b/sci-mathematics/gap-core/gap-core-4.11.0.ebuild
new file mode 100644
index 000000000..c4610cb98
--- /dev/null
+++ b/sci-mathematics/gap-core/gap-core-4.11.0.ebuild
@@ -0,0 +1,140 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{7..9} )
+inherit autotools python-any-r1
+
+DESCRIPTION="System for computational discrete algebra"
+HOMEPAGE="https://www.gap-system.org/";
+SRC_URI="https://github.com/gap-system/gap/releases/download/v${PV}/gap-${PV}-core.tar.bz2
 -> ${P}.tar.bz2
+       
https://github.com/gap-system/gap/releases/download/v${PV}/packages-required-v${PV}.tar.gz
 -> ${P}-packages.tar.gz
+"
+S="${WORKDIR}"/gap-${PV}
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64"
+# broken HPC
+IUSE="-boehm debug -hpc julia julia-gc memcheck valgrind"
+REQUIRED_USE="valgrind? ( memcheck ) julia-gc? ( julia ) hpc? ( boehm )"
+
+RDEPEND+="
+       dev-libs/gmp
+       net-libs/zeromq
+       sci-libs/cddlib
+       sys-libs/readline
+       sys-libs/zlib
+       julia? ( || (
+               dev-lang/julia
+               dev-lang/julia-bin
+       ) )
+       valgrind? ( dev-util/valgrind )
+"
+DEPEND+="${RDEPEND}"
+BDEPEND+="${PYTHON_DEPS}"
+
+PATCHES=( "${FILESDIR}"/${PN}-4.11.0-autoconf.patch )
+
+pkg_setup() {
+       if use valgrind; then
+               elog "If you enable the use of valgrind duing building"
+               elog "be sure that you have enabled the proper flags"
+               elog "in gcc to support it:"
+               elog "https://wiki.gentoo.org/wiki/Debugging#Valgrind";
+       fi
+}
+
+src_unpack() {
+       default
+       mkdir -p "${S}"/pkg || die
+       mv "${WORKDIR}"/{GAPDoc*,primgrp*,SmallGrp*,transgrp*} "${S}"/pkg || die
+}
+
+src_prepare() {
+       default
+       eautoreconf -f -i
+
+       # use GNUmakefile
+       rm Makefile || die
+
+       # make sure of no external gmp/zlib being build
+       # gap uses bundled libatomic_ops and boehm-gc
+       rm -rf extern || die
+
+       # this test takes TOO long
+       rm tst/teststandard/opers/AutomorphismGroup.tst || die
+}
+
+src_configure() {
+       local myconf=(
+               --enable-shared
+               --disable-static
+               --with-gmp
+               --with-zlib
+               --with-readline
+               --enable-popcnt
+               $(use_enable memcheck memory-checking)
+               $(use_enable valgrind)
+               $(use_enable hpc hpcgap)
+               $(use_enable debug)
+               $(use_with julia)
+       )
+       # garbage collector settings
+       if use boehm; then
+               myconf+=( --with-gc=boehm )
+       elif use julia-gc; then
+               myconf+=( --with-gc=julia )
+       else
+               myconf+=( --with-gc=gasman )
+       fi
+
+       # only supporting amd64 builds
+       econf ${myconf[@]} ABI=64
+}
+
+src_test() {
+       emake testinstall testlibgap
+}
+
+src_install() {
+       # upstream has no install function
+       # we try to simulate on as best as we can
+
+       dodoc README{,.buildsys,.hpcgap}.md \
+               CHANGES.md CITATION
+
+       sed -e 
"s:^abs_top_builddir=.*$:abs_top_builddir=\"${EPREFIX}/usr/share/gap\":" \
+           -e 
"s:^abs_top_srcdir=.*$:abs_top_srcdir=\"${EPREFIX}/usr/share/gap\":" \
+           -i gac || die
+       dobin gac
+
+       exeinto /usr/share/gap/
+       doexe gap
+
+       cat <<-EOF > gap.sh || die
+       \#!/bin/sh
+       exec "${EPREFIX}"/usr/share/gap/gap -l "${EPREFIX}"/usr/share/gap "\$@"
+       EOF
+       newbin gap.sh gap
+
+       dolib.so .libs/libgap.so*
+
+       dodir /usr/include/gap
+       cp -a src/*.h gen/*.h "${ED}"/usr/include/gap || die
+       if use hpc; then
+               dodir /usr/include/gap/hpc
+               cp -a src/hpc/*.h "${ED}"/usr/include/gap/hpc || die
+       fi
+
+       cp -a doc grp lib tst libtool "${ED}"/usr/share/gap || die
+
+       sed -e "s:${S}:${EPREFIX}/usr/share/gap:g" -i sysinfo.gap
+       insinto /usr/share/gap
+       doins sysinfo.gap*
+
+       # remove objects and static lib files
+       find "${ED}" \( -name "*.o" -o -name "*.a"  -o -name "*.la" \) \
+            -delete || die
+}

diff --git a/sci-mathematics/gap-core/metadata.xml 
b/sci-mathematics/gap-core/metadata.xml
new file mode 100644
index 000000000..a59ef9895
--- /dev/null
+++ b/sci-mathematics/gap-core/metadata.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="person">
+               <email>a.g.gro...@inp.nsk.su</email>
+               <name>Andrey Grozin</name>
+       </maintainer>
+       <maintainer type="project">
+               <email>sci-mathemat...@gentoo.org</email>
+               <name>Gentoo Mathematics Project</name>
+       </maintainer>
+       <longdescription lang="en">
+Groups, Algorithms, Programming 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.
+</longdescription>
+       <use>
+               <flag name="boehm">Use <pkg>dev-libs/boehm-gc</pkg> as garbage 
collector</flag>
+               <flag name="hpc">Build gap with multithreading and parallel 
process support</flag>
+               <flag name="julia">Build julia bindings</flag>
+               <flag name="julia-gc">Use the julia garbage collector</flag>
+               <flag name="memcheck">Enable memory checking</flag>
+               <flag name="valgrind">Build symbols to be used by 
valgrind</flag>               
+       </use>
+</pkgmetadata>

Reply via email to