From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- dom/media/webrtc/third_party_build/prep_repo.sh | 93 +++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 dom/media/webrtc/third_party_build/prep_repo.sh (limited to 'dom/media/webrtc/third_party_build/prep_repo.sh') diff --git a/dom/media/webrtc/third_party_build/prep_repo.sh b/dom/media/webrtc/third_party_build/prep_repo.sh new file mode 100644 index 0000000000..9f22f63253 --- /dev/null +++ b/dom/media/webrtc/third_party_build/prep_repo.sh @@ -0,0 +1,93 @@ +#!/bin/bash + +function show_error_msg() +{ + echo "*** ERROR *** $? line $1 $0 did not complete successfully!" + echo "$ERROR_HELP" +} +ERROR_HELP="" + +# Print an Error message if `set -eE` causes the script to exit due to a failed command +trap 'show_error_msg $LINENO' ERR + +source dom/media/webrtc/third_party_build/use_config_env.sh + +echo "MOZ_LIBWEBRTC_SRC: $MOZ_LIBWEBRTC_SRC" +echo "MOZ_LIBWEBRTC_BRANCH: $MOZ_LIBWEBRTC_BRANCH" +echo "MOZ_FASTFORWARD_BUG: $MOZ_FASTFORWARD_BUG" + +# After this point: +# * eE: All commands should succeed. +# * u: All variables should be defined before use. +# * o pipefail: All stages of all pipes should succeed. +set -eEuo pipefail + +# wipe resume_state for new run +rm -f $STATE_DIR/resume_state + +# If there is no cache file for the branch-head lookups done in +# update_default_config.sh, go ahead and copy our small pre-warmed +# version. +if [ ! -f $STATE_DIR/milestone.cache ]; then + cp $SCRIPT_DIR/pre-warmed-milestone.cache $STATE_DIR/milestone.cache +fi + +# fetch the github repro +./mach python $SCRIPT_DIR/fetch_github_repo.py \ + --repo-path $MOZ_LIBWEBRTC_SRC \ + --state-path $STATE_DIR + +CURRENT_DIR=`pwd` +cd $MOZ_LIBWEBRTC_SRC + +# clear any possible previous patches +rm -f *.patch + +# create a new work branch and "export" a new patch stack to rebase +# find the common commit between our upstream release branch and trunk +CHERRY_PICK_BASE=`git merge-base branch-heads/$MOZ_PRIOR_UPSTREAM_BRANCH_HEAD_NUM master` +echo "common commit: $CHERRY_PICK_BASE" + +# create a new branch at the common commit and checkout the new branch +ERROR_HELP=$" +Unable to create branch '$MOZ_LIBWEBRTC_BRANCH'. This probably means +that prep_repo.sh is being called on a repo that already has a patch +stack in progress. If you're sure you want to do this, the following +commands will allow the process to continue: + ( cd $MOZ_LIBWEBRTC_SRC && \\ + git checkout $MOZ_LIBWEBRTC_BRANCH && \\ + git checkout -b $MOZ_LIBWEBRTC_BRANCH-old && \\ + git branch -D $MOZ_LIBWEBRTC_BRANCH ) && \\ + bash $0 +" +git branch $MOZ_LIBWEBRTC_BRANCH $CHERRY_PICK_BASE +ERROR_HELP="" +git checkout $MOZ_LIBWEBRTC_BRANCH + +# make sure we're starting with a clean tmp directory +rm -f $TMP_DIR/*.patch $TMP_DIR/*.patch.bak + +# grab the patches for all the commits in chrome's release branch for libwebrtc +git format-patch -o $TMP_DIR -k $CHERRY_PICK_BASE..branch-heads/$MOZ_PRIOR_UPSTREAM_BRANCH_HEAD_NUM +# tweak the release branch commit summaries to show they were cherry picked +sed -i.bak -e "/^Subject: / s/^Subject: /Subject: (cherry-pick-branch-heads\/$MOZ_PRIOR_UPSTREAM_BRANCH_HEAD_NUM) /" $TMP_DIR/*.patch +git am $TMP_DIR/*.patch # applies to branch mozpatches +rm $TMP_DIR/*.patch $TMP_DIR/*.patch.bak + +# we don't use restore_patch_stack.py here because it would overwrite the patches +# from the previous release branch we just added in the above step. + +# grab all the moz patches and apply +git am $CURRENT_DIR/third_party/libwebrtc/moz-patch-stack/*.patch + +cd $CURRENT_DIR + +# cp all the no-op files to STATE_DIR +NO_OP_FILE_COUNT=`ls third_party/libwebrtc/moz-patch-stack \ + | grep "no-op-cherry-pick-msg" | wc -l | tr -d " " || true` +if [ "x$NO_OP_FILE_COUNT" != "x0" ]; then + cp $CURRENT_DIR/third_party/libwebrtc/moz-patch-stack/*.no-op-cherry-pick-msg \ + $STATE_DIR +fi + +bash $SCRIPT_DIR/verify_vendoring.sh || true -- cgit v1.2.3