diff options
author | Cy Schubert <cy@FreeBSD.org> | 2023-07-18 14:10:12 +0000 |
---|---|---|
committer | Cy Schubert <cy@FreeBSD.org> | 2023-07-18 14:56:40 +0000 |
commit | 5ba8ffefe59e7d478164fcacaae5e5aa720c402c (patch) | |
tree | 21ddbda44c8683e1fd551ca752a7351426aa62d4 | |
parent | 1c0793dfc4acf952d7195a114b342d7118d73e5c (diff) | |
download | ports-5ba8ffefe59e7d478164fcacaae5e5aa720c402c.tar.gz ports-5ba8ffefe59e7d478164fcacaae5e5aa720c402c.zip |
mail/xmail: Fix pty handling
Modernize to work with openpty(). Else we get this:
Error: xmail cannot open master/slave pipe connection
MFH: 2023Q3
-rw-r--r-- | mail/xmail/Makefile | 2 | ||||
-rw-r--r-- | mail/xmail/files/patch-Imakefile | 6 | ||||
-rw-r--r-- | mail/xmail/files/patch-callMail.c | 50 |
3 files changed, 48 insertions, 10 deletions
diff --git a/mail/xmail/Makefile b/mail/xmail/Makefile index 2b2d48a81e30..092e307b2878 100644 --- a/mail/xmail/Makefile +++ b/mail/xmail/Makefile @@ -14,7 +14,7 @@ LICENSE_FILE= ${WRKSRC}/COPYRIGHT USES= imake xorg USE_XORG= ice sm x11 xaw xbitmaps xext xmu xpm xt -CFLAGS+= -Wno-incompatible-function-pointer-types +CFLAGS+= -Wno-incompatible-function-pointer-types -lutil post-patch: # Fix the build with -fno-common (for Clang 11 and GCC 10) diff --git a/mail/xmail/files/patch-Imakefile b/mail/xmail/files/patch-Imakefile index fd65a954a33a..fb417e91b9bd 100644 --- a/mail/xmail/files/patch-Imakefile +++ b/mail/xmail/files/patch-Imakefile @@ -1,5 +1,5 @@ ---- Imakefile.orig Mon Jan 30 22:41:47 1995 -+++ Imakefile Wed Oct 15 09:52:37 2003 +--- Imakefile.orig 1995-01-30 13:41:47.000000000 -0800 ++++ Imakefile 2023-07-18 07:06:05.053673000 -0700 @@ -1,63 +1,62 @@ -/* */# -/* */# @(#)Imakefile - for xmail version 1 patchlevel 5 @@ -103,7 +103,7 @@ DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB) -LOCAL_LIBRARIES = $(LIBXPM) $(XAWLIB) $(XMULIB) $(XTOOLLIB) $(XLIB) $(COMPFACE) $(LPT) -+LOCAL_LIBRARIES = $(LIBXPM) $(XAWLIB) $(XMULIB) $(XTOOLLIB) $(XLIB) $(COMPFACE) $(LPT) -lcompat ++LOCAL_LIBRARIES = $(LIBXPM) $(XAWLIB) $(XMULIB) $(XTOOLLIB) $(XLIB) $(COMPFACE) $(LPT) -lcompat -lutil SRCS = Mailwatch.c HelpText.c actions.c callMail.c callbacks.c \ confirm.c directory.c environs.c handler.c mail.c parser.c \ diff --git a/mail/xmail/files/patch-callMail.c b/mail/xmail/files/patch-callMail.c index 53fcd326af4e..685cdde53584 100644 --- a/mail/xmail/files/patch-callMail.c +++ b/mail/xmail/files/patch-callMail.c @@ -1,6 +1,17 @@ ---- callMail.c.orig Thu Jan 26 21:52:01 1995 -+++ callMail.c Wed Feb 4 23:30:07 1998 -@@ -38,11 +38,10 @@ +--- callMail.c.orig 1995-01-26 21:52:01.000000000 -0800 ++++ callMail.c 2023-07-18 07:01:24.570712000 -0700 +@@ -34,15 +34,21 @@ + #include <sys/stat.h> + #include <signal.h> + ++#ifdef __FreeBSD__ ++#include <sys/types.h> ++#include <sys/ioctl.h> ++#include <termios.h> ++#include <libutil.h> ++#endif ++ + #if defined(AIXV3) || defined(_IBMR2) #include <sys/select.h> #endif @@ -14,7 +25,7 @@ #include <fcntl.h> #if defined(att) #include <sys/stropts.h> -@@ -81,7 +80,7 @@ +@@ -81,7 +87,7 @@ #ifdef hpux #define PTYCHAR2 "fedcba9876543210" #else /* !hpux */ @@ -23,7 +34,23 @@ #endif /* !hpux */ #endif /* !PTYCHAR2 */ -@@ -207,8 +206,8 @@ +@@ -91,6 +97,7 @@ + char pseudo_tty[20]; + + ++#ifndef __FreeBSD__ + /* + ** @(#) openMaster - searches for and opens a pty master. If it finds one, + ** it returns the value of the file descriptor. If not, +@@ -197,6 +204,7 @@ + #endif + return(-1); /* look for more master/slave pairs */ + } /* openSlave */ ++#endif /* __FreeBSD__ */ + + + /* +@@ -207,30 +215,34 @@ callMail(argv) char *argv[]; { @@ -34,7 +61,18 @@ #else struct sgttyb Sgtty; #endif -@@ -223,14 +222,14 @@ + int slave; /* file descriptor to slave pty */ + + ++#ifdef __FreeBSD__ ++ openpty(&mail_fd, &slave, NULL, NULL, NULL); ++#else + for (;;) { /* find a pair, or master fails */ + mail_fd = openMaster(); + if ((slave = openSlave(mail_fd)) != -1) + break; + } ++#endif /* ** Set minimal requirements for slave connection (no echo, no NL->CR, keep TABS) */ |