 |
 |
|
 |
 |
 |
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:
- General Questions about the Mozilla Project
- Building Mozilla
- Features, Patches
- Common topics
- How to help
- 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
|
 |
 |