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