Talk about code development, features, specific bugs, enhancements, patches, and similar things.
Forum rules
Please keep everything here strictly on-topic.
This board is meant for Pale Moon source code development related subjects only like code snippets, patches, specific bugs, git, the repositories, etc.
This is not for tech support! Please do not post tech support questions in the "Development" board!
Please make sure not to use this board for support questions. Please post issues with specific websites, extensions, etc. in the relevant boards for those topics.
Please keep things on-topic as this forum will be used for reference for Pale Moon development. Expect topics that aren't relevant as such to be moved or deleted.
-
access2godzilla
Unread post
by access2godzilla » 2013-07-08, 04:14
I'm facing problems building PM under Linux. I do have the proper environment, but in spite of this I am having problems.
My .mozconfig is as follows:
Code: Select all
ac_add_options --enable-official-branding
export MOZILLA_OFFICIAL=1
mk_add_options MOZ_CO_PROJECT=browser
ac_add_options --enable-application=browser
mk_add_options MOZ_OBJDIR=/home/a2g/pmbuild/
ac_add_options --disable-crashreporter
ac_add_options --disable-accessibility
ac_add_options --disable-parental-controls
ac_add_options --disable-webrtc
ac_add_options --disable-logging
ac_add_options --disable-necko-wifi
ac_add_options --disable-installer
ac_add_options --disable-updater
ac_add_options --disable-tests
ac_add_options --disable-mochitests
ac_add_options --disable-debug
ac_add_options --disable-debug-symbols
ac_add_options --enable-strip
ac_add_options --enable-jemalloc
ac_add_options --enable-install-strip
mk_add_options MOZ_MAKE_FLAGS="CFLAGS='-O3 -s -msse2' CXXFLAGS='-O3 -s -msse2'"
ac_add_options --enable-safe-browsing
ac_add_options --enable-url-classifier
ac_add_options --enable-chrome-format=jar
When I compile, the process fails since due to the wrong options being passed to the compiler. The solution is to remove LDFLAGS containing "-SUBSYSTEM:" in the following files:
Code: Select all
js/src/config/config.mk
config/config.mk
netwerk/streamconv/test/Makefile.in
However, I run into problems with compilation sections in nsprpub. The compile fails with the following errors:
Code: Select all
make[5]: Entering directory `/home/a2g/pmbuild/nsprpub/config'
gcc -o now.o -c -O3 -s -mtune=generic -msse2 /home/a2g/pmsrc/nsprpub/config/now.c
/home/a2g/pmsrc/nsprpub/config/now.c:14:2: error: #error "Architecture not supported"
/home/a2g/pmsrc/nsprpub/config/now.c: In function ‘main’:
/home/a2g/pmsrc/nsprpub/config/now.c:66:2: error: #error "Architecture not supported"
make[5]: *** [now.o] Error 1
make[5]: Leaving directory `/home/a2g/pmbuild/nsprpub/config'
make[4]: *** [export] Error 2
make[4]: Leaving directory `/home/a2g/pmbuild/nsprpub'
make[3]: *** [tier_nspr] Error 2
make[3]: Leaving directory `/home/a2g/pmbuild'
make[2]: *** [default] Error 2
make[2]: Leaving directory `/home/a2g/pmbuild'
make[1]: *** [realbuild] Error 2
make[1]: Leaving directory `/home/a2g/pmsrc'
make: *** [build] Error 2
How do I fix this?
edit: -mtune=generic option wasn't in my mozconfig so it was removed.
Last edited by access2godzilla on 2013-07-09, 12:22, edited 1 time in total.
-
Moonchild
- Pale Moon guru
- Posts: 35630
- Joined: 2011-08-28, 17:27
- Location: Motala, SE
-
Contact:
Unread post
by Moonchild » 2013-07-08, 07:42
If you're trying to build for x64, you need to make sure you set up your build environment accordingly. Building for x64 has a few more snags. You may need to use --enable-64bit explicitly. I've not tried building Linux x64 myself.
A bit more information about your build environment would be useful at this point. What distro? Building x86 or x64? Do you have the proper tools like the required versions of make and autoconf?
In addition, you probably want --enable-optimize='{flags}' instead of trying to set MOZ_MAKE_FLAGS manually in your .mozconfig (I'm not sure the build environment likes that, and it may not get passed down properly to nspr or other subtrees)
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite
-
access2godzilla
Unread post
by access2godzilla » 2013-07-08, 09:59
I'm using Linux Mint 13 and am trying to build PM for x86 and I do have the necessary versions of make, autoconf and other development packages.
Did you even note the error message being generated? If you didn't then:
/home/a2g/pmsrc/nsprpub/config/now.c:14:2: error:
#error "Architecture not supported"
So it is the nsprpub/config/now.c file itself that doesn't like it.
Moonchild wrote:In addition, you probably want --enable-optimize='{flags}' instead of trying to set MOZ_MAKE_FLAGS manually in your .mozconfig (I'm not sure the build environment likes that, and it may not get passed down properly to nspr or other subtrees)
No effect if I remove the MOZ_MAKE_FLAGS, the compilation still fails.
-
Moonchild
- Pale Moon guru
- Posts: 35630
- Joined: 2011-08-28, 17:27
- Location: Motala, SE
-
Contact:
Unread post
by Moonchild » 2013-07-08, 12:25
No, the "architecture not supported" message is a common error if you don't have the proper setup for building the source. It is part of the configuration process for nspr and it fails really early because you have a mismatching architecture.
You may need to specify --host and --target for Mint; I'm not familiar with that distro, tbh. If your OS is x64, then you definitely have to supply --host and --target, because you will be cross-compiling.
Note that cross-compiling the Mozilla code is extremely iffy, and broken in several respects.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite
-
Night Wing
- Knows the dark side
- Posts: 5173
- Joined: 2011-10-03, 10:19
- Location: Piney Woods of Southeast Texas, USA
Unread post
by Night Wing » 2013-07-08, 12:32
As an operating system, Linux Mint is offered in both 32-bit and 64-bit versions.
Linux Mint 21.3 (Virginia) Xfce w/ Linux Pale Moon, Linux Waterfox, Linux SeaLion, Linux Firefox
MX Linux 23.2 (Libretto) Xfce w/ Linux Pale Moon, Linux Waterfox, Linux SeaLion, Linux Firefox
Linux Debian 12.5 (Bookworm) Xfce w/ Linux Pale Moon, Linux Waterfox, Linux SeaLion, Linux Firefox
-
access2godzilla
Unread post
by access2godzilla » 2013-07-08, 13:06
Moonchild wrote:You may need to specify --host and --target for Mint; I'm not familiar with that distro, tbh. If your OS is x64, then you definitely have to supply --host and --target, because you will be cross-compiling.
I'm not trying to cross compile - I'm trying to build PM for Linux (i.e. so that PM can run natively on Linux).
Last edited by access2godzilla on 2013-07-09, 12:23, edited 1 time in total.
-
Moonchild
- Pale Moon guru
- Posts: 35630
- Joined: 2011-08-28, 17:27
- Location: Motala, SE
-
Contact:
Unread post
by Moonchild » 2013-07-08, 15:29
Using a different architecture of OS and what you are building for is cross-compiling. Unless your Mint is a 32-bit OS, you are cross-compiling if you want to build for x86. Cross-compiling doesn't necessarily mean you are compiling for a different class of OS, just a different CPU architecture is also cross. you may need to add "-m32" to your C/CXX or similar. I'm not intimately familiar with gcc enough to recall offhand.
In any case, you are trying to pull the wrong version of nspr for your build. You should be able to explicitly specify the NSPR version you should pull by defining NSPR_CO_TAG
If you can't figure out what is wrong with your config, then please post all relevant information here: exact OS (including arch), how you set up your build environment, if you deviated in any step from the
build documentation and if so, how. Which version of gcc, make, autoconf, gcc-devel and other relevant packages you are using, your entire .mozconfig, and how exactly you are trying to build.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite
-
access2godzilla
Unread post
by access2godzilla » 2013-07-09, 13:11
Moonchild wrote:In any case, you are trying to pull the wrong version of nspr for your build. You should be able to explicitly specify the NSPR version you should pull by defining NSPR_CO_TAG
I'm sorry I didn't understand. Can you please explain this in more details?
As for the details regarding my system:
OS: Linux Mint 13 x86 32-bit (note: Linux Mint is a derivative of Ubuntu and even shares the same repositories)
CPU: Intel Centrino Duo 2 GHz
Installed packages:
Code: Select all
mercurial not installed
g++ install ok installed 4:4.6.3-1ubuntu5
make install ok installed 3.81-8.1ubuntu1.1
autoconf2.13 install ok installed 2.13-61
yasm install ok installed 1.1.0-1
libgtk2.0-dev install ok installed 2.24.10-0ubuntu6
libglib2.0-dev install ok installed 2.32.3-0ubuntu1
libdbus-1-dev install ok installed 1.4.18-1ubuntu1.4
libdbus-glib-1-dev install ok installed 0.98-1ubuntu1.1
libasound2-dev install ok installed 1.0.25-1ubuntu10.2
libcurl4-openssl-dev not installed
libiw-dev install ok installed 30~pre9-5ubuntu2
libxt-dev install ok installed 1:1.1.1-2ubuntu0.1
mesa-common-dev install ok installed 8.0.4-0ubuntu0.6
libgstreamer0.10-dev install ok installed 0.10.36-1ubuntu1
libgstreamer-plugins-base0.10-dev install ok installed 0.10.36-1ubuntu0.1
Mercurial isn't needed anyway, and didn't install libcurl4-openssl-dev since the crash reporter is disabled.
.mozconfig is posted in the first post:
http://forum.palemoon.org/viewtopic.php ... 748#p15418
Trying to build in the way recommended in Mozilla's docs:
Code: Select all
a2g@linuxmint ~/pmsrc $ make -f client.mk build
-
Moonchild
- Pale Moon guru
- Posts: 35630
- Joined: 2011-08-28, 17:27
- Location: Motala, SE
-
Contact:
Unread post
by Moonchild » 2013-07-09, 16:16
At first glance (apart from missing mercurial - it may pull in some additional dependencies?) that seems to be OK.
When I have time I'll make a VM with Mint in it and see if I can figure out what's wrong (and if I can reproduce it to begin with). This may take a little time though.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite
-
Moonchild
- Pale Moon guru
- Posts: 35630
- Joined: 2011-08-28, 17:27
- Location: Motala, SE
-
Contact:
Unread post
by Moonchild » 2013-07-09, 23:19
I tried to build under Mint using the Ubuntu prerequisite steps, and ran into
bug #805127 -- no idea how to fix that, so I can't test any further.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite
-
access2godzilla
Unread post
by access2godzilla » 2013-07-10, 05:40
Are you using the same configuration as mine?
Can you please post the last few lines of the output?
-
Moonchild
- Pale Moon guru
- Posts: 35630
- Joined: 2011-08-28, 17:27
- Location: Motala, SE
-
Contact:
Unread post
by Moonchild » 2013-07-10, 07:58
It's a fresh Linux Mint "Olivia" with Cinnamon. I did a quick search on the error message and came up with the stated bug#. Apparently there is a discrepancy with the python environment, but that's about as much as I can figure out.
I've used your config (sans the compiler flags and using a different OBJDIR, but otherwise the same) to try and reproduce the issue you have -- however I run into a different one
Output:
Code: Select all
Traceback (most recent call last):
File "/home/wolf/palemoon/python/virtualenv/virtualenv.py", line 2476, in <module>
main()
File "/home/wolf/palemoon/python/virtualenv/virtualenv.py", line 942, in main
never_download=options.never_download)
File "/home/wolf/palemoon/python/virtualenv/virtualenv.py", line 1052, in create_environment
search_dirs=search_dirs, never_download=never_download)
File "/home/wolf/palemoon/python/virtualenv/virtualenv.py", line 599, in install_setuptools
search_dirs=search_dirs, never_download=never_download)
File "/home/wolf/palemoon/python/virtualenv/virtualenv.py", line 571, in _install_req
cwd=cwd)
File "/home/wolf/palemoon/python/virtualenv/virtualenv.py", line 1020, in call_subprocess
% (cmd_desc, proc.returncode))
OSError: Command /home/wolf/palemoon/...ualenv/bin/python2.7 -c "#!python
\"\"\"Bootstra...sys.argv[1:])
" /home/wolf/palemoon/...ols-0.6c11-py2.7.egg failed with error code 1
Traceback (most recent call last):
File "/home/wolf/palemoon/build/virtualenv/populate_virtualenv.py", line 347, in <module>
manager.ensure()
File "/home/wolf/palemoon/build/virtualenv/populate_virtualenv.py", line 75, in ensure
return self.build()
File "/home/wolf/palemoon/build/virtualenv/populate_virtualenv.py", line 269, in build
self.create()
File "/home/wolf/palemoon/build/virtualenv/populate_virtualenv.py", line 105, in create
raise Exception('Error creating virtualenv.')
Exception: Error creating virtualenv.
*** Fix above errors and then restart with "make -f client.mk build"
make[2]: *** [configure] Error 1
make[2]: Leaving directory `/home/wolf/palemoon'
make[1]: *** [/home/wolf/palemoon/build-optimized/Makefile] Error 2
make[1]: Leaving directory `/home/wolf/palemoon'
make: *** [build] Error 2
EDIT: previous Linux builds I did were made using Debian, and that was never an issue... Just FYI
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite
-
access2godzilla
Unread post
by access2godzilla » 2013-07-10, 10:18
Seems to be more of a python problem -- anything to do with the version (perhaps they use python 3)?
Last edited by access2godzilla on 2013-07-10, 17:06, edited 1 time in total.
-
access2godzilla
Unread post
by access2godzilla » 2013-07-10, 17:07
@Tweakzy, where did you get that set of instructions?
-
Moonchild
- Pale Moon guru
- Posts: 35630
- Joined: 2011-08-28, 17:27
- Location: Motala, SE
-
Contact:
Unread post
by Moonchild » 2013-07-10, 19:58
It seems virtualenv has broken several times in the past, and it's been touched in FF19 and FF21 -- meaning the current Pale Moon might not build properly on any linux distro at the moment; also seems to be VERY distro specific so it's very well possible that it simply won't build properly on Mint, at all.
Try again come v24, I guess.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite
-
Tweakzy
Unread post
by Tweakzy » 2013-07-11, 11:41
access2godzilla wrote:@Tweakzy, where did you get that set of instructions?
just did a search on google then read the pages that poped up all the posted are directly from mozilla
can look for more if helps
-
Moonchild
- Pale Moon guru
- Posts: 35630
- Joined: 2011-08-28, 17:27
- Location: Motala, SE
-
Contact:
Unread post
by Moonchild » 2013-07-23, 11:31
As an update, I poked at building Pale Moon under Linux, and had no problem (after removing the errant -subsystem:console command from the two config.mk files) building it (x64 even) under Debian 7.0 (wheezy) using the standard "simple firefox build" instructions posted on the MDN. No issues with virtualenv or what not. I think Mint may simply not like the build environment OR Mint's system file structure is set up in an incompatible way for the MFBT toolchain.
The only oddity is the incorrect entry in the config.mk files in /config and js/src/config - remove the "else" clause there, and you're good to go.
-
Attachments
-
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite
-
Blacklab
- Board Warrior
- Posts: 1081
- Joined: 2012-06-08, 12:14
Unread post
by Blacklab » 2013-07-23, 12:40
Watching this thread with interest. Have just been given an original Acer Aspire One Netbook (First model ZD5 (A0A110) Atom N270 1.6Ghz CPU + VGA Intel 945GME Express IGC -
no HDD only an 8GB SSD!) with "Linpus Lite" OS which was very out-of-date, no updates, no longer supported by Acer, etc! After an entertaining weekend playing with it's original Firefox 2.0.0.14 browser - not bad at all
- have wiped Linpus and successfully installed Linux
Mint 13 "Maya" MATE distro.
Mint 13 "Maya" is the current
long-term support (LTS) release up to April 2017, based on Ubuntu 12.04 LTS. The MATE 1.2 desktop is the continuation of the abandoned Gnome 2 project and should be much lighter on resources (doesn't require 3d graphics) for this old, low spec, Netbook with only the original 512MB RAM - max possible RAM is only 1.5GB.
Mint 13 comes with a slightly customised Firefox 22 and all seems to run surprisingly smoothly!
Will install
Wine idc and try Pale Moon and some other Windows apps - I know
Night Wing has been successfully running recent Pale Moon versions in Linux Mint + Wine but on a much more powerful desktop system.
-
Night Wing
- Knows the dark side
- Posts: 5173
- Joined: 2011-10-03, 10:19
- Location: Piney Woods of Southeast Texas, USA
Unread post
by Night Wing » 2013-07-23, 21:14
Blacklab,
I settled on 64-bit Linux Mint 14 (Nadia) XFCE since it automatically finds and installs all the proprietary drivers for my graphics card and my all in one Canon MP 530 printer. The linux application Cheese runs my old Logitech 5000 webcam and Pulse Audio runs my external Microsoft Lifechat LX-3000 headphones with attached microphone. Linux Mint 13 (Maya) XFCE was a little harder for me to work with when it came to installing the proprietary drivers for the said devices above. Even though Linux Mint 13 is an LTS release, the proprietary driver issue (for me) was the reason I went with Linux Mint 14 XFCE.
The LM 14 XFCE flavor is geared to old hardware with low memory and both of my HP desktop computers were made in 2010. But both of my Windows 7, 64-bit desktops, they're not slow by any means of the imagination. One desktop has 24 GB of memory and the other desktop has 16 GB of memory. Both desktops have i7 processors in them. Both also have Nvidia graphics cards.
When I installed a second hard drive in each desktop and loaded it with Linux Mint, I was hoping for both desktops to be fast with Linux Mint and they are very fast when I'm surfing the internet. Even though Pale Moon is Windows only, I wanted to see if Pale Moon would run under Wine and the 32-bit version runs no different than when I'm using Windows 7. I chose the 32-bit configuration of Pale Moon because this is what I run in Windows 7 and I figured I wouldn't have any problems with plugins if I stayed with 32-bit Pale Moon.
I would dearly love a 64-bit linux build version of Pale Moon since I use 64-bit Linux Mint, but I think with so many linux distros and flavors, it's going to be a problem concerning a linux Pale Moon build version. If anyone would legally build it, with Moonchild's blessing, I'd try it out in Linux Mint.
Linux Mint 21.3 (Virginia) Xfce w/ Linux Pale Moon, Linux Waterfox, Linux SeaLion, Linux Firefox
MX Linux 23.2 (Libretto) Xfce w/ Linux Pale Moon, Linux Waterfox, Linux SeaLion, Linux Firefox
Linux Debian 12.5 (Bookworm) Xfce w/ Linux Pale Moon, Linux Waterfox, Linux SeaLion, Linux Firefox