1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-10-19 19:59:43 +00:00

Add xvt 3.0.0, xterm replacement supporting color, transparency, and

more, with less.

PR:		ports/195840
Submitted by:	Chris Hutchinson <portmaster@BSDforge.com>
This commit is contained in:
Vanilla I. Shu 2014-12-10 16:05:45 +00:00
parent 397f3fae08
commit 58859a833b
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=374476
14 changed files with 386 additions and 0 deletions

View File

@ -472,6 +472,7 @@
SUBDIR += xvinfo
SUBDIR += xvkbd
SUBDIR += xvmcinfo
SUBDIR += xvt
SUBDIR += xwatchwin
SUBDIR += xwd
SUBDIR += xwininfo

147
x11/xvt/Makefile Normal file
View File

@ -0,0 +1,147 @@
# Created by: Chris Hutchinson <portmaster@BSDforge.com>
# $FreeBSD$
PORTNAME= xvt
PORTVERSION= 3.0.0
CATEGORIES+= x11
MASTER_SITES= http://BSDforge.com/projects/source/x11/xvt/
MAINTAINER= portmaster@bsdforge.com
COMMENT= Xterm replacement supporting color, transparency, and more, with less
LICENSE= BSD2CLAUSE GPLv2
LICENSE_COMB= multi
USES= libtool perl5 tar:xz
USE_LDCONFIG= yes
USE_PERL5= build patch
USE_XORG= xpm
GNU_CONFIGURE= yes
DESKTOP_ENTRIES= "xvt" "xvt terminal emulator" \
"${PREFIX}/share/pixmaps/xvt.png" \
"xvt" "GNOME;X-XFCE;X-Xfce-Toplevel;System;Utility;TerminalEmulator;" \
false
OPTIONS_DEFINE= 256_COLOR BIG5 EUCJ GB GREEK KR LINESPACE MENUBAR NEXT XVT \
SJIS SMART TRANSPARENCY XIM XTERM
256_COLOR_DESC= Build with 256-color support
BIG5_DESC= Build with BIG5 support
EUCJ_DESC= Build with EUC Japanese support
GB_DESC= Build with GB support
GREEK_DESC= Build with greek keyboard support
KR_DESC= Build with EUC Korean support
LINESPACE_DESC= Build with linespace support
MENUBAR_DESC= Build with menubar support
NEXT_DESC= Build with NeXT scrollbar
XVT_DESC= Build with xvt scrollbar
SJIS_DESC= Build with Shift JIS support
SMART_DESC= Build with smart resize support
TRANSPARENCY_DESC= Build with transparency support
XIM_DESC= Build with XIM support
XTERM_DESC= Build with Xterm scrollbar
OPTIONS_DEFAULT=256_COLOR GB LINESPACE MENUBAR NEXT XVT SMART TRANSPARENCY \
XIM XTERM
CONFIGURE_ARGS= --enable-utmp --enable-lastlog \
--with-xpm --enable-xpm-background --enable-shared \
--enable-mousewheel --disable-languages
LIBS+= -lutil
.include <bsd.port.pre.mk>
.if ${OSVERSION} >= 900007
CONFIGURE_ARGS+= --disable-wtmp
EXTRA_PATCHES+= ${FILESDIR}/extra-utmpx_patch-src__logging.c
.else
CONFIGURE_ARGS+= --enable-wtmp
EXTRA_PATCHES+= ${FILESDIR}/extra-utmp_patch-src__logging.c
.endif
# enable 256 color
.if ${PORT_OPTIONS:M256_COLOR}
CONFIGURE_ARGS+= --enable-256-color
.endif
# enable big5 support
.if ${PORT_OPTIONS:MBIG5}
CONFIGURE_ARGS+= --with-encoding=big5 --enable-languages
.endif
# enable euc japanese support
.if ${PORT_OPTIONS:MEUCJ}
CONFIGURE_ARGS+= --with-encoding=eucj --enable-languages
.endif
# enable gb support
.if ${PORT_OPTIONS:MGB}
CONFIGURE_ARGS+= --with-encoding=gb --enable-languages
.endif
# enable greek keyboard support
.if ${PORT_OPTIONS:MGREEK}
CONFIGURE_ARGS+= --enable-greek
.endif
# enable euc korean support
.if ${PORT_OPTIONS:MKR}
CONFIGURE_ARGS+= --with-encoding=kr --enable-languages
.endif
# enable line-spacing
.if ${PORT_OPTIONS:MLINESPACE}
CONFIGURE_ARGS+= --enable-linespace
.endif
# enable menubar
.if ${PORT_OPTIONS:MMENUBAR}
CONFIGURE_ARGS+= --enable-menubar
.endif
# enable NeXT style scrollbar
.if ${PORT_OPTIONS:MNEXT}
CONFIGURE_ARGS+= --enable-next-scroll
.endif
# enable xvt style scrollbar
.if ${PORT_OPTIONS:MXVT}
CONFIGURE_ARGS+= --enable-xvt-scroll
.endif
# enable shift jis support
.if ${PORT_OPTIONS:MSJIS}
CONFIGURE_ARGS+= --with-encoding=sjis --enable-languages
.endif
# enable smart resize
.if ${PORT_OPTIONS:MSMART}
CONFIGURE_ARGS+= --enable-smart-resize
.endif
# enable transparency support
.if ${PORT_OPTIONS:MTRANSPARENCY}
CONFIGURE_ARGS+= --enable-transparency
.endif
# XIM (X Input Method) protocol support
.if ${PORT_OPTIONS:MXIM}
CONFIGURE_ARGS+= --enable-xim
.endif
# enable Xterm style scrollbar
.if ${PORT_OPTIONS:MXTERM}
CONFIGURE_ARGS+= --enable-xterm-scroll
.endif
post-patch:
@${PERL} -pi -e 's|(PTYCHAR2\s+"[^"]+)"|\1ghijklmnopqrstuv"|' \
${WRKSRC}/src/ptytty.c
post-install:
${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/xvt; \
${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libxvt.so.1.0.0 ;\
${CP} ${WRKSRC}/W11/wrap/xvt.png ${STAGEDIR}${PREFIX}/share/pixmaps/xvt.png
.include <bsd.port.post.mk>

2
x11/xvt/distinfo Normal file
View File

@ -0,0 +1,2 @@
SHA256 (xvt-3.0.0.tar.xz) = 9a6c760dd9b6f0ffa6a43016030c0e4f9a3210d25a1127411010edce79f63707
SIZE (xvt-3.0.0.tar.xz) = 430904

View File

@ -0,0 +1,12 @@
--- src/logging.c.orig 2014-12-09 13:29:03.000000000 -0800
+++ src/logging.c 2014-12-09 13:29:08.000000000 -0800
@@ -82,7 +82,8 @@
else if (sscanf(pty, "pts/%d", &i) == 1)
sprintf(ut_id, "vt%02x", (i & 0xff)); /* sysv naming */
#endif
- else if (STRNCMP(pty, "pty", 3) && STRNCMP(pty, "tty", 3)) {
+ else if (STRNCMP(pty, "pty", 3) && STRNCMP(pty, "tty", 3) &&
+ STRNCMP(pty, "pts/", 4)) {
xvt_print_error("can't parse tty name \"%s\"", pty);
return;
}

View File

@ -0,0 +1,50 @@
--- src/logging.c.orig 2014-12-09 13:47:18.000000000 -0800
+++ src/logging.c 2014-12-09 13:47:35.000000000 -0800
@@ -82,7 +82,8 @@
else if (sscanf(pty, "pts/%d", &i) == 1)
sprintf(ut_id, "vt%02x", (i & 0xff)); /* sysv naming */
#endif
- else if (STRNCMP(pty, "pty", 3) && STRNCMP(pty, "tty", 3)) {
+ else if (STRNCMP(pty, "pty", 3) && STRNCMP(pty, "tty", 3) &&
+ STRNCMP(pty, "pts/", 4)) {
xvt_print_error("can't parse tty name \"%s\"", pty);
return;
}
@@ -137,7 +138,9 @@
STRNCPY(utx->ut_user, (pwent && pwent->pw_name) ? pwent->pw_name : "?",
sizeof(utx->ut_user));
STRNCPY(utx->ut_id, ut_id, sizeof(utx->ut_id));
+#if 0
utx->ut_session = getsid(0);
+#endif
utx->ut_tv.tv_sec = time(NULL);
utx->ut_tv.tv_usec = 0;
utx->ut_pid = r->h->cmd_pid;
@@ -202,7 +205,7 @@
xvt_update_wtmp(XVT_WTMP_FILE, ut);
# endif
# endif
-# ifdef HAVE_STRUCT_UTMPX
+# if 0
updwtmpx(XVT_WTMPX_FILE, utx);
# endif
}
@@ -254,7 +257,9 @@
if ((tmputx = getutxid(utx))) /* position to entry in utmp file */
utx = tmputx;
utx->ut_type = DEAD_PROCESS;
+#if 0
utx->ut_session = getsid(0);
+#endif
utx->ut_tv.tv_sec = time(NULL);
utx->ut_tv.tv_usec = 0;
#endif
@@ -274,7 +279,7 @@
xvt_update_wtmp(XVT_WTMP_FILE, ut);
# endif
# endif
-# ifdef HAVE_STRUCT_UTMPX
+# if 0
updwtmpx(XVT_WTMPX_FILE, utx);
# endif
}

View File

@ -0,0 +1,19 @@
*** Makefile.in.orig Sat Aug 9 15:44:33 2003
--- Makefile.in Sat Aug 9 15:44:39 2003
***************
*** 9,15 ****
first_rule: all
dummy:
! subdirs = src doc rclock src/graphics src/test
allsubdirs = W11 $(subdirs)
DIST = INSTALL README.configure configure Makefile Makefile.in ChangeLog
--- 9,15 ----
first_rule: all
dummy:
! subdirs = src doc #rclock src/graphics src/test
allsubdirs = W11 $(subdirs)
DIST = INSTALL README.configure configure Makefile Makefile.in ChangeLog

View File

@ -0,0 +1,18 @@
--- autoconf/config.h.in.orig 2014-12-09 14:01:13.000000000 -0800
+++ autoconf/config.h.in 2014-12-09 14:01:19.000000000 -0800
@@ -313,13 +313,13 @@
#undef XVT_UTMPX_FILE
/* Define location of utmp */
-#undef XVT_UTMP_FILE
+#define XVT_UTMP_FILE "/var/run/utmp"
/* Define location of wtmpx */
#undef XVT_WTMPX_FILE
/* Define location of wtmp */
-#undef XVT_WTMP_FILE
+#define XVT_WTMP_FILE "/var/log/wtmp"
/* The size of a `char', as computed by sizeof. */
#undef SIZEOF_CHAR

View File

@ -0,0 +1,12 @@
--- doc/Makefile.in.orig 2014-12-09 14:08:52.000000000 -0800
+++ doc/Makefile.in 2014-12-09 14:08:56.000000000 -0800
@@ -40,9 +40,6 @@
all: xvt.1
-xvt.1: xvt.tbl Makefile
- @if test x$(TBL) = x; then : ; else echo "$(TBL) $(srcdir)/xvt.tbl | grep -v '^.lf' > xvt.1"; $(TBL) $(srcdir)/xvt.tbl | grep -v '^.lf' > xvt.1 ; fi
-
SEDREPLACE = -e 's%@XVT_VERSION@%$(VERSION)%g;'\
-e 's%@XVT_LSMDATE@%$(LSMDATE)%g;'\
-e 's%@XVT_DATE@%$(DATE)%g;'\

View File

@ -0,0 +1,11 @@
--- src/command.c.orig 2014-12-09 12:06:57.000000000 -0800
+++ src/command.c 2014-12-09 12:07:41.000000000 -0800
@@ -3098,7 +3098,7 @@
unsigned char buf[256];
va_start(arg_ptr, fmt);
- vsprintf((char *)buf, fmt, arg_ptr);
+ vsnprintf((char *)buf, sizeof(buf), fmt, arg_ptr);
va_end(arg_ptr);
xvt_tt_write(r, buf, (unsigned int)STRLEN(buf));
}

View File

@ -0,0 +1,22 @@
--- src/init.c.orig 2014-12-09 12:50:59.000000000 -0800
+++ src/init.c 2014-12-09 12:54:55.000000000 -0800
@@ -1531,6 +1531,9 @@
# ifdef VEOL2
tio->c_cc[VEOL2] = VDISABLE;
# endif
+# ifdef VERASE2
+ tio->c_cc[VERASE2] = CERASE2;
+# endif
# ifdef VSWTC
tio->c_cc[VSWTC] = VDISABLE;
# endif
@@ -1651,6 +1654,9 @@
# ifdef VEOL2
FOO(VEOL2, "VEOL2");
# endif
+# ifdef VERASE2
+ FOO(VERASE2, "VERASE2");
+# endif
# ifdef VSWTC
FOO(VSWTC, "VSWTC");
# endif

View File

@ -0,0 +1,62 @@
--- src/screen.c.orig 2014-12-09 13:14:46.000000000 -0800
+++ src/screen.c 2014-12-09 13:14:57.000000000 -0800
@@ -3520,6 +3520,7 @@
Atom32 target_list[3];
#endif
Atom target;
+ Atom property;
XTextProperty ct;
XICCEncodingStyle style;
char *cl[2], dummy[1];
@@ -3532,6 +3533,15 @@
ev.target = rq->target;
ev.time = rq->time;
+ /* ICCCM: 2.2. Responsibilities of the Selection Owner
+ * SelectionRequest:
+ * If the specified property is None , the requestor
+ * an obsolete client. Owners are encouraged
+ * to support these clients by using the specified
+ * target atom as the property name to be used for
+ * the reply.
+ */
+ property = (rq->property == 0) ? rq->target : rq->property;
if (rq->target == r->h->xa[XA_TARGETS]) {
target_list[0] = (Atom32) r->h->xa[XA_TARGETS];
target_list[1] = (Atom32) XA_STRING;
@@ -3539,7 +3549,7 @@
#ifdef USE_XIM
target_list[3] = (Atom32) r->h->xa[XA_COMPOUND_TEXT];
#endif
- XChangeProperty(r->Xdisplay, rq->requestor, rq->property, XA_ATOM,
+ XChangeProperty(r->Xdisplay, rq->requestor, property, XA_ATOM,
(8 * sizeof(target_list[0])), PropModeReplace,
(unsigned char *)target_list,
(sizeof(target_list) / sizeof(target_list[0])));
@@ -3547,10 +3557,10 @@
} else if (rq->target == r->h->xa[XA_MULTIPLE]) {
/* TODO: Handle MULTIPLE */
} else if (rq->target == r->h->xa[XA_TIMESTAMP] && r->selection.text) {
- XChangeProperty(r->Xdisplay, rq->requestor, rq->property, XA_INTEGER,
- (8 * sizeof(Time)), PropModeReplace,
+ XChangeProperty(r->Xdisplay, rq->requestor, property, XA_INTEGER,
+ 32, PropModeReplace,
(unsigned char *)&r->h->selection_time, 1);
- ev.property = rq->property;
+ ev.property = property;
} else if (rq->target == XA_STRING
|| rq->target == r->h->xa[XA_COMPOUND_TEXT]
|| rq->target == r->h->xa[XA_TEXT]) {
@@ -3588,10 +3598,10 @@
ct.value = (unsigned char *)cl[0];
ct.nitems = selectlen;
}
- XChangeProperty(r->Xdisplay, rq->requestor, rq->property,
+ XChangeProperty(r->Xdisplay, rq->requestor, property,
target, 8, PropModeReplace,
ct.value, (int)ct.nitems);
- ev.property = rq->property;
+ ev.property = property;
#ifdef USE_XIM
if (freect)
XFree(ct.value);

View File

@ -0,0 +1,11 @@
--- src/xvt.h.orig 2014-12-09 12:59:35.000000000 -0800
+++ src/xvt.h 2014-12-09 12:59:39.000000000 -0800
@@ -804,7 +804,7 @@
#define xvt_Gr_ButtonRelease(x,y) xvt_Gr_ButtonReport (r, 'R',(x),(y))
#ifdef UTMP_SUPPORT
-# if !defined(XVT_UTMPX_FILE) || !defined(HAVE_STRUCT_UTMPX)
+# if !defined(HAVE_STRUCT_UTMPX)
# undef HAVE_UTMPX_H
# undef HAVE_STRUCT_UTMPX
# endif

8
x11/xvt/pkg-descr Normal file
View File

@ -0,0 +1,8 @@
xvt - an xterm replacement supporting color, transparency, and more, with less!
xvt, simply continues on the original authors work -- John Bovey, University
of Kent at Canterbury. With few exceptions, it does everything Xterm does.
But also does a great deal more, with less overhead. This version will also
leverage vt(4), FreeBSD's new console driver. Which replaces syscons(4).
WWW: http://BSDforge.com/projects/x11/xvt/

11
x11/xvt/pkg-plist Normal file
View File

@ -0,0 +1,11 @@
@mode 4711
bin/xvt
bin/xvt-3.0.0
@mode
include/xvtlib.h
lib/libxvt.a
lib/libxvt.so
lib/libxvt.so.1
lib/libxvt.so.1.0.0
man/man1/xvt.1.gz
share/pixmaps/xvt.png