summaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* import: github: Do not update URI for packages using git-fetch.Arun Isaac2019-01-16
| | | | | | * guix/import/github.scm (updated-github-url): Return the unchanged source URI for packages using git-fetch. [updated-url]: Do not handle URIs which end with ".git".
* status: Distinguish 'package-cache' profile hook.Ludovic Courtès2019-01-15
| | | | * guix/status.scm (hook-message): Handle 'package-cache'.
* guix package: '--list-available' can use data from the cache.Ludovic Courtès2019-01-15
| | | | | | | | * gnu/packages.scm (fold-available-packages): New procedure. * guix/scripts/package.scm (process-query): Use it instead of 'fold-packages'. * tests/packages.scm ("fold-available-packages with/without cache"): New test.
* edit: Use 'specification->location' to read information from the cache.Ludovic Courtès2019-01-15
| | | | | | | | | | | | | | | That way 'guix edit' doesn't need to load any package module. * gnu/packages.scm (find-package-locations, specification->location): New procedures. * guix/scripts/edit.scm (package->location-specification): Rename to... (location->location-specification): ... this. Expect a location object instead of a package. (guix-edit): Use 'specification->location' instead of 'specification->package'. * tests/packages.scm ("find-package-locations") ("find-package-locations with cache") ("specification->location"): New tests.
* channels: Compute a package cache and use it.Ludovic Courtès2019-01-15
| | | | | | | | | | | | | | | | | | | * gnu/packages.scm (cache-is-authoritative?, load-package-cache) (cache-lookup, generate-package-cache): New procedures. (%package-cache-file): New variable. (find-packages-by-name): Rename to... (find-packages-by-name/direct): ... this. (find-packages-by-name): Rewrite to use the package cache when 'cache-is-authoritative?' returns true. * tests/packages.scm ("find-packages-by-name + version, with cache") ("find-packages-by-name with cache"): New tests. * guix/channels.scm (package-cache-file): New procedure. (%channel-profile-hooks): New variable. (channel-instances->derivation): Use it in #:hooks. * guix/scripts/package.scm (build-and-use-profile): Add #:hooks and honor it. * guix/scripts/pull.scm (build-and-install): Pass #:hooks to UPDATE-PROFILE.
* discovery: Add 'fold-module-public-variables*'.Ludovic Courtès2019-01-15
| | | | * guix/discovery.scm (fold-module-public-variables*): New procedure.
* inferior: Add 'gexp->derivation-in-inferior'.Ludovic Courtès2019-01-15
| | | | * guix/inferior.scm (gexp->derivation-in-inferior): New procedure.
* guix package: Avoid 'find-newest-available-packages'.Ludovic Courtès2019-01-15
| | | | | | | | | * guix/scripts/package.scm (transaction-upgrade-entry): Use 'find-best-packages-by-name' instead of 'find-newest-available-packages'. * tests/packages.scm ("transaction-upgrade-entry, zero upgrades") ("transaction-upgrade-entry, one upgrade") ("transaction-upgrade-entry, superseded package"): Adjust accordingly.
* profiling: Add a "gc" profiling component.Ludovic Courtès2019-01-15
| | | | | * guix/profiling.scm (show-gc-stats): New procedure. <top level>: Call 'register-profiling-hook!'.
* guix: scons: Fix module reference.Ricardo Wurmus2019-01-15
| | | | | * guix/build-system/scons.scm (default-scons): Find "scons" package in (gnu packages python-xyz) instead of (gnu packages python).
* guix: Add profile hook to build TeX live configuration.Ricardo Wurmus2019-01-15
| | | | | | * guix/profiles.scm (texlive-configuration): New procedure. (%default-profile-hooks): Add it. * guix/status.scm (hook-message): Handle "texlive-configuration" hook type.
* status: Spin only on TTYs.Ludovic Courtès2019-01-15
| | | | | | * guix/status.scm (isatty?*): New procedure. (spin!): Do nothing when port matches ISATTY?*. (color-output?): Use ISATTY?*.
* guix package: '--upgrade' preserves package order.Ludovic Courtès2019-01-15
| | | | | | | | | | Fixes <https://bugs.gnu.org/31142>. Reported by Chris Marusich <cmmarusich@gmail.com>. * guix/scripts/package.scm (options->installable)[upgraded]: Use 'fold' instead of 'fold-right'. This reverts eca16a3d1d9e6b2c064e0105c1015258bf2755f2. * tests/guix-package-net.sh: Add 'guix package u' test.
* copy: Add '--verbosity'.Ludovic Courtès2019-01-14
| | | | | | | | | | | | | This fixes a regression introduced in f1de676ea82c2bed9a435fce37ade0186296bfc9 since %DEFAULT-OPTIONS was missing the 'debug key that 'set-build-options-from-command-line' expects. * guix/scripts/copy.scm (show-help, %options): Add '--verbosity'. (%default-options): Rename 'verbosity' to 'debug'. Add 'print-build-trace?', 'print-extended-build-trace?', 'multiplexed-build-output?', and 'verbosity'. (guix-copy): Wrap body in 'with-status-verbosity'.
* pull: Don't prepend "origin/" to branch names.Ludovic Courtès2019-01-14
| | | | | | | This is a followup to 37a6cdbf1b3503d3e60840a176318284b1f7ca25. * guix/scripts/pull.scm (%options): Don't prepend "origin/" to branch names.
* import: cran: Suggest input changes.Ricardo Wurmus2019-01-12
| | | | | * guix/import/cran.scm (latest-cran-release, latest-bioconductor-release): Return input-changes.
* refresh: Suggest input changes when updating.Ricardo Wurmus2019-01-12
| | | | | | | | | | * guix/upstream.scm (<upstream-source>)[input-changes]: New field. (<upstream-input-change>): New record. (upstream-input-change?, upstream-input-change-name, upstream-input-change-type, upstream-input-change-action, changed-inputs): New procedures. (package-update): Pass along input changes. * guix/script/refresh.scm (update-package): Process input changes.
* guix build: Re-purpose '--verbosity' and add '--debug'.Ludovic Courtès2019-01-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous '--verbosity' option was misleading and rarely what users were looking for. The new option provides a consistent way to choose whether or not to display the build log. * guix/scripts/build.scm (show-build-options-help): Remove "--verbosity" and add "--debug". (set-build-options-from-command-line): Use the 'debug key of OPTS for #:verbosity. (%standard-build-options): Change "verbosity" to "debug". Use 'string->number*' instead of 'string->number'. (%default-options): Change 'verbosity to 'debug and add a 'verbosity key. (show-help): Add '--verbosity'. (%options): Likewise, and change '--quiet' to set the 'verbosity key of RESULT. (guix-build): Use 'with-status-verbosity' instead of parameterizing CURRENT-BUILD-OUTPUT-PORT, honor the 'verbosity key of OPTS, and remove 'quiet?'. * guix/scripts/environment.scm (show-help, %options): Add '--verbosity'. (%default-options): Add 'debug'. (guix-environment): Honor the 'verbosity key of OPTS. * guix/scripts/pack.scm (%default-options): Add 'debug. (%options, show-help): Add '--verbosity'. (guix-pack): Honor the 'verbosity key of OPTS. * guix/scripts/package.scm (%default-options): Add 'debug. (show-help, %options): Add '--verbosity'. Mark '--verbose' as deprecated and change it to set 'verbosity. (guix-package): Honor the 'verbosity key of OPTS and remove 'verbose?'. * guix/scripts/pull.scm (%default-options): Add 'debug. (show-help, %options): Add '--verbosity'. (guix-pull): Honor the 'verbosity key of OPTS. * guix/scripts/system.scm (show-help, %options): Add '--verbosity'. (%default-options): Add 'debug. (guix-system): Honor the 'verbosity key of OPTS. * guix/scripts/archive.scm (%default-options): Add 'debug, 'print-build-trace?, 'print-extended-build-trace?, and 'multiplexed-build-output?. (show-help, %options): Add '--verbosity'. (export-from-store): Remove call to 'set-build-options-from-command-line'. (guix-archive): Wrap body in 'with-status-verbosity'. Add call to 'set-build-options-from-command-line. * doc/guix.texi (Common Build Options): Document '--verbosity' and '--debug'. (Additional Build Options): Adjust description of '--quiet'.
* status: Add 'with-status-verbosity'.Ludovic Courtès2019-01-11
| | | | | | | | | | | | | * guix/status.scm (logger-for-level, call-with-status-verbosity): New procedures. (with-status-verbosity): New macro. * guix/scripts/environment.scm (guix-environment): Use 'with-status-verbosity' instead of 'with-status-report'. * guix/scripts/pack.scm (guix-pack): Likewise. * guix/scripts/package.scm (guix-package): Likewise. * guix/scripts/pull.scm (guix-pull): Likewise. * guix/scripts/system.scm (guix-system): Likewise. * build-aux/run-system-tests.scm (run-system-tests): Likewise.
* refresh: Turn on warnings when '--manifest' is used.Ludovic Courtès2019-01-11
| | | | * guix/scripts/refresh.scm (guix-refresh): Set WARN? when '-m' is used.
* refresh: Refactor option handling and '--recursive'.Ludovic Courtès2019-01-11
| | | | | | | | | | | | | | This allows us to combine '--recursive' with other options (-u, -m, etc.), turns off warnings when '--recursive' is used, and avoids the hazards of I/O in the presence of multithreading. * guix/scripts/refresh.scm (options->packages): New procedure, with code formerly in 'guix-refresh'. (refresh-recursive): Remove. (guix-refresh)[keep-newest, core-package?, args-packages, packages]: Remove. [warn?]: Set to #f when RECURSIVE? is true. Call 'options->packages' in monadic context.
* build-system: texlive: Do not hide build output.Ricardo Wurmus2019-01-10
| | | | | * guix/build/texlive-build-system.scm (compile-with-latex): Use "nonstopmode" instead of "batchmode".
* build-system: texlive: Do not truncate lines.Ricardo Wurmus2019-01-10
| | | | | * guix/build/texlive-build-system.scm (configure): Set environment variables to prevent build output lines from being truncated.
* gnu: Update texlive packages.Ricardo Wurmus2019-01-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * guix/build-system/texlive.scm (%texlive-tag, %texlive-revision): Update to texlive-2018.2, revision 49435. * gnu/packages/tex.scm (texlive-dvips, texlive-generic-unicode-data, texlive-generic-dehyph-exptl, texlive-generic-hyph-utf8, texlive-fontname, texlive-fonts-cm, texlive-tex-plain, texlive-latex-base, texlive-latex-graphics, texlive-latex-graphics, texlive-latex-oberdiek, texlive-latex-tools, texlive-latex-l3kernel, texlive-latex-l3packages, texlive-latex-fontspec, texlive-latex-amsmath, texlive-latex-amscls, texlive-latex-babel, texlive-latex-cyrillic, texlive-latex-eqparbox, texlive-latex-ifplatform, texlive-latex-etoolbox, texlive-latex-galois, texlive-latex-polyglossia, texlive-tex-texinfo, texlive-latex-changebar, texlive-latex-fancyhdr, texlive-latex-overpic, texlive-latex-parskip, texlive-metapost, texlive-latex-ucs, texlive-generic-pdftex, texlive-latex-media9, texlive-latex-ocgx2, texlive-latex-koma-script, texlive-generic-listofitems, texlive-bibtex, texlive-context-base): Update hashes. (texlive-latex-fontspec)[arguments]: Remove custom build target. (texlive-latex-dinbrief)[arguments]: Add build phase "fix-encoding-error". (texlive-latex-xkeyval): New variable. (texlive-latex-pstool)[source]: Fetch from new location. [build-system]: Use trivial-build-system. [arguments]: Write simple builder. [propagated-inputs]: Add texlive-latex-l3kernel, texlive-latex-tools, and texlive-latex-xkeyval. [synopsis]: Fix typo.
* Add (guix deprecation).Ludovic Courtès2019-01-10
| | | | | | * guix/deprecation.scm: New file. * Makefile.am (MODULES): Add it. * po/guix/POTFILES.in: Add it.
* guix: lint: Warn only if GitHub URI is not same as the package URI.Arun Isaac2019-01-10
| | | | | | * guix/scripts/lint.scm (check-github-url): Warn only if the GitHub URI obtained after following redirects is not same as the original URI. * tests/lint.scm ("github-url: already the correct github url"): New test.
* build-system/asdf: 'package-with-build-system' accesses inputs lazily.Ludovic Courtès2019-01-09
| | | | | | | | | | | | Fixes a bug whereby we would, at the top-level (while evaluation lisp.scm package definitions), attempt to access package inputs. Because of circular dependencies, this could lead to unbound variables as reported by Arun Isaac <arunisaac@systemreboot.net> at <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=33801#56>. * guix/build-system/asdf.scm (package-with-build-system)[transform] (new-propagated-inputs): Turn into a procedure. Adjust user accordingly.
* self: Drop support for Guix < 0.15 on Guile 2.0.Ludovic Courtès2019-01-09
| | | | | | | | | | * guix/self.scm (false-if-wrong-guile, package-for-guile): Remove. (specification->package): Remove "guile2.0-" variants. (compiled-guix): #:guile-for-build defaults to (default-guile). Use 'specification->package' instead of 'package-for-guile'. (guile-for-build): Remove. (guix-derivation): Use 'default-guile' instead of 'guile-for-build'. Check whether we're running on Guile 2.0 with PULL-VERSION < 1.
* Remove most uses of the _IO*F constants.Ludovic Courtès2019-01-09
| | | | | | | | | | | | | | | | | | | | | | | | These constants, for use with 'setvbuf', were deprecated in Guile 2.2 and disappeared in Guile 3.0. Here we keep these constants in build-side code where removing them is not feasible. * guix/build/download-nar.scm (download-nar): Adjust 'setvbuf' calls to the Guile 2.2+ API. * guix/build/download.scm (open-socket-for-uri): Likewise. (open-connection-for-uri, url-fetch): Likewise. * guix/build/make-bootstrap.scm (make-stripped-libc): Likewise. * guix/build/union.scm (setvbuf) [guile-2.0]: New conditional wrapper. (union-build): Adjust to new API. * guix/ftp-client.scm (ftp-open, ftp-list, ftp-retr): Likewise. * guix/http-client.scm (http-fetch): Likewise. * guix/inferior.scm (proxy): Likewise. * guix/scripts/substitute.scm (fetch, http-multiple-get): Likewise. * guix/self.scm (compiled-modules): Likewise. * guix/ssh.scm (remote-daemon-channel, store-import-channel) (store-export-channel): Likewise. * guix/ui.scm (initialize-guix): Likewise. * tests/publish.scm (http-get-port): Likewise. * guix/store.scm (%newlines): Adjust comment.
* download: Remove Guile 2.0 workaround.Ludovic Courtès2019-01-09
| | | | * guix/build/download.scm: Remove Guile 2.0 workaround.
* maint: Remove 'cond-expand' forms for Guile 2.0.Ludovic Courtès2019-01-09
| | | | | | | | | | | | | | | | | | | | | | Note: Leave 'cond-expand' forms used in the build-side modules that can run on %BOOTSTRAP-GUILE, which is currently Guile 2.0. * guix/build/compile.scm: Move 'use-modules' clause from 'cond-expand' to 'define-module' form. (%default-optimizations): Remove 'cond-expand'. * guix/build/download.scm (tls-wrap): Remove 'cond-expand'. * guix/build/syscalls.scm: Remove 'cond-expand' form around '%set-automatic-finalization-enabled?!' and 'without-automatic-finalization'. * guix/inferior.scm (port->inferior): Remove 'cond-expand'. * guix/scripts/pack.scm (wrapped-package)[build]: Remove 'cond-expand'. * guix/status.scm (build-event-output-port): Remove 'cond-expand'. * guix/store.scm (open-inet-socket): Remove 'cond-expand'. * guix/ui.scm (install-locale): Remove 'cond-expand'. * tests/status.scm ("current-build-output-port, UTF-8 + garbage"): Remove 'cond-expand'. * tests/store.scm ("current-build-output-port, UTF-8 + garbage"): Remove 'cond-expand'.
* pull: Document '--system'.Ludovic Courtès2019-01-08
| | | | | | | | | Fixes <https://bugs.gnu.org/34010>. Reported by Alex Kost <alezost@gmail.com>. This is a followup to 5923102f7b58f0a0120926ec5b81ed48b26a188e. * guix/scripts/pull.scm (show-help): Add '--system'.
* self: Compress Info files.Ludovic Courtès2019-01-08
| | | | | | | Fixes <https://bugs.gnu.org/33993>. Reported by Adonay Felipe Nogueira <adfeno@hyperbola.info>. * guix/self.scm (info-manual): Compress Info files.
* gexp: 'gexp->script' does not emit load-path expression when unnecessary.Ludovic Courtès2019-01-07
| | | | | | | | | | This removes two elements from %LOAD-PATH and %LOAD-COMPILED-PATH of the 'guix' command and thus further reduces the number of 'stat' calls it makes. * guix/gexp.scm (load-path-expression): Return #f when MODULES and EXTENSIONS are both empty. (gexp->script): Don't emit anything when SET-LOAD-PATH is #f.
* self: Move all modules into a single directory.Ludovic Courtès2019-01-07
| | | | | | | | | | | | | | | | | | | | This halves the number of elements in %LOAD-PATH and %LOAD-COMPILED-PATH and halves the number of 'stat' calls as reported by: env -i $(type -P guix) build -e '(@ (gnu packages base) coreutils)' -nd * guix/self.scm (node-source+compiled, guile-module-union): New procedures. (guix-command): Remove 'compiled-modules' parameter. Remove 'source-directories' and 'object-directories' variables and add 'module-directory'. Change command so that it adds nothing but MODULE-DIRECTORY to %LOAD-PATH and %LOAD-COMPILED-PATH. (whole-package): Remove #:compiled-modules. Assume MODULES contains 'share/guile/site' and 'lib/guile' and adjust code accordingly. (compiled-guix): When PULL-VERSION is 1, use 'node-source+compiled' only. Remove #:compiled-modules argument to 'whole-package'. * guix/channels.scm (whole-package-for-legacy): Add 'module+compiled' and pass it to 'whole-package'.
* import: opam: Parse comments.Julien Lepiller2019-01-07
| | | | * guix/import/opam.scm: Add comment support in parser.
* import: opam: Add updater.Julien Lepiller2019-01-07
| | | | * guix/import/opam.scm (%opam-updater): New variable.
* import: opam: Add recursive option.Julien Lepiller2019-01-07
| | | | | | * guix/script/import/opam.scm: Add recursive option. * guix/import/opam.scm (opam->guix-package): return two values. (opam-recursive-import): New variable.
* lint: Avoid 'dirname' call at the top level.Ludovic Courtès2019-01-07
| | | | | * guix/scripts/lint.scm (%distro-directory): Wrap in 'mlambda'. (check-patch-file-names): Adjust accordingly.
* Remove (guix build pull).Ludovic Courtès2019-01-07
| | | | | | | | This module had been unused since commit 5f93d97005897c2d859f0be1bdff34c88467ec61 (Oct. 2017). * guix/build/pull.scm: Delete. * Makefile.am (MODULES): Remove.
* hydra: Compute jobs in an inferior.Ludovic Courtès2019-01-06
| | | | | | | | | | | | | | Previously we would rely on auto-compilation of all the Guix modules. The complete evaluation would take ~15mn on berlin.guixsd.org and require lots of RAM. This approach should be faster since potentially only part of the modules are rebuilt. Furthermore, as a side-effect, it builds the derivations that 'guix pull' uses. * build-aux/hydra/gnu-system.scm: Remove 'eval-when' form. (hydra-jobs): New procedure. * gnu/ci.scm (package->alist, qemu-jobs, system-test-jobs) (tarball-jobs): Return strings for the 'license' field. * guix/self.scm (compiled-guix)[*cli-modules*]: Add (gnu ci).
* lint: Rename checker to 'github-url'.Ludovic Courtès2019-01-06
| | | | | * guix/scripts/lint.scm (%checkers): Rename 'github-uri' to 'github-url' to match the documentation.
* git-download: Use 'invoke'.Ludovic Courtès2019-01-06
| | | | | * guix/build/git.scm (git-fetch): Use 'invoke' instead of 'system*' for "git submodule update".
* git-download: 'git-fetch' really returns #f upon error.Ludovic Courtès2019-01-06
| | | | | | | | | | | This allows the fallback code in (guix git-download) to actually run. Regression introduced in commit 329dabe13bf98b899b907b45565434c5140804f5. Fixes <https://bugs.gnu.org/33911>. Reported by Björn Höfling <bjoern.hoefling@bjoernhoefling.de>. * guix/build/git.scm (git-fetch): Guard against 'invoke-error?' and really return #f upon failure.
* ui: It's 2019 now!Ludovic Courtès2019-01-05
| | | | * guix/ui.scm (show-version-and-exit): Change year to 2019.
* guix build: Honor '--system' for file-like objects and gexps.Ludovic Courtès2019-01-05
| | | | | | | | Fixes a bug whereby "guix build -f file.scm -s SYSTEM" would not honor SYSTEM when 'file.scm' returns a gexp or a file-like object. * guix/scripts/build.scm (options->derivations): Pass #:system to 'run-with-store' in the 'file-like?' and 'gexp?' cases.
* gexp: Lowering a <computed-file> honors SYSTEM and TARGET.Ludovic Courtès2019-01-05
| | | | | | * guix/gexp.scm (computed-file-compiler): Pass #:system and #:target to 'gexp->derivation'. * tests/gexp.scm ("lower-object, computed-file, #:system"): New test.
* import: cran: Default to 'cran repo.Ricardo Wurmus2019-01-03
| | | | * guix/import/cran.scm (cran-recursive-import): Default to 'cran repo.
* import: cran: Abort if no description could be fetched.Ricardo Wurmus2019-01-03
| | | | | * guix/import/cran.scm (cran->guix-package): Only proceed if a valid description could be fetched.
* import: cran: Use HTTPS.Ricardo Wurmus2019-01-03
| | | | * guix/import/cran.scm (%cran-url): Use HTTPS.