Workaround for missing cfmakeraw().
See also https://www.illumos.org/issues/1060

--- vte-0.80.2/src/app/app.cc.orig
+++ vte-0.80.2/src/app/app.cc
@@ -4860,7 +4860,15 @@
                struct termios tcattr;
                if (tcgetattr(STDIN_FILENO, &tcattr) == 0) {
                        saved_tcattr = tcattr;
+#ifdef __illumos__
+			tcattr.c_iflag &= ~(IMAXBEL|IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON);
+			tcattr.c_oflag &= ~OPOST;
+			tcattr.c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN);
+			tcattr.c_cflag &= ~(CSIZE|PARENB);
+			tcattr.c_cflag |= CS8;
+#else
                        cfmakeraw(&tcattr);
+#endif
                        if (tcsetattr(STDIN_FILENO, TCSANOW, &tcattr) == 0)
                                reset_termios = true;
                }
--- vte-0.80.2/src/dumpkeys.c.orig
+++ vte-0.80.2/src/dumpkeys.c
@@ -162,7 +162,15 @@
 	}
 	original = tcattr;
 	signal(SIGINT, sigint_handler);
+#ifdef __illumos__
+	tcattr.c_iflag &= ~(IMAXBEL|IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON);
+	tcattr.c_oflag &= ~OPOST;
+	tcattr.c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN);
+	tcattr.c_cflag &= ~(CSIZE|PARENB);
+	tcattr.c_cflag |= CS8;
+#else
 	cfmakeraw(&tcattr);
+#endif
 	if (tcsetattr(STDIN_FILENO, TCSANOW, &tcattr) != 0) {
 		perror("tcsetattr");
 		return 1;
--- vte-0.80.2/src/mev.c.orig
+++ vte-0.80.2/src/mev.c
@@ -358,7 +358,15 @@
 
 	original = tcattr;
 	signal(SIGINT, sigint_handler);
+#ifdef __illumos__
+	tcattr.c_iflag &= ~(IMAXBEL|IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON);
+	tcattr.c_oflag &= ~OPOST;
+	tcattr.c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN);
+	tcattr.c_cflag &= ~(CSIZE|PARENB);
+	tcattr.c_cflag |= CS8;
+#else
 	cfmakeraw(&tcattr);
+#endif
 	if (tcsetattr(STDIN_FILENO, TCSANOW, &tcattr) != 0) {
 		perror("tcsetattr");
 		return 1;