Date: Mon, 14 Apr 2014 16:52:29 GMT From: Matthieu Volat <mazhe@alkumuna.eu> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/188621: Cannot build net/opal when multimedia/ffmpeg is installed Message-ID: <201404141652.s3EGqTGX013741@cgiserv.freebsd.org> Resent-Message-ID: <201404141700.s3EH00oW045263@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 188621 >Category: ports >Synopsis: Cannot build net/opal when multimedia/ffmpeg is installed >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: Mon Apr 14 17:00:00 UTC 2014 >Closed-Date: >Last-Modified: >Originator: Matthieu Volat >Release: 10.0-RELEASE-p1 >Organization: >Environment: FreeBSD freedom.alkumuna.eu 10.0-RELEASE-p1 FreeBSD 10.0-RELEASE-p1 #0: Tue Apr 8 06:45:06 UTC 2014 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64 >Description: Hi, When installed on a system where multimedia/ffmpeg is installed, net/opal will (rightly) pull multimedia/ffmpeg0 as a dependency, but will still mix up header files and build will fail : [CC] rfc2190.cxx In file included from In file included from rfc2429.cxx:23: In file included from ./rfc2429.h:26: ./h263-1998.h:118:23: error: unknown type name 'CodecID'; did you mean 'AVCodecID'? virtual bool Init(CodecID codecId); ^~~~~~~ AVCodecID /usr/local/include/libavcodec/avcodec.h:102:6: note: 'AVCodecID' declared here enum AVCodecID { ^ rfc2190.cxx:22: In file included from h263-1998.cxx:50: ./h263-1998.h:118:23: error: unknown type name 'CodecID'; did you mean 'AVCodecID'? virtual bool Init(CodecID codecId); ^~~~~~~ AVCodecID /usr/local/include/libavcodec/avcodec.h:102:6: note: 'AVCodecID' declared here enum AVCodecID { ^ In file included from ./rfc2190.h:25: ./h263-1998.h:118:23: error: unknown type name 'CodecID'; did you mean 'AVCodecID'? virtual bool Init(CodecID codecId); ^~~~~~~ AVCodecID /usr/local/include/libavcodec/avcodec.h:102:6: note: 'AVCodecID' declared here enum AVCodecID { ^ [CC] .common/dyna.cxx rfc2190.cxx:181:7: warning: add explicit braces to avoid dangling else [-Wdangling-else] PTRACE(2, "RFC2190", "Mismatch between encoder length (" << newLe... ^ /usr/ports/net/opal/work/opal-3.10.10/include/codec/opalplugin.hpp:91:9: note: expanded from macro 'PTRACE' } else (void)0 ^ In file included from h263-1998.cxx:58: ./../common/dyna.h:91:19: error: unknown type name 'CodecID'; did you mean 'AVCodecID'? FFMPEGLibrary(CodecID codec); ^~~~~~~ rfc2429.cxx:512:9: warning: add explicit braces to avoid dangling else [-Wdangling-else] PTRACE(6, "H.263-RFC2429", "Header\tRLNUM: " << headerBits.GetBits(4)); ^ /usr/ports/net/opal/work/opal-3.10.10/include/codec/opalplugin.hpp:91:9: note: expanded from macro 'PTRACE' } else (void)0 ^ AVCodecID /usr/local/include/libavcodec/avcodec.h:102:6: note: 'AVCodecID' declared here enum AVCodecID { ^ In file included from h263-1998.cxx:58: ./../common/dyna.h:96:38: error: ISO C++ forbids forward references to 'enum' types AVCodec *AvcodecFindEncoder(enum CodecID id); ^ ./../common/dyna.h:120:13: error: field has incomplete type 'CodecID' CodecID m_codec; ^ ./../common/dyna.h:96:38: note: forward declaration of 'CodecID' AVCodec *AvcodecFindEncoder(enum CodecID id); ^ rfc2429.cxx:539:5: warning: add 1 warning and 1 error generated. explicit braces to avoid dangling else [-Wdangling-else] PTRACE(6, "H.263-RFC2429", "Header\tTRB: " << headerBits.GetBits (3... ^ /usr/ports/net/opal/work/opal-3.10.10/include/codec/opalplugin.hpp:91:9: note: expanded from macro 'PTRACE' } else (void)0 ^ gmake[7]: *** [/usr/ports/net/opal/work/opal-3.10.10/plugins/../lib_FreeBSD_amd64/plugins/h263_ffmpeg/rfc2190.o] Error 1 gmake[7]: *** Waiting for unfinished jobs.... In file included from ../common/dyna.cxx:40: ./common/dyna.h:91:19: error: unknown type name 'CodecID'; did you mean 'AVCodecID'? FFMPEGLibrary(CodecID codec); ^~~~~~~ AVCodecID /usr/local/include/libavcodec/avcodec.h:102:6: note: 'AVCodecID' declared here enum AVCodecID { ^ In file included from ../common/dyna.cxx:40: ./common/dyna.h:96:38: error: ISO C++ forbids forward references to 'enum' types AVCodec *AvcodecFindEncoder(enum CodecID id); ^ ./common/dyna.h:120:13: error: field has incomplete type 'CodecID' CodecID m_codec; ^ ./common/dyna.h:96:38: note: forward declaration of 'CodecID' AVCodec *AvcodecFindEncoder(enum CodecID id); ^ ./common/dyna.cxx:179:38: warning: unused parameter 'avcl' [-Wunused-parameter] static void logCallbackFFMPEG(void * avcl, int severity, const char* fm... ^ ./common/dyna.cxx:213:16: error: out-of-line definition of 'FFMPEGLibrary' does not match any declaration in 'FFMPEGLibrary' FFMPEGLibrary::FFMPEGLibrary(CodecID codec) ^~~~~~~~~~~~~ ./common/dyna.cxx:213:38: error: variable has incomplete type 'CodecID' FFMPEGLibrary::FFMPEGLibrary(CodecID codec) ^ ./common/dyna.h:96:38: note: forward declaration of 'CodecID' AVCodec *AvcodecFindEncoder(enum CodecID id); ^ h263-1998.cxx:206:32: error: out-of-line definition of 'Init' does not match any declaration in 'H263_Base_EncoderContext' bool H263_Base_EncoderContext::Init(CodecID codecId) ^~~~ h263-1998.cxx:206:45: error: variable has incomplete type 'CodecID' bool H263_Base_EncoderContext::Init(CodecID codecId) ^ ./../common/dyna.h:96:38: note: forward declaration of 'CodecID' AVCodec *AvcodecFindEncoder(enum CodecID id); ^ 2 warnings and 1 error generated. gmake[7]: *** [/usr/ports/net/opal/work/opal-3.10.10/plugins/../lib_FreeBSD_amd64/plugins/h263_ffmpeg/rfc2429.o] Error 1 ./common/dyna.cxx:351:57: error: variable has incomplete type 'enum CodecID' AVCodec *FFMPEGLibrary::AvcodecFindEncoder(enum CodecID id) ^ ./common/dyna.h:96:38: note: forward declaration of 'CodecID' AVCodec *AvcodecFindEncoder(enum CodecID id); ^ ./common/dyna.cxx:351:57: warning: unused parameter 'id' [-Wunused-parameter] AVCodec *FFMPEGLibrary::AvcodecFindEncoder(enum CodecID id) ^ ./common/dyna.cxx:356:57: error: variable has incomplete type 'enum CodecID' AVCodec *FFMPEGLibrary::AvcodecFindDecoder(enum CodecID id) ^ ./common/dyna.h:96:38: note: forward declaration of 'CodecID' AVCodec *AvcodecFindEncoder(enum CodecID id); ^ ./common/dyna.cxx:356:57: warning: unused parameter 'id' [-Wunused-parameter] AVCodec *FFMPEGLibrary::AvcodecFindDecoder(enum CodecID id) ^ h263-1998.cxx:320:27: error: use of undeclared identifier 'CODEC_FLAG_H263P_UMV' m_context->flags |= CODEC_FLAG_H263P_UMV; ^ h263-1998.cxx:322:28: error: use of undeclared identifier 'CODEC_FLAG_H263P_UMV' m_context->flags &= ~CODEC_FLAG_H263P_UMV; ^ 3 warnings and 7 errors generated. gmake[7]: *** [/usr/ports/net/opal/work/opal-3.10.10/plugins/../lib_FreeBSD_amd64/plugins/h263_ffmpeg/dyna.o] Error 1 h263-1998.cxx:363:27: error: use of undeclared identifier 'CODEC_FLAG_H263P_SLICE_STRUCT' m_context->flags |= CODEC_FLAG_H263P_SLICE_STRUCT; ^ h263-1998.cxx:365:28: error: use of undeclared identifier 'CODEC_FLAG_H263P_SLICE_STRUCT' m_context->flags &= ~CODEC_FLAG_H263P_SLICE_STRUCT; ^ h263-1998.cxx:373:27: error: use of undeclared identifier 'CODEC_FLAG_H263P_AIV' m_context->flags |= CODEC_FLAG_H263P_AIV; ^ h263-1998.cxx:375:28: error: use of undeclared identifier 'CODEC_FLAG_H263P_AIV' m_context->flags &= ~CODEC_FLAG_H263P_AIV; ^ h263-1998.cxx:455:29: error: use of undeclared identifier 'CODEC_FLAG_H263P_UMV' CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_UMV); ^ h263-1998.cxx:454:62: note: expanded from macro 'CODEC_TRACER_FLAG' PTRACE(4, m_prefix, #flag " is " << ((m_context->flags & flag) ? "enable... ^ /usr/ports/net/opal/work/opal-3.10.10/include/codec/opalplugin.hpp:89:42: note: expanded from macro 'PTRACE' std::ostringstream strm; strm << args; \ ^ h263-1998.cxx:456:29: error: use of undeclared identifier 'CODEC_FLAG_OBMC' CODEC_TRACER_FLAG(tracer, CODEC_FLAG_OBMC); ^ h263-1998.cxx:454:62: note: expanded from macro 'CODEC_TRACER_FLAG' PTRACE(4, m_prefix, #flag " is " << ((m_context->flags & flag) ? "enable... ^ /usr/ports/net/opal/work/opal-3.10.10/include/codec/opalplugin.hpp:89:42: note: expanded from macro 'PTRACE' std::ostringstream strm; strm << args; \ ^ h263-1998.cxx:458:29: error: use of undeclared identifier 'CODEC_FLAG_H263P_SLICE_STRUCT' CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_SLICE_STRUCT) ^ h263-1998.cxx:454:62: note: expanded from macro 'CODEC_TRACER_FLAG' PTRACE(4, m_prefix, #flag " is " << ((m_context->flags & flag) ? "enable... ^ /usr/ports/net/opal/work/opal-3.10.10/include/codec/opalplugin.hpp:89:42: note: expanded from macro 'PTRACE' std::ostringstream strm; strm << args; \ ^ h263-1998.cxx:460:29: error: use of undeclared identifier 'CODEC_FLAG_H263P_AIV' CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_AIV); ^ h263-1998.cxx:454:62: note: expanded from macro 'CODEC_TRACER_FLAG' PTRACE(4, m_prefix, #flag " is " << ((m_context->flags & flag) ? "enable... ^ /usr/ports/net/opal/work/opal-3.10.10/include/codec/opalplugin.hpp:89:42: note: expanded from macro 'PTRACE' std::ostringstream strm; strm << args; \ ^ h263-1998.cxx:524:72: error: use of undeclared identifier 'FF_I_TYPE' ...= (flags & PluginCodec_CoderForceIFrame) ? FF_I_TYPE : AV_PICTURE_TYPE_N... ^ h263-1998.cxx:606:24: error: use of undeclared identifier 'CODEC_FLAG_H263P_UMV' m_context->flags &= ~CODEC_FLAG_H263P_UMV; ^ h263-1998.cxx:611:24: error: use of undeclared identifier 'CODEC_FLAG_H263P_AIV' m_context->flags &= ~CODEC_FLAG_H263P_AIV; ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. gmake[7]: *** [/usr/ports/net/opal/work/opal-3.10.10/plugins/../lib_FreeBSD_amd64/plugins/h263_ffmpeg/h263-1998.o] Error 1 gmake[7]: Leaving directory `/usr/ports/net/opal/work/opal-3.10.10/plugins/video/H.263-1998' gmake[6]: *** [all] Error 2 gmake[6]: Leaving directory `/usr/ports/net/opal/work/opal-3.10.10/plugins' gmake[5]: *** [subdirs] Error 2 gmake[5]: Leaving directory `/usr/ports/net/opal/work/opal-3.10.10' gmake[4]: *** [opt] Error 2 gmake[4]: Leaving directory `/usr/ports/net/opal/work/opal-3.10.10' ===> Compilation failed unexpectedly. Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to the maintainer. *** Error code 1 Stop. make[3]: stopped in /usr/ports/net/opal *** Error code 1 Stop. make[2]: stopped in /usr/ports/net/opal *** Error code 1 Stop. make[1]: stopped in /usr/ports/net-im/ekiga *** Error code 1 Stop. make: stopped in /usr/ports/net-im/ekiga >How-To-Repeat: On a system without net/opal: 1. Install multimedia/ffmpeg 2. Check that opal build will have the FFMPEG and X.264 options 3. make build >Fix: Not trivial: I think the best way would be to patch files including ffmpeg headers to use the ffmpeg0 prefix before libav*.h Another way would be to ensure -I${LOCALBASE}/include/ffmpeg0 is prepended before any other flag, but given the complexity of the build system, I'm not sure it is feasible... >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201404141652.s3EGqTGX013741>