Age | Commit message (Collapse) | Author |
|
* 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'.
|
|
By mistake we were adding more dependencies than needed to the Scheme
derivations.
* guix/self.scm (compiled-guix)[dependencies]: Use
'package-transitive-propagated-inputs', not 'package-transitive-inputs'.
|
|
* guix/download.scm (gnutls-package): Remove.
|
|
* guix/scripts/pack.scm (%formats): Add "squashfs" format.
(guix-pack): Adjust "archiver" dependent on pack-format.
(squashfs-image): New procedure.
* doc/guix.texi (Invoking guix pack): Document it.
|
|
* guix/scripts/pack.scm (self-contained-tarball, docker-image): Accept
"archiver" argument; remove "tar" argument.
(guix-pack): Invoke "build-image" with "archiver" argument.
|
|
The 'title' field was easily overlooked and was an endless source of
confusion. Now, the value of the 'device' field is self-contained.
* gnu/system/file-systems.scm (<file-system>): Change constructor name
to '%file-system'.
[title]: Remove.
(<file-system-label>): New record type with printer.
(report-deprecation, device-expression)
(process-file-system-declaration, file-system): New macros.
(file-system-title): New procedure.
(file-system->spec, spec->file-system): Adjust to handle
<file-system-label>.
* gnu/system.scm (bootable-kernel-arguments): Add case for
'file-system-label?'.
(read-boot-parameters): Likewise.
(mapped-device-user): Avoid 'file-system-title'.
(fs->boot-device): Remove.
(operating-system-boot-parameters): Use 'file-system-device' instead of
'fs->boot-device'.
(device->sexp): Add case for 'file-system-label?'.
* gnu/bootloader/grub.scm (grub-root-search): Add case for
'file-system-label?'.
* gnu/system/examples/bare-bones.tmpl,
gnu/system/examples/beaglebone-black.tmpl,
gnu/system/examples/lightweight-desktop.tmpl,
gnu/system/examples/vm-image.tmpl: Remove uses of 'title'.
* gnu/system/vm.scm (virtualized-operating-system): Remove uses of
'file-system-title'.
* guix/scripts/system.scm (check-file-system-availability): Likewise,
and adjust fix-it hint.
(check-initrd-modules)[file-system-/dev]: Likewise.
* gnu/build/file-systems.scm (canonicalize-device-spec): Remove 'title'
parameter.
[canonical-title]: Remove.
Match on SPEC's type rather than on CANONICAL-TITLE.
(mount-file-system): Adjust caller.
* gnu/build/linux-boot.scm (boot-system): Interpret ROOT here.
* gnu/services/base.scm (file-system->fstab-entry): Remove use of
'file-system-title'.
* doc/guix.texi (File Systems): Remove documentation of the 'title'
field. Rewrite documentation of 'device' and document
'file-system-label'.
|
|
* guix/http-client.scm (http-fetch): Use CURRENT-ERROR-PORT instead of default
output.
|
|
* guix/records.scm (print-record-abi-mismatch-error): New procedure.
<top level>: Add 'set-exception-printer!' call.
(current-abi-identifier, abi-check): New procedures.
(make-syntactic-constructor): Add #:abi-cookie parameter. Insert calls
to 'abi-check'.
(define-record-type*)[compute-abi-cookie]: New procedure.
Use it and emit a definition of the 'current-abi-identifier' for TYPE.
* tests/records.scm ("ABI checks"): New test.
|
|
* guix/profiles.scm (glib-schemas): New procedure.
(%default-profile-hooks): Add it.
|
|
Until now we'd get pointless messages like:
warning: collision encountered:
/gnu/store/…-gtk-icon-themes/share/icons/hicolor/icon-theme.cache
/gnu/store/…-inkscape-0.92.3/share/icons/hicolor/icon-theme.cache
warning: choosing /gnu/store/…-gtk-icon-themes/share/icons/hicolor/icon-theme.cache
* guix/build/union.scm (%harmless-collisions): New variable.
(warn-about-collision): Honor it.
|
|
Fixes <https://bugs.gnu.org/31450>.
Reported by Martin Castillo <castilma@uni-bremen.de>.
* guix/gexp.scm (gexp->derivation): Pass #:deprecation-warnings to
'imported-modules'.
(imported-files): Add #:deprecation-warnings and pass #:env-vars to
'gexp->derivation'.
(imported-modules): Add #:deprecation-warnings and pass it to
'imported-files'.
|
|
Previously things like:
guix pack -R guile guile-json
would lead to a profile without Guile-JSON, and to an 'etc/profile' that
does not define 'GUILE_LOAD_PATH'.
* guix/scripts/pack.scm (wrapped-package)[build]: Link top-level entries
of PACKAGE into OUTPUT.
|
|
* guix/utils.scm (version-prefix?): New procedure.
* tests/utils.scm ("version-prefix?"): New test.
|
|
* guix/scripts/pack.scm (self-contained-tarball)[build](symlink->directives):
Do not add a 'directory' directive for "/". Previously, as soon as we
were using '-S /bin=bin' or similar, we would add every entry a second
time in the tarball; this would translate as hard links in the tarball,
which tar < 1.30 sometimes fails to extract.
Pass symlinks defined in DIRECTIVES to 'tar'.
|
|
* guix/scripts/lint.scm: Fix typo.
|
|
* gnu/packages/android.scm (android-make-stub): Update to 0.6.0.
* guix/build-system/android-ndk.scm (android-ndk-build): Modify.
(lower): Modify.
|
|
* gnu/packages/aux-files/run-in-namespace.c: New file.
* Makefile.am (AUX_FILES): Add it.
* guix/scripts/pack.scm (<c-compiler>): New record type.
(c-compiler, bootstrap-c-compiler, c-compiler-compiler): New procedures.
(self-contained-tarball): Use
'relative-file-name' for the SOURCE -> TARGET symlink.
(docker-image): Add 'defmod' to please Geiser.
(wrapped-package, map-manifest-entries): New procedures.
(%options, show-help): Add --relocatable.
(guix-pack): Honor it.
|
|
* guix/search-paths.scm (set-search-paths): New procedure.
|
|
* guix/profiles.scm (manifest-lookup-package)[entry-lookup-package]: Add
case where 'manifest-entry-item' returns something that's neither a
string nor a package.
|
|
* guix/build/union.scm (symlink-relative): New procedure.
* guix/build/profiles.scm: Re-export it.
(build-profile): Add #:symlink and pass it to 'union-build'.
* guix/profiles.scm (profile-derivation): Add #:relative-symlinks?.
Pass #:symlink to 'build-profile'.
* tests/profiles.scm ("profile-derivation relative symlinks, one entry")
("profile-derivation relative symlinks, two entries"): New tests.
|
|
* guix/build/union.scm (%not-slash): New variable.
(relative-file-name): New procedure.
* tests/union.scm (test-relative-file-name): New macro and tests.
|
|
* gnu/packages/android.scm (android-googletest): New variable.
* guix/build-system/android-ndk.scm (android-ndk-build): Use it.
|
|
* guix/build/android-ndk-build-system.scm (install): Don't install header
files ourselves.
|
|
* guix/build-system/android-ndk.scm (android-ndk-build): Add googletest.
* guix/build/android-ndk-build-system.scm (check): Check whether tests are
enabled. Run root-level tests as well.
|
|
* guix/build-system/android-ndk.scm: New file.
* guix/build/android-ndk-build-system.scm: New file.
* Makefile.am: Add them.
|
|
* guix/packages.go.134WZR: Remove it. This empty file was
unintentionally included in ede121de426f9c56820852888a0b370f0ccbce49.
|
|
* guix/packages.scm (package-full-name): By default, use "@" to separate
the package name and package version. Add an optional delimiter
argument so that there is still a way to explicitly use a different
delimiter.
* gnu/packages/commencement.scm (gcc-boot0) <unpack-gmp&co>: Adjust
accordingly.
* tests/graph.scm: Adjust accordingly.
* tests/profiles.scm: Adjust accordingly.
* NEWS: Mention the change.
Fixes: <https://bugs.gnu.org/31088>.
Reported by Pierre Neidhardt <ambrevar@gmail.com>.
|
|
Fixes a regression introduced in
aad16cc1965ab3488449c262455eb29b15c77e95.
Reported by Julien Lepiller.
* guix/scripts/pack.scm (guix-pack)[manifest-from-args]: In
'match-lambda', add clause for single packages.
* tests/guix-pack.sh: Add test for '-e'.
|
|
Previously they would silently be ignored.
* guix/scripts/pack.scm (guix-pack)[manifest-from-args]: Add 'store'
parameter. Call 'options->transformation' and use it.
Move 'with-store' and 'parameterize' around the 'let'.
* tests/guix-pack.sh: Add test using '--with-source'.
|
|
* guix/scripts/pack.scm: Do not autoload (gnu packages base).
Previously, we could end up with 'canonical-package' as an unbound
variable because of the incorrect autoload spec.
|
|
This introduces an intermediate derivation, thereby reducing the amount
of rebuild that needs to happen when "leaf" package modules are
modified.
* guix/self.scm (compiled-guix)[*core-package-modules*]: New variable.
[*package-modules*, *system-modules*, *cli-modules*]: Depend on it.
Add it to the directory union.
|
|
* guix/ui.scm (print-unbound-variable-error): Add "error:" to the
message.
(report-unbound-variable-error): New procedure, with code formerly in
'report-load-error'.
(report-load-error): Use it.
(call-with-unbound-variable-handling): New procedure.
(with-unbound-variable-handling): New macro.
* guix/scripts/build.scm (options->derivations): Wrap body in
'with-unbound-variable-handling'.
* tests/guix-build.sh (GUIX_PACKAGE_PATH): Add test.
|
|
* guix/ui.scm (last-frame-with-source): New procedure.
(load*)[frame-with-source]: Remove.
Use 'last-frame-with-source'.
|
|
Byte compilation failures were ignored prior to this change.
* guix/build/emacs-utils.scm (emacs-byte-compile-directory): Fail when there
are compilation errors.
Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
|
|
* guix/scripts/system/search.scm (service-type-shepherd-names): Append
provision lists together instead of returning a list of provision cars.
|
|
Previously we could end up with only a subset of the modules built.
Fixes <https://bugs.gnu.org/31329>.
* guix/build/compile.scm (call/exit-on-exception): New procedure.
(exit-on-exception): New macro.
(compile-files): Use it.
|
|
* guix/scripts/weather.scm (report-server-coverage): Remove 'missing'
binding above 'queued-subset' call. Before that 'queued-subset' would
be called with a number instead of a list.
|
|
|
|
Fixes <https://bugs.gnu.org/29707>.
Reported by Clément Lassieur <clement@lassieur.org>.
* guix/scripts/system/search.scm (service-type-default-shepherd-services)
(service-type-shepherd-names): New procedures.
(service-type->recutils): Use it.
* tests/guix-system.sh: Add test.
|
|
Previously, if you wrote (device "my-label") without (title 'label),
you'd get:
guix system: error: stat: No such file or directory: "my-label"
Now you get a proper error and a hint.
Reported by Pierre-Antoine Rouby.
* guix/scripts/system.scm (check-file-system-availability)[literal]: New
variable. Loop over LITERAL.
* gnu/system/file-systems.scm (%pseudo-file-system-types): New variable.
* guix/ui.scm (display-hint): Make public.
|
|
|
|
Fixes <https://bugs.gnu.org/31085>.
Reported by Diego Nicola Barbato <dnbarbato@posteo.de>.
* guix/download.scm (url-fetch/tarbomb): Pass #:graft? #f to
'gexp->derivation'.
(url-fetch/zipbomb): Likewise.
|