From d59eb8941e6a03e17bf90058ac0a08f5bedd5e70 Mon Sep 17 00:00:00 2001 From: relan Date: Thu, 28 Jun 2018 08:41:57 +0300 Subject: [PATCH] Fennec F-Droid: prepare for 61.0 --- metadata/org.mozilla.fennec_fdroid.txt | 102 ++++++++++++++++++++++++- srclibs/pyenv.txt | 2 + 2 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 srclibs/pyenv.txt diff --git a/metadata/org.mozilla.fennec_fdroid.txt b/metadata/org.mozilla.fennec_fdroid.txt index 7fba436ad4..fd47cd7f8a 100644 --- a/metadata/org.mozilla.fennec_fdroid.txt +++ b/metadata/org.mozilla.fennec_fdroid.txt @@ -4542,6 +4542,105 @@ Build:60.0.2,600210 zip -d obj/dist/fennec-$$VERSION$$.multi.android-*-unsigned-unaligned.apk 'META-INF/*.*' ndk=r15c +Build:61.0,610000 + commit=FENNEC_61_0_RELEASE + timeout=28800 + sudo=apt update && \ + apt install -y g++ libgmp-dev libmpfr-dev libmpc-dev proguard-cli/testing libproguard-java/testing + output=obj/dist/fennec-$$VERSION$$.multi.android-*-unsigned-unaligned.apk + srclibs=MozLocales@03e502fcd96a5cd64cb57a0b8cb1e39ee17b9ef1,pyenv@v1.2.4 + prebuild=bash $$MozLocales$$/prebuild.sh && \ + echo "ac_add_options --target=arm-linux-androideabi" >> .mozconfig && \ + echo "ac_add_options --with-android-min-sdk=16" >> .mozconfig && \ + echo "ac_add_options --with-android-ndk=\"$$NDK$$\"" >> .mozconfig && \ + echo "ac_add_options --with-android-sdk=\"$$SDK$$\"" >> .mozconfig && \ + echo "ac_add_options --enable-application=mobile/android" >> .mozconfig && \ + echo "ac_add_options --with-branding=mobile/android/branding/unofficial" >> .mozconfig && \ + echo "ac_add_options --with-libclang-path=$$NDK$$/toolchains/llvm/prebuilt/linux-x86_64/lib64/" >> .mozconfig && \ + echo "ac_add_options --with-clang-path=$$NDK$$/toolchains/llvm/prebuilt/linux-x86_64/bin/clang" >> .mozconfig && \ + echo "mk_add_options 'export PROGUARD_JAR=/usr/share/java/proguard.jar'" >> .mozconfig && \ + echo "mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj" >> .mozconfig && \ + pushd mobile/android/branding/unofficial/ && \ + sed -i -e '/ANDROID_PACKAGE_NAME/d' -e '/MOZ_APP_DISPLAYNAME/d' configure.sh && \ + echo 'ANDROID_PACKAGE_NAME=org.mozilla.fennec_fdroid' >> configure.sh && \ + echo 'MOZ_APP_DISPLAYNAME="Fennec F-Droid"' >> configure.sh && \ + echo 'MOZ_APP_ANDROID_VERSION_CODE=$$VERCODE$$' >> configure.sh && \ + sed -i -e 's/Mozilla Fennec/Fennec F-Droid/g' locales/en-US/brand* && \ + popd + build=export I_PREFER_A_SUBOPTIMAL_MERCURIAL_EXPERIENCE=1 && \ + curl https://ftp.gnu.org/gnu/gcc/gcc-6.4.0/gcc-6.4.0.tar.xz | tar -x -J && \ + mkdir gcc && \ + pushd gcc-6.4.0 && \ + ./configure --enable-languages=c,c++ --disable-multilib --prefix="$PWD/../gcc" && \ + make -j`nproc` && \ + make install && \ + popd && \ + export PATH="$PWD/gcc/bin:$PATH" && \ + export LD_LIBRARY_PATH="$PWD/gcc/lib64" && \ + export PYENV_ROOT="$(realpath '$$pyenv$$')" && \ + export PATH="$PYENV_ROOT/bin:$PATH" && \ + eval "$(pyenv init -)" && \ + pyenv install 3.5.5 && \ + pyenv global 3.5.5 && \ + mkdir rust && \ + curl https://static.rust-lang.org/dist/rust-1.25.0-`uname -m`-unknown-linux-gnu.tar.xz | tar -x -J -C rust --strip-components 2 && \ + curl https://static.rust-lang.org/dist/rust-std-1.25.0-armv7-linux-androideabi.tar.xz | tar -x -J -C rust --strip-components 2 && \ + PATH=$PATH:$PWD/rust/bin ./mach build && \ + cat used-locales | xargs -I % ./mach build chrome-% && \ + make -C obj package AB_CD=multi && \ + zip -d obj/dist/fennec-$$VERSION$$.multi.android-*-unsigned-unaligned.apk 'META-INF/*.*' + ndk=r15c + +Build:61.0,610010 + commit=FENNEC_61_0_RELEASE + timeout=28800 + sudo=apt update && \ + apt install -y g++ libgmp-dev libmpfr-dev libmpc-dev proguard-cli/testing libproguard-java/testing + output=obj/dist/fennec-$$VERSION$$.multi.android-*-unsigned-unaligned.apk + srclibs=MozLocales@03e502fcd96a5cd64cb57a0b8cb1e39ee17b9ef1,pyenv@v1.2.4 + prebuild=bash $$MozLocales$$/prebuild.sh && \ + echo "ac_add_options --target=i386-linux-androideabi" >> .mozconfig && \ + echo "ac_add_options --with-android-min-sdk=16" >> .mozconfig && \ + echo "ac_add_options --with-android-ndk=\"$$NDK$$\"" >> .mozconfig && \ + echo "ac_add_options --with-android-sdk=\"$$SDK$$\"" >> .mozconfig && \ + echo "ac_add_options --enable-application=mobile/android" >> .mozconfig && \ + echo "ac_add_options --with-branding=mobile/android/branding/unofficial" >> .mozconfig && \ + echo "ac_add_options --with-libclang-path=$$NDK$$/toolchains/llvm/prebuilt/linux-x86_64/lib64/" >> .mozconfig && \ + echo "ac_add_options --with-clang-path=$$NDK$$/toolchains/llvm/prebuilt/linux-x86_64/bin/clang" >> .mozconfig && \ + echo "mk_add_options 'export PROGUARD_JAR=/usr/share/java/proguard.jar'" >> .mozconfig && \ + echo "mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj" >> .mozconfig && \ + pushd mobile/android/branding/unofficial/ && \ + sed -i -e '/ANDROID_PACKAGE_NAME/d' -e '/MOZ_APP_DISPLAYNAME/d' configure.sh && \ + echo 'ANDROID_PACKAGE_NAME=org.mozilla.fennec_fdroid' >> configure.sh && \ + echo 'MOZ_APP_DISPLAYNAME="Fennec F-Droid"' >> configure.sh && \ + echo 'MOZ_APP_ANDROID_VERSION_CODE=$$VERCODE$$' >> configure.sh && \ + sed -i -e 's/Mozilla Fennec/Fennec F-Droid/g' locales/en-US/brand* && \ + popd + build=export I_PREFER_A_SUBOPTIMAL_MERCURIAL_EXPERIENCE=1 && \ + curl https://ftp.gnu.org/gnu/gcc/gcc-6.4.0/gcc-6.4.0.tar.xz | tar -x -J && \ + mkdir gcc && \ + pushd gcc-6.4.0 && \ + ./configure --enable-languages=c,c++ --disable-multilib --prefix="$PWD/../gcc" && \ + make -j`nproc` && \ + make install && \ + popd && \ + export PATH="$PWD/gcc/bin:$PATH" && \ + export LD_LIBRARY_PATH="$PWD/gcc/lib64" && \ + export PYENV_ROOT="$(realpath '$$pyenv$$')" && \ + export PATH="$PYENV_ROOT/bin:$PATH" && \ + eval "$(pyenv init -)" && \ + pyenv install 3.5.5 && \ + pyenv global 3.5.5 && \ + mkdir rust && \ + curl https://static.rust-lang.org/dist/rust-1.25.0-`uname -m`-unknown-linux-gnu.tar.xz | tar -x -J -C rust --strip-components 2 && \ + curl https://static.rust-lang.org/dist/rust-std-1.25.0-i686-linux-android.tar.xz | tar -x -J -C rust --strip-components 2 && \ + export PATH="$PATH:$PWD/rust/bin" && \ + ./mach build && \ + cat used-locales | xargs -I % ./mach build chrome-% && \ + make -C obj package AB_CD=multi && \ + zip -d obj/dist/fennec-$$VERSION$$.multi.android-*-unsigned-unaligned.apk 'META-INF/*.*' + ndk=r15c + Maintainer Notes: Updating/Versioning: @@ -4553,7 +4652,8 @@ Updating/Versioning: ** Example: 550021 = Firefox 55.0 for ARMv8, second revision * Builds for different architectures target different Android API levels: 16 for 32-bit (ARMv7 and x86) and 21 for 64-bit (ARMv8). * Required SDK and NDK versions: https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Simple_Firefox_for_Android_build#Required_Android_SDK_and_NDK_versions -* Required Rust versions: https://wiki.mozilla.org/Oxidation#Supported_Rust_versions_for_Firefox_builds +* Required Rust versions: https://wiki.mozilla.org/Rust_Update_Policy_for_Firefox#Schedule +* Firefox 61 requires at least Python 3.5 and GCC 6.1. We have to install Python and GCC from source because their versions in Debian Jessie are too old. This should be dropped once the build VM is upgraded to Debian Stretch. Reroute Feedback: * about:feedback links to the Play Store for rating the app. While with F-Droid installed, we can intercept the intent and open the page in F-Droid client instead, there is no way to rate the app. If F-Droid is not installed (or Play is configured to be used always), no app info page is displayed at all: Our package id is not in Play Store! Some options: diff --git a/srclibs/pyenv.txt b/srclibs/pyenv.txt new file mode 100644 index 0000000000..cf38622ccb --- /dev/null +++ b/srclibs/pyenv.txt @@ -0,0 +1,2 @@ +Repo Type:git +Repo:https://github.com/pyenv/pyenv