summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2016-08-02guix system: Fix the Shepherd error handling fix.Ludovic Courtès
This is a followup to aa1e73a996ad170fecac848f203528aeb3d2173e. * guix/scripts/system.scm (with-shepherd-error-handling): Return two values when an exception is caught.
2016-08-02guix system: Properly report Shepherd errors when upgrading services.Ludovic Courtès
Fixes regression introduced in 8bf92e3904cb656d4c2160fc8befebaf21a65492. Reported by myglc2 <myglc2@gmail.com> in <http://bugs.gnu.org/24135>. * guix/scripts/system.scm (with-shepherd-error-handling): Rename 'body' to 'mbody'. Expand to a monadic procedure that runs MBODY.
2016-08-02lint: 'inputs-should-be-native' checks for extra-cmake-modules and qttools.David Craven
* guix/scripts/lint.scm (check-inputs-should-be-native): Warn when extra-cmake-modules or qttools isn't a native-input.
2016-08-02gnu-maintenance: Add KDE updater.David Craven
* guix/gnu-maintenance.scm (kde-package?, latest-kde-release): New private functions. (%kde-updater): New public variable. * guix/scripts/refresh.scm (list-updaters): Add %kde-updater. * doc/guix.texi (Invoking guix refresh): Mention the new updater.
2016-08-02download: Add KDE mirrors.David Craven
* guix/download.scm (%mirrors)[kde]: Add kde mirrors.
2016-08-01Merge branch 'core-updates'Ludovic Courtès
2016-08-01publish: Do not compress already-compressed files.Ludovic Courtès
* guix/scripts/publish.scm (narinfo-string): Force %NO-COMPRESSION when STORE-PATH matches 'compressed-file?'. * guix/utils.scm (compressed-file?): New procedure. * tests/publish.scm ("/*.narinfo for a compressed file"): New test.
2016-07-30emacs: Disable grafts when dry-run is enabled.Alex Kost
* emacs/guix-main.scm (process-package-actions): Set grafting according to 'dry-run?'. * guix/scripts.scm (build-package): Disable grafts when 'dry-run?' is #t. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2016-07-29size: Fix corner case with multiple items on the command line.Ludovic Courtès
Fixes 'guix size foo bar' when 'foo' is in the local store and 'bar' isn't, which could lead to an incomplete requisite list. * guix/scripts/size.scm (requisites*): Partition ITEMS according to 'valid-path?'. Use 'substitutable-requisites' only on invalid items.
2016-07-28guix package: Suggest prefix search path settings.Ludovic Courtès
* guix/scripts/package.scm (build-and-use-profile): Pass #:kind 'prefix to 'display-search-paths'.
2016-07-28packages: Add 'hidden-package'.Ludovic Courtès
* guix/packages.scm (hidden-package, hidden-package?): New procedures. * gnu/packages.scm (fold-packages): Filter out 'hidden-package?'. * tests/packages.scm ("hidden-package"): New test.
2016-07-27zlib: Protect against non-empty port internal buffers.Ludovic Courtès
* guix/zlib.scm (make-gzip-input-port)[gzfile]: Error out if (drain-input port) returns a non-empty string. * guix/zlib.scm (make-gzip-output-port)[gzfile]: Call 'force-output'.
2016-07-27zlib: Clarify when 'gzread!' can return zero.Ludovic Courtès
* guix/zlib.scm (gzread!): Augment docstring to clarify when zero is returned (based on reading zlib code). (make-gzip-input-port)[read!]: Remove scary comment.
2016-07-26profiles: Output in 'package->manifest-entry' defaults to "out".Ludovic Courtès
Fixes <http://bugs.gnu.org/24029>. Reported by Dylan Jeffers <sapientech@openmailbox.org>. * guix/profiles.scm (package->manifest-entry): Change #:output to default to "out". (packages->manifest): Add 'package?' in second 'match' clause. * tests/profiles.scm ("package->manifest-entry defaults to \"out\""): New test.
2016-07-26environment: Set 'GUIX_ENVIRONMENT' to the profile.Ludovic Courtès
* guix/scripts/environment.scm (create-environment): Set 'GUIX_ENVIRONMENT' to PROFILE. * tests/guix-environment.sh: Test it. * doc/guix.texi (Invoking guix environment): Document it.
2016-07-26import: pypi: Correctly handle new-style URLs.Ludovic Courtès
Fixes <http://bugs.gnu.org/23997>. * guix/import/pypi.scm (guix-package->pypi-name): Rewrite using 'basename' and 'hyphen-package-name->name+version'. * tests/pypi.scm ("guix-package->pypi-name, old URL style") ("guix-package->pypi-name, new URL style"): New tests.
2016-07-25profiles: Add fonts-dir-file hook.Alex Kost
* guix/profiles.scm (fonts-dir-file): New procedure. (%default-profile-hooks): Add it.
2016-07-24lint: 'inputs-should-be-native' checks for intltool, itstool and glib:bin.David Craven
* guix/scripts/lint.scm (check-inputs-should-be-native): Warn when intltool, itstool or glib:bin isn't a native-input. * tests/lint.scm (inputs: glib:bin is probably a native input): Add test. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2016-07-24download: Add SourceForge load balancer.Alex Griffin
* guix/download.scm (%mirrors)[sourceforge]: Add canonical load balancer for sourceforge.net. Signed-off-by: Leo Famulari <leo@famulari.name>
2016-07-20pull: Install (guix config) module to override the user's one.Ludovic Courtès
* build-aux/build-self.scm (zlib, gzip, bzip2, xz): New variables. (build)[storedir, localstatedir, sysconfdir, sbindir]: New variables. [builder]: Pass them to 'build-guix'. * guix/build/pull.scm (build-guix): Add #:system, #:storedir, #:localstatedir, #:sysconfdir, #:sbindir, #:package-name, #:package-version, #:bug-report-address, #:home-page-url, #:libgcrypt, #:zlib, #:gzip, #:bzip2, and #:xz. Remove #:gcrypt. Instantiate all the substitution variables in (guix config). Remove code to delete OUT/guix/config.{scm,go}. * guix/config.scm.in: Add note about (guix script pull).
2016-07-20config: Export the raw installation directories.Ludovic Courtès
* guix/config.scm.in (%storedir, %localstatedir) (%sysconfdir, %sbindir): New variables. (%store-directory): Use %STOREDIR. (%state-directory): Use %LOCALSTATEDIR. (%config-directory): Use %SYSCONFDIR. (%guix-register-program): Use %SBINDIR.
2016-07-20download: Prepare to support the 'guix publish' /file URLs.Ludovic Courtès
* guix/download.scm (%content-addressed-mirrors): Add 'file' parameter to the lambda. * guix/build/download.scm (url-fetch)[content-addressed-uris]: Adjust accordingly.
2016-07-20publish: Handle '/file' URLs, for content-addressed files.Ludovic Courtès
* guix/scripts/publish.scm (render-content-addressed-file): New procedure. (http-write): Add 'application/octet-stream' case. (make-request-handler): Add /file/NAME/sha256/HASH URLs. * tests/publish.scm ("/file/NAME/sha256/HASH") ("/file/NAME/sha256/INVALID-NIX-BASE32-STRING") ("/file/NAME/sha256/INVALID-HASH"): New tests. * doc/guix.texi (Invoking guix publish): Mention the /file URLs.
2016-07-20derivations: Export 'fixed-output-path'.Ludovic Courtès
* guix/derivations.scm (fixed-output-path): Change 'output', 'hash-algo', and 'recursive?' to keyword parameters. Export. (derivation): Adjust accordingly.
2016-07-19publish: Keep compression disabled when zlib is missing.Ludovic Courtès
Reported by David Thompson. * guix/scripts/publish.scm (%options)[--compression]: Warn if LEVEL > 0 and zlib is missing, and return RESULT.
2016-07-19publish: Add '--compression'.Ludovic Courtès
* guix/scripts/publish.scm (show-help, %options): Add '--compression'. (<compression>): New record type. (%no-compression, %default-gzip-compression): New variables. (%default-options): Add 'compression' key. (narinfo-string): Add #:compression parameter and honor it. (render-narinfo): Likewise. (render-nar): Likewise. <top level>: Add call to 'declare-header!'. (swallow-zlib-error): New macro. (nar-response-port): New procedure. (http-write): Add call to 'force-output'. Use 'nar-response-port' instead of 'response-port'. Use 'swallow-zlib-error'. (make-request-handler): Add #:compression parameter and honor it. Add "nar/gzip" URL handler. (run-publish-server): Add #:compression parameter and honor it. (guix-publish): Honor --compression. * tests/publish.scm (http-get-port, wait-until-ready): New procedures. <top level>: Run main server with "-C0". Call 'wait-until-ready'. ("/nar/gzip/*", "/*.narinfo with compression"): New tests. * doc/guix.texi (Invoking guix publish): Document it.
2016-07-19Add (guix zlib).Ludovic Courtès
* guix/zlib.scm, tests/zlib.scm: New files. * Makefile.am (MODULES): Add guix/zlib.scm. (SCM_TESTS): Add tests/zlib.scm. * m4/guix.m4 (GUIX_LIBGCRYPT_LIBDIR): New macro. * configure.ac (LIBGCRYPT_LIBDIR): Use it. Define and substitute 'LIBZ'. * guix/config.scm.in (%libz): New variable.
2016-07-16guix gc: Display of saved space for garbage collection.Vincent Legoll
Fixes <http://bugs.gnu.org/23979>. * guix/scripts/gc.scm (guix-gc): Display freed bytes. Signed-off-by: Vincent Legoll <vincent.legoll@idgrilles.fr> Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2016-07-16build: Substitute URLs now default to "mirror.hydra.gnu.org" alone.Ludovic Courtès
* config-daemon.ac: Remove "hydra.gnu.org" from 'guix_substitute_urls'. * guix/store.scm (%default-substitute-urls): Remove "hydra.gnu.org".
2016-07-14records: Improve reporting of invalid field specifiers.Ludovic Courtès
Fixes <http://bugs.gnu.org/23969>. Reported by Vincent Legoll <vincent.legoll@gmail.com>. * guix/records.scm (report-invalid-field-specifier): New procedure. * tests/records.scm ("define-record-type* & wrong field specifier"): New test.
2016-07-14challenge: Disable grafting.Ludovic Courtès
* guix/scripts/challenge.scm (guix-challenge): Set %GRAFT? to #f.
2016-07-14substitute: Gracefully handle trailing slashes in URLs.Ludovic Courtès
Previously, using something like "--substitute-urls=http://example.org///" would lead to a 'cache-narinfo!' call with #f as its second argument. It would also do the wrong thing for URLs with a non-empty initial path component, such as "http://example.org/foo/bar". * guix/scripts/substitute.scm (fetch-narinfos)[handle-narinfo-response]: Add call to 'basename' for PATH.
2016-07-13lint: 'validate-uri' reports suspiciously small 200 responses.Ludovic Courtès
* guix/scripts/lint.scm (validate-uri): Upon 200 http-response, check the 'response-content-length' and emit a warning when it is <= 1000. * tests/lint.scm (call-with-http-server): Add 'data' parameter. (with-http-server): Likewise. (%long-string): New variable. ("home-page: 200"): Pass %LONG-STRING to 'with-http-server'. ("home-page: 404", "source: 200", "source: 404"): Likewise. ("home-page: 200 but short length"): New test. ("source: 200 but short length"): New test.
2016-07-13download: Attempt to update SourceForge mirror URLs.Ludovic Courtès
* guix/download.scm (%mirrors)[sourceforge]: End in "/project" instead of "/sourceforge". Remove a couple of dangling URLs.
2016-07-12packages: <origin> no longer has an 'imported-modules' field.Ludovic Courtès
* guix/packages.scm (<origin>)[imported-modules]: Remove. (patch-and-repack): Remove #:imported-modules. Use 'with-imported-modules'. Remove #:modules argument to 'gexp->derivation'. (origin->derivation): Adjust accordingly. * doc/guix.texi (origin Reference): Adjust accordingly.
2016-07-12gexp: Remove more uses of #:modules.Ludovic Courtès
* guix/scripts/system.scm (switch-to-system): Adjust comment. * tests/gexp.scm ("gexp->derivation #:references-graphs"): Use 'with-imported-modules' instead of #:modules. * tests/grafts.scm ("graft-derivation, preserve empty directories"): Likewise.
2016-07-12gexp: 'program-file' and 'gexp->script' no longer have #:modules.Ludovic Courtès
* guix/gexp.scm (<program-file>)[modules]: Remove. (program-file): Remove #:modules and adjust accordingly. (program-file-compiler): Likewise. (gexp->script): Likewise.
2016-07-12gexp: 'computed-file' no longer has a #:modules parameter.Ludovic Courtès
* guix/gexp.scm (<computed-file>)[modules]: Remove. (computed-file): Remove #:modules. (computed-file-compiler): Likewise. * doc/guix.texi (G-Expressions): Adjust accordingly.
2016-07-12download: Use 'with-imported-modules'.Ludovic Courtès
* guix/cvs-download.scm (cvs-fetch): Use 'with-imported-modules' instead of the #:modules argument of 'gexp->derivation'. * guix/download.scm (url-fetch): Likewise. * guix/git-download.scm (git-fetch): Likewise. * guix/hg-download.scm (hg-fetch): Likewise. * guix/svn-download.scm (svn-fetch): Likewise.
2016-07-12profiles: Use 'with-imported-modules'.Ludovic Courtès
* guix/profiles.scm (info-dir-file): Use 'with-imported-modules' instead of the #:module argument to 'gexp->derivation'. (ghc-package-cache-file): Likewise. (ca-certificate-bundle): Likewise. (gtk-icon-themes): Likewise. (xdg-desktop-database): Likewise. (xdg-mime-database): Likewise. (profile-derivation): Likewise.
2016-07-12gexp: 'gexp->file' emits code to set '%load-path'.Ludovic Courtès
* guix/gexp.scm (gexp->file): Add #:set-load-path? parameter and honor it. * gnu/system.scm (operating-system-parameters-file): Pass #:set-load-path? #f. * doc/guix.texi (G-Expressions): Adjust accordingly.
2016-07-12gexp: Factorize load-path-setting expression.Ludovic Courtès
* guix/gexp.scm (load-path-expression): New procedure. (gexp->script): Use it.
2016-07-12gexp: Add 'with-imported-modules' macro.Ludovic Courtès
* guix/gexp.scm (<gexp>)[modules]: New field. (gexp-modules): New procedure. (gexp->derivation): Use it and append the result to %MODULES. Update docstring to mark #:modules as deprecated. (current-imported-modules, with-imported-modules): New macros. (gexp): Pass CURRENT-IMPORTED-MODULES as second argument to 'gexp'. (gexp->script): Use and honor 'gexp-modules'; define '%modules'. * tests/gexp.scm ("gexp->derivation & with-imported-modules") ("gexp->derivation & nested with-imported-modules") ("gexp-modules & ungexp", "gexp-modules & ungexp-splicing"): New tests. ("program-file"): Use 'with-imported-modules'. Remove #:modules argument to 'program-file'. * doc/guix.texi (G-Expressions): Document 'with-imported-modules'. Mark #:modules of 'gexp->derivation' as deprecated. * emacs/guix-devel.el: Add syntax for 'with-imported-modules'. (guix-devel-keywords): Add it. * .dir-locals.el: Likewise.
2016-07-12gexp: Keep only a single 'references' field.Ludovic Courtès
The distinction between native inputs and "normal" inputs can already be determined by looking at the 'native?' field of <gexp-input>. The extra 'natives' field of <gexp> added complexity for no good reason. * guix/gexp.scm (<gexp>)[natives]: Remove. (write-gexp): Remove use of 'gexp-native-references'. (gexp-inputs)[native-input?]: New procedure. Use it. (gexp->sexp)[reference->sexp]: Honor N? for input lists. Remove use of 'gexp-native-references'. (gexp)[collect-native-escapes]: Remove. Simplify.
2016-07-03import: cpan: Use our mirrors for 'https' URLs.Alex Sassmannshausen
* guix/import/cpan.scm (fix-source-url): New procedure. (cpan-module->sexp): Use it to construct our source-url. * tests/cpan.scm: Add tests for fix-source-url. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2016-07-03guix: Support authentication when fetching from SVN.Ricardo Wurmus
* guix/svn-download.scm (<svn-reference>): Add fields for optional credentials. (svn-fetch): Pass credentials to build-side "svn-fetch". * guix/build/svn.scm (svn-fetch): Pass optional credentials to svn command.
2016-07-02download: Update CPAN mirrors.Ludovic Courtès
* guix/download.scm (%mirrors)[cpan]: Remove enstimac.fr, which seems dead; add ibcp.fr.
2016-06-29download: Use basic authentication when userinfo is present in URI.David Thompson
* guix/download.scm (url-fetch): Include (guix base64) module on the build-side. * guix/build/download.scm (http-fetch): Add "Authorization" header when userinfo is present in the URI.
2016-06-26daemon: Rename 'NIX_CONF_DIR' to 'GUIX_CONFIGURATION_DIRECTORY'.David Craven
Partly fixes <http://bugs.gnu.org/22459>. Reported by Jeff Mickey <j@codemac.net> and David Craven <david@craven.ch>. * nix/libstore/globals.cc (Settings::processEnvironment()): Change 'NIX_CONF_DIR' to 'GUIX_CONFIGURATION_DIRECTORY'. * nix/local.mk (libstore_a_CPPFLAGS): Likewise. * guix/config.scm.in (%config-directory): Likewise. * build-aux/test-env.in: Likewise. * gnu/packages/patches/hydra-automake-1.15.patch: Likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2016-06-25import: pypi: do not fail when 'run_requires' is missing from the metadata.Cyril Roelandt
* guix/import/pypi.scm (read-wheel-metadata): do not crash when 'run_requires' is missing from the metadata.