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