Penelope Developer Page: Difference between revisions

Jump to navigation Jump to search
Changes as a consequence of moving to the trunk
(Changes as a consequence of moving to the trunk)
Line 79: Line 79:
See the steps above under Linux for how to get the source code via CVS.
See the steps above under Linux for how to get the source code via CVS.


Penelope uses the version of the Mozilla platform before it switched to using the MozillaBuild environment. Make sure you go through in detail the [http://developer.mozilla.org/en/docs/Windows_build_prerequisites_using_cygwin setup documentation for Cygwin]. There's lots of environment variables to create and some tools to download and configure. They recommend having a batch script to set up the environment, but you can permanently set all the environment variables so that you can compile from any command prompt and don't have to remember to run the script.
Penelope is back to using the trunk version of the Mozilla platform, which uses the MozillaBuild environment. Make sure you go through in detail the [http://developer.mozilla.org/en/docs/Windows_Build_Prerequisites setup documentation]. It's pretty simple to set up with MozillaBuild now. You just download the package and the installer gives you all the right versions of the tools you need to build. You have to use their MSys shell (which is basically bash) in order for it to compile correctly. It's easiest just to use their batch files for starting up the shell and getting the environment set up right. I've only tried it with Visual Studio 2005 (the official version of VS for the trunk), which has a corresponding batch file of start-msvc8.bat.


The Windows build prerequisites result in a setup that will not build.  The current version of the "ash" component ("Base" category) is 20040127-3. This version is not compatible with the current Mozilla build - you need to go back to 20040127-1. As it turns out, there is only one file in the "ash" package that seems to make a difference in the build: sh.exe.
Here's the options for your ~/.mozconfig file in order to make a debug build:
 
Here's the options for your %HOME%\.mozconfig file in order to make a debug build:


     . $topsrcdir/mail/config/mozconfig
     . $topsrcdir/mail/config/mozconfig
Line 95: Line 93:


* make -f client.mk build
* make -f client.mk build
==== Visual Studio .NET 2003 and Service Pack 1 ====
You must install Service Pack 1 in order to successfully build.  You can find Service Pack 1 [http://www.microsoft.com/downloads/details.aspx?familyid=69d2219f-ce82-46a5-8aec-072bd4bb955e&displaylang=en here].  There's one aspect to installing the Service Pack that can be somewhat tricky.  At a point during the install of the Service Pack it will ask you for the <code>vs_setup.msi</code> file of the original Visual Studio installer.  You must have the exact original installer that you personally used, otherwise the Service Pack upgrade won't continue on.  The Service Pack installer is woefully slow, and has bad UI as well.  Know that if you run it there will be places where there are long pauses (I had one that was around 15 minutes).  The release notes for the SP [http://support.microsoft.com/default.aspx?scid=kb;en-us;924009#70 detail this].


==== Windows Vista ====
==== Windows Vista ====


Windows Vista provides some roadblocks in compiling Penelope.  The first is the new security model.  By default, administrator accounts under Vista run applications at a reduced privilege level called Standard User.  Microsoft found that the most common legitimate reason to need administrator rights was when installing an application, and in order for all the existing installation programs to work under Vista they had to come up with a heuristic workaround.  What Vista does is automatically attempt to elevate the privilege of any application that has the words "install" or "setup" in the name of the executable filename.  I say "attempt" because there appear to be some situations where the privilege elevation fails, and one of those happens to be when called inside of scripts.  I think it has to do with the way the process is created (privilege elevation happens when you call ShellExecute(), but not when CreateProcess() is used), but I'm not sure of that entirely because I don't know how Cygwin shells start up new processes.
Windows Vista provides some roadblocks in compiling Penelope.  The first is the new security model.  By default, administrator accounts under Vista run applications at a reduced privilege level called Standard User.  Microsoft found that the most common legitimate reason to need administrator rights was when installing an application, and in order for all the existing installation programs to work under Vista they had to come up with a heuristic workaround.  What Vista does is automatically attempt to elevate the privilege of any application that has the words "install" or "setup" in the name of the executable filename.  I say "attempt" because there appear to be some situations where the privilege elevation fails, and one of those happens to be when called inside of scripts.  I think it has to do with the way the process is created (privilege elevation happens when you call ShellExecute(), but not when CreateProcess() is used), but I'm not sure of that entirely because I don't know how MSys shells start up new processes.


And wouldn't you know it, one of the utilities used to compile Penelope falls in to this heuristic: nsinstall.exe.  All that command-line tool really does is copy some files, which doesn't require Administrator privileges as long as you have have write access to the destination directory, but Vista's automatic privilege elevation thinks it might due to the name.  The privilege elevation fails and so the build fails.  Happy, happy, joy, joy.
And wouldn't you know it, one of the utilities used to compile Penelope falls in to this heuristic: nsinstall.exe.  All that command-line tool really does is copy some files, which doesn't require Administrator privileges as long as you have have write access to the destination directory, but Vista's automatic privilege elevation thinks it might due to the name.  The privilege elevation fails and so the build fails.  Happy, happy, joy, joy.
145

edits

Navigation menu