summaryrefslogtreecommitdiff
path: root/tests
Commit message (Collapse)AuthorAge
* services: Introduce extensible services.Ludovic Courtès2015-10-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch rewrites GuixSD services to make them extensible. * gnu-system.am (GNU_SYSTEM_MODULES): Add gnu/services/dbus.scm. * gnu/services.scm (<service>): Replace with new record type. (<service-extension>, <service-type>): New record types. (write-service-type, compute-boot-script, second-argument): New procedures. (%boot-service, boot-service-type): New variables. (file-union, directory-union, modprobe-wrapper, activation-service->script, activation-script, gexps->activation-gexp): New procedures. (activation-service-type, %activation-service): New variables. (etc-directory, files->etc-directory, etc-service): New procedures. (etc-service-type, setuid-program-service, firmware-service-type): New variables. (firmware->activation-gexp): New procedure. (&service-error, &missing-target-service-error, &ambiguous-target-service-error): New condition types. (service-back-edges, fold-services): New procedures. * gnu/services/avahi.scm (<avahi-configuration>): New record type. (configuration-file): Replace keyword parameters with a single 'config' parameter. (%avahi-accounts, %avahi-activation, avahi-service-type): New variables. (avahi-dmd-service): New procedure. (avahi-service): Rewrite using 'service' and 'avahi-configuration'. * gnu/services/base.scm (%root-file-system-dmd-service, root-file-system-service-type): New variables. (root-file-system-service): Use them. (file-system->dmd-service-name): New procedure. (file-system-service-type): New variable. (file-system-service): Use it. Replace keyword parameters with a single 'file-system' object. (user-unmount-service-type): New variable. (user-unmount-service): Use it. (user-processes-service-type): New variable. (user-processes-service): Use it. (host-name-service-type): New variable. (host-name-service): Use it. (console-keymap-service-type): New variable. (console-keymap-service): Use it. (console-font-service-type): New variable. (console-font-service): Use it. (mingetty-pam-service, mingetty-dmd-service): New procedures. (mingetty-service-type): New variable. (mingetty-service): Use it. (nscd-dmd-service): New procedure. (nscd-activation, nscd-service-type): New variables. (nscd-service): Use the latter. (syslog-service-type): New variable. (syslog-service): Use it. (<guix-configuration>): New record type. (%default-guix-configuration): New variable. (guix-dmd-service, guix-accounts, guix-activation): New procedures. (guix-service-type): New variable. (guix-service): Replace list of keyword parameters with a single 'config' parameter. Rewrite using 'service'. (<udev-configuration>): New record type. (udev-dmd-service): New procedure. (udev-service-type): New variable. (udev-service): Use it. (device-mapping-service-type): New variable. (device-mapping-service): Use it. (swap-service-type): New variable. (swap-service): Use it. * gnu/services/databases.scm (<postgresql-configuration>): New record type. (%postgresql-accounts, postgresql-activation): New variables. (postgresql-dmd-service): New procedure. (postgresql-service): Rewrite using 'service' and 'postgresql-configuration'. * gnu/services/dbus.scm: New file. * gnu/services/desktop.scm (dbus-configuration-directory, dbus-service): Remove. (wrapped-dbus-service): New procedure. (<upower-configuration>): New record type. (upower-configuration-file): Replace keyword parameters with single <upower-configuration> parameter. (%upower-accounts, %upower-activation): New variables. (upower-dbus-service, upower-dmd-service): New procedures. (upower-service-type): New variable. (upower-service): Rewrite using 'service' and 'upower-configuration'. (%colord-activation, %colord-accounts): New variables. (colord-dmd-service): New procedure. (colord-service-type): New variable. (colord-service): Rewrite using 'service'. (<geoclue-configuration>): New record type. (geoclue-configuration-file): Replace keyword parameters with a single 'config' parameter. (geoclue-dbus-service, geoclue-dmd-service): New procedures. (%geoclue-accounts, geoclue-service-type): New variables. (geoclue-service): Rewrite using 'service' and 'geoclue-configuration'. (%polkit-accounts, %polkit-pam-services, polkit-service-type): New variables. (polkit-dmd-service): New procedure. (polkit-service): Rewrite using 'service'. (<elogind-configuration>)[elogind]: New field. (elogind-dmd-service): New procedure. (elogind-service-type): New variable. (elogind-service): Rewrite using 'service'. (%desktop-services): Remove argument to 'dbus-service'. Remove 'map' over %BASE-SERVICES. * gnu/services/dmd.scm (dmd-boot-gexp): New procedure. (dmd-root-service-type, %dmd-root-service): New variables. (dmd-service-type): New macro. (<dmd-service>): New record type. * gnu/services/lirc.scm (<lirc-configuration>): New record type. (%lirc-activation): New variable. (lirc-dmd-service): New procedure. (lirc-service-type): New variable. (lirc-service): Rewrite using 'service' and 'lirc-configuration'. * gnu/services/networking.scm (<static-networking>): New record type. (static-networking-service-type): New variable. (static-networking-service): Rewrite using 'service' and 'static-networking'. (dhcp-client-service-type): New variable. (dhcp-client-service): Rewrite using 'service'. (<ntp-configuration>): New record type. (ntp-dmd-service): New procedure. (ntp-service-type): New variable. (ntp-service): New procedure. (%tor-accounts, tor-service-type): New variable. (tor-dmd-service): New procedure. (tor-service): Rewrite using 'service'. (<bitlbee-configuration>): New record type. (bitlbee-dmd-service): New procedure. (%bitlbee-accounts, %bitlbee-activation, bitlbee-service-type): New variables. (bitlbee-service): Rewrite using 'service'. (%wicd-activation): New variable. (wicd-dmd-service): New procedure. (wicd-service-type): New variable. (wicd-service): Rewrite using 'service'. * gnu/services/ssh.scm (<lsh-configuration>): New record type. (activation): Rename to... (lsh-initialization): ... this. (lsh-activation, lsh-dmd-service, lsh-pam-services): New procedures. (lsh-service-type): New variable. (lsh-service): Rewrite using 'service' and 'lsh-configuration'. * gnu/services/web.scm (<nginx-configuration>): New record type. (%nginx-accounts): New variable. (nginx-activation, nginx-dmd-service): New procedures. (nginx-service-type): New variable. (nginx-service): Rewrite using 'service' and 'nginx-configuration'. * gnu/services/xorg.scm (<slim-configuration>): New record type. (slim-pam-service, slim-dmd-service): New procedures. (slim-service-type): New variable. (slim-service): Rewrite using 'service' and 'slim-configuration'. * gnu/system.scm (file-union): Remove. (other-file-system-services): Adjust to new 'file-system-service' signature. (essential-services): Add #:container? parameter. Add %DMD-ROOT-SERVICE, %ACTIVATION-SERVICE, and calls to 'pam-root-service', 'account-service', 'operating-system-etc-service', and a SETUID-PROGRAM-SERVICE instance. (operating-system-services): Pass #:container? to 'essential-services. (etc-directory): Remove. (operating-system-etc-service): New procedure. Rewrite as a call to 'etc-service'. (operating-system-accounts): Change to not return accounts required by services. (operating-system-etc-directory): Rewrite as a call to 'fold-services' and 'etc-directory'. (user-group->gexp, user-account->gexp, modprobe-wrapper): Remove. (operating-system-activation-script): Rewrite as a call to 'fold-services' and 'activation-service->script'. (operating-system-boot-script): Likewise. (operating-system-derivation): Add call to 'lower-object'. (emacs-site-file, emacs-site-directory, shells-file): Change to use 'computed-file' and 'scheme-file' instead of the monadic procedures. * gnu/system/install.scm (cow-store-service-type): New variable. (cow-store-service): Rewrite using 'service'. (/etc/configuration-files): New procedure. (configuration-template-service-type, %configuration-template-service): New variables. (configuration-template-service): Remove. (installation-services): Adjust accordingly. Adjust argument to 'guix-service'. * gnu/system/linux.scm (/etc-entry, pam-root-service): New procedures. (pam-root-service-type): New variable. * gnu/system/shadow.scm (user-group->gexp, user-account->gexp, account-activation, etc-skel, account-service): New procedures. (account-service-type): New variable. * tests/services.scm: New file. * doc/guix.texi (Base Services, Desktop Services): Adjust accordingly. (Defining Services): Rewrite. * doc/images/service-graph.dot: New file. * doc.am (DOT_FILES): Add it. * po/guix/POTFILES.in: Add gnu/services.scm.
* guix system: Add '--derivation'.Ludovic Courtès2015-10-10
| | | | | | | | | * guix/scripts/system.scm (perform-action): Add #:derivations-only? parameter and honor it. (show-help, %options): Add '--derivation'. (guix-system): Pass #:derivations-only? to 'perform-action'. * tests/guix-system.sh: Test it. * doc/guix.texi (Invoking guix system): Document it.
* gexp: Add 'scheme-file'.Ludovic Courtès2015-10-10
| | | | | | | * guix/gexp.scm (<scheme-file>): New record type. (scheme-file, scheme-file-compiler): New procedures. * tests/gexp.scm ("scheme-file"): New test. * doc/guix.texi (G-Expressions): Document 'scheme-file'.
* gexp: Add 'mixed-text-file'.Ludovic Courtès2015-10-10
| | | | | | * guix/gexp.scm (mixed-text-file): New procedure. * tests/gexp.scm ("mixed-text-file"): New test. * doc/guix.texi (G-Expressions): Document it.
* gexp: Add 'program-file'.Ludovic Courtès2015-10-10
| | | | | | | * guix/gexp.scm (<program-file>): New record type. (program-file, program-file-compiler): New procedures. * tests/gexp.scm ("program-file"): New test. * doc/guix.texi (G-Expressions): Document it.
* gexp: Add 'computed-file'.Ludovic Courtès2015-10-10
| | | | | | | * guix/gexp.scm (<computed-file>): New record type. (computed-file, computed-file-compiler): New procedures. * tests/gexp.scm ("lower-object, computed-file"): New test. * doc/guix.texi (G-Expressions): Document 'computed-file'.
* build: container: Fix call-with-clean-exit.David Thompson2015-10-10
| | | | | | | | Before, call-with-clean-exit would *always* return an exit code of 1. * gnu/build/linux-container.scm (call-with-clean-exit): Exit with status code of 0 if thunk does not throw an exception. * tests/containers.scm: Add test.
* scripts: environment: Use system* instead of system.David Thompson2015-10-09
| | | | | | | | | | | | | | | | This allows for direct program invokation without needing a shell to act as a command interpreter. * guix/scripts/environment.scm (%default-shell): New variable. (show-help): Adjust description. Remove '--exec' reference. (%default-options): Use '%default-shell'. (%options): Adjust '--exec' to run command via the default shell. (parse-args): New procedure. (guix-environment): Use 'parse-args'. Use 'system*' instead of 'system'. * tests/guix-environment.sh: Add test for '--' command invokation. * doc/guix.texi ("Invoking guix environment"): Use new syntax. Remove '--exec' documentation.
* utils: Add split procedure.David Thompson2015-10-09
| | | | | * guix/utils.scm (split): New procedure. * tests/utils.scm: Add tests.
* utils: Remove Nixpkgs helpers.Ludovic Courtès2015-10-06
| | | | | | | | | | | * guix/config.scm.in (%nixpkgs): Remove. * guix/utils.scm (%nixpkgs-directory, nixpkgs-derivation, nixpkgs-derivation*): Remove. * test-env.in: Export 'NIXPKGS'. * tests/derivations.scm (%coreutils): Remove use of 'nixpkgs-derivation'. * tests/snix.scm (%nixpkgs-directory): New variable. Adjust users accordingly.
* store: Add 'query-failed-paths' and 'clear-failed-paths' RPCs.Ludovic Courtès2015-09-28
| | | | | | | | | Suggested by Mark H Weaver <mhw@netris.org>. * guix/store.scm (query-failed-paths, clear-failed-paths): New procedures. * tests/guix-daemon.sh: Add test with daemon started with --cache-failures.
* Merge branch 'master' into core-updatesLudovic Courtès2015-09-24
|\
| * ui: Gracefully handle Unicode description strings.Ludovic Courtès2015-09-24
| | | | | | | | | | | | | | | | Fixes <http://bugs.gnu.org/21536>. Reported by Alex Kost <alezost@gmail.com>. * guix/ui.scm (texi->plain-text): Wrap body in 'with-fluids'. * tests/ui.scm ("package-description-string vs. Unicode"): New test.
| * tests: cran: Use cran-uri in expected output.Ricardo Wurmus2015-09-24
| | | | | | | | * tests/cran.scm: Expect output to use "cran-uri" procedure.
* | tests: Unset 'LOCPATH' before running bootstrap program.Ludovic Courtès2015-09-24
| | | | | | | | | | | | | | Reported by Mark H Weaver <mhw@netris.org>. * tests/build-utils.scm ("wrap-program, one input, multiple calls"): Add 'unsetenv' call.
* | tests: Adjust snippet test to '.file_list' hack.Ludovic Courtès2015-09-24
|/ | | | | | | This is a followup to commit 140b4bc. * tests/packages.scm ("package-source-derivation, snippet")[source]: Add 'chmod' call for "..".
* lint: Report lonely parentheses.Ludovic Courtès2015-09-18
| | | | | | | * guix/scripts/lint.scm (%hanging-paren-rx): New variable. (report-lone-parentheses): New procedure. (%formatting-reporters): Use it. * tests/lint.scm ("formatting: lonely parentheses"): New test.
* Add (guix scripts).Alex Kost2015-09-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * guix/ui.scm: Add missing copyright lines. (args-fold*, environment-build-options, %default-argument-handler, parse-command-line): Move to ... * guix/scripts.scm: ...here. New file. * guix/scripts/archive.scm: Use it. * guix/scripts/build.scm: Likewise. * guix/scripts/download.scm: Likewise. * guix/scripts/edit.scm: Likewise. * guix/scripts/environment.scm: Likewise. * guix/scripts/gc.scm: Likewise. * guix/scripts/graph.scm: Likewise. * guix/scripts/hash.scm: Likewise. * guix/scripts/import/cpan.scm: Likewise. * guix/scripts/import/cran.scm: Likewise. * guix/scripts/import/elpa.scm: Likewise. * guix/scripts/import/gem.scm: Likewise. * guix/scripts/import/gnu.scm: Likewise. * guix/scripts/import/hackage.scm: Likewise. * guix/scripts/import/nix.scm: Likewise. * guix/scripts/import/pypi.scm: Likewise. * guix/scripts/lint.scm: Likewise. * guix/scripts/package.scm: Likewise. * guix/scripts/publish.scm: Likewise. * guix/scripts/pull.scm: Likewise. * guix/scripts/refresh.scm: Likewise. * guix/scripts/size.scm: Likewise. * guix/scripts/system.scm: Likewise. * tests/ui.scm (with-environment-variable, "parse-command-line", "parse-command-line and --no options"): Move to ... * tests/scripts.scm: ...here. New file. * Makefile.am (MODULES): Add guix/scripts.scm. (SCM_TESTS): Add tests/scripts.scm. * po/guix/POTFILES.in: Add guix/scripts.scm.
* lint: Add 'check-texinfo-markup' checker.Mathieu Lirzin2015-09-15
| | | | | | * guix/script/lint.scm (check-description-style): Check for invalid Texinfo markup. * tests/lint.scm: Test it.
* guix: lint: Check for meaningful origin file names.Eric Bavier2015-09-14
| | | | | | | | | * guix/scripts/lint.scm (check-source-file-name): New procedure. (%checkers): Add 'source-file-name' checker. * tests/lint.scm ("source-file-name", "source-file-name: v prefix") ("source-file-name: valid", "source-file-name: bad checkout") ("source-file-name: good checkout"): New tests. * doc/guix.texi (Invoking guix lint): Mention file name check.
* guix: packages: Add origin-actual-file-name.Eric Bavier2015-09-14
| | | | | | | | * guix/scripts/graph.scm (uri->file-name, node-full-name): Move origin file name logic to... * guix/packages.scm (origin-actual-file-name): ...here. * tests/packages.scm ("origin-actual-file-name") ("origin-actual-file-name, file-name"): New tests.
* guix: packages: Add transitive-input-references.Eric Bavier2015-09-10
| | | | | | | * guix/packages.scm (transitive-input-references): New procedure. * gnu/packages/version-control.scm (package-transitive-propagated-labels*) (package-propagated-input-refs): Delete. (git)[arguments]: Adjust to transitive-input-references.
* lint: Add 'license' checker.Ludovic Courtès2015-09-06
| | | | | | * guix/scripts/lint.scm (check-license): New procedure. (%checkers): Add 'license' checker. * tests/lint.scm ("license: invalid license"): New test.
* tests: Fix typos.Ludovic Courtès2015-09-05
| | | | | | * tests/derivations.scm ("substitutable-derivation?", "derivation-prerequisites-to-build and substitutes, local build"): Fix harmless typos.
* monads: Fix 'liftN' fallback case.Ludovic Courtès2015-09-04
| | | | | | | | Reported by Andy Wingo <wingo@igalia.com>. * guix/monads.scm (define-lift) <fallback case>: Add missing #'. Remove extra formal parameter. * tests/monads.scm ("lift"): Add test with 'lift1' as a procedure.
* graph: Add '--expression'.Ludovic Courtès2015-09-02
| | | | | | | | * guix/scripts/graph.scm (%options, show-help): Add '--expression'. (guix-graph): Call 'read/eval-package-expression' for 'expression' pairs in OPTS. * tests/guix-graph.sh: Add tests. * doc/guix.texi (Invoking guix graph): Document it.
* import: gem: Fix minor bug and add unit test.David Thompson2015-09-01
| | | | | | | | * guix/import/gem.scm (make-gem-sexp): Properly handle an empty list of licenses. When rendering a list of licenses, cons 'list onto the front of the expression. * tests/gem.scm: New file. * Makefile.am (SCM_TESTS): Add it.
* import: Add 'cran' importer.Ricardo Wurmus2015-08-31
| | | | | | | | | | | | * guix/import/cran.scm: New file. * guix/scripts/import.scm: Add "cran" to 'importers'. * guix/scripts/import/cran.scm: New file. * tests/cran.scm: New file. * Makefile.am (MODULES): Add 'guix/import/cran.scm' and 'guix/scripts/import/cran.scm'. (SCM_TESTS): Add 'tests/cran.scm'. * doc/guix.texi (Invoking guix import): Document it. * po/guix/POTFILES.in: Add 'guix/scripts/import/cran.scm'.
* tests: Skip 'set-network-interface-address' test when running as root.Ludovic Courtès2015-08-27
| | | | | | | | Reported by Eric Hanchrow <eric.hanchrow@gmail.com> in <http://bugs.gnu.org/21354>. * tests/syscalls.scm ("set-network-interface-address"): Skip when (getuid) returns zero.
* Add 'guix graph'.Ludovic Courtès2015-08-27
| | | | | | | | | | | | | | | | | * guix/scripts/graph.scm, tests/graph.scm, tests/guix-graph.sh, doc/images/coreutils-bag-graph.dot, doc/images/coreutils-graph.dot: New files. * Makefile.am (MODULES): Add guix/scripts/graph.scm. (SH_TESTS): Add tests/guix-graph.sh. (SCM_TESTS): Add tests/graph.scm. * doc.am (DOT_FILES, DOT_VECTOR_GRAPHICS): New variables. (EXTRA_DIST): Use them. (dist_infoimage_DATA): Use $(DOT_FILES). (pdf-local, info-local, ps-local): Likewise. * doc/guix.texi (Packages with Multiple Outputs): Add cross-reference to 'guix graph'. (Invoking guix gc): Likewise. (Invoking guix graph): New section.
* gexp: Add 'lower-object'.Ludovic Courtès2015-08-27
| | | | | | | * guix/gexp.scm (lower-object): New procedure. (lower-inputs, lower-references, gexp->sexp): Use it. * tests/gexp.scm ("lower-object"): New test. * doc/guix.texi (G-Expressions): Document it.
* tests: Work around Btrfs handling of nlink for empty directories.Ludovic Courtès2015-08-26
| | | | | | | | | Fixes <http://bugs.gnu.org/21280>. Reported by Leo Famulari <leo@famulari.name>. * tests/nar.scm (file-tree-equal?): Use #t as the initial result. Btrfs would set nlink to 1 instead of 2 for an empty directory, thereby leading 'file-tree-equal?' to return #f.
* scripts: package: Add --install-from-file option.David Thompson2015-08-19
| | | | | | | | | | * guix/scripts/package.scm (show-help): Add help text for --install-from-file option. (%options): Add --install-from-file option. * tests/guix-package.sh: Test it. * doc/guix.texi ("invoking guix package"): Document it. * doc/package-hello.scm: New file. * doc.am (EXTRA_DIST): Add it.
* lint: Add 'formatting' checker.Ludovic Courtès2015-08-19
| | | | | | | | | | | * guix/scripts/lint.scm (report-tabulations, report-trailing-white-space, report-long-line, report-formatting-issues, check-formatting): New procedures. (%formatting-reporters): New variable. (%checkers): Add 'formatting' checker. * tests/lint.scm ("formatting: tabulation", "formatting: trailing white space", "formatting: long line", "formatting: alright"): New tests. * doc/guix.texi (Invoking guix lint): Mention the 'formatting' checker.
* tests: containers: Skip if setgroups file does not exist.David Thompson2015-08-11
| | | | | | | | | | | | Fixes bug #21226. Linux 3.19 introduced a fix for a security vulnerability in user namespaces. This fix introduced a new proc file called 'setgroups' and was backported to many older kernels. However, some users run a kernel that is new enough to support user namespaces yet old enough to not include the patch, so we must skip the tests. * tests/containers.scm: Skip all tests if /proc/self/setgroups does not exist.
* build: container: Add #:host-uids argument to call-with-container.David Thompson2015-08-08
| | | | | | | | | | | | It's not always possible to map 65536 uids when creating a container as the root user within another user namespace. This is true when building Guix within the build daemon's container. By using a uid range of 1 by default, even as the root user, the tests now pass. * gnu/build/linux-container.scm (initialize-user-namespace, run-container): Add 'host-uids' argument. (call-with-container): Add #:host-uids keyword argument. * tests/containers.scm ("container-excursion"): Update 'run-container' call.
* syscalls: Add 'network-interfaces', which wraps libc's 'getifaddrs'.Ludovic Courtès2015-07-25
| | | | | | | | | | | | Based on discussions with Rohan Prinja <rohan.prinja@gmail.com>. * guix/build/syscalls.scm (<interface>): New record type. (write-interface, values->interface, unfold-interface-list, network-interfaces, free-ifaddrs): New procedures. (ifaddrs): New C struct. (%struct-ifaddrs-type, %sizeof-ifaddrs): New macros. * tests/syscalls.scm ("network-interfaces returns one or more interfaces", "network-interfaces returns \"lo\""): New tests.
* syscalls: Rename 'network-interfaces' and 'all-network-interfaces'.Ludovic Courtès2015-07-25
| | | | | | | | | | | | * guix/build/syscalls.scm (network-interfaces): Rename to... (network-interface-names): ... this. (all-network-interfaces): Rename to... (all-network-interface-names): ... this. * gnu/services/networking.scm (dhcp-client-service): Adjust accordingly. * tests/syscalls.scm ("all-network-interfaces"): Rename to... ("all-network-interface-names"): ... this, and adjust accordingly. ("network-interfaces"): Rename to... ("network-interface-names"): ... this, and adjust accordingly.
* tests: Skip container tests if namespaces are not available.David Thompson2015-07-20
| | | | * tests/containers.scm: Skip all tests if user namespaces do not exist.
* tests: Make #:references-graphs gexp test more tolerant.Ludovic Courtès2015-07-20
| | | | | | * tests/gexp.scm ("gexp->derivation #:references-graphs"): Use 'lset=' instead of 'equal?' since the order in which references are listed in not guaranteed.
* Merge branch 'master' into core-updatesMark H Weaver2015-07-19
|\
| * tests: Fix 'publish' test for nix-base32 format.Alex Kost2015-07-18
| | | | | | | | | | | | | | This is a followup to commit 3b307162e892e0050836434b12e14376758419cc. * tests/publish.scm ("/*.narinfo"): Use 'bytevector->nix-base32-string', not 'bytevector->base32-string'.
| * file-systems: 'uuid' raises a syntax error for invalid UUIDs.Ludovic Courtès2015-07-16
| | | | | | | | | | | | * gnu/system/file-systems.scm (uuid): Call 'syntax-violation' when 'string->uuid' returns #f. * tests/file-systems.scm ("uuid, syntax error"): New test.
* | Merge branch 'master' into core-updatesMark H Weaver2015-07-15
|\|
| * file-systems: Allow users to specify file system UUIDs as strings.Ludovic Courtès2015-07-14
| | | | | | | | | | | | | | | | | | | | | | | | Fixes <http://bugs.gnu.org/19778>. Reported by Mark H Weaver <mhw@netris.org>. * gnu/system/file-systems.scm (%uuid-rx): New variable. (string->uuid): New procedure. (uuid): New macro. * tests/file-systems.scm: New file. * Makefile.am (SCM_TESTS): Add it. * doc/guix.texi (File Systems): Give an example of UUID.
| * substitute: Honor "substitute-urls" option passed by "untrusted" clients.Ludovic Courtès2015-07-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * guix/scripts/substitute.scm (or*): New macro. (%cache-url): Honor "untrusted-substitute-urls". * guix/tests.scm (%test-substitute-urls): New variable. (open-connection-for-tests): Use it. * tests/derivations.scm ("derivation-prerequisites-to-build and substitutes", "derivation-prerequisites-to-build and substitutes, non-substitutable build", "derivation-prerequisites-to-build and substitutes, local build"): Pass it to 'set-build-options'. * tests/guix-daemon.sh: Likewise. * tests/store.scm ("substitute query, alternating URLs"): New test. ("substitute query", "substitute", "substitute + build-things with output path", "substitute, corrupt output hash", "substitute --fallback"): Pass #:substitute-urls to 'set-build-options'.
| * substitute: Store cached narinfo in cache-specific sub-directories.Ludovic Courtès2015-07-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This ensures that switching between different substitute servers doesn't lead to a polluted narinfo cache. * guix/scripts/substitute.scm (narinfo-cache-file): Add 'cache-url' parameter. Add the base32 of CACHE-URL as a sub-directory under %NARINFO-CACHE-DIRECTORY. Update callers. (cached-narinfo): Likewise. Call 'mkdir-p' on the dirname of the cache file. Update callers. (remove-expired-cached-narinfos): Add 'directory' parameter and use it instead of %NARINFO-CACHE-DIRECTORY. (narinfo-cache-directories): New procedure. (maybe-remove-expired-cached-narinfo): Call 'remove-expired-cached-narinfos' for each item returned by 'narinfo-cache-directories'.
| * tests: Skip namespace-related tests when that feature is missing.Ludovic Courtès2015-07-10
| | | | | | | | | | * tests/syscalls.scm ("clone", "setns", "pivot-root"): Skip unless (user-namespace (getpid)) exists.
* | packages: Rewrite 'transitive-inputs' to be linear and remove duplicates.Ludovic Courtès2015-07-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There were two issues: 1. Use of 'delete-duplicates', which is quadratic, was a serious problem for closures with lots of propagated inputs, such as that of the 'hydra' package (several minutes for 'guix build hydra -n'!). 2. The 'delete-duplicates' call essentially had no effect since duplicate inputs typically had a different label and were thus kept. For instance, (bag-transitive-inputs (package->bag inkscape)) would return 216 items whereas (delete-duplicates (map cdr THAT)) contains only 67 items. The new implementation returns 67 items in this case. For 'hydra', we're down from 42211 items to 361, and roughly 13s for 'guix build hydra'. * guix/packages.scm (transitive-inputs): Rewrite as a breadth-first traversal. Remove duplicate propagated inputs. * tests/packages.scm ("package-transitive-inputs", "package->bag, propagated inputs"): Adjust to use simple labels for propagated inputs, without "/". ("package-transitive-inputs, no duplicates"): New test.
* | tests: Adjust tests for new bootstrap Guile.Ludovic Courtès2015-07-12
|/ | | | | | | | | This is a followup to commit 5d6792f ("gnu: bootstrap: Create a wrapper for guile to set the system load path.") * tests/size.scm ("store-profile"): Expect profile of 'bash' bootstrap binary. * tests/gexp.scm ("gexp->derivation #:references-graphs"): Expect GUILE-DRV to depend on 'bash' bootstrap binary.