From 15bcc4688c5ce600a8a4cb5329b8f3acb8ff9f86 Mon Sep 17 00:00:00 2001 From: Dan Stillman Date: Thu, 10 Jul 2025 01:40:25 -0400 Subject: [PATCH] Add script to extract Linux updaters from custom Firefox builds --- app/linux/update_updater | 43 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100755 app/linux/update_updater diff --git a/app/linux/update_updater b/app/linux/update_updater new file mode 100755 index 0000000000..cf8f6aa342 --- /dev/null +++ b/app/linux/update_updater @@ -0,0 +1,43 @@ +#!/bin/bash +set -euo pipefail + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +cd "$SCRIPT_DIR" + +if [ $# -ne 1 ]; then + echo "Usage: $0 " + exit 1 +fi + +version="$1" + +for arch in x86_64 aarch64 i686; do + package="firefox-${version}.en-US.linux-${arch}.tar.xz" + if [ $arch = 'aarch64' ]; then + arch="arm64" + fi + + if [ ! -f "$package" ]; then + echo "Error: Package not found: $package" + exit 1 + fi + + echo "Extracting updater from $package..." + tar --extract --xz --file="$package" --to-stdout "firefox/updater" > "updater-$arch" + + # Add missing RUNPATH to custom fx140 builds, which is missing for unclear reasons. + # Without this, the updater fails looking for libmozsqlite3.so. + patchelf --set-rpath '$ORIGIN' "updater-$arch" +done + +echo "Creating updater.tar.xz..." +if [ `uname` = "Darwin" ]; then + tar=gtar +else + tar=tar +fi +$tar --owner=0 --group=0 --numeric-owner --no-xattrs --mode=0755 -cJvf updater.tar.xz updater-x86_64 updater-arm64 updater-i686 + +rm updater-x86_64 updater-arm64 updater-i686 + +echo "Done: updater.tar.xz created"