Author
Topic: How to build Seamonkey? (Read 4701 times)

Hello,I am new to this forum, so I'd like to write a few words about myself:I am 21 years old and studying mechanical engineering in Aachen, Germany. In my leisure I like to tinker with old Computers and so I found out about OS/2 in 2014. At the moment my main laptop for OS/2 is a HP tc4400 from 2007 running OS/2 Warp 4 Convenience Package 2 with FixPak 6. My knowledge about programming is limited but I wrote a few small programs in Java and REXX.And now to my Problem:I am trying to build Seamonkey 2.42 from the sources (in the end i want to create a german version of it, but this may be step two or three). With ANPM I installed everything mentioned in this post https://github.com/bitwiseworks/mozilla-os2/issues/82#issuecomment-59601735 except mozftcfgft because I don't know where to get it and was not sure if it is needed for the current version. Additionally I installed the "...-devel" package of every package needed to run Seamonkey. Unfortunately I found no list of build requirements for the current version. I installed mercurial and git and downloaded the sources according to the build.os2 for Seamonkey. I did not find the described mozconfig file so i used the one from https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/OS2_Build_Prerequisites/Building_on_OS2_using_Mercurial:

configure: error: yasm is a required build tool for this architecture when webm is enabled. You may either install yasm or --disable-webm (which disables the WebM video format). See https://developer.mozilla.org/en/YASM for more details.I reread the github thread mentioned above and run the commands posted by dmik in sh.exe to set the environment settings. I did not set CFLAGS="-march=i486 -mtune=i686" and CXXFLAGS="-march=i486 -mtune=i686" because that caused the make command to fail with

checking for EMX/OS2 environment... nochecking for executable suffix... configure: error: installation or configuration problem: compiler cannot create executables.. It still failed because of missing yasm so I set YASM=nasm.exe and LIBJPEG_TURBO_AS=nasm.exe. This worked (at least it didn't fail at this point) but now it fails with the message:

configure: error: ECMAScript Internationalization API is not yet supported on this platformI have no clue what this means.

I am pretty sure that I have missed some steps to set up the build environment, so I would be very happy if someone has a step by step instruction or at least a list of required environment settings and development packages.

You may have to edit the langpack text file install.rdf (unzip the XPI file) to support SM 2.42: if 2.42 was no official release, if 2.40 is the latest langpack before 2.42, and if 2.40's langpack supports the range 2.40-2.40.

I tried this already, but the language packages for Seamonkey 2.40 (and 2.46) are not installable on 2.42, when I edit the version number in the file install.rdf inside the package to make it installable this leads to an unusable Browser (menu bar missing, pages don't load).But a german Seamonkey is not the only reason to build it myself, I am very interested to see how it works, too.

Regarding DIY: I guess you have contact Dave Yeo, by email. It looks like he's using components which weren't GA yet, like a LIBCX DLL. If anything you can tell him the CRC32-checksum of your compiled EXE, and if there's a match then you can upload yours.

Hello,I am new to this forum, so I'd like to write a few words about myself:I am 21 years old and studying mechanical engineering in Aachen, Germany. In my leisure I like to tinker with old Computers and so I found out about OS/2 in 2014. At the moment my main laptop for OS/2 is a HP tc4400 from 2007 running OS/2 Warp 4 Convenience Package 2 with FixPak 6. My knowledge about programming is limited but I wrote a few small programs in Java and REXX.And now to my Problem:I am trying to build Seamonkey 2.42 from the sources (in the end i want to create a german version of it, but this may be step two or three). With ANPM I installed everything mentioned in this post https://github.com/bitwiseworks/mozilla-os2/issues/82#issuecomment-59601735 except mozftcfgft because I don't know where to get it and was not sure if it is needed for the current version. Additionally I installed the "...-devel" package of every package needed to run Seamonkey. Unfortunately I found no list of build requirements for the current version. I installed mercurial and git and downloaded the sources according to the build.os2 for Seamonkey. I did not find the described mozconfig file so i used the one from https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/OS2_Build_Prerequisites/Building_on_OS2_using_Mercurial:

configure: error: yasm is a required build tool for this architecture when webm is enabled. You may either install yasm or --disable-webm (which disables the WebM video format). See https://developer.mozilla.org/en/YASM for more details.I reread the github thread mentioned above and run the commands posted by dmik in sh.exe to set the environment settings. I did not set CFLAGS="-march=i486 -mtune=i686" and CXXFLAGS="-march=i486 -mtune=i686" because that caused the make command to fail with

checking for EMX/OS2 environment... nochecking for executable suffix... configure: error: installation or configuration problem: compiler cannot create executables.. It still failed because of missing yasm so I set YASM=nasm.exe and LIBJPEG_TURBO_AS=nasm.exe. This worked (at least it didn't fail at this point) but now it fails with the message:

configure: error: ECMAScript Internationalization API is not yet supported on this platformI have no clue what this means.

I am pretty sure that I have missed some steps to set up the build environment, so I would be very happy if someone has a step by step instruction or at least a list of required environment settings and development packages.

Many thanks, Laurenz

Hi Laurenz, welcome to os2world and Mozilla land.Sorry for not keeping up with updating the build description, I'll try to update the tree later with more up to date build instructions and mozconfig.Right now I'm fighting with applying the last patch, our mercurial is buggy so the source at bitbucket is one commit behind. I'll fix that soon. I also have a German locale patch that I can give you once you're building.MZFNTCFGFT is no longer needed we're using the real fontconfig.Sounds like you have your build environment setup now.I run this at a cmd prompt before building to finish setting up my environment, call it mozenv.cmd. You'll have to make adjustments to your setup and some stuff such as the toolkit lines probably aren't needed if you used ANPM to install the toolkit.

set MOZCONFIG=/work/cc45esr/.mozconfig.smpython mozilla/mach -l build_mach_sm.log build 2>&1 | tee build_sm.logOther considerations, make sure you have VIRTUALADDRESSLIMIT=3072 in config.sys, we need the full address range to link xul.dll. Need at least 2GBs of ram to avoid excessive swapping. Takes over 5 hours to build here on a 2.4 Ghz C2D.The binaries will be in obj-sm/dist/bin.To package, you need lxlite on your path. Need to run the attached cmd file (after adjusting to your environment) from cc45esr to build the xqs files, cd into obj-sm and run make package.

Thank you very much for your answer, Dave. It still fails but with an other error:I deleted all sources to start at a clean state. Then I opened a command prompt and executed the following commands to pull the sources:

[D:\]hg clone https://dryeo@bitbucket.org/dryeo/dry-comm-esr31 /gecko45[D:\]cd gecko45[D:\gecko45]git clone https://github.com/bitwiseworks/mozilla-os2.git mozilla/[D:\gecko45]python client.py --skip-mozilla checkoutThen I set up the environment settings according to your post and set MOZCONFIG to use your mozconfig file. Finally I ran mach to build. It failed with the following message:

I knew I'd forget things You need to use plain old autoconf on the ctypes configure.in rather then autoconf213. You should be able to recover by running sh /usr/bin/autoconf from D:/gecko45/mozilla/js/src/ctypes/libffi/ (assuming you have installed the latest autoconf and your UNIXROOT is on the same drive)

js/src/ctypes/libffi> configure: error: cannot run sh.exe D:/gecko45/mozilla/js/src/ctypes/libffi/config.subwhen I looked into the directory D:\gecko45\mozilla\js\src\ctypes\libffi I discovered that configure wasn't changed by autoconf so I deleted it and created it newly with