summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Build/LinuxMkLibs.hs10
-rw-r--r--debian/changelog1
-rw-r--r--doc/bugs/android_cannot_get_from_5.20131221.mdwn4
3 files changed, 15 insertions, 0 deletions
diff --git a/Build/LinuxMkLibs.hs b/Build/LinuxMkLibs.hs
index 0d47c4cb3..152c6b28d 100644
--- a/Build/LinuxMkLibs.hs
+++ b/Build/LinuxMkLibs.hs
@@ -36,6 +36,7 @@ main = getArgs >>= go
mklibs :: FilePath -> IO ()
mklibs top = do
fs <- dirContentsRecursive top
+ mapM_ symToHardLink fs
exes <- filterM checkExe fs
libs <- parseLdd <$> readProcess "ldd" exes
glibclibs <- glibcLibs
@@ -91,6 +92,15 @@ installLinkerShim top exe = do
shimdir = top </> "shimmed" </> base
exedest = shimdir </> base
+{- Converting symlinks to hard links simplifies the binary shimming
+ - process. -}
+symToHardLink :: FilePath -> IO ()
+symToHardLink f = whenM (isSymbolicLink <$> getSymbolicLinkStatus f) $ do
+ l <- readSymbolicLink f
+ let absl = absPathFrom (parentDir f) l
+ nukeFile f
+ createLink absl f
+
installFile :: FilePath -> FilePath -> IO ()
installFile top f = do
createDirectoryIfMissing True destdir
diff --git a/debian/changelog b/debian/changelog
index 74a5c8db3..6e0ae120a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,7 @@ git-annex (5.20131222) UNRELEASED; urgency=medium
* Add tasty to build-depends, so that test suite builds again.
(tasty was stuck in incoming.)
* Fix typo in test suite.
+ * Fix bug in Linux standalone build's shimming that broke git-annex-shell.
-- Joey Hess <joeyh@debian.org> Tue, 24 Dec 2013 13:54:32 -0400
diff --git a/doc/bugs/android_cannot_get_from_5.20131221.mdwn b/doc/bugs/android_cannot_get_from_5.20131221.mdwn
index 244c93b05..72335f5f2 100644
--- a/doc/bugs/android_cannot_get_from_5.20131221.mdwn
+++ b/doc/bugs/android_cannot_get_from_5.20131221.mdwn
@@ -26,3 +26,7 @@ linux standalone 5.20131213 and 5.20131221 are both able to `get` from linux sta
- Remote was set up by the Assistant
> [[clacke]]
+
+> Bug is in the shimming used for the linux standalone builds
+> (not android), which causes git-annex-shell to run git-annex.
+> [[fixed|done]] --[[Joey]]