From e0b2e93005188ab4d6c7413a27832ba2fb7388e8 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 11 May 2017 03:12:44 -0400 Subject: system: grub: Expose GRUB's interactive interface settings. * gnu/system/grub.scm (): Add new fields terminal-outputs, terminal-inputs, serial-unit, and serial-speed. (grub-setup-io, setup-gfxterm): New procedures. * doc/guix.texi (GRUB Configuration): Document the new fields. --- gnu/system/grub.scm | 99 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 82 insertions(+), 17 deletions(-) (limited to 'gnu') diff --git a/gnu/system/grub.scm b/gnu/system/grub.scm index 58096429fe..97081d8485 100644 --- a/gnu/system/grub.scm +++ b/gnu/system/grub.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2016 Chris Marusich +;;; Copyright © 2017 Leo Famulari ;;; ;;; This file is part of GNU Guix. ;;; @@ -108,17 +109,25 @@ denoting a file name." (define-record-type* grub-configuration make-grub-configuration grub-configuration? - (grub grub-configuration-grub ; package - (default (@ (gnu packages bootloaders) grub))) - (device grub-configuration-device) ; string - (menu-entries grub-configuration-menu-entries ; list - (default '())) - (default-entry grub-configuration-default-entry ; integer - (default 0)) - (timeout grub-configuration-timeout ; integer - (default 5)) - (theme grub-configuration-theme ; - (default %default-theme))) + (grub grub-configuration-grub ; package + (default (@ (gnu packages bootloaders) grub))) + (device grub-configuration-device) ; string + (menu-entries grub-configuration-menu-entries ; list + (default '())) + (default-entry grub-configuration-default-entry ; integer + (default 0)) + (timeout grub-configuration-timeout ; integer + (default 5)) + (theme grub-configuration-theme ; + (default %default-theme)) + (terminal-outputs grub-configuration-terminal-outputs ; list of symbols + (default '(gfxterm))) + (terminal-inputs grub-configuration-terminal-inputs ; list of symbols + (default '())) + (serial-unit grub-configuration-serial-unit ; integer | #f + (default #f)) + (serial-speed grub-configuration-serial-speed ; integer | #f + (default #f))) (define-record-type* menu-entry make-menu-entry @@ -199,11 +208,16 @@ system string---e.g., \"x86_64-linux\"." insmod vbe insmod vga fi - - terminal_output gfxterm " "")) + (define (setup-gfxterm config font-file) + (if (memq 'gfxterm (grub-configuration-terminal-outputs config)) + #~(format #f "if loadfont ~a; then + setup_gfxterm +fi~%" #$font-file) + "")) + (define (theme-colors type) (let* ((theme (grub-configuration-theme config)) (colors (type theme))) @@ -222,9 +236,8 @@ function setup_gfxterm {~a} # Set 'root' to the partition that contains /gnu/store. ~a -if loadfont ~a; then - setup_gfxterm -fi +~a +~a insmod png if background_image ~a; then @@ -236,7 +249,8 @@ else fi~%" #$setup-gfxterm-body #$(grub-root-search store-device font-file) - #$font-file + #$(grub-setup-io config) + #$(setup-gfxterm config font-file) #$(strip-mount-point store-mount-point image) #$(theme-colors grub-theme-color-normal) @@ -247,6 +261,57 @@ fi~%" ;;; Configuration file. ;;; +(define (grub-setup-io config) + "Return GRUB commands to configure the input / output interfaces. The result +is a string that can be inserted in grub.cfg." + (let* ((symbols->string (lambda (list) + (string-join (map symbol->string list) " "))) + (outputs (grub-configuration-terminal-outputs config)) + (inputs (grub-configuration-terminal-inputs config)) + (unit (grub-configuration-serial-unit config)) + (speed (grub-configuration-serial-speed config)) + + ;; Respectively, GRUB_TERMINAL_OUTPUT and GRUB_TERMINAL_INPUT, + ;; as documented in GRUB manual section "Simple Configuration + ;; Handling". + (valid-outputs '(console serial serial_0 serial_1 serial_2 serial_3 + gfxterm vga_text mda_text morse spkmodem)) + (valid-inputs '(console serial serial_0 serial_1 serial_2 serial_3 + at_keyboard usb_keyboard)) + + (io (string-append + "terminal_output " + (symbols->string + (map + (lambda (output) + (if (memq output valid-outputs) output #f)) outputs)) "\n" + (if (null? inputs) + "" + (string-append + "terminal_input " + (symbols->string + (map + (lambda (input) + (if (memq input valid-inputs) input #f)) inputs)) "\n")) + ;; UNIT and SPEED are arguments to the same GRUB command + ;; ("serial"), so we process them together. + (if (or unit speed) + (string-append + "serial" + (if unit + ;; COM ports 1 through 4 + (if (and (exact-integer? unit) (<= unit 3) (>= unit 0)) + (string-append " --unit=" (number->string unit)) + #f) + "") + (if speed + (if (exact-integer? speed) + (string-append " --speed=" (number->string speed)) + #f) + "")) + "")))) + (format #f "~a" io))) + (define (grub-root-search device file) "Return the GRUB 'search' command to look for DEVICE, which contains FILE, a gexp. The result is a gexp that can be inserted in the grub.cfg-generation -- cgit 1.4.1 From 589896843854cbdb24f627a53e5a9af628c6e7fb Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 13 May 2017 19:36:01 -0500 Subject: gnu: Add thermald. * gnu/packages/admin.scm (thermald): New variable. --- gnu/packages/admin.scm | 54 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index ef7bff10f3..1610729c44 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2016 John Darrington ;;; Copyright © 2017 Ben Sturmfels ;;; Copyright © 2017 Ethan R. Jones +;;; Copyright © 2017 Christopher Allan Webber ;;; ;;; This file is part of GNU Guix. ;;; @@ -80,7 +81,8 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages gnome) #:use-module (gnu packages kerberos) - #:use-module (gnu packages gtk)) + #:use-module (gnu packages gtk) + #:use-module (gnu packages xml)) (define-public aide (package @@ -2180,3 +2182,53 @@ navigation, opening files and running tasks. There is no config file and mime associations are hard-coded. The incredible user-friendliness and speed make it a perfect utility on modern distros.") (license license:bsd-2))) + +(define-public thermald + (package + (name "thermald") + (version "1.6") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/01org/thermal_daemon/archive/v" + version ".tar.gz")) + (sha256 (base32 + "14klz9fnvi9jdlaqwrp61xa5nh051n8ykrs1fh1wxd7j66qf2fn6")))) + (build-system gnu-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after + 'unpack 'autogen.sh-and-fix-paths + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; upstartconfir is hardcoded to /etc/init and the build + ;; system tries to mkdir that. We don't even need upstart + ;; files at all; this is a fast and kludgy workaround + (substitute* "data/Makefile.am" + (("upstartconfdir = /etc/init") + (string-append "upstartconfdir = " + out "/etc/init"))) + ;; Now run autogen + (zero? (system* "sh" "autogen.sh")))))) + #:configure-flags + (let ((out (assoc-ref %outputs "out"))) + (list (string-append "--sysconfdir=" + out "/etc") + (string-append "--with-udev-dir=" + out "/lib/udev") + (string-append "--with-dbus-sys-dir=" + out "/etc/dbus-1/system.d") + "--localstatedir=/var")))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("glib" ,glib "bin") ; for glib-genmarshal, etc. + ("pkg-config" ,pkg-config))) + (inputs + `(("dbus-glib" ,dbus-glib) + ("libxml2" ,libxml2))) + (home-page "https://01.org/linux-thermal-daemon/") + (synopsis "CPU scaling for thermal management") + (description "The Linux Thermal Daemon helps monitor and control temperature +on systems running the Linux kernel.") + (license license:gpl2+))) -- cgit 1.4.1 From d7fa39ccec34bc223d52a04dfc3e1f756e2dfa24 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 13 May 2017 19:37:02 -0500 Subject: services: Add 'thermald-service-type'. * gnu/services/pm.scm (): New record type. (thermald-shepherd-service, thermald-service-type): New variables. * doc/guix.texi (Thermal Management): New section documenting thermald. --- doc/guix.texi | 28 +++++++++++++++++++++++++++- gnu/services/pm.scm | 41 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 67 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/doc/guix.texi b/doc/guix.texi index 844f0d74fb..43ed051493 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -35,7 +35,8 @@ Copyright @copyright{} 2017 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* -Copyright @copyright{} 2017 humanitiesNerd +Copyright @copyright{} 2017 humanitiesNerd@* +Copyright @copyright{} 2017 Christopher Allan Webber Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -14617,6 +14618,31 @@ Defaults to @samp{#f}. @end deftypevr + +The @code{(gnu services pm)} module provides an interface to +thermald, a CPU frequency scaling service which helps prevent overheating. + +@defvr {Scheme Variable} thermald-service-type +This is the service type for +@uref{https://01.org/linux-thermal-daemon/, thermald}, the Linux +Thermal Daemon, which is responsible for controlling the thermal state +of processors and preventing overheating. +@end defvr + +@deftp {Data Type} thermald-configuration +Data type representing the configuration of @code{thermald-service-type}. + +@table @asis +@item @code{ignore-cpuid-check?} (default: @code{#f}) +Ignore cpuid check for supported CPU models. + +@item @code{thermald} (default: @var{thermald}) +Package object of thermald. + +@end table +@end deftp + + @node Miscellaneous Services @subsubsection Miscellaneous Services diff --git a/gnu/services/pm.scm b/gnu/services/pm.scm index 3cefe1874a..d40cb993e2 100644 --- a/gnu/services/pm.scm +++ b/gnu/services/pm.scm @@ -20,6 +20,7 @@ #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix records) + #:use-module (gnu packages admin) #:use-module (gnu packages linux) #:use-module (gnu services) #:use-module (gnu services base) @@ -27,7 +28,10 @@ #:use-module (gnu services shepherd) #:use-module (gnu system shadow) #:export (tlp-service-type - tlp-configuration)) + tlp-configuration + + thermald-configuration + thermald-service-type)) (define (uglify-field-name field-name) (let ((str (symbol->string field-name))) @@ -403,3 +407,38 @@ shutdown on system startup.")) (generate-documentation `((tlp-configuration ,tlp-configuration-fields)) 'tlp-configuration)) + + + +;;; +;;; thermald +;;; +;;; This service implements cpu scaling. Helps prevent overheating! + +(define-record-type* + thermald-configuration make-thermald-configuration + thermald-configuration? + (ignore-cpuid-check? thermald-ignore-cpuid-check? ;boolean + (default #f)) + (thermald thermald-thermald ;package + (default thermald))) + +(define (thermald-shepherd-service config) + (list + (shepherd-service + (provision '(thermald)) + (documentation "Run thermald cpu frequency scaling.") + (start #~(make-forkexec-constructor + '(#$(file-append (thermald-thermald config) "/sbin/thermald") + "--no-daemon" + #$@(if (thermald-ignore-cpuid-check? config) + '("--ignore-cpuid-check") + '())))) + (stop #~(make-kill-destructor))))) + +(define thermald-service-type + (service-type + (name 'thermald) + (extensions (list (service-extension shepherd-root-service-type + thermald-shepherd-service))) + (default-value (thermald-configuration)))) -- cgit 1.4.1 From 1edbdb0bfc3248abb6732ccebb2b3463b02fee3a Mon Sep 17 00:00:00 2001 From: Brendan Tildesley Date: Mon, 15 May 2017 11:09:11 +1000 Subject: gnu: par2cmdline: Update to 0.7.0 * gnu/packages/backup.scm (par2cmdline): Update to 0.7.0 [source]: Remove old test fix incorporated upstream. [arguments]: Disable parallel tests. Signed-off-by: Leo Famulari --- gnu/packages/backup.scm | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index d5cb5783ab..5f0e84beed 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -118,7 +118,7 @@ spying and/or modification by the server.") (define-public par2cmdline (package (name "par2cmdline") - (version "0.6.14") + (version "0.7.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/Parchive/par2cmdline/archive/v" @@ -126,21 +126,14 @@ spying and/or modification by the server.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0ykfb7ar0x0flfdgf6i8xphyv5b93dalbjj2jb6hx7sdjax33n1g")) - ;; This test merely needs a file to test recovery on, but - ;; /dev/random is essentially /dev/urandom plus minimum entropy - ;; locking, making the test hang indefinitely. This change is - ;; already upstream: remove on upgrade to future 0.6.15. - ;; https://github.com/Parchive/par2cmdline/commit/27723a678f780da82c79b98592592009c779a4fb - (modules '((guix build utils))) - (snippet - '(substitute* "tests/test20" (("if=/dev/random") "if=/dev/urandom"))))) + "1m9vnv3pg0nds47raq2rd2kfpaad1sc10hv40hll5byksqlbfxyq")))) (native-inputs `(("automake" ,automake) ("autoconf" ,autoconf))) (build-system gnu-build-system) (arguments - `(#:phases + `(#:parallel-tests? #f + #:phases (modify-phases %standard-phases (add-after 'unpack 'autoreconf (lambda _ (zero? (system* "autoreconf" "-vfi"))))))) -- cgit 1.4.1 From d0abaf8960ef0fb8a85f43c399a7ca9281c56142 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Mon, 15 May 2017 11:41:54 +0200 Subject: gnu: Add catdoc. * gnu/packages/textutils.scm (catdoc): New variable. --- gnu/packages/textutils.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index dbd71c2e8f..30e2116688 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2016 Marius Bakke ;;; Copyright © 2017 Eric Bavier ;;; Copyright © 2017 Rene Saavedra +;;; Copyright © 2017 Hartmut Goebel ;;; ;;; This file is part of GNU Guix. ;;; @@ -368,6 +369,45 @@ to everybody, because they believe that everybody runs Windows and therefore runs Word\".") (license license:gpl2+))) +(define-public catdoc + (package + (name "catdoc") + (version "0.95") + (source (origin + (method url-fetch) + (uri (string-append "http://ftp.wagner.pp.ru/pub/catdoc/" + "catdoc-" version ".tar.gz")) + (sha256 + (base32 + "15h7v3bmwfk4z8r78xs5ih6vd0pskn0rj90xghvbzdjj0cc88jji")))) + (build-system gnu-build-system) + ;; TODO: Also build `wordview` which requires `tk` – make a separate + ;; package for this. + (arguments + '(#:tests? #f ; There are no tests + #:configure-flags '("--disable-wordview") + #:phases + (modify-phases %standard-phases + (add-before 'install 'fix-install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (mkdir-p (string-append out "/share/man/man1")))))))) + (home-page "http://www.wagner.pp.ru/~vitus/software/catdoc/") + (synopsis "MS-Word to TeX or plain text converter") + (description "@command{catdoc} extracts text from MS-Word files, trying to +preserve as many special printable characters as possible. It supports +everything up to Word-97. Also supported are MS Write documents and RTF files. + +@command{catdoc} does not preserve complex word formatting, but it can +translate some non-ASCII characters into TeX escape codes. It's goal is to +extract plain text and allow you to read it and, probably, reformat with TeX, +according to TeXnical rules. + +This package also provides @command{xls2csv}, which extracts data from Excel +spreadsheets and outputs it in comma-separated-value format, and +@command{catppt}, which extracts data from PowerPoint presentations.") + (license license:gpl2+))) + (define-public utfcpp (package (name "utfcpp") -- cgit 1.4.1 From 9eb0f43031c76afcb678f4473861456c3dd32633 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Mon, 15 May 2017 11:46:05 +0200 Subject: gnu: Update kde frameworks to 5.34.0. * gnu/packages/kde-frameworks.scm (solid): Update to 5.34.0 [native-inputs]: Add dbus. : Replace standard phase. (networkmanager-qt): Update to 5.34.0. [source]: Remove patches. (kfilemetadata) Update to 5.32.0. : New phase Move phase after install phase. [inputs] Add catdoc, exiv2, ffmpeg, poppler, taglib. (attica, baloo, bluez-qt, breeze-icons, extra-cmake-modules, kactivities, kactivities-stats, kapidox, karchive, kauth, kbookmarks, kcmutils, kcodecs, kcompletion, kconfig, kconfigwidgets, kcoreaddons, kcrash, kdbusaddons, kdeclarative, kded, kdesignerplugin, kdesu, kdnssd, kdoctools, kemoticons, kglobalaccel, kguiaddons, ki18n, kiconthemes, kidletime, kimageformats, kinit, kio, kitemmodels, kitemviews, kjobwidgets, knewstuff, knotification, knotifyconfig, kpackages, kparts, kpeople, kplotting, kpty, krunner, kservice, ksyntaxhighlighting, ktexteditor, ktextwidgets, kunitconversion, kwallet, kwayland, kwidgetsaddons, kwindowsystem, kxmlgui, kxmlrpcclient, modemmanager-qt, networkmanager-qt, oxygen-icons, plasma-framework, sonnet, threadweaver): Update to 5.34.0. * gnu/packages/patches/networkmanager-qt-activeconnection-test-1.patch, gnu/packages/patches/networkmanager-qt-activeconnection-test-2.patch: Remove files. * gnu/local.mk (dist_patch_DATA): Remove the patch files. --- gnu/local.mk | 2 - gnu/packages/kde-frameworks.scm | 302 +++++++++++---------- ...networkmanager-qt-activeconnection-test-1.patch | 60 ---- ...networkmanager-qt-activeconnection-test-2.patch | 57 ---- 4 files changed, 166 insertions(+), 255 deletions(-) delete mode 100644 gnu/packages/patches/networkmanager-qt-activeconnection-test-1.patch delete mode 100644 gnu/packages/patches/networkmanager-qt-activeconnection-test-2.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index 28a283ab70..be818604f7 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -834,8 +834,6 @@ dist_patch_DATA = \ %D%/packages/patches/netsurf-system-utf8proc.patch \ %D%/packages/patches/netsurf-y2038-tests.patch \ %D%/packages/patches/netsurf-longer-test-timeout.patch \ - %D%/packages/patches/networkmanager-qt-activeconnection-test-1.patch \ - %D%/packages/patches/networkmanager-qt-activeconnection-test-2.patch \ %D%/packages/patches/ngircd-handle-zombies.patch \ %D%/packages/patches/ninja-zero-mtime.patch \ %D%/packages/patches/node-9077.patch \ diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm index 2ec176422c..07943e1e5e 100644 --- a/gnu/packages/kde-frameworks.scm +++ b/gnu/packages/kde-frameworks.scm @@ -44,13 +44,18 @@ #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) #:use-module (gnu packages gstreamer) + #:use-module (gnu packages image) #:use-module (gnu packages linux) + #:use-module (gnu packages mp3) + #:use-module (gnu packages pdf) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages polkit) #:use-module (gnu packages python) #:use-module (gnu packages qt) + #:use-module (gnu packages textutils) #:use-module (gnu packages version-control) + #:use-module (gnu packages video) #:use-module (gnu packages web) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) @@ -59,7 +64,7 @@ (define-public extra-cmake-modules (package (name "extra-cmake-modules") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -68,7 +73,7 @@ name "-" version ".tar.xz")) (sha256 (base32 - "1iqakxzr6bcs9wgyi8if1smpq6px0bvlcyddyk0hxhindzl7pn5i")))) + "1r3dyvrv77xrpjlzpa6yazwkknirvx1ccvdyj9x0mlk4vfi05nh5")))) (build-system cmake-build-system) (native-inputs `(("qtbase" ,qtbase))) ; For tests (needs qmake) @@ -240,7 +245,7 @@ Phonon-GStreamer is a backend based on the GStreamer multimedia library.") (define-public attica (package (name "attica") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -249,7 +254,7 @@ Phonon-GStreamer is a backend based on the GStreamer multimedia library.") name "-" version ".tar.xz")) (sha256 (base32 - "16vl3gpwqcvfms82grv1bvqlxj085bqssv5ixjx007826pd8qhp5")))) + "0l8gmsmpwzg6nzwwlnsdl6r6qkhnhirpmrkag9xpd2sbmy734x53")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -272,7 +277,7 @@ http://freedesktop.org/wiki/Specifications/open-collaboration-services/") (define-public bluez-qt (package (name "bluez-qt") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -281,7 +286,7 @@ http://freedesktop.org/wiki/Specifications/open-collaboration-services/") name "-" version ".tar.xz")) (sha256 (base32 - "0pl6cp0rgjkh7d06ik35rw7qd96j5sh2flgjx4vi21zl5vf3vgyh")))) + "040gs2a1fx996gqdx2pwxh00szb1vb85055z946nqvqfn01921df")))) (build-system cmake-build-system) (native-inputs `(("dbus" ,dbus) @@ -306,7 +311,7 @@ Bluetooth stack. It is used by the KDE Bluetooth stack, BlueDevil.") (define-public breeze-icons (package (name "breeze-icons") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -315,7 +320,7 @@ Bluetooth stack. It is used by the KDE Bluetooth stack, BlueDevil.") name "-" version ".tar.xz")) (sha256 (base32 - "1n51kahzk09v52yhi7k4kqgavqlz3ghqv5cx2ssz2djpyavs18r3")))) + "1znzlggb6yrkw5rr2n75g7cfv9x5p9d55hss09c4i79lxrh1bk4a")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -335,7 +340,7 @@ It is the default icon theme for the KDE Plasma 5 desktop.") (define-public kapidox (package (name "kapidox") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -344,7 +349,7 @@ It is the default icon theme for the KDE Plasma 5 desktop.") name "-" version ".tar.xz")) (sha256 (base32 - "1z6hdsppwrmqkcanrppxhqcrjvblg9i02rh3bz5m3pn66wwz0sdw")))) + "190d5z6i71jrvfna6vnlim2p9rgc33s1fxl0zarn276683i1rwvg")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; has no test target @@ -377,7 +382,7 @@ documentation.") (define-public karchive (package (name "karchive") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -386,7 +391,7 @@ documentation.") name "-" version ".tar.xz")) (sha256 (base32 - "1dzvphqnc09mmaydqggpxg6zwwyr56p6l4jdf1rf6ns90fzxy0m4")))) + "0g8jskdar2znviwh9bs3kia093wgfnhl04x4jcg2rvh78ylkpvxw")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -411,7 +416,7 @@ GZip format, via a subclass of QIODevice.") (define-public kcodecs (package (name "kcodecs") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -420,7 +425,7 @@ GZip format, via a subclass of QIODevice.") name "-" version ".tar.xz")) (sha256 (base32 - "0yybkp52i8nm4qjady6jqswn6v70cqbvjqwgrghjnc88b2cly253")))) + "0k51s4qlf0kq6i8f3wrsz5lrkzjqb1j26hrmlmg57vn91r58iash")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -446,7 +451,7 @@ Internet).") (define-public kconfig (package (name "kconfig") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -455,7 +460,7 @@ Internet).") name "-" version ".tar.xz")) (sha256 (base32 - "1pajh1l08b995shp6l75ri9z4vr6wjapvrkmrmv8hksnxvfi97dp")))) + "0blbx6b3fk6p8cv2iywk2avn9w1411bb0g5wwv456a9ggi01988x")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -513,7 +518,7 @@ propagate their changes to their respective configuration files.") (define-public kcoreaddons (package (name "kcoreaddons") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -522,7 +527,7 @@ propagate their changes to their respective configuration files.") name "-" version ".tar.xz")) (sha256 (base32 - "1n1xzvwwji9pwyxrvwp4rmpc7qzp9nlis26xmn81k607jn587ksx")))) + "1ybr4bv8rhp4cxpf8mfsc4dk0klzrfh1z8g2cw6zasmksxmmwi90")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -551,7 +556,7 @@ many more.") (define-public kdbusaddons (package (name "kdbusaddons") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -560,7 +565,7 @@ many more.") name "-" version ".tar.xz")) (sha256 (base32 - "1a15jjsrkza0ll2viyk834pgdxsdgdacm0982xxwl5z937f75609")) + "1skblxfnjhbyiwavsfhksc2ybc2sikw3xr0js6mlfbpmvqzghn6h")) (patches (search-patches "kdbusaddons-kinit-file-name.patch")))) (build-system cmake-build-system) (native-inputs @@ -596,7 +601,7 @@ as well as an API to create KDED modules.") (define-public kdnssd (package (name "kdnssd") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -605,7 +610,7 @@ as well as an API to create KDED modules.") name "-" version ".tar.xz")) (sha256 (base32 - "1xakbs2wm627zn01ni8fyrz64xl5jw4by0pdrb70aad7w37dijrw")))) + "082mdim9wykdap4fmjfayk443rbarsk1p8cn3mspx2nw047yja80")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -623,7 +628,7 @@ infrastructure.") (define-public kguiaddons (package (name "kguiaddons") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -632,7 +637,7 @@ infrastructure.") name "-" version ".tar.xz")) (sha256 (base32 - "0rbfd0rykmwl9hs1q22pqg2by8vi9y1pgs2ishgnan4sc4w87wjb")))) + "1nmlwvy2jdmh0m6bmahvk68vl2rs9s28c10dkncpi6gvhsdkigqx")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -656,7 +661,7 @@ interfaces in the areas of colors, fonts, text, images, keyboard input.") (define-public ki18n (package (name "ki18n") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -665,7 +670,7 @@ interfaces in the areas of colors, fonts, text, images, keyboard input.") name "-" version ".tar.xz")) (sha256 (base32 - "068xvw2hy4hlpj85wgjjdj0nc37fygpd8wb1dnpqcvzzy8rc1rsf")))) + "0glvmmy01mp6hnix79aichgwjq842kgf5q5zynkg6mch85y4ary7")))) (build-system cmake-build-system) (propagated-inputs `(("gettext" ,gettext-minimal) @@ -699,7 +704,7 @@ translation scripting.") (define-public kidletime (package (name "kidletime") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -708,7 +713,7 @@ translation scripting.") name "-" version ".tar.xz")) (sha256 (base32 - "0rkxx3bnspjwm4vcy4rdfahk6vcfpkh8fldww0zfdn7s7pigqwch")))) + "0z8x6iz52y2m8llsp2q4qayxswkzay7ksimzy47crfag442bw24g")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -726,7 +731,7 @@ or user activity.") (define-public kitemmodels (package (name "kitemmodels") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -735,7 +740,7 @@ or user activity.") name "-" version ".tar.xz")) (sha256 (base32 - "0lxld7jdixpq23sycv8n4ckzmdr34aycrsf2zffziw6r59f0mzki")))) + "1liq1ppa7xb1dcncv25c2a0xy3l9bvb2a56cff90c0b0vwr239q5")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -787,7 +792,7 @@ model to observers (define-public kitemviews (package (name "kitemviews") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -796,7 +801,7 @@ model to observers name "-" version ".tar.xz")) (sha256 (base32 - "1h1zgawdi4vbgymdl5215lx7hpcx9jqxy7vjf5hwgs6b2cls1sws")))) + "054accbis471zj1gbfxbc99062r2hvpb04i6w3r8fa4ml8s6brqk")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -828,7 +833,7 @@ to flat and hierarchical lists.") (define-public kplotting (package (name "kplotting") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -837,7 +842,7 @@ to flat and hierarchical lists.") name "-" version ".tar.xz")) (sha256 (base32 - "0a0pfmdlx84526lb2jvx94i2pf85km57fm2ygis4z5mjgbzsmb6v")))) + "1ffy9b08128ym024wlfgnzk52vpy0mbaa91dhndpr40qcz0i67sh")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -866,7 +871,7 @@ pixel units.") (define-public ksyntaxhighlighting (package (name "ksyntaxhighlighting") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -875,7 +880,7 @@ pixel units.") "syntax-highlighting-" version ".tar.xz")) (sha256 (base32 - "1d9m7x53mwggwmhhba1c7b8v4f8qjql889y674ldpzs2nrk5y7x3")))) + "0ryfwblvzj9rd5jj7l8scmbb49ygzk77ng05hrznsipczin2cjw8")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -914,7 +919,7 @@ integration with a custom editor as well as a ready-to-use (define-public kwayland (package (name "kwayland") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -923,7 +928,7 @@ integration with a custom editor as well as a ready-to-use name "-" version ".tar.xz")) (sha256 (base32 - "1kzvq7qx102rfdv975x5sd37lsl6wn0mzm2m1f9fnnn2rvii3h5d")))) + "1zxb9ram47vbiik8h0czyvacrdiijhnslkpcm61l4r1rb0ybb0ib")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -953,7 +958,7 @@ represented by a QPoint or a QSize.") (define-public kwidgetsaddons (package (name "kwidgetsaddons") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -962,7 +967,7 @@ represented by a QPoint or a QSize.") name "-" version ".tar.xz")) (sha256 (base32 - "1aksy326ppdfcx20zl9hxsd8j0br32j6dlx4i1xxbd976csys9b2")))) + "0hw87iig75mfgl5p3ph6zkwap31h357bm7rlyv5d9nnp10bq0hfg")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1001,7 +1006,7 @@ configuration pages, message boxes, and password requests.") (define-public kwindowsystem (package (name "kwindowsystem") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1010,7 +1015,7 @@ configuration pages, message boxes, and password requests.") name "-" version ".tar.xz")) (sha256 (base32 - "1c3kd23c4wwzdhfcyhv41czw3y2kk1492xn6ah9n3r98akrhgar1")))) + "1sp2x7afhw19vmhdp2qyrmljz8h0875xjk95n8c5gzypk7sr0l83")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1041,7 +1046,7 @@ lower level classes for interaction with the X Windowing System.") (define-public modemmanager-qt (package (name "modemmanager-qt") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1050,7 +1055,7 @@ lower level classes for interaction with the X Windowing System.") name "-" version ".tar.xz")) (sha256 (base32 - "0ywyiq1kj4ya5knn0r12j9m1ig9mlyfypnrzihlvipddjrqs7jyd")))) + "1cf5nsc8h7djvr19fm5dphzplh1wm3asvn0a7r71spg0i7lzi89h")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1079,7 +1084,7 @@ messages.") (define-public networkmanager-qt (package (name "networkmanager-qt") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1088,12 +1093,7 @@ messages.") name "-" version ".tar.xz")) (sha256 (base32 - "0bcy7nzfvx2xah3kxklmrjn08qbjddiny7wf7nkxsbc3kkhrxqyd")) - ;; TODO: Remove these patches when updating to 5.33. - (patches - (search-patches - "networkmanager-qt-activeconnection-test-1.patch" - "networkmanager-qt-activeconnection-test-2.patch")))) + "05s0irvkg0g57acriablyha2wb9c7w3xhq223vdddjqpcdx0pnkl")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1123,7 +1123,7 @@ which are used in DBus communication.") (define-public oxygen-icons (package (name "oxygen-icons") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1132,7 +1132,7 @@ which are used in DBus communication.") name "5" "-" version ".tar.xz")) (sha256 (base32 - "05v3blgs4qbjl8s6470baahy9a98cfi3mplzp462axcgkqdj1nwf")))) + "0cmxxssir5zbp5nlxq81h2xfd6wrxbbkydyw93dby7r56isl7ga5")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1148,7 +1148,7 @@ which are used in DBus communication.") (define-public solid (package (name "solid") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1157,10 +1157,18 @@ which are used in DBus communication.") name "-" version ".tar.xz")) (sha256 (base32 - "1jhymivravgix0sa0szkax50j09l5fl55xi3fbyjxlb4cil114v5")))) + "02kz21p3p1s1rg7gf34fr6ynhji6x97yvsfdpvbfxbhijabbh4ib")))) (build-system cmake-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (setenv "DBUS_FATAL_WARNINGS" "0") + (zero? (system* "dbus-launch" "ctest" "."))))))) (native-inputs `(("bison" ,bison) + ("dbus" ,dbus) ("extra-cmake-modules" ,extra-cmake-modules) ("flex" ,flex) ("qttools" ,qttools))) @@ -1177,7 +1185,7 @@ system.") (define-public sonnet (package (name "sonnet") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1186,7 +1194,7 @@ system.") name "-" version ".tar.xz")) (sha256 (base32 - "17sjv48b3z5fgplsy16ilcw6p7mlqjs61ib6jqd1mqzv4xrr27yi")))) + "06gxrh8rb75ydkqxk5dhlmwndnczp264jx588ryfwlf3vlnk99vs")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1203,7 +1211,7 @@ ASpell and HUNSPELL.") (define-public threadweaver (package (name "threadweaver") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1212,7 +1220,7 @@ ASpell and HUNSPELL.") name "-" version ".tar.xz")) (sha256 (base32 - "1qpy2rzqyd4ap5fibkfk87z66ijh2h79cd7f0h506jh2dbx20g0h")))) + "1gylpl283qf1jcfyib4q5xwnpdq13hnd2cp2i7xjazdw2jp40zhr")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -1233,7 +1241,7 @@ uses a job-based interface to queue tasks and execute them in an efficient way." (define-public kauth (package (name "kauth") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1242,7 +1250,7 @@ uses a job-based interface to queue tasks and execute them in an efficient way." name "-" version ".tar.xz")) (sha256 (base32 - "00kdq16n9w6nf1bpwzl5lp5c2xq74g8nn6081kvnjcd4ld66ncmq")))) + "06cw1bsp7inh5wglajm8aahy17p35ixgnijb7d74gjqzbj4cv93d")))) (build-system cmake-build-system) (native-inputs `(("dbus" ,dbus) @@ -1280,7 +1288,7 @@ utilities.") (define-public kcompletion (package (name "kcompletion") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1289,7 +1297,7 @@ utilities.") name "-" version ".tar.xz")) (sha256 (base32 - "0fn8imr3m219r38a0rafbnylcpjq4rqhz1w66mx80sc7l10mhcni")))) + "18hvdk5b1nkh6b3vx0jajri57rl266b0qjsiwirh5wmjc81xbpcw")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1317,7 +1325,7 @@ integrated it into your application's other widgets.") (define-public kcrash (package (name "kcrash") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1326,7 +1334,7 @@ integrated it into your application's other widgets.") name "-" version ".tar.xz")) (sha256 (base32 - "1zrkjrpj88ymdy5vbn9db73vxppswvmbn2gkn4gpx773dsmflhz3")))) + "1cshay7dhbqgh62nq85vd9sm20gq9s9f70mdnzjjh1q7cajybkp3")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1355,7 +1363,7 @@ application crashes.") (define-public kdoctools (package (name "kdoctools") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1364,7 +1372,7 @@ application crashes.") name "-" version ".tar.xz")) (sha256 (base32 - "0i7zgg7iw6w0sdr6cv3yf4blcr61i8zczgmyqa964ka6p3ywwjs9")))) + "145jjhsd0whmcj91zbjz2b1jyj4wasw60hbwyd4xvqds8cp0l02h")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -1403,7 +1411,7 @@ from DocBook files.") (define-public kfilemetadata (package (name "kfilemetadata") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1412,8 +1420,23 @@ from DocBook files.") name "-" version ".tar.xz")) (sha256 (base32 - "01d91gmrxlax0g13ib841vc4qwmv6r4qdr10wfs77rrxsvw7z08f")))) + "1rvlg6by8daiq5ff3qlxcw9k2iq4qicsj0c8a00xfy3w4h9ip9h5")))) (build-system cmake-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Need to check after install and to set QT_PLUGIN_PATH for the test + ;; suite to finds the plugins. + (delete 'check) + (add-after 'install 'check + (assoc-ref %standard-phases 'check)) + (add-before 'check 'check-setup + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (setenv "QT_PLUGIN_PATH" + (string-append out "/lib/plugins:" + (getenv "QT_PLUGIN_PATH")))) + #t))))) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) ("python-2" ,python-2))) @@ -1421,7 +1444,14 @@ from DocBook files.") `(("attr" ,attr) ("karchive" ,karchive) ("ki18n" ,ki18n) - ("qtbase" ,qtbase))) + ("qtbase" ,qtbase) + ;; Required run-time packages + ("catdoc" ,catdoc) + ;; Optional run-time packages + ("exiv2" ,exiv2) + ("ffmpeg" ,ffmpeg) + ("poppler" ,poppler) + ("taglib" ,taglib))) (home-page "https://community.kde.org/Frameworks") (synopsis "Extract metadata from different fileformats") (description "KFileMetaData provides a simple library for extracting the @@ -1433,7 +1463,7 @@ by applications to write metadata.") (define-public kimageformats (package (name "kimageformats") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1442,7 +1472,7 @@ by applications to write metadata.") name "-" version ".tar.xz")) (sha256 (base32 - "05hn8n4sc3rj5c30ki068f76k1gfgvq19zcw5jlqpnn1l5db5fvz")))) + "0q9ng4clqk2dqw43nk1pmq1d61rahc3qr4dmg4y3kjvz3ahnnijw")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1470,7 +1500,7 @@ formats.") (define-public kjobwidgets (package (name "kjobwidgets") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1479,7 +1509,7 @@ formats.") name "-" version ".tar.xz")) (sha256 (base32 - "0lhv3mg2liija0g8x14jpv1mdhb0zjh868p1cs24bs9xrw1l8984")))) + "0lrx761vf947mb2q1l2jgi0wgwj8cz2nn1xg0j38bh99sgddmzpf")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1498,7 +1528,7 @@ asynchronous jobs.") (define-public knotifications (package (name "knotifications") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1507,7 +1537,7 @@ asynchronous jobs.") name "-" version ".tar.xz")) (sha256 (base32 - "06ap7m8c2py49pqrnhadbyl69y3nsyamzahbpwipqgh9k62sy34y")))) + "12z5hza0n5zr6mv3gkwhzb8zkrmk6dvgq8hrzwm8rzkgphjr6pi9")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1541,7 +1571,7 @@ covers feedback and persistent events.") (define-public kpackage (package (name "kpackage") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1550,7 +1580,7 @@ covers feedback and persistent events.") name "-" version ".tar.xz")) (sha256 (base32 - "070zasl5c58n01fk18mjgccfizymc9griwicxizqjgzzbgvkns3r")))) + "0wdymhcrjggxb7andz36cfk9f240vvbq5yahlxyhfp9z69lriw5q")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -1578,7 +1608,7 @@ were traditional plugins.") (define-public kpty (package (name "kpty") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1587,7 +1617,7 @@ were traditional plugins.") name "-" version ".tar.xz")) (sha256 (base32 - "0h4318rc9902cvqj69capb8lh7s84y44jd59d11fyhq21jhy152s")))) + "00k5hhz7nf3nf47xb003ni1chi03imyrfajap6ay4zp90l8fr950")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -1614,7 +1644,7 @@ and communicating with them using a pty.") (define-public kunitconversion (package (name "kunitconversion") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1623,7 +1653,7 @@ and communicating with them using a pty.") name "-" version ".tar.xz")) (sha256 (base32 - "0crc8riwafcx6fwhgrc8vfbwmdygd6vlz1fbbgni09gamm8mbcin")))) + "0v4x0flbfavrzfiqh71mdkqgp1fzk4f52msvq6w60i2s3sz7hcsm")))) (build-system cmake-build-system) (arguments `(#:phases @@ -1657,7 +1687,7 @@ gallons).") (define-public baloo (package (name "baloo") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1666,7 +1696,7 @@ gallons).") name "-" version ".tar.xz")) (sha256 (base32 - "0a4qwinkp4gmcbx4j0qxbj5qb40h7594s39za7sc7bymadicasy1")))) + "0z53lnniq9xdk09d73z0p1xs1qmaf71m4znm4hmq956yg4yqa1ya")))) (build-system cmake-build-system) (propagated-inputs `(("kcoreaddons" ,kcoreaddons) @@ -1715,7 +1745,7 @@ maintaining an index of the contents of your files.") (define-public kactivities (package (name "kactivities") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1724,7 +1754,7 @@ maintaining an index of the contents of your files.") name "-" version ".tar.xz")) (sha256 (base32 - "0xin4shaj0zsfsww84mwk5n4ldaqy730jhc369px2j2nq57sg9g7")))) + "0dg6bkdxf4sicij4szmi55npn6chp0sfmw27qi1s582ymqzjgf5m")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -1762,7 +1792,7 @@ with other frameworks.") (define-public kactivities-stats (package (name "kactivities-stats") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1771,7 +1801,7 @@ with other frameworks.") name "-" version ".tar.xz")) (sha256 (base32 - "1b3z7bcap3vjc0155y0a9xkbd477fklmpj8dr3rs0ccyc6qxxbvw")))) + "1dfaq4hsd9wm1ka45dkxbl9wwr7s5ixbnnghqwxhl7a60imc680r")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -1792,7 +1822,7 @@ by which applications, and what documents have been linked to which activity.") (define-public kbookmarks (package (name "kbookmarks") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1801,7 +1831,7 @@ by which applications, and what documents have been linked to which activity.") name "-" version ".tar.xz")) (sha256 (base32 - "03a024phcjv46afbp5lbmj2p8hb6srfzyaslc6ln6ms473bf5k4w")))) + "0ggn4rz8ch82ph64q6yik9fb1mp6kmsd7n33p769zl1lw7fldn0v")))) (build-system cmake-build-system) (propagated-inputs `(("kwidgetsaddons" ,kwidgetsaddons))) @@ -1835,7 +1865,7 @@ using the XBEL format.") (define-public kcmutils (package (name "kcmutils") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1844,7 +1874,7 @@ using the XBEL format.") name "-" version ".tar.xz")) (sha256 (base32 - "1mr9h7wc22bfrbm92ajsjfcs16c5xpkrxbxzcma3a0s7jhy6qrm9")))) + "1b52lwn7qjqrn06va7j1jswlzs6bx0drs90myf3607k52ffbf4hy")))) (build-system cmake-build-system) (propagated-inputs `(("kconfigwidgets" ,kconfigwidgets) @@ -1874,7 +1904,7 @@ KCModules can be created with the KConfigWidgets framework.") (define-public kconfigwidgets (package (name "kconfigwidgets") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1883,7 +1913,7 @@ KCModules can be created with the KConfigWidgets framework.") name "-" version ".tar.xz")) (sha256 (base32 - "1cq0a3k6pvl9f098ssqqk2rddxh0xn1kk4p5kfyd7w0m3c604zw3")))) + "0h4kappsffrp2qgg8wza1ybgah2dlcgpz591llfvaz31ldsml9hk")))) (build-system cmake-build-system) (propagated-inputs `(("kauth" ,kauth) @@ -1916,7 +1946,7 @@ their settings.") (define-public kdeclarative (package (name "kdeclarative") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1925,7 +1955,7 @@ their settings.") name "-" version ".tar.xz")) (sha256 (base32 - "1y5g3yi1l0g1mkqhhakg265r25zm23qc2fqg55rq0g7l9ss7w7g9")))) + "1mfj32p631zvwz9ldk8536ifb4n825zxbhx69bfllhw2vn1am7z2")))) (build-system cmake-build-system) (propagated-inputs `(("kconfig" ,kconfig) @@ -1976,7 +2006,7 @@ that offer bindings to some of the Frameworks.") (define-public kded (package (name "kded") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1985,7 +2015,7 @@ that offer bindings to some of the Frameworks.") name "-" version ".tar.xz")) (sha256 (base32 - "0pmmsvqwkw86yvxxf9i6lg13vg80m0kmhjjs88lbm60cgvr5jhq6")))) + "0qy4w7bcg60gyf6y6c11kqcshnld55a8w4fzglpwgqfbliyi5yzq")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -2009,7 +2039,7 @@ started on demand.") (define-public kdesignerplugin (package (name "kdesignerplugin") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2018,7 +2048,7 @@ started on demand.") name "-" version ".tar.xz")) (sha256 (base32 - "1hapj8x8nky3m6lx2ianmxwprf00jqyjsknjz3pi4vk3i714vhnf")))) + "1jnarg7wrhdjfq73q4wplazxsz927mpf0l6m0i4akq4dlp1b7aah")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -2047,7 +2077,7 @@ ini-style description files.") (define-public kdesu (package (name "kdesu") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2056,7 +2086,7 @@ ini-style description files.") name "-" version ".tar.xz")) (sha256 (base32 - "0zsy1hivy5bbczrpkpgj72mlx0km2nm53kpgrj2hfdy3ss0vn3hl")))) + "04mx0d6kf8slgkkgbna3cyv4c491jvlwcwqxc7zikz0i03l341id")))) (build-system cmake-build-system) (propagated-inputs `(("kpty" ,kpty))) @@ -2078,7 +2108,7 @@ with su and ssh respectively.") (define-public kemoticons (package (name "kemoticons") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2087,7 +2117,7 @@ with su and ssh respectively.") name "-" version ".tar.xz")) (sha256 (base32 - "1ncjs9iy6z6rhk83ff7fj1b68rkylnry0h698rh4jvs98gpw8sgj")))) + "02h12qy0w6mcgkczi3md1znnvp7r47l8h416nd080ljpsydalgx8")))) (build-system cmake-build-system) (propagated-inputs `(("kservice" ,kservice))) @@ -2119,7 +2149,7 @@ emoticons coming from different providers.") (define-public kglobalaccel (package (name "kglobalaccel") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2128,7 +2158,7 @@ emoticons coming from different providers.") name "-" version ".tar.xz")) (sha256 (base32 - "0dxwjznnqlgnvn15pl34rxlzk3i21cvzn8xbgqmxakny8qiib9ry")))) + "1i32dq70qxjbfvlw0wqxvqvl6ysydmpg3zbiflff4z1qrmvmpw6a")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -2162,7 +2192,7 @@ window does not need focus for them to be activated.") (define-public kiconthemes (package (name "kiconthemes") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2171,7 +2201,7 @@ window does not need focus for them to be activated.") name "-" version ".tar.xz")) (sha256 (base32 - "00azbyk5y3jgdqv03a2nd0627kdkhq1bkghvw7w62kcnih9k8lq5")))) + "0hbl82r6qc8dh9v9n9xjkx966czkq5yjxx2rx7sbilj2p9v3saii")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -2210,7 +2240,7 @@ in applications using the KDE Frameworks.") (define-public kinit (package (name "kinit") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2219,7 +2249,7 @@ in applications using the KDE Frameworks.") name "-" version ".tar.xz")) (sha256 (base32 - "0103lflppdw55l9xiqs68lzaq9897m5qnkmy6fp7dm9wfh9aplqn")))) + "08429kjihpaip73wszr3rsii8sdlwgm3kxx7g0hpjhkj9d2jq3m1")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -2254,7 +2284,7 @@ makes starting KDE applications faster and reduces memory consumption.") (define-public kio (package (name "kio") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2263,7 +2293,7 @@ makes starting KDE applications faster and reduces memory consumption.") name "-" version ".tar.xz")) (sha256 (base32 - "19da02l0aj0l07x9bbklhvx9slci3v1d8q80jvam4vyzs4qdyjin")))) + "1i23ld5b9gafh2x3lv79jbggbd92xyhk7rg3n765w3bsfpg2ijva")))) (build-system cmake-build-system) (propagated-inputs `(("kbookmarks" ,kbookmarks) @@ -2327,7 +2357,7 @@ KIO enabled infrastructure.") (define-public knewstuff (package (name "knewstuff") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2336,7 +2366,7 @@ KIO enabled infrastructure.") name "-" version ".tar.xz")) (sha256 (base32 - "1i3ldy9wwnjhpgdd2d0bg4304k88riin89zqzdl52lpqa6hjl3fp")))) + "19d53ylwr92dzl9agk4j765zvb897rcm55z7pr6841aj58jk9b82")))) (build-system cmake-build-system) (propagated-inputs `(("attica" ,attica) @@ -2384,7 +2414,7 @@ specification.") (define-public knotifyconfig (package (name "knotifyconfig") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2393,7 +2423,7 @@ specification.") name "-" version ".tar.xz")) (sha256 (base32 - "14qc6wj4j5i45vzqsvl2wlc07c6x30hb2680gwfqsvwgiaszkzv4")))) + "0lwl22vq770jyp45j32s0ss8yiqdwbink6cdhkbapg3pzbiwklyk")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -2426,7 +2456,7 @@ notifications which can be embedded in your application.") (define-public kparts (package (name "kparts") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2435,7 +2465,7 @@ notifications which can be embedded in your application.") name "-" version ".tar.xz")) (sha256 (base32 - "0hrx0mdvw301nbdyw5fkvgkw60ya6kmfw6hfzmj48bws8mi33rs5")))) + "1a5n0f7ljdc2bm6vggzwbvpblyxjqn9m9pam70iab964pqqalgp7")))) (build-system cmake-build-system) (propagated-inputs `(("kio" ,kio) @@ -2477,7 +2507,7 @@ widgets with a user-interface defined in terms of actions.") (define-public kpeople (package (name "kpeople") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2486,7 +2516,7 @@ widgets with a user-interface defined in terms of actions.") name "-" version ".tar.xz")) (sha256 (base32 - "1xqi8zr76hajgyv016iaqlmnr5b84s71fbx412q153g92jglp4mk")))) + "0krm74dl80s48nhiygga4dvkvqqimxdx4nczbk4qvj7j1g9p2rsh")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -2520,7 +2550,7 @@ to easily extend the contacts collection.") (define-public krunner (package (name "krunner") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2529,7 +2559,7 @@ to easily extend the contacts collection.") name "-" version ".tar.xz")) (sha256 (base32 - "1k4rg9vqr6h5aj7v51fx3i5z9kxlfpacahs81hkwksi6if8ik4kr")))) + "0n527p708k719zgmvvbmp20xmg72f85cll05q05p4h317g7wz6i5")))) (build-system cmake-build-system) (propagated-inputs `(("plasma-framework" ,plasma-framework))) @@ -2575,7 +2605,7 @@ typed.") (define-public kservice (package (name "kservice") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2584,7 +2614,7 @@ typed.") name "-" version ".tar.xz")) (sha256 (base32 - "02xk3ajspprmx964zhwh2l3axm4gns9h0m0pvcb1v5j8pfh9v70q")))) + "0sikwn49s2iq1nj518q55m2p0hvdvwm98cpf0dkjb1z1v6fgjc37")))) (build-system cmake-build-system) (propagated-inputs `(("kconfig" ,kconfig) @@ -2620,7 +2650,7 @@ types or handled by application specific code.") (define-public ktexteditor (package (name "ktexteditor") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2629,7 +2659,7 @@ types or handled by application specific code.") name "-" version ".tar.xz")) (sha256 (base32 - "1sybw8k3f36mcs5qh3b51v7ynbqn4pbiiabkyxfmyi82i09m2jgw")))) + "182a0swfgdqr0faq3ksk6hlfvdi1afd0hpys5vayjjf263m19xxw")))) (build-system cmake-build-system) (propagated-inputs `(("kparts" ,kparts))) @@ -2688,7 +2718,7 @@ library.") (define-public ktextwidgets (package (name "ktextwidgets") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2697,7 +2727,7 @@ library.") name "-" version ".tar.xz")) (sha256 (base32 - "1s2fd4n4hfkzscxv0cdfjynjzi1f57pfi9a3fp6rrm5c5645zk7r")))) + "1hri34b373bww5gv14qli2nm77k05pk170nbb2vv2zvzv93g25gw")))) (build-system cmake-build-system) (propagated-inputs `(("ki18n" ,ki18n) @@ -2734,7 +2764,7 @@ It supports rich text as well as plain text.") (define-public kwallet (package (name "kwallet") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2743,7 +2773,7 @@ It supports rich text as well as plain text.") name "-" version ".tar.xz")) (sha256 (base32 - "0psc4n6lck9gbx2nn7mgv33x4z2r0xp1mx1xcsgy8smvalrfv5xa")))) + "08z3ddsam5n5qn2svscp4hgksf6qd1h8lqw1v382p01nnmhxadz5")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -2775,7 +2805,7 @@ the passwords on KDE work spaces.") (define-public kxmlgui (package (name "kxmlgui") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2784,7 +2814,7 @@ the passwords on KDE work spaces.") name "-" version ".tar.xz")) (sha256 (base32 - "1pxi4z7z3bzwcnfwq0pvjsmds401fkisyr353lyxf4rvcpwj3a65")))) + "1v8m6qzjqg3ic14a5ki37bf13kifzcbhly68zcxgs5b92hr953iy")))) (build-system cmake-build-system) (propagated-inputs `(("kconfig" ,kconfig) @@ -2827,7 +2857,7 @@ descriptions for integrating actions from plugins.") (define-public kxmlrpcclient (package (name "kxmlrpcclient") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2836,7 +2866,7 @@ descriptions for integrating actions from plugins.") name "-" version ".tar.xz")) (sha256 (base32 - "1kaczibdfdph5mpg1dldsmqb1six57w7ch3v0v7av5h6j6sx0xaq")))) + "0kp3ab50m5jl2jgw883ip67s6gs0l3saprzrqa9r3hydn2c4s3md")))) (build-system cmake-build-system) (propagated-inputs `(("kio" ,kio))) @@ -2870,7 +2900,7 @@ setUrl, setUserAgent and call.") (define-public plasma-framework (package (name "plasma-framework") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2879,7 +2909,7 @@ setUrl, setUserAgent and call.") name "-" version ".tar.xz")) (sha256 (base32 - "1hrnmilc30d1kh20cky329i5ji3qyy7m4f8jzax5cgl7nrjca31h")))) + "0waicqskfwc8xpmrym165hwlfv6nzbwc783sac5vrhbyk4bwk8x9")))) (build-system cmake-build-system) (propagated-inputs `(("kpackage" ,kpackage) diff --git a/gnu/packages/patches/networkmanager-qt-activeconnection-test-1.patch b/gnu/packages/patches/networkmanager-qt-activeconnection-test-1.patch deleted file mode 100644 index 2dd39294ea..0000000000 --- a/gnu/packages/patches/networkmanager-qt-activeconnection-test-1.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 61337983ba74361938b7d5323de5d2819a235fdc Mon Sep 17 00:00:00 2001 -From: Jan Grulich -Date: Mon, 3 Apr 2017 12:53:12 +0200 -Subject: Fix unit test for active connections - -Instead of sending PropertiesChanged signal for an active connection we -added recently we should set all properties initially and just advertise -that we have a new active connection once everything is set ---- - src/fakenetwork/fakenetwork.cpp | 26 +++++++------------------- - 1 file changed, 7 insertions(+), 19 deletions(-) - -diff --git a/src/fakenetwork/fakenetwork.cpp b/src/fakenetwork/fakenetwork.cpp -index bc1144e..261fe8e 100644 ---- a/src/fakenetwork/fakenetwork.cpp -+++ b/src/fakenetwork/fakenetwork.cpp -@@ -215,8 +215,14 @@ void FakeNetwork::unregisterService() - - QDBusObjectPath FakeNetwork::ActivateConnection(const QDBusObjectPath &connection, const QDBusObjectPath &device, const QDBusObjectPath &specific_object) - { -- ActiveConnection *newActiveConnection = new ActiveConnection(this); - QString newActiveConnectionPath = QString("/org/kde/fakenetwork/ActiveConnection/") + QString::number(m_activeConnectionsCounter++); -+ ActiveConnection *newActiveConnection = new ActiveConnection(this); -+ newActiveConnection->addDevice(device); -+ newActiveConnection->setActiveConnectionPath(newActiveConnectionPath); -+ newActiveConnection->setConnection(connection); -+ newActiveConnection->setSpecificObject(specific_object); -+ newActiveConnection->setState(NetworkManager::ActiveConnection::Activating); -+ - m_activeConnections.insert(QDBusObjectPath(newActiveConnectionPath), newActiveConnection); - QDBusConnection::sessionBus().registerObject(newActiveConnectionPath, newActiveConnection, QDBusConnection::ExportScriptableContents); - -@@ -227,24 +233,6 @@ QDBusObjectPath FakeNetwork::ActivateConnection(const QDBusObjectPath &connectio - map.insert(QLatin1Literal("ActivatingConnection"), QVariant::fromValue(QDBusObjectPath(newActiveConnectionPath))); - Q_EMIT PropertiesChanged(map); - -- newActiveConnection->addDevice(device); -- newActiveConnection->setActiveConnectionPath(newActiveConnectionPath); -- newActiveConnection->setConnection(connection); -- newActiveConnection->setSpecificObject(specific_object); -- newActiveConnection->setState(NetworkManager::ActiveConnection::Activating); -- -- map.clear(); -- const QList deviceList { device }; -- map.insert(QLatin1Literal("Devices"), QVariant::fromValue >(deviceList)); -- map.insert(QLatin1Literal("Connection"), QVariant::fromValue(connection)); -- if (!specific_object.path().isEmpty()) { -- map.insert(QLatin1Literal("SpecificObject"), QVariant::fromValue(connection)); -- } -- map.insert(QLatin1Literal("State"), NetworkManager::ActiveConnection::Activating); -- QDBusMessage message = QDBusMessage::createSignal(newActiveConnectionPath, QLatin1Literal("org.kde.fakenetwork.Connection.Active"), QLatin1Literal("PropertiesChanged")); -- message << map; -- QDBusConnection::sessionBus().send(message); -- - Device *usedDevice = static_cast(QDBusConnection::sessionBus().objectRegisteredAt(device.path())); - if (usedDevice) { - m_activatedDevice = usedDevice->devicePath(); --- -cgit v0.11.2 - diff --git a/gnu/packages/patches/networkmanager-qt-activeconnection-test-2.patch b/gnu/packages/patches/networkmanager-qt-activeconnection-test-2.patch deleted file mode 100644 index af3cdff729..0000000000 --- a/gnu/packages/patches/networkmanager-qt-activeconnection-test-2.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 3f6155389abc8e2b3dafc5eefa1ce0c929b007fa Mon Sep 17 00:00:00 2001 -From: Jan Grulich -Date: Mon, 3 Apr 2017 14:13:54 +0200 -Subject: One more attempt to fix unit test for active connections - ---- - src/activeconnection.cpp | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/src/activeconnection.cpp b/src/activeconnection.cpp -index 05582fa..3a8e6b2 100644 ---- a/src/activeconnection.cpp -+++ b/src/activeconnection.cpp -@@ -79,11 +79,13 @@ NetworkManager::ActiveConnection::ActiveConnection(const QString &path, QObject - connect(&d->iface, &OrgFreedesktopNetworkManagerConnectionActiveInterface::PropertiesChanged, d, &ActiveConnectionPrivate::propertiesChanged); - #endif - -+#ifndef NMQT_STATIC - /* - * Workaround: Re-check connection state before we watch changes in case it gets changed too quickly - * BUG:352326 - */ - d->recheckProperties(); -+#endif - } - - NetworkManager::ActiveConnection::ActiveConnection(ActiveConnectionPrivate &dd, QObject *parent) -@@ -91,18 +93,26 @@ NetworkManager::ActiveConnection::ActiveConnection(ActiveConnectionPrivate &dd, - { - Q_D(ActiveConnection); - -+#ifndef NMQT_STATIC - #if NM_CHECK_VERSION(1, 4, 0) - QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->path, NetworkManagerPrivate::FDO_DBUS_PROPERTIES, - QLatin1String("PropertiesChanged"), d, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList))); - #else - connect(&d->iface, &OrgFreedesktopNetworkManagerConnectionActiveInterface::PropertiesChanged, d, &ActiveConnectionPrivate::propertiesChanged); - #endif -+#endif -+ -+#ifdef NMQT_STATIC -+ connect(&d->iface, &OrgFreedesktopNetworkManagerConnectionActiveInterface::PropertiesChanged, d, &ActiveConnectionPrivate::propertiesChanged); -+#endif - -+#ifndef NMQT_STATIC - /* - * Workaround: Re-check connection state before we watch changes in case it gets changed too quickly - * BUG:352326 - */ - d->recheckProperties(); -+#endif - } - - NetworkManager::ActiveConnection::~ActiveConnection() --- -cgit v0.11.2 - -- cgit 1.4.1 From 9b22c4dd5e7ced57c26897b97c9b853cca3eb042 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 15 May 2017 19:49:41 +0200 Subject: gnu: ffmpeg: Update to 3.3.1. * gnu/packages/video.scm (ffmpeg): Update to 3.3.1. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index dde4041449..f9e8b898c9 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -458,14 +458,14 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") (define-public ffmpeg (package (name "ffmpeg") - (version "3.3") + (version "3.3.1") (source (origin (method url-fetch) (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" version ".tar.xz")) (sha256 (base32 - "17anx7rnbi63if1ndr61836lf76dpn47n0y424hc48bj05y7z7jr")))) + "0bwgm6z6k3khb91qh9xv15inykkfchpkm0lcdckkxhkacpyaf0mp")))) (build-system gnu-build-system) (inputs `(("fontconfig" ,fontconfig) -- cgit 1.4.1 From 9fdda0b2f83e7be1a0e1349b12d212805b7a8a97 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 15 May 2017 15:36:51 +0200 Subject: gnu: librecad: Use modular Qt. * gnu/packages/engineering.scm (librecad)[inputs]: Remove "qt", add "qtbase" and "qtsvg". --- gnu/packages/engineering.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 362860e17d..7ad93653e9 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -108,7 +108,8 @@ `(("boost" ,boost) ("muparser" ,muparser) ("freetype" ,freetype) - ("qt" ,qt))) + ("qtbase" ,qtbase) + ("qtsvg" ,qtsvg))) (native-inputs `(("pkg-config" ,pkg-config) ("which" ,which))) -- cgit 1.4.1 From 504c285d1092c9b7a2ef25c7a436da02bef70dc2 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Wed, 15 Mar 2017 21:05:20 +0100 Subject: gnu: Add dcmtk. * gnu/packages/image-processing.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. Co-authored-by: Ricardo Wurmus --- gnu/local.mk | 1 + gnu/packages/image-processing.scm | 65 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 gnu/packages/image-processing.scm (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index be818604f7..067f6b0593 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -194,6 +194,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/idris.scm \ %D%/packages/idutils.scm \ %D%/packages/image.scm \ + %D%/packages/image-processing.scm \ %D%/packages/image-viewers.scm \ %D%/packages/imagemagick.scm \ %D%/packages/indent.scm \ diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm new file mode 100644 index 0000000000..21ee52e7fb --- /dev/null +++ b/gnu/packages/image-processing.scm @@ -0,0 +1,65 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 John Darrington +;;; Copyright © 2017 Ricardo Wurmus +;;; +;;; 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 . + +(define-module (gnu packages image-processing) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages) + #:use-module (gnu packages compression) + #:use-module (gnu packages documentation) + #:use-module (gnu packages image) + #:use-module (gnu packages perl)) + +;; We use the latest snapshot of this package because the latest release is +;; from 2011 and has known vulnerabilities that cannot easily be fixed by +;; applying patches. +(define-public dcmtk + (package + (name "dcmtk") + (version "3.6.1_20170228") + (source (origin + (method url-fetch) + (uri (string-append "ftp://dicom.offis.de/pub/dicom/offis/" + "software/dcmtk/snapshot/dcmtk-" + version ".tar.gz")) + (sha256 + (base32 + "04cwfx8yrscqcd59mxk2fh6314ckayi9cp68iql5a57pf2pg5qld")))) + (build-system gnu-build-system) + (inputs + `(("libtiff" ,libtiff) + ("libpng" ,libpng) + ("doxygen" ,doxygen) + ("zlib" ,zlib))) + (native-inputs + `(("perl" ,perl))) + (home-page "http://dcmtk.org") + (synopsis "Libraries and programs implementing parts of the DICOM standard") + (description "DCMTK is a collection of libraries and applications +implementing large parts the DICOM standard. It includes software for +examining, constructing and converting DICOM image files, handling offline +media, sending and receiving images over a network connection, as well as +demonstrative image storage and worklist servers.") + (license (license:fsf-free + "file://COPYRIGHT" + "A union of the Apache 2.0 licence and various non-copyleft +licences similar to the Modified BSD licence.")))) -- cgit 1.4.1 From 751f8582b5051c57a1c23b438d6a295902828fcf Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 15 May 2017 16:01:20 +0200 Subject: gnu: Add http-parser. * gnu/packages/web.scm (http-parser): New variable. --- gnu/packages/web.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index efaa1b5742..bcc20bfdde 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -4552,3 +4552,35 @@ into your tests. It automatically starts up a HTTP server in a separate thread (define-public python2-pytest-httpbin (package-with-python2 python-pytest-httpbin)) + +(define-public http-parser + (package + (name "http-parser") + (version "2.7.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/nodejs/http-parser/" + "archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1cw6nf8xy4jhib1w0jd2y0gpqjbdasg8b7pkl2k2vpp54k9rlh3h")))) + (build-system gnu-build-system) + (arguments + `(#:test-target "test" + #:make-flags + (list (string-append "PREFIX=" + (assoc-ref %outputs "out")) + "CC=gcc" "library") + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (home-page "https://github.com/nodejs/http-parser") + (synopsis "HTTP request/response parser for C") + (description "This is a parser for HTTP messages written in C. It parses +both requests and responses. The parser is designed to be used in +high-performance HTTP applications. It does not make any syscalls nor +allocations, it does not buffer data, it can be interrupted at anytime. +Depending on your architecture, it only requires about 40 bytes of data per +message stream (in a web server that is per connection).") + (license l:expat))) -- cgit 1.4.1 From dbe874dcbf349b1629a7222db3d7c14241ad5606 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 15 May 2017 16:01:21 +0200 Subject: gnu: Add ding-libs. * gnu/packages/sssd.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. --- gnu/local.mk | 1 + gnu/packages/sssd.scm | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 gnu/packages/sssd.scm (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index 067f6b0593..f6e911b61a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -357,6 +357,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/speech.scm \ %D%/packages/spice.scm \ %D%/packages/ssh.scm \ + %D%/packages/sssd.scm \ %D%/packages/stalonetray.scm \ %D%/packages/statistics.scm \ %D%/packages/storage.scm \ diff --git a/gnu/packages/sssd.scm b/gnu/packages/sssd.scm new file mode 100644 index 0000000000..bf16e6b002 --- /dev/null +++ b/gnu/packages/sssd.scm @@ -0,0 +1,51 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016, 2017 Ricardo Wurmus +;;; +;;; 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 . + +(define-module (gnu packages sssd) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system gnu) + #:use-module (gnu packages)) + +(define-public ding-libs + (package + (name "ding-libs") + (version "0.6.0") + (source (origin + (method url-fetch) + (uri (string-append "https://releases.pagure.org/SSSD/ding-libs/" + "ding-libs-" version ".tar.gz")) + (sha256 + (base32 + "1bczkvq7cblp75kqn6r2d7j5x7brfw6wxirzc6d2rkyb80gj2jkn")))) + (build-system gnu-build-system) + (home-page "https://pagure.io/SSSD/ding-libs/") + (synopsis "Libraries for SSSD") + (description + "DING-LIBS (DING Is Not Glib) are a set of small, useful libraries that +the @dfn{System Security Services Daemon} (SSSD) uses and makes available to +other projects. They include: libdhash, an implementation of a dynamic hash +table which will dynamically resize to achieve optimal storage and access time +properties; ini_config, a library for parsing and managing @code{INI} files; +path_utils, a library to manage UNIX paths and subsets of paths; collection, a +generic, hierarchical grouping mechanism for complex data sets; ref_array, a +dynamically-growing, reference-counted array; libbasicobjects, a set of +fundamental object types for C.") + (license license:lgpl3+))) -- cgit 1.4.1 From 7fe4e556c03289753b1594e257446fb0306c44b7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 15 May 2017 16:01:22 +0200 Subject: gnu: Add sssd. * gnu/packages/sssd.scm (sssd): New variable. --- gnu/packages/sssd.scm | 124 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 123 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/packages/sssd.scm b/gnu/packages/sssd.scm index bf16e6b002..26d034790c 100644 --- a/gnu/packages/sssd.scm +++ b/gnu/packages/sssd.scm @@ -22,7 +22,31 @@ #:use-module (guix download) #:use-module (guix utils) #:use-module (guix build-system gnu) - #:use-module (gnu packages)) + #:use-module (gnu packages) + #:use-module (gnu packages) + #:use-module (gnu packages adns) + #:use-module (gnu packages augeas) + #:use-module (gnu packages check) + #:use-module (gnu packages curl) + #:use-module (gnu packages cyrus-sasl) + #:use-module (gnu packages databases) + #:use-module (gnu packages dns) + #:use-module (gnu packages docbook) + #:use-module (gnu packages documentation) + #:use-module (gnu packages glib) + #:use-module (gnu packages gnuzilla) + #:use-module (gnu packages libunistring) + #:use-module (gnu packages linux) + #:use-module (gnu packages kerberos) + #:use-module (gnu packages openldap) + #:use-module (gnu packages tls) + #:use-module (gnu packages pcre) + #:use-module (gnu packages popt) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages samba) + #:use-module (gnu packages selinux) + #:use-module (gnu packages web) + #:use-module (gnu packages xml)) (define-public ding-libs (package @@ -49,3 +73,101 @@ generic, hierarchical grouping mechanism for complex data sets; ref_array, a dynamically-growing, reference-counted array; libbasicobjects, a set of fundamental object types for C.") (license license:lgpl3+))) + +;; Note: This package installs modules for ldb and nss. For the former we +;; need to set LDB_MODULES_PATH. For the latter LD_PRELOAD or LD_LIBRARY_PATH +;; is needed. +(define-public sssd + (package + (name "sssd") + (version "1.15.2") + (source (origin + (method url-fetch) + (uri (string-append "http://releases.pagure.org/SSSD/sssd/" + "sssd-" version ".tar.gz")) + (sha256 + (base32 + "0r6j28f7vjb1aw65gkw4nz2l3jy605h7wsr1k815hynp2jrzrmac")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags + (list (string-append "DOCBOOK_XSLT=" + (assoc-ref %build-inputs "docbook-xsl") + "/xml/xsl/docbook-xsl-" + ,(package-version docbook-xsl) + "/manpages/docbook.xsl") + ;; Remove "--postvalid" option, because that requires access to + ;; online DTDs. + "XMLLINT_FLAGS = --catalogs --nonet --noent --xinclude --noout") + #:configure-flags + (list "--disable-cifs-idmap-plugin" + "--without-nfsv4-idmapd-plugin" + "--without-python2-bindings" + "--without-python3-bindings" + (string-append "--with-plugin-path=" + (assoc-ref %outputs "out") + "/lib/sssd") + (string-append "--with-krb5-plugin-path=" + (assoc-ref %outputs "out") + "/lib/krb5/plugins/libkrb5") + (string-append "--with-cifs-plugin-path=" + (assoc-ref %outputs "out") + "/lib/cifs-utils") + (string-append "--with-init-dir=" + (assoc-ref %outputs "out") + "/etc/init.d") + (string-append "--with-ldb-lib-dir=" + (assoc-ref %outputs "out") + "/lib/ldb/modules/ldb") + (string-append "--with-xml-catalog-path=" + (assoc-ref %build-inputs "docbook-xml") + "/xml/dtd/docbook/catalog.xml")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'disable-failing-test + (lambda _ + (substitute* "src/tests/responder_socket_access-tests.c" + (("tcase_add_test\\(tc_utils, resp_str_to_array_test\\);") "")) + #t))))) + (inputs + `(("augeas" ,augeas) + ("bind" ,bind "utils") + ("c-ares" ,c-ares) + ("curl" ,curl) + ("cyrus-sasl" ,cyrus-sasl) + ("dbus" ,dbus) + ("ding-libs" ,ding-libs) + ("glib" ,glib) + ("gnutls" ,gnutls) + ("http-parser" ,http-parser) + ("jansson" ,jansson) + ("ldb" ,ldb) + ("libselinux" ,libselinux) + ("libsemanage" ,libsemanage) + ("libunistring" ,libunistring) + ("linux-pam" ,linux-pam) + ("mit-krb5" ,mit-krb5) + ("nss" ,nss) + ("openldap" ,openldap) + ("openssl" ,openssl) + ("pcre" ,pcre) + ("popt" ,popt) + ("samba" ,samba) + ("talloc" ,talloc) + ("tdb" ,tdb) + ("tevent" ,tevent))) + (native-inputs + `(("check" ,check) + ("docbook-xsl" ,docbook-xsl) + ("docbook-xml" ,docbook-xml) + ("libxslt" ,libxslt) + ("pkg-config" ,pkg-config))) + (home-page "https://pagure.io/SSSD/sssd/") + (synopsis "System security services daemon") + (description "SSSD is a system daemon. Its primary function is to provide +access to identity and authentication remote resource through a common +framework that can provide caching and offline support to the system. It +provides PAM and NSS modules, and in the future will D-BUS based interfaces +for extended user information. It also provides a better database to store +local users as well as extended user data.") + (license license:gpl3+))) -- cgit 1.4.1 From cdb2a21160a195f63c33955d8b9b9034e11dae46 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Wed, 15 Mar 2017 21:05:23 +0100 Subject: gnu: Add mia. * gnu/packages/image-processing.scm (mia): New variable. Co-authored-by: Ricardo Wurmus --- gnu/packages/image-processing.scm | 67 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index 21ee52e7fb..1753b926c6 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -22,12 +22,23 @@ #:use-module (guix packages) #:use-module (guix utils) #:use-module (guix download) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (gnu packages) + #:use-module (gnu packages algebra) + #:use-module (gnu packages boost) #:use-module (gnu packages compression) #:use-module (gnu packages documentation) + #:use-module (gnu packages gnome) + #:use-module (gnu packages graphics) + #:use-module (gnu packages graphviz) #:use-module (gnu packages image) - #:use-module (gnu packages perl)) + #:use-module (gnu packages maths) + #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages xml) + #:use-module (gnu packages vtk)) ;; We use the latest snapshot of this package because the latest release is ;; from 2011 and has known vulnerabilities that cannot easily be fixed by @@ -63,3 +74,57 @@ demonstrative image storage and worklist servers.") "file://COPYRIGHT" "A union of the Apache 2.0 licence and various non-copyleft licences similar to the Modified BSD licence.")))) + +(define-public mia + (package + (name "mia") + (version "2.4.4") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/mia/mia/" + (version-major+minor version) + "/mia-" version ".tar.xz")) + (sha256 + (base32 + "124gvf8nkls59mlnx8ynq00n9zrah7a54gsywafx7qmfr0y95ra7")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags + (list "-DMIA_CREATE_NIPYPE_INTERFACES=0" + (string-append "-DCMAKE_INSTALL_LIBDIR=" + (assoc-ref %outputs "out") "/lib") + "-DCMAKE_CXX_FLAGS=-fpermissive"))) + (inputs + `(("boost" ,boost) + ("dcmtk" ,dcmtk) + ("doxygen" ,doxygen) + ("eigen" ,eigen) + ("fftw" ,fftw) + ("fftwf" ,fftwf) + ("gsl" ,gsl) + ("gts" ,gts) + ("hdf5" ,hdf5) + ("itpp" ,itpp) + ("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("libtiff" ,libtiff) + ("libxml" ,libxml2) + ("libxml++" ,libxml++) + ("maxflow" ,maxflow) + ("niftilib" ,niftilib) + ("nlopt" ,nlopt) + ("openexr" ,openexr) + ("python-lxml" ,python2-lxml) + ("vtk" ,vtk))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("python" ,python-2))) + (home-page "http://mia.sourceforge.net") + (synopsis "Toolkit for gray scale medical image analysis") + (description "MIA provides a combination of command line tools, plug-ins, +and libraries that make it possible run image processing tasks interactively +in a command shell and to prototype using the shell's scripting language. It +is built around a plug-in structure that makes it easy to add functionality +without compromising the original code base and it makes use of a wide variety +of external libraries that provide additional functionality.") + (license license:gpl3+))) -- cgit 1.4.1 From 90e65abe426828d2077b1ae935f9c2d4075c4d5c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 7 Mar 2017 19:51:50 +0100 Subject: gnu: Add java-mockito-1. * gnu/packages/java.scm (java-mockito): New variable. --- gnu/packages/java.scm | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 13e261438d..900dbc8a5c 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1975,6 +1975,68 @@ logging implementations. A library that uses the commons-logging API can be used with any logging implementation at runtime.") (license license:asl2.0))) +;; This is the last release of the 1.x series. +(define-public java-mockito-1 + (package + (name "java-mockito") + (version "1.10.19") + (source (origin + (method url-fetch) + (uri (string-append "http://repo1.maven.org/maven2/" + "org/mockito/mockito-core/" version + "/mockito-core-" version "-sources.jar")) + (sha256 + (base32 + "0vmiwnwpf83g2q7kj1rislmja8fpvqkixjhawh7nxnygx6pq11kc")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "mockito.jar" + #:tests? #f ; no tests included + ;; FIXME: patch-and-repack does not support jars, so we have to apply + ;; patches in build phases. + #:phases + (modify-phases %standard-phases + ;; Mockito was developed against a different version of hamcrest, + ;; which does not require matcher implementations to provide an + ;; implementation of the "describeMismatch" method. We add this + ;; simple definition to pass the build with our version of hamcrest. + (add-after 'unpack 'fix-hamcrest-build-error + (lambda _ + (substitute* "src/org/mockito/internal/matchers/LocalizedMatcher.java" + (("public Matcher getActualMatcher\\(\\) .*" line) + (string-append " + public void describeMismatch(Object item, Description description) { + actualMatcher.describeMismatch(item, description); + }" + line))) + #t)) + ;; Mockito bundles cglib. We have a cglib package, so let's use + ;; that instead. + (add-after 'unpack 'use-system-libraries + (lambda _ + (with-directory-excursion "src/org/mockito/internal/creation/cglib" + (substitute* '("CGLIBHacker.java" + "CglibMockMaker.java" + "ClassImposterizer.java" + "DelegatingMockitoMethodProxy.java" + "MethodInterceptorFilter.java" + "MockitoNamingPolicy.java" + "SerializableMockitoMethodProxy.java" + "SerializableNoOp.java") + (("import org.mockito.cglib") "import net.sf.cglib"))) + #t))))) + (inputs + `(("java-junit" ,java-junit) + ("java-objenesis" ,java-objenesis) + ("java-cglib" ,java-cglib) + ("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "http://mockito.org") + (synopsis "Mockito is a mock library for Java") + (description "Mockito is a mocking library for Java which lets you write +tests with a clean and simple API. It generates mocks using reflection, and +it records all mock invocations, including methods arguments.") + (license license:asl2.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From 4f4d2e470ddd72d0a96c4b5a40d9874ee9256a2e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 7 Mar 2017 19:52:23 +0100 Subject: gnu: Add java-httpcomponents-httpcore. * gnu/packages/java.scm (java-httpcomponents-httpcore): New variable. --- gnu/packages/java.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 900dbc8a5c..ee7d7d4af2 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2037,6 +2037,42 @@ tests with a clean and simple API. It generates mocks using reflection, and it records all mock invocations, including methods arguments.") (license license:asl2.0))) +(define-public java-httpcomponents-httpcore + (package + (name "java-httpcomponents-httpcore") + (version "4.4.6") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache//httpcomponents/httpcore/" + "source/httpcomponents-core-" + version "-src.tar.gz")) + (sha256 + (base32 + "02bwcf38y4vgwq7kj2s6q7qrmma641r5lacivm16kgxvb2j6h1vy")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "httpcomponents-httpcore.jar" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "httpcore") #t))))) + (inputs + `(("java-commons-logging-minimal" ,java-commons-logging-minimal) + ("java-commons-lang3" ,java-commons-lang3))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-mockito" ,java-mockito-1))) + (home-page "https://hc.apache.org/httpcomponents-core-4.4.x/index.html") + (synopsis "Low level HTTP transport components") + (description "HttpCore is a set of low level HTTP transport components +that can be used to build custom client and server side HTTP services with a +minimal footprint. HttpCore supports two I/O models: blocking I/O model based +on the classic Java I/O and non-blocking, event driven I/O model based on Java +NIO. + +This package provides the blocking I/O model library.") + (license license:asl2.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From 3a068b4307a24015254d2ea8e99d9b677ae8fb75 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 7 Mar 2017 19:52:40 +0100 Subject: gnu: Add java-httpcomponents-httpcore-nio. * gnu/packages/java.scm (java-httpcomponents-httpcore-nio): New variable. --- gnu/packages/java.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index ee7d7d4af2..032f58a587 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2073,6 +2073,28 @@ NIO. This package provides the blocking I/O model library.") (license license:asl2.0))) +(define-public java-httpcomponents-httpcore-nio + (package (inherit java-httpcomponents-httpcore) + (name "java-httpcomponents-httpcore-nio") + (arguments + `(#:jar-name "httpcomponents-httpcore-nio.jar" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "httpcore-nio") #t))))) + (inputs + `(("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore) + ("java-hamcrest-core" ,java-hamcrest-core) + ,@(package-inputs java-httpcomponents-httpcore))) + (description "HttpCore is a set of low level HTTP transport components +that can be used to build custom client and server side HTTP services with a +minimal footprint. HttpCore supports two I/O models: blocking I/O model based +on the classic Java I/O and non-blocking, event driven I/O model based on Java +NIO. + +This package provides the non-blocking I/O model library based on Java +NIO."))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From e1dd78f68a8e0f29c416b5b7b1bbe5dc2cd610fb Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 7 Mar 2017 19:53:01 +0100 Subject: gnu: Add java-httpcomponents-httpcore-ab. * gnu/packages/java.scm (java-httpcomponents-httpcore-ab): New variable. --- gnu/packages/java.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 032f58a587..4716759860 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2095,6 +2095,24 @@ NIO. This package provides the non-blocking I/O model library based on Java NIO."))) +(define-public java-httpcomponents-httpcore-ab + (package (inherit java-httpcomponents-httpcore) + (name "java-httpcomponents-httpcore-ab") + (arguments + `(#:jar-name "httpcomponents-httpcore-ab.jar" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "httpcore-ab") #t))))) + (inputs + `(("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore) + ("java-commons-cli" ,java-commons-cli) + ("java-hamcrest-core" ,java-hamcrest-core) + ,@(package-inputs java-httpcomponents-httpcore))) + (synopsis "Apache HttpCore benchmarking tool") + (description "This package provides the HttpCore benchmarking tool. It is +an Apache AB clone based on HttpCore."))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From 14a671d8f9e628e06b40356b9a505df94eb89154 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 7 Mar 2017 19:53:40 +0100 Subject: gnu: Add java-httpcomponents-httpclient. * gnu/packages/java.scm (java-httpcomponents-httpclient): New variable. --- gnu/packages/java.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 4716759860..b3c1cb9814 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2113,6 +2113,42 @@ NIO."))) (description "This package provides the HttpCore benchmarking tool. It is an Apache AB clone based on HttpCore."))) +(define-public java-httpcomponents-httpclient + (package + (name "java-httpcomponents-httpclient") + (version "4.5.3") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/httpcomponents/httpclient/" + "source/httpcomponents-client-" + version "-src.tar.gz")) + (sha256 + (base32 + "1428399s7qy3cim5wc6f3ks4gl9nf9vkjpfmnlap3jflif7g2pj1")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "httpcomponents-httpclient.jar" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "httpclient") #t))))) + (inputs + `(("java-commons-logging-minimal" ,java-commons-logging-minimal) + ("java-commons-codec" ,java-commons-codec) + ("java-hamcrest-core" ,java-hamcrest-core) + ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore) + ("java-mockito" ,java-mockito-1) + ("java-junit" ,java-junit))) + (home-page "https://hc.apache.org/httpcomponents-client-ga/") + (synopsis "HTTP client library for Java") + (description "Although the @code{java.net} package provides basic +functionality for accessing resources via HTTP, it doesn't provide the full +flexibility or functionality needed by many applications. @code{HttpClient} +seeks to fill this void by providing an efficient, up-to-date, and +feature-rich package implementing the client side of the most recent HTTP +standards and recommendations.") + (license license:asl2.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From cbce5de26581f61d05f90740d8478f070762d591 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 7 Mar 2017 19:53:58 +0100 Subject: gnu: Add java-httpcomponents-httpmime. * gnu/packages/java.scm (java-httpcomponents-httpmime): New variable. --- gnu/packages/java.scm | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index b3c1cb9814..6b36bc6f5e 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2149,6 +2149,21 @@ feature-rich package implementing the client side of the most recent HTTP standards and recommendations.") (license license:asl2.0))) +(define-public java-httpcomponents-httpmime + (package (inherit java-httpcomponents-httpclient) + (name "java-httpcomponents-httpmime") + (arguments + `(#:jar-name "httpcomponents-httpmime.jar" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "httpmime") #t))))) + (inputs + `(("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient) + ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore) + ("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From 4b34c21ff09fe030a2143d9410b5bf81f0978182 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 7 Mar 2017 19:54:46 +0100 Subject: gnu: Add java-commons-net. * gnu/packages/java.scm (java-commons-net): New variable. --- gnu/packages/java.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 6b36bc6f5e..b05c3cca87 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2164,6 +2164,34 @@ standards and recommendations.") ("java-junit" ,java-junit) ("java-hamcrest-core" ,java-hamcrest-core))))) +(define-public java-commons-net + (package + (name "java-commons-net") + (version "3.6") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/net/source/" + "commons-net-" version "-src.tar.gz")) + (sha256 + (base32 + "0n0cmnddk9qdqhjvka8pc6hd9mn2qi3166f1s6xk32h7rfy1adxr")))) + (build-system ant-build-system) + (arguments + `(;; FIXME: MainTest.java tries to read "examples.properties" (which + ;; should be "resources/examples/examples.properties"), but gets "null" + ;; instead. + #:tests? #f + #:jar-name "commons-net.jar")) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "http://commons.apache.org/net/") + (synopsis "Client library for many basic Internet protocols") + (description "The Apache Commons Net library implements the client side of +many basic Internet protocols. The purpose of the library is to provide +fundamental protocol access, not higher-level abstractions.") + (license license:asl2.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From 808cb58f86700ec5d6fa9652e01e7f520e3f31bb Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 7 Mar 2017 19:55:03 +0100 Subject: gnu: Add java-jsch. * gnu/packages/java.scm (java-jsch): New variable. --- gnu/packages/java.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index b05c3cca87..39c02e0066 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2192,6 +2192,34 @@ many basic Internet protocols. The purpose of the library is to provide fundamental protocol access, not higher-level abstractions.") (license license:asl2.0))) +(define-public java-jsch + (package + (name "java-jsch") + (version "0.1.54") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/jsch/jsch/" + version "/jsch-" version ".zip")) + (sha256 + (base32 + "029rdddyq1mh3ghryh3ki99kba1xkf1d1swjv2vi6lk6zzjy2wdb")))) + (build-system ant-build-system) + (arguments + `(#:build-target "dist" + #:tests? #f ; no tests included + #:phases + (modify-phases %standard-phases + (replace 'install (install-jars "dist"))))) + (native-inputs + `(("unzip" ,unzip))) + (home-page "http://www.jcraft.com/jsch/") + (synopsis "Pure Java implementation of SSH2") + (description "JSch is a pure Java implementation of SSH2. JSch allows you +to connect to an SSH server and use port forwarding, X11 forwarding, file +transfer, etc., and you can integrate its functionality into your own Java +programs.") + (license license:bsd-3))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From a62446987ebc6ae9a19bd9aa28b7625902864438 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 7 Mar 2017 19:57:01 +0100 Subject: gnu: Add java-commons-compress. * gnu/packages/java.scm (java-commons-compress): New variable. --- gnu/packages/java.scm | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 39c02e0066..127f4521ad 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2220,6 +2220,50 @@ transfer, etc., and you can integrate its functionality into your own Java programs.") (license license:bsd-3))) +(define-public java-commons-compress + (package + (name "java-commons-compress") + (version "1.13") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/compress/source/" + "commons-compress-" version "-src.tar.gz")) + (sha256 + (base32 + "1vjqvavrn0babffn1kciz6v52ibwq2vwhzlb95hazis3lgllnxc8")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "commons-compress.jar" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'delete-bad-tests + (lambda _ + (with-directory-excursion "src/test/java/org/apache/commons/compress/" + ;; FIXME: These tests really should not fail. Maybe they are + ;; indicative of problems with our Java packaging work. + + ;; This test fails with a null pointer exception. + (delete-file "archivers/sevenz/SevenZOutputFileTest.java") + ;; This test fails to open test resources. + (delete-file "archivers/zip/ExplodeSupportTest.java") + + ;; FIXME: This test adds a dependency on powermock, which is hard to + ;; package at this point. + ;; https://github.com/powermock/powermock + (delete-file "archivers/sevenz/SevenZNativeHeapTest.java")) + #t))))) + (inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core) + ("java-mockito" ,java-mockito-1) + ("java-xz" ,java-xz))) + (home-page "https://commons.apache.org/proper/commons-compress/") + (synopsis "Java library for working with compressed files") + (description "The Apache Commons Compress library defines an API for +working with compressed files such as ar, cpio, Unix dump, tar, zip, gzip, XZ, +Pack200, bzip2, 7z, arj, lzma, snappy, DEFLATE, lz4 and Z files.") + (license license:asl2.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From c48a145fbb613ac2b623f0a11278848923b312f1 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 15 May 2017 15:32:25 -0400 Subject: system: grub: Actually default to 'gfxterm' for displaying the GRUB menu. This is a followup to commit e0b2e93005188ab4d6c7413a27832ba2fb7388e8. * gnu/system/grub.scm (eye-candy): Re-order the elements of the generated GRUB configuration. --- gnu/system/grub.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/system/grub.scm b/gnu/system/grub.scm index 97081d8485..85878de85c 100644 --- a/gnu/system/grub.scm +++ b/gnu/system/grub.scm @@ -249,8 +249,8 @@ else fi~%" #$setup-gfxterm-body #$(grub-root-search store-device font-file) - #$(grub-setup-io config) #$(setup-gfxterm config font-file) + #$(grub-setup-io config) #$(strip-mount-point store-mount-point image) #$(theme-colors grub-theme-color-normal) -- cgit 1.4.1 From d44bcd7ac7295dbcbf0bd103901f277deadb943e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 2 Mar 2017 11:50:17 +0100 Subject: gnu: Add java-asm. * gnu/packages/java.scm (java-asm): New variable. --- gnu/packages/java.scm | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 127f4521ad..c68ff1477d 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2826,3 +2826,47 @@ import org.antlr.grammar.v2.ANTLRTreePrinter;")))) `(("junit" ,java-junit))) (propagated-inputs `(("stringtemplate" ,stringtemplate3))))) + +(define-public java-asm + (package + (name "java-asm") + (version "5.2") + (source (origin + (method url-fetch) + (uri (string-append "http://download.forge.ow2.org/asm/" + "asm-" version ".tar.gz")) + (sha256 + (base32 + "0kxvmv5275rnjl7jv0442k3wjnq03ngkb7sghs78avf45pzm4qgr")))) + (build-system ant-build-system) + (arguments + `(#:build-target "compile" + #:test-target "test" + ;; The tests require an old version of Janino, which no longer compiles + ;; with the JDK7. + #:tests? #f + ;; We don't need these extra ant tasks, but the build system asks us to + ;; provide a path anyway. + #:make-flags (list (string-append "-Dobjectweb.ant.tasks.path=foo")) + #:phases + (modify-phases %standard-phases + (add-before 'install 'build-jars + (lambda* (#:key make-flags #:allow-other-keys) + ;; We cannot use the "jar" target because it depends on a couple + ;; of unpackaged, complicated tools. + (mkdir "dist") + (zero? (system* "jar" + "-cf" (string-append "dist/asm-" ,version ".jar") + "-C" "output/build/tmp" ".")))) + (replace 'install + (install-jars "dist"))))) + (native-inputs + `(("java-junit" ,java-junit))) + (home-page "http://asm.ow2.org/") + (synopsis "Very small and fast Java bytecode manipulation framework") + (description "ASM is an all purpose Java bytecode manipulation and +analysis framework. It can be used to modify existing classes or dynamically +generate classes, directly in binary form. The provided common +transformations and analysis algorithms allow to easily assemble custom +complex transformations and code analysis tools.") + (license license:bsd-3))) -- cgit 1.4.1 From b13a7cf82d63f3289f2a388abaadc702438bbadd Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 7 Mar 2017 19:54:46 +0100 Subject: gnu: Add java-commons-net. * gnu/packages/java.scm (java-commons-net): New variable. --- gnu/packages/java.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index c68ff1477d..1f26ef67ad 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2264,6 +2264,34 @@ working with compressed files such as ar, cpio, Unix dump, tar, zip, gzip, XZ, Pack200, bzip2, 7z, arj, lzma, snappy, DEFLATE, lz4 and Z files.") (license license:asl2.0))) +(define-public java-commons-net + (package + (name "java-commons-net") + (version "3.6") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/net/source/" + "commons-net-" version "-src.tar.gz")) + (sha256 + (base32 + "0n0cmnddk9qdqhjvka8pc6hd9mn2qi3166f1s6xk32h7rfy1adxr")))) + (build-system ant-build-system) + (arguments + `(;; FIXME: MainTest.java tries to read "examples.properties" (which + ;; should be "resources/examples/examples.properties"), but gets "null" + ;; instead. + #:tests? #f + #:jar-name "commons-net.jar")) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "http://commons.apache.org/net/") + (synopsis "Client library for many basic Internet protocols") + (description "The Apache Commons Net library implements the client side of +many basic Internet protocols. The purpose of the library is to provide +fundamental protocol access, not higher-level abstractions.") + (license license:asl2.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From 18fe5ef1520ee085bf409ee983ed12baf20ea40e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 10 Oct 2016 18:27:40 +0200 Subject: gnu: Add libusb4java. * gnu/packages/libusb.scm (libusb4java): New variable. --- gnu/packages/libusb.scm | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm index 4c80de2369..3932f1e660 100644 --- a/gnu/packages/libusb.scm +++ b/gnu/packages/libusb.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2012 Nikita Karetnikov ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2015 Andy Wingo -;;; Copyright © 2015, 2016 Ricardo Wurmus +;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Theodoros Foradis ;;; @@ -27,12 +27,15 @@ #:use-module (guix packages) #:use-module (guix utils) #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system python) #:use-module (gnu packages autotools) #:use-module (gnu packages gnupg) #:use-module (gnu packages gtk) + #:use-module (gnu packages java) #:use-module (gnu packages linux) #:use-module (gnu packages mp3) #:use-module (gnu packages pkg-config) @@ -91,6 +94,41 @@ devices on various operating systems.") version of libusb to run with newer libusb.") (license lgpl2.1+))) +(define-public libusb4java + ;; There is no public release so we take the latest version from git. + (let ((commit "396d642a57678a0d9663b062c980fe100cc0ea1e") + (revision "1")) + (package + (name "libusb4java") + (version (string-append "0-" revision "." (string-take commit 9))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/usb4java/libusb4java.git") + (commit commit))) + (sha256 + (base32 + "0wqgapalhfh9v38ycbl6i2f5lh1wpr6fzwn5dwd0rdacypkd1gml")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; there are no tests + #:phases + (modify-phases %standard-phases + (add-before 'configure 'set-JAVA_HOME + (lambda* (#:key inputs #:allow-other-keys) + (setenv "JAVA_HOME" (assoc-ref inputs "jdk")) + #t))))) + (inputs + `(("libusb" ,libusb))) + (native-inputs + `(("jdk" ,icedtea "jdk"))) + (home-page "https://github.com/usb4java/libusb4java/") + (synopsis "JNI bindings to libusb") + (description + "This package provides Java JNI bindings to the libusb library for use +with usb4java.") + (license expat)))) + (define-public python-pyusb (package (name "python-pyusb") -- cgit 1.4.1 From 423b6840b3d7ada3b3c5fef7fdb64b8bbc1acb2b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 7 May 2017 21:40:59 +0200 Subject: gnu: Add java-usb4java. * gnu/packages/libusb.scm (java-usb4java): New variable. --- gnu/packages/libusb.scm | 60 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm index 3932f1e660..ffbe5b1a88 100644 --- a/gnu/packages/libusb.scm +++ b/gnu/packages/libusb.scm @@ -28,6 +28,7 @@ #:use-module (guix utils) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix build-system ant) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) @@ -129,6 +130,65 @@ version of libusb to run with newer libusb.") with usb4java.") (license expat)))) +(define-public java-usb4java + (package + (name "java-usb4java") + (version "1.2.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/usb4java/usb4java/" + "archive/usb4java-" version ".tar.gz")) + (sha256 + (base32 + "0gzpsnzwgsdyra3smq288yvxnwrgvdwxr6g8jbknnsk56kv6wc34")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "usb4java.jar" + #:phases + (modify-phases %standard-phases + ;; Usually, native libusb4java libraries for all supported systems + ;; would be included in the jar and extracted at runtime. Since we + ;; build everything from source we cannot just bundle pre-built + ;; binaries for other systems. Instead, we patch the loader to + ;; directly return the appropriate library for this system. The + ;; downside is that the jar will only work on the same architecture + ;; that it was built on. + (add-after 'unpack 'copy-libusb4java + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/main/java/org/usb4java/Loader.java" + (("private static String extractLibrary" line) + (string-append + line "(final String a, final String b) {" + "return \"" + (assoc-ref inputs "libusb4java") "/lib/libusb4java.so" + "\"; }\n" + "private static String _extractLibrary"))) + #t)) + (add-after 'unpack 'disable-broken-tests + (lambda _ + (with-directory-excursion "src/test/java/org/usb4java" + ;; These tests should only be run when USB devices are present. + (substitute* '("LibUsbGlobalTest.java" + "TransferTest.java") + (("this.context = new Context\\(\\);") + "this.context = null;") + (("LibUsb.init") "//")) + (substitute* "DeviceListIteratorTest.java" + (("this.iterator.remove" line) + (string-append "assumeUsbTestsEnabled();" line)))) + #t))))) + (inputs + `(("libusb4java" ,libusb4java) + ("java-commons-lang3" ,java-commons-lang3) + ("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "http://usb4java.org/") + (synopsis "USB library for Java") + (description + "This package provides a USB library for Java based on libusb and +implementing @code{javax.usb} (JSR-80).") + (license expat))) + (define-public python-pyusb (package (name "python-pyusb") -- cgit 1.4.1 From ff3f67668d045c6c1affca3d0dc9c65764e98196 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 7 May 2017 16:37:43 +0200 Subject: gnu: Add java-rsyntaxtextarea. * gnu/packages/textutils.scm (java-rsyntaxtextarea): New variable. --- gnu/packages/textutils.scm | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index 30e2116688..7bc2fc47fa 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer -;;; Copyright © 2015, 2016 Ricardo Wurmus +;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus ;;; Copyright © 2015, 2016 Ben Woodcroft ;;; Copyright © 2015 Roel Janssen ;;; Copyright © 2016 Jelle Licht @@ -32,11 +32,13 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix build-system ant) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) #:use-module (guix build-system trivial) #:use-module (gnu packages) #:use-module (gnu packages autotools) + #:use-module (gnu packages java) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -558,3 +560,35 @@ categories.") "C library for creating and parsing configuration files.") (license (list license:lgpl2.1 ; Main distribution. license:asl1.1)))) ; src/readdir.{c,h} + +(define-public java-rsyntaxtextarea + (package + (name "java-rsyntaxtextarea") + (version "2.6.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/bobbylight/" + "RSyntaxTextArea/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0c5mqg2klj5rvf8fhycrli8rf6s37l9p7a8knw9gpp65r1c120q2")))) + (build-system ant-build-system) + (arguments + `(;; FIXME: some tests fail because locale resources cannot be found. + ;; Even when I add them to the class path, + ;; RSyntaxTextAreaEditorKitDumbCompleteWordActionTest fails. + #:tests? #f + #:jar-name "rsyntaxtextarea.jar")) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "https://bobbylight.github.io/RSyntaxTextArea/") + (synopsis "Syntax highlighting text component for Java Swing") + (description "RSyntaxTextArea is a syntax highlighting, code folding text +component for Java Swing. It extends @code{JTextComponent} so it integrates +completely with the standard @code{javax.swing.text} package. It is fast and +efficient, and can be used in any application that needs to edit or view +source code.") + (license license:bsd-3))) -- cgit 1.4.1 From 77d7b57cdcc22a4ab6fc4b52e2edfeb974954f57 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 7 May 2017 16:38:36 +0200 Subject: gnu: Add java-simple-xml. * gnu/packages/xml.scm (java-simple-xml): New variable. --- gnu/packages/xml.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 79210d44d0..9635413b8f 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -44,6 +44,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix build-system ant) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system perl) @@ -1175,3 +1176,33 @@ to read and write XML data. A shared library is provided for parsing, generating, manipulating, and validating XML documents using the DOM, SAX, and SAX2 APIs.") (license license:asl2.0))) + +(define-public java-simple-xml + (package + (name "java-simple-xml") + (version "2.7.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/simple/simple-xml-" + version ".zip")) + (sha256 + (base32 + "0w19k1awslmihpwsxwjbg89hv0vjhk4k3i0vrfchy3mqknd988y5")))) + (build-system ant-build-system) + (arguments + `(#:build-target "build" + #:test-target "test" + #:phases + (modify-phases %standard-phases + (replace 'install (install-jars "jar"))))) + (native-inputs + `(("unzip" ,unzip))) + (home-page "http://simple.sourceforge.net/") + (synopsis "XML serialization framework for Java") + (description "Simple is a high performance XML serialization and +configuration framework for Java. Its goal is to provide an XML framework +that enables rapid development of XML configuration and communication systems. +This framework aids the development of XML systems with minimal effort and +reduced errors. It offers full object serialization and deserialization, +maintaining each reference encountered.") + (license license:asl2.0))) -- cgit 1.4.1 From 6ee6d0b58a022d2a659304496e9a304d1b20663e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 9 May 2017 08:42:38 +0200 Subject: gnu: Add java-osgi-annotation. * gnu/packages/java.scm (java-osgi-annotation): New variable. --- gnu/packages/java.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 1f26ef67ad..26d251f138 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2292,6 +2292,31 @@ many basic Internet protocols. The purpose of the library is to provide fundamental protocol access, not higher-level abstractions.") (license license:asl2.0))) +(define-public java-osgi-annotation + (package + (name "java-osgi-annotation") + (version "6.0.0") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/osgi/org.osgi.annotation/" version "/" + "org.osgi.annotation-" version "-sources.jar")) + (sha256 + (base32 + "1q718mb7gqg726rh6pc2hcisn8v50nv35abbir0jypmffhiii85w")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests + #:jar-name "osgi-annotation.jar")) + (home-page "http://www.osgi.org") + (synopsis "Annotation module of OSGi framework") + (description + "OSGi, for Open Services Gateway initiative framework, is a module system +and service platform for the Java programming language. This package contains +the OSGi annotation module, providing additional services to help dynamic +components.") + (license license:asl2.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From 37e2e5d43401da93eebd21c08d1b6a73b9982b13 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 9 May 2017 08:42:57 +0200 Subject: gnu: Add java-osgi-core. * gnu/packages/java.scm (java-osgi-core): New variable. --- gnu/packages/java.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 26d251f138..d5b2d61bde 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2317,6 +2317,32 @@ the OSGi annotation module, providing additional services to help dynamic components.") (license license:asl2.0))) +(define-public java-osgi-core + (package + (name "java-osgi-core") + (version "6.0.0") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/osgi/org.osgi.core/" version "/" + "org.osgi.core-" version "-sources.jar")) + (sha256 + (base32 + "19bpf5jx32jq9789gyhin35q5v7flmw0p9mk7wbgqpxqfmxyiabv")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests + #:jar-name "osgi-core.jar")) + (inputs + `(("java-osgi-annotation" ,java-osgi-annotation))) + (home-page "http://www.osgi.org") + (synopsis "Core module of OSGi framework") + (description + "OSGi, for Open Services Gateway initiative framework, is a module system +and service platform for the Java programming language. This package contains +the OSGi Core module.") + (license license:asl2.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From 674e93a057ecc79a4f670e48b45d8e910f4f69a3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 9 May 2017 08:43:13 +0200 Subject: gnu: Add java-eclipse-osgi. * gnu/packages/java.scm (java-eclipse-osgi): New variable. --- gnu/packages/java.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index d5b2d61bde..3d8dd06a02 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2343,6 +2343,31 @@ and service platform for the Java programming language. This package contains the OSGi Core module.") (license license:asl2.0))) +(define-public java-eclipse-osgi + (package + (name "java-eclipse-osgi") + (version "3.11.3") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.osgi/" + version "/org.eclipse.osgi-" + version "-sources.jar")) + (sha256 + (base32 + "00cqc6lb29n0zv68b4l842vzkwawvbr7gshfdygsk8sicvcq2c7b")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-equinox-osgi.jar")) + (inputs + `(("java-osgi-annotation" ,java-osgi-annotation))) + (home-page "http://www.eclipse.org/equinox/") + (synopsis "Eclipse Equinox OSGi framework") + (description "This package provides an implementation of the OSGi Core +specification.") + (license license:epl1.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From 81b55b1e77f66b7e47a6d08c8b54a3a31e0dc972 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 9 May 2017 08:43:36 +0200 Subject: gnu: Add java-eclipse-equinox-common. * gnu/packages/java.scm (java-eclipse-equinox-common): New variable. --- gnu/packages/java.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 3d8dd06a02..18c87acd5f 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2368,6 +2368,30 @@ the OSGi Core module.") specification.") (license license:epl1.0))) +(define-public java-eclipse-equinox-common + (package + (name "java-eclipse-equinox-common") + (version "3.8.0") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.equinox.common/" + version "/org.eclipse.equinox.common-" + version "-sources.jar")) + (sha256 + (base32 + "12aazpkgw46r1qj0pr421jzwhbmsizd97r37krd7njnbrdgfzksc")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-equinox-common.jar")) + (inputs + `(("java-eclipse-osgi" ,java-eclipse-osgi))) + (home-page "http://www.eclipse.org/equinox/") + (synopsis "Common Eclipse runtime") + (description "This package provides the common Eclipse runtime.") + (license license:epl1.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From 8af92c8ffdcc2de5a4d0cca83543062f07d712b8 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 9 May 2017 13:54:19 +0200 Subject: gnu: Add java-osgi-service-event. * gnu/packages/java.scm (java-osgi-service-event): New variable. --- gnu/packages/java.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 18c87acd5f..d9a6b004f5 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2343,6 +2343,34 @@ and service platform for the Java programming language. This package contains the OSGi Core module.") (license license:asl2.0))) +(define-public java-osgi-service-event + (package + (name "java-osgi-service-event") + (version "1.3.1") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/osgi/org.osgi.service.event/" + version "/org.osgi.service.event-" + version "-sources.jar")) + (sha256 + (base32 + "1nyhlgagwym75bycnjczwbnpymv2iw84zbhvvzk84g9q736i6qxm")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests + #:jar-name "osgi-service-event.jar")) + (inputs + `(("java-osgi-annotation" ,java-osgi-annotation) + ("java-osgi-core" ,java-osgi-core))) + (home-page "http://www.osgi.org") + (synopsis "OSGi service event module") + (description + "OSGi, for Open Services Gateway initiative framework, is a module system +and service platform for the Java programming language. This package contains +the OSGi @code{org.osgi.service.event} module.") + (license license:asl2.0))) + (define-public java-eclipse-osgi (package (name "java-eclipse-osgi") -- cgit 1.4.1 From 90368ad9d848f117568899142812d2b91b94b8f0 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 9 May 2017 13:54:44 +0200 Subject: gnu: Add java-eclipse-core-jobs. * gnu/packages/java.scm (java-eclipse-core-jobs): New variable. --- gnu/packages/java.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index d9a6b004f5..2d03c6e928 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2420,6 +2420,31 @@ specification.") (description "This package provides the common Eclipse runtime.") (license license:epl1.0))) +(define-public java-eclipse-core-jobs + (package + (name "java-eclipse-core-jobs") + (version "3.8.0") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.core.jobs/" + version "/org.eclipse.core.jobs-" + version "-sources.jar")) + (sha256 + (base32 + "0395b8lh0km8vhzjnchvs1rii1qz48hyvb2wqfaq4yhklbwihq4b")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-core-jobs.jar")) + (inputs + `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-osgi" ,java-eclipse-osgi))) + (home-page "http://www.eclipse.org/equinox/") + (synopsis "Eclipse jobs mechanism") + (description "This package provides the Eclipse jobs mechanism.") + (license license:epl1.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From fbaf09ebf2f811a983d1d9d48005d662818bddd5 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 9 May 2017 13:55:02 +0200 Subject: gnu: Add java-eclipse-equinox-registry. * gnu/packages/java.scm (java-eclipse-equinox-registry): New variable. --- gnu/packages/java.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 2d03c6e928..7666138aba 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2445,6 +2445,33 @@ specification.") (description "This package provides the Eclipse jobs mechanism.") (license license:epl1.0))) +(define-public java-eclipse-equinox-registry + (package + (name "java-eclipse-equinox-registry") + (version "3.6.100") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.equinox.registry/" + version "/org.eclipse.equinox.registry-" + version "-sources.jar")) + (sha256 + (base32 + "1i9sgymh2fy5vdgk5y7s3qvrlbgh4l93ddqi3v4zmca7hwrlhf9k")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-equinox-registry.jar")) + (inputs + `(("java-eclipse-core-jobs" ,java-eclipse-core-jobs) + ("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-osgi" ,java-eclipse-osgi))) + (home-page "http://www.eclipse.org/equinox/") + (synopsis "Eclipse extension registry support") + (description "This package provides support for the Eclipse extension +registry.") + (license license:epl1.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From 65214c872a2c75f51e2243b5fee1ecdeebce10b3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 9 May 2017 13:55:23 +0200 Subject: gnu: Add java-eclipse-equinox-app. * gnu/packages/java.scm (java-eclipse-equinox-app): New variable. --- gnu/packages/java.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 7666138aba..8a7af2d496 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2472,6 +2472,34 @@ specification.") registry.") (license license:epl1.0))) +(define-public java-eclipse-equinox-app + (package + (name "java-eclipse-equinox-app") + (version "1.3.400") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.equinox.app/" + version "/org.eclipse.equinox.app-" + version "-sources.jar")) + (sha256 + (base32 + "0nhvbp93y203ar7y59gb0mz3w2d3jlqhr0c9hii9bcfpmr7imdab")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-equinox-app.jar")) + (inputs + `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry) + ("java-eclipse-osgi" ,java-eclipse-osgi) + ("java-osgi-service-event" ,java-osgi-service-event))) + (home-page "http://www.eclipse.org/equinox/") + (synopsis "Equinox application container") + (description "This package provides the Equinox application container for +Eclipse.") + (license license:epl1.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From 3f9702144129338ec7c8c37edc7520724b5bf62d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 9 May 2017 13:55:44 +0200 Subject: gnu: Add java-eclipse-equinox-preferences. * gnu/packages/java.scm (java-eclipse-equinox-preferences): New variable. --- gnu/packages/java.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 8a7af2d496..8ff24f8652 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2500,6 +2500,33 @@ registry.") Eclipse.") (license license:epl1.0))) +(define-public java-eclipse-equinox-preferences + (package + (name "java-eclipse-equinox-preferences") + (version "3.6.1") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.equinox.preferences/" + version "/org.eclipse.equinox.preferences-" + version "-sources.jar")) + (sha256 + (base32 + "0k7w6c141sqym4fy3af0qkwpy4pdh2vsjpjba6rp5fxyqa24v0a2")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-equinox-preferences.jar")) + (inputs + `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry) + ("java-eclipse-osgi" ,java-eclipse-osgi))) + (home-page "http://www.eclipse.org/equinox/") + (synopsis "Eclipse preferences mechanism") + (description "This package provides the Eclipse preferences mechanism with +the module @code{org.eclipse.equinox.preferences}.") + (license license:epl1.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From 4ad3d4f337635ac978fe234f8a2a5d7c543ba51a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 9 May 2017 13:56:05 +0200 Subject: gnu: Add java-eclipse-core-contenttype. * gnu/packages/java.scm (java-eclipse-core-contenttype): New variable. --- gnu/packages/java.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 8ff24f8652..2dfbe0766d 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2527,6 +2527,34 @@ Eclipse.") the module @code{org.eclipse.equinox.preferences}.") (license license:epl1.0))) +(define-public java-eclipse-core-contenttype + (package + (name "java-eclipse-core-contenttype") + (version "3.5.100") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.core.contenttype/" + version "/org.eclipse.core.contenttype-" + version "-sources.jar")) + (sha256 + (base32 + "1wcqcv7ijwv5rh748vz3x9pkmjl9w1r0k0026k56n8yjl4rrmspi")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-core-contenttype.jar")) + (inputs + `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-equinox-preferences" ,java-eclipse-equinox-preferences) + ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry) + ("java-eclipse-osgi" ,java-eclipse-osgi))) + (home-page "http://www.eclipse.org/") + (synopsis "Eclipse content mechanism") + (description "This package provides the Eclipse content mechanism in the +@code{org.eclipse.core.contenttype} module.") + (license license:epl1.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From 6a7f7e49b342b11509a0445a3e76768cd915503a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 9 May 2017 13:56:25 +0200 Subject: gnu: Add java-eclipse-core-runtime. * gnu/packages/java.scm (java-eclipse-core-runtime): New variable. --- gnu/packages/java.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 2dfbe0766d..7319d63f23 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2555,6 +2555,37 @@ the module @code{org.eclipse.equinox.preferences}.") @code{org.eclipse.core.contenttype} module.") (license license:epl1.0))) +(define-public java-eclipse-core-runtime + (package + (name "java-eclipse-core-runtime") + (version "3.12.0") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.core.runtime/" + version "/org.eclipse.core.runtime-" + version "-sources.jar")) + (sha256 + (base32 + "16mkf8jgj35pgzms7w1gyfq0gfm4ixw6c5xbbxzdj1la56c758ya")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-core-runtime.jar")) + (inputs + `(("java-eclipse-core-contenttype" ,java-eclipse-core-contenttype) + ("java-eclipse-core-jobs" ,java-eclipse-core-jobs) + ("java-eclipse-equinox-app" ,java-eclipse-equinox-app) + ("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry) + ("java-eclipse-equinox-preferences" ,java-eclipse-equinox-preferences) + ("java-eclipse-osgi" ,java-eclipse-osgi))) + (home-page "https://www.eclipse.org/") + (synopsis "Eclipse core runtime") + (description "This package provides the Eclipse core runtime with the +module @code{org.eclipse.core.runtime}.") + (license license:epl1.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From b3806a15064e109525f0904b038a25df459aa7e4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 9 May 2017 18:21:13 +0200 Subject: gnu: Add java-eclipse-core-filesystem. * gnu/packages/java.scm (java-eclipse-core-filesystem): New variable. --- gnu/packages/java.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 7319d63f23..9671dce802 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2586,6 +2586,33 @@ the module @code{org.eclipse.equinox.preferences}.") module @code{org.eclipse.core.runtime}.") (license license:epl1.0))) +(define-public java-eclipse-core-filesystem + (package + (name "java-eclipse-core-filesystem") + (version "1.6.1") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.core.filesystem/" + version "/org.eclipse.core.filesystem-" + version "-sources.jar")) + (sha256 + (base32 + "0km1bhwjim4rfy3pkvjhvy31kgsyf2ncx0mlkmbf5n6g57pphdyj")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-core-filesystem.jar")) + (inputs + `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry) + ("java-eclipse-osgi" ,java-eclipse-osgi))) + (home-page "https://www.eclipse.org/") + (synopsis "Eclipse core file system") + (description "This package provides the Eclipse core file system with the +module @code{org.eclipse.core.filesystem}.") + (license license:epl1.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From e96060de2086bcbc8c9f80a56339f87f76389e22 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 9 May 2017 18:21:35 +0200 Subject: gnu: Add java-eclipse-core-expressions. * gnu/packages/java.scm (java-eclipse-core-expressions): New variable. --- gnu/packages/java.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 9671dce802..20259bc699 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2613,6 +2613,35 @@ module @code{org.eclipse.core.runtime}.") module @code{org.eclipse.core.filesystem}.") (license license:epl1.0))) +(define-public java-eclipse-core-expressions + (package + (name "java-eclipse-core-expressions") + (version "3.5.100") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.core.expressions/" + version "/org.eclipse.core.expressions-" + version "-sources.jar")) + (sha256 + (base32 + "18bw2l875gmygvpagpgk9l24qzbdjia4ag12nw6fi8v8yaq4987f")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-core-expressions.jar")) + (inputs + `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry) + ("java-eclipse-equinox-preferences" ,java-eclipse-equinox-preferences) + ("java-eclipse-core-runtime" ,java-eclipse-core-runtime) + ("java-eclipse-osgi" ,java-eclipse-osgi))) + (home-page "https://www.eclipse.org/") + (synopsis "Eclipse core expression language") + (description "This package provides the Eclipse core expression language +with the @code{org.eclipse.core.expressions} module.") + (license license:epl1.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From e8d0f7c8f9913218452e65d6f891af5773aee38a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 9 May 2017 18:21:55 +0200 Subject: gnu: Add java-eclipse-core-variables. * gnu/packages/java.scm (java-eclipse-core-variables): New variable. --- gnu/packages/java.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 20259bc699..37a6a04f84 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2642,6 +2642,35 @@ module @code{org.eclipse.core.filesystem}.") with the @code{org.eclipse.core.expressions} module.") (license license:epl1.0))) +(define-public java-eclipse-core-variables + (package + (name "java-eclipse-core-variables") + (version "3.3.0") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.core.variables/" + version "/org.eclipse.core.variables-" + version "-sources.jar")) + (sha256 + (base32 + "12dirh03zi4n5x5cj07vzrhkmnqy6h9q10h9j605pagmpmifyxmy")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-core-variables.jar")) + (inputs + `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry) + ("java-eclipse-equinox-preferences" ,java-eclipse-equinox-preferences) + ("java-eclipse-core-runtime" ,java-eclipse-core-runtime) + ("java-eclipse-osgi" ,java-eclipse-osgi))) + (home-page "https://www.eclipse.org/platform") + (synopsis "Eclipse core variables") + (description "This package provides the Eclipse core variables module +@code{org.eclipse.core.variables}.") + (license license:epl1.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From 7c3d479e831e9d13752a237ca63aae5cc04ce70d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 9 May 2017 18:24:06 +0200 Subject: gnu: Add java-eclipse-ant-core. * gnu/packages/java.scm (java-eclipse-ant-core): New variable. --- gnu/packages/java.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 37a6a04f84..b8ab673d18 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2671,6 +2671,38 @@ with the @code{org.eclipse.core.expressions} module.") @code{org.eclipse.core.variables}.") (license license:epl1.0))) +(define-public java-eclipse-ant-core + (package + (name "java-eclipse-ant-core") + (version "3.4.100") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.ant.core/" + version "/org.eclipse.ant.core-" + version "-sources.jar")) + (sha256 + (base32 + "11g3if794qjlk98mz9zch22rr56sd7z63vn4i7k2icr8cq5bfqg7")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-ant-core.jar")) + (inputs + `(("java-eclipse-equinox-app" ,java-eclipse-equinox-app) + ("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry) + ("java-eclipse-equinox-preferences" ,java-eclipse-equinox-preferences) + ("java-eclipse-core-contenttype" ,java-eclipse-core-contenttype) + ("java-eclipse-core-runtime" ,java-eclipse-core-runtime) + ("java-eclipse-core-variables" ,java-eclipse-core-variables) + ("java-eclipse-osgi" ,java-eclipse-osgi))) + (home-page "https://www.eclipse.org/platform") + (synopsis "Ant build tool core libraries") + (description "This package provides the ant build tool core libraries with +the module @code{org.eclipse.ant.core}.") + (license license:epl1.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From 6636f6388f5ad02bd4e4953972a03d05bcd1e65e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 9 May 2017 19:12:37 +0200 Subject: gnu: Add java-eclipse-core-resources. * gnu/packages/java.scm (java-eclipse-core-resources): New variable. --- gnu/packages/java.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index b8ab673d18..bbe97f442c 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2703,6 +2703,40 @@ with the @code{org.eclipse.core.expressions} module.") the module @code{org.eclipse.ant.core}.") (license license:epl1.0))) +(define-public java-eclipse-core-resources + (package + (name "java-eclipse-core-resources") + (version "3.11.1") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.core.resources/" + version "/org.eclipse.core.resources-" + version "-sources.jar")) + (sha256 + (base32 + "1hrfxrll6cpcagfksk2na1ypvkcnsp0fk6n3vcsrn97qayf9mx9l")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-core-resources.jar")) + (inputs + `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-equinox-preferences" ,java-eclipse-equinox-preferences) + ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry) + ("java-eclipse-core-contenttype" ,java-eclipse-core-contenttype) + ("java-eclipse-core-expressions" ,java-eclipse-core-expressions) + ("java-eclipse-core-filesystem" ,java-eclipse-core-filesystem) + ("java-eclipse-core-jobs" ,java-eclipse-core-jobs) + ("java-eclipse-core-runtime" ,java-eclipse-core-runtime) + ("java-eclipse-ant-core" ,java-eclipse-ant-core) + ("java-eclipse-osgi" ,java-eclipse-osgi))) + (home-page "https://www.eclipse.org/") + (synopsis "Eclipse core resource management") + (description "This package provides the Eclipse core resource management +module @code{org.eclipse.core.resources}.") + (license license:epl1.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From 1d4234d4c252983bee3363e11fc26a2de56682b1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 9 May 2017 21:48:54 +0200 Subject: gnu: Add java-icu4j. * gnu/packages/icu4c.scm (java-icu4j): New variable. --- gnu/packages/icu4c.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm index 9f465b1022..3e96520054 100644 --- a/gnu/packages/icu4c.scm +++ b/gnu/packages/icu4c.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015, 2016 Mark H Weaver ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2017 Clément Lassieur +;;; Copyright © 2017 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +26,7 @@ #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix build-system ant) #:use-module (guix build-system gnu)) (define-public icu4c @@ -75,3 +77,30 @@ C/C++ part.") (patches (search-patches "icu4c-CVE-2017-7867-CVE-2017-7868.patch" "icu4c-reset-keyword-list-iterator.patch")))))) + +(define-public java-icu4j + (package + (name "java-icu4j") + (version "59.1") + (source (origin + (method url-fetch) + (uri (string-append "http://download.icu-project.org/files/icu4j/" + version "/icu4j-" + (string-map (lambda (x) + (if (char=? x #\.) #\_ x)) + version) + "-src.jar")) + (sha256 + (base32 + "0bgxsvgi0qcwj60pvcxrf7a3fbk7aksyxnfwpbzavyfrfzixqh0c")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "icu4j.jar")) + (home-page "http://site.icu-project.org/") + (synopsis "International Components for Unicode") + (description + "ICU is a set of C/C++ and Java libraries providing Unicode and +globalisation support for software applications. This package contains the +Java part.") + (license x11))) -- cgit 1.4.1 From afb5858dd12d5b0f8309374e05a4b72d99a7eff4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 9 May 2017 21:49:21 +0200 Subject: gnu: Add java-eclipse-compare-core. * gnu/packages/java.scm (java-eclipse-compare-core): New variable. --- gnu/packages/java.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index bbe97f442c..f8d6bc0102 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -45,6 +45,7 @@ #:use-module (gnu packages ghostscript) ;lcms #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) + #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages linux) ;alsa #:use-module (gnu packages wget) @@ -2737,6 +2738,34 @@ the module @code{org.eclipse.ant.core}.") module @code{org.eclipse.core.resources}.") (license license:epl1.0))) +(define-public java-eclipse-compare-core + (package + (name "java-eclipse-compare-core") + (version "3.6.0") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.compare.core/" + version "/org.eclipse.compare.core-" + version "-sources.jar")) + (sha256 + (base32 + "10g37r0pbiffyv2wk35c6g5lwzkdipkl0kkjp41v84dln46xm4dg")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-compare-core.jar")) + (inputs + `(("java-eclipse-core-runtime" ,java-eclipse-core-runtime) + ("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-osgi" ,java-eclipse-osgi) + ("java-icu4j" ,java-icu4j))) + (home-page "https://www.eclipse.org/") + (synopsis "Eclipse core compare support") + (description "This package provides the Eclipse core compare support +module @code{org.eclipse.compare.core}.") + (license license:epl1.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From 1bb191fc4b8fcb1fd444a93bc3db291d93f14969 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 9 May 2017 21:51:20 +0200 Subject: gnu: Add java-eclipse-team-core. * gnu/packages/java.scm (java-eclipse-team-core): New variable. --- gnu/packages/java.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index f8d6bc0102..15787529ec 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2766,6 +2766,40 @@ module @code{org.eclipse.core.resources}.") module @code{org.eclipse.compare.core}.") (license license:epl1.0))) +(define-public java-eclipse-team-core + (package + (name "java-eclipse-team-core") + (version "3.8.0") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.team.core/" + version "/org.eclipse.team.core-" + version "-sources.jar")) + (sha256 + (base32 + "02j2jzqgb26zx2d5ahxmvijw6j4r0la90zl5c3i65x6z19ciyam7")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-team-core.jar")) + (inputs + `(("java-eclipse-compare-core" ,java-eclipse-compare-core) + ("java-eclipse-core-contenttype" ,java-eclipse-core-contenttype) + ("java-eclipse-core-filesystem" ,java-eclipse-core-filesystem) + ("java-eclipse-core-jobs" ,java-eclipse-core-jobs) + ("java-eclipse-core-resources" ,java-eclipse-core-resources) + ("java-eclipse-core-runtime" ,java-eclipse-core-runtime) + ("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry) + ("java-eclipse-equinox-preferences" ,java-eclipse-equinox-preferences) + ("java-eclipse-osgi" ,java-eclipse-osgi))) + (home-page "https://www.eclipse.org/platform") + (synopsis "Eclipse team support core") + (description "This package provides the Eclipse team support core module +@code{org.eclipse.team.core}.") + (license license:epl1.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From 31342529b25a1b66f3c21084d4eb994b1c1cb478 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 9 May 2017 21:57:57 +0200 Subject: gnu: Add java-eclipse-core-commands. * gnu/packages/java.scm (java-eclipse-core-commands): New variable. --- gnu/packages/java.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 15787529ec..95ddc581e2 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2800,6 +2800,31 @@ module @code{org.eclipse.compare.core}.") @code{org.eclipse.team.core}.") (license license:epl1.0))) +(define-public java-eclipse-core-commands + (package + (name "java-eclipse-core-commands") + (version "3.8.1") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.core.commands/" + version "/org.eclipse.core.commands-" + version "-sources.jar")) + (sha256 + (base32 + "0yjn482qndcfrsq3jd6vnhcylp16420f5aqkrwr8spsprjigjcr9")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-core-commands.jar")) + (inputs + `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common))) + (home-page "https://www.eclipse.org/platform") + (synopsis "Eclipse core commands") + (description "This package provides Eclipse core commands in the module +@code{org.eclipse.core.commands}.") + (license license:epl1.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From bf96acf7e5869fb5e6d05ef0ccfd13d4619002fa Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 9 May 2017 22:46:11 +0200 Subject: gnu: Add java-eclipse-text. * gnu/packages/java.scm (java-eclipse-text): New variable. --- gnu/packages/java.scm | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 95ddc581e2..aebcbd6b47 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2825,6 +2825,61 @@ module @code{org.eclipse.compare.core}.") @code{org.eclipse.core.commands}.") (license license:epl1.0))) +(define-public java-eclipse-text + (package + (name "java-eclipse-text") + (version "3.6.0") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.text/" + version "/org.eclipse.text-" + version "-sources.jar")) + (sha256 + (base32 + "0scz70vzz5qs5caji9f5q01vkqnvip7dpri1q07l8wbbdcxn4cq1")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-text.jar" + #:phases + (modify-phases %standard-phases + ;; When creating a new category we must make sure that the new list + ;; matches List. By default it seems to be too generic + ;; (ArrayList), so we specialize it to ArrayList. + ;; Without this we get this error: + ;; + ;; [javac] .../src/org/eclipse/jface/text/AbstractDocument.java:376: + ;; error: method put in interface Map cannot be applied to given types; + ;; [javac] fPositions.put(category, new ArrayList<>()); + ;; [javac] ^ + ;; [javac] required: String,List + ;; [javac] found: String,ArrayList + ;; [javac] reason: actual argument ArrayList cannot be converted + ;; to List by method invocation conversion + ;; [javac] where K,V are type-variables: + ;; [javac] K extends Object declared in interface Map + ;; [javac] V extends Object declared in interface Map + ;; + ;; I don't know if this is a good fix. I suspect it is not, but it + ;; seems to work. + (add-after 'unpack 'fix-compilation-error + (lambda _ + (substitute* "src/org/eclipse/jface/text/AbstractDocument.java" + (("Positions.put\\(category, new ArrayList<>\\(\\)\\);") + "Positions.put(category, new ArrayList());")) + #t))))) + (inputs + `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-core-commands" ,java-eclipse-core-commands) + ("java-icu4j" ,java-icu4j))) + (home-page "http://www.eclipse.org/platform") + (synopsis "Eclipse text library") + (description "Platform Text is part of the Platform UI project and +provides the basic building blocks for text and text editors within Eclipse +and contributes the Eclipse default text editor.") + (license license:epl1.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From c24d11b734c88037979c583d96a51bab79528d41 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 9 May 2017 22:46:35 +0200 Subject: gnu: Add java-eclipse-jdt-core. * gnu/packages/java.scm (java-eclipse-jdt-core): New variable. --- gnu/packages/java.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index aebcbd6b47..e2221637d2 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2880,6 +2880,41 @@ provides the basic building blocks for text and text editors within Eclipse and contributes the Eclipse default text editor.") (license license:epl1.0))) +(define-public java-eclipse-jdt-core + (package + (name "java-eclipse-jdt-core") + (version "3.12.3") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/jdt/org.eclipse.jdt.core/" + version "/org.eclipse.jdt.core-" + version "-sources.jar")) + (sha256 + (base32 + "191xw4lc7mjjkprh4ji5vnpjvr5r4zvbpwkriy4bvsjqrz35vh1j")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-jdt-core.jar")) + (inputs + `(("java-eclipse-core-contenttype" ,java-eclipse-core-contenttype) + ("java-eclipse-core-filesystem" ,java-eclipse-core-filesystem) + ("java-eclipse-core-jobs" ,java-eclipse-core-jobs) + ("java-eclipse-core-resources" ,java-eclipse-core-resources) + ("java-eclipse-core-runtime" ,java-eclipse-core-runtime) + ("java-eclipse-equinox-app" ,java-eclipse-equinox-app) + ("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-equinox-preferences" ,java-eclipse-equinox-preferences) + ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry) + ("java-eclipse-osgi" ,java-eclipse-osgi) + ("java-eclipse-text" ,java-eclipse-text))) + (home-page "https://www.eclipse.org/jdt") + (synopsis "Java development tools core libraries") + (description "This package provides the core libraries of the Eclipse Java +development tools.") + (license license:epl1.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From 0e660c4de95817cd0578ae3882fad31f60bf596b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 10 May 2016 17:13:43 +0200 Subject: gnu: Add java-log4j-api. * gnu/packages/java.scm (java-log4j-api): New variable. --- gnu/packages/java.scm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index e2221637d2..6556ab2718 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2915,6 +2915,45 @@ and contributes the Eclipse default text editor.") development tools.") (license license:epl1.0))) +(define-public java-log4j-api + (package + (name "java-log4j-api") + (version "2.4.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/logging/log4j/" version + "/apache-log4j-" version "-src.tar.gz")) + (sha256 + (base32 + "0j5p9gik0jysh37nlrckqbky12isy95cpwg2gv5fas1rcdqbraxd")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; tests require unpackaged software + #:jar-name "log4j-api.jar" + #:make-flags + (list (string-append "-Ddist.dir=" (assoc-ref %outputs "out") + "/share/java")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'enter-dir + (lambda _ (chdir "log4j-api") #t)) + ;; FIXME: The tests require additional software that has not been + ;; packaged yet, such as + ;; * org.apache.maven + ;; * org.apache.felix + (add-after 'enter-dir 'delete-tests + (lambda _ (delete-file-recursively "src/test") #t))))) + (inputs + `(("java-osgi-core" ,java-osgi-core) + ("java-hamcrest-core" ,java-hamcrest-core) + ("java-junit" ,java-junit))) + (home-page "http://logging.apache.org/log4j/2.x/") + (synopsis "API module of the Log4j logging framework for Java") + (description + "This package provides the API module of the Log4j logging framework for +Java.") + (license license:asl2.0))) + (define-public java-commons-cli (package (name "java-commons-cli") -- cgit 1.4.1 From a5cdcf6c0986653ebb33fca9227e8a61ce37aed9 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 9 May 2017 23:01:33 +0200 Subject: gnu: Add java-javax-mail. * gnu/packages/java.scm (java-javax-mail): New variable. --- gnu/packages/java.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 6556ab2718..4793b30538 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2915,6 +2915,32 @@ and contributes the Eclipse default text editor.") development tools.") (license license:epl1.0))) +(define-public java-javax-mail + (package + (name "java-javax-mail") + (version "1.5.6") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "com/sun/mail/javax.mail/" + version "/javax.mail-" + version "-sources.jar")) + (sha256 + (base32 + "0sdlfgsc2b5s89xv1261y8i0jijcja019k2x1c8ngfn582w4jly9")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests + #:jar-name "javax-mail.jar")) + (home-page "https://javamail.java.net") + (synopsis "Reference implementation of the JavaMail API") + (description + "This package provides versions of the JavaMail API implementation, IMAP, +SMTP, and POP3 service providers, some examples, and documentation for the +JavaMail API.") + ;; GPLv2 only with "classpath exception". + (license license:gpl2))) + (define-public java-log4j-api (package (name "java-log4j-api") -- cgit 1.4.1 From 46bb58b8641cb6c9c07a1169e15e2843910297ba Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 8 May 2017 19:04:31 +0200 Subject: gnu: Add non-mixer. * gnu/packages/music.scm (non-mixer): New variable. --- gnu/packages/music.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 3002d27a6e..c05a047615 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -786,6 +786,32 @@ session management. NSM clients use a well-specified OSC protocol to communicate with the session management daemon.") (license license:gpl2+))) +(define-public non-mixer + (package (inherit non-sequencer) + (name "non-mixer") + (arguments + (substitute-keyword-arguments (package-arguments non-sequencer) + ((#:configure-flags flags) + `(cons "--project=mixer" + (delete "--project=sequencer" ,flags))))) + (inputs + `(("jack" ,jack-1) + ("liblo" ,liblo) + ("ladspa" ,ladspa) + ("lrdf" ,lrdf) + ("ntk" ,ntk))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://non.tuxfamily.org/wiki/Non%20Mixer") + (synopsis "Modular digital audio mixer") + (description + "The Non Mixer is a powerful, reliable and fast modular digital audio +mixer. It utilizes JACK for inter-application audio I/O and the NTK GUI +toolkit for a fast and lightweight user interface. Non Mixer can be used +alone or in concert with Non Timeline and Non Sequencer to form a complete +studio.") + (license license:gpl2+))) + (define-public solfege (package (name "solfege") -- cgit 1.4.1 From 4511e0db23b32d78675816da2343454f32fb2bf8 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 8 May 2017 19:16:26 +0200 Subject: gnu: Add non-timeline. * gnu/packages/music.scm (non-timeline): New variable. --- gnu/packages/music.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index c05a047615..d4a72df1d8 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -812,6 +812,31 @@ alone or in concert with Non Timeline and Non Sequencer to form a complete studio.") (license license:gpl2+))) +(define-public non-timeline + (package (inherit non-sequencer) + (name "non-timeline") + (arguments + (substitute-keyword-arguments (package-arguments non-sequencer) + ((#:configure-flags flags) + `(cons "--project=timeline" + (delete "--project=sequencer" ,flags))))) + (inputs + `(("jack" ,jack-1) + ("liblo" ,liblo) + ("libsndfile" ,libsndfile) + ("ntk" ,ntk))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://non.tuxfamily.org/wiki/Non%20Timeline") + (synopsis "Modular digital audio timeline arranger") + (description + "The Non Timeline is a powerful, reliable and fast modular digital audio +timeline arranger. It utilizes JACK for inter-application audio I/O and the +NTK GUI toolkit for a fast and lightweight user interface. Non Timeline can +be used alone or in concert with Non Mixer and Non Sequencer to form a +complete studio.") + (license license:gpl2+))) + (define-public solfege (package (name "solfege") -- cgit 1.4.1 From 3ad9039515f62cebdc07b6a6635c3672dfe67604 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 15 May 2017 23:35:51 +0200 Subject: gnu: antlr2: Simplify build phases. * gnu/packages/java.scm (antl2)[arguments]: Simplify build phases. --- gnu/packages/java.scm | 40 ++++++++++------------------------------ 1 file changed, 10 insertions(+), 30 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 4793b30538..cc57158d3c 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -3118,41 +3118,21 @@ This is a part of the Apache Commons Project.") (build-system gnu-build-system) (arguments `(#:tests? #f + #:imported-modules ((guix build ant-build-system) + (guix build syscalls) + ,@%gnu-build-system-modules) + #:modules (((guix build ant-build-system) #:prefix ant:) + (guix build gnu-build-system) + (guix build utils)) #:phases (modify-phases %standard-phases (add-after 'install 'strip-jar-timestamps - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (jar1 (string-append out "/lib/antlr.jar")) - (jar2 (string-append out "/share/antlr-2.7.7/antlr.jar"))) - ;; XXX: copied from (guix build ant-build-system) - (define (strip-jar jar dir) - (let ((manifest (string-append dir "/META-INF/MANIFEST.MF"))) - (mkdir-p dir) - (and (with-directory-excursion dir - (zero? (system* "jar" "xf" jar))) - (delete-file jar) - (for-each (lambda (file) - (let ((s (lstat file))) - (unless (eq? (stat:type s) 'symlink) - (utime file 0 0 0 0)))) - (find-files dir #:directories? #t)) - (with-directory-excursion dir - (let* ((files (find-files "." ".*" #:directories? #t))) - (unless (zero? (apply system* - `("zip" "-X" ,jar ,manifest - ,@files))) - (error "'zip' failed")))) - (utime jar 0 0) - #t))) - (strip-jar jar1 "temp1") - (strip-jar jar2 "temp2")))) + (assoc-ref ant:%standard-phases 'strip-jar-timestamps)) (add-after 'configure 'fix-bin-ls (lambda _ - (for-each (lambda (file) - (substitute* file - (("/bin/ls") "ls"))) - (find-files "." "Makefile"))))))) + (substitute* (find-files "." "Makefile") + (("/bin/ls") "ls")) + #t))))) (native-inputs `(("which" ,which) ("zip" ,zip) -- cgit 1.4.1 From 6d225e89dbd67a3365005c2e3f8d095ef01a29c3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 15 May 2017 23:39:44 +0200 Subject: gnu: antlr2: Minor stylistic changes. * gnu/packages/java.scm (antlr2)[source]: Fix indentation; end snippet on #t; add comment next to disabled tests. --- gnu/packages/java.scm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index cc57158d3c..4a381b6a1c 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -3110,14 +3110,15 @@ This is a part of the Apache Commons Project.") (substitute* "lib/cpp/antlr/CharScanner.hpp" (("#include ") (string-append - "#include \n" - "#define EOF (-1)\n" - "#include "))) + "#include \n" + "#define EOF (-1)\n" + "#include "))) (substitute* "configure" - (("/bin/sh") "sh")))))) + (("/bin/sh") "sh")) + #t)))) (build-system gnu-build-system) (arguments - `(#:tests? #f + `(#:tests? #f ; no test target #:imported-modules ((guix build ant-build-system) (guix build syscalls) ,@%gnu-build-system-modules) -- cgit 1.4.1 From c22c9fa589a5dcc931d95df698eae391181f2a04 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 15 May 2017 15:23:23 +0200 Subject: services: guix: Authorize the key for bayfront.guixsd.org. * gnu/services/base.scm (%default-authorized-guix-keys): Add "bayfront.guixsd.org". --- gnu/services/base.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/services/base.scm b/gnu/services/base.scm index c244174fd3..7cd9a34ca2 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -1332,7 +1332,8 @@ failed to register hydra.gnu.org public key: ~a~%" status)))))))) (define %default-authorized-guix-keys ;; List of authorized substitute keys. - (list (file-append guix "/share/guix/hydra.gnu.org.pub"))) + (list (file-append guix "/share/guix/hydra.gnu.org.pub") + (file-append guix "/share/guix/bayfront.guixsd.org.pub"))) (define-record-type* guix-configuration make-guix-configuration -- cgit 1.4.1 From a068300628e9490d7db3f610699ea8c693946e3d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 16 May 2017 00:00:03 +0200 Subject: gnu: bind: Rename variable to 'isc-bind'. Reported by Leo Famulari. * gnu/packages/dns.scm (bind): Rename to... (isc-bind): ... this. * gnu/packages/sssd.scm (sssd)[inputs]: Adjust accordingly. --- gnu/packages/dns.scm | 4 +++- gnu/packages/sssd.scm | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index 1fb552de15..7937c67781 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -88,7 +88,9 @@ and BOOTP/TFTP for network booting of diskless machines.") ;; Source files only say GPL2 and GPL3 are allowed. (license (list license:gpl2 license:gpl3)))) -(define-public bind +;; 'bind' is the name of a built-in Guile procedure, which is why we choose a +;; different name here. +(define-public isc-bind (package (name "bind") (version "9.11.1") diff --git a/gnu/packages/sssd.scm b/gnu/packages/sssd.scm index 26d034790c..2afef03055 100644 --- a/gnu/packages/sssd.scm +++ b/gnu/packages/sssd.scm @@ -131,7 +131,7 @@ fundamental object types for C.") #t))))) (inputs `(("augeas" ,augeas) - ("bind" ,bind "utils") + ("bind" ,isc-bind "utils") ("c-ares" ,c-ares) ("curl" ,curl) ("cyrus-sasl" ,cyrus-sasl) -- cgit 1.4.1 From 4a3495d57c08dff9287fe559482a6d2009109304 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 15 May 2017 17:17:30 -0400 Subject: gnu: khard: Update to 0.11.4. * gnu/packages/mail.scm (khard): Update to 0.11.4. --- gnu/packages/mail.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 39d394140b..b4dfef6ec0 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1608,13 +1608,13 @@ maintained.") (define-public khard (package (name "khard") - (version "0.11.3") + (version "0.11.4") (source (origin (method url-fetch) (uri (pypi-uri name version)) (sha256 (base32 - "1v66khq5w17xdbkpb00pf9xbl84dlzx4lq286fvzskb949b3y4yn")))) + "1shhlq6ljbd8095hd82v4mw56rjcfxf1ymmgknbgh8gix02nsxw1")))) (build-system python-build-system) (arguments `(#:phases -- cgit 1.4.1 From 5a3429bcc52a47ca9c879b9ace092eecddeed300 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 16 May 2017 14:15:59 +0200 Subject: gnu: guile-ssh: Fix bug in 'node-guile-version'. * gnu/packages/patches/guile-ssh-rexec-bug.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/ssh.scm (guile-ssh)[source](patches): New field. --- gnu/local.mk | 1 + gnu/packages/patches/guile-ssh-rexec-bug.patch | 16 ++++++++++++++++ gnu/packages/ssh.scm | 1 + 3 files changed, 18 insertions(+) create mode 100644 gnu/packages/patches/guile-ssh-rexec-bug.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index f6e911b61a..c560c71725 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -649,6 +649,7 @@ dist_patch_DATA = \ %D%/packages/patches/guile-present-coding.patch \ %D%/packages/patches/guile-relocatable.patch \ %D%/packages/patches/guile-rsvg-pkgconfig.patch \ + %D%/packages/patches/guile-ssh-rexec-bug.patch \ %D%/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \ %D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \ %D%/packages/patches/gtk2-theme-paths.patch \ diff --git a/gnu/packages/patches/guile-ssh-rexec-bug.patch b/gnu/packages/patches/guile-ssh-rexec-bug.patch new file mode 100644 index 0000000000..363fea38c9 --- /dev/null +++ b/gnu/packages/patches/guile-ssh-rexec-bug.patch @@ -0,0 +1,16 @@ +Fix a bug whereby 'node-guile-version' would pass a node instead of +a session to 'rexec'. + +diff --git a/modules/ssh/dist/node.scm b/modules/ssh/dist/node.scm +index 9c065c7..29a3906 100644 +--- a/modules/ssh/dist/node.scm ++++ b/modules/ssh/dist/node.scm +@@ -411,7 +411,8 @@ procedure returns the 1st evaluated value if multiple values were returned." + "Get Guile version installed on a NODE, return the version string. Return + #f if Guile is not installed." + (receive (result rc) +- (rexec node "which guile > /dev/null && guile --version") ++ (rexec (node-session node) ++ "which guile > /dev/null && guile --version") + (and (zero? rc) + (car result)))) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 1fd395049a..6a074d10fa 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -226,6 +226,7 @@ Additionally, various channel-specific options can be negotiated.") (sha256 (base32 "0r261i8kc3avbmbwgyzak2vnqwssjlgz37g2y2fwm80w9bmn2m7j")) + (patches (search-patches "guile-ssh-rexec-bug.patch")) (modules '((guix build utils))) (snippet ;; 'configure.ac' mistakenly tries to link files from examples/ -- cgit 1.4.1 From b09a8da4a2e50845a297e041762f3ff9e649c047 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Mon, 15 May 2017 22:24:18 +0200 Subject: bootloader: Add extlinux support. * gnu/bootloader.scm: New file. * gnu/bootloader/extlinux.scm: New file. * gnu/bootloader/grub.scm: New file. * gnu/local.mk: Build new files. * gnu/system.scm: Adapt to new bootloader api. * gnu/scripts/system.scm: Adapt to new bootloader api. * gnu.scm: Remove (gnu system grub) and replace by (gnu bootloader) and (gnu bootloader grub) modules. * gnu/system/grub.scm: Moved content to gnu/bootloader/grub.scm. * gnu/system/vm: Replace (gnu system grub) module by (gnu bootloader). * gnu/tests.scm: Ditto. * gnu/tests/nfs.scm: Ditto. --- gnu.scm | 4 +- gnu/bootloader.scm | 127 +++++++++++++ gnu/bootloader/extlinux.scm | 123 ++++++++++++ gnu/bootloader/grub.scm | 448 ++++++++++++++++++++++++++++++++++++++++++++ gnu/local.mk | 4 +- gnu/system.scm | 14 +- gnu/system/grub.scm | 407 ---------------------------------------- gnu/system/vm.scm | 2 +- gnu/tests.scm | 3 +- gnu/tests/nfs.scm | 3 +- guix/scripts/system.scm | 20 +- 11 files changed, 728 insertions(+), 427 deletions(-) create mode 100644 gnu/bootloader.scm create mode 100644 gnu/bootloader/extlinux.scm create mode 100644 gnu/bootloader/grub.scm delete mode 100644 gnu/system/grub.scm (limited to 'gnu') diff --git a/gnu.scm b/gnu.scm index 932e4cdd58..913ce61600 100644 --- a/gnu.scm +++ b/gnu.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2015 Joshua S. Grant +;;; Copyright © 2017 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -34,7 +35,8 @@ '((gnu system) (gnu system mapped-devices) (gnu system file-systems) - (gnu system grub) ; 'grub-configuration' + (gnu bootloader) + (gnu bootloader grub) (gnu system pam) (gnu system shadow) ; 'user-account' (gnu system linux-initrd) diff --git a/gnu/bootloader.scm b/gnu/bootloader.scm new file mode 100644 index 0000000000..4e77974d31 --- /dev/null +++ b/gnu/bootloader.scm @@ -0,0 +1,127 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 David Craven +;;; Copyright © 2017 Mathieu Othacehe +;;; Copyright © 2017 Leo Famulari +;;; +;;; 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 . + +(define-module (gnu bootloader) + #:use-module (guix discovery) + #:use-module (guix records) + #:use-module (guix ui) + #:use-module (srfi srfi-1) + #:export (bootloader + bootloader? + bootloader-name + bootloader-package + bootloader-installer + bootloader-configuration-file + bootloader-configuration-file-generator + + bootloader-configuration + bootloader-configuration? + bootloader-configuration-bootloader + bootloader-configuration-device + bootloader-configuration-menu-entries + bootloader-configuration-default-entry + bootloader-configuration-timeout + bootloader-configuration-theme + bootloader-configuration-terminal-outputs + bootloader-configuration-terminal-inputs + bootloader-configuration-serial-unit + bootloader-configuration-serial-speed + bootloader-configuration-additional-configuration + + %bootloaders + lookup-bootloader-by-name)) + + +;;; +;;; Bootloader record. +;;; + +;; The record contains fields expressing how the bootloader +;; should be installed. Every bootloader in gnu/bootloader/ directory +;; has to be described by this record. + +(define-record-type* + bootloader make-bootloader + bootloader? + (name bootloader-name) + (package bootloader-package) + (installer bootloader-installer) + (configuration-file bootloader-configuration-file) + (configuration-file-generator bootloader-configuration-file-generator)) + + +;;; +;;; Bootloader configuration record. +;;; + +;; The record contains bootloader independant +;; configuration used to fill bootloader configuration file. + +(define-record-type* + bootloader-configuration make-bootloader-configuration + bootloader-configuration? + (bootloader bootloader-configuration-bootloader) ; + (device bootloader-configuration-device ; string + (default #f)) + (menu-entries bootloader-configuration-menu-entries ; list of + (default '())) + (default-entry bootloader-configuration-default-entry ; integer + (default 0)) + (timeout bootloader-configuration-timeout ; seconds as integer + (default 5)) + (theme bootloader-configuration-theme ; bootloader-specific theme + (default #f)) + (terminal-outputs bootloader-configuration-terminal-outputs ; list of symbols + (default '(gfxterm))) + (terminal-inputs bootloader-configuration-terminal-inputs ; list of symbols + (default '())) + (serial-unit bootloader-configuration-serial-unit ; integer | #f + (default #f)) + (serial-speed bootloader-configuration-serial-speed ; integer | #f + (default #f)) + (additional-configuration bootloader-configuration-additional-configuration ; record + (default #f))) + + +;;; +;;; Bootloaders. +;;; + +(define (bootloader-modules) + "Return the list of bootloader modules." + (all-modules (map (lambda (entry) + `(,entry . "gnu/bootloader")) + %load-path))) + +(define %bootloaders + ;; The list of publically-known bootloaders. + (delay (fold-module-public-variables (lambda (obj result) + (if (bootloader? obj) + (cons obj result) + result)) + '() + (bootloader-modules)))) + +(define (lookup-bootloader-by-name name) + "Return the bootloader called NAME." + (or (find (lambda (bootloader) + (eq? name (bootloader-name bootloader))) + (force %bootloaders)) + (leave (G_ "~a: no such bootloader~%") name))) diff --git a/gnu/bootloader/extlinux.scm b/gnu/bootloader/extlinux.scm new file mode 100644 index 0000000000..a002001071 --- /dev/null +++ b/gnu/bootloader/extlinux.scm @@ -0,0 +1,123 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 David Craven +;;; Copyright © 2017 Mathieu Othacehe +;;; +;;; 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 . + +(define-module (gnu bootloader extlinux) + #:use-module (gnu bootloader) + #:use-module (gnu system) + #:use-module (gnu packages bootloaders) + #:use-module (guix gexp) + #:use-module (guix monads) + #:use-module (guix records) + #:use-module (guix utils) + #:export (extlinux-bootloader + syslinux-bootloader + + extlinux-configuration + syslinux-configuration)) + +(define* (extlinux-configuration-file config entries + #:key + (system (%current-system)) + (old-entries '())) + "Return the U-Boot configuration file corresponding to CONFIG, a + object, and where the store is available at STORE-FS, a + object. OLD-ENTRIES is taken to be a list of menu entries +corresponding to old generations of the system." + + (define all-entries + (append entries (bootloader-configuration-menu-entries config))) + + (define (boot-parameters->gexp params) + (let ((label (boot-parameters-label params)) + (kernel (boot-parameters-kernel params)) + (kernel-arguments (boot-parameters-kernel-arguments params)) + (initrd (boot-parameters-initrd params))) + #~(format port "LABEL ~a + MENU LABEL ~a + KERNEL ~a + FDTDIR ~a/lib/dtbs + INITRD ~a + APPEND ~a +~%" + #$label #$label + #$kernel #$kernel #$initrd + (string-join (list #$@kernel-arguments))))) + + (define builder + #~(call-with-output-file #$output + (lambda (port) + (let ((timeout #$(bootloader-configuration-timeout config))) + (format port " +UI menu.c32 +PROMPT ~a +TIMEOUT ~a~%" + (if (> timeout 0) 1 0) + ;; timeout is expressed in 1/10s of seconds. + (* 10 timeout)) + #$@(map boot-parameters->gexp all-entries) + + #$@(if (pair? old-entries) + #~((format port "~%") + #$@(map boot-parameters->gexp old-entries) + (format port "~%")) + #~()))))) + + (gexp->derivation "extlinux.conf" builder)) + + + + +;;; +;;; Install procedures. +;;; + +(define dd + #~(lambda (bs count if of) + (zero? (system* "dd" + (string-append "bs=" (number->string bs)) + (string-append "count=" (number->string count)) + (string-append "if=" if) + (string-append "of=" of))))) + +(define install-extlinux + #~(lambda (bootloader device mount-point) + (let ((extlinux (string-append bootloader "/sbin/extlinux")) + (install-dir (string-append mount-point "/boot/extlinux")) + (syslinux-dir (string-append bootloader "/share/syslinux"))) + (for-each (lambda (file) + (install-file file install-dir)) + (find-files syslinux-dir "\\.c32$")) + + (unless (and (zero? (system* extlinux "--install" install-dir)) + (#$dd 440 1 (string-append syslinux-dir "/mbr.bin") device)) + (error "failed to install SYSLINUX"))))) + + + +;;; +;;; Bootloader definitions. +;;; + +(define extlinux-bootloader + (bootloader + (name 'extlinux) + (package syslinux) + (installer install-extlinux) + (configuration-file "/boot/extlinux/extlinux.conf") + (configuration-file-generator extlinux-configuration-file))) diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm new file mode 100644 index 0000000000..49616b7164 --- /dev/null +++ b/gnu/bootloader/grub.scm @@ -0,0 +1,448 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2016 Chris Marusich +;;; Copyright © 2017 Leo Famulari +;;; Copyright © 2017 Mathieu Othacehe +;;; +;;; 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 . + +(define-module (gnu bootloader grub) + #:use-module (guix store) + #:use-module (guix packages) + #:use-module (guix derivations) + #:use-module (guix records) + #:use-module (guix monads) + #:use-module (guix gexp) + #:use-module (guix download) + #:use-module (gnu artwork) + #:use-module (gnu system) + #:use-module (gnu bootloader) + #:use-module (gnu system file-systems) + #:autoload (gnu packages bootloaders) (grub) + #:autoload (gnu packages compression) (gzip) + #:autoload (gnu packages gtk) (guile-cairo guile-rsvg) + #:use-module (ice-9 match) + #:use-module (ice-9 regex) + #:use-module (srfi srfi-1) + #:use-module (rnrs bytevectors) + #:export (grub-image + grub-image? + grub-image-aspect-ratio + grub-image-file + + grub-theme + grub-theme? + grub-theme-images + grub-theme-color-normal + grub-theme-color-highlight + + %background-image + %default-theme + + grub-bootloader + grub-efi-bootloader + + grub-configuration)) + +;;; Commentary: +;;; +;;; Configuration of GNU GRUB. +;;; +;;; Code: + +(define (strip-mount-point mount-point file) + "Strip MOUNT-POINT from FILE, which is a gexp or other lowerable object +denoting a file name." + (if (string=? mount-point "/") + file + #~(let ((file #$file)) + (if (string-prefix? #$mount-point file) + (substring #$file #$(string-length mount-point)) + file)))) + +(define-record-type* + grub-image make-grub-image + grub-image? + (aspect-ratio grub-image-aspect-ratio ;rational number + (default 4/3)) + (file grub-image-file)) ;file-valued gexp (SVG) + +(define-record-type* + grub-theme make-grub-theme + grub-theme? + (images grub-theme-images + (default '())) ;list of + (color-normal grub-theme-color-normal + (default '((fg . cyan) (bg . blue)))) + (color-highlight grub-theme-color-highlight + (default '((fg . white) (bg . blue))))) + +(define %background-image + (grub-image + (aspect-ratio 4/3) + (file (file-append %artwork-repository + "/grub/GuixSD-fully-black-4-3.svg")))) + +(define %default-theme + ;; Default theme contributed by Felipe López. + (grub-theme + (images (list %background-image)) + (color-highlight '((fg . yellow) (bg . black))) + (color-normal '((fg . light-gray) (bg . black))))) ;XXX: #x303030 + +(define-record-type* + menu-entry make-menu-entry + menu-entry? + (label menu-entry-label) + (device menu-entry-device ; file system uuid, label, or #f + (default #f)) + (device-mount-point menu-entry-device-mount-point + (default "/")) + (linux menu-entry-linux) + (linux-arguments menu-entry-linux-arguments + (default '())) ; list of string-valued gexps + (initrd menu-entry-initrd)) ; file name of the initrd as a gexp + + +;;; +;;; Background image & themes. +;;; + +(define (bootloader-theme config) + "Return user defined theme in CONFIG if defined or %default-theme +otherwise." + (or (bootloader-configuration-theme config) %default-theme)) + +(define* (svg->png svg #:key width height) + "Build a PNG of HEIGHT x WIDTH from SVG." + (gexp->derivation "grub-image.png" + (with-imported-modules '((gnu build svg)) + #~(begin + ;; We need these two libraries. + (add-to-load-path (string-append #+guile-rsvg + "/share/guile/site/" + (effective-version))) + (add-to-load-path (string-append #+guile-cairo + "/share/guile/site/" + (effective-version))) + + (use-modules (gnu build svg)) + (svg->png #+svg #$output + #:width #$width + #:height #$height))))) + +(define* (grub-background-image config #:key (width 1024) (height 768)) + "Return the GRUB background image defined in CONFIG with a ratio of +WIDTH/HEIGHT, or #f if none was found." + (let* ((ratio (/ width height)) + (image (find (lambda (image) + (= (grub-image-aspect-ratio image) ratio)) + (grub-theme-images + (bootloader-theme config))))) + (if image + (svg->png (grub-image-file image) + #:width width #:height height) + (with-monad %store-monad + (return #f))))) + +(define* (eye-candy config store-device store-mount-point + #:key system port) + "Return in %STORE-MONAD a gexp that writes to PORT (a port-valued gexp) the +'grub.cfg' part concerned with graphics mode, background images, colors, and +all that. STORE-DEVICE designates the device holding the store, and +STORE-MOUNT-POINT is its mount point; these are used to determine where the +background image and fonts must be searched for. SYSTEM must be the target +system string---e.g., \"x86_64-linux\"." + (define setup-gfxterm-body + ;; Intel and EFI systems need to be switched into graphics mode, whereas + ;; most other modern architectures have no other mode and therefore don't + ;; need to be switched. + (if (string-match "^(x86_64|i[3-6]86)-" system) + " + # Leave 'gfxmode' to 'auto'. + insmod video_bochs + insmod video_cirrus + insmod gfxterm + + if [ \"${grub_platform}\" == efi ]; then + # This is for (U)EFI systems (these modules are unavailable in the + # non-EFI GRUB.) If we don't load them, GRUB boots in \"blind mode\", + # which isn't convenient. + insmod efi_gop + insmod efi_uga + else + # These are specific to non-EFI Intel machines. + insmod vbe + insmod vga + fi +" + "")) + + (define (setup-gfxterm config font-file) + (if (memq 'gfxterm (bootloader-configuration-terminal-outputs config)) + #~(format #f "if loadfont ~a; then + setup_gfxterm +fi~%" #$font-file) + "")) + + (define (theme-colors type) + (let* ((theme (bootloader-theme config)) + (colors (type theme))) + (string-append (symbol->string (assoc-ref colors 'fg)) "/" + (symbol->string (assoc-ref colors 'bg))))) + + (define font-file + (strip-mount-point store-mount-point + (file-append grub "/share/grub/unicode.pf2"))) + + (mlet* %store-monad ((image (grub-background-image config))) + (return (and image + #~(format #$port " +function setup_gfxterm {~a} + +# Set 'root' to the partition that contains /gnu/store. +~a + +~a +~a + +insmod png +if background_image ~a; then + set color_normal=~a + set color_highlight=~a +else + set menu_color_normal=cyan/blue + set menu_color_highlight=white/blue +fi~%" + #$setup-gfxterm-body + #$(grub-root-search store-device font-file) + #$(setup-gfxterm config font-file) + #$(grub-setup-io config) + + #$(strip-mount-point store-mount-point image) + #$(theme-colors grub-theme-color-normal) + #$(theme-colors grub-theme-color-highlight)))))) + + +;;; +;;; Configuration file. +;;; + +(define (grub-setup-io config) + "Return GRUB commands to configure the input / output interfaces. The result +is a string that can be inserted in grub.cfg." + (let* ((symbols->string (lambda (list) + (string-join (map symbol->string list) " "))) + (outputs (bootloader-configuration-terminal-outputs config)) + (inputs (bootloader-configuration-terminal-inputs config)) + (unit (bootloader-configuration-serial-unit config)) + (speed (bootloader-configuration-serial-speed config)) + + ;; Respectively, GRUB_TERMINAL_OUTPUT and GRUB_TERMINAL_INPUT, + ;; as documented in GRUB manual section "Simple Configuration + ;; Handling". + (valid-outputs '(console serial serial_0 serial_1 serial_2 serial_3 + gfxterm vga_text mda_text morse spkmodem)) + (valid-inputs '(console serial serial_0 serial_1 serial_2 serial_3 + at_keyboard usb_keyboard)) + + (io (string-append + "terminal_output " + (symbols->string + (map + (lambda (output) + (if (memq output valid-outputs) output #f)) outputs)) "\n" + (if (null? inputs) + "" + (string-append + "terminal_input " + (symbols->string + (map + (lambda (input) + (if (memq input valid-inputs) input #f)) inputs)) "\n")) + ;; UNIT and SPEED are arguments to the same GRUB command + ;; ("serial"), so we process them together. + (if (or unit speed) + (string-append + "serial" + (if unit + ;; COM ports 1 through 4 + (if (and (exact-integer? unit) (<= unit 3) (>= unit 0)) + (string-append " --unit=" (number->string unit)) + #f) + "") + (if speed + (if (exact-integer? speed) + (string-append " --speed=" (number->string speed)) + #f) + "")) + "")))) + (format #f "~a" io))) + +(define (grub-root-search device file) + "Return the GRUB 'search' command to look for DEVICE, which contains FILE, +a gexp. The result is a gexp that can be inserted in the grub.cfg-generation +code." + ;; Usually FILE is a file name gexp like "/gnu/store/…-linux/vmlinuz", but + ;; it can also be something like "(hd0,msdos1)/vmlinuz" in the case of + ;; custom menu entries. In the latter case, don't emit a 'search' command. + (if (and (string? file) (not (string-prefix? "/" file))) + "" + (match device + ;; Preferably refer to DEVICE by its UUID or label. This is more + ;; efficient and less ambiguous, see . + ((? bytevector? uuid) + (format #f "search --fs-uuid --set ~a" + (uuid->string device))) + ((? string? label) + (format #f "search --label --set ~a" label)) + (#f + #~(format #f "search --file --set ~a" #$file))))) + +(define (boot-parameters->menu-entry conf) + "Convert a instance to a corresponding ." + (menu-entry + (label (boot-parameters-label conf)) + (device (boot-parameters-store-device conf)) + (device-mount-point (boot-parameters-store-mount-point conf)) + (linux (boot-parameters-kernel conf)) + (linux-arguments (boot-parameters-kernel-arguments conf)) + (initrd (boot-parameters-initrd conf)))) + +(define* (grub-configuration-file config entries + #:key + (system (%current-system)) + (old-entries '())) + "Return the GRUB configuration file corresponding to CONFIG, a + object, and where the store is available at +STORE-FS, a object. OLD-ENTRIES is taken to be a list of menu +entries corresponding to old generations of the system." + (define all-entries + (map boot-parameters->menu-entry + (append entries + (bootloader-configuration-menu-entries config)))) + + (define entry->gexp + (match-lambda + (($ label device device-mount-point + linux arguments initrd) + ;; Here DEVICE is the store and DEVICE-MOUNT-POINT is its mount point. + ;; Use the right file names for LINUX and INITRD in case + ;; DEVICE-MOUNT-POINT is not "/", meaning that the store is on a + ;; separate partition. + (let ((linux (strip-mount-point device-mount-point linux)) + (initrd (strip-mount-point device-mount-point initrd))) + #~(format port "menuentry ~s { + ~a + linux ~a ~a + initrd ~a +}~%" + #$label + #$(grub-root-search device linux) + #$linux (string-join (list #$@arguments)) + #$initrd))))) + + (mlet %store-monad ((sugar (eye-candy config + (menu-entry-device (first all-entries)) + (menu-entry-device-mount-point + (first all-entries)) + #:system system + #:port #~port))) + (define builder + #~(call-with-output-file #$output + (lambda (port) + (format port + "# This file was generated from your GuixSD configuration. Any changes +# will be lost upon reconfiguration. +") + #$sugar + (format port " +set default=~a +set timeout=~a~%" + #$(bootloader-configuration-default-entry config) + #$(bootloader-configuration-timeout config)) + #$@(map entry->gexp all-entries) + + #$@(if (pair? old-entries) + #~((format port " +submenu \"GNU system, old configurations...\" {~%") + #$@(map entry->gexp (map boot-parameters->menu-entry old-entries)) + (format port "}~%")) + #~())))) + + (gexp->derivation "grub.cfg" builder))) + + + +;;; +;;; Install procedures. +;;; + +(define install-grub + #~(lambda (bootloader device mount-point) + ;; Install GRUB on DEVICE which is mounted at MOUNT-POINT. + (let ((grub (string-append bootloader "/sbin/grub-install")) + (install-dir (string-append mount-point "/boot"))) + ;; Tell 'grub-install' that there might be a LUKS-encrypted /boot or + ;; root partition. + (setenv "GRUB_ENABLE_CRYPTODISK" "y") + + (unless (zero? (system* grub "--no-floppy" + "--boot-directory" install-dir + device)) + (error "failed to install GRUB"))))) + + + +;;; +;;; Bootloader definitions. +;;; + +(define grub-bootloader + (bootloader + (name 'grub) + (package grub) + (installer install-grub) + (configuration-file "/boot/grub/grub.cfg") + (configuration-file-generator grub-configuration-file))) + +(define* grub-efi-bootloader + (bootloader + (inherit grub-bootloader) + (name 'grub-efi) + (package grub-efi))) + + +;;; +;;; Compatibility macros. +;;; + +(define-syntax grub-configuration + (syntax-rules (grub) + ((_ (grub package) fields ...) + (if (eq? package grub) + (bootloader-configuration + (bootloader grub-bootloader) + fields ...) + (bootloader-configuration + (bootloader grub-efi-bootloader) + fields ...))) + ((_ fields ...) + (bootloader-configuration + (bootloader grub-bootloader) + fields ...)))) + +;;; grub.scm ends here diff --git a/gnu/local.mk b/gnu/local.mk index c560c71725..d0c5b9daf8 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -36,6 +36,9 @@ GNU_SYSTEM_MODULES = \ gnu.scm \ %D%/artwork.scm \ + %D%/bootloader.scm \ + %D%/bootloader/grub.scm \ + %D%/bootloader/extlinux.scm \ %D%/packages.scm \ %D%/packages/abduco.scm \ %D%/packages/abiword.scm \ @@ -443,7 +446,6 @@ GNU_SYSTEM_MODULES = \ \ %D%/system.scm \ %D%/system/file-systems.scm \ - %D%/system/grub.scm \ %D%/system/install.scm \ %D%/system/linux-container.scm \ %D%/system/linux-initrd.scm \ diff --git a/gnu/system.scm b/gnu/system.scm index f9a0da9a75..a705bf6900 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -48,6 +48,7 @@ #:use-module (gnu services) #:use-module (gnu services shepherd) #:use-module (gnu services base) + #:use-module (gnu bootloader) #:use-module (gnu system shadow) #:use-module (gnu system nss) #:use-module (gnu system locale) @@ -139,7 +140,7 @@ booted from ROOT-DEVICE" (default linux-libre)) (kernel-arguments operating-system-user-kernel-arguments (default '())) ; list of gexps/strings - (bootloader operating-system-bootloader) ; + (bootloader operating-system-bootloader) ; (initrd operating-system-initrd ; (list fs) -> M derivation (default base-initrd)) @@ -847,12 +848,11 @@ populate the \"old entries\" menu." (root-device -> (if (eq? 'uuid (file-system-title root-fs)) (uuid->string (file-system-device root-fs)) (file-system-device root-fs))) - (entry (operating-system-boot-parameters os system root-device))) - ((module-ref (resolve-interface '(gnu system grub)) - 'grub-configuration-file) - (operating-system-bootloader os) - (list entry) - #:old-entries old-entries))) + (entry (operating-system-boot-parameters os system root-device)) + (bootloader-conf -> (operating-system-bootloader os))) + ((bootloader-configuration-file-generator + (bootloader-configuration-bootloader bootloader-conf)) + bootloader-conf (list entry) #:old-entries old-entries))) (define (fs->boot-device fs) "Given FS, a object, return a value suitable for use as the diff --git a/gnu/system/grub.scm b/gnu/system/grub.scm deleted file mode 100644 index 85878de85c..0000000000 --- a/gnu/system/grub.scm +++ /dev/null @@ -1,407 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès -;;; Copyright © 2016 Chris Marusich -;;; Copyright © 2017 Leo Famulari -;;; -;;; 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 . - -(define-module (gnu system grub) - #:use-module (guix store) - #:use-module (guix packages) - #:use-module (guix derivations) - #:use-module (guix records) - #:use-module (guix monads) - #:use-module (guix gexp) - #:use-module (guix download) - #:use-module (gnu artwork) - #:use-module (gnu system) - #:use-module (gnu system file-systems) - #:autoload (gnu packages bootloaders) (grub) - #:autoload (gnu packages compression) (gzip) - #:autoload (gnu packages gtk) (guile-cairo guile-rsvg) - #:use-module (ice-9 match) - #:use-module (ice-9 regex) - #:use-module (srfi srfi-1) - #:use-module (rnrs bytevectors) - #:export (grub-image - grub-image? - grub-image-aspect-ratio - grub-image-file - - grub-theme - grub-theme? - grub-theme-images - grub-theme-color-normal - grub-theme-color-highlight - - %background-image - %default-theme - - grub-configuration - grub-configuration? - grub-configuration-device - grub-configuration-grub - - menu-entry - menu-entry? - - grub-configuration-file)) - -;;; Commentary: -;;; -;;; Configuration of GNU GRUB. -;;; -;;; Code: - -(define (strip-mount-point mount-point file) - "Strip MOUNT-POINT from FILE, which is a gexp or other lowerable object -denoting a file name." - (if (string=? mount-point "/") - file - #~(let ((file #$file)) - (if (string-prefix? #$mount-point file) - (substring #$file #$(string-length mount-point)) - file)))) - -(define-record-type* - grub-image make-grub-image - grub-image? - (aspect-ratio grub-image-aspect-ratio ;rational number - (default 4/3)) - (file grub-image-file)) ;file-valued gexp (SVG) - -(define-record-type* - grub-theme make-grub-theme - grub-theme? - (images grub-theme-images - (default '())) ;list of - (color-normal grub-theme-color-normal - (default '((fg . cyan) (bg . blue)))) - (color-highlight grub-theme-color-highlight - (default '((fg . white) (bg . blue))))) - -(define %background-image - (grub-image - (aspect-ratio 4/3) - (file (file-append %artwork-repository - "/grub/GuixSD-fully-black-4-3.svg")))) - -(define %default-theme - ;; Default theme contributed by Felipe López. - (grub-theme - (images (list %background-image)) - (color-highlight '((fg . yellow) (bg . black))) - (color-normal '((fg . light-gray) (bg . black))))) ;XXX: #x303030 - -(define-record-type* - grub-configuration make-grub-configuration - grub-configuration? - (grub grub-configuration-grub ; package - (default (@ (gnu packages bootloaders) grub))) - (device grub-configuration-device) ; string - (menu-entries grub-configuration-menu-entries ; list - (default '())) - (default-entry grub-configuration-default-entry ; integer - (default 0)) - (timeout grub-configuration-timeout ; integer - (default 5)) - (theme grub-configuration-theme ; - (default %default-theme)) - (terminal-outputs grub-configuration-terminal-outputs ; list of symbols - (default '(gfxterm))) - (terminal-inputs grub-configuration-terminal-inputs ; list of symbols - (default '())) - (serial-unit grub-configuration-serial-unit ; integer | #f - (default #f)) - (serial-speed grub-configuration-serial-speed ; integer | #f - (default #f))) - -(define-record-type* - menu-entry make-menu-entry - menu-entry? - (label menu-entry-label) - (device menu-entry-device ; file system uuid, label, or #f - (default #f)) - (device-mount-point menu-entry-device-mount-point - (default "/")) - (linux menu-entry-linux) - (linux-arguments menu-entry-linux-arguments - (default '())) ; list of string-valued gexps - (initrd menu-entry-initrd)) ; file name of the initrd as a gexp - - -;;; -;;; Background image & themes. -;;; - -(define* (svg->png svg #:key width height) - "Build a PNG of HEIGHT x WIDTH from SVG." - (gexp->derivation "grub-image.png" - (with-imported-modules '((gnu build svg)) - #~(begin - ;; We need these two libraries. - (add-to-load-path (string-append #+guile-rsvg - "/share/guile/site/" - (effective-version))) - (add-to-load-path (string-append #+guile-cairo - "/share/guile/site/" - (effective-version))) - - (use-modules (gnu build svg)) - (svg->png #+svg #$output - #:width #$width - #:height #$height))))) - -(define* (grub-background-image config #:key (width 1024) (height 768)) - "Return the GRUB background image defined in CONFIG with a ratio of -WIDTH/HEIGHT, or #f if none was found." - (let* ((ratio (/ width height)) - (image (find (lambda (image) - (= (grub-image-aspect-ratio image) ratio)) - (grub-theme-images (grub-configuration-theme config))))) - (if image - (svg->png (grub-image-file image) - #:width width #:height height) - (with-monad %store-monad - (return #f))))) - -(define* (eye-candy config store-device store-mount-point - #:key system port) - "Return in %STORE-MONAD a gexp that writes to PORT (a port-valued gexp) the -'grub.cfg' part concerned with graphics mode, background images, colors, and -all that. STORE-DEVICE designates the device holding the store, and -STORE-MOUNT-POINT is its mount point; these are used to determine where the -background image and fonts must be searched for. SYSTEM must be the target -system string---e.g., \"x86_64-linux\"." - (define setup-gfxterm-body - ;; Intel and EFI systems need to be switched into graphics mode, whereas - ;; most other modern architectures have no other mode and therefore don't - ;; need to be switched. - (if (string-match "^(x86_64|i[3-6]86)-" system) - " - # Leave 'gfxmode' to 'auto'. - insmod video_bochs - insmod video_cirrus - insmod gfxterm - - if [ \"${grub_platform}\" == efi ]; then - # This is for (U)EFI systems (these modules are unavailable in the - # non-EFI GRUB.) If we don't load them, GRUB boots in \"blind mode\", - # which isn't convenient. - insmod efi_gop - insmod efi_uga - else - # These are specific to non-EFI Intel machines. - insmod vbe - insmod vga - fi -" - "")) - - (define (setup-gfxterm config font-file) - (if (memq 'gfxterm (grub-configuration-terminal-outputs config)) - #~(format #f "if loadfont ~a; then - setup_gfxterm -fi~%" #$font-file) - "")) - - (define (theme-colors type) - (let* ((theme (grub-configuration-theme config)) - (colors (type theme))) - (string-append (symbol->string (assoc-ref colors 'fg)) "/" - (symbol->string (assoc-ref colors 'bg))))) - - (define font-file - (strip-mount-point store-mount-point - (file-append grub "/share/grub/unicode.pf2"))) - - (mlet* %store-monad ((image (grub-background-image config))) - (return (and image - #~(format #$port " -function setup_gfxterm {~a} - -# Set 'root' to the partition that contains /gnu/store. -~a - -~a -~a - -insmod png -if background_image ~a; then - set color_normal=~a - set color_highlight=~a -else - set menu_color_normal=cyan/blue - set menu_color_highlight=white/blue -fi~%" - #$setup-gfxterm-body - #$(grub-root-search store-device font-file) - #$(setup-gfxterm config font-file) - #$(grub-setup-io config) - - #$(strip-mount-point store-mount-point image) - #$(theme-colors grub-theme-color-normal) - #$(theme-colors grub-theme-color-highlight)))))) - - -;;; -;;; Configuration file. -;;; - -(define (grub-setup-io config) - "Return GRUB commands to configure the input / output interfaces. The result -is a string that can be inserted in grub.cfg." - (let* ((symbols->string (lambda (list) - (string-join (map symbol->string list) " "))) - (outputs (grub-configuration-terminal-outputs config)) - (inputs (grub-configuration-terminal-inputs config)) - (unit (grub-configuration-serial-unit config)) - (speed (grub-configuration-serial-speed config)) - - ;; Respectively, GRUB_TERMINAL_OUTPUT and GRUB_TERMINAL_INPUT, - ;; as documented in GRUB manual section "Simple Configuration - ;; Handling". - (valid-outputs '(console serial serial_0 serial_1 serial_2 serial_3 - gfxterm vga_text mda_text morse spkmodem)) - (valid-inputs '(console serial serial_0 serial_1 serial_2 serial_3 - at_keyboard usb_keyboard)) - - (io (string-append - "terminal_output " - (symbols->string - (map - (lambda (output) - (if (memq output valid-outputs) output #f)) outputs)) "\n" - (if (null? inputs) - "" - (string-append - "terminal_input " - (symbols->string - (map - (lambda (input) - (if (memq input valid-inputs) input #f)) inputs)) "\n")) - ;; UNIT and SPEED are arguments to the same GRUB command - ;; ("serial"), so we process them together. - (if (or unit speed) - (string-append - "serial" - (if unit - ;; COM ports 1 through 4 - (if (and (exact-integer? unit) (<= unit 3) (>= unit 0)) - (string-append " --unit=" (number->string unit)) - #f) - "") - (if speed - (if (exact-integer? speed) - (string-append " --speed=" (number->string speed)) - #f) - "")) - "")))) - (format #f "~a" io))) - -(define (grub-root-search device file) - "Return the GRUB 'search' command to look for DEVICE, which contains FILE, -a gexp. The result is a gexp that can be inserted in the grub.cfg-generation -code." - ;; Usually FILE is a file name gexp like "/gnu/store/…-linux/vmlinuz", but - ;; it can also be something like "(hd0,msdos1)/vmlinuz" in the case of - ;; custom menu entries. In the latter case, don't emit a 'search' command. - (if (and (string? file) (not (string-prefix? "/" file))) - "" - (match device - ;; Preferably refer to DEVICE by its UUID or label. This is more - ;; efficient and less ambiguous, see . - ((? bytevector? uuid) - (format #f "search --fs-uuid --set ~a" - (uuid->string device))) - ((? string? label) - (format #f "search --label --set ~a" label)) - (#f - #~(format #f "search --file --set ~a" #$file))))) - -(define (boot-parameters->menu-entry conf) - "Convert a instance to a corresponding ." - (menu-entry - (label (boot-parameters-label conf)) - (device (boot-parameters-store-device conf)) - (device-mount-point (boot-parameters-store-mount-point conf)) - (linux (boot-parameters-kernel conf)) - (linux-arguments (boot-parameters-kernel-arguments conf)) - (initrd (boot-parameters-initrd conf)))) - -(define* (grub-configuration-file config entries - #:key - (system (%current-system)) - (old-entries '())) - "Return the GRUB configuration file corresponding to CONFIG, a - object, and where the store is available at STORE-FS, a - object. OLD-ENTRIES is taken to be a list of menu entries -corresponding to old generations of the system." - (define all-entries - (append (map boot-parameters->menu-entry entries) - (grub-configuration-menu-entries config))) - - (define entry->gexp - (match-lambda - (($ label device device-mount-point - linux arguments initrd) - ;; Here DEVICE is the store and DEVICE-MOUNT-POINT is its mount point. - ;; Use the right file names for LINUX and INITRD in case - ;; DEVICE-MOUNT-POINT is not "/", meaning that the store is on a - ;; separate partition. - (let ((linux (strip-mount-point device-mount-point linux)) - (initrd (strip-mount-point device-mount-point initrd))) - #~(format port "menuentry ~s { - ~a - linux ~a ~a - initrd ~a -}~%" - #$label - #$(grub-root-search device linux) - #$linux (string-join (list #$@arguments)) - #$initrd))))) - - (mlet %store-monad ((sugar (eye-candy config - (menu-entry-device (first all-entries)) - (menu-entry-device-mount-point - (first all-entries)) - #:system system - #:port #~port))) - (define builder - #~(call-with-output-file #$output - (lambda (port) - (format port - "# This file was generated from your GuixSD configuration. Any changes -# will be lost upon reconfiguration. -") - #$sugar - (format port " -set default=~a -set timeout=~a~%" - #$(grub-configuration-default-entry config) - #$(grub-configuration-timeout config)) - #$@(map entry->gexp all-entries) - - #$@(if (pair? old-entries) - #~((format port " -submenu \"GNU system, old configurations...\" {~%") - #$@(map entry->gexp (map boot-parameters->menu-entry old-entries)) - (format port "}~%")) - #~())))) - - (gexp->derivation "grub.cfg" builder))) - -;;; grub.scm ends here diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 2c8b954c80..080014cde4 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -49,7 +49,7 @@ #:use-module (gnu system shadow) #:use-module (gnu system pam) #:use-module (gnu system linux-initrd) - #:use-module (gnu system grub) + #:use-module (gnu bootloader) #:use-module (gnu system file-systems) #:use-module (gnu system) #:use-module (gnu services) diff --git a/gnu/tests.scm b/gnu/tests.scm index 810711ab91..2886a982f4 100644 --- a/gnu/tests.scm +++ b/gnu/tests.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016, 2017 Ludovic Courtès +;;; Copyright © 2017 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,8 +21,8 @@ #:use-module (guix gexp) #:use-module (guix utils) #:use-module (guix records) + #:use-module (gnu bootloader grub) #:use-module (gnu system) - #:use-module (gnu system grub) #:use-module (gnu system file-systems) #:use-module (gnu system shadow) #:use-module (gnu services) diff --git a/gnu/tests/nfs.scm b/gnu/tests/nfs.scm index 1f28f5a5b8..9e1ac1d55a 100644 --- a/gnu/tests/nfs.scm +++ b/gnu/tests/nfs.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Ludovic Courtès ;;; Copyright © 2016 John Darrington +;;; Copyright © 2017 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,8 +20,8 @@ (define-module (gnu tests nfs) #:use-module (gnu tests) + #:use-module (gnu bootloader grub) #:use-module (gnu system) - #:use-module (gnu system grub) #:use-module (gnu system file-systems) #:use-module (gnu system shadow) #:use-module (gnu system vm) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 9c09767508..5fd0d7600c 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -38,10 +38,10 @@ #:use-module (guix build utils) #:use-module (gnu build install) #:use-module (gnu system) + #:use-module (gnu bootloader) #:use-module (gnu system file-systems) #:use-module (gnu system linux-container) #:use-module (gnu system vm) - #:use-module (gnu system grub) #:use-module (gnu services) #:use-module (gnu services shepherd) #:use-module (gnu services herd) @@ -598,8 +598,12 @@ output when building a system derivation, such as a disk image." #:image-size image-size #:full-boot? full-boot? #:mappings mappings)) - (grub (package->derivation (grub-configuration-grub - (operating-system-bootloader os)))) + (bootloader (let ((bootloader (bootloader-package + (bootloader-configuration-bootloader + (operating-system-bootloader os))))) + (if bootloader + (package->derivation bootloader) + (return #f)))) (grub.cfg (if (eq? 'container action) (return #f) (operating-system-bootcfg os @@ -611,8 +615,8 @@ output when building a system derivation, such as a disk image." ;; --no-grub is passed, because GRUB.CFG because we then use it as a GC ;; root. See . (drvs -> (if (memq action '(init reconfigure)) - (if bootloader? - (list sys grub.cfg grub) + (if (and bootloader? bootloader) + (list sys grub.cfg bootloader) (list sys grub.cfg)) (list sys))) (% (if derivations-only? @@ -628,8 +632,8 @@ output when building a system derivation, such as a disk image." drvs) ;; Make sure GRUB is accessible. - (when bootloader? - (let ((prefix (derivation->output-path grub))) + (when (and bootloader? bootloader) + (let ((prefix (derivation->output-path bootloader))) (setenv "PATH" (string-append prefix "/bin:" prefix "/sbin:" (getenv "PATH"))))) @@ -832,7 +836,7 @@ resulting from command-line parsing." ((first second) second) (_ #f))) (device (and bootloader? - (grub-configuration-device + (bootloader-configuration-device (operating-system-bootloader os))))) (with-store store -- cgit 1.4.1 From 9121ce553d267e9fdd4c6b9a268ce9d8677dd234 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Tue, 9 May 2017 10:52:02 +0200 Subject: bootloader: Adapt vm to new bootloader API. * gnu/build/install.scm (install-boot-config): New procedure. (install-grub): Move to (gnu bootloader grub). * gnu/build/vm.scm (register-bootcfg-root): Rename register-grub.cfg-root and adjust accordingly. (initialize-hard-disk): Takes a bootloader-package, bootcfg, bootcfg-location and bootloader-installer procedure. Adjust accordingly. * gnu/system/vm.scm (qemu-image): Adjust to initialize-hard-disk. (system-disk-image, system-qemu-image, system-qemu-image/shared-store): Adjust to qemu-image. --- gnu/build/install.scm | 36 ++++++++---------------------------- gnu/build/vm.scm | 17 +++++++++++------ gnu/system/vm.scm | 36 +++++++++++++++++++++++++----------- 3 files changed, 44 insertions(+), 45 deletions(-) (limited to 'gnu') diff --git a/gnu/build/install.scm b/gnu/build/install.scm index 5cb6055a0c..9e30c0d23e 100644 --- a/gnu/build/install.scm +++ b/gnu/build/install.scm @@ -22,8 +22,7 @@ #:use-module (guix build store-copy) #:use-module (srfi srfi-26) #:use-module (ice-9 match) - #:export (install-grub - install-grub-config + #:export (install-boot-config evaluate-populate-directive populate-root-file-system reset-timestamps @@ -39,36 +38,17 @@ ;;; ;;; Code: -(define (install-grub grub.cfg device mount-point) - "Install GRUB with GRUB.CFG on DEVICE, which is assumed to be mounted on -MOUNT-POINT. - -Note that the caller must make sure that GRUB.CFG is registered as a GC root -so that the fonts, background images, etc. referred to by GRUB.CFG are not -GC'd." - (install-grub-config grub.cfg mount-point) - - ;; Tell 'grub-install' that there might be a LUKS-encrypted /boot or root - ;; partition. - (setenv "GRUB_ENABLE_CRYPTODISK" "y") - - (unless (zero? (system* "grub-install" "--no-floppy" - "--boot-directory" - (string-append mount-point "/boot") - device)) - (error "failed to install GRUB"))) - -(define (install-grub-config grub.cfg mount-point) - "Atomically copy GRUB.CFG into boot/grub/grub.cfg on the MOUNT-POINT. Note -that the caller must make sure that GRUB.CFG is registered as a GC root so -that the fonts, background images, etc. referred to by GRUB.CFG are not GC'd." - (let* ((target (string-append mount-point "/boot/grub/grub.cfg")) +(define (install-boot-config bootcfg bootcfg-location mount-point) + "Atomically copy BOOTCFG into BOOTCFG-LOCATION on the MOUNT-POINT. Note +that the caller must make sure that BOOTCFG is registered as a GC root so +that the fonts, background images, etc. referred to by BOOTCFG are not GC'd." + (let* ((target (string-append mount-point bootcfg-location)) (pivot (string-append target ".new"))) (mkdir-p (dirname target)) - ;; Copy GRUB.CFG instead of just symlinking it, because symlinks won't + ;; Copy BOOTCFG instead of just symlinking it, because symlinks won't ;; work when /boot is on a separate partition. Do that atomically. - (copy-file grub.cfg pivot) + (copy-file bootcfg pivot) (rename-file pivot target))) (define (evaluate-populate-directive directive target) diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index 1eb9a4c45e..9a77bee72d 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -285,15 +285,18 @@ SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation." (unless register-closures? (reset-timestamps target)))) -(define (register-grub.cfg-root target bootcfg) +(define (register-bootcfg-root target bootcfg) "On file system TARGET, register BOOTCFG as a GC root." (let ((directory (string-append target "/var/guix/gcroots"))) (mkdir-p directory) - (symlink bootcfg (string-append directory "/grub.cfg")))) + (symlink bootcfg (string-append directory "/bootcfg")))) (define* (initialize-hard-disk device #:key - grub.cfg + bootloader-package + bootcfg + bootcfg-location + bootloader-installer (partitions '())) "Initialize DEVICE as a disk containing all the objects listed in PARTITIONS, and using BOOTCFG as its bootloader configuration file. @@ -311,10 +314,12 @@ passing it a directory name where it is mounted." (display "mounting root partition...\n") (mkdir-p target) (mount (partition-device root) target (partition-file-system root)) - (install-grub grub.cfg device target) + (install-boot-config bootcfg bootcfg-location target) + (when bootloader-installer + (bootloader-installer bootloader-package device target)) - ;; Register GRUB.CFG as a GC root. - (register-grub.cfg-root target grub.cfg) + ;; Register BOOTCFG as a GC root. + (register-bootcfg-root target bootcfg) (umount target))) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 080014cde4..2ee5c2b1e7 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -46,6 +46,7 @@ #:select (%guile-static-stripped)) #:use-module (gnu packages admin) + #:use-module (gnu bootloader) #:use-module (gnu system shadow) #:use-module (gnu system pam) #:use-module (gnu system linux-initrd) @@ -176,8 +177,9 @@ made available under the /xchg CIFS share." (disk-image-format "qcow2") (file-system-type "ext4") file-system-label - os-derivation - grub-configuration + os-drv + bootcfg-drv + bootloader (register-closures? #t) (inputs '()) copy-inputs?) @@ -201,7 +203,7 @@ the image." (guix build utils)) (let ((inputs - '#$(append (list qemu parted grub e2fsprogs) + '#$(append (list qemu parted e2fsprogs) (map canonical-package (list sed grep coreutils findutils gawk)) (if register-closures? (list guix) '()))) @@ -223,7 +225,7 @@ the image." #:closures graphs #:copy-closures? #$copy-inputs? #:register-closures? #$register-closures? - #:system-directory #$os-derivation)) + #:system-directory #$os-drv)) (partitions (list (partition (size #$(- disk-image-size (* 10 (expt 2 20)))) @@ -233,7 +235,13 @@ the image." (initializer initialize))))) (initialize-hard-disk "/dev/vda" #:partitions partitions - #:grub.cfg #$grub-configuration) + #:bootloader-package + #$(bootloader-package bootloader) + #:bootcfg #$bootcfg-drv + #:bootcfg-location + #$(bootloader-configuration-file bootloader) + #:bootloader-installer + #$(bootloader-installer bootloader)) (reboot))))) #:system system #:make-disk-image? #t @@ -287,8 +295,10 @@ to USB sticks meant to be read-only." (mlet* %store-monad ((os-drv (operating-system-derivation os)) (bootcfg (operating-system-bootcfg os))) (qemu-image #:name name - #:os-derivation os-drv - #:grub-configuration bootcfg + #:os-drv os-drv + #:bootcfg-drv bootcfg + #:bootloader (bootloader-configuration-bootloader + (operating-system-bootloader os)) #:disk-image-size disk-image-size #:disk-image-format "raw" #:file-system-type file-system-type @@ -330,8 +340,10 @@ of the GNU system as described by OS." (mlet* %store-monad ((os-drv (operating-system-derivation os)) (bootcfg (operating-system-bootcfg os))) - (qemu-image #:os-derivation os-drv - #:grub-configuration bootcfg + (qemu-image #:os-drv os-drv + #:bootcfg-drv bootcfg + #:bootloader (bootloader-configuration-bootloader + (operating-system-bootloader os)) #:disk-image-size disk-image-size #:file-system-type file-system-type #:inputs `(("system" ,os-drv) @@ -429,8 +441,10 @@ bootloader refers to: OS kernel, initrd, bootloader data, etc." ;; BOOTCFG and all its dependencies, including the output of OS-DRV. ;; This is more than needed (we only need the kernel, initrd, GRUB for its ;; font, and the background image), but it's hard to filter that. - (qemu-image #:os-derivation os-drv - #:grub-configuration bootcfg + (qemu-image #:os-drv os-drv + #:bootcfg-drv bootcfg + #:bootloader (bootloader-configuration-bootloader + (operating-system-bootloader os)) #:disk-image-size disk-image-size #:inputs (if full-boot? `(("bootcfg" ,bootcfg)) -- cgit 1.4.1 From bcaf67c44f4556b4a632310013a06318811aa0f0 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Sun, 2 Apr 2017 15:10:52 +0200 Subject: bootloader: Add bootloader name to boot-parameters record. * gnu/system.scm ()[name]: New field. (boot-parameters-boot-name): Ditto. (operating-system-boot-parameters-file): Add new field. (operating-system-boot-parameters): Ditto. (read-boot-parameters): Ditto. --- gnu/system.scm | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'gnu') diff --git a/gnu/system.scm b/gnu/system.scm index a705bf6900..5bd60176fe 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -104,6 +104,7 @@ boot-parameters? boot-parameters-label boot-parameters-root-device + boot-parameters-boot-name boot-parameters-store-device boot-parameters-store-mount-point boot-parameters-kernel @@ -214,6 +215,7 @@ directly by the user." ;; exactly to the device field of the object representing the ;; OS's root file system, so it might be a device path like "/dev/sda3". (root-device boot-parameters-root-device) + (boot-name boot-parameters-boot-name) (store-device boot-parameters-store-device) (store-mount-point boot-parameters-store-mount-point) (kernel boot-parameters-kernel) @@ -232,6 +234,11 @@ directly by the user." (label label) (root-device root) + (boot-name + (match (assq 'boot-name rest) + ((_ args) args) + (#f 'grub))) ; for compatibility reasons. + ;; In the past, we would store the directory name of the kernel instead ;; of the absolute file name of its image. Detect that and correct it. (kernel (if (string=? linux (direct-store-path linux)) @@ -869,6 +876,9 @@ kernel arguments for that derivation to ." (mlet* %store-monad ((initrd (operating-system-initrd-file os)) (store -> (operating-system-store-file-system os)) + (bootloader -> (bootloader-configuration-bootloader + (operating-system-bootloader os))) + (boot-name -> (bootloader-name bootloader)) (label -> (kernel->boot-label (operating-system-kernel os)))) (return (boot-parameters (label label) @@ -879,6 +889,7 @@ kernel arguments for that derivation to ." (operating-system-kernel-arguments os system.drv root-device) (operating-system-user-kernel-arguments os))) (initrd initrd) + (boot-name boot-name) (store-device (fs->boot-device store)) (store-mount-point (file-system-mount-point store)))))) @@ -904,6 +915,7 @@ being stored into the \"parameters\" file)." (kernel-arguments #$(boot-parameters-kernel-arguments params)) (initrd #$(boot-parameters-initrd params)) + (boot-name #$(boot-parameters-boot-name params)) (store (device #$(boot-parameters-store-device params)) (mount-point #$(boot-parameters-store-mount-point params)))) -- cgit 1.4.1 From 7ee7ee16ea766d30280541c932a980ec8d0762a7 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 16 May 2017 15:09:57 +0200 Subject: gnu: guix: Update snapshot. * gnu/packages/package-management.scm (guix): Update to ce92d26. --- gnu/packages/package-management.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 8ebf6b0578..ceaf51b676 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -73,8 +73,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "0.12.0") - (commit "ba2260dbbc5a3c915e2cbd54d93f2f3af2a864c3") - (revision 10)) + (commit "ce92d269fea0a2bfac0ac20414f77127d2f07500") + (revision 11)) (package (name "guix") @@ -90,7 +90,7 @@ (commit commit))) (sha256 (base32 - "0nkwbblsnl7kv2n8jf8c6rl3a7dynaqxizhhni18vbnmvza35c79")) + "17l9r2mdzzv8vfxb3bc5zkdqkl472q979iwsarp7lcqss1jxys7w")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments -- cgit 1.4.1 From 14afc7b89c8491e1bd9501eda08c410e9ab70311 Mon Sep 17 00:00:00 2001 From: Andy Patterson Date: Mon, 3 Apr 2017 09:01:18 -0400 Subject: gnu: cl-slynk: Clarify the description. * gnu/packages/lisp.scm (sbcl-slynk-boot0)[description]: Describe slime. --- gnu/packages/lisp.scm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 57d0191b70..b5d5e1903b 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2016 Federico Beffa ;;; Copyright © 2016, 2017 ng0 -;;; Copyright © 2016 Andy Patterson +;;; Copyright © 2016, 2017 Andy Patterson ;;; Copyright © 2017 Ricardo Wurmus ;;; Copyright © 2017 Efraim Flashner ;;; @@ -950,11 +950,11 @@ productive, customizable lisp based systems.") (arguments `(#:tests? #f)) ; No test suite (synopsis "Common Lisp IDE for Emacs") - (description "SLY is a fork of SLIME. It also features a completely -redesigned REPL based on Emacs's own full-featured comint.el, live code -annotations, and a consistent interactive button interface. Everything can be -copied to the REPL. One can create multiple inspectors with independent -history.") + (description "SLY is a fork of SLIME, an IDE backend for Common Lisp. +It also features a completely redesigned REPL based on Emacs's own +full-featured comint.el, live code annotations, and a consistent interactive +button interface. Everything can be copied to the REPL. One can create +multiple inspectors with independent history.") (home-page "https://github.com/joaotavora/sly") (license license:public-domain) (properties `((cl-source-variant . ,(delay cl-slynk))))))) -- cgit 1.4.1 From 75e8b3af69dc3b1544c26ddd52bddb225f217d99 Mon Sep 17 00:00:00 2001 From: Andy Patterson Date: Mon, 3 Apr 2017 09:01:19 -0400 Subject: gnu: cl-slynk: Explain some naming choices. * gnu/packages/lisp.scm (sbcl-slynk-boot0): Add comments explaining its purpose and the reason its package-name must differ from its name. --- gnu/packages/lisp.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index b5d5e1903b..6b4a177632 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -904,11 +904,15 @@ productive, customizable lisp based systems.") (outputs '("out")) (arguments '())))) +;; The slynk that users expect to install includes all of slynk's contrib +;; modules. Therefore, we build the base module and all contribs first; then +;; we expose the union of these as `sbcl-slynk'. The following variable +;; describes the base module. (define sbcl-slynk-boot0 (let ((revision "1") (commit "5706cd45d484a4f25795abe8e643509d31968aa2")) (package - (name "sbcl-slynk") + (name "sbcl-slynk") ; name must refer to the system name for now (version (string-append "1.0.0-beta-" revision "." (string-take commit 7))) (source (origin -- cgit 1.4.1 From 290bf612bb290bccf0bb93b0b34448ddee46c6ef Mon Sep 17 00:00:00 2001 From: Andy Patterson Date: Mon, 3 Apr 2017 09:01:22 -0400 Subject: gnu: cl-stumpwm: Build the library in "lib" and the program in "bin". * gnu/packages/lisp.scm (sbcl-stumpwm)[outputs]: Remove "bin" and add "lib". [arguments]<#:phases>: Change the target of `build-program' to the "out" output. Likewise, change the target of the desktop file generation. (sbcl-stumpwm+slynk)[inputs]: Use the "lib" output of sbcl-stumpwm. --- gnu/packages/lisp.scm | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 6b4a177632..c395effd1c 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -853,7 +853,7 @@ from other CLXes around the net.") (build-system asdf-build-system/sbcl) (inputs `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre) ("sbcl-clx" ,sbcl-clx))) - (outputs '("out" "bin")) + (outputs '("out" "lib")) (arguments '(#:special-dependencies '("sb-posix") #:phases @@ -862,20 +862,18 @@ from other CLXes around the net.") (lambda* (#:key lisp outputs inputs #:allow-other-keys) (build-program lisp - (string-append (assoc-ref outputs "bin") "/bin/stumpwm") + (string-append (assoc-ref outputs "out") "/bin/stumpwm") #:inputs inputs #:entry-program '((stumpwm:stumpwm) 0)))) (add-after 'build-program 'create-desktop-file - (lambda* (#:key outputs lisp binary? #:allow-other-keys) - (let ((output (or (assoc-ref outputs "bin") - (assoc-ref outputs "out"))) - (xsessions "/share/xsessions")) - (mkdir-p (string-append output xsessions)) - (with-output-to-file - (string-append output xsessions - "/stumpwm.desktop") - (lambda _ - (format #t + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (xsessions (string-append out "/share/xsessions"))) + (mkdir-p xsessions) + (call-with-output-file + (string-append xsessions "/stumpwm.desktop") + (lambda (file) + (format file "[Desktop Entry]~@ Name=stumpwm~@ Comment=The Stump Window Manager~@ @@ -883,7 +881,7 @@ from other CLXes around the net.") TryExec=~@*~a/bin/stumpwm~@ Icon=~@ Type=Application~%" - output))) + out))) #t)))))) (synopsis "Window manager written in Common Lisp") (description "Stumpwm is a window manager written entirely in Common Lisp. @@ -1143,7 +1141,7 @@ multiple inspectors with independent history.") (name "sbcl-stumpwm-with-slynk") (outputs '("out")) (native-inputs - `(("stumpwm" ,sbcl-stumpwm) + `(("stumpwm" ,sbcl-stumpwm "lib") ("slynk" ,sbcl-slynk))) (arguments (substitute-keyword-arguments (package-arguments sbcl-stumpwm) @@ -1164,6 +1162,6 @@ multiple inspectors with independent history.") (delete 'copy-source) (delete 'build) (delete 'check) - (delete 'link-dependencies) + (delete 'create-asd-file) (delete 'cleanup) (delete 'create-symlinks))))))) -- cgit 1.4.1 From 35189728cdee8a3755640a82c0094507c7fcfc76 Mon Sep 17 00:00:00 2001 From: Andy Patterson Date: Mon, 3 Apr 2017 09:01:23 -0400 Subject: build-system/asdf: Use asdf to determine dependencies. This removes the need for conventions to determine which inputs are run-time dependencies, and also the need to specify "special" dependencies. * guix/build/lisp-utils.scm (patch-asd-file, lisp-dependencies) (wrap-perform-method): Remove them. (inputs->asd-file-map, system-dependencies, generate-system-definition) (generate-dependency-links, make-asd-file): New procedures. (lisp-eval-program): Add an error if no lisp matches. (compile-system): Don't use asdf's in-built asd-file generator. --- gnu/packages/lisp.scm | 5 +- guix/build-system/asdf.scm | 7 +- guix/build/asdf-build-system.scm | 51 +++++------ guix/build/lisp-utils.scm | 185 ++++++++++++++++++++++++++------------- 4 files changed, 145 insertions(+), 103 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index c395effd1c..ca83ec9977 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -822,8 +822,6 @@ compatible with ANSI-compliant Common Lisp implementations.") (substitute* "clx.asd" (("\\(:file \"trapezoid\"\\)") "")))))) (build-system asdf-build-system/sbcl) - (arguments - '(#:special-dependencies '("sb-bsd-sockets"))) (home-page "http://www.cliki.net/portable-clx") (synopsis "X11 client library for Common Lisp") (description "CLX is an X11 client library for Common Lisp. The code was @@ -855,8 +853,7 @@ from other CLXes around the net.") ("sbcl-clx" ,sbcl-clx))) (outputs '("out" "lib")) (arguments - '(#:special-dependencies '("sb-posix") - #:phases + '(#:phases (modify-phases %standard-phases (add-after 'create-symlinks 'build-program (lambda* (#:key lisp outputs inputs #:allow-other-keys) diff --git a/guix/build-system/asdf.scm b/guix/build-system/asdf.scm index f28c098ea2..4b5af95c9a 100644 --- a/guix/build-system/asdf.scm +++ b/guix/build-system/asdf.scm @@ -194,8 +194,7 @@ set up using CL source package conventions." (define base-arguments (if target-is-source? (strip-keyword-arguments - '(#:tests? #:special-dependencies #:asd-file - #:test-only-systems #:lisp) + '(#:tests? #:asd-file #:lisp) (package-arguments pkg)) (package-arguments pkg))) @@ -262,9 +261,7 @@ set up using CL source package conventions." (lambda* (store name inputs #:key source outputs (tests? #t) - (special-dependencies ''()) (asd-file #f) - (test-only-systems ''()) (lisp lisp-implementation) (phases '(@ (guix build asdf-build-system) %standard-phases)) @@ -284,9 +281,7 @@ set up using CL source package conventions." ((source) source) (source source)) #:lisp ,lisp - #:special-dependencies ,special-dependencies #:asd-file ,asd-file - #:test-only-systems ,test-only-systems #:system ,system #:tests? ,tests? #:phases ,phases diff --git a/guix/build/asdf-build-system.scm b/guix/build/asdf-build-system.scm index 10873e98d9..a16f11965d 100644 --- a/guix/build/asdf-build-system.scm +++ b/guix/build/asdf-build-system.scm @@ -21,6 +21,7 @@ #:use-module (guix build utils) #:use-module (guix build lisp-utils) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) #:use-module (ice-9 rdelim) #:use-module (ice-9 receive) @@ -161,31 +162,25 @@ valid." (format #t "test suite not run~%"))) #t) -(define* (patch-asd-files #:key outputs +(define* (create-asd-file #:key outputs inputs lisp - special-dependencies - test-only-systems + asd-file #:allow-other-keys) - "Patch any asd files created by the compilation process so that they can -find their dependencies. Exclude any TEST-ONLY-SYSTEMS which were only -included to run tests. Add any SPECIAL-DEPENDENCIES which the LISP -implementation itself provides." - (let* ((out (library-output outputs)) - (name (remove-lisp-from-name (output-path->package-name out) lisp)) - (registry (lset-difference - (lambda (input system) - (match input - ((name . path) (string=? name system)))) - (lisp-dependencies lisp inputs) - test-only-systems)) - (lisp-systems (map first registry))) - - (for-each - (lambda (asd-file) - (patch-asd-file asd-file registry lisp - (append lisp-systems special-dependencies))) - (find-files out "\\.asd$"))) + "Create a system definition file for the built system." + (let*-values (((out) (library-output outputs)) + ((full-name version) (package-name->name+version + (strip-store-file-name out))) + ((name) (remove-lisp-from-name full-name lisp)) + ((new-asd-file) (string-append (library-directory out lisp) + "/" name ".asd"))) + + (make-asd-file new-asd-file + #:lisp lisp + #:system name + #:version version + #:inputs inputs + #:system-asd-file asd-file)) #t) (define* (symlink-asd-files #:key outputs lisp #:allow-other-keys) @@ -193,9 +188,6 @@ implementation itself provides." (let* ((out (library-output outputs))) (for-each (lambda (asd-file) - (substitute* asd-file - ((";;; Built for.*") "") ; remove potential non-determinism - (("^\\(DEFSYSTEM(.*)$" all end) (string-append "(asdf:defsystem" end))) (receive (new-asd-file asd-file-directory) (bundle-asd-file out asd-file lisp) (mkdir-p asd-file-directory) @@ -205,12 +197,11 @@ implementation itself provides." (prepend-to-source-registry (string-append asd-file-directory "/")))) - (find-files (string-append out %object-prefix) "\\.asd$")) -) + (find-files (string-append out %object-prefix) "\\.asd$"))) #t) (define* (cleanup-files #:key outputs lisp - #:allow-other-keys) + #:allow-other-keys) "Remove any compiled files which are not a part of the final bundle." (let ((out (library-output outputs))) (match lisp @@ -261,8 +252,8 @@ implementation itself provides." (add-before 'build 'copy-source copy-source) (replace 'check check) (replace 'strip strip) - (add-after 'check 'link-dependencies patch-asd-files) - (add-after 'link-dependencies 'cleanup cleanup-files) + (add-after 'check 'create-asd-file create-asd-file) + (add-after 'create-asd-file 'cleanup cleanup-files) (add-after 'cleanup 'create-symlinks symlink-asd-files))) (define* (asdf-build #:key inputs diff --git a/guix/build/lisp-utils.scm b/guix/build/lisp-utils.scm index 47399bc187..4f1565b55c 100644 --- a/guix/build/lisp-utils.scm +++ b/guix/build/lisp-utils.scm @@ -18,6 +18,7 @@ (define-module (guix build lisp-utils) #:use-module (ice-9 format) + #:use-module (ice-9 hash-table) #:use-module (ice-9 match) #:use-module (ice-9 regex) #:use-module (srfi srfi-1) @@ -32,15 +33,14 @@ generate-executable-wrapper-system generate-executable-entry-point generate-executable-for-system - patch-asd-file bundle-install-prefix - lisp-dependencies bundle-asd-file remove-lisp-from-name wrap-output-translations prepend-to-source-registry build-program - build-image)) + build-image + make-asd-file)) ;;; Commentary: ;;; @@ -64,6 +64,23 @@ (define (remove-lisp-from-name name lisp) (string-drop name (1+ (string-length lisp)))) +(define (inputs->asd-file-map inputs lisp) + "Produce a hash table of the form (system . asd-file), where system is the +name of an ASD system, and asd-file is the full path to its definition." + (alist->hash-table + (filter-map + (match-lambda + ((_ . path) + (let ((prefix (string-append path (bundle-install-prefix lisp)))) + (and (directory-exists? prefix) + (match (find-files prefix "\\.asd$") + ((asd-file) + (cons + (string-drop-right (basename asd-file) 4) ; drop ".asd" + asd-file)) + (_ #f)))))) + inputs))) + (define (wrap-output-translations translations) `(:output-translations ,@translations @@ -80,7 +97,8 @@ with PROGRAM." (match lisp ("sbcl" `(,(%lisp) "--non-interactive" "--eval" ,program)) - ("ecl" `(,(%lisp) "-eval" ,program "-eval" "(quit)")))) + ("ecl" `(,(%lisp) "-eval" ,program "-eval" "(quit)")) + (_ (error "The LISP provided is not supported at this time.")))) (define (asdf-load-all systems) (map (lambda (system) @@ -108,15 +126,61 @@ first if SYSTEM is defined there." (find-symbol (symbol-name :compile-bundle-op) (symbol-name :asdf)) - ,system) - (funcall (find-symbol - (symbol-name :operate) - (symbol-name :asdf)) - (find-symbol - (symbol-name :deliver-asd-op) - (symbol-name :asdf)) ,system)))) +(define (system-dependencies lisp system asd-file) + "Return the dependencies of SYSTEM, as reported by +asdf:system-depends-on. First load the system's ASD-FILE, if necessary." + (define deps-file ".deps.sexp") + (define program + `(progn + (require :asdf) + ,@(if asd-file + `((let ((*package* (find-package :asdf))) + (load ,asd-file))) + '()) + (with-open-file + (stream ,deps-file :direction :output) + (format stream + "~s~%" + (funcall + (find-symbol + (symbol-name :system-depends-on) + (symbol-name :asdf)) + + (funcall + (find-symbol + (symbol-name :find-system) + (symbol-name :asdf)) + + ,system)))))) + + (dynamic-wind + (lambda _ + (lisp-eval-program lisp program)) + (lambda _ + (call-with-input-file deps-file read)) + (lambda _ + (when (file-exists? deps-file) + (delete-file deps-file))))) + +(define (compiled-system system lisp) + (match lisp + ("sbcl" (string-append system "--system")) + (_ system))) + +(define* (generate-system-definition lisp system + #:key version dependencies) + `(asdf:defsystem + ,system + :class asdf/bundle:prebuilt-system + :version ,version + :depends-on ,dependencies + :components ((:compiled-file ,(compiled-system system lisp))) + ,@(if (string=? "ecl" lisp) + `(:lib ,(string-append system ".a")) + '()))) + (define (test-system system lisp asd-file) "Use a lisp implementation to test SYSTEM using asdf. Load ASD-FILE first if SYSTEM is defined there." @@ -185,58 +249,53 @@ ENTRY-PROGRAM for SYSTEM within the current directory." (declare (ignorable arguments)) ,@entry-program)))))))) -(define (wrap-perform-method lisp registry dependencies file-name) - "Creates a wrapper method which allows the system to locate its dependent -systems from REGISTRY, an alist of the same form as %outputs, which contains -lisp systems which the systems is dependent on. All DEPENDENCIES which the -system depends on will the be loaded before this system." - (let* ((system (string-drop-right (basename file-name) 4)) - (system-symbol (string->lisp-keyword system))) - - `(defmethod asdf:perform :before - (op (c (eql (asdf:find-system ,system-symbol)))) - (asdf/source-registry:ensure-source-registry) - ,@(map (match-lambda - ((name . path) - (let ((asd-file (string-append path - (bundle-install-prefix lisp) - "/" name ".asd"))) - `(setf - (gethash ,name - asdf/source-registry:*source-registry*) - ,(string->symbol "#p") - ,(bundle-asd-file path asd-file lisp))))) - registry) - ,@(map (lambda (system) - `(asdf:load-system ,(string->lisp-keyword system))) - dependencies)))) - -(define (patch-asd-file asd-file registry lisp dependencies) - "Patches ASD-FILE with a perform method as described in WRAP-PERFORM-METHOD." - (chmod asd-file #o644) - (let ((port (open-file asd-file "a"))) - (dynamic-wind - (lambda _ #t) - (lambda _ - (display - (replace-escaped-macros - (format #f "~%~y~%" - (wrap-perform-method lisp registry - dependencies asd-file))) - port)) - (lambda _ (close-port port)))) - (chmod asd-file #o444)) - -(define (lisp-dependencies lisp inputs) - "Determine which inputs are lisp system dependencies, by using the convention -that a lisp system dependency will resemble \"system-LISP\"." - (filter-map (match-lambda - ((name . value) - (and (string-prefix? lisp name) - (string<> lisp name) - `(,(remove-lisp-from-name name lisp) - . ,value)))) - inputs)) +(define (generate-dependency-links lisp registry system) + "Creates a program which populates asdf's source registry from REGISTRY, an +alist of dependency names to corresponding asd files. This allows the system +to locate its dependent systems." + `(progn + (asdf/source-registry:ensure-source-registry) + ,@(map (match-lambda + ((name . asd-file) + `(setf + (gethash ,name + asdf/source-registry:*source-registry*) + ,(string->symbol "#p") + ,asd-file))) + registry))) + +(define* (make-asd-file asd-file + #:key lisp system version inputs + (system-asd-file #f)) + "Create an ASD-FILE for SYSTEM@VERSION, appending a program to allow the +system to find its dependencies, as described by GENERATE-DEPENDENCY-LINKS." + (define dependencies + (parameterize ((%lisp (string-append (assoc-ref inputs lisp) "/bin/" lisp))) + (system-dependencies lisp system system-asd-file))) + + (define lisp-input-map + (inputs->asd-file-map inputs lisp)) + + (define registry + (filter-map hash-get-handle + (make-list (if (eq? 'NIL dependencies) + 0 + (length dependencies)) + lisp-input-map) + (if (eq? 'NIL dependencies) + '() + dependencies))) + + (call-with-output-file asd-file + (lambda (port) + (display + (replace-escaped-macros + (format #f "~y~%~y~%" + (generate-system-definition lisp system + #:version version + #:dependencies dependencies) + (generate-dependency-links lisp registry system))) + port)))) (define (bundle-asd-file output-path original-asd-file lisp) "Find the symlinked bundle file for ORIGINAL-ASD-FILE by looking in -- cgit 1.4.1 From 0e1371be09fc487db2a9245be7499cf91670a922 Mon Sep 17 00:00:00 2001 From: Andy Patterson Date: Mon, 3 Apr 2017 09:01:24 -0400 Subject: build-system/asdf: Don't rename inputs. * guix/build-system/asdf.scm (package-with-build-system)[transform]: Use updated `new-inputs' procedure for inputs and native-inputs. : Don't rename inputs. : Draw from package-inputs and package-native-inputs for source packages. Use the original package's propagated-inputs otherwise. : Convert into a function to be used to transform inputs and native-inputs. * gnu/packages/lisp.scm (sbcl-fiveam, sbcl-bordeaux-threads) (sbcl-flexi-streams, sbcl-cl-ppcre, sbcl-stumpwm, sbcl-slynk-arglists) (sbcl-slynk-fancy-inspector): Don't prefix input names. --- gnu/packages/lisp.scm | 18 +++++++++--------- guix/build-system/asdf.scm | 44 ++++++++++++++++++++++---------------------- 2 files changed, 31 insertions(+), 31 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index ca83ec9977..d8d858928a 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -659,7 +659,7 @@ portable between implementations.") (sha256 (base32 "0f48pcbhqs3wwwzjl5nk57d4hcbib4l9xblxc66b8c2fhvhmhxnv")) (file-name (string-append "fiveam-" version ".tar.gz")))) - (inputs `(("sbcl-alexandria" ,sbcl-alexandria))) + (inputs `(("alexandria" ,sbcl-alexandria))) (build-system asdf-build-system/sbcl) (synopsis "Common Lisp testing framework") (description "FiveAM is a simple (as far as writing and running tests @@ -687,8 +687,8 @@ interactive development model in mind.") (base32 "10ryrcx832fwqdawb6jmknymi7wpdzhi30qzx7cbrk0cpnka71w2")) (file-name (string-append "bordeaux-threads-" version ".tar.gz")))) - (inputs `(("sbcl-alexandria" ,sbcl-alexandria))) - (native-inputs `(("tests:cl-fiveam" ,sbcl-fiveam))) + (inputs `(("alexandria" ,sbcl-alexandria))) + (native-inputs `(("fiveam" ,sbcl-fiveam))) (build-system asdf-build-system/sbcl) (synopsis "Portable shared-state concurrency library for Common Lisp") (description "BORDEAUX-THREADS is a proposed standard for a minimal @@ -749,7 +749,7 @@ thin compatibility layer for gray streams.") (base32 "16grnxvs7vqm5s6myf8a5s7vwblzq1kgwj8i7ahz8vwvihm9gzfi")) (file-name (string-append "flexi-streams-" version ".tar.gz")))) (build-system asdf-build-system/sbcl) - (inputs `(("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams))) + (inputs `(("trivial-gray-streams" ,sbcl-trivial-gray-streams))) (synopsis "Implementation of virtual bivalent streams for Common Lisp") (description "Flexi-streams is an implementation of \"virtual\" bivalent streams that can be layered atop real binary or bivalent streams and that can @@ -779,7 +779,7 @@ streams which are similar to string streams.") (base32 "1i7daxf0wnydb0pgwiym7qh2wy70n14lxd6dyv28sy0naa8p31gd")) (file-name (string-append "cl-ppcre-" version ".tar.gz")))) (build-system asdf-build-system/sbcl) - (native-inputs `(("tests:cl-flexi-streams" ,sbcl-flexi-streams))) + (native-inputs `(("flexi-streams" ,sbcl-flexi-streams))) (synopsis "Portable regular expression library for Common Lisp") (description "CL-PPCRE is a portable regular expression library for Common Lisp, which is compatible with perl. It is pretty fast, thread-safe, and @@ -849,8 +849,8 @@ from other CLXes around the net.") (base32 "1maxp98gh64az3d9vz9br6zdd6rc9fmj2imvax4by85g6kxvdz1i")) (file-name (string-append "stumpwm-" version ".tar.gz")))) (build-system asdf-build-system/sbcl) - (inputs `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre) - ("sbcl-clx" ,sbcl-clx))) + (inputs `(("cl-ppcre" ,sbcl-cl-ppcre) + ("clx" ,sbcl-clx))) (outputs '("out" "lib")) (arguments '(#:phases @@ -968,7 +968,7 @@ multiple inspectors with independent history.") (package (inherit sbcl-slynk-boot0) (name "sbcl-slynk-arglists") - (inputs `(("sbcl-slynk" ,sbcl-slynk-boot0))) + (inputs `(("slynk" ,sbcl-slynk-boot0))) (arguments `(#:asd-file "slynk.asd" ,@(package-arguments sbcl-slynk-boot0))))) @@ -988,7 +988,7 @@ multiple inspectors with independent history.") (package (inherit sbcl-slynk-arglists) (name "sbcl-slynk-fancy-inspector") - (inputs `(("sbcl-slynk-util" ,sbcl-slynk-util) + (inputs `(("slynk-util" ,sbcl-slynk-util) ,@(package-inputs sbcl-slynk-arglists))))) (define ecl-slynk-fancy-inspector diff --git a/guix/build-system/asdf.scm b/guix/build-system/asdf.scm index 4b5af95c9a..d02565b2d1 100644 --- a/guix/build-system/asdf.scm +++ b/guix/build-system/asdf.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016 Andy Patterson +;;; Copyright © 2016, 2017 Andy Patterson ;;; ;;; This file is part of GNU Guix. ;;; @@ -163,33 +163,35 @@ set up using CL source package conventions." (match-lambda ((name content . rest) (let* ((is-package? (package? content)) - (new-content (if is-package? (transform content) content)) - (new-name (if (and is-package? - (string-prefix? from-prefix name)) - (package-name new-content) - name))) - `(,new-name ,new-content ,@rest))))) + (new-content (if is-package? (transform content) content))) + `(,name ,new-content ,@rest))))) ;; Special considerations for source packages: CL inputs become - ;; propagated, and un-handled arguments are removed. Native inputs are - ;; removed as are extraneous outputs. + ;; propagated, and un-handled arguments are removed. + (define new-propagated-inputs (if target-is-source? (map rewrite - (filter (match-lambda - ((_ input . _) - (has-from-build-system? input))) - (package-inputs pkg))) - '())) - - (define new-inputs + (append + (filter (match-lambda + ((_ input . _) + (has-from-build-system? input))) + (append (package-inputs pkg) + ;; The native inputs might be needed just + ;; to load the system. + (package-native-inputs pkg))) + (package-propagated-inputs pkg))) + + (map rewrite (package-propagated-inputs pkg)))) + + (define (new-inputs inputs-getter) (if target-is-source? (map rewrite (filter (match-lambda ((_ input . _) (not (has-from-build-system? input)))) - (package-inputs pkg))) - (map rewrite (package-inputs pkg)))) + (inputs-getter pkg))) + (map rewrite (inputs-getter pkg)))) (define base-arguments (if target-is-source? @@ -212,11 +214,9 @@ set up using CL source package conventions." (arguments (substitute-keyword-arguments base-arguments ((#:phases phases) (list phases-transformer phases)))) - (inputs new-inputs) + (inputs (new-inputs package-inputs)) (propagated-inputs new-propagated-inputs) - (native-inputs (if target-is-source? - '() - (map rewrite (package-native-inputs pkg)))) + (native-inputs (new-inputs package-native-inputs)) (outputs (if target-is-source? '("out") (package-outputs pkg))))) -- cgit 1.4.1 From 6de91ba2a14fd5c15721d87b63e7f8ab52a29a67 Mon Sep 17 00:00:00 2001 From: Andy Patterson Date: Mon, 3 Apr 2017 09:01:26 -0400 Subject: build-system/asdf: Make #:lisp a package argument. * guix/build-system/asdf.scm (lower): Change argument name to `lisp-type'. (asdf-build): Change argument name to `lisp-type'. Remove `lisp' as an argument to the returned procedure. Change the argument passed to build phases to `lisp-type'. * guix/build/asdf-build-system.scm (copy-source, build, check) (create-asd-file, symlink-asd-files, cleanup-files, strip): Respect `lisp-type` argument. * gnu/packages/lisp.scm (sbcl-stumpwm, sbcl-stumpwm+slynk): Likewise. --- gnu/packages/lisp.scm | 8 +++--- guix/build-system/asdf.scm | 13 +++++----- guix/build/asdf-build-system.scm | 56 +++++++++++++++++++++------------------- 3 files changed, 40 insertions(+), 37 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index d8d858928a..aedb24587f 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -856,9 +856,9 @@ from other CLXes around the net.") '(#:phases (modify-phases %standard-phases (add-after 'create-symlinks 'build-program - (lambda* (#:key lisp outputs inputs #:allow-other-keys) + (lambda* (#:key lisp-type outputs inputs #:allow-other-keys) (build-program - lisp + lisp-type (string-append (assoc-ref outputs "out") "/bin/stumpwm") #:inputs inputs #:entry-program '((stumpwm:stumpwm) 0)))) @@ -1145,10 +1145,10 @@ multiple inspectors with independent history.") ((#:phases phases) `(modify-phases ,phases (replace 'build-program - (lambda* (#:key lisp inputs outputs #:allow-other-keys) + (lambda* (#:key lisp-type inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (program (string-append out "/bin/stumpwm"))) - (build-program lisp program + (build-program lisp-type program #:inputs inputs #:entry-program '((stumpwm:stumpwm) 0) #:dependencies '("stumpwm" diff --git a/guix/build-system/asdf.scm b/guix/build-system/asdf.scm index d02565b2d1..1ef6f32d4c 100644 --- a/guix/build-system/asdf.scm +++ b/guix/build-system/asdf.scm @@ -232,10 +232,10 @@ set up using CL source package conventions." (properties (alist-delete variant properties))) pkg)) -(define (lower lisp-implementation) +(define (lower lisp-type) (lambda* (name #:key source inputs outputs native-inputs system target - (lisp (default-lisp (string->symbol lisp-implementation))) + (lisp (default-lisp (string->symbol lisp-type))) #:allow-other-keys #:rest arguments) "Return a bag for NAME" @@ -251,18 +251,17 @@ set up using CL source package conventions." '()) ,@inputs ,@(standard-packages))) - (build-inputs `((,lisp-implementation ,lisp) + (build-inputs `((,lisp-type ,lisp) ,@native-inputs)) (outputs outputs) - (build (asdf-build lisp-implementation)) + (build (asdf-build lisp-type)) (arguments (strip-keyword-arguments private-keywords arguments)))))) -(define (asdf-build lisp-implementation) +(define (asdf-build lisp-type) (lambda* (store name inputs #:key source outputs (tests? #t) (asd-file #f) - (lisp lisp-implementation) (phases '(@ (guix build asdf-build-system) %standard-phases)) (search-paths '()) @@ -280,7 +279,7 @@ set up using CL source package conventions." (derivation->output-path source)) ((source) source) (source source)) - #:lisp ,lisp + #:lisp-type ,lisp-type #:asd-file ,asd-file #:system ,system #:tests? ,tests? diff --git a/guix/build/asdf-build-system.scm b/guix/build/asdf-build-system.scm index 2efd164307..c5f2c080dc 100644 --- a/guix/build/asdf-build-system.scm +++ b/guix/build/asdf-build-system.scm @@ -104,29 +104,32 @@ valid." "Copy and symlink all the source files." (copy-files-to-output (assoc-ref outputs "out") (outputs->name outputs))) -(define* (copy-source #:key outputs lisp #:allow-other-keys) +(define* (copy-source #:key outputs lisp-type #:allow-other-keys) "Copy the source to the library output." (let* ((out (library-output outputs)) - (name (remove-lisp-from-name (output-path->package-name out) lisp)) + (name (remove-lisp-from-name (output-path->package-name out) + lisp-type)) (install-path (string-append out %source-install-prefix))) (copy-files-to-output out name) ;; Hide the files from asdf (with-directory-excursion install-path - (rename-file "source" (string-append lisp "-source")) + (rename-file "source" (string-append lisp-type "-source")) (delete-file-recursively "systems"))) #t) -(define* (build #:key outputs inputs lisp asd-file +(define* (build #:key outputs inputs lisp-type asd-file #:allow-other-keys) "Compile the system." (let* ((out (library-output outputs)) - (name (remove-lisp-from-name (output-path->package-name out) lisp)) - (source-path (lisp-source-directory out lisp name)) + (name (remove-lisp-from-name (output-path->package-name out) + lisp-type)) + (source-path (lisp-source-directory out lisp-type name)) (translations (wrap-output-translations `(,(output-translation source-path out - lisp)))) - (asd-file (and=> asd-file (cut source-asd-file out lisp name <>)))) + lisp-type)))) + (asd-file (and=> asd-file + (cut source-asd-file out lisp-type name <>)))) (setenv "ASDF_OUTPUT_TRANSLATIONS" (replace-escaped-macros (format #f "~S" translations))) @@ -139,8 +142,8 @@ valid." (setenv "HOME" out) ; ecl's asdf sometimes wants to create $HOME/.cache (parameterize ((%lisp (string-append - (assoc-ref inputs lisp) "/bin/" lisp))) - (compile-system name lisp asd-file)) + (assoc-ref inputs lisp-type) "/bin/" lisp-type))) + (compile-system name lisp-type asd-file)) ;; As above, ecl will sometimes create this even though it doesn't use it @@ -149,47 +152,48 @@ valid." (delete-file-recursively cache-directory)))) #t) -(define* (check #:key lisp tests? outputs inputs asd-file +(define* (check #:key lisp-type tests? outputs inputs asd-file #:allow-other-keys) "Test the system." - (let* ((name (remove-lisp-from-name (outputs->name outputs) lisp)) + (let* ((name (remove-lisp-from-name (outputs->name outputs) lisp-type)) (out (library-output outputs)) - (asd-file (and=> asd-file (cut source-asd-file out lisp name <>)))) + (asd-file (and=> asd-file + (cut source-asd-file out lisp-type name <>)))) (if tests? (parameterize ((%lisp (string-append - (assoc-ref inputs lisp) "/bin/" lisp))) - (test-system name lisp asd-file)) + (assoc-ref inputs lisp-type) "/bin/" lisp-type))) + (test-system name lisp-type asd-file)) (format #t "test suite not run~%"))) #t) (define* (create-asd-file #:key outputs inputs - lisp + lisp-type asd-file #:allow-other-keys) "Create a system definition file for the built system." (let*-values (((out) (library-output outputs)) ((full-name version) (package-name->name+version (strip-store-file-name out))) - ((name) (remove-lisp-from-name full-name lisp)) - ((new-asd-file) (string-append (library-directory out lisp) + ((name) (remove-lisp-from-name full-name lisp-type)) + ((new-asd-file) (string-append (library-directory out lisp-type) "/" name ".asd"))) (make-asd-file new-asd-file - #:lisp lisp + #:lisp lisp-type #:system name #:version version #:inputs inputs #:system-asd-file asd-file)) #t) -(define* (symlink-asd-files #:key outputs lisp #:allow-other-keys) +(define* (symlink-asd-files #:key outputs lisp-type #:allow-other-keys) "Create an extra reference to the system in a convenient location." (let* ((out (library-output outputs))) (for-each (lambda (asd-file) (receive (new-asd-file asd-file-directory) - (bundle-asd-file out asd-file lisp) + (bundle-asd-file out asd-file lisp-type) (mkdir-p asd-file-directory) (symlink asd-file new-asd-file) ;; Update the source registry for future phases which might want to @@ -200,11 +204,11 @@ valid." (find-files (string-append out %object-prefix) "\\.asd$"))) #t) -(define* (cleanup-files #:key outputs lisp +(define* (cleanup-files #:key outputs lisp-type #:allow-other-keys) "Remove any compiled files which are not a part of the final bundle." (let ((out (library-output outputs))) - (match lisp + (match lisp-type ("sbcl" (for-each (lambda (file) @@ -216,7 +220,7 @@ valid." (append (find-files out "\\.fas$") (find-files out "\\.o$"))))) - (with-directory-excursion (library-directory out lisp) + (with-directory-excursion (library-directory out lisp-type) (for-each (lambda (file) (rename-file file @@ -231,9 +235,9 @@ valid." (string<> ".." file))))))) #t) -(define* (strip #:key lisp #:allow-other-keys #:rest args) +(define* (strip #:key lisp-type #:allow-other-keys #:rest args) ;; stripping sbcl binaries removes their entry program and extra systems - (or (string=? lisp "sbcl") + (or (string=? lisp-type "sbcl") (apply (assoc-ref gnu:%standard-phases 'strip) args))) (define %standard-phases/source -- cgit 1.4.1 From b4c9f0c50de39da253dadfde9e85de06d665cd1e Mon Sep 17 00:00:00 2001 From: Andy Patterson Date: Mon, 3 Apr 2017 09:01:27 -0400 Subject: build-system/asdf: Parameterize the lisp type and implementation globally. * guix/build-system/asdf.scm (asdf-build)[builder]: Parameterize %lisp-type and %lisp before invoking the build procedure. Don't pass #:lisp-type as an argument to said procedure. * guix/build/asdf-build-system.scm: Adjust accordingly. (source-install-prefix): Rename to %lisp-source-install-prefix. * guix/build/lisp-utils.scm: Adjust accordingly. (%lisp-type): New parameter. (bundle-install-prefix): Rename to %bundle-install-prefix. * gnu/packages/lisp.scm: Adjust accordingly. --- gnu/packages/lisp.scm | 23 ++++--- guix/build-system/asdf.scm | 33 +++++----- guix/build/asdf-build-system.scm | 74 ++++++++++----------- guix/build/lisp-utils.scm | 135 +++++++++++++++++++-------------------- 4 files changed, 128 insertions(+), 137 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index aedb24587f..ed8a043583 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -856,11 +856,9 @@ from other CLXes around the net.") '(#:phases (modify-phases %standard-phases (add-after 'create-symlinks 'build-program - (lambda* (#:key lisp-type outputs inputs #:allow-other-keys) + (lambda* (#:key outputs #:allow-other-keys) (build-program - lisp-type (string-append (assoc-ref outputs "out") "/bin/stumpwm") - #:inputs inputs #:entry-program '((stumpwm:stumpwm) 0)))) (add-after 'build-program 'create-desktop-file (lambda* (#:key outputs #:allow-other-keys) @@ -1103,12 +1101,14 @@ multiple inspectors with independent history.") (prepend-to-source-registry (string-append (assoc-ref %outputs "out") "//")) - (build-image "sbcl" - (string-append - (assoc-ref %outputs "image") - "/bin/slynk") - #:inputs %build-inputs - #:dependencies ',slynk-systems)))))) + + (parameterize ((%lisp-type "sbcl") + (%lisp (string-append (assoc-ref %build-inputs "sbcl") + "/bin/sbcl"))) + (build-image (string-append + (assoc-ref %outputs "image") + "/bin/slynk") + #:dependencies ',slynk-systems))))))) (define-public ecl-slynk (package @@ -1145,11 +1145,10 @@ multiple inspectors with independent history.") ((#:phases phases) `(modify-phases ,phases (replace 'build-program - (lambda* (#:key lisp-type inputs outputs #:allow-other-keys) + (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (program (string-append out "/bin/stumpwm"))) - (build-program lisp-type program - #:inputs inputs + (build-program program #:entry-program '((stumpwm:stumpwm) 0) #:dependencies '("stumpwm" ,@slynk-systems)) diff --git a/guix/build-system/asdf.scm b/guix/build-system/asdf.scm index 1ef6f32d4c..4afc6ef1a7 100644 --- a/guix/build-system/asdf.scm +++ b/guix/build-system/asdf.scm @@ -273,21 +273,24 @@ set up using CL source package conventions." (define builder `(begin (use-modules ,@modules) - (asdf-build #:name ,name - #:source ,(match (assoc-ref inputs "source") - (((? derivation? source)) - (derivation->output-path source)) - ((source) source) - (source source)) - #:lisp-type ,lisp-type - #:asd-file ,asd-file - #:system ,system - #:tests? ,tests? - #:phases ,phases - #:outputs %outputs - #:search-paths ',(map search-path-specification->sexp - search-paths) - #:inputs %build-inputs))) + (parameterize ((%lisp (string-append + (assoc-ref %build-inputs ,lisp-type) + "/bin/" ,lisp-type)) + (%lisp-type ,lisp-type)) + (asdf-build #:name ,name + #:source ,(match (assoc-ref inputs "source") + (((? derivation? source)) + (derivation->output-path source)) + ((source) source) + (source source)) + #:asd-file ,asd-file + #:system ,system + #:tests? ,tests? + #:phases ,phases + #:outputs %outputs + #:search-paths ',(map search-path-specification->sexp + search-paths) + #:inputs %build-inputs)))) (define guile-for-build (match guile diff --git a/guix/build/asdf-build-system.scm b/guix/build/asdf-build-system.scm index c5f2c080dc..4305a86af9 100644 --- a/guix/build/asdf-build-system.scm +++ b/guix/build/asdf-build-system.scm @@ -43,8 +43,8 @@ (define %object-prefix "/lib") -(define (source-install-prefix lisp) - (string-append %source-install-prefix "/" lisp "-source")) +(define (%lisp-source-install-prefix) + (string-append %source-install-prefix "/" (%lisp-type) "-source")) (define %system-install-prefix (string-append %source-install-prefix "/systems")) @@ -56,28 +56,27 @@ (output-path->package-name (assoc-ref outputs "out"))) -(define (lisp-source-directory output lisp name) - (string-append output (source-install-prefix lisp) "/" name)) +(define (lisp-source-directory output name) + (string-append output (%lisp-source-install-prefix) "/" name)) (define (source-directory output name) (string-append output %source-install-prefix "/source/" name)) -(define (library-directory output lisp) +(define (library-directory output) (string-append output %object-prefix - "/" lisp)) + "/" (%lisp-type))) (define (output-translation source-path - object-output - lisp) + object-output) "Return a translation for the system's source path to it's binary output." `((,source-path :**/ :*.*.*) - (,(library-directory object-output lisp) + (,(library-directory object-output) :**/ :*.*.*))) -(define (source-asd-file output lisp name asd-file) - (string-append (lisp-source-directory output lisp name) "/" asd-file)) +(define (source-asd-file output name asd-file) + (string-append (lisp-source-directory output name) "/" asd-file)) (define (library-output outputs) "If a `lib' output exists, build things there. Otherwise use `out'." @@ -104,32 +103,29 @@ valid." "Copy and symlink all the source files." (copy-files-to-output (assoc-ref outputs "out") (outputs->name outputs))) -(define* (copy-source #:key outputs lisp-type #:allow-other-keys) +(define* (copy-source #:key outputs #:allow-other-keys) "Copy the source to the library output." (let* ((out (library-output outputs)) - (name (remove-lisp-from-name (output-path->package-name out) - lisp-type)) + (name (remove-lisp-from-name (output-path->package-name out))) (install-path (string-append out %source-install-prefix))) (copy-files-to-output out name) ;; Hide the files from asdf (with-directory-excursion install-path - (rename-file "source" (string-append lisp-type "-source")) + (rename-file "source" (string-append (%lisp-type) "-source")) (delete-file-recursively "systems"))) #t) -(define* (build #:key outputs inputs lisp-type asd-file +(define* (build #:key outputs inputs asd-file #:allow-other-keys) "Compile the system." (let* ((out (library-output outputs)) - (name (remove-lisp-from-name (output-path->package-name out) - lisp-type)) - (source-path (lisp-source-directory out lisp-type name)) + (name (remove-lisp-from-name (output-path->package-name out))) + (source-path (lisp-source-directory out name)) (translations (wrap-output-translations `(,(output-translation source-path - out - lisp-type)))) + out)))) (asd-file (and=> asd-file - (cut source-asd-file out lisp-type name <>)))) + (cut source-asd-file out name <>)))) (setenv "ASDF_OUTPUT_TRANSLATIONS" (replace-escaped-macros (format #f "~S" translations))) @@ -141,9 +137,7 @@ valid." (setenv "HOME" out) ; ecl's asdf sometimes wants to create $HOME/.cache - (parameterize ((%lisp (string-append - (assoc-ref inputs lisp-type) "/bin/" lisp-type))) - (compile-system name lisp-type asd-file)) + (compile-system name asd-file) ;; As above, ecl will sometimes create this even though it doesn't use it @@ -152,48 +146,44 @@ valid." (delete-file-recursively cache-directory)))) #t) -(define* (check #:key lisp-type tests? outputs inputs asd-file +(define* (check #:key tests? outputs inputs asd-file #:allow-other-keys) "Test the system." - (let* ((name (remove-lisp-from-name (outputs->name outputs) lisp-type)) + (let* ((name (remove-lisp-from-name (outputs->name outputs))) (out (library-output outputs)) (asd-file (and=> asd-file - (cut source-asd-file out lisp-type name <>)))) + (cut source-asd-file out name <>)))) (if tests? - (parameterize ((%lisp (string-append - (assoc-ref inputs lisp-type) "/bin/" lisp-type))) - (test-system name lisp-type asd-file)) + (test-system name asd-file) (format #t "test suite not run~%"))) #t) (define* (create-asd-file #:key outputs inputs - lisp-type asd-file #:allow-other-keys) "Create a system definition file for the built system." (let*-values (((out) (library-output outputs)) ((full-name version) (package-name->name+version (strip-store-file-name out))) - ((name) (remove-lisp-from-name full-name lisp-type)) - ((new-asd-file) (string-append (library-directory out lisp-type) + ((name) (remove-lisp-from-name full-name)) + ((new-asd-file) (string-append (library-directory out) "/" name ".asd"))) (make-asd-file new-asd-file - #:lisp lisp-type #:system name #:version version #:inputs inputs #:system-asd-file asd-file)) #t) -(define* (symlink-asd-files #:key outputs lisp-type #:allow-other-keys) +(define* (symlink-asd-files #:key outputs #:allow-other-keys) "Create an extra reference to the system in a convenient location." (let* ((out (library-output outputs))) (for-each (lambda (asd-file) (receive (new-asd-file asd-file-directory) - (bundle-asd-file out asd-file lisp-type) + (bundle-asd-file out asd-file) (mkdir-p asd-file-directory) (symlink asd-file new-asd-file) ;; Update the source registry for future phases which might want to @@ -204,11 +194,11 @@ valid." (find-files (string-append out %object-prefix) "\\.asd$"))) #t) -(define* (cleanup-files #:key outputs lisp-type +(define* (cleanup-files #:key outputs #:allow-other-keys) "Remove any compiled files which are not a part of the final bundle." (let ((out (library-output outputs))) - (match lisp-type + (match (%lisp-type) ("sbcl" (for-each (lambda (file) @@ -220,7 +210,7 @@ valid." (append (find-files out "\\.fas$") (find-files out "\\.o$"))))) - (with-directory-excursion (library-directory out lisp-type) + (with-directory-excursion (library-directory out) (for-each (lambda (file) (rename-file file @@ -235,9 +225,9 @@ valid." (string<> ".." file))))))) #t) -(define* (strip #:key lisp-type #:allow-other-keys #:rest args) +(define* (strip #:rest args) ;; stripping sbcl binaries removes their entry program and extra systems - (or (string=? lisp-type "sbcl") + (or (string=? (%lisp-type) "sbcl") (apply (assoc-ref gnu:%standard-phases 'strip) args))) (define %standard-phases/source diff --git a/guix/build/lisp-utils.scm b/guix/build/lisp-utils.scm index 4f1565b55c..148357bf0e 100644 --- a/guix/build/lisp-utils.scm +++ b/guix/build/lisp-utils.scm @@ -25,6 +25,7 @@ #:use-module (srfi srfi-26) #:use-module (guix build utils) #:export (%lisp + %lisp-type %source-install-prefix lisp-eval-program compile-system @@ -33,7 +34,7 @@ generate-executable-wrapper-system generate-executable-entry-point generate-executable-for-system - bundle-install-prefix + %bundle-install-prefix bundle-asd-file remove-lisp-from-name wrap-output-translations @@ -54,24 +55,28 @@ ;; File name of the Lisp compiler. (make-parameter "lisp")) +(define %lisp-type + ;; String representing the class of implementation being used. + (make-parameter "lisp")) + ;; The common parent for Lisp source files, as will as the symbolic ;; link farm for system definition (.asd) files. (define %source-install-prefix "/share/common-lisp") -(define (bundle-install-prefix lisp) - (string-append %source-install-prefix "/" lisp "-bundle-systems")) +(define (%bundle-install-prefix) + (string-append %source-install-prefix "/" (%lisp-type) "-bundle-systems")) (define (remove-lisp-from-name name lisp) (string-drop name (1+ (string-length lisp)))) -(define (inputs->asd-file-map inputs lisp) +(define (inputs->asd-file-map inputs) "Produce a hash table of the form (system . asd-file), where system is the name of an ASD system, and asd-file is the full path to its definition." (alist->hash-table (filter-map (match-lambda ((_ . path) - (let ((prefix (string-append path (bundle-install-prefix lisp)))) + (let ((prefix (string-append path (%bundle-install-prefix)))) (and (directory-exists? prefix) (match (find-files prefix "\\.asd$") ((asd-file) @@ -86,16 +91,16 @@ name of an ASD system, and asd-file is the full path to its definition." ,@translations :inherit-configuration)) -(define (lisp-eval-program lisp program) +(define (lisp-eval-program program) "Evaluate PROGRAM with a given LISP implementation." (unless (zero? (apply system* - (lisp-invoke lisp (format #f "~S" program)))) - (error "lisp-eval-program failed!" lisp program))) + (lisp-invoke (format #f "~S" program)))) + (error "lisp-eval-program failed!" (%lisp) program))) -(define (lisp-invoke lisp program) +(define (lisp-invoke program) "Return a list of arguments for system* determining how to invoke LISP with PROGRAM." - (match lisp + (match (%lisp-type) ("sbcl" `(,(%lisp) "--non-interactive" "--eval" ,program)) ("ecl" `(,(%lisp) "-eval" ,program "-eval" "(quit)")) (_ (error "The LISP provided is not supported at this time.")))) @@ -109,26 +114,26 @@ with PROGRAM." ,system)) systems)) -(define (compile-system system lisp asd-file) +(define (compile-system system asd-file) "Use a lisp implementation to compile SYSTEM using asdf. Load ASD-FILE first if SYSTEM is defined there." - (lisp-eval-program lisp - `(progn - (require :asdf) - (in-package :asdf) - ,@(if asd-file - `((load ,asd-file)) - '()) - (in-package :cl-user) - (funcall (find-symbol - (symbol-name :operate) - (symbol-name :asdf)) - (find-symbol - (symbol-name :compile-bundle-op) - (symbol-name :asdf)) - ,system)))) - -(define (system-dependencies lisp system asd-file) + (lisp-eval-program + `(progn + (require :asdf) + (in-package :asdf) + ,@(if asd-file + `((load ,asd-file)) + '()) + (in-package :cl-user) + (funcall (find-symbol + (symbol-name :operate) + (symbol-name :asdf)) + (find-symbol + (symbol-name :compile-bundle-op) + (symbol-name :asdf)) + ,system)))) + +(define (system-dependencies system asd-file) "Return the dependencies of SYSTEM, as reported by asdf:system-depends-on. First load the system's ASD-FILE, if necessary." (define deps-file ".deps.sexp") @@ -157,56 +162,55 @@ asdf:system-depends-on. First load the system's ASD-FILE, if necessary." (dynamic-wind (lambda _ - (lisp-eval-program lisp program)) + (lisp-eval-program program)) (lambda _ (call-with-input-file deps-file read)) (lambda _ (when (file-exists? deps-file) (delete-file deps-file))))) -(define (compiled-system system lisp) - (match lisp +(define (compiled-system system) + (match (%lisp-type) ("sbcl" (string-append system "--system")) (_ system))) -(define* (generate-system-definition lisp system +(define* (generate-system-definition system #:key version dependencies) `(asdf:defsystem ,system :class asdf/bundle:prebuilt-system :version ,version :depends-on ,dependencies - :components ((:compiled-file ,(compiled-system system lisp))) - ,@(if (string=? "ecl" lisp) + :components ((:compiled-file ,(compiled-system system))) + ,@(if (string=? "ecl" (%lisp-type)) `(:lib ,(string-append system ".a")) '()))) -(define (test-system system lisp asd-file) +(define (test-system system asd-file) "Use a lisp implementation to test SYSTEM using asdf. Load ASD-FILE first if SYSTEM is defined there." - (lisp-eval-program lisp - `(progn - (require :asdf) - (in-package :asdf) - ,@(if asd-file - `((load ,asd-file)) - '()) - (in-package :cl-user) - (funcall (find-symbol - (symbol-name :test-system) - (symbol-name :asdf)) - ,system)))) + (lisp-eval-program + `(progn + (require :asdf) + (in-package :asdf) + ,@(if asd-file + `((load ,asd-file)) + '()) + (in-package :cl-user) + (funcall (find-symbol + (symbol-name :test-system) + (symbol-name :asdf)) + ,system)))) (define (string->lisp-keyword . strings) "Return a lisp keyword for the concatenation of STRINGS." (string->symbol (apply string-append ":" strings))) -(define (generate-executable-for-system type system lisp) +(define (generate-executable-for-system type system) "Use LISP to generate an executable, whose TYPE can be \"image\" or \"program\". The latter will always be standalone. Depends on having created a \"SYSTEM-exec\" system which contains the entry program." (lisp-eval-program - lisp `(progn (require :asdf) (funcall (find-symbol @@ -249,7 +253,7 @@ ENTRY-PROGRAM for SYSTEM within the current directory." (declare (ignorable arguments)) ,@entry-program)))))))) -(define (generate-dependency-links lisp registry system) +(define (generate-dependency-links registry system) "Creates a program which populates asdf's source registry from REGISTRY, an alist of dependency names to corresponding asd files. This allows the system to locate its dependent systems." @@ -265,16 +269,15 @@ to locate its dependent systems." registry))) (define* (make-asd-file asd-file - #:key lisp system version inputs + #:key system version inputs (system-asd-file #f)) "Create an ASD-FILE for SYSTEM@VERSION, appending a program to allow the system to find its dependencies, as described by GENERATE-DEPENDENCY-LINKS." (define dependencies - (parameterize ((%lisp (string-append (assoc-ref inputs lisp) "/bin/" lisp))) - (system-dependencies lisp system system-asd-file))) + (system-dependencies system system-asd-file)) (define lisp-input-map - (inputs->asd-file-map inputs lisp)) + (inputs->asd-file-map inputs)) (define registry (filter-map hash-get-handle @@ -291,18 +294,18 @@ system to find its dependencies, as described by GENERATE-DEPENDENCY-LINKS." (display (replace-escaped-macros (format #f "~y~%~y~%" - (generate-system-definition lisp system + (generate-system-definition system #:version version #:dependencies dependencies) - (generate-dependency-links lisp registry system))) + (generate-dependency-links registry system))) port)))) -(define (bundle-asd-file output-path original-asd-file lisp) +(define (bundle-asd-file output-path original-asd-file) "Find the symlinked bundle file for ORIGINAL-ASD-FILE by looking in OUTPUT-PATH/share/common-lisp/LISP-bundle-systems/.asd. Returns two values: the asd file itself and the directory in which it resides." (let ((bundle-asd-path (string-append output-path - (bundle-install-prefix lisp)))) + (%bundle-install-prefix)))) (values (string-append bundle-asd-path "/" (basename original-asd-file)) bundle-asd-path))) @@ -317,7 +320,7 @@ which are not nested." (setenv "CL_SOURCE_REGISTRY" (string-append path ":" (or (getenv "CL_SOURCE_REGISTRY") "")))) -(define* (build-program lisp program #:key inputs +(define* (build-program program #:key (dependencies (list (basename program))) entry-program #:allow-other-keys) @@ -325,8 +328,7 @@ which are not nested." execute ENTRY-PROGRAM. The result is placed in PROGRAM. When executed, it will run ENTRY-PROGRAM, a list of Common Lisp expressions in which `arguments' has been bound to the command-line arguments which were passed." - (generate-executable lisp program - #:inputs inputs + (generate-executable program #:dependencies dependencies #:entry-program entry-program #:type "program") @@ -337,13 +339,12 @@ has been bound to the command-line arguments which were passed." name))) #t) -(define* (build-image lisp image #:key inputs +(define* (build-image image #:key (dependencies (list (basename image))) #:allow-other-keys) "Generate an image, possibly standalone, which contains all DEPENDENCIES, placing the result in IMAGE.image." - (generate-executable lisp image - #:inputs inputs + (generate-executable image #:dependencies dependencies #:entry-program '(nil) #:type "image") @@ -354,7 +355,7 @@ placing the result in IMAGE.image." (string-append name ".image")))) #t) -(define* (generate-executable lisp out-file #:key inputs +(define* (generate-executable out-file #:key dependencies entry-program type @@ -380,9 +381,7 @@ executable." `(((,bin-directory :**/ :*.*.*) (,bin-directory :**/ :*.*.*))))))) - (parameterize ((%lisp (string-append - (assoc-ref inputs lisp) "/bin/" lisp))) - (generate-executable-for-system type name lisp)) + (generate-executable-for-system type name) (delete-file (string-append bin-directory "/" name "-exec.asd")) (delete-file (string-append bin-directory "/" name "-exec.lisp")))) -- cgit 1.4.1 From ac2592536da282db7b15da8e13a965e26a300feb Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 3 Apr 2017 09:01:31 -0400 Subject: gnu: Add cl-unicode. * gnu/packages/lisp.scm (sbcl-cl-unicode-base, sbcl-cl-unicode) (ecl-cl-unicode, cl-unicode): New variables. Co-Authored-By: Andy Patterson --- gnu/packages/lisp.scm | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index ed8a043583..47bff1d4b6 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -793,6 +793,51 @@ compatible with ANSI-compliant Common Lisp implementations.") (define-public ecl-cl-ppcre (sbcl-package->ecl-package sbcl-cl-ppcre)) +(define sbcl-cl-unicode-base + (let ((revision "1") + (commit "9fcd06fba1ddc9e66aed2f2d6c32dc9b764f03ea")) + (package + (name "sbcl-cl-unicode-base") + (version (string-append "0.1.5-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/edicl/cl-unicode.git") + (commit commit))) + (file-name (string-append "cl-unicode-" version "-checkout")) + (sha256 + (base32 + "1jicprb5b3bv57dy1kg03572gxkcaqdjhak00426s76g0plmx5ki")))) + (build-system asdf-build-system/sbcl) + (arguments + '(#:asd-file "cl-unicode.asd" + #:asd-system-name "cl-unicode/base")) + (inputs + `(("cl-ppcre" ,sbcl-cl-ppcre))) + (home-page "http://weitz.de/cl-unicode/") + (synopsis "Portable Unicode library for Common Lisp") + (description "CL-UNICODE is a portable Unicode library Common Lisp, which +is compatible with perl. It is pretty fast, thread-safe, and compatible with +ANSI-compliant Common Lisp implementations.") + (license license:bsd-2)))) + +(define-public sbcl-cl-unicode + (package + (inherit sbcl-cl-unicode-base) + (name "sbcl-cl-unicode") + (inputs + `(("cl-unicode/base" ,sbcl-cl-unicode-base) + ,@(package-inputs sbcl-cl-unicode-base))) + (native-inputs + `(("flexi-streams" ,sbcl-flexi-streams))) + (arguments '()))) + +(define-public ecl-cl-unicode + (sbcl-package->ecl-package sbcl-cl-unicode)) + +(define-public cl-unicode + (sbcl-package->cl-source-package sbcl-cl-unicode)) + (define-public sbcl-clx (let ((revision "1") (commit "1c62774b03c1cf3fe6e5cb532df8b14b44c96b95")) -- cgit 1.4.1 From 4209c31b8f5ad65f741be1baaf0747abb96c8a56 Mon Sep 17 00:00:00 2001 From: Andy Patterson Date: Mon, 3 Apr 2017 09:01:33 -0400 Subject: build-system/asdf: Retain references to source files for binary outputs. In support of long-running programs in which the users would like to be able to jump to the source of a definition of any of the dependencies (itself included) of the program. * guix/build/asdf-build-system.scm (library-outputs): Move from here ... * guix/build/lisp-utils.scm (library-outputs): ... to here. (build-program): Accept dependency-prefixes argument, to allow the caller to specify references which should be retained. Default to the library's output. (build-image): Likewise. (generate-executable): Likewise. * gnu/packages/lisp.scm (sbcl-stumpwm+slynk, sbcl-slynk, sbcl-stumpwm): Adjust accordingly to the new interface. (sbcl-stumpwm+slynk)[native-inputs]: Move to ... [inputs]: ... here. --- gnu/packages/lisp.scm | 13 ++++++++---- guix/build/asdf-build-system.scm | 4 ---- guix/build/lisp-utils.scm | 44 ++++++++++++++++++++++++++++++++++------ 3 files changed, 47 insertions(+), 14 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 47bff1d4b6..02b8a0b166 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -904,6 +904,7 @@ from other CLXes around the net.") (lambda* (#:key outputs #:allow-other-keys) (build-program (string-append (assoc-ref outputs "out") "/bin/stumpwm") + outputs #:entry-program '((stumpwm:stumpwm) 0)))) (add-after 'build-program 'create-desktop-file (lambda* (#:key outputs #:allow-other-keys) @@ -1153,6 +1154,7 @@ multiple inspectors with independent history.") (build-image (string-append (assoc-ref %outputs "image") "/bin/slynk") + %outputs #:dependencies ',slynk-systems))))))) (define-public ecl-slynk @@ -1182,7 +1184,7 @@ multiple inspectors with independent history.") (inherit sbcl-stumpwm) (name "sbcl-stumpwm-with-slynk") (outputs '("out")) - (native-inputs + (inputs `(("stumpwm" ,sbcl-stumpwm "lib") ("slynk" ,sbcl-slynk))) (arguments @@ -1190,13 +1192,16 @@ multiple inspectors with independent history.") ((#:phases phases) `(modify-phases ,phases (replace 'build-program - (lambda* (#:key outputs #:allow-other-keys) + (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (program (string-append out "/bin/stumpwm"))) - (build-program program + (build-program program outputs #:entry-program '((stumpwm:stumpwm) 0) #:dependencies '("stumpwm" - ,@slynk-systems)) + ,@slynk-systems) + #:dependency-prefixes + (map (lambda (input) (assoc-ref inputs input)) + '("stumpwm" "slynk"))) ;; Remove unneeded file. (delete-file (string-append out "/bin/stumpwm-exec.fasl")) #t))) diff --git a/guix/build/asdf-build-system.scm b/guix/build/asdf-build-system.scm index fd4d84dfa0..1e0a2f6dea 100644 --- a/guix/build/asdf-build-system.scm +++ b/guix/build/asdf-build-system.scm @@ -71,10 +71,6 @@ to it's binary output." (define (source-asd-file output name asd-file) (string-append (lisp-source-directory output name) "/" asd-file)) -(define (library-output outputs) - "If a `lib' output exists, build things there. Otherwise use `out'." - (or (assoc-ref outputs "lib") (assoc-ref outputs "out"))) - (define (copy-files-to-output out name) "Copy all files from the current directory to OUT. Create an extra link to any system-defining files in the source to a convenient location. This is diff --git a/guix/build/lisp-utils.scm b/guix/build/lisp-utils.scm index 7d5d41d23c..3b441cf802 100644 --- a/guix/build/lisp-utils.scm +++ b/guix/build/lisp-utils.scm @@ -42,7 +42,8 @@ build-image make-asd-file valid-char-set - normalize-string)) + normalize-string + library-output)) ;;; Commentary: ;;; @@ -67,6 +68,10 @@ (define (%bundle-install-prefix) (string-append %source-install-prefix "/" (%lisp-type) "-bundle-systems")) +(define (library-output outputs) + "If a `lib' output exists, build things there. Otherwise use `out'." + (or (assoc-ref outputs "lib") (assoc-ref outputs "out"))) + ;; See nix/libstore/store-api.cc#checkStoreName. (define valid-char-set (string->char-set @@ -298,16 +303,20 @@ which are not nested." (setenv "CL_SOURCE_REGISTRY" (string-append path ":" (or (getenv "CL_SOURCE_REGISTRY") "")))) -(define* (build-program program #:key +(define* (build-program program outputs #:key + (dependency-prefixes (list (library-output outputs))) (dependencies (list (basename program))) entry-program #:allow-other-keys) "Generate an executable program containing all DEPENDENCIES, and which will execute ENTRY-PROGRAM. The result is placed in PROGRAM. When executed, it will run ENTRY-PROGRAM, a list of Common Lisp expressions in which `arguments' -has been bound to the command-line arguments which were passed." +has been bound to the command-line arguments which were passed. Link in any +asd files from DEPENDENCY-PREFIXES to ensure references to those libraries are +retained." (generate-executable program #:dependencies dependencies + #:dependency-prefixes dependency-prefixes #:entry-program entry-program #:type 'asdf:program-op) (let* ((name (basename program)) @@ -317,13 +326,16 @@ has been bound to the command-line arguments which were passed." name))) #t) -(define* (build-image image #:key +(define* (build-image image outputs #:key + (dependency-prefixes (list (library-output outputs))) (dependencies (list (basename image))) #:allow-other-keys) "Generate an image, possibly standalone, which contains all DEPENDENCIES, -placing the result in IMAGE.image." +placing the result in IMAGE.image. Link in any asd files from +DEPENDENCY-PREFIXES to ensure references to those libraries are retained." (generate-executable image #:dependencies dependencies + #:dependency-prefixes dependency-prefixes #:entry-program '(nil) #:type 'asdf:image-op) (let* ((name (basename image)) @@ -335,12 +347,14 @@ placing the result in IMAGE.image." (define* (generate-executable out-file #:key dependencies + dependency-prefixes entry-program type #:allow-other-keys) "Generate an executable by using asdf operation TYPE, containing whithin the image all DEPENDENCIES, and running ENTRY-PROGRAM in the case of an -executable." +executable. Link in any asd files from DEPENDENCY-PREFIXES to ensure +references to those libraries are retained." (let* ((bin-directory (dirname out-file)) (name (basename out-file))) (mkdir-p bin-directory) @@ -361,5 +375,23 @@ executable." (generate-executable-for-system type name) + (let* ((after-store-prefix-index + (string-index out-file #\/ + (1+ (string-length (%store-directory))))) + (output (string-take out-file after-store-prefix-index)) + (hidden-asd-links (string-append output "/.asd-files"))) + + (mkdir-p hidden-asd-links) + (for-each + (lambda (path) + (for-each + (lambda (asd-file) + (symlink asd-file + (string-append hidden-asd-links + "/" (basename asd-file)))) + (find-files (string-append path (%bundle-install-prefix)) + "\\.asd$"))) + dependency-prefixes)) + (delete-file (string-append bin-directory "/" name "-exec.asd")) (delete-file (string-append bin-directory "/" name "-exec.lisp")))) -- cgit 1.4.1 From f56da605d886b1f936d512c35d7057d05f284ec5 Mon Sep 17 00:00:00 2001 From: Andy Patterson Date: Sat, 8 Apr 2017 23:50:01 -0400 Subject: gnu: sbcl-slynk-boot0: Give the package an appropriate name. * gnu/packages/lisp.scm (sbcl-slynk-boot0)[name]: Change it to reflect the bootstrap status of the package. [arguments]<#:asd-system-name>: Add the appropriate value. (sbcl-slynk-arglists)[arguments]: Set the appropriate #:asd-file and forcibly unset #:asd-system-name. (sbcl-slynk)[name]: Change it to the variable name. (cl-slynk)[name]: Likewise. --- gnu/packages/lisp.scm | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 02b8a0b166..64acc75e59 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -951,7 +951,7 @@ productive, customizable lisp based systems.") (let ((revision "1") (commit "5706cd45d484a4f25795abe8e643509d31968aa2")) (package - (name "sbcl-slynk") ; name must refer to the system name for now + (name "sbcl-slynk-boot0") (version (string-append "1.0.0-beta-" revision "." (string-take commit 7))) (source (origin @@ -991,7 +991,8 @@ productive, customizable lisp based systems.") (scandir "slynk")))))) (build-system asdf-build-system/sbcl) (arguments - `(#:tests? #f)) ; No test suite + `(#:tests? #f ; No test suite + #:asd-system-name "slynk")) (synopsis "Common Lisp IDE for Emacs") (description "SLY is a fork of SLIME, an IDE backend for Common Lisp. It also features a completely redesigned REPL based on Emacs's own @@ -1003,7 +1004,9 @@ multiple inspectors with independent history.") (properties `((cl-source-variant . ,(delay cl-slynk))))))) (define-public cl-slynk - (sbcl-package->cl-source-package sbcl-slynk-boot0)) + (package + (inherit (sbcl-package->cl-source-package sbcl-slynk-boot0)) + (name "cl-slynk"))) (define ecl-slynk-boot0 (sbcl-package->ecl-package sbcl-slynk-boot0)) @@ -1014,8 +1017,9 @@ multiple inspectors with independent history.") (name "sbcl-slynk-arglists") (inputs `(("slynk" ,sbcl-slynk-boot0))) (arguments - `(#:asd-file "slynk.asd" - ,@(package-arguments sbcl-slynk-boot0))))) + (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0) + ((#:asd-file _ "") "slynk.asd") + ((#:asd-system-name _ #f) #f))))) (define ecl-slynk-arglists (sbcl-package->ecl-package sbcl-slynk-arglists)) @@ -1110,6 +1114,7 @@ multiple inspectors with independent history.") (define-public sbcl-slynk (package (inherit sbcl-slynk-boot0) + (name "sbcl-slynk") (inputs `(("slynk" ,sbcl-slynk-boot0) ("slynk-util" ,sbcl-slynk-util) -- cgit 1.4.1 From e44112e1a5fbac4041f7d4a38d164d3e520848c2 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 16 May 2017 12:43:49 +0200 Subject: gnu: Rename stringtemplate3 to java-stringtemplate-3. * gnu/packages/java.scm (stringtemplate3): Replace this... (java-stringtemplate-3): ...with this. [name]: Change to "java-stringtemplate". (stringtemplate4)[inputs]: Adjust accordingly. (stringtemplate4-4.0.6)[inputs]: Likewise. (antlr3)[inputs, propagated-inputs]: Likewise. (antlr3-3.3)[propagated-inputs, arguments]: Likewise. (antlr3-3.1)[propagated-inputs]: Likewise. --- gnu/packages/java.scm | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 4a381b6a1c..895cb730b8 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -3149,9 +3149,9 @@ C++, or Python actions. ANTLR provides excellent support for tree construction, tree walking, and translation.") (license license:public-domain))) -(define-public stringtemplate3 +(define-public java-stringtemplate-3 (package - (name "stringtemplate3") + (name "java-stringtemplate") (version "3.2.1") (source (origin (method url-fetch) @@ -3231,7 +3231,7 @@ StringTemplate also powers ANTLR.") (inputs `(("antlr3" ,antlr3-bootstrap) ("antlr2" ,antlr2) - ("stringtemplate" ,stringtemplate3))) + ("java-stringtemplate" ,java-stringtemplate-3))) (home-page "http://www.stringtemplate.org") (synopsis "Template engine to generate formatted text output") (description "StringTemplate is a java template engine (with ports for C#, @@ -3257,7 +3257,7 @@ StringTemplate also powers ANTLR.") (inputs `(("antlr3" ,antlr3-3.3) ("antlr2" ,antlr2) - ("stringtemplate" ,stringtemplate3))))) + ("java-stringtemplate" ,java-stringtemplate-3))))) (define-public antlr3 (package @@ -3344,10 +3344,10 @@ import org.antlr.grammar.v3.ANTLRTreePrinter;")) ("antlr3" ,antlr3-bootstrap))) (inputs `(("junit" ,java-junit) - ("stringtemplate" ,stringtemplate3) + ("stringtemplate" ,java-stringtemplate-3) ("stringtemplate4" ,stringtemplate4))) (propagated-inputs - `(("stringtemplate" ,stringtemplate3) + `(("stringtemplate" ,java-stringtemplate-3) ("antlr" ,antlr2) ("stringtemplate4" ,stringtemplate4-4.0.6))) (home-page "http://www.antlr3.org") @@ -3400,7 +3400,7 @@ tree walking, and translation.") (string-append "#!" (which "sh") "\n" "java -cp " jar "/antlr3-3.3.jar:" (string-concatenate - (find-files (assoc-ref inputs "stringtemplate") + (find-files (assoc-ref inputs "java-stringtemplate") ".*\\.jar")) ":" (string-concatenate @@ -3450,7 +3450,7 @@ import org.antlr.grammar.v2.ANTLRTreePrinter;")))) (inputs `(("junit" ,java-junit))) (propagated-inputs - `(("stringtemplate" ,stringtemplate3) + `(("java-stringtemplate" ,java-stringtemplate-3) ("antlr" ,antlr2) ("antlr3" ,antlr3-3.1))))) @@ -3522,7 +3522,7 @@ import org.antlr.grammar.v2.ANTLRTreePrinter;")))) (inputs `(("junit" ,java-junit))) (propagated-inputs - `(("stringtemplate" ,stringtemplate3))))) + `(("stringtemplate" ,java-stringtemplate-3))))) (define-public java-asm (package -- cgit 1.4.1 From 129d926d26b4f1a581351dce4cacadc4741539c6 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 16 May 2017 12:47:29 +0200 Subject: gnu: java-stringtemplate-3: Do not hardcode version string. * gnu/packages/java.scm (java-stringtemplate-3)[arguments]: Take current version string. --- gnu/packages/java.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 895cb730b8..cf8430451c 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -3163,7 +3163,7 @@ tree walking, and translation.") "086yj68np1vqhkj7483diz3km6s6y4gmwqswa7524a0ca6vxn2is")))) (build-system ant-build-system) (arguments - `(#:jar-name "stringtemplate-3.2.1.jar" + `(#:jar-name (string-append ,name "-" ,version ".jar") #:tests? #f #:phases (modify-phases %standard-phases -- cgit 1.4.1 From 2fcda6d291c3c7a1bbbc1960accc58a619b2c043 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 16 May 2017 12:48:47 +0200 Subject: gnu: java-stringtemplate-3: Enable tests. * gnu/packages/java.scm (java-stringtemplate-3)[arguments]: Enable tests; add build phase to fix tests. --- gnu/packages/java.scm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index cf8430451c..8fe005b28d 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -3164,9 +3164,15 @@ tree walking, and translation.") (build-system ant-build-system) (arguments `(#:jar-name (string-append ,name "-" ,version ".jar") - #:tests? #f + #:test-dir "test" #:phases (modify-phases %standard-phases + (add-before 'check 'fix-tests + (lambda _ + (substitute* "build.xml" + (("\\$\\{test.home\\}/java") + "${test.home}/org")) + #t)) (add-before 'build 'generate-grammar (lambda _ (let ((dir "src/org/antlr/stringtemplate/language/")) @@ -3177,7 +3183,8 @@ tree walking, and translation.") '("template.g" "angle.bracket.template.g" "action.g" "eval.g" "group.g" "interface.g")))))))) (native-inputs - `(("antlr" ,antlr2))) + `(("antlr" ,antlr2) + ("java-junit" ,java-junit))) (home-page "http://www.stringtemplate.org") (synopsis "Template engine to generate formatted text output") (description "StringTemplate is a java template engine (with ports for C#, -- cgit 1.4.1 From b101b4e8c1a5c9719b645708dfa0f7dda4b77f2d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 16 May 2017 12:52:59 +0200 Subject: gnu: java-stringtemplate-3: Use return value in build phase. * gnu/packages/java.scm (java-stringtemplate-3)[arguments]: Let build phase "generate-grammar" return success or failure. --- gnu/packages/java.scm | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 8fe005b28d..123c49c9d5 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -3165,6 +3165,9 @@ tree walking, and translation.") (arguments `(#:jar-name (string-append ,name "-" ,version ".jar") #:test-dir "test" + #:modules ((guix build ant-build-system) + (guix build utils) + (srfi srfi-1)) #:phases (modify-phases %standard-phases (add-before 'check 'fix-tests @@ -3175,13 +3178,12 @@ tree walking, and translation.") #t)) (add-before 'build 'generate-grammar (lambda _ - (let ((dir "src/org/antlr/stringtemplate/language/")) - (for-each (lambda (file) - (display file) - (newline) - (system* "antlr" "-o" dir (string-append dir file))) - '("template.g" "angle.bracket.template.g" "action.g" - "eval.g" "group.g" "interface.g")))))))) + (with-directory-excursion "src/org/antlr/stringtemplate/language/" + (every (lambda (file) + (format #t "~a\n" file) + (zero? (system* "antlr" file))) + '("template.g" "angle.bracket.template.g" "action.g" + "eval.g" "group.g" "interface.g")))))))) (native-inputs `(("antlr" ,antlr2) ("java-junit" ,java-junit))) -- cgit 1.4.1 From 407df789cf3c2f957ce3f96441a74e20bb0f7b2c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 16 May 2017 12:58:11 +0200 Subject: gnu: stringtemplate4: Inherit from java-stringtemplate-3. * gnu/packages/java.scm (stringtemplate4)[inherit]: Add "java-stringtemplate-3" as parent. [home-page, synopsis, description, license]: Inherit from parent. --- gnu/packages/java.scm | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 123c49c9d5..6c8af7380a 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -3211,7 +3211,7 @@ StringTemplate also powers ANTLR.") ;; So we build antlr3.1 -> antlr3.3 -> ST4.0.6 -> antlr3-bootstrap -> ST4 -> antlr3. (define-public stringtemplate4 - (package + (package (inherit java-stringtemplate-3) (name "stringtemplate4") (version "4.0.8") (source (origin @@ -3240,15 +3240,7 @@ StringTemplate also powers ANTLR.") (inputs `(("antlr3" ,antlr3-bootstrap) ("antlr2" ,antlr2) - ("java-stringtemplate" ,java-stringtemplate-3))) - (home-page "http://www.stringtemplate.org") - (synopsis "Template engine to generate formatted text output") - (description "StringTemplate is a java template engine (with ports for C#, -Objective-C, JavaScript, Scala) for generating source code, web pages, emails, -or any other formatted text output. StringTemplate is particularly good at -code generators, multiple site skins, and internationalization / localization. -StringTemplate also powers ANTLR.") - (license license:bsd-3))) + ("java-stringtemplate" ,java-stringtemplate-3))))) (define stringtemplate4-4.0.6 (package -- cgit 1.4.1 From f4aa4cfe001d0637816577450aa2f35e23b5a653 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 16 May 2017 13:19:32 +0200 Subject: gnu: stringtemplate4: Prettify "generate-grammar" phase. * gnu/packages/java.scm (stringtemplate4)[arguments]: Rewrite "generate-grammar" phase to use "with-directory-excursion" and to report success or failure. --- gnu/packages/java.scm | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 6c8af7380a..b45569ae3f 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -3226,17 +3226,18 @@ StringTemplate also powers ANTLR.") (arguments `(#:tests? #f #:jar-name (string-append ,name "-" ,version ".jar") + #:modules ((guix build ant-build-system) + (guix build utils) + (srfi srfi-1)) #:phases (modify-phases %standard-phases (add-before 'build 'generate-grammar - (lambda* (#:key inputs #:allow-other-keys) - (chdir "src/org/stringtemplate/v4/compiler/") - (for-each (lambda (file) - (display file) - (newline) - (system* "antlr3" file)) - '("STParser.g" "Group.g" "CodeGenerator.g")) - (chdir "../../../../..")))))) + (lambda _ + (with-directory-excursion "src/org/stringtemplate/v4/compiler/" + (every (lambda (file) + (format #t "~a\n" file) + (zero? (system* "antlr3" file))) + '("STParser.g" "Group.g" "CodeGenerator.g")))))))) (inputs `(("antlr3" ,antlr3-bootstrap) ("antlr2" ,antlr2) -- cgit 1.4.1 From 64b7efc0db00da085445e5c7f451384225797229 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 16 May 2017 13:22:01 +0200 Subject: gnu: Rename stringtemplate4 to java-stringtemplate. * gnu/packages/java.scm (stringtemplate4): Rename this... (java-stringtemplate): ...to this. (stringtemplate4-4.0.6)[inherit]: Adjust accordingly. (antlr3)[inputs]: Likewise. --- gnu/packages/java.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index b45569ae3f..4841bad72f 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -3210,9 +3210,9 @@ StringTemplate also powers ANTLR.") ;; only grammar files with the antlr2 syntax. ;; So we build antlr3.1 -> antlr3.3 -> ST4.0.6 -> antlr3-bootstrap -> ST4 -> antlr3. -(define-public stringtemplate4 +(define-public java-stringtemplate (package (inherit java-stringtemplate-3) - (name "stringtemplate4") + (name "java-stringtemplate") (version "4.0.8") (source (origin (method url-fetch) @@ -3244,8 +3244,7 @@ StringTemplate also powers ANTLR.") ("java-stringtemplate" ,java-stringtemplate-3))))) (define stringtemplate4-4.0.6 - (package - (inherit stringtemplate4) + (package (inherit java-stringtemplate) (name "stringtemplate4") (version "4.0.6") (source (origin @@ -3347,7 +3346,7 @@ import org.antlr.grammar.v3.ANTLRTreePrinter;")) (inputs `(("junit" ,java-junit) ("stringtemplate" ,java-stringtemplate-3) - ("stringtemplate4" ,stringtemplate4))) + ("stringtemplate4" ,java-stringtemplate))) (propagated-inputs `(("stringtemplate" ,java-stringtemplate-3) ("antlr" ,antlr2) -- cgit 1.4.1 From 1345eeb03a25b08d07d9a613531033afd428a8be Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 16 May 2017 13:23:54 +0200 Subject: gnu: Rename stringtemplate4-4.0.6 to java-stringtemplate-4.0.6. * gnu/packages/java.scm (stringtemplate4-4.0.6): Rename this... (java-stringtemplate-4.0.6): ...to this. (antlr3)[propagated-inputs]: Adjust accordingly. --- gnu/packages/java.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 4841bad72f..bd27d41e12 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -3243,9 +3243,9 @@ StringTemplate also powers ANTLR.") ("antlr2" ,antlr2) ("java-stringtemplate" ,java-stringtemplate-3))))) -(define stringtemplate4-4.0.6 +(define java-stringtemplate-4.0.6 (package (inherit java-stringtemplate) - (name "stringtemplate4") + (name "java-stringtemplate") (version "4.0.6") (source (origin (method url-fetch) @@ -3350,7 +3350,7 @@ import org.antlr.grammar.v3.ANTLRTreePrinter;")) (propagated-inputs `(("stringtemplate" ,java-stringtemplate-3) ("antlr" ,antlr2) - ("stringtemplate4" ,stringtemplate4-4.0.6))) + ("stringtemplate4" ,java-stringtemplate-4.0.6))) (home-page "http://www.antlr3.org") (synopsis "Framework for constructing recognizers, compilers, and translators") (description "ANTLR, ANother Tool for Language Recognition, (formerly PCCTS) -- cgit 1.4.1 From 6db77c7ca1b4f2b1896136684618e30b343bfc1f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 16 May 2017 14:01:58 +0200 Subject: gnu: java-stringtemplate: Get closer to fixing tests. * gnu/packages/java.scm (java-stringtemplate)[arguments]: Set test-dir and override default test target. Keep tests disabled because they fail for unknown reasons. [inputs]: Add java-junit. --- gnu/packages/java.scm | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index bd27d41e12..188ca7e970 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -3224,13 +3224,20 @@ StringTemplate also powers ANTLR.") "1pri8hqa95rfdkjy55icl5q1m09zwp5k67ib14abas39s4v3w087")))) (build-system ant-build-system) (arguments - `(#:tests? #f - #:jar-name (string-append ,name "-" ,version ".jar") + `(#:jar-name (string-append ,name "-" ,version ".jar") + #:tests? #f ; FIXME: tests fail for unknown reasons + #:test-dir "test" #:modules ((guix build ant-build-system) (guix build utils) (srfi srfi-1)) #:phases (modify-phases %standard-phases + (add-before 'check 'fix-test-target + (lambda _ + (substitute* "build.xml" + (("\\$\\{test.home\\}/java") "${test.home}/") + (("\\*Test.java") "Test*.java")) + #t)) (add-before 'build 'generate-grammar (lambda _ (with-directory-excursion "src/org/stringtemplate/v4/compiler/" @@ -3241,7 +3248,8 @@ StringTemplate also powers ANTLR.") (inputs `(("antlr3" ,antlr3-bootstrap) ("antlr2" ,antlr2) - ("java-stringtemplate" ,java-stringtemplate-3))))) + ("java-stringtemplate" ,java-stringtemplate-3) + ("java-junit" ,java-junit))))) (define java-stringtemplate-4.0.6 (package (inherit java-stringtemplate) -- cgit 1.4.1 From ca05bc0e1eb39c75444a054dfba8533c4bd05d33 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 16 May 2017 22:26:22 +0300 Subject: gnu: tor: Update to 0.3.0.7. * gnu/packages/tor.scm (tor): Update to 0.3.0.7. --- gnu/packages/tor.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index 83e49a1536..b31b58a26f 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès ;;; Copyright © 2014, 2015 Mark H Weaver -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016, 2017 ng0 ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 Eric Bavier @@ -43,14 +43,14 @@ (define-public tor (package (name "tor") - (version "0.3.0.6") + (version "0.3.0.7") (source (origin (method url-fetch) (uri (string-append "https://dist.torproject.org/tor-" version ".tar.gz")) (sha256 (base32 - "057vq8wagppmrlg85dgbsrk1v67yqpbi9n87s8gn0mdm7kli5rd3")))) + "00kxa83bn0axh7479fynp6r8znq5wy26kvb8ghixgjpkir2c8h4n")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list "--enable-expensive-hardening" -- cgit 1.4.1 From 231e48d6db692910b1a8c94fdc954f2721329211 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Mon, 15 May 2017 00:04:26 -0400 Subject: gnu: emacspeak: Update to 46.0. * gnu/packages/emacs.scm (emacspeak): Update to 46.0. [source]: Add snippet to delete pre-compiled Emacs Lisp files. [arguments]: Adjust phases for the update. --- gnu/packages/emacs.scm | 52 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 19 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 3d9e83713e..228b2a47fe 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4145,7 +4145,7 @@ jQuery and Bootstrap resources included via osscdn.") (define-public emacspeak (package (name "emacspeak") - (version "45.0") + (version "46.0") (source (origin (method url-fetch) @@ -4154,7 +4154,11 @@ jQuery and Bootstrap resources included via osscdn.") version "/emacspeak-" version ".tar.bz2")) (sha256 (base32 - "0npcr867xbbhwa0i7v26hnk4z2d51522jwcfwc594j74kbv3g6ka")))) + "15x4yfp3wl2fxm1nkx6pz3clw6zyw3argcsqxgcx6pa28sivlg2n")) + (modules '((guix build utils))) + (snippet + ;; Delete the bundled byte-compiled elisp files. + '(for-each delete-file (find-files "lisp" "\\.elc$"))))) (build-system gnu-build-system) (arguments '(#:make-flags (list (string-append "prefix=" @@ -4162,25 +4166,35 @@ jQuery and Bootstrap resources included via osscdn.") #:phases (modify-phases %standard-phases (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - (substitute* "Makefile" - (("\\$\\(INSTALL\\) -d \\$\\(libdir\\)/servers/linux-outloud") - "") - (("\\$\\(INSTALL\\) -m 755 \\$\\{OUTLOUD\\}.*$") "") - (("\\*info\\*") "*")) - (substitute* "etc/emacspeak.sh.def" - (("") - (string-append (assoc-ref outputs "out") - "/share/emacs/site-lisp/emacspeak/lisp"))) + (lambda _ + ;; Configure Emacspeak according to etc/install.org. (zero? (system* "make" "config")))) - (add-after 'install 'install-espeak-server + (add-after 'build 'build-espeak + (lambda _ + (zero? (system* "make" "espeak")))) + (replace 'install (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (with-directory-excursion "servers/linux-espeak" - (and (zero? (system* "make")) - (zero? (system* "make" "install" - (string-append "PREFIX=" out)))))))) - (add-after 'install-espeak-server 'wrap-program + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (lisp (string-append out "/share/emacs/site-lisp/emacspeak")) + (info (string-append out "/share/info"))) + ;; According to etc/install.org, the Emacspeak directory should + ;; be copied to its installation destination. + (for-each + (lambda (file) + (copy-recursively file (string-append lisp "/" file))) + '("etc" "info" "lisp" "media" "servers" "sounds" "stumpwm" + "xsl")) + ;; Make sure emacspeak is loaded from the correct directory. + (substitute* "etc/emacspeak.sh" + (("exec emacs.*$") + (string-append "exec emacs -l " lisp + "/lisp/emacspeak-setup.el $CL_ALL"))) + ;; Install the convenient startup script. + (mkdir-p bin) + (copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak"))) + #t)) + (add-after 'install 'wrap-program (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (emacspeak (string-append out "/bin/emacspeak")) -- cgit 1.4.1 From 711a0dcefa7b5717dfea6a4a0fa474691e5fa566 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 16 May 2017 21:59:18 +0200 Subject: gnu: glibc/hurd: Use modify-phases syntax. * gnu/packages/base.scm (glibc/hurd)[arguments]: Use modify-phases syntax. --- gnu/packages/base.scm | 56 +++++++++++++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 29 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 59a9acd67e..8a48cadf7b 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -778,35 +778,33 @@ with the Linux kernel.") ((#:phases original-phases) ;; Add libmachuser.so and libhurduser.so to libc.so's search path. ;; See . - `(alist-cons-after - 'install 'augment-libc.so - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out"))) - (substitute* (string-append out "/lib/libc.so") - (("/[^ ]+/lib/libc.so.0.3") - (string-append out "/lib/libc.so.0.3" " libmachuser.so" " libhurduser.so")))) - #t) - (alist-cons-after - 'pre-configure 'pre-configure-set-pwd - (lambda _ - ;; Use the right 'pwd'. - (substitute* "configure" - (("/bin/pwd") "pwd"))) - (alist-replace - 'build - (lambda _ - ;; Force mach/hurd/libpthread subdirs to build first in order to avoid - ;; linking errors. - ;; See - (let ((-j (list "-j" (number->string (parallel-job-count))))) - (let-syntax ((make (syntax-rules () - ((_ target) - (zero? (apply system* "make" target -j)))))) - (and (make "mach/subdir_lib") - (make "hurd/subdir_lib") - (make "libpthread/subdir_lib") - (zero? (apply system* "make" -j)))))) - ,original-phases)))) + `(modify-phases ,original-phases + (add-after 'install 'augment-libc.so + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (substitute* (string-append out "/lib/libc.so") + (("/[^ ]+/lib/libc.so.0.3") + (string-append out "/lib/libc.so.0.3" " libmachuser.so" " libhurduser.so")))) + #t)) + (add-after 'pre-configure 'pre-configure-set-pwd + (lambda _ + ;; Use the right 'pwd'. + (substitute* "configure" + (("/bin/pwd") "pwd")) + #t)) + (replace 'build + (lambda _ + ;; Force mach/hurd/libpthread subdirs to build first in order to avoid + ;; linking errors. + ;; See + (let ((-j (list "-j" (number->string (parallel-job-count))))) + (let-syntax ((make (syntax-rules () + ((_ target) + (zero? (apply system* "make" target -j)))))) + (and (make "mach/subdir_lib") + (make "hurd/subdir_lib") + (make "libpthread/subdir_lib") + (zero? (apply system* "make" -j))))))))) ((#:configure-flags original-configure-flags) `(append (list "--host=i586-pc-gnu" -- cgit 1.4.1 From 441e99d433583fdf76910c3f9323f78a1d1bbaf3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 16 May 2017 22:11:41 +0200 Subject: gnu: glibc/hurd: Do not apply i686 patch. This is a follow-up to commit c2e4f14ac8cd3e1ce7f46a192ad0c9acc084b210. * gnu/packages/base.scm (glibc/hurd)[arguments]: Override pre-configure phase with a copy that does not include the patch application. --- gnu/packages/base.scm | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 8a48cadf7b..d135a18bf8 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -779,6 +779,71 @@ with the Linux kernel.") ;; Add libmachuser.so and libhurduser.so to libc.so's search path. ;; See . `(modify-phases ,original-phases + ;; TODO: This is almost an exact copy of the phase of the same name + ;; in glibc/linux. The only difference is that the i686 patch is + ;; not applied here. In the next update cycle the patch moves to + ;; the patches field and this overwritten phase won't be needed any + ;; more. + (replace 'pre-configure + (lambda* (#:key inputs native-inputs outputs + #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + ;; FIXME: Normally we would look it up only in INPUTS + ;; but cross-base uses it as a native input. + (bash (or (assoc-ref inputs "static-bash") + (assoc-ref native-inputs "static-bash")))) + ;; Install the rpc data base file under `$out/etc/rpc'. + ;; FIXME: Use installFlags = [ "sysconfdir=$(out)/etc" ]; + (substitute* "sunrpc/Makefile" + (("^\\$\\(inst_sysconfdir\\)/rpc(.*)$" _ suffix) + (string-append out "/etc/rpc" suffix "\n")) + (("^install-others =.*$") + (string-append "install-others = " out "/etc/rpc\n"))) + + (substitute* "Makeconfig" + ;; According to + ;; , + ;; linking against libgcc_s is not needed with GCC + ;; 4.7.1. + ((" -lgcc_s") "")) + + ;; Have `system' use that Bash. + (substitute* "sysdeps/posix/system.c" + (("#define[[:blank:]]+SHELL_PATH.*$") + (format #f "#define SHELL_PATH \"~a/bin/bash\"\n" + bash))) + + ;; Same for `popen'. + (substitute* "libio/iopopen.c" + (("/bin/sh") + (string-append bash "/bin/sh"))) + + ;; Same for the shell used by the 'exec' functions for + ;; scripts that lack a shebang. + (substitute* (find-files "." "^paths\\.h$") + (("#define[[:blank:]]+_PATH_BSHELL[[:blank:]].*$") + (string-append "#define _PATH_BSHELL \"" + bash "/bin/sh\"\n"))) + + ;; Nscd uses __DATE__ and __TIME__ to create a string to + ;; make sure the client and server come from the same + ;; libc. Use something deterministic instead. + (substitute* "nscd/nscd_stat.c" + (("static const char compilation\\[21\\] =.*$") + (string-append + "static const char compilation[21] = \"" + (string-take (basename out) 20) "\";\n"))) + + ;; Make sure we don't retain a reference to the + ;; bootstrap Perl. + (substitute* "malloc/mtrace.pl" + (("^#!.*") + ;; The shebang can be omitted, because there's the + ;; "bilingual" eval/exec magic at the top of the file. + "") + (("exec @PERL@") + "exec perl"))))) (add-after 'install 'augment-libc.so (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out"))) -- cgit 1.4.1 From 16dcac5b26588529eb2cea3483bdf0d002a7abd9 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Thu, 11 May 2017 14:42:53 +0200 Subject: gnu: php: Update to 7.1.5. * gnu/packages/php.scm (php): Update to 7.1.5. [arguments]: Remove a no longer relevant test fix. --- gnu/packages/php.scm | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm index ab277ed973..1b55cd4eb9 100644 --- a/gnu/packages/php.scm +++ b/gnu/packages/php.scm @@ -53,7 +53,7 @@ (define-public php (package (name "php") - (version "7.1.4") + (version "7.1.5") (home-page "https://secure.php.net/") (source (origin (method url-fetch) @@ -61,7 +61,7 @@ name "-" version ".tar.xz")) (sha256 (base32 - "02rh1lcfj2hakyls73gwn6w00yblnfh4883w13gn7sgkmn346lbi")) + "1b7njiqgy66ga5c8wsm78mqqjr7lj3hlpwbbvksi2mn4jv1s6jfi")) (modules '((guix build utils))) (snippet '(with-directory-excursion "ext" @@ -169,12 +169,6 @@ "ext/standard/tests/general_functions/proc_open.phpt") (("/bin/cat") (which "cat"))) - ;; These tests fail because they include a file whose modification - ;; time is 0. Touch them to make the test pass. The issue is reported - ;; upstream as #74137. - (utime "sapi/phpdbg/tests/include.inc" 1 1) - (utime "sapi/phpdbg/tests/phpdbg_get_executable_stream_wrapper.inc" 1 1) - ;; The encoding of this file is not recognized, so we simply drop it. (delete-file "ext/mbstring/tests/mb_send_mail07.phpt") -- cgit 1.4.1 From e0bb0a81ec8a01fdd397b5123dafddfc262f7a02 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Sun, 14 May 2017 11:35:30 +0200 Subject: gnu: mes: Update to 0.6. * gnu/packages/mes.scm (mes): Update to 0.6. --- gnu/packages/mes.scm | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm index 84d6f8ff78..66b0654de5 100644 --- a/gnu/packages/mes.scm +++ b/gnu/packages/mes.scm @@ -54,30 +54,35 @@ extensive examples, including parsers for the Javascript and C99 languages.") (license (list gpl3+ lgpl3+)))) (define-public mes - (let ((commit "a437c173b9da1949ad966fd50dd4f26e522a910a") + (let ((commit "d4420bbcc9f994e2cce430cf156f383dc4092bca") (revision "0") - (triplet "i686-unknown-linux-gnu")) + (triplet "i686-unknown-linux-gnu") + (version "0.6")) (package (name "mes") - (version (string-append "0.5-" revision "." (string-take commit 7))) + (version (string-append version "-" revision "." (string-take commit 7))) (source (origin (method git-fetch) (uri (git-reference (url "https://gitlab.com/janneke/mes") (commit commit))) (file-name (string-append name "-" version)) - ;; TODO: Unbundle nyacc. (sha256 - (base32 "1ynr0hc0k15307sgzv09k3y5rvy46h0wbh7zcblx1f9v7y8k90zv")))) + (base32 "0qqywk3siyhf08v7xac08lqldklrqfndlp495wgy6ii9fn93197k")))) (build-system gnu-build-system) - (supported-systems '("x86_64-linux")) + (supported-systems '("i686-linux" "x86_64-linux")) + (propagated-inputs + `(("nyacc" ,nyacc))) (native-inputs `(("guile" ,guile-2.2) - ;; Use cross-compiler rather than #:system "i686-linux" to get - ;; MesCC 64 bit .go files installed ready for use with Guile. - ("i686-linux-binutils" ,(cross-binutils triplet)) - ("i686-linux-gcc" ,(let ((triplet triplet)) (cross-gcc triplet))) - ("perl" ,perl))) ;build-aux/gitlog-to-changelog + ,@(if (or (equal? (%current-system) "x86_64-linux") + (string-prefix? (%current-target-system) "x86_64-linux")) + ;; Use cross-compiler rather than #:system "i686-linux" to get + ;; MesCC 64 bit .go files installed ready for use with Guile. + `(("i686-linux-binutils" ,(cross-binutils triplet)) + ("i686-linux-gcc" ,(cross-gcc triplet))) + '()) + ("perl" ,perl))) ;build-aux/gitlog-to-changelog (arguments `(#:phases (modify-phases %standard-phases -- cgit 1.4.1 From 473f34cbdce388d6dfd01ea472ec6ade2a187811 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Tue, 16 May 2017 23:56:29 +0200 Subject: gnu: bundler: Update to 1.14.6. * gnu/packages/ruby.scm (bundler): Update to 1.14.6. --- gnu/packages/ruby.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 0d4ae1dbb0..9cb8ab46af 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -447,13 +447,13 @@ expectations and mocks frameworks.") (define-public bundler (package (name "bundler") - (version "1.14.5") + (version "1.14.6") (source (origin (method url-fetch) (uri (rubygems-uri "bundler" version)) (sha256 (base32 - "0635s6naz9hn4iqbvkhnm1by4j4spvv13mb7nzwwimnpbqgx663i")))) + "0h3x2csvlz99v2ryj1w72vn6kixf7rl35lhdryvh7s49brnj0cgl")))) (build-system ruby-build-system) (arguments '(#:tests? #f)) ; avoid dependency cycles -- cgit 1.4.1 From 21aecec1a94f88df9cc3b43ece582a4050cb5e7a Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Wed, 17 May 2017 00:27:44 +0200 Subject: gnu: ruby-concurrent: Update to 1.0.5. * gnu/packages/ruby.scm (ruby-concurrent): Update to 1.0.5. * gnu/packages/patches/ruby-concurrent-test-arm.patch: Adjust accordingly. --- .../patches/ruby-concurrent-test-arm.patch | 26 +++++++++++----------- gnu/packages/ruby.scm | 4 ++-- 2 files changed, 15 insertions(+), 15 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/patches/ruby-concurrent-test-arm.patch b/gnu/packages/patches/ruby-concurrent-test-arm.patch index 75e6365565..06d5657814 100644 --- a/gnu/packages/patches/ruby-concurrent-test-arm.patch +++ b/gnu/packages/patches/ruby-concurrent-test-arm.patch @@ -5,27 +5,27 @@ Work around two test suite failures on ARM: The regexps here assume addresses like "0x1234" but on ARM (32-bit) we get something like "0x-7db1e810" (notice the dash). -diff --git a/spec/concurrent/edge/future_spec.rb b/spec/concurrent/edge/future_spec.rb -index a48fd29..4344d7e 100644 ---- b/spec/concurrent/edge/future_spec.rb -+++ a/spec/concurrent/edge/future_spec.rb -@@ -322,9 +322,9 @@ +diff --git a/spec/concurrent/edge/promises_spec.rb b/spec/concurrent/edge/promises_spec.rb +index 727210f..149f7cd 100644 +--- a/spec/concurrent/edge/promises_spec.rb ++++ b/spec/concurrent/edge/promises_spec.rb +@@ -371,9 +371,9 @@ describe 'Concurrent::Promises' do four = three.delay.then(&:succ) # meaningful to_s and inspect defined for Future and Promise -- expect(head.to_s).to match /<#Concurrent::Edge::Future:0x[\da-f]+ pending>/ -+ expect(head.to_s).to match /<#Concurrent::Edge::Future:0x-?[\da-f]+ pending>/ +- expect(head.to_s).to match /<#Concurrent::Promises::Future:0x[\da-f]+ pending>/ ++ expect(head.to_s).to match /<#Concurrent::Promises::Future:0x-?[\da-f]+ pending>/ expect(head.inspect).to( -- match(/<#Concurrent::Edge::Future:0x[\da-f]+ pending blocks:\[<#Concurrent::Edge::ThenPromise:0x[\da-f]+ pending>\]>/)) -+ match(/<#Concurrent::Edge::Future:0x-?[\da-f]+ pending blocks:\[<#Concurrent::Edge::ThenPromise:0x-?[\da-f]+ pending>\]>/)) +- match(/<#Concurrent::Promises::Future:0x[\da-f]+ pending>/)) ++ match(/<#Concurrent::Promises::Future:0x-?[\da-f]+ pending>/)) # evaluates only up to three, four is left unevaluated expect(three.value!).to eq 3 diff --git a/spec/concurrent/map_spec.rb b/spec/concurrent/map_spec.rb -index 13fd5b7..1c82ebe 100644 ---- b/spec/concurrent/map_spec.rb -+++ a/spec/concurrent/map_spec.rb -@@ -827,7 +827,7 @@ +index c4050be..0a9095d 100644 +--- a/spec/concurrent/map_spec.rb ++++ b/spec/concurrent/map_spec.rb +@@ -794,7 +794,7 @@ module Concurrent end it '#inspect' do diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 9cb8ab46af..747b1813ab 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -4107,7 +4107,7 @@ call.") (define-public ruby-concurrent (package (name "ruby-concurrent") - (version "1.0.2") + (version "1.0.5") (source (origin (method url-fetch) @@ -4120,7 +4120,7 @@ call.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1x3g2admp14ykwfxidsicqbhlfsnxh9wyc806np4i15hws4if1d8")) + "0qhv0qzsby4iijgwa4s9r88zj8123pmyz1dwaqzdk57xgqll9pny")) ;; Exclude failing test reported at ;; https://github.com/ruby-concurrency/concurrent-ruby/issues/534 (patches (search-patches "ruby-concurrent-ignore-broken-test.patch" -- cgit 1.4.1 From 44a0591b2b37232740e7200a9b10737f734a918e Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 16 May 2017 22:50:55 -0400 Subject: gnu: certbot, python-acme: Update to 0.14.1. * gnu/packages/tls.scm (certbot, python-acme, python2-acme): Update to 0.14.1. --- gnu/packages/tls.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 1516fb8527..ebf9a47302 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -474,15 +474,14 @@ security, and applying best practice development processes.") (package (name "python-acme") ;; Remember to update the hash of certbot when updating python-acme. - (version "0.14.0") + (version "0.14.1") (source (origin (method url-fetch) (uri (pypi-uri "acme" version)) (sha256 (base32 - "0hrmh28rrc0fsiw6nqfwbkwb1s4nkl54x50c0g0xlnp86752nzff")))) + "0asmkfkzbswnkrvbj5m01xgy4f6g1fjbj2nir1hhrn3ipcdrsv8f")))) (build-system python-build-system) - (arguments `(#:phases (modify-phases %standard-phases @@ -540,7 +539,7 @@ security, and applying best practice development processes.") (uri (pypi-uri name version)) (sha256 (base32 - "0hbp3njss01a0d3brvcfzja0w0j9plwrv6l70jsfvnhy3rrd7bcq")))) + "0rdby57hw35qdrbl7kigscphnz4kqb608bqzrcb73nb99092i6si")))) (build-system python-build-system) (arguments `(#:python ,python-2 -- cgit 1.4.1 From 8d171471cff2dc16339f51cff6f124653af12069 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Wed, 17 May 2017 10:08:18 +0200 Subject: gnu: ruby-rack: Update to 2.0.3. * gnu/packages/ruby.scm (ruby-rack): Update to 2.0.3. --- gnu/packages/ruby.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 747b1813ab..14511d0c32 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2911,7 +2911,7 @@ differences (added or removed nodes) between two XML/HTML documents.") (define-public ruby-rack (package (name "ruby-rack") - (version "2.0.1") + (version "2.0.3") (source (origin (method url-fetch) @@ -2923,7 +2923,7 @@ differences (added or removed nodes) between two XML/HTML documents.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "00k62v8lpyjzghkn0h0awrnqj1jmlcs2wp57py27m43y65v89cp3")) + "12bnqrcg43x9hsswjqg31qqwk8cwj2fh0d2m179y20bjghhn54kx")) ;; Ignore test which fails inside the build environment but works ;; outside. (patches (search-patches "ruby-rack-ignore-failing-test.patch")))) -- cgit 1.4.1 From e7620b649c2351a3f01b5201e6e9f0b0996e78f5 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 17 May 2017 07:28:09 -0400 Subject: gnu: qemu: Fix CVE-2017-7493. * gnu/packages/patches/qemu-CVE-2017-7493.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/qemu.scm (qemu)[source]: Use it. --- gnu/local.mk | 1 + gnu/packages/patches/qemu-CVE-2017-7493.patch | 182 ++++++++++++++++++++++++++ gnu/packages/qemu.scm | 1 + 3 files changed, 184 insertions(+) create mode 100644 gnu/packages/patches/qemu-CVE-2017-7493.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index d0c5b9daf8..daa67b1aa9 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -941,6 +941,7 @@ dist_patch_DATA = \ %D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \ %D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \ %D%/packages/patches/python2-subprocess32-disable-input-test.patch \ + %D%/packages/patches/qemu-CVE-2017-7493.patch \ %D%/packages/patches/qt4-ldflags.patch \ %D%/packages/patches/quickswitch-fix-dmenu-check.patch \ %D%/packages/patches/rapicorn-isnan.patch \ diff --git a/gnu/packages/patches/qemu-CVE-2017-7493.patch b/gnu/packages/patches/qemu-CVE-2017-7493.patch new file mode 100644 index 0000000000..67b26fad81 --- /dev/null +++ b/gnu/packages/patches/qemu-CVE-2017-7493.patch @@ -0,0 +1,182 @@ +Fix CVE-2017-7493: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7493 + +Patch copied from upstream source repository: + +http://git.qemu.org/?p=qemu.git;a=commit;h=7a95434e0ca8a037fd8aa1a2e2461f92585eb77b + +From 7a95434e0ca8a037fd8aa1a2e2461f92585eb77b Mon Sep 17 00:00:00 2001 +From: Greg Kurz +Date: Fri, 5 May 2017 14:48:08 +0200 +Subject: [PATCH] 9pfs: local: forbid client access to metadata (CVE-2017-7493) + +When using the mapped-file security mode, we shouldn't let the client mess +with the metadata. The current code already tries to hide the metadata dir +from the client by skipping it in local_readdir(). But the client can still +access or modify it through several other operations. This can be used to +escalate privileges in the guest. + +Affected backend operations are: +- local_mknod() +- local_mkdir() +- local_open2() +- local_symlink() +- local_link() +- local_unlinkat() +- local_renameat() +- local_rename() +- local_name_to_path() + +Other operations are safe because they are only passed a fid path, which +is computed internally in local_name_to_path(). + +This patch converts all the functions listed above to fail and return +EINVAL when being passed the name of the metadata dir. This may look +like a poor choice for errno, but there's no such thing as an illegal +path name on Linux and I could not think of anything better. + +This fixes CVE-2017-7493. + +Reported-by: Leo Gaspard +Signed-off-by: Greg Kurz +Reviewed-by: Eric Blake +--- + hw/9pfs/9p-local.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- + 1 file changed, 56 insertions(+), 2 deletions(-) + +diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c +index f3ebca4f7a..a2486566af 100644 +--- a/hw/9pfs/9p-local.c ++++ b/hw/9pfs/9p-local.c +@@ -452,6 +452,11 @@ static off_t local_telldir(FsContext *ctx, V9fsFidOpenState *fs) + return telldir(fs->dir.stream); + } + ++static bool local_is_mapped_file_metadata(FsContext *fs_ctx, const char *name) ++{ ++ return !strcmp(name, VIRTFS_META_DIR); ++} ++ + static struct dirent *local_readdir(FsContext *ctx, V9fsFidOpenState *fs) + { + struct dirent *entry; +@@ -465,8 +470,8 @@ again: + if (ctx->export_flags & V9FS_SM_MAPPED) { + entry->d_type = DT_UNKNOWN; + } else if (ctx->export_flags & V9FS_SM_MAPPED_FILE) { +- if (!strcmp(entry->d_name, VIRTFS_META_DIR)) { +- /* skp the meta data directory */ ++ if (local_is_mapped_file_metadata(ctx, entry->d_name)) { ++ /* skip the meta data directory */ + goto again; + } + entry->d_type = DT_UNKNOWN; +@@ -559,6 +564,12 @@ static int local_mknod(FsContext *fs_ctx, V9fsPath *dir_path, + int err = -1; + int dirfd; + ++ if (fs_ctx->export_flags & V9FS_SM_MAPPED_FILE && ++ local_is_mapped_file_metadata(fs_ctx, name)) { ++ errno = EINVAL; ++ return -1; ++ } ++ + dirfd = local_opendir_nofollow(fs_ctx, dir_path->data); + if (dirfd == -1) { + return -1; +@@ -605,6 +616,12 @@ static int local_mkdir(FsContext *fs_ctx, V9fsPath *dir_path, + int err = -1; + int dirfd; + ++ if (fs_ctx->export_flags & V9FS_SM_MAPPED_FILE && ++ local_is_mapped_file_metadata(fs_ctx, name)) { ++ errno = EINVAL; ++ return -1; ++ } ++ + dirfd = local_opendir_nofollow(fs_ctx, dir_path->data); + if (dirfd == -1) { + return -1; +@@ -694,6 +711,12 @@ static int local_open2(FsContext *fs_ctx, V9fsPath *dir_path, const char *name, + int err = -1; + int dirfd; + ++ if (fs_ctx->export_flags & V9FS_SM_MAPPED_FILE && ++ local_is_mapped_file_metadata(fs_ctx, name)) { ++ errno = EINVAL; ++ return -1; ++ } ++ + /* + * Mark all the open to not follow symlinks + */ +@@ -752,6 +775,12 @@ static int local_symlink(FsContext *fs_ctx, const char *oldpath, + int err = -1; + int dirfd; + ++ if (fs_ctx->export_flags & V9FS_SM_MAPPED_FILE && ++ local_is_mapped_file_metadata(fs_ctx, name)) { ++ errno = EINVAL; ++ return -1; ++ } ++ + dirfd = local_opendir_nofollow(fs_ctx, dir_path->data); + if (dirfd == -1) { + return -1; +@@ -826,6 +855,12 @@ static int local_link(FsContext *ctx, V9fsPath *oldpath, + int ret = -1; + int odirfd, ndirfd; + ++ if (ctx->export_flags & V9FS_SM_MAPPED_FILE && ++ local_is_mapped_file_metadata(ctx, name)) { ++ errno = EINVAL; ++ return -1; ++ } ++ + odirfd = local_opendir_nofollow(ctx, odirpath); + if (odirfd == -1) { + goto out; +@@ -1096,6 +1131,12 @@ static int local_lremovexattr(FsContext *ctx, V9fsPath *fs_path, + static int local_name_to_path(FsContext *ctx, V9fsPath *dir_path, + const char *name, V9fsPath *target) + { ++ if (ctx->export_flags & V9FS_SM_MAPPED_FILE && ++ local_is_mapped_file_metadata(ctx, name)) { ++ errno = EINVAL; ++ return -1; ++ } ++ + if (dir_path) { + v9fs_path_sprintf(target, "%s/%s", dir_path->data, name); + } else if (strcmp(name, "/")) { +@@ -1116,6 +1157,13 @@ static int local_renameat(FsContext *ctx, V9fsPath *olddir, + int ret; + int odirfd, ndirfd; + ++ if (ctx->export_flags & V9FS_SM_MAPPED_FILE && ++ (local_is_mapped_file_metadata(ctx, old_name) || ++ local_is_mapped_file_metadata(ctx, new_name))) { ++ errno = EINVAL; ++ return -1; ++ } ++ + odirfd = local_opendir_nofollow(ctx, olddir->data); + if (odirfd == -1) { + return -1; +@@ -1206,6 +1254,12 @@ static int local_unlinkat(FsContext *ctx, V9fsPath *dir, + int ret; + int dirfd; + ++ if (ctx->export_flags & V9FS_SM_MAPPED_FILE && ++ local_is_mapped_file_metadata(ctx, name)) { ++ errno = EINVAL; ++ return -1; ++ } ++ + dirfd = local_opendir_nofollow(ctx, dir->data); + if (dirfd == -1) { + return -1; +-- +2.13.0 + diff --git a/gnu/packages/qemu.scm b/gnu/packages/qemu.scm index 30b9908aa0..0734b6d0f7 100644 --- a/gnu/packages/qemu.scm +++ b/gnu/packages/qemu.scm @@ -74,6 +74,7 @@ (method url-fetch) (uri (string-append "http://wiki.qemu-project.org/download/qemu-" version ".tar.xz")) + (patches (search-patches "qemu-CVE-2017-7493.patch")) (sha256 (base32 "08mhfs0ndbkyqgw7fjaa9vjxf4dinrly656f6hjzvmaz7hzc677h")))) -- cgit 1.4.1 From 5afc737363977a41880d57cd47907cacd7f1de0c Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 17 May 2017 15:49:04 +0200 Subject: gnu: mes: Don't fail when (%current-target-system) is #f. * gnu/packages/mes.scm (mes)[native-inputs]: Test string equality differently. --- gnu/packages/mes.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm index 66b0654de5..1e233a852d 100644 --- a/gnu/packages/mes.scm +++ b/gnu/packages/mes.scm @@ -75,8 +75,8 @@ extensive examples, including parsers for the Javascript and C99 languages.") `(("nyacc" ,nyacc))) (native-inputs `(("guile" ,guile-2.2) - ,@(if (or (equal? (%current-system) "x86_64-linux") - (string-prefix? (%current-target-system) "x86_64-linux")) + ,@(if (string-prefix? "x86_64-linux" (or (%current-target-system) + (%current-system))) ;; Use cross-compiler rather than #:system "i686-linux" to get ;; MesCC 64 bit .go files installed ready for use with Guile. `(("i686-linux-binutils" ,(cross-binutils triplet)) -- cgit 1.4.1 From 102a0e88cd5c48324493b19dbe705376e47d6dc2 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Tue, 16 May 2017 23:26:17 +0200 Subject: gnu: emacs-org: Update to 20170515. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs-org): Update emacs-org. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 228b2a47fe..3ed08043b2 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3579,14 +3579,14 @@ passive voice.") (define-public emacs-org (package (name "emacs-org") - (version "20170502") + (version "20170515") (source (origin (method url-fetch) (uri (string-append "http://elpa.gnu.org/packages/org-" version ".tar")) (sha256 (base32 - "12inz804j55ycprb2m3ay54d1bhwhjssmn5nrfm7cfklyhfsy27s")))) + "0lfapcxil69x1a63cszgq72lqks1z3gpyxw7vcllqlgi7n7a4y6f")))) (build-system emacs-build-system) (home-page "http://orgmode.org/") (synopsis "Outline-based notes management and organizer") -- cgit 1.4.1 From 6d35b1c99c15f87a30fdf1a38c88db844b3e8303 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 17 May 2017 16:10:48 +0200 Subject: gnu: aspell: 'dict-dir' set to ~/.guix-profile/lib/aspell or $ASPELL_DICT_DIR. See for background. * gnu/packages/patches/aspell-default-dict-dir.patch: New file. * gnu/packages/aspell.scm (aspell)[source](patches): New field. [native-search-paths]: New field. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/aspell.scm | 18 +++++++++++++++--- gnu/packages/patches/aspell-default-dict-dir.patch | 20 ++++++++++++++++++++ 3 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 gnu/packages/patches/aspell-default-dict-dir.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index daa67b1aa9..f02d18e0dd 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -501,6 +501,7 @@ dist_patch_DATA = \ %D%/packages/patches/antiword-CVE-2014-8123.patch \ %D%/packages/patches/apr-skip-getservbyname-test.patch \ %D%/packages/patches/artanis-fix-Makefile.in.patch \ + %D%/packages/patches/aspell-default-dict-dir.patch \ %D%/packages/patches/ath9k-htc-firmware-binutils.patch \ %D%/packages/patches/ath9k-htc-firmware-gcc.patch \ %D%/packages/patches/ath9k-htc-firmware-objcopy.patch \ diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm index 06ba2ce472..509d428f64 100644 --- a/gnu/packages/aspell.scm +++ b/gnu/packages/aspell.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2017 Ludovic Courtès ;;; Copyright © 2015, 2016 Alex Kost ;;; Copyright © 2016 John Darrington ;;; Copyright © 2016 Efraim Flashner @@ -26,6 +26,7 @@ #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (guix licenses) + #:use-module (gnu packages) #:use-module (gnu packages perl) #:use-module (gnu packages base)) @@ -40,7 +41,8 @@ version ".tar.gz")) (sha256 (base32 - "1qgn5psfyhbrnap275xjfrzppf5a83fb67gpql0kfqv37al869gm")))) + "1qgn5psfyhbrnap275xjfrzppf5a83fb67gpql0kfqv37al869gm")) + (patches (search-patches "aspell-default-dict-dir.patch")))) (build-system gnu-build-system) (arguments `(#:phases @@ -53,6 +55,15 @@ '("ASPELL_CONF" "" = ("${ASPELL_CONF:-\"dict-dir ${GUIX_PROFILE:-$HOME/.guix-profile}/lib/aspell\"}"))))))))) (inputs `(("perl" ,perl))) + + (native-search-paths + ;; This is a Guix-specific environment variable that takes a single + ;; entry, not an actual search path. + (list (search-path-specification + (variable "ASPELL_DICT_DIR") + (separator #f) + (files '("lib/aspell"))))) + (home-page "http://aspell.net/") (synopsis "Spell checker") (description @@ -66,7 +77,8 @@ dictionaries, including personal ones.") ;;; Dictionaries. ;;; ;;; Use 'export ASPELL_CONF="dict-dir $HOME/.guix-profile/lib/aspell"' to use -;;; them. +;;; them, or set the Guix-specific 'ASPELL_DICT_DIR', or just do nothing (as +;;; long as 'HOME' is set, that's fine!). ;;; (define* (aspell-dictionary dict-name full-name diff --git a/gnu/packages/patches/aspell-default-dict-dir.patch b/gnu/packages/patches/aspell-default-dict-dir.patch new file mode 100644 index 0000000000..17a6ff606f --- /dev/null +++ b/gnu/packages/patches/aspell-default-dict-dir.patch @@ -0,0 +1,20 @@ +This patch changes the default value of 'dict-dir' to correspond +to ~/.guix-profile/lib/aspell rather than $prefix/lib/aspell-X.Y. + +This is not strictly necessary for the 'aspell' program itself since +one can simply set "ASPELL_CONF=dict-dir $HOME/.guix-profile/lib/aspell". +However it is necessary for applications that use libaspell since +'ASPELL_CONF' is not honored in this case. See . + +--- a/common/config.cpp ++++ b/common/config.cpp +@@ -1349,6 +1349,9 @@ namespace acommon { + # define REPL ".aspell..prepl" + #endif + ++#undef DICT_DIR ++#define DICT_DIR "<$ASPELL_DICT_DIR|home-dir/.guix-profile/lib/aspell>" ++ + static const KeyInfo config_keys[] = { + // the description should be under 50 chars + {"actual-dict-dir", KeyInfoString, "", 0} -- cgit 1.4.1 From 411ba511893feca223656122059cb12378b95c91 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 17 May 2017 16:16:15 +0200 Subject: gnu: Add gspell. * gnu/packages/patches/gspell-dash-test.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/gnome.scm (gspell): New variable. Co-authored-by: humanitiesNerd --- gnu/local.mk | 1 + gnu/packages/gnome.scm | 54 +++++++++++++++++++++++++++++ gnu/packages/patches/gspell-dash-test.patch | 16 +++++++++ 3 files changed, 71 insertions(+) create mode 100644 gnu/packages/patches/gspell-dash-test.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index f02d18e0dd..1be412db3a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -646,6 +646,7 @@ dist_patch_DATA = \ %D%/packages/patches/graphite2-non-linear-classes-even-number.patch \ %D%/packages/patches/grep-timing-sensitive-test.patch \ %D%/packages/patches/gsl-test-i686.patch \ + %D%/packages/patches/gspell-dash-test.patch \ %D%/packages/patches/guile-1.8-cpp-4.5.patch \ %D%/packages/patches/guile-default-utf8.patch \ %D%/packages/patches/guile-linux-syscalls.patch \ diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index cec8baebfe..47dcc91dcd 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -51,6 +51,7 @@ #:use-module (guix build-system trivial) #:use-module (gnu packages) #:use-module (gnu packages admin) + #:use-module (gnu packages aspell) #:use-module (gnu packages autotools) #:use-module (gnu packages avahi) #:use-module (gnu packages base) @@ -6136,3 +6137,56 @@ accessibility infrastructure.") via speech and refreshable braille. Orca works with applications and toolkits that support the Assistive Technology Service Provider Interface (AT-SPI).") (license license:lgpl2.1+))) + +(define-public gspell + (package + (name "gspell") + (version "1.3.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1n4kd5i11l79h8bpvx3cz79ww0b4z89y99h4czvyg80qlarn585w")) + (patches (search-patches "gspell-dash-test.patch")))) + (build-system glib-or-gtk-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda* (#:key inputs #:allow-other-keys) + ;; Tests require a running X server. + (system "Xvfb :1 &") + (setenv "DISPLAY" ":1") + + ;; For the missing /etc/machine-id. + (setenv "DBUS_FATAL_WARNINGS" "0") + + ;; Allow Enchant and its Aspell backend to find the en_US + ;; dictionary. + (setenv "ASPELL_DICT_DIR" + (string-append (assoc-ref inputs "aspell-dict-en") + "/lib/aspell")) + #t))))) + (inputs + `(("enchant" ,enchant) + ("iso-codes" ,iso-codes) + ("gtk+" ,gtk+) + ("glib" ,glib))) + (native-inputs + `(("glib" ,glib "bin") + ("pkg-config" ,pkg-config) + ("xmllint" ,libxml2) + + ;; For tests. + ("xorg-server" ,xorg-server) + ("aspell-dict-en" ,aspell-dict-en))) + (home-page "https://wiki.gnome.org/Projects/gspell") + (synopsis "GNOME's alternative spell checker") + (description + "gspell provides a flexible API to add spell-checking to a GTK+ +application. It provides a GObject API, spell-checking to text entries and +text views, and buttons to choose the language.") + (license license:gpl2+))) diff --git a/gnu/packages/patches/gspell-dash-test.patch b/gnu/packages/patches/gspell-dash-test.patch new file mode 100644 index 0000000000..e737921c4b --- /dev/null +++ b/gnu/packages/patches/gspell-dash-test.patch @@ -0,0 +1,16 @@ +Somehow, Aspell 0.60.6.1 and aspell-dict-en-2016.11.20-0 don't consider +this a valid spelling. Skip it. + +--- gspell-1.3.2/testsuite/test-checker.c 2017-05-17 16:02:40.832415940 +0200 ++++ gspell-1.3.2/testsuite/test-checker.c 2017-05-17 16:02:50.768351895 +0200 +@@ -101,9 +101,6 @@ test_dashes (void) + + checker = gspell_checker_new (lang); + +- correctly_spelled = gspell_checker_check_word (checker, "spell-checking", -1, &error); +- g_assert_no_error (error); +- g_assert (correctly_spelled); + + correctly_spelled = gspell_checker_check_word (checker, "nrst-auie", -1, &error); + g_assert_no_error (error); + -- cgit 1.4.1 From 872a6fd98868d345443f04efdfd974d148c57f9d Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Tue, 16 May 2017 20:40:01 +0100 Subject: gnu: tailon: Use absolute paths for commands. * gnu/packages/logging.scm (tailon)[arguments]: Patch commands.py to reference grep, awk, sed and tail by absolute paths. Signed-off-by: Marius Bakke --- gnu/packages/logging.scm | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/logging.scm b/gnu/packages/logging.scm index 2523d65f61..7501f1e5db 100644 --- a/gnu/packages/logging.scm +++ b/gnu/packages/logging.scm @@ -109,6 +109,21 @@ command line.") `(("python-pyyaml" ,python-pyyaml) ("python-sockjs-tornado" ,python-sockjs-tornado) ("python-tornado" ,python-tornado))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-commands.py + (lambda args + (substitute* "tailon/commands.py" + (("self\\.first_in_path\\('grep'\\)") + (string-append"'" (which "grep") "'")) + (("self\\.first_in_path\\('gawk', 'awk'\\)") + (string-append"'" (which "gawk") "'")) + (("self\\.first_in_path\\('gsed', 'sed'\\)") + (string-append"'" (which "sed") "'")) + (("self\\.first_in_path\\('gtail', 'tail'\\)") + (string-append"'" (which "tail") "'"))) + #t))))) (home-page "https://tailon.readthedocs.io/") (synopsis "Webapp for looking at and searching through log files") -- cgit 1.4.1 From 4b236c88eaa690a045bc57b9c4d2acf44ae91f17 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 13 May 2017 20:44:36 -0400 Subject: maint: The 'release' target builds a VM image. * gnu/system/examples/vm-image.tmpl: New file. * Makefile.am (GUIXSD_VM_SYSTEMS, GUIXSD_VM_IMAGE_BASE, GUIXSD_VM_IMAGE_SIZE): New variables. (release): Add logic to build a VM image. (EXAMPLES): Add 'gnu/system/examples/vm-image.tmpl'. * doc/guix.texi (Running GuixSD in a VM, Installing GuixSD in a VM): Mention the pre-built VM image. --- Makefile.am | 27 +++++++++++++++++++- doc/guix.texi | 29 +++++++++++++-------- gnu/system/examples/vm-image.tmpl | 53 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 97 insertions(+), 12 deletions(-) create mode 100644 gnu/system/examples/vm-image.tmpl (limited to 'gnu') diff --git a/Makefile.am b/Makefile.am index 2dfb627239..7c07d1b2b9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -5,6 +5,7 @@ # Copyright © 2016 Mathieu Lirzin # Copyright © 2016, 2017 Mark H Weaver # Copyright © 2017 Mathieu Othacehe +# Copyright © 2017 Leo Famulari # # This file is part of GNU Guix. # @@ -224,7 +225,8 @@ AUX_FILES = \ EXAMPLES = \ gnu/system/examples/bare-bones.tmpl \ gnu/system/examples/desktop.tmpl \ - gnu/system/examples/lightweight-desktop.tmpl + gnu/system/examples/lightweight-desktop.tmpl \ + gnu/system/examples/vm-image.tmpl GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go $(dist_noinst_DATA:%.scm=%.go) @@ -571,12 +573,21 @@ BINARY_TARBALLS = \ # Systems supported by GuixSD. GUIXSD_SUPPORTED_SYSTEMS ?= x86_64-linux i686-linux +# Systems for which we build GuixSD VMs. +GUIXSD_VM_SYSTEMS ?= x86_64-linux + # Prefix of the GuixSD installation image file name. GUIXSD_IMAGE_BASE = guixsd-usb-install-$(PACKAGE_VERSION) +# Prefix of the GuixSD VM image file name. +GUIXSD_VM_IMAGE_BASE = guixsd-vm-image-$(PACKAGE_VERSION) + # Size of the installation image (for x86_64 typically). GUIXSD_INSTALLATION_IMAGE_SIZE ?= 950MiB +# Size of the VM image (for x86_64 typically). +GUIXSD_VM_IMAGE_SIZE ?= 2GiB + # The release process works in several phases: # # 0. We assume the developer created a 'vX.Y' tag. @@ -631,6 +642,20 @@ release: dist mv "$(releasedir)/$(GUIXSD_IMAGE_BASE).$$system.xz.tmp" \ "$(releasedir)/$(GUIXSD_IMAGE_BASE).$$system.xz" ; \ done + for system in $(GUIXSD_VM_SYSTEMS) ; do \ + image=`$(top_builddir)/pre-inst-env \ + guix system vm-image \ + --system=$$system \ + --image-size=$(GUIXSD_VM_IMAGE_SIZE) \ + gnu/system/examples/vm-image.tmpl` ; \ + if [ ! -f "$$image" ] ; then \ + echo "failed to produced GuixSD VM image for $$system" >&2 ; \ + exit 1 ; \ + fi ; \ + xz < "$$image" > "$(releasedir)/$(GUIXSD_VM_IMAGE_BASE).$$system.xz.tmp" ; \ + mv "$(releasedir)/$(GUIXSD_VM_IMAGE_BASE).$$system.xz.tmp" \ + "$(releasedir)/$(GUIXSD_VM_IMAGE_BASE).$$system.xz" ; \ + done @echo @echo "Congratulations! All the release files are now in $(releasedir)." @echo diff --git a/doc/guix.texi b/doc/guix.texi index b272fcec83..e6a9706b92 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -7628,8 +7628,11 @@ good. @subsection Installing GuixSD in a Virtual Machine @cindex virtual machine, GuixSD installation -If you'd like to install GuixSD in a virtual machine (VM) rather than on -your beloved machine, this section is for you. +@cindex virtual private server (VPS) +@cindex VPS (virtual private server) +If you'd like to install GuixSD in a virtual machine (VM) or on a +virtual private server (VPS) rather than on your beloved machine, this +section is for you. To boot a @uref{http://qemu.org/,QEMU} VM for installing GuixSD in a disk image, follow these steps: @@ -15687,17 +15690,21 @@ example graph. @subsection Running GuixSD in a Virtual Machine @cindex virtual machine -One way to run GuixSD in a virtual machine (VM) is to build a GuixSD -virtual machine image using @command{guix system vm-image} -(@pxref{Invoking guix system}). The returned image is in qcow2 format, -which the @uref{http://qemu.org/, QEMU emulator} can efficiently use. +To run GuixSD in a virtual machine (VM), one can either use the +pre-built GuixSD VM image distributed at +@indicateurl{ftp://alpha.gnu.org/guix/guixsd-vm-image-@value{VERSION}.@var{system}.tar.xz} +, or build their own virtual machine image using @command{guix system +vm-image} (@pxref{Invoking guix system}). The returned image is in +qcow2 format, which the @uref{http://qemu.org/, QEMU emulator} can +efficiently use. @cindex QEMU -To run the image in QEMU, copy it out of the store (@pxref{The Store}) -and give yourself permission to write to the copy. When invoking QEMU, -you must choose a system emulator that is suitable for your hardware -platform. Here is a minimal QEMU invocation that will boot the result -of @command{guix system vm-image} on x86_64 hardware: +If you built your own image, you must copy it out of the store +(@pxref{The Store}) and give yourself permission to write to the copy +before you can use it. When invoking QEMU, you must choose a system +emulator that is suitable for your hardware platform. Here is a minimal +QEMU invocation that will boot the result of @command{guix system +vm-image} on x86_64 hardware: @example $ qemu-system-x86_64 \ diff --git a/gnu/system/examples/vm-image.tmpl b/gnu/system/examples/vm-image.tmpl new file mode 100644 index 0000000000..57ac71c535 --- /dev/null +++ b/gnu/system/examples/vm-image.tmpl @@ -0,0 +1,53 @@ +;;; This is an operating system configuration template for a "bare-bones" setup, +;;; suitable for booting in a virtualized environment, including virtual private +;;; servers (VPS). + +(use-modules (gnu)) +(use-package-modules bootloaders disk nvi) + +(define vm-image-motd (plain-file "motd" " +This is the GNU system. Welcome! + +This instance of GuixSD is a bare-bones template for virtualized environments. + +You will probably want to do these things first if you booted in a virtual +private server (VPS): + +* Set a password for 'root'. +* Set up networking. +* Expand the root partition to fill the space available by 0) deleting and +recreating the partition with fdisk, 1) reloading the partition table with +partprobe, and then 2) resizing the filesystem with resize2fs.\n")) + +(operating-system + (host-name "gnu") + (timezone "Etc/UTC") + (locale "en_US.utf8") + + ;; Assuming /dev/sdX is the target hard disk, and "my-root" is + ;; the label of the target root file system. + (bootloader (grub-configuration (device "/dev/sda") + (terminal-outputs '(console)))) + (file-systems (cons (file-system + (device "my-root") + (title 'label) + (mount-point "/") + (type "ext4")) + %base-file-systems)) + + ;; This is where user accounts are specified. The "root" + ;; account is implicit, and is initially created with the + ;; empty password. + (users %base-user-accounts) + + ;; Globally-installed packages. + (packages (cons* nvi fdisk + grub ; mostly so xrefs to its manual work + parted ; partprobe + %base-packages)) + + (services (modify-services %base-services + (login-service-type config => + (login-configuration + (inherit config) + (motd vm-image-motd)))))) -- cgit 1.4.1 From 42ba7b6f2f7baa554087672297ef7ea34153158e Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 17 May 2017 14:54:53 -0400 Subject: gnu: linux-libre@4.4: Update to 4.4.68. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.68. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 7bb26c72f5..1d3bc829e3 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -370,8 +370,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.67" - "1nadmrd26llc17ipig7bx7rf2gwns94g86a3ilcvgdk17hq5riss" + (make-linux-libre "4.4.68" + "1zzhjadx51jgx9bq9rs5148hdf9nkp46m9636vwkx5jac2aazi3b" %intel-compatible-systems #:configuration-file kernel-config)) -- cgit 1.4.1 From d6a02184f4a25fe1dac6c36c078c59d979d76373 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 17 May 2017 14:55:41 -0400 Subject: gnu: linux-libre@4.9: Update to 4.9.28. * gnu/packages/linux.scm (linux-libre-4.9): Update to 4.9.28. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 1d3bc829e3..6d1e875143 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -364,8 +364,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.27" - "1b39zijjkv21kya359y4g88w5ff110v95pvc4wfvc83dvik9hny5" + (make-linux-libre "4.9.28" + "14qygh6rmkwxncv6qwsps03w1ab8km6k0x7mp8zsn6wpkvcw98zd" %intel-compatible-systems #:configuration-file kernel-config)) -- cgit 1.4.1 From 05bf7f507af1598a3760f5498b474612a9001310 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 17 May 2017 14:56:18 -0400 Subject: gnu: linux-libre: Update to 4.11.1. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.11.1. (%linux-libre-hash): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 6d1e875143..6ed761cd0b 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -354,8 +354,8 @@ It has been modified to remove all non-free binary blobs.") (define %intel-compatible-systems '("x86_64-linux" "i686-linux")) -(define %linux-libre-version "4.11") -(define %linux-libre-hash "0j1bzzq9iq5i1zm7gnig8v0clr8wq303kvcdsaifc0r0ggz1mx1n") +(define %linux-libre-version "4.11.1") +(define %linux-libre-hash "1kzs57lahvcsvlm0x650q593h10f4cjqspkv2nibr22syx4gry7l") (define-public linux-libre (make-linux-libre %linux-libre-version -- cgit 1.4.1 From ec84c7870e47d7965397c413d6c81ab5f8e19ac0 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Wed, 17 May 2017 11:09:58 -0400 Subject: gnu: gnubg: Update to 1.05. * gnu/packages/games.scm (gnubg): Update to 1.05. --- gnu/packages/games.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 3517f06acf..1da096b590 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -207,7 +207,7 @@ effects and music to make a completely free game.") (define-public gnubg (package (name "gnubg") - (version "1.02") + (version "1.05") (source (origin (method url-fetch) @@ -215,7 +215,7 @@ effects and music to make a completely free game.") version ".000-sources." "tar.gz")) (sha256 (base32 - "015mvjk2iw1cg1kxwxfnvp2rxb9cylf6yc39i30fdy414k07zkky")))) + "1nydliwfpljbys4941irixflqqwpv889mx5lcjz50ygih85q2wm8")))) (build-system gnu-build-system) (inputs `(("glib" ,glib) ("readline" ,readline) -- cgit 1.4.1 From 32199e9aa6a9904f9dc6ce235fb70638626095d8 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Wed, 17 May 2017 17:28:54 -0400 Subject: gnu: fizmo: Update to 0.8.4. * gnu/packages/games.scm (fizmo): Update to 0.8.4. [inputs]: Add freetype; change sdl to sdl2. --- gnu/packages/games.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 1da096b590..bd73df119f 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1059,14 +1059,14 @@ reference interpreter, using the Glk API.") (define-public fizmo (package (name "fizmo") - (version "0.7.9") + (version "0.8.4") (source (origin (method url-fetch) (uri (string-append "https://christoph-ender.de/fizmo/source/" name "-" version ".tar.gz")) (sha256 (base32 - "1w7cgyjrhgkadjrazijzhq7zh0pl5bfc6wl7mdpgh020y4kp46d7")))) + "1sd988db2302r7cbfcfghbmg8ck43c6hvnlnlpb0rqxb7pm9cwyy")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -1079,12 +1079,13 @@ reference interpreter, using the Glk API.") (native-inputs `(("pkg-config" ,pkg-config))) (inputs - `(("libjpeg" ,libjpeg) + `(("freetype" ,freetype) + ("libjpeg" ,libjpeg) ("libpng" ,libpng) ("libsndfile" ,libsndfile) ("libxml2" ,libxml2) ("ncurses" ,ncurses) - ("sdl" ,sdl))) + ("sdl2" ,sdl2))) (home-page "https://christoph-ender.de/fizmo/") (synopsis "Z-machine interpreter") (description -- cgit 1.4.1 From 07bf68ed093bd66903c6c20b42caafe10688ea04 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 17 May 2017 13:36:17 +0200 Subject: services: openssh: Don't depend on networking. * gnu/services/ssh.scm (openssh-shepherd-service): Drop requirement. --- gnu/services/ssh.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm index 9917c311c7..2a6c8d45c2 100644 --- a/gnu/services/ssh.scm +++ b/gnu/services/ssh.scm @@ -385,7 +385,7 @@ The other options should be self-descriptive." (list (shepherd-service (documentation "OpenSSH server.") - (requirement '(networking syslogd)) + (requirement '(syslogd)) (provision '(ssh-daemon)) (start #~(make-forkexec-constructor #$openssh-command #:pid-file #$pid-file)) -- cgit 1.4.1 From c80cd4dfb4da1cc9d0ace233513bee0497db8a74 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 17 Apr 2017 22:49:23 +0200 Subject: install: Enable SSH in installation image. * gnu/system/install.scm (%installation-services): Add OPENSSH-SERVICE-TYPE. * doc/guix.texi (Preparing for Installation)[Networking]: Document it. --- doc/guix.texi | 14 +++++++++++++- gnu/system/install.scm | 12 ++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/doc/guix.texi b/doc/guix.texi index e6a9706b92..72741e034a 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -36,7 +36,8 @@ Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* -Copyright @copyright{} 2017 Christopher Allan Webber +Copyright @copyright{} 2017 Christopher Allan Webber@* +Copyright @copyright{} 2017 Marius Bakke Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -7446,6 +7447,17 @@ ping -c 3 gnu.org Setting up network access is almost always a requirement because the image does not contain all the software and tools that may be needed. +@cindex installing over SSH +If you want to, you can continue the installation remotely by starting +an SSH server: + +@example +herd start ssh-daemon +@end example + +Make sure to either set a password with @command{passwd}, or configure +OpenSSH public key authentication before logging in. + @subsubsection Disk Partitioning Unless this has already been done, the next step is to partition, and diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 191ccf1680..9a6febfeba 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2016 Andreas Enge +;;; Copyright © 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +26,7 @@ #:use-module (guix monads) #:use-module ((guix store) #:select (%store-prefix)) #:use-module (gnu services shepherd) + #:use-module (gnu services ssh) #:use-module (gnu packages admin) #:use-module (gnu packages bash) #:use-module (gnu packages bootloaders) @@ -262,6 +264,16 @@ You have been warned. Thanks for being so brave. ;; To facilitate copy/paste. (gpm-service) + ;; Add an SSH server to facilitate remote installs. + (service openssh-service-type + (openssh-configuration + (port-number 22) + (permit-root-login #t) + ;; The root account is passwordless, so make sure + ;; a password is set before allowing logins. + (allow-empty-passwords? #f) + (password-authentication? #t))) + ;; Since this is running on a USB stick with a unionfs as the root ;; file system, use an appropriate cache configuration. (nscd-service (nscd-configuration -- cgit 1.4.1 From 45433bb03d45d8b6e5d5461eb5b10b82d0ccd8d1 Mon Sep 17 00:00:00 2001 From: ng0 Date: Tue, 16 May 2017 22:28:57 +0000 Subject: gnu: mc: Add unzip to inputs. * gnu/packages/mc.scm (mc)[inputs]: Add unzip. Signed-off-by: Marius Bakke --- gnu/packages/mc.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/mc.scm b/gnu/packages/mc.scm index 3cdc542157..bae12439f1 100644 --- a/gnu/packages/mc.scm +++ b/gnu/packages/mc.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Eric Bavier ;;; Copyright © 2016 Efraim Flashner -;;; Copyright © 2016 ng0 +;;; Copyright © 2016, 2017 ng0 ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,7 +30,8 @@ #:use-module (gnu packages ssh) #:use-module (gnu packages pkg-config) #:use-module (gnu packages check) - #:use-module (gnu packages perl)) + #:use-module (gnu packages perl) + #:use-module (gnu packages zip)) (define-public mc (package @@ -51,7 +52,8 @@ ("ncurses" ,ncurses) ("libssh2" ,libssh2) ("glib" ,glib) - ("check" ,check))) + ("check" ,check) + ("unzip" ,unzip))) (arguments `(#:configure-flags '("--with-screen=ncurses" "--enable-aspell") -- cgit 1.4.1 From e28cb7a5f5ad7107ce9d987670b7e5996a6e5eb9 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Wed, 17 May 2017 19:17:58 -0400 Subject: gnu: gamine: Update to 1.5. * gnu/packages/games.scm (gamine): Update to 1.5. --- gnu/packages/games.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index bd73df119f..ca4cdc9ddf 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -207,7 +207,7 @@ effects and music to make a completely free game.") (define-public gnubg (package (name "gnubg") - (version "1.05") + (version "1.02") (source (origin (method url-fetch) @@ -215,7 +215,7 @@ effects and music to make a completely free game.") version ".000-sources." "tar.gz")) (sha256 (base32 - "1nydliwfpljbys4941irixflqqwpv889mx5lcjz50ygih85q2wm8")))) + "015mvjk2iw1cg1kxwxfnvp2rxb9cylf6yc39i30fdy414k07zkky")))) (build-system gnu-build-system) (inputs `(("glib" ,glib) ("readline" ,readline) @@ -1411,14 +1411,14 @@ older games.") (define-public gamine (package (name "gamine") - (version "1.4") + (version "1.5") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/gamine-game/" "gamine-" version ".tar.gz")) (sha256 (base32 - "1iny959i1kl2ab6z5xi4s66mrvrwcarxyvjfp2k1sx532s8knk8h")))) + "08wnk7w84c2413hwny89j2cn89cvfdf67bfc6wl0bf475if0mf4h")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) -- cgit 1.4.1 From 6aa095f10c53588e3ac67a25539e53655256bbc0 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Wed, 17 May 2017 20:46:05 -0400 Subject: gnu: manaplus: Update to 1.7.5.14. * gnu/packages/games.scm (manaplus): Update to 1.7.5.14. [inputs]: Remove physfs. --- gnu/packages/games.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index ca4cdc9ddf..02da94d4ff 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1491,7 +1491,7 @@ is programmed in Haskell.") (define-public manaplus (package (name "manaplus") - (version "1.7.3.4") + (version "1.7.5.14") (source (origin (method url-fetch) (uri (string-append @@ -1499,7 +1499,7 @@ is programmed in Haskell.") version "/manaplus-" version ".tar.xz")) (sha256 (base32 - "0mbxzsgjg16pqa3jnxkd7wwvw1lrx455r7fvwjfhzp0yv7acrn10")))) + "1b5q79jkdrck5lq8lvhnpq2mly257r8lylp7b8sp8xn4365f86ch")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -1513,7 +1513,6 @@ is programmed in Haskell.") ("curl" ,curl) ("libxml2" ,libxml2) ("mesa" ,mesa) - ("physfs" ,physfs) ("sdl-union" ,(sdl-union)))) (home-page "http://manaplus.org") (synopsis "Client for 'The Mana World' and similar games") -- cgit 1.4.1 From b193fb2851eaa64e20cc4c01f7298c0a8a076a8c Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 17 May 2017 19:20:11 -0400 Subject: gnu: shadow: Update to 4.5. This fixes a regression introduced by the fix for CVE-2017-2616. See for more information. * gnu/packages/admin.scm (shadow): Update to 4.5. [source]: Remove patches. * gnu/packages/patches/shadow-4.4-su-snprintf-fix.patch, gnu/packages/patches/shadow-CVE-2017-2616.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Remove them. --- gnu/local.mk | 2 - gnu/packages/admin.scm | 6 +- .../patches/shadow-4.4-su-snprintf-fix.patch | 31 ---------- gnu/packages/patches/shadow-CVE-2017-2616.patch | 72 ---------------------- 4 files changed, 2 insertions(+), 109 deletions(-) delete mode 100644 gnu/packages/patches/shadow-4.4-su-snprintf-fix.patch delete mode 100644 gnu/packages/patches/shadow-CVE-2017-2616.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index 1be412db3a..7dd45c892e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -967,8 +967,6 @@ dist_patch_DATA = \ %D%/packages/patches/screen-fix-info-syntax-error.patch \ %D%/packages/patches/sdl-libx11-1.6.patch \ %D%/packages/patches/seq24-rename-mutex.patch \ - %D%/packages/patches/shadow-4.4-su-snprintf-fix.patch \ - %D%/packages/patches/shadow-CVE-2017-2616.patch \ %D%/packages/patches/slim-session.patch \ %D%/packages/patches/slim-config.patch \ %D%/packages/patches/slim-sigusr1.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 1610729c44..aa6ccc0a73 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -281,17 +281,15 @@ client and server, a telnet client and server, and an rsh client and server.") (define-public shadow (package (name "shadow") - (version "4.4") + (version "4.5") (source (origin (method url-fetch) (uri (string-append "https://github.com/shadow-maint/shadow/releases/" "download/" version "/shadow-" version ".tar.xz")) - (patches (search-patches "shadow-4.4-su-snprintf-fix.patch" - "shadow-CVE-2017-2616.patch")) (sha256 (base32 - "0g7hf55ar2pafg5g3ldx0fwzjk36wf4xb21p4ndanbjm3c2a9ab1")))) + "0hdpai78n63l3v3fgr3kkiqzhd0awrpfnnzz4mf7lmxdh61qb37w")))) (build-system gnu-build-system) (arguments '(;; Assume System V `setpgrp (void)', which is the default on GNU diff --git a/gnu/packages/patches/shadow-4.4-su-snprintf-fix.patch b/gnu/packages/patches/shadow-4.4-su-snprintf-fix.patch deleted file mode 100644 index 3f357c4924..0000000000 --- a/gnu/packages/patches/shadow-4.4-su-snprintf-fix.patch +++ /dev/null @@ -1,31 +0,0 @@ -Patch copied from upstream source repository: - -https://github.com/shadow-maint/shadow/commit/67d2bb6e0a5ac124ce1f026dd5723217b1493194 - -From 67d2bb6e0a5ac124ce1f026dd5723217b1493194 Mon Sep 17 00:00:00 2001 -From: Serge Hallyn -Date: Sun, 18 Sep 2016 21:31:18 -0500 -Subject: [PATCH] su.c: fix missing length argument to snprintf - ---- - src/su.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/su.c b/src/su.c -index 0c50a9456afd..93ffd2fbe2b4 100644 ---- a/src/su.c -+++ b/src/su.c -@@ -373,8 +373,8 @@ static void prepare_pam_close_session (void) - stderr); - (void) kill (-pid_child, caught); - -- snprintf (kill_msg, _(" ...killed.\n")); -- snprintf (wait_msg, _(" ...waiting for child to terminate.\n")); -+ snprintf (kill_msg, 256, _(" ...killed.\n")); -+ snprintf (wait_msg, 256, _(" ...waiting for child to terminate.\n")); - - (void) signal (SIGALRM, kill_child); - (void) alarm (2); --- -2.11.0.rc2 - diff --git a/gnu/packages/patches/shadow-CVE-2017-2616.patch b/gnu/packages/patches/shadow-CVE-2017-2616.patch deleted file mode 100644 index f88aac40bc..0000000000 --- a/gnu/packages/patches/shadow-CVE-2017-2616.patch +++ /dev/null @@ -1,72 +0,0 @@ -Fix CVE-2017-2616: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-2616 -http://seclists.org/oss-sec/2017/q1/490 -http://seclists.org/oss-sec/2017/q1/474 - -Patch copied from upstream source repository: - -https://github.com/shadow-maint/shadow/commit/08fd4b69e84364677a10e519ccb25b71710ee686 - -From 08fd4b69e84364677a10e519ccb25b71710ee686 Mon Sep 17 00:00:00 2001 -From: Tobias Stoeckmann -Date: Thu, 23 Feb 2017 09:47:29 -0600 -Subject: [PATCH] su: properly clear child PID - -If su is compiled with PAM support, it is possible for any local user -to send SIGKILL to other processes with root privileges. There are -only two conditions. First, the user must be able to perform su with -a successful login. This does NOT have to be the root user, even using -su with the same id is enough, e.g. "su $(whoami)". Second, SIGKILL -can only be sent to processes which were executed after the su process. -It is not possible to send SIGKILL to processes which were already -running. I consider this as a security vulnerability, because I was -able to write a proof of concept which unlocked a screen saver of -another user this way. ---- - src/su.c | 19 +++++++++++++++++-- - 1 file changed, 17 insertions(+), 2 deletions(-) - -diff --git a/src/su.c b/src/su.c -index f20d230..d86aa86 100644 ---- a/src/su.c -+++ b/src/su.c -@@ -379,11 +379,13 @@ static void prepare_pam_close_session (void) - /* wake child when resumed */ - kill (pid, SIGCONT); - stop = false; -+ } else { -+ pid_child = 0; - } - } while (!stop); - } - -- if (0 != caught) { -+ if (0 != caught && 0 != pid_child) { - (void) fputs ("\n", stderr); - (void) fputs (_("Session terminated, terminating shell..."), - stderr); -@@ -393,9 +395,22 @@ static void prepare_pam_close_session (void) - snprintf (wait_msg, sizeof wait_msg, _(" ...waiting for child to terminate.\n")); - - (void) signal (SIGALRM, kill_child); -+ (void) signal (SIGCHLD, catch_signals); - (void) alarm (2); - -- (void) wait (&status); -+ sigemptyset (&ourset); -+ if ((sigaddset (&ourset, SIGALRM) != 0) -+ || (sigprocmask (SIG_BLOCK, &ourset, NULL) != 0)) { -+ fprintf (stderr, _("%s: signal masking malfunction\n"), Prog); -+ kill_child (0); -+ } else { -+ while (0 == waitpid (pid_child, &status, WNOHANG)) { -+ sigsuspend (&ourset); -+ } -+ pid_child = 0; -+ (void) sigprocmask (SIG_UNBLOCK, &ourset, NULL); -+ } -+ - (void) fputs (_(" ...terminated.\n"), stderr); - } - -- cgit 1.4.1 From 89c83e8c3e7a8eb4bd343edec3a0936f461c2220 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 17 May 2017 21:24:39 -0400 Subject: gnu: npth: Update to 1.4. * gnu/packages/gnupg.scm (npth): Update to 1.4. --- gnu/packages/gnupg.scm | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 3edb157704..29690a7825 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -192,16 +192,14 @@ specifications are building blocks of S/MIME and TLS.") (define-public npth (package (name "npth") - (version "1.3") + (version "1.4") (source (origin (method url-fetch) - (uri (string-append - "mirror://gnupg/npth/npth-" - version ".tar.bz2")) + (uri (string-append "mirror://gnupg/npth/npth-" version ".tar.bz2")) (sha256 (base32 - "0am86vblapwz84254qpmhz0chk70g6qzh3wdxcs0gvba8d01ka5w")))) + "1wpijvxg5svj893q9vp5r83d9ipwhpbyphb55m89l5m36qc185c9")))) (build-system gnu-build-system) (home-page "https://www.gnupg.org") (synopsis "Non-preemptive thread library") -- cgit 1.4.1 From 0be20a8353c0db1637e101afa1e088fc92066657 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 17 May 2017 21:24:55 -0400 Subject: gnu: gnupg: Update to 2.1.21. This release fixes a keyring corruption bug introduced in 2.1.20. See for more information. * gnu/packages/gnupg.scm (gnupg): Update to 2.1.21. --- gnu/packages/gnupg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 29690a7825..440e7d550f 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -215,14 +215,14 @@ compatible to GNU Pth.") (define-public gnupg (package (name "gnupg") - (version "2.1.20") + (version "2.1.21") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gnupg/gnupg-" version ".tar.bz2")) (sha256 (base32 - "03cnd6gz8f4lf69inskssw57idrswcdimhccdyglmrlv6rlrmkr4")))) + "1p97limv29p01y79mgnzpwixa50lv53wgdl3ymk9idkmpaldisks")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit 1.4.1 From b81b8943cff98b4fbaf30697a338befa4a730c4f Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Wed, 17 May 2017 21:52:27 -0400 Subject: gnu: openttd: Update to 1.7.0. * gnu/packages/games.scm (openttd): Update to 1.7.0. --- gnu/packages/games.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 02da94d4ff..fc1e3dcf37 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -2160,14 +2160,14 @@ and a game metadata scraper.") (define openttd-engine (package (name "openttd-engine") - (version "1.6.1") + (version "1.7.0") (source (origin (method url-fetch) (uri (string-append "http://binaries.openttd.org/releases/" version "/openttd-" version "-source.tar.xz")) (sha256 (base32 - "1ak32fj5xkk2fvmm3g8i7wzmk4bh2ijsp8fzvvw5wj6365p9j24v")) + "1q4r5860dpkkw4fpfz3f8mvdd8xjpnwwzr9zybgmgb255bs0g4yz")) (modules '((guix build utils))) (snippet ;; The DOS port contains proprietary software. @@ -2207,8 +2207,8 @@ and a game metadata scraper.") passengers by land, water and air. It is a re-implementation of Transport Tycoon Deluxe with many enhancements including multiplayer mode, internationalization support, conditional orders and the ability to clone, -autoreplace and autoupdate vehicles. This package only includes the game engine. When you start -it you will be prompted to download a graphics set.") +autoreplace and autoupdate vehicles. This package only includes the game +engine. When you start it you will be prompted to download a graphics set.") (home-page "http://openttd.org/") ;; This package is GPLv2, except for a few files located in ;; "src/3rdparty/" which are under the 3-clause BSD, LGPLv2.1+ and Zlib -- cgit 1.4.1 From 7c5cf7a29df880c1011642d1c3e14c9e203f6c9d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 18 May 2017 09:25:35 +0300 Subject: gnu: qtscript: Fix building on aarch64. * gnu/packages/patches/qtscript-disable-tests.patch: New file. * gnu/packages/qt.scm (qtscript)[source]: Use it. * gnu/local.am (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + gnu/packages/patches/qtscript-disable-tests.patch | 64 +++++++++++++++++++++++ gnu/packages/qt.scm | 3 +- 3 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/qtscript-disable-tests.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index 7dd45c892e..922fb1a6bf 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -945,6 +945,7 @@ dist_patch_DATA = \ %D%/packages/patches/python2-subprocess32-disable-input-test.patch \ %D%/packages/patches/qemu-CVE-2017-7493.patch \ %D%/packages/patches/qt4-ldflags.patch \ + %D%/packages/patches/qtscript-disable-tests.patch \ %D%/packages/patches/quickswitch-fix-dmenu-check.patch \ %D%/packages/patches/rapicorn-isnan.patch \ %D%/packages/patches/ratpoison-shell.patch \ diff --git a/gnu/packages/patches/qtscript-disable-tests.patch b/gnu/packages/patches/qtscript-disable-tests.patch new file mode 100644 index 0000000000..41a017d864 --- /dev/null +++ b/gnu/packages/patches/qtscript-disable-tests.patch @@ -0,0 +1,64 @@ +In all of these tests the result wraps around and comes out the negative of the exptected value. + +--- + tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.4.7-02.js | 2 +- + tests/auto/qscriptjstestsuite/tests/ecma/TypeConversion/9.3.1-3.js | 5 ++++- + 2 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.4.7-02.js b/tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.4.7-02.js +index 43bd923..103f251 100644 +--- a/tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.4.7-02.js ++++ b/tests/auto/qscriptjstestsuite/tests/ecma/Expressions/11.4.7-02.js +@@ -74,7 +74,7 @@ test_negation(-1073741823, 1073741823); + + //2147483648 == (1 << 31) + test_negation(2147483648, -2147483648); +-test_negation(-2147483648, 2147483648); ++//test_negation(-2147483648, 2147483648); + + //2147483648 == (1 << 31) - 1 + test_negation(2147483647, -2147483647); +diff --git a/tests/auto/qscriptjstestsuite/tests/ecma/TypeConversion/9.3.1-3.js b/tests/auto/qscriptjstestsuite/tests/ecma/TypeConversion/9.3.1-3.js +index dc56427..c1a4bf3 100644 +--- a/tests/auto/qscriptjstestsuite/tests/ecma/TypeConversion/9.3.1-3.js ++++ b/tests/auto/qscriptjstestsuite/tests/ecma/TypeConversion/9.3.1-3.js +@@ -86,11 +86,12 @@ new TestCase( + // test cases from bug http://scopus.mcom.com/bugsplat/show_bug.cgi?id=122882 + + +- ++/* + new TestCase( SECTION, + '- -"0x80000000"', + 2147483648, + - -"0x80000000" ); ++*/ + + new TestCase( SECTION, + '- -"0x100000000"', +@@ -280,10 +281,12 @@ new TestCase( SECTION, + 305419896, + 0x12345678 ); + ++/* + new TestCase( SECTION, + "0x80000000", + 2147483648, + 0x80000000 ); ++*/ + + new TestCase( SECTION, + "0xffffffff", +@@ -681,10 +681,12 @@ new TestCase( SECTION, + NaN, + -"+Infiniti" ); + ++/* + new TestCase( SECTION, + "- -\"0x80000000\"", + 2147483648, + - -"0x80000000" ); ++*/ + + new TestCase( SECTION, + "- -\"0x100000000\"", diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 074ef0b466..65e50060a4 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -909,7 +909,8 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "09m41n95448pszr7inlg03ycb66s1a9hzfylaka92382acf1myav")))) + "09m41n95448pszr7inlg03ycb66s1a9hzfylaka92382acf1myav")) + (patches (search-patches "qtscript-disable-tests.patch")))) (native-inputs `(("perl" ,perl) ("qttools" ,qttools))) -- cgit 1.4.1 From 45f5bc0e74300b7adbda6a8d3257dd13b089e48c Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 18 May 2017 09:51:23 +0300 Subject: gnu: qtconnectivity: Fix building on armhf and aarch64. * gnu/packages/qt.scm (qtconnectivity)[arguments]: Add a phase to remove a test which fails on arm hardware. --- gnu/packages/qt.scm | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 65e50060a4..d34b11d8e8 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -684,6 +684,17 @@ developers using C++ or QML, a CSS & JavaScript like language.") (sha256 (base32 "0rmr7bd4skby7bax9hpj2sid2bq3098nkw7xm02mdp04hc3bks5k")))) + (arguments + (substitute-keyword-arguments (package-arguments qtsvg) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'disable-failing-tests + ;; this test fails on armhf and aarch64 + (lambda _ + (substitute* "tests/auto/qndefnfcsmartposterrecord/tst_qndefnfcsmartposterrecord.cpp" + (("QCOMPARE\\(record.action\\(\\), QNdefNfcSmartPosterRecord::UnspecifiedAction") + "//QCOMPARE(record.action(), QNdefNfcSmartPosterRecord::UnspecifiedAction")) + #t)))))) (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config) -- cgit 1.4.1 From 04f8decf1f8cea68bd05b29fd732b0508fcb9573 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 18 May 2017 09:52:49 +0300 Subject: gnu: qtbase: Don't use bundled double-conversion. * gnu/packages/qt.scm (qtbase)[inputs]: Add double-conversion. --- gnu/packages/qt.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index d34b11d8e8..46fbb03049 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -47,7 +47,7 @@ #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages linux) - #:use-module (gnu packages databases) + #:use-module (gnu packages maths) #:use-module (gnu packages pciutils) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) @@ -375,6 +375,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") `(("alsa-lib" ,alsa-lib) ("cups" ,cups) ("dbus" ,dbus) + ("double-conversion" ,double-conversion) ("eudev" ,eudev) ("expat" ,expat) ("fontconfig" ,fontconfig) -- cgit 1.4.1 From 4e825e2da39fb484fccff8d86e75d1bc0a13a1e2 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 18 May 2017 09:55:28 +0300 Subject: gnu: qtbase: Update configure flags. * gnu/packages/qt.scm (qtbase)[arguments]: Change the configure flags to not use the precompiled headers. Enable x86_64 special hardware instructions which have runtime detection. --- gnu/packages/qt.scm | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 46fbb03049..805675696d 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -468,19 +468,15 @@ developers using C++ or QML, a CSS & JavaScript like language.") "-openssl-linked" ;; explicitly link with dbus instead of dlopening it "-dbus-linked" - ;; drop special machine instructions not supported - ;; on all instances of the target + ;; don't use the precompiled headers + "-no-pch" + ;; drop special machine instructions that do not have + ;; runtime detection ,@(if (string-prefix? "x86_64" (or (%current-target-system) (%current-system))) '() '("-no-sse2")) - "-no-sse3" - "-no-ssse3" - "-no-sse4.1" - "-no-sse4.2" - "-no-avx" - "-no-avx2" "-no-mips_dsp" "-no-mips_dspr2"))))) (add-after 'install 'patch-qt_config.prf -- cgit 1.4.1 From a20e00ddaf343c8bebc608ebe59c4204deb065d1 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 18 May 2017 10:17:42 +0300 Subject: gnu: qt: Update to 5.8.0. * gnu/packages/qt.scm (qtbase, qtsvg, qtimageformats, qtx11extras, qtxmlpatterns, qtdeclarative, qtconnectivity, qtwebsockets, qtsensors, qtmultimedia, qtwayland, qtserialport, qtserialbus, qtwebchannel, qtlocation, qttools, qtscript, qtquickcontrols, qtquickcontrols2, qtgraphicaleffects, qtgamepad, qtscxml, qtpurchasing, qtcanvas3d, qtcharts, qtdatavis3d, qtwebkit): Update to 5.8.0. (qtdeclarative-render2d)[properties]: New field, package has been absorbed by qtdeclarative and thus marked as superseded by it. --- gnu/packages/qt.scm | 121 ++++++++++++++++++++++++++-------------------------- 1 file changed, 61 insertions(+), 60 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 805675696d..ef713fdf73 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -349,7 +349,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtbase (package (name "qtbase") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -358,7 +358,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "0zjmcrmnnmaz1lr9wc5i6y565hsvl8ycn790ivqaz62dv54zbkgd")) + "01f07yjly7y24njl2h4hyknmi7pf8yd9gky23szcfkd40ap12wf1")) (modules '((guix build utils))) (snippet '(begin @@ -529,7 +529,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtsvg (package (inherit qtbase) (name "qtsvg") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -538,7 +538,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "0irr9h566hl9nx8p919rz276zbfvvd6vqdb6i9g6b3piikdigw5h")))) + "12fwzbp28szqw1sk3flb8i6xnxgl94siwyy41ffdmd0s44f1jwwq")))) (propagated-inputs `()) (native-inputs `(("perl" ,perl))) (inputs @@ -572,7 +572,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtimageformats (package (inherit qtsvg) (name "qtimageformats") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -581,11 +581,10 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "1x3p1xmw7spxa4bwriyrwsfrq31jabsdjsi5fras9y39naia55sg")) + "0vv0wh5q5sih294x661djzwvgdwy7r6xpnxsc111k5hwq7m5w13m")) (modules '((guix build utils))) (snippet - '(begin - (delete-file-recursively "src/3rdparty"))))) + '(delete-file-recursively "src/3rdparty")))) (native-inputs `()) (inputs `(("jasper" ,jasper) @@ -599,7 +598,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtx11extras (package (inherit qtsvg) (name "qtx11extras") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -608,7 +607,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "09z49jm70f5i0gcdz9a16z00pg96x8pz7vri5wpirh3fqqn0qnjz")))) + "03i8lk9qcdf8h2k4f3rkqqkzbrlnyaspv9mgjkn4k61s2asz5mxy")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -620,7 +619,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtxmlpatterns (package (inherit qtsvg) (name "qtxmlpatterns") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -629,7 +628,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "1rgqnpg64gn5agmvjwy0am8hp5fpxl3cdkixr1yrsdxi5a6961d8")))) + "016s75j2cml7kc8scdm9a6pmxm8jhs424lml2h9znm1flmgadzvv")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -637,7 +636,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (add-after 'unpack 'disable-network-tests (lambda _ (substitute* "tests/auto/auto.pro" (("qxmlquery") "# qxmlquery") - (("xmlpatterns") "# xmlpatterns")) + (("xmlpatterns ") "# xmlpatterns")) #t)))))) (native-inputs `(("perl" ,perl))) (inputs `(("qtbase" ,qtbase))))) @@ -645,7 +644,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtdeclarative (package (inherit qtsvg) (name "qtdeclarative") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -654,7 +653,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "0mjxfwnplpx60jc6y94krg00isddl9bfwc7dayl981njb4qds4zx")))) + "0ilaf2sprpk9fg2j3905hxnhm0xbnm88ppk4zifp7n0jmnwix51j")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -671,7 +670,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtconnectivity (package (inherit qtsvg) (name "qtconnectivity") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -680,7 +679,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "0rmr7bd4skby7bax9hpj2sid2bq3098nkw7xm02mdp04hc3bks5k")))) + "1w97na5s420y08dcydqinbqb0rd9h4pfdnjbwslr0qvzsvlh2bbv")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -703,7 +702,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtwebsockets (package (inherit qtsvg) (name "qtwebsockets") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -712,7 +711,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "1laj0slwibs0bg69kgrdhc9k1s6yisq3pcsr0r9rhbkzisv7aajw")))) + "1xa5p36grqxz3fa08amn7r3dy6k28g6y0gkc6jgj7lyhjzr0l4da")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -724,7 +723,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtsensors (package (inherit qtsvg) (name "qtsensors") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -733,7 +732,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "041v1x8pwfzpyk6y0sy5zgm915pi15xdhiy18fd5wqayvcp99cyc")))) + "15p7bp21yj4cdl5yfc9qnn4lhhiwiwx3b71lrb431kgqxhwhcp9s")))) (native-inputs `(("perl" ,perl) ("qtdeclarative" ,qtdeclarative))) @@ -742,7 +741,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtmultimedia (package (inherit qtsvg) (name "qtmultimedia") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -751,7 +750,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "1vvxmgmvjnz9w1h2ph1j2fy77ij141ycx5fric60lq02pxzifax5")) + "01sakngvsqr90qhrxyghfqdpddpxwbjyzzhm34k0hlpr6i409g58")) (modules '((guix build utils))) (snippet '(begin @@ -777,7 +776,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtwayland (package (inherit qtsvg) (name "qtwayland") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -786,7 +785,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "1iq1c89y4ggq0dxjlf62jyhh8a9l3x7y914x84w5pby8h3hwagzj")))) + "06ilh55vaxbkyv7irw0n11gxgc34ypx2qhqawxzy7kllzg9zcl7z")))) (native-inputs `(("glib" ,glib) ("perl" ,perl) @@ -808,7 +807,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtserialport (package (inherit qtsvg) (name "qtserialport") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -817,7 +816,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "09jsryc0z49cz9783kq48rkn42f10c6krzivp812ddwjsfdy3mbn")))) + "1b86al3zn1pxyk0n59vh8bqxrpz2m0j33ygclaqbxl1sszg7ycaj")))) (native-inputs `(("perl" ,perl))) (inputs `(("qtbase" ,qtbase) @@ -826,7 +825,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtserialbus (package (inherit qtsvg) (name "qtserialbus") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -835,7 +834,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "0mxi43l2inpbar8rmg21qjg33bv3f1ycxjgvzjf12ncnybhdnzkj")))) + "02n1b1wrvfg6c7z15c5c5gv9r5gd4pp58jrd1a8d8fg3ybcksd2q")))) (inputs `(("qtbase" ,qtbase) ("qtserialport" ,qtserialport))))) @@ -843,7 +842,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtwebchannel (package (inherit qtsvg) (name "qtwebchannel") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -852,7 +851,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "16rij92dxy4k5231l3dpmhy7cnz0cjkn50cpzaf014zrdz3kmav3")))) + "0jhbgp9rdp5lpwjrykxmg4lb60wk7gm3dldz5kp3b8ms2dab3xav")))) (native-inputs `(("perl" ,perl) ("qtdeclarative" ,qtdeclarative) @@ -862,7 +861,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtlocation (package (inherit qtsvg) (name "qtlocation") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -871,7 +870,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "17zkzffzwbg6aqhsggs23cmwzq4y45m938842lsc423hfm7fdsgr")))) + "1fqssa8rhq83lnxjcdh4ijqck3lmqglpk8yax8x17w49v6gf78a8")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -885,7 +884,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qttools (package (inherit qtsvg) (name "qttools") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -894,7 +893,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "1b6zqa5690b8lqms7rrhb8rcq0xg5hp117v3m08qngbcd0i706b4")))) + "10wx4vydj91yag30457c7azx4ihrwky42l7zzwkbmdlksdv8xv4m")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -908,7 +907,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtscript (package (inherit qtsvg) (name "qtscript") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -917,7 +916,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "09m41n95448pszr7inlg03ycb66s1a9hzfylaka92382acf1myav")) + "1lssbsjf2p2ag02fjq6k6vk7vywhj4jsl286r2fqi78q5lfvjfi9")) (patches (search-patches "qtscript-disable-tests.patch")))) (native-inputs `(("perl" ,perl) @@ -928,7 +927,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtquickcontrols (package (inherit qtsvg) (name "qtquickcontrols") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -937,7 +936,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "17cyfyqzjbm9dhq9pjscz36y84y16rmxwk6h826gjfprddrimsvg")))) + "09mkswxw7wa2l8xz9fbblxr1pbi86hggis55j4k8ifnrrw60vrq4")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -948,7 +947,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtquickcontrols2 (package (inherit qtsvg) (name "qtquickcontrols2") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -957,7 +956,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "1v77ydy4k15lksp3bi2kgha2h7m79g4n7c2qhbr09xnvpb8ars7j")))) + "06yy98x4vic2yrlpp83gf4kvl7kd93q62k178w0cy4sgqxp8d6dh")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -968,7 +967,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtgraphicaleffects (package (inherit qtsvg) (name "qtgraphicaleffects") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -977,7 +976,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "1j2drnx7zp3w6cgvy7bn00fyk5v7vw1j1hidaqcg78lzb6zgls1c")))) + "06frknb7m8bgg55rs7jjm61iziisy2ykzrrc5dy3vj0aad89najz")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -986,6 +985,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") ("qtdeclarative" ,qtdeclarative))))) (define-public qtdeclarative-render2d + ;; As of Qt-5.8.0 this module has been merged into qtdeclarative (package (inherit qtsvg) (name "qtdeclarative-render2d") (version "5.7.1") @@ -1004,12 +1004,13 @@ developers using C++ or QML, a CSS & JavaScript like language.") (native-inputs `()) (inputs `(("qtbase" ,qtbase) - ("qtdeclarative" ,qtdeclarative))))) + ("qtdeclarative" ,qtdeclarative))) + (properties `((superseded . ,qtdeclarative))))) (define-public qtgamepad (package (inherit qtsvg) (name "qtgamepad") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1018,7 +1019,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "10lijbsg9xx5ddbbjymdgl41nxz99yn1qgiww2kkggxwwdjj2axv")))) + "0dwcrq60h802z694h4108figlr3yvp8fpzhwjzbjm503v8yaxw5j")))) (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config))) @@ -1033,7 +1034,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtscxml (package (inherit qtsvg) (name "qtscxml") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1042,7 +1043,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "135kknqdmib2cjryfmvfgv7a2qx9pyba3m7i7nkbc5d742r4mbcx")) + "1i4xl24q4i32mbhyndrwaz0xj79d9n84s320gmkf5rwnfcwrvfxn")) (modules '((guix build utils))) (snippet '(begin @@ -1057,7 +1058,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtpurchasing (package (inherit qtsvg) (name "qtpurchasing") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1066,7 +1067,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "0hkvrgafz1hx9q4yc3nskv3pd3fszghvvd5a7mj33ynf55wpb57n")))) + "0mdkw73yx1csz9mf3wl0w1x1b8cv9j5px4nvakrknkjzaa9qgzdk")))) (inputs `(("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative))))) @@ -1074,7 +1075,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtcanvas3d (package (inherit qtsvg) (name "qtcanvas3d") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1083,7 +1084,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "1d5xpq3mhjg4ipxzap7s2vnlfcd02d3yq720npv10xxp2ww0i1x8")) + "18yaikbwk4d7sh09psi3kjn1mxjp4d2f3qchfzgq5x96yn8gfijl")) (modules '((guix build utils))) (snippet '(delete-file-recursively "examples/canvas3d/3rdparty")))) @@ -1108,7 +1109,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtcharts (package (inherit qtsvg) (name "qtcharts") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1117,7 +1118,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "1qrzcddwff2hxsbxrraff16j4abah2zkra2756s1mvydj9lyxzl5")))) + "11m5g1fxip6z2xk1z6g6h4rq7v282qbkxflan8hs87hadnzars03")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1128,7 +1129,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtdatavis3d (package (inherit qtsvg) (name "qtdatavis3d") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1137,7 +1138,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "1y00p0wyj5cw9c2925y537vpmmg9q3kpf7qr1s7sv67dvvf8bzqv")))) + "1n2vdf6n7pr9xrjwbvbar899q74shx6cy19x32adxfn2iilygwbp")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1440,19 +1441,19 @@ different kinds of sliders, and much more.") (define-public qtwebkit (package (name "qtwebkit") - (version "5.7.1") + (version "5.8.0") (source (origin (method url-fetch) (uri (string-append "http://download.qt.io/community_releases/" (version-major+minor version) - "/" version "/qtwebkit-opensource-src-" version - ".tar.xz")) + "/" version "-final/qtwebkit-opensource-src-" + version ".tar.xz")) ;; Note: since Qt 5.6, Qt no longer officially supports qtwebkit: ;; . (sha256 (base32 - "00szgcra6pf2myfjrdbsr1gmrxycpbjqlzkplna5yr1rjg4gfv54")))) + "1v0vj6slyh19mjrrpbqdzb47fr0f4xk7bc8803xjzybb11h8dbkr")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl) -- cgit 1.4.1 From 41f76ae08a7a830cdeb1eaac271d714cb58fbce3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 18 May 2017 10:08:55 +0200 Subject: services: user-homes: Do not create home directories marked as no-create. Fixes a bug whereby GuixSD would create the /nonexistent directory, from user 'nobody', even though it has 'create-home-directory?' set to #f. * gnu/build/activation.scm (activate-users+groups): Add comment for \#:create-home?. (activate-user-home)[ensure-user-home]: Skip when CREATE-HOME? is #f or SYSTEM? is #t. * gnu/tests/base.scm (run-basic-test)["no extra home directories"]: New tests. --- gnu/build/activation.scm | 9 ++++++++- gnu/tests/base.scm | 22 ++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/build/activation.scm b/gnu/build/activation.scm index beee56d437..a1d2a9cc7d 100644 --- a/gnu/build/activation.scm +++ b/gnu/build/activation.scm @@ -227,7 +227,11 @@ numeric gid or #f." #:supplementary-groups supplementary-groups #:comment comment #:home home + + ;; Home directories of non-system accounts are created by + ;; 'activate-user-home'. #:create-home? (and create-home? system?) + #:shell shell #:password password) @@ -282,7 +286,10 @@ they already exist." (match-lambda ((name uid group supplementary-groups comment home create-home? shell password system?) - (unless (or (not home) (directory-exists? home)) + ;; The home directories of system accounts are created during + ;; activation, not here. + (unless (or (not home) (not create-home?) system? + (directory-exists? home)) (let* ((pw (getpwnam name)) (uid (passwd:uid pw)) (gid (passwd:gid pw))) diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index 37aab8ef67..e5ac320b74 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -199,6 +199,28 @@ info --version") ',users+homes)) marionette))) + (test-equal "no extra home directories" + '() + + ;; Make sure the home directories that are not supposed to be + ;; created are indeed not created. + (let ((nonexistent + '#$(filter-map (lambda (user) + (and (not + (user-account-create-home-directory? + user)) + (user-account-home-directory user))) + (operating-system-user-accounts os)))) + (marionette-eval + `(begin + (use-modules (srfi srfi-1)) + + ;; Note: Do not flag "/var/empty". + (filter file-exists? + ',(remove (cut string-prefix? "/var/" <>) + nonexistent))) + marionette))) + (test-equal "login on tty1" "root\n" (begin -- cgit 1.4.1 From 8ad37ad7b65d73525faebccdfa47f3a9dddc768c Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Thu, 18 May 2017 12:00:23 +0200 Subject: bootloader: extlinux: Remove undefined symbols from export list. * gnu/bootloader/extlinux.scm (export): Remove syslinux-bootloader, extlinux-configuration, syslinux-configuration. --- gnu/bootloader/extlinux.scm | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'gnu') diff --git a/gnu/bootloader/extlinux.scm b/gnu/bootloader/extlinux.scm index a002001071..12fa447c31 100644 --- a/gnu/bootloader/extlinux.scm +++ b/gnu/bootloader/extlinux.scm @@ -26,10 +26,7 @@ #:use-module (guix records) #:use-module (guix utils) #:export (extlinux-bootloader - syslinux-bootloader - - extlinux-configuration - syslinux-configuration)) + syslinux-bootloader)) (define* (extlinux-configuration-file config entries #:key -- cgit 1.4.1 From 7fb6a9d3a63bfceba98e0b020e903e436ab865b5 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Thu, 18 May 2017 12:10:03 +0200 Subject: bootloader: extlinux: Remove syslinux-bootloader. * gnu/bootloader/extlinux.scm (export): Remove syslinux-bootloader that was forgotten in 8ad37ad7b. --- gnu/bootloader/extlinux.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/bootloader/extlinux.scm b/gnu/bootloader/extlinux.scm index 12fa447c31..6f232db83e 100644 --- a/gnu/bootloader/extlinux.scm +++ b/gnu/bootloader/extlinux.scm @@ -25,8 +25,7 @@ #:use-module (guix monads) #:use-module (guix records) #:use-module (guix utils) - #:export (extlinux-bootloader - syslinux-bootloader)) + #:export (extlinux-bootloader)) (define* (extlinux-configuration-file config entries #:key -- cgit 1.4.1 From 51ef4af6b3be0f676b21da8bc86bce1c00a607ee Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Wed, 17 May 2017 15:14:29 -0400 Subject: gnu: emacs-async: Update to 1.9.2. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs-async): Update to 1.9.2. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 3ed08043b2..17d00ddd12 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1156,14 +1156,14 @@ rather than the contents of files.") (define-public emacs-async (package (name "emacs-async") - (version "1.9") + (version "1.9.2") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/async-" version ".tar")) (sha256 (base32 - "1ip5nc8xyln5szvqwp6wqva9xr84pn8ssn3nnphrszr19y4js2bm")))) + "17fnvrj7jww29sav6a6jpizclg4w2962m6h37akpii71gf0vrffw")))) (build-system emacs-build-system) (home-page "https://elpa.gnu.org/packages/async.html") (synopsis "Asynchronous processing in Emacs") -- cgit 1.4.1 From 12e72d2a120adaebf62f88f4524c43484eb3c9c9 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Wed, 17 May 2017 15:14:30 -0400 Subject: gnu: emacs-helm: Update to 2.7.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs-helm): Update to 2.7.0. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 17d00ddd12..7e04bb9077 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3361,7 +3361,7 @@ Dust.js, React/JSX, Angularjs, ejs, etc.") (define-public emacs-helm (package (name "emacs-helm") - (version "1.9.8") + (version "2.7.0") (source (origin (method url-fetch) (uri (string-append @@ -3370,7 +3370,7 @@ Dust.js, React/JSX, Angularjs, ejs, etc.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "019dpzr6l83k1fgxn40aqxjvrpz4dl5d9vi7fc5wjnifmxaqxia6")))) + "1scdirpclgq3pi1j2c90gqaaqg1pgvasp98f4jqw8c5xbqcr7jdw")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-async" ,emacs-async) -- cgit 1.4.1 From 03cc1cf35b73e258f504c2dc4eeb1c8f2f599c13 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Wed, 17 May 2017 15:14:31 -0400 Subject: gnu: Add emacs-helm-swoop. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs-helm-swoop): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 7e04bb9077..66eaea5185 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3387,6 +3387,30 @@ considered to be its successor. Helm sets out to clean up the legacy code in not tied in the trap of backward compatibility.") (license license:gpl3+))) +(define-public emacs-helm-swoop + (package + (name "emacs-helm-swoop") + (version "1.7.2") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/ShingoFukuyama/helm-swoop/archive/" + version + ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1z34pfi0gsk054pxr906ilaalaw0xz3s536163gf9ykkwmc2356d")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-helm" ,emacs-helm))) + (home-page "https://github.com/ShingoFukuyama/helm-swoop") + (synopsis "Filter and jump to lines in an Emacs buffer using Helm") + (description + "This package builds on the Helm interface to provide several commands +for search-based navigation of buffers.") + (license license:gpl2+))) + (define-public emacs-cider (package (name "emacs-cider") -- cgit 1.4.1 From f69c29f76d250897f70f6e189dfc2b0e4b8e4fa3 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Wed, 17 May 2017 15:14:32 -0400 Subject: gnu: Add emacs-helm-projectile. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs-helm-projectile): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 66eaea5185..4a0d20c9f1 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3411,6 +3411,31 @@ not tied in the trap of backward compatibility.") for search-based navigation of buffers.") (license license:gpl2+))) +(define-public emacs-helm-projectile + (package + (name "emacs-helm-projectile") + (version "0.14.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/bbatsov/helm-projectile/archive/v" + version + ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "19cfmilqh8kbab3b2hmx6lyrj73q6vfmn3p730x95g23iz16mnd5")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-helm" ,emacs-helm) + ("emacs-projectile" ,emacs-projectile))) + (home-page "https://github.com/bbatsov/helm-projectile") + (synopsis "Helm integration for Projectile") + (description + "This Emacs library provides a Helm interface for Projectile.") + (license license:gpl3+))) + (define-public emacs-cider (package (name "emacs-cider") -- cgit 1.4.1 From 2b18ad054cf5a09582bc96ac7755452e7a5924e1 Mon Sep 17 00:00:00 2001 From: Pjotr Prins Date: Thu, 18 May 2017 05:59:47 +0000 Subject: gnu: Add gemma. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/bioinformatics.scm (gemma): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/bioinformatics.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 9f5d8141d8..d35b51d852 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -2696,6 +2696,46 @@ comment or quality sections.") (supported-systems '("x86_64-linux")) (license license:expat)))) +(define-public gemma + (package + (name "gemma") + (version "0.96") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/xiangzhou/GEMMA/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "055ynn16gd12pf78n4vr2a9jlwsbwzajpdnf2y2yilg1krfff222")))) + (inputs + `(("gsl" ,gsl) + ("lapack" ,lapack) + ("zlib" ,zlib))) + (build-system gnu-build-system) + (arguments + `(#:make-flags '("FORCE_DYNAMIC=1") ; use shared libs + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'bin-mkdir + (lambda _ + (mkdir-p "bin"))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (install-file "bin/gemma" + (string-append + out "/bin")))))) + #:tests? #f)) ; no tests included yet + (home-page "https://github.com/xiangzhou/GEMMA") + (synopsis "Tool for genome-wide efficient mixed model association") + (description + "Genome-wide Efficient Mixed Model Association (GEMMA) provides a +standard linear mixed model resolver with application in genome-wide +association studies (GWAS).") + (license license:gpl3))) + (define-public grit (package (name "grit") -- cgit 1.4.1 From 8cf6a63382099cf178f71ae84ec4a49b3c8a92dc Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 18 May 2017 19:13:10 +0300 Subject: gnu: nano: Update to 2.8.3. * gnu/packages/nano.scm (nano): Update to 2.8.3. --- gnu/packages/nano.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm index f0344d7481..329dcef8e8 100644 --- a/gnu/packages/nano.scm +++ b/gnu/packages/nano.scm @@ -29,7 +29,7 @@ (define-public nano (package (name "nano") - (version "2.8.2") + (version "2.8.3") (source (origin (method url-fetch) @@ -37,7 +37,7 @@ version ".tar.xz")) (sha256 (base32 - "1q5rxkvsv974085xrd2k11ffazadabcb9cnpfra0shmj71xqlgh2")))) + "0m8g1f1c09kjmy7w6dxq30yw373nsv1ylj7986xyv4a0jddybf32")))) (build-system gnu-build-system) (inputs `(("gettext" ,gettext-minimal) -- cgit 1.4.1 From 4d2e1d1442dc33195c8ace105af8e5edfa317dc2 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 18 May 2017 09:32:59 +0200 Subject: gnu: mcelog: Update to 150. * gnu/packages/linux.scm (mcelog): Update to 150. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 6ed761cd0b..4cd4943b5b 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3320,14 +3320,14 @@ the default @code{nsswitch} and the experimental @code{umich_ldap}.") (define-public mcelog (package (name "mcelog") - (version "149") + (version "150") (source (origin (method url-fetch) (uri (string-append "https://git.kernel.org/cgit/utils/cpu/mce/" "mcelog.git/snapshot/v" version ".tar.gz")) (sha256 (base32 - "08hd8bl9rgss990icb69srarrfwcg8k7py979ak753j92ybbkhdm")) + "1skfiracl3a1afmml8mvnccr4rym4ibv33c342rkyxn0j3088h24")) (file-name (string-append name "-" version ".tar.gz")) (modules '((guix build utils))) (snippet -- cgit 1.4.1 From acf82a1152431fddfee6828ff976157375eb143d Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 18 May 2017 18:50:58 +0200 Subject: gnu: btrfs-progs: Update to 4.11. * gnu/packages/linux.scm (btrfs-progs): Update to 4.11. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 4cd4943b5b..835ae06ca3 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -2859,7 +2859,7 @@ and copy/paste text in the console and in xterm.") (define-public btrfs-progs (package (name "btrfs-progs") - (version "4.10.2") + (version "4.11") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/kernel/" @@ -2867,7 +2867,7 @@ and copy/paste text in the console and in xterm.") "btrfs-progs-v" version ".tar.xz")) (sha256 (base32 - "02p63nz78lrr156cmbb759z76cn95hv6mmz7v592lmiq0dkxy2gd")))) + "03mzv89f08gdsqv4ima793g44kdavcfyjialf5dr0zd2ab66hyp1")))) (build-system gnu-build-system) (outputs '("out" "static")) ; static versions of binaries in "out" (~16MiB!) -- cgit 1.4.1 From e7fbd49132406bb9ec12141ac77ac401f58ee267 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 19 May 2017 10:50:20 +0200 Subject: gnu: guile-ssh: Fix potential double-free/use-after-free issue. Fixes . Reported by Mark H Weaver . * gnu/packages/patches/guile-ssh-double-free.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/ssh.scm (guile-ssh)[source](patches): Add it. --- gnu/local.mk | 1 + gnu/packages/patches/guile-ssh-double-free.patch | 37 ++++++++++++++++++++++++ gnu/packages/ssh.scm | 3 +- 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/guile-ssh-double-free.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index 922fb1a6bf..a1530af790 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -654,6 +654,7 @@ dist_patch_DATA = \ %D%/packages/patches/guile-relocatable.patch \ %D%/packages/patches/guile-rsvg-pkgconfig.patch \ %D%/packages/patches/guile-ssh-rexec-bug.patch \ + %D%/packages/patches/guile-ssh-double-free.patch \ %D%/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \ %D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \ %D%/packages/patches/gtk2-theme-paths.patch \ diff --git a/gnu/packages/patches/guile-ssh-double-free.patch b/gnu/packages/patches/guile-ssh-double-free.patch new file mode 100644 index 0000000000..9692b81d39 --- /dev/null +++ b/gnu/packages/patches/guile-ssh-double-free.patch @@ -0,0 +1,37 @@ +Fix a double-free or use-after-free issue with Guile-SSH used +with Guile 2.2. See . + +diff --git a/libguile-ssh/channel-type.c b/libguile-ssh/channel-type.c +index 3dd641f..0839854 100644 +--- a/libguile-ssh/channel-type.c ++++ b/libguile-ssh/channel-type.c +@@ -229,10 +229,11 @@ ptob_close (SCM channel) + ssh_channel_free (ch->ssh_channel); + } + ++ SCM_SETSTREAM (channel, NULL); ++ + #if USING_GUILE_BEFORE_2_2 + scm_gc_free (pt->write_buf, pt->write_buf_size, "port write buffer"); + scm_gc_free (pt->read_buf, pt->read_buf_size, "port read buffer"); +- SCM_SETSTREAM (channel, NULL); + + return 0; + #endif +diff --git a/libguile-ssh/sftp-file-type.c b/libguile-ssh/sftp-file-type.c +index 8879924..f87cf03 100644 +--- a/libguile-ssh/sftp-file-type.c ++++ b/libguile-ssh/sftp-file-type.c +@@ -224,10 +224,11 @@ ptob_close (SCM sftp_file) + sftp_close (fd->file); + } + ++ SCM_SETSTREAM (sftp_file, NULL); ++ + #if USING_GUILE_BEFORE_2_2 + scm_gc_free (pt->write_buf, pt->write_buf_size, "port write buffer"); + scm_gc_free (pt->read_buf, pt->read_buf_size, "port read buffer"); +- SCM_SETSTREAM (sftp_file, NULL); + + return 1; + #endif diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 6a074d10fa..bb1898774b 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -226,7 +226,8 @@ Additionally, various channel-specific options can be negotiated.") (sha256 (base32 "0r261i8kc3avbmbwgyzak2vnqwssjlgz37g2y2fwm80w9bmn2m7j")) - (patches (search-patches "guile-ssh-rexec-bug.patch")) + (patches (search-patches "guile-ssh-rexec-bug.patch" + "guile-ssh-double-free.patch")) (modules '((guix build utils))) (snippet ;; 'configure.ac' mistakenly tries to link files from examples/ -- cgit 1.4.1 From 01cc84dadee4571e5793658e912ee05d60fbf060 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 11 Apr 2017 10:47:38 +0200 Subject: vm: Support arbitrary partition flags. * gnu/build/vm.scm (): Change BOOTABLE? to FLAGS. (initialize-partition-table): Pass each flag to parted. (initialize-hard-disk): Locate boot partition. * gnu/system/vm.scm (qemu-image): Adjust partition flags. --- gnu/build/vm.scm | 17 ++++++++++++----- gnu/system/vm.scm | 2 +- 2 files changed, 13 insertions(+), 6 deletions(-) (limited to 'gnu') diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index 9a77bee72d..c7449cfbef 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016 Christopher Allan Webber ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2017 Mathieu Othacehe +;;; Copyright © 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -41,7 +42,7 @@ partition-size partition-file-system partition-label - partition-bootable? + partition-flags partition-initializer root-partition-initializer @@ -141,7 +142,7 @@ the #:references-graphs parameter of 'derivation'." (size partition-size) (file-system partition-file-system (default "ext4")) (label partition-label (default #f)) - (bootable? partition-bootable? (default #f)) + (flags partition-flags (default '())) (initializer partition-initializer (default (const #t)))) (define (fold2 proc seed1 seed2 lst) ;TODO: factorize @@ -168,9 +169,10 @@ actual /dev name based on DEVICE." (cons* "mkpart" "primary" "ext2" (format #f "~aB" offset) (format #f "~aB" (+ offset (partition-size part))) - (if (partition-bootable? part) - `("set" ,(number->string index) "boot" "on") - '()))) + (append-map (lambda (flag) + (list "set" (number->string index) + (symbol->string flag) "on")) + (partition-flags part)))) (define (options partitions offset) (let loop ((partitions partitions) @@ -303,6 +305,11 @@ in PARTITIONS, and using BOOTCFG as its bootloader configuration file. Each partition is initialized by calling its 'initializer' procedure, passing it a directory name where it is mounted." + + (define (partition-bootable? partition) + "Return the first partition found with the boot flag set." + (member 'boot (partition-flags partition))) + (let* ((partitions (initialize-partition-table device partitions)) (root (find partition-bootable? partitions)) (target "/fs")) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 2ee5c2b1e7..e0e4d33d45 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -231,7 +231,7 @@ the image." (* 10 (expt 2 20)))) (label #$file-system-label) (file-system #$file-system-type) - (bootable? #t) + (flags '(boot)) (initializer initialize))))) (initialize-hard-disk "/dev/vda" #:partitions partitions -- cgit 1.4.1 From 4d415f0c3c0cf4acbc1297ccf2b27121846a4289 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 6 May 2017 22:53:58 +0200 Subject: vm: Support creating FAT partitions. * gnu/build/vm.scm (create-ext-file-system, create-fat-file-system): New procedures. (format-partition): Use them. Error for unknown file systems. * gnu/system/vm.scm (qemu-image): Include DOSFSTOOLS. * gnu/system/linux-initrd.scm (base-initrd): Always add nls_is8859-1.ko. --- gnu/build/vm.scm | 30 ++++++++++++++++++++++++++---- gnu/system/linux-initrd.scm | 4 +--- gnu/system/vm.scm | 2 +- 3 files changed, 28 insertions(+), 8 deletions(-) (limited to 'gnu') diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index c7449cfbef..7ce1ec8e1e 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -213,10 +213,10 @@ actual /dev name based on DEVICE." (define MS_BIND 4096) ; again! -(define* (format-partition partition type - #:key label) - "Create a file system TYPE on PARTITION. If LABEL is true, use that as the -volume name." +(define* (create-ext-file-system partition type + #:key label) + "Create an ext-family filesystem of TYPE on PARTITION. If LABEL is true, +use that as the volume name." (format #t "creating ~a partition...\n" type) (unless (zero? (apply system* (string-append "mkfs." type) "-F" partition @@ -225,6 +225,28 @@ volume name." '()))) (error "failed to create partition"))) +(define* (create-fat-file-system partition + #:key label) + "Create a FAT filesystem on PARTITION. The number of File Allocation Tables +will be determined based on filesystem size. If LABEL is true, use that as the +volume name." + (format #t "creating FAT partition...\n") + (unless (zero? (apply system* "mkfs.fat" partition + (if label + `("-n" ,label) + '()))) + (error "failed to create FAT partition"))) + +(define* (format-partition partition type + #:key label) + "Create a file system TYPE on PARTITION. If LABEL is true, use that as the +volume name." + (cond ((string-prefix? "ext" type) + (create-ext-file-system partition type #:label label)) + ((or (string-prefix? "fat" type) (string= "vfat" type)) + (create-fat-file-system partition #:label label)) + (else (error "Unsupported file system.")))) + (define (initialize-partition partition) "Format PARTITION, a object with a non-#f 'device' field, mount it, run its initializer, and unmount it." diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm index dfe198e43e..3a5e76034a 100644 --- a/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm @@ -268,6 +268,7 @@ loaded at boot time in the order in which they appear." "usbhid" "hid-generic" "hid-apple" ;keyboards during early boot "dm-crypt" "xts" "serpent_generic" "wp512" ;for encrypted root partitions "nvme" ;for new SSD NVMe devices + "nls_iso8859-1" ;for `mkfs.fat`, et.al ,@(if (string-match "^(x86_64|i[3-6]86)-" (%current-system)) '("pata_acpi" "pata_atiixp" ;for ATA controllers "isci") ;for SAS controllers like Intel C602 @@ -281,9 +282,6 @@ loaded at boot time in the order in which they appear." ,@(if (find (file-system-type-predicate "9p") file-systems) virtio-9p-modules '()) - ,@(if (find (file-system-type-predicate "vfat") file-systems) - '("nls_iso8859-1") - '()) ,@(if (find (file-system-type-predicate "btrfs") file-systems) '("btrfs") '()) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index e0e4d33d45..64770baf1c 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -203,7 +203,7 @@ the image." (guix build utils)) (let ((inputs - '#$(append (list qemu parted e2fsprogs) + '#$(append (list qemu parted e2fsprogs dosfstools) (map canonical-package (list sed grep coreutils findutils gawk)) (if register-closures? (list guix) '()))) -- cgit 1.4.1 From ecf5d5376979fadd971559367bf553df89fcc62b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 7 May 2017 15:31:30 +0200 Subject: vm: Add UEFI loader to disk images. * gnu/build/vm.scm (install-efi): New procedure. (initialize-hard-disk): Generate EFI blob when ESP is present. * gnu/system/vm.scm (qemu-image): Append 40MiB EFI System Partition. --- gnu/build/vm.scm | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ gnu/system/vm.scm | 18 ++++++++++++++-- 2 files changed, 77 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index 7ce1ec8e1e..57619764ce 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -27,6 +27,7 @@ #:use-module (gnu build linux-boot) #:use-module (gnu build install) #:use-module (guix records) + #:use-module (ice-9 format) #:use-module (ice-9 match) #:use-module (ice-9 regex) #:use-module (srfi srfi-1) @@ -315,12 +316,41 @@ SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation." (mkdir-p directory) (symlink bootcfg (string-append directory "/bootcfg")))) +(define (install-efi grub esp config-file) + "Write a self-contained GRUB EFI loader to the mounted ESP using CONFIG-FILE." + (let* ((system %host-type) + ;; Hard code the output location to a well-known path recognized by + ;; compliant firmware. See "3.5.1.1 Removable Media Boot Behaviour": + ;; http://www.uefi.org/sites/default/files/resources/UEFI%20Spec%202_6.pdf + (grub-mkstandalone (string-append grub "/bin/grub-mkstandalone")) + (efi-directory (string-append esp "/EFI/BOOT")) + ;; Map grub target names to boot file names. + (efi-targets (cond ((string-prefix? "x86_64" system) + '("x86_64-efi" . "BOOTX64.EFI")) + ((string-prefix? "i686" system) + '("i386-efi" . "BOOTIA32.EFI")) + ((string-prefix? "armhf" system) + '("arm-efi" . "BOOTARM.EFI")) + ((string-prefix? "aarch64" system) + '("arm64-efi" . "BOOTAA64.EFI"))))) + ;; grub-mkstandalone requires a TMPDIR to prepare the firmware image. + (setenv "TMPDIR" esp) + + (mkdir-p efi-directory) + (unless (zero? (system* grub-mkstandalone "-O" (car efi-targets) + "-o" (string-append efi-directory "/" + (cdr efi-targets)) + ;; Graft the configuration file onto the image. + (string-append "boot/grub/grub.cfg=" config-file))) + (error "failed to create GRUB EFI image")))) + (define* (initialize-hard-disk device #:key bootloader-package bootcfg bootcfg-location bootloader-installer + (grub-efi #f) (partitions '())) "Initialize DEVICE as a disk containing all the objects listed in PARTITIONS, and using BOOTCFG as its bootloader configuration file. @@ -332,8 +362,13 @@ passing it a directory name where it is mounted." "Return the first partition found with the boot flag set." (member 'boot (partition-flags partition))) + (define (partition-esp? partition) + "Return the first EFI System Partition." + (member 'esp (partition-flags partition))) + (let* ((partitions (initialize-partition-table device partitions)) (root (find partition-bootable? partitions)) + (esp (find partition-esp? partitions)) (target "/fs")) (unless root (error "no bootable partition specified" partitions)) @@ -345,8 +380,34 @@ passing it a directory name where it is mounted." (mount (partition-device root) target (partition-file-system root)) (install-boot-config bootcfg bootcfg-location target) (when bootloader-installer + (display "installing bootloader...\n") (bootloader-installer bootloader-package device target)) + (when esp + ;; Mount the ESP somewhere and install GRUB UEFI image. + (let ((mount-point (string-append target "/boot/efi")) + (grub-config (string-append target "/tmp/grub-standalone.cfg"))) + (display "mounting EFI system partition...\n") + (mkdir-p mount-point) + (mount (partition-device esp) mount-point + (partition-file-system esp)) + + ;; Create a tiny configuration file telling the embedded grub + ;; where to load the real thing. + (call-with-output-file grub-config + (lambda (port) + (format port + "insmod part_msdos~@ + search --set=root --label gnu-disk-image~@ + configfile /boot/grub/grub.cfg~%"))) + + (display "creating EFI firmware image...") + (install-efi grub-efi mount-point grub-config) + (display "done.\n") + + (delete-file grub-config) + (umount mount-point))) + ;; Register BOOTCFG as a GC root. (register-bootcfg-root target bootcfg) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 64770baf1c..d282ba557a 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016 Christopher Allan Webber ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2017 Mathieu Othacehe +;;; Copyright © 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -228,13 +229,26 @@ the image." #:system-directory #$os-drv)) (partitions (list (partition (size #$(- disk-image-size - (* 10 (expt 2 20)))) + (* 50 (expt 2 20)))) (label #$file-system-label) (file-system #$file-system-type) (flags '(boot)) - (initializer initialize))))) + (initializer initialize)) + ;; Append a small EFI System Partition for + ;; use with UEFI bootloaders. + (partition + ;; The standalone grub image is about 10MiB, but + ;; leave some room for custom or multiple images. + (size (* 40 (expt 2 20))) + (label "GNU-ESP") ;cosmetic only + ;; Use "vfat" here since this property is used + ;; when mounting. The actual FAT-ness is based + ;; on filesystem size (16 in this case). + (file-system "vfat") + (flags '(esp)))))) (initialize-hard-disk "/dev/vda" #:partitions partitions + #:grub-efi #$grub-efi #:bootloader-package #$(bootloader-package bootloader) #:bootcfg #$bootcfg-drv -- cgit 1.4.1 From 8ea98ee10cb5282c9205f536b20df0656a4df902 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 18 May 2017 19:24:36 +0200 Subject: doc: Update for UEFI systems. * doc/guix.texi (USB Stick Installation): Mention UEFI. (Preparing for Installation): Add notes about EFI System Partition, and mounting partitions before init. (Proceeding with the Installation): Mention the GRUB-EFI package. (Using the Configuration System): Lightweight desktop is now a UEFI system. (GRUB Configuration): Expand on package field. Add indexes. * gnu/system/examples/lightweight-desktop.tmpl: Adjust to native EFI configuration. --- doc/guix.texi | 32 +++++++++++++++++++++++----- gnu/system/examples/lightweight-desktop.tmpl | 30 ++++++++++++++++---------- 2 files changed, 46 insertions(+), 16 deletions(-) (limited to 'gnu') diff --git a/doc/guix.texi b/doc/guix.texi index 72741e034a..b4a59e793a 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -7322,8 +7322,8 @@ Access to @file{/dev/sdX} usually requires root privileges. @end enumerate Once this is done, you should be able to reboot the system and boot from -the USB stick. The latter usually requires you to get in the BIOS' boot -menu, where you can choose to boot from the USB stick. +the USB stick. The latter usually requires you to get in the BIOS' or +UEFI boot menu, where you can choose to boot from the USB stick. @xref{Installing GuixSD in a VM}, if, instead, you would like to install GuixSD in a virtual machine (VM). @@ -7477,6 +7477,17 @@ install BIOS-based GRUB (which is the default), make sure a BIOS Boot Partition is available (@pxref{BIOS installation,,, grub, GNU GRUB manual}). +@cindex EFI, installation +@cindex UEFI, installation +@cindex ESP, EFI system partition +If you instead wish to use EFI-based GRUB, a FAT32 @dfn{EFI System Partition} +(ESP) is required. This partition should be mounted at @file{/boot/efi} and +must have the @code{esp} flag set. E.g., for @command{parted}: + +@example +parted /dev/sda set 1 esp on +@end example + Once you are done partitioning the target hard disk drive, you have to create a file system on the relevant partition(s)@footnote{Currently GuixSD only supports ext4 and btrfs file systems. In particular, code @@ -7516,6 +7527,11 @@ root partition): mount LABEL=my-root /mnt @end example +Also mount any other partitions you would like to use on the target +system relative to this path. If you have @file{/boot} on a separate +partition for example, mount it at @file{/mnt/boot} now so it is found +by @code{guix system init} afterwards. + Finally, if you plan to use one or more swap partitions (@pxref{Memory Concepts, swap space,, libc, The GNU C Library Reference Manual}), make sure to initialize them with @command{mkswap}. Assuming you have one @@ -7590,7 +7606,8 @@ in particular: @itemize @item Make sure the @code{grub-configuration} form refers to the device you -want to install GRUB on. +want to install GRUB on. You also need to specify the @code{grub-efi} +package if you wish to use native UEFI boot. @item Be sure that your partition labels match the value of their respective @@ -7879,7 +7896,7 @@ management, power management, and more, would look like this: @include os-config-desktop.texi @end lisp -A graphical environment with a choice of lightweight window managers +A graphical UEFI system with a choice of lightweight window managers instead of full-blown desktop environments would look like this: @lisp @@ -15277,7 +15294,12 @@ The number of seconds to wait for keyboard input before booting. Set to The @code{grub-theme} object describing the theme to use. @item @code{grub} (default: @code{grub}) -The GRUB package to use. +@cindex EFI, bootloader +@cindex UEFI, bootloader +@cindex BIOS, bootloader +The GRUB package to use. Currently either @code{grub}, for ``legacy'' +x86 BIOS systems, or @code{grub-efi}, for modern systems using the +@dfn{Unified Extensible Firmware Interface} (UEFI). @item @code{terminal-outputs} (default: @code{'gfxterm}) The output terminals used for the GRUB boot menu, as a list of symbols. diff --git a/gnu/system/examples/lightweight-desktop.tmpl b/gnu/system/examples/lightweight-desktop.tmpl index 389ec8574b..6fb6283d29 100644 --- a/gnu/system/examples/lightweight-desktop.tmpl +++ b/gnu/system/examples/lightweight-desktop.tmpl @@ -4,23 +4,31 @@ (use-modules (gnu) (gnu system nss)) (use-service-modules desktop) -(use-package-modules wm ratpoison certs suckless) +(use-package-modules bootloaders certs ratpoison suckless wm) (operating-system (host-name "antelope") (timezone "Europe/Paris") (locale "en_US.utf8") - ;; Assuming /dev/sdX is the target hard disk, and "my-root" - ;; is the label of the target root file system. - (bootloader (grub-configuration (device "/dev/sdX"))) - - (file-systems (cons (file-system - (device "my-root") - (title 'label) - (mount-point "/") - (type "ext4")) - %base-file-systems)) + ;; Use the UEFI variant of GRUB with the EFI System + ;; Partition on /dev/sda1. + (bootloader (grub-configuration (grub grub-efi) + (device "/dev/sda1"))) + + ;; Assume the target root file system is labelled "my-root". + (file-systems (cons* (file-system + (device "my-root") + (title 'label) + (mount-point "/") + (type "ext4")) + (file-system + ;; Specify partition here since FAT + ;; labels are currently unsupported. + (device "/dev/sda1") + (mount-point "/boot/efi") + (type "vfat")) + %base-file-systems)) (users (cons (user-account (name "alice") -- cgit 1.4.1 From f6da41b54d8448de35fa727046e7d8a00b7579c7 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 19 May 2017 21:23:15 +0200 Subject: gnu: python-sip: Update to 4.19.2. * gnu/packages/qt.scm (python-sip): Update to 4.19.2. --- gnu/packages/qt.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index ef713fdf73..14baaf5086 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -1149,7 +1149,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public python-sip (package (name "python-sip") - (version "4.18.1") + (version "4.19.2") (source (origin (method url-fetch) @@ -1158,7 +1158,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") "sip-" version "/sip-" version ".tar.gz")) (sha256 (base32 - "1452zy3g0qv4fpd9c0y4gq437kn0xf7bbfniibv5n43zpwnpmklv")))) + "0cq5r21fmjyw5v7a6l4sfbaj3zgm7k5b2cryj6bnjki54nnllas3")))) (build-system gnu-build-system) (native-inputs `(("python" ,python-wrapper))) -- cgit 1.4.1 From 5ac3a671d8d863fc798885ee437ed2fc3ced6ca4 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 19 May 2017 21:20:15 +0200 Subject: gnu: python-pyqt: Update to 5.8.2. * gnu/packages/qt.scm (python-pyqt): Update to 5.8.2. --- gnu/packages/qt.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 14baaf5086..eed095dd69 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -1212,7 +1212,7 @@ module provides support functions to the automatically generated code.") (define-public python-pyqt (package (name "python-pyqt") - (version "5.7") + (version "5.8.2") (source (origin (method url-fetch) @@ -1222,7 +1222,7 @@ module provides support functions to the automatically generated code.") version ".tar.gz")) (sha256 (base32 - "01avscn1bir0h8zzfh1jvpljgwg6qkax5nk142xrm63rbyx969l9")) + "1s1nalcspam9dc7f63jkqn1i2sv9lrqn57p2zsc61g8bncahbmzb")) (patches (search-patches "pyqt-configure.patch")))) (build-system gnu-build-system) (native-inputs -- cgit 1.4.1 From 41fa164aa0a2b1c490065df639f38aa62ffa58e8 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 19 May 2017 21:29:51 +0200 Subject: gnu: python-pyqt@4: Update to 4.12. * gnu/packages/qt.scm (python-pyqt-4): Update to 4.12. [source]: Adjust URI to file rename. --- gnu/packages/qt.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index eed095dd69..d94c652ab2 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -1302,17 +1302,17 @@ contain over 620 classes.") (define-public python-pyqt-4 (package (inherit python-pyqt) (name "python-pyqt") - (version "4.11.4") + (version "4.12") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/pyqt/PyQt4/" - "PyQt-" version "/PyQt-x11-gpl-" + "PyQt-" version "/PyQt4_gpl_x11-" version ".tar.gz")) (sha256 (base32 - "01zlviy5lq8g6db84wnvvpsrfnip9lbcpxagsyqa6as3jmsff7zw")))) + "1nw8r88a5g2d550yvklawlvns8gd5slw53yy688kxnsa65aln79w")))) (native-inputs `(("python-sip" ,python-sip) ("qt" ,qt-4))) -- cgit 1.4.1 From b55dd31660934b9eca1862e4015e72ab8360aeb1 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 19 May 2017 23:36:56 +0200 Subject: system: Use Guile 2.2 rather than 2.0 in %BASE-PACKAGES. * gnu/system.scm (%base-packages): Change GUILE-2.0 to GUILE-2.2. --- gnu/system.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/system.scm b/gnu/system.scm index 5bd60176fe..0076f2fcb1 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -502,7 +502,7 @@ explicitly appear in OS." ;; The packages below are also in %FINAL-INPUTS, so take them from ;; there to avoid duplication. (map canonical-package - (list guile-2.0 bash coreutils-8.27 findutils grep sed + (list guile-2.2 bash coreutils-8.27 findutils grep sed diffutils patch gawk tar gzip bzip2 xz lzip)))) (define %default-issue -- cgit 1.4.1 From cd6171c1b49cbad1b38eb1f5ae5e805f029c0ec5 Mon Sep 17 00:00:00 2001 From: Brendan Tildesley Date: Sat, 13 May 2017 20:40:45 +1000 Subject: gnu: calibre: Update to 2.85.1. * gnu/packages/ebooks.scm (calibre): Update to 2.85.1. * gnu/packages/patches/calibre-drop-unrar.patch: Delete incompatible patch file. Recreate debian patch file from the latest calibre git revision. Signed-off-by: Marius Bakke --- gnu/packages/ebook.scm | 5 +-- gnu/packages/patches/calibre-drop-unrar.patch | 48 ++++++++++++++++----------- 2 files changed, 31 insertions(+), 22 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm index 0a53e6ca99..a2b26c931f 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2015, 2016 Andreas Enge ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016, 2017 Alex Griffin +;;; Copyright © 2017 Brendan Tildesley ;;; ;;; This file is part of GNU Guix. ;;; @@ -61,7 +62,7 @@ (define-public calibre (package (name "calibre") - (version "2.76.0") + (version "2.85.1") (source (origin (method url-fetch) @@ -70,7 +71,7 @@ version ".tar.xz")) (sha256 (base32 - "1xfm586n6gm44mkyn25mbiyhj6w9ji9yl6fvmnr4zk1q6qcga3v8")) + "1g8s0kp1gj05yysfgqpp2lgrxvzc0fsny1hwzx5jh9hvqn0b53cc")) ;; Remove non-free or doubtful code, see ;; https://lists.gnu.org/archive/html/guix-devel/2015-02/msg00478.html (modules '((guix build utils))) diff --git a/gnu/packages/patches/calibre-drop-unrar.patch b/gnu/packages/patches/calibre-drop-unrar.patch index 4eb64404f6..adf977b183 100644 --- a/gnu/packages/patches/calibre-drop-unrar.patch +++ b/gnu/packages/patches/calibre-drop-unrar.patch @@ -1,15 +1,20 @@ -Taken from Debian. Updated by Alex Griffin. +Recreated old debian patch on the latest calibre version -Author: Dmitry Shachnev -Description: do not build unrar extension as we strip unrar from the tarball -Forwarded: not-needed -Last-Update: 2013-04-04 +From 6764e4c211e50d4f4633dbabfba7cbc3089c51dc Mon Sep 17 00:00:00 2001 +From: Brendan Tildesley +Date: Sat, 13 May 2017 21:12:12 +1000 +Subject: [PATCH] Remove unrar extension -Index: calibre/setup/extensions.py -=================================================================== ---- calibre.orig/setup/extensions.json 2016-07-21 21:21:05.000000000 -0500 -+++ calibre/setup/extensions.json 2016-07-27 11:22:17.167710112 -0500 -@@ -211,14 +211,5 @@ +--- + setup/extensions.json | 11 ----------- + src/calibre/ebooks/metadata/archive.py | 2 +- + 2 files changed, 1 insertion(+), 12 deletions(-) + +diff --git a/setup/extensions.json b/setup/extensions.json +index 1f6d1fb5fd..127390450f 100644 +--- a/setup/extensions.json ++++ b/setup/extensions.json +@@ -211,16 +211,5 @@ "sources": "calibre/devices/mtp/unix/devices.c calibre/devices/mtp/unix/libmtp.c", "headers": "calibre/devices/mtp/unix/devices.h calibre/devices/mtp/unix/upstream/music-players.h calibre/devices/mtp/unix/upstream/device-flags.h", "libraries": "mtp" @@ -20,22 +25,25 @@ Index: calibre/setup/extensions.py - "inc_dirs": "unrar", - "defines": "SILENT RARDLL UNRAR _FILE_OFFSET_BITS=64 _LARGEFILE_SOURCE", - "windows_defines": "SILENT RARDLL UNRAR", +- "haiku_defines": "LITTLE_ENDIAN SILENT RARDLL UNRAR _FILE_OFFSET_BITS=64 _LARGEFILE_SOURCE _BSD_SOURCE", +- "haiku_libraries": "bsd", - "optimize_level": 2, - "windows_libraries": "User32 Advapi32 kernel32 Shell32" } ] - - -Index: calibre/src/calibre/ebooks/metadata/archive.py -=================================================================== ---- calibre.orig/src/calibre/ebooks/metadata/archive.py 2016-07-21 21:21:05.000000000 -0500 -+++ calibre/src/calibre/ebooks/metadata/archive.py 2016-07-27 11:21:07.793616039 -0500 -@@ -42,7 +42,7 @@ - description = _('Extract common e-book formats from archives ' - '(zip/rar) files. Also try to autodetect if they are actually ' - 'cbz/cbr files.') +diff --git a/src/calibre/ebooks/metadata/archive.py b/src/calibre/ebooks/metadata/archive.py +index f5c0b7bed3..32257dcdae 100644 +--- a/src/calibre/ebooks/metadata/archive.py ++++ b/src/calibre/ebooks/metadata/archive.py +@@ -44,7 +44,7 @@ class ArchiveExtract(FileTypePlugin): + description = _('Extract common e-book formats from archive files ' + '(ZIP/RAR). Also try to autodetect if they are actually ' + 'CBZ/CBR files.') - file_types = set(['zip', 'rar']) + file_types = set(['zip']) supported_platforms = ['windows', 'osx', 'linux'] on_import = True +-- +2.12.2 + -- cgit 1.4.1 From 7010d231dbef94b09c310a8ad44889bcabb2161a Mon Sep 17 00:00:00 2001 From: Brendan Tildesley Date: Sat, 13 May 2017 21:40:24 +1000 Subject: gnu: calibre: Import dont-load-icons patch from debian. * gnu/packages/patches/calibre-dont-load-remote-icons.patch: New file. * gnu/packages/ebooks.scm (calibre)[source]: Add reference to patch file. * gnu/local.mk (dist_path_DATA): Add it. Signed-off-by: Marius Bakke --- gnu/local.mk | 1 + gnu/packages/ebook.scm | 1 + .../patches/calibre-dont-load-remote-icons.patch | 45 ++++++++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 gnu/packages/patches/calibre-dont-load-remote-icons.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index a1530af790..8cfb89ff1b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -520,6 +520,7 @@ dist_patch_DATA = \ %D%/packages/patches/byobu-writable-status.patch \ %D%/packages/patches/cairo-CVE-2016-9082.patch \ %D%/packages/patches/calibre-drop-unrar.patch \ + %D%/packages/patches/calibre-dont-load-remote-icons.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \ %D%/packages/patches/cdparanoia-fpic.patch \ %D%/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch \ diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm index a2b26c931f..cc43259e26 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -80,6 +80,7 @@ (delete-file-recursively "src/unrar") (delete-file "src/odf/thumbnail.py"))) (patches (search-patches "calibre-drop-unrar.patch" + "calibre-dont-load-remote-icons.patch" "calibre-no-updates-dialog.patch")))) (build-system python-build-system) (native-inputs diff --git a/gnu/packages/patches/calibre-dont-load-remote-icons.patch b/gnu/packages/patches/calibre-dont-load-remote-icons.patch new file mode 100644 index 0000000000..2168263072 --- /dev/null +++ b/gnu/packages/patches/calibre-dont-load-remote-icons.patch @@ -0,0 +1,45 @@ +From: Martin Pitt +Date: Mon, 14 Nov 2016 22:41:24 +0100 +Subject: content-server: Don't load external URLs for privacy + +Spotted by lintian. +--- + resources/content_server/browse/browse.html | 4 +--- + resources/content_server/index.html | 2 +- + 2 files changed, 2 insertions(+), 4 deletions(-) + +diff --git a/resources/content_server/browse/browse.html b/resources/content_server/browse/browse.html +index 36f7199..e615707 100644 +--- a/resources/content_server/browse/browse.html ++++ b/resources/content_server/browse/browse.html +@@ -7,7 +7,7 @@ + ..:: calibre {library} ::.. {title} + + +- ++ + + + +@@ -63,8 +63,6 @@ + +- + + + +diff --git a/resources/content_server/index.html b/resources/content_server/index.html +index 51cc33a..e71d0e8 100644 +--- a/resources/content_server/index.html ++++ b/resources/content_server/index.html +@@ -9,7 +9,7 @@ + + + +- ++ + + +