summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
2018-06-14guix: ui: Allow translation of dates....* guix/ui.scm (display-generation): Allow translation of dates. The format string will show dates as month day year, but some languages use a different convention. Julien Lepiller
2018-06-14Remove 'guix-register' and its traces....* Makefile.am (SH_TESTS): Remove tests/guix-register.sh. * build-aux/pre-inst-env.in (GUIX_REGISTER): Remove. * gnu/build/install.scm (directives): Remove outdated comment. * gnu/build/vm.scm (root-partition-initializer): Update comment. * gnu/packages/package-management.scm (guix-register): Remove. * guix/config.scm.in (%sbindir, %guix-register-program): Remove. * guix/scripts/system.scm (install): Adjust docstring. * guix/self.scm (make-config.scm): Remove #:guix. Do not generate %sbindir and %guix-register-program. (specification->package): Remove "guix". * nix/guix-register/guix-register.cc: Remove. * nix/libstore/store-api.cc (decodeValidPathInfo): Remove. * nix/libstore/store-api.hh (decodeValidPathInfo): Remove declaration. * nix/local.mk (sbin_PROGRAMS, guix_register_SOURCES) (guix_register_CPPFLAGS, guix_register_LDFLAGS): Remove. * tests/guix-register.sh: Remove. Ludovic Courtès
2018-06-14store: Remove 'register-path'....* guix/store.scm (register-path): Remove. * guix/nar.scm: Use (guix store database). * guix/scripts/system.scm: Likewise. * tests/store-database.scm: Remove #:hide (register-path). * tests/store.scm ("register-path"): Remove. Ludovic Courtès
2018-06-14database: Allow for deterministic database construction....Fixes <https://bugs.gnu.org/21073>. * guix/store/database.scm (sqlite-register): Add #:time. (%epoch): New variable. (register-items): Add #:registration-time. Pass #:time to 'sqlite-register'. * gnu/build/install.scm (register-closure): Pass #:registration-time. Ludovic Courtès
2018-06-14install: Use 'reset-timestamps' from (guix store database)....* gnu/build/install.scm (reset-timestamps): Remove. * gnu/build/vm.scm: Use 'reset-timestamps' from (guix store database). Ludovic Courtès
2018-06-14database: Add 'register-items'....* guix/build/store-copy.scm (store-info): Export. * guix/store/database.scm (register-items): New procedure. (register-path): Implement in terms of 'register-items'. * gnu/build/install.scm (register-closure): Use 'register-items' instead of 'for-each' and 'register-path'. Ludovic Courtès
2018-06-14database: 'sqlite-register' takes a database, not a file name....* guix/store/database.scm (sqlite-register): Remove #:db-file and add 'db' parameter. Remove #:schema and 'parameterize'. (register-path): Wrap 'sqlite-register' call in 'with-database' and in 'parameterize'. * tests/store-database.scm ("new database") ("register-path with unregistered references"): Adjust accordingly. Ludovic Courtès
2018-06-14install: Use (guix store database) instead of 'guix-register'....* gnu/build/install.scm (register-closure): Add #:reset-timestamps? and and #:schema; honor them. Rewrite in terms of 'register-path'. (populate-single-profile-directory): Add #:schema and honor it. Make /var/guix/profiles and /var/guix/gcroots. * gnu/build/vm.scm (root-partition-initializer): Pass #:reset-timestamps? to 'register-closure'. * gnu/system/vm.scm (not-config?): New procedure. (guile-sqlite3&co): New variable. (expression->derivation-in-linux-vm)[config]: New variable. [builder]: Use 'with-extensions'. (iso9660-image)[schema, config]: New variables. Wrap build expression in 'with-extensions'; add 'sql-schema' call. Remove GUIX from INPUTS. (qemu-image)[schema, config]: New variables. Wrap body in 'with-extensions'. (system-docker-image)[not-config?]: Remove. [config]: Use 'make-config.scm'. [schema]: New variable. [build]: Use 'with-extensions'. Add call to 'sql-schema'. Remove GUIX from INPUTS. * gnu/system/file-systems.scm (%store-prefix): Check whether '%store-prefix' is defined. * guix/scripts/pack.scm (self-contained-tarball)[not-config?] [libgcrypt, schema]: New variables. [build]: Wrap in 'with-extensions'. Adjust imported module list to use 'make-config.scm' for (guix config). Ludovic Courtès
2018-06-14database: 'reset-timestamps' sets file permissions as well....* guix/store/database.scm (reset-timestamps): Add 'chmod' calls. Ludovic Courtès
2018-06-14database: Replace existing entries in Refs....* guix/store/database.scm (add-reference-sql): Add "OR REPLACE". Ludovic Courtès
2018-06-14database: Add #:reset-timestamps? to 'register-path'....* guix/store/database.scm (register-path): Add #:reset-timestamps? and honor it. Ludovic Courtès
2018-06-14database: Remove extra SQL parameter in 'update-or-insert'....* guix/store/database.scm (update-or-insert): Remove extra #:path parameter. Ludovic Courtès
2018-06-14deduplicate: Fix a couple of thinkos....* guix/store/deduplication.scm (get-temp-link): Turn 'args' in the 'catch' handler into a rest argument. (deduplicate): Use 'lstat' instead of 'file-is-directory?' to properly handle symlinks. When iterating over the result of 'scandir', exclude the ".links" sub-directory. * tests/store-deduplication.scm ("deduplicate"): Create sub-directories and call 'deduplicate' directly on STORE. Ludovic Courtès
2018-06-14database: 'register-path' creates the database directory if needed....* guix/store/database.scm (register-path): Call 'mkdir-p'. Ludovic Courtès
2018-06-14database: Provide a way to specify the schema location....* guix/store/database.scm (sqlite-register): Add #:schema. Parameterize 'sql-schema' based on this. (register-path): Add #:schema and pass it to 'sqlite-register'. Ludovic Courtès
2018-06-14store-copy: 'read-reference-graph' returns a list of records....The previous implementation of 'read-reference-graph' was good enough for many use cases, but it discarded the graph structure, which is useful information in some cases. * guix/build/store-copy.scm (<store-info>): New record type. (read-reference-graph): Rewrite to return a list of <store-info>. (closure-size, populate-store): Adjust accordingly. * gnu/services/base.scm (references-file): Adjust accordingly. * gnu/system/vm.scm (system-docker-image): Likewise. * guix/scripts/pack.scm (squashfs-image, docker-image): Likewise. * tests/gexp.scm ("gexp->derivation #:references-graphs"): Likewise. Ludovic Courtès
2018-06-14database: Fail registration when encountering unregistered references....* guix/store/database.scm (add-reference-sql): Remove nested SELECT. (add-references): Expect REFERENCES to be a list of ids. (sqlite-register): Call 'path-id' for each of REFERENCES and pass it to 'add-references'. * tests/store-database.scm ("register-path with unregistered references"): New test. Ludovic Courtès
2018-06-14database: 'with-database' can now initialize new databases....* nix/libstore/schema.sql: Rename to... * guix/store/schema.sql: ... this. * Makefile.am (nobase_dist_guilemodule_DATA): Add it. * nix/local.mk (%D%/libstore/schema.sql.hh): Adjust accordingly. * guix/store/database.scm (sql-schema): New variable. (sqlite-exec, initialize-database, call-with-database): New procedures. (with-database): Rewrite in terms of 'call-with-database'. * tests/store-database.scm ("new database"): New test. * guix/self.scm (compiled-guix)[*core-modules*]: Add 'schema.sql' to #:extra-files. Ludovic Courtès
2018-06-13pull: Add '--list-generations'....* guix/scripts/pull.scm (show-help, %options): Add '--list-generations'. (display-profile-content, process-query): New procedures. (guix-pull): Honor '--list-generations'. Ludovic Courtès
2018-06-12import: utils: Import more dependencies....* guix/import/utils.scm (recursive-import): Import more dependencies. Oleg Pykhalov
2018-06-12substitute: Make progress message shorter....* guix/scripts/substitute.scm (fetch-narinfos)[update-progress!]: Shorten progress message so it fits on 80 columns. Ludovic Courtès
2018-06-12substitute: Erase the current line when reporting progress....* guix/scripts/substitute.scm (fetch-narinfos)[update-progress!]: Use the ANSI erase-current-line sequence next to \r. Ludovic Courtès
2018-06-11offload: Honor the build timeout internally....* guix/scripts/offload.scm (call-with-timeout): New procedure. (with-timeout): New macro. (process-request): Use it around 'transfer-and-offload' call. Ludovic Courtès
2018-06-10import: json: Consolidate duplicate json-fetch functionality....* guix/import/json.scm (json-fetch): Return a list or hash table. (json-fetch-alist): New procedure. * guix/import/github.scm (json-fetch*): Remove. (latest-released-version): Use json-fetch. * guix/import/cpan.scm (module->dist-name): Use json-fetch-alist. (cpan-fetch): Likewise. * guix/import/crate.scm (crate-fetch): Likewise. * guix/import/gem.scm (rubygems-fetch): Likewise. * guix/import/pypi.scm (pypi-fetch): Likewise. * guix/import/stackage.scm (stackage-lts-info-fetch): Likewise. Jelle Licht
2018-06-09pull: Record the URL, branch, and commit as a manifest entry property....* guix/scripts/pull.scm (derivation->manifest-entry): Turn COMMIT into a keyword parameter; add #:url and #:branch. Add a 'source' property to the manifest entry. (build-and-install): Add #:url and #:branch and pass it to 'derivation->manifest-entry'. (guix-pull): Adjust accordingly. Ludovic Courtès
2018-06-09profiles: Add 'properties' field to manifest entries....* guix/profiles.scm (<manifest-entry>)[properties]: New field. (manifest->gexp)[entry->gexp]: Serialize it. (sexp->manifest)[sexp->manifest-entry]: Deserialize it. Ludovic Courtès
2018-06-09packages: Add 'package-patched-vulnerabilities'....* guix/packages.scm (patch-file-name): New procedure. (%vulnerability-regexp): New variable. (package-patched-vulnerabilities): New procedure. * guix/scripts/lint.scm (patch-file-name): Remove. (check-vulnerabilities): Adjust to use 'package-patched-vulnerabilities'. * tests/packages.scm ("package-patched-vulnerabilities"): New test. Ludovic Courtès
2018-06-09profiles: Add '%current-profile', 'user-friendly-profile', & co....* guix/scripts/package.scm (%user-profile-directory) (%profile-directory, %current-profile, canonicalize-profile) (user-friendly-profile): Move to... * guix/profiles.scm: ... here. Ludovic Courtès
2018-06-09ui: Avoid #:select'ing bindings introduced in the latest (guix build utils)....This should allow 'guix pull' to complete even when invoked from a Guix that predates commit 5d669883ecc104403c5d3ba7d172e9c02234577c. * guix/ui.scm: Use #:hide instead of #:select. This is a followup to 5d669883ecc104403c5d3ba7d172e9c02234577c. Ludovic Courtès
2018-06-09self: Build the Info manual....* guix/self.scm (info-manual): New procedure. (whole-package): Add #:info and honor it. (compiled-guix): Pass #:info. Ludovic Courtès
2018-06-09self: Compute and use locale data....* guix/self.scm (sub-directory, locale-data): New procedures. (guix-command): Add SOURCE parameter. Call 'locale-data' when SOURCE is true and use it in staged 'bindtextdomain' calls. (whole-package): Add #:command and honor it. (compiled-guix): Pass #:command to 'whole-package'. Ludovic Courtès
2018-06-09pull: Install the new Guix in a profile....* guix/scripts/pull.scm (%pull-version): New variable. (build-from-source): Pass #:pull-version to BUILD. (whole-package-for-legacy, derivation->manifest-entry): New procedure. (build-and-install): Rewrite in terms of 'build-and-use-profile'. * guix/scripts/system.scm (maybe-suggest-running-guix-pull)[latest]: Switch to "/current". * scripts/guix.in (augment-load-paths!): Remove use of ~/.config/guix/latest. * build-aux/compile-as-derivation.scm: Replace "/guix/latest/" with "/current/share/guile/site/X.Y" * guix/scripts.scm (warn-about-old-distro)[age]: Check "/current" instead of "/latest". * doc/guix.texi (Invoking guix pull): Document it. * doc/contributing.texi (Running Guix Before It Is Installed): Remove footnote about abusing ~/.config/guix/latest. Ludovic Courtès
2018-06-09self: Produce a complete package with the 'guix' command....* guix/self.scm (guix-command): New procedure. (compiled-guix): Add #:pull-version parameter. [command, package]: New variables. Honor PULL-VERSION. (guix-derivation): Add #:pull-version and pass it to 'compiled-guix'. * build-aux/build-self.scm (build-program): Add #:pull-version parameter. Pass it to 'guix-derivation'. (build): Add #:pull-version and pass it to 'build-program'. * build-aux/compile-as-derivation.scm: Pass #:pull-version to BUILD. Ludovic Courtès
2018-06-08import: elpa: Remove unused (gnu packages) module....* guix/import/elpa.scm: Remove unused (gnu packages) module. Oleg Pykhalov
2018-06-08config: Remove 'canonicalize-path' call....The call was unnecessary and would cause test failures because 'test-tmp/db' does not exist initially. * guix/config.scm.in (%store-database-directory): Remove 'canonicalize-path' call. Ludovic Courtès
2018-06-08import: elpa: Add recursive import....* doc/guix.texi (Invoking guix import): Document elpa recursive import. * guix/import/elpa.scm (elpa-package->sexp): Return package and dependencies values. (elpa-guix-name, elpa-recursive-import): New procedures. * guix/scripts/import/elpa.scm (show-help, %options): Add recursive option. (guix-import-elpa): Use 'elpa-recursive-import'. Oleg Pykhalov
2018-06-08import: utils: Add recursive-import....* guix/import/cran.scm (cran-guix-name, cran-recursive-import): New procedures. (recursive-import): Remove procedure. * guix/import/utils.scm (guix-name, recursive-import): New procedures. * guix/scripts/import/cran.scm (guix-import-cran): Use 'cran-recursive-import' procedure. Oleg Pykhalov
2018-06-05Merge branch 'master' into core-updatesRicardo Wurmus
2018-06-05build-system/r: Update to Bioconductor 3.7....This is a follow-up to 41f17554d88795bf35fbfc3e05301a6d2f64cca0. * guix/build-system/r.scm (bioconductor-uri): Update to version 3.7. Ricardo Wurmus
2018-06-03Merge branch 'master' into core-updatesMark H Weaver
2018-06-02self: Do not build (guix man-db)....* guix/self.scm (specification->package): Remove "guile-gdbm-ffi" and "guile2.0-gdbm-ffi". (compiled-guix)[guile-gdbm-ffi]: Remove. [dependencies]: Remove it. [*core-modules*]: Add "guix/man-db.scm" via #:extra-files. [*extra-modules*]: Exclude "guix/man-db.scm". Ludovic Courtès
2018-06-02Merge branch 'master' into core-updatesRicardo Wurmus
2018-06-02import: cran: Update to Bioconductor 3.7....* guix/import/cran.scm (%bioconductor-version): Update to 3.7. Ricardo Wurmus
2018-06-02self: Include gnu/build/* in the result....Previously, modules like gnu/build/cross-toolchain.scm or gnu/build/svg.scm were missing from the result. * guix/self.scm (compiled-guix)[*system-modules*]: Add gnu/build/* to #:extra-files. (imported-files)[same-target?]: New procedure. [build]: Call 'delete-duplicates' on FILES. Ludovic Courtès
2018-06-02self: 'compiled-files' builds the given list of files....* guix/self.scm (compiled-files): Add 'module-files' parameter. [build]: 'process-directory' now honors MODULE-FILES instead of building any '.scm' file it sees. (scheme-node): Adjust accordingly. Ludovic Courtès
2018-06-02self: Improve backtraces for 'imported-files'....* guix/self.scm (imported-files): Pass #:env-vars. Ludovic Courtès
2018-06-01Merge branch 'master' into core-updatesLudovic Courtès
2018-06-01self: Show backtraces on more columns....* guix/self.scm (compiled-modules): Add "COLUMNS" to #:env-vars. Ludovic Courtès
2018-06-01self: Add dependency on guile-gdbm-ffi....Fixes a regression introduced in 331ac4cc239727992329207ba428b3f26cae91d9 whereby "guile-gdbm-ffi" would now be mandatory. * guix/self.scm (specification->package): Add "guile-gdbm-ffi" and "guile2.0-gdbm-ffi". (compiled-guix)[guile-gdbm-ffi]: New variables. [dependencies]: Add it. Ludovic Courtès
2018-06-01Add (guix store deduplication)....* guix/store/database.scm (register-path): Add #:deduplicate? and call 'deduplicate' when it's true. (counting-wrapper-port, nar-sha256): Move to... * guix/store/deduplication.scm: ... here. New file. * tests/store-deduplication.scm: New file. * Makefile.am (STORE_MODULES): Add deduplication.scm. (SCM_TESTS) [HAVE_GUILE_SQLITE3]: Add store-deduplication.scm. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Caleb Ristvedt