Open GoogleCodeExporter opened 9 years ago
I got the same error on OSX 10.4.11 PPC with Xcode 2.5.
Meantime, I run shellinaboxd under Linux and from there I can ssh to my PPC
box.
To see if I could indeed build shellinaboxd successfully under OSX PPC, I first
hacked the alias in logging.c to get past the error at line 183, but then make
failed as it was unable to find the objcopy program. This is a part of
binutils and it is used within the shellinabox Makefile to create binary
objects from 9 or so different resource files including beep.wav, .css,
cgi_root.html, etc. These files are also edited using sed to change default
binary symbol names from "_binary etc." to things like rootStart and rootEnd
referenced in shellinaboxd.c. About the last thing the Makefile does is to link
all these objects together.
I installed binutils and was able to hack the Makefile to get it to run objcopy
and produce binaries for powerpc/Mach-O (Linux uses i386/ELF), but then the
final link then fails because of ..
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: shellinabox/cgi_root.o
undefined symbol 0 (NULL name) can't be a weak definition
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: shellinabox/root_page.o
undefined symbol 0 (NULL name) can't be a weak definition
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: shellinabox/vt100.o undefined
symbol 0 (NULL name) can't be a weak definition
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: shellinabox/shell_in_a_box.o
undefined symbol 0 (NULL name) can't be a weak definition
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: shellinabox/styles.o undefined
symbol 0 (NULL name) can't be a weak definition
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: shellinabox/print-styles.o
undefined symbol 0 (NULL name) can't be a weak definition
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: shellinabox/enabled.o
undefined symbol 0 (NULL name) can't be a weak definition
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: shellinabox/favicon.o
undefined symbol 0 (NULL name) can't be a weak definition
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: shellinabox/beep.o undefined
symbol 0 (NULL name) can't be a weak definition
I have tried to work around this, but Mach assumes any symbol with a zero value
to be unresolved and so all the "Start" symbols are undefined.
I was able to build shellinaboxd by changing LDFLAGS in the Makefile to ignore
the undefined symbols, but then execution fails ..
dyld: Symbol not found: _cgiRootStart
Referenced from: /Users/mcook/Temp/shellinabox-2.10/shellinabox-2.10/./shellinaboxd
Expected in: dynamic lookup
I'm still looking into how I might be able work around that, with a view to
recommending changes to `configure` as invited in the INSTALL file.
The README file does not contain an e-mail address as stated in INSTALL.
I accumulated a lot of notes about what I did to get this far if anyone else is
working on it. The above is the short version, but you can let me know if you
would like more details.
Original comment by m06orama@gmail.com
on 28 Sep 2010 at 11:53
I just made two changes that should address the problems that you have been
reporting. Let me know if this helps you make a little more progress trying to
compile on MacOS X.
Original comment by zod...@gmail.com
on 29 Sep 2010 at 2:20
I grabbed this latest version, and things go well except for:
shellinabox/launcher.c:1404: error: ‘PAM_DATA_SILENT’ undeclared (first use
in this function)
I removed its one usage just for the sake of attempting to move on. Next, I
discovered that apparently OSX does not have the
setresuid/getresuid/getresuid/getresguid functions:
...
shellinabox/launcher.c:535: warning: implicit declaration of function
‘getresuid’
...
Lots of lines like this sprinkled about, and then linker errors at the end of
course.
Again, just for the sake of moving on quickly I made wrapper functions (like
int fakeGetresuid(...)) in privileges.c and used the standard
getuid/geteuid/setuid/seteuid functions to implement them. After switching to
these, shellinabox compiles and runs* on OSX.
*However, on the browser side I see random backslashes (\) inserted all over
the place in the actual response text, and so Safari is mighty confused and
shellinaboxd is not yet useful. I built with my changes in Linux and it still
works fine there.
So in summary, your changes do seem to have helped a lot -- we seem close.
Thanks!
Original comment by tmcre...@gmail.com
on 29 Sep 2010 at 5:46
Try again and let me know if this is any better now.
Original comment by zod...@gmail.com
on 29 Sep 2010 at 6:42
Now it builds cleanly from a fresh checkout, but the problem with backslashes
remains. I've attached what I get if I go to http://myhost:shellinaboxport/ and
then right-click and view the page source. The browser renders:
\\ <\head> Shell In A B\ox <\script type="tex\t/javascript">\ \
(I'm starting the server with "./shellinaboxd -t -d".) I don't see any
complaints on stderr/stdout.
Original comment by tmcre...@gmail.com
on 29 Sep 2010 at 6:56
Attachments:
That sounds a little bit as if your version of sed or make is incompatible with
what the build scripts are trying to do. If you can, try to use the GNU version
of these tools. I'll think about it some more and see if I can find a solution
for you.
Original comment by zod...@gmail.com
on 29 Sep 2010 at 7:01
Ah, I should mention that as a new OSX user I have lots of GNU versions of
things installed in /opt/local/bin, and in retrospect the configure script was
already using /opt/local/bin/gsed. OSX uses GNU Make 3.8.1 by default.
Thanks for the help.
Original comment by tmcre...@gmail.com
on 29 Sep 2010 at 7:28
I got the new version and then a clean configure and make but ..
.. http://127.0.0.1:400 .. gets ..
\ \ <\head> Shell In A B\ox <\script type="tex\t/javascript">\ \
Checking my sed likewise .. I am also a Fink user .. I have no "gsed" .. but
this is OSX 10.4.11 PPC and sed manual page is dated July 2004.
I looked into updating GNU tools sed and make ..
Reran configure .. get various warnings in make (see below) .. then unable to
connect to shellinaboxd, all as follows:
.. After updating sed to 4.2.1-1 ..
.. After updating make to 3.81-2 from 3.79.1-3 ..
.. did a clean svn checkout, then ./configure then make ..
.. separate logs for each attached ..
make gave these errors ..
shellinabox/launcher.c: In function 'internalLogin':
shellinabox/launcher.c:1043: warning: pointer targets in passing argument 3 of
'getgrouplist' differ in signedness
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions
of symbol _parseUser
privileges.o definition of _parseUser in section (__TEXT,__text)
/usr/lib/gcc/powerpc-apple-darwin8/4.0.1/../../../libSystem.dylib(getpwent.o)
definition of _parseUser
.. and ./shellinaboxd -t -t .. gets ..
Safari can??~@?~Yt open the page.
Safari can??~@?~Yt open the page ??~@?~\http://192.168.2.106:4200/??~@?~]. The
error is: ??~@?~\bad server response??~@?~] (NSURLErrorDomain:-11
011) Please choose Safari > Report Bugs to Apple, note the error number, and
describe what you did before you saw this message.
.. using http://127.0.0.1:4200, then using 192.168.2.106, then mona.local ..
Command line: ./shellinaboxd -t -d
Listening on port 4200
Accepted connection from localhost:58531
Handling "GET" "/"
Compressed response from 5302 to 2584
localhost - - [29/Sep/2010:04:16:47 -0500] "GET / HTTP/1.1" 200 2677
Closing connection to localhost:58531
Accepted connection from mona:58536
Handling "GET" "/"
Compressed response from 5302 to 2584
mona - - [29/Sep/2010:04:17:06 -0500] "GET / HTTP/1.1" 200 2677
Closing connection to mona:58536
Accepted connection from mona:58537Handling "GET" "/"
Compressed response from 5302 to 2584
mona - - [29/Sep/2010:04:17:25 -0500] "GET / HTTP/1.1" 200 2677
Closing connection to mona:58537
No sign of any other errors in console or system logs.
Original comment by m06orama@gmail.com
on 29 Sep 2010 at 9:38
Attachments:
Well, after all that I found that Firefox and Chrome still connect locally or
from another host but I still get the slashes as before ..
\ \ <\head> Shell In A B\ox <\script type="tex\t/javascript">\ \
It's only Safari Version 4.1.2 (4533.18.5) that gets it's connection closed.
Original comment by m06orama@gmail.com
on 29 Sep 2010 at 9:55
Please take another look and let me know if you still see error (or even just
warning) messages. Thanks.
Original comment by zod...@gmail.com
on 29 Sep 2010 at 4:48
I checked out rev 233.
Got a make warning about needing autoconf 1.11 .. installed it.
Redid checkout .. clean ./configure and make .. ./shellinaboxd -t -d .. on
connection from Firefox 3.6.10 on OSX 10.4.11 PPC (build system) says ..
Command line: ./shellinaboxd -t -d
Listening on port 4200
Accepted connection from localhost:59007
Handling "GET" "/"
Compressed response from 4967 to 2124
localhost - - [29/Sep/2010:13:32:12 -0500] "GET / HTTP/1.1" 200 2217
Accepted connection from localhost:59008
Handling "GET" "/styles.css"
Compressed response from 7315 to 1515
localhost - - [29/Sep/2010:13:32:13 -0500] "GET /styles.css HTTP/1.1" 200 1647
Handling "GET" "/ShellInABox.js"
Compressed response from 186894 to 42052
localhost - - [29/Sep/2010:13:32:13 -0500] "GET /ShellInABox.js HTTP/1.1" 200
42167
Accepted connection from localhost:59009
Handling "GET" "/keyboard.png"
localhost - - [29/Sep/2010:13:32:13 -0500] "GET /keyboard.png HTTP/1.1" 200 873
Handling "GET" "/keyboard.html"
Compressed response from 3181 to 801
localhost - - [29/Sep/2010:13:32:13 -0500] "GET /keyboard.html HTTP/1.1" 200 893
Handling "GET" "/beep.wav"
localhost - - [29/Sep/2010:13:32:13 -0500] "GET /beep.wav HTTP/1.1" 200 911
Handling "POST" "/?"
Creating a new session: K//qS-it/kzS19ekKzdBIg
Check failed at shellinabox/launcher.c:473 in launchChild(): bytes ==
sizeof(pid)
On connection from Ubuntu 10.4.1 Firefox 3.6.10 it says ...
Command line: ./shellinaboxd -t -d
Listening on port 4200
Accepted connection from cara:33348
Handling "GET" "/"
Compressed response from 4967 to 2124
cara - - [29/Sep/2010:13:38:28 -0500] "GET / HTTP/1.1" 200 2217
Handling "GET" "/styles.css"
Compressed response from 7315 to 1515
cara - - [29/Sep/2010:13:38:28 -0500] "GET /styles.css HTTP/1.1" 200 1647
Handling "GET" "/ShellInABox.js"
Compressed response from 186894 to 42052
cara - - [29/Sep/2010:13:38:28 -0500] "GET /ShellInABox.js HTTP/1.1" 200 42167
Handling "GET" "/keyboard.png"
cara - - [29/Sep/2010:13:38:29 -0500] "GET /keyboard.png HTTP/1.1" 200 873
Handling "GET" "/keyboard.html"
Compressed response from 3181 to 801
cara - - [29/Sep/2010:13:38:29 -0500] "GET /keyboard.html HTTP/1.1" 200 893
Handling "GET" "/beep.wav"
cara - - [29/Sep/2010:13:38:29 -0500] "GET /beep.wav HTTP/1.1" 200 911
Handling "GET" "/beep.wav"
cara - - [29/Sep/2010:13:38:29 -0500] "GET /beep.wav HTTP/1.1" 200 911
Handling "POST" "/?"
Creating a new session: vao14f0wNzXF2hkdRhtbEw
Check failed at shellinabox/launcher.c:473 in launchChild(): bytes ==
sizeof(pid)
On connection from Ubuntu 10.4.1 and Chrome 6.0.472 (57914) .. it says ..
Command line: ./shellinaboxd -t -d
Listening on port 4200
Accepted connection from cara:56849
Handling "GET" "/"
Compressed response from 4967 to 2124
cara - - [29/Sep/2010:13:43:12 -0500] "GET / HTTP/1.1" 200 2217
Handling "GET" "/styles.css"
Compressed response from 7315 to 1515
cara - - [29/Sep/2010:13:43:12 -0500] "GET /styles.css HTTP/1.1" 200 1647
Accepted connection from cara:56850
Handling "GET" "/ShellInABox.js"
Compressed response from 186894 to 42052
cara - - [29/Sep/2010:13:43:12 -0500] "GET /ShellInABox.js HTTP/1.1" 200 42167
Handling "GET" "/favicon.ico"
Compressed response from 2307 to 1983
cara - - [29/Sep/2010:13:43:13 -0500] "GET /favicon.ico HTTP/1.1" 200 2079
Handling "GET" "/keyboard.png"
cara - - [29/Sep/2010:13:43:13 -0500] "GET /keyboard.png HTTP/1.1" 200 873
Handling "GET" "/keyboard.html"
Compressed response from 3181 to 801
cara - - [29/Sep/2010:13:43:13 -0500] "GET /keyboard.html HTTP/1.1" 200 893
Handling "POST" "/?"
Creating a new session: g/Mizr5NhDZTmemOuYw78Q
Check failed at shellinabox/launcher.c:473 in launchChild(): bytes ==
sizeof(pid).
I also checked out the new rev 233 on Ubuntu 10.4.1 .. ./configure and make
were clean (tho' also suggesting update to autoconf 1.11 plus autoconf and
autoheader) .. but shellinaboxd runs OK and I can connect from both Ubuntu and
OSX Safari successfully as expected.
I'm not sure that we really care that much if shellinabox will build on OSX PPC
10.4.11 'cos it's so old .. tmcreech is probably on an Intel Mac with more
up-to-date OSX .. but I'm happy to keep working on this if you think it's
worthwhile.
Original comment by m06orama@gmail.com
on 29 Sep 2010 at 7:12
I have a few ideas of what might be going wrong, and if everything else fails,
I'll add some extra debugging messages to the code.
But it might be easier to figure this out, if you could get me a trace of the
system calls that shellinaboxd is making. Do you have access to "strace" or
"truss"? If so, could you run it with arguments to follow child processes, and
ideally, could you tell if to not truncate strings and other arguments more
than necessary?
Let me know, if this isn't something you can easily do, and I'll figure out
some other way to debug the problem.
As you rightly guessed, OSX PPC is not a particularly high priority. But
anything that helps me remove platform incompatibilities is generally a good
idea -- it tends to make the code more robust overall.
Original comment by zod...@gmail.com
on 29 Sep 2010 at 7:32
Looking into strace and truss .. OSX 10.4 has no strace or truss but it does
have ktrace and kdump instead, whereas OSX 10.5 and 10.6 have s.t. newer/better
called dtrace.
Looking into the privileges required for ktrace on my system since ..
ktrace -t cnisuw ./shellinaboxd -t -d .. (run as root, all the trace options)
says ..
Command line: ./shellinaboxd -t -d
Check failed at shellinabox/privileges.c:155 in lowerPrivileges():
!setresuid(n, n, -1)
Listening on port 4200
Check failed at shellinabox/privileges.c:181 in dropPrivileges(): !setresuid(n,
n, n)
This happened immediately. I still got a ktrace.out, and I've formatted it for
you as kdump.1.txt attached.
I'm still trying to find out more about ktrace options as there are several and
maybe one would help bypass the exception.
Original comment by m06orama@gmail.com
on 29 Sep 2010 at 9:51
Attachments:
Sorry, the file I uploaded seems to be mostly junk when viewed from
code.google.com .. I think I messed up .. backtracking.
Original comment by m06orama@gmail.com
on 29 Sep 2010 at 9:59
Yepp, I am a little puzzled by the trace. It shows that the check in line 181
failed, but I don't see any attempt at actually setting the user id. So, I
don't quite know what is failing.
Maybe, your machine doesn't have a "nobody" user? Could you try to print out
the value of "n" after calling 'getUserId("nobody")' ?
This should be pretty benign code. We shouldn't fail in this place. But if we
do, I'd like to know why MacOS X doesn't like what we are doing.
Original comment by zod...@gmail.com
on 29 Sep 2010 at 10:03
OK, this should be better .. see file kdump.3.out from this session .. no
special permissions required and no program check.
Command line: ./shellinaboxd -t -d
Listening on port 4200
Accepted connection from localhost:59492
Handling "GET" "/"
Compressed response from 4967 to 2124
localhost - - [29/Sep/2010:17:15:24 -0500] "GET / HTTP/1.1" 200 2217
Handling "GET" "/styles.css"
Compressed response from 7315 to 1515
localhost - - [29/Sep/2010:17:15:24 -0500] "GET /styles.css HTTP/1.1" 200 1647
Accepted connection from localhost:59493
Handling "GET" "/ShellInABox.js"
Compressed response from 186894 to 42052
localhost - - [29/Sep/2010:17:15:24 -0500] "GET /ShellInABox.js HTTP/1.1" 200
42167
Handling "GET" "/keyboard.html"
Compressed response from 3181 to 801
localhost - - [29/Sep/2010:17:15:24 -0500] "GET /keyboard.html HTTP/1.1" 200 893
Accepted connection from localhost:59494
Handling "GET" "/keyboard.png"
localhost - - [29/Sep/2010:17:15:25 -0500] "GET /keyboard.png HTTP/1.1" 200 873
Handling "GET" "/beep.wav"
localhost - - [29/Sep/2010:17:15:25 -0500] "GET /beep.wav HTTP/1.1" 200 911
Handling "POST" "/?"
Creating a new session: XRO1zwIVOijwyFmUJqgM4g
Check failed at shellinabox/launcher.c:473 in launchChild(): bytes ==
sizeof(pid)
Original comment by m06orama@gmail.com
on 29 Sep 2010 at 10:27
Attachments:
This trace file does not appear to traverse through child processes. I can now
see that we receive an end-of-file condition on the file descriptor that we use
for talking to the child process. But I can't tell whether that is because the
child process died, or because of any other unexpected reason.
Original comment by zod...@gmail.com
on 29 Sep 2010 at 10:43
My bad .. I missed a flag.
The previous trace was ktrace -t cnisuw ./shellinabox -t -d
Redid it with ktrace -d -i -t cnisuw -f ktrace.5.out ./shellinaboxd -t -d
The flags are:
-d Descendants; perform the operation for all current children of
the designated processes.
-i Inherit; pass the trace flags to all future children of the des-
ignated processes.
-t trstr
The string argument represents the kernel trace points, one per
letter. The following table equates the letters with the trace-
points:
c trace system calls
n trace namei translations
i trace I/O
s trace signal processing
u userland traces
w context switches
Messages for this session are in ktrace.5.session.txt attached, with the trace
dump in kdump.5.txt.
It shows more stuff including .. "Check failed at shellinabox/launcher.c:500 in
initUtmp(): !strncmp(ptyPath, "/dev/pts", 8)".
Over to you,
Original comment by m06orama@gmail.com
on 30 Sep 2010 at 7:24
Attachments:
Thanks. That was quite helpful. I guess, you are the first person to try using
a system that doesn't have Unix 98 pseudo terminals. But this was clearly a bug
in my code. I relaxed the check a little bit and it should make more progress.
Let me know, how it goes.
Original comment by zod...@gmail.com
on 30 Sep 2010 at 3:54
OK, I got Rev 264 and now I am getting ..
utmp_update: Current user `ecloco' does not match `' in utmpx entry
Same thing with different users both from OSX and Ubuntu. I tried running
shellinanboxd AND trying to log in to SIAB with different users 'cos I have my
regular ID's ssh set up to log in automagically (i.e. to not ask for password).
See ktrace.7.session.txt and kdump.7.txt attached.
Original comment by m06orama@gmail.com
on 30 Sep 2010 at 6:37
Attachments:
I meant your Rev 234 of course.
Reading up on "Unix 98 pseudo terminal" (rather than BSD), I also tried running
SIAB from iTerm but I got the same results, so you must mean that the problem
is with OSX's pseudo terminal support server side: OSX 10.4 PPC has /dev/tty's
and /dev/pty's, whereas Ubuntu has /dev/pts/n's.
I don't know for sure that OSX Intel (10.5 or 10.6) is any different, but Mac
OS X v10.5 "Leopard", released on October 26, 2007, is an Open Brand UNIX 03
registered product when run on Intel processors, also an Open Brand UNIX 03
Registered Product, conforming to the SUSv3 and POSIX 1003.1 specifications for
the C API, Shell Utilities, and Threads.
Original comment by m06orama@gmail.com
on 30 Sep 2010 at 8:44
OK. Give it another try.
Original comment by zod...@gmail.com
on 30 Sep 2010 at 9:53
Got Rev 235
Upgraded to autoconf 2.65-2 via Fink, due to warning: "aclocal.m4:16: warning:
this file was generated for autoconf 2.65."
Different results between OSX and Ubuntu clients this time:
0) OSX (localhost) Safari client dies as before.
1) OSX Firefox client goes straight to "Session closed" as before:-
Handling "POST" "/?"
Failed to find session: y/6VB-GJD7MwF2IV6aYyUw
localhost - - [30/Sep/2010:22:37:41 -0500] "POST /? HTTP/1.1" 400 458
Closing connection to localhost:62112
2) Ubuntu (host name "cara") Firefox client ..
SIAB seemed to hang right after this ..
Handling "POST" "/?"
Creating a new session: nltiT-PSJhS92rBln/-7BQ
I hit Ctrl-C but it ignored it ..
I attempted to reconnect from Ubuntu web client, see nothing in the browser,
and then it says on the console ..
^CShutting down server
Closing connection to localhost:62110
Closing connection to localhost:62111
Closing connection to cara:43284
Creating a new session: qrvWzonX3EZcBPDGwJog2Q
Check failed at shellinabox/launcher.c:549 in launchChild(): bytes ==
sizeof(pid)
Files ktrace.session.A.txt (including annotations to the console log) and
kdump.A.txt are attached.
Original comment by m06orama@gmail.com
on 1 Oct 2010 at 5:06
Attachments:
I am definitely getting a little frustrated with MacOS X. It seems that their
support for standard UNIX-style APIs is somewhat buggy. I just checked in
another attempt at fixing some of the problems.
Please also note that I found some suggestions that "/usr/bin/login" on MacOS X
is not quite working correctly. You might have to remove the "pam_launchd.so"
entry from your "/etc/pam.d/login" file, if you want to use LOGIN for your
service definition.
This is probably not an ideal solution, but I am not sufficiently familiar with
Macs to suggest an alternative.
Original comment by zod...@gmail.com
on 2 Oct 2010 at 2:24
OK, we seem to be getting closer with Rev 236 as I got prompted for a login the
first time, before getting a total system hang. See kdump.C.txt nevertheless.
I lost the console messages from this run. But there's more...
File ktrace.D2.session.txt includes the messages from my second run for which I
got no prompt and no dump was produced even tho' the system didn't hang. Here
I included the text of my /etc/pam.d/login on OSX: that line
("pam_launchd.so") is not present. However, read on...
Seized with a fit of enthusiasm, I retried once more without trace and got
similar to the first time but this time no hang. This was session "E".
Lastly, I did a fourth run, and this time was able to log in to OSX but then
the console froze at the command prompt. However, I went over to Ubuntu and was
able to get a complete ssh session, run some commands, and then log out
normally. This was session "F".
After a couple of retries I wasn't getting any further with that. We got a
gigantic dump from this session - see kdump.F.txt and my ktrace.F.session.log
with all the console messages and various annotations.
So, it's working at last - congratulations!
Let me know if you want to test some more of course.
Original comment by m06orama@gmail.com
on 2 Oct 2010 at 5:47
Attachments:
I tried it again with Ubuntu/Chrome and this time was able to get 2 complete
sessions, tho' Ubuntu/FF didn't want to connect at all and thereafter Chrome
neither.
Didn't try it with OSX FF client (no Chrome for PPC).
Session and dump attached in case they will also be useful at this stage.
Original comment by m06orama@gmail.com
on 2 Oct 2010 at 6:08
Attachments:
Just FYI: I'm on 10.6.4, and at least as of 236 many things are looking much
better.
The default "login" service works fine, and "--service=ssh:SSH:$HOSTNAME" also
works well for me. (This is without any modifications to OSX.)
However, something like
"--service=ncmpcpp:tcreech:staff:HOME:/opt/local/bin/ncmpcpp" fails with
"""
Failed to load PAM support. Could not find "pam_acct_mgmt"
Loaded PAM suppport
"""
...and then the browser just says "session closed" immediately.
But still, with both SSH and LOGIN services working, I'm very pleased. Thanks!
Original comment by tmcre...@gmail.com
on 2 Oct 2010 at 6:45
Trying to get a more consistent feel for how it's behaving, I ran several other
tests with Rev 236. I have some outputs but you might not need 'em at this
stage. Just let me know if you do, tho'.
- Session H .. 2 consecutive successful logins from OSX FF (no Chrome), then no prompt right after "Window size changed to 100x45" which I've seen a few times. Didn't try Ubuntu FF or Chrome clients in this session.
- Session I .. Ubuntu FF .. one good session . then no prompt right after these messages ..
Handling "POST" "/?"
Creating a new session: xsXWbdAqaPasnv2X6RW-oQ
Window size changed to 110x43.
- Session J .. attempt to login twice concurrently from Ubuntu:
- first session (FF) gets as far as my entering user name.
- 2nd session (Chrome) just gives me a prompt and then will not respond.
On return to OSX (other side of KVM) the system is hung (or at least the keyboard is locked) and I have to reboot, so the actual session log was lost.
- Session K .. action reply identical with Session J.
Original comment by m06orama@gmail.com
on 2 Oct 2010 at 1:13
I just fixed the "Failed to load ... / Loaded" message. That's certainly
confusing, although it was really just cosmetic. It didn't affect actual
functionality. PAM support was never loaded in this situation.
You might have better luck on MacOS X, if you ran the "configure" script with
the "--disable-runtime-loading" option, as it appears that run-time loading of
PAM isn't working for you anyway.
But none of that explains why you cannot run an arbitrary program as a service.
That should always succeed. Can you double-check that all the parameters are
correct? Maybe, try running something simpler first (e.g. "/bin/sh")?
Original comment by zod...@gmail.com
on 2 Oct 2010 at 6:12
Michael, I am still flabbergasted how ShellInABox (a pretty benign user-space
application) could possibly make your entire machine crash. I am not sure I'll
ever be able to figure that out without being able to reproduce it locally.
But your dump of all the call traces did at least help point towards a pretty
bad bug that I introduced in the server mainloop a good while ago. It resulted
in the server a) using a lot more CPU than it should, and b) users being unable
to CTRL-C long-running applications. It might also explain some of the other
bugs that people reported, such as Emacs sometimes getting really slow.
It was reasonably straight-forward to fix, once I had developed a good
working-theory as to what was going on. Although initially, I just stared at
your trace files in disbelieve :-)
Original comment by zod...@gmail.com
on 2 Oct 2010 at 11:47
I think most of my alleged "system hangs" were just the keyboard being locked
due to my old KVM switch. It does that sometimes, altho' with "session C" I'm
pretty sure I couldn't do a regular ssh in from Ubuntu to OSX, so I assumed the
app was looping.
With Rev 239, I got the same results for sessions L and M as follows:
- Session L from OSX FF .. I connect and get 1 good session only .. type exit .. get "Session closed" .. hit "Connect" button, then nothing.
- Session M from Ubuntu Chrome .. same thing.
Console messages and trace dump for session L are attached.
I recompiled with "--disable-runtime-loading" and got the same results as in
session L.
Original comment by m06orama@gmail.com
on 3 Oct 2010 at 3:34
Attachments:
Actually, with when I ./configure with --disable-runtime-loading, I get an
warnings and errors in "make".
I've attached my run of "./configure --disable-runtime-loading" and "make" in
case this is interesting.
On the other hand, if I copy verbatim the service description that was failing
for me earlier and use that again, it seems to work. (The default service works
well.) I randomly chose r234, and the same service description fails at least
there.
So in summary, I think the most common functionality is working for me in 239
on 10.6.4. I tested the default service on a vanilla 10.5.8 Intel iMac and it
worked well there as well.
Original comment by tmcre...@gmail.com
on 4 Oct 2010 at 2:54
Attachments:
[deleted comment]
Can't compile on Lion. Get the following error on make:
shellinabox/externalfile.c:63:1: warning: "strncat" redefined
In file included from /usr/include/string.h:190,
from shellinabox/externalfile.c:51:
/usr/include/secure/_string.h:146:1: warning: this is the location of the
previous definition
mv -f .deps/externalfile.Tpo .deps/externalfile.Po
gcc -DHAVE_CONFIG_H -I. -g -std=gnu99 -Wall -Os -MT launcher.o -MD -MP -MF
.deps/launcher.Tpo -c -o launcher.o `test -f 'shellinabox/launcher.c' || echo
'./'`shellinabox/launcher.c
shellinabox/launcher.c:114:1: warning: "strncat" redefined
In file included from /usr/include/string.h:190,
from shellinabox/launcher.c:61:
/usr/include/secure/_string.h:146:1: warning: this is the location of the
previous definition
shellinabox/launcher.c: In function ‘launcherDaemon’:
shellinabox/launcher.c:1664: error: variable-sized object may not be initialized
shellinabox/launcher.c:1664: warning: excess elements in array initializer
shellinabox/launcher.c:1664: warning: (near initialization for ‘cmsg_buf’)
make[1]: *** [launcher.o] Error 1
make: *** [all] Error 2
Original comment by opti...@gmail.com
on 9 Sep 2011 at 4:17
Just looking at this error a little more, the fix is easy for lion. Change
line 1664 to:
char cmsg_buf[CMSG_SPACE(sizeof(int))];
And you should be able to get it to compile.
Original comment by jhaya...@gmail.com
on 15 Jan 2012 at 9:51
While it seems there's little activity here, I am getting similar kinds of
problems. ./configure runs fine, but make gets upset.
The output of configure with an answer of no is:
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking whether we are cross compiling... no
checking for gcc option to accept ISO C89... none needed
checking for a sed that does not truncate output... /opt/local/bin/gsed
checking if the linker (/usr/libexec/gcc/powerpc-apple-darwin9/4.0.1/ld) is GNU
ld... no
checking for objdump... no
checking for otool64... no
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fno-common -DPIC
checking if gcc PIC flag -fno-common -DPIC works... yes
checking if gcc static flag -static works... no
checking whether gcc needs -traditional... no
checking libutil.h usability... no
checking libutil.h presence... no
checking for libutil.h... no
checking pty.h usability... no
checking pty.h presence... no
checking for pty.h... no
checking sys/prctl.h usability... no
checking sys/prctl.h presence... no
checking for sys/prctl.h... no
make all-am
/bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -g
-std=gnu99 -Wall -Os -MT logging.lo -MD -MP -MF .deps/logging.Tpo -c -o
logging.lo `test -f 'logging/logging.c' || echo './'`logging/logging.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -g -std=gnu99 -Wall -Os -MT
logging.lo -MD -MP -MF .deps/logging.Tpo -c logging/logging.c -fno-common
-DPIC -o .libs/logging.o
logging/logging.c:183: error: only weak aliases are supported in this
configuration
make[1]: *** [logging.lo] Error 1
make: *** [all] Error 2
Original comment by squiduly...@gmail.com
on 20 Jan 2012 at 11:53
Hi!
I'm running OSX 10.8 Mountain Lion. I checked out the latest SVN build and
applied jhaya's fix (comment 35). It works perfectly (with Chrome as a
frontend)! Super cool!
Original comment by lukas.ha...@spaceship.io
on 20 Mar 2012 at 4:00
Applied compatible change from comment 35. Patches welcome.
Original comment by beewoo...@gmail.com
on 31 Mar 2012 at 7:34
Just built on OSX 10.9 Mavericks, and it built and installed just fine, out of
the box, no changes required.
Original comment by Simon.Br...@gmail.com
on 4 Apr 2014 at 3:34
This issue should be closed. It is easy to install now.
The easiest option is to use homebrew.
brew install shellinabox
Original comment by spkan...@gmail.com
on 24 Jul 2014 at 11:52
Original issue reported on code.google.com by
mh.in.en...@gmail.com
on 24 Jan 2010 at 4:25