Commit | Line | Data |
---|---|---|
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 | |
109 | expressions stored in multiple named targets, or \"cells\". The cells can | |
110 | be referenced from each other, and the library takes care of resolving | |
111 | their 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 | |
136 | file processing filters. It is currently focused on providing filters for | |
137 | spreadsheet documents. The library includes import filters for | |
138 | Microsoft Excel 2007 XML, Microsoft Excel 2003 XML, Open Document Spreadsheet, | |
139 | Plain Text, Gnumeric XML, Generic XML. It also includes low-level parsers for | |
140 | CSV, 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 | |
189 | that LibreOffice can import, to any format it can export. It can be used for | |
190 | batch processing and can apply custom style templates and filters. | |
191 | ||
192 | Unoconv converts between over a hundred formats, including Open Document | |
193 | Format (@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 | ||
197 | All 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 | |
226 | filters. It has interfaces for text documents, vector graphics, | |
227 | spreadsheets 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 | |
253 | WordPerfect documents. It is most commonly used to import such documents | |
254 | into 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 | |
290 | converting various reflowable e-book formats. Currently supported are: | |
291 | Broad Band eBook, eReader .pdb, FictionBook v. 2 (including zipped files), | |
292 | PalmDoc Ebook, Plucker .pdb, QiOO (mobile format, for java-enabled | |
293 | cellphones), TCR (simple compressed text format), TealDoc, zTXT, | |
294 | ZVR (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 | |
319 | librevenge's text document interface and--currently in a very limited | |
320 | way--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 | |
344 | working 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 | |
381 | allows C++ applications to connect to any ECM behaving as a CMIS server such | |
382 | as 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 | |
407 | AbiWord 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 | |
431 | CorelDRAW 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 | |
457 | Apple 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 | |
479 | for identifying languages as described in RFC 5646. It supports the | |
480 | extensions described in RFC6067 and RFC6497, and Extension T for | |
481 | language/locale identifiers as described in the Unicode CLDR | |
482 | standard 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 | |
500 | library 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 | |
537 | Aldus/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 | |
569 | Microsoft 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} | |
591 | and @code{MONEYTEXT} functions for LibreOffice Calc, available for C++ and | |
592 | Java.") | |
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 | |
618 | Aldus/Adobe PageMaker documents. Currently it only understands documents | |
619 | created 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 | |
643 | Microsoft 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 | |
670 | Open Document Format (ODF). It provides generator implementations for all | |
671 | document interfaces supported by librevenge: | |
672 | text 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 | |
696 | text documents (MacWrite, ClarisWorks, ... ) and for some graphics and | |
697 | spreadsheet 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 | |
719 | from 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 | |
743 | Works 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 | |
768 | Callisto/Draw documents. Currently it only understands documents created by | |
769 | Zoner 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 | |
797 | library and program designed for languages with rich morphology and complex | |
798 | word 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 | |
846 | library.") | |
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 | |
919 | library.") | |
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 | |
953 | spell-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 | |
975 | patterns, 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 | |
999 | data file and an index file with binary search to look up words and phrases | |
e881752c | 1000 | and 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 | |
1025 | converting 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 | |
1258 | a number of components: Writer, a word processor; Calc, a spreadsheet | |
1259 | application; Impress, a presentation engine; Draw, a drawing and | |
1260 | flowcharting application; Base, a database and database frontend; | |
1261 | Math for editing mathematics.") | |
fa2a0fd0 | 1262 | (license license:mpl2.0))) |