Monday, August 18, 2008

Which Non-Free Files Are Still in Firefox 3.0.1

Couple of questions and my answers.

Question:

Which non-free files are still in Firefox 3.0.1?


Answer:

The source code from the Mozilla® project is indeed Free Software, however the binaries that they release include additional non-Free Software. Also, they distribute and recommend non-Free Software as plug-ins.


Question:

Thanks MJ, but specifically which files included in Firefox 3.0.1 does GNU not consider Free, and why?

Thanks for answering.


Answer:

This is a list of the files that are removed from Firefox® 3.0.1 source:

./mailnews/addrbook/src/nsAbOSXDirectory.o
./mailnews/addrbook/src/nsAbOSXCard.o
./mailnews/addrbook/src/nsAbOSXDirFactory.o
./mailnews/addrbook/src/nsAbOSXUtils.o
./plugin/oji/JEP
./build/wince/shunt/build/shunt.vcb
./build/wince/shunt/build/shunt.vco
'./directory/c-sdk/ldap/examples/macintosh/asearch (2i).68k.u'
'./directory/c-sdk/ldap/examples/macintosh/asearch (4i).68k.u'
'./directory/c-sdk/ldap/examples/macintosh/asearch PPC.u'
./directory/c-sdk/ldap/libraries/macintosh/LDAPClient.mcp
./modules/oji/tests/script/killer.exe
./modules/plugin/samples/default/mac/NullPlugin.rsrc
'./modules/plugin/tools/sdk/samples/basic/mac/Basic Plugin.mcp'
./modules/plugin/tools/sdk/samples/basic/mac/Basic.rsrc
'./modules/plugin/tools/sdk/samples/scriptable/mac/Scriptable Plugin.mcp'
'./modules/plugin/tools/sdk/samples/scriptable/mac/Scriptable PluginIDL.mcp'
./modules/plugin/tools/sdk/samples/scriptable/mac/Scriptable.rsrc
./other-licenses/7zstub/firefox/7zSD.sfx
./toolkit/mozapps/update/src/updater/macbuild/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib
./toolkit/mozapps/update/src/updater/macbuild/Contents/PkgInfo
./extensions/manticore/resources/manticore.psd
./extensions/universalchardet/doc/UniversalCharsetDetection.doc
./config/bin2rc.exe
./config/makedep.exe
./config/mangle.exe
./config/mantomak.exe
./embedding/browser/activex/src/pluginhostctrl/cab/redist/ATL.DLL
./embedding/browser/activex/tests/vbrowse/browser.frx
./embedding/browser/activex/tests/vbrowse/frmToolBar.frx
./embedding/browser/cocoa/res/English.lproj/alert.nib/objects.nib
./embedding/browser/powerplant/resources/cfmAlias.rsrc
./embedding/browser/powerplant/resources/cfmAliasDebug.rsrc
./embedding/minimo/mozconfig
./embedding/qa/testembed/testembed.aps
./embedding/tests/MSDotNETCSEmbed/MSDotNETCSEmbed.suo
./embedding/tests/cocoaEmbed/res/English.lproj/MainMenu.nib/objects.nib
./embedding/wrappers/DotNETEmbed/DotNETEmbed.snk
./intl/unicharutil/tools/data/case.dat
./intl/unicharutil/tools/data/cmbcl.dat
./intl/unicharutil/tools/data/ctype.dat
./intl/unicharutil/tools/data/decomp.dat
./intl/unicharutil/tools/data/num.dat
./js/src/fdlibm/fdlibm.mdp
./js/src/js.mdp
./js/src/liveconnect/jsj_nodl.c
./plugin/oji/JEP/MRJPlugin.plugin/Contents/MacOS/MRJPlugin
./plugin/oji/JEP/MRJPlugin.plugin/Contents/MacOS/MRJPlugin.jar
./plugin/oji/JEP/MRJPlugin.plugin/Contents/Resources/MRJPlugin.rsrc
./plugin/oji/JEP/JavaEmbeddingPlugin.bundle/Contents/MacOS/JavaEmbeddingPlugin
./plugin/oji/JEP/JavaEmbeddingPlugin.bundle/Contents/Resources/Java/JavaEmbeddingPlugin.jar
./plugin/oji/MRJ/plugin/Resources/Dialogs.rsrc
./plugin/oji/MRJ/plugin/Resources/Strings.rsrc
./plugin/oji/MRJ/plugin/Resources/Version.rsrc
./plugin/oji/MRJ/plugin/MRJPlugin.jar
./plugin/oji/MRJ/plugin/netscape.plugin.jar
./plugin/oji/MRJ/plugin/Source/JMURLConnection
./plugin/oji/MRJ/testing/ConsoleApplet/ConsoleApplet.mcp
./plugin/oji/MRJ/testing/JSApplet/JSApplet.mcp
./plugin/oji/MRJ/testing/SwingApplet/TestApplet.mcp
./plugin/oji/MRJ/testing/TrivialApplet/MyApplet.mcp
./plugin/oji/MRJCarbon/MRJSDK/JavaFrameworks/JavaEmbeddingLib
./plugin/oji/MRJCarbon/plugin/MRJPlugin.jar
./plugin/oji/MRJCarbon/plugin/Resources/Dialogs.rsrc
./plugin/oji/MRJCarbon/plugin/Resources/Strings.rsrc
./plugin/oji/MRJCarbon/plugin/Resources/Version.rsrc
./xpcom/reflect/xptcall/tests/eVC4/XPTCInvoke_Testing.cpp
./xpcom/tests/StringFactoringTests/StringTest.mcp
./xpcom/typelib/xpidl/macplugin/compiler.rsrc
./xpcom/typelib/xpidl/macplugin/linker.rsrc
./xpcom/typelib/xpidl/macplugin/panel.rsrc
./xpcom/typelib/xpidl/macplugin/version.rsrc
./xpinstall/packager/mac/ASEncoder/build/ASEncoder.mcp
./xpinstall/packager/mac/ASEncoder/rsrc/ASEncoder.rsrc
./xpinstall/packager/mac/ASEncoder/src/ASEncoderUsage.script
./xpinstall/test/pre_checkin.xpi
./xpinstall/wizard/libxpnet/GUSI/lib/GUSI_Core.PPC.Lib
./xpinstall/wizard/libxpnet/GUSI/lib/GUSI_ForeignThreads.PPC.Lib
./xpinstall/wizard/libxpnet/GUSI/lib/GUSI_MPW.PPC.Lib
./xpinstall/wizard/libxpnet/GUSI/lib/GUSI_MSL.PPC.Lib
./xpinstall/wizard/libxpnet/GUSI/lib/GUSI_SIOUX.PPC.Lib
./xpinstall/wizard/libxpnet/GUSI/lib/GUSI_Sfio.PPC.Lib
./xpinstall/wizard/mac/rsrc/MIWCommon.rsrc
./xpinstall/wizard/mac/rsrc/Mozilla.rsrc
./xpinstall/wizard/os2/setuprsc/box_ch_d.bmp
./xpinstall/wizard/os2/setuprsc/box_chec.bmp
./xpinstall/wizard/os2/setuprsc/box_unch.bmp
./xpinstall/wizard/unix/src2/logo.xpm
./gfx/cairo/libpixman/src/pixman-vc71.lib
./gfx/src/mac/printerplugin/Resources/English.lproj/Localizable.strings
./gfx/src/mac/nsMacGFX.rsrc
./layout/doc/SpaceMgr_BlockReflSt_OD.sda
./layout/doc/object_diagram_template.sda
./layout/html/tests/block/bugs/RealSnow.jar
./webshell/tests/viewer/mac/cfmAlias.rsrc
./webshell/tests/viewer/mac/cfmAliasDebug.rsrc
./webshell/tests/viewer/mac/viewer.ppob
./webshell/tests/viewer/mac/viewer.rsrc
./webshell/tests/viewer/mac/viewercarb.rsrc
./webshell/tests/viewer/viewer-beos.rsrc
./xpfe/bootstrap/appleevents/nsAppleEvents.rsrc
./xpfe/bootstrap/apprunner-beos.rsrc
./mailnews/mapi/old/tests/mapitest/mapitest.ncb
./mailnews/mapi/old/tests/mapitest/mapitest.opt
./xpfe/bootstrap/splash.bmp
./xpfe/bootstrap/mozilla.ico
./xpfe/bootstrap/mozos2.ico
./browser/app/mozicon128.png
./browser/app/mozicon16.xpm
./browser/app/mozicon50.xpm
./xpfe/bootstrap/icons/os2/mozilla.ico
./xpinstall/wizard/windows/setuprsc/bitmap1.bmp
./xpinstall/wizard/windows/setuprsc/downloadLogo.bmp
./xpinstall/wizard/windows/setuprsc/turbo-systray.bmp
./xpinstall/wizard/os2/nsinstall/stubinstall.ico
./xpinstall/wizard/os2/setuprsc/downloadLogo.bmp
./xpinstall/wizard/os2/setuprsc/bitmap1.bmp
./suite/branding/icons/gtk/seamonkey.png
./themes/classic/communicator/brand/throbber-single.gif
./themes/classic/communicator/brand/throbber16-single.gif
./themes/classic/communicator/brand/throbber-anim.gif
./themes/classic/communicator/brand/throbber16-anim.gif
./themes/modern/communicator/brand/throbber-single.gif
./themes/modern/communicator/brand/throbber16-single.gif
./themes/modern/communicator/brand/throbber-anim.gif
./themes/modern/communicator/brand/throbber16-anim.gif
./xpfe/bootstrap/splash.xpm
./themes/classic/communicator/icons/turbo-systray.gif
./themes/modern/communicator/icons/turbo-systray.gif
other-licenses/
README/mozilla/README.os2
netwerk/protocol/ftp/doc/rfc959.txt
directory/c-sdk/ldap/docs/draft-ietf-ldapext-ldap-c-api-05.txt
calendar/sunbird/app/sunbird.ico
calendar/sunbird/app/default.xpm
browser/branding/nightly
browser/branding/unofficial
./themes/classic/communicator/brand/throbber-anim.gif
./themes/classic/communicator/brand/throbber16-anim.gif
./themes/modern/communicator/brand/throbber-single.gif
./themes/modern/communicator/brand/throbber16-single.gif
./themes/modern/communicator/brand/throbber-anim.gif
./themes/modern/communicator/brand/throbber16-anim.gif
./xpfe/bootstrap/splash.xpm
./themes/classic/communicator/icons/turbo-systray.gif
./themes/modern/communicator/icons/turbo-systray.gif
other-licenses/
README/mozilla/README.os2
netwerk/protocol/ftp/doc/rfc959.txt
directory/c-sdk/ldap/docs/draft-ietf-ldapext-ldap-c-api-05.txt
calendar/sunbird/app/sunbird.ico
calendar/sunbird/app/default.xpm
browser/branding/nightly
browser/branding/unofficial

As you can see, it is mostly the branding/trademark and the name of the application which are non-free, by the GNU definition of Free Software. How can it be free when we need permissions from Mozilla® Corporation! :)

Also there are many non-free plug-ins and to list them all would require some researching. However Mozilla® Corporation have not defined any rule on discouraging non-free plug-ins, and rather their binary does recommend non-free plug-ins when the user visits certain sites.

Please note that I don't speak officially for GNU or FSF, and this is only my humble understanding.


For further information, do read these:


Hope that helped.

~Muhammad

2 comments:

Ted Mielczarek said...

You say "the binaries that they release include additional non-Free Software." and then go on to list a bunch of things from the source. Do you actually have a problem with non-free parts of the binary distribution? Additionally, looking up many of these files that you've listed in the source show them having MPL/GPL/LGPL tri-license headers. What leads you to believe they are non-free?

MJ said...

Greeting you with peace Ted,

"Do you actually have a problem with non-free parts of the binary distribution?"

That is correct. Our ethics does not allow us to recommend downloading such binary, until it is 100% freedom-respecting binary (from all aspects & angles).

Also when I give the source-code to my neighbors telling them they have the four freedoms which they can exercise on it.. but oh wait a minute, there are conditions to it.. that would be a contradicting statement of mine.

Giving full freedom, and then taking some parts of them is not really freedom-giving.

In fact, you need permissions from Mozilla®: http://www.mozilla.org/foundation/trademarks/policy.html

And that is why we have the GNU IceCat project.

The list of the files are taken from the script used for IceCat: http://svn.savannah.gnu.org/viewvc/trunk/icecat/remove.nonfree?root=gnuzilla&view=log

And yes you are right that many have tri-license headers. They are removed because eventually when you compile with official branding enabled, your freedom to distribute your binary is taken away from you, and you need permission as explained in the first link from Mozilla® website above.

In short, if a piece of software claims to be GPL-licensed (for example), that still does not mean it truly respects the software freedom philosophy as we see it in the GNU project and Free Software Foundation.

Finally, to choose software-freedoms or not, is up to you.

I am a man of choice and value having choices greatly.

Peace,
~Muhammad