summaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* gexp: Add 'lower-object'.Ludovic Courtès2015-08-27
| | | | | | | * 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 package: -s shows outputs.Mark H Weaver2015-08-24
| | | | * guix/ui.scm (package->recutils): Print "outputs:".
* profiles: Remove duplicate entries in 'etc/profile'.Ludovic Courtès2015-08-20
| | | | | | | | 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: Add Sleepycat license.Ricardo Wurmus2015-08-20
| | | | * guix/licenses.scm (sleepycat): New variable.
* scripts: package: Add --install-from-file option.David Thompson2015-08-19
| | | | | | | | | | * 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.
* size: Get the item's size from the daemon rather than compute it.Ludovic Courtès2015-08-19
| | | | | | | | | | 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'.
* lint: Add 'formatting' checker.Ludovic Courtès2015-08-19
| | | | | | | | | | | * 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.
* build: ruby: Rewrite build system to use gem archives.David Thompson2015-08-18
| | | | | | | | | | | | | | | | | | | | | 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.
* syscalls: setns: Skip binding if there is no such C function.David Thompson2015-08-17
| | | | | | | | 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'.
* import: elpa: Fix typo.Alex Kost2015-08-10
| | | | | | | 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.
* python-build-system: Fix 'get-python-version'.Mark H Weaver2015-08-06
| | | | | * guix/build/python-build-system.scm (get-python-version): Rewrite to handle multiple-digit version number components.
* build: emacs: Fix bug and improvement robustness.Federico Beffa2015-08-01
| | | | | * guix/build/emacs-build-system.scm (emacs-inputs): Fix matching pattern. (patch-el-files): Improve regexp pattern.
* import: elpa: Improve error message reporting.Federico Beffa2015-08-01
| | | | | | * guix/import/elpa.scm (filter-dependencies): Fix bug. (call-with-downloaded-file): Add optional parameter 'error-thunk'. (fetch-package-description): Use it.
* syscalls: Add 'network-interfaces', which wraps libc's 'getifaddrs'.Ludovic Courtès2015-07-25
| | | | | | | | | | | | 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.
* syscalls: 'define-c-struct' properly align reads.Ludovic Courtès2015-07-25
| | | | | | * 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.
* syscalls: 'read-socket-address' gracefully handles unsupported families.Ludovic Courtès2015-07-25
| | | | | | * 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.
* syscalls: 'define-c-struct' distinguishes pointers from integers.Ludovic Courtès2015-07-25
| | | | * guix/build/syscalls.scm (read-type): Add special-case for when TYPE is '*.
* syscalls: Rename 'network-interfaces' and 'all-network-interfaces'.Ludovic Courtès2015-07-25
| | | | | | | | | | | | * 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.
* Fix typos in translatable strings.Ludovic Courtès2015-07-23
| | | | | | | | | 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.
* size: Add '--substitute-urls' option.Ludovic Courtès2015-07-22
| | | | | | | * 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.
* derivations: Improve docstring of 'substitution-oracle'.Ludovic Courtès2015-07-22
| | | | * guix/derivations.scm (substitution-oracle): Improve docstring.
* derivations: Improve complexity of 'substitution-oracle'.Ludovic Courtès2015-07-22
| | | | | * guix/derivations.scm (substitution-oracle): Use a final 'concatenate' instead of repeated 'append's.
* import: hackage: Remove reference to unbound variable.Ludovic Courtès2015-07-22
| | | | | * guix/scripts/import/hackage.scm (guix-import-hackage): Fix error message for imports from stdin, which referred to unbound variable 'package-name'.
* size: Remove leftover 'pk'.Ludovic Courtès2015-07-22
| | | | * guix/scripts/size.scm (profile->page-map): Remove leftover 'pk'.
* import: pypi: Improve warning message.Ludovic Courtès2015-07-21
| | | | | * guix/import/pypi.scm (guess-requirements): Add missing newline and quotes in warning.
* Merge branch 'core-updates'Mark H Weaver2015-07-19
|\
| * Merge branch 'master' into core-updatesMark H Weaver2015-07-19
| |\
| * | python-build-system: Add 'ensure-no-mtimes-pre-1980' phase.Mark H Weaver2015-07-16
| | | | | | | | | | | | | | | | | | * guix/build/python-build-system.scm (ensure-no-mtimes-pre-1980): New phase. (%standard-phases): Add it after 'unpack'.
| * | Merge branch 'master' into core-updatesMark H Weaver2015-07-15
| |\ \
| * | | packages: patch-and-repack: Build tarballs deterministically.Mark H Weaver2015-07-14
| | | | | | | | | | | | | | | | | | | | * guix/packages.scm (patch-and-repack)[build]: When invoking 'tar' to repack the archive, pass "--mtime=@0", "--owner=root:0", and "--group=root:0".
| * | | build-system/gnu: Pass --build=<triplet> to configure by default.Mark H Weaver2015-07-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
| * | | packages: Rewrite 'transitive-inputs' to be linear and remove duplicates.Ludovic Courtès2015-07-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | publish: Do not load archive content in memory.Ludovic Courtès2015-07-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | publish: Serve /nar requests in a separate thread.Ludovic Courtès2015-07-19
| |_|/ |/| | | | | | | | | | | | | | | | | * guix/scripts/publish.scm (%http-write): New variable. (http-write): New procedure. (concurrent-http-server): New variable. (run-publish-server): Use it.
* | | build-system/ruby: Add #:gem-flags parameter.pjotrp2015-07-18
| | | | | | | | | | | | | | | | | | | | | | | | * 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>
* | | publish: Write hashes in nix-base32 format.Ludovic Courtès2015-07-18
| | | | | | | | | | | | | | | * guix/scripts/publish.scm (narinfo-string): Use 'bytevector->nix-base32-string', not 'bytevector->base32-string'.
* | | syscalls: Struct deserializer can now return arbitrary objects.Ludovic Courtès2015-07-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | * 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'.
* | | download: Remove spurious warning about 'https_proxy'.Ludovic Courtès2015-07-17
| | | | | | | | | | | | | | | * guix/build/download.scm (open-connection-for-uri)[with-https-proxy]: Warn about 'https_proxy' only when 'getenv' returns a non-empty string.
* | | licenses: Add Fontana's copyleft-next.Ludovic Courtès2015-07-17
| | | | | | | | | | | | * guix/licenses.scm (copyleft-next): New variable.
* | | system: Add 'kernel-arguments' field.Ludovic Courtès2015-07-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | | size: Gracefully handle EPIPE.Ludovic Courtès2015-07-15
| | | | | | | | | | | | * guix/scripts/size.scm (guix-size): Wrap body in 'leave-on-EPIPE'.
* | | ui: Add 'leave-on-EPIPE'.Ludovic Courtès2015-07-15
| |/ |/| | | | | | | * guix/scripts/package.scm (leave-on-EPIPE): Move to... * guix/ui.scm (leave-on-EPIPE): ... here.
* | substitute: Improve functional decomposition.Ludovic Courtès2015-07-13
| | | | | | | | | | | | * guix/scripts/substitute.scm (display-narinfo-data, process-query, process-substitution): New procedures. Code moved from... (guix-substitute): ... here. Use them.
* | guix build: Add '--substitute-urls' client option.Ludovic Courtès2015-07-13
| | | | | | | | | | | | | | | | | | | | | | * 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.
* | substitute: Honor "substitute-urls" option passed by "untrusted" clients.Ludovic Courtès2015-07-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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'.
* | substitute: Store cached narinfo in cache-specific sub-directories.Ludovic Courtès2015-07-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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'.
* | substitute: Pass the cache URL instead of <cache> objects.Ludovic Courtès2015-07-13
| | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | substitute: Remove unneeded conditionals.Ludovic Courtès2015-07-13
| | | | | | | | | | * guix/scripts/substitute.scm (guix-substitute): Remove unneeded (if cache ...) forms since CACHE is always true (it's a promise.)
* | guix lint: Remove duplicated module lines.Alex Kost2015-07-13
|/ | | | | | * 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.
* offload: Add 'ssh-options' field to <build-machine>.Ludovic Courtès2015-07-09
| | | | | | * guix/scripts/offload.scm (<build-machine>)[ssh-options]: New field. (remote-pipe): Use it. (send-files): Likewise.