Mark H Weaver
4f8cede062
syscalls: If a syscall is not available, defer the error.
...
* guix/build/syscalls.scm (syscall->procedure): New procedure.
(mount, umount, swapon, swapoff, clone, pivot-root): Use it.
(clone): Add case for nonexistent syscall id.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2016-04-18 19:36:31 +02:00
Ludovic Courtès
dd1d09f7e4
utils: 'cache-directory' gracefully deals with unset 'HOME'.
...
Fixes <http://bugs.gnu.org/23165 >.
* guix/utils.scm (cache-directory): Use 'getpwuid' when 'HOME' is unset.
2016-04-18 19:26:34 +02:00
Ludovic Courtès
6d2b43915f
syscalls: 'terminal-columns' ignores non-file ports.
...
* guix/build/syscalls.scm (terminal-columns): Call
'terminal-window-size' only when PORT is a file port.
* tests/syscalls.scm ("terminal-columns non-file port"): New test.
2016-04-16 00:52:19 +02:00
Ludovic Courtès
b0a6a97130
substitute: Honor the number of columns of the client terminal.
...
* guix/store.scm (set-build-options): Add #:terminal-columns parameter
and honor it.
* guix/scripts/substitute.scm (client-terminal-columns): New procedure.
(guix-substitute): Use it to parameterize 'current-terminal-columns'.
2016-04-15 00:32:18 +02:00
Ludovic Courtès
cc44fbb8d9
guix download: Honor the number of columns of the terminal.
...
* guix/scripts/download.scm (guix-download): Parameterize
'current-terminal-columns'.
2016-04-15 00:32:18 +02:00
Ludovic Courtès
9703fef415
ui: Use 'terminal-columns'.
...
* guix/ui.scm (%text-width): Default to (terminal-columns).
2016-04-15 00:32:18 +02:00
Ludovic Courtès
069d43a765
ui: 'package->recutils' accurately honors the number of columns.
...
* guix/ui.scm (package->recutils)[width*]: New variable. Use it instead
of WIDTH.
2016-04-15 00:32:18 +02:00
Ludovic Courtès
29ff6d9fcc
syscalls: Add TIOCGWINSZ bindings.
...
* guix/build/syscalls.scm (TIOCGWINSZ): New macro.
(<window-size>): New record type.
(winsize): New C struct.
(winsize-struct): New variable.
(terminal-window-size, terminal-columns): New procedures.
2016-04-15 00:32:18 +02:00
Ludovic Courtès
4d276c6403
download: Add 'current-terminal-columns' parameter.
...
* guix/build/download.scm (current-terminal-columns): New variable.
(progress-proc): Use it instead of the hard-coded "80".
2016-04-15 00:32:18 +02:00
Ludovic Courtès
8a2154fefa
download: Send an ANSI erase-in-line sequence in addition to CR.
...
Partly fixes <http://bugs.gnu.org/22536 >.
Reported by Danny Milosavljevic <dannym@scratchpost.org>.
* guix/build/download.scm (progress-proc): Send an ANSI erase-in-line
sequence.
2016-04-15 00:32:18 +02:00
Ludovic Courtès
63e8bb12a4
gnu-maintenance: Move FTP directory info to 'properties' fields.
...
* guix/gnu-maintenance.scm (ftp-server/directory): Rewrite to honor
PACKAGE's properties. Remove list of quirks.
(releases): Add #:server and #:directory parameters. Remove call
to 'ftp-server/directory'.
(latest-release): Likewise.
(latest-release*): Add call to 'ftp-server/directory'. Honor
'upstream-name' property of PACKAGE.
* gnu/packages/fonts.scm (font-gnu-freefont-ttf): Add 'properties'
field.
* gnu/packages/gnupg.scm (libgpg-error, libgcrypt, libassuan):
(libksba, gnupg): Likewise.
* gnu/packages/gnuzilla.scm (icecat): Likewise.
* gnu/packages/package-management.scm (guix-0.10.0): Likewise.
* gnu/packages/pretty-print.scm (source-highlight): Likewise.
* gnu/packages/scheme.scm (mit-scheme): Likewise.
* gnu/packages/telephony.scm (ucommon): Likewise.
* gnu/packages/tls.scm (gnutls): Likewise.
2016-04-15 00:32:18 +02:00
Ludovic Courtès
444bb0d857
gnu-maintenance: Recognize source tarball with "-src" in their name.
...
* guix/gnu-maintenance.scm (tarball->version): Add special case for
tarball names containing "-src".
2016-04-15 00:32:18 +02:00
Ludovic Courtès
7d27a0259b
upstream: Pass a package object to updaters.
...
* guix/upstream.scm (package-update-path): Pass PACKAGE to
'latest-release'.
* guix/gnu-maintenance.scm (latest-release*)
(latest-gnome-release, latest-xorg-release): Adjust accordingly.
* guix/import/cran.scm (latest-cran-release):
(latest-bioconductor-release): Likewise.
* guix/import/elpa.scm (latest-release): Likewise.
* guix/import/gem.scm (latest-release): Likewise.
* guix/import/github.scm (latest-release): Likewise.
* guix/import/hackage.scm (latest-release): Likewise.
* guix/import/pypi.scm (latest-release): Likewise.
2016-04-15 00:32:18 +02:00
Danny Milosavljevic
013c3fb8c7
lint: Emit an ANSI erase-in-line sequence.
...
* guix/scripts/lint.scm (run-checkers): Add '\x1b[K' to progress
messages and after 'for-each'.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2016-04-14 10:20:14 +02:00
Alex Kost
82fd23b81f
download: Follow HTTP 307 "Temporary Redirection".
...
Fixes <http://bugs.gnu.org/23275 >.
Reported by Albin Söderqvist <albin@fripost.org>.
* guix/build/download.scm (http-fetch): Follow redirections upon 307.
This is what 'binaries.openttd.org' does.
2016-04-14 10:34:37 +03:00
宋文武
2b8e9d9ed4
gnu-maintenance: update-package-source: Only update the desired package.
...
Fixes <http://bugs.gnu.org/22693 >.
Suggested by Andy Wingo.
* guix/upstream.scm (update-package-source): Rewrite in terms of 'edit-expression'.
2016-04-13 09:17:01 +08:00
宋文武
f7df1e3efb
utils: Add 'location->source-properties'.
...
* guix/utils (location-source->properties): New procedure.
2016-04-13 09:17:01 +08:00
宋文武
50a3d59473
utils: Add 'edit-expression'.
...
* guix/utils.scm (edit-expression): New procedure.
* tests/utils.scm (edit-expression): New test.
2016-04-13 09:16:54 +08:00
David Thompson
fe463dbcf7
environment: container: Work around read-only /etc/resolv.conf issue.
...
* guix/scripts/environment.scm (launch-environment/container): Mount
/etc/resolv.conf as a writable file.
2016-04-07 11:48:31 -04:00
Ludovic Courtès
7cffaeb604
challenge: Really exit with non-zero upon hash mismatch.
...
Reported by John Darrington.
* guix/scripts/challenge.scm (guix-challenge): Add an explicit 'exit'
call when ISSUES is empty.
* scripts/guix.in: Add comment about 'exit'.
* doc/guix.texi (Invoking guix challenge): Mention the behavior and exit
code.
2016-04-06 23:21:26 +02:00
Alex Kost
5f2928456b
emacs: Use 'build-and-use-profile' from (guix scripts package).
...
* guix/scripts/package.scm: Export 'build-and-use-profile'.
* emacs/guix-main.scm (process-package-actions): Use it.
2016-04-04 20:11:22 +03:00
Ludovic Courtès
8463d1345e
graph: Edges are colored based on their source node.
...
* guix/graph.scm (%colors): New variable.
(pop-color): New procedure.
(emit-edge): Use it.
2016-04-02 22:40:18 +02:00
Ludovic Courtès
f4033fb5da
cvs: Disable compression.
...
Reported by Jan Nieuwenhuizen <janneke@gnu.org>.
* guix/build/cvs.scm (cvs-fetch): Use -z0.
2016-04-01 00:05:42 +02:00
Jan Nieuwenhuizen
ab83105bbe
cvs: Allow checkouts when /tmp is a different device.
...
* guix/build/cvs.scm (cvs-fetch): Use 'copy-recursively' instead of
'rename-file'.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2016-04-01 00:05:42 +02:00
Ludovic Courtès
97425486ee
profiles: Use the right 'package-name->name+version'.
...
* guix/profiles.scm: Use 'package-name->name+version' from (guix build
utils). Fixes 'find-among-store-items' in 'gtk-icon-themes'.
2016-04-01 00:05:42 +02:00
Ricardo Wurmus
9941e0812e
ant-build-system: Keep jar manifest.
...
* guix/build/ant-build-system.scm (default-build.xml): Generate default
manifest.
(strip-jar-timestamps): Repack jar archive with zip.
2016-03-31 15:47:39 +02:00
Ricardo Wurmus
ab50bba9f6
build-system/ant: Add zip.
...
* guix/build-system/ant.scm (default-zip): New variable.
(lower): Add zip to native inputs.
2016-03-31 15:47:32 +02:00
Ricardo Wurmus
cb6ce89e21
build-system/r: Support "substitutable?" flag.
...
* guix/build-system/r.scm (r-build): Support the "substitutable?" flag.
2016-03-31 15:47:19 +02:00
Leo Famulari
dcd19c0af8
licenses: Add the nmap license.
...
* guix/licenses.scm (nmap): New variable.
2016-03-31 01:40:30 -04:00
Eric Bavier
42efe27a30
import: Add Hackage updater.
...
* guix/import/hackage.scm (guix-package->hackage-name, hackage-package?)
(latest-release): New procedures.
(%hackage-updater): New variable.
* guix/scripts/refresh.scm (%updaters): Add it.
* doc/guix.texi (Invoking guix refresh): Mention it.
2016-03-30 23:19:24 -05:00
Eric Bavier
2ae9c63f15
import: hackage: Silence download output.
...
* guix/import/hackage.scm (hackage-fetch): Use http-fetch to avoid
progress output from url-fetch.
2016-03-30 23:19:24 -05:00
Eric Bavier
f9ea74ad04
import: hackage: Factorize url synthesis.
...
* guix/import/hackage.scm (hackage-source-url, hackage-cabal-url): New
procedures.
(hackage-fetch, hackage-module->sexp): Use them.
2016-03-30 23:19:24 -05:00
Ludovic Courtès
3bd9672c85
ui: Add comment on the translation of "current".
...
* guix/ui.scm (display-generation): Add "TRANSLATORS" comment.
2016-03-30 23:39:47 +02:00
David Thompson
aa2a0d4bb8
environment: Set a default value for PS1.
...
* guix/scripts/environment.scm (launch-environment/container): Set PS1
during container initialization.
2016-03-30 09:09:40 -04:00
Ludovic Courtès
7f949db03e
guix system: Warn against missing 'guix pull'.
...
Suggested by Leo Famulari and others.
* guix/scripts/system.scm (maybe-suggest-running-guix-pull): New
procedure.
(perform-action): Call it when ACTION is 'reconfigure.
2016-03-28 22:50:25 +02:00
Ludovic Courtès
d70533cbe9
store: Prepend mirror.hydra.gnu.org to %DEFAULT-SUBSTITUTE-URLS.
...
This allows GuixSD to default to the right list of URLs, with
mirror.hydra.gnu.org coming first.
Reported by Chris Marusich <cmmarusich@gmail.com>.
* guix/store.scm (%default-substitute-urls): Prepend
"mirror.hydra.gnu.org."
2016-03-28 22:25:42 +02:00
David Thompson
13bc8d5e4f
environment: Properly handle SIGINT.
...
Switching to execlp means that the process spawned in a container is PID
1, which obsoleted one of the 'guix environment --container' tests
because the init process can't be killed in the usual manner.
* guix/scripts/environment.scm (launch-environment/fork): New procedure.
(launch-environment): Switch from system* to execlp. Add handler for
SIGINT.
(guix-environment): Use launch-environment/fork.
* tests/guix-environment-container.sh: Replace abnormal exit test with
one that works now that the spawned process is PID 1.
2016-03-27 15:09:21 -04:00
David Thompson
a01ad63893
environment: container: Create dummy home directory and /etc/passwd.
...
* guix/scripts/environment.scm (launch-environment/container): Change
$HOME to the current user's home directory instead of
/homeless-shelter. Create a dummy /etc/passwd with a single entry for
the current user.
* doc/guix.texi ("invoking guix environment"): Add a note about the
dummy home directory and /etc/passwd.
2016-03-26 09:38:27 -04:00
Ludovic Courtès
001dae0d74
syscalls: <interface> printer correctly handles lack of sockaddr.
...
Reported by Danny Milosavljevic <dannym@scratchpost.org>
in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22612#16 >.
* guix/build/syscalls.scm (write-interface): Check whether ADDRESS is
true.
2016-03-25 17:24:47 +01:00
Ludovic Courtès
9a2a20052a
guix build: '--with-source' correctly matches versioned file names.
...
* guix/scripts/build.scm: Use the right 'package-name->name+version'
procedure. Fixes a regression introduced in
1b846da8c3
.
* tests/scripts-build.scm ("options->transformation, with-source, with
version"): New test.
2016-03-23 23:43:50 +01:00
Ludovic Courtès
d26e19671e
derivations: Raise an error when a module file is not found.
...
Suggested by Jookia.
* guix/derivations.scm (&file-search-error): New error condition.
(search-path*): Raise it when 'search-path' returns #f.
* guix/gexp.scm (search-path*): Remove.
* guix/ui.scm (call-with-error-handling): Add case for
'file-search-error?'.
* tests/derivations.scm ("build-expression->derivation and invalid
module name"): New test.
2016-03-23 00:23:12 +01:00
Ludovic Courtès
6985335faa
derivations: Add 'module->source-file-name'.
...
* guix/derivations.scm (module->source-file-name): New procedure.
(%imported-modules): Use it.
* guix/gexp.scm (imported-modules): Likewise.
2016-03-23 00:23:12 +01:00
Ludovic Courtès
8c321299c5
substitute: Gracefully handle TLS errors.
...
* guix/scripts/substitute.scm (with-networking): Use 'match-lambda*' and
add case for 'gnutls-error'.
2016-03-23 00:23:12 +01:00
Ricardo Wurmus
b98293ebed
import: cran: Accept single URL in addition to single URL.
...
* guix/import/cran.scm (package->upstream-name): Match single URL in
addition to list of URLs.
2016-03-22 17:57:40 +01:00
Ludovic Courtès
55e1f25d89
build-system/gnu: Add #:disallowed-references.
...
* guix/build-system/gnu.scm (gnu-build): Add #:disallowed-references and
honor it.
(gnu-cross-build): Likewise.
2016-03-20 22:46:45 +01:00
Ludovic Courtès
3f4ecf3229
gexp: Add #:disallowed-references.
...
* guix/gexp.scm (gexp->derivation): Add #:disallowed-references and
honor it.
* tests/gexp.scm ("gexp->derivation #:disallowed-references, allowed")
("gexp->derivation #:disallowed-references"): New tests.
* doc/guix.texi (G-Expressions): Adjust accordingly.
2016-03-20 22:46:14 +01:00
Ludovic Courtès
35b5ca7869
derivations: Add #:disallowed-references.
...
* guix/derivations.scm (derivation): Add #:disallowed-references.
[user+system-env-vars]: Honor it.
(build-expression->derivation): Likewise.
* tests/derivations.scm ("derivation #:disallowed-references, ok")
("derivation #:disallowed-references, not ok"): New tests.
* doc/guix.texi (Derivations): Adjust accordingly.
2016-03-20 22:45:35 +01:00
Ludovic Courtès
522773b700
import: pypi: Emit 'pypi-uri' only when it yields the right URL.
...
Fixes <http://bugs.gnu.org/23062 >.
Reported by Danny Milosavljevic <dannym@scratchpost.org>.
* guix/import/pypi.scm (make-pypi-sexp): Check whether 'pypi-uri'
returns SOURCE-URL and fall back to the full URL otherwise.
* tests/pypi.scm ("pypi->guix-package"): Adjust expected URI
accordingly.
Co-authored-by: Danny Milosavljevic <dannym@scratchpost.org>
2016-03-19 23:54:19 +01:00
Ludovic Courtès
b879b3e848
substitute: Do not leak file descriptors for TLS connections.
...
Partially fixes <http://bugs.gnu.org/20145 >.
* guix/scripts/substitute.scm (fetch, download-cache-info):
(http-multiple-get, fetch-narinfos, progress-report-port): Use
'close-connection' instead of 'close-port'.
2016-03-17 23:53:53 +01:00
Ludovic Courtès
958fb14cdb
substitute: Cache transient HTTP errors for 10mn.
...
* guix/scripts/substitute.scm (fetch-narinfos)[handle-narinfo-response]:
Cache transient errors for 10mn.
(%narinfo-transient-error-ttl): New variable.
2016-03-17 23:53:53 +01:00