On 18 Nov 1998, Niels M�ller wrote:
> I just managed to log in my test user using lsh.
>
> [nisse@puck lsh]$ ./lsh -l lsh -p 4711 puck
> Password for lsh:
> User authentication successful.
> uid=500(nisse) gid=500(nisse) groups=500(nisse),300(local)
> [nisse@puck lsh]$
>
> A new snapshot is available at
> http://www.lysator.liu.se/~nisse/archive/lsh-snapshot-19981118.tar.gz
>
> Naturally, this version is not fully working; I tried to log in using
> my real id (which has a real shell, not /bin/id as login shell), but
> that didn't quite work. And there's still no security; key management
> and secure random numbers are non-existant. Nevertheless, I think it's
> approaching a state where you could actually play a little with it and
> try to hack on it.
>
> To build it, you'll need autoconf, GNU-make, bash, gcc and gperf. If
> you're lucky
And gmp...
>
> autoconf; ./configure; make
A lot of .d files seem to be missing from the snapshot (lsh-19981118),
also there is no config.h.in there.
I deleted all .d files and remade them like this
make `for a in *.c; do echo ${a%.c}.d; done`
(also did the same in the lib dir)
Then I got this compilation failure:
atoms_gperf.c:58: conflicting types for `gperf_atom'
atoms.c:36: previous declaration of `gperf_atom'
This looks like auto-generated code from gperf. I manually patched it to
return a struct atom_assoc * instead..
I faked a config.h.in that looks like this:
#define SIZEOF_SHORT 1
#define SIZEOF_INT 1
#define SIZEOF_LONG 1
#undef HAVE_FCNTL_H
#undef HAVE_STRINGS_H
#undef HAVE_SYS_TIME_H
#undef HAVE_UNISTD_H
#undef HAVE_GMP_H
#undef HAVE_ALLOCA
#undef HAVE_VPRINTF
#undef HAVE_SELECT
#undef HAVE_SOCKET
#undef HAVE_STRERROR
#undef HAVE_STRTOL
After this it compiled, but both lsh and lshd died with assertion failures
in in make_linear_alist (possibly because i hadn't installed any config
files?):
lsh: alist.c:103: make_linear_alist: Assertion `(args = (__gnuc_va_list)
((char *) (args) + (((sizeof ( int) + sizeof (int) - 1) / sizeof (int)) *
sizeof (int))), *(( int *) (void *) ((char *) (args) - (((sizeof ( int) +
sizeof (int) - 1) / sizeof (int)) * sizeof (int))))) == -1' failed.
Aborted
- Finn Arne