Bug 8280 - fix the media-sound/festival ebuild
Bug#: 8280 Product:  Gentoo Linux Version: 1.2 Platform: x86
OS/Version: Linux Status: RESOLVED Severity: normal Priority: P2
Resolution: FIXED Assigned To: mkeadle@gmail.com Reported By: thompson@pobox.com
Component: Ebuilds
URL: 
Summary: fix the media-sound/festival ebuild
Keywords:  
Status Whiteboard: 
Opened: 2002-09-23 21:07 0000
Description:   Opened: 2002-09-23 21:07 0000
The main problem with the ebuild was the lack of documentation installed;
the docs it tried to install, failed due to a slight error. I fixed that, added
the man pages, and also a nice batch of html docs.
I also changed a 'make' into an emake. (works on my smp box)
This ebuild sucked a tarball from gentoo land, which contained a few
one line patches, and a script full of ebuild commands. This is opaque and
hard to make simple changes to, so I turned the patches into a few
sed commands, and put the ebuild commands into the ebuild.
This patch tarball can now go away. (patches would be ok if they were
at least simply in the 'files' subdir of the ebuild, but it seems wrong
to me to source a script of ebuild commands installed via a patch.)
I also added a sample rc file, and some hopefully helpful post install
messages. Thanks for the intial ebuild.

Paul

------- Comment #1 From Paul Thompson 2002-09-23 21:08:37 0000 -------
Created an attachment (id=4119) [details]
media-sound/festival-1.4.2-r1.ebuild  modified ebuild

------- Comment #2 From Paul Thompson 2002-09-24 20:16:53 0000 -------
Created an attachment (id=4148) [details]
media-sound/festival-1.4.2-r1.ebuild  cleaned 

Previous attached ebuild had a test thing that didnt work (didnt hurt, but
didnt work) This removes it.

------- Comment #3 From Matt Keadle 2002-09-24 20:50:04 0000 -------
Thanks for the new ebuild Paul! I've messed with it some here and it emerges
just fine, but when I try to access any of the non-default voices (ie. mbrola)
it breaks:

noc2 root # echo "hello" | festival --tts
sh: mbrola: command not found
Cannot open file /tmp/est_20732_00000.au as tokenstream
Wave load: can't open file "/tmp/est_20732_00000.au"
Cannot load wavefile: /tmp/est_20732_00000.au

I'll be looking at it more tonight, but it seems offhand that the mbrola binary
isn't getting installed:

noc2 root # whereis mbrola
mbrola:

Should be a simple matter to fix.

------- Comment #4 From Matt Keadle 2002-09-24 20:53:29 0000 -------
Well, the fix is to 'emerge mbola' and stop being a silly man. So everything
looks good here so far.

------- Comment #5 From Paul Thompson 2002-09-29 22:49:45 0000 -------
Created an attachment (id=4308) [details]
Another ebuild that attempts to fix gcc-3.2 compile problems

cryst <cryst@golden.net> noted that the previous ebuilds did not build on his
gcc-3.2 system. Cryst forwarded a message from Alan W Black <awb@cs.cmu.edu>
with link to a fix. http://festvox.org/packed/random/est_gcc3.2.tar.gz

I converted that into a patch. The ebuild still failed in the 'testsuite' dir
of
speech_tools, but I chopped that out, as it is not required.

tested by me with gcc-2.95.3 and gcc-3.2 on a 1.2 gentoo profile
I have not yet heard from Cryst, who runs a 1.4 profile

attached tarball created like:
tar cf festival.tar media-sound/festival

------- Comment #6 From Matt Keadle 2002-10-02 16:28:46 0000 -------
*** Bug 4989 has been marked as a duplicate of this bug. ***

------- Comment #7 From Matt Keadle 2002-10-02 16:29:08 0000 -------
*** Bug 5402 has been marked as a duplicate of this bug. ***

------- Comment #8 From Rigo 2002-10-03 02:09:49 0000 -------
Still cannot compile (Tried both builds):

gcc -O3 -Wall -o ch_track ch_track_main.o -L../lib -lestools -L../lib -lestbase
-L../lib -leststring -lncurses -ldl -lm -lstdc++
../lib/libestbase.a(vector_c_t.o): In function
`EST_TVector<char>::save(EST_String const&)':
vector_c_t.o(.gnu.linkonce.t._ZN11EST_TVectorIcE4saveERK10EST_String+0x1b0):
undefined reference to `std::__pad<char, std::char_traits<char>
>::_S_pad(std::ios_base&, char, char*, char const*, int, int, bool)'
collect2: ld gaf exit-status 1 terug
make[1]: *** [ch_lab] Fout 1
make[1]: *** Wachten op onafgeronde taken...
../lib/libestbase.a(vector_c_t.o): In function
`EST_TVector<char>::save(EST_String const&)':
vector_c_t.o(.gnu.linkonce.t._ZN11EST_TVectorIcE4saveERK10EST_String+0x1b0):
undefined reference to `std::__pad<char, std::char_traits<char>
>::_S_pad(std::ios_base&, char, char*, char const*, int, int, bool)'
collect2: ld gaf exit-status 1 terug
make[1]: *** [ch_track] Fout 1
make: *** [main] Fout 2

!!! ERROR: The ebuild did not complete successfully.
!!! Function src_compile, Line 61, Exitcode 2
!!! (no error message)


------- Comment #9 From Paul Thompson 2002-10-03 02:52:54 0000 -------
Cryst also couldnt compile it under his 1.4 profile.
Unfortunately, since using gcc-3.2 under my 1.2 profiles works, I cant
debug this. Someone else needs to solve the problem, probably from upstream.

I have no plans to upgrade to 1.4, as it seems to be broken for many packages.
It is unfortunate that I havent been able to get any ebuilds thru for over
 a month due to it. In this sense, gentoo is in an awkward place; upgrading to
1.4 is too broken for me, and no one wants to deal with new ebuilds to improve
1.2. (I think they jumped the gun on gcc-3.2, but respect them for being agents
of change)

Waiting for the rest of the universe to catch up...

Paul

------- Comment #10 From Matt Keadle 2002-10-03 12:11:33 0000 -------
Show me yours, I'll show you mine!

gcc  -fno-implicit-templates  -O3 -Wall -Wno-non-template-friend    -o
token_regression token_regression.o    -L../lib -lestools -L../lib -lestbase
-L../lib -leststring   -lncurses   -ldl  -lm  -lstdc++ 
../lib/libestbase.a(vector_c_t.o): In function
`EST_TVector<char>::save(EST_String const&)':
vector_c_t.o(.gnu.linkonce.t._ZN11EST_TVectorIcE4saveERK10EST_String+0x1b0):
undefined reference to `std::__pad<char, std::char_traits<char>
>::_S_pad(std::ios_base&, char, char*, char const*, int, int, bool)'
collect2: ld returned 1 exit status
make[1]: *** [track_regression] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [testsuite] Error 2

Fails on a different file w=but with the same function:

In../lib/libestbase.a(vector_c_t.o): In function `EST_TVector<char>:

I'm not a C guy so I'm limited in my range of guesses. -03 causing this kind of
problem? I'll do what I can for a little while longer. I'm just as much a
festival as anyone else, so I'm interested in getting this to work!

Also, I understand the periodic frustration surrounding the move to gcc3.2. 1.2
packages *are* being updated if they resolve bugs. And many (tons, actually) new
ebuilds are just waiting to be played with as soon as we settle a few 1.4 issues
first.

>> Waiting for the rest of the universe to catch up...

I couldn't have said it better myself.

------- Comment #11 From Matt Keadle 2002-10-05 21:44:11 0000 -------
*** Bug 8762 has been marked as a duplicate of this bug. ***

------- Comment #12 From Tom Ribbens 2002-10-08 10:56:47 0000 -------
Same problem:

gcc -O3 -Wall -o ch_lab ch_lab_main.o -L../lib -lestools -L../lib -lestbase 
-L../lib -leststring -lncurses -ldl -lm -lstdc++
../lib/libestbase.a(vector_c_t.o): In function 
`EST_TVector<char>::save(EST_String const&)':
vector_c_t.o(.gnu.linkonce.t._ZN11EST_TVectorIcE4saveERK10EST_String+0x1b0): 
undefined reference to `std::__pad<char, std::char_traits<char> 
>::_S_pad(std::ios_base&, char, char*, char const*, int, int, bool)'
collect2: ld returned 1 exit status
make[1]: *** [ch_lab] Error 1
make: *** [main] Error 2


My CFLAGS (if it helps):
CFLAGS="-O3 -march=athlon-xp -fomit-frame-pointer -fforce-addr 
-funroll-loops -frerun-cse-after-loop -frerun-loop-opt -falign-functions=4"
CXXFLAGS=${CFLAGS}

------- Comment #13 From Michal Maruska 2002-10-10 21:01:30 0000 -------
has anybody looked at the redhat's  SRPM  
http://rpmfind.net/linux/RPM/rawhide/1.0/i386/RedHat/RPMS/festival-1.4.2-12.i386.html 

------- Comment #14 From Rigo 2002-10-11 05:18:08 0000 -------
Maybe of any help also:

http://www.cstr.ed.ac.uk/projects/festival/mailing_lists/festival-talk/msg01091.html

------- Comment #15 From Rigo 2002-10-11 07:54:23 0000 -------
Just below is the origional message of Alan, copied from the
mailing-list...When
I start comparing this with my situation, there are some differences:

Origional COMPILERLIBS from mail:
/usr/gnu/gcc-3.0.3/lib/libstdc++.so.3.0.2 
/usr/gnu/gcc-3.0.3/lib/libgcc_s.so.1

My situation:
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2/libstdc++.so.5.0.0
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2/libgcc_s.so.1

Maybe they use an old glibc and ours is different ?

emerge -p glibc prune gives me:

 sys-libs/glibc
    selected: 2.2.5-r8
   protected: 2.2.5-r7
     omitted: none

So it protects -r7 ? why ?

I'm gonna see if there's any help upsteam...

Wish me luck ;-), Rigo





message from Alan W Black <awb@cs.cmu.edu> to festival-talk
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =


 Joe writes on 7 October 2002:
 > message from "Joe" <joe@echooff.com> to festival-talk
 > = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
 > 
 > I am using Mandrake 9.0 which comes with gcc 3.2 and I'm trying to get
 > Festival installed and running.  First, I'm trying to compile
 > speech_tools-1.2.2-release.tar.gz.  I tried the instructions listed by
 > Alan Black on September 26 and I extracted
 > http://festvox.org/packed/random/est_gcc3.2.tar.gz into the speech_tools
 > directory and reran ./configure and make.  I got the same output that I
 > got the first time I tried it, which is:

After unpacking est_gcc3.2.tar.gz and doing ./configure does 

    make info

give you right compiler?

Also not you need to do a make clean after reconfiguring.

 > Making in directory ./main ...
 > g++ -O3 -Wall -o ch_lab ch_lab_main.o -L../lib -lestools -L../lib
 > -lestbase -L../lib -leststring -ltermcap -ldl -lm -lstdc++
 > ../lib/libestbase.a(vector_c_t.o): In function
 > `EST_TVector<char>::save(EST_String const&)':
 > vector_c_t.o(.gnu.linkonce.t._ZN11EST_TVectorIcE4saveERK10EST_String+0x1
 > 8f): undefined reference to `std::__pad<char, std::char_traits<char>
 > >::_S_pad(std::ios_base&, char, char*, char const*, int, int, bool)'
 > collect2: ld returned 1 exit status
 > make[1]: *** [ch_lab] Error 1
 > make: *** [main] Error 2
 > 
 > Hmmm...seems to be a linker problem, but I've looked in several files
 > and even though I program in C++ for a living, I have no clue what is
 > going wrong.

This is a problem with the linker so either its linking non 3.2
compiled .o files iwth a 3.2 library or linking non-3.2 stdc++ with
3.2 .o files.  Its *very* easy to hvae gcc pick up the wrong stdc++
library when there are multiple versions on the same machine. 

Do you have more than one version of gcc on your machine?  More
importantly more than one version of libstdc++?

When I do this (I have about 10 different versions of gcc on my
machine, not counting cross compilers) I always explicitly add the
libs to the end of the speech_tools/config/config with a line like

COMPILERLIBS = /usr/gnu/gcc-3.0.3/lib/libstdc++.so.3.0.2
/usr/gnu/gcc-3.0.3/lib/libgcc_s.so.1

Alan

------- Comment #16 From Julian J. 2002-10-11 17:36:02 0000 -------
I finally managed to compile festival on a gcc 3.1.1 system. I previously had
char_traits problem. I followed the instructions on the above post, but had to
use the .a version of libstdc++ (static i guess), instead of the .so...

So I edited the 1.4.2-r1 ebuild and added this after the first "econf | die":
echo "COMPILERLIBS=/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/libstdc++.a
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/libgcc_s.so.1" >> ${T}/config/config

I don't know how to guess that path, so let's see if any gentoo developer fixes
the ebuild to make it generic.

Bye... Now Gentoo *CAN* speak :)

------- Comment #17 From Rigo 2002-10-12 11:31:04 0000 -------
Does this work for you, as it works for me ;-D ? Good work !

Rigo

+GCCPV=`cc -dumpversion` 
 HOMEPAGE="http://www.cstr.ed.ac.uk/"
 SITE="http://www.speech.cs.cmu.edu/${PN}/cstr/${PN}/${PV}"
 
@@ -46,6 +47,11 @@
 	patch -p1 < ${FILESDIR}/${P}.patch || die
 
 	econf || die
+	
+	if [ ${GCCPV} != "2.95" ] ; then
+		echo "COMPILERLIBS=/usr/lib/gcc-lib/i686-pc-linux-gnu/${GCCPV}/libstdc++.a
/usr/lib/gcc-lib/i686-pc-linux-gnu/${GCCPV}/libgcc_s.so.1" >> ${T}/config/config
+	fi

------- Comment #18 From Chris Bruner 2002-10-16 08:22:18 0000 -------
message from "Joseph Schofield" <joe@echooff.com> to festival-talk 
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 
 
One solution for this problem was sent to me and I thought I'd share it 
with the list.  It was suggested that I link to the static libstdc++ 
(.a) library. 
 
I did this by adding the following line to the config/config file in 
speech_tools 
 
COMPILERLIBS=/usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.2/libstdc++.a 
/lib/libgcc_s-3.2.so.1 
 
However, I first had to install "libstdc++.a" which I found on Mandrake 
9.0 CD #3. 
 
rpm -ivh libstdc++5-static-devel-3.2-1mdk.i586.rpm 
 

------- Comment #19 From Paul Oswald 2002-10-16 23:23:14 0000 -------
Perhaps as a better interim fix could we static compile festival with gcc 2.95?
If bug 8491 gets squashed then that would be pretty easy:

http://bugs.gentoo.org/show_bug.cgi?id=8491

Otherwise, is there any other way to generate a working libstdc++.a file on Gentoo?

------- Comment #20 From Rigo 2002-10-17 04:35:29 0000 -------
Created an attachment (id=4774) [details]
festival-1.4.2-r2.ebuild

This ebuild worked for me (on a 3.2 system :-D), please test...


Rigo

------- Comment #21 From Matt Keadle 2002-10-17 15:53:33 0000 -------
I'm realizing that for all the testing I'm doing I'm not getting back here to 
post comments!

I can't appreciate the help and effort everyone has devoted enough! Thanks for 
your your work and effort and this should all be coming to a head soon. I'm 
itching to play with the ebuild posted in the last comment, but I'm curently at 
a corporate conference (in the meeting atm! snooze!). I'm due to be home on 
Sunday, so I'll test-test-test and we'll see how it goes.

Again, thanks for all this input!

------- Comment #22 From Matt Keadle 2002-10-22 22:15:49 0000 -------
OK. I'm looking to wrap this up as soon as possible.

Could any of you that currently have the gcc3 patch please post it here? I've 
had a few users that want to try these things out, but don't have the patch 
referenced in the later ebuilds. I would post it myself, but I don't have it 
either! Thanks gents!


------- Comment #23 From Rigo 2002-10-23 03:15:45 0000 -------
Created an attachment (id=4924) [details]
festival-1.4.2.patch

------- Comment #24 From Rigo 2002-10-23 03:21:00 0000 -------
Could you - by any chance - look at bug #9066 also ? I guess the same users 
will like that one too ;-) 
 
Keep up the good work, 
 
Rogi  

------- Comment #25 From Matt Keadle 2002-10-23 16:30:20 0000 -------
festival-1.4.2-r1 has been committed!

I know we've been working with -r2.ebuild, but there never was an -r1 committed
to portage, so, now that it seems we've taken care of this bug, the official
update is -r1. A minor detail, but one worth explaining.

So as a final push, this is what I'd ask of each of you:

Remove (backup) your local copies of festival ebuilds, unmerge festival, emerge
rsync, then emerge festival. Let me know how it goes and hopefuly we can close
out this thing.

------- Comment #26 From Dylan Carlson (RETIRED) 2002-10-24 23:20:41 0000 -------
greetings -- gcc 3.2 failure on 2.4.19-r9 kernel, using the latest ebuild: 
 
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2/libstdc++.a(locale.o)(.text._ZNSt5ctypeIcEC1EPKtbj+0x87):/var/tmp/portage/gcc-3.2-r2/work/gcc-3.2/libstdc++-v3/src/locale.cc:172: 
undefined reference to `__ctype_tolower' 
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2/libstdc++.a(locale.o)(.text._ZNSt5ctypeIcEC1EPKtbj+0x9c):/var/tmp/portage/gcc-3.2-r2/work/gcc-3.2/libstdc++-v3/src/locale.cc:175: 
undefined reference to `__ctype_b' 
collect2: ld returned 1 exit status 
make[1]: *** [ch_lab] Error 1 
make[1]: *** Waiting for unfinished jobs.... 
Making in directory ./bin ... 
 
Remove Links: 
 
Scripts: (sh) (prl) example_to_doc++ resynth pm make_wagon_desc raw_to_xgraph 
est_examples est_gdb est_program cxx_to_docbook build_docbook_index 
tex_to_images 
 
Main Links: ch_lab ch_track ch_wave na_play na_record sigfilter sig2fv 
spectgen pda pitchmark ngram_test ngram_build tilt_synthesis tilt_analysis 
viterbi dp bcat ch_utt fringe_client design_filter align siod wagon wagon_test 
scfg_make scfg_train scfg_test scfg_parse wfst_build wfst_run ols ols_test 
xml_parser 
make: *** [main] Error 2 
 
!!! ERROR: The ebuild did not complete successfully. 
!!! Function src_compile, Line 66, Exitcode 2 
!!! (no error message) 
 

------- Comment #27 From Matt Keadle 2002-10-25 05:24:30 0000 -------
>> /var/tmp/portage/gcc-3.2-r2/work/gcc-3.2/libstdc++-v3/src/locale.cc:172:

Hmm.. That bit doesn't look good. I'm upgrading to -r2 now to see if I get the
same thing. Currently i'm on gcc3.2-r1 with no problems.

------- Comment #28 From Matt Keadle 2002-11-04 17:38:57 0000 -------
No comments is a long time! How is everyone's install? Working out?

------- Comment #29 From Tom Ribbens 2002-11-05 07:34:07 0000 -------
echo "It works for me" | festival --tts

err, ... you get the idea

GreetZ,
Tom

------- Comment #30 From Matt Keadle 2002-11-07 16:31:54 0000 -------
I'm killing this for now. If anyone experiences any more issues feel free to
report.

Dylan! In regards to your post on 10-24-2002. A snipit:

/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2/libstdc++.a(locale.o)(.text._ZNSt5ctypeIcEC1EPKtbj+0x87):/var/tmp/portage/gcc-3.2-r2/work/gcc-3.2/libstdc++-v3/src/locale.cc:172:

undefined reference to `__ctype_tolower' 
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2/libstdc++.a(locale.o)(.text._ZNSt5ctypeIcEC1EPKtbj+0x9c):/var/tmp/portage/gcc-3.2-r2/work/gcc-3.2/libstdc++-v3/src/locale.cc:175:

undefined reference to `__ctype_b'

See the paths
"/var/tmp/portage/gcc-3.2-r2/work/gcc-3.2/libstdc++-v3/src/locale.cc" ? I've
got
a feeling that your gcc install, or some part of it, may be a little screwy.
You
may want to run `qpkg -l gcc` and see if any paths similar to the above who up.
Out of madness and fury I've had an entire fleet of gcc3.2 users emerge the
latest festival and I've yet to see a repeat occurance of that error. Not to
say
I'm not still working on it in the back of my head though.

Thanks for everyones input on this!