Bug 180870 - Mozilla browsers: GUI problems on HPPA
Bug#: 180870 Product:  Gentoo Linux Version: 2007.0 Platform: HPPA
OS/Version: Linux Status: RESOLVED Severity: critical Priority: P2
Resolution: FIXED Assigned To: mozilla@gentoo.org Reported By: jer@gentoo.org
Component: Applications
URL:  http://www.xs4all.nl/~rooversj/gentoo/images/mozilla-firefox-detached.png
Summary: Mozilla browsers: GUI problems on HPPA
Keywords:  
Status Whiteboard: 
Opened: 2007-06-04 15:51 0000
Description:   Opened: 2007-06-04 15:51 0000
Something changed between the 2.0.0.2 and 2.0.0.3 releases that usually stops
firefox-bin before it can launch a GUI. When it does manage to launch a window,
the widgets are "active" but unresponsive, i.e. the program doesn't hang but it
doesn't load web page or even open menus.

Firefox 2.0.0.3 and above are still usable as rendering engine - for instance,
www-client/epiphany-2.16.3 can use it fine, so the problem is in Firefox's own
GUI changes since 2.0.0.3.

When it fails to produce even a window, it goes like this:

% - - - - - - - - - - - - - - - - - - - %
jeroen@elmer ~ $ firefox
/usr/lib/mozilla-firefox/mozilla-xremote-client: Error: Failed to find a
running server.
No running windows found
Removing /home/jeroen/.mozilla/firefox/vg8vpvnr.default/compreg.dat leftover
from older firefox
firefox-bin exited with non-zero status (1)
jeroen@elmer ~ $ 
% - - - - - - - - - - - - - - - - - - - %

Despite recent changes (gcc upgrade from 4.1.1 to 4.1.2, glibc upgrade from
2.3.6 to 2.5) mozilla-firefox-2.0.0.2 still works fine, so the problem must be
somewhere in (Firefox's use of) glib or gtk+ (is my best guess).

I am assigning the bug to mozilla@ because the first priority is probably to
figure out what changed between 2.0.0.2 and 2.0.0.3's GUIs that produced this
problem. When that's clear, it's probably up to hppa@ to find a fix. I noticed
that hppa's earlier patch is also still out there[1]. 


[1] https://bugzilla.mozilla.org/show_bug.cgi?id=287150


emerge --info:

Sun Jun  3 23:04:04 CEST 2007
Portage 2.1.2.9 (default-linux/hppa/2007.0, gcc-4.1.2, glibc-2.5-r3,
2.6.20.1-hppa-JeR parisc)
=================================================================
System uname: 2.6.20.1-hppa-JeR parisc PA8700 (PCX-W2)
Gentoo Base System release 1.12.9
Timestamp of tree: Sun, 03 Jun 2007 14:50:01 +0000
distcc 2.18.3 hppa2.0-unknown-linux-gnu (protocols 1 and 2) (default port 3632)
[disabled]
ccache version 2.4 [disabled]
dev-lang/python:     2.4.4-r4
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     2.4-r7
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.61
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10
sys-devel/binutils:  2.17.50.0.12
sys-devel/gcc-config: 1.3.16
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.20-r2
ACCEPT_KEYWORDS="hppa"
AUTOCLEAN="yes"
CBUILD="hppa2.0-unknown-linux-gnu"
CFLAGS="-O2 -pipe -mschedule=8000 -march=2.0 -ggdb -Wall"
CHOST="hppa2.0-unknown-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config
/usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config /usr/spool/PBS
/var/bind /var/www/localhost/htdocs/wordpress/wp-config.php"
CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/php/apache2-php4/ext-active/
/etc/php/apache2-php5/ext-active/ /etc/php/cgi-php4/ext-active/
/etc/php/cgi-php5/ext-active/ /etc/php/cli-php4/ext-active/
/etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo
/etc/texmf/web2c"
CXXFLAGS="-O2 -pipe -mschedule=8000 -march=2.0 -ggdb -Wall"
DISTDIR="/keeps/gentoo/distfiles"
FEATURES="autoaddcvs buildpkg cvs distlocks fixpackages notitles sandbox
sfperms splitdebug strict"
GENTOO_MIRRORS="http://ftp.easynet.nl/mirror/gentoo/
http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/
http://ftp.rhnet.is/pub/gentoo/ http://ftp.snt.utwente.nl/pub/os/linux/gentoo "
LC_ALL="en_US.UTF-8"
LINGUAS="en nl he"
MAKEOPTS="-j2"
PKGDIR="/keeps/gentoo/packages/elmer"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress
--force --whole-file --delete --delete-after --stats --timeout=180
--exclude=/distfiles --exclude=/local --exclude=/packages
--filter=H_**/files/digest-*"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/keeps/gentoo/portage"
PORTDIR_OVERLAY="/keeps/gentoo/local"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="7zip X Xaw3d a52 aac aalib accessibility alsa amr ao aoss apache2 ares
arts asf audiofile avahi avfs bash-completion berkdb bidi bitmap-fonts
bittorrent bl bzip2 c++ cairo caps catalogs cdb cddb cdparanoia cdr chardet cjk
cli cpudetection cracklib crypt cups curl custom-cflags dbus dcraw dga directfb
doc domainkeys dts dv dvd dvdread dxr3 edl elf enca encode esd examples exif
expat fam fame fastbuild fastcgi fbcon ffmpeg flac foomaticdb fortran ftp gadu
gd gdbm ggi gif gimpprint glib glitz glut gmp gnome gnutls gphoto2 gpm gs gsl
gtk gtk2 gtkhtml hal hesiod hppa icecast iconv idn imagemagick imlib immqt-bc
inquisitio ipv6 isdnlog javascript jingle jpeg jpeg2k kde kdeenablefinal
kerberos lcms ldap leim libcaca libg++ libnotify libsamplerate libwww logrotate
lua lzo mad matroska memcache mhash midi mikmod mmap mng modplug motif
mozbranding mp3 mudflap musepack mysql nas ncurses netpbm nfconntrack nfs nls
nntp nptl nptlonly nsplugin offensive ogg openexr opengl openmp oss ots
overlays pam pango pbs pch pcre pdf perl php pic plotutils plugins png
portaudio postgres povray pppd pulseaudio python qt3 qt3support readline recode
reflection rpc rrdtool rtc ruby samba sasl scanner scim sdl session sid slang
slp sndfile snmp speex spell spl sqlite ssl startup-notification suhosin svg
sysfs tcl tcpd tetex tga theora threads thunar-vfs tidy tiff timidity tk
truetype truetype-fonts twolame type1-fonts udev unicode unzip usb userlocales
utempter utf v4l v4l2 vanim vcd vidix vim-syntax vorbis wavpack webdav
webinstall wlan wma wmf xanim xattr xchattext xcomposite xface xml xml2 xmpi
xorg xrandr xscreensaver xulrunner xv xvid xvmc zeroconf zip zlib"
ALSA_CARDS="ad1889 usb-audio" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix
dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter
mulaw multi null plug rate route share shm softvol" ELIBC="glibc"
INPUT_DEVICES="keyboard mouse evdev joystick" KERNEL="linux"
LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses
text" LINGUAS="en nl he" USERLAND="GNU" VIDEO_CARDS="stifb fbdev matrox"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LDFLAGS,
PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

------- Comment #1 From Jeroen Roovers 2007-06-04 16:17:48 0000 -------
It's not just Mozilla Firefox that is affected, but Seamonkey as well.

>=www-client/mozilla-firefox-2.0.0.3
>=www-client/seamonkey-1.1.2

------- Comment #2 From Raúl Porcel 2007-06-04 21:04:04 0000 -------
What about thunderbird?

Test with both 1.5 and 2.0 series please :)

------- Comment #3 From Jeroen Roovers 2007-06-05 01:16:35 0000 -------
(In reply to comment #2)
> What about thunderbird?
> 
> Test with both 1.5 and 2.0 series please :)

Thunderbird isn't patched or keyworded for HPPA like Seamonkey and Firefox are.
Just for good measure, I built and ran Thunderbird
(mail-client/thunderbird-2.0.0.0) and it exhibited the exact same problem as
Seamonkey: it shows a GUI but doesn't respond (although the GUI itself does
respond superficially).

So let's focus our attention to Firefox and Seamonkey.

------- Comment #4 From Raúl Porcel 2007-07-23 10:36:04 0000 -------
Same on 2.0.0.5/1.1.3?

------- Comment #5 From Jeroen Roovers 2007-07-23 12:30:11 0000 -------
(In reply to comment #4)
> Same on 2.0.0.5/1.1.3?

Of course. What could possibly have changed to better the situation? Something
broke a few versions ago and nothing has been done to mend it...

------- Comment #6 From Jeroen Roovers 2007-07-24 19:30:12 0000 -------
armin76 pointed out a HPPA-specific patch that Debian uses for mozilla-firefox
that is missing in Gentoo's 2.0.0.4 and up:

---
/var/tmp/portage/www-client/mozilla-firefox-2.0.0.4/work/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s
    2007-07-23 13:05:26.000000000 +0000
+++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s     
2007-07-23 13:18:53.000000000 +0000
@@ -46,6 +46,13 @@
         LDO     -40-curframesz-lastframesz(%r30),%r24 ; normal args is arg2
         LDO     -80(%r30),%r23                        ; floating args is arg3

+;       BL      .+8,%r2
+;       ADDIL   L'PrepareAndDispatch-$PIC_pcrel$0+4,%r2
+;        LDO     R'PrepareAndDispatch-$PIC_pcrel$1+8(%r1),%r1
+;$PIC_pcrel$0
+;        LDSID   (%r1),%r31
+;$PIC_pcrel$1
+;        MTSP    %r31,%sr0
         .CALL   ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR
;in=23-26;out=28;
         BL     PrepareAndDispatch, %r31
         COPY    %r31,%r2

Whatever it does, it does not fix the issue.

------- Comment #7 From Jeroen Roovers 2007-07-24 22:06:48 0000 -------
Created an attachment (id=125927) [details]
mozilla-firefox-2.0.0.5-hppa.patch

Gentoo's versus Debian's firefox 2.0.0.4, according to armin76.

------- Comment #8 From Jeroen Roovers 2007-07-24 22:13:03 0000 -------
(In reply to comment #7)
> Gentoo's versus Debian's firefox 2.0.0.4, according to armin76.

Debian's iceweasel 2.0.0.4 too.

------- Comment #9 From Jeroen Roovers 2007-07-25 11:35:43 0000 -------
After armin76 asked me to a dozen times, I used debootstrap to create a "sid"
chroot and found that Debian's iceweasel-2.0.0.5-1 works correctly:

user agent:  Mozilla/5.0 (X11; U; Linux parisc; en-US; rv:1.8.1.5)
Gecko/20070719 Iceweasel/2.0.0.5 (Debian-2.0.0.5-1);

Again, I have no idea what this proves.

------- Comment #10 From Jeroen Roovers 2007-07-25 13:19:51 0000 -------
(In reply to comment #9)
> Again, I have no idea what this proves.

Just to be ABSOLUTELY clear on this issue: iceweasel is a fork of firefox, with
a different source tree, maintained at a different location. Comparing runtime
behaviour is not useful at this point, while comparing the source trees may
well be, so we can backport to firefox some of the changes that make iceweasel
work on HPPA.

Until www-client/iceweasel hits the Portage tree, testing it in a Debian chroot
or testing iceweasel binaries on a Gentoo/HPPA system is useless.

Backporting iceweasel's HPPA-specific changes to firefox might prove a lot more
fruitful.

------- Comment #11 From Raúl Porcel 2007-07-25 13:41:06 0000 -------
(In reply to comment #10)
> (In reply to comment #9)
> > Again, I have no idea what this proves.
> 
> Just to be ABSOLUTELY clear on this issue: iceweasel is a fork of firefox, with
> a different source tree, maintained at a different location. Comparing runtime
> behaviour is not useful at this point, while comparing the source trees may
> well be, so we can backport to firefox some of the changes that make iceweasel
> work on HPPA.
> 
> Until www-client/iceweasel hits the Portage tree, testing it in a Debian chroot
> or testing iceweasel binaries on a Gentoo/HPPA system is useless.
> 
> Backporting iceweasel's HPPA-specific changes to firefox might prove a lot more
> fruitful.
> 

Right, the thing is that we didn't knew if iceweasel on Debian worked on HPPA.
So it's stupid to compare their code if we *dont* know if it really works. We
now know that on Debian it works, now we have to see if it works under our
system, to see if its some lib causing that or it's the app itself.

Again, i just wanted to check that because i know they don't test the packages
unless someone has a problem, like there was with qt-4.3.0 on alpha.

------- Comment #12 From Jeroen Roovers 2007-07-30 14:49:04 0000 -------
Wed Oct 25 13:08:32 2006 >>> www-client/mozilla-firefox-2.0
Fri Nov 10 08:08:47 2006 >>> www-client/mozilla-firefox-2.0
Wed Nov 15 06:13:58 2006 <<< www-client/mozilla-firefox-2.0
Wed Nov 15 06:41:43 2006 >>> www-client/mozilla-firefox-2.0
Mon Nov 20 00:17:24 2006 <<< www-client/mozilla-firefox-2.0
Mon Nov 20 00:17:24 2006 >>> www-client/mozilla-firefox-2.0-r1
Sun Dec  3 07:25:47 2006 <<< www-client/mozilla-firefox-2.0-r1
Sun Dec  3 07:25:47 2006 >>> www-client/mozilla-firefox-2.0-r2
Wed Dec 20 03:28:25 2006 <<< www-client/mozilla-firefox-2.0-r2
Wed Dec 20 14:32:03 2006 >>> www-client/mozilla-firefox-2.0-r2
Thu Dec 21 23:41:31 2006 <<< www-client/mozilla-firefox-2.0-r2
Thu Dec 21 23:41:31 2006 >>> www-client/mozilla-firefox-2.0.0.1
Sun Jan 14 22:43:55 2007 <<< www-client/mozilla-firefox-2.0.0.1
Sun Jan 14 22:43:55 2007 >>> www-client/mozilla-firefox-2.0.0.1-r2
Tue Jan 16 18:40:24 2007 <<< www-client/mozilla-firefox-2.0.0.1-r2
Mon Feb 26 05:21:48 2007 >>> www-client/mozilla-firefox-2.0.0.2
Sat Mar  3 17:06:08 2007 >>> www-client/mozilla-firefox-2.0.0.2
Fri Mar 23 04:26:48 2007 <<< www-client/mozilla-firefox-2.0.0.2
Fri Mar 23 04:26:48 2007 >>> www-client/mozilla-firefox-2.0.0.3
Tue Apr  3 05:29:14 2007 >>> www-client/mozilla-firefox-2.0.0.3
Wed Apr 18 06:13:06 2007 <<< www-client/mozilla-firefox-2.0.0.3
Wed Apr 18 06:21:47 2007 >>> www-client/mozilla-firefox-2.0.0.2
Wed Apr 18 17:44:44 2007 <<< www-client/mozilla-firefox-2.0.0.2
Wed Apr 18 17:44:44 2007 >>> www-client/mozilla-firefox-2.0.0.3
Fri Jun  1 06:12:09 2007 <<< www-client/mozilla-firefox-2.0.0.3
Fri Jun  1 06:12:09 2007 >>> www-client/mozilla-firefox-2.0.0.4
Fri Jun  1 08:53:19 2007 >>> www-client/mozilla-firefox-2.0.0.4
Mon Jun  4 09:39:14 2007 >>> www-client/mozilla-firefox-2.0.0.4
Mon Jun  4 17:26:51 2007 <<< www-client/mozilla-firefox-2.0.0.4
Mon Jun  4 17:26:51 2007 >>> www-client/mozilla-firefox-2.0.0.2
Mon Jun  4 21:16:32 2007 <<< www-client/mozilla-firefox-2.0.0.2
Mon Jun  4 21:16:32 2007 >>> www-client/mozilla-firefox-2.0.0.4
Fri Jul 13 09:41:03 2007 <<< www-client/mozilla-firefox-2.0.0.4
Fri Jul 13 18:05:55 2007 >>> www-client/mozilla-firefox-2.0.0.4
Thu Jul 19 18:13:58 2007 <<< www-client/mozilla-firefox-2.0.0.4
Thu Jul 19 18:13:58 2007 >>> www-client/mozilla-firefox-2.0.0.5
Tue Jul 24 01:49:48 2007 >>> www-client/mozilla-firefox-2.0.0.5
Tue Jul 24 21:04:25 2007 >>> www-client/mozilla-firefox-2.0.0.5
Wed Jul 25 00:13:26 2007 >>> www-client/mozilla-firefox-2.0.0.5

------- Comment #13 From Jeroen Roovers 2007-10-23 18:30:37 0000 -------
Would it help if I raised the severity?

------- Comment #14 From Raúl Porcel 2007-10-24 17:19:22 0000 -------
Created an attachment (id=134249) [details]
mozilla-firefox-2.0.0.8-r1.ebuild

I can't test firefox on hake because it never shows up, no version shows up, it
just segfaults.

Let's try this way: I've sucessfully built iceweasel on ia64(and the iceweasel
source, it's exactly the same as firefox, do a diff and you'll see).

This ebuild applies the patches from Debian, and only the patches they apply.

You need
http://sources.gentoo.org/viewcvs.py/*checkout*/gentoo/src/patchsets/mozilla-firefox/2.0.0.8/002_firefox-libdeps.patch?rev=1.1
in the files dir as well.

Let's see if it works...as i can't test it

------- Comment #15 From Jeroen Roovers 2007-10-25 02:49:22 0000 -------
(In reply to comment #14)

> Let's try this way: I've sucessfully built iceweasel on ia64(and the iceweasel
> source, it's exactly the same as firefox, do a diff and you'll see).
> 
> This ebuild applies the patches from Debian, and only the patches they apply.
> 
> You need
> http://sources.gentoo.org/viewcvs.py/*checkout*/gentoo/src/patchsets/mozilla-firefox/2.0.0.8/002_firefox-libdeps.patch?rev=1.1
> in the files dir as well.
> 
> Let's see if it works...as i can't test it

I'll test that.

------- Comment #16 From Jeroen Roovers 2007-10-25 04:34:13 0000 -------
With this "iceweasel" build it doesn't simply quit with a weird exit status,
but just sits there presenting a window with two buttons showing no text
labels, like in the URL above.

------- Comment #17 From Raúl Porcel 2007-11-29 11:36:37 0000 -------
Please attach a build log

------- Comment #18 From Jeroen Roovers 2007-11-29 17:27:57 0000 -------
http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.10/004_mozilla-hppa.patch?r1=1.1&r2=1.2

------- Comment #19 From Jeroen Roovers 2007-11-29 17:34:22 0000 -------
(In reply to comment #18)
> http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.10/004_mozilla-hppa.patch?r1=1.1&r2=1.2
> 

In other words, we might need to look out for things like this in the future:

--- 004_mozilla-hppa.patch      2007/11/28 11:41:36     1.1
+++ 004_mozilla-hppa.patch      2007/11/29 14:04:43     1.2
@@ -21,7 +21,7 @@
 +# Linux/HPPA/gcc
 +#
 +ifeq ($(OS_ARCH),Linux)
-+ifneq (,$(filter parisc parisc64,$(OS_TEST)))
++ifneq (,$(filter hppa2.0 hppa1.1,$(OS_TEST)))
 +#ifeq ($(CC),gcc)  # Do not check for gcc since there is only this compiler
on linux for hppa
 +CPPSRCS               := xptcinvoke_pa32.cpp xptcstubs_pa32.cpp
 +ASFILES               := xptcstubs_asm_parisc_linux.s
xptcinvoke_asm_parisc_linux.s

------- Comment #20 From Raúl Porcel 2007-11-29 18:16:32 0000 -------
Got the problem located and fixed. It was a regression from bug 168893, it
detected hppa2.0 instead of parisc, so it wasn't compiling the right xpcom
files, so it didn't work.

It's fixed in mozilla-firefox-2.0.0.10 patchset 0.2.
seamonkey-1.1.6 patchset 0.3
xulrunner-1.8.1.10 patchset 0.1

Sorry for taking this so long.