ports/57869: update port multimedia/xawtv: workaround to enable overlay

Matthias Andree matthias.andree at web.de
Sat Oct 11 19:30:21 UTC 2003


>Number:         57869
>Category:       ports
>Synopsis:       update port multimedia/xawtv: workaround to enable overlay
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Sat Oct 11 12:30:18 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator:     Matthias Andree
>Release:        FreeBSD 5.1-CURRENT i386
>Organization:
>Environment:
System: FreeBSD merlin.emma.line.org 5.1-CURRENT FreeBSD 5.1-CURRENT #10: Tue Oct 7 03:15:45 CEST 2003 toor at merlin.emma.line.org:/usr/src/sys/i386/compile/MA5 i386


	
>Description:
On my FreeBSD machine, xawtv misdetects the X11 display as "remote" and
hence disables the "overlay" mode which is an important performance feature.

This PR includes a workaround for the problem. Please apply until there is an
upstream fix in the next xawtv release.

Technical:

x11/xt.c seems to be unable to retrieve the socket name, but IMHO an
address type of AF_UNIX is sufficient to conclude "local display".

NOTE: there is another bug in xt.c, it does NOT detect that getnameinfo fails
with EAI_FAMILY and still tries to use the results.  ltrace: (5 is EAI_FAMILY)

This bug needs to be fixed upstream, and I also suggest the patch below for the upstream.

getsockname(6, 0xbfbff7b0, 0xbfbff72c, 95, 1)     = 0
getnameinfo(0xbfbff7b0, 16, 0xbfbff780, 46, 0xbfbff730) = 5
getpeername(6, 0xbfbff7b0, 0xbfbff72c, 46, 0xbfbff730) = 0
getnameinfo(0xbfbff7b0, 19, 0xbfbff750, 46, 0xbfbff730) = 5
strcmp("", ")\001\003 \326!\b\b.\035\b\b\324R\b\b@\242\b\b\b") = -41

	
>How-To-Repeat:
	
>Fix:
Gerd, for upstream application, you need to run patch twice on this section,
the first time with -p4, which should create files-x11::xt.c, then run patch
again with this new file as input to modify x11/xt.c.

diff -Nur /usr/ports/multimedia/xawtv/Makefile /root/xawtv/Makefile
--- /usr/ports/multimedia/xawtv/Makefile	Sat Oct 11 18:40:18 2003
+++ /root/xawtv/Makefile	Sat Oct 11 21:06:25 2003
@@ -7,6 +7,7 @@
 
 PORTNAME=	xawtv
 PORTVERSION=	3.88.1
+PORTREVISION=	1
 CATEGORIES=	multimedia
 MASTER_SITES=	http://bytesex.org/xawtv/
 DISTNAME=	${PORTNAME}_${PORTVERSION}
diff -Nur /usr/ports/multimedia/xawtv/files/patch-x11::xt.c /root/xawtv/files/patch-x11::xt.c
--- /usr/ports/multimedia/xawtv/files/patch-x11::xt.c	Thu Jan  1 01:00:00 1970
+++ /root/xawtv/files/patch-x11::xt.c	Sat Oct 11 21:06:56 2003
@@ -0,0 +1,12 @@
+diff -ur xawtv-3.88.1/x11/xt.c xawtv-3.88.1-ma/x11/xt.c
+--- x11/xt.c	Wed Apr 16 12:23:12 2003
++++ x11/xt.c	Sat Oct 11 21:04:36 2003
+@@ -1459,7 +1459,7 @@
+ 	fprintf(stderr,"*");
+ 
+     /* catch unix sockets on FreeBSD */
+-    if (0 == length) {
++    if (0 == length || ss.ss_family == AF_UNIX) {
+ 	if (debug)
+ 	    fprintf(stderr, " ok (unix socket)\n");
+ 	return;
	


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list