aboutsummaryrefslogtreecommitdiff
path: root/guix
Commit message (Expand)AuthorAge
* download: Keep a single copy of the mirror file.•••This saves ~10% on 'guix build inkscape -Sd'. * guix/download.scm (%mirror-file): New variable. (url-fetch): Remove #:mirrors parameter. Remove 'mirror-file'; refer to '%mirror-file' instead. Ludovic Courtès2015-08-29
* refresh: Add missing newline in warning message.•••Reported by karhunkynsi on #guix. * guix/scripts/refresh.scm (update-package): Add missing newline in string literal passed to 'warning'. Ludovic Courtès2015-08-29
* download: Keep only 2 store items for all the downloads.•••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'. Ludovic Courtès2015-08-29
* gexp: Add #:script-name parameter to 'gexp->derivation'.•••* guix/gexp.scm (gexp->derivation): Add #:script-name parameter. * doc/guix.texi (G-Expressions): Document it. Ludovic Courtès2015-08-29
* monads: Inline the procedure returned by liftN.•••* guix/monads.scm (define-lift): Turn into a macro that open-codes the result of its lift. Ludovic Courtès2015-08-29
* import: Add Ruby gem importer.•••* 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. David Thompson2015-08-27
* import: pypi: Move generally useful procedures to utils module.•••* 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. David Thompson2015-08-27
* Add 'guix graph'.•••* 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. Ludovic Courtès2015-08-27
* gexp: Add 'lower-object'.•••* 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. Ludovic Courtès2015-08-27
* guix package: -s shows outputs.•••* guix/ui.scm (package->recutils): Print "outputs:". Mark H Weaver2015-08-24
* profiles: Remove duplicate entries in 'etc/profile'.•••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. Ludovic Courtès2015-08-20
* guix: Add Sleepycat license.•••* guix/licenses.scm (sleepycat): New variable. Ricardo Wurmus2015-08-20
* scripts: package: Add --install-from-file option.•••* 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. David Thompson2015-08-19
* size: Get the item's size from the daemon rather than compute 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'. Ludovic Courtès2015-08-19
* lint: Add 'formatting' checker.•••* 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. Ludovic Courtès2015-08-19
* build: ruby: Rewrite build system to use gem archives.•••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. David Thompson2015-08-18
* syscalls: setns: Skip binding if there is no such C function.•••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'. David Thompson2015-08-17
* import: elpa: Fix typo.•••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. Alex Kost2015-08-10
* python-build-system: Fix 'get-python-version'.•••* guix/build/python-build-system.scm (get-python-version): Rewrite to handle multiple-digit version number components. Mark H Weaver2015-08-06
* build: emacs: Fix bug and improvement robustness.•••* guix/build/emacs-build-system.scm (emacs-inputs): Fix matching pattern. (patch-el-files): Improve regexp pattern. Federico Beffa2015-08-01
* import: elpa: Improve error message reporting.•••* guix/import/elpa.scm (filter-dependencies): Fix bug. (call-with-downloaded-file): Add optional parameter 'error-thunk'. (fetch-package-description): Use it. Federico Beffa2015-08-01
* 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ès2015-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ès2015-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ès2015-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ès2015-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ès2015-07-25
* 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ès2015-07-23
* 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ès2015-07-22
* derivations: Improve docstring of 'substitution-oracle'.•••* guix/derivations.scm (substitution-oracle): Improve docstring. Ludovic Courtès2015-07-22
* derivations: Improve complexity of 'substitution-oracle'.•••* guix/derivations.scm (substitution-oracle): Use a final 'concatenate' instead of repeated 'append's. Ludovic Courtès2015-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ès2015-07-22
* size: Remove leftover 'pk'.•••* guix/scripts/size.scm (profile->page-map): Remove leftover 'pk'. Ludovic Courtès2015-07-22
* import: pypi: Improve warning message.•••* guix/import/pypi.scm (guess-requirements): Add missing newline and quotes in warning. Ludovic Courtès2015-07-21
* 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.•••* guix/build/python-build-system.scm (ensure-no-mtimes-pre-1980): New phase. (%standard-phases): Add it after 'unpack'. Mark H Weaver2015-07-16
| * | Merge branch 'master' into core-updatesMark H Weaver2015-07-15
| |\ \
| * | | 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 Weaver2015-07-14
| * | | 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 Weaver2015-07-13
| * | | 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ès2015-07-12
* | | | 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ès2015-07-20
* | | | 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ès2015-07-19
| |_|/ |/| |
* | | 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> pjotrp2015-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ès2015-07-18
* | | 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ès2015-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ès2015-07-17
* | | licenses: Add Fontana's copyleft-next.•••* guix/licenses.scm (copyleft-next): New variable. Ludovic Courtès2015-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ès2015-07-17
* | | size: Gracefully handle EPIPE.•••* guix/scripts/size.scm (guix-size): Wrap body in 'leave-on-EPIPE'. Ludovic Courtès2015-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ès2015-07-15
| |/ |/|