git: 5ba8ffefe59e - main - mail/xmail: Fix pty handling
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 18 Jul 2023 14:57:07 UTC
The branch main has been updated by cy:
URL: https://cgit.FreeBSD.org/ports/commit/?id=5ba8ffefe59e7d478164fcacaae5e5aa720c402c
commit 5ba8ffefe59e7d478164fcacaae5e5aa720c402c
Author: Cy Schubert <cy@FreeBSD.org>
AuthorDate: 2023-07-18 14:10:12 +0000
Commit: Cy Schubert <cy@FreeBSD.org>
CommitDate: 2023-07-18 14:56:40 +0000
mail/xmail: Fix pty handling
Modernize to work with openpty(). Else we get this:
Error: xmail cannot open master/slave pipe connection
MFH: 2023Q3
---
mail/xmail/Makefile | 2 +-
mail/xmail/files/patch-Imakefile | 6 ++---
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)
*/