MozillaBuild RC1

I have a version of MozillaBuild ready for widespread testing, packaged as an installer. I’m calling this RC1 because I don’t know of any bugs and unless we find some it is fine to put into production. It works with MSVC6, 7, 8, and MSVC 8 Express with an SDK. It builds the trunk, 1.8, and 1.8.0 branches.

Download MozillaBuildSetup.exe now

The installer was built using the patch in bug 366823, which hasn’t been reviewed or landed yet.

Please download and test this package (and start using it as your Windows development environment). If you have issues, please file bugs in Core->Build Config.

Changes From the Previous Release

In addition, I added a script which converts a cygwin source tree with CRLF line endings to an MSYS tree using LF line endings, and a client.mk check to warn users of problems with line endings.

Atom Feed for Comments 18 Responses to “MozillaBuild RC1”

  1. Simon Paquet Says:

    Benjamin,
    thanks for this. Even for people like me, who have setup their build environment a few times already, this is very useful and very welcome. I was wondering if there are any installation instructions that I should be aware of, e.g. should MozillaBuild be installed before I install MSVC 8 Express and the SDK or after I’ve installed them? Thanks again.

  2. Dan Fabulich Says:

    One notable: The default $HOME when using MSYS is often the same as the %USERPROFILE% directory on Windows, which is frequently a directory with spaces (c:\Documents and Settings\username). If your $HOME directory contains spaces, mozconfig-find will silently fail to track down your .mozconfig file.

    It’s probably not irrational to make the MozillaBuild batch scripts set a default location for the mozconfig script, e.g. install a blank template file in the mozilla-build directory, and set MOZCONFIG=/c/mozilla-build/mozconfig.

  3. Benjamin Smedberg Says:

    I would prefer to fix mozconfig-find to handle spaces correctly, rather than making everyone share a HOME (which includes .ssh private keys and such).

  4. Allan Beaufour Says:

    Still bundling XEmacs… even though I am using Emacs myself, I still think it is odd.

  5. Wladimir Palant Says:

    I am building right now, seems to work fine. This time it really worked almost instantaneously with MSVC8 Express. “Almost” because I still had to create the registry key the guessing script is looking for.

    Oh, and bundling with Emacs is still weird, right. I have better use for 50 MB of my disk space, not to mention the download size.

  6. joe Says:

    What is the registry key we need to set for this to work with msvc8 express?
    I get this:
    [c:\mozilla-build]start-msvc8.bat
    “Mozilla tools directory: ”
    4NT: C:\MOZILLA-BUILD\START-MSVC8.BAT [12] Unknown command “\guess-msvc.bat”
    “Microsoft Visual C++ version 8 was not found. Exiting.”

  7. Phil McLachlan Says:

    Thanks for the tool. I am using VS 7.1 and I checked out branch 1.8.0.4 (1.5.0.4 in FF). My builds end with the following error message.

    LINK : fatal error LNK1104: cannot open file ‘c:/mozilla-build/moztools/lib/libidl-0.6.lib’

    When I look in that directory I see a file called libidl-0.6_s.lib. Is there a file missing here? Should I report this as a bug? Any help is appreciated. Thanks.

  8. Dan Fabulich Says:

    “rather than makeing everyone share a HOME”

    I wasn’t suggesting that everyone should share a HOME, but that we should set the MOZCONFIG environment variable; if that variable is set, mozconfig-find will prefer it (instead of using HOME). With that said, I’ll try to hack up mozconfig-find to see if I can fix it and perhaps submit a patch for it.

  9. Benjamin Smedberg Says:

    Dan, I already fixed it: see bug 367127.

  10. René Says:

    Thank you so much for creating a 1-click package!

    Man, that is sweet!

  11. René Says:

    Can I use this to compile the FireFox 2.0.0.1 source package ?

    With a simple .mozconfig file:

    mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-@CONFIG_GUESS@
    . $topsrcdir/browser/config/mozconfig

    configure ; make gives me a windows error message

    xpt_link.exe – Unable to Locate Component
    This application has failed to start because MSVCR80.dll was not found. Re-installing the application may fix the problem.

    I’m guessing it’s looking for:

    C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT\msvcr80.dll

    Any idea why it didn’t find it? guess-msvc.bat found the MSVC8 directories just fine.

  12. Steve Lee Says:

    Works a treat but spotted a minor bug with start-msvc8.bat (raised).
    My first ever build of Mozilla went smoothly so thanks.
    2 comments
    1) I agree, why include emacs?
    2) Why not use mingw as well as msys? I note the main build docs say mingw is not recommend. Why is that? Would save big download of MSVC8 Express, SP1 and them and PSDK. Plus I really want to use FOSS tools if possible.

  13. Steve Lee Says:

    The Zone Alarm firewall (free 7.0.302) has a memory leak that makes it impossible to build from scratch without many reboots. Basically the Total Commit Charge and Kernel Memory just keep going up until you get spurious ‘Access denied’ or other strange errors and system lock-up, even with 1GB.

    It’s almost worth raising a ‘bug’ to save other’s the pain I’ve just been through.

  14. Günter Huerkamp Says:

    If if start the build the configure stopps with the following error:
    configure: error: Building crypto support requires a valid version of the standalone assembler (ml.exe for MSVC).
    *** Fix above errors and then restart with “make -f client.mk build”
    make: *** [configure] Error 1

    Please, could you include masm from http://www.codingcrew.de/masm32/index.php

  15. bmann Says:

    I’ve been trying to build mozilla as a spare time/”lunch” project. After reading many forum entries and creating a frankenstein’ed (hacked up/mingw/msys/cygwin/masm32/vc8) environment I am consistently getting the MSVCR80.dll error message from xpt_link. I have installed your latetst RC1 and get the same error.

    I have also tried the suggestions from the MSDN that recommend creating a ‘redist’ dir below the executable(MyApp, xpt_link) with an appropriate manifest. That yeilds the related R6034 C library load problem.

    I am guessing that there are deeper issues, that, from other forum entries and bug reports imply that many mozbuild tools need to be re-built/linked with VC8(Visual Studio 8 Express Edition). BTW I am attempting to build Thunderbird 2.0.

    FWIW, I am NOT a Windows developer non do I play one on TV.

    Thanks for your mozilla-build efforts. I’d be interested in any solution that permits me to successfully build!

  16. Benjamin Smedberg Says:

    bmann, as documented, the 1.8.1 codebase does not build correctly with VC8 and there are no plans to make it do so. Please use VC6, or build the trunk codebase.

  17. Peter Says:

    Benjamin,
    Thanks for this.
    I use your mozillaBuildSetup1.exe to set up the eviroment, and got an error when build trunk code.
    my configuration:
    windows xp sp2, vc8, Trunk code (checked out just now).
    Could you give me any suggestion or tips ?
    Thanks in advance.

    lib -NOLOGO -OUT:”nspr4_s.lib” ./prvrsion.obj io/./prfdcach.obj io/./prmwait.obj io/./prmapopt.obj io/./priometh.obj io/./pripv6.obj io/./prlayer.obj io/./prlog.obj io/./prmmap.obj io/./prpolevt.obj io/./prprf.obj io/./prscanf.obj io/./prstdio.obj threads/./prcmon.obj threads/./prrwlock.obj threads/./prtpd.obj linking/./prlink.obj malloc/./prmem.obj md/./prosdep.obj memory/./prshm.obj memory/./prshma.obj memory/./prseg.obj misc/./pralarm.obj misc/./pratom.obj misc/./prcountr.obj misc/./prdtoa.obj misc/./prenv.obj misc/./prerr.obj misc/./prerror.obj misc/./prerrortable.obj misc/./prinit.obj misc/./prinrval.obj misc/./pripc.obj misc/./prlog2.obj misc/./prlong.obj misc/./prnetdb.obj misc/./prolock.obj misc/./prrng.obj misc/./prsystem.obj misc/./prthinfo.obj misc/./prtpool.obj misc/./prtrace.obj misc/./prtime.obj malloc/./prmalloc.obj io/./prdir.obj io/./prfile.obj io/./prio.obj io/./prsocket.obj misc/./pripcsem.obj threads/./prcthr.obj threads/./prdump.obj threads/./prmon.obj threads/./prsem.obj threads/combined/./prucpu.obj threads/combined/./prucv.obj threads/combined/./prulock.obj threads/combined/./prustack.obj threads/combined/./pruthr.obj md/windows/./ntmisc.obj md/windows/./ntsec.obj md/windows/./ntsem.obj md/windows/./ntinrval.obj md/windows/./ntgc.obj md/windows/./w95thred.obj md/windows/./w95io.obj md/windows/./w95cv.obj md/windows/./w95sock.obj md/windows/./win32_errors.obj md/windows/./w32ipcsem.obj md/windows/./w32poll.obj md/windows/./w32rng.obj md/windows/./w32shm.obj md/windows/./w95dllmain.obj
    LIB : fatal error LNK1181: can’t open input file“io/./prfdcach.obj”
    make[5]: *** [nspr4_s.lib] Error 157
    make[5]: Leaving directory `/e/mozilla2/mozilla/obj-firefox/nsprpub/pr/src’
    make[4]: *** [export] Error 2
    make[4]: Leaving directory `/e/mozilla2/mozilla/obj-firefox/nsprpub/pr’
    make[3]: *** [export] Error 2
    make[3]: Leaving directory `/e/mozilla2/mozilla/obj-firefox/nsprpub’
    make[2]: *** [tier_nspr] Error 2
    make[2]: Leaving directory `/e/mozilla2/mozilla/obj-firefox’
    make[1]: *** [default] Error 2
    make[1]: Leaving directory `/e/mozilla2/mozilla/obj-firefox’
    make: *** [build] Error 2

  18. Red_Blue Says:

    Why can’t I set the MOZCONFIG variable from a script running in the MINGW32-console (MSVC8, WinXPSP2)? If I do
    “export MOZCONFIG=foo/bar”
    from the prompt, I can see the change with “set”. But if I put it in a script and try to run the script, it executes without errors but doesn’t change the variable.

    In any case, I would like a way to feed strings to the console so I don’t have to type all that shit every time I’m going to build something (paste from Windows clipboard to the console window doesn’t work, tried Ctrl+V and right click).

Leave a Reply