OSX link libs into git-core directory
So that binaries in that directory can find the library next to them, where they get modified to look. This is a hack; it would be better for OSXMkLibs to build a list of what libraries are needed where. Unsure if this is needed due to a recent reversion, or is an older problem, so updated changelog accordingly.
This commit is contained in:
parent
5cc8cfe57b
commit
b321526473
3 changed files with 24 additions and 6 deletions
|
@ -50,8 +50,12 @@ installLibs appbase replacement_libs libmap = do
|
||||||
let symdest = appbase </> shortlib
|
let symdest = appbase </> shortlib
|
||||||
-- This is a hack; libraries need to be in the same
|
-- This is a hack; libraries need to be in the same
|
||||||
-- directory as the program, so also link them into the
|
-- directory as the program, so also link them into the
|
||||||
-- extra directory.
|
-- extra and git-core directories so programs in those will
|
||||||
let symdestextra = appbase </> "extra" </> shortlib
|
-- find them.
|
||||||
|
let symdestextra =
|
||||||
|
[ appbase </> "extra" </> shortlib
|
||||||
|
, appbase </> "git-core" </> shortlib
|
||||||
|
]
|
||||||
ifM (doesFileExist dest)
|
ifM (doesFileExist dest)
|
||||||
( return Nothing
|
( return Nothing
|
||||||
, do
|
, do
|
||||||
|
@ -59,9 +63,11 @@ installLibs appbase replacement_libs libmap = do
|
||||||
putStrLn $ "installing " ++ pathlib ++ " as " ++ shortlib
|
putStrLn $ "installing " ++ pathlib ++ " as " ++ shortlib
|
||||||
unlessM (boolSystem "cp" [File pathlib, File dest]
|
unlessM (boolSystem "cp" [File pathlib, File dest]
|
||||||
<&&> boolSystem "chmod" [Param "644", File dest]
|
<&&> boolSystem "chmod" [Param "644", File dest]
|
||||||
<&&> boolSystem "ln" [Param "-s", File fulllib, File symdest]
|
<&&> boolSystem "ln" [Param "-s", File fulllib, File symdest]) $
|
||||||
<&&> boolSystem "ln" [Param "-s", File (".." </> fulllib), File symdestextra]) $
|
|
||||||
error "library install failed"
|
error "library install failed"
|
||||||
|
forM_ symdestextra $ \d ->
|
||||||
|
unlessM (boolSystem "ln" [Param "-s", File (".." </> fulllib), File d]) $
|
||||||
|
error "library linking failed"
|
||||||
return $ Just appbase
|
return $ Just appbase
|
||||||
)
|
)
|
||||||
return (catMaybes libs, replacement_libs', libmap')
|
return (catMaybes libs, replacement_libs', libmap')
|
||||||
|
|
|
@ -6,8 +6,8 @@ git-annex (7.20191107) UNRELEASED; urgency=medium
|
||||||
* Fix a crash (STM deadlock) when -J is used with multiple files
|
* Fix a crash (STM deadlock) when -J is used with multiple files
|
||||||
that point to the same key.
|
that point to the same key.
|
||||||
* linuxstandalone: Fix a regression that broke git-remote-https.
|
* linuxstandalone: Fix a regression that broke git-remote-https.
|
||||||
* OSX git-annex.app: Fix a regression that broke git-remote-https,
|
* OSX git-annex.app: Fix a problem that prevented using the bundled
|
||||||
git-remote-http, and git-shell.
|
git-remote-https, git-remote-http, and git-shell.
|
||||||
|
|
||||||
-- Joey Hess <id@joeyh.name> Mon, 11 Nov 2019 15:59:47 -0400
|
-- Joey Hess <id@joeyh.name> Mon, 11 Nov 2019 15:59:47 -0400
|
||||||
|
|
||||||
|
|
12
doc/bugs/OSX_dmg_git-core_binaries_do_not_link.mdwn
Normal file
12
doc/bugs/OSX_dmg_git-core_binaries_do_not_link.mdwn
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
The OSX .dmg contains a few binaries in git-core like git-remote-http.
|
||||||
|
They have been adjusted by otool to link to libraries in the same directory
|
||||||
|
as the binary. However, the libraries are not located in the git-core
|
||||||
|
directory, but in its parent directory, and so the git-core binaries don't
|
||||||
|
link.
|
||||||
|
|
||||||
|
I don't think this is a new regression, but not entirely sure.
|
||||||
|
|
||||||
|
Seems that OSXMkLibs could symlink ../lib into git-core.
|
||||||
|
--[[Joey]]
|
||||||
|
|
||||||
|
> [[fixed|done]] --[[Joey]]
|
Loading…
Reference in a new issue