aboutsummaryrefslogtreecommitdiff
path: root/guix
Commit message (Expand)AuthorAge
* Alter the GitHub updater to use tags as well as releases•••GOV.UK software uses tags rather than releases on GitHub. release_5spike-local-development-system-containerChristopher Baines2017-04-24
* Add support for sharing the host network to guix system container•••This is a port of the functionality in the Guix environment command to the guix system container command. This requires additional changes to the operating-system definitions used, in particular, networking related services may need removing if the host network is shared. Christopher Baines2017-02-19
* build: dub-build-system: Don't use "dub run" at all.•••It doesn't make sense to run non-test executables (which is what "dub run" would do). The "check" function already invokes "dub test" and that's enough. * guix/build/dub-build-system.scm (build): Remove "dub run" invocation. Danny Milosavljevic2017-02-14
* import: stackage: Avoid using (guix ui) in importer code.•••* guix/import/stackage.scm (stackage->guix-package, stackage-lts-info-fetch): Raise 'message' condition instead of using 'leave' from (guix ui). * guix/scripts/import/stackage.scm (guix-import-stackage): Handle conditions. Federico Beffa2017-02-14
* gnu: Add dub-build-system.•••* guix/build-system/dub.scm: New file. * guix/build/dub-build-system.scm: New file. * Makefile.am (MODULES): Add them. * doc/guix.texi: Add section for dub-build-system. Danny Milosavljevic2017-02-10
* git-download: Add 'git-predicate'.•••* guix/git-download.scm (git-predicate): New procedure. * gnu/packages/package-management.scm (current-guix): Use it. (make-git-predicate): Remove. Mathieu Lirzin2017-02-09
* import: hackage: Handle unknown packages gracefully.•••* guix/import/hackage.scm (hackage-fetch): Add 'guard'. Federico Beffa2017-02-09
* import: Add stackage importer and updater.•••* guix/import/stackage.scm: New file. * guix/scripts/import/stackage.scm: New file. * Makefile.am (MODULES): Add new files. * guix/scripts/import.scm (importers): Add "stackage". * guix/scripts/refresh.scm (%updaters): Add %stackage-updater. * doc/guix.texi (Invoking 'guix import'): Document the importer. (Invoking 'guix refresh'): Add stackage to option --type valid values. * guix/import/hackage.scm (guix-package->hackage-name, hackage-fetch, hackage-source-url, hackage-cabal-url, hackage-package?): Export them. Federico Beffa2017-02-09
* import: json: Explicitly ask for JSON data.•••* guix/import/json.scm (json-fetch): Add #:headers to http-fetch call. Federico Beffa2017-02-09
* import: pypi: Correctly handle multiple-URL origins.•••Fixes <https://bugs.gnu.org/25635>. Reported by Sergei Trofimovich <slyfox@inbox.ru>. * guix/import/pypi.scm (guix-package->pypi-name)[url->pypi-name]: New procedure. Rewrite body to match lists in addition to strings. * tests/pypi.scm ("guix-package->pypi-name, several URLs"): New test. Ludovic Courtès2017-02-08
* profiles: gtk-im-modules: Fix for gtk3.•••Gtk+3 now have multiple outputs, so the gtk-query-immodules-3.0 should be find in output "bin" instead of "out". * guix/profiles.scm (gtk-im-modules): Pass the path of gtk-query-immodules-x.x as 'query' argument to the 'build' procedure. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Ying Huang2017-02-08
* file-systems: Add '%network-configuration-files' and '%network-file-mappings'.•••* gnu/system/file-systems.scm (%network-configuration-files) (%network-file-mappings): New variables. * guix/scripts/environment.scm (%network-configuration-files): Remove. (launch-environment/container): Refer to '%network-file-mappings' instead of calling 'filter-map'. Ludovic Courtès2017-02-07
* file-systems: Add 'file-system-mapping->bind-mount'.•••* gnu/system/file-systems.scm (file-system-mapping->bind-mount): New procedure. * gnu/system/linux-container.scm (mapping->file-system): Remove. (containerized-operating-system)[mapping->fs]: Use 'file-system-mapping->bind-mount' instead of 'mapping->file-system'. * guix/scripts/environment.scm (launch-environment/container): Likewise. Ludovic Courtès2017-02-03
* build: r-build-system: Use deterministic built date.•••Fixes <http://bugs.gnu.org/25598>. * guix/build/r-build-system.scm (install): Pass "--built-timestamp" option to make build deterministic. Ricardo Wurmus2017-02-02
* download: Add GNOME mirror.•••* guix/download.scm (%mirrors): Add "https://download.gnome.org". Ludovic Courtès2017-02-01
* download: Add ‘url-fetch/zipbomb’.•••From this suggestion by Ludovic Courtès: <http://lists.gnu.org/archive/html/guix-devel/2016-09/msg01983.html> * guix/download.scm (url-fetch/zipbomb): New procedure. Tobias Geerinckx-Rice2017-02-01
* download: url-fetch/tarball: Make ‘name’ truly optional.•••* guix/download.scm (url-fetch/tarbomb): Fall back to ‘file-name’ if ‘name’ is #f, like the regular ‘url-fetch’ does. * gnu/packages/bioinformatics.scm (muscle)[source]: Remove ‘file-name’. * gnu/packages/engineering.scm (fastcap)[source]: Likewise. * gnu/packages/scheme.scm (scmutils)[source]: Likewise. Tobias Geerinckx-Rice2017-02-01
* lint: Use the "@" syntax for versioned packages in warnings.•••* guix/scripts/lint.scm (emit-warning): Use the "@" syntax. Ludovic Courtès2017-01-31
* environment: Fix setting writable? on networking related files•••* guix/scripts/environment.scm (launch-environment/container): Include the file name in the call to string=? when deciding if the file should be writable. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Christopher Baines2017-01-30
* store: Add 'add-data-to-store'.•••* guix/serialization.scm (write-bytevector): New procedure. (write-string): Rewrite in terms of 'write-bytevector'. * guix/store.scm (write-arg): Add 'bytevector' case. (add-data-to-store): New procedure, from former 'add-text-to-store'. (add-text-to-store): Rewrite in terms of 'add-data-to-store'. * tests/store.scm ("add-data-to-store"): New test. Ludovic Courtès2017-01-30
* build-system/python: 'package-with-explicit-python' uses 'eq?' memoization.•••* guix/build-system/python.scm (package-with-explicit-python): Use 'mlambdaq' instead of 'mlambda'. This does not change the <package> graph and has no visible impact on performance. Ludovic Courtès2017-01-28
* gnu-maintenance: 'gnu-package?' uses 'eq?' memoization.•••* guix/gnu-maintenance.scm (gnu-package?): Use 'mlambdaq' instead of 'mlambda'. Ludovic Courtès2017-01-28
* packages: Remove 'define-memoized/v' and use 'mlambdaq' instead.•••* guix/packages.scm (define-memoized/v): Remove. (package-transitive-supported-systems): Use 'mlambdaq' instead of 'define-memoized/v'. (package-input-rewriting)[replace]: Likewise. Ludovic Courtès2017-01-28
* Use 'mlambda' instead of 'memoize'.•••* gnu/packages.scm (find-newest-available-packages): Use 'mlambda' instead of (memoize (lambda ...) ...). * gnu/packages/bootstrap.scm (package-with-bootstrap-guile): Likewise. * guix/build-system/gnu.scm (package-with-explicit-inputs)[rewritten-input]: Likewise. * guix/build-system/python.scm (package-with-explicit-python)[transform]: Likewise. * guix/derivations.scm (derivation->string): Likewise. * guix/gnu-maintenance.scm (gnu-package?): Likewise. * guix/modules.scm (module-file-dependencies): Likewise. * guix/scripts/graph.scm (standard-package-set): Likewise. * guix/scripts/lint.scm (official-gnu-packages*): Likewise. * guix/store.scm (store-regexp*): Likewise. * guix/utils.scm (location): Likewise. Ludovic Courtès2017-01-28
* Add (guix memoization).•••* guix/combinators.scm (memoize): Remove. * guix/memoization.scm: New file. * Makefile.am (MODULES): Add it. * gnu/packages.scm, gnu/packages/bootstrap.scm, guix/build-system/gnu.scm, guix/build-system/python.scm, guix/derivations.scm, guix/gnu-maintenance.scm, guix/import/cran.scm, guix/import/elpa.scm, guix/modules.scm, guix/scripts/build.scm, guix/scripts/graph.scm, guix/scripts/lint.scm, guix/store.scm, guix/utils.scm: Adjust imports accordingly. Ludovic Courtès2017-01-28
* packages: Add 'package-upstream-name' and use it.•••* guix/packages.scm (package-upstream-name): New procedure. * guix/gnu-maintenance.scm (gnu-package?, ftp-server/directory) (latest-release*, latest-gnome-release) (latest-kde-release): Use it instead of the inline expression. Ludovic Courtès2017-01-28
* import: github: Better tolerate unexpected file extensions.•••* guix/import/github.scm (find-extension): Add ".tbz". (updated-github-url): When 'find-extension' returns #f, use "" for EXT. Ludovic Courtès2017-01-28
* gnu-maintenance: 'gnu-package?' ignores invalid URLs.•••* guix/gnu-maintenance.scm (gnu-package?)[gnu-home-page?]: Add '>>' threading macro and use it. Ludovic Courtès2017-01-28
* gnu-maintenance: GNU updater handles gnu.org-hosted Emacs packages.•••* guix/gnu-maintenance.scm (pure-gnu-package?): If an "emacs-" package matches 'gnu-hosted?', return true. (gnu-hosted?): New procedure. Ludovic Courtès2017-01-28
* gnu-maintenance: Honor 'upstream-name' property in GNU updater.•••* guix/gnu-maintenance.scm (gnu-package?): Honor the 'usptream-name' property of PACKAGE. (ftp-server/directory): Likewise. Ludovic Courtès2017-01-28
* bournish: Extend 'rm' command.•••* guix/build/bournish.scm (rm-command): New procedure. (%commands): Use it. * tests/bournish.scm: Add tests for "rm" and "rm -r". Ricardo Wurmus2017-01-26
* import: pypi: Don't add setuptools to propagated-inputs.•••* guix/import/pypi.scm (compute-inputs): Don't add setuptools to the imported package's propagated-inputs. Carlo Zancanaro2017-01-26
* copy: Use userauth-public-key/auto! for ssh authentification.•••* guix/scripts/copy.scm (open-ssh-session): Replace userauth-agent! by userauth-public-key/auto!. This way, if ssh-agent is not run, default ssh key (~/.ssh/id_rsa) will be used as a fallback. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Mathieu Othacehe2017-01-26
* container: Pass through TERM when calling exec.•••* guix/scripts/container/exec.scm (guix-container-exec): Capture the value of the TERM environment variable, and pass it through to the container. This means some applications now work where they did not before (e.g. htop), and others have more functionality, providing that the terminal was capable of enabling that functionality in the first place. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Christopher Baines2017-01-25
* grafts: Do not pull derivation outputs not depended on.•••Fixes <http://bugs.gnu.org/24886>. Previously, the grafting derivation of, say, brdf-explorer would pull in qt:doc even though brdf-explorer depends only on qt:out, not qt:doc. * guix/grafts.scm (with-cache): Use 'vhash-assoc' and 'vhash-cons' instead of 'vhash-assq' and 'vhash-consq'. (cumulative-grafts): Pass #:outputs to 'graft-derivation/shallow'. Use OUTPUTS instead of (derivation-output-names drv). (graft-derivation): Add #:outputs parameter; pass it to 'cumulative-grafts'. * tests/grafts.scm (make-derivation-input): New variable. ("graft-derivation, replaced derivation has multiple outputs"): Make sure P2:zzz is not part of the outputs of P3D. ("graft-derivation with #:outputs") ("graft-derivation, unused outputs not depended on"): New tests. Ludovic Courtès2017-01-25
* grafts: Shallow grafting can be performed on a subset of the outputs.•••* guix/grafts.scm (graft-derivation/shallow): Add #:outputs parameter. [outputs]: Rename to... [output-pairs]: ... this. Adjust 'build-expression->derivation' call accordingly. Ludovic Courtès2017-01-24
* syscalls: Export 'read-utmpx'.•••* guix/build/syscalls.scm (read-utmpx-from-port): New procedure. * tests/syscalls.scm ("read-utmpx, EOF") ("read-utmpx"): New tests. Ludovic Courtès2017-01-24
* lint: Display PACKAGE@VERSION.•••* guix/scripts/lint.scm (run-checkers): Remove 'name' variable. Display PACKAGE@VERSION instead of PACKAGE-VERSION. Ludovic Courtès2017-01-21
* syscalls: Add utmpx procedures and data structure.•••* guix/build/syscalls.scm (<utmpx-entry>): New record type. (%utmpx): New C struct. (login-type): New bits. (setutxent, endutxent, getutxent, utmpx-entries): New procedures. Ludovic Courtès2017-01-19
* syscalls: Extract 'bytes->string'.•••* guix/build/syscalls.scm (bytes->string): New procedure. (bytevector->string-list): Use it. Ludovic Courtès2017-01-19
* import: github: Catch HTTP 403 error during fetch.•••* guix/import/github.scm (json-fetch*): Catch 403 HTTP error that may be raised if a github token has not been set. Signed-off-by: Mathieu OTHACEHE <m.othacehe@gmail.com> Signed-off-by: Ludovic Courtès <ludo@gnu.org> Mathieu OTHACEHE2017-01-19
* guix environment, build: Allow absolute file names with '--root'.•••Reported by Chris Webber. * guix/scripts/build.scm (register-root): If ROOT is absolute, keep it as is. * guix/scripts/environment.scm (register-gc-root): Likewise. * tests/guix-environment.sh (expected): Add test. Ludovic Courtès2017-01-19
* grafts: Preserve the cache across recursive calls.•••Before this commit, we'd lose the cache across recursive calls to 'cumulative-grafts', which isn't great performance-wise. This bug was already present before d38bc9a9f6feefc465964531520fee5663a12f48. * guix/grafts.scm (with-cache): In the miss case, call 'current-state' after EXP has been evaluated. Ludovic Courtès2017-01-16
* grafts: Actually cache grafts during the derivation DAG traversal.•••This fixes a regression introduced in d38bc9a9f6feefc465964531520fee5663a12f48 whereby the cache was effectively disabled. Reported by Thomas Danckaert <thomas.danckaert@gmail.com>. * guix/grafts.scm (with-cache): In the cache miss case, wrap body in 'mbegin'. Ludovic Courtès2017-01-16
* profiles: Export 'ca-certificate-bundle'.•••* guix/profiles.scm: Export ca-certificate-bundle, such that it can be used in other G-expressions. This is useful where these G-expressions run programs that require a ca-certificate-bundle, e.g. git. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Christopher Baines2017-01-16
* guix build: Add '--repair'.•••* guix/scripts/build.scm (show-help, %options): Add '--repair'. * doc/guix.texi (Invoking guix gc): Mention 'guix build --repair'. (Additional Build Options): Document it. Ludovic Courtès2017-01-15
* guix build: Do not force 'build-cores', 'max-build-jobs', and 'max-silent-time'.•••This lets the daemon use its own default settings unless otherwise specified. * guix/scripts/build.scm (set-build-options-from-command-line): Do not provide default values for #:build-cores and #:max-build-jobs. (%default-options): Remove 'max-silent-time'. Ludovic Courtès2017-01-15
* daemon: Client settings no longer override daemon settings.•••Fixes <http://bugs.gnu.org/20217>. * nix/libstore/worker-protocol.hh (PROTOCOL_VERSION): Bump to 0x161. * nix/nix-daemon/nix-daemon.cc (performOp): "build-max-jobs", "build-max-silent-time", and "build-cores" are no longer read upfront; instead, read them from the key/value list at the end. * nix/nix-daemon/guix-daemon.cc (main): Explicitly set 'settings.maxBuildJobs'. * guix/store.scm (%protocol-version): Bump to #x161. (set-build-options): #:max-build-jobs, #:max-silent-time, and #:build-cores now default to #f. Adjust handshake to new protocol. * tests/store.scm ("build-cores"): New test. * tests/guix-daemon.sh: Add test for default "build-cores" value. Ludovic Courtès2017-01-15
* challenge: Add '--verbose'.•••* guix/scripts/challenge.scm (summarize-report): Add #:verbose? parameter. [report-hashes]: New procedure. Use it. Honor VERBOSE? in the 'match case. (show-help, %options): Add '--verbose'. (guix-challenge): Honor it. Ludovic Courtès2017-01-14
* challenge: Return comparison reports instead of just discrepancies.•••This makes it easier to distinguish between matches, mismatches, and the various cases of inconclusive reports. * guix/scripts/challenge.scm (<discrepancy>): Rename to... (<comparison-report>): ... this. Add 'result' field. (comparison-report): New macro. (comparison-report-predicate, comparison-report-mismatch?) (comparison-report-match?) (comparison-report-inconclusive?): New procedures. (discrepancies): Rename to... (compare-contents): ... this. Change to return a list of <comparison-report>. Remove calls to 'warning'. (summarize-discrepancy): Rename to... (summarize-report): ... this. Adjust to <comparison-report>. (guix-challenge): Likewise. * tests/challenge.scm ("no discrepancies") ("one discrepancy"): Adjust to new API. ("inconclusive: no substitutes") ("inconclusive: no local build"): New tests. Ludovic Courtès2017-01-14