summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2015-09-21import: cran-sxml->sexp: Use cran-uri in package expression.Ricardo Wurmus
* guix/import/cran.scm (cran-sxml->sexp): Use the cran-uri procedure in the generated package expression.
2015-09-21build: Add cran-uri procedure.Ricardo Wurmus
* guix/build-system/r.scm (cran-uri): New procedure.
2015-09-18lint: Report lonely parentheses.Ludovic Courtès
* guix/scripts/lint.scm (%hanging-paren-rx): New variable. (report-lone-parentheses): New procedure. (%formatting-reporters): Use it. * tests/lint.scm ("formatting: lonely parentheses"): New test.
2015-09-18store: Add 'set-build-options*'.Alex Kost
Suggested by: Ludovic Courtès <ludo@gnu.org>. * guix/store.scm (set-build-options*): New procedure.
2015-09-18ui: Add 'show-derivation-outputs'.Alex Kost
* guix/scripts/build.scm (guix-build): Extract code from here and move to... * guix/ui.scm (show-derivation-outputs): ... here. New procedure.
2015-09-18Add (guix scripts).Alex Kost
* guix/ui.scm: Add missing copyright lines. (args-fold*, environment-build-options, %default-argument-handler, parse-command-line): Move to ... * guix/scripts.scm: ...here. New file. * guix/scripts/archive.scm: Use it. * guix/scripts/build.scm: Likewise. * guix/scripts/download.scm: Likewise. * guix/scripts/edit.scm: Likewise. * guix/scripts/environment.scm: Likewise. * guix/scripts/gc.scm: Likewise. * guix/scripts/graph.scm: Likewise. * guix/scripts/hash.scm: Likewise. * guix/scripts/import/cpan.scm: Likewise. * guix/scripts/import/cran.scm: Likewise. * guix/scripts/import/elpa.scm: Likewise. * guix/scripts/import/gem.scm: Likewise. * guix/scripts/import/gnu.scm: Likewise. * guix/scripts/import/hackage.scm: Likewise. * guix/scripts/import/nix.scm: Likewise. * guix/scripts/import/pypi.scm: Likewise. * guix/scripts/lint.scm: Likewise. * guix/scripts/package.scm: Likewise. * guix/scripts/publish.scm: Likewise. * guix/scripts/pull.scm: Likewise. * guix/scripts/refresh.scm: Likewise. * guix/scripts/size.scm: Likewise. * guix/scripts/system.scm: Likewise. * tests/ui.scm (with-environment-variable, "parse-command-line", "parse-command-line and --no options"): Move to ... * tests/scripts.scm: ...here. New file. * Makefile.am (MODULES): Add guix/scripts.scm. (SCM_TESTS): Add tests/scripts.scm. * po/guix/POTFILES.in: Add guix/scripts.scm.
2015-09-17download: Only show hours in the elapsed time if necessary.Steve Sprang
* guix/build/download.scm (seconds->string): Conditionally include hours in timestamp. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2015-09-16substitute: Improve readability of download progress report.Steve Sprang
* guix/build/download.scm (string-pad-middle, store-url-abbreviation, store-path-abbreviation): New procedures. (progress-proc): Add #:abbreviation parameter and use it. Generate a better indeterminate progress string. * guix/scripts/substitute.scm (assert-valid-narinfo): Add newlines to output. (process-substitution): Use byte-count->string and store-path-abbreviation. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2015-09-15lint: Add 'check-texinfo-markup' checker.Mathieu Lirzin
* guix/script/lint.scm (check-description-style): Check for invalid Texinfo markup. * tests/lint.scm: Test it.
2015-09-14guix: lint: Check for meaningful origin file names.Eric Bavier
* guix/scripts/lint.scm (check-source-file-name): New procedure. (%checkers): Add 'source-file-name' checker. * tests/lint.scm ("source-file-name", "source-file-name: v prefix") ("source-file-name: valid", "source-file-name: bad checkout") ("source-file-name: good checkout"): New tests. * doc/guix.texi (Invoking guix lint): Mention file name check.
2015-09-14guix: packages: Add origin-actual-file-name.Eric Bavier
* guix/scripts/graph.scm (uri->file-name, node-full-name): Move origin file name logic to... * guix/packages.scm (origin-actual-file-name): ...here. * tests/packages.scm ("origin-actual-file-name") ("origin-actual-file-name, file-name"): New tests.
2015-09-14download: Avoid type errors when formatting download progress output.Steve Sprang
* guix/build/download.scm (nearest-exact-integer): New procedure. (seconds->string, byte-count->string): Use it.
2015-09-15guix system: Gracefully handle incomplete commands.Ludovic Courtès
Fixes <http://bugs.gnu.org/21451>. Reported by Steve Sprang <steve.sprang@gmail.com>. * guix/scripts/system.scm (guix-system)[option-arguments]: Error out when ACTION is #f.
2015-09-14build: ruby: Add support for tarball and directory sources.David Thompson
Previously, the Ruby build system only knew how to work with gem archives, which made it difficult to build unreleased gems from a Git repository or released gems in tarball form. * gnu/build/ruby-build-system.scm (gnu:unpack, gem-archive?): New procedures. (unpack): Use GNU build system unpack phase for non-gem sources. (build): Rebuild the gemspec iff the source is a gem archive. * guix.texi ("ruby-build-system"): Mention that tarballs and directories are acceptable.
2015-09-10guix build: '--log-file' can return URLs.Ludovic Courtès
* guix/scripts/build.scm (%default-log-urls): New variable. (log-url): New procedure. (guix-build): Use it. * doc/guix.texi (Invoking guix build): Document it.
2015-09-10http-client: Backport delimited input port fix from Guile.Ludovic Courtès
* guix/http-client.scm (make-delimited-input-port): Backport Guile commit 5a10e41. Monkey-patch 'make-delimited-input-port' for any Guile <= 2.0.11.
2015-09-10http-client: Remove redundant import clause.Ludovic Courtès
* guix/http-client.scm: Remove redundant #:use-module (guix utils).
2015-09-10guix: packages: Add transitive-input-references.Eric Bavier
* guix/packages.scm (transitive-input-references): New procedure. * gnu/packages/version-control.scm (package-transitive-propagated-labels*) (package-propagated-input-refs): Delete. (git)[arguments]: Adjust to transitive-input-references.
2015-09-10pull: Update to the new cgit snapshot URL.Ludovic Courtès
* guix/scripts/pull.scm (%snapshot-url): Update to the new URL.
2015-09-08build: Improve information density and appearance of download progress output.Steve Sprang
* guix/build/download.scm (seconds->string): New function. (byte-count->string): New function. (progress-bar): New function. (throughput->string): Remove function. (progress-proc): Display base file name, elapsed time, and progress bar. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2015-09-08ui: Add package-description-string.Mathieu Lirzin
Provide support for Texinfo's markup in package description. * guix/ui.scm (%text-width): New parameter. (texi->plain-text): New variable. (package->recutils): Use them. (package-description-string): New variable. * emacs/guix-main.scm (%package-param-alist): Use it. * gnu/packages/perl.scm (perl-devel-globaldestruction) (perl-devel-lexalias, perl-exporter-lite): Adapt to Texinfo's markup. * gnu/packages/python.scm (python2-empy): Likewise.
2015-09-07build: container: Use the same clone flags as fork(3).David Thompson
The intent is to make 'clone' behave a lot more like 'primitive-fork', which calls clone(2) with SIGCHLD, CLONE_CHILD_CLEARTID, and CLONE_CHILD_SETTID flags. Notably, running 'clone' at the REPL without these flags would break the REPL beyond repair. * guix/build/syscalls.scm (CLONE_CHILD_CLEARTID, CLONE_CHILD_SETTID): New variables. * gnu/build/linux-container.scm (namespaces->bit-mask): Add CLONE_CHILD_CLEARTID and CLONE_CHILD_SETTID to bit mask.
2015-09-07build: ruby: Avoid long build directory names.David Thompson
Having the hash of the source gem in the source directory file name proved to be problematic when running the test suite for the 'pg' gem that creates UNIX-domain sockets in the source directory and exceeded the 108 character limit on GNU/Linux systems. * guix/build/ruby-build-system.scm (unpack): Rename unpacked gem directory to "gem".
2015-09-06ui: Change 'P_' to return the empty string when passed the empty string.Ludovic Courtès
Reported by Mathieu Lirzin <mathieu.lirzin@etu.u-bordeaux.fr> at <https://lists.gnu.org/archive/html/guix-devel/2015-09/msg00111.html>. * guix/ui.scm (P_): Check whether MSGID is empty, and return it if it is.
2015-09-06licenses: Add CC-BY-SA and CC-BY.Ludovic Courtès
* guix/licenses.scm (cc-by-sa4.0, cc-by3.0): New variables.
2015-09-06lint: Add 'license' checker.Ludovic Courtès
* guix/scripts/lint.scm (check-license): New procedure. (%checkers): Add 'license' checker. * tests/lint.scm ("license: invalid license"): New test.
2015-09-06emacs-build-system: Fix a file name of info directory.Alex Kost
* guix/build/emacs-build-system.scm (move-doc): Adjust to use "/share/info" instead of its sub-directory.
2015-09-05download: Disable offloading for downloads.Ludovic Courtès
* guix/download.scm (url-fetch): Use #:local-build? #t. * guix/git-download.scm (git-fetch): Likewise.
2015-09-05build: syscalls: Properly handle clone errors.David Thompson
* guix/build/syscalls.scm (clone): Catch -1 return value and throw error.
2015-09-04monads: Fix 'liftN' fallback case.Ludovic Courtès
Reported by Andy Wingo <wingo@igalia.com>. * guix/monads.scm (define-lift) <fallback case>: Add missing #'. Remove extra formal parameter. * tests/monads.scm ("lift"): Add test with 'lift1' as a procedure.
2015-09-04publish: Gracefully handle the lack of a deriver.Ludovic Courtès
* guix/scripts/publish.scm (narinfo-string): Catch 'system-error' around 'load-derivation' call; return BASE-INFO upon ENOENT. This allows us to return the narinfo even if DERIVER is missing. Before that, the exception would be uncaught, leading to 500 Internal Error on the client side.
2015-09-02graph: Add '--expression'.Ludovic Courtès
* guix/scripts/graph.scm (%options, show-help): Add '--expression'. (guix-graph): Call 'read/eval-package-expression' for 'expression' pairs in OPTS. * tests/guix-graph.sh: Add tests. * doc/guix.texi (Invoking guix graph): Document it.
2015-09-02guix: Add GUST font license 1.0.Ricardo Wurmus
* guix/licenses.scm (gfl1.0): New variable.
2015-09-01import: gem: Fix minor bug and add unit test.David Thompson
* guix/import/gem.scm (make-gem-sexp): Properly handle an empty list of licenses. When rendering a list of licenses, cons 'list onto the front of the expression. * tests/gem.scm: New file. * Makefile.am (SCM_TESTS): Add it.
2015-08-31build: Add R build system.Ricardo Wurmus
* guix/build-system/r.scm: New file. * guix/build/r-build-system: New file. * Makefile.am (MODULES): Add new files. * doc/guix.texi (Build Systems): Document r-build-system.
2015-08-31import: Add 'cran' importer.Ricardo Wurmus
* guix/import/cran.scm: New file. * guix/scripts/import.scm: Add "cran" to 'importers'. * guix/scripts/import/cran.scm: New file. * tests/cran.scm: New file. * Makefile.am (MODULES): Add 'guix/import/cran.scm' and 'guix/scripts/import/cran.scm'. (SCM_TESTS): Add 'tests/cran.scm'. * doc/guix.texi (Invoking guix import): Document it. * po/guix/POTFILES.in: Add 'guix/scripts/import/cran.scm'.
2015-08-30ui: Add 'run-guix'.Alex Kost
* guix/ui.scm (guix-main): Move the code to run guix command line to ... (run-guix): ...here. New procedure. Export it.
2015-08-30guix graph: Export node types and <node-type> accessors.Alex Kost
* guix/scripts/graph.scm (%node-types, node-type, node-type?, node-type-identifier, node-type-label, node-type-edges, node-type-convert, node-type-name, node-type-description): Export.
2015-08-30guix lint: Export checkers and <lint-checker> accessors.Alex Kost
* guix/scripts/lint.scm (%checkers, lint-checker, lint-checker?, lint-checker-name, lint-checker-description, lint-checker-check): Export.
2015-08-29download: Keep a single copy of the mirror file.Ludovic Courtès
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.
2015-08-29refresh: Add missing newline in warning message.Ludovic Courtès
Reported by karhunkynsi on #guix. * guix/scripts/refresh.scm (update-package): Add missing newline in string literal passed to 'warning'.
2015-08-29download: Keep only 2 store items for all the downloads.Ludovic Courtès
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'.
2015-08-29gexp: Add #:script-name parameter to 'gexp->derivation'.Ludovic Courtès
* guix/gexp.scm (gexp->derivation): Add #:script-name parameter. * doc/guix.texi (G-Expressions): Document it.
2015-08-29monads: Inline the procedure returned by liftN.Ludovic Courtès
* guix/monads.scm (define-lift): Turn into a macro that open-codes the result of its lift.
2015-08-27import: Add Ruby gem importer.David Thompson
* 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.
2015-08-27import: pypi: Move generally useful procedures to utils module.David Thompson
* 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.
2015-08-27Add 'guix graph'.Ludovic Courtès
* 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.
2015-08-27gexp: Add 'lower-object'.Ludovic Courtès
* 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.
2015-08-24guix package: -s shows outputs.Mark H Weaver
* guix/ui.scm (package->recutils): Print "outputs:".
2015-08-20profiles: Remove duplicate entries in 'etc/profile'.Ludovic Courtès
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.