blob: 5308a073c92b654550a529397d3ccb56b33e926c (
plain)
1 # Description: The Mozilla Firefox browser with Alsa support
2 # URL: https://www.mozilla.com/firefox/
3 # Maintainer: Danny Rawlins, crux at romster dot me
4 # Depends on: alsa-lib autoconf-2.13 cbindgen clang dbus-glib gtk libidl libnotify libxkbcommon lld nodejs nss unzip xorg-libxt yasm zip python
5 # Optional: sccache jack
6
7 name=firefox
8 version=88.0
9 release=1
10 source=(https://archive.mozilla.org/pub/firefox/releases/$version/source/$name-$version.source.tar.xz
11 firefox.desktop
12 0001-Use-remoting-name-for-GDK-application-names.patch)
13
14 build() {
15 cd firefox-$version
16
17 # https://bugzilla.mozilla.org/show_bug.cgi?id=1530052
18 patch -p1 -i $SRC/0001-Use-remoting-name-for-GDK-application-names.patch
19
20 if [ $(/usr/bin/python -c "import sys; print sys.stdout.encoding") = 'UTF-8' ]; then
21 printf "\e[031mError: set an UTF-8 locale to compile this!\033[0m\n"
22 exit 1
23 fi
24
25 if [ -e '/usr/bin/ccache' ]; then
26 export OS_CCACHE_COMPILERCHECK="$(/usr/bin/clang -dumpversion | sed -z 's/\n/ /g'; crux | cut -d' ' -f3)"
27 export CCACHE_COMPILERCHECK="string:$OS_CCACHE_COMPILERCHECK"
28 PATH=$(echo ${PATH} | awk -v RS=: -v ORS=: '/ccache/ {next} {print}' | sed 's/:*$//')
29 fi
30
31 prt-get isinst sccache && export RUSTC_WRAPPER=/usr/bin/sccache
32 mkdir "$PKGMK_SOURCE_DIR/rust" || true
33 export CARGO_HOME="$PKGMK_SOURCE_DIR/rust"
34
35 cat <<- EOF > .mozconfig
36 mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/firefox-shared
37 unset MOZ_TELEMETRY_REPORTING
38 ac_add_options --prefix=/usr
39 ac_add_options --enable-default-toolkit=cairo-gtk3
40 ac_add_options --enable-application=browser
41 ac_add_options --with-system-jpeg
42 ac_add_options --with-system-zlib
43 ac_add_options --with-system-png
44 ac_add_options --with-system-nspr
45 ac_add_options --with-system-nss
46 ac_add_options --enable-av1
47 ac_add_options --enable-system-ffi
48 ac_add_options --enable-system-pixman
49 ac_add_options --enable-alsa
50 ac_add_options --enable-optimize
51 ac_add_options --enable-release
52 ac_add_options --enable-rust-simd
53 ac_add_options --disable-debug-symbols
54 ac_add_options --disable-pulseaudio
55 ac_add_options --enable-official-branding
56 ac_add_options --with-distribution-id=nu.crux
57 ac_add_options --enable-extensions=default,-gnomevfs
58 ac_add_options --enable-linker=lld
59 ac_add_options --disable-tests
60 ac_add_options --disable-debug
61 ac_add_options --disable-updater
62 ac_add_options --disable-crashreporter
63 ac_add_options --disable-necko-wifi
64 ac_add_options --disable-elf-hack
65 EOF
66
67 [[ -e '/usr/bin/ccache' ]] && echo 'ac_add_options --enable-ccache' >> .mozconfig
68
69 export CC=clang CXX=clang++ AR=llvm-ar NM=llvm-nm RANLIB=llvm-ranlib
70 export MOZ_MAKE_FLAGS="-j ${JOBS-1}"
71 export MOZBUILD_STATE_PATH="$PKGMK_SOURCE_DIR/.mozbuild"
72 export MOZ_NOSPAM=1
73 export MACH_USE_SYSTEM_PYTHON=1
74
75 ./mach build
76 #./mach build toolkit/library/rust
77 DESTDIR=$PKG ./mach install
78
79 install -d $PKG/usr/share/pixmaps
80 ln -s /usr/lib/firefox/browser/chrome/icons/default/default48.png $PKG/usr/share/pixmaps/firefox_default48.png
81 install -D -m 0644 $SRC/firefox.desktop $PKG/usr/share/applications/firefox.desktop
82 # Remove crap
83 rm -r $PKG/usr/lib/firefox/browser/features
84 rm $PKG/usr/lib/firefox/removed-files
85
86 install -d $PKG/etc/revdep.d
87 echo "/usr/lib/firefox" > $PKG/etc/revdep.d/firefox
88 }
|