MozillaFirefox/create-tar.sh
author Wolfgang Rosenauer <wr@rosenauer.org>
Tue, 07 Mar 2023 11:48:25 +0100
branchfirefox110
changeset 1184 1c3d3217d679
parent 1174 90e3d0cf8567
child 1185 da29365b0b2c
permissions -rwxr-xr-x
110.0.1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
262
b680975515e0 probably last working Firefox-on-xulrunner build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     1
#!/bin/bash
b680975515e0 probably last working Firefox-on-xulrunner build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     2
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
     3
function main() {
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
     4
  # Exit script on CTRL+C
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
     5
  trap "exit" INT
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
     6
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
     7
  if [ $# -ne 1 ]; then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
     8
    print_usage_and_exit
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
     9
  fi
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    10
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    11
  check_required_tools
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    12
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    13
  # Sourcing the given tar_stamps-file to have the variables available
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    14
  TAR_STAMP="$1"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    15
  source "$TAR_STAMP" || print_usage_and_exit
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    16
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    17
  set_internal_variables
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    18
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    19
  check_what_to_do_with_source_tarballs
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    20
  download_upstream_source_tarballs
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    21
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    22
  if [ -z ${SKIP_LOCALES+x} ]; then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    23
    check_what_to_do_with_locales_tarballs
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    24
    create_locales_tarballs
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    25
  else 
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    26
    printf "%-40s: User forced skip (SKIP_LOCALES set)\n" "locales"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    27
  fi
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    28
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    29
  clean_up_old_tarballs
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    30
}
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    31
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
    32
function print_usage_and_exit() {
1111
97a6da6d7e29 Firefox 69.0.3
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1098
diff changeset
    33
  echo "Usage: create-tar.sh tar_stamps"
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
    34
  echo ""
1111
97a6da6d7e29 Firefox 69.0.3
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1098
diff changeset
    35
  echo "Where tar_stamps should look like this:"
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
    36
  echo ""
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
    37
  cat << EOF
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
    38
# Node ID: 64ee63facd4ff96b3e8590cff559d7e97ac6b061
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
    39
PRODUCT="firefox" # "firefox" or "thunderbird"
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
    40
CHANNEL="esr60"
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
    41
VERSION="60.7.0"
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
    42
VERSION_SUFFIX="esr"
1111
97a6da6d7e29 Firefox 69.0.3
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1098
diff changeset
    43
RELEASE_TAG="" # Needs only to be set if no tar-ball can be downloaded
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
    44
PREV_VERSION="60.6.3" # Prev. version only needed for locales (leave empty to force l10n-generation)
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
    45
PREV_VERSION_SUFFIX="esr"
1119
4c5d44d40a03 Firefox 72.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1117
diff changeset
    46
#SKIP_LOCALES="" # Uncomment to skip l10n-generation
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
    47
EOF
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
    48
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    49
  exit 1
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    50
}
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    51
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    52
function check_required_tools() {
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    53
  # check required tools
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    54
  check_for_binary /usr/bin/hg "mercurial"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    55
  check_for_binary /usr/bin/jq "jq"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    56
  which python3 > /dev/null || exit 1
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    57
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    58
  # use parallel compression, if available
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    59
  compression='-J'
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    60
  pixz -h > /dev/null 2>&1
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    61
  if (($? != 127)); then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    62
    compression='-Ipixz'
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    63
  fi
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
    64
}
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
    65
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    66
function set_internal_variables() {
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    67
  # Internal variables
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    68
  BRANCH="releases/mozilla-$CHANNEL"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    69
  if [ "$PRODUCT" = "firefox" ]; then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    70
    FF_LOCALE_FILE="firefox-$VERSION/browser/locales/l10n-changesets.json"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    71
  else
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    72
    FF_LOCALE_FILE="thunderbird-$VERSION/browser/locales/l10n-changesets.json"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    73
    TB_LOCALE_FILE="thunderbird-$VERSION/comm/mail/locales/l10n-changesets.json"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    74
    L10N_STRING_PATTERNS="thunderbird-$VERSION/python/l10n/tbxchannel/l10n_merge.py"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    75
  fi
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
    76
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    77
  SOURCE_TARBALL="$PRODUCT-$VERSION$VERSION_SUFFIX.source.tar.xz"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    78
  PREV_SOURCE_TARBALL="$PRODUCT-$PREV_VERSION$PREV_VERSION_SUFFIX.source.tar.xz"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    79
  FTP_URL="https://ftp.mozilla.org/pub/$PRODUCT/releases/$VERSION$VERSION_SUFFIX/source"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    80
  FTP_CANDIDATES_BASE_URL="https://ftp.mozilla.org/pub/%s/candidates"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    81
  LOCALES_URL="https://product-details.mozilla.org/1.0/l10n"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    82
  PRODUCT_URL="https://product-details.mozilla.org/1.0"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    83
  ALREADY_EXTRACTED_LOCALES_FILE=0
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    84
}
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
    85
1114
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
    86
function get_ftp_candidates_url() {
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    87
  local CURR_PRODUCT="$1"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    88
  local VERSION_WITH_SUFFIX="$2"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    89
  printf "$FTP_CANDIDATES_BASE_URL/$VERSION_WITH_SUFFIX-candidates" "$CURR_PRODUCT"
1114
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
    90
}
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
    91
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
    92
function check_tarball_source () {
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
    93
  TARBALL=$1
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
    94
  # Print out what is going to be done:
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    95
  if [ -e "$TARBALL" ]; then
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
    96
      echo "Reuse existing file"
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    97
  elif wget --spider "$FTP_URL/$TARBALL" 2> /dev/null; then
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
    98
      echo "Download file"
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
    99
  else 
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   100
      local CANDIDATE_TARBALL_LOCATION=""
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   101
      CANDIDATE_TARBALL_LOCATION="$(printf "%s/%s/source/%s" "$(get_ftp_candidates_url "$PRODUCT" "$VERSION$VERSION_SUFFIX")" "$BUILD_ID" "$TARBALL" )"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   102
      if wget --spider "$CANDIDATE_TARBALL_LOCATION" 2> /dev/null; then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   103
          echo "Download UNRELEASED candidate"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   104
      else
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   105
          echo "Mercurial checkout"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   106
      fi
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   107
  fi
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   108
}
909
c6717354928b Firefox 46.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 906
diff changeset
   109
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   110
function ask_cont_abort_question() {
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   111
  while true; do
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   112
    read -r -p "$1 [(c)ontinue/(a)bort] " ca
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   113
    case $ca in
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   114
        [Cc]* ) return 0 ;;
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   115
        [Aa]* ) return 1 ;;
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   116
        * ) echo "Please answer c or a.";;
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   117
    esac
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   118
  done
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   119
}
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   120
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   121
function check_for_binary() {
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   122
  if ! test -x "$1"; then
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   123
    echo "$1 is missing: execute zypper in $2"
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   124
    exit 5
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   125
  fi
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   126
}
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   127
1114
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
   128
function get_source_stamp() {
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   129
  local CURR_BUILD_ID="$1"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   130
  local FTP_CANDIDATES_BASE_URL=$(get_ftp_candidates_url "$PRODUCT" "$VERSION$VERSION_SUFFIX")
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   131
  local FTP_CANDIDATES_JSON_SUFFIX="${CURR_BUILD_ID}/linux-x86_64/en-US/$PRODUCT-$VERSION$VERSION_SUFFIX.json"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   132
  local BUILD_JSON=$(curl --silent --fail "$FTP_CANDIDATES_BASE_URL/$FTP_CANDIDATES_JSON_SUFFIX") || return 1;
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   133
  local REV=$(echo "$BUILD_JSON" | jq .moz_source_stamp)
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   134
  local SOURCE_REPO=$(echo "$BUILD_JSON" | jq .moz_source_repo)
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   135
  local TIMESTAMP=$(echo "$BUILD_JSON" | jq .buildid)
1114
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
   136
  echo "Extending $TAR_STAMP with:"
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
   137
  echo "RELEASE_REPO=${SOURCE_REPO}"
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
   138
  echo "RELEASE_TAG=${REV}"
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
   139
  echo "RELEASE_TIMESTAMP=${TIMESTAMP}"
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
   140
  # We "remove and add" instead of "replace" in case the entries are not there yet
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
   141
  # Removing the old RELEASE_-tags
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
   142
  sed -i "/RELEASE_\(TAG\|REPO\|TIMESTAMP\)=.*/d" "$TAR_STAMP"
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
   143
  # Appending the new 
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
   144
  echo "RELEASE_REPO=$SOURCE_REPO" >> "$TAR_STAMP"
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
   145
  echo "RELEASE_TAG=$REV" >> "$TAR_STAMP"
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
   146
  echo "RELEASE_TIMESTAMP=$TIMESTAMP" >> "$TAR_STAMP"
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
   147
}
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   148
1114
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
   149
function get_build_number() {
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   150
  local LAST_FOUND=""
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   151
  local CURR_PRODUCT="$1"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   152
  local VERSION_WITH_SUFFIX="$2"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   153
  local CURR_BUILD_ID=""
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   154
  local CURR_FTP_BASE_URL=""
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   155
  CURR_BUILD_ID=$(curl --silent "$PRODUCT_URL/$CURR_PRODUCT.json" | jq -e '.["releases"] | .["'$CURR_PRODUCT-$VERSION_WITH_SUFFIX'"] | .["build_number"]')
1117
d6a688186de0 beta -> release
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1114
diff changeset
   156
d6a688186de0 beta -> release
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1114
diff changeset
   157
  # Slow fall-back
d6a688186de0 beta -> release
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1114
diff changeset
   158
  if [ $? -ne 0 ]; then
d6a688186de0 beta -> release
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1114
diff changeset
   159
      echo "Build number not found in product URL, falling back to slow FTP-parsing." 1>&2
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   160
      CURR_FTP_BASE_URL=$(get_ftp_candidates_url "$CURR_PRODUCT" "$VERSION_WITH_SUFFIX")
1117
d6a688186de0 beta -> release
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1114
diff changeset
   161
      # Unfortunately, locales-files are not associated to releases, but to builds.
d6a688186de0 beta -> release
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1114
diff changeset
   162
      # And since we don't know which build was the final build, we grep them all from
d6a688186de0 beta -> release
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1114
diff changeset
   163
      # the candidates-page, sort them and take the last one which should be the oldest
d6a688186de0 beta -> release
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1114
diff changeset
   164
      # Error only if not even the first one exists
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   165
      LAST_FOUND=$(curl --silent --fail "$CURR_FTP_BASE_URL/" | grep -o "build[0-9]*/" | sort | uniq | tail -n 1 | cut -d "/" -f 1)
1117
d6a688186de0 beta -> release
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1114
diff changeset
   166
  else
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   167
      LAST_FOUND="build$CURR_BUILD_ID"
1117
d6a688186de0 beta -> release
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1114
diff changeset
   168
  fi
1098
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1097
diff changeset
   169
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1097
diff changeset
   170
  if [ "$LAST_FOUND" != "" ]; then
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1097
diff changeset
   171
    echo "$LAST_FOUND"
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1097
diff changeset
   172
    return 0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1097
diff changeset
   173
  else
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   174
    echo "Error: Could not find build-number for $CURR_PRODUCT $VERSION_WITH_SUFFIX !"  1>&2
1114
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
   175
    return 1
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
   176
  fi
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
   177
}
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
   178
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
   179
function locales_get() {
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   180
  local CURR_PRODUCT="$1"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   181
  local TMP_VERSION="$2"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   182
  local CURR_BUILD_ID="$3"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   183
  # Make first letter of CURR_PRODUCT upper case
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   184
  CURR_PRODUCT_CAP="${CURR_PRODUCT^}"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   185
  URL_TO_CHECK="${LOCALES_URL}/${CURR_PRODUCT_CAP}-${TMP_VERSION}"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   186
  FINAL_URL="${URL_TO_CHECK}-${CURR_BUILD_ID}.json"
1114
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
   187
  if wget --quiet --spider "$FINAL_URL"; then
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
   188
    echo "$FINAL_URL"
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
   189
    return 0
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
   190
  else
1098
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1097
diff changeset
   191
    echo "Error: Could not find locales-file (json) for Firefox $TMP_VERSION !"  1>&2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1097
diff changeset
   192
    return 1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1097
diff changeset
   193
  fi
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   194
}
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   195
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   196
function locales_parse_file() {
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   197
  FILE="$1"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   198
  python3 -c "import json; import sys; \
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   199
             print('\n'.join(['{} {}'.format(key, value['revision']) \
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   200
                for key, value in sorted(json.load(sys.stdin).items())]));" < "$FILE" 
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   201
}
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   202
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   203
function locales_parse_url() {
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   204
  URL="$1"
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   205
  curl -s "$URL" | python3 -c "import json; import sys; \
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   206
             print('\n'.join(['{} {}'.format(key, value['changeset']) \
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   207
                for key, value in sorted(json.load(sys.stdin)['locales'].items())]));"
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   208
}
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   209
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   210
function extract_locales_file() {
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   211
    if [ $ALREADY_EXTRACTED_LOCALES_FILE -ne 1 ]; then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   212
      # still need to extract the locale information from the archive
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   213
      echo "extract locale changesets"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   214
      if [ "$PRODUCT" = "thunderbird" ]; then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   215
        tar -xf "$SOURCE_TARBALL" "$FF_LOCALE_FILE" "$TB_LOCALE_FILE" "$L10N_STRING_PATTERNS"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   216
      else
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   217
        tar -xf "$SOURCE_TARBALL" "$FF_LOCALE_FILE"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   218
      fi
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   219
      ALREADY_EXTRACTED_LOCALES_FILE=1
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   220
    else 
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   221
      echo "Skipping locale changeset extraction, as it was already done."
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   222
    fi
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   223
}
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   224
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   225
function locales_unchanged() {
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   226
  local CURR_PRODUCT="$1"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   227
  local CURR_BUILD_ID="$2"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   228
  local PREV_BUILD_ID=$(get_build_number "$CURR_PRODUCT" "$PREV_VERSION$PREV_VERSION_SUFFIX")
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   229
  # If no json-file for one of the versions can be found, we say "they changed"
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   230
  prev_url=$(locales_get "$CURR_PRODUCT" "$PREV_VERSION$PREV_VERSION_SUFFIX" "$PREV_BUILD_ID") || return 1
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   231
  prev_content=$(locales_parse_url "$prev_url") || exit 1
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   232
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   233
  curr_url=$(locales_get "$CURR_PRODUCT" "$VERSION$VERSION_SUFFIX" "$CURR_BUILD_ID")
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   234
  if [ $? -ne 0 ]; then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   235
    # We did not find a locales file upstream on the servers
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   236
    if [ -e "$SOURCE_TARBALL" ]; then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   237
        # We can find out what the locales are, by extracting the json-file from the tar-ball
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   238
        # instead of getting it from the server
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   239
        extract_locales_file || return 1
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   240
        curr_content=$(locales_parse_file "$FF_LOCALE_FILE") || exit 1
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   241
      else 
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   242
        # We can't know what the locales are in the current version
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   243
        return 1
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   244
      fi
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   245
  else
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   246
    curr_content=$(locales_parse_url "$curr_url") || exit 1
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   247
  fi
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   248
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   249
  diff -y --suppress-common-lines -d <(echo "$prev_content") <(echo "$curr_content")
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   250
}
262
b680975515e0 probably last working Firefox-on-xulrunner build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   251
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   252
function get_locales_directories() {
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   253
  pattern="$1"
1032
8220ea23b47d remove obsolete patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1031
diff changeset
   254
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   255
  # This file contains a list of directories, upstream uses to build locales
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   256
  # If it is there, use it. If not, default to all FF + 3 TB-dirs.
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   257
  if [ -e "$L10N_STRING_PATTERNS" ]; then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   258
    python3 -c "import os; import sys; \
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   259
               sys.path.append(os.path.dirname(\"$L10N_STRING_PATTERNS\")); \
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   260
               from l10n_merge import $pattern; \
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   261
               print(\" \".join([p.strip('*') for p in $pattern]));"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   262
  else
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   263
    if [ "$pattern" = "GECKO_STRINGS_PATTERNS" ]; then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   264
      # Default of Firefox: Take all
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   265
      echo "{lang}/"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   266
    else
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   267
      # Default of Thunderbird: Take those 3 dirs
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   268
      echo "{lang}/calendar/" "{lang}/chat/" "{lang}/mail/"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   269
    fi
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   270
  fi
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   271
}
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   272
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   273
function create_and_copy_locales() {
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   274
    locale="$1"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   275
    source_base="$2"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   276
    source_template="$3"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   277
    final_dest="$4"
990
0d76004e9fa4 support parallel compression if available
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 986
diff changeset
   278
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   279
    # Replace {lang} with the actual language-basedir
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   280
    for template in $source_template; do
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   281
      locale_source=$(echo "$template" | sed "s|{lang}|./$source_base/$locale|g")
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   282
      locale_dest=$(echo "$template" | sed "s|{lang}|./$final_dest/$locale|g")
1114
572ec48f3fe8 Firefox 71.0b11
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1113
diff changeset
   283
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   284
      # Create intermediary folders
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   285
      for destdir in $locale_dest; do
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   286
        mkdir -p "$destdir"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   287
      done
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   288
    
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   289
      # Copy over FF-files
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   290
      cp -r "$locale_source"/* "$locale_dest"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   291
    done
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   292
}
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   293
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   294
function check_what_to_do_with_source_tarballs() {
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   295
  # Get ID 
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   296
  BUILD_ID=$(get_build_number "$PRODUCT" "$VERSION$VERSION_SUFFIX")
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   297
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   298
  # Check what is going to be done and ask for consent
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   299
  for ff in $SOURCE_TARBALL $SOURCE_TARBALL.asc; do
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   300
    printf "%-40s: %s\n" "$ff" "$(check_tarball_source $ff)"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   301
  done
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   302
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   303
  ask_cont_abort_question "Is this ok?" || exit 0
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   304
}
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   305
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   306
function check_what_to_do_with_locales_tarballs() {
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   307
  LOCALES_CHANGED=1
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   308
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   309
  extract_locales_file
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   310
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   311
  if [ "$PREV_VERSION" != "" ]; then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   312
    # If we have a previous version, check either FF or (TB and FF)
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   313
    if [ "$PRODUCT" = "firefox" ]; then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   314
      locales_unchanged "$PRODUCT" "$BUILD_ID"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   315
    else
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   316
      FF_BUILD_ID=$(get_build_number "firefox" "$VERSION$VERSION_SUFFIX")
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   317
      locales_unchanged "$PRODUCT" "$BUILD_ID" && locales_unchanged "firefox" "$FF_BUILD_ID"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   318
    fi
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   319
    LOCALES_CHANGED=$?
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   320
  fi
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   321
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   322
  # New line for better visibility
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   323
  echo ""
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   324
  if [ $LOCALES_CHANGED -eq 1 ]; then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   325
    printf "%-40s: Need to download.\n" "locales"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   326
    ask_cont_abort_question "Is this ok?" || exit 0
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   327
  else
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   328
    printf "%-40s: Did not change. Skipping.\n" "locales"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   329
  fi
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   330
}
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   331
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   332
function download_release_or_candidate_file() {
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   333
  local upstream_file="$1"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   334
  if [ -e "$upstream_file" ]; then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   335
    return;
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   336
  fi
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   337
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   338
  if ! wget --quiet --show-progress --progress=bar "$FTP_URL/$upstream_file"; then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   339
      local CANDIDATE_TARBALL_LOCATION=""
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   340
      CANDIDATE_TARBALL_LOCATION="$(printf "%s/%s/source/%s" "$(get_ftp_candidates_url "$PRODUCT" "$VERSION$VERSION_SUFFIX")" "$BUILD_ID" "$upstream_file" )"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   341
      wget --quiet --show-progress --progress=bar "$CANDIDATE_TARBALL_LOCATION"
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   342
  fi
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   343
}
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   344
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   345
function download_upstream_source_tarballs() {
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   346
  # Try to download tar-ball from officiall mozilla-mirror
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   347
  download_release_or_candidate_file "$SOURCE_TARBALL"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   348
  download_release_or_candidate_file "$SOURCE_TARBALL.asc"
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   349
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   350
  # we might have an upstream archive already and can skip the checkout
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   351
  if [ -e "$SOURCE_TARBALL" ]; then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   352
    get_source_stamp "$BUILD_ID"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   353
  else
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   354
    # We are working on a version that is not yet published on the mozilla mirror
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   355
    # so we have to actually check out the repo
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   356
    clone_and_repackage_sources
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   357
  fi
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   358
}
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   359
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   360
function clone_and_repackage_sources() {
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   361
  if [ -d "$PRODUCT-$VERSION" ]; then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   362
    pushd "$PRODUCT-$VERSION" || exit 1
1056
90e1f32cf034 several changes to make upstream tarballs a good neighbour for locale fetching and HG checkouts
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1053
diff changeset
   363
    _repourl=$(hg paths)
90e1f32cf034 several changes to make upstream tarballs a good neighbour for locale fetching and HG checkouts
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1053
diff changeset
   364
    case "$_repourl" in
90e1f32cf034 several changes to make upstream tarballs a good neighbour for locale fetching and HG checkouts
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1053
diff changeset
   365
      *$BRANCH*)
90e1f32cf034 several changes to make upstream tarballs a good neighbour for locale fetching and HG checkouts
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1053
diff changeset
   366
        echo "updating previous tree"
90e1f32cf034 several changes to make upstream tarballs a good neighbour for locale fetching and HG checkouts
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1053
diff changeset
   367
        hg pull
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   368
        popd || exit 1
1056
90e1f32cf034 several changes to make upstream tarballs a good neighbour for locale fetching and HG checkouts
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1053
diff changeset
   369
        ;;
90e1f32cf034 several changes to make upstream tarballs a good neighbour for locale fetching and HG checkouts
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1053
diff changeset
   370
      * )
90e1f32cf034 several changes to make upstream tarballs a good neighbour for locale fetching and HG checkouts
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1053
diff changeset
   371
        echo "removing obsolete tree"
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   372
        popd || exit 1
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   373
        rm -rf "$PRODUCT-$VERSION"
1056
90e1f32cf034 several changes to make upstream tarballs a good neighbour for locale fetching and HG checkouts
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1053
diff changeset
   374
        ;;
90e1f32cf034 several changes to make upstream tarballs a good neighbour for locale fetching and HG checkouts
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1053
diff changeset
   375
    esac
90e1f32cf034 several changes to make upstream tarballs a good neighbour for locale fetching and HG checkouts
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1053
diff changeset
   376
  fi
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   377
  if [ ! -d "$PRODUCT-$VERSION" ]; then
1056
90e1f32cf034 several changes to make upstream tarballs a good neighbour for locale fetching and HG checkouts
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1053
diff changeset
   378
    echo "cloning new $BRANCH..."
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   379
    hg clone "https://hg.mozilla.org/$BRANCH $PRODUCT-$VERSION"
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   380
    if [ "$PRODUCT" = "thunderbird" ]; then
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   381
      hg clone "https://hg.mozilla.org/releases/comm-$CHANNEL" "$PRODUCT-$VERSION/comm"
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   382
    fi
1056
90e1f32cf034 several changes to make upstream tarballs a good neighbour for locale fetching and HG checkouts
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1053
diff changeset
   383
  fi
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   384
  pushd "$PRODUCT-$VERSION" || exit 1
1111
97a6da6d7e29 Firefox 69.0.3
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1098
diff changeset
   385
97a6da6d7e29 Firefox 69.0.3
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1098
diff changeset
   386
  # parse out the Firefox-release tag for this Thunderbird-checkout
97a6da6d7e29 Firefox 69.0.3
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1098
diff changeset
   387
  if [ "$PRODUCT" = "thunderbird" ]; then
97a6da6d7e29 Firefox 69.0.3
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1098
diff changeset
   388
    FF_RELEASE_TAG=$(grep ^GECKO_HEAD_REV ./comm/.gecko_rev.yml | awk -F ' ' '{print $2}') || exit 1
97a6da6d7e29 Firefox 69.0.3
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1098
diff changeset
   389
    echo "Parsed Firefox base ID from .gecko_rev.yml: $FF_RELEASE_TAG"
97a6da6d7e29 Firefox 69.0.3
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1098
diff changeset
   390
  else
97a6da6d7e29 Firefox 69.0.3
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1098
diff changeset
   391
    FF_RELEASE_TAG="$RELEASE_TAG"
97a6da6d7e29 Firefox 69.0.3
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1098
diff changeset
   392
  fi
97a6da6d7e29 Firefox 69.0.3
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1098
diff changeset
   393
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   394
  hg update --check "$FF_RELEASE_TAG"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   395
  [ "$FF_RELEASE_TAG" == "default" ] || hg update -r "$FF_RELEASE_TAG"
1056
90e1f32cf034 several changes to make upstream tarballs a good neighbour for locale fetching and HG checkouts
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1053
diff changeset
   396
  # get repo and source stamp
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   397
  local REV=$(hg -R . parent --template="{node|short}\n")
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   398
  local SOURCE_REPO=$(hg showconfig paths.default 2>/dev/null | head -n1 | sed -e "s/^ssh:/https:/")
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   399
  local TIMESTAMP=$(date +%Y%m%d%H%M%S)
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   400
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   401
  if [ "$PRODUCT" = "thunderbird" ]; then
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   402
    pushd comm || exit 1
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   403
    hg update --check "$RELEASE_TAG"
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   404
    popd || exit 1
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   405
    rm -rf thunderbird-"${VERSION}"/{,comm/}other-licenses/7zstub
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   406
  fi
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   407
  popd || exit 1
1056
90e1f32cf034 several changes to make upstream tarballs a good neighbour for locale fetching and HG checkouts
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1053
diff changeset
   408
1117
d6a688186de0 beta -> release
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1114
diff changeset
   409
  echo "Extending $TAR_STAMP with:"
d6a688186de0 beta -> release
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1114
diff changeset
   410
  echo "RELEASE_REPO=${SOURCE_REPO}"
d6a688186de0 beta -> release
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1114
diff changeset
   411
  echo "RELEASE_TAG=${REV}"
d6a688186de0 beta -> release
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1114
diff changeset
   412
  echo "RELEASE_TIMESTAMP=${TIMESTAMP}"
d6a688186de0 beta -> release
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1114
diff changeset
   413
d6a688186de0 beta -> release
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1114
diff changeset
   414
  # We "remove and add" instead of "replace" in case the entries are not there yet
d6a688186de0 beta -> release
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1114
diff changeset
   415
  # Removing the old RELEASE_-tags
d6a688186de0 beta -> release
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1114
diff changeset
   416
  sed -i "/RELEASE_\(TAG\|REPO\|TIMESTAMP\)=.*/d" "$TAR_STAMP"
d6a688186de0 beta -> release
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1114
diff changeset
   417
  # Appending the new 
d6a688186de0 beta -> release
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1114
diff changeset
   418
  echo "RELEASE_REPO=$SOURCE_REPO" >> "$TAR_STAMP"
d6a688186de0 beta -> release
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1114
diff changeset
   419
  echo "RELEASE_TAG=$REV" >> "$TAR_STAMP"
d6a688186de0 beta -> release
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1114
diff changeset
   420
  echo "RELEASE_TIMESTAMP=$TIMESTAMP" >> "$TAR_STAMP"
d6a688186de0 beta -> release
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1114
diff changeset
   421
1056
90e1f32cf034 several changes to make upstream tarballs a good neighbour for locale fetching and HG checkouts
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1053
diff changeset
   422
  echo "creating archive..."
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   423
  tar "$compression" -cf "$PRODUCT-$VERSION$VERSION_SUFFIX.source.tar.xz" --exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=CVS "$PRODUCT-$VERSION"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   424
  ALREADY_EXTRACTED_LOCALES_FILE=1
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   425
}
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   426
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   427
function create_locales_tarballs() {
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   428
  if [ ! -z ${SKIP_LOCALES+x} ]; then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   429
    echo "Skipping locales-creation."
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   430
    exit 0
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   431
  fi
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   432
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   433
  if [ "$LOCALES_CHANGED" -ne 0 ]; then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   434
    clone_and_repackage_locales
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   435
  elif [ -f "l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz" ]; then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   436
    # Locales did not change, but the old tar-ball is in this directory
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   437
    # Simply rename it:
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   438
    echo "Moving l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz to l10n-$VERSION$VERSION_SUFFIX.tar.xz"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   439
    mv "l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz" "l10n-$VERSION$VERSION_SUFFIX.tar.xz"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   440
  fi
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   441
}
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   442
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   443
function clone_and_repackage_locales() {
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   444
  # l10n
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   445
  FINAL_L10N_BASE="l10n"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   446
  FF_L10N_BASE="l10n" # Only change this in TB-builds to a separate dir
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   447
  TB_L10N_BASE="l10n_tb"
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   448
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   449
  # If we are doing Thunderbird, we'll have to checkout both TB and FF l10n-repos
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   450
  # Thunderbird has one single mono-repo, FF has one for each language
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   451
  if [ "$PRODUCT" = "thunderbird" ]; then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   452
    echo "Fetching Thunderbird locales..."
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   453
    if [ -d "$TB_L10N_BASE/.hg" ]; then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   454
      pushd "$TB_L10N_BASE/" || exit 1
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   455
      hg pull || exit 1
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   456
      popd || exit 1
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   457
    else
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   458
      hg clone "https://hg.mozilla.org/projects/comm-l10n/" "$TB_L10N_BASE/" || exit 1
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   459
    fi
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   460
    # Just using the first entry here, as all languages have the same changeset
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   461
    tb_changeset=$(jq -r 'to_entries[0]| "\(.key) \(.value|.revision)"' "$TB_LOCALE_FILE" | cut -d " " -f 2)
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   462
    [ "$RELEASE_TAG" == "default" ] || hg -R "$TB_L10N_BASE/" up -C -r "$tb_changeset" || exit 1
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   463
    FF_L10N_BASE="l10n_ff"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   464
  fi
262
b680975515e0 probably last working Firefox-on-xulrunner build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   465
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   466
  test ! -d $FF_L10N_BASE && mkdir $FF_L10N_BASE
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   467
  # No-op, if we are building FF:
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   468
  test ! -d $FINAL_L10N_BASE && mkdir $FINAL_L10N_BASE
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   469
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   470
  # This is only relevant for Thunderbird-builds
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   471
  # Here, the relevant directories we need to copy from FF and from TB
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   472
  # are specified in a python-file in the tarball
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   473
  # Is of form '{lang}/Foo/bar/ {lang}/Baz/bar/ ..'
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   474
  ff_locale_template=$(get_locales_directories "GECKO_STRINGS_PATTERNS")
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   475
  tb_locale_template=$(get_locales_directories "COMM_STRINGS_PATTERNS")
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   476
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   477
  echo "Fetching Browser locales..."
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   478
  jq -r 'to_entries[]| "\(.key) \(.value|.revision)"' "$FF_LOCALE_FILE" | \
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   479
    while read -r locale changeset ; do
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   480
      case $locale in
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   481
        ja-JP-mac|en-US)
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   482
          ;;
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   483
        *)
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   484
          echo "reading changeset information for $locale"
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   485
          echo "fetching $locale changeset $changeset ..."
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   486
          if [ -d "$FF_L10N_BASE/$locale/.hg" ]; then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   487
            pushd "$FF_L10N_BASE/$locale" || exit 1
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   488
            hg pull || exit 1
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   489
            popd || exit 1
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   490
          else
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   491
            hg clone "https://hg.mozilla.org/l10n-central/$locale" "$FF_L10N_BASE/$locale" || exit 1
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   492
          fi
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   493
          [ "$RELEASE_TAG" == "default" ] || hg -R "$FF_L10N_BASE/$locale" up -C -r "$changeset" || exit 1
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   494
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   495
          # If we are doing TB, we have to merge both l10n-repos
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   496
          if [ "$PRODUCT" = "thunderbird" ] && test -d "$TB_L10N_BASE/$locale/" ; then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   497
            create_and_copy_locales "$locale" "$FF_L10N_BASE" "$ff_locale_template" "$FINAL_L10N_BASE"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   498
            create_and_copy_locales "$locale" "$TB_L10N_BASE" "$tb_locale_template" "$FINAL_L10N_BASE"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   499
          fi
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   500
          ;;
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   501
      esac
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   502
    done
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   503
  echo "creating l10n archive..."
1098
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1097
diff changeset
   504
  if [ "$PRODUCT" = "thunderbird" ]; then
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   505
    TB_TAR_FLAGS="--exclude=suite"
1098
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1097
diff changeset
   506
  fi
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   507
  tar "$compression" -cf "l10n-$VERSION$VERSION_SUFFIX.tar.xz" \
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1096
diff changeset
   508
  --exclude=.hgtags --exclude=.hgignore --exclude=.hg \
1184
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   509
  "$TB_TAR_FLAGS" \
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   510
  "$FINAL_L10N_BASE"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   511
}
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   512
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   513
function clean_up_old_tarballs() {
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   514
  if [ -e "$PREV_SOURCE_TARBALL" ]; then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   515
      echo ""
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   516
      echo "Deleting old sources tarball $PREV_SOURCE_TARBALL"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   517
      ask_cont_abort_question "Is this ok?" || exit 0
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   518
      rm "$PREV_SOURCE_TARBALL"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   519
      rm "$PREV_SOURCE_TARBALL.asc"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   520
      # if old and new lang-tarball are there, delete the old one
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   521
      if [ -f "l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz" ] && [ -f "l10n-$VERSION$VERSION_SUFFIX.tar.xz" ]; then
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   522
          rm "l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz"
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   523
      fi
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   524
  fi
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   525
}
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   526
1c3d3217d679 110.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1174
diff changeset
   527
main "$@"