# gnome-speech fails to compile during perl upgrade



## Grell (Jun 14, 2013)

Hey, during the process of upgrading Perl via the method in /usr/ports/UPDATING (`portmaster -r perl`), halfway through I get this error in the compilation of gnome-speech:
	
	



```
...
espeaksynthesisdriver.c: In function 'espeak_synthesis_driver_say':
espeaksynthesisdriver.c:574: error: 't_utterance' has no member named 'voice'
espeaksynthesisdriver.c:574: error: 'espeak_VOICE' undeclared (first use in this function)
espeaksynthesisdriver.c:574: error: expected expression before ')' token
espeaksynthesisdriver.c:574: error: '__n' undeclared (first use in this function)
espeaksynthesisdriver.c:575: error: 't_utterance' has no member named 'voice'
espeaksynthesisdriver.c:576: error: 't_utterance' has no member named 'voice'
espeaksynthesisdriver.c:576: error: 'EspeakSpeaker' has no member named 'voice'
espeaksynthesisdriver.c:577: error: 't_utterance' has no member named 'voice'
espeaksynthesisdriver.c:577: error: 'EspeakSpeaker' has no member named 'voice'
espeaksynthesisdriver.c:578: error: 't_utterance' has no member named 'text'
espeaksynthesisdriver.c:589: error: 't_utterance' has no member named 'user_data'
espeaksynthesisdriver.c:591: error: 't_utterance' has no member named 'user_data'
espeaksynthesisdriver.c: In function 'espeak_synthesis_driver_stop':
espeaksynthesisdriver.c:616: warning: implicit declaration of function 'espeak_Cancel'
espeaksynthesisdriver.c:616: warning: nested extern declaration of 'espeak_Cancel'
espeaksynthesisdriver.c: In function 'espeak_synthesis_driver_is_speaking':
espeaksynthesisdriver.c:631: warning: implicit declaration of function 'espeak_IsPlaying'
espeaksynthesisdriver.c:631: warning: nested extern declaration of 'espeak_IsPlaying'
espeaksynthesisdriver.c: At top level:
espeaksynthesisdriver.c:637: error: expected declaration specifiers or '...' before 'espeak_VOICE'
espeaksynthesisdriver.c: In function 'espeak_synthesis_driver_set_voice_spec':
espeaksynthesisdriver.c:639: error: 'espeak_ERROR' undeclared (first use in this function)
espeaksynthesisdriver.c:639: error: expected ';' before 'error'
espeaksynthesisdriver.c:640: error: 'EE_OK' undeclared (first use in this function)
espeaksynthesisdriver.c:640: error: 'error' undeclared (first use in this function)
espeaksynthesisdriver.c: In function 'espeak_synthesis_driver_set_voice_name':
espeaksynthesisdriver.c:647: error: 'espeak_ERROR' undeclared (first use in this function)
espeaksynthesisdriver.c:647: error: expected ';' before 'error'
espeaksynthesisdriver.c:648: error: 'error' undeclared (first use in this function)
espeaksynthesisdriver.c:648: error: 'EE_OK' undeclared (first use in this function)
espeaksynthesisdriver.c: At top level:
espeaksynthesisdriver.c:653: error: expected declaration specifiers or '...' before 'espeak_PARAMETER'
espeaksynthesisdriver.c: In function 'espeak_synthesis_driver_set_param':
espeaksynthesisdriver.c:656: error: 'espeak_ERROR' undeclared (first use in this function)
espeaksynthesisdriver.c:656: error: expected ';' before 'error'
espeaksynthesisdriver.c:657: error: 'error' undeclared (first use in this function)
espeaksynthesisdriver.c:657: error: 'EE_OK' undeclared (first use in this function)
gmake[3]: *** [espeaksynthesisdriver.o] Error 1
gmake[3]: Leaving directory `/usr/ports/accessibility/gnome-speech/work/gnome-speech-0.4.25/drivers/espeak'
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory `/usr/ports/accessibility/gnome-speech/work/gnome-speech-0.4.25/drivers'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/usr/ports/accessibility/gnome-speech/work/gnome-speech-0.4.25'
gmake: *** [all] Error 2
*** [do-build] Error code 1

Stop in /usr/ports/accessibility/gnome-speech.
*** [build] Error code 1

Stop in /usr/ports/accessibility/gnome-speech.
```
What can be the problem?


----------



## cpm@ (Jun 14, 2013)

Seems this error occurs when compiling accessibility/gnome-speech with ESPEAK option disabled. Try to build with it and continue rebuilding all ports that depends of Perl.

See ports/176929 for more details.


----------



## Grell (Jun 14, 2013)

Well I am still getting this error even when both options in the configuration dialog box are unchecked, including the espeak option.


----------



## ShelLuser (Jun 14, 2013)

Grell said:
			
		

> Well I am still getting this error even when both options in the configuration dialog box are unchecked, including the espeak option.


Just to rule things out: did you make sure to run `# make clean` before trying again?

That can really be a deal breaker, especially because a lot of programs actually cache the "diagnostic" results which are picked up during the configure phase.


----------



## Grell (Jun 14, 2013)

ShelLuser said:
			
		

> Just to rule things out: did you make sure to run `# make clean` before trying again?
> 
> That can really be a deal breaker, especially because a lot of programs actually cache the "diagnostic" results which are picked up during the configure phase.


Yeah, I did do a `# make clean`.  I have tried it several times, even screwing around with the Makefile itself, to no avail.


----------



## cpm@ (Jun 15, 2013)

It fails because can't find speak_lib.h header file provided by audio/espeak. To solve this error, be sure you enable ESPEAK option, do the following:
`# cd /usr/ports/accessibility/gnome-speech && make config && make install clean`

Once the compiler found the speak_lib.h header file the compilation should go fine.


----------

