summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--scripts/libmakepkg/source/git.sh.in11
1 files changed, 10 insertions, 1 deletions
diff --git a/scripts/libmakepkg/source/git.sh.in b/scripts/libmakepkg/source/git.sh.in
index 6d7e0a67..252cd4da 100644
--- a/scripts/libmakepkg/source/git.sh.in
+++ b/scripts/libmakepkg/source/git.sh.in
@@ -65,7 +65,7 @@ download_git() {
}
extract_git() {
- local netfile=$1
+ local netfile=$1 tagname
local fragment=$(get_uri_fragment "$netfile")
local repo=$(get_filename "$netfile")
@@ -110,6 +110,15 @@ extract_git() {
esac
fi
+ if [[ ${fragment%%=*} = tag ]]; then
+ tagname="$(git tag -l --format='%(tag)' "$ref")"
+ if [[ -n $tagname && $tagname != $ref ]]; then
+ error "$(gettext "Failure while checking out version %s, the git tag has been forged")" "$ref"
+ plain "$(gettext "Aborting...")"
+ exit 1
+ fi
+ fi
+
if [[ $ref != "origin/HEAD" ]] || (( updating )) ; then
if ! git checkout --force --no-track -B makepkg $ref; then
error "$(gettext "Failure while creating working copy of %s %s repo")" "${repo}" "git"