Here we go!

This commit is contained in:
Mauro Balades
2024-08-01 14:15:43 +02:00
parent b17fb12715
commit 2927b58924
14 changed files with 167 additions and 155 deletions

View File

@@ -229,10 +229,13 @@ jobs:
build-version: ${{ needs.build-data.outputs.version }}
appimage:
name: AppImage build
name: AppImage build - Linux ${{ matrix.arch }}
permissions:
contents: write
runs-on: ubuntu-latest
strategy:
matrix:
arch: [x64, x32]
needs: [linux]
steps:
- name: Install Node.js
@@ -259,24 +262,26 @@ jobs:
cp configs/branding/alpha/logo128.png AppDir/usr/share/icons/hicolor/128x128/apps/zen.png
cp configs/branding/alpha/logo128.png AppDir/zen.png
APPIMAGE_TARGET=${{ matrix.arch == 'x64' && 'x86_64' || 'i686' }}
APPDIR=AppDir
tar -xvf *.tar.* && rm -rf *.tar.*
mv zen/* $APPDIR/
wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-$APPIMAGE_TARGET.AppImage
chmod +x *.AppImage
chmod +x ./AppDir/AppRun
echo "AppDir: $APPDIR"
ls -al
find .
ls -al "$APPDIR"
ARCH=x86_64 ./appimagetool-x86_64.AppImage --comp gzip "$APPDIR" zen.AppImage
ARCH=$APPIMAGE_TARGET ./appimagetool-$APPIMAGE_TARGET.AppImage --comp gzip "$APPDIR" zen.AppImage
mkdir dist
mv zen.AppImage* dist/.
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: zen.AppImage
name: zen-x${{ matrix.arch }}.AppImage
path: ./dist/zen.AppImage
release:
@@ -328,13 +333,28 @@ jobs:
prerelease: false
title: 'Alpha build - ${{ needs.build-data.outputs.version }} (${{ needs.build-data.outputs.build_date }})'
files: |
zen.linux.tar.bz2
zen.win64.zip
zen.source.tar.gz
linux.mar
windows.mar
macos.mar
zen.installer.exe
zen.installer.pretty.exe
zen.macos.dmg
zen.AppImage
zen.linux-x64.tar.bz2
zen.linux-x32.tar.bz2
zen-x64.AppImage
zen-x32.AppImage
zen.win-x64.zip
zen.win-x32.zip
linux-x64.mar
linux-x32.mar
windows-x64.mar
windows-x32.mar
macos-x64.mar
macos-aarch64.mar
zen.installer-x64.exe
zen.installer-x32.exe
zen.macos-x64.dmg
zen.macos-aarch64.dmg

View File

@@ -12,6 +12,10 @@ jobs:
permissions:
contents: write
runs-on: ubuntu-latest
strategy:
matrix:
arch: [x64, x32]
name: Build Linux - ${{ matrix.arch }}
steps:
- name: Install Node.js
@@ -86,6 +90,8 @@ jobs:
run: pnpm surfer download
- name: Import
env:
SURFER_COMPAT: ${{ matrix.arch == 'x32' }}
run: pnpm surfer import
- name: Bootstrap
@@ -95,14 +101,20 @@ jobs:
cd ..
- name: Build
env:
SURFER_COMPAT: ${{ matrix.arch == 'x32' }}
continue-on-error: true
run: sh .github/workflows/src/alpha-build.sh
- name: Build again if it failed
if: failure()
env:
SURFER_COMPAT: ${{ matrix.arch == 'x32' }}
run: sh .github/workflows/src/alpha-build.sh
- name: Package
env:
SURFER_COMPAT: ${{ matrix.arch == 'x32' }}
run: pnpm package
- name: Rename artifacts
@@ -113,17 +125,17 @@ jobs:
- name: Upload binary
uses: actions/upload-artifact@v4
with:
name: zen.linux.tar.bz2
name: zen.linux-${{ matrix.arch }}.tar.bz2
path: ./zen.linux.tar.bz2
- name: Upload mar
uses: actions/upload-artifact@v4
with:
name: linux.mar
name: linux-${{ matrix.arch }}.mar
path: ./linux.mar
- name: Upload update manifests
uses: actions/upload-artifact@v4
with:
name: linux_update_manifest
name: linux_update_manifest_${{ matrix.arch }}
path: ./dist/update

View File

@@ -9,7 +9,12 @@ on:
jobs:
mac-build:
runs-on: macos-14
name: Build macOS - ${{ matrix.arch }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-14, macos-13]
arch: [aarch64, x64]
steps:
- name: Install Node.js
@@ -60,7 +65,10 @@ jobs:
run: pnpm surfer download
- name: Import
run: pnpm surfer import
env:
SURFER_COMPAT: ${{ matrix.arch == 'x64' }}
run: |
pnpm surfer import
- name: Bootstrap
run: |
@@ -69,6 +77,8 @@ jobs:
cd ..
- name: build Zen
env:
SURFER_COMPAT: ${{ matrix.arch == 'x64' }}
run: sh .github/workflows/src/alpha-build.sh
- name: Rebuild Zen if failed
@@ -76,6 +86,8 @@ jobs:
run: sh .github/workflows/src/alpha-build.sh
- name: Package
env:
SURFER_COMPAT: ${{ matrix.arch == 'x64' }}
run: pnpm package
- name: Rename artifacts
@@ -86,17 +98,17 @@ jobs:
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: zen.macos.dmg
name: zen.macos-${{ matrix.arch }}.dmg
path: ./zen.macos.dmg
- name: Upload mar
uses: actions/upload-artifact@v4
with:
name: macos.mar
name: macos-${{ matrix.arch }}.mar
path: ./macos.mar
- name: Upload update manifests
uses: actions/upload-artifact@v4
with:
name: macos_update_manifest
name: macos_update_manifest_${{ matrix.arch }}
path: ./dist/update

View File

@@ -1,40 +0,0 @@
export WINSYSROOT="$(echo ~)/win-cross/vs2022"
export MIDL="$(echo ~)/win-cross/wine/bin/widl"
export WINE="$(echo ~)/win-cross/wine/bin/wine64"
export WINEDEBUG=-all
#? https://bugzilla.mozilla.org/show_bug.cgi?id=1617793
#? https://phabricator.services.mozilla.com/D170170
ac_add_options --target=x86_64-pc-windows-msvc
export MOZ_STUB_INSTALLER=1
export MOZ_PKG_FORMAT=TAR
export CROSS_BUILD=1
CROSS_COMPILE=1
TOOLS=$(echo ~)/win-cross
export MIDL="$TOOLS/wine/bin/widl"
export MOZ_INCLUDE_SOURCE_INFO=1
export MOZ_STUB_INSTALLER=1
export WINEDEBUG=-all
export WINE="$TOOLS/wine/bin/wine64"
#export WIN32_REDIST_DIR="$TOOLS"/vs2022/VC/Redist/MSVC/14.34.31931/x64/Microsoft.VC143.CRT
#export WIN_UCRT_REDIST_DIR="$TOOLS/vs2022/Windows Kits/10/Redist/10.0.22621.0/ucrt/DLLs/x64"
ac_add_options --disable-maintenance-service
ac_add_options --disable-bits-download
#if test "$ZEN_GA_GENERATE_PROFILE"; then
# mk_add_options "export MOZ_AUTOMATION_PACKAGE_GENERATED_SOURCES=0"
# ac_add_options --enable-profile-generate=cross
#else
# ac_add_options --disable-profiling
# ac_add_options --enable-profile-use=cross
# ac_add_options --with-pgo-profile-path=$(echo ~)/artifact/merged.profdata
# ac_add_options --with-pgo-jarlog=$(echo ~)/artifact/en-US.log
#fi
# ALWAYS MANTAIN ONE LINE BREAK AT THE END OF THIS FILE

View File

@@ -16,7 +16,11 @@ on:
jobs:
windows-build:
name: Build Windows - ${{ matrix.arch }}
runs-on: ubuntu-latest
strategy:
matrix:
arch: [x64, x32]
steps:
- name: Install Node.js and pnpm
@@ -92,8 +96,6 @@ jobs:
chmod -R +x "$(echo ~)/win-cross/vs2022" || true
cat ../.github/workflows/src/windows_mozconfig >> ../configs/common/mozconfig
cd ..
npm install -g pnpm
export SURFER_PLATFORM="win32"
@@ -128,9 +130,13 @@ jobs:
path: ~/artifact
- name: Import
run: pnpm surfer import --verbose
env:
SURFER_COMPAT: ${{ matrix.arch == 'x32' }}
run: pnpm surfer import --verbose
- name: Build
env:
SURFER_COMPAT: ${{ matrix.arch == 'x32' }}
run: |
set -x
export SURFER_PLATFORM="win32"
@@ -141,6 +147,8 @@ jobs:
sh .github/workflows/src/alpha-build.sh
- name: Package
env:
SURFER_COMPAT: ${{ matrix.arch == 'x32' }}
run: |
set -x
export SURFER_PLATFORM="win32"
@@ -160,7 +168,7 @@ jobs:
uses: actions/upload-artifact@v4
if: ${{ !inputs.generate-gpo }}
with:
name: zen.win64.zip
name: zen.win-${{ matrix.arch }}.zip
path: ./zen.win64.zip
- name: Upload PGO build
@@ -174,19 +182,19 @@ jobs:
uses: actions/upload-artifact@v4
if: ${{ !inputs.generate-gpo }}
with:
name: windows.mar
name: windows-${{ matrix.arch }}.mar
path: ./windows.mar
- name: Upload installer
uses: actions/upload-artifact@v4
if: ${{ !inputs.generate-gpo }}
with:
name: zen.installer.exe
name: zen.installer-${{ matrix.arch }}.exe
path: ./dist/zen.installer.exe
- name: Upload installer stub
uses: actions/upload-artifact@v4
if: ${{ !inputs.generate-gpo }}
if: ${{ !inputs.generate-gpo && false }}
with:
name: zen.installer.pretty.exe
path: ./dist/zen.installer.pretty.exe
@@ -195,5 +203,5 @@ jobs:
uses: actions/upload-artifact@v4
if: ${{ !inputs.generate-gpo }}
with:
name: windows_update_manifest
name: windows_update_manifest_${{ matrix.arch }}
path: ./dist/update

View File

@@ -22,4 +22,4 @@ Exec=zen --private-window %u
[Desktop Action profilemanager]
Name=Open the Profile Manager
Exec=zen --ProfileManager %u
Exec=zen --ProfileManager %u

View File

@@ -1,9 +1,7 @@
# Browser branding
ac_add_options --enable-update-channel=release
ac_add_options --with-app-name=${binName}
ac_add_options --with-app-basename=Zen
ac_add_options --enable-official-branding
export MOZ_USER_DIR="${name}"
export MOZ_APP_VENDOR="${vendor}"
@@ -25,7 +23,6 @@ export MOZ_SOURCE_CHANGESET=${changeset}
export MOZ_INCLUDE_SOURCE_INFO=1
ac_add_options --enable-bootstrap
ac_add_options --enable-application=browser
if test "$ZEN_RELEASE"; then
@@ -34,17 +31,15 @@ if test "$ZEN_RELEASE"; then
ac_add_options --disable-debug-symbols
ac_add_options --disable-debug-js-modules
ac_add_options --disable-tests
ac_add_options --enable-strip
ac_add_options --enable-install-strip
ac_add_options --disable-jprof
ac_add_options --enable-strip
export STRIP_FLAGS="--strip-debug --strip-unneeded"
ac_add_options --enable-rust-simd
mk_add_options MOZ_PARALLEL_COMPILE=1
mk_add_options MOZ_CRASHREPORTER=0
mk_add_options MOZ_DATA_REPORTING=0
mk_add_options MOZ_SERVICES_HEALTHREPORT=0
mk_add_options MOZ_TELEMETRY_REPORTING=0
ac_add_options --enable-proxy-bypass-protection
ac_add_options --enable-hardening
ac_add_options --disable-profiling
@@ -64,25 +59,22 @@ if test "$ZEN_RELEASE"; then
MOZILLA_OFFICIAL=1
export MOZILLA_OFFICIAL=1
mk_add_options MOZ_OPTIMIZE=1
MOZ_OPTIMIZE=1
export MOZ_OPTIMIZE=1
mk_add_options MOZ_OPTIMIZE=2
MOZ_OPTIMIZE=2
export MOZ_OPTIMIZE=2
export OPT_LEVEL="3"
ac_add_options OPT_LEVEL="3"
export RUSTC_OPT_LEVEL="3"
ac_add_options RUSTC_OPT_LEVEL="3"
mk_add_options AUTOCLOBBER=1
export AUTOCLOBBER=1
if ! test "$ZEN_CROSS_COMPILING"; then
# It causes link errors on windows
ac_add_options --disable-dmd
fi
ac_add_options --enable-updater
export MOZ_PACKAGE_JSSHELL=1
fi
ac_add_options --enable-unverified-updates
@@ -96,9 +88,6 @@ ac_add_options --enable-eme=widevine
ac_add_options --allow-addon-sideload
ac_add_options --with-unsigned-addon-scopes=app,system
export MOZ_REQUIRE_SIGNING=
export MOZ_TELEMETRY_REPORTING=
mk_add_options MOZ_CRASHREPORTER=0
mk_add_options MOZ_DATA_REPORTING=0
mk_add_options MOZ_SERVICES_HEALTHREPORT=0
@@ -109,5 +98,3 @@ if test "$ZEN_CROSS_COMPILING"; then
fi
export MOZ_APP_UA_NAME="Firefox"
# ALWAYS MANTAIN ONE LINE BREAK AT THE END OF THIS FILE

View File

@@ -1,23 +1,19 @@
ac_add_options --enable-wasm-avx
# not when cross compiling
if ! test "$ZEN_CROSS_COMPILING"; then
if test -d "$HOME/.mozbuild/clang/bin"; then
export CC="$HOME"/.mozbuild/clang/bin/clang
export CXX="$HOME"/.mozbuild/clang/bin/clang++
else
export CC=clang
export CXX=clang++
fi
ac_add_options --enable-linker=lld
ac_add_options --disable-elf-hack
if test -d "$HOME/.mozbuild/clang/bin"; then
export CC="$HOME"/.mozbuild/clang/bin/clang
export CXX="$HOME"/.mozbuild/clang/bin/clang++
else
export CC=clang
export CXX=clang++
fi
if test "$ZEN_RELEASE"; then
ac_add_options --enable-strip
export STRIP_FLAGS="--strip-debug --strip-unneeded"
export MOZ_PGO=1
ac_add_options MOZ_PGO=1
ac_add_options --disable-dmd
ac_add_options --enable-linker=lld
ac_add_options --disable-elf-hack
if [ -f /home/runner/.mozbuild/sccache/sccache ]; then
mk_add_options 'export RUSTC_WRAPPER=/home/runner/.mozbuild/sccache/sccache'
@@ -25,21 +21,15 @@ if test "$ZEN_RELEASE"; then
ac_add_options --with-ccache=/home/runner/.mozbuild/sccache/sccache
mk_add_options 'export SCCACHE_GHA_ENABLED=on'
fi
if ! test "$ZEN_CROSS_COMPILING"; then
# WE ARE JUST SUPPORTING PGO FOR LINUX!
export MOZ_PGO=1
ac_add_options MOZ_PGO=1
fi
export CFLAGS="-O2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes"
export CPPFLAGS="-O2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes"
export CXXFLAGS="-O2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes"
export LDFLAGS="-Wl,-O2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes"
export POLLY="-mllvm -polly -mllvm -polly-2nd-level-tiling -mllvm -polly-loopfusion-greedy -mllvm -polly-pattern-matching-based-opts -mllvm -polly-position=before-vectorizer -mllvm -polly-vectorizer=stripmine"
export RUSTFLAGS="$RUSTFLAGS -C target-feature=+avx -C codegen-units=1 -Ctarget-cpu=x86-64-v3"
fi
# Disable telemetry and tracking
mk_add_options MOZ_TELEMETRY_REPORTING=
mk_add_options MOZ_DATA_REPORTING=
if test "$SURFER_COMPAT" = "1"; then
# Build for linux-i686
ac_add_options --target=i686-pc-linux
else
# Build for linux-x86_64
# Dont' declare, let's build with default target
# ac_add_options --target=x86_64-pc-linux
fi

View File

@@ -1,12 +1,17 @@
POLLY="-mllvm -polly -mllvm -polly-2nd-level-tiling -mllvm -polly-loopfusion-greedy -mllvm -polly-pattern-matching-based-opts -mllvm -polly-position=before-vectorizer -mllvm -polly-vectorizer=stripmine"
unset MOZ_STDCXX_COMPAT
if test "$ZEN_RELEASE"; then
export RUSTFLAGS="$RUSTFLAGS -Ctarget-cpu=apple-m1"
fi
ac_add_options --enable-install-strip
ac_add_options --target=aarch64-apple-darwin
export MOZ_MACBUNDLE_ID=${appId}
export MOZ_MACBUNDLE_NAME="Zen Browser.app"
if test "$SURFER_COMPAT" = "1"; then
# No need to declare, let's build with default target
# ac_add_options --target=i686-apple-darwin
export MOZ_PGO=1
ac_add_options MOZ_PGO=1
else
ac_add_options --target=aarch64-apple-darwin
fi

View File

@@ -1,5 +1,30 @@
if test "$ZEN_CROSS_COMPILING"; then
export WINSYSROOT="$(echo ~)/win-cross/vs2022"
# Disable telemetry and tracking
mk_add_options MOZ_TELEMETRY_REPORTING=
mk_add_options MOZ_DATA_REPORTING=
export MIDL="$(echo ~)/win-cross/wine/bin/widl"
export WINE="$(echo ~)/win-cross/wine/bin/wine64"
export WINEDEBUG=-all
#? https://bugzilla.mozilla.org/show_bug.cgi?id=1617793
#? https://phabricator.services.mozilla.com/D170170
ac_add_options --target=x86_64-pc-windows-msvc
export MOZ_STUB_INSTALLER=1
export MOZ_PKG_FORMAT=TAR
export CROSS_BUILD=1
CROSS_COMPILE=1
TOOLS=$(echo ~)/win-cross
export MIDL="$TOOLS/wine/bin/widl"
export MOZ_INCLUDE_SOURCE_INFO=1
export MOZ_STUB_INSTALLER=1
export WINEDEBUG=-all
export WINE="$TOOLS/wine/bin/wine64"
#export WIN32_REDIST_DIR="$TOOLS"/vs2022/VC/Redist/MSVC/14.34.31931/x64/Microsoft.VC143.CRT
#export WIN_UCRT_REDIST_DIR="$TOOLS/vs2022/Windows Kits/10/Redist/10.0.22621.0/ucrt/DLLs/x64"
fi
ac_add_options --disable-maintenance-service
ac_add_options --disable-bits-download

View File

@@ -27,6 +27,6 @@
},
"homepage": "https://github.com/zen-browser/core#readme",
"dependencies": {
"@zen-browser/surfer": "^1.1.17"
"@zen-browser/surfer": "^1.2.1"
}
}

10
pnpm-lock.yaml generated
View File

@@ -9,8 +9,8 @@ importers:
.:
dependencies:
'@zen-browser/surfer':
specifier: ^1.1.17
version: 1.1.17
specifier: ^1.2.1
version: 1.2.1
packages:
@@ -109,8 +109,8 @@ packages:
'@types/node@17.0.45':
resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
'@zen-browser/surfer@1.1.17':
resolution: {integrity: sha512-619ur59XBh7GLLtAeOipJNiUOJL/lNGRXznf40e6fPimCsSobrL7HIxh5F1JXpRvKpUHVOQK5R1EDbcH+rTttg==}
'@zen-browser/surfer@1.2.1':
resolution: {integrity: sha512-SM2JvjqpPY1Qb4nqcDbrWSC2U3G9ctylzOwKaOMdOEJKy23EWNeiupMYpo1Lb4XdkNYtuWtdNDrG8zPJmFD4fg==}
hasBin: true
ansi-regex@5.0.1:
@@ -786,7 +786,7 @@ snapshots:
'@types/node@17.0.45': {}
'@zen-browser/surfer@1.1.17':
'@zen-browser/surfer@1.2.1':
dependencies:
'@resvg/resvg-js': 1.4.0
async-icns: 1.0.2

View File

@@ -1,11 +0,0 @@
diff --git a/build/application.ini.in b/build/application.ini.in
index 6df13230a45b2a86356f4e5a7b189c46f53e44cc..47fc729cba7d9cb612bfa0297a24644925ab53af 100644
--- a/build/application.ini.in
+++ b/build/application.ini.in
@@ -52,5 +52,5 @@ ServerURL=@MOZ_CRASHREPORTER_URL@/submit?id=@MOZ_APP_ID@&version=@MOZ_APP_VERSIO
#if MOZ_UPDATER
[AppUpdate]
-URL=https://@MOZ_APPUPDATE_HOST@/update/6/%PRODUCT%/%VERSION%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%SYSTEM_CAPABILITIES%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml
+URL=https://@MOZ_APPUPDATE_HOST@/updates/browser/%BUILD_TARGET%/%CHANNEL%/update.xml
#endif

View File

@@ -31,10 +31,14 @@
"github": {
"repo": "zen-browser/desktop"
},
"x86": {
"windowsMar": "windows.mar",
"macosMar": "macos.mar",
"linuxMar": "linux.mar"
"archives": {
"windows-x64": "windows-x64.mar",
"macos-x64": "macos-x64.mar",
"linux-x64": "linux-x64.mar",
"windows-x32": "windows-x32.mar",
"linux-x32": "linux-x32.mar",
"macos-aarch64": "macos-aarch64.mar"
}
}
}