diff --git a/gnu/local.mk b/gnu/local.mk index b0196c7313..26d2369a5a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -901,6 +901,7 @@ dist_patch_DATA = \ %D%/packages/patches/luminance-hdr-qt-printer.patch \ %D%/packages/patches/lvm2-static-link.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/make-impure-dirs.patch \ %D%/packages/patches/mars-install.patch \ diff --git a/gnu/packages/patches/lyx-2.2.3-fix-test.patch b/gnu/packages/patches/lyx-2.2.3-fix-test.patch new file mode 100644 index 0000000000..10b7d2a3a9 --- /dev/null +++ b/gnu/packages/patches/lyx-2.2.3-fix-test.patch @@ -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 diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 266e42d5aa..c8ea45aee4 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2017 Leo Famulari ;;; Copyright © 2017 Marius Bakke ;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2018 Danny Milosavljevic ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,6 +31,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system perl) #:use-module (guix build-system trivial) @@ -38,8 +40,10 @@ #:use-module (guix git-download) #:use-module (guix svn-download) #:use-module (gnu packages) + #:use-module (gnu packages algebra) #:use-module (gnu packages autotools) #:use-module (gnu packages bash) + #:use-module (gnu packages boost) #:use-module (gnu packages compression) #:use-module (gnu packages fontutils) #:use-module (gnu packages gd) @@ -47,6 +51,7 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) + #:use-module (gnu packages libreoffice) #:use-module (gnu packages lua) #:use-module (gnu packages multiprecision) #: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, and Karl Berry.") (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+)))