By default, Bugzilla does not search the list of RESOLVED bugs.
You can force it to do so by putting the upper-case word ALL in front of your search query, e.g.: ALL tdelibs
We recommend searching for bugs this way, as you may discover that your bug has already been resolved and fixed in a later release.
Bug 1858 - k3b FTBFS - error: invalid use of incomplete type 'mpc_decoder
Summary: k3b FTBFS - error: invalid use of incomplete type 'mpc_decoder
Status: RESOLVED INVALID
Alias: None
Product: TDE
Classification: Unclassified
Component: non-core programs (show other bugs)
Version: R14.0.0 [Trinity]
Hardware: All Linux
: P5 blocker
Assignee: Timothy Pearson
URL:
Depends on:
Blocks:
 
Reported: 2014-01-23 09:55 CST by David C. Rankin
Modified: 2014-01-25 03:47 CST (History)
2 users (show)

See Also:
Compiler Version:
TDE Version String:
Application Version:
Application Name:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David C. Rankin 2014-01-23 09:55:39 CST
k3b fails to build on Archlinux. (gcc 4.8.2-7)

Summary of the warning/error trail:

k3bmpcwrapper.cpp: In constructor 'K3bMpcWrapper::K3bMpcWrapper()':
k3bmpcwrapper.cpp:70:22: warning: invalid conversion from 'mpc_int32_t (*)(void*.... to 'mpc_int32_t (*)(mpc_reader*....
   warning: invalid conversion from 'mpc_bool_t 
   warning: invalid conversion from 'mpc_int32_t
   warning: invalid conversion from 'mpc_int32_t
   warning: invalid conversion from 'mpc_bool_t 
k3bmpcwrapper.cpp:77:28: error: invalid use of incomplete type 'mpc_decoder
/usr/include/mpc/mpcdec.h:55:16: error: forward declaration of 'mpc_decoder
k3bmpcwrapper.cpp:88:10: note: neither the destructor nor the class-specific
operator delete will be called, even if they are declared when the class is defined
k3bmpcwrapper.cpp:101:33: error: 'mpc_streaminfo_init' was not declared in this scope
k3bmpcwrapper.cpp:102:47: error: 'mpc_streaminfo_read' was not declared in this scope
k3bmpcwrapper.cpp:102:52: error: 'ERROR_CODE_OK' was not declared in this scope
k3bmpcwrapper.cpp:107:46: error: 'mpc_decoder_setup' was not declared in this scope
k3bmpcwrapper.cpp:108:54: error: 'mpc_decoder_initialize' was not declared in this scope
k3bmpcwrapper.cpp:136:77: error: 'mpc_decoder_decode' was not declared in this scope
k3bmpcwrapper.cpp:173:78: error: 'mpc_decoder_seek_seconds' was not declared in this scope

  The code complained of is in k3b/src/plugins/decoder/musepack/k3bmpcwrapper.cpp:

K3bMpcWrapper::K3bMpcWrapper()
{
  m_input = new TQFile();

  m_reader           = new mpc_reader;
  m_reader->read     = read_impl;
  m_reader->seek     = seek_impl;
  m_reader->tell     = tell_impl;
  m_reader->get_size = get_size_impl;
  m_reader->canseek  = canseek_impl;
  m_reader->data     = m_input;

  m_decoder          = new mpc_decoder;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  m_info             = new mpc_streaminfo;
}

  I have looked at the code and the definition in the header and cannot determine what to do differently. But k3b has to build in order to build k9copy on nohal systems. Let me know what additional information you need.
Comment 1 David C. Rankin 2014-01-25 03:47:45 CST
In all its glory. the problem was a bad header file in musepack-tools-svn (mpcdec.h) that ws an older version of the file. Replacing the headers with the proper files from libmpcdec allowed k3b to build!

musepack-tools is now deprecated. Use libmpcdec instead (which is from musepack-tools svn). Do not use any of the musepack-tools tarballs.

This one can be closed, but the build is filled with warning of the standard gcc 4.7 + type.