Merge pull request #13154 from zimbatm/git-rebase-fix-v2

git: fixes references to gettext properly

zimbatm 428e12d2 853a2136

Changed files
+80 -1
pkgs
applications
version-management
git-and-tools
+2 -1
pkgs/applications/version-management/git-and-tools/git/default.nix
···
patches = [
./docbook2texi.patch
./symlinks-in-bin.patch
+
./git-sh-i18n.patch
];
buildInputs = [curl openssl zlib expat gettext cpio makeWrapper libiconv]
···
# Fix references to gettext.
substituteInPlace $out/libexec/git-core/git-sh-i18n \
-
--replace 'gettext.sh' '${gettext}/bin/gettext.sh'
+
--subst-var-by gettext ${gettext}
# gzip (and optionally bzip2, xz, zip) are runtime dependencies for
# gitweb.cgi, need to patch so that it's found
+78
pkgs/applications/version-management/git-and-tools/git/git-sh-i18n.patch
···
+
diff --git a/git-sh-i18n.sh b/git-sh-i18n.sh
+
index e6c3116..4e34a2c 100644
+
--- a/git-sh-i18n.sh
+
+++ b/git-sh-i18n.sh
+
@@ -15,69 +15,11 @@ else
+
fi
+
export TEXTDOMAINDIR
+
+
-# First decide what scheme to use...
+
-GIT_INTERNAL_GETTEXT_SH_SCHEME=fallthrough
+
-if test -n "@@USE_GETTEXT_SCHEME@@"
+
-then
+
- GIT_INTERNAL_GETTEXT_SH_SCHEME="@@USE_GETTEXT_SCHEME@@"
+
-elif test -n "$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS"
+
-then
+
- : no probing necessary
+
-elif test -n "$GIT_GETTEXT_POISON"
+
-then
+
- GIT_INTERNAL_GETTEXT_SH_SCHEME=poison
+
-elif type gettext.sh >/dev/null 2>&1
+
-then
+
- # GNU libintl's gettext.sh
+
- GIT_INTERNAL_GETTEXT_SH_SCHEME=gnu
+
-elif test "$(gettext -h 2>&1)" = "-h"
+
-then
+
- # gettext binary exists but no gettext.sh. likely to be a gettext
+
- # binary on a Solaris or something that is not GNU libintl and
+
- # lack eval_gettext.
+
- GIT_INTERNAL_GETTEXT_SH_SCHEME=gettext_without_eval_gettext
+
-fi
+
-export GIT_INTERNAL_GETTEXT_SH_SCHEME
+
-
+
-# ... and then follow that decision.
+
-case "$GIT_INTERNAL_GETTEXT_SH_SCHEME" in
+
-gnu)
+
- # Use libintl's gettext.sh, or fall back to English if we can't.
+
- . gettext.sh
+
- ;;
+
-gettext_without_eval_gettext)
+
- # Solaris has a gettext(1) but no eval_gettext(1)
+
- eval_gettext () {
+
- gettext "$1" | (
+
- export PATH $(git sh-i18n--envsubst --variables "$1");
+
- git sh-i18n--envsubst "$1"
+
- )
+
- }
+
- ;;
+
-poison)
+
- # Emit garbage so that tests that incorrectly rely on translatable
+
- # strings will fail.
+
- gettext () {
+
- printf "%s" "# GETTEXT POISON #"
+
- }
+
-
+
- eval_gettext () {
+
- printf "%s" "# GETTEXT POISON #"
+
- }
+
- ;;
+
-*)
+
- gettext () {
+
- printf "%s" "$1"
+
- }
+
+# GNU gettext
+
+export GIT_INTERNAL_GETTEXT_SH_SCHEME=gnu
+
+export PATH=@gettext@/bin:$PATH
+
+
- eval_gettext () {
+
- printf "%s" "$1" | (
+
- export PATH $(git sh-i18n--envsubst --variables "$1");
+
- git sh-i18n--envsubst "$1"
+
- )
+
- }
+
- ;;
+
-esac
+
+. @gettext@/bin/gettext.sh
+
+
# Git-specific wrapper functions
+
gettextln () {