gnu: Add LibreOffice.

* gnu/packages/libreoffice.scm (xmlsec-src-libreoffice, libreoffice):
  New variables.

Co-authored-by: John Darrington <jmd@gnu.org>
This commit is contained in:
Andreas Enge 2015-05-29 23:49:19 +02:00
parent fb393cd881
commit 16c62e1fc4
1 changed files with 196 additions and 4 deletions

View File

@ -18,25 +18,51 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages libreoffice) (define-module (gnu packages libreoffice)
#:use-module (guix packages) #:use-module (guix build-system gnu)
#:use-module (guix download) #:use-module (guix download)
#:use-module ((guix licenses) #:use-module ((guix licenses)
#:select (gpl2+ lgpl2.1+ mpl1.1 mpl2.0 non-copyleft)) #:select (gpl2+ lgpl2.1+ mpl1.1 mpl2.0
#:use-module (guix build-system gnu) non-copyleft x11-style))
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost) #:use-module (gnu packages boost)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages cups)
#:use-module (gnu packages curl) #:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages databases)
#:use-module (gnu packages doxygen) #:use-module (gnu packages doxygen)
#:use-module (gnu packages flex)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages ghostscript) #:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gperf) #:use-module (gnu packages gperf)
#:use-module (gnu packages gnuzilla)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages icu4c) #:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
#:use-module (gnu packages java)
#:use-module (gnu packages linux)
#:use-module (gnu packages maths)
#:use-module (gnu packages openldap)
#:use-module (gnu packages openssl) #:use-module (gnu packages openssl)
#:use-module (gnu packages pdf)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages xml)) #:use-module (gnu packages rdf)
#:use-module (gnu packages scanner)
#:use-module (gnu packages version-control)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (gnu packages zip))
(define-public ixion (define-public ixion
(package (package
@ -632,3 +658,169 @@ data file and an index file with binary search to look up words and phrases
and to return information on pronunciations, meaningss and synonyms.") and to return information on pronunciations, meaningss and synonyms.")
(license (non-copyleft "file://COPYING" (license (non-copyleft "file://COPYING"
"See COPYING in the distribution.")))) "See COPYING in the distribution."))))
;; LibreOffice requires an xmlsec source tarball; it does not even check
;; for the presence of an externally compiled library.
(define xmlsec-src-libreoffice
(origin
(method url-fetch)
(uri
(string-append
"http://dev-www.libreoffice.org/src/"
"1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz"))
(sha256 (base32
"0jnxxygg6z5zi6za94dvxmg1bfar1wh8p5xa2bzbha0qcn2m02ir"))))
(define-public libreoffice
(package
(name "libreoffice")
(version "4.4.3.2")
(source
(origin
(method url-fetch)
(uri
(string-append
"http://download.documentfoundation.org/libreoffice/src/"
(version-prefix version 3) "/libreoffice-" version ".tar.xz"))
(sha256 (base32
"0rl9x01ngxwnqwzxkrqy4vks4rb024m75z0w4zidwyp0az0m8qdd"))))
(build-system gnu-build-system)
(native-inputs
`(;; autoreconf is run by the LibreOffice build system, since after
;; unpacking the external xmlsec tarball, it applies a series of
;; patches to Makefile.am, configure.in, config.guess and config.sub.
("autoconf" ,autoconf)
("automake" ,automake)
("bison" ,bison)
("cppunit" ,cppunit)
("flex" ,flex)
("pkg-config" ,pkg-config)
("python" ,python)
("which" ,which)))
(inputs
`(("bluez" ,bluez)
("boost" ,boost)
("clucene" ,clucene)
("cups" ,cups)
("dbus-glib" ,dbus-glib)
("fontconfig" ,fontconfig)
("gconf" ,gconf)
("glew" ,glew)
("glm" ,glm)
("gperf" ,gperf)
("graphite2" ,graphite2)
("gst-plugins-base" ,gst-plugins-base)
("gtk+" ,gtk+-2)
("harfbuzz" ,harfbuzz)
("hunspell" ,hunspell)
("hyphen" ,hyphen)
("libabw" ,libabw)
("libcdr" ,libcdr)
("libcmis" ,libcmis)
("libjpeg" ,libjpeg)
("libe-book" ,libe-book)
("libetonyek" ,libetonyek)
("libexttextcat" ,libexttextcat)
("libfreehand" ,libfreehand)
("libmspub" ,libmspub)
("libmwaw" ,libmwaw)
("libodfgen" ,libodfgen)
("libpagemaker" ,libpagemaker)
("libvisio" ,libvisio)
("libwpg" ,libwpg)
("libwps" ,libwps)
("libxrandr" ,libxrandr)
("libxrender" ,libxrender)
("libxslt" ,libxslt)
("libxt" ,libxt)
("lpsolve" ,lpsolve)
("mdds" ,mdds)
("mythes" ,mythes)
("neon" ,neon)
("nspr" ,nspr)
("nss" ,nss)
("openldap" ,openldap)
("openssl" ,openssl)
("orcus" ,orcus)
("perl" ,perl)
("perl-zip" ,perl-zip)
("poppler" ,poppler)
("postgresql" ,postgresql)
("python" ,python)
("redland" ,redland)
("sane-backends" ,sane-backends)
("unixodbc" ,unixodbc)
("unzip" ,unzip)
("vigra" ,vigra)
("xmlsec-src" ,xmlsec-src-libreoffice)
("zip" ,zip)))
(arguments
`(#:parallel-build? #f ; Otherwise the build fails.
#:tests? #f ; Building the tests already fails.
#:make-flags '("build-nocheck") ; Do not build unit tests, which fails.
#:phases
(modify-phases %standard-phases
(add-before 'configure 'prepare-src
(lambda* (#:key inputs #:allow-other-keys)
(let ((xmlsec (assoc-ref inputs "xmlsec-src")))
(substitute*
(list "sysui/CustomTarget_share.mk"
"solenv/gbuild/gbuild.mk"
"solenv/gbuild/platform/unxgcc.mk"
"external/libxmlsec/xmlsec1-oldlibtool.patch")
(("/bin/sh") (which "bash")))
(mkdir "external/tarballs")
(symlink
xmlsec
(string-append "external/tarballs/"
"1f24ab1d39f4a51faf22244c94a6203f-"
"xmlsec1-1.2.14.tar.gz"))
;; The following is required for building xmlsec from the
;; unpatched external tarball; since "configure" starts with
;; "/bin/sh", it needs to be executed by a command invoking
;; the shell.
(setenv "SHELL" (which "bash"))
(setenv "CONFIG_SHELL" (which "bash"))
(substitute* "external/libxmlsec/ExternalProject_xmlsec.mk"
(("./configure") "$(CONFIG_SHELL) ./configure" ))
#t)))
(add-after 'install 'bin-install
;; Create a symlink bin/soffice to the executable script.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(mkdir bin)
(symlink
(string-append out "/lib/libreoffice/program/soffice")
(string-append bin "/soffice")))
#t)))
#:configure-flags
(list
"--enable-release-build"
"--enable-verbose"
"--without-parallelism" ; otherwise the build fails
"--disable-fetch-external" ; disable downloads
"--with-system-libs" ; enable all --with-system-* flags
(string-append "--with-boost-libdir="
(assoc-ref %build-inputs "boost") "/lib")
;; Avoid a dependency on ucpp.
"--with-idlc-cpp=cpp"
;; The fonts require an external tarball (crosextrafonts).
;; They should not be needed when system fonts are available.
"--without-fonts"
;; With java, the build fails since sac.jar is missing.
"--without-java"
;; FIXME: Enable once the corresponding inputs are packaged.
"--without-system-npapi-headers"
"--disable-coinmp"
"--disable-firebird-sdbc" ; embedded firebird
"--disable-gltf"
"--disable-liblangtag")))
(home-page "https://www.libreoffice.org/")
(synopsis "Office suite")
(description "LibreOffice is a comprehensive office suite. It contains
a number of components: Writer, a word processor; Calc, a spreadsheet
application; Impress, a presentation engine; Draw, a drawing and
flowcharting application; Base, a database and database frontend;
Math for editing mathematics.")
(license mpl2.0)))