aboutsummaryrefslogtreecommitdiff
# GNU Guix --- Functional package management for GNU
# Copyright © 2023 Antoine R. Dumont <antoine.romain.dumont@gmail.com>
# Copyright © 2023 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 locate' command-line utility.
#

set -x

RUN_EXPENSIVE_TESTS="${RUN_EXPENSIVE_TESTS:-false}"

tmpdir="guix-index-$$"
# In the following tests, we use two different databases, one for each
# indexation method.
tmpdb_manifests="$tmpdir/manifests/db.sqlite"
tmpdb_store="$tmpdir/store/db.sqlite"
trap 'rm -rf "$tmpdir" "$tmpdb_store" "$tmpdb_manifests"' EXIT

guix locate --version

# Preparing db locations for both indexation methods.
mkdir -p "$(dirname "$tmpdb_manifests")" "$(dirname "$tmpdb_store")"

cmd_manifests="guix locate --database=$tmpdb_manifests --method=manifests"
cmd_store="guix locate --database=$tmpdb_store --method=store"

# Lookup without any db should fail.
guix locate --database="$tmpdb_manifests" guile && false
guix locate --database="$tmpdb_store" guile && false

# Lookup without anything in db should yield no results because the indexer
# didn't stumble upon any profile.
test -z "$(guix locate --database="$tmpdb_manifests" guile)"

# Install a package.
guix package --bootstrap --install guile-bootstrap \
     --profile="$tmpdir/profile"

# Look for 'guile'.
$cmd_manifests --update
$cmd_manifests guile | grep "$(guix build guile-bootstrap)/bin/guile"
$cmd_manifests boot-9.scm | grep ^guile-bootstrap

# Using a glob pattern.
$cmd_manifests -g '*.scm' | grep "^guile-bootstrap.*boot-9"

# Statistics.
$cmd_manifests --stats

if $RUN_EXPENSIVE_TESTS
then
    $cmd_store --update
    $cmd_store guile
    $cmd_store guile | grep "$(guix build guile-bootstrap)/bin/guile"
    $cmd_store boot-9.scm | grep ^guile-bootstrap
fi

# The command below is an error: "no files to search for"...
guix locate && false

# ... but this one is fine.
guix locate --clear
otent....It used to be that the running the doc-po-update and doc-pot-update targets would redo the same work on every run. This change splits the problem in smaller chunks and specifies build dependencies in a way that outputs only get rebuilt when their inputs changed. * po/doc/local.mk (DOC_PO_FILES): Harmonize escapes. (POT_OPTIONS): Re-indent uniformly. (doc-po-update-%, doc-po-update-cookbook-%): Re-implement with... (make-update-po-files-rule): ... this new function. (TMP_POT_FILES): Remove variable. (%D%/%.pot, %D%/guix-manual.pot): New pattern rules. (doc-pot-update, doc-po-update): Adjust prerequisites accordingly. Maxim Cournoyer 2021-04-29build: Build the guix.pot-update and contributing.pot-update targets only once....* po/doc/local.mk (doc-pot-update): Fix an issue where guix.pot-update an contributing.pot-update were built twice. Maxim Cournoyer 2021-04-18nls: Fix Chinese cookbook inclusion....* po/doc/local.mk: zh_Hans is for the cookbook, not the manual. Julien Lepiller 2021-04-18nls: Add Chinese (Traditional) translation....* po/doc/guix-cookbook.zh_Hans.po: New file. * doc/local.mk (info_TEXINFOS): Add it. * po/doc/local.mk (DOC_COOKBOOK_PO_FILES): Add it. Julien Lepiller 2021-04-18nls: Add Korean translation....* po/doc/guix-cookbook.ko.po: New file. * po/doc/guix-manual.ko.po: New file. * doc/local.mk (info_TEXINFOS): Add them. * po/doc/local.mk (DOC_PO_FILES, DOC_COOKBOOK_PO_FILES): Add them. * po/guix/ko.po: New file. * po/guix/LINGUAS: Add 'ko'. * po/packages/ko.po: New file. * po/packages/LINGUAS: Add 'ko'. Julien Lepiller 2021-04-18nls: Add Italian translation....* po/doc/guix-manual.it.po: New file. * po/doc/local.mk (DOC_PO_FILES): Add it. * doc/local.mk (info_TEXINFOS): Add it. * po/guix/it.po: New file. * po/guix/LINGUAS: Add 'it'. Julien Lepiller 2021-04-18nls: Add Persian translation....* po/packages/fa.po: New file. * po/packages/LINGUAS: Add 'fa'. * po/doc/guix-cookbook.fa.po: New file. * po/doc/guix-manual.fa.po: New file. * po/doc/local.mk (DOC_PO_FILES, DOC_COOKBOOK_PO_FILES): Add them. * doc/local.mk (info_TEXINFOS): Add them. Julien Lepiller 2021-04-18nls: Add Slovak translation....* po/packages/sk.po: New file. * po/packages/LINGUAS: Add 'sk'. * po/doc/guix-manual.sk.po: New file. * doc/local.mk (info_TEXINFOS): Add it. * po/doc/local.mk (DOC_PO_FILES): Add it. Julien Lepiller 2021-04-18nls: Add Portuguese (Brazil) translation of the manual.Julien Lepiller 2021-04-18nls: Add French translation of the cookbook.Julien Lepiller 2020-09-29nls: Fix documentation pot generation....* po/doc/local.mk: Fix POT_OPTIONS to properly assign copyright and define the proper license. Julien Lepiller 2020-03-06doc: Fix build of German Cookbook translation....This is a follow-up to f98e83a17fa30587520e858231ec9c61f3624ecd. See <https://lists.gnu.org/archive/html/guix-devel/2020-03/msg00095.html>. Reported there by Vagrant Cascadian <vagrant@debian.org>. * po/doc/local.mk (DOC_COOKBOOK_PO_FILES): Use correct file name. (doc-po-update-cookbook-%): Use correct PO file name. Florian Pelz 2020-02-17doc: Add German Cookbook translation....* doc/local.mk (info_TEXINFOS): Add guix-cookbook.de.texi. (TRANSLATED_INFO): Add guix-cookbook.de.texi. * po/doc/guix-cookbook.de.po: New file. * po/doc/local.mk (DOC_COOKBOOK_PO_FILES): Add guix-cookbook.de.po. Florian Pelz 2019-09-18doc: Add Guix Cookbook....* .gitignore: Update ignore list. * Makefile.am (assert-no-store-file-names): Exclude the cookbook. * bootstrap: Generate po files for cookbook translations. * doc/guix-cookbook.texi: New file. * doc/local.mk (info_TEXINFOS): Add it; add a rule to build cookbook translations. * po/doc/local.mk (DOC_COOKBOOK_PO_FILES): New variable. (EXTRA_DIST): Add cookbook pot file and po files. (doc-po-update-cookbook-%): New target. (doc-pot-update): Also update cookbook pot file. (doc-po-update): Also update cookbook po files. Ricardo Wurmus 2019-05-13doc: Add Russian translation....* doc/local.mk (info_TEXINFOS): Add guix.ru.texi. (TRANSLATED_INFO): Add {guix,contributing}.ru.texi. * po/doc/local.mk (DOC_PO_FILES): Add guix-manual.ru.po. * po/doc/guix-manual.ru.po: New file. Ludovic Courtès 2019-04-30build: 'guix-manual.*.po' no longer depends on 'guix-manual.pot'....That dependency was causing a failure when building from a fresh checkout since commit d60225d5caabfb6409e3277c0512cd4c0fa63d72 because 'guix-manual.pot' was no longer around and there's no rule to make it. This commit replaces the 'guix-manual.%.po' target by a phony target, 'doc-po-update-%', without any dependency. * po/doc/local.mk ($(srcdir)/po/doc/guix-manual.%.po): Rename to... (doc-po-update-%): ... this. Remove dependencies. Change how 'lang' is computed; compute $output and $input, and replace occurrences of $@ and $< with those. (doc-po-update): Adjust accordingly. Ludovic Courtès 2019-04-29maint: Mark 'doc-pot-update' and 'doc-po-update' as phony....* po/doc/local.mk (doc-pot-update, doc-pot-update): Mark as phony. Ludovic Courtès 2019-04-24doc: Add Simplified Chinese translation....* doc/local.mk (info_TEXINFOS): Add guix.zh_CN.texi. (TRANSLATED_INFO): Add guix.zh_CN.texi and contributing.zh_CN.texi. * po/doc/local.mk (DOC_PO_FILES): Add guix-manual.zh_CN.po. * doc/contributing.zh_CN.texi, doc/guix.zh_CN.texi: New files. Ludovic Courtès 2019-04-23doc: Add Spanish translation....* doc/local.mk (info_TEXINFOS): Add guix.es.texi. (TRANSLATED_INFO): Add guix.es.texi and contributing.es.texi. * po/doc/guix-manual.es.po: New file. * po/doc/local.mk: Add guix-manual.es.po. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Miguel Ángel Arruga Vivas 2018-11-28nls: Update documentation po and pot with `make dist`....* Makefile.am: dist-hook depends on doc-po-update. * po/doc/local.mk (doc-po-update): New target. Julien Lepiller 2018-11-01doc: Add German translation....* doc/contributing.de.texi: New file. * doc/guix.de.texi: New file * doc/local.mk (TRANSLATED_INFO): Add them. (info_TEXINFOS): Add guix.de.texi. * po/doc/guix-manual.de.po: New file. * po/doc/local.mk (EXTRA_DIST): Add it. * doc/guix.texi: Document the German translation. Julien Lepiller 2018-04-29build: Use only one domain for guix-manual....* Makefile.am (assert-no-store-file-names): Exclude guix-manual. * po/doc/guix.pot po/doc/contributing.pot: Merge into... * po/doc/guix-manual.pot: ...this. * po/doc/guix.fr.po po/doc/contributing.fr.po: Merge into... * po/doc/guix-manual.fr.po: ...this. * doc/local.mk: Replace old file names. * po/doc/local.mk: Replace old file names. Julien Lepiller 2018-04-19gnu: doc: Add French documentation....* doc/contributing.fr.texi: New file. * doc/guix.fr.texi: New file. * doc/local.mk (TRANSLATED_INFO): Add them. (info_TEXINFOS): Add guix.fr.texi. * po/doc/contributing.fr.po: New file. * po/doc/guix.fr.po: New file. * po/doc/local.mk (EXTRA_DIST): Add them. Julien Lepiller 2018-04-19gnu: doc: Allow documentation to be translated....* po/doc/contributing.pot: New file. * po/doc/guix.pot: New file. * po/doc/local.mk: New file. * Makefile.am: Include it. Add gettext command. Add silent rules for po4a. * configure.ac: Look for po4a-translate and po4a-updatepo. * doc/local.mk: Add rules to generate translated texi files. (TRANSLATED_INFO): New variable. (BUILT_SOURCES, EXTRA_DIST, MAINTAINERCLEANFILES): Add it. * .gitignore: Add generated files. Julien Lepiller