aboutsummaryrefslogtreecommitdiff
# GNU Guix --- Functional package management for GNU
# Copyright © 2012, 2015-2016, 2024 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/>.

# Define some files/folders needed for the tests.
output="t-download-$$"
test_git_repo="$(mktemp -d)"
output_dir="t-archive-dir-$$"
trap 'rm -rf "$test_git_repo" ; rm -f "$output" ; rm -rf "$output_dir"' EXIT

#
# Test the `guix download' command-line utility.
#

guix download --version

# Make sure it fails here.
guix download http://does.not/exist && false

guix download unknown://some/where && false

guix download /does-not-exist && false

# This one should succeed.
guix download "file://$abs_top_srcdir/README"

# And this one, without the URI scheme.
guix download "$abs_top_srcdir/README"

# This one too, even if it cannot talk to the daemon.
GUIX_DAEMON_SOCKET="/nowhere" guix download -o "$output" \
		  "file://$abs_top_srcdir/README"
cmp "$output" "$abs_top_srcdir/README"

# This one should fail.
guix download "file:///does-not-exist" "file://$abs_top_srcdir/README" && false

# Test git support with local repository.
# First, create a dummy git repo in the temporary directory.
(
    # Avoid interference with user config.
    GIT_CONFIG_GLOBAL=/dev/null
    GIT_CONFIG_SYSTEM=/dev/null
    export GIT_CONFIG_SYSTEM GIT_CONFIG_GLOBAL

    cd $test_git_repo
    git init
    touch test
    git config user.name "User"
    git config user.email "user@domain"
    git add test
    git commit -m "Commit"
    git tag -a -m "v1" v1
)

# Extract commit number.
commit=$((cd $test_git_repo && git log) | head -n 1 | cut -f2 -d' ')

# We expect that guix hash is working properly or at least that the output of
# 'guix download' is consistent with 'guix hash'.
expected_hash=$(guix hash -rx $test_git_repo)

# Test the different options
for option in "" "--commit=$commit" "--commit=v1" "--branch=master"
do
    command_output="$(guix download --git $option "file://$test_git_repo")"
    computed_hash="$(echo $command_output | cut -f2 -d' ')"
    store_path="$(echo $command_output | cut -f1 -d' ')"
    [ "$expected_hash" = "$computed_hash" ]
    diff -r -x ".git" $test_git_repo $store_path
done

# Should fail.
guix download --git --branch=non_existent "file://$test_git_repo" && false

# Same but download to file instead of store.
guix download --git "file://$test_git_repo" -o $output_dir
diff -r -x ".git" $test_git_repo $output_dir

exit 0
.de> gemmaro 2024-06-03build: Update the POT creation task with the po4a command....* configure.ac (Documentation translation): Add the po4a program and remove the po4a-updatepo program. The PO4A defined here can be used in Makefiles (e.g. po/doc/local.mk below). The po4a command integrates the functionality of po4a-updatepo and is currently recommended for use [1]. The po4a-updatepo command has been replaced by the po4a command and are not used from anywhere. * po/doc/local.mk (%D%/%.pot): Use a po4a command instead of the po4a-updatepo for the POT generation. This eliminates the warning of po4a-updatepo; "po4a-updatepo is deprecated. The unified po4a(1) program is more convenient and less error prone." Here, the file paths are passed using variables. This is because the po4a command needs to be executed for each language and each file. Dummy values are passed for those that are not needed to update the POT file. * po/doc/po4a.cfg: Add a po4a config file for the POT generation. The po4a command requires a configulation file. [1] https://po4a.org/man/man7/po4a.7.php.en#lbAS Change-Id: Ica39a0d1f77b6a64d37c592ac2e693319443d3c5 Signed-off-by: Florian Pelz <pelzflorian@pelzflorian.de> gemmaro 2024-05-01nls: Update translations....* po/packages/sv.po: New file. * po/packages/LINGUAS: Add it. Change-Id: I2ad4dfcb935ba0a4e79c15b86cee6826c6580729 Florian Pelz 2024-04-14maint: Use reproducible Git timestamp for POT-Creation-Date....* po/doc/local.mk (%D%/%.pot): Replace POT-Creation-Date using timestamp from Git. (%D%/guix-manual.pot): Likewise. Change-Id: I1b7f8cc147084c1804deb7be9d36e5eeda2599cb Janneke Nieuwenhuizen 2024-04-01nls: Update translations....* po/guix/ar.po: New file. * po/guix/LINGUAS: Add 'ar'. * po/doc/guix-cookbook.pt_BR.po: New file. * po/doc/local.mk: Add 'pt_BR' cookbook. * doc/local.mk: Add 'pt_BR' cookbook. * doc/htmlxref.cnf: Update URLs for cookbook. * doc/build.scm (%cookbook-languages): Add 'ko', 'pt_BR'. * doc/guix-cookbook.texi (Top): Mention 'ko', 'pt_BR' cookbook. Change-Id: Id1846ca100263b3fc1fa2ed52654c670270ee809 Florian Pelz 2024-02-29nls: Update translations....Change-Id: Ic1506db5813880153b6def005011618dc4529e8f Florian Pelz 2024-02-01nls: Update translations....Change-Id: I42b5d41bdd5cd1b096c977e132b7a85992223402 Florian Pelz 2024-01-01nls: Update translations....Change-Id: Ib407fd37896cc8653f5bfb1f76dba9dc775c8c10 Florian Pelz 2023-12-01nls: Update translations....* po/guix/ca.po: New file. * po/guix/LINGUAS: Add ca.$ Change-Id: Ibae3f58ba702d7c5a4fafdd59a19f70aa8e18212 Florian Pelz 2023-10-31nls: Update translations....Change-Id: I432aec0ea31ead192d6444c96dc42038f5c7ab9a Florian Pelz 2023-10-05doc: Fix channel name typo....When the manual has "variant-personal-packages", it actually refers to the channel "variant-packages", as it is named so elsewhere. To correct this, I ran the command grep -r -l variant-personal-packages | xargs \ sed -i 's/variang-personal-packages/variant-packages/g' * doc/guix.texi (Specifying Additional Channels): Fix channel name typo. * po/doc/guix-manual.de.po: Fix channel name typo. * po/doc/guix-manual.es.po: Fix channel name typo. * po/doc/guix-manual.fr.po: Fix channel name typo. * po/doc/guix-manual.pt_BR.po: Fix channel name typo. * po/doc/guix-manual.ru.po: Fix channel name typo. * po/doc/guix-manual.zh_CN.po: Fix channel name typo. Signed-off-by: Nikolaos Chatzikonstantinou <nchatz314@gmail.com> Signed-off-by: Ludovic Courtès <ludo@gnu.org> Nikolaos Chatzikonstantinou 2023-09-30nls: Update translations.Florian Pelz 2023-08-31nls: Update translations.Florian Pelz 2023-07-31nls: Update translations.Florian Pelz 2023-06-30nls: Update translations....* po/packages/ja.po: New file. * po/packages/LINGUAS: Add it. Florian Pelz