diff options
Diffstat (limited to 'skip/thunderbird/thunderbird.xibuild')
-rw-r--r-- | skip/thunderbird/thunderbird.xibuild | 204 |
1 files changed, 204 insertions, 0 deletions
diff --git a/skip/thunderbird/thunderbird.xibuild b/skip/thunderbird/thunderbird.xibuild new file mode 100644 index 0000000..05b3f5a --- /dev/null +++ b/skip/thunderbird/thunderbird.xibuild @@ -0,0 +1,204 @@ +#!/bin/sh + +NAME="thunderbird" +DESC="Thunderbird email client" + +MAKEDEPS=" alsa-lib automake botan cargo cbindgen llvm libclang clang dbus-glib gettext gtk3 icu json-c libevent libffi libjpeg-turbo libnotify libogg libtheora libtool libvorbis libvpx libwebp libxcomposite libxt llvm m4 mesa nasm nodejs nspr nss pipewire pulseaudio python sed wireless-tools zip" + +PKG_VER=102.6.1 +SOURCE="https://ftp.mozilla.org/pub/thunderbird/releases/$PKG_VER/source/thunderbird-$PKG_VER.source.tar.xz" + +ADDITIONAL=" +allow-custom-rust-vendor.patch +avoid-redefinition.patch +cbindgen-0.24.patch +disable-moz-stackwalk.patch +disable-neon-in-aom.patch +distribution.ini +fix-fortify-system-wrappers.patch +fix-libresolv-path.patch +fix-rust-target.patch +fix-tools.patch +fix-webrtc-glibcisms.patch +mallinfo.patch +metainfo.patch +psutil.patch +sandbox-fork.patch +sandbox-largefile.patch +sandbox-sched_setscheduler.patch +stab.h +thunderbird.desktop +vendor-prefs.js +zstandard.patch +" + +mozappdir=/usr/lib/thunderbird + +_clear_vendor_checksums() { + sed -i 's/\("files":{\)[^}]*/\1/' third_party/rust/$1/.cargo-checksum.json +} + +export CC="gcc" +export CXX="g++" + +export SHELL=/bin/sh +export BUILD_OFFICIAL=1 +export MOZILLA_OFFICIAL=1 +export USE_SHORT_LIBNAME=1 +export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none +export MOZBUILD_STATE_PATH="$srcdir"/mozbuild +# disable desktop notifications +export MOZ_NOSPAM=1 + +# set rpath so linker finds the libs +export LDFLAGS="$LDFLAGS -Wl,-rpath,$_mozappdir" + +# let firefox do this itself. +unset CARGO_PROFILE_RELEASE_OPT_LEVEL +unset CARGO_PROFILE_RELEASE_LTO + +export CFLAGS="$CFLAGS -O2 -fno-plt" +export CXXFLAGS="$CXXFLAGS -O2 -fno-plt" + +prepare() { + + apply_patches + + cp "$BUILD_ROOT"/stab.h toolkit/crashreporter/google-breakpad/src/ + + _clear_vendor_checksums audio_thread_priority + _clear_vendor_checksums packed_simd_2 + _clear_vendor_checksums target-lexicon-0.9.0 + + cat > base-mozconfig <<-EOF + # disable unwanted things + ac_add_options --disable-bootstrap + ac_add_options --disable-cargo-incremental + ac_add_options --disable-crashreporter + ac_add_options --disable-debug + ac_add_options --disable-debug-symbols + ac_add_options --disable-install-strip + ac_add_options --disable-jemalloc + ac_add_options --disable-strip + ac_add_options --disable-tests + ac_add_options --disable-updater + + # features + ac_add_options --enable-alsa + ac_add_options --enable-application=comm/mail + ac_add_options --enable-dbus + ac_add_options --enable-default-toolkit=cairo-gtk3-wayland + ac_add_options --enable-ffmpeg + ac_add_options --enable-hardening + ac_add_options --enable-linker=lld + ac_add_options --enable-necko-wifi + ac_add_options --enable-official-branding + ac_add_options --enable-optimize="$CFLAGS" + ac_add_options --enable-pulseaudio + ac_add_options --enable-release + ac_add_options --enable-update-channel=release + + # system libs + ac_add_options --enable-system-pixman + ac_add_options --with-system-ffi + ac_add_options --with-system-icu + ac_add_options --with-system-jpeg + ac_add_options --with-system-libevent + ac_add_options --with-system-libvpx + ac_add_options --with-system-nspr + ac_add_options --with-system-nss + ac_add_options --with-system-png + ac_add_options --with-system-webp + ac_add_options --with-system-zlib + + # misc + ac_add_options --prefix=/usr + ac_add_options --with-libclang-path=/usr/lib + ac_add_options --with-unsigned-addon-scopes=app,system + ac_add_options --without-wasm-sandboxed-libraries + + # objdir + mk_add_options MOZ_OBJDIR="$BUILD_ROOT/obj" + + ac_add_options --enable-sandbox + ac_add_options --disable-elf-hack + + mk_add_options AUTOCLOBBER=1 + ac_add_options --host=x86_64-unknown-linux-musl + EOF +} + +build() { + cat > .mozconfig base-mozconfig + + export MOZ_BUILD_DATE="$(date ${SOURCE_DATE_EPOCH:+ -d@${SOURCE_DATE_EPOCH}} "+%Y%m%d%H%M%S")" + + # for lto + ulimit -n 4096 + + ./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 "$BUILD_ROOT"/comm/mail/branding/thunderbird/default*.png; do + local i=${_png%.png} + i=${i##*/default} + install -D -m644 "$_png" "$PKG_DEST"/usr/share/icons/hicolor/"$i"x"$i"/apps/thunderbird.png + done + + install -Dm644 "$BUILD_ROOT"/comm/mail/branding/thunderbird/TB-symbolic.svg \ + "$PKG_DEST/usr/share/icons/hicolor/symbolic/apps/thunderbird-symbolic.svg" + install -Dm644 "$BUILD_ROOT"/comm/mail/branding/thunderbird/default48.png \ + $PKG_DEST/usr/share/pixmaps/thunderbird.png + + install -m644 "$BUILD_ROOT"/thunderbird.desktop "$PKG_DEST"/usr/share/applications/thunderbird.desktop + + # Add StartupWMClass=firefox on the .desktop files so Desktop Environments + # correctly associate the window with their icon, the correct fix is to have + # thunderbird sets its own AppID but this will work for the meantime + # See: https://bugzilla.mozilla.org/show_bug.cgi?id=1607399 + echo "StartupWMClass=thunderbird" >> "$PKG_DEST"/usr/share/applications/thunderbird.desktop + + # install our vendor prefs + install -d "$PKG_DEST"/$mozappdir/defaults/preferences + + cat >> "$PKG_DEST"/$mozappdir/defaults/preferences/vendor.js <<- EOF + // Use LANG environment variable to choose locale + pref("intl.locale.requested", ""); + + // Use system-provided dictionaries + pref("spellchecker.dictionary_path", "/usr/share/hunspell"); + + // Disable default mailer checking. + pref("mail.shell.checkDefaultMail", false); + + // Don't disable our bundled extensions in the application directory + pref("extensions.autoDisableScopes", 11); + pref("extensions.shownSelectionUI", true); + EOF + + install -d "$PKG_DEST"/$mozappdir/distribution + + cat >> "$PKG_DEST"/$mozappdir/distribution/distribution.ini <<- EOF + [Global] + id=xilinux + version=1.0 + about=Mozilla Thunderbird for XiLinux + + [Preferences] + app.distributor=xilinux + app.distributor.channel=thunderbird + EOF + + # Replace duplicate binary with wrapper + # https://bugzilla.mozilla.org/show_bug.cgi?id=658850 + ln -sf thunderbird "$PKG_DEST/$mozappdir/thunderbird-bin" +} + |