ports/147928: gegl ffmpeg support broken

Josh Carroll josh.carroll at gmail.com
Thu Jun 17 02:40:03 UTC 2010


>Number:         147928
>Category:       ports
>Synopsis:       gegl ffmpeg support broken
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jun 17 02:40:02 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Josh Carroll
>Release:        8.1-RC1
>Organization:
n/a
>Environment:
FreeBSD pflog.net 8.1-RC1 FreeBSD 8.1-RC1 #0 r208898M: Mon Jun 14 23:20:35 PDT 2010     root at pflog.net:/usr/obj/usr/src/sys/PFLOG  amd64

>Description:
When the graphics/gegl port is built with ffmpeg support, running gimp results in:

** Message: Module '/usr/local/lib/gegl-0.1/ff-load.so' load error: /usr/local/lib/gegl-0.1/ff-load.so: Undefined symbol "avcodec_decode_video2"

gimp still loads, so it's non-fatal, but further analysis points to the upstream gegl expecting a newer ffmpeg with this symbol.

In our (ports) version of ffmpeg, this symbol/call does not exist:

% nm -D /usr/local/lib/libavcodec.so | grep avcodec_decode_video2
%

I happen to have a SVN (as of 6/16) version of ffmpeg built and I do see it on that:

# nm -D ~floyd/local/lib/libavcodec.so | grep avcodec_decode_video2
00000000002ab25d T avcodec_decode_video2

Even the change log for gegl indicates it is now using the newer API call:

# grep avcodec_decode_video2 /usr/ports/graphics/gegl/work/gegl-0.1.2/ChangeLog
    Use avcodec_decode_video2 which takes a packet directly instead of

I guess upstream gegl just expects to coexist with a newer ffmpeg.

Perhaps we can mark ffmpeg support broken until our ffmpeg version catches up? Or just remove ffmpeg support for now? I don't know the best way to handle this, but it's definitely not going to work with our version of ffmpeg in ports I'm afraid.
>How-To-Repeat:
- build/install graphics/gegl with ffmpeg support
- build/install graphics/gimp
- run gimp from an xterm or similar and observe the output
>Fix:
Here's a simple patch to mark the ffmpeg support as broken (also attached):

--- gegl/Makefile       2010-04-19 03:09:07.000000000 -0700
+++ gegl.new/Makefile   2010-06-16 19:26:45.000000000 -0700
@@ -19,7 +19,7 @@

 OPTIONS=       CAIRO           "Enable Cairo" on \
                ENSCRIPT        "Enable Enscript" on \
-               FFMPEG          "Enable videos through ffmpeg" on \
+               FFMPEG          "Enable videos through ffmpeg (**BROKEN**)" off \
                GRAPHVIZ        "Enable Graphviz" on \
                JPEG            "Enable JPEG format support" on \
                LUA             "Enable LUA" on \
@@ -54,6 +54,10 @@

 .include <bsd.port.pre.mk>

+.if defined(WITH_FFMPEG)
+BROKEN=        ffmpeg support is currently broken
+.endif
+
 .if !defined(WITHOUT_CAIRO)
 LIB_DEPENDS+=  cairo.2:${PORTSDIR}/graphics/cairo
 PLIST_SUB+=    CAIRO=""




Patch attached with submission follows:

--- gegl/Makefile	2010-04-19 03:09:07.000000000 -0700
+++ gegl.new/Makefile	2010-06-16 19:26:45.000000000 -0700
@@ -19,7 +19,7 @@
 
 OPTIONS=	CAIRO		"Enable Cairo" on \
 		ENSCRIPT	"Enable Enscript" on \
-		FFMPEG		"Enable videos through ffmpeg" on \
+		FFMPEG		"Enable videos through ffmpeg (**BROKEN**)" off \
 		GRAPHVIZ	"Enable Graphviz" on \
 		JPEG		"Enable JPEG format support" on \
 		LUA		"Enable LUA" on \
@@ -54,6 +54,10 @@
 
 .include <bsd.port.pre.mk>
 
+.if defined(WITH_FFMPEG)
+BROKEN=	ffmpeg support is currently broken
+.endif
+
 .if !defined(WITHOUT_CAIRO)
 LIB_DEPENDS+=	cairo.2:${PORTSDIR}/graphics/cairo
 PLIST_SUB+=	CAIRO=""


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



More information about the freebsd-ports-bugs mailing list