diff --git a/pkgs/by-name/ma/maxima/5.47.0-CVE-2024-34490.patch b/pkgs/by-name/ma/maxima/5.47.0-CVE-2024-34490.patch deleted file mode 100644 index 008fe725fa89..000000000000 --- a/pkgs/by-name/ma/maxima/5.47.0-CVE-2024-34490.patch +++ /dev/null @@ -1,86 +0,0 @@ -Based on upstream https://sourceforge.net/p/maxima/code/ci/51704ccb090f6f971b641e4e0b7c1c22c4828bf7/ -adjusted to apply to 5.47.0 - -diff --git a/src/gnuplot_def.lisp b/src/gnuplot_def.lisp -index 80c174bd5..6fdc8da6d 100644 ---- a/src/gnuplot_def.lisp -+++ b/src/gnuplot_def.lisp -@@ -286,7 +286,7 @@ - (format nil "set term postscript eps color solid lw 2 size 16.4 cm, 12.3 cm font \",24\" ~a" gstrings))) - (if (getf plot-options :gnuplot_out_file) - (setq out-file (getf plot-options :gnuplot_out_file)) -- (setq out-file "maxplot.ps"))) -+ (setq out-file (format nil "~a.ps" (random-name 16))))) - ((eq (getf plot-options :gnuplot_term) '$dumb) - (if (getf plot-options :gnuplot_dumb_term_command) - (setq terminal-command -@@ -294,7 +294,7 @@ - (setq terminal-command "set term dumb 79 22")) - (if (getf plot-options :gnuplot_out_file) - (setq out-file (getf plot-options :gnuplot_out_file)) -- (setq out-file "maxplot.txt"))) -+ (setq out-file (format nil "~a.txt" (random-name 16))))) - ((eq (getf plot-options :gnuplot_term) '$default) - (if (getf plot-options :gnuplot_default_term_command) - (setq terminal-command -diff --git a/src/plot.lisp b/src/plot.lisp -index fb2b3136b..8877f7025 100644 ---- a/src/plot.lisp -+++ b/src/plot.lisp -@@ -1755,16 +1755,24 @@ plot3d([cos(y)*(10.0+6*cos(x)), sin(y)*(10.0+6*cos(x)),-6*sin(x)], - - (defvar $xmaxima_plot_command "xmaxima") - -+;; random-file-name -+;; Creates a random word of 'count' alphanumeric characters -+(defun random-name (count) -+ (let ((chars "0123456789abcdefghijklmnopqrstuvwxyz") (name "")) -+ (setf *random-state* (make-random-state t)) -+ (dotimes (i count) -+ (setq name (format nil "~a~a" name (aref chars (random 36))))) -+ name)) -+ - (defun plot-set-gnuplot-script-file-name (options) - (let ((gnuplot-term (getf options :gnuplot_term)) - (gnuplot-out-file (getf options :gnuplot_out_file))) - (if (and (find (getf options :plot_format) '($gnuplot_pipes $gnuplot)) - (eq gnuplot-term '$default) gnuplot-out-file) - (plot-file-path gnuplot-out-file t options) -- (plot-file-path -- (format nil "maxout~d.~(~a~)" -- (getpid) -- (ensure-string (getf options :plot_format))) nil options)))) -+ (plot-file-path (format nil "~a.~a" (random-name 16) -+ (ensure-string (getf options :plot_format))) -+ nil options)))) - - (defun plot-temp-file0 (file &optional (preserve-file nil)) - (let ((filename -@@ -2577,9 +2585,13 @@ plot2d ( x^2+y^2 = 1, [x, -2, 2], [y, -2 ,2]); - (format dest "}~%")) - (format dest "}~%")) - -+; TODO: Check whether this function is still being used (villate 20240325) - (defun show-open-plot (ans file) - (cond ($show_openplot -- (with-open-file (st1 (plot-temp-file (format nil "maxout~d.xmaxima" (getpid))) :direction :output :if-exists :supersede) -+ (with-open-file -+ (st1 (plot-temp-file -+ (format nil "~a.xmaxima" (random-name 16))) -+ :direction :output :if-exists :supersede) - (princ ans st1)) - ($system (concatenate 'string *maxima-prefix* - (if (string= *autoconf-windows* "true") "\\bin\\" "/bin/") -diff --git a/src/xmaxima_def.lisp b/src/xmaxima_def.lisp -index b6513b564..5a13b6141 100644 ---- a/src/xmaxima_def.lisp -+++ b/src/xmaxima_def.lisp -@@ -431,7 +431,7 @@ - (format $pstream "}~%")))))) - - (defmethod plot-shipout ((plot xmaxima-plot) options &optional output-file) -- (let ((file (plot-file-path (format nil "maxout~d.xmaxima" (getpid))))) -+ (let ((file (plot-file-path (format nil "~a.xmaxima" (random-name 16))))) - (cond ($show_openplot - (with-open-file (fl - #+sbcl (sb-ext:native-namestring file) diff --git a/pkgs/by-name/ma/maxima/package.nix b/pkgs/by-name/ma/maxima/package.nix index ab65bdd92b12..da81ca504201 100644 --- a/pkgs/by-name/ma/maxima/package.nix +++ b/pkgs/by-name/ma/maxima/package.nix @@ -28,11 +28,11 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "maxima"; - version = "5.47.0"; + version = "5.49.0"; src = fetchurl { url = "mirror://sourceforge/maxima/maxima-${finalAttrs.version}.tar.gz"; - sha256 = "sha256-kQQCGyT9U+jAOpg1CctC6TepJejAyFwzXXcJoU/UD3o="; + hash = "sha256-bUAaSqMHzTpanK3KT6lsTvDiT/laGLtqj4A+PSEUre4="; }; nativeBuildInputs = [ @@ -85,8 +85,6 @@ stdenv.mkDerivation (finalAttrs: { url = "https://raw.githubusercontent.com/sagemath/sage/07d6c37d18811e2b377a9689790a7c5e24da16ba/build/pkgs/maxima/patches/undoing_true_false_printing_patch.patch"; sha256 = "0fvi3rcjv6743sqsbgdzazy9jb6r1p1yq63zyj9fx42wd1hgf7yx"; }) - - ./5.47.0-CVE-2024-34490.patch ]; # The test suite is disabled since 5.42.2 because of the following issues: @@ -110,6 +108,7 @@ stdenv.mkDerivation (finalAttrs: { }; meta = { + changelog = "https://sourceforge.net/p/maxima/code/ci/master/tree/changelogs/ChangeLog-${lib.versions.majorMinor finalAttrs.version}.md"; description = "Computer algebra system"; homepage = "http://maxima.sourceforge.net"; license = lib.licenses.gpl2Plus; diff --git a/pkgs/by-name/sa/sage/sage-src.nix b/pkgs/by-name/sa/sage/sage-src.nix index 28449d48f066..eae82d4c9d6e 100644 --- a/pkgs/by-name/sa/sage/sage-src.nix +++ b/pkgs/by-name/sa/sage/sage-src.nix @@ -99,6 +99,13 @@ stdenv.mkDerivation rec { url = "https://github.com/sagemath/sage/commit/f1cf1552c2c7636fa069fbc47c5bfc937753f7b2.patch?full_index=1"; hash = "sha256-Z3SU6cSCnnaTZLcTh0LNb672HyBqhBd6+iYUEeK1cGQ="; }) + + # https://github.com/sagemath/sage/pull/40679, rebased by void linux + (fetchpatch2 { + name = "maxima-5.49-update.patch"; + url = "https://raw.githubusercontent.com/void-linux/void-packages/f8951eacbdc6538af3330d17d5587a0c208ab349/srcpkgs/sagemath/patches/40679-Update_to_maxima_5.49.patch"; + hash = "sha256-n6YSVNomLM7f5kRAGzhijag8QnlXxKJz9RHFLVtZpdk="; + }) ]; patches = nixPatches ++ bugfixPatches ++ packageUpgradePatches;