summaryrefslogtreecommitdiff
path: root/gnu/packages/libreoffice.scm
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2023-01-30 11:33:18 +0200
committerEfraim Flashner <efraim@flashner.co.il>2023-01-30 12:39:40 +0200
commit4cf1acc7f3033b50b0bf19e02c9f522d522d338c (patch)
tree9fd64956ee60304c15387eb394cd649e49f01467 /gnu/packages/libreoffice.scm
parentedb8c09addd186d9538d43b12af74d6c7aeea082 (diff)
parent595b53b74e3ef57a1c0c96108ba86d38a170a241 (diff)
Merge remote-tracking branch 'origin/master' into core-updates
Conflicts: doc/guix.texi gnu/local.mk gnu/packages/admin.scm gnu/packages/base.scm gnu/packages/chromium.scm gnu/packages/compression.scm gnu/packages/databases.scm gnu/packages/diffoscope.scm gnu/packages/freedesktop.scm gnu/packages/gnome.scm gnu/packages/gnupg.scm gnu/packages/guile.scm gnu/packages/inkscape.scm gnu/packages/llvm.scm gnu/packages/openldap.scm gnu/packages/pciutils.scm gnu/packages/ruby.scm gnu/packages/samba.scm gnu/packages/sqlite.scm gnu/packages/statistics.scm gnu/packages/syndication.scm gnu/packages/tex.scm gnu/packages/tls.scm gnu/packages/version-control.scm gnu/packages/xml.scm guix/build-system/copy.scm guix/scripts/home.scm
Diffstat (limited to 'gnu/packages/libreoffice.scm')
-rw-r--r--gnu/packages/libreoffice.scm528
1 files changed, 200 insertions, 328 deletions
diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index f58887c50b..cb1b199e93 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -9,7 +9,7 @@
;;; Copyright © 2017, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017, 2018, 2019, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
-;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2018, 2019, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018, 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
@@ -30,6 +30,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages libreoffice)
+ #:use-module (guix build-system cmake)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
@@ -66,13 +67,16 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages gperf)
#:use-module (gnu packages gnupg)
+ #:use-module (gnu packages graphics)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
+ #:use-module (gnu packages hunspell)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
#:use-module (gnu packages java)
#:use-module (gnu packages linux)
#:use-module (gnu packages logging)
+ #:use-module (gnu packages m4)
#:use-module (gnu packages maths)
#:use-module (gnu packages nss)
#:use-module (gnu packages openldap)
@@ -83,6 +87,7 @@
#:use-module (gnu packages python)
#:use-module (gnu packages rdf)
#:use-module (gnu packages scanner)
+ #:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
#:use-module (gnu packages xml)
@@ -480,14 +485,14 @@ Apple Keynote documents. It currently supports Keynote versions 2 to 5.")
(define-public liblangtag
(package
(name "liblangtag")
- (version "0.6.3")
+ (version "0.6.4")
(source
(origin
(method url-fetch)
(uri (string-append "https://bitbucket.org/tagoh/liblangtag/downloads/"
"liblangtag-" version ".tar.bz2"))
(sha256
- (base32 "1g9kwxx60q0hpwvs66ys1cb9qg54hfvbivadwli8sfpc085a44hz"))))
+ (base32 "0r55r30ih8dgq1hwbpl834igilj7bpxcnmlrlkd3vryk2wn0c0ap"))))
(build-system gnu-build-system)
(native-inputs
(list libtool pkg-config))
@@ -695,14 +700,14 @@ text documents, vector drawings, presentations and spreadsheets.")
(define-public libmwaw
(package
(name "libmwaw")
- (version "0.3.19")
+ (version "0.3.21")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/libmwaw/libmwaw/libmwaw-"
version "/libmwaw-" version ".tar.xz"))
(sha256
- (base32 "1bx5xnw8sk5h26x2z7hfac7hfbm68zqg0jilp15qr0pwxqsf4wmj"))))
+ (base32 "07629xwvlkqj08j13aj9lsq0pwm7r0v7g2zprr1vjqcdlwih2xg8"))))
(build-system gnu-build-system)
(native-inputs
(list doxygen pkg-config))
@@ -742,14 +747,14 @@ from the old StarOffice (.sdc, .sdw, ...).")
(define-public libwps
(package
(name "libwps")
- (version "0.4.12")
+ (version "0.4.13")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/" name "/" name "/"
name "-" version "/" name "-" version ".tar.xz"))
(sha256 (base32
- "1nsfacqp5sfkyayw7q0wp68lidksd1wjdix8qmsbf0vdl19gn6p2"))))
+ "03y4aslp5lfqc14agn0hgkifwrknh8s4hfjll9wrfs1hq3kaz5ff"))))
(build-system gnu-build-system)
(native-inputs
(list doxygen pkg-config))
@@ -789,191 +794,6 @@ Callisto/Draw documents. Currently it only understands documents created by
Zoner Draw version 4 and 5.")
(license license:mpl2.0)))
-(define-public hunspell
- (package
- (name "hunspell")
- (version "1.7.0")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/hunspell/hunspell")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0qxlkd012r45ppd21kldbq9k5ac5nmxz290z6m2kch9l56v768k1"))))
- (build-system gnu-build-system)
- (native-inputs
- (list autoconf automake libtool))
- (inputs
- (list perl))
- (native-search-paths (list (search-path-specification
- (variable "DICPATH")
- (files '("share/hunspell")))))
- (home-page "https://hunspell.github.io/")
- (synopsis "Spell checker")
- (description "Hunspell is a spell checker and morphological analyzer
-library and program designed for languages with rich morphology and complex
-word compounding or character encoding.")
- ;; Triple license, including "mpl1.1 or later".
- (license (list license:mpl1.1 license:gpl2+ license:lgpl2.1+))))
-
-(define (dicollecte-french-dictionary variant synopsis)
- ;; Return a French dictionary package from dicollecte.org, for the given
- ;; VARIANT.
- (package
- (name (match variant
- ("classique" "hunspell-dict-fr")
- (_ (string-append "hunspell-dict-fr-" variant))))
- (version "6.2")
- (source (origin
- (uri (string-append
- "http://www.dicollecte.org/download/fr/hunspell-french-dictionaries-v"
- version ".zip"))
- (method url-fetch)
- (sha256
- (base32
- "139hfrn5p87sl8hqmgkf6sgvnxrk2mm8vd8xsm8sm98qjnwlg0f9"))))
- (build-system trivial-build-system)
- (native-inputs (list unzip))
- (arguments
- `(#:modules ((guix build utils))
- #:builder (begin
- (use-modules (guix build utils)
- (srfi srfi-26))
-
- (let* ((out (assoc-ref %outputs "out"))
- (hunspell (string-append out "/share/hunspell"))
- (myspell (string-append out "/share/myspell"))
- (doc (string-append out "/share/doc/"
- ,name))
- (unzip (assoc-ref %build-inputs "unzip")))
- (invoke (string-append unzip "/bin/unzip")
- (assoc-ref %build-inputs "source"))
- (for-each (cut install-file <> hunspell)
- (find-files "."
- ,(string-append variant
- "\\.(dic|aff)$")))
- (mkdir-p myspell)
- (symlink hunspell (string-append myspell "/dicts"))
- (for-each (cut install-file <> doc)
- (find-files "." "\\.(txt|org|md)$"))
- #t))))
- (synopsis synopsis)
- (description
- "This package provides a dictionary for the Hunspell spell-checking
-library.")
- (home-page "https://www.dicollecte.org/home.php?prj=fr")
- (license license:mpl2.0)))
-
-(define-syntax define-french-dictionary
- (syntax-rules (synopsis)
- ((_ name variant (synopsis text))
- (define-public name
- (dicollecte-french-dictionary variant text)))))
-
-(define-french-dictionary hunspell-dict-fr-classique
- "classique"
- ;; TRANSLATORS: In French, this is "Français classique".
- (synopsis "Hunspell dictionary for ``classic'' French (recommended)"))
-
-(define-french-dictionary hunspell-dict-fr-moderne
- "moderne"
- ;; TRANSLATORS: In French, this is "Français moderne".
- (synopsis "Hunspell dictionary for ``modern'' French"))
-
-(define-french-dictionary hunspell-dict-fr-réforme-1990
- "reforme1990"
- (synopsis "Hunspell dictionary for the post @dfn{1990 réforme} French"))
-
-(define-french-dictionary hunspell-dict-fr-toutes-variantes
- "toutesvariantes"
- (synopsis "Hunspell dictionary for all variants of French"))
-
-(define-public hunspell-dict-pl
- (package
- (name "hunspell-dict-pl")
- (version "20200327")
- (source
- (origin
- (method url-fetch)
- ;; Since creators of dictionary host only the latest daily release,
- ;; we're using version mirrored by Arch Linux, which seems good
- ;; enough. They're mirroring hunspell-pl releases since 2011.
- (uri (string-append "https://sources.archlinux.org/other/community/"
- "hunspell-pl/sjp-myspell-pl-"
- version ".zip"))
- (sha256 (base32
- "14mzf8glxkp2775dcqisb1zv6r8ncm3bvzl46q352rwyl2dg1c59"))))
-
- (build-system trivial-build-system)
- (native-inputs (list unzip))
- (arguments
- `(#:modules ((guix build utils))
- #:builder (begin
- (use-modules (guix build utils)
- (srfi srfi-26))
-
- (let* ((out (assoc-ref %outputs "out"))
- (hunspell (string-append out "/share/hunspell"))
- (myspell (string-append out "/share/myspell"))
- (doc (string-append out "/share/doc/"
- ,name))
- (unzip (search-input-file %build-inputs
- "/bin/unzip")))
- (invoke unzip "-j" "-o" (assoc-ref %build-inputs "source"))
- (invoke unzip "-j" "-o" "pl_PL.zip")
- (for-each (cut install-file <> hunspell)
- (find-files "."
- ,(string-append "pl_PL"
- "\\.(dic|aff)$")))
- (mkdir-p myspell)
- (symlink hunspell (string-append myspell "/dicts"))
- (for-each (cut install-file <> doc)
- (find-files "." "\\.(txt|org|md)$"))
- #t))))
- (synopsis "Hunspell dictionary for Polish")
- (description
- "This package provides a dictionary for the Hunspell spell-checking
-library.")
- (home-page "https://sjp.pl/slownik/ort/")
- (license
- (list license:gpl2 license:mpl1.1 license:cc-by4.0 license:lgpl2.1 license:asl2.0))))
-
-(define-public hunspell-dict-de
- (package
- (name "hunspell-dict-de")
- (version "20161207")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "https://www.j3e.de/ispell/igerman98/dict/"
- "igerman98-" version ".tar.bz2"))
- (sha256
- (base32 "1a3055hp2bc4q4nlg3gmg0147p3a1zlfnc65xiv2v9pyql1nya8p"))))
- (build-system gnu-build-system)
- (arguments
- `(#:make-flags '("hunspell/de_DE.dic")
- #:phases
- (modify-phases %standard-phases
- (delete 'configure)
- (replace 'install ;no install target
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (share (string-append out "/share/hunspell/")))
- (install-file "hunspell/de_DE.aff" share)
- (install-file "hunspell/de_DE.dic" share)
- #t))))
- #:tests? #f)) ; no tests
- (native-inputs
- (list hunspell ispell perl))
- (synopsis "Hunspell dictionary for German (de_DE)")
- (description "This package provides a dictionary for the Hunspell
-spell-checking library.")
- (home-page "https://www.j3e.de/ispell/igerman98/")
- (license (list license:gpl2 license:gpl3))))
-
(define-public hyphen
(package
(name "hyphen")
@@ -989,7 +809,7 @@ spell-checking library.")
(build-system gnu-build-system)
(inputs
(list perl))
- (home-page "http://hunspell.sourceforge.net/")
+ (home-page "https://hunspell.github.io/")
(synopsis "Hyphenation library")
(description "Hyphen is a hyphenation library using TeX hyphenation
patterns, which are pre-processed by a perl script.")
@@ -1000,20 +820,20 @@ patterns, which are pre-processed by a perl script.")
(define-public mythes
(package
(name "mythes")
- (version "1.2.4")
+ (version "1.2.5")
(source
(origin
(method url-fetch)
- (uri (string-append "mirror://sourceforge/hunspell/MyThes/" version "/"
- name "-" version ".tar.gz"))
- (sha256 (base32
- "0prh19wy1c74kmzkkavm9qslk99gz8h8wmjvwzjc6lf8v2az708y"))))
+ (uri (string-append "https://github.com/hunspell/mythes/releases/"
+ "download/v" version "/mythes-" version ".tar.xz"))
+ (sha256
+ (base32 "07ajdyyif19k445dqffkm32c1kl8z0cw6bczc7x5zgkvf1q9y9qr"))))
(build-system gnu-build-system)
(native-inputs
(list pkg-config))
(inputs
(list hunspell perl))
- (home-page "http://hunspell.sourceforge.net/")
+ (home-page "https://hunspell.github.io/")
(synopsis "Thesaurus")
(description "MyThes is a simple thesaurus that uses a structured text
data file and an index file with binary search to look up words and phrases
@@ -1045,6 +865,45 @@ and to return information on pronunciations, meanings and synonyms.")
converting QuarkXPress file format. It supports versions 3.1 to 4.1.")
(license license:mpl2.0)))
+(define-public dragonbox
+ (package
+ (name "dragonbox")
+ (version "1.1.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jk-jeon/dragonbox")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0qxx94s2kfgnlnyl1gwmbxkksr3dipvb99zdyi5skw3z2bq563sa"))))
+ (build-system cmake-build-system)
+ (arguments (list #:tests? #false)) ;no test target
+ (home-page "https://github.com/jk-jeon/dragonbox")
+ (synopsis "Float-to-string conversion algorithm")
+ (description "Dragonbox generates a pair of integers from a floating-point
+number: the decimal significand and the decimal exponent of the input
+floating-point number. These integers can then be used for string generation
+of decimal representation of the input floating-point number, the procedure
+commonly called @code{ftoa} or @code{dtoa}.")
+ (license license:asl2.0)))
+
+(define-public dragonbox-for-libreoffice
+ (package
+ (inherit dragonbox)
+ (name "dragonbox")
+ (version "1.0.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jk-jeon/dragonbox")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "11h9xhpzp61rfyh1nnca5shzi40skgpdql080k5cb6cfy672s1qz"))))))
+
(define dtoa
(origin
(method url-fetch)
@@ -1057,7 +916,7 @@ converting QuarkXPress file format. It supports versions 3.1 to 4.1.")
(define-public libreoffice
(package
(name "libreoffice")
- (version "7.3.5.2")
+ (version "7.4.3.2")
(source
(origin
(method url-fetch)
@@ -1066,8 +925,137 @@ converting QuarkXPress file format. It supports versions 3.1 to 4.1.")
"https://download.documentfoundation.org/libreoffice/src/"
(version-prefix version 3) "/libreoffice-" version ".tar.xz"))
(sha256
- (base32 "14g9873x8m5yakpq7v9f7lhc5fkxh6yhjhgh0pm30cqmxsqhsglv"))))
+ (base32 "0fyvd4ydh72lmn005h190xa563d4h376pi1fx9lfr5i25qcbpg7z"))))
(build-system glib-or-gtk-build-system)
+ (arguments
+ (list
+ #:tests? #f ; Building the tests already fails.
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'insert-external-tarballs
+ (lambda _
+ (mkdir-p "external/tarballs")
+ (copy-file #$dtoa "external/tarballs/dtoa-20180411.tgz")))
+ (add-before 'configure 'prepare-src
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute*
+ (list "sysui/CustomTarget_share.mk"
+ "solenv/gbuild/gbuild.mk"
+ "solenv/gbuild/platform/unxgcc.mk")
+ (("/bin/sh") (which "sh")))
+
+ ;; Use store references for strictly necessary commands,
+ ;; but not for optional tools like ‘gdb’ and ‘valgrind’.
+ (for-each (lambda (command)
+ (substitute* "desktop/scripts/soffice.sh"
+ (((format #f "~a " command))
+ (format #f "~a " (which command)))))
+ (list "dirname" "grep" "uname"))
+
+ ;; GPGME++ headers are installed in a gpgme++ subdirectory, but
+ ;; configure is hardcoded to use FHS directories.
+ (substitute* "configure"
+ (("GPGMEPP_CFLAGS=-I/usr/include/gpgme\\+\\+")
+ (string-append "GPGMEPP_CFLAGS=-I"
+ (search-input-directory inputs
+ "include/gpgme++")))
+ (("DRAGONBOX_CFLAGS=-I/usr/include/dragonbox-1.0.0")
+ (string-append "DRAGONBOX_CFLAGS=-I"
+ (search-input-directory inputs
+ "include/dragonbox-1.0.0"))))
+
+ ;; /usr/bin/xdg-open doesn't exist on Guix System.
+ (substitute* '("shell/source/unix/exec/shellexec.cxx"
+ "shell/source/unix/misc/senddoc.sh")
+ (("/usr/bin/xdg-open")
+ (search-input-file inputs "/bin/xdg-open")))
+ (setenv "CPPFLAGS" "-std=c++17")))
+ (add-after 'install 'reset-zip-timestamps
+ (lambda _
+ (for-each (lambda (file)
+ (invoke "ziptime" file))
+ ;; So many different extensions for .zip files.
+ (find-files #$output "\\.(bau|dat|otg|otp|ott|zip)$"))))
+ (add-after 'install 'bin-and-desktop-install
+ ;; Create 'soffice' and 'libreoffice' symlinks to the executable
+ ;; script.
+ (lambda _
+ (let ((out #$output))
+ (define (symlink-output src dst)
+ (mkdir-p (dirname (string-append out dst)))
+ (symlink (string-append out src) (string-append out dst)))
+ (define (install src dst)
+ (let ((dst (string-append out dst)))
+ (mkdir-p (dirname dst))
+ (copy-file src dst)))
+ (define (install-desktop-file app)
+ (let ((src (string-append "/lib/libreoffice/share/xdg/"
+ app ".desktop"))
+ (dst (string-append "/share/applications/libreoffice-"
+ app ".desktop")))
+ (substitute* (string-append out src)
+ (("Exec=libreoffice[0-9]+\\.[0-9]+ ")
+ (string-append "Exec=" out "/bin/libreoffice "))
+ (("Icon=libreoffice.*")
+ (string-append "Icon=" app "\n"))
+ (("LibreOffice [0-9]+\\.[0-9]+")
+ "LibreOffice"))
+ (symlink-output src dst)))
+ (define (install-appdata app)
+ (install-file (string-append
+ "sysui/desktop/appstream-appdata/"
+ "libreoffice-" app ".appdata.xml")
+ (string-append out "/share/appdata")))
+ (symlink-output "/lib/libreoffice/program/soffice"
+ "/bin/soffice")
+ (symlink-output "/lib/libreoffice/program/soffice"
+ "/bin/libreoffice")
+ (install
+ "workdir/CustomTarget/sysui/share/libreoffice/openoffice.org.xml"
+ "/share/mime/packages/libreoffice.xml")
+ (for-each install-desktop-file
+ '("base" "calc" "draw" "impress" "writer"
+ "math" "startcenter"))
+ (for-each install-appdata
+ '("base" "calc" "draw" "impress" "writer"))
+ (mkdir-p (string-append out "/share/icons/hicolor"))
+ (copy-recursively "sysui/desktop/icons/hicolor"
+ (string-append out "/share/icons/hicolor"))))))
+ #:configure-flags
+ #~(list
+ "--enable-release-build"
+ "--with-vendor=GNU Guix"
+ ;; Avoid using all cpu cores by default
+ (format #f "--with-parallelism=~d" (parallel-job-count))
+ "--disable-fetch-external" ; disable downloads
+ "--with-system-libs" ; enable all --with-system-* flags
+ (string-append "--with-boost-libdir="
+ (dirname
+ (search-input-file %build-inputs
+ "lib/libboost_system.so")))
+ ;; 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.
+ "--disable-coinmp"
+ "--disable-skia"
+ ;; This could (Debian does this) be a separate output containing only
+ ;; program/libfirebird_sdbclo.so, if there's a way to point to it.
+ "--enable-firebird-sdbc"
+ ;; XXX: PDFium support requires fetching an external tarball and
+ ;; patching the build scripts to work with GCC5. Try enabling this
+ ;; when our default compiler is >=GCC 6.
+ "--disable-pdfium"
+ "--without-doxygen"
+ ;; Avoid linker errors about non-virtual thunks on i686-linux.
+ "--enable-lto"
+ ;; Avoid errors rebuilding the Gtk icon cache, at least on i686-linux.
+ "--without-galleries"
+ "--enable-build-opensymbol")))
(native-inputs
(list bison
cppunit
@@ -1083,6 +1071,7 @@ converting QuarkXPress file format. It supports versions 3.1 to 4.1.")
clucene
cups
dbus-glib
+ dragonbox-for-libreoffice
firebird
fontconfig
fontforge
@@ -1103,6 +1092,7 @@ converting QuarkXPress file format. It supports versions 3.1 to 4.1.")
libcdr
libcmis
libcuckoo
+ libfixmath
libjpeg-turbo
libe-book
libepubgen
@@ -1119,7 +1109,9 @@ converting QuarkXPress file format. It supports versions 3.1 to 4.1.")
libpagemaker
libqxp
libstaroffice
+ libtiff
libvisio
+ libwebp
libwpg
libwps
libxrandr
@@ -1153,134 +1145,14 @@ converting QuarkXPress file format. It supports versions 3.1 to 4.1.")
xmlsec-nss
zip
zxing-cpp))
- (arguments
- (list
- #:tests? #f ; Building the tests already fails.
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'insert-external-tarballs
- (lambda _
- (mkdir-p "external/tarballs")
- (copy-file #$dtoa "external/tarballs/dtoa-20180411.tgz")))
- (add-before 'configure 'prepare-src
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute*
- (list "sysui/CustomTarget_share.mk"
- "solenv/gbuild/gbuild.mk"
- "solenv/gbuild/platform/unxgcc.mk")
- (("/bin/sh") (which "sh")))
-
- ;; Use store references for strictly necessary commands,
- ;; but not for optional tools like ‘gdb’ and ‘valgrind’.
- (for-each (lambda (command)
- (substitute* "desktop/scripts/soffice.sh"
- (((format #f "~a " command))
- (format #f "~a " (which command)))))
- (list "dirname" "grep" "uname"))
-
- ;; GPGME++ headers are installed in a gpgme++ subdirectory, but
- ;; configure is hardcoded to use FHS directories.
- (substitute* "configure"
- (("GPGMEPP_CFLAGS=-I/usr/include/gpgme\\+\\+")
- (string-append "GPGMEPP_CFLAGS=-I"
- (search-input-directory inputs
- "include/gpgme++"))))
-
- ;; /usr/bin/xdg-open doesn't exist on Guix System.
- (substitute* '("shell/source/unix/exec/shellexec.cxx"
- "shell/source/unix/misc/senddoc.sh")
- (("/usr/bin/xdg-open")
- (search-input-file inputs "/bin/xdg-open")))))
- (add-after 'install 'reset-zip-timestamps
- (lambda _
- (for-each (lambda (file)
- (invoke "ziptime" file))
- ;; So many different extensions for .zip files.
- (find-files #$output "\\.(bau|dat|otp|ott|zip)$"))))
- (add-after 'install 'bin-and-desktop-install
- ;; Create 'soffice' and 'libreoffice' symlinks to the executable
- ;; script.
- (lambda _
- (let ((out #$output))
- (define (symlink-output src dst)
- (mkdir-p (dirname (string-append out dst)))
- (symlink (string-append out src) (string-append out dst)))
- (define (install src dst)
- (let ((dst (string-append out dst)))
- (mkdir-p (dirname dst))
- (copy-file src dst)))
- (define (install-desktop-file app)
- (let ((src (string-append "/lib/libreoffice/share/xdg/"
- app ".desktop"))
- (dst (string-append "/share/applications/libreoffice-"
- app ".desktop")))
- (substitute* (string-append out src)
- (("Exec=libreoffice[0-9]+\\.[0-9]+ ")
- (string-append "Exec=" out "/bin/libreoffice "))
- (("Icon=libreoffice.*")
- (string-append "Icon=" app "\n"))
- (("LibreOffice [0-9]+\\.[0-9]+")
- "LibreOffice"))
- (symlink-output src dst)))
- (define (install-appdata app)
- (install-file (string-append
- "sysui/desktop/appstream-appdata/"
- "libreoffice-" app ".appdata.xml")
- (string-append out "/share/appdata")))
- (symlink-output "/lib/libreoffice/program/soffice"
- "/bin/soffice")
- (symlink-output "/lib/libreoffice/program/soffice"
- "/bin/libreoffice")
- (install
- "workdir/CustomTarget/sysui/share/libreoffice/openoffice.org.xml"
- "/share/mime/packages/libreoffice.xml")
- (for-each install-desktop-file
- '("base" "calc" "draw" "impress" "writer"
- "math" "startcenter"))
- (for-each install-appdata
- '("base" "calc" "draw" "impress" "writer"))
- (mkdir-p (string-append out "/share/icons/hicolor"))
- (copy-recursively "sysui/desktop/icons/hicolor"
- (string-append out "/share/icons/hicolor"))))))
- #:configure-flags
- #~(list
- "--enable-release-build"
- "--with-vendor=GNU Guix"
- ;; Avoid using all cpu cores by default
- (format #f "--with-parallelism=~d" (parallel-job-count))
- "--disable-fetch-external" ; disable downloads
- "--with-system-libs" ; enable all --with-system-* flags
- (string-append "--with-boost-libdir="
- (dirname
- (search-input-file %build-inputs
- "lib/libboost_system.so")))
- ;; 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.
- "--disable-coinmp"
- "--disable-skia"
- ;; This could (Debian does this) be a separate output containing only
- ;; program/libfirebird_sdbclo.so, if there's a way to point to it.
- "--enable-firebird-sdbc"
- ;; XXX: PDFium support requires fetching an external tarball and
- ;; patching the build scripts to work with GCC5. Try enabling this
- ;; when our default compiler is >=GCC 6.
- "--disable-pdfium"
- "--without-doxygen"
- "--enable-build-opensymbol")))
- (home-page "https://www.libreoffice.org/")
- (synopsis "Office suite")
- (description "LibreOffice is a comprehensive office suite. It contains
+ (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.")
- (properties
- '((release-monitoring-url
- . "https://www.libreoffice.org/download/download-libreoffice/")))
- (license license:mpl2.0)))
+ (properties
+ '((release-monitoring-url
+ . "https://www.libreoffice.org/download/download-libreoffice/")))
+ (license license:mpl2.0)))