The Mozilla
Organization
Our Mission
Who We Are
Getting Involved
Community
Editorials
What's New
Newsbot
Development
Roadmap
Module Owners
Blue Sky
Projects
Status
Tools
Products
Source Code
Binaries
Documentation
License Terms
Bug Reports
Quality
Search
Feedback


Mozilla Release FAQ
Release 6 January 1999

Distribution: 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 in one form or another. A recent version is kept here.
    Sections:
  1. General Questions about the Mozilla Project
  2. Building Mozilla
  3. Features, Patches
  4. Common topics
  5. How to help
  6. Meta-information

--- Section 1: General Questions about the Mozilla Project ---

1.1) What is Mozilla?
Mozilla is a cousin to Netscape Communicator that is being developed by the Free Software Community with the cooperation and support of Netscape.
1.2) On what is Mozilla based?
Mozilla is based on a very early version of Netscape Communicator 5.0 with all of the code that Netscape is unable to release due to license or export restrictions removed.
1.3) When was Mozilla released?
The first release of Mozilla was on 31 March 1998. Since then, occasional tarballs have been released, with the most recent source available through CVS (see section 1.8)
1.4) What is the current version of Mozilla?
It would probably be best to refer to a version of Mozilla retrieved as a tarball as the June 3rd (tarball) release (or whatever date the tarball has). Versions retrieved via CVS would probably best be best designated by the date the source was retrieved via CVS, like so:
June 5th (CVS) release.
1.5) Who is working on Mozilla?
Several Netscape engineers, as well as plenty of people who have no affiliation with Netscape. You too can work on Mozilla, provided you have some necesary skills and software. See section 5 for details.
1.6) What resources are available to the Mozilla community?
    IRC:
  • Server: irc.mozilla.org channel #mozilla
    Usenet:
  • 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)
1.7) Under which license terms was Mozilla released?
Mozilla is released under the NPL (Netscape Public License) which is 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.
1.8) What's CVS, and what does it have to do with Mozilla?
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 Cyclic Software's site for more info on CVS. For specific info on updating your current mozilla source with CVS, see mozilla.org's CVS area
1.9) What are all of the codenames given to various Netscape/Mozilla projects?
NGLayout (formerly Raptor) is the new HTML rendering engine in Mozilla. It features more speed, 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
Mercury/Gromit is Communicator 5
Apollo refers to the Suitespot servers (v4)
SeaMonkey refers to versions of Mozilla based on XPFE and NGLayout
Normandy refers to the Mail/News branch of Mozilla
1.10) What are all these acronyms people are using in the newsgroup?
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
1.11) I'm wondering how to do XXX with Navigator 3.x...
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.

1.12) I went and made a suggestion and people were rude to me. Why?
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. And read this FAQ :)
1.13) I did all that, and people were still rude to me. Why?
If you're proposing reworking something (like HTTP, HTML, etc) you're expected to have a pretty good knowlege of it first. For example, before you 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



--- Section 2: Building Mozilla ---

2.1) I get x error when trying to build Mozilla - what's wrong?
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:
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 VC++ that makes Mozilla crash in many common circumstances if you optimize.
2.2) What platforms have had successful builds so far?
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
MacOS
WinNT 4.0
IRIX 5.3, 6.2, 6.3, 6.4
Win95, Win98
Digital Unix 4.0
NetBSD
OpenBSD
BSDI
HP/UX 9.05, 10.20, 11.0 (see 2.7)
Hurd .03
DG/UX

(Note: No OS's that haven't been released will be listed, because there are likely several builds of the unreleased OS, and it's thus unclear what builds work and what don't)
2.3) What do I need to compile on Win32?
You need to go grab the usertools package from Cygnus's GNU-w32 webpage In addition, you need Microsoft Visual C++ 4.2 or 5.0. Grab the latest patches to it if you don't have them already. Perl for Windows would be another good thing to get.
2.4) What do I need to compile on a Unix system?
You need to have a working compiler (GCC 2.7.2+ will work), GNU make, GNU autoconf, GTK libraries and development headers, and the X Window system.
2.5) What do I need to compile on a Macintosh system?
You need Codewarrior Pro 4, including some software from the Codewarrior CD:
PowerPlant, MSL, Makestub, Toolserver
2.6) What do I need to compile on a BeOS system?
2.7) What do I need to compile on an OS/2 system?
Acquire VisualAge C++ 3.0 (Not free) or higher or GCC and the EMX libraries (free)
2.8) What do I need to compile on a Rhapsody system?
Upgrade to GCC 2.7.2 or later get gnu make and a recent version of Perl. The developer tools for NeXTStep (unless you're on Rhapsody) will also be needed, and they're not free. With all of these tools, you won't need to do anything different from any other Unix. See the Rhapsody Port Page for more information.
2.9) How do I build with HP/UX?
Visit The HP/UX porting center and grab their patches. (Have these patches made it in? If anyone knows, drop me a note)
2.10) I'm *still* having problems getting mozilla to build on my platform!
Take a look at mozilla/config/your_platform.mk Platforms that aren't used too often might not have a fully correct platform-specific makefile. Try to correct anything that looks like it's causing the error (comment out existing lines, copy them, and *then* modify). If you're really unlucky, you'll actually need to step through the build, at each failure correcting a makefile somewhere or manually building something.
2.11) I'm trying to build Mozilla on an unsupported Unix. What do I do?
Give autoconf a try -- it has the ability (somewhat limited at present, but improving all the time) to learn about your system by running tests. If it fails, go into mozilla/config/ and copy the platform that's closest to your platform in the Unix evolutionary tree to `uname -s`.mk (note the backtics). Change anything you need to. Do the same thing in mozilla/nsprpub/config/ In the main source, find other platforms that can't cope with what your Unix can't cope with, and modify the #ifdefs and similar to include and exclude what your Unix needs/can't handle.
2.12) In what directory should I be in order to get a CVS update of the source?
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.
2.13) When I try to use CVS on Windows, I get an error about no home directory
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)
2.14) I'm on a Unix system, and still am having problems building
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

/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).
2.15) How do I build Mozilla with Mail and News?
Make sure you have the latest pull off of the CVS server, and set MOZ_DARK to 1 in your environment variables. It still might not build, YMMV.
2.16) How long will Mozilla take to build?
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)

486DX4/100, x86, unknown cache, 16M RAM, IDE disks NetBSD 1.32, GCC 2.7.22, Lesstif .86, non-debug 19980728 Tarball -- 293 minutes

R4100/166, SGI-MIPS, unknown cache, 64M RAM, SCSI disks IRIX 6.2, GCC 2.8.1, Motif, non-debug 19980715 CVS -- 213 minutes

21264/400, DEC-ALPHA, 512M RAM, SCSI disks Redhat Linux Rawhide, EGCS 2.9029, Lesstif .865, non-debug 19981009 CVS -- 24 minutes

PPro/200, x86, 96M RAM, SCSI disks Linux 2.x, GCC 2.7.23, GTK 1.1x, non-debug 19981122 CVS -- 35 minutes

G3/300, PowerMac, 128M ram, IDE disks Linux kernel 2.1.x, EGCS 2.9, Lesstif .84, non-debug 19981214 CVS -- 25 minutes



--- Section 3: Features, Patches ---

3.1) What platforms is Mozilla available for?
Mozilla is currently targeted for Win32, Macintosh, and Unix/X systems. There are efforts underway to port Mozilla to OS/2, Rhapsody, BeOS, DOS, as well as pure Java.
3.2) What does Mozilla lack that Communicator has?
Netscape's Java (but not Javascript) implementation was removed because it is the property of Sun. SSL (secure sockets layer) was removed because of export restrictions. AOL Instant Messenger was removed because it's proprietary to AOL. Netscape Mail and News were removed because they rely on proprietary database code. Java can be built in using OJI and a compliant JVM as of recent.
3.3) What does Mozilla have that wasn't in Communicator 4?
    Mozilla has (at least) the following new features:
  • A detachable bookmarks menu
  • XML support
  • Aurora
  • 2 new mail clients (one snagged from Javagator, one RDF-based)
  • A somewhat configurable chrome
  • publically available source code :)
  • HTTP compression
  • Exists on more platforms
  • Experimental ActiveX support (not in main tree, AFAIK)
3.4) Why is the animated icon different?
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 that is included because it won a contest.
3.5) Where can I get a binary?
mozilla.org now provides Mozilla binaries. However, said binaries are made nightly, and are likely to be unstable. Also, various people have put up compiled binaries here and there. You might (or might not) expect the non-nightly builds to be somewhat more stable than the nightly builds. Here are a few pointers:
3.6) On Win32, it fails to build, with the message '.\WIN32' unexpected
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).
3.7) On Unix, it fails to build, with complaints about lcong48 and seed48!
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)
3.8) I *really* want the security stuff that was taken out
Check out the Mozilla Crypto Group , but note that it may be illegal for you to use in your country due to patent laws. Also, it's info is rather dated.
3.9) I *really* want Java
Mozilla now supports OJI (Open JavaVM Interface) that allows you to use a Plugin JVM. As this is relatively new, there are not too many OJI JVM plugins available yet, with Japhar (a GNU JVM) being one of the few OJI JVM plugins currently. More information about this is available at mozilla.org's OJI page.
3.10) How do I tweak the interface (replace the logo, etc)?
See The mozilla.org UI docs for instructions, the files are:
Unix/X: mozilla/cmd/xfe/icons/
Windows: mozilla\cmd\winfe\res\
MacOS: mozilla:cmd:macfe:rsrc:communicator: (Use Resedit)
3.11) Where can I get patches?
There is not currently a central repository of patches. However, via CVS, you can keep up with the latest source from Mozilla.
3.12) I made a patch! How do I submit it?
The current best way to do this is to put it on the web somewhere (preferably in diff format), and post an URL to it to netscape.public.mozilla.patches You also/alternatively might post a bug report in BugZilla and include your patch to fix the bug. If you can't, just post it to netscape.public.mozilla.patches Another way to do things would be to go to the module owners page on mozilla.org, and talk to the people who 'own' the code that your patch modifies. Note that context-sensitive patches (diff -c) are preferred over other formats.
3.13) I want to add X feature to Mozilla. Who do I contact?
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 helpers. 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.

--- Section 4: Common Topics of Discussion ---

4.0) What's this section about?
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 pgunn01@ibm.net I'll try to keep this section with only debates that are frequent that seem to have a right answer.
4.1) How about a Mozilla Operating System?
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.
4.2) How about a Netscape release of Linux?
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.
4.3) 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.
4.4) I'd like to port Mozilla to XXXOS. Any advice?
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.

--- Section 5: How to help ---

5.1) What projects are there for programmers?
    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
    Add skins support
    Add preference interfaces for the hidden features
    Write a FTP/File Manager Component (?)
  • There's plenty to do..
5.2) What projects are there for documentation people?
There are several severely undermanned projects in the documentation area.
    Here are some projects and contact points:
  • LXR - Contact: Dawn Endico
    Project to summarize directory structure of Mozilla, adding algorithmic overview where appropriate
  • Mozilla User Documentation - Contact: Pat Gunn
    Project to write Advanced User Documentation for Mozilla and/or Netscape Communicator. Aims to be comprehensive, with a slight bias for the technical users
  • Flowcharts
    Project to make flowcharts for the Mozilla code, preferably in a portable format like postscript or PDF
  • Design specs
    Document in easy to read language the protocols that mozilla uses (This would be a good place to start).
5.3) What projects are there for others?
    There are some important things that you can do if you don't code or care to document:
  • Crypto - If you are in the United States, contact your representatives and express how much you would like the crypto export ban lifted. This would make a lot of people happy.
  • Ideas - If you have an idea for what you'd like to see in Mozilla, post to the mozilla developer ideas group.
  • Artwork - Design new icons and other resources for Mozilla
  • Legal - Investigate the GIF licensing issue

5.4) What's the best way to feel part of the community and talk to other developers?
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)

--- Section 6: Meta Information ---

6.1) What changed since the last version?
2.6 is still a stub
2.5 updated
1.6 updated
2.1 updated
2.8 updated
2.16 updated
3.5 updated
3.8 updated
6.2) What other versions of this FAQ are out there?
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.
6.3) Where can I find other versions of the FAQ?
6.4) Does the author mind if I make my own version, HTMLify it, or whatever?
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.
6.5)The FAQ is wrong on section X.X! What can I do about it?
Drop a note to Pat Gunn



Copyright © 1998 The Mozilla Organization.