# GNU Guix --- Functional package management for GNU # Copyright © 2018, 2019 Ludovic Courtès # # 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 . # # Test the 'guix pack --localstatedir' command-line utility. # guix pack --version # 'guix pack --localstatedir' produces derivations that depend on # guile-sqlite3 and guile-gcrypt. To make that relatively inexpensive, run # the test in the user's global store if possible, on the grounds that # binaries may already be there or can be built or downloaded inexpensively. storedir="`guile -c '(use-modules (guix config))(display %storedir)'`" localstatedir="`guile -c '(use-modules (guix config))(display %localstatedir)'`" NIX_STORE_DIR="$storedir" GUIX_DAEMON_SOCKET="$localstatedir/guix/daemon-socket/socket" export NIX_STORE_DIR GUIX_DAEMON_SOCKET if ! guile -c '(use-modules (guix)) (exit (false-if-exception (open-connection)))' then exit 77 fi # Build a tarball with '--localstatedir' the_pack="`guix pack -C none --localstatedir --profile-name=current-guix \ guile-bootstrap`" test_directory="`mktemp -d`" trap 'chmod -Rf +w "$test_directory"; rm -rf "$test_directory"' EXIT cd "$test_directory" tar -xf "$the_pack" profile="`find -name current-guix`" test "`readlink $profile`" = "current-guix-1-link" test -s "`dirname $profile`/../../../db/db.sqlite" test -x ".`guix build guile-bootstrap`/bin/guile" cd - # Make sure the store database is not completely bogus. guile -c "(use-modules (sqlite3) (guix config) (ice-9 match)) (define db (sqlite-open (string-append \"$test_directory\" %localstatedir \"/guix/db/db.sqlite\") SQLITE_OPEN_READONLY)) (define stmt (sqlite-prepare db \"SELECT * FROM ValidPaths;\")) (match (sqlite-fold cons '() stmt) ((#(ids paths hashes times derivers sizes) ...) (exit (member \"`guix build guile-bootstrap`\" paths))))" 54999231879'>gnu: guix: Remove unnecessary dependencies....This reverts 0fda0486523d67c2c464386c07a0c2800d8d8c20, instead moving the dependencies needed for ‘make dist’ to ‘manifest.scm’. Removing this extra dependencies make it simpler to build the ‘guix’ package in particular on less-capable systems like i586-gnu. * gnu/packages/package-management.scm (guix)[native-inputs]: Remove IMAGEMAGICK and PERL. Use GRAPHVIZ-MINIMAL instead of GRAPHVIZ. * manifest.scm: Use the full-blown ‘graphviz’ package; add ‘imagemagick’ and ‘perl’. Reported-by: Janneke Nieuwenhuizen <janneke@gnu.org> Change-Id: Ia9d05c699e3cc2f9a9235a67f8ec840c26b66a82 Ludovic Courtès 2024-06-24manifest: Streamline; add packages useful for patch review/submission....* manifest.scm: Fix alternate command line invocation (which would not consider 'manifest.scm'). Use specifications instead of packages. Remove perl (now in the guix package's native inputs). Add b4, git, git:send-email, mumi, nss-certs, openssl and patman to the manifest. Change-Id: I49d92dda059856ce217cea9054a466a1754dcf94 Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Maxim Cournoyer 2024-04-02maint: Add perl to the manifest....* manifest.scm: Add perl. Change-Id: Ie70cea1eb4d62f2a649292209391a92abdae2288 Janneke Nieuwenhuizen 2024-01-31maint: Add gnupg to the manifest....* manifest.scm: Add gnupg. Change-Id: Id5e90f87e5c3a07aa3e49afa97cc0b6d3ce71b41 Ludovic Courtès 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