chromium-system-speex-r0.patch is now failing because original include line has changed in chrome/browser/speech/speech_recognizer.cc.
Created attachment 259017 [details, diff] Fixed speex patch
Created attachment 259019 [details, diff] chromium-9999 diff file
I think that the patch shouldn't be needed, I've landed http://src.chromium.org/viewvc/chrome?view=rev&revision=70499 very recently. So the correct fix seems to be to remove the patch. Could you test on your system?
It is still needed since system speex lib is used, not third-party embedded one (the latter being also removed by the ebuild).
(In reply to comment #4) > It is still needed since system speex lib is used, not third-party embedded one > (the latter being also removed by the ebuild). > Yup. To rephrase that: "remove_bundled_lib third_party/speex" removes third_party/speex/speex.h, which is used due to the change Paweł referenced (pasted below). --- trunk/src/chrome/browser/speech/speech_recognizer.cc 2011/01/05 10:21:08 70498 +++ trunk/src/chrome/browser/speech/speech_recognizer.cc 2011/01/05 10:51:00 70499 @@ -10,7 +10,7 @@ #include "chrome/browser/browser_thread.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/net/url_request_context_getter.h" -#include "third_party/speex/include/speex/speex.h" +#include "third_party/speex/speex.h" using media::AudioInputController; using std::list;
As requested by Paweł, if the patch is removed from the ebuild, emerge fails with: chrome/browser/speech/speech_recognizer.cc:64: error: ‘SpeexBits’ does not name a type chrome/browser/speech/speech_recognizer.cc: In constructor ‘speech_input::SpeexEncoder::SpeexEncoder()’: chrome/browser/speech/speech_recognizer.cc:72: error: ‘bits_’ was not declared in this scope chrome/browser/speech/speech_recognizer.cc:73: error: ‘speex_bits_init’ was not declared in this scope chrome/browser/speech/speech_recognizer.cc:74: error: ‘speex_wb_mode’ was not declared in this scope chrome/browser/speech/speech_recognizer.cc:74: error: ‘speex_encoder_init’ was not declared in this scope chrome/browser/speech/speech_recognizer.cc:76: error: ‘SPEEX_GET_FRAME_SIZE’ was not declared in this scope chrome/browser/speech/speech_recognizer.cc:76: error: ‘speex_encoder_ctl’ was not declared in this scope chrome/browser/speech/speech_recognizer.cc:79: error: ‘SPEEX_SET_QUALITY’ was not declared in this scope chrome/browser/speech/speech_recognizer.cc:81: error: ‘SPEEX_SET_VBR’ was not declared in this scope chrome/browser/speech/speech_recognizer.cc: In destructor ‘speech_input::SpeexEncoder::~SpeexEncoder()’: chrome/browser/speech/speech_recognizer.cc:86: error: ‘bits_’ was not declared in this scope chrome/browser/speech/speech_recognizer.cc:86: error: ‘speex_bits_destroy’ was not declared in this scope chrome/browser/speech/speech_recognizer.cc:87: error: ‘speex_encoder_destroy’ was not declared in this scope chrome/browser/speech/speech_recognizer.cc: In member function ‘void speech_input::SpeexEncoder::Encode(const short int*, int, std::list<std::string*, std::allocator<std::string*> >*)’: chrome/browser/speech/speech_recognizer.cc:96: error: ‘bits_’ was not declared in this scope chrome/browser/speech/speech_recognizer.cc:96: error: ‘speex_bits_reset’ was not declared in this scope chrome/browser/speech/speech_recognizer.cc:97: error: expected type-specifier before ‘spx_int16_t’ chrome/browser/speech/speech_recognizer.cc:97: error: expected ‘>’ before ‘spx_int16_t’ chrome/browser/speech/speech_recognizer.cc:97: error: expected ‘(’ before ‘spx_int16_t’ chrome/browser/speech/speech_recognizer.cc:97: error: ‘spx_int16_t’ was not declared in this scope chrome/browser/speech/speech_recognizer.cc:97: error: expected primary-expression before ‘>’ token chrome/browser/speech/speech_recognizer.cc:103: error: ‘speex_bits_write’ was not declared in this scope make: *** [out/Release/obj.target/browser/chrome/browser/speech/speech_recognizer.o] Error 1 make: *** Waiting for unfinished jobs.... emake failed * ERROR: www-client/chromium-9999 failed: * (no error message)
The error I get is a bit more direct and to the point. This is because gcc-4.5 treats missing headers as fatal. chrome/browser/speech/speech_recognizer.cc:13:37: fatal error: third_party/speex/speex.h: No such file or directory compilation terminated. make: *** [out/Release/obj.target/browser/chrome/browser/speech/speech_recognizer.o] Error 1
Should now be fixed. Please reopen if that's not the case.