summaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* discovery: Remove dependency on (guix ui).Ludovic Courtès2018-04-08
| | | | | | | | | | | | | | This reduces the closure of (guix discovery) from 28 to 8 modules. * guix/discovery.scm (scheme-files): Use 'format' instead of 'warning'. (scheme-modules): Add #:warn parameter. Use it instead of 'warn-about-load-error'. (fold-modules): Add #:warn and pass it to 'scheme-modules'. (all-modules): Likewise. * gnu/bootloader.scm (bootloader-modules): Pass #:warn to 'all-modules'. * gnu/packages.scm (fold-packages): Likewise. * gnu/services.scm (all-service-modules): Likewise. * guix/upstream.scm (importer-modules): Likewise.
* Add (guix self).Ludovic Courtès2018-04-08
| | | | | | | | * guix/self.scm: New file. * Makefile.am (MODULES): Add it. * gnu/packages.scm (%distro-root-directory): Rewrite to try different directories. * guix/discovery.scm (guix): Export 'scheme-files'.
* gexp: 'directory-union' has a #:resolve-collision parameter.Ludovic Courtès2018-04-08
| | | | * guix/gexp.scm (directory-union): Add #:resolve-collision and honor it.
* union: Allow callers to choose the collision resolution policy.Ludovic Courtès2018-04-08
| | | | | | | * guix/build/union.scm (warn-about-collision): New procedure. (union-build): Add #:resolve-collision. [resolve-collisions]: Call it. * tests/union.scm ("union-build collision first & last"): New test.
* modules: Report the search path in &missing-dependency-error.Ludovic Courtès2018-04-08
| | | | | * guix/modules.scm (&missing-dependency-error)[search-path]: New field. (source-module-dependencies): Initialize the 'search-path' field.
* git: Increase modularity and expose 'update-cached-checkout'.Ludovic Courtès2018-04-02
| | | | | | | | * guix/git.scm (repository->head-sha1, copy-to-store): Remove. (switch-to-ref): Return the OID of OBJ. (update-cached-checkout): New procedure, with code from 'latest-repository-commit'. (latest-repository-commit): Use it.
* union: Slightly improve messages for file collisions.Ludovic Courtès2018-03-31
| | | | | * guix/build/union.scm (union-build): Indent file names upon collision. Remove "arbitrarily" from the message.
* guix package: Add '--allow-collisions'.Ludovic Courtès2018-03-31
| | | | | | | | | | | | | Fixes <https://bugs.gnu.org/30830>. Suggested by Ricardo Wurmus <rekado@elephly.net>. * guix/scripts/package.scm (build-and-use-profile): Add #:allow-collisions? and pass it to 'profile-derivation'. (show-help, %options): Add '--allow-collisions'. (manifest-action, process-actions): Pass #:allow-collisions? to 'build-and-use-profile'. * tests/guix-package.sh: Add collision test. * doc/guix.texi (Invoking guix package): Document '--allow-collisions'.
* gnu: rust: Update rust to 1.24.1.Nikolai Merinov2018-03-30
| | | | | | | | | | | | | | | | | | * gnu/packages/rust.scm (rust-bootstrap): Freeze bootstrap version to 1.22.1. Reorganize bootstrap binaries to match new "rust" package structure with two ouputs "out" with Rust compiler and "cargo" with Cargo package manager. Replace all "system*" by "invoke". (rust-1.23): Rename "rustc" to "rust". Update sha256 for tarball. Add cargo related dependencies. Install "cargo" as separate "rust" output. Remove substitutes for parts that were fixed in "rustc" source code. Install documentation to separate "doc" output. Update configuration according to changes in "rustc" source code. Replace all "system*" by "invoke". (rust): Create package for 1.24.1 rust release based on rust-1.23 release. * guix/build-system/cargo.scm (default-rust): Replace "default-cargo" and "default-rustc" functions with "default-rust" function. (cargo-build-system): Take only one package as "rust" source. Use "rustc" of default output of "rust" package, use "cargo" as "cargo" output of "rust" package.
* weather: Report continuous integration stats.Ludovic Courtès2018-03-28
| | | | | | | * guix/scripts/weather.scm (histogram, throughput, queued-subset): New procedures. (report-server-coverage): Report CI information. * doc/guix.texi (Invoking guix weather): Document it.
* Add (guix ci).Ludovic Courtès2018-03-28
| | | | | * guix/ci.scm: New file. * Makefile.am (MODULES): Add it.
* guix environment: load manifest files like "guix package" doesKonrad Hinsen2018-03-27
| | | | | | | * guix/scripts/environment.scm (options/resolve-packages): When loading manifest files, use the same module environment as in "guix package". Signed-off-by: Ludovic Courtès <ludovic.courtes@inria.fr>
* guix gc: Add '--derivers'.Ludovic Courtès2018-03-27
| | | | | | | * guix/scripts/gc.scm (show-help, %options): Add '--derivers'. (guix-gc): Handle 'list-derivers'. * tests/guix-gc.sh: Add test. * doc/guix.texi (Invoking guix gc): Document it.
* graph: Add "module" node type.Ludovic Courtès2018-03-27
| | | | | | | | | | * guix/scripts/graph.scm (module-from-package) (source-module-dependencies*): New procedures. (%module-node-type): New variable. (%node-types): Add it. * guix/modules.scm (source-module-dependencies): Export. * tests/graph.scm ("module graph"): New test. * doc/guix.texi (Invoking guix graph): Document it.
* guix build: 'guix build --log-file' gracefully reports certificate errors.Ludovic Courtès2018-03-26
| | | | | | | | Previously 'guix build --log-file' would print a backtrace upon X.509 certificate verification errors. * guix/scripts/build.scm (log-url): Catch 'tls-certificate-error' in addition to 'getaddrinfo-error'.
* git: 'latest-repository-commit' calls 'repository-close!'.Ludovic Courtès2018-03-26
| | | | | * guix/git.scm (latest-repository-commit): Call 'repository-close!' when it exists.
* system: Add "guix system docker-image" command.Chris Marusich2018-03-24
| | | | | | | | | | | * gnu/system/vm.scm (system-docker-image): New procedure. * guix/scripts/system.scm (system-derivation-for-action): Add a case for docker-image, and in that case, call system-docker-image. (show-help): Document docker-image. (guix-system): Parse arguments for docker-image. * doc/guix.texi (Invoking guix system): Document "guix system docker-image". * gnu/system/examples/docker-image.tmpl: New file.
* guix: Rewrite build-docker-image to allow more paths.Chris Marusich2018-03-24
| | | | | | | | | | | * guix/docker.scm (build-docker-image): Rename "path" argument to "prefix" to reflect the fact that it is used as a prefix for the symlink targets. Add the "paths" argument, and remove the "closure" argument, since it is now redundant. Add a "transformations" argument. * guix/scripts/pack.scm (docker-image): Read the profile's reference graph and provide its paths to build-docker-image via the new "paths" argument.
* tests: Add tests for "guix pack".Chris Marusich2018-03-24
| | | | | | | | | | | | | | * guix/scripts/pack.scm (bootstrap-xz): New variable. (%options) <--bootstrap>: New option. (show-help): Document the new --bootstrap option. (guix-pack): When --bootstrap is specified, use the bootstrap Guile, tar, and xz to build the pack, and do not use any profile hooks or locales. * doc/guix.texi (Invoking guix pull): Document the new --bootstrap option. * tests/guix-pack.sh: New file. * Makefile.am (SH_TESTS): Add guix-pack.sh. * gnu/packages/package-management.scm (guix) <inputs>: Add util-linux.
* gexp: 'program-file' has a new #:module-path parameter.Ludovic Courtès2018-03-23
| | | | | | | | * guix/gexp.scm (<program-file>): Add 'path' field. (program-file): Add #:module-path parameter and honor it. (program-file-compiler): Honor the 'path' field. * tests/gexp.scm ("program-file #:module-path"): New test. * doc/guix.texi (G-Expressions): Update.
* gexp: 'gexp->script' and 'gexp->file' have a new #:module-path parameter.Ludovic Courtès2018-03-23
| | | | | | | | * guix/gexp.scm (load-path-expression): Add 'path' optional parameter. (gexp->script): Add #:module-path and honor it. (gexp->file): Likewise. * tests/gexp.scm ("gexp->script #:module-path"): New test. * doc/guix.texi (G-Expressions): Update accordingly.
* Correct name and Email for ng0.ng02018-03-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * .mailmap: Correct name and Email for ng0. * Makefile.am, doc/guix.texi, etc/completion/fish/guix.fish gnu/packages/accessibility.scm, gnu/packages/admin.scm, gnu/packages/audio.scm, gnu/packages/autotools.scm, gnu/packages/cdrom.scm, gnu/packages/check.scm, gnu/packages/cinnamon.scm, gnu/packages/compression.scm, gnu/packages/crypto.scm, gnu/packages/databases.scm, gnu/packages/django.scm, gnu/packages/dns.scm, gnu/packages/emacs.scm, gnu/packages/enlightenment.scm, gnu/packages/fonts.scm, gnu/packages/fontutils.scm, gnu/packages/forth.scm, gnu/packages/fvwm.scm, gnu/packages/games.scm, gnu/packages/gl.scm, gnu/packages/gnome.scm, gnu/packages/gnunet.scm, gnu/packages/gnupg.scm, gnu/packages/gnuzilla.scm, gnu/packages/gtk.scm, gnu/packages/guile-wm.scm, gnu/packages/guile.scm, gnu/packages/haskell-check.scm, gnu/packages/haskell-crypto.scm, gnu/packages/haskell.scm, gnu/packages/image-viewers.scm, gnu/packages/image.scm, gnu/packages/irc.scm, gnu/packages/language.scm, gnu/packages/libcanberra.scm, gnu/packages/linux.scm, gnu/packages/lisp.scm, gnu/packages/lolcode.scm, gnu/packages/lxde.scm, gnu/packages/lxqt.scm, gnu/packages/mail.scm, gnu/packages/markup.scm, gnu/packages/mate.scm, gnu/packages/maths.scm, gnu/packages/mc.scm, gnu/packages/messaging.scm, gnu/packages/music.scm, gnu/packages/ncurses.scm, gnu/packages/networking.scm, gnu/packages/nickle.scm, gnu/packages/openbox.scm, gnu/packages/pdf.scm, gnu/packages/perl-check.scm, gnu/packages/perl.scm, gnu/packages/python-crypto.scm, gnu/packages/python-web.scm, gnu/packages/python.scm, gnu/packages/qt.scm, gnu/packages/ruby.scm, gnu/packages/rust.scm, gnu/packages/scheme.scm, gnu/packages/serialization.scm, gnu/packages/shells.scm, gnu/packages/ssh.scm, gnu/packages/suckless.scm, gnu/packages/tbb.scm, gnu/packages/telephony.scm, gnu/packages/text-editors.scm, gnu/packages/textutils.scm, gnu/packages/time.scm, gnu/packages/tls.scm, gnu/packages/tor.scm, gnu/packages/version-control.scm, gnu/packages/video.scm, gnu/packages/vim.scm, gnu/packages/web.scm, gnu/packages/wm.scm, gnu/packages/xdisorg.scm, gnu/packages/xfce.scm, gnu/packages/xml.scm, gnu/packages/xorg.scm, gnu/services/certbot.scm, gnu/services/desktop.scm, gnu/services/version-control.scm, gnu/services/web.scm, guix/import/hackage.scm, guix/licenses.scm: Likewise. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
* Revert "build-system/meson: Use 'target-arm32?' for armhf-linux case."Marius Bakke2018-03-20
| | | | | | | This requires adding (guix utils) to the build inputs, and causes too many rebuilds for now. This reverts commit 24a2e9172a2d8970d57865c6130f2184385183a3.
* build-system/meson: Use 'target-arm32?' for armhf-linux case.Efraim Flashner2018-03-19
| | | | | * guix/build-system/meson.scm (lower, meson-build): Replace armhf-linux detection with 'target-arm32?' macro.
* Merge branch 'master' into stagingMarius Bakke2018-03-19
|\
| * git-download: Fix recursive checkouts.Eric Bavier2018-03-18
| | | | | | | | | | * guix/git-download.scm (git-fetch)<build>: Fix match on INPUTS, which may contain package outputs.
| * glob: Add an extra glob pattern compilation stage.Ludovic Courtès2018-03-18
| | | | | | | | | | | | | | | | | | | | | | | | | | * guix/glob.scm (compile-glob-pattern): Rename to... (string->sglob): ... this. (compile-sglob, string->compiled-sglob): New procedures. (glob-match?): Replace '?, 'range, and 'set with a single clause. * tests/glob.scm (test-compile-glob-pattern): Rename to... (test-string->sglob): ... this. Adjust accordingly. (test-glob-match): Use 'string->compiled-sglob' instead of 'compile-glob-pattern'. * gnu/build/linux-modules.scm (read-module-aliases): Use 'string->compiled-sglob' instead of 'compile-glob-pattern'.
| * glob: Support square brackets in patterns.Ludovic Courtès2018-03-18
| | | | | | | | | | | | | | | | | | | | | | * guix/glob.scm (wildcard-indices): Remove. (parse-bracket): New procedure. (compile-glob-pattern): Rewrite. Support square brackets for sets and ranges. (glob-match?): Support sets and ranges. * tests/glob.scm (test-compile-glob-pattern) (test-glob-match): New macros. Use them to rewrite the existing tests, and add new tests.
| * import: elpa: Return 'license:gpl3+ for ELPA only.Ludovic Courtès2018-03-18
| | | | | | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/30836>. Reported by Konrad Hinsen <konrad.hinsen@fastmail.net>. * guix/import/elpa.scm (elpa-package->sexp): Add LICENSE parameter and honor it. (elpa->guix-package): Pass 'license:gpl3+ only when REPO is 'gnu.
* | Merge branch 'master' into stagingMarius Bakke2018-03-18
|\|
| * git: 'switch-to-ref' accepts short commit IDs.Ludovic Courtès2018-03-18
| | | | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/30716>. Reported by Björn Höfling <bjoern.hoefling@bjoernhoefling.de>. * guix/git.scm (switch-to-ref): When REF is a commit, check the length of COMMIT and use 'object-lookup-prefix' if available.
| * import: elpa: Fix typos in documentation stringsKonrad Hinsen2018-03-18
| | | | | | | | | | | | * guix/import/elpa.scm: Fix typos in docstrings. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| * import: elpa: use https in download URLsKonrad Hinsen2018-03-18
| | | | | | | | | | | | * guix/import/elpa.scm (elpa-url): Use HTTPS. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| * download: Remove TU Wien mirror.Mark H Weaver2018-03-17
| | | | | | | | | | * guix/download.scm (%mirrors): Remove gd.tuwien.ac.at, which no longer seems to exist.
| * guix system: Add '--skip-checks'.Ludovic Courtès2018-03-15
| | | | | | | | | | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/30760>. Reported by Tomáš Čech <sleep_walker@gnu.org>. * guix/scripts/system.scm (perform-action): Add #:skip-safety-checks? and honor it. (show-help, %options): Add --skip-checks. (process-action): Pass #:skip-safety-checks? to 'perform-action'. * doc/guix.texi (Invoking guix system): Document --skip-checks.
| * build-system: minify: Do not import (ice-9 popen) in the build environment.Ricardo Wurmus2018-03-12
| | | | | | | | | | | | | | | | The (ice-9 popen) module should not be added to the imported-modules here, because that depends on the Guile that is used on the host side. * guix/build-system/minify.scm (%minify-build-system-modules): Remove import of (ice-9 popen).
* | build-system/meson: Skip the 'fix-runpath' phase on armhf.Marius Bakke2018-03-12
| | | | | | | | | | | | * guix/build-system/meson.scm (lower): Remove DEFAULT-PATCHELF from inputs on armhf. (meson-build): Ignore the 'fix-runpath' phase when building for arm systems.
* | build-system/meson: Add the output directory to RUNPATH.Marius Bakke2018-03-12
|/ | | | * guix/build/meson-build-system.scm (configure): Set LDFLAGS before invoking meson.
* hash: Add 'sha1'.Ludovic Courtès2018-03-08
| | | | | | | | * guix/hash.scm (GCRY_MD_SHA1): New macro. (bytevector-hash): New procedure. (sha256): Express in terms of 'bytevector-hash'. (sha1): New procedure. * tests/hash.scm ("sha1, empty", "sha1, hello"): New tests.
* ui: 'display-hint' preserves Texinfo formatting.Ludovic Courtès2018-03-07
| | | | | | | | The previous method would mess up with @example formatting, for instance. * guix/ui.scm (display-hint): Parameterize '%text-width' instead of using 'fill-paragraph'.
* ui: Display fix hints in the case where we have location info.Ludovic Courtès2018-03-07
| | | | | * guix/ui.scm (call-with-error-handling): Display fix-hints in the error + message case.
* linux-initrd: Factorize 'check-device-initrd-modules'.Ludovic Courtès2018-03-07
| | | | | | | | | * gnu/system/mapped-devices.scm (check-device-initrd-modules): Move to... * gnu/system/linux-initrd.scm (check-device-initrd-modules): ... here. New procedure. * po/guix/POTFILES.in: Add it. * guix/scripts/system.scm (check-initrd-modules)[check-device]: Remove. Use 'check-device-initrd-modules' instead.
* ui: 'load*' no longer fails on Guile 2.2.3 upon EACCES or similar.Ludovic Courtès2018-03-06
| | | | | | | | | | | | | | Previously, if ~/.cache was not write-accessible, 'guix' would exit with code 1 without printing any message. That was because the 'make-stack' call would fail since the exception (a 'system-error) came from 'compile-file', which was called at a point where TAG wasn't installed yet. Secondly, to mimick auto-compilation behavior, we just swallow 'system-error raised by 'compile-file'. Reported by Clément Lassieur. * guix/ui.scm (load*): Move 'compile-file' call in the dynamic extent of TAG. Catch 'system-error around it and ignore it.
* ui: Better workaround for lack of '%fresh-auto-compile' on 2.2.3.Ludovic Courtès2018-03-05
| | | | | | Fixes <https://bugs.gnu.org/29226> for the most part. * guix/ui.scm (load*): Add call to 'compile-file' on 2.2.3.
* git-download: Fetch only the required commit, if possible.Danny Milosavljevic2018-03-04
| | | | * guix/build/git.scm (git-fetch): Fetch only the required commit, if possible.
* services: messaging: Prosody config supports file-like objects.Clément Lassieur2018-03-03
| | | | | | | | | | | | | | | | | | | | | | | | * doc/guix.texi (Messaging Services): Update accordingly. * gnu/services/configuration.scm (serialize-configuration, serialize-maybe-stem, serialize-package): Return strings or string-valued gexps (these procedures were only used for their side-effects). * gnu/services/messaging.scm (serialize-field, serialize-field-list, enclose-quotes, serialize-raw-content, serialize-ssl-configuration, serialize-virtualhost-configuration-list, serialize-int-component-configuration-list, serialize-ext-component-configuration-list, serialize-virtualhost-configuration, serialize-int-component-configuration, serialize-ext-component-configuration, serialize-prosody-configuration): Return strings or string-valued gexps and stop printing. (prosody-activation): Use SERIALIZE-PROSODY-CONFIGURATION's return value with MIXED-TEXT-FILE instead of using its output with PLAIN-FILE. (serialize-non-negative-integer, serialize-non-negative-integer-list): Convert numbers to strings. (file-object?, serialize-file-object, file-object-list?, serialize-file-object-list): New procedures. (ssl-configuration)[capath, cafile], (prosody-configuration)[plugin-paths, groups-file]: Replace FILE-NAME with FILE-OBJECT. * guix/gexp.scm (file-like?): New exported procedure.
* guix system: Check for the lack of modules in the initrd.Ludovic Courtès2018-03-02
| | | | | | | | | | | | | * guix/scripts/system.scm (check-mapped-devices): Take an OS instead of a list of <mapped-device>. Pass #:needed-for-boot? and #:initrd-modules to CHECK. (check-initrd-modules): New procedure. (perform-action): Move 'check-mapped-devices' call first. Add call to 'check-initrd-modules'. * gnu/system/mapped-devices.scm (check-device-initrd-modules): New procedure. (check-luks-device): Add #:initrd-modules and #:needed-for-boot?. Use them to call 'check-device-initrd-modules'.
* Add (guix glob).Ludovic Courtès2018-03-02
| | | | | | * guix/glob.scm, tests/glob.scm: New files. * Makefile.am (MODULES): Add guix/glob.scm. (SCM_TESTS): Add tests/glob.scm.
* environment: Add --user.Mike Gerwitz2018-03-02
| | | | | | | | | | | | | | | | | | This change allows overriding the home directory of all filesystem mappings to help hide the identity of the calling user in a container. * doc/guix.texi (Invoking guix environment)[--container]: Mention --user. [--user]: Add item. * guix/scripts/environment.scm (show-help): Add --user. (%options): Add --user. (launch-environment/container) Add 'user' parameter. Update doc. Override 'user-mappings' using 'override-user-mappings'. Consider override for chdir. (mock-passwd, user-override-home, overrid-euser-dir): New procedures. (guix-environment): Disallow --user without --container. Provide user to 'launch-environment/container'. * tests/guix-environment.sh: Add user test. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* environment: Add --link-profile.Mike Gerwitz2018-03-02
| | | | | | | | | | | | | | | | | | | | | This change is motivated by attempts to run programs (like GNU IceCat) within containers. The 'fontconfig' program, for example, is configured explicitly to check ~/.guix-profile for additional fonts. There were no existing container tests in 'tests/guix-environment.sh', but I added one anyway for this change. * doc/guix.texi (Invoking guix environment): Add '--link-profile'. * guix/scripts/environment.scm (show-help): Add '--link-profile'. (%options): Add 'link-profile' as '#\P', assigned to 'link-profile?'. (link-environment): New procedure. (launch-environment/container): Use it when 'link-profile?'. [link-profile?]: New parameter. (guix-environment): Leave when '--link-prof' but not '--container'. Add '#:link-profile?' argument to 'launch-environment/container' application. * tests/guix-environment-container.sh: New '--link-profile' test. Signed-off-by: Ludovic Courtès <ludo@gnu.org>