Merge branch 'staging' into core-updates
[jackhill/guix/guix.git] / gnu / packages / libreoffice.scm
CommitLineData
7b4570b4 1;;; GNU Guix --- Functional package management for GNU
7b4570b4 2;;; Copyright © 2014 John Darrington <jmd@gnu.org>
00eb9fa3 3;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
15ad9eb6 4;;; Copyright © 2016, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
7a203059 5;;; Copyright © 2017 Alex Griffin <a@ajgrf.com>
741916f1 6;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
8e9a84d9 7;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
3bfa7af4 8;;; Copyright © 2017 Andy Wingo <wingo@igalia.com>
aff0cce9 9;;; Copyright © 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
b1d2e0b4 10;;; Copyright © 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
074ff555 11;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
21b41a79 12;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
aeba7d46 13;;; Copyright © 2018 Jonathan Brielmaier <jonathan.brielmaier@web.de>
afb986e7 14;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
7b4570b4
AE
15;;;
16;;; This file is part of GNU Guix.
17;;;
18;;; GNU Guix is free software; you can redistribute it and/or modify it
19;;; under the terms of the GNU General Public License as published by
20;;; the Free Software Foundation; either version 3 of the License, or (at
21;;; your option) any later version.
22;;;
23;;; GNU Guix is distributed in the hope that it will be useful, but
24;;; WITHOUT ANY WARRANTY; without even the implied warranty of
25;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26;;; GNU General Public License for more details.
27;;;
28;;; You should have received a copy of the GNU General Public License
29;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
30
31(define-module (gnu packages libreoffice)
994bccd9 32 #:use-module (guix build-system glib-or-gtk)
16c62e1f 33 #:use-module (guix build-system gnu)
4db733e7 34 #:use-module (guix build-system trivial)
7b4570b4 35 #:use-module (guix download)
15ad9eb6 36 #:use-module (guix git-download)
2a9a9441 37 #:use-module ((guix licenses)
00eb9fa3 38 #:select (gpl2+ lgpl2.1+ lgpl3+ mpl1.1 mpl2.0
aeba7d46 39 non-copyleft x11-style bsd-3))
16c62e1f
AE
40 #:use-module (guix packages)
41 #:use-module (guix utils)
4db733e7 42 #:use-module (ice-9 match)
c91d3fb7 43 #:use-module (gnu packages)
16c62e1f
AE
44 #:use-module (gnu packages autotools)
45 #:use-module (gnu packages base)
46 #:use-module (gnu packages bison)
7b4570b4 47 #:use-module (gnu packages boost)
10ca4a1d 48 #:use-module (gnu packages check)
cfaf863f 49 #:use-module (gnu packages compression)
16c62e1f 50 #:use-module (gnu packages cups)
3736a110
AE
51 #:use-module (gnu packages curl)
52 #:use-module (gnu packages cyrus-sasl)
16c62e1f 53 #:use-module (gnu packages databases)
99828fa7 54 #:use-module (gnu packages documentation)
16c62e1f
AE
55 #:use-module (gnu packages flex)
56 #:use-module (gnu packages fontutils)
afb986e7 57 #:use-module (gnu packages freedesktop)
9fe8a4ba 58 #:use-module (gnu packages ghostscript)
16c62e1f
AE
59 #:use-module (gnu packages gl)
60 #:use-module (gnu packages glib)
61 #:use-module (gnu packages gnome)
b4e5d8e7 62 #:use-module (gnu packages gperf)
b4c9a317 63 #:use-module (gnu packages gnupg)
16c62e1f
AE
64 #:use-module (gnu packages gstreamer)
65 #:use-module (gnu packages gtk)
b4e5d8e7 66 #:use-module (gnu packages icu4c)
16c62e1f
AE
67 #:use-module (gnu packages image)
68 #:use-module (gnu packages java)
69 #:use-module (gnu packages linux)
70 #:use-module (gnu packages maths)
aff0cce9 71 #:use-module (gnu packages nss)
16c62e1f 72 #:use-module (gnu packages openldap)
16c62e1f 73 #:use-module (gnu packages pdf)
2534fc04 74 #:use-module (gnu packages perl)
21b41a79 75 #:use-module (gnu packages perl-compression)
7b4570b4 76 #:use-module (gnu packages pkg-config)
b4e5d8e7 77 #:use-module (gnu packages python)
16c62e1f
AE
78 #:use-module (gnu packages rdf)
79 #:use-module (gnu packages scanner)
cc2b77df 80 #:use-module (gnu packages tls)
16c62e1f
AE
81 #:use-module (gnu packages version-control)
82 #:use-module (gnu packages xml)
148585c2 83 #:use-module (gnu packages xorg))
7b4570b4
AE
84
85(define-public ixion
86 (package
87 (name "ixion")
5895437c 88 (version "0.14.1")
7b4570b4
AE
89 (source
90 (origin
a3f2425e
RW
91 (method url-fetch)
92 (uri (string-append "http://kohei.us/files/ixion/src/libixion-"
93 version ".tar.xz"))
94 (sha256
95 (base32
5895437c 96 "14gdd6div4l22vnz3jn2qjxgjly98ck6p8c1v7386c41rx7kilba"))))
7b4570b4
AE
97 (build-system gnu-build-system)
98 (native-inputs
99 `(("pkg-config" ,pkg-config)))
a3f2425e
RW
100 (inputs
101 `(("mdds" ,mdds)
102 ("python" ,python)))
7b4570b4
AE
103 (home-page "https://gitlab.com/ixion/ixion")
104 (synopsis "General purpose formula parser and interpreter")
105 (description "Ixion is a library for calculating the results of formula
106expressions stored in multiple named targets, or \"cells\". The cells can
107be referenced from each other, and the library takes care of resolving
108their dependencies automatically upon calculation.")
109 (license mpl2.0)))
cfaf863f
AE
110
111(define-public orcus
112 (package
113 (name "orcus")
b64665d1 114 (version "0.14.1")
cfaf863f
AE
115 (source
116 (origin
e47e1f33
RW
117 (method url-fetch)
118 (uri (string-append "http://kohei.us/files/" name "/src/lib"
119 name "-" version ".tar.xz"))
120 (sha256
121 (base32
b64665d1 122 "1ays13a1x15j81dsrq0d3697v1bbqd3bfz3ajn6kb9d61y2drlgj"))))
cfaf863f
AE
123 (build-system gnu-build-system)
124 (native-inputs
125 `(("pkg-config" ,pkg-config)))
e47e1f33
RW
126 (inputs
127 `(("ixion" ,ixion)
128 ("mdds" ,mdds)
129 ("python" ,python)
130 ("zlib" ,zlib)))
cfaf863f
AE
131 (home-page "https://gitlab.com/orcus/orcus")
132 (synopsis "File import filter library for spreadsheet documents")
133 (description "Orcus is a library that provides a collection of standalone
134file processing filters. It is currently focused on providing filters for
135spreadsheet documents. The library includes import filters for
136Microsoft Excel 2007 XML, Microsoft Excel 2003 XML, Open Document Spreadsheet,
137Plain Text, Gnumeric XML, Generic XML. It also includes low-level parsers for
138CSV, CSS and XML.")
139 (license mpl2.0)))
10ca4a1d
AE
140
141(define-public librevenge
142 (package
143 (name "librevenge")
1c7c2506 144 (version "0.0.4")
10ca4a1d
AE
145 (source
146 (origin
147 (method url-fetch)
148 (uri (string-append "mirror://sourceforge/libwpd/" name "/" name "-"
de67e922 149 version "/" name "-" version ".tar.xz"))
10ca4a1d 150 (sha256 (base32
1c7c2506 151 "1cj76cz4mqcy2mgv9l5xlc95bypyk8zbq0ls9cswqrs2y0lhfgwk"))))
10ca4a1d
AE
152 (build-system gnu-build-system)
153 (native-inputs
c91d3fb7 154 `(("cppunit" ,cppunit)
10ca4a1d
AE
155 ("doxygen" ,doxygen)
156 ("pkg-config" ,pkg-config)))
157 (inputs
158 `(("zlib" ,zlib)))
c91d3fb7
EB
159 (propagated-inputs ; Referenced by .la files
160 `(("boost" ,boost)))
10ca4a1d
AE
161 (arguments
162 ;; avoid triggering configure errors by simple inclusion of boost headers
c91d3fb7
EB
163 `(#:configure-flags '("--disable-werror"
164 ;; Avoid undefined library references
165 "LDFLAGS=-lboost_system")))
3b3b60d0 166 (home-page "https://sourceforge.net/p/libwpd/wiki/librevenge/")
10ca4a1d
AE
167 (synopsis "Document importer for office suites")
168 (description "Librevenge is a base library for writing document import
169filters. It has interfaces for text documents, vector graphics,
170spreadsheets and presentations.")
68267c63 171 (license (list mpl2.0 lgpl2.1+)))) ;dual licensed
fc15db2f
AE
172
173(define-public libwpd
174 (package
175 (name "libwpd")
0b223139 176 (version "0.10.3")
fc15db2f
AE
177 (source
178 (origin
179 (method url-fetch)
b0aefabe
TGR
180 (uri (string-append "mirror://sourceforge/libwpd/libwpd/"
181 "libwpd-" version "/libwpd-" version ".tar.xz"))
fc15db2f 182 (sha256 (base32
0b223139 183 "02fx8bngslcj7i5g1gx2kiign4vp09wrmp5wpvix9igxcavb0r94"))))
fc15db2f 184 (build-system gnu-build-system)
66679ab9
MB
185 (arguments
186 `(#:configure-flags '("--disable-werror")))
fc15db2f
AE
187 (native-inputs
188 `(("doxygen" ,doxygen)
189 ("pkg-config" ,pkg-config)))
b7e71faa
AE
190 (propagated-inputs
191 `(("librevenge" ,librevenge))) ; in Requires field of .pkg
fc15db2f 192 (inputs
b7e71faa 193 `(("zlib" ,zlib)))
fc15db2f
AE
194 (home-page "http://libwpd.sourceforge.net/")
195 (synopsis "Library for importing WordPerfect documents")
196 (description "Libwpd is a C++ library designed to help process
197WordPerfect documents. It is most commonly used to import such documents
198into other word processors.")
68267c63 199 (license (list mpl2.0 lgpl2.1+)))) ;dual licensed
b4e5d8e7 200
b4e5d8e7
AE
201(define-public libe-book
202 (package
203 (name "libe-book")
fe296817 204 (version "0.1.3")
b4e5d8e7
AE
205 (source
206 (origin
207 (method url-fetch)
208 (uri (string-append "mirror://sourceforge/libebook/libe-book-"
209 version "/libe-book-" version ".tar.xz"))
210 (sha256
211 (base32
fe296817 212 "1yg1vws1wggzhjw672bpgh2x541g5i9wryf67g51m0r79zrqz3by"))))
b4e5d8e7
AE
213 (build-system gnu-build-system)
214 (native-inputs
215 `(("cppunit" ,cppunit)
216 ("gperf" ,gperf)
217 ("pkg-config" ,pkg-config)))
933c390c
AE
218 (propagated-inputs ; in Requires or Requires.private field of .pkg
219 `(("icu4c" ,icu4c)
fe296817 220 ("liblangtag" ,liblangtag)
933c390c
AE
221 ("librevenge" ,librevenge)
222 ("libxml2" ,libxml2)))
223 (inputs
224 `(("boost" ,boost)))
b4e5d8e7
AE
225 (arguments
226 ;; avoid triggering configure errors by simple inclusion of boost headers
227 `(#:configure-flags '("--disable-werror")))
228 (home-page "http://libebook.sourceforge.net")
229 (synopsis "Library for import of reflowable e-book formats")
230 (description "Libe-book is a library and a set of tools for reading and
231converting various reflowable e-book formats. Currently supported are:
232Broad Band eBook, eReader .pdb, FictionBook v. 2 (including zipped files),
233PalmDoc Ebook, Plucker .pdb, QiOO (mobile format, for java-enabled
234cellphones), TCR (simple compressed text format), TealDoc, zTXT,
235ZVR (simple compressed text format).")
236 (license mpl2.0)))
2534fc04 237
38be0f42
RW
238(define-public libepubgen
239 (package
240 (name "libepubgen")
241 (version "0.1.1")
242 (source
243 (origin
244 (method url-fetch)
245 (uri (string-append "mirror://sourceforge/libepubgen/libepubgen-"
246 version "/libepubgen-" version ".tar.xz"))
247 (sha256
248 (base32
249 "1b8mc9zzrqypj1v9zdy3ybc48pw0rfr06cyi7n6grvybjjwq9q03"))))
250 (build-system gnu-build-system)
251 (native-inputs
252 `(("cppunit" ,cppunit)
253 ("pkg-config" ,pkg-config)))
254 (inputs
255 `(("libxml2" ,libxml2)
256 ("boost" ,boost)))
257 (propagated-inputs ; in Requires field of .pkg
258 `(("librevenge" ,librevenge)))
259 (home-page "https://sourceforge.net/projects/libepubgen/")
260 (synopsis "EPUB generator library for librevenge")
261 (description "libepubgen is an EPUB generator for librevenge. It supports
262librevenge's text document interface and--currently in a very limited
263way--presentation and vector drawing interfaces.")
264 (license mpl2.0)))
265
2534fc04
AE
266(define-public libwpg
267 (package
268 (name "libwpg")
20fbb897 269 (version "0.3.3")
2534fc04
AE
270 (source
271 (origin
272 (method url-fetch)
fbed2800
TGR
273 (uri (string-append "mirror://sourceforge/libwpg/libwpg/"
274 "libwpg-" version "/libwpg-" version ".tar.xz"))
2534fc04 275 (sha256 (base32
20fbb897 276 "074x159immf139szkswv2zapnq75p7xk10dbha2p9193hgwggcwr"))))
2534fc04
AE
277 (build-system gnu-build-system)
278 (native-inputs
279 `(("doxygen" ,doxygen)
280 ("pkg-config" ,pkg-config)))
239c853c
AE
281 (propagated-inputs
282 `(("libwpd" ,libwpd))) ; in Requires field of .pkg
2534fc04 283 (inputs
239c853c 284 `(("perl" ,perl)
2534fc04
AE
285 ("zlib" ,zlib)))
286 (home-page "http://libwpg.sourceforge.net/")
287 (synopsis "Library and tools for the WordPerfect Graphics format")
288 (description "The libwpg project provides a library and tools for
289working with graphics in the WPG (WordPerfect Graphics) format.")
68267c63 290 (license (list mpl2.0 lgpl2.1+)))) ;dual licensed
4cd369ed 291
3736a110
AE
292(define-public libcmis
293 (package
294 (name "libcmis")
0c4cee13 295 (version "0.5.2")
3736a110
AE
296 (source
297 (origin
298 (method url-fetch)
7fc72c77 299 (uri (string-append "https://github.com/tdf/libcmis/releases/download/v"
0c4cee13 300 version "/libcmis-" version ".tar.xz"))
7fc72c77
LF
301 (sha256
302 (base32
0c4cee13 303 "18h0a2gsfxvlv03nlcfvw9bzsflq5sin9agq6za103hr0ab8vcfp"))))
3736a110
AE
304 (build-system gnu-build-system)
305 (native-inputs
306 `(("cppunit" ,cppunit)
307 ("pkg-config" ,pkg-config)))
f678913c
AE
308 (propagated-inputs ; in Requires field of .pkg
309 `(("curl" ,curl)
310 ("libxml2" ,libxml2)))
3736a110
AE
311 (inputs
312 `(("boost" ,boost)
3736a110 313 ("cyrus-sasl" ,cyrus-sasl)
3736a110
AE
314 ("openssl" ,openssl)))
315 (arguments
316 `(#:configure-flags
317 (list
318 ;; FIXME: Man pages generation requires docbook-to-man; reenable
319 ;; it once this is available.
320 "--without-man"
66679ab9
MB
321 ;; XXX: A configure test fails with GCC7 when including Boost headers.
322 "--disable-werror"
3736a110
AE
323 ;; During configure, the boost headers are found, but linking
324 ;; fails without the following flag.
325 (string-append "--with-boost="
0c4cee13 326 (assoc-ref %build-inputs "boost")))))
7fc72c77 327 (home-page "https://github.com/tdf/libcmis")
3736a110
AE
328 (synopsis "CMIS client library")
329 (description "LibCMIS is a C++ client library for the CMIS interface. It
330allows C++ applications to connect to any ECM behaving as a CMIS server such
331as Alfresco or Nuxeo.")
332 (license (list mpl1.1 gpl2+ lgpl2.1+)))) ; triple license
333
4cd369ed
AE
334(define-public libabw
335 (package
336 (name "libabw")
558f4a30 337 (version "0.1.3")
4cd369ed
AE
338 (source
339 (origin
340 (method url-fetch)
240d9ef9
TGR
341 (uri (string-append "https://dev-www.libreoffice.org/src/libabw/"
342 "libabw-" version ".tar.xz"))
4cd369ed 343 (sha256 (base32
558f4a30 344 "1vbfrmnvib3cym0yyyabnd8xpx4f7wp20vnn09s6dln347fajqz7"))))
4cd369ed
AE
345 (build-system gnu-build-system)
346 (native-inputs
347 `(("doxygen" ,doxygen)
348 ("gperf" ,gperf)
349 ("perl" ,perl)
350 ("pkg-config" ,pkg-config)))
57080fea
AE
351 (propagated-inputs ; in Requires or Requires.private field of .pkg
352 `(("librevenge" ,librevenge)
4cd369ed 353 ("libxml2" ,libxml2)))
57080fea
AE
354 (inputs
355 `(("boost" ,boost)))
4cd369ed
AE
356 (home-page "https://wiki.documentfoundation.org/DLP/Libraries/libabw")
357 (synopsis "Library for parsing the AbiWord format")
358 (description "Libabw is a library that parses the file format of
359AbiWord documents.")
360 (license mpl2.0)))
9fe8a4ba
AE
361
362(define-public libcdr
363 (package
364 (name "libcdr")
b1d2e0b4 365 (version "0.1.5")
9fe8a4ba
AE
366 (source
367 (origin
368 (method url-fetch)
b1d2e0b4 369 (uri (string-append "https://dev-www.libreoffice.org/src/" name "/"
9fe8a4ba
AE
370 name "-" version ".tar.xz"))
371 (sha256 (base32
b1d2e0b4 372 "0j1skr11jwvafn0l6p37v3i4lqc8wcn489g8f7c4mqwbk94mrkka"))))
9fe8a4ba
AE
373 (build-system gnu-build-system)
374 (native-inputs
d35db297
MB
375 `(("cppunit" ,cppunit)
376 ("doxygen" ,doxygen)
9fe8a4ba 377 ("pkg-config" ,pkg-config)))
269194c3
AE
378 (propagated-inputs ; in Requires or Requires.private field of .pkg
379 `(("icu4c" ,icu4c)
9fe8a4ba
AE
380 ("lcms" ,lcms)
381 ("librevenge" ,librevenge)
382 ("zlib" ,zlib)))
269194c3
AE
383 (inputs
384 `(("boost" ,boost)))
9fe8a4ba
AE
385 (home-page "https://wiki.documentfoundation.org/DLP/Libraries/libcdr")
386 (synopsis "Library for parsing the CorelDRAW format")
387 (description "Libcdr is a library that parses the file format of
388CorelDRAW documents of all versions.")
389 (license mpl2.0)))
3dc67e38
AE
390
391(define-public libetonyek
392 (package
393 (name "libetonyek")
7c3acfcb 394 (version "0.1.9")
3dc67e38
AE
395 (source
396 (origin
397 (method url-fetch)
398 (uri (string-append "http://dev-www.libreoffice.org/src/" name "/"
399 name "-" version ".tar.xz"))
400 (sha256 (base32
7c3acfcb 401 "0jhsbdimiyijdqriy0zzkjjgc4wi6fjimhdg4mdybrlwg7l7f5p6"))))
3dc67e38 402 (build-system gnu-build-system)
b85b56dd 403 (arguments
7c3acfcb 404 `(#:configure-flags '("--with-mdds=1.4")))
3dc67e38
AE
405 (native-inputs
406 `(("cppunit" ,cppunit)
407 ("doxygen" ,doxygen)
408 ("gperf" ,gperf)
7a9283a6 409 ("pkg-config" ,pkg-config)))
480fe002 410 (propagated-inputs ; in Requires or Requires.private field of .pkg
9c209478
MB
411 `(("liblangtag" ,liblangtag)
412 ("librevenge" ,librevenge)
413 ("libxml2" ,libxml2)
414 ("zlib" ,zlib)))
480fe002 415 (inputs
9c209478
MB
416 `(("boost" ,boost)
417 ("glm" ,glm)
418 ("mdds" ,mdds)))
3dc67e38
AE
419 (home-page "https://wiki.documentfoundation.org/DLP/Libraries/libetonyek")
420 (synopsis "Library for parsing the Apple Keynote format")
421 (description "Libetonyek is a library that parses the file format of
422Apple Keynote documents. It currently supports Keynote versions 2 to 5.")
423 (license mpl2.0)))
97aee2b6 424
00eb9fa3
EF
425(define-public liblangtag
426 (package
427 (name "liblangtag")
603231c1 428 (version "0.6.2")
00eb9fa3
EF
429 (source
430 (origin
431 (method url-fetch)
432 (uri (string-append "https://bitbucket.org/tagoh/liblangtag/downloads/"
433 name "-" version ".tar.bz2"))
434 (sha256
435 (base32
603231c1 436 "0bnm4hllr8cfrybm8rw7b8n0nlhzhnv73bkg1bxk452g6a82f96n"))))
00eb9fa3
EF
437 (build-system gnu-build-system)
438 (native-inputs
439 `(("libtool" ,libtool)
440 ("pkg-config" ,pkg-config)))
441 (inputs
442 `(("libxml2" ,libxml2)))
69d973cc
TGR
443 ;; As of December 2017, tagoh.bitbucket.org redirects to a hosting advert.
444 (home-page "https://bitbucket.org/tagoh/liblangtag")
00eb9fa3
EF
445 (synopsis "Library to access tags for identifying languages")
446 (description "Liblangtag implements an interface to work with tags
447for identifying languages as described in RFC 5646. It supports the
448extensions described in RFC6067 and RFC6497, and Extension T for
449language/locale identifiers as described in the Unicode CLDR
450standard 21.0.2.")
451 (license (list lgpl3+ mpl2.0)))) ; dual license
452
97aee2b6
AE
453(define-public libexttextcat
454 (package
455 (name "libexttextcat")
ae443ec1 456 (version "3.4.5")
97aee2b6
AE
457 (source
458 (origin
459 (method url-fetch)
460 (uri (string-append "http://dev-www.libreoffice.org/src/" name "/"
461 name "-" version ".tar.xz"))
462 (sha256 (base32
ae443ec1 463 "1j6sjwkyhqvsgyw938bxxfwkzzi1mahk66g5342lv6j89jfvrz8k"))))
97aee2b6 464 (build-system gnu-build-system)
57e7d748 465 (home-page "https://www.freedesktop.org/wiki/Software/libexttextcat/")
97aee2b6
AE
466 (synopsis "Text Categorization library")
467 (description "Libexttextcat is an N-Gram-Based Text Categorization
468library primarily intended for language guessing.")
469 (license (non-copyleft "file://LICENSE"
470 "See LICENSE in the distribution."))))
ef1c4148
AE
471
472(define-public libfreehand
473 (package
474 (name "libfreehand")
e9d8b887 475 (version "0.1.2")
ef1c4148
AE
476 (source
477 (origin
478 (method url-fetch)
479 (uri (string-append "http://dev-www.libreoffice.org/src/" name "/"
480 name "-" version ".tar.xz"))
481 (sha256 (base32
e9d8b887 482 "1b1lvqh68rwij1yvmxy02hsmh7i74ma5767mk8mg5nx6chajshhf"))))
ef1c4148 483 (build-system gnu-build-system)
c6af97b7
MB
484 (arguments
485 '(#:phases (modify-phases %standard-phases
486 (add-before 'build 'adjust-for-ICU-65
487 (lambda _
488 ;; Fix build with ICU 65 and later. Taken from this
489 ;; upstream commit, remove for libfreehand > 0.1.2:
490 ;; https://gerrit.libreoffice.org/#/c/80224/
491 (substitute* "src/lib/libfreehand_utils.cpp"
492 (("U16_NEXT.*" all)
493 (string-append all ";\n")))
494 #t)))))
ef1c4148 495 (native-inputs
e9d8b887
MB
496 `(("cppunit" ,cppunit)
497 ("doxygen" ,doxygen)
ef1c4148
AE
498 ("gperf" ,gperf)
499 ("perl" ,perl)
500 ("pkg-config" ,pkg-config)))
e9d8b887
MB
501 (inputs
502 `(("icu4c" ,icu4c)
503 ("lcms" ,lcms)))
c5b5800b 504 (propagated-inputs ; in Requires or Requires.private field of .pkg
ef1c4148
AE
505 `(("librevenge" ,librevenge)
506 ("zlib" ,zlib)))
507 (home-page "https://wiki.documentfoundation.org/DLP/Libraries/libfreehand")
508 (synopsis "Library for parsing the FreeHand format")
509 (description "Libfreehand is a library that parses the file format of
510Aldus/Macromedia/Adobe FreeHand documents.")
511 (license mpl2.0)))
86e278fc
AE
512
513(define-public libmspub
514 (package
515 (name "libmspub")
9ed31fca 516 (version "0.1.4")
86e278fc
AE
517 (source
518 (origin
519 (method url-fetch)
9ed31fca 520 (uri (string-append "https://dev-www.libreoffice.org/src/" name "/"
86e278fc
AE
521 name "-" version ".tar.xz"))
522 (sha256 (base32
9ed31fca 523 "1fhkn013gzg59f4z7rldpbi0nj7lgdqzxanspsqa6axvmahw2dpg"))))
86e278fc
AE
524 (build-system gnu-build-system)
525 (native-inputs
526 `(("doxygen" ,doxygen)
527 ("pkg-config" ,pkg-config)))
e39cc723
AE
528 (propagated-inputs ; in Requires or Requires.private field of .pkg
529 `(("icu4c" ,icu4c)
86e278fc
AE
530 ("librevenge" ,librevenge)
531 ("zlib" ,zlib)))
e39cc723
AE
532 (inputs
533 `(("boost" ,boost)))
86e278fc
AE
534 (home-page "https://wiki.documentfoundation.org/DLP/Libraries/libmspub")
535 (synopsis "Library for parsing the Microsoft Publisher format")
536 (description "Libmspub is a library that parses the file format of
537Microsoft Publisher documents of all versions.")
538 (license mpl2.0)))
f5d4a138 539
aeba7d46
JB
540(define-public libnumbertext
541 (package
542 (name "libnumbertext")
8e9a84d9 543 (version "1.0.5")
aeba7d46
JB
544 (source
545 (origin
546 (method url-fetch)
8e9a84d9
TGR
547 (uri (string-append "https://github.com/Numbertext/libnumbertext/"
548 "releases/download/" version
549 "/libnumbertext-" version ".tar.xz"))
aeba7d46 550 (sha256
8e9a84d9 551 (base32 "1xzlwhwwhvr76kfdsw5gvfjfdayz803z65h331gv5dpc9imhijg1"))))
aeba7d46
JB
552 (build-system gnu-build-system)
553 (arguments
554 `(#:configure-flags '("--disable-static")))
aeba7d46
JB
555 (home-page "https://github.com/Numbertext/libnumbertext")
556 (synopsis "Language-neutral @code{NUMBERTEXT} and @code{MONEYTEXT} functions")
557 (description
558 "The libnumbertext library provides language-neutral @code{NUMBERTEXT}
559and @code{MONEYTEXT} functions for LibreOffice Calc, available for C++ and
560Java.")
561 (license (list lgpl3+ bsd-3))))
562
f5d4a138
AE
563(define-public libpagemaker
564 (package
565 (name "libpagemaker")
c7cc1fcb 566 (version "0.0.4")
f5d4a138
AE
567 (source
568 (origin
569 (method url-fetch)
cb4c99ce
TGR
570 (uri (string-append "https://dev-www.libreoffice.org/src/libpagemaker/"
571 "libpagemaker-" version ".tar.xz"))
f5d4a138 572 (sha256 (base32
c7cc1fcb 573 "17ai8ajffr0ixxmmcv3k5vgjlcsix38ldb4fw2arild70pbsrbb6"))))
f5d4a138 574 (build-system gnu-build-system)
66679ab9
MB
575 (arguments
576 `(#:configure-flags '("--disable-werror")))
f5d4a138
AE
577 (native-inputs
578 `(("doxygen" ,doxygen)
579 ("pkg-config" ,pkg-config)))
493b6e28 580 (propagated-inputs ; in Requires field of .pkg
86d648ea 581 `(("librevenge" ,librevenge)))
f5d4a138
AE
582 (inputs
583 `(("boost" ,boost)
f5d4a138 584 ("zlib" ,zlib)))
f5d4a138
AE
585 (home-page "https://wiki.documentfoundation.org/DLP/Libraries/libpagemaker")
586 (synopsis "Library for parsing the PageMaker format")
587 (description "Libpagemaker is a library that parses the file format of
588Aldus/Adobe PageMaker documents. Currently it only understands documents
589created by PageMaker version 6.x and 7.")
590 (license mpl2.0)))
56203284
AE
591
592(define-public libvisio
593 (package
594 (name "libvisio")
e25973e1 595 (version "0.1.7")
56203284
AE
596 (source
597 (origin
598 (method url-fetch)
9a4f6ceb
TGR
599 (uri (string-append "http://dev-www.libreoffice.org/src/libvisio/"
600 "libvisio-" version ".tar.xz"))
56203284 601 (sha256 (base32
e25973e1 602 "0k7adcbbf27l7n453cca1m6s9yj6qvb5j6bsg2db09ybf3w8vbwg"))))
56203284
AE
603 (build-system gnu-build-system)
604 (native-inputs
605 `(("cppunit" ,cppunit)
606 ("doxygen" ,doxygen)
607 ("gperf" ,gperf)
608 ("perl" ,perl)
609 ("pkg-config" ,pkg-config)))
a3be6b8b
AE
610 (propagated-inputs ; in Requires or Requires.private field of .pkg
611 `(("icu4c" ,icu4c)
56203284
AE
612 ("librevenge" ,librevenge)
613 ("libxml2" ,libxml2)))
a3be6b8b
AE
614 (inputs
615 `(("boost" ,boost)))
56203284
AE
616 (home-page "https://wiki.documentfoundation.org/DLP/Libraries/libvisio")
617 (synopsis "Library for parsing the Microsoft Visio format")
618 (description "Libvisio is a library that parses the file format of
619Microsoft Visio documents of all versions.")
620 (license mpl2.0)))
74a63b11
AE
621
622(define-public libodfgen
623 (package
624 (name "libodfgen")
cd4540ee 625 (version "0.1.7")
74a63b11
AE
626 (source
627 (origin
628 (method url-fetch)
9148ed7c
TGR
629 (uri (string-append "mirror://sourceforge/libwpd/libodfgen/"
630 "libodfgen-" version "/libodfgen-" version ".tar.xz"))
74a63b11 631 (sha256 (base32
cd4540ee 632 "0cdq48wlpp8m0qmndybv64r0m4vh0qsqx69cn6ms533cjlgljgij"))))
74a63b11
AE
633 (build-system gnu-build-system)
634 (native-inputs
635 `(("doxygen" ,doxygen)
636 ("pkg-config" ,pkg-config)))
3b5199b3
AE
637 (propagated-inputs ; in Requires field of .pkg
638 `(("librevenge" ,librevenge)))
74a63b11
AE
639 (inputs
640 `(("boost" ,boost)
74a63b11
AE
641 ("zlib" ,zlib)))
642 (arguments
643 ;; avoid triggering configure errors by simple inclusion of boost headers
644 `(#:configure-flags '("--disable-werror")))
3b3b60d0 645 (home-page "https://sourceforge.net/p/libwpd/wiki/libodfgen/")
74a63b11
AE
646 (synopsis "ODF (Open Document Format) library")
647 (description "Libodfgen is a library for generating documents in the
648Open Document Format (ODF). It provides generator implementations for all
649document interfaces supported by librevenge:
650text documents, vector drawings, presentations and spreadsheets.")
651 (license (list mpl2.0 lgpl2.1+)))) ; dual license
1d59b83b
AE
652
653(define-public libmwaw
654 (package
655 (name "libmwaw")
44aaf1e0 656 (version "0.3.15")
1d59b83b
AE
657 (source
658 (origin
659 (method url-fetch)
7b7abb07
TGR
660 (uri (string-append "mirror://sourceforge/libmwaw/libmwaw/libmwaw-"
661 version "/libmwaw-" version ".tar.xz"))
1d59b83b 662 (sha256 (base32
44aaf1e0 663 "1cdhm9yhanyv3w4vr73zhgyynmkhhkp3dyld7m11jd2yy04vnh04"))))
1d59b83b
AE
664 (build-system gnu-build-system)
665 (native-inputs
666 `(("doxygen" ,doxygen)
667 ("pkg-config" ,pkg-config)))
49c941b4 668 (propagated-inputs ; in Requires field of .pkg
b819182d 669 `(("librevenge" ,librevenge)))
1d59b83b
AE
670 (inputs
671 `(("boost" ,boost)
1d59b83b 672 ("zlib" ,zlib)))
3b3b60d0 673 (home-page "https://sourceforge.net/p/libmwaw/wiki/Home/")
1d59b83b
AE
674 (synopsis "Import library for some old Macintosh text documents")
675 (description "Libmwaw contains some import filters for old Macintosh
676text documents (MacWrite, ClarisWorks, ... ) and for some graphics and
677spreadsheet documents.")
49c941b4 678 (license (list mpl2.0 lgpl2.1+)))) ; dual license
22e52dbd
TD
679
680(define-public libstaroffice
681 (package
682 (name "libstaroffice")
c4419598 683 (version "0.0.6")
22e52dbd
TD
684 (source
685 (origin
686 (method url-fetch)
687 (uri (string-append "https://github.com/fosnola/libstaroffice/releases/download/"
688 version "/libstaroffice-" version ".tar.xz"))
689 (sha256 (base32
c4419598 690 "1i0ykl0c94lc1qzb5mbyf9jr7qw8p38ja424whmhgrllh7ny203b"))))
22e52dbd
TD
691 (build-system gnu-build-system)
692 (inputs
693 `(("librevenge" ,librevenge)
694 ("zlib" ,zlib)))
695 (native-inputs
696 `(("pkg-config" ,pkg-config)))
697 (home-page "https://github.com/fosnola/libstaroffice")
698 (synopsis "Provides LibreOffice support for old StarOffice documents")
699 (description "@code{libstaroffice} is an import filter for the document formats
700from the old StarOffice (.sdc, .sdw, ...).")
1d59b83b 701 (license (list mpl2.0 lgpl2.1+)))) ; dual license
82741a8a
AE
702
703(define-public libwps
704 (package
705 (name "libwps")
002d73a0 706 (version "0.4.10")
82741a8a
AE
707 (source
708 (origin
709 (method url-fetch)
710 (uri (string-append "mirror://sourceforge/" name "/" name "/"
de67e922 711 name "-" version "/" name "-" version ".tar.xz"))
82741a8a 712 (sha256 (base32
002d73a0 713 "1ji9zd4wxmas03g8jyx0ih0amrqfazm5874a2v9rd7va50sf088l"))))
82741a8a
AE
714 (build-system gnu-build-system)
715 (native-inputs
716 `(("doxygen" ,doxygen)
717 ("pkg-config" ,pkg-config)))
002d73a0 718 (propagated-inputs ; in Requires field of .pkg
baa941e6 719 `(("librevenge" ,librevenge)))
82741a8a
AE
720 (inputs
721 `(("boost" ,boost)
82741a8a 722 ("zlib" ,zlib)))
82741a8a
AE
723 (home-page "http://libwps.sourceforge.net/")
724 (synopsis "Import library for Microsoft Works text documents")
725 (description "Libwps is a library for importing files in the Microsoft
726Works word processor file format.")
002d73a0 727 (license (list mpl2.0 lgpl2.1+)))) ; dual license
2a9a9441 728
741916f1
TD
729(define-public libzmf
730 (package
731 (name "libzmf")
7cb3e9d3 732 (version "0.0.2")
741916f1
TD
733 (source
734 (origin
735 (method url-fetch)
736 (uri (string-append "http://dev-www.libreoffice.org/src/libzmf/libzmf-"
737 version ".tar.xz"))
738 (sha256 (base32
7cb3e9d3 739 "08mg5kmkjrmqrd8j5rkzw9vdqlvibhb1ynp6bmfxnzq5rcq1l197"))))
741916f1 740 (build-system gnu-build-system)
244a0d5a
LC
741 (arguments
742 ;; A harmless 'sign-compare' error pops up on i686 so disable '-Werror'.
743 '(#:configure-flags '("--disable-werror")))
741916f1
TD
744 (inputs
745 `(("boost" ,boost)
746 ("icu4c" ,icu4c)
747 ("libpng" ,libpng)
748 ("librevenge" ,librevenge)
749 ("zlib" ,zlib)))
750 (native-inputs
751 `(("cppunit" ,cppunit)
752 ("doxygen" ,doxygen)
753 ("pkg-config" ,pkg-config)))
754 (home-page "https://wiki.documentfoundation.org/DLP/Libraries/libzmf")
755 (synopsis "Parses file format of Zoner Callisto/Draw documents")
756 (description "Libzmf is a library that parses the file format of Zoner
757Callisto/Draw documents. Currently it only understands documents created by
758Zoner Draw version 4 and 5.")
759 (license mpl2.0)))
760
2a9a9441
AE
761(define-public hunspell
762 (package
763 (name "hunspell")
15ad9eb6 764 (version "1.7.0")
2a9a9441 765 (source
15ad9eb6
EF
766 (origin
767 (method git-fetch)
768 (uri (git-reference
769 (url "https://github.com/hunspell/hunspell")
770 (commit (string-append "v" version))))
771 (file-name (git-file-name name version))
772 (sha256
773 (base32
774 "0qxlkd012r45ppd21kldbq9k5ac5nmxz290z6m2kch9l56v768k1"))))
2a9a9441 775 (build-system gnu-build-system)
a40af5d0
TGR
776 (native-inputs
777 `(("autoconf" ,autoconf)
778 ("automake" ,automake)
779 ("libtool" ,libtool)))
17c2294c
TGR
780 (inputs
781 `(("perl" ,perl)))
31daf893
LC
782 (native-search-paths (list (search-path-specification
783 (variable "DICPATH")
784 (files '("share/hunspell")))))
fc3560ff 785 (home-page "https://hunspell.github.io/")
2a9a9441
AE
786 (synopsis "Spell checker")
787 (description "Hunspell is a spell checker and morphological analyzer
788library and program designed for languages with rich morphology and complex
789word compounding or character encoding.")
17c2294c 790 ;; Triple license, including "mpl1.1 or later".
2a9a9441 791 (license (list mpl1.1 gpl2+ lgpl2.1+))))
1c625dd3 792
4db733e7
LC
793(define (dicollecte-french-dictionary variant synopsis)
794 ;; Return a French dictionary package from dicollecte.org, for the given
795 ;; VARIANT.
796 (package
797 (name (match variant
798 ("classique" "hunspell-dict-fr")
799 (_ (string-append "hunspell-dict-fr-" variant))))
d4b8fa5d 800 (version "6.2")
4db733e7
LC
801 (source (origin
802 (uri (string-append
803 "http://www.dicollecte.org/download/fr/hunspell-french-dictionaries-v"
804 version ".zip"))
805 (method url-fetch)
806 (sha256
807 (base32
d4b8fa5d 808 "139hfrn5p87sl8hqmgkf6sgvnxrk2mm8vd8xsm8sm98qjnwlg0f9"))))
4db733e7
LC
809 (build-system trivial-build-system)
810 (native-inputs `(("unzip" ,unzip)))
811 (arguments
812 `(#:modules ((guix build utils))
813 #:builder (begin
814 (use-modules (guix build utils)
815 (srfi srfi-26))
816
817 (let* ((out (assoc-ref %outputs "out"))
818 (hunspell (string-append out "/share/hunspell"))
819 (myspell (string-append out "/share/myspell"))
820 (doc (string-append out "/share/doc/"
821 ,name))
822 (unzip (assoc-ref %build-inputs "unzip")))
e3cfef22
MW
823 (invoke (string-append unzip "/bin/unzip")
824 (assoc-ref %build-inputs "source"))
4db733e7
LC
825 (for-each (cut install-file <> hunspell)
826 (find-files "."
827 ,(string-append variant
828 "\\.(dic|aff)$")))
829 (mkdir-p myspell)
830 (symlink hunspell (string-append myspell "/dicts"))
831 (for-each (cut install-file <> doc)
832 (find-files "." "\\.(txt|org|md)$"))
833 #t))))
834 (synopsis synopsis)
835 (description
836 "This package provides a dictionary for the Hunspell spell-checking
837library.")
838 (home-page "https://www.dicollecte.org/home.php?prj=fr")
839 (license mpl2.0)))
840
841(define-syntax define-french-dictionary
842 (syntax-rules (synopsis)
843 ((_ name variant (synopsis text))
844 (define-public name
845 (dicollecte-french-dictionary variant text)))))
846
847(define-french-dictionary hunspell-dict-fr-classique
848 "classique"
849 ;; TRANSLATORS: In French, this is "Français classique".
850 (synopsis "Hunspell dictionary for ``classic'' French (recommended)"))
851
852(define-french-dictionary hunspell-dict-fr-moderne
853 "moderne"
854 ;; TRANSLATORS: In French, this is "Français moderne".
855 (synopsis "Hunspell dictionary for ``modern'' French"))
856
857(define-french-dictionary hunspell-dict-fr-réforme-1990
858 "reforme1990"
859 (synopsis "Hunspell dictionary for the post @dfn{1990 réforme} French"))
860
861(define-french-dictionary hunspell-dict-fr-toutes-variantes
862 "toutesvariantes"
863 (synopsis "Hunspell dictionary for all variants of French"))
864
1c625dd3
AE
865(define-public hyphen
866 (package
867 (name "hyphen")
868 (version "2.8.8")
869 (source
870 (origin
871 (method url-fetch)
de67e922
LF
872 (uri (string-append "mirror://sourceforge/hunspell/Hyphen/"
873 (version-major+minor version) "/"
1c625dd3
AE
874 name "-" version ".tar.gz"))
875 (sha256 (base32
876 "01ap9pr6zzzbp4ky0vy7i1983fwyqy27pl0ld55s30fdxka3ciih"))))
877 (build-system gnu-build-system)
878 (inputs
879 `(("perl" ,perl)))
880 (home-page "http://hunspell.sourceforge.net/")
881 (synopsis "Hyphenation library")
882 (description "Hyphen is a hyphenation library using TeX hyphenation
883patterns, which are pre-processed by a perl script.")
884 ;; triple license, including "mpl1.1 or later"
885 (license (list mpl1.1 mpl2.0 gpl2+ lgpl2.1+))))
2320ea1a
AE
886
887(define-public mythes
888 (package
889 (name "mythes")
890 (version "1.2.4")
891 (source
892 (origin
893 (method url-fetch)
de67e922 894 (uri (string-append "mirror://sourceforge/hunspell/MyThes/" version "/"
2320ea1a
AE
895 name "-" version ".tar.gz"))
896 (sha256 (base32
897 "0prh19wy1c74kmzkkavm9qslk99gz8h8wmjvwzjc6lf8v2az708y"))))
898 (build-system gnu-build-system)
899 (native-inputs
900 `(("pkg-config" ,pkg-config)))
901 (inputs
902 `(("hunspell" ,hunspell)
903 ("perl" ,perl)))
904 (home-page "http://hunspell.sourceforge.net/")
905 (synopsis "Thesaurus")
906 (description "MyThes is a simple thesaurus that uses a structured text
907data file and an index file with binary search to look up words and phrases
e881752c 908and to return information on pronunciations, meanings and synonyms.")
2320ea1a
AE
909 (license (non-copyleft "file://COPYING"
910 "See COPYING in the distribution."))))
16c62e1f 911
4e4dcd47
RW
912(define-public libqxp
913 (package
914 (name "libqxp")
4290b265 915 (version "0.0.2")
4e4dcd47
RW
916 (source (origin
917 (method url-fetch)
918 (uri (string-append "https://dev-www.libreoffice.org/src/libqxp/"
919 "libqxp-" version ".tar.xz"))
920 (sha256
921 (base32
4290b265 922 "0p4lb84m05wqd8qr8ni9sp80ivlm83ffn0nxiv4m42hj22qvcdz1"))))
4e4dcd47
RW
923 (build-system gnu-build-system)
924 (inputs
925 `(("boost" ,boost)
926 ("icu4c" ,icu4c)
927 ("zlib" ,zlib)))
928 (native-inputs
929 `(("cppunit" ,cppunit)
930 ("pkg-config" ,pkg-config)))
931 (propagated-inputs
932 `(("librevenge" ,librevenge))) ; mentioned in Requires field
933 (home-page "https://www.libreoffice.org")
934 (synopsis "Library and tools for the QuarkXPress file format")
935 (description "libqxp is a library and a set of tools for reading and
936converting QuarkXPress file format. It supports versions 3.1 to 4.1.")
937 (license mpl2.0)))
938
16c62e1f
AE
939(define-public libreoffice
940 (package
941 (name "libreoffice")
d0ef3a00 942 (version "6.3.4.2")
16c62e1f
AE
943 (source
944 (origin
52b0a352
JB
945 (method url-fetch)
946 (uri
16c62e1f 947 (string-append
52b0a352
JB
948 "https://download.documentfoundation.org/libreoffice/src/"
949 (version-prefix version 3) "/libreoffice-" version ".tar.xz"))
950 (sha256
951 (base32
d0ef3a00 952 "1774vmf3lr5x24ikpn1z5vqcdwrhiwfkjy7sx09jqkvpm6d5awnb"))
e0efda95
EF
953 (patches (search-patches "libreoffice-icu.patch"
954 "libreoffice-glm.patch"))
143fc1a5
MB
955 (modules '((guix build utils)))
956 (snippet
957 '(begin
958 (for-each (lambda (file)
959 ;; Adjust to renamed function in Poppler 0.72.
960 (substitute* file (("getCString") "c_str")))
961 (find-files "sdext/source/pdfimport/xpdfwrapper"))
962 #t))))
994bccd9 963 (build-system glib-or-gtk-build-system)
16c62e1f 964 (native-inputs
b4c9a317 965 `(("bison" ,bison)
7f81f8bc 966 ("cppunit" ,cppunit)
16c62e1f
AE
967 ("flex" ,flex)
968 ("pkg-config" ,pkg-config)
5bf83422 969 ("python" ,python-wrapper)
16c62e1f
AE
970 ("which" ,which)))
971 (inputs
972 `(("bluez" ,bluez)
973 ("boost" ,boost)
974 ("clucene" ,clucene)
975 ("cups" ,cups)
976 ("dbus-glib" ,dbus-glib)
977 ("fontconfig" ,fontconfig)
e0efda95 978 ("fontforge" ,fontforge)
16c62e1f
AE
979 ("gconf" ,gconf)
980 ("glew" ,glew)
981 ("glm" ,glm)
4e64eca4
EF
982 ("gnupg" ,gnupg)
983 ("gobject-introspection" ,gobject-introspection)
16c62e1f 984 ("gperf" ,gperf)
b4c9a317 985 ("gpgme" ,gpgme)
16c62e1f
AE
986 ("graphite2" ,graphite2)
987 ("gst-plugins-base" ,gst-plugins-base)
074ff555 988 ("gtk+" ,gtk+)
16c62e1f
AE
989 ("harfbuzz" ,harfbuzz)
990 ("hunspell" ,hunspell)
991 ("hyphen" ,hyphen)
992 ("libabw" ,libabw)
993 ("libcdr" ,libcdr)
994 ("libcmis" ,libcmis)
b4c9a317 995 ("libjpeg-turbo" ,libjpeg-turbo)
16c62e1f 996 ("libe-book" ,libe-book)
54179e24 997 ("libepubgen" ,libepubgen)
16c62e1f
AE
998 ("libetonyek" ,libetonyek)
999 ("libexttextcat" ,libexttextcat)
1000 ("libfreehand" ,libfreehand)
17e56dac 1001 ("liblangtag" ,liblangtag)
b4c9a317
MB
1002 ;; XXX: Perhaps this should be propagated from xmlsec.
1003 ("libltdl" ,libltdl)
16c62e1f
AE
1004 ("libmspub" ,libmspub)
1005 ("libmwaw" ,libmwaw)
52b0a352 1006 ("libnumbertext" ,libnumbertext)
16c62e1f
AE
1007 ("libodfgen" ,libodfgen)
1008 ("libpagemaker" ,libpagemaker)
54179e24 1009 ("libqxp" ,libqxp)
b1a8fd2d 1010 ("libstaroffice" ,libstaroffice)
16c62e1f
AE
1011 ("libvisio" ,libvisio)
1012 ("libwpg" ,libwpg)
1013 ("libwps" ,libwps)
1014 ("libxrandr" ,libxrandr)
1015 ("libxrender" ,libxrender)
1016 ("libxslt" ,libxslt)
1017 ("libxt" ,libxt)
b1a8fd2d 1018 ("libzmf" ,libzmf)
16c62e1f 1019 ("lpsolve" ,lpsolve)
2c9d3416 1020 ("mariadb" ,mariadb "dev")
16c62e1f
AE
1021 ("mdds" ,mdds)
1022 ("mythes" ,mythes)
1023 ("neon" ,neon)
1024 ("nspr" ,nspr)
1025 ("nss" ,nss)
1026 ("openldap" ,openldap)
1027 ("openssl" ,openssl)
1028 ("orcus" ,orcus)
1029 ("perl" ,perl)
b6f024ad 1030 ("perl-archive-zip" ,perl-archive-zip)
16c62e1f
AE
1031 ("poppler" ,poppler)
1032 ("postgresql" ,postgresql)
1033 ("python" ,python)
52b0a352 1034 ("python-lxml" ,python-lxml)
16c62e1f 1035 ("redland" ,redland)
4c928743 1036 ("sane-backends" ,sane-backends)
16c62e1f
AE
1037 ("unixodbc" ,unixodbc)
1038 ("unzip" ,unzip)
1039 ("vigra" ,vigra)
afb986e7 1040 ("xdg-utils" ,xdg-utils)
b4c9a317 1041 ("xmlsec" ,xmlsec-nss)
16c62e1f
AE
1042 ("zip" ,zip)))
1043 (arguments
ebc81631 1044 `(#:tests? #f ; Building the tests already fails.
16c62e1f
AE
1045 #:make-flags '("build-nocheck") ; Do not build unit tests, which fails.
1046 #:phases
1047 (modify-phases %standard-phases
1048 (add-before 'configure 'prepare-src
1049 (lambda* (#:key inputs #:allow-other-keys)
54179e24 1050 (substitute*
16c62e1f
AE
1051 (list "sysui/CustomTarget_share.mk"
1052 "solenv/gbuild/gbuild.mk"
b1a8fd2d 1053 "solenv/gbuild/platform/unxgcc.mk")
54179e24
RW
1054 (("/bin/sh") (which "sh")))
1055
1056 ;; GPGME++ headers are installed in a gpgme++ subdirectory, but
1057 ;; files in "xmlsecurity/source/gpg/" and elsewhere expect to
1058 ;; find them on the include path without a prefix.
1059 (substitute* '("xmlsecurity/Library_xsec_xmlsec.mk"
1060 "comphelper/Library_comphelper.mk")
1061 (("\\$\\$\\(INCLUDE\\)")
1062 (string-append "$$(INCLUDE) -I"
1063 (assoc-ref inputs "gpgme")
1064 "/include/gpgme++")))
1065
afb986e7
CM
1066 ;; /usr/bin/xdg-open doesn't exist on Guix System.
1067 (substitute* '("shell/source/unix/exec/shellexec.cxx"
1068 "shell/source/unix/misc/senddoc.sh")
1069 (("/usr/bin/xdg-open")
1070 (string-append (assoc-ref inputs "xdg-utils")
1071 "/bin/xdg-open")))
1072
54179e24 1073 #t))
3bfa7af4 1074 (add-after 'install 'bin-and-desktop-install
cb72d343
AK
1075 ;; Create 'soffice' and 'libreoffice' symlinks to the executable
1076 ;; script.
16c62e1f 1077 (lambda* (#:key outputs #:allow-other-keys)
3bfa7af4
AW
1078 (let ((out (assoc-ref outputs "out")))
1079 (define (symlink-output src dst)
1080 (mkdir-p (dirname (string-append out dst)))
1081 (symlink (string-append out src) (string-append out dst)))
1082 (define (install src dst)
1083 (let ((dst (string-append out dst)))
1084 (mkdir-p (dirname dst))
1085 (copy-file src dst)))
1086 (define (install-desktop-file app)
1087 (let ((src (string-append "/lib/libreoffice/share/xdg/"
1088 app ".desktop"))
1089 (dst (string-append "/share/applications/libreoffice-"
1090 app ".desktop")))
1091 (substitute* (string-append out src)
1092 (("Exec=libreoffice[0-9]+\\.[0-9]+ ")
1093 (string-append "Exec=" out "/bin/libreoffice "))
17e56dac
TD
1094 (("Icon=libreoffice.*")
1095 (string-append "Icon=" app "\n"))
3bfa7af4
AW
1096 (("LibreOffice [0-9]+\\.[0-9]+")
1097 "LibreOffice"))
17e56dac
TD
1098 (symlink-output src dst)))
1099 (define (install-appdata app)
1100 (install-file (string-append
3bfa7af4
AW
1101 "sysui/desktop/appstream-appdata/"
1102 "libreoffice-" app ".appdata.xml")
17e56dac 1103 (string-append out "/share/appdata")))
3bfa7af4
AW
1104 (symlink-output "/lib/libreoffice/program/soffice"
1105 "/bin/soffice")
1106 (symlink-output "/lib/libreoffice/program/soffice"
1107 "/bin/libreoffice")
1108 (install "workdir/CustomTarget/sysui/share/libreoffice/openoffice.keys"
1109 "/share/mime-info/libreoffice.keys")
1110 (install "workdir/CustomTarget/sysui/share/libreoffice/openoffice.mime"
1111 "/share/mime-info/libreoffice.mime")
1112 (install
1113 "workdir/CustomTarget/sysui/share/libreoffice/openoffice.org.xml"
1114 "/share/mime/packages/libreoffice.xml")
1115 (for-each install-desktop-file
17e56dac
TD
1116 '("base" "calc" "draw" "impress" "writer"
1117 "math" "startcenter"))
1118 (for-each install-appdata
3bfa7af4 1119 '("base" "calc" "draw" "impress" "writer"))
17e56dac 1120 (mkdir-p (string-append out "/share/icons/hicolor"))
3bfa7af4 1121 (copy-recursively "sysui/desktop/icons/hicolor"
17e56dac 1122 (string-append out "/share/icons/hicolor")))
16c62e1f
AE
1123 #t)))
1124 #:configure-flags
1125 (list
1126 "--enable-release-build"
cddc044c
EB
1127 ;; Avoid using all cpu cores by default
1128 (format #f "--with-parallelism=~d" (parallel-job-count))
16c62e1f
AE
1129 "--disable-fetch-external" ; disable downloads
1130 "--with-system-libs" ; enable all --with-system-* flags
1131 (string-append "--with-boost-libdir="
1132 (assoc-ref %build-inputs "boost") "/lib")
c91d3fb7
EB
1133 ;; Avoid undefined symbols required by boost::spirit
1134 "LDFLAGS=-lboost_system"
16c62e1f
AE
1135 ;; Avoid a dependency on ucpp.
1136 "--with-idlc-cpp=cpp"
1137 ;; The fonts require an external tarball (crosextrafonts).
1138 ;; They should not be needed when system fonts are available.
1139 "--without-fonts"
1140 ;; With java, the build fails since sac.jar is missing.
1141 "--without-java"
1142 ;; FIXME: Enable once the corresponding inputs are packaged.
16c62e1f
AE
1143 "--disable-coinmp"
1144 "--disable-firebird-sdbc" ; embedded firebird
b4c9a317
MB
1145 ;; XXX: PDFium support requires fetching an external tarball and
1146 ;; patching the build scripts to work with GCC5. Try enabling this
1147 ;; when our default compiler is >=GCC 6.
1148 "--disable-pdfium"
42ca84be 1149 "--disable-gtk" ; disable use of GTK+ 2
e0efda95
EF
1150 "--without-doxygen"
1151 "--enable-build-opensymbol")))
16c62e1f
AE
1152 (home-page "https://www.libreoffice.org/")
1153 (synopsis "Office suite")
1154 (description "LibreOffice is a comprehensive office suite. It contains
1155a number of components: Writer, a word processor; Calc, a spreadsheet
1156application; Impress, a presentation engine; Draw, a drawing and
1157flowcharting application; Base, a database and database frontend;
1158Math for editing mathematics.")
1159 (license mpl2.0)))