aboutsummaryrefslogtreecommitdiff
path: root/tests/guix-archive.sh
blob: 0866b5a4d848e48f7fad98cba811ae6ec27d0148 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# GNU Guix --- Functional package management for GNU
# Copyright © 2013, 2014, 2015, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
#
# This file is part of GNU Guix.
#
# GNU Guix is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or (at
# your option) any later version.
#
# GNU Guix is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

#
# Test the 'guix archive' command-line utility.
#

guix archive --version

archive="t-archive-$$"
archive_alt="t-archive-alt-$$"
tmpdir="t-archive-dir-$$"
rm -f "$archive" "$archive_alt"
rm -rf "$tmpdir"

trap 'rm -f "$archive" "$archive_alt"; chmod -R +w "$tmpdir"; rm -rf "$tmpdir"' EXIT

guix archive --export guile-bootstrap > "$archive"
guix archive --export guile-bootstrap:out > "$archive_alt"
cmp "$archive" "$archive_alt"

guix archive --export							\
    -e '(@ (gnu packages bootstrap) %bootstrap-guile)' > "$archive_alt"
cmp "$archive" "$archive_alt"

guix archive --export `guix build guile-bootstrap` > "$archive_alt"
cmp "$archive" "$archive_alt"

# Check the exit value upon import.
guix archive --import < "$archive"

guix archive --export something-that-does-not-exist && false

# This one must not be listed as missing.
guix build guile-bootstrap > "$archive"
guix archive --missing < "$archive"
test "`guix archive --missing < "$archive"`" = ""

# Two out of three should be listed as missing.
echo "$NIX_STORE_DIR/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo" >> "$archive"
echo "$NIX_STORE_DIR/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-bar" >> "$archive"
guix archive --missing < "$archive" > "$archive_alt"
echo "$NIX_STORE_DIR/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo" > "$archive"
echo "$NIX_STORE_DIR/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-bar" >> "$archive"
cmp "$archive" "$archive_alt"

# This is not a valid store file name, so an error.
echo something invalid > "$archive"
guix archive --missing < "$archive" && false

# Check '--extract'.
guile -c "(use-modules (guix serialization))
  (call-with-output-file \"$archive\"
    (lambda (port)
      (write-file \"$(guix build guile-bootstrap)\" port)))"
guix archive -x "$tmpdir" < "$archive"
test -x "$tmpdir/bin/guile"
test -d "$tmpdir/lib/guile"

# Check '--list'.
guix archive -t < "$archive" | grep "^D /share/guile"
guix archive -t < "$archive" | grep "^x /bin/guile"
guix archive -t < "$archive" | grep "^r /share/guile.*/boot-9\.scm"

echo foo | guix archive --authorize && false

exit 0
-07-23gnu: Add linux-libre 6.6.1....* gnu/packages/linux.scm (linux-libre-6.6-version, linux-libre-6.6-gnu-revision, deblob-scripts-6.6, linux-libre-6.6-pristine-source, linux-libre-6.5-source, linux-libre-headers-6.6, linux-libre-6.6): New variables. * gnu/packages/aux-files/linux-libre/6.6-arm.conf, gnu/packages/aux-files/linux-libre/6.6-arm64.conf, gnu/packages/aux-files/linux-libre/6.6-i686.conf, gnu/packages/aux-files/linux-libre/6.6-x86_64.conf: New files. * Makefile.am (AUX_FILES): Add them. Change-Id: I37b2b98b8a2ec745137e92380f34e69082c5e662 Signed-off-by: Leo Famulari <leo@famulari.name> Wilko Meyer 2023-11-08build-system: Add vim-build-system....* guix/build-system/vim.scm, * guix/build/vim-build-system.scm: New modules. * Makefile.am (MODULES): Register new files. * doc/guix.texi: Document it. Co-authored-by: Efraim Flashner <efraim@flashner.co.il> Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Jonathan Scoresby 2023-10-23build: Fix it....* Makefile.am (.git/config): Add missing "\". Change-Id: I0d1435ef33d9e6f2246631fa0eb8cbb617ea8fb5 Clément Lassieur 2023-10-22build: Avoid git config 'include' duplicates....* Makefile.am (.git/config): Invoke git config --replace-all with a value-pattern instead of --add. Change-Id: Id6e19b15d3772105128eb9b48d0f4e039ae3d988 Reported-by: Liliana Marie Prikler <liliana.prikler@gmail.com> Maxim Cournoyer 2023-10-22build: Add a commit-msg hook that embeds Change-Id in commit messages....Partially implements <https://issues.guix.gnu.org/66027>. This will make it possible to track a merged commit back to its original posting on the mailing list, and open the door to new opportunities such as closing fully merged series automatically. * Makefile.am (COMMIT_MSG_MAGIC): New variable. (.git/hooks/commit-msg): New target. * etc/git/commit-msg: New file. * doc/contributing.texi (Configuring Git): Document Change-Id. Series-changes: 3 - Clarify documentation text, as suggested by Simon Change-Id: Ia92fa958eae600fdd4e180bad494c85db8bb4dd6 Reviewed-by: Simon Tournier <zimon.toutoune@gmail.com> Maxim Cournoyer 2023-07-23gnu: Remove linux-libre 6.4....* gnu/packages/linux.scm (linux-libre-6.4-version, linux-libre-6.4-gnu-revision, deblob-scripts-6.4, linux-libre-6.4-pristine-source, linux-libre-6.4-source, linux-libre-headers-6.4, linux-libre-6.4): Remove variables. * gnu/packages/aux-files/linux-libre/6.4-arm.conf, gnu/packages/aux-files/linux-libre/6.4-arm64.conf, gnu/packages/aux-files/linux-libre/6.4-i686.conf, gnu/packages/aux-files/linux-libre/6.4-x86_64.conf: Delete files. * Makefile.am (AUX_FILES): Remove them. Leo Famulari 2023-10-21build-system: Add zig-build-system....* guix/build-system/zig.scm: New file. * guix/build/zig-build-system.scm: New file. * Makefile.am: Add them. * doc/guix.texi: Document it. * etc/snippets/yas/scheme-mode/guix-package (build-system): Add zig-build-system. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Ekaitz Zarraga 2023-07-23gnu: Add linux-libre 6.5....* gnu/packages/linux.scm (linux-libre-6.5-version, linux-libre-6.5-gnu-revision, deblob-scripts-6.5, linux-libre-6.5-pristine-source, linux-libre-6.5-source, linux-libre-headers-6.5, linux-libre-6.5): New variables. * gnu/packages/aux-files/linux-libre/6.5-arm.conf, gnu/packages/aux-files/linux-libre/6.5-arm64.conf, gnu/packages/aux-files/linux-libre/6.5-i686.conf, gnu/packages/aux-files/linux-libre/6.5-x86_64.conf: New files. * Makefile.am (AUX_FILES): Add them. Leo Famulari 2023-09-18maint: Support `guix shell' in Guix's git archive with manifest.scm....* manifest.scm: New file. * Makefile.am (EXTRA_DIST): Add it. * doc/contributing.texi (Building from Git): Mention using it. Janneke Nieuwenhuizen 2023-08-22build: Build gnu/packages/*.go in five steps....This breaks-up packages into five chunks of ~150,000 lines, allowing guix build --target=i586-pc-gnu from an x86 host. This is a followup to 1aa7ee52c6c520c2dbbdb06f1381466e9fd96294. * Makefile.am (first_half): Rename to... (first_quart): ...this, and also split into... (second_quart): ...this. (third_quart, MODULES_PACKAGES3, MODULES_PACKAGE4): New variables. (make-packages3-go, make-packages4-go): New targets. (make-packages-go): Add them. Janneke Nieuwenhuizen 2023-08-21maint: Add 'etc/hurd-manifest.scm'....* build-aux/cuirass/hurd-manifest.scm: Move to... * etc/hurd-manifest.scm: ...here. * Makefile.am (EXTRA_DIST): Update accordingly. Janneke Nieuwenhuizen 2023-08-17Merge remote-tracking branch 'origin/master' into kde-updates宋文武 2023-08-16scripts: time-machine: Error when attempting to visit too old commits....* doc/guix.texi (Invoking guix time-machine): Document limitation. * guix/inferior.scm (cached-channel-instance): New VALIDATE-CHANNELS argument. Use it to validate channels when there are no cache hit. * guix/scripts/time-machine.scm (%options): Tag the given reference with 'tag-or-commit instead of 'commit. (%oldest-possible-commit): New variable. (guix-time-machine) <validate-guix-channel>: New nested procedure. Pass it to the 'cached-channel-instance' call. * tests/guix-time-machine.sh: New test. * Makefile.am (SH_TESTS): Register it. Suggested-by: Simon Tournier <zimon.toutoune@gmail.com> Reviewed-by: Ludovic Courtès <ludo@gnu.org> Reviewed-by: Simon Tournier <zimon.toutoune@gmail.com> Maxim Cournoyer 2023-08-11Merge remote-tracking branch 'origin/master' into kde-updates宋文武 2023-08-03examples: Add plasma operating-system example template....* gnu/system/examples/plasma.tmpl: New file. * Makefile.am (EXAMPLES): register it. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Zheng Junjie 2023-07-23gnu: Remove linux-libre 6.3....This kernel series is no longer supported upstream. * gnu/packages/linux.scm (linux-libre-6.3-version, linux-libre-6.3-gnu-revision, deblob-scripts-6.3, linux-libre-6.3-pristine-source, linux-libre-6.3-source, linux-libre-headers-6.3, linux-libre-6.3): Remove variables. * gnu/packages/aux-files/linux-libre/6.3-arm.conf, gnu/packages/aux-files/linux-libre/6.3-arm64.conf, gnu/packages/aux-files/linux-libre/6.3-i686.conf, gnu/packages/aux-files/linux-libre/6.3-x86_64.conf: Delete files. * Makefile.am (AUX_FILES): Remove them. * gnu/packages/patches/linux-libre-wireguard-postup-privkey.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. Leo Famulari 2023-08-10services: Add pam-mount-volume-service-type....The `pam-mount-volumes-service-type' adds additional volumes to the pam-mount-service-type in addition to any that are already specified in `pam-mount-rules'. * doc/guix.texi (PAM Mount Volume Service): add documentation for `pam-mount-service-type'. * gnu/services/pam-mount.scm: new file. * Makefile.am: add pam-mount tests * tests/services/pam-mount.scm: new tests Signed-off-by: Ludovic Courtès <ludo@gnu.org> Brian Cully 2023-07-23gnu: Add missing kernel configs to Makefile.am....This is a followup to commit 49f74b67a44882d2af0529abf3e60a9c37512f2c * Makefile.am (AUX_FILES): Add 6.4 kernel configs for arm and arm64. Leo Famulari 2023-07-21services: wireguard: Implement a dynamic IP monitoring feature....* gnu/services/vpn.scm (<wireguard-configuration>) [monitor-ips?, monitor-ips-internal]: New fields. * gnu/services/vpn.scm (define-with-source): New syntax. (wireguard-service-name, strip-port/maybe) (ipv4-address?, ipv6-address?, host-name?) (endpoint-host-names): New procedure. (wireguard-monitoring-jobs): Likewise. (wireguard-service-type): Register it. * tests/services/vpn.scm: New file. * Makefile.am (SCM_TESTS): Register it. * doc/guix.texi (VPN Services): Update doc. Reviewed-by: Bruno Victal <mirai@makinata.eu> Maxim Cournoyer 2023-07-15gnu: Add linux-libre 6.4...* gnu/packages/linux.scm (linux-libre-6.4-version, linux-libre-6.4-gnu-revision, deblob-scripts-6.4, linux-libre-6.4-pristine-source, linux-libre-6.4-source, linux-libre-headers-6.4, linux-libre-6.4: New variables. * gnu/packages/aux-files/linux-libre/6.4-arm.conf, * gnu/packages/aux-files/linux-libre/6.4-arm64.conf, * gnu/packages/aux-files/linux-libre/6.4-i686.conf, * gnu/packages/aux-files/linux-libre/6.4-x86_64.conf: New files. * Makefile.am (AUX_FILES): Add them. Leo Famulari 2023-06-18Add 'guix locate'....* guix/scripts/locate.scm, tests/guix-locate.sh: New files. * Makefile.am (MODULES): Add 'guix/scripts/locate.scm'. (SH_TESTS): Add 'tests/guix-locate.sh'. * po/guix/POTFILES.in: Add it. * doc/guix.texi (Invoking guix locate): New node. Co-authored-by: Antoine R. Dumont <antoine.romain.dumont@gmail.com> Ludovic Courtès 2023-06-04build-system: New agda-build-system....* guix/build-system/agda.scm: New file. * guix/build/agda-build-system.scm: New file. * Makefile.am (MODULES): Register them. * doc/guix.texi (Build Systems): Add documentation for agda-build-system. Josselin Poiret 2023-05-31gnu: Remove linux-libre 6.2....This kernel series is no longer supported upstream. * gnu/packages/linux.scm (linux-libre-6.2-version, linux-libre-6.2-gnu-revision, deblob-scripts-6.2, linux-libre-6.2-pristine-source, linux-libre-6.2-source, linux-libre-headers-6.2, linux-libre-6.2): Remove variables. * gnu/packages/aux-files/linux-libre/6.2-arm.conf, gnu/packages/aux-files/linux-libre/6.2-arm64.conf, gnu/packages/aux-files/linux-libre/6.2-i686.conf, gnu/packages/aux-files/linux-libre/6.2-x86_64.conf: Delete files. * Makefile.am (AUX_FILES): Remove them. Leo Famulari 2023-05-16gnu: Add linux-libre 6.3....* gnu/packages/linux.scm (linux-libre-6.3-version, linux-libre-6.3-gnu-revision, deblob-scripts-6.3, linux-libre-6.3-pristine-source, linux-libre-6.3-source, linux-libre-headers-6.3, linux-libre-6.3): New variables. * gnu/packages/aux-files/linux-libre/6.3-arm.conf, gnu/packages/aux-files/linux-libre/6.3-arm64.conf, gnu/packages/aux-files/linux-libre/6.3-i686.conf, gnu/packages/aux-files/linux-libre/6.3-x86_64.conf: New files. * Makefile.am (AUX_FILES): Add them. Leo Famulari 2023-05-07Makefile.am: Use --add flag to "git config"....Without the "--add" flag to "git config include.path ...", the command fails if the user already has a configuration entry of "include.path". Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Mekeor Melire 2023-05-06Makefile.am: Only auto-configure Git when available....* Makefile.am (.git/hooks/pre-push): Only run recipe if the '.git' directory exists. Make it silent. (.git/config): Likewise, and also check if the 'git' command is available. Reported-by: Brian Cully <bjc@spork.org> Maxim Cournoyer 2023-05-04build: Do not fail when '.git' is missing....This is a followup to a5d719012e0f5115aa89b767edc1fe1a3505915c. * Makefile.am (.git/hooks/pre-push): Add dash. Ludovic Courtès 2023-05-04build: Do not fail when 'git' is missing....This is a followup to 8b972da068708a8b17f3ab153ea940690ca49ca9. * Makefile.am (.git/config): Add dash. Ludovic Courtès 2023-05-01Makefile.am: Auto-configure Git on 'make'....This means we do not need to worry anymore about manually syncing the pre-push git hook or the Guix-provided git configuration. * etc/git/gitconfig: Augment configuration template with useful options to allow for auto-configuration. * Makefile.am (.git/hooks/pre-push, .git/config): New targets. (nodist_noinst_DATA): New primary variable holding the above targets. Maxim Cournoyer 2023-04-30build: Undo "guix/scripts/import/cpan.scm" which was removed in commit 3aae81......* Makefile.am (MODULES): Add it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Keisuke Kurosawa 2023-04-21gnu: docbook-xml-4.1.2: Add missing catalog.xml....* gnu/packages/aux-files/xml/docbook-xml/catalog-4.1.2.xml: New file. * Makefile.am: Register it. * gnu/packages/docbook.scm (docbook-xml-4.1.2)[arguments]: Use prebuilt catalog.xml. [native-inputs]: Add libxml2. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Bruno Victal 2023-04-21gnu: docbook-xml: Use XSLT to patch catalog.xml....(sxml transforms) are unsuited here due to guile-bug #20339. * gnu/packages/aux-files/xml/patch-catalog-xml.xsl: New file. * Makefile.am: Register it. * gnu/packages/docbook.scm (docbook-xml-5)[native-inputs]: Add libxslt. [arguments]: Add phase to patch catalog.xml using XSLT. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Bruno Victal 2023-04-14maint: Merge sanity-check-next.py into sanity-check.py....* gnu/packages/aux-files/python/sanity-check-next.py: Rename to... * gnu/packages/aux-files/python/sanity-check.py: ... this. * guix/build-system/pyproject.scm (sanity-check.py): Adjust file name. * Makefile.am (AUX_FILES): De-register sanity-check-next.py. Maxim Cournoyer 2023-03-20Merge remote-tracking branch 'origin/master' into core-updatesAndreas Enge 2023-03-06gnu: Add linux-libre 6.2....* gnu/packages/linux.scm (linux-libre-6.2-version, linux-libre-6.2-gnu-revision, deblob-scripts-6.2, linux-libre-6.2-pristine-source, linux-libre-6.2-source, linux-libre-headers-6.2, linux-libre-6.2): New variables. * gnu/packages/aux-files/linux-libre/6.2-arm.conf, gnu/packages/aux-files/linux-libre/6.2-arm64.conf, gnu/packages/aux-files/linux-libre/6.2-i686.conf, gnu/packages/aux-files/linux-libre/6.2-x86_64.conf: New files. * Makefile.am (AUX_FILES): Add them. Leo Famulari 2023-03-02Merge remote-tracking branch 'savannah/master' into core-updates...Conflicts: gnu/local.mk gnu/packages/autotools.scm gnu/packages/cmake.scm gnu/packages/gnuzilla.scm gnu/packages/haskell.scm gnu/packages/pdf.scm gnu/packages/python-xyz.scm gnu/packages/samba.scm gnu/packages/tex.scm gnu/packages/tls.scm gnu/packages/wxwidgets.scm Christopher Baines 2023-02-19pack: Add RPM format....* 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. Maxim Cournoyer 2023-02-12build-system: Add tree-sitter-build-system....* guix/build-system/tree-sitter.scm: New module. * guix/build/tree-sitter-build-system.scm: Likewise. * Makefile.am (MODULES): Add them. * doc/guix.texi: Document it. Signed-off-by: Andrew Tropin <andrew@trop.in> Pierre Langlois