gnu: Add lyx.

* gnu/packages/patches/lyx-2.2.3-fix-test.patch: New file.
* gnu/local.mk: Add it.
* gnu/packages/tex.scm (lyx): New variable.
This commit is contained in:
Danny Milosavljevic 2018-03-13 03:20:53 +01:00
parent 282e48eae9
commit ec40a0501f
No known key found for this signature in database
GPG Key ID: E71A35542C30BAA5
3 changed files with 106 additions and 0 deletions

View File

@ -901,6 +901,7 @@ dist_patch_DATA = \
%D%/packages/patches/luminance-hdr-qt-printer.patch \ %D%/packages/patches/luminance-hdr-qt-printer.patch \
%D%/packages/patches/lvm2-static-link.patch \ %D%/packages/patches/lvm2-static-link.patch \
%D%/packages/patches/lxsession-use-gapplication.patch \ %D%/packages/patches/lxsession-use-gapplication.patch \
%D%/packages/patches/lyx-2.2.3-fix-test.patch \
%D%/packages/patches/mailutils-uninitialized-memory.patch \ %D%/packages/patches/mailutils-uninitialized-memory.patch \
%D%/packages/patches/make-impure-dirs.patch \ %D%/packages/patches/make-impure-dirs.patch \
%D%/packages/patches/mars-install.patch \ %D%/packages/patches/mars-install.patch \

View File

@ -0,0 +1,13 @@
See https://www.lyx.org/trac/ticket/10800#comment:17
diff --git a/src/tex2lyx/test/test-structure.lyx.lyx b/src/tex2lyx/test/test-structure.lyx.lyx
index feff755cd2..2c7f2ace5c 100644
--- a/src/tex2lyx/test/test-structure.lyx.lyx
+++ b/src/tex2lyx/test/test-structure.lyx.lyx
@@ -212,7 +212,7 @@ This causes the
\begin_inset Flex Flex:Strong
status collapsed
-\begin_layout Standard
+\begin_layout Plain Layout
logikalmkup
\end_layout

View File

@ -10,6 +10,7 @@
;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Danny Milosavljevic <dannym+a@scratchpost.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -30,6 +31,7 @@
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system perl) #:use-module (guix build-system perl)
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
@ -38,8 +40,10 @@
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix svn-download) #:use-module (guix svn-download)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module (gnu packages boost)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages fontutils) #:use-module (gnu packages fontutils)
#:use-module (gnu packages gd) #:use-module (gnu packages gd)
@ -47,6 +51,7 @@
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages icu4c) #:use-module (gnu packages icu4c)
#:use-module (gnu packages image) #:use-module (gnu packages image)
#:use-module (gnu packages libreoffice)
#:use-module (gnu packages lua) #:use-module (gnu packages lua)
#:use-module (gnu packages multiprecision) #:use-module (gnu packages multiprecision)
#:use-module (gnu packages pdf) #:use-module (gnu packages pdf)
@ -4263,3 +4268,90 @@ develop documents with LaTeX, in a single application.")
plain TeX, and Eplain, originally written by Paul Abrahams, Kathryn Hargreaves, plain TeX, and Eplain, originally written by Paul Abrahams, Kathryn Hargreaves,
and Karl Berry.") and Karl Berry.")
(license license:fdl1.3+))) (license license:fdl1.3+)))
(define-public lyx
(package
(name "lyx")
(version "2.2.3")
(source (origin
(method url-fetch)
(uri (string-append "http://ftp.lyx.org/pub/lyx/stable/2.2.x/"
name "-" version ".tar.gz"))
(sha256
(base32
"0xvaz0i371nn2ndinc0d3ywj76ivb62649a4sdgwbivisiahd2fj"))
(patches (search-patches "lyx-2.2.3-fix-test.patch"))
(modules '((guix build utils)))
(snippet
'(begin
(delete-file-recursively "3rdparty")
#t))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags `("-DLYX_USE_QT=QT5"
"-DLYX_EXTERNAL_BOOST=1"
"-DLYX_INSTALL=1"
"-DLYX_RELEASE=1"
,(string-append "-DLYX_INSTALL_PREFIX="
(assoc-ref %outputs "out")
;; Exact name and level is necessary.
"/lyx2.2"))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-python
(lambda* (#:key inputs #:allow-other-keys)
(substitute* '("src/support/os.cpp")
(("\"python ")
(string-append "\""
(assoc-ref inputs "python-2")
"/bin/python ")))
#t))
(add-after 'patch-python 'patch-installer
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "CMakeLists.txt"
(("/usr/local/man/man1")
(string-append (assoc-ref outputs "out")
"/share/man/man1")))
#t))
(add-after 'patch-python 'patch-desktop-file
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "lib/lyx.desktop.in"
(("Exec=")
(string-append "Exec="
(assoc-ref outputs "out")
"/")))
#t))
(add-before 'check 'setenv-check
(lambda _
(setenv "LYX_DIR_22x" (string-append (getcwd) "/../lyx-"
,version "/lib"))
#t))
(add-after 'install 'install-symlinks
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(mkdir-p (string-append out "/bin"))
(symlink "../lyx2.2/bin/lyx2.2"
(string-append out "/bin/lyx2.2"))
#t))))))
(inputs
`(("boost" ,boost)
("hunspell" ,hunspell) ; Note: Could also use aspell instead.
("libx11" ,libx11)
("python-2" ,python-2)
("qtbase" ,qtbase)
("qtsvg" ,qtsvg)
("zlib" ,zlib)))
(propagated-inputs
`(("texlive" ,texlive))) ; article.cls is in texmf-dist.
(native-inputs
`(("python-2" ,python-2)
("pkg-config" ,pkg-config)
("bc" ,bc)))
(home-page "http://www.lyx.org/")
(synopsis "Document preparation system with GUI")
(description "LyX is a document preparation system. It excels at letting
you create complex technical and scientific articles with mathematics,
cross-references, bibliographies, indexes, etc. It is very good for working
with documents of any length in which the usual processing abilities are
required: automatic sectioning and pagination, spell checking and so forth.")
(license license:gpl2+)))