| Commit message (Collapse) | Author | Age |
|
|
|
| |
* guix/store/database.scm (add-reference-sql): Add "OR REPLACE".
|
|
|
|
|
| |
* guix/store/database.scm (register-path): Add #:reset-timestamps? and
honor it.
|
|
|
|
|
| |
* guix/store/database.scm (update-or-insert): Remove extra #:path
parameter.
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
* guix/store/database.scm (register-path): Call 'mkdir-p'.
|
|
|
|
|
|
| |
* guix/store/database.scm (sqlite-register): Add #:schema. Parameterize
'sql-schema' based on this.
(register-path): Add #:schema and pass it to 'sqlite-register'.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
| |
* guix/scripts/pull.scm (show-help, %options): Add '--list-generations'.
(display-profile-content, process-query): New procedures.
(guix-pull): Honor '--list-generations'.
|
|
|
|
| |
* guix/import/utils.scm (recursive-import): Import more dependencies.
|
|
|
|
|
| |
* guix/scripts/substitute.scm (fetch-narinfos)[update-progress!]:
Shorten progress message so it fits on 80 columns.
|
|
|
|
|
| |
* guix/scripts/substitute.scm (fetch-narinfos)[update-progress!]: Use
the ANSI erase-current-line sequence next to \r.
|
|
|
|
|
|
| |
* guix/scripts/offload.scm (call-with-timeout): New procedure.
(with-timeout): New macro.
(process-request): Use it around 'transfer-and-offload' call.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
| |
* guix/profiles.scm (<manifest-entry>)[properties]: New field.
(manifest->gexp)[entry->gexp]: Serialize it.
(sexp->manifest)[sexp->manifest-entry]: Deserialize it.
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
| |
* guix/scripts/package.scm (%user-profile-directory)
(%profile-directory, %current-profile, canonicalize-profile)
(user-friendly-profile): Move to...
* guix/profiles.scm: ... here.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
* guix/self.scm (info-manual): New procedure.
(whole-package): Add #:info and honor it.
(compiled-guix): Pass #:info.
|
|
|
|
|
|
|
|
| |
* 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'.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
* guix/import/elpa.scm: Remove unused (gnu packages) module.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
* 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'.
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|\ |
|
| |
| |
| |
| |
| |
| | |
This is a follow-up to 41f17554d88795bf35fbfc3e05301a6d2f64cca0.
* guix/build-system/r.scm (bioconductor-uri): Update to version 3.7.
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* 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".
|
|\| |
|
| |
| |
| |
| | |
* guix/import/cran.scm (%bioconductor-version): Update to 3.7.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| | |
* 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.
|
| |
| |
| |
| | |
* guix/self.scm (imported-files): Pass #:env-vars.
|
|\| |
|
| |
| |
| |
| | |
* guix/self.scm (compiled-modules): Add "COLUMNS" to #:env-vars.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* 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>
|
| |
| |
| |
| |
| | |
* guix/store/database.scm (reset-timestamps): New procedure.
(register-path): Use it.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* guix/config.scm.in (%store-database-directory): New variable.
* guix/store/database.scm: New file.
* tests/store-database.scm: New file.
* Makefile.am (STORE_MODULES): New variable.
(MODULES, MODULES_NOT_COMPILED): Adjust accordingly.
(SCM_TESTS) [HAVE_GUILE_SQLITE3]: Add tests/store-database.scm.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
|
| |
| |
| |
| |
| |
| |
| |
| | |
* m4/guix.m4 (GUIX_CHECK_GUILE_SQLITE3): New macro.
* configure.ac: Use it and define 'HAVE_GUILE_SQLITE3'.
* guix/self.scm (specification->package): Add "guile-sqlite3".
(compiled-guix)[guile-sqlite3]: New variable.
[dependencies]: Add it.
|
| |
| |
| |
| |
| |
| |
| | |
* guix/profiles.scm (manual-database)[build]: Use 'with-extensions'.
Remove 'add-to-load-path' call.
* guix/man-db.scm: Use (gdbm) the normal way; remove 'module-autoload!'
call.
|
| |
| |
| |
| |
| |
| | |
* guix/docker.scm: Use module (json) the normal way.
* guix/scripts/pack.scm (docker-image)[build]: Wrap in
'with-extensions'.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* guix/gexp.scm (<gexp>)[extensions]: New field.
(gexp-attribute): New procedure.
(gexp-modules): Write in terms of 'gexp-attribute'.
(gexp-extensions): New procedure.
(gexp->derivation): Add #:effective-version.
[extension-flags]: New procedure.
Honor extensions of EXP.
(current-imported-extensions): New syntax parameter.
(with-extensions): New macro.
(gexp): Honor CURRENT-IMPORTED-EXTENSIONS.
(compiled-modules): Add #:extensions and honor it.
(load-path-expression): Likewise.
(gexp->script, gexp->file): Honor extensions.
* tests/gexp.scm (%extension-package): New variable.
("gexp-extensions & ungexp")
("gexp-extensions & ungexp-splicing")
("gexp-extensions and literal Scheme object")
("gexp->derivation & with-extensions")
("program-file & with-extensions"): New tests.
* doc/guix.texi (G-Expressions): Document 'with-extensions'.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Until now 'compiled-modules' would override (guix build utils) with its
own. Thus, when asked to build a different (guix build utils),
via #:module-path, it would fail badly because a (guix build utils)
module was already loaded and possibly incompatible with the new one.
This happened when running 'guix pull --branch=core-updates' from
current master: in 'core-updates', (guix build utils) exports
'ignore-error?' but in 'master' it does not. Thus, 'guix pull' would
fail with:
no binding `invoke-error?' in module (guix build utils)
builder for `/gnu/store/…-module-import-compiled.drv' failed with exit code 1
cannot build derivation `/gnu/store/…-compute-guix-derivation.drv': 1 dependencies couldn't be built
This patch fixes it.
* guix/gexp.scm (compiled-modules)[build-utils-hack?]: New variable.
[build]: Load MODULES/build/utils.scm when it exists.
|
| |
| |
| |
| |
| |
| | |
* guix/scripts/system.scm (profile-boot-parameters): Reverse
generation-numbers list. This allows old generations to be listed from most
recent to oldest in bootloaders configuration files.
|
| |
| |
| |
| |
| | |
* guix/records.scm (current-abi-identifier, abi-check): Wrap in
'eval-when'.
|