aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLucas Mitrak <lucas@lucasmitrak.com>2021-08-08 23:09:54 -0400
committerAndrew Ammerlaan <andrewammerlaan@gentoo.org>2021-09-12 09:37:31 +0200
commita9a6dc87759ff69f93105d2b85b5cd90755380e5 (patch)
treec324c4111f628d91c2c79107065b42ee6db5efdd
parentdev-python/jupyterlab: move to ::gentoo (diff)
downloadsci-a9a6dc87.tar.gz
sci-a9a6dc87.tar.bz2
sci-a9a6dc87.zip
sci-mathematics/acl2: fix TAGS install, add emacs/doc flags, etc
* version bump * EAPI bump * Remove eutils because it is no longer necessary and deprecated * inherit elisp-common for compiling/installing emacs files * Add emacs use flag for emacs files and TAGS file * Add app-editor/emacs to BDEPEND if its needed during compilation * Add doc use flag for compiling and installing html docs * Add dev-lang/perl as a DEPEND for doc * Change SRC_URI to upstream and updated github * Update metadata.xml to this new SRC_URI * Add patch which changes `make` to $(MAKE) in GNUmakefile for Q/A * Add src_prepare which deletes *.bak, *.orig, and sparc binary acl2link * Remove `emake certify-books` because certify-books no longer exists * Add `emake basic` because it is the one which is the default [1] * emake basic is much faster so the einfos are removed * Add `emake DOC` to compilation phase if DOC use flag is enabled * Add `elisp-compile` to compilation phase if emacs use flag is enabled * Install README.md always and html docs if doc use flag is enabled * Install emacs files and TAGS file is emacs use flag is enabled * Add `use emacs && elisp-site-regen` to postinst() and postrm() phases Currently, sci-mathematics/acl2 will not always install successfully. This is because the TAGS file is only created if the etags program is installed. The etags program is installed when emacs is installed. Therefore, an emacs use flag is added so the TAGS file is installed only when it is enabled. Since app-editors/emacs is required for the CBUILD, the dependency is added to the BDEPEND. In order to compile/install emacs files, the elisp-common eclass is inherited. This compilation and installation only takes place if the emacs use flag is enabled. The `elisp-site-regen` is added to pkg_postinst() and pkg_postrm() with the requirement of the emacs use flag being enabled. If the doc flag is enabled, then `emake DOC` is executed and the html docs are installed; however, the README.md is always installed. Since dev-lang/perl is needed for this compilation, it is added as a conditional requirement. If the books use flag is enabled, then the books will be compiled using `emake basic`. The reason `emake basic` was chosen instead of `emake regression` is because the latter is stated as being "usually unnecessary" [1] and that "most users will not want to use this target" [2] while the former is the default [1] and stated as "a convenient starting place" [3]. Every book is made before for major releases, so it is unecessary to to build all for an install. Since the compilation of the books is much faster, the einfo messages are removed. In addition, the SRC_URI for the previous ebuild is behind in commits [4] and is simply a clone. Therefore, the main github repo replaced it. The metadata is updated to this change also. A src_prepare phase was added which copies debian's Changelog of this package [5]. The entry on 2015-10-21 of this Changelog shows that the *.bak and *.orig files were removed to clean the target. Also, the inadvertent sparc binary acl2link was removed. This sparc binary lacks source code and therefore violates the GNU GPL. Debian filed a bug about this binary and the solution was to delete it [6]. A patch is added so a Q/A warning is not given: "make[1]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule". The patch changes a make command to use the variable $(MAKE). This patch will be made available upstream via a github pull request. Finally, eutils is removed due to being depreciated and the EAPI is bumped. [1] https://www.cs.utexas.edu/users/moore/acl2/v8-3/combined-manual/ index.html?topic=ACL2____BOOKS-CERTIFICATION [2] https://github.com/acl2/acl2/blob/8.3/books/GNUmakefile#L61 [3] https://github.com/acl2/acl2/blob/8.3/books/GNUmakefile#L48 [4] https://github.com/acl2-devel/acl2-devel [5] https://debian.pkgs.org/9/debian-main-arm64/ acl2_7.2dfsg-3_arm64.deb.html [6] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=787368 Closes: https://bugs.gentoo.org/755368 Package-Manager: Portage-3.0.20, Repoman-3.0.2 Signed-off-by: Lucas Mitrak <lucas@lucasmitrak.com> Closes: https://github.com/gentoo/sci/pull/1109 Signed-off-by: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
-rw-r--r--sci-mathematics/acl2/Manifest1
-rw-r--r--sci-mathematics/acl2/acl2-8.4.ebuild86
-rw-r--r--sci-mathematics/acl2/files/acl2-use_make_variable.patch13
-rw-r--r--sci-mathematics/acl2/metadata.xml2
4 files changed, 101 insertions, 1 deletions
diff --git a/sci-mathematics/acl2/Manifest b/sci-mathematics/acl2/Manifest
index a03fdbdd6..b824d2c10 100644
--- a/sci-mathematics/acl2/Manifest
+++ b/sci-mathematics/acl2/Manifest
@@ -1 +1,2 @@
DIST acl2-8.3.tar.gz 116808616 BLAKE2B 77bba8c91231c2ae6ebae34ceeec9939101862156bfda4be2a0e3389f51cfdc183004d9cb3b27511a7494a9ead8ced5016f648a1712ab468c781dd8f8feca822 SHA512 92b59d1b31ce8d980bf043d02d4ee6ae36c69b3c2cc7be106e4d8f46e660a813e42f6e41a0903159ce65e9332dccb770cbd69472602889724f8ba724bfa301e2
+DIST acl2-8.4.tar.gz 202242463 BLAKE2B 887273910c7913d08455e5053a4c4d065743e0ba247f94f994a3400f27c97f8fce07debb145dbf26287c8b72e9335d995fcbc49f7085e17384b38035d260c8b8 SHA512 5a38271ffa9f9aad79d2aaf575144a58cf1b926b9ba3f9fb34af927862c95f6f683e870c9b453b2527abe8bdcd5603c6b5ad4c50b70c407606db78e0a79545bb
diff --git a/sci-mathematics/acl2/acl2-8.4.ebuild b/sci-mathematics/acl2/acl2-8.4.ebuild
new file mode 100644
index 000000000..d0bb4eade
--- /dev/null
+++ b/sci-mathematics/acl2/acl2-8.4.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit elisp-common
+
+DESCRIPTION="Industrial strength theorem prover"
+HOMEPAGE="https://www.cs.utexas.edu/users/moore/acl2/"
+SRC_URI="https://github.com/acl2/acl2/archive/${PV}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86"
+IUSE="books doc emacs"
+
+BDEPEND="
+ dev-lisp/sbcl
+ emacs? ( >=app-editors/emacs-23.1:* )
+"
+DEPEND="
+ dev-lisp/sbcl:=
+ books? ( dev-lang/perl )
+ doc? ( dev-lang/perl )
+"
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}"/${PN}-use_make_variable.patch )
+
+src_prepare() {
+ find . -type f -name "*.bak" -delete
+ find . -type f -name "*.orig" -delete
+ # Remove sparc binary inadvertently included in upstream
+ rm books/workshops/2003/schmaltz-al-sammane-et-al/support/acl2link || die
+ default
+}
+
+src_compile() {
+ emake LISP="sbcl --noinform --noprint \
+ --no-sysinit --no-userinit --disable-debugger"
+
+ if use books; then
+ emake "ACL2=${S}/saved_acl2" basic
+ fi
+
+ if use doc; then
+ emake "ACL2=${S}/saved_acl2" DOC
+ fi
+
+ if use emacs; then
+ elisp-compile emacs/*.el
+ fi
+}
+
+src_install() {
+ local SAVED_NAME=saved_acl2
+ sed -e "s:${S}:/usr/share/acl2:g" -i ${SAVED_NAME} || die
+ dobin ${SAVED_NAME}
+
+ insinto /usr/share/acl2
+ doins ${SAVED_NAME}.core
+ if use books; then
+ sed -e "/5/a export ACL2_SYSTEM_BOOKS=/usr/share/acl2/books/" \
+ -i ${SAVED_NAME} || die
+ doins -r books
+ fi
+
+ DOCS=( books/README.md )
+ if use doc; then
+ HTML_DOCS=( doc/HTML/. )
+ fi
+ einstalldocs
+
+ if use emacs; then
+ elisp-install ${PN} emacs/*{.el,elc}
+ doins TAGS
+ fi
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/sci-mathematics/acl2/files/acl2-use_make_variable.patch b/sci-mathematics/acl2/files/acl2-use_make_variable.patch
new file mode 100644
index 000000000..32e0f05da
--- /dev/null
+++ b/sci-mathematics/acl2/files/acl2-use_make_variable.patch
@@ -0,0 +1,13 @@
+use make variable to avoid QA issue: "make[1]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule"
+
+--- a/GNUmakefile
++++ b/GNUmakefile
+@@ -576,7 +576,7 @@ doc/home-page.html: doc/home-page.lisp
+ # xdoc::save that populates doc/manual/ (not under books/).
+ acl2-manual: check-books
+ rm -rf doc/manual books/system/doc/acl2-manual.cert
+- cd books ; make USE_QUICKLISP=1 system/doc/acl2-manual.cert
++ cd books ; $(MAKE) USE_QUICKLISP=1 system/doc/acl2-manual.cert
+ rm -rf doc/manual/download/*
+
+ # WARNING: The dependency list just below isn't complete, since it
diff --git a/sci-mathematics/acl2/metadata.xml b/sci-mathematics/acl2/metadata.xml
index 6035ff684..b3d826757 100644
--- a/sci-mathematics/acl2/metadata.xml
+++ b/sci-mathematics/acl2/metadata.xml
@@ -20,6 +20,6 @@
<flag name="books">build community books, the canonical collection of open-source libraries</flag>
</use>
<upstream>
- <remote-id type="github">acl2-devel/acl2-devel</remote-id>
+ <remote-id type="github">acl2/acl2</remote-id>
</upstream>
</pkgmetadata>