aboutsummaryrefslogtreecommitdiff
path: root/comms/amtterm
diff options
context:
space:
mode:
authorChris Rees <crees@FreeBSD.org>2013-12-08 13:09:07 +0000
committerChris Rees <crees@FreeBSD.org>2013-12-08 13:09:07 +0000
commit5b39917f66839c9125df7f19a7de5a374685c18c (patch)
tree282a9f8f8c852fd64a7527db578d8086c672842d /comms/amtterm
parenta539382dce760f9d1738c44fbfd0d11f6f6132fc (diff)
downloadports-5b39917f66839c9125df7f19a7de5a374685c18c.tar.gz
ports-5b39917f66839c9125df7f19a7de5a374685c18c.zip
Include patches from git repo to avoid keeling over
when modem lines are disturbed. Submitted by: kan Reviewed by: kib While here, stagify and modernise
Notes
Notes: svn path=/head/; revision=335882
Diffstat (limited to 'comms/amtterm')
-rw-r--r--comms/amtterm/Makefile23
-rw-r--r--comms/amtterm/files/patch-decode-host-controls122
2 files changed, 131 insertions, 14 deletions
diff --git a/comms/amtterm/Makefile b/comms/amtterm/Makefile
index 475f73f75df4..19bbb98470c8 100644
--- a/comms/amtterm/Makefile
+++ b/comms/amtterm/Makefile
@@ -2,7 +2,7 @@
PORTNAME= amtterm
PORTVERSION= 1.3
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= comms
MASTER_SITES= https://www.kraxel.org/releases/${PORTNAME}/
@@ -14,26 +14,21 @@ LICENSE_FILE= ${WRKSRC}/COPYING
RUN_DEPENDS= p5-SOAP-Lite>=0.5:${PORTSDIR}/net/p5-SOAP-Lite
-USE_GMAKE= yes
+USES= gmake dos2unix shebangfix
+DOS2UNIX_FILES= RedirectionConstants.h
+SHEBANG_FILES= amttool
+
MAKEFILE= GNUmakefile
-MAKE_ENV+= mandir=${MANPREFIX}/man
-MAKE_ARGS+= HAVE_GTK=no
+MAKE_ARGS+= HAVE_GTK=no mandir=${STAGEDIR}${MANPREFIX}/man
PLIST_FILES= bin/${PORTNAME} \
bin/amttool \
- share/applications/gamt.desktop
-MAN1= gamt.1 ${PORTNAME}.1 amttool.1
-MAN7= amt-howto.7
-MANCOMPRESSED= no
+ share/applications/gamt.desktop \
+ man/man1/gamt.1.gz man/man1/${PORTNAME}.1.gz \
+ man/man1/amttool.1.gz man/man7/amt-howto.7.gz
-NO_STAGE= yes
post-patch:
@${REINPLACE_CMD} -e 's,/sbin/ldconfig -p,${LDCONFIG} -r,' \
${WRKSRC}/mk/Autoconf.mk
-.for mandir in 1 7
- @${REINPLACE_CMD} -e \
- 's,$$(mandir)/man${mandir},${MAN${mandir}PREFIX}/man/man${mandir},' \
- ${WRKSRC}/${MAKEFILE}
-.endfor
.include <bsd.port.mk>
diff --git a/comms/amtterm/files/patch-decode-host-controls b/comms/amtterm/files/patch-decode-host-controls
new file mode 100644
index 000000000000..bf760a075f11
--- /dev/null
+++ b/comms/amtterm/files/patch-decode-host-controls
@@ -0,0 +1,122 @@
+--- RedirectionConstants.h 2011-05-26 05:19:45.000000000 -0400
++++ RedirectionConstants.h 2013-12-05 18:32:54.800377337 -0500
+@@ -24,6 +24,8 @@
+ #define SOL_KEEP_ALIVE_PING 0x24 //Console to Host
+ #define SOL_KEEP_ALIVE_PONG 0x25 //Host to Console
+ #define SOL_DATA_TO_HOST 0x28 //Console to host
++#define SOL_CONTROLS_FROM_HOST 0x29 //Host to Console
++
+ #define SOL_DATA_FROM_HOST 0x2A //Host to Console
+ #define SOL_HEARTBEAT 0x2B
+
+@@ -33,6 +35,19 @@
+ #define END_SOL_REDIRECTION_LENGTH 8
+ #define END_SOL_REDIRECTION_REPLY_LENGTH 8
+
++// Control message control bits (message 0x29)
++#define RTS_CONTROL 1
++#define DTR_CONTROL 2
++#define BREAK_CONTROL 4
++
++// Control message status bits (message 0x29)
++#define TX_OVERFLOW 1
++#define LOOPBACK_ACTIVE 2
++#define SYSTEM_POWER_STATE 4
++#define RX_FLUSH_TIMEOUT 8
++#define TESTMODE_ACTIVE 16
++
++
+ //IDER Messages Formats
+ #define START_IDER_REDIRECTION 0x40
+ #define START_IDER_REDIRECTION_REPLY 0x41
+--- redir.c.orig 2011-05-26 05:19:45.000000000 -0400
++++ redir.c 2013-12-05 18:32:54.824386101 -0500
+@@ -298,6 +302,9 @@
+ return bshift;
+ }
+
++static int in_loopback_mode = 0;
++static int powered_off = 0;
++
+ int redir_data(struct redir *r)
+ {
+ int rc, bshift;
+@@ -382,6 +389,55 @@
+ goto again;
+ redir_stop(r);
+ break;
++ case SOL_CONTROLS_FROM_HOST: {
++ bshift = r->blen; /* FIXME */
++ if (r->blen < bshift)
++ goto again;
++
++ /* Host sends this message to the Management Console when
++ * the host has changed its COM port control lines. This
++ * message is likely to be one of the first messages that
++ * the Host sends to the Console after it starts SOL
++ * redirection.
++ */
++ struct controls_from_host_message *msg = (struct controls_from_host_message *) r->buf;
++ //printf("Type %x, control %d, status %d\n", msg->type, msg->control, msg->status);
++ if (msg->status & LOOPBACK_ACTIVE) {
++ if (r->verbose)
++ fprintf (stderr, "Warning, SOL device is running in loopback mode. Text input may not be accepted\n");
++ in_loopback_mode = 1;
++ } else if (in_loopback_mode) {
++ if (r->verbose)
++ fprintf (stderr, "SOL device is no longer running in loopback mode\n");
++ in_loopback_mode = 0;
++ }
++
++ if (0 == (msg->status & SYSTEM_POWER_STATE)) {
++ if (r->verbose)
++ fprintf (stderr, "The system is powered off.\n");
++ powered_off = 1;
++ } else if (powered_off) {
++ if (r->verbose)
++ fprintf (stderr, "The system is powered on.\n");
++ powered_off = 0;
++ }
++
++ if (r->verbose) {
++ if (msg->status & (TX_OVERFLOW|RX_FLUSH_TIMEOUT|TESTMODE_ACTIVE))
++ fprintf (stderr, "Other unhandled status condition\n");
++
++ if (msg->control & RTS_CONTROL)
++ fprintf (stderr, "RTS is asserted on the COM Port\n");
++
++ if (msg->control & DTR_CONTROL)
++ fprintf (stderr, "DTR is asserted on the COM Port\n");
++
++ if (msg->control & BREAK_CONTROL)
++ fprintf (stderr, "BREAK is asserted on the COM Port\n");
++ }
++
++ break;
++ }
+ default:
+ snprintf(r->err, sizeof(r->err), "%s: unknown r->buf 0x%02x",
+ __FUNCTION__, r->buf[0]);
+--- redir.h 2011-05-26 05:19:45.000000000 -0400
++++ redir.h 2013-12-05 18:32:54.825382282 -0500
+@@ -1,4 +1,5 @@
+ #include "RedirectionConstants.h"
++#include <stdint.h>
+
+ enum redir_state {
+ REDIR_NONE = 0,
+@@ -38,6 +39,14 @@
+ int (*cb_recv)(void *cb_data, unsigned char *buf, int len);
+ };
+
++struct __attribute__ ((__packed__)) controls_from_host_message {
++ unsigned char type; // 0x29
++ unsigned char reserved[3];
++ uint32_t host_sequence_number;
++ unsigned char control;
++ unsigned char status;
++};
++
+ const char *redir_state_name(enum redir_state state);
+ const char *redir_state_desc(enum redir_state state);
+