From patchwork Wed Oct 18 12:54:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Nigko Yerden X-Patchwork-Id: 54973 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id C410627BBE9; Wed, 18 Oct 2023 13:57:00 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id DF7C127BBE2 for ; Wed, 18 Oct 2023 13:56:55 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qt66M-0002v1-Ao; Wed, 18 Oct 2023 08:56:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qt66J-0002uq-Ua for guix-patches@gnu.org; Wed, 18 Oct 2023 08:56:39 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qt66J-0005qh-La for guix-patches@gnu.org; Wed, 18 Oct 2023 08:56:39 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qt66g-0007PQ-3x; Wed, 18 Oct 2023 08:57:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#64345] [PATCH v3] gnu: Add reduce-csl. References: <87a63626656b03bea4fca6a8d969007076ea9310.1688017118.git.nigko.yerden@gmail.com> In-Reply-To: <87a63626656b03bea4fca6a8d969007076ea9310.1688017118.git.nigko.yerden@gmail.com> Resent-From: Nigko Yerden Original-Sender: "Debbugs-submit" Resent-CC: andreas@enge.fr, efraim@flashner.co.il, bavier@posteo.net, guix-patches@gnu.org Resent-Date: Wed, 18 Oct 2023 12:57:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64345 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 64345@debbugs.gnu.org Cc: Nigko Yerden , Andreas Enge , Efraim Flashner , Eric Bavier X-Debbugs-Original-Xcc: Andreas Enge , Efraim Flashner , Eric Bavier Received: via spool by 64345-submit@debbugs.gnu.org id=B64345.169763377728424 (code B ref 64345); Wed, 18 Oct 2023 12:57:02 +0000 Received: (at 64345) by debbugs.gnu.org; 18 Oct 2023 12:56:17 +0000 Received: from localhost ([127.0.0.1]:33431 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qt65v-0007OM-LG for submit@debbugs.gnu.org; Wed, 18 Oct 2023 08:56:17 -0400 Received: from mail-lf1-x142.google.com ([2a00:1450:4864:20::142]:52511) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qt65s-0007O6-2x for 64345@debbugs.gnu.org; Wed, 18 Oct 2023 08:56:14 -0400 Received: by mail-lf1-x142.google.com with SMTP id 2adb3069b0e04-507bd64814fso2603044e87.1 for <64345@debbugs.gnu.org>; Wed, 18 Oct 2023 05:55:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697633739; x=1698238539; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=qb1zxa/QVY/gMxUguP/8bSOCuXUHEaHiJJmsJ3UjhS0=; b=OHmCiokQsdR8oVXu2cOpPyBzotZ3L0uPxPvNM8TDvetXHfIwbUvtoI8m1owonaU29q Hp/EccGXnFXerWeoOEKnx7bbCeCbQ+T1imIAe2w3h7XdkVva9ALp2QxQ3lWETjBbfdbL 6S9wgYm5Z4IBhH5gzKkUliQjDRN8ZN8BzG3XEOHhC7mXSuLBeL+Vj592FW76mEe0XI8r s/pW+NZHaylc0MGJKto/M0CkQFmQ6z257lpFzdhaielvWfXOqjnMhxLLCX0ZpMuCmaqS 2lkI+uXBu9tMjqNZH/phIHGVv6UF3RrOyEopNpKsVd0K+ksDic3u4g9g5Xna7KjvBuMH HhGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697633739; x=1698238539; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=qb1zxa/QVY/gMxUguP/8bSOCuXUHEaHiJJmsJ3UjhS0=; b=LMJF8e32RBw6/1qwxyDgiOE9kbSL/0EHXVIJ2IpL43gzQVstUHlPEbTSQZ6fa2X7Mp HzrCgFrdk5w/5o0vp55XxyCbhbx6AoizMFYOzTTCasua9LUd0AJb/8s3i5mP4fU5vNyb 0zDU9YdcxPcjcK6aJVZ2AjiRhAt4Xm+zr60Gl2bslsGRy/huaVywdoGr7TbBS9TzA1rh QgAEU7bUwXXtHHsEON3Xnp1wZgrm6Hhcp9CfQW+n6Tb/zDeeGe/SoNZsIZCwjjKdch9F kPhXD4H7aX2f4vI6bf+2AIckr4w+aZx1ywJ0Wsr5eRR+L7Lfg/XC16n2PylTiVjt9iQd pTCw== X-Gm-Message-State: AOJu0YylSHEV63H78K2vbCQsr9TYSdD3XdpvifE81x2V2OuYHyR5pc6I 9ggOQS+WqTpN2BnUt/lkgjYU24jmJ7JCWg== X-Google-Smtp-Source: AGHT+IH0WwLrNavrS/79FhBcOaLYk7b2rMWr6TR7HM0RH4WFWuMY3H7ZAGknoIZmGQjWWMNVcX+XNw== X-Received: by 2002:a19:f015:0:b0:507:a8cd:6c90 with SMTP id p21-20020a19f015000000b00507a8cd6c90mr3963573lfc.51.1697633738912; Wed, 18 Oct 2023 05:55:38 -0700 (PDT) Received: from localhost.localdomain ([188.68.131.75]) by smtp.gmail.com with ESMTPSA id bp41-20020a05651215a900b004f86d3e52c0sm688546lfb.4.2023.10.18.05.55.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Oct 2023 05:55:38 -0700 (PDT) From: Nigko Yerden Date: Wed, 18 Oct 2023 17:54:03 +0500 Message-ID: X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/packages/maths.scm (reduce-csl): New variable. --- This patch introduces Reduce, a general purpose computer algebra system similar to Maxima. The package is built successfully on x86_64_linux (natively), armhf-linux and aarch64-linux (via 'guix build --system=...' command) architectures. Reduce became build-reproducible since the upstream revision 6601, but the current "stable" snapshot 6547 is not reproducible. The source code contains bundled fox and editline libraries as well as their adjustments, which are difficult to remove. Also it contains libffi (can be replaced by libffi from guix repo), crlibm and softfloat (currently are not present in guix repo) libraries. gnu/packages/maths.scm | 107 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) base-commit: 1076f32111e512ed437f135c9eb6ce2daaafd623 diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 683acd96e1..89127c9e0e 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -62,6 +62,7 @@ ;;; Copyright © 2023 Jake Leporte ;;; Copyright © 2023 Camilo Q.S. (Distopico) ;;; Copyright © 2023 David Elsing +;;; Copyright © 2023 Nigko Yerden ;;; ;;; This file is part of GNU Guix. ;;; @@ -4761,6 +4762,112 @@ (define-public wxmaxima full text searching.") (license license:gpl2+))) +(define-public reduce-csl + (package + (name "reduce-csl") + (version "6547") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/reduce-algebra/snapshot_" + "2023-03-08" "/Reduce-svn" version "-src.tar.gz")) + (sha256 + (base32 + "1a559s4ff5askifyha6fi8qvxjkya1n3ziypig2rgi6q62nbx418")) + (modules '((guix build utils))) + ;; remove binaries and unnecessary parts + ;; to ensure we build from source files only + (snippet '(map delete-file-recursively + (append (find-files "csl/generated-c" "\\.img$") + '("psl" "vsl" + "jlisp" + "jslisp" + "libedit" + "macbuild" + "MacPorts" + "mac-universal" + "reduce2" + "winbuild64" + "common-lisp" + "contrib" + "generic/qreduce" + "web/htdocs/images/Thumbs.db") + (find-files "csl" + "^(embedded|new-embedded|winbuild|support-packages)$" + #:directories? #t) + (find-files "libraries" + "^(original|wineditline|libffi-for-mac)$" + #:directories? #t)))))) + (build-system gnu-build-system) + (arguments + (list #:tests? #f + #:configure-flags + #~(list "--without-autogen" + ;; fix conflict with internal build name determination + "--build=" "--with-csl" + (string-append "CXXFLAGS=-I" + #$freetype + "/include/freetype2")) + #:make-flags #~(list "csl") + #:phases #~(modify-phases %standard-phases + (add-before 'patch-source-shebangs 'autogen + (lambda _ + (invoke "sh" "autogen.sh"))) + (add-after 'install 'fix-install + (lambda _ + (delete-file-recursively (string-append #$output + "/man")) + (delete-file (string-append #$output "/share/man")) + (copy-file "bin/rfcsl" + (string-append #$output "/bin/rfcsl")) + (let ((.desktop-file + "debianbuild/reduce/debian/redcsl.desktop") + (icon "debianbuild/reduce/debian/reduce.png")) + (substitute* .desktop-file + (("Exec=/.*/(redcsl[ \t]+.*)" _ exec) + (string-append "Exec=" exec))) + (install-file .desktop-file + (string-append #$output + "/share/applications")) + (install-file icon + (string-append #$output + "/share/icons/hicolor/32x32/apps"))) + (rename-file "generic/newfront/redfront.1" + "generic/newfront/rfcsl.1") + (map (lambda (file) + (invoke "gzip" file) + (install-file (string-append file ".gz") + (string-append #$output + "/share/man/man1"))) + '("csl/cslbase/redcsl.1" + "generic/newfront/rfcsl.1")) + (with-directory-excursion #$output + (map (lambda (dir) + (map (lambda (file) + (chmod file #o444)) + (find-files dir))) + '("share/man/man1" "share/doc/reduce" + "share/reduce/fonts")))))))) + (native-inputs (list which autoconf automake libtool)) + (inputs + ;; bundled libraries: fox (adjusted) editline (adjusted) + ;; libffi crlibm softfloat + (list ncurses freetype libxft libx11 libxext)) + (synopsis "Portable general-purpose computer algebra system") + (description + "REDUCE is a portable general-purpose computer algebra system. It is a +system for doing scalar, vector and matrix algebra by computer, which also +supports arbitrary precision numerical approximation and interfaces to gnuplot +to provide graphics. It can be used interactively for simple calculations but +also provides a full programming language, with a syntax similar to other +modern programming languages. REDUCE supports alternative user interfaces +including Run-REDUCE, TeXmacs and GNU Emacs. This package provides Codemist +Standard Lisp (CSL) version of REDUCE. It uses gnuplot program, if installed, +to make figures.") + (home-page "https://reduce-algebra.sourceforge.io/") + (license (license:non-copyleft "file://README" + "See README in the deistribution.")))) + (define-public armadillo (package (name "armadillo")