Posts

A live binutils ebuild

I have written a live binutils ebuild. It is now in my loongson overlay. I wrote it because binutils cvs already got loongson 2e and 2f support, but new version is not released yet. The ebuild itself is quite simple, thanks to cvs.eclass and toolchain.eclass. However, in order to make it really work, I have to modify cvs.eclass. The reason is: The checked out directory name of binutils is called "src". While cvs.eclass expects the checked out directory name is the same as the package name, i.e. "binutils". Unfortunately, "co -d binutils binutils" doesn't work. If I use "co -d binutils binutils", I can only checked out the "binutils" directory, while the actual binutils module contains more than that. So, the most straight forward way to solve this would be to "mv src binutils" after checking it out, and this was exactly what I did. I need a new variable name to hold "src". I call it ECVS_CO_DIR. Some other things

Share /usr/portage via NFS

Recently I have tried sharing /usr/portage among several boxes via NFS after I've read http://www.gentoo.org/proj/en/portage/doc/faq.xml. I followed portage's manpage, created /etc/portage/modules on nfs client $ cat /etc/portage/modules portdbapi.auxdbmodule = cache.metadata_overlay.database And removed all cache files under /var/cache/edb/dep/usr/portage So that I don't need to run emerge --metadata on nfs client after emerge --sync. It is not over yet for eix users. If you have a $HOME/.eixrc and defines in it PORTDIR_CACHE_METHOD as something like "portage-2.1"/"cdb"/"sqlite"(check man eix), you may want to remove the ~/.eixrc file. Since those methods requires you to run emerge --metadata before update-eix, and thus defeat our purpose in the first place.

Some progress on Loongson

The Qt-3.3.8-r4 linking problem is solved. The problem is caused by a bug in binutils which has already been fixed . I have already put an live ebuild for binutils in my loongson overlay . Loongson already got binutils' support. Please check the links below: 1. http://sourceware.org/ml/binutils/2007-11/msg00227.html 2. http://sourceware.org/ml/binutils/2007-11/msg00232.html Loongson's gcc support which is also developed by codesourcery is coming on the way, maybe in the next couple of month. Gcc is "in Stage 3 at the moment, which essentially amounts to regression fixes only, so the patches can't be committed yet". They will submit the patch to gcc when gcc comes to stage 1 again. In the meantime, we (some audacious guys from lemote.com's forum) have made our own gcc patch, which is already available on my overlay . Honestly, I don't think our patch would be as elegant as codesourcery's. After all, they make a living by making such patches. But we

Be aware that both cscope and make honor $SOURCEDIRS

Emerging media-sound/cdparanoia failed lately on my box when I was running "sudo emerge...". The error was that an archive file was missing. However, I didn't find any bug report related to that on bug.g.o. So, I decided to take a look myself. I found that if I emerged it using root user, then everything was ok. So, I suspected this might have something to do with my environment setting, coz I don't reset env for users in wheel group(so that I can "USE=... sudo emerge"). I ran ebuild unpack/install/compile/install separately using normal user and root to determine which stage caused the difference. Finally, I found the difference happened when "make"ing in the paranoia directory. An target called "lib" defines the rule to build that archive file. The lib is not a real file, however it is not labeled as PHONY. Apparently, the target is not run. But why? I straced make as normal user. I found something strange. The strange thing was mak

the myths about stardict-3.0.1's text-to-speech feature

stardict-3 is now available via gentoo-china overlay . (I wish I could pass ebuild quiz soon and become stardict's maintainer in gentoo...) stardict-3 has got tts feature. It could use festival or espeak to play an arbitrary sequence of characters. There are two ways to use this feature. One way is via tts plugin, one for each tts engine. In fact, tts plugin does more than that - it could set the voice of its corresponding tts engine as well. The other way is to specify the command to play yourself, and there are two options which you can choose from, "echo %s | festival --tts" and "espeak %s". My experience is the first way has priority over the latter one. My suggestion is to use the latter one. Because tts plugin's functionality is redundant. You can choose tts engine's voices anyway. And you can use tts engine without them. Moreover, the festival plugin will segfault the program[1]. So, IMHO, the tts plugins are dispensable. So in my stardict-3.0.1-r

failed to build qt-3.3.8-r4 on loongson

Haven't solve it yet. I have already tried to add -mxgot to CFLAGS and CXXFLAGS. But it didn't work for me. Some useful link: http://cygwin.com/ml/binutils/2003-04/msg00258.html http://gcc.gnu.org/ml/java/2004-10/msg00018.html http://www.cygwin.com/ml/binutils/2006-04/msg00006.html

Fixed a bug in xml2po

http://bugzilla.gnome.org/show_bug.cgi?id=437371#c4 The condition to trigger the bug is that opening tag or the content of the tag contains non-ascii chars. e.g: <title>Quotes are for weak people, strong people have their own opinions - Dawid Węgliński (cla)</title> <body> <figure link="/images/gwn/20070917_cla.jpg" short="cla" caption="Dawid Węgliński, aka cla"/> The symptom is: Stack trace: Traceback (most recent call last): File "xml2po.py", line 856, in ? doSerialize(doc) File "xml2po.py", line 589, in doSerialize outtxt += doSerialize(child) File "xml2po.py", line 583, in doSerialize (starttag, content, endtag, translation) = processElementTag(node, repl, 1) File "xml2po.py", line 525, in processElementTag translation = translation.replace(' ' % (i), replacement) UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 635: ordinal not in