summaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* compile: Do not optimize "gnu/tests/*".Ludovic Courtès2020-05-25
| | | | | * guix/build/compile.scm (optimization-options): Add "gnu/tests/" to level 0.
* gexp: The result of 'imported-files/derivation' is non-substitutable.Ludovic Courtès2020-05-25
| | | | | * guix/gexp.scm (imported-files/derivation): Pass #:substitutable? #f to 'gexp->derivation'.
* self: Optimize 'file-append*' for 'local-file?'.Ludovic Courtès2020-05-25
| | | | | * guix/self.scm (file-append*): Add 'local-file?' case. * guix/gexp.scm (local-file-select?): Export.
* gexp: Fix expansion for (file-append (local-file ...) ...).Ludovic Courtès2020-05-25
| | | | | | | | | Fixes <https://bugs.gnu.org/41527>. Regression introduced in d03001a31a6d460b712825640dba11e3f1a53a14. * guix/gexp.scm (lower+expand-object): When LOWERED is not a struct and EXPAND is true, call EXPAND. * tests/gexp.scm ("file-append, raw store item"): New test.
* pull: Protect against downgrade attacks.Ludovic Courtès2020-05-25
| | | | | | | | | | | * guix/scripts/pull.scm (%default-options): Add 'validate-pull'. (%options, show-help): Add '--allow-downgrades'. (warn-about-backward-updates): New procedure. (guix-pull): Pass #:current-channels and #:validate-pull to 'latest-channel-instances'. * guix/channels.scm (ensure-forward-channel-update): Add hint for when (channel-commit channel) is true. * doc/guix.texi (Invoking guix pull): Document '--allow-downgrades'.
* channels: 'latest-channel-instances' guards against non-forward updates.Ludovic Courtès2020-05-25
| | | | | | | | | | | | | | | * guix/channels.scm (latest-channel-instance): Add #:starting-commit and pass it to 'update-cached-checkout'. Return the commit relation as a second value. (ensure-forward-channel-update): New procedure. (latest-channel-instances): Add #:current-channels and #:validate-pull. [current-commit]: New procedure. Pass #:starting-commit to 'latest-channel-instance'. When the returned relation is true, call VALIDATE-PULL. (latest-channel-derivation): Add #:current-channels and #:validate-pull. Pass them to 'latest-channel-instances*'. * tests/channels.scm ("latest-channel-instances #:validate-pull"): New test.
* git: 'update-cached-checkout' returns the commit relation.Ludovic Courtès2020-05-25
| | | | | | | | | | | * guix/git.scm (update-cached-checkout): Add #:starting-commit parameter. Call 'commit-relation' when #:starting-commit is true. Always return the relation or #f as the third value. (latest-repository-commit): Adjust accordingly. * guix/import/opam.scm (get-opam-repository): Likewise. * tests/channels.scm ("latest-channel-instances includes channel dependencies") ("latest-channel-instances excludes duplicate channel dependencies"): Update mock of 'update-cached-checkout' accordingly.
* channels: 'latest-channel-instances' doesn't leak internal state.Ludovic Courtès2020-05-25
| | | | | * guix/channels.scm (latest-channel-instances): Remove 'previous-channels' argument. Introduce 'loop' and use it.
* git: Add 'commit-relation'.Ludovic Courtès2020-05-25
| | | | | * guix/git.scm (commit-relation): New procedure. * tests/git.scm ("commit-relation"): New test.
* guix package: Support multiple profiles with '--list-installed'.zimoun2020-05-23
| | | | | | | * guix/scripts/package.scm (process-query): List installed multiple profiles. * tests/guix-package-net.sh: Test it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* upstream: Use 'origin-hash'.Ludovic Courtès2020-05-22
| | | | | * guix/upstream.scm (update-package-source): Use 'origin-hash' instead of 'origin-sha256'.
* lint: archival: Use 'origin-hash'.Ludovic Courtès2020-05-22
| | | | | * guix/lint.scm (check-archival): Use 'origin-hash' instead of 'origin-sha256', removing hard-coded "sha256".
* packages: Introduce <content-hash> and use it in <origin>.Ludovic Courtès2020-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * guix/packages.scm (<content-hash>): New record type. (define-content-hash-constructor, build-content-hash) (content-hash): New macros. (print-content-hash): New procedure. (<origin>): Rename constructor to '%origin'. [sha256]: Remove field. [hash]: New field. Adjust users. (origin-compatibility-helper, origin): New macros. (origin-sha256): New deprecated procedure. (origin->derivation): Adjust accordingly. * tests/packages.scm ("package-source-derivation, origin, sha512"): New test. * guix/tests.scm: Hide (gcrypt hash) 'sha256' for proper syntax matching. * tests/challenge.scm: Add #:prefix for (gcrypt hash) and adjust users. * tests/derivations.scm: Likewise. * tests/store.scm: Likewise. * tests/graph.scm ("bag DAG, including origins"): Provide 'sha256' field with the right length. * gnu/packages/aspell.scm (aspell-dictionary) (aspell-dict-ca, aspell-dict-it): Use 'hash' and 'content-hash' for proper syntax matching. * gnu/packages/bash.scm (bash-patch): Rename 'sha256' to 'sha256-bv'. * gnu/packages/bootstrap.scm (bootstrap-executable): Rename 'sha256' to 'bv'. * gnu/packages/readline.scm (readline-patch): Likewise. * gnu/packages/virtualization.scm (qemu-patch): Rename 'sha256' to 'sha256-bv'. * guix/import/utils.scm: Hide (gcrypt hash) 'sha256'.
* packages: Add 'base64' macro.Ludovic Courtès2020-05-22
| | | | | | * guix/packages.scm (define-compile-time-decoder): New macro. (base32): Redefine in terms of it. (base64): New macro.
* guix hash, guix download: Support base64 format.Ludovic Courtès2020-05-22
| | | | | | | | * guix/scripts/download.scm (show-help, %options): Support "base64" format. * guix/scripts/hash.scm (show-help, %options): Likewise. * tests/guix-hash.sh: Test it. * doc/guix.texi (Invoking guix hash): Document it.
* guix hash, guix download: Add '--hash'.Ludovic Courtès2020-05-22
| | | | | | | | | | | | * guix/scripts/download.scm (%default-options): Add 'hash-algorithm'. (show-help, %options): Add "--hash". (guix-download): Honor it. * guix/scripts/hash.scm (%default-options): Add 'hash-algorithm'. (show-help, %options): Add "--hash". (guix-hash): Honor it. * tests/guix-hash.sh: Test '-H sha512'. * doc/guix.texi (Invoking guix download): Document it. (Invoking guix hash): Document it.
* build: asdf-build-system: Use SBCL source in CL packages.Pierre Neidhardt2020-05-21
| | | | | | | | | | | * guix/build/asdf-build-system.scm (copy-files-to-output): Don't attempt to reset timestamps on files without write access. (install): When parent SBCL package is in the inputs, use its source. This way we get possibly patched sources in CL packages as well (e.g. for FFI). This is also useful for sources that generate files on load-op, like cl-unicode. * guix/build-system/asdf.scm (package-with-build-system): Forward the SBCL parent as a native input so that it can be used in the above install phase.
* publish: Improve performance by increasing buffer size.Ricardo Wurmus2020-05-19
| | | | * guix/scripts/publish.scm (http-write): Increase socket send buffer.
* build-system/guile: Expose #:scheme-file-regexp.Alex Sassmannshausen2020-05-18
| | | | | * guix/build-system/guile.scm (%scheme-file-regexp): New variable. (guile-build): Accept #:scheme-file-regexp and pass it on to builder.
* guix describe: Add '--list-formats'Ekaitz Zarraga2020-05-18
| | | | | | | | | * guix/scripts/describe.scm (%available-formats): New variable. (list-formats): New procedure. (%options, show-help): Add --list-formats * doc/guix.texi: Add --list-formats Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* build: minify-build-system: Fail to install empty files.Efraim Flashner2020-05-18
| | | | | * guix/build/minify-build-system.scm (install): Produce an error if the minified file is zero bytes.
* utils: 'target-arm32?' & co. take an optional parameter.Ludovic Courtès2020-05-16
| | | | | * guix/utils.scm (target-arm32?, target-aarch64?) (target-arm?, target-64bit?): Make 'target' an optional parameter.
* gexp: Add 'let-system'.Ludovic Courtès2020-05-16
| | | | | | | | | | | | | | | * guix/gexp.scm (<system-binding>): New record type. (let-system): New macro. (system-binding-compiler): New procedure. (default-expander): Add 'self-quoting?' case. (self-quoting?): New procedure. (lower-inputs): Add 'filterm'. Pass the result of 'mapm/accumulate-builds' through FILTERM. (gexp->sexp)[self-quoting?]: Remove. * tests/gexp.scm ("let-system", "let-system, target") ("let-system, ungexp-native, target") ("let-system, nested"): New tests. * doc/guix.texi (G-Expressions): Document it.
* gexp: Compilers can now return lowerable objects.Ludovic Courtès2020-05-16
| | | | | | | * guix/gexp.scm (lower-object): Iterate if LOWERED is a struct. (lower+expand-object): New procedure. (gexp->sexp): Use it. (define-gexp-compiler): Adjust docstring.
* licenses: Update Zlib license URL.Ludovic Courtès2020-05-15
| | | | * guix/licenses.scm (zlib): Change URL.
* quirks: Add patch for <https://bugs.gnu.org/41214>.Ludovic Courtès2020-05-15
| | | | | | | Fixes <https://bugs.gnu.org/41214>. * guix/quirks.scm (%bug-41214-patch): New variable. (%patches): Add it.
* channels: 'build-from-source' restores '%guile-for-build'.Ludovic Courtès2020-05-15
| | | | | | | | | | | | | | | | | Not restoring it would cause problems when running: guix time-machine --commit=6298c3ffd9654d3231a6f25390b056483e8f407c or similar because the target Guix would be built with 2.2, and then we'd erroneously go on and attempt build the profile with 2.2. This would fail because profile dependencies such as "guile-gdbm-ffi" now target 3.0. * guix/channels.scm (call-with-guile): New procedure. (with-guile): New macro. (build-from-source): Use it instead of calling 'set-guile-for-build' just once. This ensures that '%guile-for-build' is restored afterwards.
* syscalls: Adjust 'sockaddr-in', 'sockaddr-in6' structs for the Hurd.Jan (janneke) Nieuwenhuizen2020-05-15
| | | | | | | | | | * guix/build/syscalls.scm (sockaddr-in,sockaddr-in6): Rename to ... (sockaddr-in/linux, sockaddr-in6/linux): ... this. Rename introduced bindings as well. (write-socket-address!/linux,read-socket-address/linux): Rename from (write-socket-address!, read-socket-address): ... new switches between those and ... (write-socket-address!/hurd, read-socket-address/hurd): ... these new function.
* channels: Move quirks and patches to (guix quirks).Ludovic Courtès2020-05-15
| | | | | | | | | * guix/channels.scm (apply-patches): Don't access <patch> record directly; use 'applicable-patch?' and 'apply-patch' instead. (<patch>, syscalls-reexports-local-variables?) (guile-2.2.4, %quirks, %bug-41028-patch, %patches): Move to... * guix/quirks.scm: ... here. New file. (apply-patch, applicable-patch?): New procedures.
* pack: Add relocation via ld.so and fakechroot.Ludovic Courtès2020-05-14
| | | | | | | | | | | | | | | | | | | | | | | | * gnu/packages/aux-files/run-in-namespace.c (HAVE_EXEC_WITH_LOADER): New macro. (bind_mount): Rename to... (mirror_directory): ... this. Add 'firmlink' argument and use it instead of calling mkdir/open/close/mount directly. (bind_mount, make_symlink): New functions. (exec_in_user_namespace): Adjust accordingly. (exec_with_loader) [HAVE_EXEC_WITH_LOADER]: New function. (exec_performance): New function. (engines): Add them. * guix/scripts/pack.scm (wrapped-package)[fakechroot-library] [audit-module]: New procedures. [audit-source]: New variable. [build](elf-interpreter, elf-loader-compile-flags): New procedures. (build-wrapper): Use them. * tests/guix-pack-relocatable.sh: Test with 'GUIX_EXECUTION_ENGINE=fakechroot'. * doc/guix.texi (Invoking guix pack): Document the 'performance' and 'fakechroot' engines. * gnu/packages/aux-files/pack-audit.c: New file. * Makefile.am (AUX_FILES): Add it.
* store: 'mapm/accumulate-builds' preserves '%current-target-system'.Ludovic Courtès2020-05-14
| | | | | | | | | | Fixes <https://bugs.gnu.org/41182>. * guix/store.scm (mapm/accumulate-builds): Pass #:system and #:target to 'run-with-store'. * tests/store.scm ("mapm/accumulate-builds, %current-target-system"): New test. * tests/guix-pack.sh: Add 'guix pack -d --target' test.
* packages: Ensure bags are insensitive to '%current-target-system'.Ludovic Courtès2020-05-14
| | | | | | | | | | | | | Fixes a bug whereby a bag's transitive dependencies would depend on the global '%current-target-system' value. Partly fixes <https://issues.guix.gnu.org/41182>. * guix/packages.scm (bag-transitive-inputs) (bag-transitive-build-inputs, bag-transitive-target-inputs): Parameterize '%current-target-system'. * tests/packages.scm ("package->bag, sensitivity to %current-target-system"): New test.
* pack: Do not cross-compile the image building tools.Ludovic Courtès2020-05-14
| | | | | | | | | | | | | | Until now, something like: guix pack -f docker --target=arm-linux-gnueabihf would attempt to cross-compile tar. * guix/scripts/pack.scm (self-contained-tarball): Pass #:target to 'gexp->derivation'. (squashfs-image): Use #+ instead of #$ for ARCHIVER. Use 'file-append' instead of 'string-append'. Pass #:target to 'gexp->derivation'. (docker-image): Likewise.
* syscalls: Add 'getxattr'.base-for-series-3948Jan (janneke) Nieuwenhuizen2020-05-14
| | | | | * guix/build/syscalls.scm (getxattr): New procedure. * tests/syscalls.scm ("getxattr, setxattr"): Test it, together with setxattr.
* compile: Reduce optimization levels for gnu/services and gnu/packages.Ludovic Courtès2020-05-13
| | | | | | | * guix/build/compile.scm (optimization-options)[strip-option] [override-option]: New procedures. Add case for "gnu/services". Change "gnu/packages" to '-O0 -Opartial-eval'.
* syscalls: Add 'setxattr'.Jan (janneke) Nieuwenhuizen2020-05-13
| | | | | | * guix/build/syscalls.scm (setxattr): New procedure. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* guix: cran: Add missing default R package.pimi2020-05-13
| | | | | | | * guix/import/cran.scm (default-r-packages): Add "datasets" to the list of default R packages. Signed-off-by: Ricardo Wurmus <rekado@elephly.net>
* mailmap: Update entries for Nikita.nikita2020-05-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * .mailmap: change email and name for Nikita. * 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/elixir.scm, gnu/packages/emacs-xyz.scm, gnu/packages/emacs.scm, gnu/packages/enlightenment.scm, gnu/packages/erlang.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/gtk.scm, gnu/packages/guile-wm.scm, gnu/packages/guile-xyz.scm, gnu/packages/haskell-apps.scm, gnu/packages/haskell-check.scm, gnu/packages/haskell-crypto.scm, gnu/packages/haskell-xyz.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-xyz.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-compression.scm, gnu/packages/python-crypto.scm, gnu/packages/python-web.scm, gnu/packages/python-xyz.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: Efraim Flashner <efraim@flashner.co.il>
* guix graph: Add '--path'.Ludovic Courtès2020-05-11
| | | | | | | | | * guix/scripts/graph.scm (display-path): New procedure. (%options, show-help): Add '--path'. (guix-graph): Handle it. * tests/guix-graph.sh: Add tests. * doc/guix.texi (Invoking guix graph): Document it. (Invoking guix size): Mention it.
* graph: Add 'shortest-path'.Ludovic Courtès2020-05-11
| | | | | | | * guix/graph.scm (shortest-path): New procedure. * tests/graph.scm ("shortest-path, packages + derivations") ("shortest-path, reverse packages") ("shortest-path, references"): New tests.
* graph: reference/referrer node types work with graph traversal.Ludovic Courtès2020-05-11
| | | | | | | | | | | | The graph traversal procedures in (guix graph) assume that nodes can be compared with 'eq?', which was not the case for nodes of %REFERENCE-NODE-TYPE and %REFERRER-NODE-TYPE (strings). * guix/scripts/graph.scm (intern): New procedure. (ensure-store-items, references*) (%reference-node-type, non-derivation-referrers) (%referrer-node-type): Use it on all store items. * tests/graph.scm ("node-transitive-edges, references"): New test.
* guix package, show: Support multiple queries.zimoun2020-05-11
| | | | | | | * guix/scripts/package.scm (process-query): Show multiple queries. * guix/scripts/show.scm (guix-show): Reverse to display in order. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* Merge branch 'core-updates'Marius Bakke2020-05-08
|\
| * build-system/emacs: Hide the 'delete' binding from (guix build utils).Marius Bakke2020-05-07
| | | | | | | | | | | | | | This gets rid of a warning from 'compute-guix-derivation.drv' when running on Guile 3.0. (guix build emacs-build-system) includes (srfi srfi-1) anyway. * guix/build/emacs-build-system.scm: Do not import 'delete' from (guix build utils).
| * channels: Add patch for <https://bugs.gnu.org/41028>.Ludovic Courtès2020-05-07
| | | | | | | | | | | | | | | | | | | | | | | | | | Without this patch, we couldn't jump from here to commits before 05e783871c2c69b402e088863d46f5be7915ac74 because the 'compute-guix-derivation' script would crash with an unbound-variable error for 'call-with-new-thread'. Fixes <https://bugs.gnu.org/41028>. Reported by Christopher Baines <mail@cbaines.net>. * guix/channels.scm (%bug-41028-patch): New variable. (%patches): Add it.
| * channels: Add mechanism to patch checkouts of the 'guix channel.Ludovic Courtès2020-05-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * guix/channels.scm (<patch>): New record type. (apply-patches): New procedure. (latest-channel-instance)[dot-git?]: New procedure. Use 'update-cached-checkout' and 'add-to-store' instead of 'latest-repository-commit'. Call 'apply-patches' when CHANNEL is the 'guix channel. (%patches): New variable. * guix/git.scm (url+commit->name): Make public. * tests/channels.scm ("latest-channel-instances includes channel dependencies") ("latest-channel-instances excludes duplicate channel dependencies"): Mock 'update-cached-checkout' instead of 'latest-repository-commit'. Wrap body in 'with-store' and pass the store to 'latest-channel-instances'.
| * channels: Add 'latest-channel-instance'.Ludovic Courtès2020-05-07
| | | | | | | | | | * guix/channels.scm (latest-channel-instance): New procedure. (latest-channel-instances): Use it.
| * Merge branch 'master' into core-updatesMarius Bakke2020-05-06
| |\
| * \ Merge branch 'master' into core-updatesMarius Bakke2020-05-05
| |\ \
| * \ \ Merge branch 'master' into core-updatesMarius Bakke2020-05-02
| |\ \ \