| Age | Commit message (Collapse) | Author |
|
* guix/ui.scm (load*): Change ‘module’ to ‘imports’. Define ‘user-module’.
* guix/scripts/build.scm (options->things-to-build): Update to new ‘load*’
calling convention.
* guix/scripts/deploy.scm (load-source-file): Likewise.
* guix/scripts/environment.scm (load-manifest)
(options/resolve-packages): Likewise.
* guix/scripts/home.scm (process-action): Likewise.
(%user-module): Rename to…
(%user-modules): … this, and change to a list of module names.
* guix/scripts/pack.scm (guix-pack): Update ‘load*’ calls.
* guix/scripts/package.scm (load-manifest, %options): Likewise.
* guix/scripts/pull.scm (channel-list): Likewise.
* guix/scripts/refresh.scm (packages-from-manifest): Likewise.
* guix/scripts/system.scm (%user-module): Rename to…
(%user-modules): … this, and change to a list of module names.
(read-operating-system): Adjust accordingly.
(process-action): Likewise.
* guix/scripts/weather.scm (load-manifest): Likewise.
* tests/gexp.scm ("local-file, relative file name, within gexp, compiled"):
Likewise.
Change-Id: Ic838e66719d89de556ac0872c3ce0c8ff6de8790
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
|
|
The tested AppImages were not actually relocatable and would rely on items
being available on the environment’s store (apart from glibc).
* guix/scripts/pack.scm (wrapped-manifest): New function.
(guix-pack): Extract relocatable manifest to wrapped-manifest.
* tests/pack.scm: Use relocatable profiles in AppImage tests.
Fixes: <https://issues.guix.gnu.org/76850>
Change-Id: Ib3123054913fce903d215dc0629d806e9fceebc7
Reported-by: Reepca Russelstein <reepca@russelstein.xyz>
Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
|
|
The runtime-fuse3 binary was renamed to runtime.
* gnu/packages/appimage.scm (appimage-type2-runtime):
Update to continuous-1.caf24f9.
* guix/scripts/pack.scm (self-contained-appimage):
[runtime-path]: Use new runtime name.
Change-Id: Ibbb1fcb6ca914764c37addb62c8234b49cc93bd5
Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
|
|
Fixes guix/guix#6989.
* guix/scripts/pack.scm (debian-archive): When creating a Debian package
for an armhf-linux machine match our architecture to the closest one of
Debian's supported architectures.
Change-Id: I596db1087c507e61cc31f0808ebd9e39b4956c49
|
|
This reverts commit 2c1fe0df11ae0f66392b8abb6f62430d79305538.
|
|
This reverts commit 11cf5b2fe4882f123cd5e9eb385a773703dfe872.
|
|
This module has been included in Guile as (system vm elf) since around version
2.1.
* guix/elf.scm: Delete file.
* CODEOWNERS: De-register module.
* Makefile.am (MODULES): Likewise.
* etc/teams.scm (core): Likewise.
* gnu/build/linux-modules.scm: Adjust imports.
* gnu/packages/gnuzilla.scm (icecat-minimal) [modules]: Likewise.
* gnu/packages/librewolf.scm (librewolf): Likewise.
* gnu/packages/sequoia.scm (sequoia): Likewise.
* gnu/packages/tor-browsers.scm (make-torbrowser): Likewise.
* gnu/packages/version-control.scm (hg-commitsigs): Likewise.
* guix/build/debug-link.scm: Likewise.
* guix/build/gnu-build-system.scm: Likewise.
* guix/build/gremlin.scm: Likewise.
* guix/build/meson-build-system.scm: Likewise.
* guix/grafts.scm (graft-derivation/shallow): Likewise.
* guix/scripts/pack.scm (wrapped-package): Likewise.
* tests/debug-link.scm: ("elf-debuglink", "set-debuglink-crc"): Likewise.
* tests/gremlin.scm: Likewise.
* guix/build-system/gnu.scm (%default-gnu-imported-modules): Remove (guix elf).
Change-Id: I86ac4237fdd820a6b54dc0fe7a7d10403a290ef9
|
|
The `file->bytevector' new procedure uses a memory mapped bytevector, so
parsing the ELF file reads only the sections needed, not the whole file.
* guix/scripts/pack.scm (wrapped-package): Use file->bytevector.
* guix/build/gremlin.scm (file-dynamic-info): Likewise.
(validate-needed-in-runpath): Likewise.
(strip-runpath): Likewise, and write to bytevector directly, avoiding a port.
(set-file-runpath): Likewise.
* tests/gremlin.scm (read-elf): Delete procedure.
("elf-dynamic-info-needed, executable"): Use file-dynamic-info.
("strip-runpath"): Likewise.
("elf-dynamic-info-soname"): Likewise.
guix/build/debug-link.scm (set-debuglink-crc): Use file->bytevector.
* tests/debug-link.scm (read-elf): Delete procedure.
("elf-debuglink"): Rename to...
("elf-debuglink, no .gnu_debuglink section"): ... this.
("elf-debuglink", "set-debuglink-crc"): Use external store, and adjust to use
file->bytevector.
* gnu/packages/gnuzilla.scm (icecat-minimal) [#:phases]
{build-sandbox-whitelist}: Use `file-runpath'.
* gnu/packages/librewolf.scm (librewolf): Likewise.
Fixes: <https://issues.guix.gnu.org/59365>
Fixes: #1262
Change-Id: I43b77ed0cdc38994ea89d3d401e0d136aa6b187a
|
|
This reverts commit a7db92d9b389cbe565395523882c34c6eff2c21a, this time with
the more careful command, to avoid a world rebuild:
grep -rl --exclude-dir=build --exclude-dir=patches --exclude=ld-wrapper.in \
--exclude=sitecustomize.py --exclude=guix-emacs.el maxim.cournoyer@gmail.com |
xargs sed -i 's/maxim.cournoyer@gmail.com/maxim@guixotic.coop/g'
Change-Id: I0871f5cf9ace79e34e78e24154d0da6ea95a3a91
|
|
This reverts commit d0d87a744d724b7e7d5ac013c586039652087bb3. Oops! This
caused a world rebuild.
Change-Id: I25fff644b2b61d0ee93d69b457b04c72b5b74d15
|
|
The change was automated via:
git grep -l maxim.cournoyer@gmail.com |
xargs sed -i 's/maxim.cournoyer@gmail.com/maxim@guixotic.coop/g'
* .mailmap: New entry.
Change-Id: Iaa88b1e51c94159c49138fb43910badb990eb169
|
|
Fixes guix/guix#640.
* guix/scripts/pack.scm <top-level>: Autoload (gnu packages …) modules.
(bootstrap-xz): Turn into a thunk and update user.
(gcrypt-sqlite3&co): Move to…
(store-database): … here.
Reported-by: Luca Cirrottola <luca.cirrottola@inria.fr>
Change-Id: I345a872a7c2a94ad148052fef3b2b674cc94c9d0
|
|
* guix/scripts/pack.scm (guix-pack): Don't export properties when SAVE-PROVENANCE is not set.
Change-Id: I956721d1238631451758057a7c9cf13e2da7c59a
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Modified-by: Ludovic Courtès <ludo@gnu.org>
|
|
Fixes #419 where the same search path is used multiple times, leading to the
last one overriding the previous one.
The solution relies on the #$profile/etc/profile file that is already verified
and in case of errors, it is just one place to repair instead of repairing at
multiple places, like in singularity-environment-file
* guix/pack.scm (singularity-environment-file): Source #$profile/etc/profile
Reported-by: Alexis Simon <alexis.simon@runbox.com>
Change-Id: Ic304fef99ad34d83e4e10cdd2b26d3b1802b5251
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
|
|
Fixes <https://issues.guix.gnu.org/78210>.
This patch adds the /gnu and /gnu/store directories to the Docker layer
created by ‘guix pack -f docker …’, which enables the Docker image to be
used to create an AWS Lambda function. Without the patch, creating the
AWS Lambda function fails with this error:
"MissingParentDirectory: Parent directory does not exist for file: gnu/store/…-info-dir/"
* guix/scripts/pack.scm (docker-image)[build]: Add store directory to
the docker layer.
* guix/docker.scm (build-docker-image): Change order of arguments to
‘tar’ so parent directories are added before their contents.
Change-Id: I2b103c59981e828c965564ccc5d2415b00a7e52e
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
|
|
* guix/build/kconfig.scm (modify-deconfig): Fix spelling of "abbreviation".
* guix/docker.scm (build-docker-image): Fix spelling of "split".
* guix/scripts/pack.scm (docker-image): Fix spelling of "split".
|
|
* guix/scripts/pack.scm (self-contained-appimage): Support localstatedir
option.
Change-Id: I296b3d3e442aa90f36de62a9b23aba4a2c3de9a0
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
|
|
* guix/scripts/pack.scm (c-compiler-compiler): Remove exception when
cross-compiling and always build gexp->script for the host.
[toolchain]: Use standard-cross-packages when cross-compiling.
[search-paths]: Use package-search-paths instead of
package-native-search-paths when cross-compiling.
[run]: Use cc-for-target and strip-for-target.
Change-Id: I5503e48b3394fdfee06999f8d1ad82f5f0d9af96
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
|
|
* guix/scripts/pack.scm (%options): add --file=FILE, but no
shorthand (that’s already taken for format).
* doc/guix.texi (Invoking guix pack): Document it.
Change-Id: I87797fccdf218ead3b7f471a84034e8a8d566245
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
|
|
* guix/scripts/pack.scm (self-contained-appimage): New procedure.
(%formats, show-formats): Add it.
(guix-pack): Honor it.
* doc/guix.texi: Document AppImage pack.
* tests/pack.scm ("appimage", "appimage + localstatedir"): New tests.
Co-authored-by: Noé Lopez <noelopez@free.fr>
Change-Id: I33ebfec623cff1cfcd6f029d2d3054c23ab1949a
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
|
|
Related to <https://bugs.gnu.org/37161> and
<https://git.savannah.gnu.org/cgit/guix.git/commit/?id=7979a287f8eb84cbbfa44629951572408939a756>.
* guix/scripts/pack.scm (squashfs-image)[build]: Add /tmp to the set of
directories created.
* tests/pack.scm ("squashfs-image + localstatedir"): Check for /tmp.
Change-Id: I576aaa6ba8cb8478acf4c3144d492ae5caf411ca
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
|
|
Previously, ‘guix pack -R’ would build a wrapper containing both the
“userns” and “fakechroot” engines, instead of providing nothing but the
“userns” engine as the manual says. This patch fixes it.
* guix/scripts/pack.scm (wrapped-package): Add #:fakechroot?
[build]: When FAKECHROOT? is false, ‘elf-loader-compile-flags’ always
returns '().
Change-Id: Ic75cc8c36bf0a3881f299b274d78bd9fc2d4e2bb
|
|
The default value of #f led to ("..." . #f) being passed further down as an
entry point. That is not an issue for command line invocation, since in that
code path '() was already used as a default value, but it broke docker system
test with the following error:
building /gnu/store/dll8jj6h5pfgf6ya9skk1g1546smwbib-docker-pack.tar.gz.drv...
tar: Removing leading `/' from member names
Backtrace:
6 (primitive-load "/gnu/store/g8hqzccfvn4mkm41jqs65c27gs7?")
In ./guix/docker.scm:
268:6 5 (build-docker-image "/gnu/store/zi2f5dfdrhviinm6jxp3cj?" ?)
In ice-9/ports.scm:
433:17 4 (call-with-output-file _ _ #:binary _ #:encoding _)
476:4 3 (_ _)
In ./guix/docker.scm:
270:21 2 (_)
123:40 1 (config "1996ead589ab366473d935c4d5bd0c38b998f3b299847?" ?)
In unknown file:
0 (list->vector ("/gnu/store/1pvqd30qi1aigjdf7s7l8v7?" . #))
ERROR: In procedure list->vector:
In procedure vector: Wrong type argument in position 1: ("/gnu/store/1pvqd30qi1aigjdf7s7l8v7wpvrrhfkj-profile/bin/guile" . #f)
note: keeping build directory `/tmp/guix-build-docker-pack.tar.gz.drv-16'
builder for `/gnu/store/dll8jj6h5pfgf6ya9skk1g1546smwbib-docker-pack.tar.gz.drv' failed with exit code 1
build of /gnu/store/dll8jj6h5pfgf6ya9skk1g1546smwbib-docker-pack.tar.gz.drv failed
View build log at '/var/log/guix/drvs/dl/l8jj6h5pfgf6ya9skk1g1546smwbib-docker-pack.tar.gz.drv.gz'.
cannot build derivation `/gnu/store/dq9qk1ba0f07572m8ck3xws28x1b3rif-docker-test.drv': 1 dependencies couldn't be built
guix build: error: build of `/gnu/store/dq9qk1ba0f07572m8ck3xws28x1b3rif-docker-test.drv' failed
make: *** [Makefile:7044: check-system] Error 1
Breakage was introduced in 7d5168a2af3ed922c6a46985124fb73402cc8844.
* guix/scripts/pack.scm (docker-image)[entry-point-argument]: Default to '().
Change-Id: If5fc1f8bcb0981df11409636e71f2ca91b05612f
|
|
* guix/scripts/pack.scm (docker-image, guix-pack, %default-options,
%docker-format-options, show-docker-format-options/detailed): Handle
'--max-layers' option.
* doc/guix.texi (Invoking guix pack): Document this.
Change-Id: I90660b2421fcdde891f003469fe2e2edaac7da41
|
|
* guix/scripts/pack.scm:
(entry-point-argument-spec-option-parser): New procedure.
(docker-image, %default-options, %docker-format-options,
show-docker-format-options/detailed, %options, show-docker-format-options,
guix-pack): Handle '--entry-point-argument' option.
* doc/guix.texi: (Invoking guix pack): Document this
Signed-off-by: Oleg Pykhalov <go.wigust@gmail.com>
Change-Id: I1124feff6af39dcc63c85fd6cc7ad50f398489dc
|
|
* guix/packages.scm (%standard-patch-inputs): Use
‘libc-utf8-locales-for-target’ instead of ‘glibc-utf8-locales’.
* guix/self.scm (%packages): Likewise.
* gnu/home/services/ssh.scm (file-join): Likewise
* gnu/installer.scm (build-compiled-file): Likewise.
* gnu/packages/chromium.scm (ungoogled-chromium/wayland): Likewise.
* gnu/packages/gnome.scm (libgweather4, tracker): Likewise.
* gnu/packages/javascript.scm (js-mathjax): Likewise.
* gnu/packages/package-management.scm (guix, flatpak): Likewise.
* gnu/packages/raspberry-pi.scm (raspi-arm64-chainloader): Likewise.
* gnu/packages/suckless.scm (svkbd): Likewise.
* gnu/services.scm (cleanup-gexp): Likewise.
* gnu/services/base.scm (guix-publish-shepherd-service): Likewise.
* gnu/services/guix.scm (guix-build-coordinator-shepherd-services)
(guix-build-coordinator-agent-shepherd-services): Likewise.
* gnu/services/guix.scm (guix-build-coordinator-queue-builds-shepherd-services):
(guix-data-service-shepherd-services)
(nar-herder-shepherd-services)
(bffe-shepherd-services): Likewise.
* gnu/services/web.scm (anonip-shepherd-service)
(mumi-shepherd-services): Likewise.
* gnu/system/image.scm (system-disk-image, system-iso9660-image)
(system-docker-image, system-tarball-image): Likewise.
* gnu/system/install.scm (%installation-services): Likewise.
* guix/profiles.scm (info-dir-file): Likewise.
(ca-certificate-bundle, profile-derivation): Likewise.
* guix/scripts/pack.scm (store-database, set-utf8-locale): Likewise.
* tests/pack.scm: Likewise.
* tests/profiles.scm ("profile-derivation, cross-compilation"):
Likewise.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Co-authored-by: Christopher Baines <mail@cbaines.net>
Change-Id: I24239f427bcc930c29d2ba5d00dc615960a6c374
|
|
* guix/scripts/pack.scm (%options): Handle EPIPE errors when displaying help.
|
|
Previously, the image repository name was automatically computed from
the packages in the manifest without allowing the user to set a custom
one. As such, changing the packages in the manifest would result in a
new image name. Thereby requiring updating documentation et cetera when
using `docker load` directory on the resulting image.
Inspired by `docker build -t`, this commit adds a new Docker-specific
option to `guix pack` which allows setting a custom repository name for
the resulting image. If this option is not specified, pack falls back
to computing the name from the manifest. Therefore, this change is
entirely backwards compatible.
Documentation has been added with: 373ec2cf8ce97d5f89191c3d9211ee3a5c2067dc.
* guix/scripts/pack.scm (guix-pack): Add --image-tag option.
(%docker-format-options): New constant.
(show-docker-format-options): New procedure.
(show-docker-format-options/detailed): New procedure.
(docker-image): Allow setting a custom
repository name for the created docker image via extra-options.
Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
|
|
The rationale is to reduce the number of derivations built per pack to ideally
one, to minimize storage requirements. The number of derivations had gone up
with 68380db4 ("pack: Extract populate-profile-root from
self-contained-tarball/builder.") as a side effect to improving code reuse.
* guix/scripts/pack.scm (guix): Add commentary comment.
(populate-profile-root, self-contained-tarball/builder): Extract to...
* guix/build/pack.scm (populate-profile-root): ... this, and...
(build-self-contained-tarball): ... that, adjusting for use on the build side.
(assert-utf8-locale): New procedure.
(self-contained-tarball, debian-archive, rpm-archive): Adjust accordingly.
Reviewed-by: Ludovic Courtès <ludo@gnu.org>
|
|
This is a followup to 58abd5873985e0cd9a2926867bf697c5e7bc01f9, which
did not fully address <https://issues.guix.gnu.org/43491>.
* guix/scripts/pack.scm (wrapped-package)[build](runpath): Rewrite in
terms of 'file-needed/recursive'.
|
|
This was obtained by setting up this environment:
guix shell -D guix --with-input=guile@3.0.9=guile-next \
--with-commit=guile-next=e2ed33ef0445c867fe56c247054aa67e834861f2
-- make -j5
then adding 'unused-module' to (@@ (guix build compiler) %warnings),
building, and checking all the "unused module" warnings and removing
those that were definitely unused.
|
|
Commit 68380db4c40a2ee1156349a87254fd7b1f1a52d5 moved from
'gexp->derivation', which as a side effect, would lead tests to require
a "world rebuild"--specifically, they'd have to build (default-guile).
This was mitigated by 68775338a510f84e63657ab09242d79e726fa457, but that
change introduced another regression.
* guix/scripts/pack.scm (populate-profile-root): Define 'bootstrap?'.
Pass #:guile to 'computed-file', with a value depending on 'bootstrap?'.
* tests/pack.scm ("self-contained-tarball + localstatedir")
("docker-image + localstatedir", "squashfs-image + localstatedir")
("deb archive with symlinks and control files")
("rpm archive can be installed/uninstalled"): Use a <profile> record
instead of a derivation.
|
|
It's necessary as 'generate-header' call ends up calling 'find-files', which
could fail to read file names containing non-ascii characters, as spotted in
the wild:
building /gnu/store/...-jami-rpm-pack.rpm.drv...
find-files: ./gnu/store/...-nss-certs-3.81/etc/ssl/certs/NetLock_Arany_=Class_Gold=_F??tan??s??tv??ny.pem:
No such file or directory
* guix/scripts/pack.scm (rpm-archive): Expand set-utf8-locale helper in the
builder gexp.
|
|
* guix/rpm.scm: New file.
* guix/scripts/pack.scm (rpm-archive): New procedure.
(%formats): Register it.
(show-formats): Add it.
(guix-pack): Register supported extra-options for the rpm format.
* tests/pack.scm (rpm-for-tests): New variable.
("rpm archive can be installed/uninstalled"): New test.
* tests/rpm.scm: New test.
* doc/guix.texi (Invoking guix pack): Document it.
|
|
This allows more code to be reused between the various archive writers.
* guix/scripts/pack.scm (set-utf8-locale): New top-level procedure, extracted
from...
(populate-profile-root): New procedure, extracted from...
(self-contained-tarball/builder): ... here. Add #:target argument. Call
populate-profile-root.
[LOCALSTATEDIR?]: Set db.sqlite file permissions.
(self-contained-tarball): Call self-contained-tarball/builder with the TARGET
argument, and set #:local-build? to #f for the gexp-derivation call. Remove
now extraneous #:target and #:references-graphs arguments from the
gexp->derivation call.
(debian-archive): Call self-contained-tarball/builder with the #:target
argument. Fix indentation. Remove now extraneous #:target and
#:references-graphs arguments from the gexp->derivation call.
|
|
* guix/scripts/pack.scm: (debian-archive): Bind extra-options keyword
arguments via let-keywords.
|
|
* guix/scripts/pack.scm (debian-archive)[build]: Remove use of (oop goops).
Introduce 'keyword-ref' and use it instead of 'get-keyword'.
|
|
* guix/scripts/pack.scm (symlink-spec-option-parser): Remove extraneous
char-set. Raise an exception when the target is an absolute file name.
(guix-pack): Move with-error-handler earlier.
* guix/scripts/shell.scm (guix-shell): Likewise.
* guix/scripts/environment.scm (guix-environment): Wrap the whole
guix-environment* call with the with-error-handling handler.
* tests/guix-environment-container.sh: Add tests.
* tests/guix-pack.sh: Adjust symlink spec.
|
|
* guix/scripts/pack.scm (%options): Extract symlink parsing logic to...
(symlink-spec-option-parser): ... here.
(self-contained-tarball/builder): Add a comment mentioning why a relative file
name is used for the link target.
* guix/scripts/environment.scm (show-environment-options-help): Document new
--symlink option.
(%default-options): Add default value for symlinks.
(%options): Register new symlink option.
(launch-environment/container): Add #:symlinks argument and extend doc, and
create symlinks using evaluate-populate-directive.
(guix-environment*): Pass symlinks arguments to launch-environment/container.
* doc/guix.texi (Invoking guix shell): Document it.
* tests/guix-shell.sh: Add a --symlink (negative) test.
* tests/guix-environment-container.sh: Add tests.
|
|
These modules would use (guix grafts) just to access '%graft?' and
related bindings, which are now in (guix store).
* gnu/ci.scm,
guix/gexp.scm,
guix/lint.scm,
guix/scripts.scm,
guix/scripts/archive.scm,
guix/scripts/build.scm,
guix/scripts/challenge.scm,
guix/scripts/deploy.scm,
guix/scripts/environment.scm,
guix/scripts/home.scm,
guix/scripts/pack.scm,
guix/scripts/package.scm,
guix/scripts/pull.scm,
guix/scripts/size.scm,
guix/scripts/system.scm,
guix/scripts/weather.scm,
tests/builders.scm,
tests/channels.scm,
tests/cpan.scm,
tests/derivations.scm,
tests/gexp.scm,
tests/graph.scm,
tests/guix-daemon.sh,
tests/monads.scm,
tests/pack.scm,
tests/packages.scm,
tests/profiles.scm,
tests/system.scm: Remove #:use-module (guix grafts).
|
|
Move the compression record to a dedicated module so that it can be used
outside (guix scripts pack) module.
* guix/scripts/pack.scm (<compressor>, %compressors, lookup-compressor): Move
it to ...
* gnu/compression.scm: ... this new file.
* gnu/ci.scm: Adapt it.
* local.mk (GNU_SYSTEM_MODULES): Add it.
|
|
Also factorize the --system and --target build options. Check that the passed
system and target arguments are known platforms.
* doc/guix.texi (Additional Build Options): Document the new --list-systems
and --list-targets options.
* guix/scripts/build.scm (show-cross-build-options-help,
show-emulated-build-options-help, list-systems, list-targets): New procedures.
(%standard-cross-build-options, %standard-emulated-build-options): New
variables.
(show-help): Remove --system and --target entries and use
show-cross-build-options-help and show-emulated-build-options-help procedures instead.
(%options): Remove --system and --target entries and use
%standard-cross-build-options and %standard-emulated-build-options variables instead.
* guix/scripts/archive.scm (show-help, %options): Adapt them.
* guix/scripts/environment.scm: Ditto.
* guix/scripts/graph.scm: Ditto.
* guix/scripts/pack.scm: Ditto.
* guix/scripts/pull.scm: Ditto.
* guix/scripts/size.scm: Ditto.
* guix/scripts/weather.scm: Ditto.
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
|
|
* guix/scripts/pack.scm (compressor-extenstion): Fix typo.
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
|
|
* guix/scripts/pack.scm: Remove duplicated copyright line.
(debian-archive)[single-entry]: Match one or anything, not one or zero.
Reported-by: jgart <jgart@dismail.de>
|
|
|
|
Thanks to Guillem Jover <guillem@debian.org> on the OFTC's #debian-dpkg
channel for helping with troubleshooting.
Letting GNU Tar recursively walk the complete files hierarchy side-steps the
risks associated with providing a list of file names:
1. Duplicated files in the archive (recorded as hard links by GNU Tar)
2. Missing parent directories.
The above would cause dpkg to malfunction, for example by aborting early and
skipping triggers when there were missing parent directories.
* guix/scripts/pack.scm (self-contained-tarball/builder): Do not call
POPULATE-SINGLE-PROFILE-DIRECTORY, which creates extraneous files such as
/root. Instead, call POPULATE-STORE and INSTALL-DATABASE-AND-GC-ROOTS
individually to more precisely generate the file system. Replace the list of
files by the current directory, "." and streamline the way options are passed.
* gnu/system/file-systems.scm (reduce-directories): Remove procedure.
* tests/file-systems.scm ("reduce-directories"): Remove test.
|
|
These fields, while optional per dpkg, are required by other tools such as
reprepro, commonly used to generate apt repositories.
* guix/scripts/pack.scm (debian-archive): Set the control file section field
to 'misc' and the priority field to 'optional'.
|
|
* guix/scripts/pack.scm (self-contained-tarball/builder)
[extra-options]: New argument.
(self-contained-tarball, squashfs-image, docker-image)
(debian-archive): Likewise. Remove two TODO comments. Document
EXTRA-OPTIONS. Use the custom control files when provided.
(%deb-format-options): New variable.
(show-deb-format-options, show-deb-format-options/detailed): New procedures.
(%options): Register new options.
(show-help): Augment with new usage.
(guix-pack): Validate and propagate new argument values.
* doc/guix.texi (Invoking guix pack)[deb]: Document how to list advanced
options. Add an example.
* tests/pack.scm (deb archive...): Provide extra-options to the debian-archive
procedure, and validate that the provided files are embedded in the pack.
|
|
* .dir-locals.el (scheme-mode)[gexp->derivation]: Define indentation rule.
* guix/scripts/pack.scm (debian-archive): New procedure.
(%formats): Register the new deb format.
(show-formats): Add it to the usage string.
* tests/pack.scm (%ar-bootstrap): New variable.
(deb archive with symlinks): New test.
* doc/guix.texi (Invoking guix pack): Document it.
* NEWS: Add news entry.
|
|
Tar translate duplicate files in the archive into hard links. These can cause
problems, as not every tool support them; for example dpkg doesn't.
* gnu/system/file-systems.scm (reduce-directories): New procedure.
(file-prefix?): Lift the restriction on file prefix. The procedure can be
useful for comparing relative file names. Adjust doc.
(file-name-depth): New procedure, extracted from ...
(btrfs-store-subvolume-file-name): ... here.
* guix/scripts/pack.scm (self-contained-tarball/builder): Use
reduce-directories.
* tests/file-systems.scm ("reduce-directories"): New test.
|