aboutsummaryrefslogtreecommitdiff
path: root/browser/linux/build.sh
diff options
context:
space:
mode:
authorBeatLink <beatlink@protonmail.com>2019-07-17 13:50:38 -0500
committerBeatLink <beatlink@protonmail.com>2019-07-17 13:50:38 -0500
commit62ae8ee96788df9e1fc42322e942275bc5cc0971 (patch)
tree8c33b2ac6cbfc3bee4ef273f2c8a3cf8b8b24266 /browser/linux/build.sh
parentContinued work on rebranding (diff)
downloadlibrewolf-linux-62ae8ee96788df9e1fc42322e942275bc5cc0971.tar.gz
librewolf-linux-62ae8ee96788df9e1fc42322e942275bc5cc0971.tar.bz2
librewolf-linux-62ae8ee96788df9e1fc42322e942275bc5cc0971.zip
Split build script and rearrange linux folder
Diffstat (limited to 'browser/linux/build.sh')
-rwxr-xr-xbrowser/linux/build.sh211
1 files changed, 13 insertions, 198 deletions
diff --git a/browser/linux/build.sh b/browser/linux/build.sh
index 75ee988..cd0b650 100755
--- a/browser/linux/build.sh
+++ b/browser/linux/build.sh
@@ -1,207 +1,22 @@
-#!/bin/bash
+#!/bin/sh
printf "\n------------------------------------- SCRIPT SETUP ------------------------------------------\n";
# Prevents build from breaking in CI/CD environments
-export SHELL=/bin/bash;
-printf "SHELL=$SHELL\n";
+#export SHELL=/bin/bash;
+#printf "SHELL=$SHELL\n";
# Aborts the script upon any faliure
set -e;
# Sets up internal script variables
printf "\nSetting up script variables\n";
-SCRIPT_FOLDER=$(realpath $(dirname $0));
-REPOSITORY_FOLDER=$(realpath $SCRIPT_FOLDER/../../);
-SOURCE_FOLDER=$REPOSITORY_FOLDER/browser/common/source_files/
-BRANDING_FOLDER=$SOURCE_FOLDER/browser/branding/librewolf;
-ICON_FOLDER=$REPOSITORY_FOLDER/branding/icon/;
-PACKAGE_FILE="librewolf*.tar.bz2";
-printf "SCRIPT_FOLDER: $SCRIPT_FOLDER\n";
-printf "REPOSITORY_FOLDER: $REPOSITORY_FOLDER\n";
-printf "SOURCE_FOLDER: $SOURCE_FOLDER\n";
-printf "BRANDING_FOLDER: $BRANDING_FOLDER\n";
-printf "ICON_FOLDER: $ICON_FOLDER\n";
-printf "PACKAGE_FILE: $PACKAGE_FILE\n";
-
-
-printf "\n\n-------------------------------------- PREBUILD ---------------------------------------------\n";
-
-# Installs some needed dependencies
-printf "\nInstalling script dependencies\n";
-apt update;
-apt install gnupg2 -y;
-echo 'deb http://ppa.launchpad.net/alexlarsson/flatpak/ubuntu bionic main' >> /etc/apt/source.list;
-apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FA577F07;
-apt update;
-apt install python python3 inkscape icnsutils wget flatpak flatpak-builder -y;
-
-# Downloads and runs bootstrapper to install more dependencies.
-printf "\nRunning bootstrapper to install build dependencies\n";
-wget https://hg.mozilla.org/mozilla-central/raw-file/default/python/mozboot/bin/bootstrap.py;
-python ./bootstrap.py --application-choice=browser --no-interactive || true
-rm -f ./bootstrap.py;
-
-# adds the new rust install to PATH
-printf "\nAdding new rust install to PATH\n";
-. $HOME/.cargo/env;
-
-printf "\n\n---------------------------------- ICON GENERATION ------------------------------------------\n";
-# Generates Icons for branding
-printf "\nGenerating icons from $ICON_FOLDER and moving to $BRANDING_FOLDER\n";
-
-# Generates Linux Icons
-printf "\nGenerating Linux Icons\n";
-inkscape -z -f $ICON_FOLDER/icon.svg -e $BRANDING_FOLDER/default16.png -w 16 -h 16;
-inkscape -z -f $ICON_FOLDER/icon.svg -e $BRANDING_FOLDER/default32.png -w 32 -h 32;
-inkscape -z -f $ICON_FOLDER/icon.svg -e $BRANDING_FOLDER/default48.png -w 48 -h 48;
-inkscape -z -f $ICON_FOLDER/icon.svg -e $BRANDING_FOLDER/default64.png -w 64 -h 64;
-inkscape -z -f $ICON_FOLDER/icon.svg -e $BRANDING_FOLDER/default128.png -w 128 -h 128;
-
-# Generates Windows Icons
-printf "\nGenerating Windows Icons\n";
-inkscape -z -f $ICON_FOLDER/icon.svg -e $BRANDING_FOLDER/VisualElements_70.png -w 70 -h70;
-inkscape -z -f $ICON_FOLDER/icon.svg -e $BRANDING_FOLDER/VisualElements_150.png -w 150 -h150;
-
-# Generates Apple Icons
-printf "\nGenerating Apple Icons\n";
-png2icns $BRANDING_FOLDER/firefox.icns $BRANDING_FOLDER/default128.png;
-inkscape -z -f $ICON_FOLDER/document-icon.svg -e $BRANDING_FOLDER/document-icon.png -w 128 -h 128;
-png2icns $BRANDING_FOLDER/document.icns $BRANDING_FOLDER/document-icon.png;
-rm -r $BRANDING_FOLDER/document-icon.png
-
-printf "\n\n--------------------------------- SOURCE CODE DOWNLOAD --------------------------------------\n";
-
-# Creates and enters the folder where compiling will take place
-printf "\nCreating compile folder\n";
-mkdir -p compile_folder;
-cd compile_folder;
-
-# Clones the firefox source code for compiling
-printf "\nCloning Firefox Source Code\n";
-hg clone https://hg.mozilla.org/releases/mozilla-release;
-cd mozilla-release;
-
-printf "\n\n------------------------------ FINAL PREBUILD CONFIGURATION ---------------------------------\n";
-
-# Copies our branding to the source code, changing it from firefox to librewolf
-printf "\nCopying branding to firefox source code\n";
-cp -r $SOURCE_FOLDER/* ./;
-
-# Disables pocket
-printf "\nDisabling Pocket\n";
-sed -i "s/'pocket'/#'pocket'/g" ./browser/components/moz.build;
-
-printf "\n\n--------------------------------------- BUILD -----------------------------------------------\n";
-
-# Bootstraps librewolf again (using the ./mach script inside the source code)
-printf "\nRunning bootstrapper to install build dependencies (using ./mach script within source code)\n";
-./mach bootstrap --application-choice=browser --no-interactive;
-
-# Builds librewolf
-printf "\nBuilding LibreWolf\n";
-./mach build;
-
-# Packages LibreWolf
-printf "\nPackaging LibreWolf\n";
-./mach package;
-
-# moves the packaged tarball to the script folder
-printf "\nRelocating binary tarball to script folder\n";
-cp ./obj*/dist/librewolf*.tar.bz2 $SCRIPT_FOLDER;
-
-# Remove the compile folder
-printf "\nDeleting the compile_folder\n";
-cd $SCRIPT_FOLDER;
-rm -rf ./compile_folder;
-
-
-printf "\n\n--------------------------------- SETTINGS INTEGRATION --------------------------------------\n";
-
-# Extracts the binary tarball
-printf "\nExtracting librewolf binary tarball\n";
-tar -xvf ./$PACKAGE_FILE;
-
-# Adds the librefox config files to the packaged tarball
-printf "\nCopying librewolf settings to extracted binary tarball\n";
-cp -r $REPOSITORY_FOLDER/settings ./librewolf/settings;
-cp $SCRIPT_FOLDER/resources/launch_librewolf.sh ./librewolf/launch_librewolf.sh
-mkdir -p $INSTALL_FOLDER/defaults/pref/;
-mkdir -p $INSTALL_FOLDER/distribution/;
-
-printf "\n\n--------------------------------- BINARY TARBALL RECREATION --------------------------------------\n";
-
-# Repacks the binary tarball
-printf "\nRecompressing binary tarball\n";
-tar -jcvf ./$PACKAGE_FILE librewolf;
-
-# Moves the final binary tarball to build_output
-printf "\nMoving binary tarball to build_output folder\n";
-mv $PACKAGE_FILE $SCRIPT_FOLDER/build_output/;
-
-printf "\n\n------------------------------------ APPIMAGE BUILD -----------------------------------------\n";
-
-APPIMAGE_RESOURCE_FOLDER=$SCRIPT_FOLDER/resources/appimage;
-printf "APPIMAGE_RESOURCE_FOLDER: $APPIMAGE_RESOURCE_FOLDER\n";
-
-# Copy and generate icons
-printf "\nGenerating AppImage Icons\n";
-cp $ICON_FOLDER/icon.svg $APPIMAGE_RESOURCE_FOLDER/librewolf.svg;
-ln -rs $APPIMAGE_RESOURCE_FOLDER/librewolf.svg $SCRIPT_FOLDER/resources/appimage/.DirIcon;
-
-# Copy appimage resources to main tarball
-printf "Copying AppImage resources to binary tarball folder\n";
-cp -vrT $APPIMAGE_RESOURCE_FOLDER ./librewolf;
-
-# Downloads appimage tool
-printf "\nDownloading AppImage Tool\n";
-wget https://github.com/AppImage/AppImageKit/releases/latest/download/appimagetool-x86_64.AppImage -O appimagetool;
-chmod +x ./appimagetool;
-./appimagetool --appimage-extract;
-
-# Generate AppImage
-printf "\nGenerating AppImage\n";
-./squashfs-root/AppRun ./librewolf;
-chmod +x ./LibreWolf*.AppImage;
-
-# Move AppImage to build_output folder
-printf "\nMoving AppImage to build_output folder\n";
-mv ./LibreWolf*.AppImage ./build_output;
-
-# Delete the appimage tool
-printf "\nRemoving AppImage tool\n";
-rm -f ./appimagetool;
-rm -rf ./squashfs-root;
-
-
-printf "\n\n---------------------------------------- FLATPAK BUILD --------------------------------------------\n";
-
-# Install build dependencies
-printf "\nInstalling flatpak build dependencies\n";
-flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo;
-flatpak install -y org.gnome.Platform/x86_64/3.32 org.gnome.Sdk/x86_64/3.32;
-
-# Prepare for flatpak build
-printf "\nPreparing files for flatpak build\n";
-mkdir "source";
-cp -r ./librewolf ./source/librewolf;
-cp $SCRIPT_FOLDER/resources/flatpak/io.gitlab.LibreWolf.json ./io.gitlab.LibreWolf.json;
-
-# Build Repo and standalone bundle
-printf "\nBuilding flatpak repository and bundle\n";
-flatpak-builder --repo=librewolf-flatpak-repo build-dir io.gitlab.LibreWolf.json;
-flatpak build-bundle librewolf-flatpak-repo LibreWolf.flatpak io.gitlab.LibreWolf master;
-
-# move repo and bundle to build output here
-printf "\nMoving repository and bundle to build output folder\n";
-mv libreWolf-flatpak-repo build_output;
-mv LibreWolf.flatpak build_output;
-
-# Clean up flatpak files
-printf "\nCleaning up flatpak related files\n";
-rm -rf ./build-dir;
-rm -rf ./source;
-rm -rf ./.flatpak-builder;
-
-# Delete the extracted binary tarball folder
-printf "\nDeleting extracted binary tarball folder\n";
-rm -rf ./librewolf;
+SCRIPT_FOLDER=$(realpath $(dirname $0)) && printf "SCRIPT_FOLDER: $SCRIPT_FOLDER\n";
+REPOSITORY_FOLDER=$(realpath $SCRIPT_FOLDER/../../) && printf "REPOSITORY_FOLDER: $REPOSITORY_FOLDER\n";
+SOURCE_FOLDER=$SCRIPT_FOLDER/compile && printf "SOURCE_FOLDER: $SOURCE_FOLDER\n";
+SOURCE_CONTENT_FOLDER=$REPOSITORY_FOLDER/browser/common/source_files/ && printf "SOURCE_CONTENT_FOLDER: $SOURCE_CONTENT_FOLDER\n";
+BINARY_TARBALL=$SCRIPT_FOLDER/LibreWolf.tar.bz2 && printf "BINARY_TARBALL: $BINARY_TARBALL\n";
+
+$SCRIPT_FOLDER/binary_tarball/scripts/1_Install_Dependencies.sh;
+$SCRIPT_FOLDER/binary_tarball/scripts/2_Download_Source_Code.sh $SOURCE_FOLDER;
+$SCRIPT_FOLDER/binary_tarball/scripts/3_Configure_Source_Code.sh $SOURCE_FOLDER $SOURCE_CONTENT_FOLDER;
+$SCRIPT_FOLDER/binary_tarball/scripts/4_Build_Binary_Tarball.sh $SOURCE_FOLDER $BINARY_TARBALL;
bgstack15