summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
2016-11-16daemon: Add "builtin:download" derivation builder....This ensures that 1) the derivation doesn't change when Guix changes; 2) the derivation closure doesn't contain Guix and its dependencies; 3) we don't have to rely on ugly chroot hacks. Adapted from Nix commit 0a2bee307b20411f5b0dda0c662b1f9bb9e0e131. * nix/libstore/build.cc (DerivationGoal::runChild): Add special case for 'isBuiltin(drv)'. Disable chroot when 'isBuiltin(drv)'. * nix/libstore/builtins.cc, nix/libstore/builtins.hh, nix/scripts/download.in, guix/scripts/perform-download.scm: New files. * guix/ui.scm (show-guix-help)[internal?]: Add 'perform-download'. * nix/local.mk (libstore_a_SOURCES): Add builtins.cc. (libstore_headers): Add builtins.hh. (nodist_pkglibexec_SCRIPTS): Add 'scripts/download'. * config-daemon.ac: Emit 'scripts/download'. * Makefile.am (MODULES): Add 'guix/scripts/perform-download.scm'. * tests/derivations.scm ("unknown built-in builder") ("'download' built-in builder") ("'download' built-in builder, invalid hash") ("'download' built-in builder, not found") ("'download' built-in builder, not fixed-output"): New tests. Co-authored-by: Eelco Dolstra <eelco.dolstra@logicblox.com> Ludovic Courtès
2016-11-16tests: Move HTTP server to (guix tests http)....* tests/lint.scm (%http-server-port, %local-url) (%http-server-socket, http-write, %http-server-lock) (%http-server-ready, http-open, stub-http-server) (call-with-http-server, with-http-server): Move to (guix tests http). Adjust tests for %HTTP-SERVER-SOCKET as a promise and %LOCAL-URL as a parameter. * guix/tests/http.scm: New file. * Makefile.am (dist_noinst_DATA): Add it. (GOBJECTS): Add .go files for all of $(dist_noinst_DATA). (make-go): Depend on $(dist_noinst_DATA). Ludovic Courtès
2016-11-16guix download: Add '-o' option....* guix/scripts/download.scm (download-to-file, download-to-store*): New procedures. (%default-options): Add 'download-proc'. (show-help): Adjust description and document '-o'. (%options): Add '-o'. (guix-download): Remove 'store' variable. Add 'fetch' and define 'path' to as its result. * tests/guix-download.sh: Add test. Ludovic Courtès
2016-11-15guxi: cmake-build-system: Enable output for failing test-cases....* guix/build/cmake-build-system.scm (cmake-build-system): Set environment variable CTEST_OUTPUT_ON_FAILURE to an non-empty value. Hartmut Goebel
2016-11-15lint: more packages to probably be a native input....* guix/scripts/lint.scm (check-inputs-should-be-native package): Add python packages which are typically used for testing or for building the documentation. Hartmut Goebel
2016-11-15guix: Add lint-checker for packages which should be no inputs at all....Also refactor some common code into a new function. Examples for these pacakges are python(2)-setuptools and python(2)-pip, which are installed together with python itself. * guix/scripts/lint.scm (warn-if-package-has-input): New procedure. (check-inputs-should-be-native package): Use it; rename and clean-up variables. (check-inputs-should-not-be-an-input-at-all): New procedure. (%checkers) Add it. * doc/guix.texi (Python Modules): Document it. * tests/lint.scm: ("inputs: python-setuptools should not be an input at all (input)", "inputs: python-setuptools should not be an input at all (native-input)" "inputs: python-setuptools should not be an input at all (propagated-input)"): Add tests. Hartmut Goebel
2016-11-15guix: python-build-system: Add background about Python installation methods.Hartmut Goebel
2016-11-15guix: python-build-system: Delete .egg-info file created in phase check....* guix/build/python-build-system.scm (check): Delete .egg-info dirs which did not exist prior to calling setup.py but afterwards. Hartmut Goebel
2016-11-15guix: python-build-system: Add helpers for getting and setting PYTHONPATH....* guix/build/python-build-system.scm (add-installed-pythonpath, site-packages): New exported procedures. Hartmut Goebel
2016-11-15guix: python-build-system: Add option "#:use-setuptools?" (default true)....* guix/build-system/python.scm (python-build): New keyword argument "#:use-setuptools?", defaulting to #t. * guix/build/python-build-system.scm (call-setup-py): New positional parameter "use-setuptools?". If false, do not use the shim-wrapper for addin setuptools. (build, check): accept keyword- parameter, and pass to call-setuppy. (install): same; if "use-setuptools?" is false, do not use options "--root" and "--single-version-externally-managed" for setup.py. * doc/guix.texi (Build Systems): Document it. Hartmut Goebel
2016-11-15guix: python-build-system: Import setuptools before calling `setup.py'....This is needed for packages using "distutils" instead of "setuptools" since the former does not understand the "--single-version-externally-managed" flag. Also export __file__ since it will be unset when setup.py is called from python "exec". * guix/build/python-build-system.scm (call-setuppy): extend "python setup.py" call to import setuptools, export __file__, and call setup.py from setuptools python environment. Co-Authored-By: Hartmut Goebel <h.goebel@crazy-compilers.com> Marius Bakke
2016-11-15guix: build all Python packages with --single-version-externally-managed....This requires setuptools to be installed together with python, which is the case for Python 3 anyway and which we do for our build of Python 2 (see last commit). * guix/build/python-build-system.scm (install): Add "--single-version-externally-managed" and "--root=/" to params to be passed to call-setuppy. Remove thus needless manipulation of PYTHONPATH. Remove now unused argument "inputs". Hartmut Goebel
2016-11-15guix: python-build-system: Fix an outdated comment.Hartmut Goebel
2016-11-14import/cpan: Maybe coerce version to string....* guix/import/cpan.scm (cpan-module->sexp) <version>: Test if version in meta is string or number. If it is number, coerce to string. Alex Sassmannshausen
2016-11-13Merge branch 'core-updates'Ludovic Courtès
2016-11-12substitute: Disable HTTPS certificate verification....Fixes a regression introduced in 9e4e431e049fae3f1121c3be22cf13b174404ba8 as a consequence of bc3c41ce36349ed4ec758c70b48a7059e363043a. Reported by Marius Bakke <mbakke@fastmail.com>. * guix/scripts/substitute.scm (fetch): Pass #:verify-certificate? #f to 'open-connection-for-uri' and 'http-fetch'. (download-cache-info): Likewise. (http-multiple-get): Add #:verify-certificate? and honor it. (fetch-narinfos): Pass #:verify-certificate? #f. Ludovic Courtès
2016-11-12http-client: Add #:verify-certificate? to 'http-fetch'....* guix/http-client.scm (http-fetch): Add #:verify-certificate? parameter and pass it to 'open-connection-for-uri'. Ludovic Courtès
2016-11-10container: Pass a list of <file-system> objects as things to mount....* gnu/build/linux-container.scm (mount-file-systems): 'mounts' is now a list of <file-system> objects instead of a list of lists ("specs"). Add call to 'file-system->spec' as the argument to 'mount-file-system'. (run-container, call-with-container): Adjust docstring accordingly. * gnu/system/file-systems.scm (spec->file-system): New procedure. * gnu/system/linux-container.scm (container-script)[script]: Call 'spec->file-system' inside gexp. * guix/scripts/environment.scm (launch-environment/container): Remove call to 'file-system->spec'. * tests/containers.scm ("call-with-container, mnt namespace") ("call-with-container, mnt namespace, wrong bind mount"): Pass a list of <file-system> objects. Ludovic Courtès
2016-11-09lint: 'cve' checker catches 'tls-certificate-error'....Reported by Frederick Muriithi <fredmanglis@gmail.com>. * guix/scripts/lint.scm (tls-certificate-error-string): New procedure. (validate-uri): Use it. (current-vulnerabilities*): Catch 'tls-certificate-error' and print a warning. Ludovic Courtès
2016-11-08system: Use grub from bootloader configuration....* gnu/system/grub.scm (gnu): Export grub-configuration-grub. * guix/scripts/system.scm (perform-action): Use it. (define-module): Don't import (gnu packages grub). Co-authored-by: Danny Milosavljevic <dannym@scratchpost.org> Marius Bakke
2016-11-07guix download: Add '--no-check-certificate' option....* guix/download.scm (download-to-store): Add #:verify-certificate? parameter and honor it. * guix/scripts/download.scm (%default-options): Add 'verify-certificate?' key. (show-help, %options): Add '--no-check-certificate'. (guix-download): Pass #:verify-certificate to 'download-to-store'. * doc/guix.texi (Invoking guix download): Document it. Ludovic Courtès
2016-11-07download: Verify TLS certificates unless asked not to....Fixes <http://bugs.gnu.org/24466>. Reported by Leo Famulari <leo@famulari.name>. * guix/build/download.scm (%x509-certificate-directory): New variable. (make-credendials-with-ca-trust-files, peer-certificate) (assert-valid-server-certificate, print-tls-certificate-error): New procedures. Add 'print-tls-certificate-error' as an exception printer for 'tls-certificate-error'. (tls-wrap): Add #:verify-certificate? parameter and honor it. (open-connection-for-uri): Likewise. (http-fetch): Likewise. (url-fetch): Likewise. * guix/download.scm (url-fetch)[builder]: Pass #:verify-certificate? #f. * guix/scripts/lint.scm (probe-uri): Add case for 'tls-certificate-error'. (validate-uri): Likewise. * doc/guix.texi (Invoking guix download): Mention 'SSL_CERT_DIR'. Ludovic Courtès
2016-11-07Merge branch 'master' into core-updatesMark H Weaver
2016-11-06system: Add 'guix system' actions: switch-generation and roll-back....* guix/scripts/system.scm (roll-back-system, switch-to-system-generation): new actions. (reinstall-grub): New procedure, used by switch-to-system-generation. (show-help, process-command, guix-system): Honor the new actions. * doc/guix.texi (Invoking guix system) <switch-generation, roll-back>: Add the new actions. <reconfigure>: In the footnote, mention that the new actions also only work on GuixSD. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Chris Marusich
2016-11-06system: Optionally limit the entries returned by profile-grub-entries....* guix/scripts/system.scm (profile-grub-entries): Add an optional parameter which allows the caller to limit the number of returned grub entries. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Chris Marusich
2016-11-06system: Rename previous-grub-entries to profile-grub-entries....* guix/scripts/system.scm (previous-grub-entries, profile-grub-entries): Rename previous-grub-entries to profile-grub-entries to indicate that it is stateful and returns the entries for all profile generations, not just the previous ones. Update all callers. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Chris Marusich
2016-11-06profiles: Extract a procedure for getting relative generation numbers....* guix/profiles.scm (relative-generation-spec->number): New procedure. * guix/scripts/package.scm (switch-generation-action): Use it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Chris Marusich
2016-11-06Merge branch 'master' into core-updatesMark H Weaver
2016-11-03import: cran: Fix off-by-one error....* guix/import/cran.scm (package->upstream-name): Do not include leading slash in upstream name URL. Ricardo Wurmus
2016-11-02Merge branch 'master' into core-updatesLeo Famulari
2016-11-01guix: Update hackage mirror....* guix/download.scm (%mirrors)[hackage]: Don't use https. Efraim Flashner
2016-11-01licenses: Export fdl1.2+....This is a follow-up to 59b2034787909cf7efa4e8d672a815b466d7d09d. * guix/licenses.scm (define-module): Export fdl1.2+. Marius Bakke
2016-10-31download: Add Hackage mirrors....* guix/download.scm [%mirrors]: Add Hackage mirrors. Federico Beffa
2016-10-30Merge branch 'master' into core-updatesLeo Famulari
2016-10-30system: Record store file system info in each generation....* gnu/system.scm (<boot-parameters>)[store-device, store-mount-point]: New fields. (read-boot-parameters): Initialize them. (operating-system-grub.cfg): Likewise. Remove STORE-FS argument from call to 'grub-configuration-file'. (operating-system-parameters-file): Add 'store' element in 'boot-parameters'. * gnu/system/grub.scm (strip-mount-point): Replace 'store-fs' parameter by 'mount-point'; adjust accordingly. Adjust callers. (<menu-entry>)[device, device-mount-point]: New fields. (eye-candy): Replace 'root-fs' parameter by 'store-device'; add 'store-mount-point'. Use keyword arguments for 'system' and 'port'. (grub-root-search): Remove 'root-fs' by 'device' and adjust accordingly. (grub-configuration-file): Remove 'store-fs' parameter. Adjust accordingly. * guix/scripts/system.scm (previous-grub-entries): Initialize 'device' and 'device-mount-point' fields from PARAMS. * doc/guix.texi (GRUB Configuration): Document 'device' and 'device-mount-point'. Explain that 'linux' can be prefixed by a GRUB device name. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Chris Marusich
2016-10-30profiles: manifest-lookup-package: Cosmetic changes....* guix/profiles.scm (manifest-lookup-package): Rename variables; use "string=?" instead of "equal?". Ricardo Wurmus
2016-10-29Merge branch 'master' into core-updatesLeo Famulari
2016-10-28guix hash: Interpret '-' as standard input....* guix/scripts/hash.scm (guix-hash)[file-hash]: Special-case "-". * tests/guix-hash.sh: Add test. * doc/guix.texi (Invoking guix hash): Document it. Ludovic Courtès
2016-10-26Merge branch 'master' into core-updatesLeo Famulari
2016-10-26guix package: Display generation diffs....* guix/ui.scm (display-profile-content-diff): New variable. * guix/scripts/package.scm (process-query): Use display-profile-content-diff. In collaboration with Benz Schenk. Roel Janssen
2016-10-26import cran: Use URL for Bioconductor 3.4....* guix/import/cran.scm (%bioconductor-svn-url): Update to release URL for version 3.4. Ricardo Wurmus
2016-10-23Merge branch 'master' into core-updatesMark H Weaver
2016-10-23import: pypi: All inputs are propagated-inputs by default....* guix/import/pypi.scm (maybe-inputs): Return inputs as "propagated-inputs". Hartmut Goebel
2016-10-20gnu-maintenance: GNOME updater honors 'upstream-name' package property....* guix/gnu-maintenance.scm (latest-gnome-release)[upstream-name]: New variable. Use it as the first argument to 'latest-ftp-release' and when constructing #:directory. * gnu/packages/gnome.scm (gconf)[properties]: New field. (network-manager)[properties]: New field. Ludovic Courtès
2016-10-19Merge branch 'master' into core-updatesMark H Weaver
2016-10-19Use (ice-9 binary-ports) instead of (rnrs io ports)....This reduces the closure of (guix ui) from 123 to 106 modules. * guix/derivations.scm: Use (ice-9 binary-ports) instead of (rnrs io ports). (map-derivation)[substitute-file]: Use 'read-string' instead of 'get-string-all'. * guix/ftp-client.scm: Likewise. * guix/hash.scm: Likewise. * guix/http-client.scm: Likewise. * guix/pki.scm (ensure-acl, current-acl): Likewise. * guix/scripts/archive.scm (authorize-key)[read-key]: Likewise. * guix/scripts/authenticate.scm (read-canonical-sexp) (read-hash-data): Likewise. * guix/scripts/download.scm: Likewise. * guix/scripts/offload.scm (register-gc-root, remove-gc-roots) (send-files): Likewise. * guix/scripts/publish.scm (lazy-read-file-sexp): Likewise. * guix/scripts/refresh.scm: Likewise. * guix/scripts/substitute.scm (check-acl-initialized): Likewise. * guix/serialization.scm (read-maybe-utf8-string): Likewise. * guix/scripts/hash.scm (guix-hash): Use 'force-output' instead of 'flush-output-port'. * guix/store.scm (process-stderr): Likewise. * guix/tests.scm: Likewise. * guix/utils.scm: Use (ice-9 binary-ports) and autoload (rnrs io ports) for 'make-custom-binary-input-port'. Ludovic Courtès
2016-10-19lint: Suggest @code instead of quotes....* guix/scripts/lint.scm (%quoted-identifier-rx): New variable. (check-description-style)[check-quotes]: New procedure. Use it. * tests/lint.scm ("description: suggest ornament instead of quotes"): New test. Ludovic Courtès
2016-10-17grafts: Remove unnecessary 'umask' call....This is a followup to d72267863382041b84a9712eea354882be72ef55. * guix/build/graft.scm (rewrite-directory): Remove 'umask' call. Ludovic Courtès
2016-10-17grafts: Apply the right grafts in the presence of multiple outputs....Fixes <http://bugs.gnu.org/24712>. * guix/grafts.scm (cumulative-grafts): Add grafts for all the outputs of DRV. * tests/grafts.scm ("graft-derivation, replaced derivation has multiple outputs"): New test. Ludovic Courtès
2016-10-17guix build: Add '--with-graft'....* guix/scripts/build.scm (transform-package-inputs/graft): New procedure. (%transformations): Add 'with-graft'. (%transformation-options): Likewise. (show-transformation-options-help): Document it. * tests/scripts-build.scm ("options->transformation, with-graft"): New test. * doc/guix.texi (Package Transformation Options): Document it. Ludovic Courtès