Bug 141416 - audio/gstreamer-plugins-taglib build error in gstid3v2mux.cc
Summary: audio/gstreamer-plugins-taglib build error in gstid3v2mux.cc
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Koop Mast
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-12-13 02:30 UTC by Kenyon Ralph
Modified: 2010-05-28 00:40 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kenyon Ralph 2009-12-13 02:30:02 UTC
Building audio/gstreamer-plugins-taglib 0.10.16_1,3 fails:

...

===>  Building for gstreamer-plugins-taglib-0.10.16_1,3
  CC    gsttaglibmux.o
  CXX   gstid3v2mux.o
gstid3v2mux.cc:55:37: error: textidentificationframe.h: No such file or directory
gstid3v2mux.cc:56:39: error: uniquefileidentifierframe.h: No such file or directory
gstid3v2mux.cc:57:34: error: attachedpictureframe.h: No such file or directory
gstid3v2mux.cc:58:33: error: relativevolumeframe.h: No such file or directory
gstid3v2mux.cc:59:27: error: commentsframe.h: No such file or directory
gstid3v2mux.cc:60:26: error: unknownframe.h: No such file or directory
gstid3v2mux.cc:61:28: error: id3v2synchdata.h: No such file or directory
gstid3v2mux.cc:62:22: error: id3v2tag.h: No such file or directory
gstid3v2mux.cc:65: error: 'TagLib' is not a namespace-name
gstid3v2mux.cc:65: error: expected namespace-name before ';' token
gstid3v2mux.cc:129: error: typedef 'GstId3v2MuxAddTagFunc' is initialized (use __typeof__ instead)
gstid3v2mux.cc:129: error: 'ID3v2' has not been declared
gstid3v2mux.cc:129: error: 'id3v2tag' was not declared in this scope
gstid3v2mux.cc:130: error: expected primary-expression before 'const'
gstid3v2mux.cc:131: error: expected primary-expression before 'const'
gstid3v2mux.cc:131: error: expected primary-expression before 'num_tags'
gstid3v2mux.cc:131: error: expected primary-expression before 'const'
gstid3v2mux.cc:134: error: variable or field 'add_encoder_tag' declared void
gstid3v2mux.cc:134: error: 'ID3v2' has not been declared
gstid3v2mux.cc:134: error: 'id3v2tag' was not declared in this scope
gstid3v2mux.cc:134: error: expected primary-expression before 'const'
gstid3v2mux.cc:135: error: expected primary-expression before 'const'
gstid3v2mux.cc:135: error: expected primary-expression before 'num_tags'
gstid3v2mux.cc:135: error: expected primary-expression before 'const'
gstid3v2mux.cc:80: warning: 'GstBuffer* gst_id3v2_mux_render_tag(GstTagLibMux*, GstTagList*)' declared 'static' but never defined
gmake: *** [libgsttaglib_la-gstid3v2mux.lo] Error 1
*** Error code 2

Stop in /usr/ports/audio/gstreamer-plugins-taglib.

===>>> make failed for audio/gstreamer-plugins-taglib
===>>> Aborting update

Full portmaster output: http://paste.pocoo.org/show/156644/

How-To-Repeat: On the current ports tree: portmaster -v -D multimedia/gstreamer-plugins-all
Comment 1 Kenyon Ralph 2009-12-13 12:38:36 UTC
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

This seems to be a problem with ccache. I removed the ccache port and
disabled it in /etc/make.conf, and I get this:

===>  Building for gstreamer-plugins-taglib-0.10.16_1,3
  CC    gsttaglibmux.o
  CXX   gstid3v2mux.o
  CXX   gstapev2mux.o
  LINK  libgsttaglib.la
eval: /usr/local/libexec/ccache/world-c++: not found
gmake: *** [libgsttaglib.la] Error 127
*** Error code 2

Stop in /usr/ports/audio/gstreamer-plugins-taglib.

===>>> make failed for audio/gstreamer-plugins-taglib
===>>> Aborting update

I'm not sure where that ccache line is coming from now.

- -- 
Kenyon Ralph
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAksk4EwACgkQmFtUtJKnbnWcwACbBq9Y2o4ffZLNug9Q0TqEolXD
jKIAn1AAnzHuKoGP6NU47v7yb3P6qByt
=gi5Z
-----END PGP SIGNATURE-----
Comment 2 Kenyon Ralph 2009-12-13 21:25:23 UTC
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Disabling ccache (but with devel/ccache installed) allowed the port to
build and install. I don't know why ccache causes the taglib includes to
not be used. The compilation is not verbose enough to debug and I don't
see yet how to make it more verbose.

Anyway, my make.conf now looks (partially) like this:

.if ${.CURDIR:M*/ports/devel/ccache*} \
    || ${.CURDIR:M*/ports/devel/qmake*} \
    || ${.CURDIR:M*/ports/audio/gstreamer-plugins-taglib*} \
    || ${.CURDIR:M*/ports/multimedia/gstreamer-plugins-mpeg2enc*}
    NO_CCACHE=yes
.endif

.if ${.CURDIR:M*/usr/ports*}
.if exists(/usr/local/libexec/ccache/world-cc) && !defined(NO_CCACHE)
    CC=/usr/local/libexec/ccache/world-cc
    CXX=/usr/local/libexec/ccache/world-c++
.endif
.endif

- -- 
Kenyon Ralph
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkslW8IACgkQmFtUtJKnbnWcBwCfXcjm9zVZgpkGMdUPE5oATlnE
peoAnAx0jvuD4iEYwrm5clc2kbmdxS14
=fCNn
-----END PGP SIGNATURE-----
Comment 3 Mark Linimon freebsd_committer freebsd_triage 2009-12-14 11:11:02 UTC
Responsible Changed
From-To: freebsd-ports-bugs->freebsd-multimedia

Fix Confidential and assign.
Comment 4 Koop Mast 2009-12-14 13:41:28 UTC
Can't help you with ccache related problems, but this doesn't look like
that is it.

To see what is compiling add "--enable-shave=no" to the end of the
CFLAGS line in multimedia/gstreamer-plugins/Makefile, and try again.

Though I suspect there is something wrong with with your taglib.
All the missing headers are installed by taglib 1.6.1. Can you check if
the headers are available in /usr/local/include/taglib. And if they
aren't there please rebuild audio/taglib before trying to build
gst-plug-taglib again.

-Koop
Comment 5 Kenyon Ralph 2009-12-14 18:20:23 UTC
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 2009-12-14T14:41:28+0100, Koop Mast <kwm@rainbow-runner.nl> wrote:
> Can't help you with ccache related problems, but this doesn't look like
> that is it.
> 
> To see what is compiling add "--enable-shave=no" to the end of the
> CFLAGS line in multimedia/gstreamer-plugins/Makefile, and try again.
> 
> Though I suspect there is something wrong with with your taglib.
> All the missing headers are installed by taglib 1.6.1. Can you check if
> the headers are available in /usr/local/include/taglib. And if they
> aren't there please rebuild audio/taglib before trying to build
> gst-plug-taglib again.

Thanks for the reply.

/usr/local/include/taglib and its contents exist; the problem was that
with ccache enabled, the -I/usr/local/include/taglib argument in CFLAGS
was not present in the compilation commands. Indeed, disabling ccache
via /etc/make.conf allowed gstreamer-plugins-taglib (and
gstreamer-plugins-mpeg2enc) to build correctly.

A quick fix would be to disable ccache for these ports in their
Makefiles. Of course, making them work with ccache would be better, but
it's not that big of a deal.

- -- 
Kenyon Ralph
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAksmgeYACgkQmFtUtJKnbnWT7ACgiSarE/V1V/fSY7XmNDV/wj+d
9NYAoKm/0usjukRUaURg4GujKjtc3IXj
=F+Hk
-----END PGP SIGNATURE-----
Comment 6 Kenyon Ralph 2009-12-15 05:03:15 UTC
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 2009-12-14T14:41:28+0100, Koop Mast <kwm@rainbow-runner.nl> wrote:
> Can't help you with ccache related problems, but this doesn't look like
> that is it.

By the way, same problem on Linux:
https://bugs.gentoo.org/show_bug.cgi?id=292739

- -- 
Kenyon Ralph
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAksnGJMACgkQmFtUtJKnbnWqrgCfYzIYEf8JMZWrOpqlOUVURQl9
O2MAoNcsTh/5p9ON6Ic21a2kiAbGWnsW
=9sJq
-----END PGP SIGNATURE-----
Comment 7 Koop Mast freebsd_committer freebsd_triage 2009-12-15 09:40:00 UTC
Responsible Changed
From-To: freebsd-multimedia->kwm

Grab, problem is in ccache. Will keep a eye on it.
Comment 8 Koop Mast freebsd_committer freebsd_triage 2010-05-27 22:49:38 UTC
State Changed
From-To: open->closed

Closing, this is a ccache problem, or interaction with ccache. From 
what I seen there isn't a solution for this.
Comment 9 Kenyon Ralph 2010-05-28 00:30:42 UTC
On 2010-05-27T21:51:07+0000, kwm@FreeBSD.org wrote:
> Synopsis: audio/gstreamer-plugins-taglib build error in gstid3v2mux.cc
> 
> State-Changed-From-To: open->closed
> State-Changed-By: kwm
> State-Changed-When: Thu May 27 21:49:38 UTC 2010
> State-Changed-Why: 
> Closing, this is a ccache problem, or interaction with ccache. From
> what I seen there isn't a solution for this.
> 
> http://www.freebsd.org/cgi/query-pr.cgi?pr=141416


I think the solution is to disable ccache in the Makefile of
audio/gstreamer-plugins-taglib.

-- 
Kenyon Ralph