Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 26 Jan 2014 02:17:52 GMT
From:      Daniel Herring <dherring@tentpost.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/186115: patch for pthread_mutex_unlock bug in nspluginwrapper
Message-ID:  <201401260217.s0Q2HqkO032473@oldred.freebsd.org>
Resent-Message-ID: <201401260220.s0Q2K1FQ018720@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         186115
>Category:       ports
>Synopsis:       patch for pthread_mutex_unlock bug in nspluginwrapper
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jan 26 02:20:00 UTC 2014
>Closed-Date:
>Last-Modified:
>Originator:     Daniel Herring
>Release:        10.0-RELEASE
>Organization:
>Environment:
FreeBSD strider2 10.0-RELEASE FreeBSD 10.0-RELEASE #0 r260789: Thu Jan 16 22:34:59 UTC 2014     root@snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64
>Description:
nspluginplayer in the nspluginwrapper port was failing due to a bad pthread_mutex_unlock.  Some web searches found the same bug for other OSes.  It appears that the GTK+ API has changed.  This patch fixes the problem.

>How-To-Repeat:
nspluginplayer --verbose type=application/x-shockwave-flash src=test.swf

test.swf does not need to exist, but a valid plugin is required.
I found this bug while trying to diagnose an incorrect flash plugin install.

To enable debug and see the offending function call, this port requires some manual edits to the Makefile to enable debugging.  I forgot to save the diffs.  My memory is changing "--enable-strip" to "disable-strip" in CONFIGURE_ARGS, and adding "-g" to CFLAGS.
>Fix:
# cd /usr/ports/www/nspluginwrapper
# make clean

# make patch
edit work/nspluginwrapper-1.4.4/src/npw-player.c
@@ -2666,11 +2666,8 @@
 	}
     }
 
-  if (g_backend == BACKEND_GTK) {
-gdk_threads_enter();
+  if (g_backend == BACKEND_GTK)
     gtk_main ();
-gdk_threads_leave();
-}
 
   for (i = 0; i < plugin_descs->len; i++)
     {

# make
# make install

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201401260217.s0Q2HqkO032473>