#!/bin/sh NAME="icecat" DESC="GNU IceCat web browser" MAKEDEPS="make rust cbindgen" DEPS="nodejs alsa-lib atk cairo dbus ffmpeg fontconfig freetype2 gdk-pixbuf glib gtk3 icu libevent libffi libpng libvpx libwebp libx11 libxcb libxcomposite libxdamage libxext libxfixes libxrandr musl nspr nss pango pixman zlib dbus-glib" PKG_VER=91.9.0 commit_hash=d7d3e9a33d2b3b78a6e08060684580c72c0d6e93 SOURCE="https://git.savannah.gnu.org/cgit/gnuzilla.git/snapshot/gnuzilla-$commit_hash.tar.gz" ADDITIONAL=" icecat.desktop stab.h " #prepare () { #sed -i 's/\("files":{\)[^}]*/\1/' third_party/rust/audio_thread_priority/.cargo-checksum.json #sed -i 's/\("files":{\)[^}]*/\1/' third_party/rust/target-lexicon-0.9.0/.cargo-checksum.json #} build () { mkdir -p objdir cd objdir export SHELL=/bin/sh export USE_SHORT_LIBNAME=1 export MACH_USE_SYSTEM_PYTHON=1 export MOZBUILD_STATE_PATH=$BUILD_ROOT/mozbuild # disable desktop notifications export MOZ_NOSPAM=1 # Find our triplet JSON export RUST_TARGET="x86_64-unknown-linux-musl" # Build with Clang, takes less RAM export CC="clang" export CXX="clang++" export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/icecat" ../mach configure \ --without-wasm-sandboxed-libraries \ --prefix=/usr \ --disable-elf-hack \ --enable-rust-simd \ --enable-sandbox \ --disable-cargo-incremental \ --disable-crashreporter \ --disable-install-strip \ --disable-jemalloc \ --disable-minify \ --disable-profiling \ --disable-strip \ --disable-tests \ --disable-updater \ --enable-alsa \ --enable-dbus \ --enable-default-toolkit=cairo-gtk3-wayland \ --enable-dom-streams \ --enable-ffmpeg \ --enable-hardening \ --enable-necko-wifi \ --enable-official-branding \ --enable-optimize="$CFLAGS -O2" \ --enable-pulseaudio \ --enable-release \ --enable-system-ffi \ --enable-system-pixman \ --with-distribution-id=xilinux \ --with-libclang-path=/usr/lib \ --with-system-ffi \ --with-system-icu \ --with-system-jpeg \ --with-system-libevent \ --with-system-libvpx \ --with-system-nspr \ --with-system-nss \ --with-system-pixman \ --with-system-png \ --with-system-webp \ --with-system-zlib \ --with-unsigned-addon-scopes=app,system && ../mach build } package () { DESTDIR="$PKG_DEST" MOZ_MAKE_FLAGS="$MAKEOPTS" ../mach install install -m755 -d "$PKG_DEST"/usr/share/applications install -m755 -d "$PKG_DEST"/usr/share/pixmaps local _png for _png in ../browser/branding/official/default*.png; do local i=${_png%.png} i=${i##*/default} install -D -m644 "$_png" "$PKG_DEST"/usr/share/icons/hicolor/"$i"x"$i"/apps/icecat.png done install -m644 ../browser/branding/official/default48.png \ "$PKG_DEST"/usr/share/pixmaps/icecat.png install -m644 ../icecat.desktop "$PKG_DEST"/usr/share/applications/org.mozilla.icecat.desktop # Add StartupWMClass=icecat on the .desktop files so Desktop Environments # correctly associate the window with their icon, the correct fix is to have # icecat sets its own AppID but this will work for the meantime # See: https://bugzilla.mozilla.org/show_bug.cgi?id=1607399 echo "StartupWMClass=icecat" >> $PKG_DEST/usr/share/applications/org.mozilla.icecat.desktop # install our vendor prefs install -d $PKG_DEST/usr/lib/icecat/browser/defaults/preferences cat >> $PKG_DEST/usr/lib/icecat/browser/defaults/preferences/icecat-branding.js <<- EOF // Use LANG environment variable to choose locale pref("intl.locale.requested", ""); // Disable default browser checking. pref("browser.shell.checkDefaultBrowser", false); // Don't disable our bundled extensions in the application directory pref("extensions.autoDisableScopes", 11); pref("extensions.shownSelectionUI", true); EOF }