diff options
-rw-r--r-- | doc/guix.texi | 84 | ||||
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/audio.scm | 4 | ||||
-rw-r--r-- | gnu/packages/game-development.scm | 4 | ||||
-rw-r--r-- | gnu/packages/games.scm | 4 | ||||
-rw-r--r-- | gnu/packages/gl.scm | 2 | ||||
-rw-r--r-- | gnu/packages/gnome.scm | 4 | ||||
-rw-r--r-- | gnu/packages/linux.scm | 46 | ||||
-rw-r--r-- | gnu/packages/mail.scm | 9 | ||||
-rw-r--r-- | gnu/packages/music.scm | 133 | ||||
-rw-r--r-- | gnu/packages/nano.scm | 4 | ||||
-rw-r--r-- | gnu/packages/parallel.scm | 4 | ||||
-rw-r--r-- | gnu/packages/ruby.scm | 25 | ||||
-rw-r--r-- | gnu/packages/shells.scm | 4 | ||||
-rw-r--r-- | gnu/packages/terminals.scm | 4 | ||||
-rw-r--r-- | gnu/services/dict.scm | 54 | ||||
-rw-r--r-- | gnu/services/mail.scm | 8 | ||||
-rw-r--r-- | gnu/services/pm.scm | 2 | ||||
-rw-r--r-- | gnu/services/vpn.scm | 4 | ||||
-rw-r--r-- | gnu/tests.scm | 43 | ||||
-rw-r--r-- | gnu/tests/base.scm | 30 | ||||
-rw-r--r-- | gnu/tests/dict.scm | 141 | ||||
-rw-r--r-- | gnu/tests/mail.scm | 25 | ||||
-rw-r--r-- | gnu/tests/messaging.scm | 27 | ||||
-rw-r--r-- | gnu/tests/networking.scm | 57 | ||||
-rw-r--r-- | gnu/tests/ssh.scm | 30 | ||||
-rw-r--r-- | gnu/tests/web.scm | 26 | ||||
-rw-r--r-- | guix/scripts/pack.scm | 3 | ||||
-rwxr-xr-x | guix/scripts/substitute.scm | 5 | ||||
-rw-r--r-- | guix/utils.scm | 7 |
30 files changed, 498 insertions, 296 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index a8ae5441d2..aa779e38e2 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3426,7 +3426,7 @@ Both phases are executed after the @code{install} phase. @end defvr @defvr {Scheme Variable} ocaml-build-system -This variable is exported by @code{(guix build-sytem ocaml)}. It implements +This variable is exported by @code{(guix build-system ocaml)}. It implements a build procedure for @uref{https://ocaml.org, OCaml} packages, which consists of choosing the correct set of commands to run for each package. OCaml packages can expect many different commands to be run. This build system will @@ -9229,7 +9229,7 @@ The Rottlog package to use. The Rottlog configuration file to use (@pxref{Mandatory RC Variables,,, rottlog, GNU Rot[t]log Manual}). -@item @code{periodic-rotations} (default: @code{`(("weekly" %default-rotatations))}) +@item @code{periodic-rotations} (default: @code{`(("weekly" %default-rotations))}) A list of Rottlog period-name/period-config tuples. For example, taking an example from the Rottlog manual (@pxref{Period @@ -11134,7 +11134,7 @@ Network interface on which to listen. @item @code{port} (default: @code{6379}) Port on which to accept connections on, a value of 0 will disable -listining on a TCP socket. +listening on a TCP socket. @item @code{working-directory} (default: @code{"/var/lib/redis"}) Directory in which to store the database and related files. @@ -11367,9 +11367,9 @@ The driver that the passdb should use. Valid values include Defaults to @samp{"pam"}. @end deftypevr -@deftypevr {@code{passdb-configuration} parameter} free-form-args args -A list of key-value args to the passdb driver. -Defaults to @samp{()}. +@deftypevr {@code{passdb-configuration} parameter} space-separated-string-list args +Space separated list of arguments to the passdb driver. +Defaults to @samp{""}. @end deftypevr @end deftypevr @@ -11386,9 +11386,9 @@ The driver that the userdb should use. Valid values include Defaults to @samp{"passwd"}. @end deftypevr -@deftypevr {@code{userdb-configuration} parameter} free-form-args args -A list of key-value args to the userdb driver. -Defaults to @samp{()}. +@deftypevr {@code{userdb-configuration} parameter} space-separated-string-list args +Space separated list of arguments to the userdb driver. +Defaults to @samp{""}. @end deftypevr @deftypevr {@code{userdb-configuration} parameter} free-form-args override-fields @@ -12524,7 +12524,7 @@ as in this example: @end deffn @deftp {Data Type} opensmtpd-configuration -Data type regresenting the configuration of opensmtpd. +Data type representing the configuration of opensmtpd. @table @asis @item @code{package} (default: @var{opensmtpd}) @@ -13478,7 +13478,7 @@ Defaults to @samp{#f}. @end deftypevr @deftypevr {@code{openvpn-server-configuration} parameter} boolean client-to-client? -When true, clients are alowed to talk to each other inside the VPN. +When true, clients are allowed to talk to each other inside the VPN. Defaults to @samp{#f}. @@ -13502,7 +13502,7 @@ Defaults to @samp{100}. @deftypevr {@code{openvpn-server-configuration} parameter} string status The status file. This file shows a small report on current connection. -It is trunkated and rewritten every minute. +It is truncated and rewritten every minute. Defaults to @samp{"/var/run/openvpn/status"}. @@ -14256,7 +14256,7 @@ Defaults to @samp{#t}. @end deftypevr @deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list runtime-pm-blacklist -Exclude specified PCI(e) devices adresses from Runtime Power Management. +Exclude specified PCI(e) device addresses from Runtime Power Management. Defaults to @samp{disabled}. @@ -14375,33 +14375,75 @@ This is the list of IP addresses and ports and possibly socket file names to listen to (@pxref{Server Settings, @code{listen} directive,, dico, GNU Dico Manual}). +@item @code{handlers} (default: @var{'()}) +List of @code{<dicod-handler>} objects denoting handlers (module instances). + @item @code{databases} (default: @var{(list %dicod-database:gcide)}) List of @code{<dicod-database>} objects denoting dictionaries to be served. @end table @end deftp -@deftp {Data Type} dicod-database -Data type representing a dictionary database. +@deftp {Data Type} dicod-handler +Data type representing a dictionary handler (module instance). @table @asis @item @code{name} -Name of the database, will be used in DICT commands. +Name of the handler (module instance). -@item @code{module} -Name of the dicod module used by this database +@item @code{module} (default: @var{#f}) +Name of the dicod module of the handler (instance). If it is @code{#f}, +the module has the same name as the handler. (@pxref{Modules,,, dico, GNU Dico Manual}). @item @code{options} List of strings or gexps representing the arguments for the module handler +@end table +@end deftp + +@deftp {Data Type} dicod-database +Data type representing a dictionary database. + +@table @asis +@item @code{name} +Name of the database, will be used in DICT commands. + +@item @code{handler} +Name of the dicod handler (module instance) used by this database (@pxref{Handlers,,, dico, GNU Dico Manual}). + +@item @code{complex?} (default: @var{#f}) +Whether the database configuration complex. The complex configuration +will need a corresponding @code{<dicod-handler>} object, otherwise not. + +@item @code{options} +List of strings or gexps representing the arguments for the database +(@pxref{Databases,,, dico, GNU Dico Manual}). @end table @end deftp @defvr {Scheme Variable} %dicod-database:gcide A @code{<dicod-database>} object serving the GNU Collaborative International -Dictonary of English using the @code{gcide} package. +Dictionary of English using the @code{gcide} package. @end defvr +The following is an example @code{dicod-service} configuration. + +@example +(dicod-service #:config + (dicod-configuration + (handlers (list (dicod-handler + (name "wordnet") + (module "dictorg") + (options + (list #~(string-append "dbdir=" #$wordnet)))))) + (databases (list (dicod-database + (name "wordnet") + (complex? #t) + (handler "wordnet") + (options '("database=wn"))) + %dicod-database:gcide)))) +@end example + @subsubsection Version Control The @code{(gnu services version-control)} module provides the following services: @@ -14411,7 +14453,7 @@ The @code{(gnu services version-control)} module provides the following services @deffn {Scheme Procedure} git-daemon-service [#:config (git-daemon-configuration)] Return a service that runs @command{git daemon}, a simple TCP server to -expose repositiories over the Git protocol for annoymous access. +expose repositories over the Git protocol for anonymous access. The optional @var{config} argument should be a @code{<git-daemon-configuration>} object, by default it allows read-only @@ -15320,7 +15362,7 @@ which may be insufficient for some operations. The file name of the qcow2 image. @end table -The default @command{run-vm.sh} script that is returned by an invokation of +The default @command{run-vm.sh} script that is returned by an invocation of @command{guix system vm} does not add a @command{-net user} flag by default. To get network access from within the vm add the @code{(dhcp-client-service)} to your system definition and start the VM using diff --git a/gnu/local.mk b/gnu/local.mk index be47e74677..b3829db2b9 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -465,6 +465,7 @@ GNU_SYSTEM_MODULES = \ \ %D%/tests.scm \ %D%/tests/base.scm \ + %D%/tests/dict.scm \ %D%/tests/nfs.scm \ %D%/tests/install.scm \ %D%/tests/mail.scm \ diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 29b4718452..86a149b1d3 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1062,7 +1062,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.") (define-public guitarix (package (name "guitarix") - (version "0.35.2") + (version "0.35.3") (source (origin (method url-fetch) (uri (string-append @@ -1070,7 +1070,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.") version ".tar.xz")) (sha256 (base32 - "1qj3adjhg511jygbjkl9k5v0gcjmg6ifc479rspfyf45m383pp3p")))) + "0pvw4ijkq6lcn45vrif9b4mqmgzi0qg1dp5b33kb5zan6n1aci4j")))) (build-system waf-build-system) (arguments `(#:tests? #f ; no "check" target diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index b4fce3f3b9..8f5b1fb0da 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -189,7 +189,7 @@ provide connectivity for client applications written in any language.") (define-public tiled (package (name "tiled") - (version "0.18.0") + (version "0.18.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/bjorn/tiled/archive/v" @@ -197,7 +197,7 @@ provide connectivity for client applications written in any language.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0csrwf7k3fxv6bv580w6wxjk1q2j9mj9k0xba3nb1ms6jiz1bvzk")))) + "1kcj2blrlfpghjv0qigip2qcbxfx7vv9i8nr4997hkwhsh6i2pjp")))) (build-system gnu-build-system) (inputs `(("qt" ,qt) ("zlib" ,zlib))) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 7ef46fcc27..0e0e68afcc 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -123,7 +123,7 @@ (define-public freedoom (package (name "freedoom") - (version "0.11.1") + (version "0.11.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/" name "/" name @@ -131,7 +131,7 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "060dqppd9fi079yw6c82klsjaslcabq6xan67wf9hs0cy39i0kpv")))) + "0b9k61f97spivi75f76zwwg8a3bgc6iil2hidqfj8s50lhqggwbb")))) (build-system gnu-build-system) (arguments '(#:make-flags `(,(string-append "prefix=" (assoc-ref %outputs "out"))) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index f0f84ba4db..37a1bd9098 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -434,7 +434,7 @@ extension functionality is exposed in a single header file.") "13qfx4xh8baryxqrv986l848ygd0piqwm6s2s90pxk9c0m9vklim")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) - (inputs `(("guile" ,guile-2.0) + (inputs `(("guile" ,guile-2.2) ("mesa" ,mesa) ("glu" ,glu) ("freeglut" ,freeglut))) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index cd001f5210..b94c36636e 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1584,14 +1584,14 @@ Hints specification (EWMH).") (define-public goffice (package (name "goffice") - (version "0.10.32") + (version "0.10.34") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "1hvs5558x98yzm43dc3f93v596x45lfmv1vkp4jjgfagynlpvcq2")))) + (base32 "00yn5ly1x50ynrwgl783pwnjy4k2ckp8n54mfnqv6qsq5fi7ajjm")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;4.1 MiB of gtk-doc diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index d2dbed4246..6aee9cd525 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -352,8 +352,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.10.7") -(define %linux-libre-hash "0cjhnq67h3kk2dx0kd3nw0f1lbxvc8jr8n5khb9bh07913ag2pyq") +(define %linux-libre-version "4.10.8") +(define %linux-libre-hash "0936i2h9l4gn67gby9kx70w6zqv1nbzbgwssry6k11wrjwa2p8n4") (define-public linux-libre (make-linux-libre %linux-libre-version @@ -362,14 +362,14 @@ 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.19" - "19x6hasx7pvrjj08vy8mhylx1s63j3dwxzgqh4k18jwzjfkv3p3g" + (make-linux-libre "4.9.20" + "0hnxylfnyz3xf7k3qcq2wri2wpbi2islngxjmqp445v1pzr4k9xp" %intel-compatible-systems #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.58" - "1q5y26r65wkhcav7qq3x9mvz54dgcvcw2a5scpgya61b3kpnahb2" + (make-linux-libre "4.4.59" + "1nrg7mg6cn0xzsdklg24aj5fqx05hab11j9nq4b8dabjf4crlkx5" %intel-compatible-systems #:configuration-file kernel-config)) @@ -2267,27 +2267,37 @@ thanks to the use of namespaces.") (define-public hdparm (package (name "hdparm") - (version "9.45") + (version "9.51") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/" name "/" name "/" name "-" version ".tar.gz")) (sha256 (base32 - "0sc6yf3k6sd7n6a2ig2my9fjlqpak3znlyw7jw4cz5d9asm1rc13")))) + "14ax5lyzhigx58ing7adbfyzisv0fqajbmzphg149rnb3s4xiyhs")))) (build-system gnu-build-system) (arguments `(#:make-flags (let ((out (assoc-ref %outputs "out"))) (list (string-append "binprefix=" out) (string-append "manprefix=" out) "CC=gcc")) - #:phases (alist-delete 'configure %standard-phases) - #:tests? #f)) ; no test suite + #:phases + (modify-phases %standard-phases + (delete 'configure)) ; no configure script + #:tests? #f)) ; no test suite (home-page "https://sourceforge.net/projects/hdparm/") - (synopsis "Tune hard disk parameters for high performance") - (description - "Get/set device parameters for Linux SATA/IDE drives. It's primary use -is for enabling irq-unmasking and IDE multiple-mode.") + (synopsis "View and tune ATA disk drive parameters") + (description + "@command{hdparm} is a command-line utility to control ATA controllers and +disk drives. It can increase performance and/or reliability by careful tuning +of hardware settings like power and acoustic management, DMA modes, and caching. +It can also display detailed device information, or be used as a simple +performance benchmarking tool. + +@command{hdparm} provides a command line interface to various Linux kernel +interfaces provided by the SATA/ATA/SAS @code{libata} subsystem, and the older +IDE driver subsystem. Many external USB drive enclosures with @dfn{SCSI-ATA +Command Translation} (SAT) are also supported.") (license (license:non-copyleft "file://LICENSE.TXT")))) (define-public rfkill @@ -2828,7 +2838,7 @@ and copy/paste text in the console and in xterm.") (define-public btrfs-progs (package (name "btrfs-progs") - (version "4.10.1") + (version "4.10.2") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/kernel/" @@ -2836,7 +2846,7 @@ and copy/paste text in the console and in xterm.") "btrfs-progs-v" version ".tar.xz")) (sha256 (base32 - "06hs20jwa15xybbmlalba8wvhv3slq1g0wrqrgyh7ll5y11bc5kc")))) + "02p63nz78lrr156cmbb759z76cn95hv6mmz7v592lmiq0dkxy2gd")))) (build-system gnu-build-system) (outputs '("out" "static")) ; static versions of binaries in "out" (~16MiB!) @@ -3502,14 +3512,14 @@ running boot option, and more.") (define-public sysstat (package (name "sysstat") - (version "11.4.2") + (version "11.4.3") (source (origin (method url-fetch) (uri (string-append "http://perso.orange.fr/sebastien.godard/" "sysstat-" version ".tar.xz")) (sha256 (base32 - "0f8gk1hma3bk198ziwrhh5jhisnbbgc1v4rxhny58n0zjzw0gm0z")))) + "1ryf9myjzpa2279i3rvsh6fr5psm6qvr5r9kbm1sxyspapxcms82")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; No test suite. diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 51928025fe..5826c42843 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -21,6 +21,7 @@ ;;; Copyright © 2016 John Darrington <jmd@gnu.org> ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> +;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -335,7 +336,7 @@ into mutt, so it is not a fork but a large set of feature patches."))) (define-public gmime (package (name "gmime") - (version "2.6.22") + (version "2.6.23") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gmime/" @@ -343,7 +344,7 @@ into mutt, so it is not a fork but a large set of feature patches."))) "/gmime-" version ".tar.xz")) (sha256 (base32 - "0fjmsphvz8srsmcdl4v13p2z4jp2migaybyny444hal4snbr0py2")))) + "0slzlzcr3h8jikpz5a5amqd0csqh2m40gdk910ws2hnaf5m6hjbi")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -663,14 +664,14 @@ invoking @command{notifymuch} from the post-new hook.") (define-public notmuch (package (name "notmuch") - (version "0.24") + (version "0.24.1") (source (origin (method url-fetch) (uri (string-append "https://notmuchmail.org/releases/notmuch-" version ".tar.gz")) (sha256 (base32 - "1z3m9knsdmchvfjzjhjf2cmdc9yahmvbvzn46wsrsrihfvv4rr7p")))) + "18rw0rim6zxhnr2nggial029x4raaxqcgf9klfbdhv89qvi7s4gs")))) (build-system gnu-build-system) (arguments '(#:make-flags (list "V=1") ; Verbose test output. diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 2850d309ca..6f42160f77 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -109,14 +109,14 @@ (define-public aria-maestosa (package (name "aria-maestosa") - (version "1.4.11") + (version "1.4.13") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/ariamaestosa/ariamaestosa/" version "/AriaSrc-" version ".tar.bz2")) (sha256 (base32 - "0gf9z96z83jiabxhpl856j15vl9flfgs6x1r0r6hc7g2xvwag0vy")))) + "1cs3z6frx2ch7rm5ammx9p0rxcjrbj1vq14hvcbimpaw39rdsn3d")))) (build-system gnu-build-system) (arguments `(#:tests? #f ;no tests @@ -479,7 +479,7 @@ enable professional yet simple and intuitive pattern-based drum programming.") ("emacs" ,emacs-no-x))) ;; Extempore refuses to build on architectures other than x86_64 (supported-systems '("x86_64-linux")) - (home-page "http://benswift.me/extempore-docs/index.html") + (home-page "http://digego.github.io/extempore/") (synopsis "Programming environment for live coding of multimedia") (description "Extempore is a programming language and runtime environment designed @@ -585,7 +585,7 @@ interface. It is implemented as a frontend to @code{klick}.") (define-public lilypond (package (name "lilypond") - (version "2.19.51") + (version "2.19.58") (source (origin (method url-fetch) (uri (string-append @@ -594,7 +594,7 @@ interface. It is implemented as a frontend to @code{klick}.") name "-" version ".tar.gz")) (sha256 (base32 - "1b4jvc0fixbnp8x457fzk5wgb4zd03npwwivp60kc27fmv63w5l1")))) + "0wjapb3if6qqdmr57z20hidx7czhl023cjimr01i8yf7k41fakh7")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; out-test/collated-files.html fails @@ -670,8 +670,8 @@ Guile.") (define-public non-sequencer ;; The latest tagged release is three years old and uses a custom build ;; system, so we take the last commit. - (let ((commit "a22f33f486a5c6f75b60e36f66504c036c0f6f8c") - (revision "2")) + (let ((commit "10c31e57291b6e42be53371567a722b62b32d220") + (revision "3")) (package (name "non-sequencer") (version (string-append "1.9.5-" revision "." (string-take commit 7))) @@ -682,7 +682,7 @@ Guile.") (commit commit))) (sha256 (base32 - "09q5x8i4f8mqnl8w6xnsq5zriy4bzdl4x2vq9n34a433rfrk84bg")) + "080rha4ffp7qycyg1mqcf4vj0s7z8qfvz6bxm0w29xgg2kkmb3fx")) (file-name (string-append name "-" version "-checkout")))) (build-system waf-build-system) (arguments @@ -983,7 +983,7 @@ users to select LV2 plugins and run them with jalv.") (define-public synthv1 (package (name "synthv1") - (version "0.8.0") + (version "0.8.1") (source (origin (method url-fetch) (uri @@ -991,7 +991,7 @@ users to select LV2 plugins and run them with jalv.") "/synthv1-" version ".tar.gz")) (sha256 (base32 - "155pfyhr6d35ciw95pbxlqy7751cmij8j5d849rvblqbjzyzb5qx")))) + "0rzkr8mgy28j5kg56qqrdm05ml2wlm651yk27c2mn5ql7v92gdx3")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; There are no tests. @@ -1014,7 +1014,7 @@ oscillators and stereo effects.") (define-public drumkv1 (package (name "drumkv1") - (version "0.8.0") + (version "0.8.1") (source (origin (method url-fetch) (uri @@ -1022,7 +1022,7 @@ oscillators and stereo effects.") "/drumkv1-" version ".tar.gz")) (sha256 (base32 - "1n2kd468kn71yp2asmamprvblmdlvh0zd8lsh3598dwi4b7aa3ga")))) + "0l6kjb1q9vslwy56836a0c65mf8z8ycam5vzz3k4qvd8g74bs1zq")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; There are no tests. @@ -1048,7 +1048,7 @@ effects.") (define-public samplv1 (package (name "samplv1") - (version "0.8.0") + (version "0.8.1") (source (origin (method url-fetch) (uri @@ -1056,7 +1056,7 @@ effects.") "/samplv1-" version ".tar.gz")) (sha256 (base32 - "0j3hkmd9q0bw9b7nk9cssqywlrishkd1n790a9vq6gh3pdc5sf3r")))) + "15rp9d1jbb56idyrnn9cqi1i7a70z1a1qdyz7ryn0bla0ghjnich")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; There are no tests. @@ -1082,7 +1082,7 @@ effects.") (define-public amsynth (package (name "amsynth") - (version "1.6.4") + (version "1.7.1") (source (origin (method url-fetch) @@ -1091,7 +1091,7 @@ effects.") "/amsynth-" version ".tar.bz2")) (sha256 (base32 - "07dp9dl38g9krjqxxh89l2z42z08yzrl57cx95b1l67xnxwjp5k3")))) + "1882pfcmf3rqg3vd4qflzkppcv158d748i603spqjbxqi8z7x7w0")))) (build-system gnu-build-system) (arguments `(#:phases @@ -1105,11 +1105,13 @@ effects.") `(("alsa-lib" ,alsa-lib) ("jack" ,jack-1) ("lv2" ,lv2) + ("lash" ,lash) ("libsndfile" ,libsndfile) ("gtk+" ,gtk+-2) ("gtkmm" ,gtkmm-2))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool))) (home-page "http://amsynth.github.io") (synopsis "Analog modeling synthesizer") (description @@ -1125,7 +1127,7 @@ reverb effects.") (define-public setbfree (package (name "setbfree") - (version "0.8.1") + (version "0.8.4") (source (origin (method url-fetch) (uri @@ -1134,7 +1136,7 @@ reverb effects.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0hj0rqk5yd4fzs7bwy6a6nhqgrmcggkjcr4il76rxy92r7nwabf3")))) + "1g4s1920kb2q5gpp82l2vxia29qa8g8zvdjgrca8ypynvxpzn65f")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" target @@ -1275,7 +1277,7 @@ is subjective.") (define-public tuxguitar (package (name "tuxguitar") - (version "1.3.2") + (version "1.4") (source (origin (method url-fetch) (uri (string-append @@ -1283,11 +1285,14 @@ is subjective.") version "/tuxguitar-" version "-src.tar.gz")) (sha256 (base32 - "0ldml31zvywid1w28mfd65ramyiics55fdl0ch846vm7j7nwv58j")) + "041275vwfr82kass7wiq9g2y82w9qrbzfinzcvfij2f2q45njwmc")) (modules '((guix build utils))) (snippet - ;; Delete pre-built classes - '(delete-file-recursively "TuxGuitar-android/bin")))) + '(begin + ;; Delete pre-built classes + (delete-file-recursively "TuxGuitar-android-gdrive/bin") + (delete-file-recursively "TuxGuitar-android-gdrive-gdaa/bin") + #t)))) (build-system ant-build-system) (arguments `(#:build-target "build" @@ -1296,23 +1301,31 @@ is subjective.") (modify-phases %standard-phases (add-after 'unpack 'enter-dir (lambda _ (chdir "TuxGuitar-lib") #t)) - (add-after 'build 'build-editor-utils + (add-after 'build 'build-libraries (lambda* (#:key inputs outputs #:allow-other-keys) - (chdir "..") - (let ((cwd (getcwd))) - (setenv "CLASSPATH" - (string-append - cwd "/TuxGuitar-lib/tuxguitar-lib.jar" ":" - cwd "/TuxGuitar-editor-utils/build/jar/tuxguitar-editor-utils.jar" ":" - (getenv "CLASSPATH")))) - (chdir "TuxGuitar-editor-utils") - ;; Generate default build.xml - ((@@ (guix build ant-build-system) default-build.xml) - "tuxguitar-editor-utils.jar" - (string-append (assoc-ref outputs "out") - "/share/java")) - ((assoc-ref %standard-phases 'build)))) - (add-after 'build-editor-utils 'build-application + (let* ((initial-classpath (getenv "CLASSPATH")) + (build-dir (lambda (dir) + (chdir "..") + (setenv "CLASSPATH" + (string-join (cons initial-classpath + (find-files (getcwd) "\\.jar$")) + ":")) + (chdir dir) + (if (file-exists? "build.xml") + ((assoc-ref %standard-phases 'build) + #:build-target "build") + (begin + ;; Generate default build.xml + ((@@ (guix build ant-build-system) default-build.xml) + (string-append (string-downcase dir) ".jar") + (string-append (assoc-ref outputs "out") + "/share/java")) + ((assoc-ref %standard-phases 'build))))))) + (map build-dir '("TuxGuitar-editor-utils" + "TuxGuitar-ui-toolkit" + "TuxGuitar-ui-toolkit-swt" + "TuxGuitar-awt-graphics"))))) + (add-after 'build-libraries 'build-application (lambda _ (chdir "../TuxGuitar") ((assoc-ref %standard-phases 'build) @@ -1329,10 +1342,10 @@ is subjective.") (for-each (lambda (file) (install-file file lib)) (find-files ".." "\\.jar$")) + ;; install all resources - (for-each (lambda (file) - (install-file file share)) - (find-files "share" ".*")) + (copy-recursively "share" share) + ;; create wrapper (call-with-output-file (string-append bin "/tuxguitar") (lambda (port) @@ -1353,7 +1366,7 @@ is subjective.") #t)))))) (inputs `(("java-swt" ,java-swt))) - (home-page "http://tuxguitar.com.ar") + (home-page "http://tuxguitar.pw") (synopsis "Multitrack tablature editor and player") (description "TuxGuitar is a guitar tablature editor with player support through midi. @@ -1367,33 +1380,29 @@ export.") (define-public pd (package (name "pd") - (version "0.45.4") + (version "0.47-1") (source (origin (method url-fetch) (uri - (string-append "mirror://sourceforge/pure-data/pure-data/" - version "/pd-" (version-major+minor version) - "-" (last (string-split version #\.)) - ".src.tar.gz")) + (string-append "http://msp.ucsd.edu/Software/pd-" + version ".src.tar.gz")) (sha256 (base32 - "1ls2ap5yi2zxvmr247621g4jx0hhfds4j5704a050bn2n3l0va2p")))) + "0k5s949kqd7yw97h3m8z81bjz32bis9m4ih8df1z0ymipnafca67")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" target #:phases (modify-phases %standard-phases - (add-before - 'configure 'fix-wish-path - (lambda _ - (substitute* "src/s_inter.c" - ((" wish ") (string-append " " (which "wish8.6") " "))) - (substitute* "tcl/pd-gui.tcl" - (("exec wish ") (string-append "exec " (which "wish8.6") " "))) - #t)) - (add-after - 'unpack 'autoconf - (lambda _ (zero? (system* "autoreconf" "-vfi"))))))) + (add-before 'configure 'fix-wish-path + (lambda _ + (substitute* "src/s_inter.c" + ((" wish ") (string-append " " (which "wish8.6") " "))) + (substitute* "tcl/pd-gui.tcl" + (("exec wish ") (string-append "exec " (which "wish8.6") " "))) + #t)) + (add-after 'unpack 'autoconf + (lambda _ (zero? (system* "bash" "./autogen.sh"))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -1630,7 +1639,7 @@ capabilities, custom envelopes, effects, etc.") (define-public yoshimi (package (name "yoshimi") - (version "1.5.0") + (version "1.5.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/yoshimi/" @@ -1638,7 +1647,7 @@ capabilities, custom envelopes, effects, etc.") "/yoshimi-" version ".tar.bz2")) (sha256 (base32 - "10s1i18xlmvqfrnr0zn2mj2b28i7p62dlqzzzkmpaapqj1gsgpz5")))) + "09kmq5bwgwwpa5z2mm1pxhnqcryd0cm5ixlafb3g6d3aspja2mkn")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; there are no tests diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm index 571770b459..36909032a1 100644 --- a/gnu/packages/nano.scm +++ b/gnu/packages/nano.scm @@ -29,7 +29,7 @@ (define-public nano (package (name "nano") - (version "2.7.5") + (version "2.8.0") (source (origin (method url-fetch) @@ -37,7 +37,7 @@ version ".tar.gz")) (sha256 (base32 - "01yrh66rph0vn9q9r2d2jji5yzaakxrj75j9fsm0g41m8qpy4sr2")))) + "0dlid11c8jkv0b9n73lc3mj274y5c7y08n7pzv947qz50m446yqb")))) (build-system gnu-build-system) (inputs `(("gettext" ,gettext-minimal) diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index 1f8e68171d..0c40fe933e 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -45,7 +45,7 @@ (define-public parallel (package (name "parallel") - (version "20170122") + (version "20170322") (source (origin (method url-fetch) @@ -53,7 +53,7 @@ version ".tar.bz2")) (sha256 (base32 - "19maf889vj1c4zakqwap58f44hgypyb5mzzwfsliir9gvvcq6zj1")))) + "1xjk6np0gwa6p5j26camwybx1n0vqz0f0bksi593rgw800211y7q")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 0a710ec5fe..857a1c7c60 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -49,6 +49,7 @@ (package (name "ruby") (version "2.3.3") + (replacement ruby-2.3.4) (source (origin (method url-fetch) @@ -101,10 +102,30 @@ a focus on simplicity and productivity.") (home-page "https://ruby-lang.org") (license license:ruby))) +(define ruby-2.3.4 + (package + (inherit ruby) + (name "ruby") + (version "2.3.4") + (source + (origin + (method url-fetch) + (uri (string-append "http://cache.ruby-lang.org/pub/ruby/" + (version-major+minor version) + "/ruby-" version ".tar.xz")) + (sha256 + (base32 + "132p5kc1sx97svbx04g40pz5pr7p8f6jlmnq5r2prlcz5q1xj71l")) + (modules '((guix build utils))) + (snippet `(begin + ;; Remove bundled libffi + (delete-file-recursively "ext/fiddle/libffi-3.2.1") + #t)))))) + (define-public ruby-2.2 (package (inherit ruby) (replacement #f) - (version "2.2.6") + (version "2.2.7") (source (origin (method url-fetch) @@ -113,7 +134,7 @@ a focus on simplicity and productivity.") "/ruby-" version ".tar.xz")) (sha256 (base32 - "0fbk2pyjphynj4kxn27vb5rsq6brr3y85p784jd1rxwws30fq54l")))))) + "0lyb7gnbbhs3a3v9grsjgbaixm20wxz6x3h0czyrxnj3cpp8lk13")))))) (define-public ruby-2.1 (package (inherit ruby) diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index ca51b3ad5d..c874bc20bd 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -346,14 +346,14 @@ ksh, and tcsh.") (define-public xonsh (package (name "xonsh") - (version "0.5.5") + (version "0.5.9") (source (origin (method url-fetch) (uri (pypi-uri "xonsh" version)) (sha256 (base32 - "1wa5g1gxk4aw8jazp3fqmr7mlkdmnva83x28i9xd3s99lv0qb3dd")) + "09s5k7fh4p0vkq0fha4ikwqlqsyv84vmlbqn8ggn0ymd47ajv38z")) (modules '((guix build utils))) (snippet `(begin diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index d0d99932c4..7dcd164dc6 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -271,13 +271,13 @@ multi-seat support, a replacement for @command{mingetty}, and more.") (define-public libtermkey (package (name "libtermkey") - (version "0.19") + (version "0.20") (source (origin (method url-fetch) (uri (string-append "http://www.leonerd.org.uk/code/" name "/" name "-" version ".tar.gz")) (sha256 - (base32 "1ds8gdr8p2dfr970z8kxgfz6x7m1jxmmfrb2aafab3wcni6al1f5")))) + (base32 "1xfj6lchhfljmbcl6dz8dpakppyy13nbl4ykxiv5x4dr9b4qf3bc")))) (build-system gnu-build-system) (arguments '(#:make-flags (list diff --git a/gnu/services/dict.scm b/gnu/services/dict.scm index 303067037f..64de111511 100644 --- a/gnu/services/dict.scm +++ b/gnu/services/dict.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com> -;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2017 Huang Ying <huang.ying.caritas@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,6 +33,7 @@ #:export (dicod-service dicod-service-type dicod-configuration + dicod-handler dicod-database %dicod-database:gcide)) @@ -46,21 +48,30 @@ (dico dicod-configuration-dico (default dico)) (interfaces dicod-configuration-interfaces ;list of strings (default '("localhost"))) - (databases dicod-configuration-databases - ;; list of <dicod-database> + (handlers dicod-configuration-handlers ;list of <dicod-handler> + (default '())) + (databases dicod-configuration-databases ;list of <dicod-database> (default (list %dicod-database:gcide)))) +(define-record-type* <dicod-handler> + dicod-handler make-dicod-handler + dicod-handler? + (name dicod-handler-name) + (module dicod-handler-module (default #f)) + (options dicod-handler-options (default '()))) + (define-record-type* <dicod-database> dicod-database make-dicod-database dicod-database? (name dicod-database-name) - (module dicod-database-module) + (handler dicod-database-handler) + (complex? dicod-database-complex? (default #f)) (options dicod-database-options (default '()))) (define %dicod-database:gcide (dicod-database (name "gcide") - (module "gcide") + (handler "gcide") (options (list #~(string-append "dbdir=" #$gcide "/share/gcide") "idxdir=/var/run/dicod")))) @@ -76,22 +87,47 @@ (shell (file-append shadow "/sbin/nologin"))))) (define (dicod-configuration-file config) + (define handler->text + (match-lambda + (($ <dicod-handler> name #f '()) + `(" +load-module " ,name ";")) + (($ <dicod-handler> name #f options) + (handler->text (dicod-handler + (name name) + (module name) + (options options)))) + (($ <dicod-handler> name module options) + `(" +load-module " ,name " { + command \"" ,module (string-join (list ,@options) " " 'prefix) "\"; +}\n")))) + (define database->text (match-lambda - (($ <dicod-database> name module options) + (($ <dicod-database> name handler #f options) + (append + (handler->text (dicod-handler + (name handler))) + (database->text (dicod-database + (name name) + (handler handler) + (complex? #t) + (options options))))) + (($ <dicod-database> name handler complex? options) `(" -load-module " ,module "; database { name \"" ,name "\"; - handler \"" ,module + handler \"" ,handler (string-join (list ,@options) " " 'prefix) "\"; }\n")))) (define configuration->text (match-lambda - (($ <dicod-configuration> dico (interfaces ...) databases) + (($ <dicod-configuration> dico (interfaces ...) handlers databases) (append `("listen (" ,(string-join interfaces ", ") ");\n") + (append-map handler->text handlers) (append-map database->text databases))))) (apply mixed-text-file "dicod.conf" (configuration->text config))) diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm index 05978e0068..20043d7518 100644 --- a/gnu/services/mail.scm +++ b/gnu/services/mail.scm @@ -160,8 +160,8 @@ @samp{pam}, @samp{passwd}, @samp{shadow}, @samp{bsdauth}, and @samp{static}.") (args - (free-form-args '()) - "A list of key-value args to the passdb driver.")) + (space-separated-string-list '()) + "Space separated list of arguments to the passdb driver.")) (define (serialize-passdb-configuration field-name val) (format #t "passdb {\n") @@ -178,8 +178,8 @@ "The driver that the userdb should use. Valid values include @samp{passwd} and @samp{static}.") (args - (free-form-args '()) - "A list of key-value args to the userdb driver.") + (space-separated-string-list '()) + "Space separated list of arguments to the userdb driver.") (override-fields (free-form-args '()) "Override fields from passwd.")) diff --git a/gnu/services/pm.scm b/gnu/services/pm.scm index ec35e5701a..fe55647eef 100644 --- a/gnu/services/pm.scm +++ b/gnu/services/pm.scm @@ -327,7 +327,7 @@ blacklisted ones.") (runtime-pm-blacklist (maybe-space-separated-string-list 'disabled) - "Exclude specified PCI(e) devices adresses from Runtime Power Management.") + "Exclude specified PCI(e) device addresses from Runtime Power Management.") (runtime-pm-driver-blacklist (space-separated-string-list '("radeon" "nouveau")) diff --git a/gnu/services/vpn.scm b/gnu/services/vpn.scm index e1a04a9858..868a227fc0 100644 --- a/gnu/services/vpn.scm +++ b/gnu/services/vpn.scm @@ -352,7 +352,7 @@ channel to protect against DoS attacks.") (client-to-client? (boolean #f) - "When true, clients are alowed to talk to each other inside the VPN.") + "When true, clients are allowed to talk to each other inside the VPN.") (keepalive (keepalive '(10 120)) @@ -368,7 +368,7 @@ element is the timeout before considering the other side down.") (status (string "/var/run/openvpn/status") "The status file. This file shows a small report on current connection. It -is trunkated and rewritten every minute.") +is truncated and rewritten every minute.") (client-config-dir (openvpn-ccd-list '()) diff --git a/gnu/tests.scm b/gnu/tests.scm index 8abe6c608b..e84d1ebb20 100644 --- a/gnu/tests.scm +++ b/gnu/tests.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,7 +21,11 @@ #:use-module (guix utils) #:use-module (guix records) #:use-module (gnu system) + #:use-module (gnu system grub) + #:use-module (gnu system file-systems) + #:use-module (gnu system shadow) #:use-module (gnu services) + #:use-module (gnu services base) #:use-module (gnu services shepherd) #:use-module ((gnu packages) #:select (scheme-modules)) #:use-module (srfi srfi-1) @@ -37,6 +41,8 @@ marionette-operating-system define-os-with-source + simple-operating-system + system-test system-test? system-test-name @@ -190,6 +196,41 @@ the system under test." ;;; +;;; Simple operating systems. +;;; + +(define %simple-os + (operating-system + (host-name "komputilo") + (timezone "Europe/Berlin") + (locale "en_US.UTF-8") + + (bootloader (grub-configuration (device "/dev/sdX"))) + (file-systems (cons (file-system + (device "my-root") + (title 'label) + (mount-point "/") + (type "ext4")) + %base-file-systems)) + (firmware '()) + + (users (cons (user-account + (name "alice") + (comment "Bob's sister") + (group "users") + (supplementary-groups '("wheel" "audio" "video")) + (home-directory "/home/alice")) + %base-user-accounts)))) + +(define-syntax-rule (simple-operating-system user-services ...) + "Return an operating system that includes USER-SERVICES in addition to +%BASE-SERVICES." + (operating-system (inherit %simple-os) + (services (cons* user-services ... %base-services)))) + + + +;;; ;;; Tests. ;;; diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index 000a4ddecb..bcb8299c73 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -19,8 +19,6 @@ (define-module (gnu tests base) #:use-module (gnu tests) #:use-module (gnu system) - #:use-module (gnu system grub) - #:use-module (gnu system file-systems) #:use-module (gnu system shadow) #:use-module (gnu system nss) #:use-module (gnu system vm) @@ -44,27 +42,7 @@ %test-nss-mdns)) (define %simple-os - (operating-system - (host-name "komputilo") - (timezone "Europe/Berlin") - (locale "en_US.UTF-8") - - (bootloader (grub-configuration (device "/dev/sdX"))) - (file-systems (cons (file-system - (device "my-root") - (title 'label) - (mount-point "/") - (type "ext4")) - %base-file-systems)) - (firmware '()) - - (users (cons (user-account - (name "alice") - (comment "Bob's sister") - (group "users") - (supplementary-groups '("wheel" "audio" "video")) - (home-directory "/home/alice")) - %base-user-accounts)))) + (simple-operating-system)) (define* (run-basic-test os command #:optional (name "basic") @@ -420,10 +398,8 @@ functionality tests.") #:user "alice")) (job3 #~(job next-second-from ;to test $PATH "touch witness-touch"))) - (operating-system - (inherit %simple-os) - (services (cons (mcron-service (list job1 job2 job3)) - (operating-system-user-services %simple-os)))))) + (simple-operating-system + (mcron-service (list job1 job2 job3))))) (define (run-mcron-test name) (mlet* %store-monad ((os -> (marionette-operating-system diff --git a/gnu/tests/dict.scm b/gnu/tests/dict.scm new file mode 100644 index 0000000000..f7a48ab634 --- /dev/null +++ b/gnu/tests/dict.scm @@ -0,0 +1,141 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu tests dict) + #:use-module (gnu tests) + #:use-module (gnu system) + #:use-module (gnu system nss) + #:use-module (gnu system vm) + #:use-module (gnu services) + #:use-module (gnu services dict) + #:use-module (gnu services networking) + #:use-module (gnu packages wordnet) + #:use-module (guix gexp) + #:use-module (guix store) + #:use-module (guix monads) + #:use-module (guix packages) + #:use-module (guix modules) + #:export (%test-dicod)) + +(define %dicod-os + (simple-operating-system + (dhcp-client-service) + (service dicod-service-type + (dicod-configuration + (interfaces '("0.0.0.0")) + (handlers (list (dicod-handler + (name "wordnet") + (module "dictorg") + (options + ;; XXX: Not useful since WordNet does not + ;; provide DICT-formatted data? + (list #~(string-append "dbdir=" #$wordnet)))))) + (databases (list (dicod-database + (name "wordnet") + (complex? #t) + (handler "wordnet") + (options '("database=wn"))) + %dicod-database:gcide)))))) + +(define* (run-dicod-test) + "Run tests of 'dicod-service-type'." + (mlet* %store-monad ((os -> (marionette-operating-system + %dicod-os + #:imported-modules + (source-module-closure '((gnu services herd))))) + (command (system-qemu-image/shared-store-script + os #:graphic? #f))) + (define test + (with-imported-modules '((gnu build marionette)) + #~(begin + (use-modules (ice-9 rdelim) + (ice-9 regex) + (srfi srfi-64) + (gnu build marionette)) + (define marionette + ;; Forward the guest's DICT port to local port 8000. + (make-marionette (list #$command "-net" + "user,hostfwd=tcp::8000-:2628"))) + + (define %dico-socket + (socket PF_INET SOCK_STREAM 0)) + + (mkdir #$output) + (chdir #$output) + + (test-begin "dicod") + + ;; Wait for the service to be started. + (test-eq "service is running" + 'running! + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (start-service 'dicod) + 'running!) + marionette)) + + ;; Wait until dicod is actually listening. + ;; TODO: Use a PID file instead. + (test-assert "connect inside" + (marionette-eval + '(begin + (use-modules (ice-9 rdelim)) + (let ((sock (socket PF_INET SOCK_STREAM 0))) + (let loop () + (pk 'try) + (catch 'system-error + (lambda () + (connect sock AF_INET INADDR_LOOPBACK 2628)) + (lambda args + (pk 'connection-error args) + (sleep 1) + (loop)))) + (read-line sock 'concat))) + marionette)) + + (test-assert "connect" + (let ((addr (make-socket-address AF_INET INADDR_LOOPBACK 8000))) + (connect %dico-socket addr) + (read-line %dico-socket 'concat))) + + (test-equal "CLIENT" + "250 ok\r\n" + (begin + (display "CLIENT \"GNU Guile\"\r\n" %dico-socket) + (read-line %dico-socket 'concat))) + + (test-assert "DEFINE" + (begin + (display "DEFINE ! hello\r\n" %dico-socket) + (display "QUIT\r\n" %dico-socket) + (let ((result (read-string %dico-socket))) + (and (string-contains result "gcide") + (string-contains result "hello") + result)))) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation "dicod" test))) + +(define %test-dicod + (system-test + (name "dicod") + (description "Connect to the dicod DICT server.") + (value (run-dicod-test)))) diff --git a/gnu/tests/mail.scm b/gnu/tests/mail.scm index 47328a54ae..d5c08b7f09 100644 --- a/gnu/tests/mail.scm +++ b/gnu/tests/mail.scm @@ -19,11 +19,8 @@ (define-module (gnu tests mail) #:use-module (gnu tests) #:use-module (gnu system) - #:use-module (gnu system file-systems) - #:use-module (gnu system grub) #:use-module (gnu system vm) #:use-module (gnu services) - #:use-module (gnu services base) #:use-module (gnu services mail) #:use-module (gnu services networking) #:use-module (guix gexp) @@ -32,23 +29,15 @@ #:export (%test-opensmtpd)) (define %opensmtpd-os - (operating-system - (host-name "komputilo") - (timezone "Europe/Berlin") - (locale "en_US.UTF-8") - (bootloader (grub-configuration (device #f))) - (file-systems %base-file-systems) - (firmware '()) - (services (cons* - (dhcp-client-service) - (service opensmtpd-service-type - (opensmtpd-configuration - (config-file - (plain-file "smtpd.conf" " + (simple-operating-system + (dhcp-client-service) + (service opensmtpd-service-type + (opensmtpd-configuration + (config-file + (plain-file "smtpd.conf" " listen on 0.0.0.0 accept from any for local deliver to mbox -")))) - %base-services)))) +")))))) (define (run-opensmtpd-test) "Return a test of an OS running OpenSMTPD service." diff --git a/gnu/tests/messaging.scm b/gnu/tests/messaging.scm index b0c8254ce0..cefb52534a 100644 --- a/gnu/tests/messaging.scm +++ b/gnu/tests/messaging.scm @@ -19,12 +19,8 @@ (define-module (gnu tests messaging) #:use-module (gnu tests) #: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) #:use-module (gnu services) - #:use-module (gnu services base) #:use-module (gnu services messaging) #:use-module (gnu services networking) #:use-module (gnu packages messaging) @@ -33,30 +29,11 @@ #:use-module (guix monads) #:export (%test-prosody)) -(define %base-os - (operating-system - (host-name "komputilo") - (timezone "Europe/Berlin") - (locale "en_US.UTF-8") - - (bootloader (grub-configuration (device "/dev/sdX"))) - (file-systems %base-file-systems) - (firmware '()) - (users %base-user-accounts) - (services (cons (dhcp-client-service) - %base-services)))) - -(define (os-with-service service) - "Return a test operating system that runs SERVICE." - (operating-system - (inherit %base-os) - (services (cons service - (operating-system-user-services %base-os))))) - (define (run-xmpp-test name xmpp-service pid-file create-account) "Run a test of an OS running XMPP-SERVICE, which writes its PID to PID-FILE." (mlet* %store-monad ((os -> (marionette-operating-system - (os-with-service xmpp-service) + (simple-operating-system (dhcp-client-service) + xmpp-service) #:imported-modules '((gnu services herd)))) (command (system-qemu-image/shared-store-script os #:graphic? #f)) diff --git a/gnu/tests/networking.scm b/gnu/tests/networking.scm index 53c80a4ac1..cfcb490874 100644 --- a/gnu/tests/networking.scm +++ b/gnu/tests/networking.scm @@ -19,12 +19,8 @@ (define-module (gnu tests networking) #:use-module (gnu tests) #: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) #:use-module (gnu services) - #:use-module (gnu services base) #:use-module (gnu services networking) #:use-module (guix gexp) #:use-module (guix store) @@ -34,35 +30,27 @@ (define %inetd-os ;; Operating system with 2 inetd services. - (operating-system - (host-name "komputilo") - (timezone "Europe/Brussels") - (locale "en_US.utf8") - - (bootloader (grub-configuration (device "/dev/sdX"))) - (file-systems %base-file-systems) - (firmware '()) - (users %base-user-accounts) - (services (cons* (dhcp-client-service) - (service inetd-service-type - (inetd-configuration - (entries (list - (inetd-entry - (name "echo") - (socket-type 'stream) - (protocol "tcp") - (wait? #f) - (user "root")) - (inetd-entry - (name "dict") - (socket-type 'stream) - (protocol "tcp") - (wait? #f) - (user "root") - (program (file-append bash - "/bin/bash")) - (arguments - (list "bash" (plain-file "my-dict.sh" "\ + (simple-operating-system + (dhcp-client-service) + (service inetd-service-type + (inetd-configuration + (entries (list + (inetd-entry + (name "echo") + (socket-type 'stream) + (protocol "tcp") + (wait? #f) + (user "root")) + (inetd-entry + (name "dict") + (socket-type 'stream) + (protocol "tcp") + (wait? #f) + (user "root") + (program (file-append bash + "/bin/bash")) + (arguments + (list "bash" (plain-file "my-dict.sh" "\ while read line do if [[ $line =~ ^DEFINE\\ (.*)$ ]] @@ -81,8 +69,7 @@ do else echo ERROR fi -done" )))))))) - %base-services)))) +done" )))))))))) (define* (run-inetd-test) "Run tests in %INETD-OS, where the inetd service provides an echo service on diff --git a/gnu/tests/ssh.scm b/gnu/tests/ssh.scm index c1582c4737..02931e982a 100644 --- a/gnu/tests/ssh.scm +++ b/gnu/tests/ssh.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; ;;; This file is part of GNU Guix. @@ -20,12 +20,8 @@ (define-module (gnu tests ssh) #:use-module (gnu tests) #: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) #:use-module (gnu services) - #:use-module (gnu services base) #:use-module (gnu services ssh) #:use-module (gnu services networking) #:use-module (gnu packages ssh) @@ -35,26 +31,6 @@ #:export (%test-openssh %test-dropbear)) -(define %base-os - (operating-system - (host-name "komputilo") - (timezone "Europe/Berlin") - (locale "en_US.UTF-8") - - (bootloader (grub-configuration (device "/dev/sdX"))) - (file-systems %base-file-systems) - (firmware '()) - (users %base-user-accounts) - (services (cons (dhcp-client-service) - %base-services)))) - -(define (os-with-service service) - "Return a test operating system that runs SERVICE." - (operating-system - (inherit %base-os) - (services (cons service - (operating-system-user-services %base-os))))) - (define* (run-ssh-test name ssh-service pid-file #:key (sftp? #f)) "Run a test of an OS running SSH-SERVICE, which writes its PID to PID-FILE. SSH-SERVICE must be configured to listen on port 22 and to allow for root and @@ -62,7 +38,9 @@ empty-password logins. When SFTP? is true, run an SFTP server test." (mlet* %store-monad ((os -> (marionette-operating-system - (os-with-service ssh-service) + (simple-operating-system + (dhcp-client-service) + ssh-service) #:imported-modules '((gnu services herd) (guix combinators)))) (command (system-qemu-image/shared-store-script diff --git a/gnu/tests/web.scm b/gnu/tests/web.scm index bae0e8fad7..cdc5791237 100644 --- a/gnu/tests/web.scm +++ b/gnu/tests/web.scm @@ -24,7 +24,6 @@ #:use-module (gnu system shadow) #:use-module (gnu system vm) #:use-module (gnu services) - #:use-module (gnu services base) #:use-module (gnu services web) #:use-module (gnu services networking) #:use-module (guix gexp) @@ -55,23 +54,14 @@ (define %nginx-os ;; Operating system under test. - (operating-system - (host-name "komputilo") - (timezone "Europe/Berlin") - (locale "en_US.utf8") - - (bootloader (grub-configuration (device "/dev/sdX"))) - (file-systems %base-file-systems) - (firmware '()) - (users %base-user-accounts) - (services (cons* (dhcp-client-service) - (service nginx-service-type - (nginx-configuration - (log-directory "/var/log/nginx") - (server-blocks %nginx-servers))) - (simple-service 'make-http-root activation-service-type - %make-http-root) - %base-services)))) + (simple-operating-system + (dhcp-client-service) + (service nginx-service-type + (nginx-configuration + (log-directory "/var/log/nginx") + (server-blocks %nginx-servers))) + (simple-service 'make-http-root activation-service-type + %make-http-root))) (define* (run-nginx-test #:optional (http-port 8042)) "Run tests in %NGINX-OS, which has nginx running and listening on diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index 626c592e1c..9e91bc22ac 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -59,7 +60,7 @@ (compressor "lzip" "lz" #~(#+(file-append lzip "/bin/lzip") "-9")) (compressor "xz" "xz" - #~(#+(file-append xz "/bin/xz") "-e")) + #~(#+(file-append xz "/bin/xz") "-e -T0")) (compressor "bzip2" "bz2" #~(#+(file-append bzip2 "/bin/bzip2") "-9")))) diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm index faeb019120..d3bccf4ddb 100755 --- a/guix/scripts/substitute.scm +++ b/guix/scripts/substitute.scm @@ -520,8 +520,9 @@ indicates that PATH is unavailable at CACHE-URL." (define (narinfo-request cache-url path) "Return an HTTP request for the narinfo of PATH at CACHE-URL." (let ((url (string-append cache-url "/" (store-path-hash-part path) - ".narinfo"))) - (build-request (string->uri url) #:method 'GET))) + ".narinfo")) + (headers '((User-Agent . "GNU Guile")))) + (build-request (string->uri url) #:method 'GET #:headers headers))) (define* (http-multiple-get base-uri proc seed requests #:key port (verify-certificate? #t)) diff --git a/guix/utils.scm b/guix/utils.scm index bc90686de0..fb962df8ba 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net> ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2015 David Thompson <davet@gnu.org> +;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -154,7 +155,7 @@ a symbol such as 'xz." (match compression ((or #f 'none) (values input '())) ('bzip2 (filtered-port `(,%bzip2 "-dc") input)) - ('xz (filtered-port `(,%xz "-dc") input)) + ('xz (filtered-port `(,%xz "-dc -T0") input)) ('gzip (filtered-port `(,%gzip "-dc") input)) (else (error "unsupported compression scheme" compression)))) @@ -164,7 +165,7 @@ a symbol such as 'xz." (match compression ((or #f 'none) (values input '())) ('bzip2 (filtered-port `(,%bzip2 "-c") input)) - ('xz (filtered-port `(,%xz "-c") input)) + ('xz (filtered-port `(,%xz "-c -T0") input)) ('gzip (filtered-port `(,%gzip "-c") input)) (else (error "unsupported compression scheme" compression)))) @@ -221,7 +222,7 @@ program--e.g., '(\"--fast\")." (match compression ((or #f 'none) (values output '())) ('bzip2 (filtered-output-port `(,%bzip2 "-c" ,@options) output)) - ('xz (filtered-output-port `(,%xz "-c" ,@options) output)) + ('xz (filtered-output-port `(,%xz "-c -T0" ,@options) output)) ('gzip (filtered-output-port `(,%gzip "-c" ,@options) output)) (else (error "unsupported compression scheme" compression)))) |