projects/guix·blob python-team · refs

476 lines · 16.0 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2024-2026 Sughosha <[email protected]>
3;;; Copyright © 2025 Junker <[email protected]>
4;;; Copyright © 2025 Ghislain Vaillant <[email protected]>
5;;;
6;;; This file is part of GNU Guix.
7;;;
8;;; GNU Guix is free software; you can redistribute it and/or modify it
9;;; under the terms of the GNU General Public License as published by
10;;; the Free Software Foundation; either version 3 of the License, or (at
11;;; your option) any later version.
12;;;
13;;; GNU Guix is distributed in the hope that it will be useful, but
14;;; WITHOUT ANY WARRANTY; without even the implied warranty of
15;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16;;; GNU General Public License for more details.
17;;;
18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20
21(define-module (gnu packages kde-office)
22 #:use-module (guix packages)
23 #:use-module (guix download)
24 #:use-module (guix git-download)
25 #:use-module (guix build-system qt)
26 #:use-module (guix gexp)
27 #:use-module (guix utils)
28 #:use-module ((guix licenses) #:prefix license:)
29 #:use-module (gnu packages)
30 #:use-module (gnu packages algebra)
31 #:use-module (gnu packages boost)
32 #:use-module (gnu packages cdrom)
33 #:use-module (gnu packages compression)
34 #:use-module (gnu packages fontutils)
35 #:use-module (gnu packages freedesktop)
36 #:use-module (gnu packages glib)
37 #:use-module (gnu packages ghostscript)
38 #:use-module (gnu packages graphics)
39 #:use-module (gnu packages hunspell)
40 #:use-module (gnu packages kde-graphics)
41 #:use-module (gnu packages kde-frameworks)
42 #:use-module (gnu packages kde-graphics)
43 #:use-module (gnu packages kde-multimedia)
44 #:use-module (gnu packages kde-pim)
45 #:use-module (gnu packages libreoffice)
46 #:use-module (gnu packages maths)
47 #:use-module (gnu packages markup)
48 #:use-module (gnu packages mp3)
49 #:use-module (gnu packages networking)
50 #:use-module (gnu packages ocr)
51 #:use-module (gnu packages pdf)
52 #:use-module (gnu packages perl)
53 #:use-module (gnu packages pkg-config)
54 #:use-module (gnu packages qt)
55 #:use-module (gnu packages serialization)
56 #:use-module (gnu packages speech)
57 #:use-module (gnu packages tls)
58 #:use-module (gnu packages version-control)
59 #:use-module (gnu packages window-management)
60 #:use-module (gnu packages xdisorg)
61 #:use-module (gnu packages xml)
62 #:use-module (gnu packages xorg))
63
64(define-public calligra
65 (package
66 (name "calligra")
67 (version "26.04.3")
68 (source (origin
69 (method git-fetch)
70 (uri (git-reference
71 (url "https://invent.kde.org/office/calligra.git")
72 (commit (string-append "v" version))))
73 (file-name (git-file-name name version))
74 (sha256
75 (base32 "1b9yyrq307y129aaa6k4myi8xwz0pd7kzhvn2svgjcswm945w1i6"))))
76 (build-system qt-build-system)
77 (arguments
78 (list #:qtbase qtbase
79 ;; XXX: 26/164 tests fail.
80 #:tests? #f))
81 (native-inputs
82 (list extra-cmake-modules kdoctools perl pkg-config))
83 (inputs
84 (list boost
85 eigen
86 fontconfig
87 freetype
88 gsl
89 imath
90 karchive
91 kcmutils
92 kcompletion
93 kconfig
94 kconfigwidgets
95 kcoreaddons
96 kcrash
97 kdbusaddons
98 kdiagram
99 kguiaddons
100 ki18n
101 kiconthemes
102 kio
103 kitemviews
104 kjobwidgets
105 knotifications
106 knotifyconfig
107 ktextwidgets
108 kwidgetsaddons
109 kwindowsystem
110 kxmlgui
111 lcms
112 libdisplay-info
113 libetonyek
114 libgit2
115 libodfgen
116 librevenge
117 libvisio
118 libwpd
119 libwpg
120 libwps
121 libxkbcommon
122 okular
123 openexr
124 openssl
125 phonon
126 poppler-qt6
127 pstoedit
128 qca-qt6
129 qtkeychain-qt6
130 qtsvg
131 qtwayland
132 qtwebengine
133 shared-mime-info
134 sonnet
135 threadweaver
136 zlib))
137 (home-page "https://calligra.org/")
138 (synopsis "Office and graphic art suite")
139 (description
140 "Calligra Suite is a collection of office applications linked together by
141a common base.
142
143The applications currently included in Calligra Suite are:
144
145Office productivity:
146@itemize
147@item Words: Word processor
148@item Sheets: Spreadsheet calculator
149@item Stage: Presentation program
150@end itemize
151
152Graphics:
153@itemize
154@item Karbon: Vector graphics
155@end itemize
156
157Advanced plugins:
158@itemize
159@item Chart: Graphic data visualization
160@item KFormula: Mathematical formulas
161@end itemize")
162 (license (list license:lgpl2.0+ license:gpl2+))))
163
164(define-public crow-translate
165 (package
166 (name "crow-translate")
167 (version "4.0.2")
168 (source
169 (origin
170 (method url-fetch)
171 (uri (string-append "mirror://kde/stable/crow-translate/" version
172 "/crow-translate-" version ".tar.gz"))
173 (sha256
174 (base32 "0lrpxdgicbg0wj2cf0lif99pz5kiqck53qkm5385vymzn1w8wjz2"))
175 (modules '((guix build utils)))
176 (snippet
177 '(begin
178 ;; Delete bundled breeze-icons, espeak-ng and qhotkey.
179 (for-each delete-file-recursively
180 '("data/icons/3rdparty/breeze-icons"
181 "src/3rdparty/espeak-ng"
182 "src/3rdparty/qhotkey"))
183 ;; Use system libraries instead.
184 (substitute* "CMakeLists.txt"
185 ((".*icon-theme\\.qrc.*$") "")
186 (("WITH_PIPER_TTS") "WITH_BUNDLED_ESPEAK_NG")
187 (("(.*WITH_BUNDLED_ESPEAK_NG.* )ON" all start)
188 (string-append start "OFF"))
189 (("Enable Piper neural TTS provider.*\"")
190 "Build bundled espeak-ng (requires onnxruntime)\"")
191 (("Piper TTS support disabled.*\"")
192 "Piper TTS support enabled with system espeak-ng\"")
193 (("add_subdirectory.*qhotkey.*")
194 (string-append "\nfind_package(PkgConfig)\n"
195 "pkg_check_modules(eSpeak_NG REQUIRED espeak-ng)"
196 "\nfind_package(QHotkey REQUIRED)\n"))
197 (("QHotkey::QHotkey") "qhotkey")
198 (("( *)Qt6::TextToSpeech" all indent)
199 (string-append all "\n" indent "espeak-ng")))
200 ;; Link Qt6::Widgets.
201 (substitute* "CMakeLists.txt"
202 (("Qt6::TextToSpeech" all) (string-append all "\n Qt6::Widgets")))
203 ;; Include QGuiApplication in main.cpp.
204 (substitute* "src/main.cpp"
205 (("#include <QtCore>" all)
206 (string-append all "\n#include <QtGui/QGuiApplication>")))))))
207 (build-system qt-build-system)
208 (arguments
209 (list #:qtbase qtbase
210 #:tests? #f ; no tests
211 #:configure-flags
212 #~(list (string-append "-DCMAKE_CXX_FLAGS=-isystem "
213 #$(this-package-input "qtbase")
214 "/include/qt6/QtWidgets"))
215 #:phases
216 #~(modify-phases %standard-phases
217 (add-after 'unpack 'unbundle-singleapplication
218 (lambda _
219 (delete-file-recursively "src/3rdparty/singleapplication")
220 (substitute* "CMakeLists.txt"
221 (("add_subdirectory.*singleapplication.*$") "")
222 (("SingleApplication::SingleApplication")
223 (string-append #$(this-package-input
224 "single-application")
225 "/lib/libSingleApplication.a"))))))))
226 (inputs
227 (list breeze-icons
228 espeak-ng
229 kwayland
230 qhotkey
231 qtbase
232 qtsvg
233 qtmultimedia
234 qtscxml
235 qtspeech
236 qtwayland
237 single-application
238 tesseract-ocr))
239 (native-inputs
240 (list pkg-config
241 extra-cmake-modules
242 qttools))
243 (home-page "https://invent.kde.org/office/crow-translate")
244 (synopsis "Application for translating text")
245 (description
246 "Crow Translate is an application written in C++/Qt for translating
247and speaking text which relies on Mozhi to interface with various
248translation engines.")
249 (license license:gpl3+)))
250
251(define-public ghostwriter
252 (package
253 (name "ghostwriter")
254 (version "26.04.1")
255 (source (origin
256 (method url-fetch)
257 (uri (string-append "mirror://kde/stable/release-service/" version
258 "/src/ghostwriter-" version ".tar.xz"))
259 (sha256
260 (base32 "18z12pgcan6nl74wxjf4vm3nbh1bq12cavzqs95xc7np3j2vmqpv"))))
261 (build-system qt-build-system)
262 (arguments
263 (list #:qtbase qtbase
264 #:configure-flags
265 #~(list "-DQT_MAJOR_VERSION=6")))
266 (native-inputs
267 (list extra-cmake-modules kdoctools pkg-config qttools))
268 (inputs
269 (list hunspell
270 kconfigwidgets
271 kcoreaddons
272 kwidgetsaddons
273 kxmlgui
274 qt5compat
275 qtsvg
276 qtwayland
277 qtwebchannel
278 qtwebengine
279 sonnet))
280 (home-page "https://ghostwriter.kde.org/")
281 (synopsis "Text editor for Markdown")
282 (description "@code{ghostwriter} is a text editor for Markdown, which is a plain
283text markup format. It features a live HTML preview as you type, theme
284creation, focus mode, fullscreen mode, live word count, and document navigation
285in an aesthetic writing environment. It comes with the cmark-gfm Markdown
286processor built in, and can integrate with Pandoc, MultiMarkdown, Discount, and
287cmark processors if they are installed.")
288 (license license:gpl3+)))
289
290(define-public klevernotes
291 (package
292 (name "klevernotes")
293 (version "1.3.0")
294 (source
295 (origin
296 (method url-fetch)
297 (uri (string-append "mirror://kde/stable/klevernotes/" version
298 "/klevernotes-" version ".tar.xz"))
299 (sha256
300 (base32 "1vfx6mlxl21aahpb5jv8b0q0mwsd6a0y1rvz8z9xv1w05700pbah"))))
301 (build-system qt-build-system)
302 (arguments
303 (list
304 #:qtbase qtbase
305 #:configure-flags
306 #~(list "-DBUILD_TESTING:BOOL=ON")
307 #:phases
308 #~(modify-phases %standard-phases
309 (add-before 'check 'start-xorg-server
310 (lambda _
311 (system "Xvfb :99 -screen 0 1024x768x24 &")
312 (setenv "DISPLAY" ":99.0"))))))
313 (native-inputs (list extra-cmake-modules xorg-server))
314 (inputs (list kconfigwidgets
315 kcoreaddons
316 ki18n
317 kiconthemes
318 kio
319 kirigami
320 kirigami-addons
321 kitemmodels
322 qqc2-desktop-style
323 qtsvg
324 qtwayland
325 qtwebengine
326 sonnet))
327 (home-page "https://apps.kde.org/klevernotes/")
328 (synopsis "Note taking and management application")
329 (description
330 "KleverNotes is a note taking and management application. It uses Markdown
331and allows you to preview your content.")
332 (license license:gpl3+)))
333
334(define-public marknote
335 (package
336 (name "marknote")
337 (version "1.5.2")
338 (source
339 (origin
340 (method url-fetch)
341 (uri (string-append "mirror://kde//stable/marknote"
342 "/marknote-" version ".tar.xz"))
343 (sha256
344 (base32 "1dzfwdvb8is3nyb852ba9ljy00r098ff8a4bzfycs93sps10lnmw"))))
345 (build-system qt-build-system)
346 (arguments
347 (list #:qtbase qtbase
348 #:phases
349 #~(modify-phases %standard-phases
350 (add-before 'check 'check-setup
351 (lambda _
352 (setenv "HOME" (getcwd)))))))
353 (native-inputs
354 (list extra-cmake-modules kdoctools))
355 (inputs
356 (list kcolorscheme
357 kconfig
358 kcoreaddons
359 kcrash
360 ki18n
361 kiconthemes
362 kirigami
363 kirigami-addons
364 kmime
365 knotifications
366 kwindowsystem
367 kxmlgui
368 md4c
369 qtdeclarative
370 qtsvg
371 qtwayland))
372 (home-page "https://apps.kde.org/marknote/")
373 (synopsis "Markdown note manager")
374 (description "Marknote is a note manager that lets you create rich text
375notes in Markdown format and organise them into notebooks. You can choose an
376icon and an accent color for each notebook.")
377 (license license:gpl2+)))
378
379(define-public tellico
380 (package
381 (name "tellico")
382 (version "4.1.3")
383 (source (origin
384 (method git-fetch)
385 (uri (git-reference
386 (url "https://invent.kde.org/office/tellico")
387 (commit (string-append "v" version))))
388 (file-name (git-file-name name version))
389 (sha256
390 (base32 "0930jh6b9cl3jvhmfv00l6566vsnpwkf6shz5w0hn67j0vpvhk7s"))
391 (modules '((guix build utils)))
392 (snippet
393 ;; Fix including QtPrintSupport.
394 '(substitute* (find-files "src" "\\.(h|cpp)$")
395 (("#include <QPrint") "#include <QtPrintSupport/QPrint")))))
396 (build-system qt-build-system)
397 (arguments
398 (list #:qtbase qtbase
399 #:phases
400 #~(modify-phases %standard-phases
401 (add-before 'check 'set-home-directory
402 (lambda _
403 (setenv "HOME" "/tmp")))
404 (replace 'check
405 (lambda* (#:key tests? #:allow-other-keys)
406 (when tests?
407 (invoke "dbus-launch" "ctest")))))))
408 (native-inputs
409 (list dbus extra-cmake-modules kdoctools pkg-config))
410 (inputs
411 (list exempi
412 karchive
413 kcodecs
414 kcompletion
415 kconfig
416 kconfigwidgets
417 kcoreaddons
418 kcrash
419 kfilemetadata
420 kguiaddons
421 ki18n
422 kiconthemes
423 kio
424 kitemmodels
425 kjobwidgets
426 knewstuff
427 ktextwidgets
428 kwidgetsaddons
429 kxmlgui
430 libcdio
431 libcsv
432 libkcddb
433 libksane
434 libxml2
435 libxslt
436 perl-text-bibtex
437 poppler-qt6
438 qtcharts
439 qtsvg
440 qtwayland
441 qtwebengine
442 solid
443 sonnet
444 taglib
445 yaz))
446 (home-page "https://tellico-project.org/")
447 (synopsis "Collection manager")
448 (description "Tellico is an application for organizing your collections. It
449provides default templates for books, bibliographies, videos, music, video
450games, coins, stamps, trading cards, comic books, and wines. It allows you to
451enter your collection in a catalogue database, saving many different properties
452like title, author, etc.
453
454Features:
455
456@itemize
457@item Supports default collections of books, bibliographic entries, videos,
458 music, video games, comic books, coins, stamps, trading cards, wines, board
459 games, and file catalogs.
460@item Supports user-defined custom collections.
461@item Supports any number of user-defined fields, of several different types:
462 text, paragraph, list, checkbox, number, URL, date, images, and combinations.
463@item Handles entries with multiple authors, genres, keywords, etc.
464#item Automatically formats titles and names.
465@item Supports collection searching and view filtering.
466@item Sorts and groups collection by various properties.
467@item Allows customizable entry templates through XSLT.
468@item Imports MODS, BibTeX, RIS, CSV, PDF metadata, and many other formats.
469@item Exports to BibTeX, ONIX, CSV, HTML, and other formats.
470@item Imports information directly from Amazon.com, IMDb, Z39.50 servers,
471 PubMed, SRU servers, CrossRef.org, various other websites, and from external
472 scripts.
473@item Imports CDDB data for cataloging audio CDs.
474@item Scans and imports audio file collections, such as mp3 or ogg.
475@end itemize")
476 (license license:gpl2+)))