diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-09-02 15:39:50 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-09-02 15:39:50 +0200 |
commit | 072e10615fc786db02dc44f3cd5f25aed2969111 (patch) | |
tree | dbae10eaf8cf13a28c0151a418971fb770243eda | |
parent | 3964e358ab65dfd157427560bfb44de8a150068b (diff) | |
parent | 135ba811c6f55c22bfa8969143d83e7fdf166763 (diff) | |
download | guix-072e10615fc786db02dc44f3cd5f25aed2969111.tar.gz |
Merge branch 'master' into core-updates
50 files changed, 2512 insertions, 767 deletions
diff --git a/Makefile.am b/Makefile.am index 8bae85e144..165dfe9727 100644 --- a/Makefile.am +++ b/Makefile.am @@ -107,6 +107,7 @@ MODULES = \ guix/build/emacs-utils.scm \ guix/build/graft.scm \ guix/build/bournish.scm \ + guix/build/qt-utils.scm \ guix/search-paths.scm \ guix/packages.scm \ guix/import/utils.scm \ diff --git a/TODO b/TODO index b7c8ca4313..3a8a77b145 100644 --- a/TODO +++ b/TODO @@ -9,13 +9,6 @@ Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org> are permitted in any medium without royalty provided the copyright notice and this notice are preserved. -* Add `guix publish' to publish the store using Guile's web server - -Generate narinfos and nars on the fly, upon HTTP GET requests. -Ideally, extend .nix-cache-info to include the server's public key, and also -reply to requests for .narinfo.sig. -Optionally, use Guile-Avahi to publish the service. - * MAYBE Add a substituter that uses the GNUnet DHT or [[http://libswift.org][libswift]] Would be neat if binaries could be pushed to and pulled from the GNUnet DHT or @@ -74,11 +67,6 @@ per-package priorities, etc. Tests that need to download stuff or otherwise take a long time would only be run when that is defined. -* add "guix challenge" - -Would download a substitute, and compare its contents against a (hopefully -locally-built) copy. - * guix build utils ** MAYBE Change ‘ld-wrapper’ to add RPATH for libs passed by file name diff --git a/doc/guix.texi b/doc/guix.texi index e25cf58a31..2a7fd4d041 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -1718,9 +1718,9 @@ version: 3.3.5 You may also specify the full name of a package to only get details about a specific version of it: @example -$ guix package --show=python-3.3.5 | recsel -p name,version +$ guix package --show=python@@3.4 | recsel -p name,version name: python -version: 3.3.5 +version: 3.4.3 @end example @@ -2574,6 +2574,45 @@ and operating system, such as @code{"mips64el-linux-gnu"} Configure and Build System}). @end deffn +@cindex package transformations +@cindex input rewriting +@cindex dependency tree rewriting +Packages can be manipulated in arbitrary ways. An example of a useful +transformation is @dfn{input rewriting}, whereby the dependency tree of +a package is rewritten by replacing specific inputs by others: + +@deffn {Scheme Procedure} package-input-rewriting @var{replacements} @ + [@var{rewrite-name}] +Return a procedure that, when passed a package, replaces its direct and +indirect dependencies (but not its implicit inputs) according to +@var{replacements}. @var{replacements} is a list of package pairs; the +first element of each pair is the package to replace, and the second one +is the replacement. + +Optionally, @var{rewrite-name} is a one-argument procedure that takes +the name of a package and returns its new name after rewrite. +@end deffn + +@noindent +Consider this example: + +@example +(define libressl-instead-of-openssl + ;; This is a procedure to replace OPENSSL by LIBRESSL, + ;; recursively. + (package-input-rewriting `((,openssl . ,libressl)))) + +(define git-with-libressl + (libressl-instead-of-openssl git)) +@end example + +@noindent +Here we first define a rewriting procedure that replaces @var{openssl} +with @var{libressl}. Then we use it to define a @dfn{variant} of the +@var{git} package that uses @var{libressl} instead of @var{openssl}. +This is exactly what the @option{--with-input} command-line option does +(@pxref{Package Transformation Options, @option{--with-input}}). + @menu * package Reference :: The package data type. * origin Reference:: The origin data type. @@ -4362,7 +4401,8 @@ This is a recursive, deep replacement. So in this example, both @code{guix} and its dependency @code{guile-json} (which also depends on @code{guile}) get rebuilt against @code{guile-next}. -However, implicit inputs are left unchanged. +This is implemented using the @code{package-input-rewriting} Scheme +procedure (@pxref{Defining Packages, @code{package-input-rewriting}}). @end table @node Additional Build Options @@ -7952,7 +7992,7 @@ configure networking." @end deffn @deffn {Scheme Procedure} ntp-service [#:ntp @var{ntp}] @ - [#:name-service @var{%ntp-servers}] + [#:servers @var{%ntp-servers}] Return a service that runs the daemon from @var{ntp}, the @uref{http://www.ntp.org, Network Time Protocol package}. The daemon will keep the system clock synchronized with that of @var{servers}. diff --git a/gnu/local.mk b/gnu/local.mk index 8b882269e3..20ab924626 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -42,6 +42,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/apr.scm \ %D%/packages/aspell.scm \ %D%/packages/assembly.scm \ + %D%/packages/astronomy.scm \ %D%/packages/attr.scm \ %D%/packages/audacity.scm \ %D%/packages/audio.scm \ @@ -95,6 +96,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/dictionaries.scm \ %D%/packages/dillo.scm \ %D%/packages/disk.scm \ + %D%/packages/display-managers.scm \ %D%/packages/djvu.scm \ %D%/packages/dns.scm \ %D%/packages/docbook.scm \ @@ -319,7 +321,6 @@ GNU_SYSTEM_MODULES = \ %D%/packages/skarnet.scm \ %D%/packages/skribilo.scm \ %D%/packages/slang.scm \ - %D%/packages/slim.scm \ %D%/packages/smalltalk.scm \ %D%/packages/speech.scm \ %D%/packages/spice.scm \ @@ -347,6 +348,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/unrtf.scm \ %D%/packages/upnp.scm \ %D%/packages/uucp.scm \ + %D%/packages/u-boot.scm \ %D%/packages/valgrind.scm \ %D%/packages/version-control.scm \ %D%/packages/video.scm \ @@ -481,6 +483,7 @@ dist_patch_DATA = \ %D%/packages/patches/doc++-include-directives.patch \ %D%/packages/patches/doc++-segfault-fix.patch \ %D%/packages/patches/doxygen-test.patch \ + %D%/packages/patches/dtc-add-missing-symbols-to-lds.patch \ %D%/packages/patches/duplicity-piped-password.patch \ %D%/packages/patches/duplicity-test_selection-tmp.patch \ %D%/packages/patches/elfutils-tests-ptrace.patch \ @@ -510,7 +513,6 @@ dist_patch_DATA = \ %D%/packages/patches/fltk-shared-lib-defines.patch \ %D%/packages/patches/fltk-xfont-on-demand.patch \ %D%/packages/patches/fontforge-svg-modtime.patch \ - %D%/packages/patches/fossil-test-fixes.patch \ %D%/packages/patches/freeimage-CVE-2015-0852.patch \ %D%/packages/patches/gawk-shell.patch \ %D%/packages/patches/gcc-arm-link-spec-fix.patch \ @@ -575,7 +577,6 @@ dist_patch_DATA = \ %D%/packages/patches/icecat-CVE-2016-2824.patch \ %D%/packages/patches/icecat-CVE-2016-2828.patch \ %D%/packages/patches/icecat-CVE-2016-2831.patch \ - %D%/packages/patches/icedtea-remove-overrides.patch \ %D%/packages/patches/icu4c-CVE-2014-6585.patch \ %D%/packages/patches/icu4c-CVE-2015-1270.patch \ %D%/packages/patches/icu4c-CVE-2015-4760.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 05c2895792..474c0d7556 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1415,7 +1415,7 @@ limits.") (replace 'check (lambda _ (zero? - (system* "python" "tests/autojump_utils_test.py")))) + (system* "python" "tests/unit/autojump_utils_test.py")))) (replace 'install ;; The install.py script doesn't allow system installation ;; into an arbitrary prefix, so do our own install. diff --git a/gnu/packages/apl.scm b/gnu/packages/apl.scm index 7573870a4c..5b55c9cef3 100644 --- a/gnu/packages/apl.scm +++ b/gnu/packages/apl.scm @@ -30,14 +30,14 @@ (define-public apl (package (name "apl") - (version "1.5") + (version "1.6") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/apl/apl-" version ".tar.gz")) (sha256 (base32 - "0h4diq3wfbdwxp5nm0z4b0p1zq13lwip0y7v28r9v0mbbk8xsfh1")))) + "057zwzvvgcrrwsl52a27w86hgy31jqq6avqq629xj7yq90qah3ay")))) (build-system gnu-build-system) (home-page "http://www.gnu.org/software/apl/") (inputs diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm index 117cd33081..b7024124bd 100644 --- a/gnu/packages/aspell.scm +++ b/gnu/packages/aspell.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com> +;;; Copyright ©2016 John Darrington <jmd@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -97,6 +98,13 @@ dictionaries, including personal ones.") (home-page "http://aspell.net/"))) +(define-public aspell-dict-de + (aspell-dictionary "de" "German" + #:version "20030222-1" + #:sha256 + (base32 + "01p92qj66cqb346gk7hjfynaap5sbcn85xz07kjfdq623ghr8v5s"))) + (define-public aspell-dict-en (aspell-dictionary "en" "English" #:version "2016.01.19-0" diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm new file mode 100644 index 0000000000..eaf1598096 --- /dev/null +++ b/gnu/packages/astronomy.scm @@ -0,0 +1,106 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 John Darrington <jmd@gnu.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages astronomy) + #:use-module (guix packages) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix download) + #:use-module (gnu packages image) + #:use-module (gnu packages maths) + #:use-module (guix build-system gnu)) + +(define-public cfitsio + (package + (name "cfitsio") + (version "3390") + (source + (origin + (method url-fetch) + (uri (string-append + "http://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/" name version + ".tar.gz")) + (sha256 + (base32 "02gllydm63irwbqqisa3mrskw1fphm5rlplglz3mq9whi3rxilv2")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-paths + (lambda _ + (substitute* "Makefile.in" (("/bin/") ""))))))) + (home-page "http://heasarc.gsfc.nasa.gov/fitsio/fitsio.html") + (synopsis "Library for reading and writing FITS files") + (description "CFITSIO provides simple high-level routines for reading and +writing FITS (Flexible Image Transport System) files that insulate the +programmer from the internal complexities of the FITS format. CFITSIO also +provides many advanced features for manipulating and filtering the information +in FITS files.") + (license (license:non-copyleft "file://License.txt" + "See License.txt in the distribution.")))) + +(define-public wcslib + (package + (name "wcslib") + (version "5.15") + (source + (origin + (method url-fetch) + (uri (string-append + "ftp://ftp.atnf.csiro.au/pub/software/wcslib/" name "-" version ".tar.bz2")) + (sha256 + (base32 "1s2nig327g4bimd9xshlk11ww09a7mrjmsbpdcd8smsmn2kl1glb")))) + (inputs + `(("cfitsio" ,cfitsio))) + (build-system gnu-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-before 'configure 'patch-/bin/sh + (lambda _ + (substitute* "makedefs.in" + (("/bin/sh") "sh"))))))) + (home-page "http://www.atnf.csiro.au/people/mcalabre/WCS") + (synopsis "Library which implements the FITS WCS standard") + (description "The FITS \"World Coordinate System\" (WCS) standard defines +keywords and usage that provide for the description of astronomical coordinate +systems in a FITS image header.") + (license license:lgpl3+))) + +(define-public gnuastro + (package + (name "gnuastro") + (version "0.1") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gnuastro/gnuastro-" + version ".tar.gz")) + (sha256 + (base32 + "105s007kw8l3jwwhvh8k9lgbpfbf7sqh2wpxmvpv3qdr6nh9lnjg")))) + (inputs + `(("cfitsio" ,cfitsio) + ("gsl" ,gsl) + ("libjpeg" ,libjpeg-8) + ("wcslib" ,wcslib))) + (build-system gnu-build-system) + (home-page "http://www.gnu.org/software/gnuastro") + (synopsis "Astronomical data manipulation programs") + (description "The GNU Astronomy Utilities (Gnuastro) is a suite of +programs for the manipulation and analysis of astronomical data.") + (license license:gpl3+))) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index ed20b562e5..08c25459c0 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -93,7 +93,7 @@ (define-public aragorn (package (name "aragorn") - (version "1.2.36") + (version "1.2.37") (source (origin (method url-fetch) (uri (string-append @@ -101,7 +101,7 @@ version ".tgz")) (sha256 (base32 - "1dg7jlz1qpqy88igjxd6ncs11ccsirb36qv1z01a0np4i4jh61mb")))) + "1c7zxk0h8wsjbix82fmmfyywcq6zn3q9h5y67kcl5y3qal2bv2xr")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; there are no tests @@ -4692,14 +4692,14 @@ sequences.") (define-public subread (package (name "subread") - (version "1.4.6-p2") + (version "1.5.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/subread/subread-" version "/subread-" version "-source.tar.gz")) (sha256 (base32 - "06sv9mpcsdj6p68y15d6gi70lca3lxmzk0dn61hg0kfsa7rxmsr3")))) + "0gn5zhbvllks0mmdg3qlmsbg91p2mpdc2wixwfqpi85yzfrh8hcy")))) (build-system gnu-build-system) (arguments `(#:tests? #f ;no "check" target diff --git a/gnu/packages/slim.scm b/gnu/packages/display-managers.scm index 2328a1aacf..579b149a0c 100644 --- a/gnu/packages/slim.scm +++ b/gnu/packages/display-managers.scm @@ -18,7 +18,7 @@ ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. -(define-module (gnu packages slim) +(define-module (gnu packages display-managers) #:use-module ((guix licenses) #:prefix l:) #:use-module (guix packages) #:use-module (guix download) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 4fe9a8aae6..ad51634f0c 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -2977,7 +2977,7 @@ passive voice.") (sha256 (base32 "0cr37pdkwjgfijfws5bjskfh1rq9rfngxblcj6v5383vpmn83q7s")) - (file-name (string-append name "-" version)))) + (file-name (string-append name "-" version ".tar.gz")))) (build-system emacs-build-system) (synopsis "Folder tree view for Emacs") (description "This Emacs package provides a folder tree view.") @@ -3002,3 +3002,74 @@ lists, and project planning with a fast and effective plain-text system. It also is an authoring system with unique support for literate programming and reproducible research.") (license license:gpl3+))) + +(define-public emacs-flx + (package + (name "emacs-flx") + (version "0.6.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/lewang/" + "flx/archive/v" version ".tar.gz")) + (sha256 + (base32 + "0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system emacs-build-system) + (home-page "https://github.com/lewang/flx") + (synopsis "Fuzzy matching for Emacs") + (description + "Flx provides fuzzy matching for emacs a la sublime text. +The sorting algorithm is a balance between word beginnings (abbreviation) +and contiguous matches (substring). The longer the substring match, +the higher it scores. This maps well to how we think about matching. +Flx has support for ido (interactively do things) through flx-ido.") + (license license:gpl3+))) + +(define-public emacs-cyberpunk-theme + (package + (name "emacs-cyberpunk-theme") + (version "1.17") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/n3mo/cyberpunk-theme.el/" + "archive/" version ".tar.gz")) + (sha256 + (base32 + "068jcn4g1bvwgpcvyfqygzw6ahill51c1sqzyyvj2paxckbd7h51")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system emacs-build-system) + (home-page "https://github.com/n3mo/cyberpunk-theme.el") + (synopsis "Cyberpunk theme for emacs built-in color theme support") + (description + "Cyberpunk color theme for the emacs 24+ built-in color theme support +known loosely as deftheme. Many mode-specific customizations are included.") + (license license:gpl3+))) + +(define-public emacs-auto-complete + (package + (name "emacs-auto-complete") + (version "1.5.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/auto-complete/" + "auto-complete/archive/v" version ".tar.gz")) + (sha256 + (base32 + "1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-popup" ,emacs-popup))) + (home-page "https://github.com/auto-complete/auto-complete") + (synopsis "Intelligent auto-completion extension for Emacs") + (description + "Auto-Complete is an intelligent auto-completion extension for Emacs. +It extends the standard Emacs completion interface and provides an environment +that allows users to concentrate more on their own work. Its features are: +a visual interface, reduce overhead of completion by using statistic method, +extensibility.") + (license license:gpl3+))) diff --git a/gnu/packages/entr.scm b/gnu/packages/entr.scm index 0e0f875267..dfa9274bea 100644 --- a/gnu/packages/entr.scm +++ b/gnu/packages/entr.scm @@ -26,14 +26,14 @@ (define-public entr (package (name "entr") - (version "3.5") + (version "3.6") (source (origin (method url-fetch) (uri (string-append "http://entrproject.org/code/entr-" version ".tar.gz")) (sha256 (base32 - "05k4jyjna0pr2dalwc1l1dhrcyk6pw7hbss7jl4ykwfadcs5br73")))) + "1sy81np6kgmq04kfn2ckf4fp7jcf5d1963shgmapx3al3kc4c9x4")))) (build-system gnu-build-system) (arguments `(#:test-target "test" diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 67f1e1a2c0..2032dce66a 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -618,6 +619,65 @@ received by the Telepathy framework. It features pluggable backends to log different sorts of messages in different formats.") (license license:lgpl2.1+))) +(define-public telepathy-idle + (package + (name "telepathy-idle") + (version "0.2.0") + (source (origin + (method url-fetch) + (uri (string-append "https://telepathy.freedesktop.org/releases/" + name "/" name "-" version ".tar.bz2")) + (sha256 + (base32 + "1argdzbif1vdmwp5vqbgkadq9ancjmgdm2ncp0qfckni715ss4rh")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("xsltproc" ,libxslt) + ("python" ,python-2) + ("python-dbus" ,python2-dbus))) + (propagated-inputs + `(("telepathy-glib" ,telepathy-glib))) + (home-page "http://telepathy.freedesktop.org/") + (synopsis "Telepathy IRC connection manager") + (description + "Idle is an IRC connection manager for the Telepathy framework. This +package enables usage of IRC channels and private messages in Telepathy instant +messaging clients such as Empathy, GNOME Shell or KDE Telepathy.") + (license (list license:lgpl2.1 license:lgpl2.1+)))) + +(define-public telepathy-mission-control + (package + (name "telepathy-mission-control") + (version "5.16.3") + (source (origin + (method url-fetch) + (uri (string-append "https://telepathy.freedesktop.org/releases/" + name "/" name "-" version ".tar.bz2")) + (sha256 + (base32 + "0zcbx69k0d3p2pjh3g7sa3q2zkd5xchxkqsmlfn3fwxaz0pmsmvi")))) + (build-system gnu-build-system) + (native-inputs + `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. + ("pkg-config" ,pkg-config))) + (inputs + `(("dconf" ,dconf) + ("gtk-doc" ,gtk-doc) + ("libgnome-keyring" ,libgnome-keyring) + ("python" ,python-2) + ("xsltproc" ,libxslt))) + (propagated-inputs + `(("telepathy-glib" ,telepathy-glib))) + (home-page "https://telepathy.freedesktop.org/wiki/Components/Mission_Control/") + (synopsis "Telepathy real-time communication framework management daemon") + (description + "Telepathy Mission Control 5 is an account manager and channel dispatcher +for the Telepathy framework, allowing user interfaces and other clients to +share connections to real-time communication services without conflicting.") + (license license:lgpl2.1))) + (define-public colord-gtk (package (name "colord-gtk") diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index ed5d7fd52e..88330c7293 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -21,7 +21,7 @@ ;;; Copyright © 2016 Albin Söderqvist <albin@fripost.org> ;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org> ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com> -;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il" +;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; ;;; This file is part of GNU Guix. @@ -103,6 +103,7 @@ #:use-module (gnu packages xdisorg) #:use-module (guix build-system gnu) #:use-module (guix build-system haskell) + #:use-module (guix build-system python) #:use-module (guix build-system cmake) #:use-module (guix build-system trivial)) @@ -2773,3 +2774,47 @@ Your robot ant can be programmed in many languages: OCaml, Python, C, C++, Java, Ruby, Lua, JavaScript, Pascal, Perl, Scheme, Vala, Prolog. Experienced programmers may also add their own favorite language.") (license license:gpl3+))) + +(define-public bambam + (package + (name "bambam") + (version "0.5") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/porridge/bambam/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "10w110mjdwbvddzihh9rganvvjr5jfiz8cs9n7w12zndwwcc3ria")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2 + #:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (delete 'build) + (add-before 'install 'patch-data-dir-location + (lambda _ + (substitute* "bambam.py" + (("'data'") "'../share/bambam/data'")) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (share (string-append out "/share"))) + (mkdir-p bin) + (copy-file "bambam.py" (string-append bin "/bambam")) + (install-file "bambam.6" (string-append share "/man/man6")) + (copy-recursively "data" (string-append share "/bambam/data"))) + #t))))) + (inputs + `(("python-pygame" ,python-pygame))) + (home-page "https://github.com/porridge/bambam") + (synopsis "Keyboard mashing and doodling game for babies") + (description "Bambam is a simple baby keyboard (and gamepad) masher +application that locks the keyboard and mouse and instead displays bright +colors, pictures, and sounds.") + (license license:gpl3+))) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 077a6ef2a5..7014081eb2 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2013 Joshua Grant <tadni@riseup.net> ;;; Copyright © 2014, 2016 David Thompson <davet@gnu.org> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> ;;; ;;; This file is part of GNU Guix. ;;; @@ -443,7 +444,7 @@ extension functionality is exposed in a single header file.") (dynamic-link-substitute "glu/runtime.scm" "GLU" "glu") (dynamic-link-substitute "glut/runtime.scm" "glut" "freeglut")))))) - (home-page "http://gnu.org/s/guile-opengl") + (home-page "https://gnu.org/s/guile-opengl") (synopsis "Guile binding for the OpenGL graphics API") (description "Guile-OpenGL is a library for Guile that provides bindings to the diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 36c753d79c..90ca4bd1c0 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3732,7 +3732,7 @@ to format Docbook and Mallard documents.") (define-public yelp (package (name "yelp") - (version "3.20.1") + (version "3.21.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3740,7 +3740,7 @@ to format Docbook and Mallard documents.") name "-" version ".tar.xz")) (sha256 (base32 - "1hh8yqbv0scn9nksk9mq94cb4sdczlzxplclv2wqr41jmm8v186x")))) + "1x8la7qn0l796p4nhprvkwb6sk6yc39xhq3gabvzrhdlb6mjgmrs")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc. diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index 525cddc701..cdc9872fef 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -306,7 +306,7 @@ kinds of basic applications for the foundation of a GNU internet.") "This package provides Guile bindings to the client libraries of various GNUnet services, including the @dfn{identity} and @dfn{file sharing} services.") - (home-page "http://gnu.org/software/guix") + (home-page "https://gnu.org/software/guix") (license license:gpl3+)))) ;; FIXME: "gnunet-setup" segfaults under certain conditions and "gnunet-gtk" diff --git a/gnu/packages/grub.scm b/gnu/packages/grub.scm index 01f2a8454d..3229b868c5 100644 --- a/gnu/packages/grub.scm +++ b/gnu/packages/grub.scm @@ -129,7 +129,7 @@ ("parted" ,parted) ("qemu" ,qemu-for-tests) ("xorriso" ,xorriso))) - (home-page "http://www.gnu.org/software/grub/") + (home-page "https://www.gnu.org/software/grub/") (synopsis "GRand Unified Boot loader") (description "GRUB is a multiboot bootloader. It is used for initially loading the diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 3e0b034950..7387235c5b 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -337,16 +337,15 @@ build process and its dependencies, whereas Make uses Makefile format.") (define-public icedtea-6 (package (name "icedtea") - (version "1.13.11") + (version "1.13.12") (source (origin (method url-fetch) (uri (string-append "http://icedtea.wildebeest.org/download/source/icedtea6-" version ".tar.xz")) - (patches (search-patches "icedtea-remove-overrides.patch")) (sha256 (base32 - "1grki39a4rf8n74zc0iglcggxxbpniyfh1gk1lb10p63zvvcsvjj")) + "1q5iqm3dzqj8w3dwj6qqhczkkrslrfhmn3110klfwq9kyi2nimj8")) (modules '((guix build utils))) (snippet '(substitute* "Makefile.in" @@ -441,13 +440,7 @@ build process and its dependencies, whereas Make uses Makefile format.") (substitute* '("patches/jtreg-jrunscript.patch" "patches/hotspot/hs23/drop_unlicensed_test.patch") (("#!/bin/sh") (string-append "#!" (which "sh")))) - - ;; fix path to alsa header in patch - (substitute* "patches/openjdk/6799141-split_out_versions.patch" - (("ALSA_INCLUDE=/usr/include/alsa/version.h") - (string-append "ALSA_INCLUDE=" - (assoc-ref %build-inputs "alsa-lib") - "/include/alsa/version.h"))))) + #t)) (add-after 'unpack 'patch-paths (lambda _ ;; buildtree.make generates shell scripts, so we need to replace @@ -475,6 +468,13 @@ build process and its dependencies, whereas Make uses Makefile format.") (("DEF_OBJCOPY *=.*objcopy") (string-append "DEF_OBJCOPY = " (which "objcopy")))) + ;; fix path to alsa header + (substitute* "openjdk.src/jdk/make/common/shared/Sanity.gmk" + (("ALSA_INCLUDE=/usr/include/alsa/version.h") + (string-append "ALSA_INCLUDE=" + (assoc-ref %build-inputs "alsa-lib") + "/include/alsa/version.h"))) + ;; fix hard-coded utility paths (substitute* '("openjdk.src/jdk/make/common/shared/Defs-utils.gmk" "openjdk.src/corba/make/common/shared/Defs-utils.gmk") @@ -764,10 +764,10 @@ build process and its dependencies, whereas Make uses Makefile format.") ("openjdk6-src" ,(origin (method url-fetch) - (uri "https://java.net/downloads/openjdk6/openjdk-6-src-b39-03_may_2016.tar.gz") + (uri "https://java.net/downloads/openjdk6/openjdk-6-src-b40-22_aug_2016.tar.gz") (sha256 (base32 - "1brxbsgwcj4js26y5lk6capc3pvghgjidvv9cavw6z8n7c7aw8af")))) + "01v4q7g9pa6w7m6yxply5yrin08jgv12fck665xnmp09bpxy8sa5")))) ("lcms" ,lcms) ("zlib" ,zlib) ("gtk" ,gtk+-2) diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm index 6ba454d0ed..011f9e0deb 100644 --- a/gnu/packages/kde-frameworks.scm +++ b/gnu/packages/kde-frameworks.scm @@ -25,11 +25,15 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix utils) + #:use-module (gnu packages acl) #:use-module (gnu packages admin) #:use-module (gnu packages attr) #:use-module (gnu packages boost) #:use-module (gnu packages bison) + #:use-module (gnu packages boost) #:use-module (gnu packages compression) + #:use-module (gnu packages databases) + #:use-module (gnu packages disk) #:use-module (gnu packages docbook) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) @@ -42,6 +46,7 @@ #:use-module (gnu packages polkit) #:use-module (gnu packages python) #:use-module (gnu packages qt) + #:use-module (gnu packages version-control) #:use-module (gnu packages web) #:use-module (gnu packages xml) #:use-module (gnu packages xorg)) @@ -138,6 +143,38 @@ common build settings used in software produced by the KDE community.") (description "C++ bindings/wrapper for gpgme.") (license license:lgpl2.1+))) +(define-public kpmcore + (package + (name "kpmcore") + (version "2.2.1") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/kpmcore" + "/" version "/src/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1blila6ncqbmzhycx3szrbkxc000pzh62956mw5ihxvhrqpncg2p")))) + (build-system cmake-build-system) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules) + ("pkg-config" ,pkg-config))) + (inputs + `(("kconfigwidgets" ,kconfigwidgets) + ("kiconthemes" ,kiconthemes) + ("kio" ,kio) + ("ki18n" ,ki18n) + ("kservice" ,kservice) + ("libatasmart" ,libatasmart) + ("parted" ,parted) + ("qtbase" ,qtbase) + ("util-linux" ,util-linux))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "Library for managing partitions") + (description "Library for managing partitions.") + (license license:gpl3+))) + ;; Tier 1 ;; @@ -1461,3 +1498,1270 @@ different physical units. It supports converting different prefixes (e.g. kilo, mega, giga) as well as converting between different unit systems (e.g. liters, gallons).") (license license:lgpl2.1+))) + + +;; Tier 3 +;; +;; Tier 3 frameworks are generally more powerful, comprehensive packages, and +;; consequently have more complex dependencies. + +(define-public baloo + (package + (name "baloo") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1ayfdg6j9lvas17ryjdv4a0kaj6vw3bxfy2x9nadl0gkc9pak4nh")))) + (build-system cmake-build-system) + (propagated-inputs + `(("kcoreaddons" ,kcoreaddons) + ("kfilemetadata" ,kfilemetadata))) + (native-inputs + `(("dbus" ,dbus) + ("extra-cmake-modules" ,extra-cmake-modules))) + (inputs + `(("kbookmarks" ,kbookmarks) + ("kcompletion" ,kcompletion) + ("kconfig" ,kconfig) + ("kcrash" ,kcrash) + ("kdbusaddons" ,kdbusaddons) + ("kidletime" ,kidletime) + ("kio" ,kio) + ("kitemviews" ,kitemviews) + ("ki18n" ,ki18n) + ("kjobwidgets" ,kjobwidgets) + ("kservice" ,kservice) + ("kwidgetsaddons" ,kwidgetsaddons) + ("kxmlgui" ,kxmlgui) + ("lmdb" ,lmdb) + ("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative) + ("solid" ,solid))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'check-setup + (lambda _ + (setenv "HOME" (getcwd)) + (setenv "QT_QPA_PLATFORM" "offscreen") + #t)) + (replace 'check + (lambda _ + (setenv "DBUS_FATAL_WARNINGS" "0") + (zero? (system* "dbus-launch" "ctest" "."))))))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "File searching and indexing") + (description "Baloo provides file searching and indexing. It does so by +maintaining an index of the contents of your files.") + ;; dual licensed + (license (list license:gpl2+ license:lgpl2.1+)))) + +(define-public kactivities + (package + (name "kactivities") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0s8g43zk6h35bq1am1nnhj0qvmhd6kz42gs8l7ybga0367jghzhf")))) + (build-system cmake-build-system) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules))) + (inputs + `(("boost" ,boost) + ("kauth" ,kauth) + ("kbookmarks" ,kbookmarks) + ("kcodecs" ,kcodecs) + ("kcompletion" ,kcompletion) + ("kconfig" ,kconfig) + ("kconfigwidgets" ,kconfigwidgets) + ("kcoreaddons" ,kcoreaddons) + ("kio" ,kio) + ("kitemviews" ,kitemviews) + ("kjobwidgets" ,kjobwidgets) + ("kservice" ,kservice) + ("kwidgetsaddons" ,kwidgetsaddons) + ("kwindowsystem" ,kwindowsystem) + ("kxmlgui" ,kxmlgui) + ("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative) + ("solid" ,solid))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "Core components for the KDE Activity concept") + (description "KActivities provides the infrastructure needed to manage a +user's activites, allowing them to switch between tasks, and for applications +to update their state to match the user's current activity. This includes a +daemon, a library for interacting with that daemon, and plugins for integration +with other frameworks.") + ;; triple licensed + (license (list license:gpl2+ license:lgpl2.0+ license:lgpl2.1+)))) + +;; NOTE: This package is listed as a tier 2 package even though it requires +;; kactivities - a tier 3 package. +(define-public kactivities-stats + (package + (name "kactivities-stats") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1z3xvpifxbd05b2xaxxyiypcpid7jgjb1qpwiyjj1gnfp4rjmzpc")))) + (build-system cmake-build-system) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules))) + (inputs + `(("boost" ,boost) + ("kactivities" ,kactivities) + ("kconfig" ,kconfig) + ("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "Access usage statistics collected by the activity manager") + (description "The KActivitiesStats library provides a querying mechanism for +the data that the activitiy manager collects - which documents have been opened +by which applications, and what documents have been linked to which activity.") + ;; triple licensed + (license (list license:lgpl2.0+ license:lgpl2.1+ license:lgpl3+)))) + +(define-public kbookmarks + (package + (name "kbookmarks") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "10d8dnhvbrwp0dbmz93cqfdff6ir8iy3yiwaf9ihj6ma124qlyjn")))) + (build-system cmake-build-system) + (propagated-inputs + `(("kwidgetsaddons" ,kwidgetsaddons))) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules) + ("qttools" ,qttools))) + (inputs + `(("kauth" ,kauth) + ("kcodecs" ,kcodecs) + ("kconfig" ,kconfig) + ("kconfigwidgets" ,kconfigwidgets) + ("kcoreaddons" ,kcoreaddons) + ("kiconthemes" ,kiconthemes) + ("kxmlgui" ,kxmlgui) + ("qtbase" ,qtbase))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'check-setup + (lambda _ + (setenv "HOME" (getcwd)) + (setenv "QT_QPA_PLATFORM" "offscreen") + #t))))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "Bookmarks management library") + (description "KBookmarks lets you access and manipulate bookmarks stored +using the XBEL format.") + (license license:lgpl2.1+))) + +(define-public kcmutils + (package + (name "kcmutils") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0aws1c76s6wbp0xpr6qv6cfwq8dw82v00pkf9gy84sbxknwjnizk")))) + (build-system cmake-build-system) + (propagated-inputs + `(("kconfigwidgets" ,kconfigwidgets) + ("kservice" ,kservice))) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules))) + (inputs + `(("kauth" ,kauth) + ("kcodecs" ,kcodecs) + ("kconfig" ,kconfig) + ("kcoreaddons" ,kcoreaddons) + ("kdeclarative" ,kdeclarative) + ("kiconthemes" ,kiconthemes) + ("kitemviews" ,kitemviews) + ("ki18n" ,ki18n) + ("kpackage" ,kpackage) + ("kwidgetsaddons" ,kwidgetsaddons) + ("kxmlgui" ,kxmlgui) + ("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "Utilities for KDE System Settings modules") + (description "KCMUtils provides various classes to work with KCModules. +KCModules can be created with the KConfigWidgets framework.") + (license license:lgpl2.1+))) + +(define-public kconfigwidgets + (package + (name "kconfigwidgets") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0v25r50gh5i984lzlv0rradghglcfqf0gsfmnkn23h87b86fm9l2")))) + (build-system cmake-build-system) + (propagated-inputs + `(("kauth" ,kauth) + ("kcodecs" ,kcodecs) + ("kconfig" ,kconfig) + ("kwidgetsaddons" ,kwidgetsaddons))) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules))) + (inputs + `(("kcoreaddons" ,kcoreaddons) + ("kguiaddons" ,kguiaddons) + ("ki18n" ,ki18n) + ("qtbase" ,qtbase))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'check-setup + (lambda _ + (setenv "QT_QPA_PLATFORM" "offscreen") + #t))))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "Widgets for configuration dialogs") + (description "KConfigWidgets provides easy-to-use classes to create +configuration dialogs, as well as a set of widgets which uses KConfig to store +their settings.") + ;; dual licensed + (license (list license:gpl2+ license:lgpl2.1+)))) + +(define-public kdeclarative + (package + (name "kdeclarative") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "00ik9q1r6y6g5rkdq96yczgrxmcg85x00lipyljvc3x6xw6bixbz")))) + (build-system cmake-build-system) + (propagated-inputs + `(("kconfig" ,kconfig) + ("kpackage" ,kpackage))) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules) + ("xorg-server" ,xorg-server))) + (inputs + `(("kauth" ,kauth) + ("kbookmarks" ,kbookmarks) + ("kcodecs" ,kcodecs) + ("kcompletion" ,kcompletion) + ("kconfigwidgets" ,kconfigwidgets) + ("kcoreaddons" ,kcoreaddons) + ("kglobalaccel" ,kglobalaccel) + ("kguiaddons" ,kguiaddons) + ("kiconthemes" ,kiconthemes) + ("kio" ,kio) + ("kitemviews" ,kitemviews) + ("ki18n" ,ki18n) + ("kjobwidgets" ,kjobwidgets) + ("kservice" ,kservice) + ("kwidgetsaddons" ,kwidgetsaddons) + ("kwindowsystem" ,kwindowsystem) + ("kxmlgui" ,kxmlgui) + ("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative) + ("solid" ,solid))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'start-xorg-server + (lambda* (#:key inputs #:allow-other-keys) + ;; The test suite requires a running X server. + (system (string-append (assoc-ref inputs "xorg-server") + "/bin/Xvfb :1 -screen 0 640x480x24 &")) + (setenv "DISPLAY" ":1") + #t))))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "Integration of QML and KDE work spaces") + (description "KDeclarative provides integration of QML and KDE work spaces. +It's comprises two parts: a library used by the C++ part of your application to +intergrate QML with KDE Frameworks specific features, and a series of QML imports +that offer bindings to some of the Frameworks.") + ;; dual licensed + (license (list license:gpl2+ license:lgpl2.1+)))) + +(define-public kded + (package + (name "kded") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0ngpxdxb596myn5r4kjxahx195bwklq33yvgjvcbxi2clg2wccaj")))) + (build-system cmake-build-system) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules))) + (inputs + `(("kconfig" ,kconfig) + ("kcoreaddons" ,kcoreaddons) + ("kcrash" ,kcrash) + ("kdbusaddons" ,kdbusaddons) + ("kdoctools" ,kdoctools) + ("kinit" ,kinit) + ("kservice" ,kservice) + ("qtbase" ,qtbase))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "Central daemon of KDE work spaces") + (description "KDED stands for KDE Daemon. KDED runs in the background and +performs a number of small tasks. Some of these tasks are built in, others are +started on demand.") + ;; dual licensed + (license (list license:lgpl2.0+ license:lgpl2.1+)))) + +(define-public kdesignerplugin + (package + (name "kdesignerplugin") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0i0s8pwwhwh5hyyvkv0cnj0yyv0g5bnm5xw18knv2yagiy4bvb2j")))) + (build-system cmake-build-system) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules) + ("qttools" ,qttools))) + (inputs + `(("kconfig" ,kconfig) + ("kcoreaddons" ,kcoreaddons) + ("kdoctools" ,kdoctools) + ("qtbase" ,qtbase))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'check-setup + (lambda _ + (setenv "QT_QPA_PLATFORM" "offscreen") + #t))))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "Integrating KDE frameworks widgets with Qt Designer") + (description "This framework provides plugins for Qt Designer that allow it +to display the widgets provided by various KDE frameworks, as well as a utility +(kgendesignerplugin) that can be used to generate other such plugins from +ini-style description files.") + (license license:lgpl2.1+))) + +(define-public kdesu + (package + (name "kdesu") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1ivcnhgvq75xvl0w9g7m45qzallz42ijaq0n1ap09lpdfmjbnrxk")))) + (build-system cmake-build-system) + (propagated-inputs + `(("kpty" ,kpty))) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules))) + (inputs + `(("kconfig" ,kconfig) + ("kcoreaddons" ,kcoreaddons) + ("ki18n" ,ki18n) + ("kservice" ,kservice) + ("qtbase" ,qtbase))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "User interface for running shell commands with root privileges") + (description "KDESU provides functionality for building GUI front ends for +(password asking) console mode programs. kdesu and kdessh use it to interface +with su and ssh respectively.") + (license license:lgpl2.1+))) + +(define-public kemoticons + (package + (name "kemoticons") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0gmc52k5jb553jvzxwsq79v5y87kgav8i5qqv4bqc9yl7p866zhn")))) + (build-system cmake-build-system) + (propagated-inputs + `(("kservice" ,kservice))) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules))) + (inputs + `(("karchive" ,karchive) + ("kconfig" ,kconfig) + ("kcoreaddons" ,kcoreaddons) + ("qtbase" ,qtbase))) + (arguments + `(#:tests? #f ; FIXME: 2/2 tests fail. + #:phases + (modify-phases %standard-phases + (add-before 'check 'check-setup + (lambda _ + (setenv "HOME" (getcwd)) + (setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; Enable debug output + (setenv "QT_QPA_PLATFORM" "offscreen")))))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "Convert text emoticons to graphical emoticons") + (description "KEmoticons converts emoticons from text to a graphical +representation with images in HTML. It supports setting different themes for +emoticons coming from different providers.") + ;; dual licensed, image files are licensed under cc-by-sa4.0 + (license (list license:gpl2+ license:lgpl2.1+ license:cc-by-sa4.0)))) + +(define-public kglobalaccel + (package + (name "kglobalaccel") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "123v0ld1q88hbm3d0mqgq6lcivfkqh7pbz4hb4n76ab5v43qc15c")))) + (build-system cmake-build-system) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules) + ("qttools" ,qttools))) + (inputs + `(("kconfig" ,kconfig) + ("kcrash" ,kcrash) + ("kcoreaddons" ,kcoreaddons) + ("kdbusaddons" ,kdbusaddons) + ("kwindowsystem" ,kwindowsystem) + ("libxcb" ,libxcb) + ("qtbase" ,qtbase) + ("qtx11extras" ,qtx11extras) + ("xcb-util-keysyms" ,xcb-util-keysyms))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'check-setup + (lambda _ + (setenv "QT_QPA_PLATFORM" "offscreen") + #t))))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "Global desktop keyboard shortcuts") + (description "KGlobalAccel allows you to have global accelerators that are +independent of the focused window. Unlike regular shortcuts, the application's +window does not need focus for them to be activated.") + (license license:lgpl2.1+))) + +(define-public kiconthemes + (package + (name "kiconthemes") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1k5zig2n6wzfyv6pc8dpas2862mxjyxxza00m31myrfw5i1a1h6m")))) + (build-system cmake-build-system) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules) + ("shared-mime-info" ,shared-mime-info))) + (inputs + `(("karchive" ,karchive) + ("kauth" ,kauth) + ("kcodecs" ,kcodecs) + ("kcoreaddons" ,kcoreaddons) + ("kconfig" ,kconfig) + ("kconfigwidgets" ,kconfigwidgets) + ("ki18n" ,ki18n) + ("kitemviews" ,kitemviews) + ("kwidgetsaddons" ,kwidgetsaddons) + ("qtbase" ,qtbase) + ("qtsvg" ,qtsvg))) + (arguments + `(#:tests? #f ; FIXME: Test failure + #:phases + (modify-phases %standard-phases + (add-before 'check 'check-setup + (lambda* (#:key inputs #:allow-other-keys) + (setenv "XDG_DATA_DIRS" + (string-append (assoc-ref inputs "shared-mime-info") + "/share")) + (setenv "HOME" (getcwd)) + (setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; Enable debug output + (setenv "QT_QPA_PLATFORM" "offscreen")))))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "Icon GUI utilities") + (description "This library contains classes to improve the handling of icons +in applications using the KDE Frameworks.") + (license license:lgpl2.1+))) + +(define-public kinit + (package + (name "kinit") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1i7l6gid5hrrfglw1c461gpjg51dwz7cl4lx7ll8vz2ha8mz4d3n")))) + (build-system cmake-build-system) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules))) + (inputs + `(("kauth" ,kauth) + ("kbookmarks" ,kbookmarks) + ("kcodecs" ,kcodecs) + ("kcompletion" ,kcompletion) + ("kconfig" ,kconfig) + ("kconfigwidgets" ,kconfigwidgets) + ("kcoreaddons" ,kcoreaddons) + ("kcrash" ,kcrash) + ("kio" ,kio) + ("kitemviews" ,kitemviews) + ("ki18n" ,ki18n) + ("kjobwidgets" ,kjobwidgets) + ("kservice" ,kservice) + ("kwidgetsaddons" ,kwidgetsaddons) + ("kwindowsystem" ,kwindowsystem) + ("kxmlgui" ,kxmlgui) + ("qtbase" ,qtbase) + ("solid" ,solid))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "Library to speed up start of applications on KDE workspaces") + (description "Kdeinit is a process launcher similar to init used for booting +UNIX. It launches processes by forking and then loading a dynamic library which +contains a 'kdemain(...)' function. Using kdeinit to launch KDE applications +makes starting KDE applications faster and reduces memory consumption.") + ;; dual licensed + (license (list license:lgpl2.0+ license:lgpl2.1+)))) + +(define-public kio + (package + (name "kio") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0zncj9yf8zaylazlwvirylpk9vki3j889b1x2s0aav54vvj7vdi5")))) + (build-system cmake-build-system) + (propagated-inputs + `(("kbookmarks" ,kbookmarks) + ("kconfig" ,kconfig) + ("kcompletion" ,kcompletion) + ("kcoreaddons" ,kcoreaddons) + ("kitemviews" ,kitemviews) + ("kjobwidgets" ,kjobwidgets) + ("kservice" ,kservice) + ("kxmlgui" ,kxmlgui) + ("solid" ,solid))) + (native-inputs + `(("dbus" ,dbus) + ("extra-cmake-modules" ,extra-cmake-modules))) + (inputs + `(("acl" ,acl) + ("karchive" ,karchive) + ("kauth" ,kauth) + ("kcodecs" ,kcodecs) + ("kconfigwidgets" ,kconfigwidgets) + ("kdbusaddons" ,kdbusaddons) + ("kdoctools" ,kdoctools) + ("kiconthemes" ,kiconthemes) + ("ki18n" ,ki18n) + ("knotifications" ,knotifications) + ("ktextwidgets" ,ktextwidgets) + ("kwallet" ,kwallet) + ("kwidgetsaddons" ,kwidgetsaddons) + ("kwindowsystem" ,kwindowsystem) + ("libxml2" ,libxml2) + ("libxslt" ,libxslt) + ("qtbase" ,qtbase) + ("qtx11extras" ,qtx11extras) + ("sonnet" ,sonnet))) + (arguments + `(#:tests? #f ; FIXME: 41/50 tests fail. + #:phases + (modify-phases %standard-phases + (add-before 'check 'check-setup + (lambda _ + (setenv "HOME" (getcwd)) + (setenv "XDG_RUNTIME_DIR" (getcwd)) + (setenv "CTEST_OUTPUT_ON_FAILURE" "1") + (setenv "QT_QPA_PLATFORM" "offscreen")))))) + ;;(replace 'check + ;; (lambda _ + ;; (setenv "DBUS_FATAL_WARNINGS" "0") + ;; (zero? (system* "dbus-launch" "ctest" "."))))))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "Network transparent access to files and data") + (description "This framework implements a lot of file management functions. +It supports accessing files locally as well as via HTTP and FTP out of the box +and can be extended by plugins to support other protocols as well. There is a +variety of plugins available, e.g. to support access via SSH. The framework can +also be used to bridge a native protocol to a file-based interface. This makes +the data accessible in all applications using the KDE file dialog or any other +KIO enabled infrastructure.") + (license license:lgpl2.1+))) + +(define-public knewstuff + (package + (name "knewstuff") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0xdv3wh3100vzsx8p2zihy1dvh0wzfmrjkjq71v8igwz5d291zsj")))) + (build-system cmake-build-system) + (propagated-inputs + `(("attica" ,attica) + ("kservice" ,kservice) + ("kxmlgui" ,kxmlgui))) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules))) + (inputs + `(("karchive" ,karchive) + ("kauth" ,kauth) + ("kbookmarks" ,kbookmarks) + ("kcodecs" ,kcodecs) + ("kcompletion" ,kcompletion) + ("kconfig" ,kconfig) + ("kconfigwidgets" ,kconfigwidgets) + ("kcoreaddons" ,kcoreaddons) + ("kio" ,kio) + ("kitemviews" ,kitemviews) + ("ki18n" ,ki18n) + ("kiconthemes" ,kiconthemes) + ("kjobwidgets" ,kjobwidgets) + ("ktextwidgets" ,ktextwidgets) + ("kwidgetsaddons" ,kwidgetsaddons) + ("qtbase" ,qtbase) + ("solid" ,solid) + ("sonnet" ,sonnet))) + (arguments + `(#:tests? #f ; FIXME: 1/3 tests fail. + #:phases + (modify-phases %standard-phases + (add-before 'check 'check-setup + (lambda _ ; XDG_DATA_DIRS isn't set + (setenv "HOME" (getcwd)) + (setenv "CTEST_OUTPUT_ON_FAILURE" "1") + (setenv "QT_QPA_PLATFORM" "offscreen")))))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "Framework for downloading and sharing additional application data") + (description "The KNewStuff library implements collaborative data sharing +for applications. It uses libattica to support the Open Collaboration Services +specification.") + (license license:lgpl2.1+))) + +(define-public knotifyconfig + (package + (name "knotifyconfig") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1dij841fnqia4p44x2wnpdvl8cn3nkj833y0fah50fmipjc8r70b")))) + (build-system cmake-build-system) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules))) + (inputs + `(("kauth" ,kauth) + ("kbookmarks" ,kbookmarks) + ("kcodecs" ,kcodecs) + ("kcompletion" ,kcompletion) + ("kconfig" ,kconfig) + ("kconfigwidgets" ,kconfigwidgets) + ("kcoreaddons" ,kcoreaddons) + ("kio" ,kio) + ("kitemviews" ,kitemviews) + ("ki18n" ,ki18n) + ("kjobwidgets" ,kjobwidgets) + ("knotifications" ,knotifications) + ("kservice" ,kservice) + ("kwidgetsaddons" ,kwidgetsaddons) + ("kxmlgui" ,kxmlgui) + ("phonon" ,phonon) + ("qtbase" ,qtbase) + ("solid" ,solid))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "Configuration dialog for desktop notifications") + (description "KNotifyConfig provides a configuration dialog for desktop +notifications which can be embedded in your application.") + ;; dual licensed + (license (list license:lgpl2.0+ license:lgpl2.1+)))) + +(define-public kparts + (package + (name "kparts") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0z7qr93aq02i7g7cxgypx2rzlnsvbsx9cjblb0ijmad1nb8w3mix")))) + (build-system cmake-build-system) + (propagated-inputs + `(("kio" ,kio) + ("ktextwidgets" ,ktextwidgets) + ("kxmlgui" ,kxmlgui))) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules))) + (inputs + `(("kauth" ,kauth) + ("kbookmarks" ,kbookmarks) + ("kcodecs" ,kcodecs) + ("kcompletion" ,kcompletion) + ("kconfig" ,kconfig) + ("kconfigwidgets" ,kconfigwidgets) + ("kcoreaddons" ,kcoreaddons) + ("kiconthemes" ,kiconthemes) + ("kitemviews" ,kitemviews) + ("ki18n" ,ki18n) + ("kjobwidgets" ,kjobwidgets) + ("kservice" ,kservice) + ("kwidgetsaddons" ,kwidgetsaddons) + ("qtbase" ,qtbase) + ("solid" ,solid) + ("sonnet" ,sonnet))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'check-setup + (lambda _ + (setenv "QT_QPA_PLATFORM" "offscreen") + #t))))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "Plugin framework for user interface components") + (description "This library implements the framework for KDE parts, which are +widgets with a user-interface defined in terms of actions.") + (license license:lgpl2.1+))) + +(define-public kpeople + (package + (name "kpeople") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0iknzkj23y927xh24kw5sjxyirhy6pkmfcmmgwzd78rba8a54qp2")))) + (build-system cmake-build-system) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules))) + (inputs + `(("kconfig" ,kconfig) + ("kcoreaddons" ,kcoreaddons) + ("kitemviews" ,kitemviews) + ("ki18n" ,ki18n) + ("kservice" ,kservice) + ("kwidgetsaddons" ,kwidgetsaddons) + ("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative))) + (arguments + `(#:tests? #f ; FIXME: 1/3 tests fail. + #:phases + (modify-phases %standard-phases + (add-before 'check 'check-setup + (lambda _ + (setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; Enable debug output + (setenv "QT_QPA_PLATFORM" "offscreen")))))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "Provides access to all contacts and aggregates them by person") + (description "KPeople offers unified access to our contacts from different +sources, grouping them by person while still exposing all the data. KPeople +also provides facilities to integrate the data provided in user interfaces by +providing QML and Qt Widgets components. The sources are plugin-based, allowing +to easily extend the contacts collection.") + (license license:lgpl2.1+))) + +(define-public krunner + (package + (name "krunner") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0ff87ijjd47jxf6zw2ggqgngnbyx1rj59wdfgy5wbi3acws6bafl")))) + (build-system cmake-build-system) + (propagated-inputs + `(("plasma-framework" ,plasma-framework))) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules))) + (inputs + `(("kauth" ,kauth) + ("kbookmarks" ,kbookmarks) + ("kcodecs" ,kcodecs) + ("kcompletion" ,kcompletion) + ("kconfig" ,kconfig) + ("kconfigwidgets" ,kconfigwidgets) + ("kcoreaddons" ,kcoreaddons) + ("kio" ,kio) + ("kitemviews" ,kitemviews) + ("ki18n" ,ki18n) + ("kjobwidgets" ,kjobwidgets) + ("kpackage" ,kpackage) + ("kservice" ,kservice) + ("kwidgetsaddons" ,kwidgetsaddons) + ("kxmlgui" ,kxmlgui) + ("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative) + ("solid" ,solid) + ("threadweaver" ,threadweaver))) + (arguments + `(#:tests? #f ; FIXME: 1/1 tests fail. + #:phases + (modify-phases %standard-phases + (add-before 'check 'check-setup + (lambda _ + (setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; Enable debug output + (setenv "QT_QPA_PLATFORM" "offscreen")))))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "Framework for Plasma runners") + (description "The Plasma workspace provides an application called KRunner +which, among other things, allows one to type into a text area which causes +various actions and information that match the text appear as the text is being +typed.") + (license license:lgpl2.1+))) + +(define-public kservice + (package + (name "kservice") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0w0nsg64d6xhgijr2vh0j5p544qi0q55jpqa9v9mv956zrrdssdk")))) + (build-system cmake-build-system) + (propagated-inputs + `(("kconfig" ,kconfig) + ("kcoreaddons" ,kcoreaddons))) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules))) + (inputs + `(("kcrash" ,kcrash) + ("kdbusaddons" ,kdbusaddons) + ("kdoctools" ,kdoctools) + ("ki18n" ,ki18n) + ("qtbase" ,qtbase))) + (arguments + `(#:tests? #f ; FIXME: 8/10 tests fail. + #:phases + (modify-phases %standard-phases + (add-before 'check 'check-setup + (lambda _ + (setenv "HOME" (getcwd)) + (setenv "CTEST_OUTPUT_ON_FAILURE" "1") + (setenv "QT_QPA_PLATFORM" "offscreen") + #t))))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "Plugin framework for desktop services") + (description "KService provides a plugin framework for handling desktop +services. Services can be applications or libraries. They can be bound to MIME +types or handled by application specific code.") + ;; triple licensed + (license (list license:gpl2+ license:gpl3+ license:lgpl2.1+)))) + +(define-public ktexteditor + (package + (name "ktexteditor") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1ykj1kvm7k1vxb1w235d5hp2swwdqjyp2y4c3pxbvkn999h9x5q5")))) + (build-system cmake-build-system) + (propagated-inputs + `(("kparts" ,kparts))) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules))) + (inputs + `(("karchive" ,karchive) + ("kauth" ,kauth) + ("kbookmarks" ,kbookmarks) + ("kcodecs" ,kcodecs) + ("kcompletion" ,kcompletion) + ("kconfig" ,kconfig) + ("kconfigwidgets" ,kconfigwidgets) + ("kcoreaddons" ,kcoreaddons) + ("kguiaddons" ,kguiaddons) + ("kiconthemes" ,kiconthemes) + ("kio" ,kio) + ("kitemviews" ,kitemviews) + ("ki18n" ,ki18n) + ("kjobwidgets" ,kjobwidgets) + ("kservice" ,kservice) + ("ktextwidgets" ,ktextwidgets) + ("kwidgetsaddons" ,kwidgetsaddons) + ("kxmlgui" ,kxmlgui) + ("libgit2" ,libgit2) + ("perl" ,perl) + ("qtbase" ,qtbase) + ("qtscript" ,qtscript) + ("qtxmlpatterns" ,qtxmlpatterns) + ("solid" ,solid) + ("sonnet" ,sonnet))) + (arguments + `(#:tests? #f ; FIXME: 2/54 tests fail: Cannot find fontdirectory qtbase/lib/font + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'setup + (lambda* (#:key inputs #:allow-other-keys) + (setenv "XDG_DATA_DIRS" ; FIXME build phase doesn't find parts.desktop + (string-append (assoc-ref inputs "kparts") "/share")) + #t)) + (add-before 'check 'check-setup + (lambda _ + (setenv "HOME" (getcwd)) + (setenv "QT_QPA_PLATFORM" "offscreen") + (setenv "CTEST_OUTPUT_ON_FAILURE" "1") + #t))))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "Full text editor component") + (description "KTextEditor provides a powerful text editor component that you +can embed in your application, either as a KPart or using the KF5::TextEditor +library.") + ;; triple licensed + (license (list license:gpl2+ license:lgpl2.0+ license:lgpl2.1+)))) + +(define-public ktextwidgets + (package + (name "ktextwidgets") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1q10xav2gkii6s3m31c9xvxf1988l7k2lpib6pyhgsidflmwjm02")))) + (build-system cmake-build-system) + (propagated-inputs + `(("ki18n" ,ki18n) + ("sonnet" ,sonnet))) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules))) + (inputs + `(("kauth" ,kauth) + ("kcodecs" ,kcodecs) + ("kcompletion" ,kcompletion) + ("kconfig" ,kconfig) + ("kconfigwidgets" ,kconfigwidgets) + ("kcoreaddons" ,kcoreaddons) + ("kiconthemes" ,kiconthemes) + ("kservice" ,kservice) + ("kwidgetsaddons" ,kwidgetsaddons) + ("kwindowsystem" ,kwindowsystem) + ("qtbase" ,qtbase))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'check-setup + (lambda _ + (setenv "QT_QPA_PLATFORM" "offscreen") + #t))))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "Text editing widgets") + (description "KTextWidgets provides widgets for displaying and editing text. +It supports rich text as well as plain text.") + ;; dual licensed + (license (list license:lgpl2.0+ license:lgpl2.1+)))) + +(define-public kwallet + (package + (name "kwallet") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0zad5h4vsvcl2xv3vxsjwh42b71xbp6x6rj8cvmw8szr2rzz9gsx")))) + (build-system cmake-build-system) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules))) + (inputs + `(("gpgmepp" ,gpgmepp) + ("kauth" ,kauth) + ("kcodecs" ,kcodecs) + ("kconfig" ,kconfig) + ("kconfigwidgets" ,kconfigwidgets) + ("kcoreaddons" ,kcoreaddons) + ("kdbusaddons" ,kdbusaddons) + ("kdoctools" ,kdoctools) + ("kiconthemes" ,kiconthemes) + ("ki18n" ,ki18n) + ("knotifications" ,knotifications) + ("kservice" ,kservice) + ("kwidgetsaddons" ,kwidgetsaddons) + ("kwindowsystem" ,kwindowsystem) + ("libgcrypt" ,libgcrypt) + ("phonon" ,phonon) + ("qtbase" ,qtbase))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "Safe desktop-wide storage for passwords") + (description "This framework contains an interface to KWallet, a safe +desktop-wide storage for passwords and the kwalletd daemon used to safely store +the passwords on KDE work spaces.") + (license license:lgpl2.1+))) + +(define-public kxmlgui + (package + (name "kxmlgui") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1qhixldhhcbklmrpjh67440h1rrzqy70h57hw6ialjdsr3pl6ihp")))) + (build-system cmake-build-system) + (propagated-inputs + `(("kconfig" ,kconfig) + ("kconfigwidgets" ,kconfigwidgets))) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules))) + (inputs + `(("attica" ,attica) + ("kauth", kauth) + ("kcodecs" ,kcodecs) + ("kcoreaddons" ,kcoreaddons) + ("kglobalaccel" ,kglobalaccel) + ("kiconthemes" ,kiconthemes) + ("kitemviews" ,kitemviews) + ("ki18n" ,ki18n) + ("ktextwidgets" ,ktextwidgets) + ("kwidgetsaddons" ,kwidgetsaddons) + ("kwindowsystem" ,kwindowsystem) + ("qtbase" ,qtbase) + ("sonnet" ,sonnet))) + (arguments + `(#:tests? #f ; FIXME: 1/5 tests fail. + #:phases + (modify-phases %standard-phases + (add-before 'check 'check-setup + (lambda _ + (setenv "HOME" (getcwd)) + (setenv "QT_QPA_PLATFORM" "offscreen") + (setenv "CTEST_OUTPUT_ON_FAILURE" "1") + #t))))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "Framework for managing menu and toolbar actions") + (description "KXMLGUI provides a framework for managing menu and toolbar +actions in an abstract way. The actions are configured through a XML description +and hooks in the application code. The framework supports merging of multiple +descriptions for integrating actions from plugins.") + ;; dual licensed + (license (list license:gpl2+ license:lgpl2.1+)))) + +(define-public kxmlrpcclient + (package + (name "kxmlrpcclient") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "06ap6ipzqimz1rfrcr7z8zc7idy7sg4a97dws7h52i34ms7jqnc8")))) + (build-system cmake-build-system) + (propagated-inputs + `(("kio" ,kio))) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules))) + (inputs + `(("kauth" ,kauth) + ("kbookmarks" ,kbookmarks) + ("kcodecs" ,kcodecs) + ("kcompletion" ,kcompletion) + ("kconfig" ,kconfig) + ("kconfigwidgets" ,kconfigwidgets) + ("kcoreaddons" ,kcoreaddons) + ("kitemviews" ,kitemviews) + ("ki18n" ,ki18n) + ("kjobwidgets" ,kjobwidgets) + ("kservice" ,kservice) + ("kwidgetsaddons" ,kwidgetsaddons) + ("kxmlgui" ,kxmlgui) + ("qtbase" ,qtbase) + ("solid" ,solid))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "XML-RPC client") + (description "This library contains simple XML-RPC Client support. It is a +complete client and is easy to use. Only one interface is exposed, +kxmlrpcclient/client.h and from that interface, you only need to use 3 methods: +setUrl, setUserAgent and call.") + ;; dual licensed + (license (list license:bsd-2 license:lgpl2.1+)))) + +(define-public plasma-framework + (package + (name "plasma-framework") + (version "5.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0981vm00541dzihlr1fsax05biwp2ddpwjrmvnfysx5jagdc65cb")))) + (build-system cmake-build-system) + (propagated-inputs + `(("kpackage" ,kpackage) + ("kservice" ,kservice))) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules))) + (inputs + `(("kactivities" ,kactivities) + ("karchive" ,karchive) + ("kauth" ,kauth) + ("kbookmarks" ,kbookmarks) + ("kcodecs" ,kcodecs) + ("kcompletion" ,kcompletion) + ("kconfig" ,kconfig) + ("kconfigwidgets" ,kconfigwidgets) + ("kcoreaddons" ,kcoreaddons) + ("kdbusaddons" ,kdbusaddons) + ("kdeclarative" ,kdeclarative) + ("kdoctools" ,kdoctools) + ("kglobalaccel" ,kglobalaccel) + ("kguiaddons" ,kguiaddons) + ("kiconthemes" ,kiconthemes) + ("kitemviews" ,kitemviews) + ("kio" ,kio) + ("ki18n" ,ki18n) + ("kjobwidgets" ,kjobwidgets) + ("knotificantions" ,knotifications) + ("kwidgetsaddons" ,kwidgetsaddons) + ("kwindowsystem" ,kwindowsystem) + ("kxmlgui" ,kxmlgui) + ("phonon" ,phonon) + ("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative) + ("qtsvg" ,qtsvg) + ("qtx11extras" ,qtx11extras) + ("solid" ,solid))) + (arguments + `(#:tests? #f ; FIXME: 13/14 tests fail. + #:phases + (modify-phases %standard-phases + (add-before 'check 'check-setup + (lambda _ + (setenv "HOME" (getcwd)) + (setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; Enable debug output + (setenv "QT_QPA_PLATFORM" "offscreen") + #t))))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "Libraries, components and tools of Plasma workspaces") + (description "The plasma framework provides QML components, libplasma and +script engines.") + ;; dual licensed + (license (list license:gpl2+ license:lgpl2.1+)))) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 56c1aff68a..6dee46086f 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 David Craven <david@craven.ch> +;;; Copyright © 2016 John Darrington <jmd@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -198,6 +199,30 @@ `insmod', `lsmod', and more.") (license license:gpl2+))) +(define-public libnfsidmap + (package + (name "libnfsidmap") + (version "0.25") + (source (origin + (method url-fetch) + (uri (string-append + "http://www.citi.umich.edu/projects/nfsv4/linux/" + name "/" name "-" version ".tar.gz")) + (sha256 + (base32 + "1kzgwxzh83qi97rblcm9qj80cdvnv8kml2plz0q103j0hifj8vb5")))) + (build-system gnu-build-system) + (home-page + "http://www.citi.umich.edu/projects/nfsv4/crossrealm/libnfsidmap_config.html") + (synopsis + "NFSv4 support library for name/ID mapping") + (description "Libnfsidmap is a library holding mulitiple methods of +mapping names to ids and visa versa, mainly for NFSv4. It provides an +extensible array of mapping functions, currently consisting of two choices: +the default @code{nsswitch} and the experimental @code{umich_ldap}.") + (license (license:non-copyleft "file://COPYING" + "See COPYING in the distribution.")))) + (define %boot-logo-patch ;; Linux-Libre boot logo featuring Freedo and a gnu. (origin @@ -855,14 +880,14 @@ MIDI functionality to the Linux-based operating system.") (define-public alsa-utils (package (name "alsa-utils") - (version "1.1.0") + (version "1.1.2") (source (origin (method url-fetch) (uri (string-append "ftp://ftp.alsa-project.org/pub/utils/" name "-" version ".tar.bz2")) (sha256 (base32 - "1wa88wvqcfhak9x3y65wzzwxmmyxb5bv2gyj7lnm653fnwsk271v")))) + "0wcha78c2sm8qqk5r3w83cvm8fp6fb1zpd35kmcm24kxhz007xks")))) (build-system gnu-build-system) (arguments ;; XXX: Disable man page creation until we have DocBook. @@ -873,14 +898,15 @@ MIDI functionality to the Linux-based operating system.") (string-append "--with-udev-rules-dir=" (assoc-ref %outputs "out") "/lib/udev/rules.d")) - #:phases (alist-cons-before - 'install 'pre-install - (lambda _ - ;; Don't try to mkdir /var/lib/alsa. - (substitute* "Makefile" - (("\\$\\(MKDIR_P\\) .*ASOUND_STATE_DIR.*") - "true\n"))) - %standard-phases))) + #:phases + (modify-phases %standard-phases + (add-before + 'install 'pre-install + (lambda _ + ;; Don't try to mkdir /var/lib/alsa. + (substitute* "Makefile" + (("\\$\\(MKDIR_P\\) .*ASOUND_STATE_DIR.*") + "true\n"))))))) (inputs `(("libsamplerate" ,libsamplerate) ("ncurses" ,ncurses) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index bdccccec6f..07f0b9d957 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -9,7 +9,7 @@ ;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> -;;; Coypright © 2016 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net> ;;; ;;; This file is part of GNU Guix. ;;; diff --git a/gnu/packages/onc-rpc.scm b/gnu/packages/onc-rpc.scm index d9b2f9dda0..549b82307b 100644 --- a/gnu/packages/onc-rpc.scm +++ b/gnu/packages/onc-rpc.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016 John Darrington <jmd@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,6 +21,8 @@ #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) + #:use-module (gnu packages mit-krb5) + #:use-module (gnu packages pkg-config) #:use-module (guix build-system gnu)) (define-public libtirpc @@ -36,16 +39,14 @@ "18a337wa4amf0k21wnimp3yzs5l3cxqndz4x3x8bm993zhfy5hs5")))) (build-system gnu-build-system) (arguments - '(;; Doesn't work with GNU GSS. - #:configure-flags '("--disable-gssapi") - - #:phases (alist-cons-after - 'unpack 'remote-dangling-symlink - (lambda _ - ;; Remote the dangling symlinks since it breaks the - ;; 'patch-source-shebangs' file tree traversal. - (delete-file "INSTALL")) - %standard-phases))) + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'remote-dangling-symlink + (lambda _ + ;; Remove the dangling symlinks since it breaks the + ;; 'patch-source-shebangs' file tree traversal. + (delete-file "INSTALL")))))) + (inputs `(("mit-krb5" ,mit-krb5))) (home-page "http://sourceforge.net/projects/libtirpc/") (synopsis "Transport-independent Sun/ONC RPC implementation") (description @@ -53,3 +54,32 @@ procedure calls) protocol in a transport-independent manner. It supports both IPv4 and IPv6. ONC RPC is notably used by the network file system (NFS).") (license bsd-3))) + +(define-public rpcbind + (package + (name "rpcbind") + (version "0.2.3") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/" name "/" name "/" + version "/" + name "-" version ".tar.bz2")) + (sha256 + (base32 + "0yyjzv4161rqxrgjcijkrawnk55rb96ha0pav48s03l2klx855wq")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + `("--with-systemdsystemunitdir=no"))) + (inputs + `(("libtirpc" ,libtirpc))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://rpcbind.sourceforge.net/") + (synopsis "Server to convert RPC program numbers into universal addresses") + (description + "@command{Rpcbind} is a server that converts RPC program numbers into +universal addresses.") + (license bsd-3))) + diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 6ae1275c96..8474904265 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -237,31 +237,42 @@ tested on Python version 3.2, 2.7 and 2.6.") (define-public python-requests-mock (package (name "python-requests-mock") - (version "0.7.0") + (version "1.0.0") (source (origin (method url-fetch) (uri (pypi-uri "requests-mock" version)) (sha256 (base32 - "0s6mrpiv2w0km39qvl1pq2d56xblnm57p369qdp5j1a55ncica7f")))) + "0gcjjwsckhqixyffflc54i59x41jnbb37bli077vabii1bjmkin6")))) (build-system python-build-system) (propagated-inputs - `(("python-requests" ,python-requests) - ("python-six" ,python-six))) + `(("python-requests" ,python-requests) + ("python-six" ,python-six))) (inputs - `(("python-mock" ,python-mock) - ("python-pbr" ,python-pbr) - ("python-setuptools" ,python-setuptools))) + `(("python-pbr" ,python-pbr))) + (native-inputs + `(("python-discover" ,python-discover) + ("python-fixtures" ,python-fixtures) + ("python-mock" ,python-mock) + ("python-sphinx" ,python-sphinx) + ("python-testrepository" ,python-testrepository) + ("python-testtools" ,python-testtools))) (home-page "https://requests-mock.readthedocs.org/") (synopsis "Mock out responses from the requests package") (description "This module provides a building block to stub out the HTTP requests portions of your testing code.") - (license asl2.0))) + (license asl2.0) + (properties `((python2-variant . ,(delay python2-requests-mock)))))) (define-public python2-requests-mock - (package-with-python2 python-requests-mock)) + (let ((base (package-with-python2 + (strip-python2-variant python-requests-mock)))) + (package (inherit base) + (native-inputs + `(("python2-setuptools" ,python2-setuptools) + ,@(package-native-inputs base)))))) (define-public python-stevedore (package diff --git a/gnu/packages/patches/dtc-add-missing-symbols-to-lds.patch b/gnu/packages/patches/dtc-add-missing-symbols-to-lds.patch new file mode 100644 index 0000000000..ccece0f466 --- /dev/null +++ b/gnu/packages/patches/dtc-add-missing-symbols-to-lds.patch @@ -0,0 +1,59 @@ +From a4b093f7366fdb429ca1781144d3985fa50d0fbb Mon Sep 17 00:00:00 2001 +From: Julien Grall <julien.grall@linaro.org> +Date: Tue, 17 Mar 2015 16:00:34 +0000 +Subject: [PATCH] libfdt: Add missing functions to shared library + +The commit 4e76ec7 "libfdt: Add fdt_next_subnode() to permit easy +subnode iteration" adds new functions (fdt_{first,next}_subnode) but +forgot to mark them as 'global' in the shared library. + +Signed-off-by: Julien Grall <julien.grall@linaro.org> +--- + libfdt/version.lds | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/libfdt/version.lds b/libfdt/version.lds +index 80b322b..941208e 100644 +--- a/libfdt/version.lds ++++ b/libfdt/version.lds +@@ -54,6 +54,8 @@ LIBFDT_1.2 { + fdt_get_property_by_offset; + fdt_getprop_by_offset; + fdt_next_property_offset; ++ fdt_first_subnode; ++ fdt_next_subnode; + + local: + *; +From f58799be130e27cc729cb2d45566daa0bb3b8605 Mon Sep 17 00:00:00 2001 +From: David Gibson <david@gibson.dropbear.id.au> +Date: Tue, 1 Dec 2015 12:55:21 +1100 +Subject: [PATCH] libfdt: Add some missing symbols to version.lds + +Several functions in the header file were missing from the version.lds +script, meaning that they couldn't be used from a libfdt shared library. + +Reported by Ken Aaker, via github issue tracker. + +Signed-off-by: David Gibson <david@gibson.dropbear.id.au> +--- + libfdt/version.lds | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/libfdt/version.lds b/libfdt/version.lds +index f19f157..1f4e1ea 100644 +--- a/libfdt/version.lds ++++ b/libfdt/version.lds +@@ -57,6 +57,10 @@ LIBFDT_1.2 { + fdt_next_property_offset; + fdt_first_subnode; + fdt_next_subnode; ++ fdt_address_cells; ++ fdt_size_cells; ++ fdt_stringlist_contains; ++ fdt_resize; + + local: + *; +-- +2.8.1 diff --git a/gnu/packages/patches/fossil-test-fixes.patch b/gnu/packages/patches/fossil-test-fixes.patch deleted file mode 100644 index e6c9f3dd74..0000000000 --- a/gnu/packages/patches/fossil-test-fixes.patch +++ /dev/null @@ -1,189 +0,0 @@ -From upstream commit https://www.fossil-scm.org/fossil/info/19c216391a0ad79e - ---- fossil-src-1.34/test/file1.test -+++ fossil-src-1.34/test/file1.test -@@ -15,10 +15,12 @@ - # - ############################################################################ - # - # File utilities - # -+ -+repo_init - - proc simplify-name {testname args} { - set i 1 - foreach {path result} $args { - fossil test-simplify-name $path -@@ -65,10 +67,13 @@ - - if {$::tcl_platform(os)=="Windows NT"} { - simplify-name 108 //?/a:/a/b a:/a/b //?/UNC/a/b //a/b //?/ {} - simplify-name 109 \\\\?\\a:\\a\\b a:/a/b \\\\?\\UNC\\a\\b //a/b \\\\?\\ {} - } -+ -+# This is needed because we are now running outside of the Fossil checkout. -+file mkdir file1; cd file1 - - # Those directories are only needed for the testcase being able to "--chdir" to it. - file mkdir test1 - file mkdir test1/test2 - -From upstream commit https://www.fossil-scm.org/fossil/info/ad6de6383391bd4d - ---- fossil-src-1.34/test/utf.test -+++ fossil-src-1.34/test/utf.test -@@ -39,26 +39,29 @@ - test utf-check-$testname.$i {$::RESULT eq $result} - incr i - } - } - -+unset -nocomplain enc - array set enc [list \ - 0 binary \ - 1 binary \ - 2 unicode \ - 3 unicode-reverse \ - ] - -+unset -nocomplain bom - array set bom [list \ - 0 "" \ - 1 \xEF\xBB\xBF \ - 2 [expr {$tcl_platform(byteOrder) eq "littleEndian" ? \ - "\xFF\xFE" : "\xFE\xFF"}] \ - 3 [expr {$tcl_platform(byteOrder) eq "littleEndian" ? \ - "\xFE\xFF" : "\xFF\xFE"}] \ - ] - -+unset -nocomplain data - array set data [list \ - 0 "" \ - 1 \r \ - 2 \n \ - 3 \r\n \ -@@ -239,10 +242,11 @@ - 178 \xF4\x90\x80\x80\r \ - 179 \xF4\x90\x80\x80\n \ - 180 \xF4\x90\x80\x80\r\n \ - ] - -+unset -nocomplain extraData - array set extraData [list \ - 0 "" \ - 1 Z \ - ] - -Backport from upstream https://www.fossil-scm.org/fossil/info/60285f5876512817 -with additional non-zero exit in case of failures. - ---- fossil-src-1.34/test/merge6.test -+++ fossil-src-1.34/test/merge6.test -@@ -62,6 +62,6 @@ - fossil ls - - test merge_multi-4 {[normalize_result] eq {f1 - f2 - f3 --f4}} -+f4}} knownBug - ---- fossil-src-1.34/test/merge_renames.test -+++ fossil-src-1.34/test/merge_renames.test -@@ -156,13 +156,13 @@ - } - - if {$deletes!=0} { - # failed - protOut "Error, the merge should not delete any file" -- test merge_renames-2 0 -+ test merge_renames-3 0 - } else { -- test merge_renames-2 1 -+ test merge_renames-3 1 - } - - ###################################### - # Test 4 # - # Reported: Ticket [67176c3aa4] # -@@ -198,14 +198,14 @@ - - fossil ls - - test merge_renames-5 {[normalize_result] eq {f1 - f2 --f3}} -+f3}} knownBug - - ###################################### - # - # Tests for troubles not specifically linked with renames but that I'd like to - # write: - # [c26c63eb1b] - 'merge --backout' does not handle conflicts properly - # [953031915f] - Lack of warning when overwriting extra files - # [4df5f38f1e] - Troubles merging a file delete with a file change - ---- fossil-src-1.34/test/tester.tcl -+++ fossil-src-1.34/test/tester.tcl -@@ -58,10 +58,18 @@ - set VERBOSE 1 - set argv [lreplace $argv $i $i] - } else { - set VERBOSE 0 - } -+ -+set i [lsearch $argv -strict] -+if {$i>=0} { -+ set STRICT 1 -+ set argv [lreplace $argv $i $i] -+} else { -+ set STRICT 0 -+} - - if {[llength $argv]==0} { - foreach f [lsort [glob $testdir/*.test]] { - set base [file root [file tail $f]] - lappend argv $base -@@ -327,20 +335,30 @@ - } - - # Perform a test - # - set test_count 0 --proc test {name expr} { -+proc test {name expr {constraints ""}} { - global bad_test test_count - incr test_count -+ set knownBug [expr {"knownBug" in $constraints}] - set r [uplevel 1 [list expr $expr]] - if {$r} { -- protOut "test $name OK" -+ if {$knownBug && !$::STRICT} { -+ protOut "test $name OK (knownBug)?" -+ } else { -+ protOut "test $name OK" -+ } - } else { -- protOut "test $name FAILED!" -- lappend bad_test $name -- if {$::HALT} exit -+ if {$knownBug && !$::STRICT} { -+ protOut "test $name FAILED (knownBug)!" -+ } else { -+ protOut "test $name FAILED!" -+ if {$::VERBOSE} {protOut "RESULT: $RESULT"} -+ lappend bad_test $name -+ if {$::HALT} exit -+ } - } - } - set bad_test {} - - # Return a random string N characters long. -@@ -445,4 +455,5 @@ - protOut "***** Final result: $nErr errors out of $test_count tests" - if {$nErr>0} { - protOut "***** Failures: $bad_test" -+ exit 1 - } diff --git a/gnu/packages/patches/icedtea-remove-overrides.patch b/gnu/packages/patches/icedtea-remove-overrides.patch deleted file mode 100644 index e4d68a9e58..0000000000 --- a/gnu/packages/patches/icedtea-remove-overrides.patch +++ /dev/null @@ -1,291 +0,0 @@ -Upstream patch: -http://icedtea.classpath.org/hg/icedtea6/rev/60be25a84f2d - -Fixes build failure: -http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2954 - -Changes to the files 'NEWS' and 'ChangeLog' are omitted here. - -# HG changeset patch -# User Andrew John Hughes <gnu.andrew@redhat.com> -# Date 1463144538 -3600 -# Node ID 60be25a84f2dd2bce8ff277cc3854cca1b3f7931 -# Parent c23ceebb80a19a33316f1e743eb93bdf79aac220 -PR2954: ecj/override.patch is missing new @Overrides in RMIJRMPServerImpl.java - -2016-05-13 Andrew John Hughes <gnu.andrew@redhat.com> - - PR2954: ecj/override.patch is missing new - @Overrides in RMIJRMPServerImpl.java - * patches/ecj/override.patch: - Add cases in RMIJRMPServerImpl and others - which show up when source/target 5 is - used in the rt-class-files pre-build. - * patches/openjdk/8014205-blank_swing_dialogs_windows.patch: - Remove addition of @Override. - -diff -r c23ceebb80a1 -r 60be25a84f2d patches/ecj/override.patch ---- a/patches/ecj/override.patch Sun May 08 21:28:21 2016 +0100 -+++ b/patches/ecj/override.patch Fri May 13 14:02:18 2016 +0100 -@@ -362,3 +362,240 @@ - public Class<?> run() { - try { - ReflectUtil.checkPackageAccess(className); -+diff -r 545db1dd8c2a src/share/classes/com/sun/jmx/interceptor/DefaultMBeanServerInterceptor.java -+--- openjdk-ecj/jdk/src/share/classes/com/sun/jmx/interceptor/DefaultMBeanServerInterceptor.java Wed May 04 23:23:55 2016 +0100 -++++ openjdk-ecj/jdk/src/share/classes/com/sun/jmx/interceptor/DefaultMBeanServerInterceptor.java Thu May 12 01:30:54 2016 +0100 -+@@ -1870,7 +1870,6 @@ -+ -+ private ModifiableClassLoaderRepository getInstantiatorCLR() { -+ return AccessController.doPrivileged(new PrivilegedAction<ModifiableClassLoaderRepository>() { -+- @Override -+ public ModifiableClassLoaderRepository run() { -+ return instantiator != null ? instantiator.getClassLoaderRepository() : null; -+ } -+diff -r 545db1dd8c2a src/share/classes/com/sun/media/sound/Platform.java -+--- openjdk-ecj/jdk/src/share/classes/com/sun/media/sound/Platform.java Wed May 04 23:23:55 2016 +0100 -++++ openjdk-ecj/jdk/src/share/classes/com/sun/media/sound/Platform.java Thu May 12 01:30:54 2016 +0100 -+@@ -160,7 +160,6 @@ -+ try { -+ // load the main library -+ AccessController.doPrivileged(new PrivilegedAction<Void>() { -+- @Override -+ public Void run() { -+ System.loadLibrary(libNameMain); -+ return null; -+@@ -182,7 +181,6 @@ -+ final String lib = st.nextToken(); -+ try { -+ AccessController.doPrivileged(new PrivilegedAction<Void>() { -+- @Override -+ public Void run() { -+ System.loadLibrary(lib); -+ return null; -+diff -r 545db1dd8c2a src/share/classes/java/awt/EventQueue.java -+--- openjdk-ecj/jdk/src/share/classes/java/awt/EventQueue.java Wed May 04 23:23:55 2016 +0100 -++++ openjdk-ecj/jdk/src/share/classes/java/awt/EventQueue.java Thu May 12 01:30:54 2016 +0100 -+@@ -190,7 +190,6 @@ -+ EventQueue.invokeAndWait(source, r); -+ } -+ -+- @Override -+ public long getMostRecentEventTime(EventQueue eventQueue) { -+ return eventQueue.getMostRecentEventTimeImpl(); -+ } -+diff -r 545db1dd8c2a src/share/classes/java/io/ObjectInputStream.java -+--- openjdk-ecj/jdk/src/share/classes/java/io/ObjectInputStream.java Wed May 04 23:23:55 2016 +0100 -++++ openjdk-ecj/jdk/src/share/classes/java/io/ObjectInputStream.java Thu May 12 01:30:54 2016 +0100 -+@@ -3571,7 +3571,6 @@ -+ } -+ static { -+ SharedSecrets.setJavaObjectInputStreamAccess(new JavaObjectInputStreamAccess() { -+- @Override -+ public void setValidator(ObjectInputStream ois, ObjectStreamClassValidator validator) { -+ ObjectInputStream.setValidator(ois, validator); -+ } -+diff -r 545db1dd8c2a src/share/classes/java/rmi/server/RemoteObjectInvocationHandler.java -+--- openjdk-ecj/jdk/src/share/classes/java/rmi/server/RemoteObjectInvocationHandler.java Wed May 04 23:23:55 2016 +0100 -++++ openjdk-ecj/jdk/src/share/classes/java/rmi/server/RemoteObjectInvocationHandler.java Thu May 12 01:30:54 2016 +0100 -+@@ -64,7 +64,6 @@ -+ final String propName = "sun.rmi.server.invocationhandler.allowFinalizeInvocation"; -+ String allowProp = java.security.AccessController.doPrivileged( -+ new PrivilegedAction<String>() { -+- @Override -+ public String run() { -+ return System.getProperty(propName); -+ } -+diff -r 545db1dd8c2a src/share/classes/sun/awt/image/SunVolatileImage.java -+--- openjdk-ecj/jdk/src/share/classes/sun/awt/image/SunVolatileImage.java Wed May 04 23:23:55 2016 +0100 -++++ openjdk-ecj/jdk/src/share/classes/sun/awt/image/SunVolatileImage.java Thu May 12 01:30:54 2016 +0100 -+@@ -262,7 +262,6 @@ -+ * -+ * @see sun.java2d.DestSurfaceProvider#getDestSurface -+ */ -+- @Override -+ public Surface getDestSurface() { -+ return volSurfaceManager.getPrimarySurfaceData(); -+ } -+diff -r 545db1dd8c2a src/share/classes/sun/java2d/SunGraphics2D.java -+--- openjdk-ecj/jdk/src/share/classes/sun/java2d/SunGraphics2D.java Wed May 04 23:23:55 2016 +0100 -++++ openjdk-ecj/jdk/src/share/classes/sun/java2d/SunGraphics2D.java Thu May 12 01:30:54 2016 +0100 -+@@ -3294,7 +3294,6 @@ -+ * -+ * @see sun.java2d.DestSurfaceProvider#getDestSurface -+ */ -+- @Override -+ public Surface getDestSurface() { -+ return surfaceData; -+ } -+diff -r 545db1dd8c2a src/share/classes/sun/rmi/server/UnicastServerRef.java -+--- openjdk-ecj/jdk/src/share/classes/sun/rmi/server/UnicastServerRef.java Wed May 04 23:23:55 2016 +0100 -++++ openjdk-ecj/jdk/src/share/classes/sun/rmi/server/UnicastServerRef.java Thu May 12 01:30:54 2016 +0100 -+@@ -630,12 +630,10 @@ -+ this.callID = callID; -+ } -+ -+- @Override -+ public void validateDescriptor(ObjectStreamClass descriptor) { -+ descriptorCheck.check(method, descriptor, parameterIndex, callID); -+ } -+ -+- @Override -+ public void checkProxyInterfaceNames(String[] ifaces) { -+ descriptorCheck.checkProxyClass(method, ifaces, parameterIndex, callID); -+ } -+diff -r 545db1dd8c2a src/share/classes/sun/rmi/transport/Transport.java -+--- openjdk-ecj/jdk/src/share/classes/sun/rmi/transport/Transport.java Wed May 04 23:23:55 2016 +0100 -++++ openjdk-ecj/jdk/src/share/classes/sun/rmi/transport/Transport.java Thu May 12 01:30:54 2016 +0100 -+@@ -133,7 +133,6 @@ -+ */ -+ private static void setContextClassLoader(final ClassLoader ccl) { -+ AccessController.doPrivileged(new PrivilegedAction<Void> () { -+- @Override -+ public Void run() { -+ Thread.currentThread().setContextClassLoader(ccl); -+ return null; -+diff -r 545db1dd8c2a src/share/classes/sun/rmi/transport/tcp/TCPTransport.java -+--- openjdk-ecj/jdk/src/share/classes/sun/rmi/transport/tcp/TCPTransport.java Wed May 04 23:23:55 2016 +0100 -++++ openjdk-ecj/jdk/src/share/classes/sun/rmi/transport/tcp/TCPTransport.java Thu May 12 01:30:54 2016 +0100 -+@@ -676,7 +676,6 @@ -+ connectionCount.incrementAndGet() + -+ ")-" + remoteHost); -+ AccessController.doPrivileged(new PrivilegedAction<Void>() { -+- @Override -+ public Void run() { -+ run0(); -+ return null; -+diff -r 545db1dd8c2a src/solaris/classes/sun/java2d/opengl/GLXGraphicsConfig.java -+--- openjdk-ecj/jdk/src/solaris/classes/sun/java2d/opengl/GLXGraphicsConfig.java Wed May 04 23:23:55 2016 +0100 -++++ openjdk-ecj/jdk/src/solaris/classes/sun/java2d/opengl/GLXGraphicsConfig.java Thu May 12 01:30:54 2016 +0100 -+@@ -92,7 +92,6 @@ -+ return this; -+ } -+ -+- @Override -+ public SurfaceData createManagedSurface(int w, int h, int transparency) { -+ return GLXSurfaceData.createData(this, w, h, -+ getColorModel(transparency), -+@@ -165,12 +164,10 @@ -+ * Returns true if the provided capability bit is present for this config. -+ * See OGLContext.java for a list of supported capabilities. -+ */ -+- @Override -+ public final boolean isCapPresent(int cap) { -+ return ((oglCaps.getCaps() & cap) != 0); -+ } -+ -+- @Override -+ public final long getNativeConfigInfo() { -+ return pConfigInfo; -+ } -+@@ -180,7 +177,6 @@ -+ * -+ * @see sun.java2d.pipe.hw.BufferedContextProvider#getContext -+ */ -+- @Override -+ public final OGLContext getContext() { -+ return context; -+ } -+@@ -394,7 +390,6 @@ -+ * -+ * @see sun.java2d.pipe.hw.AccelGraphicsConfig#createCompatibleVolatileImage -+ */ -+- @Override -+ public VolatileImage -+ createCompatibleVolatileImage(int width, int height, -+ int transparency, int type) -+@@ -434,17 +429,14 @@ -+ * -+ * @see sun.java2d.pipe.hw.AccelGraphicsConfig#getContextCapabilities -+ */ -+- @Override -+ public ContextCapabilities getContextCapabilities() { -+ return oglCaps; -+ } -+ -+- @Override -+ public void addDeviceEventListener(AccelDeviceEventListener l) { -+ AccelDeviceEventNotifier.addListener(l, screen.getScreen()); -+ } -+ -+- @Override -+ public void removeDeviceEventListener(AccelDeviceEventListener l) { -+ AccelDeviceEventNotifier.removeListener(l); -+ } -+diff -r 545db1dd8c2a src/share/classes/com/sun/jmx/mbeanserver/JmxMBeanServer.java -+--- openjdk-ecj/jdk/src/share/classes/com/sun/jmx/mbeanserver/JmxMBeanServer.java Wed May 04 23:23:55 2016 +0100 -++++ openjdk-ecj/jdk/src/share/classes/com/sun/jmx/mbeanserver/JmxMBeanServer.java Thu May 12 01:51:42 2016 +0100 -+@@ -236,7 +236,6 @@ -+ final MBeanInstantiator fInstantiator = instantiator; -+ this.secureClr = new -+ SecureClassLoaderRepository(AccessController.doPrivileged(new PrivilegedAction<ClassLoaderRepository>() { -+- @Override -+ public ClassLoaderRepository run() { -+ return fInstantiator.getClassLoaderRepository(); -+ } -+@@ -1257,7 +1256,6 @@ -+ ClassLoader myLoader = outerShell.getClass().getClassLoader(); -+ final ModifiableClassLoaderRepository loaders = AccessController.doPrivileged(new PrivilegedAction<ModifiableClassLoaderRepository>() { -+ -+- @Override -+ public ModifiableClassLoaderRepository run() { -+ return instantiator.getClassLoaderRepository(); -+ } -+diff -r b72e7b89dda9 src/share/classes/javax/management/remote/rmi/RMIJRMPServerImpl.java -+--- openjdk-ecj/jdk/src/share/classes/javax/management/remote/rmi/RMIJRMPServerImpl.java Thu Sep 08 11:00:33 2011 -0700 -++++ openjdk-ecj/jdk/src/share/classes/javax/management/remote/rmi/RMIJRMPServerImpl.java Thu May 12 16:39:37 2016 +0100 -+@@ -227,17 +227,14 @@ -+ allowedTypes = credentialsTypes; -+ } -+ -+- @Override -+ public String getVersion() throws RemoteException { -+ return impl.getVersion(); -+ } -+ -+- @Override -+ public RMIConnection newClient(Object credentials) throws IOException { -+ return impl.newClient(credentials); -+ } -+ -+- @Override -+ public void check(Method method, ObjectStreamClass descriptor, -+ int paramIndex, int callID) { -+ -+@@ -247,7 +244,6 @@ -+ } -+ } -+ -+- @Override -+ public void checkProxyClass(Method method, String[] ifaces, -+ int paramIndex, int callID) { -+ if (ifaces != null && ifaces.length > 0) { -+@@ -259,7 +255,6 @@ -+ } -+ } -+ -+- @Override -+ public void end(int callID) { -+ /* Do nothing */ -+ } -diff -r c23ceebb80a1 -r 60be25a84f2d patches/openjdk/8014205-blank_swing_dialogs_windows.patch ---- a/patches/openjdk/8014205-blank_swing_dialogs_windows.patch Sun May 08 21:28:21 2016 +0100 -+++ b/patches/openjdk/8014205-blank_swing_dialogs_windows.patch Fri May 13 14:02:18 2016 +0100 -@@ -116,7 +116,7 @@ - { - if (numBands == 3 && !ccm.hasAlpha()) { - imageType = TYPE_3BYTE_BGR; --@@ -804,6 +801,27 @@ -+@@ -804,6 +801,26 @@ - } // else if ((raster instanceof ByteComponentRaster) && - } - -@@ -129,7 +129,6 @@ - + new PrivilegedAction<Boolean>() - + { - + --+ @Override - + public Boolean run() { - + final ClassLoader std = System.class.getClassLoader(); - + - diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index a3df2dfdf8..f6ea28d927 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2861,6 +2861,7 @@ and is very extensible.") (uri (string-append "https://github.com/scikit-learn/scikit-learn/archive/" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "140skabifgc7lvvj873pnzlwx0ni6q8qkrsyad2ccjb3h8rxzkih")))) @@ -2893,18 +2894,11 @@ and is very extensible.") (description "Scikit-learn provides simple and efficient tools for data mining and data analysis.") - (license license:bsd-3))) + (license license:bsd-3) + (properties `((python2-variant . ,(delay python2-scikit-learn)))))) (define-public python2-scikit-learn - (let ((scikit (package-with-python2 python-scikit-learn))) - (package (inherit scikit) - (propagated-inputs - `(("python2-numpy" ,python2-numpy) - ("python2-scipy" ,python2-scipy) - ,@(alist-delete - "python-numpy" - (alist-delete - "python-scipy" (package-propagated-inputs scikit)))))))) + (package-with-python2 (strip-python2-variant python-scikit-learn))) (define-public python-scikit-image (package @@ -2933,21 +2927,19 @@ mining and data analysis.") (synopsis "Image processing in Python") (description "Scikit-image is a collection of algorithms for image processing.") - (license license:bsd-3))) + (license license:bsd-3) + (properties `((python2-variant . ,(delay python2-scikit-image)))))) (define-public python2-scikit-image - (let ((scikit-image (package-with-python2 python-scikit-image))) + (let ((scikit-image (package-with-python2 + (strip-python2-variant python-scikit-image)))) (package (inherit scikit-image) (native-inputs `(("python2-mock" ,python2-mock) ,@(package-native-inputs scikit-image))) (propagated-inputs `(("python2-pytz" ,python2-pytz) - ("python2-matplotlib" ,python2-matplotlib) - ("python2-numpy" ,python2-numpy) - ("python2-scipy" ,python2-scipy) - ,@(fold alist-delete (package-propagated-inputs scikit-image) - '("python-matplotlib" "python-numpy" "python-scipy"))))))) + ,@(package-propagated-inputs scikit-image)))))) (define-public python-redis (package @@ -3319,17 +3311,11 @@ doing the same calculation in Python. In addition, its multi-threaded capabilities can make use of all your cores, which may accelerate computations, most specially if they are not memory-bounded (e.g. those using transcendental functions).") - (license license:expat))) + (license license:expat) + (properties `((python2-variant . ,(delay python2-numexpr)))))) (define-public python2-numexpr - (let ((numexpr (package-with-python2 python-numexpr))) - (package (inherit numexpr) - ;; Make sure to use special packages for Python 2 instead - ;; of those automatically rewritten by package-with-python2. - (propagated-inputs - `(("python2-numpy" ,python2-numpy) - ,@(alist-delete "python-numpy" - (package-propagated-inputs numexpr))))))) + (package-with-python2 (strip-python2-variant python-numexpr))) (define-public python-matplotlib (package @@ -4409,29 +4395,20 @@ without using the configuration machinery.") Powerful interactive shells, a browser-based notebook, support for interactive data visualization, embeddable interpreters and tools for parallel computing.") - (license license:bsd-3))) + (license license:bsd-3) + (properties `((python2-variant . ,(delay python2-ipython)))))) (define-public python2-ipython - (let ((ipython (package-with-python2 python-ipython))) + (let ((ipython (package-with-python2 (strip-python2-variant python-ipython)))) (package (inherit ipython) ;; FIXME: some tests are failing (arguments `(#:tests? #f ,@(package-arguments ipython))) - ;; Make sure we use custom python2-NAME packages. ;; FIXME: add pyreadline once available. - (propagated-inputs - `(("python2-terminado" ,python2-terminado) - ,@(alist-delete "python-terminado" - (package-propagated-inputs ipython)))) (inputs - `(("python2-jsonschema" ,python2-jsonschema) - ("python2-mock" ,python2-mock) - ("python2-matplotlib" ,python2-matplotlib) - ("python2-numpy" ,python2-numpy) - ("python2-requests" ,python2-requests) - ,@(fold alist-delete (package-inputs ipython) - '("python-jsonschema" "python-matplotlib" "python-numpy" "python-requests"))))))) + `(("python2-mock" ,python2-mock) + ,@(package-inputs ipython)))))) (define-public python-isodate (package diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index a7eee7c06c..95690fa962 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -20,7 +20,7 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages qt) - #:use-module ((guix licenses) #:select (bsd-3 gpl2 gpl3 lgpl2.1 lgpl2.1+ lgpl3 x11-style)) + #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build utils) @@ -206,7 +206,7 @@ (synopsis "Cross-platform GUI library") (description "Qt is a cross-platform application and UI framework for developers using C++ or QML, a CSS & JavaScript like language.") - (license lgpl2.1) + (license license:lgpl2.1) ;; Qt 4: 'QBasicAtomicPointer' leads to build failures on MIPS; ;; see <http://hydra.gnu.org/build/112828>. @@ -474,12 +474,24 @@ developers using C++ or QML, a CSS & JavaScript like language.") (native-search-paths (list (search-path-specification (variable "QMAKEPATH") - (files '(""))))) + (files '(""))) + (search-path-specification + (variable "QML2_IMPORT_PATH") + (files '("qml"))) + (search-path-specification + (variable "QT_PLUGIN_PATH") + (files '("plugins"))) + (search-path-specification + (variable "XDG_DATA_DIRS") + (files '("share"))) + (search-path-specification + (variable "XDG_CONFIG_DIRS") + (files '("etc/xdg"))))) (home-page "https://www.qt.io/") (synopsis "Cross-platform GUI library") (description "Qt is a cross-platform application and UI framework for developers using C++ or QML, a CSS & JavaScript like language.") - (license (list lgpl2.1 lgpl3)))) + (license (list license:lgpl2.1 license:lgpl3)))) (define-public qtsvg (package (inherit qtbase) @@ -908,7 +920,7 @@ is then compiled to create the bindings extension module. The SIP Python module provides support functions to the automatically generated code.") ;; There is a choice between a python like license, gpl2 and gpl3. ;; For compatibility with pyqt, we need gpl3. - (license gpl3))) + (license license:gpl3))) (define-public python2-sip (package (inherit python-sip) @@ -973,7 +985,7 @@ module provides support functions to the automatically generated code.") "PyQt is a set of Python v2 and v3 bindings for the Qt application framework. The bindings are implemented as a set of Python modules and contain over 620 classes.") - (license gpl3))) + (license license:gpl3))) (define-public python2-pyqt (package (inherit python-pyqt) @@ -1055,7 +1067,7 @@ contain over 620 classes.") "--destdir" lib "--sipdir" sip)))) %standard-phases))) - (license (list gpl2 gpl3)))) ; choice of either license + (license (list license:gpl2 license:gpl3)))) ; choice of either license (define-public qtkeychain (package @@ -1089,4 +1101,4 @@ contain over 620 classes.") (description "QtKeychain is a Qt library to store passwords and other secret data securely. It will not store any data unencrypted unless explicitly requested.") - (license bsd-3))) + (license license:bsd-3))) diff --git a/gnu/packages/smalltalk.scm b/gnu/packages/smalltalk.scm index 77e033f847..675ca0ce5e 100644 --- a/gnu/packages/smalltalk.scm +++ b/gnu/packages/smalltalk.scm @@ -1,6 +1,8 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -18,14 +20,23 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages smalltalk) - #:use-module (guix licenses) + #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) + #:use-module (gnu packages audio) #:use-module (gnu packages autotools) + #:use-module (gnu packages base) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages gl) + #:use-module (gnu packages glib) #:use-module (gnu packages libffi) #:use-module (gnu packages libsigsegv) + #:use-module (gnu packages linux) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages pulseaudio) + #:use-module (gnu packages xorg) #:use-module (gnu packages zip)) (define-public smalltalk @@ -63,4 +74,76 @@ "GNU Smalltalk is a free implementation of the Smalltalk language. It implements the ANSI standard for the language and also includes extra classes such as ones for networking and GUI programming.") - (license gpl2+))) + (license license:gpl2+))) + +(define-public squeak-vm + (package + (name "squeak-vm") + (version "4.10.2.2614") + (source + (origin + (method url-fetch) + (uri (string-append "http://www.squeakvm.org/unix/release/" + "Squeak-" version "-src.tar.gz")) + (sha256 + (base32 + "0bpwbnpy2sb4gylchfx50sha70z36bwgdxraym4vrr93l8pd3dix")) + (modules '((guix build utils))) + (snippet + ;; Make builds bit-reproducible. + '(begin + (substitute* "unix/cmake/verstamp" + (("vm_date=.*") + "vm_date = \"1970-01-01\";\n") + (("ux_version=.*") + "ux_version = \"GNU\";\n")) + (substitute* "unix/vm/config.cmake" + (("\\(VM_BUILD_STRING.*") + "(VM_BUILD_STRING \\\"Built with GNU Guix\\\")")))))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("dbus" ,dbus) + ("freetype" ,freetype) + ("libffi" ,libffi) + ("libxrender" ,libxrender) + ("mesa" ,mesa) + ("pulseaudio" ,pulseaudio))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ;no check target + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-hardcoded-PATH + (lambda _ + ;; Remove hard-coded FHS PATH entries. + (substitute* '("unix/cmake/squeak.in" + "unix/cmake/squeak.sh.in") + (("^PATH=.*") "")) + #t)) + (add-after 'unpack 'create-build-dir + (lambda _ + (mkdir "bld") + #t)) + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (with-directory-excursion "bld" + (zero? + (system* "../unix/cmake/configure" + (string-append "--prefix=" out) + "--without-quartz")))))) + (replace 'build + (lambda _ + (with-directory-excursion "bld" + (zero? (system* "make")))))))) + (synopsis "Smalltalk programming language and environment") + (description "Squeak is a full-featured implementation of the Smalltalk +programming language and environment based on (and largely compatible with) +the original Smalltalk-80 system. Squeak has very powerful 2- and 3-D +graphics, sound, video, MIDI, animation and other multimedia capabilities. It +also includes a customisable framework for creating dynamic HTTP servers and +interactively extensible Web sites.") + (home-page "http://www.squeakvm.org") + (license license:x11))) diff --git a/gnu/packages/u-boot.scm b/gnu/packages/u-boot.scm new file mode 100644 index 0000000000..15b24a6056 --- /dev/null +++ b/gnu/packages/u-boot.scm @@ -0,0 +1,139 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org> +;;; Copyright © 2016 David Craven <david@craven.ch> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages u-boot) + #:use-module (guix build-system gnu) + #:use-module (guix download) + #:use-module (guix packages) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages) + #:use-module ((gnu packages algebra) #:select (bc)) + #:use-module (gnu packages bison) + #:use-module (gnu packages cross-base) + #:use-module (gnu packages flex) + #:use-module (gnu packages python)) + +(define-public dtc + (package + (name "dtc") + (version "1.4.1") + (source (origin + (method url-fetch) + (uri (string-append + "https://www.kernel.org/pub/software/utils/dtc/" + "dtc-" version ".tar.xz")) + (sha256 + (base32 + "155v52palf5fwfcnq696s41whjk0a5dqx98b7maqzdn7xbc2m6bp")) + (patches + (search-patches "dtc-add-missing-symbols-to-lds.patch")))) + (build-system gnu-build-system) + (native-inputs + `(("bison" ,bison) + ("flex" ,flex))) + (arguments + `(#:make-flags + (list "CC=gcc" (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-paths + (lambda _ + (substitute* "Makefile" + (("/usr/bin/install") "install")) + (substitute* "Makefile" + (("PREFIX = \\$\\(HOME\\)") "")))) + (delete 'configure)))) + (home-page "https://www.devicetree.org") + (synopsis "Compiles device tree source files") + (description "@command{dtc} compiles device tree source files to device +tree binary files. These are board description files used by Linux and BSD.") + (license license:gpl2+))) + +(define u-boot + (package + (name "u-boot") + (version "2016.07") + (source (origin + (method url-fetch) + (uri (string-append + "ftp://ftp.denx.de/pub/u-boot/" + "u-boot-" version ".tar.bz2")) + (sha256 + (base32 + "0lqj4ckmfqiap8mc6z2d5albs3g2h5mzccbn60hsgxhabhibfkwp")))) + (native-inputs + `(("bc" ,bc) + ("dtc" ,dtc) + ("python-2" ,python-2))) + (build-system gnu-build-system) + (home-page "http://www.denx.de/wiki/U-Boot/") + (synopsis "ARM bootloader") + (description "U-Boot is a bootloader used mostly for ARM boards. It +also initializes the boards (RAM etc).") + (license license:gpl2+))) + +(define (make-u-boot-package board triplet) + "Returns a u-boot package for BOARD cross-compiled for TRIPLET." + (package + (inherit u-boot) + (name (string-append "u-boot-" (string-downcase board))) + (native-inputs + `(("cross-gcc" ,(cross-gcc triplet)) + ("cross-binutils" ,(cross-binutils triplet)) + ,@(package-native-inputs u-boot))) + (arguments + `(#:test-target "test" + #:make-flags + (list "HOSTCC=gcc" (string-append "CROSS_COMPILE=" ,triplet "-")) + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs make-flags #:allow-other-keys) + (let ((config-name (string-append ,board "_defconfig"))) + (if (file-exists? (string-append "configs/" config-name)) + (zero? (apply system* "make" `(,@make-flags ,config-name))) + (begin + (display "Invalid board name. Valid board names are:") + (let ((dir (opendir "configs")) + (suffix-length (string-length "_defconfig"))) + (do ((file-name (readdir dir) (readdir dir))) + ((eof-object? file-name)) + (when (string-suffix? "_defconfig" file-name) + (format #t "- ~A\n" + (string-drop-right file-name suffix-length)))) + (closedir dir)) + #f))))) + (replace 'install + (lambda* (#:key outputs make-flags #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (libexec (string-append out "/libexec")) + (uboot-files (find-files "." ".*\\.(bin|efi|spl)$"))) + (mkdir-p libexec) + (for-each + (lambda (file) + (let ((target-file (string-append libexec "/" file))) + (mkdir-p (dirname target-file)) + (copy-file file target-file))) + uboot-files))))))))) + +(define-public u-boot-vexpress_ca9x4 + (make-u-boot-package "vexpress_ca9x4" "arm-linux-gnueabihf")) + +(define-public u-boot-malta + (make-u-boot-package "malta" "mips64el-linux-gnuabi64")) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index c39368d9ad..34cfedf4ed 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name> +;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,10 +28,7 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages version-control) - #:use-module ((guix licenses) - #:select (asl2.0 bsd-2 bsd-3 - gpl1+ gpl2 gpl2+ gpl3+ lgpl2.1 - public-domain x11-style)) + #:use-module ((guix licenses) #:prefix license:) #:use-module (guix utils) #:use-module (guix packages) #:use-module (guix download) @@ -108,7 +106,7 @@ "GNU Bazaar is a version control system that allows you to record changes to project files over time. It supports both a distributed workflow as well as the classic centralized workflow.") - (license gpl2+))) + (license license:gpl2+))) (define-public git (package @@ -292,7 +290,7 @@ as well as the classic centralized workflow.") (description "Git is a free distributed version control system designed to handle everything from small to very large projects with speed and efficiency.") - (license gpl2) + (license license:gpl2) (home-page "http://git-scm.com/"))) (define-public libgit2 @@ -336,7 +334,7 @@ everything from small to very large projects with speed and efficiency.") provided as a re-entrant linkable library with a solid API, allowing you to write native speed custom Git applications in any language with bindings.") ;; GPLv2 with linking exception - (license gpl2))) + (license license:gpl2))) (define-public cgit (package @@ -397,7 +395,7 @@ write native speed custom Git applications in any language with bindings.") (description "CGit is an attempt to create a fast web interface for the Git SCM, using a built-in cache to decrease server I/O pressure.") - (license gpl2))) + (license license:gpl2))) (define-public shflags (package @@ -441,7 +439,7 @@ different versions of getopt on various OSes make writing portable shell scripts difficult. shFlags instead provides an API that doesn't change across shell and OS versions so the script writer can be confident that the script will work.") - (license lgpl2.1))) + (license license:lgpl2.1))) (define-public git-flow (package @@ -484,7 +482,7 @@ management strategy that helps developers keep track of features, hotfixes, and releases in bigger software projects. The git-flow library of git subcommands helps automate some parts of the flow to make working with it a lot easier.") - (license bsd-2))) + (license license:bsd-2))) (define-public git-test-sequence (let ((commit "48e5a2f5a13a5f30452647237e23362b459b9c76")) @@ -519,7 +517,7 @@ lot easier.") "git-test-sequence is similar to an automated git bisect except it’s linear. It will test every change between two points in the DAG. It will also walk each side of a merge and test those changes individually.") - (license (x11-style "file://LICENSE"))))) + (license (license:x11-style "file://LICENSE"))))) (define-public gitolite (package @@ -575,7 +573,7 @@ also walk each side of a merge and test those changes individually.") (description "Gitolite is an access control layer on top of Git, providing fine access control to Git repositories.") - (license gpl2))) + (license license:gpl2))) (define-public mercurial (package @@ -602,7 +600,7 @@ control to Git repositories.") "Mercurial is a free, distributed source control management tool. It efficiently handles projects of any size and offers an easy and intuitive interface.") - (license gpl2+))) + (license license:gpl2+))) (define-public neon (package @@ -650,7 +648,7 @@ abstract interface to parsing XML using libxml2 or expat, and wrappers for simplifying handling XML HTTP response bodies; WebDAV metadata support, wrappers for PROPFIND and PROPPATCH to simplify property manipulation.") - (license gpl2+))) ; for documentation and tests; source under lgpl2.0+ + (license license:gpl2+))) ; for documentation and tests; source under lgpl2.0+ (define-public subversion (package @@ -717,7 +715,7 @@ centralized version control system characterized by its reliability as a safe haven for valuable data; the simplicity of its model and usage; and its ability to support the needs of a wide variety of users and projects, from individuals to large-scale enterprise operations.") - (license asl2.0))) + (license license:asl2.0))) (define-public rcs (package @@ -740,7 +738,7 @@ file-by-file basis, in contrast to subsequent version control systems such as CVS, Subversion, and Git. This can make it suitable for system administration files, for example, which are often inherently local to one machine.") - (license gpl3+))) + (license license:gpl3+))) (define-public cvs (package @@ -768,7 +766,7 @@ machine.") Configuration Management (SCM). Using it, you can record the history of sources files, and documents. It fills a similar role to the free software RCS, PRCS, and Aegis packages.") - (license gpl1+))) + (license license:gpl1+))) (define-public cvs-fast-export (package @@ -807,7 +805,7 @@ The program can also produce a visualization of the resulting commit directed acyclic graph (DAG) in the input format of @uref{http://www.graphviz.org, Graphviz}. The package also includes @command{cvssync}, a tool for mirroring masters from remote CVS hosts.") - (license gpl2+))) + (license license:gpl2+))) (define-public vc-dwim (package @@ -833,7 +831,7 @@ using version control at the same time, for example by printing a reminder when a file change has been described in the ChangeLog but the file has not been added to the VC. vc-chlog scans changed files and generates standards-compliant ChangeLog entries based on the changes that it detects.") - (license gpl3+))) + (license license:gpl3+))) (define-public diffstat (package @@ -854,7 +852,7 @@ standards-compliant ChangeLog entries based on the changes that it detects.") "Diffstat reads the output of 'diff' and displays a histogram of the insertions, deletions, and modifications per-file. It is useful for reviewing large, complex patch files.") - (license (x11-style "file://COPYING")))) + (license (license:x11-style "file://COPYING")))) (define-public cssc (package @@ -896,7 +894,7 @@ large, complex patch files.") (description "GNU CSSC provides a replacement for the legacy Unix source code control system SCCS. This allows old code still under that system to be accessed and migrated on modern systems.") - (license gpl3+))) + (license license:gpl3+))) ;; This package can unfortunately work only in -TEST mode, since Aegis ;; requires that it is installed setuid root. @@ -980,7 +978,7 @@ changes to a program independently, and Aegis coordinates integrating these changes back into the master source of the program, with as little disruption as possible. Resolution of contention for source files, a major headache for any project with more than one developer, is one of Aegis's major functions.") - (license gpl3+))) + (license license:gpl3+))) (define-public reposurgeon (package @@ -1032,7 +1030,7 @@ and can thus be used to script production of very high-quality conversions from Subversion to any supported Distributed Version Control System (DVCS).") ;; Most files are distributed under bsd-2, except 'repocutter' which is ;; under bsd-3. - (license (list bsd-2 bsd-3)))) + (license (list license:bsd-2 license:bsd-3)))) (define-public tig (package @@ -1058,7 +1056,7 @@ from Subversion to any supported Distributed Version Control System (DVCS).") "Tig is an ncurses text user interface for Git, primarily intended as a history browser. It can also stage hunks for commit, or colorize the output of the 'git' command.") - (license gpl2+))) + (license license:gpl2+))) (define-public findnewest (package @@ -1085,7 +1083,7 @@ output of the 'git' command.") (description "Recursively find the newest file in a file tree and print its modification time.") - (license bsd-2))) + (license license:bsd-2))) (define-public myrepos (package @@ -1114,7 +1112,7 @@ modification time.") fetching updates) over a collection of version control repositories. It supports a large number of version control systems: Git, Subversion, Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.") - (license gpl2+))) + (license license:gpl2+))) (define-public git-annex-remote-hubic (package @@ -1145,42 +1143,21 @@ Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.") (description "This package allows you to use your hubic account as a \"special repository\" with git-annex.") - (license gpl3+))) + (license license:gpl3+))) (define-public fossil (package (name "fossil") - (version "1.34") + (version "1.35") (source (origin (method url-fetch) - ;; Upstream source affected by - ;; http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20962 (uri (string-append - "https://web.archive.org/web/20160402202958/" - "https://www.fossil-scm.org/download/fossil-src-" - version ".tar.gz")) + "https://www.fossil-scm.org/index.html/uv/download/" + "fossil-src-" version ".tar.gz")) (sha256 (base32 - "17x4vgjcfihwmq195qg32irp50panvjqfpvhqydfvv4ghwzbi9jk")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Commit 0a2ebe57 on 2015-08-03 18:35:53 changed output formatting - ;; for some commands, but affected tests were not updated. Use - ;; substitute here, which is more concise than patching. - (substitute* "test/clean.test" - (("NEW ") "NEW ")) - (substitute* '("test/revert.test" "test/mv-rm.test") - (("REVERTED:") "REVERT ") - (("DELETE:") "DELETE ") - (("UNMANAGE:") "UNMANAGE ")) - ;; Fix use of __DATE__ and __TIME__ - (substitute* "src/main.c" - (("Compiled on %s %s") "Compiled") - (("__DATE__, __TIME__, ") "")) - #t)) - (patches (list (search-patch "fossil-test-fixes.patch"))))) + "07ds6rhq69bhydpm9a01mgdhxf88p9b6y5hdnhn8gjc7ba92zyf1")))) (build-system gnu-build-system) (native-inputs `(("tcl" ,tcl) ;for configuration only @@ -1219,5 +1196,32 @@ repository\" with git-annex.") "Fossil is a distributed source control management system which supports access and administration over HTTP CGI or via a built-in HTTP server. It has a built-in wiki, built-in file browsing, built-in tickets system, etc.") - (license (list public-domain ;src/miniz.c, src/shell.c - bsd-2)))) + (license (list license:public-domain ;src/miniz.c, src/shell.c + license:bsd-2)))) + +(define-public stagit + (package + (name "stagit") + (version "0.4") + (source (origin + (method url-fetch) + (uri (string-append "http://dl.2f30.org/releases/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "0z5r06wqrfnsz24ci4hjqbd62svclvhkgzaq9npsyjcp6jnf7izc")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) ; No configure script + (inputs + `(("libgit2" ,libgit2))) + (home-page "http://2f30.org") + (synopsis "Static git page generator") + (description "Stagit creates static pages for git repositories, the results can +be served with a HTTP file server of your choice.") + (license license:expat))) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 865a9083fa..cb9c767aaa 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Alex Kost <alezost@gmail.com> +;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -49,6 +50,7 @@ #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) + #:use-module (gnu packages m4) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) #:use-module (gnu packages python) @@ -938,7 +940,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.") (define-public rofi (package (name "rofi") - (version "1.1.0") + (version "1.2.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/DaveDavenport/rofi/" @@ -946,17 +948,17 @@ connectivity of the X server running on a particular @code{DISPLAY}.") version "/rofi-" version ".tar.xz")) (sha256 (base32 - "1l8vl0mh7i0b1ycifqpg6392f5i4qxlv003m126skfk6fnlfq8hn")))) + "0xxx0xpxhrhlhi2axq9867zqrhwqavc1qrr833k1xr0pvm5m0aqc")))) (build-system gnu-build-system) (inputs - `(("libx11" ,libx11) - ("pango" ,pango) + `(("pango" ,pango) ("cairo" ,cairo) ("glib" ,glib) ("startup-notification" ,startup-notification) ("libxkbcommon" ,libxkbcommon) ("libxcb" ,libxcb) ("xcb-util" ,xcb-util) + ("xcb-util-xrm" ,xcb-util-xrm) ("xcb-util-wm" ,xcb-util-wm))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -1021,3 +1023,42 @@ The taskbar includes transparency and color settings for the font, icons, border, and background. It also supports multihead setups, customized mouse actions, a built-in clock, a battery monitor and a system tray.") (license license:gpl2))) + +(define-public xcb-util-xrm + (package + (name "xcb-util-xrm") + (version "1.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/Airblader/xcb-util-xrm/releases" + "/download/v" version "/xcb-util-xrm-" version ".tar.bz2")) + (sha256 + (base32 + "1h5vxwpd37dqfw9yj1l4zd9c5dj30r3g0szgysr6kd7xrqgaq04l")) + (modules '((guix build utils))) + (snippet + ;; Drop bundled m4. + '(delete-file-recursively "m4")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("m4" ,m4) + ("libx11" ,libx11))) ; for tests + (inputs + `(("libxcb" ,libxcb) + ("xcb-util" ,xcb-util))) + (home-page "https://github.com/Airblader/xcb-util-xrm") + (synopsis "XCB utility functions for the X resource manager") + (description + "The XCB util module provides a number of libraries which sit on +top of libxcb, the core X protocol library, and some of the extension +libraries. These experimental libraries provide convenience functions +and interfaces which make the raw X protocol more usable. Some of the +libraries also provide client-side code which is not strictly part of +the X protocol but which has traditionally been provided by Xlib. + +XCB util-xrm module provides the following libraries: + +- xrm: utility functions for the X resource manager.") + (license license:x11))) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index bf21707bfe..8dacf54668 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -27,6 +27,8 @@ #:use-module (gnu services avahi) #:use-module (gnu services xorg) #:use-module (gnu services networking) + #:use-module ((gnu system file-systems) + #:select (%elogind-file-systems)) #:use-module (gnu system shadow) #:use-module (gnu system pam) #:use-module (gnu packages glib) @@ -760,7 +762,11 @@ seats.)" ;; Extend PAM with pam_elogind.so. (service-extension pam-root-service-type - pam-extension-procedure))))) + pam-extension-procedure) + + ;; We need /run/user, /run/systemd, etc. + (service-extension file-system-service-type + (const %elogind-file-systems)))))) (define* (elogind-service #:key (config (elogind-configuration))) "Return a service that runs the @command{elogind} login and seat management @@ -823,7 +829,7 @@ and extends polkit with the actions from @code{gnome-settings-daemon}." (define* (xfce-desktop-service #:key (config (xfce-desktop-configuration))) "Return a service that adds the @code{xfce} package to the system profile, -and extends polkit with the abilit for @code{thunar} to manipulate the file +and extends polkit with the ability for @code{thunar} to manipulate the file system as root from within a user session, after the user has authenticated with the administrator's password." (service xfce-desktop-service-type config)) diff --git a/gnu/services/herd.scm b/gnu/services/herd.scm index 7a9db90012..03bfbf1d78 100644 --- a/gnu/services/herd.scm +++ b/gnu/services/herd.scm @@ -17,8 +17,8 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu services herd) - #:use-module (guix combinators) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-9) #:use-module (srfi srfi-11) #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) @@ -37,6 +37,11 @@ unknown-shepherd-error? unknown-shepherd-error-sexp + live-service? + live-service-provision + live-service-requirement + live-service-running + current-services unload-services unload-service @@ -165,25 +170,27 @@ of pairs." (let ((key (and=> (assoc-ref alist 'key) car)) ...) exp ...)))) +;; Information about live Shepherd services. +(define-record-type <live-service> + (live-service provision requirement running) + live-service? + (provision live-service-provision) ;list of symbols + (requirement live-service-requirement) ;list of symbols + (running live-service-running)) ;#f | object + (define (current-services) - "Return two lists: the list of currently running services, and the list of -currently stopped services. Return #f and #f if the list of services could -not be obtained." + "Return the list of currently defined Shepherd services, represented as +<live-service> objects. Return #f if the list of services could not be +obtained." (with-shepherd-action 'root ('status) services (match services ((('service ('version 0 _ ...) _ ...) ...) - (fold2 (lambda (service running-services stopped-services) - (alist-let* service (provides running) - (if running - (values (cons (first provides) running-services) - stopped-services) - (values running-services - (cons (first provides) stopped-services))))) - '() - '() - services)) + (map (lambda (service) + (alist-let* service (provides requires running) + (live-service provides requires running))) + services)) (x - (values #f #f))))) + #f)))) (define (unload-service service) "Unload SERVICE, a symbol name; return #t on success." diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm index a14f51592a..3273184b9a 100644 --- a/gnu/services/shepherd.scm +++ b/gnu/services/shepherd.scm @@ -25,6 +25,7 @@ #:use-module (guix records) #:use-module (guix derivations) ;imported-modules, etc. #:use-module (gnu services) + #:use-module (gnu services herd) #:use-module (gnu packages admin) #:use-module (ice-9 match) #:use-module (ice-9 vlist) @@ -52,7 +53,9 @@ shepherd-service-file - shepherd-service-back-edges)) + shepherd-service-lookup-procedure + shepherd-service-back-edges + shepherd-service-upgrade)) ;;; Commentary: ;;; @@ -249,20 +252,35 @@ stored." (gexp->file "shepherd.conf" config))) -(define (shepherd-service-back-edges services) +(define* (shepherd-service-lookup-procedure services + #:optional + (provision + shepherd-service-provision)) + "Return a procedure that, when passed a symbol, return the item among +SERVICES that provides this symbol. PROVISION must be a one-argument +procedure that takes a service and returns the list of symbols it provides." + (let ((services (fold (lambda (service result) + (fold (cut vhash-consq <> service <>) + result + (provision service))) + vlist-null + services))) + (lambda (name) + (match (vhash-assq name services) + ((_ . service) service) + (#f #f))))) + +(define* (shepherd-service-back-edges services + #:key + (provision shepherd-service-provision) + (requirement shepherd-service-requirement)) "Return a procedure that, when given a <shepherd-service> from SERVICES, -returns the list of <shepherd-service> that depend on it." +returns the list of <shepherd-service> that depend on it. + +Use PROVISION and REQUIREMENT as one-argument procedures that return the +symbols provided/required by a service." (define provision->service - (let ((services (fold (lambda (service result) - (fold (cut vhash-consq <> service <>) - result - (shepherd-service-provision service))) - vlist-null - services))) - (lambda (name) - (match (vhash-assq name services) - ((_ . service) service) - (#f #f))))) + (shepherd-service-lookup-procedure services provision)) (define edges (fold (lambda (service edges) @@ -270,11 +288,59 @@ returns the list of <shepherd-service> that depend on it." (vhash-consq (provision->service requirement) service edges)) edges - (shepherd-service-requirement service))) + (requirement service))) vlist-null services)) (lambda (service) (vhash-foldq* cons '() service edges))) +(define (shepherd-service-upgrade live target) + "Return two values: the subset of LIVE (a list of <live-service>) that needs +to be unloaded, and the subset of TARGET (a list of <shepherd-service>) that +needs to be loaded." + (define (essential? service) + (memq (first (live-service-provision service)) + '(root shepherd))) + + (define lookup-target + (shepherd-service-lookup-procedure target + shepherd-service-provision)) + + (define lookup-live + (shepherd-service-lookup-procedure live + live-service-provision)) + + (define (running? service) + (and=> (lookup-live (shepherd-service-canonical-name service)) + live-service-running)) + + (define (stopped service) + (match (lookup-live (shepherd-service-canonical-name service)) + (#f #f) + (service (and (not (live-service-running service)) + service)))) + + (define live-service-dependents + (shepherd-service-back-edges live + #:provision live-service-provision + #:requirement live-service-requirement)) + + (define (obsolete? service) + (match (lookup-target (first (live-service-provision service))) + (#f (every obsolete? (live-service-dependents service))) + (_ #f))) + + (define to-load + ;; Only load services that are either new or currently stopped. + (remove running? target)) + + (define to-unload + ;; Unload services that are (1) no longer required, or (2) are in TO-LOAD. + (remove essential? + (append (filter obsolete? live) + (filter-map stopped to-load)))) + + (values to-unload to-load)) + ;;; shepherd.scm ends here diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index 905c88ff66..4e311deb84 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -26,7 +26,7 @@ #:use-module (gnu packages guile) #:use-module (gnu packages xorg) #:use-module (gnu packages gl) - #:use-module (gnu packages slim) + #:use-module (gnu packages display-managers) #:use-module (gnu packages gnustep) #:use-module (gnu packages admin) #:use-module (gnu packages bash) diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index 116e2813e8..0dc472e3c7 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -257,7 +257,6 @@ TARGET in the other system." (append (list %pseudo-terminal-file-system %shared-memory-file-system %immutable-store) - %elogind-file-systems %control-groups)) ;; File systems for Linux containers differ from %base-file-systems in that diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index ca6f76c0f8..41f50c0e7a 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -122,11 +122,13 @@ info --version") (operating-system-user-accounts os)))))) (test-assert "shepherd services" - (let ((services (marionette-eval '(begin - (use-modules (gnu services herd)) - (call-with-values current-services - append)) - marionette))) + (let ((services (marionette-eval + '(begin + (use-modules (gnu services herd)) + + (map (compose car live-service-provision) + (current-services))) + marionette))) (lset= eq? (pk 'services services) '(root #$@(operating-system-shepherd-service-names os))))) diff --git a/guix/build/qt-utils.scm b/guix/build/qt-utils.scm new file mode 100644 index 0000000000..48a32674e9 --- /dev/null +++ b/guix/build/qt-utils.scm @@ -0,0 +1,40 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 David Craven <david@craven.ch> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (guix build qt-utils) + #:use-module (guix build utils) + #:export (wrap-qt-program)) + +(define (wrap-qt-program out program) + (define (suffix env-var path) + (let ((env-val (getenv env-var))) + (if env-val (string-append env-val ":" path) path))) + + (let ((qml-path (suffix "QML2_IMPORT_PATH" + (string-append out "/qml"))) + (plugin-path (suffix "QT_PLUGIN_PATH" + (string-append out "/plugins"))) + (xdg-data-path (suffix "XDG_DATA_DIRS" + (string-append out "/share"))) + (xdg-config-path (suffix "XDG_CONFIG_DIRS" + (string-append out "/etc/xdg")))) + (wrap-program (string-append out "/bin/" program) + `("QML2_IMPORT_PATH" = (,qml-path)) + `("QT_PLUGIN_PATH" = (,plugin-path)) + `("XDG_DATA_DIRS" = (,xdg-data-path)) + `("XDG_CONFIG_DIRS" = (,xdg-config-path))))) diff --git a/guix/import/cpan.scm b/guix/import/cpan.scm index 213a155fd6..5b7c47554a 100644 --- a/guix/import/cpan.scm +++ b/guix/import/cpan.scm @@ -83,7 +83,7 @@ "Return the base distribution module for a given module. E.g. the 'ok' module is distributed with 'Test::Simple', so (module->dist-name \"ok\") would return \"Test-Simple\"" - (assoc-ref (json-fetch (string-append "http://api.metacpan.org/module/" + (assoc-ref (json-fetch (string-append "https://api.metacpan.org/module/" module)) "distribution")) @@ -91,7 +91,7 @@ return \"Test-Simple\"" "Return an alist representation of the CPAN metadata for the perl module MODULE, or #f on failure. MODULE should be e.g. \"Test::Script\"" ;; This API always returns the latest release of the module. - (json-fetch (string-append "http://api.metacpan.org/release/" + (json-fetch (string-append "https://api.metacpan.org/release/" ;; XXX: The 'release' api requires the "release" ;; name of the package. This substitution seems ;; reasonably consistent across packages. diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm index f07f453e11..9af78ea888 100644 --- a/guix/import/hackage.scm +++ b/guix/import/hackage.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> +;;; Coypright © 2016 ng0 <ng0@we.make.ritual.n0.is> ;;; ;;; This file is part of GNU Guix. ;;; @@ -74,7 +75,7 @@ (define (hackage-source-url name version) "Given a Hackage package NAME and VERSION, return a url to the source tarball." - (string-append "http://hackage.haskell.org/package/" name + (string-append "https://hackage.haskell.org/package/" name "/" name "-" version ".tar.gz")) (define* (hackage-cabal-url name #:optional version) @@ -82,9 +83,9 @@ tarball." .cabal file on Hackage. If VERSION is #f or missing, the url for the latest version is returned." (if version - (string-append "http://hackage.haskell.org/package/" + (string-append "https://hackage.haskell.org/package/" name "-" version "/" name ".cabal") - (string-append "http://hackage.haskell.org/package/" + (string-append "https://hackage.haskell.org/package/" name "/" name ".cabal"))) (define (hackage-name->package-name name) diff --git a/guix/packages.scm b/guix/packages.scm index 728b3afcae..52204b1e09 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -95,6 +95,7 @@ package-transitive-propagated-inputs package-transitive-native-search-paths package-transitive-supported-systems + package-input-rewriting package-source-derivation package-derivation package-cross-derivation @@ -735,6 +736,35 @@ dependencies are known to build on SYSTEM." "Return the \"target inputs\" of BAG, recursively." (transitive-inputs (bag-target-inputs bag))) +(define* (package-input-rewriting replacements + #:optional (rewrite-name identity)) + "Return a procedure that, when passed a package, replaces its direct and +indirect dependencies (but not its implicit inputs) according to REPLACEMENTS. +REPLACEMENTS is a list of package pairs; the first element of each pair is the +package to replace, and the second one is the replacement. + +Optionally, REWRITE-NAME is a one-argument procedure that takes the name of a +package and returns its new name after rewrite." + (define (rewrite input) + (match input + ((label (? package? package) outputs ...) + (match (assq-ref replacements package) + (#f (cons* label (replace package) outputs)) + (new (cons* label new outputs)))) + (_ + input))) + + (define-memoized/v (replace p) + "Return a variant of P with its inputs rewritten." + (package + (inherit p) + (name (rewrite-name (package-name p))) + (inputs (map rewrite (package-inputs p))) + (native-inputs (map rewrite (package-native-inputs p))) + (propagated-inputs (map rewrite (package-propagated-inputs p))))) + + replace) + ;;; ;;; Package derivations. diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index 9a113b4ebe..86b95b4075 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -193,33 +193,17 @@ of \"guile\"." (map (lambda (spec) (match (string-tokenize spec not-equal) ((old new) - (cons old (specification->package new))) + (cons (specification->package old) + (specification->package new))) (_ (leave (_ "invalid replacement specification: ~s~%") spec)))) replacement-specs)) - (define (rewrite input) - (match input - ((label (? package? package) outputs ...) - (match (assoc-ref replacements (package-name package)) - (#f (cons* label (replace package) outputs)) - (new (cons* label new outputs)))) - (_ - input))) - - (define replace - (memoize ;XXX: use eq? - (lambda (p) - (package - (inherit p) - (inputs (map rewrite (package-inputs p))) - (native-inputs (map rewrite (package-native-inputs p))) - (propagated-inputs (map rewrite (package-propagated-inputs p))))))) - - (lambda (store obj) - (if (package? obj) - (replace obj) - obj))) + (let ((rewrite (package-input-rewriting replacements))) + (lambda (store obj) + (if (package? obj) + (rewrite obj) + obj)))) (define %transformations ;; Transformations that can be applied to things to build. The car is the diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index a9fe7d5975..953c6243ed 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -276,36 +276,17 @@ on service '~a':~%") "Call MPROC, a monadic procedure in %STORE-MONAD, passing it the list of names of services to load (upgrade), and the list of names of services to unload." - (define (essential? service) - (memq service '(root shepherd))) - - (define new-service-names - (map (compose first shepherd-service-provision) - new-services)) - - (let-values (((running stopped) (current-services))) - (if (and running stopped) - (let* ((to-load - ;; Only load services that are either new or currently stopped. - (remove (lambda (service) - (memq (first (shepherd-service-provision service)) - running)) - new-services)) - (to-unload - ;; Unload services that are (1) no longer required, or (2) are - ;; in TO-LOAD. - (remove essential? - (append (remove (lambda (service) - (memq service new-service-names)) - (append running stopped)) - (filter (lambda (service) - (memq service stopped)) - (map shepherd-service-canonical-name - to-load)))))) - (mproc to-load to-unload)) - (with-monad %store-monad - (warning (_ "failed to obtain list of shepherd services~%")) - (return #f))))) + (match (current-services) + ((services ...) + (let-values (((to-unload to-load) + (shepherd-service-upgrade services new-services))) + (mproc to-load + (map (compose first live-service-provision) + to-unload)))) + (#f + (with-monad %store-monad + (warning (_ "failed to obtain list of shepherd services~%")) + (return #f))))) (define (upgrade-shepherd-services os) "Upgrade the Shepherd (PID 1) by unloading obsolete services and loading new diff --git a/tests/cpan.scm b/tests/cpan.scm index 898081b3e5..80ff044abd 100644 --- a/tests/cpan.scm +++ b/tests/cpan.scm @@ -66,9 +66,9 @@ (lambda () (display (match url - ("http://api.metacpan.org/release/Foo-Bar" + ("https://api.metacpan.org/release/Foo-Bar" test-json) - ("http://api.metacpan.org/module/Test::Script" + ("https://api.metacpan.org/module/Test::Script" "{ \"distribution\" : \"Test-Script\" }") ("http://example.com/Foo-Bar-0.1.tar.gz" test-source) diff --git a/tests/hackage.scm b/tests/hackage.scm index d1ebe37405..a4de8be91e 100644 --- a/tests/hackage.scm +++ b/tests/hackage.scm @@ -110,7 +110,7 @@ library ('origin ('method 'url-fetch) ('uri ('string-append - "http://hackage.haskell.org/package/foo/foo-" + "https://hackage.haskell.org/package/foo/foo-" 'version ".tar.gz")) ('sha256 diff --git a/tests/packages.scm b/tests/packages.scm index e9c8690730..daceea5d62 100644 --- a/tests/packages.scm +++ b/tests/packages.scm @@ -742,6 +742,31 @@ (and (build-derivations %store (list drv)) (file-exists? (string-append out "/bin/make"))))))) +(test-assert "package-input-rewriting" + (let* ((dep (dummy-package "chbouib" + (native-inputs `(("x" ,grep))))) + (p0 (dummy-package "example" + (inputs `(("foo" ,coreutils) + ("bar" ,grep) + ("baz" ,dep))))) + (rewrite (package-input-rewriting `((,coreutils . ,sed) + (,grep . ,findutils)) + (cut string-append "r-" <>))) + (p1 (rewrite p0)) + (p2 (rewrite p0))) + (and (not (eq? p1 p0)) + (eq? p1 p2) ;memoization + (string=? "r-example" (package-name p1)) + (match (package-inputs p1) + ((("foo" dep1) ("bar" dep2) ("baz" dep3)) + (and (eq? dep1 sed) + (eq? dep2 findutils) + (string=? (package-name dep3) "r-chbouib") + (eq? dep3 (rewrite dep)) ;memoization + (match (package-native-inputs dep3) + ((("x" dep)) + (eq? dep findutils))))))))) + (test-eq "fold-packages" hello (fold-packages (lambda (p r) (if (string=? (package-name p) "hello") diff --git a/tests/services.scm b/tests/services.scm index 477a197160..8993c3dafc 100644 --- a/tests/services.scm +++ b/tests/services.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -18,12 +18,17 @@ (define-module (test-services) #:use-module (gnu services) + #:use-module (gnu services herd) #:use-module (gnu services shepherd) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) #:use-module (srfi srfi-64)) +(define live-service + (@@ (gnu services herd) live-service)) + + (test-begin "services") (test-assert "service-back-edges" @@ -105,6 +110,15 @@ (fold-services (list s) #:target-type t1) #f))) +(test-assert "shepherd-service-lookup-procedure" + (let* ((s1 (shepherd-service (provision '(s1 s1b)) (start #f))) + (s2 (shepherd-service (provision '(s2 s2b)) (start #f))) + (s3 (shepherd-service (provision '(s3 s3b s3c)) (start #f))) + (lookup (shepherd-service-lookup-procedure (list s1 s2 s3)))) + (and (eq? (lookup 's1) (lookup 's1b) s1) + (eq? (lookup 's2) (lookup 's2b) s2) + (eq? (lookup 's3) (lookup 's3b) s3)))) + (test-assert "shepherd-service-back-edges" (let* ((s1 (shepherd-service (provision '(s1)) (start #f))) (s2 (shepherd-service (provision '(s2)) @@ -118,4 +132,67 @@ (lset= eq? (e s2) (list s3)) (null? (e s3))))) +(test-equal "shepherd-service-upgrade: nothing to do" + '(() ()) + (call-with-values + (lambda () + (shepherd-service-upgrade '() '())) + list)) + +(test-equal "shepherd-service-upgrade: one unchanged, one upgraded, one new" + '(((bar)) ;unload + ((bar) (baz))) ;load + (call-with-values + (lambda () + ;; Here 'foo' is not upgraded because it is still running, whereas + ;; 'bar' is upgraded because it is not currently running. 'baz' is + ;; loaded because it's a new service. + (shepherd-service-upgrade + (list (live-service '(foo) '() #t) + (live-service '(bar) '() #f) + (live-service '(root) '() #t)) ;essential! + (list (shepherd-service (provision '(foo)) + (start #t)) + (shepherd-service (provision '(bar)) + (start #t)) + (shepherd-service (provision '(baz)) + (start #t))))) + (lambda (unload load) + (list (map live-service-provision unload) + (map shepherd-service-provision load))))) + +(test-equal "shepherd-service-upgrade: service depended on is not unloaded" + '(((baz)) ;unload + ()) ;load + (call-with-values + (lambda () + ;; Service 'bar' is not among the target services; yet, it must not be + ;; unloaded because 'foo' depends on it. + (shepherd-service-upgrade + (list (live-service '(foo) '(bar) #t) + (live-service '(bar) '() #t) ;still used! + (live-service '(baz) '() #t)) + (list (shepherd-service (provision '(foo)) + (start #t))))) + (lambda (unload load) + (list (map live-service-provision unload) + (map shepherd-service-provision load))))) + +(test-equal "shepherd-service-upgrade: obsolete services that depend on each other" + '(((foo) (bar) (baz)) ;unload + ((qux))) ;load + (call-with-values + (lambda () + ;; 'foo', 'bar', and 'baz' depend on each other, but all of them are + ;; obsolete, and thus should be unloaded. + (shepherd-service-upgrade + (list (live-service '(foo) '(bar) #t) ;obsolete + (live-service '(bar) '(baz) #t) ;obsolete + (live-service '(baz) '() #t)) ;obsolete + (list (shepherd-service (provision '(qux)) + (start #t))))) + (lambda (unload load) + (list (map live-service-provision unload) + (map shepherd-service-provision load))))) + (test-end) diff --git a/tests/system.scm b/tests/system.scm index b5bb9af016..ca34409be9 100644 --- a/tests/system.scm +++ b/tests/system.scm @@ -59,7 +59,7 @@ %base-file-systems)) (users %base-user-accounts))) - + (test-begin "system") (test-assert "operating-system-store-file-system" |