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

Friday, August 01, 2008

Getting Started with GnuPG

Update: Skip this guide, and just download Gpg4win and read the manual that comes with it.

This is a step-by-step guide to get going with GnuPG, on M$ Windows XP (with Service Pack 2).

GnuPG is the GNU project's tool that allows us to encrypt data and therefore have a secure communication.

GnuPG is Free Software (meaning that it respects your freedom). It can be freely used, modified and distributed under the terms of the GNU General Public License.

While it's well known that I discourage everyone from using such an operating system that pose restrictions on the users right and left, like Micro$oft Windows.. I have written this guide only for the goal of helping my fellow human beings use our free as-in-free-speech software.

And since I have no Windows machine nor can access one, I had to depend on the help of a friend and his computer.

  1. First I instructed my friend to download GnuPG from http://gnupg.org/download/index.en.html (direct ftp link: ftp://ftp.gnupg.org/gcrypt/binary/gnupg-w32cli-1.4.9.exe).
  2. Then to double-click on gnupg-w32cli-1.4.9.exe file
  3. Then to choose English for the language
  4. Then to click OK
  5. Then to click on Next
  6. Then to read the license of the software, and to click on Next if he agrees with it.
  7. Everything was selected so he clicked on Next.
  8. Then selected en for English language again and clicked Next.
  9. Then he chose "C:\Program Files\GNU\GnuPG" for the destination directory and clicked Next.
  10. Then clicked on Install.
  11. And when completed he clicked on Next and finally clicked on Finish.
  12. GnuPG is now installed and ready to use.
  13. Start -> All Programs -> Accessories -> Command Prompt
  14. Here I've instructed my friend to type:
    cd
    (and to always press Enter key of course after every command like this).
  15. This will tell us what directory he's at. In his case it is "C:\Documets and Settings\user".
  16. He now changed directory to the desktop directory by typing exactly:
    cd "C:\Documets and Settings\user\Desktop"

  17. Then I asked him to exactly type:
    "C:\Program Files\GNU\GnuPG\gpg.exe" --gen-key

  18. And to enter 1 when asked to select an option, which was the default choice.
  19. Then to enter 2048, which is the default.
  20. Then chose an expiration period. He decided to keep the keys forever so chose 0.
  21. Of course he entered his name and e-mail address, as well as a passphrase and repeated the passphrase for confirmation.
  22. Now for the key I told him to type exactly:
    "C:\Program Files\GNU\GnuPG\gpg.exe" --export --armor > pubkey.asc

    All that in one line of course.
  23. This finally gave him a file on the Desktop called pubkey.asc
  24. To check if everything went well, he used Notepad to open the file by typing:
    notepad pubkey.asc

    And there he saw the gibberish stuff. Look at my public key to know how it would look like.

At this point you have finished both setting up GnuPG and got yourself a pair of keys. A private key, and a public key.

The gibberish stuff inside the pubkey.asc file is your public key, and please feel free to share it with everyone. Send it to them in messages or e-mails or add it to the end of your e-mail letters.. etc...

A follow up post on How to Use GnuPG in our daily life will be posted here soon.