#2 Impossible to compile IceWeasel-UXP 3.1 under Linux
Opened by tch68k. Modified

Here is my buildscript:

#!/bin/sh
cd /tmp
if [ "$3" = "" ];
then
    ANAME="RELBASE_""$1"".tar.gz"
else
    ANAME="RB_""$1"".tar.gz"
fi
wget "https://repo.palemoon.org/MoonchildProductions/UXP/archive/""$ANAME" -O "$ANAME"
tar xzf "$ANAME"
rm "$ANAME"
cd uxp
mkdir application
cd application
ANAME="iceweasel-uxp-""$2"".tar.gz"
wget "https://repo.hyperbola.info:50000/other/iceweasel-uxp/""$ANAME" -O "$ANAME"
tar xzf "$ANAME"
rm "$ANAME"
mv "iceweasel-uxp-""$2" iceweasel-uxp
#sed -i 's/Vendor=Mozilla/Vendor=Hyperbola/g' iceweasel-uxp/app/application.ini
#sed -i 's/Name=Firefox/Name=Iceweasel-UXP/g' iceweasel-uxp/app/application.ini
cd ..
cp /a/UTILDISK/UPGRADE/iceweasel-uxp/.mozconfig ./.mozconfig
sed -i "s/die('Cannot find project %s', build_app)/fake = 0/g" build/moz.configure/init.configure
./mach build
./mach package
cp ./obj-x86_64-pc-linux-gnu/dist/iceweasel-uxp-*.tar.bz2 /opt/
cd ..
rm -rf ./uxp
cd /opt
tar -xjvf iceweasel-uxp-*.tar.bz2
mv iceweasel-uxp-*.tar.bz2 /a/UTILDISK/UPGRADE/iceweasel-uxp/

And my .mozconfig:

STRIP_FLAGS="--strip-debug"
export MOZILLA_OFFICIAL=0
export MOZ_TELEMETRY_REPORTING=0
export MOZ_ADDON_SIGNING=1
export MOZ_REQUIRE_SIGNING=0
export AUTOCONF="/usr/bin/autoconf2.13"
mk_add_options AUTOCLOBBER=1
mk_add_options MOZ_MAKE_FLAGS="-j7"
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/moz-objdir
ac_add_options --enable-application=application/iceweasel-uxp
ac_add_options --disable-official-branding
ac_add_options --with-branding=application/iceweasel-uxp/branding/iceweasel
ac_add_options --enable-default-toolkit=cairo-gtk2
ac_add_options --enable-alsa
ac_add_options --disable-pulseaudio
ac_add_options --enable-optimize="-O2 -w"
ac_add_options --enable-strip
ac_add_options --disable-debug
ac_add_options --enable-release
ac_add_options --disable-sync
ac_add_options --disable-verify-mar
ac_add_options --disable-updater
ac_add_options --disable-crashreporter
ac_add_options --disable-mozril-geoloc
ac_add_options --disable-nfc
ac_add_options --disable-synth-pico
ac_add_options --disable-gamepad
ac_add_options --disable-startup-notification
ac_add_options --disable-necko-wifi
ac_add_options --disable-dbus
ac_add_options --disable-userinfo
ac_add_options --disable-maintenance-service
ac_add_options --disable-tests
ac_add_options --disable-ipdl-tests
ac_add_options --disable-safe-browsing
ac_add_options --disable-url-classifier
ac_add_options --disable-eme
ac_add_options --disable-gconf
ac_add_options --disable-dbus
ac_add_options --enable-pie
ac_add_options --enable-gold
ac_add_options --with-pthreads

The compilation finishes up with a remark that there were some warnings, which were these:

22:13.94 /tmp/uxp/application/iceweasel-uxp/branding/iceweasel/pref/iceweasel-uxp-branding.js: WARNING: no preprocessor directives found
22:14.02 tab-selected-start.svg
22:14.51 /tmp/uxp/application/iceweasel-uxp/components/customizableui/CustomizableUI.jsm: WARNING: no preprocessor directives found
22:14.64 /tmp/uxp/application/iceweasel-uxp/components/search/service/nsSearchService.js: WARNING: no preprocessor directives found
22:21.08 /tmp/uxp/application/iceweasel-uxp/base/content/tab-content.js: WARNING: no preprocessor directives found
22:21.13 /tmp/uxp/application/iceweasel-uxp/base/content/urlbarBindings.xml: WARNING: no preprocessor directives found
22:21.81 /tmp/uxp/application/iceweasel-uxp/components/preferences/in-content/content.js: WARNING: no preprocessor directives found
22:24.02 /tmp/uxp/application/iceweasel-uxp/themes/linux/findBar.css: WARNING: no preprocessor directives found

And while ./mach run runs the browser, the "hamburgermenu" at the right side does not work.
And ./mach package fails with these errors:

0:00.14 /usr/bin/gmake -C . -j7 -s -w package
 0:00.14 gmake: Entering directory '/tmp/uxp/moz-objdir'
 0:00.17 gmake[1]: Entering directory '/tmp/uxp/moz-objdir/application/iceweasel-uxp/installer'
 0:00.20 gmake[2]: Entering directory '/tmp/uxp/moz-objdir/application/iceweasel-uxp/installer'
 0:00.21 gmake[3]: Entering directory '/tmp/uxp/moz-objdir/application/iceweasel-uxp/installer'
 0:00.42 Error: /tmp/uxp/application/iceweasel-uxp/installer/package-manifest.in:415: Missing file(s): bin/components/mozProtocolHandler.js
 0:00.42 Error: /tmp/uxp/application/iceweasel-uxp/installer/package-manifest.in:416: Missing file(s): bin/components/mozProtocolHandler.manifest
 0:00.42 Error: /tmp/uxp/application/iceweasel-uxp/installer/package-manifest.in:435: Missing file(s): bin/components/CSSUnprefixingService.js
 0:00.42 Error: /tmp/uxp/application/iceweasel-uxp/installer/package-manifest.in:436: Missing file(s): bin/components/CSSUnprefixingService.manifest
 0:00.48 Error: /tmp/uxp/application/iceweasel-uxp/installer/package-manifest.in:508: Missing file(s): bin/components/privatebrowsing.xpt
 0:00.48 Error: /tmp/uxp/application/iceweasel-uxp/installer/package-manifest.in:509: Missing file(s): bin/components/PrivateBrowsing.manifest
 0:00.48 Error: /tmp/uxp/application/iceweasel-uxp/installer/package-manifest.in:510: Missing file(s): bin/components/PrivateBrowsingTrackingProtectionWhitelist.js
 0:00.98 Traceback (most recent call last):
 0:00.98   File "/tmp/uxp/toolkit/mozapps/installer/packager.py", line 423, in <module>
 0:00.98     main()
 0:00.98   File "/tmp/uxp/toolkit/mozapps/installer/packager.py", line 374, in main
 0:00.98     copier.add(mozpath.join(respath, 'removed-files'), removals)
 0:00.98   File "/usr/lib/python2.7/contextlib.py", line 24, in __exit__
 0:00.98     self.gen.next()
 0:00.98   File "/tmp/uxp/python/mozbuild/mozpack/errors.py", line 131, in accumulate
 0:00.99     raise AccumulatedErrors()
 0:00.99 mozpack.errors.AccumulatedErrors
 0:01.00 gmake[3]: *** [/tmp/uxp/toolkit/mozapps/installer/packager.mk:41: stage-package] Error 1
 0:01.00 gmake[3]: Leaving directory '/tmp/uxp/moz-objdir/application/iceweasel-uxp/installer'
 0:01.00 gmake[2]: *** [/tmp/uxp/toolkit/mozapps/installer/packager.mk:82: make-package] Error 2
 0:01.00 gmake[2]: Leaving directory '/tmp/uxp/moz-objdir/application/iceweasel-uxp/installer'
 0:01.00 gmake[1]: *** [/tmp/uxp/config/rules.mk:494: default] Error 2
 0:01.00 gmake[1]: Leaving directory '/tmp/uxp/moz-objdir/application/iceweasel-uxp/installer'
 0:01.00 gmake: *** [/tmp/uxp/application/iceweasel-uxp/build.mk:9: package] Error 2
 0:01.00 gmake: Leaving directory '/tmp/uxp/moz-objdir'

The OS is Debian 11, AMD64.
Compiler is GCC 10.
Autoconf 2.13 is installed and used.
Python is 3.9.2. Did not made a difference if i ran these with Python 2.7.

I tried it with several UXP and several IceWeasel-UXP versions. Also it did not made any difference if i cloned your repo into /tmp/uxp/application/iceweasel-uxp instead of unzipping an archive from Hyperbola to there.


I have the same error as the person above.

I currently use Hyperbola 0.4 Testing and I have the current patches you gave me, but the tauthon one doesn't work and I should be able to do ./mach package, but it won't let me.

Contact me whenever you can help.

Broken by upstream removal of TrackingProtection module. Hyperbola GIT is currently having some technical issues sending git push requests, so attached patch will fix the issue. Applies against iceweasel-uxp.git.

0001-Fix-for-UXP-2133-with-adjustments-from-Basilisk-2.patch

@g4jc

Thank you, your patch worked. I am writing this comment from my freshly built and packaged IceWeasel-UXP. Will this patch be merged into IceWeasel-UXP 3.2?

Out of curiosity, i tried to compile it against the latest UXP tree, instead of Release Base 20230320. It did compile and package was also successful, but when i try to run the result, it dies with error

XPCOMGlueLoad error for file /opt/iceweasel-uxp/libhunspell.so:
/opt/iceweasel-uxp/libhunspell.so: cannot open shared object file: No such file or directory
Couldn't load XPCOM.

I've symlinked libhunspell.so from my system, but then i got this:

XPCOMGlueLoad error for file /opt/iceweasel-uxp/libxul.so:
libhunspell.so: cannot open shared object file: No such file or directory
Couldn't load XPCOM.

But this is only happens if i do

git clone https://repo.palemoon.org/MoonchildProductions/UXP
mv UXP uxp

Instead of

wget "https://repo.palemoon.org/MoonchildProductions/UXP/archive/RB_20230320.tar.gz" -O "RB_20230320.tar.gz"
tar -xzf "RB_20230320.tar.gz"
rm "RB_20230320.tar.gz"

Out of curiosity, i tried to compile it against the latest UXP tree, instead of Release Base 20230320. It did compile and package was also successful, but when i try to run the result, it dies with error
XPCOMGlueLoad error for file /opt/iceweasel-uxp/libhunspell.so: /opt/iceweasel-uxp/libhunspell.so: cannot open shared object file: No such file or directory Couldn't load XPCOM.
I've symlinked libhunspell.so from my system, but then i got this:
XPCOMGlueLoad error for file /opt/iceweasel-uxp/libxul.so: libhunspell.so: cannot open shared object file: No such file or directory Couldn't load XPCOM.
But this is only happens if i do
git clone https://repo.palemoon.org/MoonchildProductions/UXP mv UXP uxp
Instead of
wget "https://repo.palemoon.org/MoonchildProductions/UXP/archive/RB_20230320.tar.gz" -O "RB_20230320.tar.gz" tar -xzf "RB_20230320.tar.gz" rm "RB_20230320.tar.gz"

Same thing as you happened to me. However, I commented out libhunspell in dependentlibs and I can run iceweasel-uxp from source without any massive headaches.

Thanks for the info. However, i've chosen to add

ac_add_options --enable-system-hunspell

to .mozconfig. Works that way too.

Thanks for the info. However, i've chosen to add
ac_add_options --enable-system-hunspell
to .mozconfig. Works that way too.

Heads up, there might be an issue building in the newest uxp, the RC 10/27/23 one. I don't know if this will cause problems for future builds, but thought I should warn you all here.

Couldn't make a tarball... :(

Thanks for the warning.

See next comment, couldn't delete or edit till I had both here.

@tch68k no problem, I don't like it when that happens either.

It would also be nice if the icedove-uxp build could have its patches in uxp-overlays updated so that I can build icedove-uxp with them, but yeah, having one be buildable is better than none.

If you feel like it, try building to see if you can diagnose the problem. I wouldn't have a clue, I am not really sure what commands I would use to do so.

Also, timewise, and patiencewise, I might be missing some skills too for this. ;)

I have even less experience with building "Firefox" code, than you, so i doubt i can diagnose the problem. Also, currently i'm buried with work and life, so i do not really have the time to try it, sorry. Maybe a few weeks later.

I have even less experience with building "Firefox" code, than you, so i doubt i can diagnose the problem. Also, currently i'm buried with work and life, so i do not really have the time to try it, sorry. Maybe a few weeks later.

You flatter me, I just follow g4jc's instructions lol. I am sure you know better than I do.

I know almost nothing about programming languages. I do know small amounts of tricks here and there for command line code, but building a web browser like palemoon, basilisk-browser, iceweasel-uxp or an email client like icedove-uxp?

Nope.

I hope g4jc has a fix for uxp builds.

I also only follow the build instructions, so i guess we are sitting in the same boat.

I hope so too, that he will have a fix.

UXP upstream has been mucking around with shared hunspell and shared ICU code. Applying these two patches will likely resolve it. I've applied them to the tree here (since Hyperbola's git is again not allowing me to push commits).

https://repo.palemoon.org/Basilisk-Dev/Basilisk/commit/225f4e1468d5893764ba9d53fdb80c2b83cd90a2

https://repo.palemoon.org/Basilisk-Dev/Basilisk/commit/4d6e2f8f4748a68a39b2f0901e62ca2a30c24b6c

Thanks. As soon i'll have some time, i'll try it.

UXP upstream has been mucking around with shared hunspell and shared ICU code. Applying these two patches will likely resolve it. I've applied them to the tree here (since Hyperbola's git is again not allowing me to push commits).

https://repo.palemoon.org/Basilisk-Dev/Basilisk/commit/225f4e1468d5893764ba9d53fdb80c2b83cd90a2

https://repo.palemoon.org/Basilisk-Dev/Basilisk/commit/4d6e2f8f4748a68a39b2f0901e62ca2a30c24b6c

Thanks for fixing this and I hope you will port this to HyperbolaBSD when its out, especially testing or stable.

This web browser is wonderful now that I have a certain trick from a certain user on the forums.
Edit: well it was before too actually, but its better now because less user agent sniffers can be annoying.

A final note to add, by building with the below removed from .config:

ac_add_options --enable-system-hunspell

I can make the tarball. Its rather strange... the newest tarball works if I don't have the above in my .config file. When I say newest I mean the newest RB version.

:)

Just a heads up to anyone on this thread.

Thanks, that line is also present in my config, so i'll have to remove it.

Metadata