Hi,
Please apply this compatibility fix (commit v1.6.0.1-90-g27a6ed4)
to maint as well.
On Sun, Aug 24, 2008 at 11:23:25PM +0300, Tommi Virtanen wrote:
quoted text > >From 8e7935231e8a91d470b3a4a2310803031ef49fc4 Mon Sep 17 00:00:00 2001
> From: Tommi Virtanen <tv@eagain.net>
> Date: Sun, 24 Aug 2008 23:20:33 +0300
> Subject: [PATCH] Install git-shell in bindir, again.
>=20
> /etc/passwd shell field must be something execable, you can't enter
> "/usr/bin/git shell" there. git-shell must be present as a separate
> executable, or it is useless.
>=20
> Signed-off-by: Tommi Virtanen <tv@eagain.net>
> ---
>=20
> Hi. Recent changes moved away from "git-foo" to "git foo", except for
> some commands that needed backwards compatibility. However, git-shell
> as a separate binary was removed. I hope you will reinstante git-shell
> as a publicly visible binary in bin. Here's why:
>=20
> The shell field in /etc/passwd is *exec*ed, not interpreted via sh -c
> or some such. For example, source of Debian's shadow, containing
> /bin/login:
>=20
> libmisc/shell.c:80: execle (file, arg, (char *) 0, envp);
>=20
> I also tested this for real, and having a
>=20
> test:x:1001:1001:,,,:/home/test:/usr/bin/git-shell
>=20
> line works, and
>=20
> test:x:1001:1001:,,,:/home/test:/usr/bin/git shell
>=20
> just makes ssh loop asking for a password, logging
>=20
> "User test not allowed because shell /usr/bin/git shell does not exist"
>=20
> So, as far as I understand, as it currently is, "git shell" is utterly
> useless for what it was meant to do. Restoring "git-shell" will fix
> it.
>=20
> Makefile | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>=20
> diff --git a/Makefile b/Makefile
> index 53ab4b5..24d5809 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1351,7 +1351,7 @@ install: all
> $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(bindir_SQ)'
> $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
> $(INSTALL) $(ALL_PROGRAMS) '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
> - $(INSTALL) git$X git-upload-pack$X git-receive-pack$X git-upload-archiv=
e$X '$(DESTDIR_SQ)$(bindir_SQ)'
quoted text > + $(INSTALL) git$X git-upload-pack$X git-receive-pack$X git-upload-archiv=
e$X git-shell$X '$(DESTDIR_SQ)$(bindir_SQ)'
quoted text > $(MAKE) -C templates DESTDIR=3D'$(DESTDIR_SQ)' install
> $(MAKE) -C perl prefix=3D'$(prefix_SQ)' DESTDIR=3D'$(DESTDIR_SQ)' insta=
ll
quoted text > ifndef NO_TCLTK
> --=20
> 1.6.0.2.g2ebc0.dirty
--=20
ldv