aboutsummaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* refresh: Add missing newline in warning message.Ludovic Courtès2015-08-29
| | | | | | | Reported by karhunkynsi on #guix. * guix/scripts/refresh.scm (update-package): Add missing newline in string literal passed to 'warning'.
* download: Keep only 2 store items for all the downloads.Ludovic Courtès2015-08-29
| | | | | | | | | This significantly reduces churn in the store. It also reduces run time of 'guix build inkscape -Sd' by ~10%. * guix/download.scm (url-fetch)[mirror-file]: New variable. [builder]: Get URL from the "guix download url" env. var. Get the mirrors from MIRROR-FILE. Pass #:script-name and #:env-vars to 'gexp->derivation'.
* gexp: Add #:script-name parameter to 'gexp->derivation'.Ludovic Courtès2015-08-29
| | | | | * guix/gexp.scm (gexp->derivation): Add #:script-name parameter. * doc/guix.texi (G-Expressions): Document it.
* monads: Inline the procedure returned by liftN.Ludovic Courtès2015-08-29
| | | | | * guix/monads.scm (define-lift): Turn into a macro that open-codes the result of its lift.
* import: Add Ruby gem importer.David Thompson2015-08-27
| | | | | | | | * gnu/scripts/import.scm (importers): Add "gem". * gnu/import/gem.scm: New file. * gnu/scripts/import/gem.scm: New file. * Makefile.am (MODULES): Add them. * guix.texi ("invoking guix import"): Document it.
* import: pypi: Move generally useful procedures to utils module.David Thompson2015-08-27
| | | | | | | | * guix/import/pypi.scm (make-pypi-sexp): Factorize license to symbol conversion code. (string->license, snake-case, guix-hash-url): Move from here... * guix/import/utils.scm: ... to here. (license->symbol): New procedure.
* Add 'guix graph'.Ludovic Courtès2015-08-27
| | | | | | | | | | | | | | | | | * guix/scripts/graph.scm, tests/graph.scm, tests/guix-graph.sh, doc/images/coreutils-bag-graph.dot, doc/images/coreutils-graph.dot: New files. * Makefile.am (MODULES): Add guix/scripts/graph.scm. (SH_TESTS): Add tests/guix-graph.sh. (SCM_TESTS): Add tests/graph.scm. * doc.am (DOT_FILES, DOT_VECTOR_GRAPHICS): New variables. (EXTRA_DIST): Use them. (dist_infoimage_DATA): Use $(DOT_FILES). (pdf-local, info-local, ps-local): Likewise. * doc/guix.texi (Packages with Multiple Outputs): Add cross-reference to 'guix graph'. (Invoking guix gc): Likewise. (Invoking guix graph): New section.
* 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.