Windows: Remove cygwin ssh, the newer version of which has stopped honoring the setting of HOME. Instead, copy msysgit's ssh into PATH.
This commit is contained in:
parent
00e426f738
commit
ce285ea6fa
4 changed files with 31 additions and 7 deletions
|
@ -35,13 +35,14 @@ bundledPrograms = catMaybes
|
||||||
#endif
|
#endif
|
||||||
, Just "rsync"
|
, Just "rsync"
|
||||||
#ifndef darwin_HOST_OS
|
#ifndef darwin_HOST_OS
|
||||||
|
#ifndef mingw32_HOST_OS
|
||||||
-- OS X has ssh installed by default.
|
-- OS X has ssh installed by default.
|
||||||
-- Linux probably has ssh, but not guaranteed.
|
-- Linux probably has ssh, but not guaranteed.
|
||||||
-- On Windows, msysgit provides ssh, but not in PATH,
|
-- On Windows, msysgit provides ssh.
|
||||||
-- so we ship our own.
|
|
||||||
, Just "ssh"
|
, Just "ssh"
|
||||||
, Just "ssh-keygen"
|
, Just "ssh-keygen"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
#ifndef mingw32_HOST_OS
|
#ifndef mingw32_HOST_OS
|
||||||
, Just "sh"
|
, Just "sh"
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -92,7 +92,7 @@ uninstaller = "git-annex-uninstall.exe"
|
||||||
gitInstallDir :: Exp FilePath
|
gitInstallDir :: Exp FilePath
|
||||||
gitInstallDir = fromString "$PROGRAMFILES\\Git"
|
gitInstallDir = fromString "$PROGRAMFILES\\Git"
|
||||||
|
|
||||||
-- This intentionall has a different name than git-annex or
|
-- This intentionally has a different name than git-annex or
|
||||||
-- git-annex-webapp, since it is itself treated as an executable file.
|
-- git-annex-webapp, since it is itself treated as an executable file.
|
||||||
-- Also, on XP, the filename is displayed, not the description.
|
-- Also, on XP, the filename is displayed, not the description.
|
||||||
startMenuItem :: Exp FilePath
|
startMenuItem :: Exp FilePath
|
||||||
|
@ -152,6 +152,9 @@ makeInstaller gitannex license htmlhelp extrabins launchers = nsis $ do
|
||||||
section "cmd" [] $ do
|
section "cmd" [] $ do
|
||||||
setOutPath "$INSTDIR\\cmd"
|
setOutPath "$INSTDIR\\cmd"
|
||||||
mapM_ addfile (gitannex:extrabins)
|
mapM_ addfile (gitannex:extrabins)
|
||||||
|
-- copy msysgit's ssh into cmd so it's always in PATH
|
||||||
|
-- (bin is only in PATH from git bash)
|
||||||
|
copyFiles [] "$INSTDIR\\bin\\ssh.exe" "$INSTDIR\\cmd\\ssh.exe"
|
||||||
section "meta" [] $ do
|
section "meta" [] $ do
|
||||||
setOutPath "$INSTDIR\\doc\\git\\html"
|
setOutPath "$INSTDIR\\doc\\git\\html"
|
||||||
addfile htmlhelp
|
addfile htmlhelp
|
||||||
|
|
2
debian/changelog
vendored
2
debian/changelog
vendored
|
@ -36,6 +36,8 @@ git-annex (5.20150421) UNRELEASED; urgency=medium
|
||||||
Closes: #698559
|
Closes: #698559
|
||||||
(fsck can still need to write to the repository if it find problems,
|
(fsck can still need to write to the repository if it find problems,
|
||||||
but a successful fsck can be done read-only)
|
but a successful fsck can be done read-only)
|
||||||
|
* Windows: Remove cygwin ssh, the newer version of which has stopped
|
||||||
|
honoring the setting of HOME. Instead, copy msysgit's ssh into PATH.
|
||||||
|
|
||||||
-- Joey Hess <id@joeyh.name> Tue, 21 Apr 2015 15:54:10 -0400
|
-- Joey Hess <id@joeyh.name> Tue, 21 Apr 2015 15:54:10 -0400
|
||||||
|
|
||||||
|
|
|
@ -14,10 +14,13 @@ Problem doesn't seem to affect the bundled ssh, just rsync. --[[Joey]]
|
||||||
> So the workaround is to
|
> So the workaround is to
|
||||||
> delete Git/bin/ssh.exe and leave Git/cmd/ssh.exe. Then rsync works.
|
> delete Git/bin/ssh.exe and leave Git/cmd/ssh.exe. Then rsync works.
|
||||||
> However, this may screw up git's use of ssh or other stuff.
|
> However, this may screw up git's use of ssh or other stuff.
|
||||||
|
>
|
||||||
|
> Particularly, cygwin's ssh doesn't honor HOME anymore, instead using
|
||||||
|
> the getpwent home, which doesn't exist.
|
||||||
>
|
>
|
||||||
> Also, see
|
> Also, see
|
||||||
> [[webapp_fails_to_connect_to_ssh_repository___40__windows__41__]]
|
> [[webapp_fails_to_connect_to_ssh_repository___40__windows__41__]]
|
||||||
> which is the inverse of this bug.
|
> which is the inverse of this bug perhaps, or at least seems related.
|
||||||
>
|
>
|
||||||
> Using 2 ssh's that try to use config from different places seems like
|
> Using 2 ssh's that try to use config from different places seems like
|
||||||
> a losing propisition. Need to find an rsync that works with git's ssh.
|
> a losing propisition. Need to find an rsync that works with git's ssh.
|
||||||
|
@ -38,13 +41,28 @@ Problem doesn't seem to affect the bundled ssh, just rsync. --[[Joey]]
|
||||||
>>> Possible fixes:
|
>>> Possible fixes:
|
||||||
>>>
|
>>>
|
||||||
>>> * Roll the bundled ssh and rsync back to the older versions.
|
>>> * Roll the bundled ssh and rsync back to the older versions.
|
||||||
>>> (But, this seems like it would leave
|
>>>
|
||||||
>>> [[webapp_fails_to_connect_to_ssh_repository___40__windows__41__]]
|
>>> **This works**. And, seems that the older version of ssh from cygwin
|
||||||
>>> unfixed, unless the old version of ssh didn't have that problem.)
|
>>> looks at HOME, rather than getpwent home which the newer
|
||||||
|
>>> cygwin ssh does.
|
||||||
|
>>>
|
||||||
>>> * Roll the bundled rsync back, drop ssh. Rely on msysgit's bundled ssh,
|
>>> * Roll the bundled rsync back, drop ssh. Rely on msysgit's bundled ssh,
|
||||||
>>> copying it into cmd so it's in PATH. Check: Does this combo work?
|
>>> copying it into cmd so it's in PATH. Check: Does this combo work?
|
||||||
|
>>>
|
||||||
|
>>> **This works**! rsync 3.0.9 works ok with msysgit's bundled ssh.
|
||||||
|
>>> rsync 3.1.1 is the one that needs a newer ssh.
|
||||||
|
>>>
|
||||||
|
>>> Note that this means we're using an old version of rsync
|
||||||
|
>>> from cygwin with libraries from a newer cygwin. That might prove
|
||||||
|
>>> fragile as cygwin is upgraded.
|
||||||
|
>>>
|
||||||
>>> * Hope that msysgit gets updated to include a newer version of ssh
|
>>> * Hope that msysgit gets updated to include a newer version of ssh
|
||||||
>>> which works with the new rsync.
|
>>> which works with the new rsync.
|
||||||
|
>>>
|
||||||
|
>>> (Seems reasonable as a long-term plan, assuming that the
|
||||||
|
>>> new rsync's problem with ssh is that it needs a new one, and not some
|
||||||
|
>>> special cygwin thing.)
|
||||||
|
>>>
|
||||||
>>> * Get rsync from somewhere else, perhaps msysgit. (Maybe also get ssh
|
>>> * Get rsync from somewhere else, perhaps msysgit. (Maybe also get ssh
|
||||||
>>> from msysgit?)
|
>>> from msysgit?)
|
||||||
>>> * Keep the new rsync from cygwin, and build ssh from source,
|
>>> * Keep the new rsync from cygwin, and build ssh from source,
|
||||||
|
|
Loading…
Add table
Reference in a new issue