gnu: kde-frameworks: Add kdnssd.
[jackhill/guix/guix.git] / gnu / packages / kde-frameworks.scm
CommitLineData
f272987a
AE
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
c73210d7 3;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
bbf311e0
DC
4;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
5;;; Copyright © 2016 David Craven <david@craven.ch>
f272987a
AE
6;;;
7;;; This file is part of GNU Guix.
8;;;
9;;; GNU Guix is free software; you can redistribute it and/or modify it
10;;; under the terms of the GNU General Public License as published by
11;;; the Free Software Foundation; either version 3 of the License, or (at
12;;; your option) any later version.
13;;;
14;;; GNU Guix is distributed in the hope that it will be useful, but
15;;; WITHOUT ANY WARRANTY; without even the implied warranty of
16;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17;;; GNU General Public License for more details.
18;;;
19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21
22(define-module (gnu packages kde-frameworks)
23 #:use-module (guix build-system cmake)
24 #:use-module (guix download)
25 #:use-module ((guix licenses) #:prefix license:)
26 #:use-module (guix packages)
4a827670 27 #:use-module (guix utils)
594c7f35 28 #:use-module (gnu packages admin)
f90b81a5 29 #:use-module (gnu packages compression)
fc3d355d 30 #:use-module (gnu packages glib)
4a827670 31 #:use-module (gnu packages pkg-config)
06a79865 32 #:use-module (gnu packages python)
4a827670
AE
33 #:use-module (gnu packages qt)
34 #:use-module (gnu packages xorg))
f272987a 35
f272987a
AE
36(define-public extra-cmake-modules
37 (package
38 (name "extra-cmake-modules")
5c913ba1 39 (version "5.24.0")
f272987a
AE
40 (source
41 (origin
42 (method url-fetch)
5c913ba1 43 (uri (string-append "mirror://kde/stable/frameworks/"
f272987a
AE
44 (version-major+minor version) "/"
45 name "-" version ".tar.xz"))
46 (sha256
c73210d7 47 (base32
5c913ba1 48 "01m12ml529pwr2sal951r5z6yb1rwbpid1y4k14nlk3xqgmdakwa"))))
f272987a 49 (build-system cmake-build-system)
5c913ba1
DC
50 (native-inputs
51 `(("qtbase" ,qtbase))) ; For tests (needs qmake)
52 (arguments
53 `(#:phases
54 (modify-phases %standard-phases
55 ;; install and check phase are swapped to prevent install from failing
56 ;; after testsuire has run
57 (add-after 'install 'check-post-install
58 (assoc-ref %standard-phases 'check))
59 (delete 'check))))
60 ;; optional dependencies - to save space, we do not add these inputs.
61 ;; Sphinx > 1.2:
62 ;; Required to build Extra CMake Modules documentation in Qt Help format.
63 ;; Qt5LinguistTools , Qt5 linguist tools. , <http://www.qt.io/>
64 ;; Required to run tests for the ECMPoQmTools module.
65 ;; Qt5Core
66 ;; Required to run tests for the ECMQtDeclareLoggingCategory module,
67 ;; and for some tests of the KDEInstallDirs module.
f272987a
AE
68 (home-page "https://community.kde.org/Frameworks")
69 (synopsis "CMake module files for common software used by KDE")
70 (description "The Extra CMake Modules package, or ECM, adds to the
71modules provided by CMake to find common software. In addition, it provides
72common build settings used in software produced by the KDE community.")
73 (license license:bsd-3)))
4a827670 74
bbf311e0
DC
75;; Tier 1
76;;
77;; Tier 1 frameworks depend only on Qt (and possibly a small number of other
78;; third-party libraries), so can easily be used by an Qt-based project.
79
80(define-public attica
81 (package
82 (name "attica")
83 (version "5.24.0")
84 (source
85 (origin
86 (method url-fetch)
87 (uri (string-append "mirror://kde/stable/frameworks/"
88 (version-major+minor version) "/"
89 name "-" version ".tar.xz"))
90 (sha256
91 (base32
92 "0d368gmds7m7k5pnn625wqsij38cvxk1gkm4zv24phnk9f67v7cw"))))
93 (build-system cmake-build-system)
94 (native-inputs
95 `(("extra-cmake-modules" ,extra-cmake-modules)))
96 (inputs
97 `(("qtbase" ,qtbase)))
98 (home-page "https://community.kde.org/Frameworks")
99 (synopsis "Open Collaboration Service client library")
100 (description "Attica is a Qt library that implements the Open
101Collaboration Services API version 1.6.
102
103It grants easy access to the services such as querying information about
104persons and contents. The library is used in KNewStuff3 as content provider.
105In order to integrate with KDE's Plasma Desktop, a platform plugin exists in
106kdebase.
107
108The REST API is defined here:
109http://freedesktop.org/wiki/Specifications/open-collaboration-services/")
110 (license (list license:lgpl2.1+ license:lgpl3+))))
111
fc3d355d
DC
112(define-public bluez-qt
113 (package
114 (name "bluez-qt")
115 (version "5.24.0")
116 (source
117 (origin
118 (method url-fetch)
119 (uri (string-append "mirror://kde/stable/frameworks/"
120 (version-major+minor version) "/"
121 name "-" version ".tar.xz"))
122 (sha256
123 (base32
124 "0gy0m7lcwwklf021l5i3v7j0cl7qz7cgvzrwpj87ix3kyw5xs80z"))))
125 (build-system cmake-build-system)
126 (native-inputs
127 `(("dbus" ,dbus)
128 ("extra-cmake-modules" ,extra-cmake-modules)))
129 (inputs
130 `(("qtbase" ,qtbase)))
131 (arguments
132 `(#:configure-flags
133 '("-DINSTALL_UDEV_RULE:BOOL=OFF")
134 #:phases
135 (modify-phases %standard-phases
136 (replace 'check
137 (lambda* _
138 (setenv "DBUS_FATAL_WARNINGS" "0")
139 (zero? (system* "dbus-launch" "ctest" ".")))))))
140 (home-page "https://community.kde.org/Frameworks")
141 (synopsis "QML wrapper for BlueZ")
142 (description "bluez-qt is a Qt-style library for accessing the bluez
143Bluetooth stack. It is used by the KDE Bluetooth stack, BlueDevil.")
144 (license (list license:lgpl2.1+ license:lgpl3+))))
145
e510a263
DC
146(define-public breeze-icons
147 (package
148 (name "breeze-icons")
149 (version "5.24.0")
150 (source
151 (origin
152 (method url-fetch)
153 (uri (string-append "mirror://kde/stable/frameworks/"
154 (version-major+minor version) "/"
155 name "-" version ".tar.xz"))
156 (sha256
157 (base32
158 "1dh7bijx99sdb3vn6394wmm5cq0fvvmz8h17sx4hakmbga849cx2"))))
159 (build-system cmake-build-system)
160 (native-inputs
161 `(("extra-cmake-modules" ,extra-cmake-modules)))
162 (inputs
163 `(("qtbase" ,qtbase)))
164 (home-page "https://community.kde.org/Frameworks")
165 (synopsis "Default KDE Plasma 5 icon theme")
166 (description "Breeze provides a freedesktop.org compatible icon theme.
167It is the default icon theme for the KDE Plasma 5 desktop.")
168 ;; The license file mentions lgpl3+. The license files in the source
169 ;; directories are lgpl3, while the top directory contains the lgpl2.1.
170 ;; text.
171 (license license:lgpl3+)))
172
06a79865
DC
173(define-public kapidox
174 (package
175 (name "kapidox")
176 (version "5.24.0")
177 (source
178 (origin
179 (method url-fetch)
180 (uri (string-append "mirror://kde/stable/frameworks/"
181 (version-major+minor version) "/"
182 name "-" version ".tar.xz"))
183 (sha256
184 (base32
185 "19a7alvn71nxflsyi7y3hghx1iw04qqc77qy54mcxcpkiyvpsggf"))))
186 (build-system cmake-build-system)
187 (arguments
188 `(#:tests? #f)) ; has no test target
189 (native-inputs
190 `(("extra-cmake-modules" ,extra-cmake-modules)))
191 (propagated-inputs
192 ;; kapidox is a python programm
193 ;; TODO: check if doxygen has to be installed, the readme does not
194 ;; mention it. The openSuse .rpm lists doxygen, graphviz, graphviz-gd,
195 ;; and python-xml.
196 `(("python" ,python)
197 ("python-jinja2" ,python-jinja2)
198 ("python-pyyaml" ,python-pyyaml)))
199 (inputs
200 `(("qtbase" ,qtbase)))
201 (home-page "https://community.kde.org/Frameworks")
202 (synopsis "KDE Doxygen Tools")
203
204 (description "This framework contains scripts and data for building API
205documentation (dox) in a standard format and style for KDE.
206
207For the actual documentation extraction and formatting the Doxygen tool is
208used, but this framework provides a wrapper script to make generating the
209documentation more convenient (including reading settings from the target
210framework or other module) and a standard template for the generated
211documentation.")
212 ;; Most parts are bsd-2, but incuded jquery is expat
213 ;; This list is taken from http://packaging.neon.kde.org/cgit/
214 (license (list license:bsd-2 license:expat))))
215
f90b81a5
DC
216(define-public karchive
217 (package
218 (name "karchive")
219 (version "5.24.0")
220 (source
221 (origin
222 (method url-fetch)
223 (uri (string-append "mirror://kde/stable/frameworks/"
224 (version-major+minor version) "/"
225 name "-" version ".tar.xz"))
226 (sha256
227 (base32
228 "1n5nfhrfvqnrdjgjjy7arqik4fya5bp3dvxa16mlhqr19azkavzq"))))
229 (build-system cmake-build-system)
230 (native-inputs
231 `(("extra-cmake-modules" ,extra-cmake-modules)))
232 (inputs
233 `(("bzip2" ,bzip2)
234 ("qtbase" ,qtbase)
235 ("xz" ,xz)
236 ("zlib" ,zlib)))
237 (home-page "https://community.kde.org/Frameworks")
238 (synopsis "Qt 5 addon providing access to numerous types of archives")
239 (description "KArchive provides classes for easy reading, creation and
240manipulation of 'archive' formats like ZIP and TAR.
241
242It also provides transparent compression and decompression of data, like the
243GZip format, via a subclass of QIODevice.")
244 ;; The included licenses is are gpl2 and lgpl2.1, but the sources are
245 ;; under a variety of licenses.
246 ;; This list is taken from http://packaging.neon.kde.org/cgit/
247 (license (list license:lgpl2.1 license:lgpl2.1+
248 license:lgpl3+ license:bsd-2))))
249
5c86352a
DC
250(define-public kcodecs
251 (package
252 (name "kcodecs")
253 (version "5.24.0")
254 (source
255 (origin
256 (method url-fetch)
257 (uri (string-append "mirror://kde/stable/frameworks/"
258 (version-major+minor version) "/"
259 name "-" version ".tar.xz"))
260 (sha256
261 (base32
262 "1qpzjh3qc2zz80j2bmlinipbispms14k9bmqw8v61zhi6in9z14c"))))
263 (build-system cmake-build-system)
264 (native-inputs
265 `(("extra-cmake-modules" ,extra-cmake-modules)
266 ("qttools" ,qttools)))
267 (inputs
268 `(("qtbase" ,qtbase)))
269 (home-page "https://community.kde.org/Frameworks")
270 (synopsis "String encoding and manipulating library")
271 (description "KCodecs provide a collection of methods to manipulate
272strings using various encodings.
273
274It can automatically determine the charset of a string, translate XML
275entities, validate email addresses, and find encodings by name in a more
276tolerant way than QTextCodec (useful e.g. for data coming from the
277Internet).")
278 ;; The included licenses is are gpl2 and lgpl2.1, but the sources are
279 ;; under a variety of licenses.
280 ;; This list is taken from http://packaging.neon.kde.org/cgit/
281 (license (list license:gpl2 license:gpl2+ license:bsd-2
282 license:lgpl2.1 license:lgpl2.1+ license:expat
283 license:lgpl3+ license:mpl1.1))))
284
594c7f35
DC
285(define-public kconfig
286 (package
287 (name "kconfig")
288 (version "5.24.0")
289 (source
290 (origin
291 (method url-fetch)
292 (uri (string-append "mirror://kde/stable/frameworks/"
293 (version-major+minor version) "/"
294 name "-" version ".tar.xz"))
295 (sha256
296 (base32
297 "1dc2i6icyigw1j6qxgdza6j2g8afh390qmxsa2a54mwl84fkfmxv"))))
298 (build-system cmake-build-system)
299 (native-inputs
300 `(("extra-cmake-modules" ,extra-cmake-modules)
301 ("inetutils" ,inetutils)
302 ("qttools" ,qttools)
303 ("xorg-server" ,xorg-server)))
304 (inputs
305 `(("qtbase" ,qtbase)))
306 (arguments
307 `(#:phases
308 (modify-phases %standard-phases
309 (add-before 'check 'check-setup
310 (lambda* _
311 (setenv "HOME" (getcwd))
312 (setenv "TMPDIR" (getcwd))
313 #t))
314 (add-before 'check 'start-xorg-server
315 (lambda* (#:key inputs #:allow-other-keys)
316 ;; The test suite requires a running X server.
317 (system (string-append (assoc-ref inputs "xorg-server")
318 "/bin/Xvfb :1 &"))
319 (setenv "DISPLAY" ":1")
320 #t)))))
321 (home-page "https://community.kde.org/Frameworks")
322 (synopsis "Kconfiguration settings framework for Qt")
323 (description "KConfig provides an advanced configuration system.
324It is made of two parts: KConfigCore and KConfigGui.
325
326KConfigCore provides access to the configuration files themselves.
327It features:
328
329@itemize
330@item Code generation: describe your configuration in an XML file, and use
331`kconfig_compiler to generate classes that read and write configuration
332entries.
333
334@item Cascading configuration files (global settings overridden by local
335settings).
336
337@item Optional shell expansion support (see docs/options.md).
338
339@item The ability to lock down configuration options (see docs/options.md).
340@end itemize
341
342KConfigGui provides a way to hook widgets to the configuration so that they
343are automatically initialized from the configuration and automatically
344propagate their changes to their respective configuration files.")
345 ;; The included licenses is are gpl2 and lgpl2.1, but the sources are
346 ;; under a variety of licenses.
347 ;; This list is taken from http://packaging.neon.kde.org/cgit/
348 (license (list license:lgpl2.1 license:lgpl2.1+ license:expat
349 license:lgpl3+ license:gpl1 ; licende:mit-olif
350 license:bsd-2 license:bsd-3))))
351
f3f250ad
DC
352(define-public kcoreaddons
353 (package
354 (name "kcoreaddons")
355 (version "5.24.0")
356 (source
357 (origin
358 (method url-fetch)
359 (uri (string-append "mirror://kde/stable/frameworks/"
360 (version-major+minor version) "/"
361 name "-" version ".tar.xz"))
362 (sha256
363 (base32
364 "06sx7by3nvaridnavj5p0bxv4nh47n708jlacfw8ydaikmd9i03h"))))
365 (build-system cmake-build-system)
366 (native-inputs
367 `(("extra-cmake-modules" ,extra-cmake-modules)
368 ("qttools" ,qttools)
369 ("xorg-server" ,xorg-server))) ; for the tests
370 (inputs
371 `(("qtbase" ,qtbase)))
372 (arguments
373 `(#:tests? #f ; FIXME: Test failure caused by stout/stderr being interleaved.
374 #:phases
375 (modify-phases %standard-phases
376 (add-before 'check 'check-setup
377 (lambda* _
378 (setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; enable debug output
379 (setenv "HOME" (getcwd))
380 (setenv "TMPDIR" (getcwd)))))))
381 (home-page "https://community.kde.org/Frameworks")
382 (synopsis "Qt addon library with a collection of non-GUI utilities")
383 (description "KCoreAddons provides classes built on top of QtCore to
384perform various tasks such as manipulating mime types, autosaving files,
385creating backup files, generating random sequences, performing text
386manipulations such as macro replacement, accessing user information and
387many more.")
388 (license (list license:lgpl2.0+ license:lgpl2.1+))))
389
02613cf5
DC
390(define-public kdbusaddons
391 (package
392 (name "kdbusaddons")
393 (version "5.24.0")
394 (source
395 (origin
396 (method url-fetch)
397 (uri (string-append "mirror://kde/stable/frameworks/"
398 (version-major+minor version) "/"
399 name "-" version ".tar.xz"))
400 (sha256
401 (base32
402 "183nxqrhz4qk4qfp1w4an0scp2dvfqcaqbpg4cgbgk0z590q0pkk"))))
403 (build-system cmake-build-system)
404 (native-inputs
405 `(("extra-cmake-modules" ,extra-cmake-modules)
406 ("dbus" ,dbus)
407 ("qttools" ,qttools)))
408 (inputs
409 `(("qtbase" ,qtbase)
410 ("qtx11extras" ,qtx11extras)))
411 (arguments
412 `(#:phases
413 (modify-phases %standard-phases
414 (replace 'check
415 (lambda* _
416 (setenv "DBUS_FATAL_WARNINGS" "0")
417 (zero? (system* "dbus-launch" "ctest" ".")))))))
418 (home-page "https://community.kde.org/Frameworks")
419 (synopsis "Convenience classes for DBus")
420 (description "KDBusAddons provides convenience classes on top of QtDBus,
421as well as an API to create KDED modules.")
422 ;; Some source files mention lgpl2.0+, but the included license is
423 ;; the lgpl2.1. Some source files are under non-copyleft licenses.
424 (license license:lgpl2.1+)))
425
3dbb816a
DC
426(define-public kdnssd
427 (package
428 (name "kdnssd")
429 (version "5.24.0")
430 (source
431 (origin
432 (method url-fetch)
433 (uri (string-append "mirror://kde/stable/frameworks/"
434 (version-major+minor version) "/"
435 name "-" version ".tar.xz"))
436 (sha256
437 (base32
438 "01b650g031apxc3vd2m91g2fxqk9l8ap67z6rafniphfwy8i0d5m"))))
439 (build-system cmake-build-system)
440 (native-inputs
441 `(("extra-cmake-modules" ,extra-cmake-modules)
442 ("qttools" ,qttools)))
443 (inputs
444 `(("qtbase" ,qtbase)))
445 (home-page "https://community.kde.org/Frameworks")
446 (synopsis "Network service discovery using Zeroconf")
447 (description "KDNSSD is a library for handling the DNS-based Service
448Discovery Protocol (DNS-SD), the layer of Zeroconf that allows network services,
449such as printers, to be discovered without any user intervention or centralized
450infrastructure.")
451 (license license:lgpl2.1+)))
452
4a827670
AE
453(define-public kwindowsystem
454 (package
455 (name "kwindowsystem")
861748ef 456 (version "5.24.0")
4a827670
AE
457 (source
458 (origin
459 (method url-fetch)
861748ef 460 (uri (string-append "mirror://kde/stable/frameworks/"
4a827670
AE
461 (version-major+minor version) "/"
462 name "-" version ".tar.xz"))
463 (sha256
c73210d7 464 (base32
861748ef 465 "0w5ym8msl80v3q65253pdpj9f1fmb658rnndlbkrgpmm1rv1n6dz"))))
4a827670
AE
466 (build-system cmake-build-system)
467 (native-inputs
861748ef
DC
468 `(("extra-cmake-modules" ,extra-cmake-modules)
469 ("pkg-config" ,pkg-config)
470 ("qttools" ,qttools)
c73210d7 471 ("xorg-server" ,xorg-server))) ; for the tests
4a827670 472 (inputs
861748ef
DC
473 `(("libxrender" ,libxrender)
474 ("qtbase" ,qtbase)
475 ("qtx11extras" ,qtx11extras)
c73210d7 476 ("xcb-utils-keysyms" ,xcb-util-keysyms)))
4a827670 477 (arguments
861748ef 478 `(#:tests? #f)) ; FIXME: 8/10 tests fail.
4a827670
AE
479 (home-page "https://community.kde.org/Frameworks")
480 (synopsis "KDE access to the windowing system")
481 (description "KWindowSystem provides information about and allows
482interaction with the windowing system. It provides a high level API, which
483is windowing system independent and has platform specific
484implementations. This API is inspired by X11 and thus not all functionality
485is available on all windowing systems.
486
487In addition to the high level API, this framework also provides several
488lower level classes for interaction with the X Windowing System.")
489 ;; Some source files mention lgpl2.0+, but the included license is
490 ;; the lgpl2.1. Some source files are under non-copyleft licenses.
491 (license license:lgpl2.1+)))
d8ea2782
EF
492
493(define-public oxygen-icons
494 (package
495 (name "oxygen-icons")
b54c2cfc 496 (version "5.24.0")
d8ea2782
EF
497 (source
498 (origin
499 (method url-fetch)
b54c2cfc 500 (uri (string-append "mirror://kde/stable/frameworks/"
d8ea2782 501 (version-major+minor version) "/"
b54c2cfc 502 name "5" "-" version ".tar.xz"))
d8ea2782
EF
503 (sha256
504 (base32
b54c2cfc 505 "1c7spjbzk04725vv0ly7vmyvwa96mfa5ki2pm146ld4888a896wm"))))
d8ea2782
EF
506 (build-system cmake-build-system)
507 (native-inputs
b54c2cfc 508 `(("extra-cmake-modules" ,extra-cmake-modules)))
d8ea2782 509 (inputs
b54c2cfc 510 `(("qtbase" ,qtbase)))
d8ea2782 511 (home-page "https://community.kde.org/Frameworks")
66e07664 512 (synopsis "Oxygen provides the standard icon theme for the KDE desktop")
d8ea2782
EF
513 (description "Oxygen icon theme for the KDE desktop")
514 (license license:lgpl3+)))