Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 259398 - www-client/mozilla-firefox-3.0.6 - .mozconfig contains obsolete and conflicting flags
Summary: www-client/mozilla-firefox-3.0.6 - .mozconfig contains obsolete and conflicti...
Status: RESOLVED NEEDINFO
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Mozilla Gentoo Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-02-17 19:37 UTC by Peter Weilbacher
Modified: 2010-07-31 13:59 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Peter Weilbacher 2009-02-17 19:37:30 UTC
By chance I found the following .mozconfig file in my portage tmp dir:

# This file specifies the build flags for Firefox.  You can use it by adding:
#  . $topsrcdir/browser/config/mozconfig
# to the top of your mozconfig file.

mk_add_options MOZ_CO_PROJECT=browser
ac_add_options --enable-application=browser
ac_add_options --enable-optimize # mozilla default
ac_add_options --disable-installer # gentoo
ac_add_options --disable-pedantic # gentoo
ac_add_options --enable-crypto # gentoo
ac_add_options --with-system-jpeg # gentoo
ac_add_options --with-system-zlib # gentoo
ac_add_options --disable-updater # gentoo
ac_add_options --enable-default-toolkit=gtk2 # gentoo
ac_add_options --enable-pango # gentoo
ac_add_options --enable-svg # gentoo
ac_add_options --enable-svg-renderer=cairo # gentoo
ac_add_options --enable-system-cairo # gentoo
ac_add_options --disable-strip # gentoo
ac_add_options --disable-strip-libs # gentoo
ac_add_options --disable-install-strip # gentoo
ac_add_options --with-distribution-id=org.gentoo # gentoo
ac_add_options --enable-single-profile # gentoo
ac_add_options --disable-profilesharing # gentoo
ac_add_options --disable-profilelocking # gentoo
ac_add_options --enable-default-toolkit=cairo-gtk2 # thebes
ac_add_options --enable-ipv6 # +ipv6
ac_add_options --disable-dbus # 
ac_add_options --disable-startup-notification # -startup-notification
ac_add_options --disable-freetype2 # gentoo
ac_add_options --disable-debug # -debug
ac_add_options --disable-tests # -debug
ac_add_options --enable-reorder # -debug
ac_add_options --disable-mailnews # 
ac_add_options --disable-mochitest # broken
ac_add_options --disable-crashreporter # broken
ac_add_options --enable-system-hunspell # 
ac_add_options --enable-image-encoder=all # 
ac_add_options --enable-canvas # 
ac_add_options --with-system-nspr # 
ac_add_options --with-system-nss # 
ac_add_options --enable-system-lcms # 
ac_add_options --enable-oji # 
ac_add_options --enable-mathml # 
ac_add_options --enable-storage # places
ac_add_options --enable-places # places
ac_add_options --enable-places_bookmarks # places
ac_add_options --with-default-mozilla-five-home=/usr/lib64/mozilla-firefox # 
ac_add_options --with-libxul-sdk=/usr/lib64/xulrunner-1.9 # 
ac_add_options --enable-official-branding # 
ac_add_options --enable-extensions=default,typeaheadfind,-venkman

I don't know how this file gets generated, but many of these settings don't make sense, are conflicting, obsolete, or already default.

Reproducible: Always

Steps to Reproduce:




A few examples:

ac_add_options --enable-default-toolkit=gtk2 # gentoo
ac_add_options --enable-default-toolkit=cairo-gtk2 # thebes
Only the second one makes sense for FF3 and is already the default. You can remove both.

These are already the default and can be removed:
ac_add_options --enable-crypto # gentoo
ac_add_options --enable-oji # 
ac_add_options --enable-mathml # 
ac_add_options --enable-storage # places
ac_add_options --enable-places # places
ac_add_options --enable-svg # gentoo
ac_add_options --enable-svg-renderer=cairo # gentoo
ac_add_options --enable-canvas # 
ac_add_options --disable-mailnews # 

These don't exist at all:
ac_add_options --enable-places_bookmarks # places
ac_add_options --enable-ipv6 # +ipv6
ac_add_options --disable-freetype2 # gentoo
ac_add_options --enable-reorder # -debug

Hmm, this one is doubtful, too:
ac_add_options --enable-extensions=default,typeaheadfind,-venkman
AFAICT, typeaheadfind has not UI in FF3 any more and cannot be used.
Comment 1 Raúl Porcel (RETIRED) gentoo-dev 2009-02-23 16:39:32 UTC
I've removed some of them.

I didn't touch the "These are already the default and can be removed:", in case upstream changes his mind...

Need to have a look at typeaheadfind as well.

Thanks for the report, and feel free to report anything else :)
Comment 2 Martin Mokrejš 2009-05-11 16:47:06 UTC
Peter,
  for your curiosity here is how I build seamonkey from scratch:

cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co mozilla/client.mk
# http://developer.mozilla.org/en/docs/Setting_up_jprof
cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co mozilla/tools/jprof
cd mozilla
make -f client.mk checkout MOZ_CO_PROJECT=suite
#MOZ_DEBUG_FLAGS="-g3 -O0 -ggdb" CFLAGS="-g3 -O0 -ggdb" CXXFLAGS="-g3 -O0 -ggdb" ./configure --enable-debug --disable-optimize --enable-debug-modules=all --enable-debugger-info-modules --enable-detect-webshell-leaks --enable-svg --enable-svg-renderer-libart --enable-image-decoders=all --with-qtdir=/usr/qt/3 --enable-application=suite --disable-freetype2 --enable-jprof
#./configure  --enable-debug --disable-optimize --with-gssapi=/usr/heimdal --enable-jprof --enable-debug-modules=all --enable-debugger-info-modules --enable-application=suite --disable-necko-disk-cache --enable-wrap-malloc --enable-detect-webshell-leaks --enable-boehm --enable-svg --enable-svg-renderer-libart --enable-image-decoders=all --disable-composer --enable-pango --with-qtdir=/usr/qt/3 --with-ft-prefix=/usr
./configure --disable-optimize --enable-debug='-g3 -O0 -ggdb' --enable-debug-modules=all --enable-debugger-info-modules --enable-detect-webshell-leaks --enable-svg --enable-svg-renderer-libart --enable-image-decoders=all --with-qtdir=/usr/qt/3 --enable-application=suite --disable-freetype2 --enable-jprof --enable-default-toolkit=cairo-gtk2 --enable-xft --disable-gssapi --enable-pango
make -f client.mk build
# MOZILLA_FIVE_HOME=`pwd` XPCOM_DEBUG_BREAK=trap ./mozilla -g


# http://developer.mozilla.org/en/Mozilla_Source_Code_(Mercurial)
hg clone http://hg.mozilla.org/mozilla-central/ ./mozilla-from-hg
# Generate a mozconfig yourself, or use this minimal default one
echo '. $topsrcdir/browser/config/mozconfig' > .mozconfig

# configure will be automatically generated using the 'autoconf-2.13'
# command, except on OS X where autoconf213 will be used.
# If autoconf-2.13 isn't the right name for your system, as
# is the case on Ubuntu Linux, use the real command name as
# demonstrated below.
echo 'mk_add_options AUTOCONF=autoconf2.13' >> .mozconfig

# Now do the build; configure will be run automatically
make -f client.mk build
./configure --disable-optimize --enable-debug='-g3 -O0 -ggdb' --enable-debug-modules=all --enable-debugger-info-modules --enable-detect-webshell-leaks --enable-svg --enable-svg-renderer-libart --enable-image-decoders=all --with-qtdir=/usr/qt/3 --enable-application=suite --disable-freetype2 --enable-jprof --enable-default-toolkit=cairo-gtk2 --enable-xft --disable-gssapi --enable-pango
make
hg pull
unset CVSROOT
python client.py checkout
Comment 3 Martin Mokrejš 2009-05-11 16:49:21 UTC
And the resulting file which I do use:

$ cat comm-central/.mozconfig
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-sm
mk_add_options AUTOCONF=autoconf-2.13
ac_add_options --disable-optimize --enable-debug=-ggdb --enable-debug-modules=all --enable-debugger-info-modules --enable-detect-webshell-leaks --enable-svg --enable-svg-renderer-libart --enable-image-decoders=all --with-qtdir=/usr/qt/3 --enable-application=suite --disable-freetype2 --enable-jprof --enable-default-toolkit=cairo-gtk2 --enable-xft --disable-gssapi
$
Comment 4 Peter Weilbacher 2009-05-12 15:43:11 UTC
(In reply to comment #1)
> I didn't touch the "These are already the default and can be removed:", in case
> upstream changes his mind...

Raúl, upstream usually has good reasons for changing defaults, I had hoped that the package maintainers of distributions would follow changes in this area. But of course that is difficult to do because ./configure --help doesn't like defaults. But comparing the output of that command between versions should at least help to identify obsolete flags...

They cannot switch off SVG, Canvas, Places or Storage any more, they need that for too many things themselves. And they are fully committed to cairo, so that option can really go, too. They can never again switch on mailnews, because that's in another repo now. And if you leave in e.g. --enable-oji that won't help at all because OJI support for plugins will be removed in Firefox after 3.5 anyway...

------------------------------------------------------------------------------

(In reply to comment #3)
Martin, are these options you want to use for ebuilds of (binary) Mozilla products for general Gentoo users?

> ac_add_options --disable-optimize --enable-debug=-ggdb
> --enable-debug-modules=all --enable-debugger-info-modules

So you want to do a lot of debugging?

> --enable-detect-webshell-leaks --enable-svg --enable-svg-renderer-libart

libart support is gone AFAIK.

> --enable-image-decoders=all --with-qtdir=/usr/qt/3 --enable-application=suite
> --disable-freetype2 --enable-jprof --enable-default-toolkit=cairo-gtk2
> --enable-xft --disable-gssapi

Are you really planning to ues JProf? You don't need the qtdir thing for a GTK-based buil...
Comment 5 Martin Mokrejš 2009-05-12 16:37:24 UTC
(In reply to comment #4)
> (In reply to comment #3)
> Martin, are these options you want to use for ebuilds of (binary) Mozilla
> products for general Gentoo users?
> 
> > ac_add_options --disable-optimize --enable-debug=-ggdb
> > --enable-debug-modules=all --enable-debugger-info-modules
> 
> So you want to do a lot of debugging?

Was tracing some ASSERTIONs and it took me ages to figure out using the old docs about all sorts of "mozilla" sources how to do it using _current_ build system.
However, would be great if these would be enabled when USE=debug.

> 
> > --enable-detect-webshell-leaks --enable-svg --enable-svg-renderer-libart
> 
> libart support is gone AFAIK.

Didn't know, thanks. I haven't actually investigated that in detail.

> 
> > --enable-image-decoders=all --with-qtdir=/usr/qt/3 --enable-application=suite
> > --disable-freetype2 --enable-jprof --enable-default-toolkit=cairo-gtk2
> > --enable-xft --disable-gssapi
> 
> Are you really planning to use JProf? You don't need the qtdir thing for a
> GTK-based build...

I did due to terribly slow seamonkey browser when some animated GIFs were shown. The idea was that it is caused by freetype2 support but I think I never came to a conclusion myself. Would have hoped that cairo-gtk2 mutually excludes qtdir value then. ;-)
Comment 6 Jory A. Pratt gentoo-dev 2010-07-29 00:54:57 UTC
If you feel this is still valid with the latest feel free to reopen and I will try to explain everything to you.
Comment 7 Martin Mokrejš 2010-07-31 13:59:37 UTC
(In reply to comment #6)
> If you feel this is still valid with the latest feel free to reopen and I will
> try to explain everything to you.

My main interest is to support binaries with full debug. It is extremely difficult to get them right on Gentoo:

1. (USE=debug does not do what you really think it should do)
2. one has to adjust C*FLAGS and FEATURES in /etc/make.conf.
3. adjust kernel setup through systcl so that core-dumps are generated
4. set "ulimit -c unlimited" in  shell settings

(I have opened some DOC bug to fix the Gentoo documentation on that but it is still opened: bug #289364 and #289483)

The above is not enough for seamonkey/firefox/thunderbird, because their configure overrides C*FLAGS and maybe removes debug even more actively, I forgot, I had some bugs opened on this in bugzilla.mozilla.org. The summary is that one has to include those `--disable-optimize --enable-debug='-O0 -ggdb'
--enable-debug-modules=all' to get really a binary with debug symbols.

For me it means you should really introduce a USE=debug flags and give it the right meaning (pass to configure --enable-debug --disable-optimize ...). BTW, both these configure flags had to be specified, at least in the past.