Archive for the 'p.d.o' Category

Why ? Why ? Why ?


mh@namakemono:/tmp$ wget "http://download.mozilla.org/?product=firefox-1.5b2&os=linux&lang=en-US"
(...)
mh@namakemono:/tmp$ tar -zxf firefox-1.5b2.tar.gz
mh@namakemono:/tmp$ cd firefox/
mh@namakemono:/tmp/firefox$ ./firefox
./run-mozilla.sh: line 131: 7540 Segmentation fault "$prog" ${1+"$@"}
mh@namakemono:/tmp/firefox$ ldd firefox-bin | grep c++
libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0xb7610000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb67b3000)

Why on earth is upstream's firefox linked against BOTH libstdc++5 AND libstdc++6 ?!?

Update: Okay, now, with a little more thinking:

mh@namakemono:/tmp/firefox$ LD_LIBRARY_PATH=. ldd firefox-bin | grep c++
libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0xb75a0000)

And after a bit more investigation, it appears that the gtk module for scim is responsible for loading libstdc++.so.6...

2005-11-05 22:38:22+0900

firefox | 1 Comment »

Dealing with mozilla.org

I've been dealing with some open source projects in the past, submitting patches and stuff, but dealing with mozilla.org is really a hassle. You never really know what to do at what moment. They even admit that it's not easy... And I'm not even talking about how bugzilla is a pain in the ass.

But this is the first time I've been asked to actually find a submitter myself.

I already sent patches that actually did land in the CVS without me requesting anything. So what's the difference ? That it's a feature request instead of a bug ?

What about my other patches ?

2005-11-05 09:31:20+0900

firefox, xulrunner | 1 Comment »

Nasty bugs

Recently, I've been going through mozilla-firefox's list of bugs and took a look to some of them. I got interested in #336411, since I'm regularly hit by this one myself (remember ? I said I got strange crashes with 1.5beta1).

It appears that this strange crasher is in fact due to extensions using binary components. ColorZilla was the one killing my firefox. Why does it crash on debian's firefox and not on upstream's ? Simple : upstream's is built with gcc 3.4, debian's with gcc 4.0. Both C++ ABIs are incompatible. Now the question is : what can we do for that ?

A quick fix could be to check before loading the component, if it's linked to the incompatible libstdc++.so.5, but it's almost as nasty as the bug itself... I've not really investigated possible solutions yet, but if you have some better ideas, you're welcome.

Another bug I got interested in is #211010 and its dupe, #256384. This one was really nasty. One of the kind I hate : bad programming practices. The interesting thing with this bug, though, was that it's been revealed because of 3 other issues in 2 separate programs.

The first issue is that autoconf decides to use echo 'something\c' over echo -n something when both '\c' and -n are understood by echo.

The second issue is that when giving some options with spaces to configure (like in --enable-optimize="-pipe -w -O2"), the associated variable gets backslashed spaces (i.e. "-pipe\ -w\ -O2") (thus, being an autoconf feature)

The third issue is that the mozilla configure.in script tries to get rid of these backslashed spaces with echo $enableval | sed -e 's|\\\ | |g', triggering the nasty dash bug. A simple workaround, as stated in #256384 is to quote $enableval

Now, for the dash bug itself.

What happens with dash is that whenever you echo a '\c' escape sequence, all subsequent echo commands stop printing after the first argument containing a backslash. For example echo test1 'test2\ttest3' test4 outputs test1 test2<tab>test3.

In the case of our echo $enableval, since its value was -pipe\ -w\ -O2, it printed -pipe\ without any space after the backslash, so that it was not removed by the sed call. This value was then substitued in config/autoconf.mk.in to create config/autoconf.mk, where the ending backslash was interpreted as its shell meaning (continue on next line), thus breaking the variable, and build command lines.

And for the bad programming practice ?

The dash bug is due to a global variable that never got re-initialized, leaving the "terminate echo" (kinda) flag turned on (which is only checked when there is a backslash in the argument, since it is used to stop printing after, guess what... '\c').

No wonder why one of the first things you learn in programming classes is : never use global variables. (or at least, be very very very careful about what you do with them)

2005-11-05 08:23:05+0900

firefox | Comments Off on Nasty bugs

Firefox 1.5rc1 is out…

... and in experimental. RC2 is due soon and final a few days after... I'll definitely need to update my firefox extensions packaging kinda howto, so as to all my extensions packages, so that they actually work with latests releases of firefox.

2005-11-01 23:25:53+0900

firefox | 4 Comments »

The 2-Variable Intuition Test


Very Well-Rounded

You have:
62% SCIENTIFIC INTUITION and
62% EMOTIONAL INTUITION
The graph on the right represents your place in Intuition 2-Space. As you can see, you scored above average on emotional intuition and above average on scientific intuition. (Weirdly, your emotional and scientific intuitions are equally strong.)
Your Emotional Intuition score is a measure of how well you understand people, especially their unspoken needs and sympathies. A high score score usually indicates social grace and persuasiveness. A low score usually means you're good at Quake.

Your Scientific Intuition score tells you how in tune you are with the world around you; how well you understand your physical and intellectual environment. People with high scores here are apt to succeed in business and, of course, the sciences.



Try my other test!
The 3 Variable Funny Test
It rules.

My test tracked 2 variables How you compared to other people your age and gender:

free online dating free online dating
You scored higher than 30% on Scientific
free online dating free online dating
You scored higher than 36% on Interpersonal

Link: The 2-Variable Intuition Test written by jason_bateman on Ok Cupid, home of the 32-Type Dating Test

2005-10-28 19:03:43+0900

me, p.d.o | 3 Comments »

Firefox 1.5beta2 is out but…

... why on earth is it so hard to release source and binary at the same time ? It happens all the time with mozilla.org software, and it just pisses me off.

Update: Hell, source is still not available, but, well, I just got it from CVS and uploaded to experimental. Enjoy.

2005-10-07 08:59:18+0900

firefox | 1 Comment »

Firefox 1.5beta1 is out

... and in debian experimental. I get strange segfaults on quit, though... I'll have to investigate those... I didn't get them with a CVS checkout from 3 days ago, with the very same build scripts... strange.

I also updated the branding package, for which I missed stuff to make it work with Firefox 1.5beta...

Enjoy.

2005-09-09 21:59:22+0900

firefox, firefox-branding | Comments Off on Firefox 1.5beta1 is out

Firefox news

In the past few days, there has been some move on the Firefox front in Debian. Eric uploaded the long-waited non-b0rked security update for sarge, and I finally sync'ed the experimental package with all the last changes from unstable.

I made some work on the mozilla-firefox-branding package so that it actually works for both Firefox 1.0 (and supposedly earlier versions) and Deer Park. Though there are regressions (see NEWS.Debian file), it is now much much cleaner and won't mess up with other extensions as it used to do (it used to behave strange with ctxextensions, leading to a *huge* (and unuseable) context menu). You can give it a try.

Firefox 1.5 beta 1 has been announced for the 8th, and I already started to pull out the latest trunk to prepare its release. Stay tuned.

2005-09-05 18:52:51+0900

firefox, firefox-branding | Comments Off on Firefox news

What religion is the right one for you ?

You scored as atheism. You are... an atheist, though you probably already knew this. Also, you probably have several people praying daily for your soul.

Instead of simply being "nonreligious," atheists strongly believe in the lack of existence of a higher being, or God.

atheism

100%

Satanism

83%

Paganism

42%

Buddhism

33%

Judaism

25%

Christianity

25%

agnosticism

17%

Islam

17%

Hinduism

0%

Which religion is the right one for you? (new version)
created with QuizFarm.com

2005-09-05 06:54:17+0900

me, p.d.o | 2 Comments »

Xen

I've been playing a bit with xen the last few days, and it really rocks. It's been quite tricky to put up, though. I've been following two different guides, but they were missing some stuff for what i wanted to try.

I wanted to build the most generic kernel possible, so that it would be easily useable on most installations, like the generic debian kernels. Well, it has been quite painful. Trying to build in a sid chroot, I hit the first issue : while the xen patch doesn't apply to linux 2.6.12, linux 2.6.11 doesn't build with gcc 4.0. You get build errors in I2C, generic serial, and much more other stuff. Then, a bunch of drivers can't be built because of being unsupported.

When you finally succeed in building the kernel as a generic debian one, i.e. with an initrd, you realize the generated package (built with make-kpkg) doesn't build the initrd for you, and doesn't correctly build the modules dependencies (which prevent the initrd to be any useful), even though everything is (supposedly) correctly set-up.

So, after solving all these, I finally was able to boot on a generic xen system and to run some virtual machines. Main issue remaining : xen doesn't want to find an IRQ for the firewire controller, so i can't access my external hard-disk...

I'll try to finalize a clean generic kernel package that does all it is supposed to do, but in the meanwhile, here are the hints if you want to build your own domain 0 kernel :

  • install kernel-source-2.6.11 and kernel-patch-xen, and decompress /usr/src/kernel-source-2.6.11.tar.bz2
  • copy /boot/config-2.6.11-1-686 in /usr/src/kernel-source-2.6.11/.config
  • add CONFIG_XEN=y and CONFIG_XEN_PRIVILEGED_GUEST=y in it (otherwise, a whole bunch of modules get disabled)
  • run the following command in the kernel source directory : MAKEFLAGS="CC=gcc-3.4" PATCH_THE_KERNEL=YES make-kpkg --arch xen --append-to-version xen0 --revision 1 --initrd --config menuconfig kernel_image
  • adjust your configuration if you need (you might want to disable network and block device frontends for the dom0 kernel)
  • install the generated kernel
  • run depmod 2.6.11xen0 and check your /lib/modules/2.6.11xen0 is correct
  • run mkinitrd -o /boot/initrd.img-2.6.11xen0 /lib/modules/2.6.11xen0
  • add the following to your /boot/grub/menu.lst file:
    title Xen 2.0 / XenLinux 2.6
    kernel /boot/xen.gz dom0_mem=131072
    module /boot/xen-linux-2.6.11xen0 root=/dev/hda1 ro
    module /boot/initrd.img-2.6.11xen0

    (adjust the root device and the dom0 memory size if necessary)

And you might be able to get a working xen kernel...

2005-08-30 20:10:17+0900

miscellaneous, p.d.o | 3 Comments »