Github messages for voidlinux
 help / color / mirror / Atom feed
From: tornaria <tornaria@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: [PR PATCH] maxima: fix #34849 and #34861
Date: Thu, 06 Jan 2022 02:17:18 +0100	[thread overview]
Message-ID: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-34887@inbox.vuxu.org> (raw)

[-- Attachment #1: Type: text/plain, Size: 784 bytes --]

There is a new pull request by tornaria against master on the void-packages repository

https://github.com/tornaria/void-packages maxima
https://github.com/void-linux/void-packages/pull/34887

maxima: fix #34849 and #34861
 - patch maxima-sbcl so it uses gmp for arithmetic (closes #34849)
   also add libgmp to shlib_requires since it won't be detected
 - remove `nopie=yes` to fix #34861, replace by `nopie_files`
 - remove `nostrip=yes`, replace by `nostrip_files`
 - add checks for #34849 and #34861
 - run testsuite only for full check (not in CI)
 - some html and info files are shipped with source: do not rebuild

I based this on top of #34886 so `nostrip_files` works better.

A patch file from https://github.com/void-linux/void-packages/pull/34887.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-maxima-34887.patch --]
[-- Type: text/x-diff, Size: 5343 bytes --]

From 093a1fa78ac0c78ecf4d189d4fecabcdcb516fe1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Wed, 5 Jan 2022 20:59:20 -0300
Subject: [PATCH 1/2] nostrip_files: allow full path

The option `nostrip_files` takes a filename without path, in contrast to
option `nopie_files` which takes only full path.

This commit makes it so that `nostrip_files` can take either the
filename or the full path.
---
 common/hooks/post-install/06-strip-and-debug-pkgs.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/common/hooks/post-install/06-strip-and-debug-pkgs.sh b/common/hooks/post-install/06-strip-and-debug-pkgs.sh
index 2cec68412c50..191c025e552c 100644
--- a/common/hooks/post-install/06-strip-and-debug-pkgs.sh
+++ b/common/hooks/post-install/06-strip-and-debug-pkgs.sh
@@ -72,7 +72,7 @@ hook() {
 
 		fname=${f##*/}
 		for x in ${nostrip_files}; do
-			if [ "$x" = "$fname" ]; then
+			if [ "$x" = "$fname" -o "$x" = "${f#$PKGDESTDIR}" ]; then
 				found=1
 				break
 			fi

From c0bb839cd7c13cb13ffd5f9c7613e2e3ef3b031f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Wed, 5 Jan 2022 16:51:00 -0300
Subject: [PATCH 2/2] maxima: fix #34849 and #34861

 - patch maxima-sbcl so it uses gmp for arithmetic (closes #34849)
   also add libgmp to shlib_requires since it won't be detected
 - remove `nopie=yes` to fix #34861, replace by `nopie_files`
 - remove `nostrip=yes`, replace by `nostrip_files`
 - add checks for #34849 and #34861
 - run testsuite only for full check (not in CI)
 - some html and info files are shipped with source: do not rebuild
---
 .../maxima/patches/maxima-sbcl-with-gmp.patch | 19 +++++++
 srcpkgs/maxima/template                       | 52 ++++++++++++++++---
 2 files changed, 63 insertions(+), 8 deletions(-)
 create mode 100644 srcpkgs/maxima/patches/maxima-sbcl-with-gmp.patch

diff --git a/srcpkgs/maxima/patches/maxima-sbcl-with-gmp.patch b/srcpkgs/maxima/patches/maxima-sbcl-with-gmp.patch
new file mode 100644
index 000000000000..074631ea2ba0
--- /dev/null
+++ b/srcpkgs/maxima/patches/maxima-sbcl-with-gmp.patch
@@ -0,0 +1,19 @@
+Patch maxima initialization for sbcl so it uses gmp for arithmetic
+
+
+--- a/src/init-cl.lisp	2021-05-15 20:20:53.000000000 -0300
++++ b/src/init-cl.lisp	2022-01-04 17:45:03.838273626 -0300
+@@ -574,8 +574,13 @@
+ 			 (delete-file file)))))
+ 	   *temp-files-list*))
+ 
++#+sbcl
++(eval-when (:compile-toplevel :load-toplevel :execute)
++  (require 'sb-gmp))
++
+ (defun cl-user::run ()
+   "Run Maxima in its own package."
++  #+sbcl (sb-gmp:install-gmp-funs)
+   (in-package :maxima)
+   (initialize-runtime-globals)
+   (let ((input-stream *standard-input*)
diff --git a/srcpkgs/maxima/template b/srcpkgs/maxima/template
index 1a4bec0dba18..69af367ca11d 100644
--- a/srcpkgs/maxima/template
+++ b/srcpkgs/maxima/template
@@ -1,7 +1,7 @@
 # Template file for 'maxima'
 pkgname=maxima
 version=5.45.1
-revision=2
+revision=3
 build_style=gnu-configure
 configure_args="$(vopt_enable clisp) $(vopt_enable sbcl sbcl-exec) $(vopt_enable ecl)"
 hostmakedepends="python3 perl emacs texinfo patchelf"
@@ -15,8 +15,15 @@ homepage="http://maxima.sourceforge.net"
 distfiles="${SOURCEFORGE_SITE}/maxima/maxima-${version}.tar.gz"
 checksum=fe9016276970bef214a1a244348558644514d7fdfaa4fc8b9d0e87afcbb4e7dc
 
-nostrip=yes
-nopie=yes
+# maxima-sbcl is nopie and should NOT be stripped or it won't work
+nostrip_files=/usr/lib/maxima/$version/binary-sbcl/maxima
+nopie_files=/usr/lib/maxima/$version/binary-sbcl/maxima
+
+if [ "$build_option_sbcl" ]; then
+	# binary-sbcl/maxima uses libgmp but this won't show up in objdump
+	shlib_requires=libgmp.so.10
+fi
+
 build_options="clisp sbcl ecl"
 desc_option_clisp="Build with CLISP"
 desc_option_sbcl="Build with SBCL"
@@ -24,6 +31,14 @@ desc_option_ecl="Build with ECL"
 build_options_default="sbcl ecl"
 vopt_conflict clisp sbcl
 
+post_configure() {
+	# do not rebuild these files if they exist
+	touch -c doc/info/*.html
+	touch -c doc/info/maxima.info*
+	touch -c doc/info/maxima_toc.html
+	touch -c interfaces/xmaxima/doc/xmaxima.html
+}
+
 post_build() {
 	if [ "$build_option_ecl" ]; then
 		# everything will go in the same directory, use rpath=$ORIGIN
@@ -38,13 +53,34 @@ post_build() {
 
 do_check() {
 	if [ "$build_option_ecl" ]; then
-		echo "Check that maxima.fas works"
-		ecl --eval "(require 'maxima \"src/binary-ecl/maxima.fas\")" \
-			--eval "(quit)"
+		echo "maxima-ecl: check that maxima.fas works (#34273)"
+		ecl --eval '(require :maxima "src/binary-ecl/maxima.fas")' \
+		    --eval '(quit)'
+		echo PASS
+		echo "maxima-ecl: check that unlimited heap-size works (#34861)"
+		./maxima-local -q -l ecl --batch-string=":lisp \
+			(ext:set-limit 'ext:heap-size 0)
+			showtime : true $
+			a : 10^(10^5) $
+			b : a^600 $
+			c : a^600 $
+			"
+		echo PASS
+	fi
+	if [ "$build_option_sbcl" ]; then
+		echo "maxima-sbcl: check that long arithmetic is fast (#34849)"
+		timeout -v 30s ./maxima-local -q -l sbcl --batch-string="
+			showtime : true $
+			a : 10^(10^5) $
+			b : a^1000 $
+			"
+		echo PASS
 	fi
 
-	# now run the testsuite
-	make ${makejobs} check
+	if [ "$XBPS_CHECK_PKGS" = full ]; then
+		# run the testsuite for all versions enabled
+		make ${makejobs} check
+	fi
 }
 
 post_install() {

             reply	other threads:[~2022-01-06  1:17 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-06  1:17 tornaria [this message]
2022-01-06  1:38 ` [PR REVIEW] " abenson
2022-01-06  1:50 ` tornaria
2022-01-07 17:44 ` tornaria
2022-01-10 12:14 ` [PR PATCH] [Updated] " tornaria
2022-01-10 12:22 ` tornaria
2022-01-11 15:55 ` [PR PATCH] [Merged]: " leahneukirchen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-34887@inbox.vuxu.org \
    --to=tornaria@users.noreply.github.com \
    --cc=ml@inbox.vuxu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).