crux-musl

Unnamed repository; edit this file 'description' to name the repository.
git clone https://codeberg.org/emmett1/crux-musl
Log | Files | Refs | README | LICENSE

Pkgfile (4873B)


      1 # Description: The Mozilla Firefox browser with Alsa support
      2 # URL: https://www.mozilla.com/firefox/
      3 # Maintainer: Emmett1, emmett1 dot 2miligrams at protonmail dot com
      4 # Depends on: alsa-lib aom autoconf-2.13 brotli cbindgen dav1d dbus-glib ffmpeg graphite2 libevent libnotify libvpx libwebp libxkbcommon nodejs nss unzip xorg-libxcomposite xorg-libxcursor xorg-libxinerama xorg-libxt zip
      5 # Optional: apulse jack pulseaudio pipewire sndio sccache lld wayland
      6 
      7 name=firefox
      8 version=140.0.4
      9 release=1
     10 source=(https://ftp.mozilla.org/pub/$name/releases/$version/source/$name-$version.source.tar.xz
     11   firefox.desktop
     12   fix-target-detection.patch
     13   node-stdout-nonblocking-wrapper)
     14 
     15 build() {
     16   chmod a+x $SRC/node-stdout-nonblocking-wrapper
     17 
     18   cd $name-$version
     19 
     20   for p in $SRC/*.patch; do
     21     patch -p1 -i $p
     22   done
     23 
     24   if [ "$(/usr/bin/python3 -c "import sys; print(sys.stdout.encoding)")" != 'utf-8' ]; then
     25     printf "\e[031mError: set an UTF-8 locale to compile this!\033[0m\n"
     26     exit 1
     27   fi
     28 
     29   prt-get isinst sccache >/dev/null && export RUSTC_WRAPPER='/usr/bin/sccache'
     30   mkdir -p "$PKGMK_SOURCE_DIR/rust"
     31   export CARGO_HOME="$PKGMK_SOURCE_DIR/rust"
     32 
     33   export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none
     34   export MOZBUILD_STATE_PATH=${PWD}/mozbuild
     35 
     36   cat > .mozconfig << EOF
     37   export NODEJS="$SRC/node-stdout-nonblocking-wrapper"
     38   mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/firefox-shared
     39   unset MOZ_TELEMETRY_REPORTING
     40   ac_add_options --prefix=/usr
     41   ac_add_options --libdir=/usr/lib
     42   ac_add_options --enable-strip
     43   ac_add_options --enable-release
     44   ac_add_options --enable-install-strip
     45   ac_add_options --enable-official-branding
     46   ac_add_options --enable-application=browser
     47   ac_add_options --enable-optimize
     48   ac_add_options --with-system-ffi
     49   ac_add_options --with-system-jpeg
     50   ac_add_options --with-system-libvpx
     51   ac_add_options --with-system-nspr
     52   ac_add_options --with-system-nss
     53   ac_add_options --with-system-pixman
     54   ac_add_options --without-system-png
     55   ac_add_options --with-system-webp
     56   ac_add_options --with-system-zlib
     57   ac_add_options --without-wasm-sandboxed-libraries
     58   ac_add_options --disable-eme
     59   ac_add_options --disable-tests
     60   ac_add_options --disable-vtune
     61   ac_add_options --disable-updater
     62   ac_add_options --disable-jemalloc
     63   ac_add_options --disable-elf-hack
     64   ac_add_options --disable-callgrind
     65   ac_add_options --disable-profiling
     66   ac_add_options --disable-necko-wifi
     67   ac_add_options --disable-crashreporter
     68   ac_add_options --disable-accessibility
     69   ac_add_options --disable-debug
     70   ac_add_options --disable-debug-symbols
     71   ac_add_options --disable-parental-controls
     72   ac_add_options --disable-system-extension-dirs
     73 EOF
     74 
     75   # unicode internationalization
     76   prt-get isinst icu >/dev/null && \
     77     echo 'ac_add_options --with-system-icu' >> .mozconfig
     78 
     79   # audio
     80   PKGMK_FFAUDIO="alsa"
     81   [ -e /usr/lib/libpulse.so -o -e /usr/lib/apulse/libpulse.so ] && PKGMK_FFAUDIO+=",pulseaudio"
     82   [ -e /usr/lib/libjack.so ] && PKGMK_FFAUDIO+=",jack"
     83   [ -e /usr/lib/libsndio.so ] && PKGMK_FFAUDIO+=",sndio"
     84   echo "ac_add_options --enable-audio-backends=${PKGMK_FFAUDIO}" >> .mozconfig
     85 
     86   if prt-get isinst wayland xorg-server >/dev/null ; then
     87     echo 'ac_add_options --enable-default-toolkit=cairo-gtk3-x11-wayland' >> .mozconfig
     88   elif prt-get isinst wayland 2>/dev/null ; then
     89     echo 'ac_add_options --enable-default-toolkit=cairo-gtk3-wayland-only' >> .mozconfig
     90   else
     91     echo 'ac_add_options --enable-default-toolkit=cairo-gtk3-x11-only' >> .mozconfig
     92   fi
     93 
     94   if [ -e '/usr/bin/ccache' ]; then
     95     echo 'ac_add_options --enable-ccache' >> .mozconfig
     96     PATH=$(echo ${PATH} | awk -v RS=: -v ORS=: '/ccache/ {next} {print}' | sed 's/:*$//')
     97   fi
     98 
     99   export CFLAGS="$CFLAGS -w"
    100   export CXXFLAGS="$CXXFLAGS -w"
    101   export LDFLAGS="$LDFLAGS -Wl,-rpath=/usr/lib/firefox,--enable-new-dtags"
    102 
    103   if prt-get isinst lld >/dev/null; then
    104       echo 'ac_add_options --enable-linker=lld' >> .mozconfig
    105       export LDFLAGS+=" -Wl,--thinlto-jobs=$((JOBS / 2))"
    106   else
    107       echo 'ac_add_options --enable-linker=bfd' >> .mozconfig
    108   fi
    109 
    110   export CC=clang CXX=clang++ AR=llvm-ar NM=llvm-nm RANLIB=llvm-ranlib RUSTFLAGS="-C opt-level=2 $RUSTFLAGS"
    111   export MOZ_MAKE_FLAGS="-j ${JOBS-1}"
    112 
    113   # Disable notification when build system has finished
    114   export MOZ_NOSPAM=1
    115 
    116   # python/mach/mach/mixin/process.py fails to detect SHELL
    117   export SHELL='/bin/bash'
    118 
    119   ./mach build
    120   DESTDIR=$PKG ./mach install
    121 
    122   # Remove crap
    123   rm -r $PKG/usr/lib/firefox/browser/features || true
    124   rm $PKG/usr/lib/firefox/removed-files || true
    125 
    126   install -D -m 0644 $SRC/firefox.desktop $PKG/usr/share/applications/firefox.desktop
    127 
    128   mkdir -p $PKG/etc/revdep.d
    129   echo "/usr/lib/firefox" > $PKG/etc/revdep.d/firefox
    130 
    131   mkdir -p $PKG/usr/share/pixmaps
    132   ln -s /usr/lib/firefox/browser/chrome/icons/default/default128.png \
    133           $PKG/usr/share/pixmaps/firefox.png
    134 }