From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38995) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dHajx-0008NF-LB for guix-patches@gnu.org; Sun, 04 Jun 2017 14:59:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dHaju-00076q-Hb for guix-patches@gnu.org; Sun, 04 Jun 2017 14:59:05 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:53436) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dHaju-00076k-DX for guix-patches@gnu.org; Sun, 04 Jun 2017 14:59:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1dHaju-0006Jz-3a for guix-patches@gnu.org; Sun, 04 Jun 2017 14:59:02 -0400 Subject: bug#27049: [PATCH 2/2] gnu: Add js-mathjax. Resent-Message-ID: Message-Id: <88a929ca.AEQALLKfIdIAAAAAAAAAAAPEb_oAAAACwQwAAAAAAAW9WABZNFgw@mailjet.com> MIME-Version: 1.0 From: Arun Isaac Date: Mon, 05 Jun 2017 00:27:39 +0530 In-reply-to: <87zidpkwih.fsf@gnu.org> References: <20170602203308.7606-1-arunisaac@systemreboot.net> <846e49f4.AEUAKzpfUbYAAAAAAAAAAAPEb_oAAAACwQwAAAAAAAW9WABZMcuW@mailjet.com> <87zidpkwih.fsf@gnu.org> Content-Type: multipart/mixed; boundary="=-=-=" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 27049@debbugs.gnu.org --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable I've made all suggested changes. Please find attached a new patchset. = --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline; filename=mathjax-series.patch Content-Transfer-Encoding: 8bit >From 7d843968b04960c93b7238cb4557064d03ef4f84 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Sat, 3 Jun 2017 01:42:15 +0530 Subject: [PATCH 1/2] gnu: Add font-mathjax. * gnu/packages/fonts.scm (font-mathjax): New variable. --- gnu/packages/fonts.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 73d76a461..59e60dc29 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2017 Alex Griffin ;;; Copyright © 2017 Clément Lassieur ;;; Copyright © 2017 Brendan Tildesley +;;; Copyright © 2017 Arun Isaac ;;; ;;; This file is part of GNU Guix. ;;; @@ -1227,3 +1228,42 @@ Ensuring readability and clarity at both large and small sizes, these icons have been optimized for beautiful display on all common platforms and display resolutions.") (license license:asl2.0))) + +(define-public font-mathjax + (package + (name "font-mathjax") + (version "2.7.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/mathjax/MathJax/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0sbib5lk0jrvbq6s72ag6ss3wjlz5wnk07ddxij1kp96yg3c1d1b")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils) + (ice-9 match)) + (set-path-environment-variable + "PATH" '("bin") (map (match-lambda + ((_ . input) + input)) + %build-inputs)) + (let ((install-directory (string-append %output "/share/fonts/mathjax"))) + (mkdir-p install-directory) + (zero? (system* "tar" "-C" install-directory "-xvf" + (assoc-ref %build-inputs "source") + "MathJax-2.7.1/fonts" "--strip" "2")))))) + (native-inputs + `(("gzip" ,gzip) + ("tar" ,tar))) + (home-page "https://www.mathjax.org/") + (synopsis "Fonts for MathJax") + (description "This package contains the fonts required for MathJax.") + (license license:asl2.0))) -- 2.12.2 >From 01850ce06c0a55677266bae865a3c16e4f710094 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Sat, 3 Jun 2017 01:57:51 +0530 Subject: [PATCH 2/2] gnu: Add js-mathjax. * gnu/packages/javascript.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * gnu/packages/javascript.scm (js-mathjax): New variable. --- gnu/local.mk | 1 + gnu/packages/javascript.scm | 85 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 gnu/packages/javascript.scm diff --git a/gnu/local.mk b/gnu/local.mk index 0449e8adc..0ab215971 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -208,6 +208,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/irc.scm \ %D%/packages/iso-codes.scm \ %D%/packages/java.scm \ + %D%/packages/javascript.scm \ %D%/packages/jemalloc.scm \ %D%/packages/jrnl.scm \ %D%/packages/julia.scm \ diff --git a/gnu/packages/javascript.scm b/gnu/packages/javascript.scm new file mode 100644 index 000000000..6746ad1d2 --- /dev/null +++ b/gnu/packages/javascript.scm @@ -0,0 +1,85 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Arun Isaac +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages javascript) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages) + #:use-module (gnu packages base) + #:use-module (gnu packages compression) + #:use-module (gnu packages fonts) + #:use-module (gnu packages lisp) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system trivial)) + +(define-public js-mathjax + (package + (inherit font-mathjax) + (name "js-mathjax") + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils) + (ice-9 match) + (ice-9 popen) + (ice-9 regex)) + (set-path-environment-variable + "PATH" '("bin") (map (match-lambda + ((_ . input) + input)) + %build-inputs)) + (set-path-environment-variable + "GUIX_LOCPATH" '("lib/locale") + (list (assoc-ref %build-inputs "glibc-utf8-locales"))) + (setenv "LANG" "en_US.UTF-8") + (let ((install-directory (string-append %output "/share/javascript/mathjax"))) + (system* "tar" "xvf" (assoc-ref %build-inputs "source") + "MathJax-2.7.1/unpacked" "--strip" "2") + (mkdir-p install-directory) + (symlink (string-append (assoc-ref %build-inputs "font-mathjax") + "/share/fonts/mathjax") + (string-append install-directory "/fonts")) + + (for-each + (lambda (file) + (let ((installed (string-append install-directory + ;; remove prefix "." + (string-drop file 1)))) + (format #t "~a -> ~a~%" file installed) + (cond + ((string-match "\\.js$" file) + (mkdir-p (dirname installed)) + (let ((minified (open-pipe* OPEN_READ "uglify-js" file))) + (call-with-output-file installed + (lambda (port) + (dump-port minified port))))) + (else + (install-file file (dirname installed)))))) + (find-files ".")))))) + (native-inputs + `(("font-mathjax" ,font-mathjax) + ("glibc-utf8-locales" ,glibc-utf8-locales) + ("uglify-js" ,uglify-js) + ,@(package-native-inputs font-mathjax))) + (synopsis "JavaScript display engine for LaTeX, MathML, and AsciiMath") + (description "MathJax is a JavaScript display engine for LaTeX, MathML, +and AsciiMath notation that works in all modern browsers. It requires no +plugins or software to be installed on the browser. So the page author can +write web documents that include mathematics and be confident that readers will +be able to view it naturally and easily."))) -- 2.12.2 --=-=-=--