Nice. With current HEAD and ./configure --with-socket-dir=/tmp/screen", I can get screen to build with only my pty patch above.
After that, I can run ./screen from the build directory with no issue. Surprisingly, once I `sudo make install`, I do get an error saying /tmp/screen must be owned by root. Once I chown it to be such, no more errors and the whole setup seems to work well. Pretty cool to be able to build something like screen on an a non-GNU system like OS X and have it work correctly with only some minor tweaks. On Tue, Apr 5, 2016 at 4:55 PM, Amadeusz Sławiński <am...@asmblr.net> wrote: > Hey, > > adding screen-users@gnu.org back to CC, because I lost it in last reply > > On Tue, 5 Apr 2016 14:36:44 -0400 > Dun Peal <dunpea...@gmail.com> wrote: > > > This did fix the issue. I then got an error: > > > > pty.c:42:10: error: 'pty.h' file not found with <angled> include; use > > "quotes" instead > > > > > > So I made the following patch: > > > > diff --git a/src/pty.c b/src/pty.c > > index ff13736..7881685 100644 > > --- a/src/pty.c > > +++ b/src/pty.c > > @@ -39,7 +39,7 @@ > > #include "screen.h" > > > > #include <sys/ioctl.h> > > -#include <pty.h> > > +#include "pty.h" > > > > /* > > * if no PTYRANGE[01] is in the config file, we pick a default > > > > Yeah, this should probably be detected in some way if it will work, > it's needed for openpty on linux/glibc systems. Will look more into it. > > > Which finally built the executable. Trying to launch it produced > > another error: > > > > $ ./screen > > Cannot make directory '/run/screen': No such file or directory > > > > You can use "./configure --with-socket-dir=/tmp/screen" to tell build > system where binary should place it sockets. > > > > > So I created `/run` and chowned it to my user. Then running screen > > worked except I still got an error: > > > > /etc/utmp: No such file or directory > > > > > > Then I did the following: > > > > > > sudo touch /etc/utmp > > > > Yup, that's a bug from utmp->utmpx refactoring, you shouldn't need to > make this directory. Pushed fix to master. > > > > > Now the screen I built seems to run with no errors, though I'm not > > sure whether all the steps I took (particularly the last 2) are > > technically sound, and maybe some are wrong in ways that will cause > > issues later down the road. > > Thanks for your reports. > > Amadeusz > > > > > > > On Tue, Apr 5, 2016 at 12:57 PM, Amadeusz Sławiński <am...@asmblr.net> > > wrote: > > > > > Hey, > > > > > > I pushed some changes to master, can you check now? > > > > > > Amadeusz > > > > > > On Mon, 4 Apr 2016 18:11:48 -0400 > > > Dun Peal <dunpea...@gmail.com> wrote: > > > > > > > Thanks, Amadeusz. As you instructed, I commented out the lines in > > > > utmp.c which referenced ut_exit (lines #384-385) and then ran make > > > > again. Unfortunately, it failed with a different error: > > > > > > > > $ make > > > > gcc -c -iquote. -DETCSCREENRC='"/usr/local/etc/screenrc"' > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g -O2 > > > > -Wall -Wextra -std=c11 utmp.c -o utmp.o > > > > utmp.c:358:21: warning: incompatible integer to pointer conversion > > > > passing 'slot_t' (aka 'int') to parameter of type 'const char > > > > *' [-Wint-conversion] strncpy(u.ut_line, slot, sizeof(u.ut_line)); > > > > ^~~~ > > > > > > > > /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/secure/_string.h:119:34: > > > > note: expanded from > > > > macro 'strncpy' > > > > __builtin___strncpy_chk (dest, src, len, __darwin_obsz (dest)) > > > > ^~~ > > > > utmp.c:363:58: warning: unused parameter > > > > 'host' [-Wunused-parameter] static int pututslot(slot_t slot, > > > > struct utmpx *u, char *host, Window *win) ^ > > > > utmp.c:363:72: warning: unused parameter > > > > 'win' [-Wunused-parameter] static int pututslot(slot_t slot, > > > > struct utmpx *u, char *host, Window *win) ^ > > > > utmp.c:406:9: warning: incompatible pointer to integer conversion > > > > returning 'char *' from a function with result type 'slot_t' (aka > > > > 'int') [-Wint-conversion] > > > > return stripdev(nam); > > > > ^~~~~~~~~~~~~ > > > > 4 warnings generated. > > > > gcc -c -iquote. -DETCSCREENRC='"/usr/local/etc/screenrc"' > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g -O2 > > > > -Wall -Wextra -std=c11 help.c -o help.o > > > > gcc -c -iquote. -DETCSCREENRC='"/usr/local/etc/screenrc"' > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g -O2 > > > > -Wall -Wextra -std=c11 termcap.c -o termcap.o > > > > gcc -c -iquote. -DETCSCREENRC='"/usr/local/etc/screenrc"' > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g -O2 > > > > -Wall -Wextra -std=c11 input.c -o input.o > > > > gcc -c -iquote. -DETCSCREENRC='"/usr/local/etc/screenrc"' > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g -O2 > > > > -Wall -Wextra -std=c11 attacher.c -o attacher.o > > > > attacher.c:457:14: error: use of undeclared identifier '_NSIG' > > > > void (*sigs[_NSIG - 1]) (int); > > > > ^ > > > > attacher.c:459:22: error: use of undeclared identifier '_NSIG' > > > > for (sig = 1; sig < _NSIG - 1; sig++) > > > > ^ > > > > attacher.c:467:22: error: use of undeclared identifier '_NSIG' > > > > for (sig = 1; sig < - 1; sig++) { > > > > ^ > > > > 3 errors generated. > > > > make: *** [attacher.o] Error 1 > > > > > > > > On Mon, Apr 4, 2016 at 3:38 PM, Amadeusz Sławiński > > > > <am...@asmblr.net> wrote: > > > > > > > > > Hey, > > > > > > > > > > soory for delay, ut_exit is GNU extension apparently not > > > > > supported by Mac OS X, can you try commenting out offending > > > > > lines? > > > > > > > > > > Amadeusz > > > > > > > > > > On Mon, 4 Apr 2016 14:59:05 -0400 > > > > > Dun Peal <dunpea...@gmail.com> wrote: > > > > > > > > > > > I'm trying to build Git HEAD of screen on OS X El Capital > > > > > > (latest version: 10.11.4) and getting the following error > > > > > > output - help appreciated: > > > > > > > > > > > > $ make > > > > > > AWK=gawk srcdir=. sh ./term.sh > > > > > > AWK=gawk CC="gcc -g -O2 -Wall -Wextra -std=c11" srcdir=. > > > > > > sh ./comm.sh gcc -c -iquote. > > > > > > -DETCSCREENRC='"/usr/local/etc/screenrc"' > > > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g > > > > > > -O2 -Wall -Wextra -std=c11 screen.c -o screen.o gcc -c > > > > > > -iquote. -DETCSCREENRC='"/usr/local/etc/screenrc"' > > > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g > > > > > > -O2 -Wall -Wextra -std=c11 ansi.c -o ansi.o gcc -c -iquote. > > > > > > -DETCSCREENRC='"/usr/local/etc/screenrc"' > > > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g > > > > > > -O2 -Wall -Wextra -std=c11 fileio.c -o fileio.o gcc -c > > > > > > -iquote. -DETCSCREENRC='"/usr/local/etc/screenrc"' > > > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g > > > > > > -O2 -Wall -Wextra -std=c11 mark.c -o mark.o gcc -c -iquote. > > > > > > -DETCSCREENRC='"/usr/local/etc/screenrc"' > > > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g > > > > > > -O2 -Wall -Wextra -std=c11 misc.c -o misc.o gcc -c -iquote. > > > > > > -DETCSCREENRC='"/usr/local/etc/screenrc"' > > > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g > > > > > > -O2 -Wall -Wextra -std=c11 resize.c -o resize.o gcc -c > > > > > > -iquote. -DETCSCREENRC='"/usr/local/etc/screenrc"' > > > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g > > > > > > -O2 -Wall -Wextra -std=c11 socket.c -o socket.o gcc -c > > > > > > -iquote. -DETCSCREENRC='"/usr/local/etc/screenrc"' > > > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g > > > > > > -O2 -Wall -Wextra -std=c11 search.c -o search.o gcc -c > > > > > > -iquote. -DETCSCREENRC='"/usr/local/etc/screenrc"' > > > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g > > > > > > -O2 -Wall -Wextra -std=c11 tty.c -o tty.o gcc -c -iquote. > > > > > > -DETCSCREENRC='"/usr/local/etc/screenrc"' > > > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g > > > > > > -O2 -Wall -Wextra -std=c11 term.c -o term.o gcc -c -iquote. > > > > > > -DETCSCREENRC='"/usr/local/etc/screenrc"' > > > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g > > > > > > -O2 -Wall -Wextra -std=c11 window.c -o window.o gcc -c > > > > > > -iquote. -DETCSCREENRC='"/usr/local/etc/screenrc"' > > > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g > > > > > > -O2 -Wall -Wextra -std=c11 utmp.c -o utmp.o utmp.c:358:21: > > > > > > warning: incompatible integer to pointer conversion passing > > > > > > 'slot_t' (aka 'int') to parameter of type 'const char > > > > > > *' [-Wint-conversion] strncpy(u.ut_line, slot, > > > > > > sizeof(u.ut_line)); ^~~~ > > > > > > > > > /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/secure/_string.h:119:34: > > > > > > note: expanded from macro 'strncpy' > > > > > > __builtin___strncpy_chk (dest, src, len, __darwin_obsz > > > > > > (dest)) ^~~ > > > > > > utmp.c:363:58: warning: unused parameter > > > > > > 'host' [-Wunused-parameter] static int pututslot(slot_t slot, > > > > > > struct utmpx *u, char *host, Window *win) ^ > > > > > > utmp.c:363:72: warning: unused parameter > > > > > > 'win' [-Wunused-parameter] static int pututslot(slot_t slot, > > > > > > struct utmpx *u, char *host, Window *win) ^ > > > > > > utmp.c:384:5: error: no member named 'ut_exit' in 'struct > > > > > > utmpx' u->ut_exit.e_termination = 0; > > > > > > ~ ^ > > > > > > utmp.c:385:5: error: no member named 'ut_exit' in 'struct > > > > > > utmpx' u->ut_exit.e_exit = 0; > > > > > > ~ ^ > > > > > > utmp.c:406:9: warning: incompatible pointer to integer > > > > > > conversion returning 'char *' from a function with result > > > > > > type 'slot_t' (aka 'int') [-Wint-conversion] > > > > > > return stripdev(nam); > > > > > > ^~~~~~~~~~~~~ > > > > > > 4 warnings and 2 errors generated. > > > > > > make: *** [utmp.o] Error 1 > > > > > > > > > > > > > > > _______________________________________________ > > > > > screen-users mailing list > > > > > screen-users@gnu.org > > > > > https://lists.gnu.org/mailman/listinfo/screen-users > > > > > > > > > > > > >
_______________________________________________ screen-users mailing list screen-users@gnu.org https://lists.gnu.org/mailman/listinfo/screen-users