Package: guix-patches;
Reported by: Arun Isaac <arunisaac <at> systemreboot.net>
Date: Tue, 23 May 2017 21:44:01 UTC
Severity: normal
Tags: patch
Done: Arun Isaac <arunisaac <at> systemreboot.net>
Bug is archived. No further changes may be made.
Message #71 received at 27049 <at> debbugs.gnu.org (full text, mbox):
From: Arun Isaac <arunisaac <at> systemreboot.net> To: Ludovic Courtès <ludo <at> gnu.org> Cc: 27049 <at> debbugs.gnu.org Subject: Re: bug#27049: [PATCH 2/2] gnu: Add js-mathjax. Date: Mon, 05 Jun 2017 00:27:39 +0530
[Message part 1 (text/plain, inline)]
I've made all suggested changes. Please find attached a new patchset.
[mathjax-series.patch (text/x-patch, inline)]
From 7d843968b04960c93b7238cb4557064d03ef4f84 Mon Sep 17 00:00:00 2001 From: Arun Isaac <arunisaac <at> systemreboot.net> 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 <a <at> ajgrf.com> ;;; Copyright © 2017 Clément Lassieur <clement <at> lassieur.org> ;;; Copyright © 2017 Brendan Tildesley <brendan.tildesley <at> openmailbox.org> +;;; Copyright © 2017 Arun Isaac <arunisaac <at> systemreboot.net> ;;; ;;; 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 <arunisaac <at> systemreboot.net> 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 <arunisaac <at> systemreboot.net> +;;; +;;; 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 <http://www.gnu.org/licenses/>. + +(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
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.