summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Build/LinuxMkLibs.hs7
-rw-r--r--debian/changelog2
-rw-r--r--doc/bugs/cannot_change_locale___40__en__95__US.UTF-8__41__.mdwn19
-rwxr-xr-xstandalone/linux/skel/runshell4
4 files changed, 28 insertions, 4 deletions
diff --git a/Build/LinuxMkLibs.hs b/Build/LinuxMkLibs.hs
index 16946e188..0e54672f9 100644
--- a/Build/LinuxMkLibs.hs
+++ b/Build/LinuxMkLibs.hs
@@ -5,6 +5,8 @@
- Licensed under the GNU GPL version 3 or higher.
-}
+{-# LANGUAGE CPP #-}
+
module Main where
import System.Environment
@@ -72,6 +74,11 @@ installLinkerShim top linker exe = do
[ "#!/bin/sh"
, "GIT_ANNEX_PROGRAMPATH=\"$0\""
, "export GIT_ANNEX_PROGRAMPATH"
+#if ! MIN_VERSION_GLASGOW_HASKELL(7,10,0,0)
+ -- workaround for https://ghc.haskell.org/trac/ghc/ticket/7695
+ , "LOCPATH=/dev/null"
+ , "export LOCPATH"
+#endif
, "exec \"$GIT_ANNEX_DIR/" ++ exelink ++ "\" --library-path \"$GIT_ANNEX_LD_LIBRARY_PATH\" \"$GIT_ANNEX_DIR/shimmed/" ++ base ++ "/" ++ base ++ "\" \"$@\""
]
modifyFileMode exe $ addModes executeModes
diff --git a/debian/changelog b/debian/changelog
index d18b5332c..fc1171c0b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,8 @@ git-annex (6.20160419) UNRELEASED; urgency=medium
* Fix duplicate progress meter display when downloading from a git remote
over http with -J.
+ * Avoid setting LOCPATH in linux standalone builds now that ghc has been
+ fixed to not hang when it cannot find locale files.
-- Joey Hess <id@joeyh.name> Tue, 19 Apr 2016 12:57:15 -0400
diff --git a/doc/bugs/cannot_change_locale___40__en__95__US.UTF-8__41__.mdwn b/doc/bugs/cannot_change_locale___40__en__95__US.UTF-8__41__.mdwn
index 178348e51..6be8bd6e6 100644
--- a/doc/bugs/cannot_change_locale___40__en__95__US.UTF-8__41__.mdwn
+++ b/doc/bugs/cannot_change_locale___40__en__95__US.UTF-8__41__.mdwn
@@ -26,3 +26,22 @@ he_IL
he_IL.iso88598
he_IL.utf8
POSIX
+
+> I've made LOCPATH not be set except when git-annex is built with ghc
+> older than 7.10, since the problem was fixed in ghc 7.10.
+>
+> Also, I loved the LOCPATH setting into the linker shim script, rather
+> than in runshell, so it will only affect the programs bundled with
+> git-annex (itself and git and a few other things). Which are not
+> localized anyway in the bundle. So, even in builds where it's still set
+> (the linux ancient build in particular), things done in the runshell
+> environment won't be affected.
+>
+> I do wonder if there could be problems with incompatabilities between the
+> bundled glibc and the system locale files, which might be for a
+> newer/older libc version. Not so much random `.mo` files, which seem
+> quite portable across glibc versions, but the more core locale files.
+> If that turns out to be a problem, LOCPATH might have to be turned back
+> on.
+>
+> For now, [[done]] --[[Joey]]
diff --git a/standalone/linux/skel/runshell b/standalone/linux/skel/runshell
index fff0f7082..874dc75f1 100755
--- a/standalone/linux/skel/runshell
+++ b/standalone/linux/skel/runshell
@@ -100,10 +100,6 @@ export ORIG_GCONV_PATH
GCONV_PATH="$base/$(cat "$base/gconvdir")"
export GCONV_PATH
-# workaround for https://ghc.haskell.org/trac/ghc/ticket/7695
-LOCPATH=/dev/null
-export LOCPATH
-
ORIG_GIT_EXEC_PATH="$GIT_EXEC_PATH"
export ORIG_GIT_EXEC_PATH
GIT_EXEC_PATH="$base/git-core"