Mozilla release FAQ
Warning: The content of this article may be out of date. It was last updated in 2005.
This document may be distributed and modified freely. No guarantee of factuality in this FAQ is made, and it is maintained by Pat Gunn, who is not affiliated with Netscape. Various other people have contributed to this FAQ.
Mozilla is a project to continue Netscape Communicator as an open project. The project is maintained by employees of Netscape (now a division of AOL), Red Hat, some other companies, as well as contributors from the community.
The Mozilla project started near the end of life of the 4.x line of Netscape Communicator. Originally, the plan was just to re-stabilize the code and release 5.0, but it was decided within the community that the more ambitious changes that were planned for later integration were close to being ready. The old layout engine, networking engine, and several of the older modules were gutted, and much later, the sources reached the point where Netscape was comfortable making a release, and so Netscape 6.0 was released. Netscape 6.0 and above are based off of the Mozilla source. Mozilla 1.0 (Mozilla uses a different versioning system than Netscape) is due for release soon.
The source to Mozilla was first released on 31 March 1998. The code has been continually available since then via CVS (see section 1.8), and occasional binary releases (first as milestones, and more recently as versioned releases) have been made. As of the time of this update, Mozilla 1.0 Release Candicate 2 is the most recent release.
Mozilla is continually available via CVS, and also is occasionally released as versioned numbers. If built from CVS, the date of the CVS checkout is the best way to refer to the version, otherwise use the release number. Older versions used milestone numbers (e.g. the Milestone 7 release was known as M7).
The current arrangement between Netscape (AOL) and the Mozilla project is that Mozilla develops its own releases, and when Netscape (AOL) is preparing to make a release, it takes the current version of Mozilla, makes modifications, and does its own QA. In return for this, Netscape (AOL) contributes developers to work on the project. The Netscape versions may have a different look/feel than Mozilla versions, and also may add proprietary features. The Netscape versions are all branded as Netscape (AOL) products.
- Mozilla Project Homepage
- Netscape Developer Program Website
- MozillaZine (News service)
- Mozilla Evangelism Effort
- MozDev Projects
- Server: irc.mozilla.org channel #mozillazine
Note that recent versions of Mozilla include an IRC client. Other IRC clients can be found at irchelp.org.
- All newsgroups in the netscape.public.mozilla.* hierarchy. If your news server doesn't carry these, you can use the Mozilla news server. (Some people receive the newsgroups via a mailing list. Take this into consideration when posting things)
- See the Mozilla FTP Mirror section for FTP sites
Mozilla is released under the NPL/MPL (Netscape/Mozilla Public Licenses) which are in some ways similar to the GNU GPL, and in some ways similar to a BSD-style license. Take a look at mozilla.org's NPL area for details.
CVS is a system which is used to synchronize source code between developers. It's used to distribute changes to the Mozilla source without requiring frequent huge tarballs to be downloaded. Check out CVSHome for more info on CVS. For specific info on updating your current Mozilla source with CVS, see mozilla.org's CVS area
Gecko (formerly Raptor) is the new HTML rendering engine in Mozilla. It features speed improvements, a more modular nature, and significantly less platform-dependant code. It is more suitable for being embedded in other applications than the previous rendering engine.
- Gemini was a previous rendering engine project, renamed NGLayout
- Aurora is the Navigation Center in Mozilla and Navigator5
- SeaMonkey refers to versions of Mozilla based on XPFE and NGLayout
- Normandy refers to the Mail/News branch of Mozilla
Here are a few that are specific to the Mozilla newsgroups:
- FE = Front End -- The part of Mozilla that handles the interface
- BE = Back End -- The part of Mozilla that does all the behind-the-scenes stuff
- NSPR = Netscape Portable RunTime -- An abstraction layer over the local OS
- GTK = A free GUI toolkit native to Unix
- Qt = Another GUI toolkit
- XP = Cross Platform
- XPFE = Cross-platform frontend based on NGLayout
- M[number] = Milestone release [number] (no longer used)
The Mozilla newsgroups are intended to be used by people who will be working with Mozilla, either in an organizational fashion, suggesting features, or coding. Visit Netscape's website for help on that software.
If you posted it to the mailing list/newsgroups, remember that on Usenet, people are not always polite to each other. Some people are just rude, and some people have a low tolerance for uninformed people. If you're new to the Mozilla newsgroups, you probably should be reading the newsgroup for a few days regularly before you post anything. Reading this FAQ might help as well.
If you're proposing reworking something (like HTTP, HTML, etc) you're expected to have a pretty good knowlege of it first. For example, if you were to make a proposal to compress whole webpages before sending them, devise a new protocol to do so, research how HTTP works, how HTML works, and think about all the good *and* bad points of reworking things. To start understanding the issues with this example, you should dig up the RFCs for the relevant protocols, any documents written on the subject, etc. For this particular example, you would want to go look at
First, make sure that you have the latest release of the Mozilla source. Secondly, ensure that you have fully read the build instructions for your platform. These instructions are included in the source tree, and are also available on the Mozilla website:
Detailed build instructions:
If your version of make chokes on the makefiles (on Unix), you might not be using GNU make. Grab the latest version of GNU make from The GNU FTP site.
Regarding shells, I would like to recommend the following: If you are using Unix, use bash-family shells for the build because of the better control over redirection (in case you want to log errors and messages) If you are using Win32, using the default shell cmd.exe (as opposed to 4DOS or 4NT) will probably yield better results.
Regarding compilation options, it would be good NOT to compile with optimization, because it's much slower to build, and on Windows platforms, there's a bug in some versions of VC++ that makes Mozilla crash in many common circumstances if compiled with optimization on.
This list will be updated with time, but (according to netscape.public.mozilla.general) the following platforms have been built successfully:
- Solaris 2.4, 2.5, 2.6
- FreeBSD 2.2, 3.0
- Linux/Intel and Alpha 2.0, 2.1
- WinNT 4.0
- IRIX 5.3, 6.2, 6.3, 6.4
- Win95, Win98
- Digital Unix 4.0
- HP/UX 9.05, 10.20, 11.0 (see 2.7)
- Hurd .03
- Mac OS X
If it's NSPR that's failing to build, take a look at config/your_platform.mk, as NSPR still uses the classic build system. If it's in Mozilla and you're checking out from CVS, check tinderbox to see if the tree is on fire. If it is, do another CVS pull later. If not, post to netscape.public.mozilla.builds or try to fix it yourself. Patches are appreciated.
You should be at the top of the source (the directory with the top-level makefile). If you wish only to refresh a certain area of the tree, you can go to that area and do a CVS update there.
You need to set the HOME environment variable to a valid directory, as CVS was designed with Unix in mind, and wants to put a file in your home directory (the password file)
Here's a brief guide to common build problems:
cc1: Invalid option 'foo' cc: No such file or directory 'foo'
These are almost always caused by your platform-specific Makefile being incorrect for your system, either because you're not using the compiler that you're expected to (i.e. GCC instead of the Sun Workshop compiler), or because you're not using a recognized version of your OS. Go dig through the makefiles in config and remove the offending portions, and see if that fixes things. If not, post to netscape.public.mozilla.builds Problems of this sort are currently most likely to happen in NSPR, as it still uses the classic build system. It's doubtful that this will happen in the main tree.
/usr/include/stdlib.h:196: previous declaration of `seed48'
See section 3.7
Nothing looks much like an error, except something returned error status
Your compiler has a switch (probably) that prints everything it's doing (i.e. programs spawned), which might help you find out what arguments it's passing to ld, or whatever, and thus perhaps enlighten you as to the problem. On gcc, try gcc -v (rest of command line).
A long time, but this will depend quite a bit on your system. RAM will probably be the bottleneck in most cases, at least until you are well over 128M RAM. Here are a few representative systems (please send your specs in to me)
Removed because the tree has changed enough that we'll probably need new times for all the builds. Please send stats to me in the following format:
CPU/Mhz, Architecture, RAM, disk type, OS Version, Compiler version, build type, tree date -- build time
Example: 21164/533, Alpha, 512M EDO, Ultra2 SCSI, Linux kernel 2.2.11, GCC 2.95, non-debug, 19 August 1999 CVS -- 25 minutes
In dist/bin there's a script called mozilla. Use that to launch Mozilla for you -- it sets LD_LIBRARY_PATH automatically. To launch other binaries from dist/bin with the correct environment, use run-mozilla.sh ./your_binary
Mozilla is currently targeted for Win32, MacOS, and Unix/X systems. Mozilla also runs on Mac OS X, OS/2, and BeOS, and ports exist for some other platforms.
Netscape 7 has versions with a number of plugins (which Mozilla.org does not have the source for). Netscape 7 also has ICQ/AIM integration, as well as integration with an internet radio tool.
Mozilla has (at least) the following new features:
- XML support
- A highly configurable appearance (courtesy of XUL)
- publicly available source code :)
- HTTP compression
- Exists on more platforms
- MathML support (somewhat limited at the moment)
- A significantly faster rendering engine
- Better HTML support (CSS 1 and partial CSS 2, DOM 1 and partial DOM 2)
- Plug-in JVM support
- Tabbed browsing
- Message filtering
- An IRC client
The N logo is only to be present on Netscape's Communicator. This will serve as a way for an end-user to determine if they have Mozilla or Communicator. The icon that's distributed in the source will be used in mozilla.org distributions of Mozilla. The first 3 tarballs had a simple sample logo, whereas the current source includes an icon from the community that won a contest.
mozilla.org now provides Mozilla binaries. Both nightly builds and numbered releases are available, numbered releases being made less frequently but with more of an emphasis on stability. You can find the binaries at Mozilla.org's Binaries page
You didn't properly set the environment variables -- you must not include a space at the end of the set statements (be careful if you are cut'n'pasting).
You probably have GCC 2.8.1, which currently won't work with Mozilla. Get 2.8.0 or 2.7.2+ (2.8.0 has some problems, 2.7.2 would be best, at least until the problems with 2.8.1 are ironed out)
These sources are not available. Much of the old code cannot be released due to legal concerns, and at the time of Mozilla's initial release, that code was removed from the tree. The 'Classic' branch of the current CVS tree is as close to the 4.x source as the public will ever see, although that branch has been abandoned in the move to the modern codebase.
The XPToolkit docs might help in writing the needed XUL. You can find replacement themes in Preferences, under Appearance->Themes, using the 'get new themes' link there.
There is not currently a central repository of patches. However, via CVS, you can keep up with the latest source from Mozilla.
The current best way to do this is to post it in Bugzilla, either attached to the bug it fixes or a new entry describing what it changes. If that doesn't work, it also could be posted in diff format in the newsgroup. netscape.public.mozilla.patches Note that context-sensitive patches (diff -c) are preferred over other formats.
First, you should make sure that Mozilla doesn't already have the feature you wish to add. There have been changes since Communicator 4.0. Check out section 3 for details. Assured that it's not already there, you should post to the Mozilla usenet groups, asking for help. Finally, you should make sure that someone is not already working on the code you would need to modify to implement your feature. On www.mozilla.org, there is a list of module 'owners'. This system ensures that 2 people are not working on the same part at the same time. Check for for the module owner, and contact him/her. The specific area that you can find this is on the Mozilla Owners Document.
Check out GTKmozilla in your tree at webshell/embed/gtk for an example of how to do this
This section is to prevent rehashing of the same debates over and over again on the newsgroups. It might slightly reflect the opinions of Pat Gunn, and if you're really angry about this, drop him an email at email@example.com I'll try to keep this section with only debates that are frequent that seem to have a right answer.
Mozilla is positioned well as an application software. However, it makes very little sense to try to make Mozilla into an operating sense, almost as little sense as it would to make a Word Processor or a MP3 player into one. Beyond technical reasons, the operating system market is currently glutted, and a new entry would be unlikely to attract enough users to ensure the writing of drivers for a new system, a critical mass point. People who want to work on an operating system no doubt would be welcomed by the BSD teams, the Linux team, the Freedows team, or any of the many other open source operating system groups out there.
This isn't quite so far fetched, but it has the problem of possibly doing a great deal of harm to the relations between Netscape and several Unix vendors who bundle Netscape's servers. It is unlikely that Netscape would do anything that would endanger its revenue stream. As another point, there are already plenty of Linux distributions out there, most of them doing a pretty good job of making a usable system. Reinvention of the wheel is a poor use of volunteers.
Why don't we make a way to compress all the components of a webpage into one big file, and send that across?
This breaks a lot of things that work currently. It is very difficult to determine what components of the webpage actually needs -- certain images may be shared between several pages, the user may have images turned off or lack capabilities to use a certain type of media. Dynamically generated pages make this nearly impossible. Devising a system that would handle all of these situations would make web servers more complex, slower, and likely hurt the transfer time that this proposal is attempting to save. Also, progressive display of the webpage would be completely gone with this idea. For these reasons, this is generally considered a bad idea.
If you're targeting a relatively recent Unix, you probably will have very few problems. Otherwise, the more Unixlike the target system is, the easier your port will go. I would suggest that before you devote much time and effort to your port, you consider:
- How many users the OS has that are likely to use Mozilla
- Does the OS support multitasking well enough for Mozilla
- Does the OS have a sufficiently evolved GUI for Mozilla to work
- Does the OS have sufficient networking support for Mozilla
- Is the OS typically run on systems that have the resources to run Mozilla
- Does GCC or some other easily available compiler exist for the target platform
If many of these answers are no, then there will be large issues that will hamper the port. This is not meant to state that the port is not worthwhile, but that it will be difficult.
This project is largely about coding. You could tackle:
- Porting Mozilla to the OS you use
- Work on moving #ifdef PLATFORM to #ifdef FEATURE/BUG
- If you're on Unix, port Mozilla to the toolkit you prefer
- Modularize/Clean up APIs
- Fix Bugs
- Work on the expermental features (Mail/News, Aurora, NGLayout)
- Add new things:
- Make OpenDoc and OLE NGLayout controls
- Write new skins (see themes.org)
- Add preference interfaces for the hidden features
- There's plenty to do..
Mozilla currently has far more developers than documenters. As a result, the project is in dire need of documentation work. Maintenance of old documentation would be helpful, new documentation is also welcome. Post to netscape.public.mozilla.documentation your intent, and you might get some help.
There are some important things that you can do if you don't code or care to document:
- Ideas - If you have an idea for what you'd like to see in Mozilla, post a feature request to Bugzilla
- Artwork - Design new icons and other resources for Mozilla
- Use Talkback - Talkback-enabled builds help the community by letting Mozilla.org members where in the code crashes occur.
Be sure to read and participate on the relevant newsgroups and drop by on IRC. Both are great ways to meet others working on Mozilla, including lots of netscape employees as well as other interested people (like myself). To get an IRC client, go to this site
Added a new 3.8
Various other people have decided to take the original of this FAQ and modify it, usually making a web version. Some of these have more (or less) information than this FAQ includes.
Nope. Go for it. I would suggest you try to keep looking at mine occasionally, so you can add new things that I do, but you can do whatever you want to with it.
Help! I'm getting spam from Mozilla
You probably arn't really getting spam from Mozilla. If you think you're getting it from Mozilla because the X-Mailer field mentions Mozilla, then you're misinterpreting the meaning of the X-Mailer field -- it indicates that the sender is *using* Netscape Communicator to deliver the mail. If you're getting mail contents of one of the Mozilla newsgroups, it's likely because you subscribed (or someone subscribed you) to the mailing list form of those groups. As to the first case, there's no connection between the Mozilla project and the spam. You might want to visit The Open Directory Project's spam pages to help you track down the origin. For the second case, go to The Mozilla Community section to unsubscribe