Age | Commit message (Collapse) | Author |
|
* guix/gexp.scm (lower-object): New procedure.
(lower-inputs, lower-references, gexp->sexp): Use it.
* tests/gexp.scm ("lower-object"): New test.
* doc/guix.texi (G-Expressions): Document it.
|
|
* guix/ui.scm (package->recutils): Print "outputs:".
|
|
Reported by Andy Wingo
at <http://lists.gnu.org/archive/html/guix-devel/2015-08/msg00109.html>.
* guix/profiles.scm (profile-derivation)[builder]: Delete duplicates in
SEARCH-PATHS.
|
|
* guix/licenses.scm (sleepycat): New variable.
|
|
* guix/scripts/package.scm (show-help): Add help text for --install-from-file
option.
(%options): Add --install-from-file option.
* tests/guix-package.sh: Test it.
* doc/guix.texi ("invoking guix package"): Document it.
* doc/package-hello.scm: New file.
* doc.am (EXTRA_DIST): Add it.
|
|
This removes all I/O, which obviously makes things faster.
* guix/scripts/size.scm (file-size, store-item-exists?): Remove.
(query-path-info*): New procedure.
(file-size*): Rename to...
(file-size): ... this; adjust caller. Use 'query-path-info*' instead of
'file-size'.
|
|
* guix/scripts/lint.scm (report-tabulations, report-trailing-white-space,
report-long-line, report-formatting-issues, check-formatting): New
procedures.
(%formatting-reporters): New variable.
(%checkers): Add 'formatting' checker.
* tests/lint.scm ("formatting: tabulation", "formatting: trailing white
space", "formatting: long line", "formatting: alright"): New tests.
* doc/guix.texi (Invoking guix lint): Mention the 'formatting' checker.
|
|
Co-Authored-By: Pjotr Prins <pjotr.public01@thebird.nl>
* guix/build-system/ruby.scm (lower): Remove git dependency.
(rubygems-uri): New procedure.
* guix/build/ruby-build-system (gitify): Delete.
(unpack): Use 'gem unpack' utility.
(check): Add docstring.
(build): Repack modified gem.
(install): Rebuild unpacked gem and install it.
(%standard-phases): Remove gitify and build phases.
* gnu/packages/ruby.scm (ruby-hoe, ruby-rake-compiler, ruby-i18n,
ruby-rspec-support, ruby-rspec-core, ruby-diff-lcs-for-rspec,
ruby-rspec-expectations, ruby-rspec-mocks, ruby-rspec, bundler,
ruby-useragent, ruby-bacon, ruby-arel, ruby-connection-pool,
ruby-net-http-persistent, ruby-minitest, ruby-minitest-sprint,
ruby-minitest-bacon, ruby-daemons, ruby-git, ruby-slop,
ruby-multipart-post): Convert to new build system.
* doc/guix.texi (ruby-build-system): Document the gem archive requirement.
|
|
On systems with a glibc prior to 2.14, the 'setns' function is not available.
Thanks to Eric Bavier for reporting the issue.
* guix/build/syscalls.scm (setns): Wrap with 'false-if-exception'.
|
|
Reported by Eric Dvorsak <eric@dvorsak.fr> on #guix.
* guix/scripts/import/elpa.scm (%default-options): Remove redundant
quote which led to an error if --archive option was not specified.
|
|
* guix/build/python-build-system.scm (get-python-version): Rewrite to handle
multiple-digit version number components.
|
|
* guix/build/emacs-build-system.scm (emacs-inputs): Fix matching pattern.
(patch-el-files): Improve regexp pattern.
|
|
* guix/import/elpa.scm (filter-dependencies): Fix bug.
(call-with-downloaded-file): Add optional parameter 'error-thunk'.
(fetch-package-description): Use it.
|
|
Based on discussions with Rohan Prinja <rohan.prinja@gmail.com>.
* guix/build/syscalls.scm (<interface>): New record type.
(write-interface, values->interface, unfold-interface-list,
network-interfaces, free-ifaddrs): New procedures.
(ifaddrs): New C struct.
(%struct-ifaddrs-type, %sizeof-ifaddrs): New macros.
* tests/syscalls.scm ("network-interfaces returns one or more interfaces",
"network-interfaces returns \"lo\""): New tests.
|
|
* guix/build/syscalls.scm (alignof*, align): New macros.
(write-types, read-types): Use 'align' to compute the actual offset to
read/write a value of TYPE0.
|
|
* guix/build/syscalls.scm (PF_PACKET, AF_PACKET): New variables.
(read-socket-address): Make 'index' optional. Return (vector FAMILY) when
FAMILY is neither AF_INET nor AF_INET6.
|
|
* guix/build/syscalls.scm (read-type): Add special-case for when TYPE is '*.
|
|
* guix/build/syscalls.scm (network-interfaces): Rename to...
(network-interface-names): ... this.
(all-network-interfaces): Rename to...
(all-network-interface-names): ... this.
* gnu/services/networking.scm (dhcp-client-service): Adjust accordingly.
* tests/syscalls.scm ("all-network-interfaces"): Rename to...
("all-network-interface-names"): ... this, and adjust accordingly.
("network-interfaces"): Rename to...
("network-interface-names"): ... this, and adjust accordingly.
|
|
Reported by Anders Jonsson <anders.jonsson@norsjovallen.se>.
* gnu/packages/backup.scm, gnu/packages/databases.scm,
gnu/packages/linux.scm, gnu/packages/perl.scm,
gnu/packages/web.scm, guix/scripts/lint.scm,
guix/scripts/publish.scm: Fix typos in translatable strings.
|
|
* guix/scripts/size.scm (show-help, %options): Add --substitute-urls.
(%default-options): Add 'substitute-urls'.
(guix-size): Honor it.
* doc/guix.texi (Invoking guix size): Document it.
|
|
* guix/derivations.scm (substitution-oracle): Improve docstring.
|
|
* guix/derivations.scm (substitution-oracle): Use a final 'concatenate'
instead of repeated 'append's.
|
|
* guix/scripts/import/hackage.scm (guix-import-hackage): Fix error message for
imports from stdin, which referred to unbound variable 'package-name'.
|
|
* guix/scripts/size.scm (profile->page-map): Remove leftover 'pk'.
|
|
* guix/import/pypi.scm (guess-requirements): Add missing newline and quotes in
warning.
|
|
|
|
Previously, before replying to a /nar/* request, 'guix publish' would first
build up the whole nar into memory (as a consequence of
<http://bugs.gnu.org/21093>), which obviously doesn't scale.
* guix/scripts/publish.scm (render-nar): Return STORE-PATH instead of a
procedure that calls 'write-file'.
(sans-content-length): New procedure.
(http-write): For 'x-nix-archive', don't call '%http-write'. Instead, call
'write-file' right from here, using BODY as the file name.
|
|
|
|
* guix/scripts/publish.scm (%http-write): New variable.
(http-write): New procedure.
(concurrent-http-server): New variable.
(run-publish-server): Use it.
|
|
* guix/build-system/ruby.scm (build): add 'gem-flags' key
* guix/build/ruby-build-system.scm (build): use 'gem-flags' key
* doc/guix.texi (Build Systems): Mention #:gem-flags.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
|
|
* guix/scripts/publish.scm (narinfo-string): Use
'bytevector->nix-base32-string', not 'bytevector->base32-string'.
|
|
* guix/build/syscalls.scm (read-types): Add RETURN and VALUES parameters.
(define-c-struct): Add WRAP-FIELDS parameter and pass it to 'read-types'.
(sockaddr-in, sockaddr-in6): Add first argument that uses
'make-socket-address'.
(read-socket-address): Remove 'match' on the result of 'read-sockaddr-in'
and 'read-sockaddr-in6'.
|
|
* guix/build/download.scm (open-connection-for-uri)[with-https-proxy]: Warn
about 'https_proxy' only when 'getenv' returns a non-empty string.
|
|
* guix/licenses.scm (copyleft-next): New variable.
|
|
* gnu/system.scm (<operating-system>)[kernel-arguments]: New field.
(operating-system-grub.cfg): Honor it.
(operating-system-parameters-file): Add 'kernel-arguments' to the parameters
file.
* guix/scripts/system.scm (previous-grub-entries)[system->grub-entry]: Read
the 'kernel-arguments' field of the parameters file, when available.
* gnu/system/vm.scm (system-qemu-image/shared-store-script):
Use (operating-system-kernel-arguments os) in '-append'.
* doc/guix.texi (operating-system Reference): Document it.
|
|
* guix/build/python-build-system.scm (ensure-no-mtimes-pre-1980):
New phase.
(%standard-phases): Add it after 'unpack'.
|
|
* guix/scripts/size.scm (guix-size): Wrap body in 'leave-on-EPIPE'.
|
|
* guix/scripts/package.scm (leave-on-EPIPE): Move to...
* guix/ui.scm (leave-on-EPIPE): ... here.
|
|
|
|
* guix/packages.scm (patch-and-repack)[build]: When invoking 'tar' to repack
the archive, pass "--mtime=@0", "--owner=root:0", and "--group=root:0".
|
|
* guix/build-system/gnu.scm (gnu-build, gnu-cross-build): Accept #:build
keyword argument. Pass it to 'gnu-build' on the build side.
* guix/build/gnu-build-system.scm (configure): Accept #:build keyword
argument. Unless it is false, pass --build to configure.
|
|
* guix/scripts/substitute.scm (display-narinfo-data,
process-query, process-substitution): New procedures. Code moved from...
(guix-substitute): ... here. Use them.
|
|
* guix/scripts/build.scm (%standard-build-options,
show-build-options-help): Add --substitute-urls=URLS.
(set-build-options-from-command-line): Honor it.
* guix/store.scm (%default-substitute-urls): Make public.
* doc/guix.texi (Substitutes): Add xref to the client --substitute-urls
option.
(Invoking guix build): Document it.
(Invoking guix-daemon): Add 'daemon-substitute-urls' anchor.
|
|
* guix/scripts/substitute.scm (or*): New macro.
(%cache-url): Honor "untrusted-substitute-urls".
* guix/tests.scm (%test-substitute-urls): New variable.
(open-connection-for-tests): Use it.
* tests/derivations.scm ("derivation-prerequisites-to-build and substitutes",
"derivation-prerequisites-to-build and substitutes, non-substitutable
build", "derivation-prerequisites-to-build and substitutes, local build"):
Pass it to 'set-build-options'.
* tests/guix-daemon.sh: Likewise.
* tests/store.scm ("substitute query, alternating URLs"): New test.
("substitute query", "substitute", "substitute + build-things with output
path", "substitute, corrupt output hash", "substitute --fallback"): Pass
#:substitute-urls to 'set-build-options'.
|
|
This ensures that switching between different substitute servers doesn't lead
to a polluted narinfo cache.
* guix/scripts/substitute.scm (narinfo-cache-file): Add 'cache-url'
parameter. Add the base32 of CACHE-URL as a sub-directory under
%NARINFO-CACHE-DIRECTORY. Update callers.
(cached-narinfo): Likewise. Call 'mkdir-p' on the dirname of the cache
file. Update callers.
(remove-expired-cached-narinfos): Add 'directory' parameter and use it
instead of %NARINFO-CACHE-DIRECTORY.
(narinfo-cache-directories): New procedure.
(maybe-remove-expired-cached-narinfo): Call 'remove-expired-cached-narinfos'
for each item returned by 'narinfo-cache-directories'.
|
|
* guix/scripts/substitute.scm (<cache>): Rename to...
(<cache-info>): ... this.
(open-cache): Rename to...
(download-cache-info): ... this. Return a <cache-info> or #f.
(open-cache*): Remove.
(cache-narinfo!): Take a URL instead of a <cache> as the first parameter.
(fetch-narinfos): Likewise. Call 'download-cache-info'. Remove use of
'force'.
(guix-substitute): Replace calls to 'open-cache*' with %CACHE-URL.
|
|
* guix/scripts/substitute.scm (guix-substitute): Remove unneeded (if cache
...) forms since CACHE is always true (it's a promise.)
|
|
* guix/scripts/lint.scm (guix): Remove duplicated lines for using
'srfi-34' and 'srfi-35' modules. These lines were introduced twice by
commits b210b35 and 002c57c.
|
|
There were two issues:
1. Use of 'delete-duplicates', which is quadratic, was a serious problem for
closures with lots of propagated inputs, such as that of the 'hydra'
package (several minutes for 'guix build hydra -n'!).
2. The 'delete-duplicates' call essentially had no effect since duplicate
inputs typically had a different label and were thus kept. For
instance, (bag-transitive-inputs (package->bag inkscape)) would return
216 items whereas (delete-duplicates (map cdr THAT)) contains only 67
items.
The new implementation returns 67 items in this case. For 'hydra', we're
down from 42211 items to 361, and roughly 13s for 'guix build hydra'.
* guix/packages.scm (transitive-inputs): Rewrite as a breadth-first
traversal. Remove duplicate propagated inputs.
* tests/packages.scm ("package-transitive-inputs", "package->bag, propagated
inputs"): Adjust to use simple labels for propagated inputs, without "/".
("package-transitive-inputs, no duplicates"): New test.
|
|
* guix/scripts/offload.scm (<build-machine>)[ssh-options]: New field.
(remote-pipe): Use it.
(send-files): Likewise.
|