Age | Commit message (Expand) | Author |
2015-07-25 | syscalls: Add 'network-interfaces', which wraps libc's 'getifaddrs'....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.
| Ludovic Courtès |
2015-07-25 | syscalls: 'define-c-struct' properly align reads....* 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.
| Ludovic Courtès |
2015-07-25 | syscalls: 'read-socket-address' gracefully handles unsupported families....* 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.
| Ludovic Courtès |
2015-07-25 | syscalls: 'define-c-struct' distinguishes pointers from integers....* guix/build/syscalls.scm (read-type): Add special-case for when TYPE is '*.
| Ludovic Courtès |
2015-07-25 | syscalls: Rename 'network-interfaces' and 'all-network-interfaces'....* 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.
| Ludovic Courtès |
2015-07-23 | Fix typos in translatable strings....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.
| Ludovic Courtès |
2015-07-22 | size: Add '--substitute-urls' option....* 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.
| Ludovic Courtès |
2015-07-22 | derivations: Improve docstring of 'substitution-oracle'....* guix/derivations.scm (substitution-oracle): Improve docstring.
| Ludovic Courtès |
2015-07-22 | derivations: Improve complexity of 'substitution-oracle'....* guix/derivations.scm (substitution-oracle): Use a final 'concatenate'
instead of repeated 'append's.
| Ludovic Courtès |
2015-07-22 | import: hackage: Remove reference to unbound variable....* guix/scripts/import/hackage.scm (guix-import-hackage): Fix error message for
imports from stdin, which referred to unbound variable 'package-name'.
| Ludovic Courtès |
2015-07-22 | size: Remove leftover 'pk'....* guix/scripts/size.scm (profile->page-map): Remove leftover 'pk'.
| Ludovic Courtès |
2015-07-21 | import: pypi: Improve warning message....* guix/import/pypi.scm (guess-requirements): Add missing newline and quotes in
warning.
| Ludovic Courtès |
2015-07-19 | Merge branch 'core-updates' | Mark H Weaver |
2015-07-20 | publish: Do not load archive content in memory....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.
| Ludovic Courtès |
2015-07-19 | Merge branch 'master' into core-updates | Mark H Weaver |
2015-07-19 | publish: Serve /nar requests in a separate thread....* guix/scripts/publish.scm (%http-write): New variable.
(http-write): New procedure.
(concurrent-http-server): New variable.
(run-publish-server): Use it.
| Ludovic Courtès |
2015-07-18 | build-system/ruby: Add #:gem-flags parameter....* 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>
| pjotrp |
2015-07-18 | publish: Write hashes in nix-base32 format....* guix/scripts/publish.scm (narinfo-string): Use
'bytevector->nix-base32-string', not 'bytevector->base32-string'.
| Ludovic Courtès |
2015-07-17 | syscalls: Struct deserializer can now return arbitrary objects....* 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'.
| Ludovic Courtès |
2015-07-17 | download: Remove spurious warning about 'https_proxy'....* guix/build/download.scm (open-connection-for-uri)[with-https-proxy]: Warn
about 'https_proxy' only when 'getenv' returns a non-empty string.
| Ludovic Courtès |
2015-07-17 | licenses: Add Fontana's copyleft-next....* guix/licenses.scm (copyleft-next): New variable.
| Ludovic Courtès |
2015-07-17 | system: Add 'kernel-arguments' field....* 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.
| Ludovic Courtès |
2015-07-16 | python-build-system: Add 'ensure-no-mtimes-pre-1980' phase....* guix/build/python-build-system.scm (ensure-no-mtimes-pre-1980):
New phase.
(%standard-phases): Add it after 'unpack'.
| Mark H Weaver |
2015-07-15 | size: Gracefully handle EPIPE....* guix/scripts/size.scm (guix-size): Wrap body in 'leave-on-EPIPE'.
| Ludovic Courtès |
2015-07-15 | ui: Add 'leave-on-EPIPE'....* guix/scripts/package.scm (leave-on-EPIPE): Move to...
* guix/ui.scm (leave-on-EPIPE): ... here.
| Ludovic Courtès |
2015-07-15 | Merge branch 'master' into core-updates | Mark H Weaver |
2015-07-14 | packages: patch-and-repack: Build tarballs deterministically....* guix/packages.scm (patch-and-repack)[build]: When invoking 'tar' to repack
the archive, pass "--mtime=@0", "--owner=root:0", and "--group=root:0".
| Mark H Weaver |
2015-07-13 | build-system/gnu: Pass --build=<triplet> to configure by default....* 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.
| Mark H Weaver |
2015-07-13 | substitute: Improve functional decomposition....* guix/scripts/substitute.scm (display-narinfo-data,
process-query, process-substitution): New procedures. Code moved from...
(guix-substitute): ... here. Use them.
| Ludovic Courtès |
2015-07-13 | guix build: Add '--substitute-urls' client option....* 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.
| Ludovic Courtès |
2015-07-13 | substitute: Honor "substitute-urls" option passed by "untrusted" clients....* 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'.
| Ludovic Courtès |
2015-07-13 | substitute: Store cached narinfo in cache-specific sub-directories....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'.
| Ludovic Courtès |
2015-07-13 | substitute: Pass the cache URL instead of <cache> objects....* 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.
| Ludovic Courtès |
2015-07-13 | substitute: Remove unneeded conditionals....* guix/scripts/substitute.scm (guix-substitute): Remove unneeded (if cache
...) forms since CACHE is always true (it's a promise.)
| Ludovic Courtès |
2015-07-13 | guix lint: Remove duplicated module lines....* 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.
| Alex Kost |
2015-07-12 | packages: Rewrite 'transitive-inputs' to be linear and remove duplicates....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.
| Ludovic Courtès |
2015-07-09 | offload: Add 'ssh-options' field to <build-machine>....* guix/scripts/offload.scm (<build-machine>)[ssh-options]: New field.
(remote-pipe): Use it.
(send-files): Likewise.
| Ludovic Courtès |
2015-07-08 | import: cabal: Make token recognition case-insensitive....* guix/import/cabal.scm (make-rx-matcher): Add optional parameter FLAG.
(is-property, is-flag, is-src-repo, is-exec, is-test-suite, is-benchmark,
is-lib, is-else, is-if): Make test case-insensitive.
| Federico Beffa |
2015-07-08 | build: Add 'emacs-build-system'....* Makefile.am (MODULES): Add 'guix/build-system/emacs.scm' and
'guix/build/emacs-build-system.scm'.
* guix/build-system/emacs.scm: New file.
* guix/build/emacs-build-system.scm: New file.
* doc/guix.texi (Build Systems): Document it.
| Federico Beffa |
2015-07-08 | build: emacs-utils: Add 'emacs-byte-compile-directory'....* guix/build/emacs-utils.scm (emacs-byte-compile-directory): New procedure.
| Federico Beffa |
2015-07-08 | import: Add 'elpa' importer....* guix/import/elpa.scm: New file.
* guix/scripts/import.scm: Add "elpa" to 'importers'.
* guix/scripts/import/elpa.scm: New file.
* Makefile.am (MODULES): Add 'guix/import/elpa.scm' and
'guix/scripts/import/elpa.scm'.
(SCM_TESTS): Add 'tests/elpa.scm'.
* doc/guix.texi (Invoking guix import): Document it.
* tests/elpa.scm: New file.
* po/guix/POTFILES.in: Add 'guix/scripts/import/elpa.scm'.
| Federico Beffa |
2015-07-07 | gnu: system: Move <file-system-mapping> into (gnu system file-systems)....* gnu/system/vm.scm (<file-system-mapping>, %store-mapping): Move from here...
* gnu/system/file-systems.scm: ...to here.
* guix/scripts/system.scm: Import (gnu system file-systems).
| David Thompson |
2015-07-07 | build: syscalls: Add pivot-root....* guix/build/syscalls.scm (pivot-root): New procedure.
* tests/syscalls.scm ("pivot-root"): New test.
| David Thompson |
2015-07-07 | build: syscalls: Add setns....* guix/build/syscalls.scm (setns): New procedure.
* tests/syscalls.scm ("setns"): New test.
squash: setns
| David Thompson |
2015-07-07 | build: syscalls: Add clone....* guix/build/syscalls.scm (clone): New procedure.
(CLONE_NEWNS, CLONE_NEWUTS, CLONE_NEWIPC, CLONE_NEWUSER, CLONE_NEWPID,
CLONE_NEWNET): New variables.
* tests/syscalls.scm ("clone"): New test.
| David Thompson |
2015-07-07 | utils: Add call-with-temporary-directory....* guix/utils.scm (call-with-temporary-directory): New procedure.
| David Thompson |
2015-07-07 | build: syscalls: Add mkdtemp!...* guix/build/syscalls.scm (mkdtemp!): New procedure.
* tests/syscalls.scm ("mkdtemp!"): New test.
| David Thompson |
2015-07-07 | build: syscalls: Add unmount flags....* guix/build/syscalls.scm (MNT_FORCE, MNT_DETACH, MNT_EXPIRE)
(UMOUNT_NOFOLLOW): New variables.
| David Thompson |
2015-07-07 | build: syscalls: Add additional mount flags....* guix/build/syscalls.scm (MS_NOSUID, MS_NODEV, MS_NOEXEC, MS_STRICTATIME):
New variables.
| David Thompson |
2015-07-08 | store: 'run-with-store' initializes %CURRENT-TARGET-SYSTEM to #f....* guix/store.scm (run-with-store): Set %CURRENT-TARGET-SYSTEM to #f.
* tests/gexp.scm ("gexp->derivation vs. %current-target-system"): New test.
| Ludovic Courtès |