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