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

Reply via email to