Merge branch 'master' into staging
bournish: 'ls' adjusts the column width depending on the entries. * guix/build/bournish.scm (display-tabulated): Remove #:columns and #:column-width parameters. Add #:terminal-width and #:column-gap. Compute COLUMN-WIDTH and COLUMNS.
bournish: 'ls' lists directory contents. Suggested by Ricardo Wurmus. * guix/build/bournish.scm (ls-command-implementation): When FILE is a directory, list its contents rather than FILE itself.
guix: Add java-utils. * guix/build/java-utils.scm: New file. * guix/build-system/ant.scm: Use it. * Makefile.am (MODULES): Add it. Co-authored-by: Ricardo Wurmus <rekado@elephly.net>
ant-build-system: Add default "check" target. * guix/build-system/ant.scm (ant-build): Change default test target to "check"; add "test-dir" argument. * guix/build/ant-build-system.scm (default-build.xml): Add "test-dir" argument; add ant targets "compile-tests" and "check". (configure): Add "test-dir" argument; pass it to "default-build.xml".
ant-build-system: Allow specifying source directory. * guix/build-system/ant.scm (ant-build), guix/build/ant-build-system.scm (default-build.xml): Add parameter source-dir. * guix/build/ant-build-system.scm (configure): Pass source-dir on to default-build.xml. * doc/guix.texi (Build Systems): Document it. Co-authored-by: Ricardo Wurmus <rekado@elephly.net>
pull: Build package modules without optimizations on Guile 2.2. * guix/build/pull.scm (%default-optimizations) (%lightweight-optimizations): New variables. (optimization-options): New procedure. Taken from build-aux/compile-all.scm. (build-guix): Pass it to 'compile-file'.
pull: Build with the matching Guile major version. Previously, 'guix pull' would always build with Guile 2.0. Now it builds with the Guile that matches (effective-version). * build-aux/build-self.scm (false-if-wrong-guile) (package-for-current-guile): New procedures. (guile-json, guile-ssh): Use it. (guile-for-build): New procedure. (build): Use (effective-version) instead of the hard-coded "/2.0". Add (guix modules) closure to #:modules argument. Pass \#:guile-for-build argument to 'gexp->derivation'. * guix/build/pull.scm (depends-on-guile-ssh?, all-scheme-files): New procedures. (build-guix): Show the output of (version). Use the above procedures. Filter out files that match 'depends-on-guile-ssh?' when (ssh session) is missing.
download: Continue handshake upon TLS warning alerts. This allows us to download from site such as <https://fusionforge.int-evry.fr> where the server does not recognize the server name passed via the 'server_name' extension. * guix/build/download.scm (tls-wrap): Catch 'gnutls-error' around 'handshake'. Upon ERROR/WARNING-ALERT-RECEIVED, print a message and call 'handshake'.
Merge branch 'master' into staging
cache: Work around 'time-monotonic' bug in Guile 2.2.2. * guix/cache.scm (time-monotonic) [guile-2.2]: New variable. * tests/cache.scm (time-monotonic) [guile-2.2]: Likewise. * guix/build/download.scm (time-monotonic) [guile-2.2]: Adjust comment: it's a 2.2.2 bug.
download: Work around Guile 2.2 bug with 'time-monotonic' objects. * guix/build/download.scm (time-monotonic) [guile-2.2]: New variable.
Merge branch 'master' into staging
build-system/cargo: Remove store reference. * guix/build/cargo-build-system.scm (generate-checksums): Remove store reference from comment. This comment was matching assert-no-store-file-names regexp in Makefile.am. Also, edit procedure docstring to precise that DIR-NAME is a store directory. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
syscalls: Add load-linux-module. * guix/build/syscalls.scm (load-linux-module): New procedure. Reimplemented from guile-linux-syscalls.patch. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
syscalls: Use define-as-needed for network-interface syscalls. * guix/build/syscalls.scm (network-interface-flags): Use define-as-needed macro and remove from export list. (set-network-interface-flags): Ditto. (set-network-interface-address): Ditto. (IFF_UP, IFF_BROADCAST and IFF_LOOPBACK): Ditto. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
syscalls: Use define-as-needed for mount and umount. * guix/build/syscalls.scm (mount): Use define-as-needed macro and remove from export list. (umount): Ditto. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
syscalls: Add reboot. * guix/build/syscalls.scm (define-as-needed): New macro. (reboot): New procedure. Reimplemented from guile-linux-syscalls.patch. (RB_AUTOBOOT, ..., RB_KEXEC): New flags copied from static Guile patch. Co-Authored-By: Ludovic Courtès <ludo@gnu.org> Signed-off-by: Ludovic Courtès <ludo@gnu.org>
syscalls: Allow mount and umount use from static Guile. * guix/build/syscalls.scm (mount): Use Guile core mount if called from static Guile, otherwise use FFI based mount implementation. (umount): Ditto. This allows to use (guix build syscalls) from a module independently of calling context. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
profiles: Slightly improve the instructions in 'etc/profile'. * guix/build/profiles.scm (build-etc/profile): Fix typo in comment. Add backslash in the generated shell comment.