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

Dave Yeo

  • Hero Member
  • *****
  • Posts: 4775
  • Karma: +99/-1
    • View Profile
Re: How to build Seamonkey?
« Reply #45 on: June 13, 2017, 04:29:54 am »
The message is normal and just means that the rebase was unneeded. You can look at https://github.com/bitwiseworks/mozilla-os2/commits/master for activity upstream and then do the checkout master & rebase steps to bring your branch to the same level as the master (Bitwise).

Laurenz Sommer

  • Newbie
  • *
  • Posts: 36
  • Karma: +0/-0
    • View Profile
Re: How to build Seamonkey?
« Reply #46 on: June 14, 2017, 12:28:41 am »
OK, so I have already added the patch to my repository with git add and git commit?
I see, powerful means confusing me with power :-[ ;D
I will dig through some tutorials and in conjunction with your crash course it hopefully will be enough for me.

Laurenz Sommer

  • Newbie
  • *
  • Posts: 36
  • Karma: +0/-0
    • View Profile
Re: How to build Seamonkey?
« Reply #47 on: June 18, 2017, 01:53:52 pm »
I have verified my setup on another laptop; in the hope it might be helpful to someone:
The following packages need to be installed either via 'yum install' or ANPM's Quick install:
Code: [Select]
netlabs-exp
nasm gcc gcc-wlink gcc-wrc kbuild-make m4 grep gawk perl python findutils tar pkgconfig perl-PathTools pthread-devel
exceptq exceptq-devel autoconf213 autoconf nspr-devel nss-devel libicu-devel pixman-devel cairo-devel pango-devel
fontconfig-devel freetype-devel libkai-devel libvpx-devel libjpeg-turbo-devel libpng-devel zlib-devel bzip2-devel
hunspell-devel libcx-devel expat-devel python-test ffmpeg-devel libtool libtool-ltdl-devel gettext-devel
git
mercurial
Install the OS/2 Developer's Toolkit, this may be done with yum, too.
In the config.sys set VIRTUALADDRESSLIMIT=3072.
Reboot, so changes applied to your config.sys become active.
Install lxlite from http://home.earthlink.net/%7Esteve53/betas/lxlt135-shl-20121201.zip into your PATH.
Follow Dave's instructions to download the sources: https://bitbucket.org/dryeo/dry-comm-esr31/src/ad7137973e042eb45ca5fb35764ebafb2db40f4c/BUILD.OS2?at=default&fileviewer=file-view-default. If you get an 'File or directory not found' error it might be possible that you have to set HOSTNAME in your environment settings.
Download all attached files, edit them  so the paths match your environment. Move config.site to \usr\local\share.
Open a command shell in \cc-31\mozilla, execute sh.exe in this command shell. In sh execute the following:
Code: [Select]
autoconf213
(cd js/src && autoconf213)
(cd js/src/ctypes/libffi && autoreconf -fi)
(cd nsprpub && autoconf)
In /cc-31 open a command shell (use cmd.exe, not 4os2, and pay attention that the environment setting COMSPEC is set to C:\os2\ cmd.exe). Run mozenv.cmd and build_suite.cmd. After the build process completes run smxqs.cmd, cd into obj-sm and execute 'make package'.
The zip package is in \cc-31\obj-sm\dist.
The build process took about 5 and a half hour on a laptop with an Intel CoreDuo 1,83 GHz and 2 GiB RAM; 8 and a half hour with a Pentium M 2,13 GHz and 1280 MiB RAM.

This instruction might be wrong, incomplete or completely useless. Especially it is likely that some of the RPM packages are not necessary.
Thanks to everyone, who helped me finding out the steps.
« Last Edit: June 19, 2017, 12:20:33 am by Laurenz Sommer »

Dave Yeo

  • Hero Member
  • *****
  • Posts: 4775
  • Karma: +99/-1
    • View Profile
Re: How to build Seamonkey?
« Reply #48 on: June 18, 2017, 06:45:46 pm »
Thanks Laurenz,
Minor edits, now seem to need
Code: [Select]
autoreconf -f -ito correctly set up js/src/ctypes/libffi
And currently our headers need adjusting as described in https://github.com/bitwiseworks/mozilla-os2/issues/188#issuecomment-294180407 which should eventually be fixed.

Laurenz Sommer

  • Newbie
  • *
  • Posts: 36
  • Karma: +0/-0
    • View Profile
Re: How to build Seamonkey?
« Reply #49 on: June 18, 2017, 09:09:43 pm »
Oh, yes I forgot about autoreconf.
The problem with param.h is fixed, with the up to date libc-devel from netlabs-exp no editing was needed when I built SeaMonkey yesterday.
I'll edit my post obove when I'm home, right now I'm traveling by train and post with my mobile phone made in 2003 :D

Dave Yeo

  • Hero Member
  • *****
  • Posts: 4775
  • Karma: +99/-1
    • View Profile
Re: How to build Seamonkey?
« Reply #50 on: June 19, 2017, 07:53:22 am »
For completeness, here are the files needed to build Thunderbird, Firefox and as a bonus, InstantBird (untested with 45esr, the mozconfig worked for 38)
To build Thunderbird is almost exactly the same process as building SeaMonkey except using the Thunderbird (tb) files instead of the suite ones. Firefox is built the same way except the build_ff.cmd and mozconfig.ff need to be in mozilla/ and run from there. No xqs support in Firefox currently.
Note that at the end, you can do make install instead of make package. Make install will install in \usr\local\lib\$name but can be modified by changing the $PREFIX.

Jochen Schäfer

  • Sr. Member
  • ****
  • Posts: 306
  • Karma: +27/-0
    • View Profile
Re: How to build Seamonkey?
« Reply #51 on: June 19, 2017, 08:52:22 am »
In /cc-31 open a command shell (use cmd.exe, not 4os2, and pay attention that the environment setting COMSPEC is set to C:\os2\ cmd.exe).
What was the problem with 4os2 again? I saw some hints in this thread, but no explanations why one should only use CMD for dev.

Laurenz Sommer

  • Newbie
  • *
  • Posts: 36
  • Karma: +0/-0
    • View Profile
Re: How to build Seamonkey?
« Reply #52 on: June 19, 2017, 02:00:18 pm »
What was the problem with 4os2 again? I saw some hints in this thread, but no explanations why one should only use CMD for dev.
With SET COMSPEC=C:\OS2\4OS2.EXE only one processor core was utilised while building. Another problem with 4os2 in COMSPEC not related to development of Firefox/SeaMonkey: When you start an exe from a REXX program compiled with rexx2exe, 4os2 tries to execute the exe as an REXX script, not as a binary executable and fails of course.
When executing 'make package' in 4os2 it hung after compressing xul.dll with lxlite.

Jochen Schäfer

  • Sr. Member
  • ****
  • Posts: 306
  • Karma: +27/-0
    • View Profile
Re: How to build Seamonkey?
« Reply #53 on: June 19, 2017, 03:37:39 pm »
Thanks for the explanations. I will heed them.  ;D

Dariusz Piatkowski

  • Hero Member
  • *****
  • Posts: 1316
  • Karma: +26/-0
    • View Profile
Re: How to build Seamonkey?
« Reply #54 on: December 07, 2017, 12:04:35 am »
Laurenz & Team,

I am about to attempt the creation of this environment with the goal of building CPU specific version(s) of FF.

The question I have is regarding the utilization of TEMP space during this process: if RAM availability permits, would it makes sense (in terms of speeding up of the process) to use a virtual-disk (mem disk) as the scratch-pad for the final application build process?

Dave Yeo

  • Hero Member
  • *****
  • Posts: 4775
  • Karma: +99/-1
    • View Profile
Re: How to build Seamonkey?
« Reply #55 on: December 07, 2017, 12:50:11 am »
Be worth trying. The build process, especially the configure step uses %TEMPDIR% and/or%TMP% quite a bit.
When I tried, I consistently did get a failure about not being able to find a .S (assembler step) file.

Jochen Schäfer

  • Sr. Member
  • ****
  • Posts: 306
  • Karma: +27/-0
    • View Profile
Re: How to build Seamonkey?
« Reply #56 on: January 10, 2020, 04:11:42 pm »
So, I tried to build Seamonkey according to these instructions to get a sense for a correct porting setup.
I could check everything out, but when I start autoconf213 from the root directory, I get an error message because python-virtualenv.m4 is not existing, but is referenced.
Are the build instructions still valid?

EDIT: Corrected missing filename.
« Last Edit: January 10, 2020, 06:04:10 pm by Jochen Schäfer »

Dave Yeo

  • Hero Member
  • *****
  • Posts: 4775
  • Karma: +99/-1
    • View Profile
Re: How to build Seamonkey?
« Reply #57 on: January 10, 2020, 05:15:44 pm »
Without reviewing the whole thread, the only changes I can think of is that all the prerequisites are now in netlabs-rel. Netlabs-exp should also still work for now, once GCC is updated, building will fail.
Autoconf213 should now be in @UNIXROOT/usr/bin, for simplicity I use the drive letter, SET AUTOCONF213=x:/usr/bin/autoconf213.
Setting up the Python virtualenv is tricky and what forced me to the YUM/RPM setup but as long as all shell statements are correct, should work.
Autoconf213 should run before the virtualenv stuff. What happens if you simply run "sh x:/usr/bin/autoconf213" in the root of your tree and in mozilla/ ?

Jochen Schäfer

  • Sr. Member
  • ****
  • Posts: 306
  • Karma: +27/-0
    • View Profile
Re: How to build Seamonkey?
« Reply #58 on: January 10, 2020, 05:31:39 pm »
autoconf213 tells me, that it can't find the file mozilla/build/autoconf/python-virtualenv.m4.

Dave Yeo

  • Hero Member
  • *****
  • Posts: 4775
  • Karma: +99/-1
    • View Profile
Re: How to build Seamonkey?
« Reply #59 on: January 10, 2020, 05:50:07 pm »
Is it there? Should be a 2885 byte file.