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 --- tools/update-packaging/test/buildrefmars.sh | 27 +++ tools/update-packaging/test/common.sh | 202 +++++++++++++++++++++ tools/update-packaging/test/diffmar.sh | 48 +++++ .../Contents/MacOS/diff-patch-larger-than-file.txt | 1 + .../test/from-mac/Contents/MacOS/force.txt | 1 + .../test/from-mac/Contents/MacOS/removed.txt | 1 + .../test/from-mac/Contents/MacOS/same.bin | Bin 0 -> 200 bytes .../test/from-mac/Contents/MacOS/update.manifest | 1 + .../MacOS/{foodir/diff-patch-larger-than-file.txt | 1 + .../from-mac/Contents/MacOS/{foodir/readme.txt | 1 + .../from-mac/Contents/MacOS/{foodir/removed.txt | 1 + .../test/from-mac/Contents/MacOS/{foodir/same.bin | Bin 0 -> 200 bytes .../test/from-mac/Contents/MacOS/{foodir/same.txt | 1 + .../Contents/MacOS/{foodir/update.manifest | 1 + .../from-mac/Contents/Resources/application.ini | 5 + .../from-mac/Contents/Resources/chrome.manifest | 0 .../diff/diff-patch-larger-than-file.txt | 1 + .../diff/diff-patch-larger-than-file.txt | 1 + .../test/from-mac/Contents/Resources/precomplete | 26 +++ .../test/from-mac/Contents/Resources/readme.txt | 2 + .../test/from-mac/Contents/Resources/removed-files | 8 + .../test/from-mac/Contents/Resources/removed.txt | 1 + .../test/from-mac/Contents/Resources/same.txt | 1 + .../diff/diff-patch-larger-than-file.txt | 1 + .../Contents/Resources/update-settings.ini | 1 + .../Contents/Resources/{foodir/channel-prefs.js | 1 + .../from-mac/Contents/Resources/{foodir/force.txt | 1 + tools/update-packaging/test/from/application.ini | 5 + tools/update-packaging/test/from/chrome.manifest | 0 .../test/from/diff-patch-larger-than-file.txt | 1 + .../diff/diff-patch-larger-than-file.txt | 1 + .../diff/diff-patch-larger-than-file.txt | 1 + tools/update-packaging/test/from/force.txt | 1 + tools/update-packaging/test/from/precomplete | 23 +++ tools/update-packaging/test/from/readme.txt | 2 + tools/update-packaging/test/from/removed-files | 8 + tools/update-packaging/test/from/removed.txt | 1 + tools/update-packaging/test/from/same.bin | Bin 0 -> 200 bytes tools/update-packaging/test/from/same.txt | 1 + .../diff/diff-patch-larger-than-file.txt | 1 + .../update-packaging/test/from/update-settings.ini | 1 + tools/update-packaging/test/from/update.manifest | 1 + .../test/from/{foodir/channel-prefs.js | 1 + .../from/{foodir/diff-patch-larger-than-file.txt | 1 + tools/update-packaging/test/from/{foodir/force.txt | 1 + .../update-packaging/test/from/{foodir/readme.txt | 1 + .../update-packaging/test/from/{foodir/removed.txt | 1 + tools/update-packaging/test/from/{foodir/same.bin | Bin 0 -> 200 bytes tools/update-packaging/test/from/{foodir/same.txt | 1 + .../test/from/{foodir/update.manifest | 1 + tools/update-packaging/test/make_full_update.sh | 112 ++++++++++++ tools/update-packaging/test/runtests.sh | 12 ++ tools/update-packaging/test/testpatchfile.txt | 2 + .../test/to-mac/Contents/MacOS/addFeedPrefs.js | 1 + .../test/to-mac/Contents/MacOS/added.txt | 1 + .../Contents/MacOS/diff-patch-larger-than-file.bin | Bin 0 -> 200 bytes .../Contents/MacOS/diff-patch-larger-than-file.txt | 1 + .../test/to-mac/Contents/MacOS/force.txt | 1 + .../test/to-mac/Contents/MacOS/same.bin | Bin 0 -> 200 bytes .../test/to-mac/Contents/MacOS/update.manifest | 1 + .../test/to-mac/Contents/MacOS/{foodir/added.txt | 1 + .../MacOS/{foodir/diff-patch-larger-than-file.txt | 1 + .../test/to-mac/Contents/MacOS/{foodir/readme.txt | 1 + .../test/to-mac/Contents/MacOS/{foodir/same.bin | Bin 0 -> 200 bytes .../test/to-mac/Contents/MacOS/{foodir/same.txt | 1 + .../to-mac/Contents/MacOS/{foodir/update.manifest | 1 + .../test/to-mac/Contents/Resources/application.ini | 5 + .../test/to-mac/Contents/Resources/chrome.manifest | 0 .../distribution/extensions/added/file.txt | 1 + .../diff/diff-patch-larger-than-file.txt | 1 + .../Contents/Resources/extensions/added/file.txt | 1 + .../diff/diff-patch-larger-than-file.txt | 1 + .../test/to-mac/Contents/Resources/precomplete | 33 ++++ .../test/to-mac/Contents/Resources/readme.txt | 1 + .../test/to-mac/Contents/Resources/removed-files | 14 ++ .../test/to-mac/Contents/Resources/same.txt | 1 + .../Resources/searchplugins/added/file.txt | 1 + .../diff/diff-patch-larger-than-file.txt | 1 + .../to-mac/Contents/Resources/update-settings.ini | 1 + .../Contents/Resources/{foodir/channel-prefs.js | 1 + .../to-mac/Contents/Resources/{foodir/force.txt | 1 + tools/update-packaging/test/to/addFeedPrefs.js | 1 + tools/update-packaging/test/to/added.txt | 1 + tools/update-packaging/test/to/application.ini | 5 + tools/update-packaging/test/to/chrome.manifest | 0 .../test/to/diff-patch-larger-than-file.bin | Bin 0 -> 200 bytes .../test/to/diff-patch-larger-than-file.txt | 1 + .../test/to/distribution/extensions/added/file.txt | 1 + .../diff/diff-patch-larger-than-file.txt | 1 + .../test/to/extensions/added/file.txt | 1 + .../diff/diff-patch-larger-than-file.txt | 1 + tools/update-packaging/test/to/force.txt | 1 + tools/update-packaging/test/to/precomplete | 30 +++ tools/update-packaging/test/to/readme.txt | 1 + tools/update-packaging/test/to/removed-files | 14 ++ tools/update-packaging/test/to/same.bin | Bin 0 -> 200 bytes tools/update-packaging/test/to/same.txt | 1 + .../test/to/searchplugins/added/file.txt | 1 + .../diff/diff-patch-larger-than-file.txt | 1 + tools/update-packaging/test/to/update-settings.ini | 1 + tools/update-packaging/test/to/update.manifest | 1 + tools/update-packaging/test/to/{foodir/added.txt | 1 + .../test/to/{foodir/channel-prefs.js | 1 + .../to/{foodir/diff-patch-larger-than-file.txt | 1 + tools/update-packaging/test/to/{foodir/force.txt | 1 + tools/update-packaging/test/to/{foodir/readme.txt | 1 + tools/update-packaging/test/to/{foodir/same.bin | Bin 0 -> 200 bytes tools/update-packaging/test/to/{foodir/same.txt | 1 + .../test/to/{foodir/update.manifest | 1 + 109 files changed, 658 insertions(+) create mode 100755 tools/update-packaging/test/buildrefmars.sh create mode 100755 tools/update-packaging/test/common.sh create mode 100755 tools/update-packaging/test/diffmar.sh create mode 100644 tools/update-packaging/test/from-mac/Contents/MacOS/diff-patch-larger-than-file.txt create mode 100644 tools/update-packaging/test/from-mac/Contents/MacOS/force.txt create mode 100644 tools/update-packaging/test/from-mac/Contents/MacOS/removed.txt create mode 100644 tools/update-packaging/test/from-mac/Contents/MacOS/same.bin create mode 100644 tools/update-packaging/test/from-mac/Contents/MacOS/update.manifest create mode 100644 tools/update-packaging/test/from-mac/Contents/MacOS/{foodir/diff-patch-larger-than-file.txt create mode 100644 tools/update-packaging/test/from-mac/Contents/MacOS/{foodir/readme.txt create mode 100644 tools/update-packaging/test/from-mac/Contents/MacOS/{foodir/removed.txt create mode 100644 tools/update-packaging/test/from-mac/Contents/MacOS/{foodir/same.bin create mode 100644 tools/update-packaging/test/from-mac/Contents/MacOS/{foodir/same.txt create mode 100644 tools/update-packaging/test/from-mac/Contents/MacOS/{foodir/update.manifest create mode 100644 tools/update-packaging/test/from-mac/Contents/Resources/application.ini create mode 100644 tools/update-packaging/test/from-mac/Contents/Resources/chrome.manifest create mode 100644 tools/update-packaging/test/from-mac/Contents/Resources/distribution/extensions/diff/diff-patch-larger-than-file.txt create mode 100644 tools/update-packaging/test/from-mac/Contents/Resources/extensions/diff/diff-patch-larger-than-file.txt create mode 100644 tools/update-packaging/test/from-mac/Contents/Resources/precomplete create mode 100644 tools/update-packaging/test/from-mac/Contents/Resources/readme.txt create mode 100644 tools/update-packaging/test/from-mac/Contents/Resources/removed-files create mode 100644 tools/update-packaging/test/from-mac/Contents/Resources/removed.txt create mode 100644 tools/update-packaging/test/from-mac/Contents/Resources/same.txt create mode 100644 tools/update-packaging/test/from-mac/Contents/Resources/searchplugins/diff/diff-patch-larger-than-file.txt create mode 100644 tools/update-packaging/test/from-mac/Contents/Resources/update-settings.ini create mode 100644 tools/update-packaging/test/from-mac/Contents/Resources/{foodir/channel-prefs.js create mode 100644 tools/update-packaging/test/from-mac/Contents/Resources/{foodir/force.txt create mode 100644 tools/update-packaging/test/from/application.ini create mode 100644 tools/update-packaging/test/from/chrome.manifest create mode 100644 tools/update-packaging/test/from/diff-patch-larger-than-file.txt create mode 100644 tools/update-packaging/test/from/distribution/extensions/diff/diff-patch-larger-than-file.txt create mode 100644 tools/update-packaging/test/from/extensions/diff/diff-patch-larger-than-file.txt create mode 100644 tools/update-packaging/test/from/force.txt create mode 100644 tools/update-packaging/test/from/precomplete create mode 100644 tools/update-packaging/test/from/readme.txt create mode 100644 tools/update-packaging/test/from/removed-files create mode 100644 tools/update-packaging/test/from/removed.txt create mode 100644 tools/update-packaging/test/from/same.bin create mode 100644 tools/update-packaging/test/from/same.txt create mode 100644 tools/update-packaging/test/from/searchplugins/diff/diff-patch-larger-than-file.txt create mode 100644 tools/update-packaging/test/from/update-settings.ini create mode 100644 tools/update-packaging/test/from/update.manifest create mode 100644 tools/update-packaging/test/from/{foodir/channel-prefs.js create mode 100644 tools/update-packaging/test/from/{foodir/diff-patch-larger-than-file.txt create mode 100644 tools/update-packaging/test/from/{foodir/force.txt create mode 100644 tools/update-packaging/test/from/{foodir/readme.txt create mode 100644 tools/update-packaging/test/from/{foodir/removed.txt create mode 100644 tools/update-packaging/test/from/{foodir/same.bin create mode 100644 tools/update-packaging/test/from/{foodir/same.txt create mode 100644 tools/update-packaging/test/from/{foodir/update.manifest create mode 100755 tools/update-packaging/test/make_full_update.sh create mode 100755 tools/update-packaging/test/runtests.sh create mode 100644 tools/update-packaging/test/testpatchfile.txt create mode 100644 tools/update-packaging/test/to-mac/Contents/MacOS/addFeedPrefs.js create mode 100644 tools/update-packaging/test/to-mac/Contents/MacOS/added.txt create mode 100644 tools/update-packaging/test/to-mac/Contents/MacOS/diff-patch-larger-than-file.bin create mode 100644 tools/update-packaging/test/to-mac/Contents/MacOS/diff-patch-larger-than-file.txt create mode 100644 tools/update-packaging/test/to-mac/Contents/MacOS/force.txt create mode 100644 tools/update-packaging/test/to-mac/Contents/MacOS/same.bin create mode 100644 tools/update-packaging/test/to-mac/Contents/MacOS/update.manifest create mode 100644 tools/update-packaging/test/to-mac/Contents/MacOS/{foodir/added.txt create mode 100644 tools/update-packaging/test/to-mac/Contents/MacOS/{foodir/diff-patch-larger-than-file.txt create mode 100644 tools/update-packaging/test/to-mac/Contents/MacOS/{foodir/readme.txt create mode 100644 tools/update-packaging/test/to-mac/Contents/MacOS/{foodir/same.bin create mode 100644 tools/update-packaging/test/to-mac/Contents/MacOS/{foodir/same.txt create mode 100644 tools/update-packaging/test/to-mac/Contents/MacOS/{foodir/update.manifest create mode 100644 tools/update-packaging/test/to-mac/Contents/Resources/application.ini create mode 100644 tools/update-packaging/test/to-mac/Contents/Resources/chrome.manifest create mode 100644 tools/update-packaging/test/to-mac/Contents/Resources/distribution/extensions/added/file.txt create mode 100644 tools/update-packaging/test/to-mac/Contents/Resources/distribution/extensions/diff/diff-patch-larger-than-file.txt create mode 100644 tools/update-packaging/test/to-mac/Contents/Resources/extensions/added/file.txt create mode 100644 tools/update-packaging/test/to-mac/Contents/Resources/extensions/diff/diff-patch-larger-than-file.txt create mode 100644 tools/update-packaging/test/to-mac/Contents/Resources/precomplete create mode 100644 tools/update-packaging/test/to-mac/Contents/Resources/readme.txt create mode 100644 tools/update-packaging/test/to-mac/Contents/Resources/removed-files create mode 100644 tools/update-packaging/test/to-mac/Contents/Resources/same.txt create mode 100644 tools/update-packaging/test/to-mac/Contents/Resources/searchplugins/added/file.txt create mode 100644 tools/update-packaging/test/to-mac/Contents/Resources/searchplugins/diff/diff-patch-larger-than-file.txt create mode 100644 tools/update-packaging/test/to-mac/Contents/Resources/update-settings.ini create mode 100644 tools/update-packaging/test/to-mac/Contents/Resources/{foodir/channel-prefs.js create mode 100644 tools/update-packaging/test/to-mac/Contents/Resources/{foodir/force.txt create mode 100644 tools/update-packaging/test/to/addFeedPrefs.js create mode 100644 tools/update-packaging/test/to/added.txt create mode 100644 tools/update-packaging/test/to/application.ini create mode 100644 tools/update-packaging/test/to/chrome.manifest create mode 100644 tools/update-packaging/test/to/diff-patch-larger-than-file.bin create mode 100644 tools/update-packaging/test/to/diff-patch-larger-than-file.txt create mode 100644 tools/update-packaging/test/to/distribution/extensions/added/file.txt create mode 100644 tools/update-packaging/test/to/distribution/extensions/diff/diff-patch-larger-than-file.txt create mode 100644 tools/update-packaging/test/to/extensions/added/file.txt create mode 100644 tools/update-packaging/test/to/extensions/diff/diff-patch-larger-than-file.txt create mode 100644 tools/update-packaging/test/to/force.txt create mode 100644 tools/update-packaging/test/to/precomplete create mode 100644 tools/update-packaging/test/to/readme.txt create mode 100644 tools/update-packaging/test/to/removed-files create mode 100644 tools/update-packaging/test/to/same.bin create mode 100644 tools/update-packaging/test/to/same.txt create mode 100644 tools/update-packaging/test/to/searchplugins/added/file.txt create mode 100644 tools/update-packaging/test/to/searchplugins/diff/diff-patch-larger-than-file.txt create mode 100644 tools/update-packaging/test/to/update-settings.ini create mode 100644 tools/update-packaging/test/to/update.manifest create mode 100644 tools/update-packaging/test/to/{foodir/added.txt create mode 100644 tools/update-packaging/test/to/{foodir/channel-prefs.js create mode 100644 tools/update-packaging/test/to/{foodir/diff-patch-larger-than-file.txt create mode 100644 tools/update-packaging/test/to/{foodir/force.txt create mode 100644 tools/update-packaging/test/to/{foodir/readme.txt create mode 100644 tools/update-packaging/test/to/{foodir/same.bin create mode 100644 tools/update-packaging/test/to/{foodir/same.txt create mode 100644 tools/update-packaging/test/to/{foodir/update.manifest (limited to 'tools/update-packaging/test') diff --git a/tools/update-packaging/test/buildrefmars.sh b/tools/update-packaging/test/buildrefmars.sh new file mode 100755 index 0000000000..fd2d5384d7 --- /dev/null +++ b/tools/update-packaging/test/buildrefmars.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# Builds all the reference mars + +if [ -f "ref.mar" ]; then + rm "ref.mar" +fi +if [ -f "ref-mac.mar" ]; then + rm "ref-mac.mar" +fi + + ../make_incremental_update.sh ref.mar `pwd`/from `pwd`/to + ../make_incremental_update.sh ref-mac.mar `pwd`/from-mac `pwd`/to-mac + +if [ -f "product-1.0.lang.platform.complete.mar" ]; then + rm "product-1.0.lang.platform.complete.mar" +fi +if [ -f "product-2.0.lang.platform.complete.mar" ]; then + rm "product-2.0.lang.platform.complete.mar" +fi +if [ -f "product-2.0.lang.mac.complete.mar" ]; then + rm "product-2.0.lang.mac.complete.mar" +fi + +./make_full_update.sh product-1.0.lang.platform.complete.mar "`pwd`/from" +./make_full_update.sh product-2.0.lang.platform.complete.mar "`pwd`/to" +./make_full_update.sh product-1.0.lang.mac.complete.mar "`pwd`/from-mac" +./make_full_update.sh product-2.0.lang.mac.complete.mar "`pwd`/to-mac" diff --git a/tools/update-packaging/test/common.sh b/tools/update-packaging/test/common.sh new file mode 100755 index 0000000000..ad88da2203 --- /dev/null +++ b/tools/update-packaging/test/common.sh @@ -0,0 +1,202 @@ +#!/bin/bash +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +# +# Code shared by update packaging scripts. +# Author: Darin Fisher +# +# In here to use the local common.sh to allow the full mars to have unfiltered files + +# ----------------------------------------------------------------------------- +# By default just assume that these tools exist on our path +MAR=${MAR:-mar} +XZ=${XZ:-xz} +MBSDIFF=${MBSDIFF:-mbsdiff} + +# ----------------------------------------------------------------------------- +# Helper routines + +notice() { + echo "$*" 1>&2 +} + +get_file_size() { + info=($(ls -ln "$1")) + echo ${info[4]} +} + +copy_perm() { + reference="$1" + target="$2" + + if [ -x "$reference" ]; then + chmod 0755 "$target" + else + chmod 0644 "$target" + fi +} + +make_add_instruction() { + f="$1" + filev2="$2" + # The third param will be an empty string when a file add instruction is only + # needed in the version 2 manifest. This only happens when the file has an + # add-if-not instruction in the version 3 manifest. This is due to the + # precomplete file prior to the version 3 manifest having a remove instruction + # for this file so the file is removed before applying a complete update. + filev3="$3" + + # Used to log to the console + if [ $4 ]; then + forced=" (forced)" + else + forced= + fi + + is_extension=$(echo "$f" | grep -c 'distribution/extensions/.*/') + if [ $is_extension = "1" ]; then + # Use the subdirectory of the extensions folder as the file to test + # before performing this add instruction. + testdir=$(echo "$f" | sed 's/\(.*distribution\/extensions\/[^\/]*\)\/.*/\1/') + notice " add-if \"$testdir\" \"$f\"" + echo "add-if \"$testdir\" \"$f\"" >> $filev2 + if [ ! $filev3 = "" ]; then + echo "add-if \"$testdir\" \"$f\"" >> $filev3 + fi + else + notice " add \"$f\"$forced" + echo "add \"$f\"" >> $filev2 + if [ ! $filev3 = "" ]; then + echo "add \"$f\"" >> $filev3 + fi + fi +} + +check_for_add_if_not_update() { + add_if_not_file_chk="$1" + + if [ `basename $add_if_not_file_chk` = "channel-prefs.js" -o \ + `basename $add_if_not_file_chk` = "update-settings.ini" ]; then + ## "true" *giggle* + return 0; + fi + ## 'false'... because this is bash. Oh yay! + return 1; +} + +check_for_add_to_manifestv2() { + add_if_not_file_chk="$1" + + if [ `basename $add_if_not_file_chk` = "update-settings.ini" ]; then + ## "true" *giggle* + return 0; + fi + ## 'false'... because this is bash. Oh yay! + return 1; +} + +make_add_if_not_instruction() { + f="$1" + filev3="$2" + + notice " add-if-not \"$f\" \"$f\"" + echo "add-if-not \"$f\" \"$f\"" >> $filev3 +} + +make_patch_instruction() { + f="$1" + filev2="$2" + filev3="$3" + + is_extension=$(echo "$f" | grep -c 'distribution/extensions/.*/') + if [ $is_extension = "1" ]; then + # Use the subdirectory of the extensions folder as the file to test + # before performing this add instruction. + testdir=$(echo "$f" | sed 's/\(.*distribution\/extensions\/[^\/]*\)\/.*/\1/') + notice " patch-if \"$testdir\" \"$f.patch\" \"$f\"" + echo "patch-if \"$testdir\" \"$f.patch\" \"$f\"" >> $filev2 + echo "patch-if \"$testdir\" \"$f.patch\" \"$f\"" >> $filev3 + else + notice " patch \"$f.patch\" \"$f\"" + echo "patch \"$f.patch\" \"$f\"" >> $filev2 + echo "patch \"$f.patch\" \"$f\"" >> $filev3 + fi +} + +append_remove_instructions() { + dir="$1" + filev2="$2" + filev3="$3" + + if [ -f "$dir/removed-files" ]; then + listfile="$dir/removed-files" + elif [ -f "$dir/Contents/Resources/removed-files" ]; then + listfile="$dir/Contents/Resources/removed-files" + fi + if [ -n "$listfile" ]; then + # Map spaces to pipes so that we correctly handle filenames with spaces. + files=($(cat "$listfile" | tr " " "|" | sort -r)) + num_files=${#files[*]} + for ((i=0; $i<$num_files; i=$i+1)); do + # Map pipes back to whitespace and remove carriage returns + f=$(echo ${files[$i]} | tr "|" " " | tr -d '\r') + # Trim whitespace + f=$(echo $f) + # Exclude blank lines. + if [ -n "$f" ]; then + # Exclude comments + if [ ! $(echo "$f" | grep -c '^#') = 1 ]; then + if [ $(echo "$f" | grep -c '\/$') = 1 ]; then + notice " rmdir \"$f\"" + echo "rmdir \"$f\"" >> $filev2 + echo "rmdir \"$f\"" >> $filev3 + elif [ $(echo "$f" | grep -c '\/\*$') = 1 ]; then + # Remove the * + f=$(echo "$f" | sed -e 's:\*$::') + notice " rmrfdir \"$f\"" + echo "rmrfdir \"$f\"" >> $filev2 + echo "rmrfdir \"$f\"" >> $filev3 + else + notice " remove \"$f\"" + echo "remove \"$f\"" >> $filev2 + echo "remove \"$f\"" >> $filev3 + fi + fi + fi + done + fi +} + +# List all files in the current directory, stripping leading "./" +# Pass a variable name and it will be filled as an array. +list_files() { + count=0 + + # Removed the exclusion cases here to allow for generation of testing mars + find . -type f \ + | sed 's/\.\/\(.*\)/\1/' \ + | sort -r > "$workdir/temp-filelist" + while read file; do + eval "${1}[$count]=\"$file\"" + (( count++ )) + done < "$workdir/temp-filelist" + rm "$workdir/temp-filelist" +} + +# List all directories in the current directory, stripping leading "./" +list_dirs() { + count=0 + + find . -type d \ + ! -name "." \ + ! -name ".." \ + | sed 's/\.\/\(.*\)/\1/' \ + | sort -r > "$workdir/temp-dirlist" + while read dir; do + eval "${1}[$count]=\"$dir\"" + (( count++ )) + done < "$workdir/temp-dirlist" + rm "$workdir/temp-dirlist" +} diff --git a/tools/update-packaging/test/diffmar.sh b/tools/update-packaging/test/diffmar.sh new file mode 100755 index 0000000000..4b16ffb77a --- /dev/null +++ b/tools/update-packaging/test/diffmar.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# Compares two mars + +marA="$1" +marB="$2" +testDir="$3" +workdir="/tmp/diffmar/$testDir" +fromdir="$workdir/0" +todir="$workdir/1" + +# On Windows, creation time can be off by a second or more between the files in +# the fromdir and todir due to them being extracted synchronously so use +# time-style and exclude seconds from the creation time. +lsargs="-algR" +unamestr=`uname` +if [ ! "$unamestr" = 'Darwin' ]; then + unamestr=`uname -o` + if [ "$unamestr" = 'Msys' -o "$unamestr" = "Cygwin" ]; then + lsargs="-algR --time-style=+%Y-%m-%d-%H:%M" + fi +fi + +rm -rf "$workdir" +mkdir -p "$fromdir" +mkdir -p "$todir" + +cp "$1" "$fromdir" +cp "$2" "$todir" + +cd "$fromdir" +mar -x "$1" +rm "$1" +rm -f updatev2.manifest # Older files may contain this +mv updatev3.manifest updatev3.manifest.xz +xz -d updatev3.manifest.xz +ls $lsargs > files.txt + +cd "$todir" +mar -x "$2" +rm "$2" +mv updatev3.manifest updatev3.manifest.xz +xz -d updatev3.manifest.xz +ls $lsargs > files.txt + +echo "diffing $fromdir and $todir" +echo "on linux shell sort and python sort return different results" +echo "which can cause differences in the manifest files" +diff -ru "$fromdir" "$todir" diff --git a/tools/update-packaging/test/from-mac/Contents/MacOS/diff-patch-larger-than-file.txt b/tools/update-packaging/test/from-mac/Contents/MacOS/diff-patch-larger-than-file.txt new file mode 100644 index 0000000000..8098d25853 --- /dev/null +++ b/tools/update-packaging/test/from-mac/Contents/MacOS/diff-patch-larger-than-file.txt @@ -0,0 +1 @@ +from file diff --git a/tools/update-packaging/test/from-mac/Contents/MacOS/force.txt b/tools/update-packaging/test/from-mac/Contents/MacOS/force.txt new file mode 100644 index 0000000000..0ed0d50124 --- /dev/null +++ b/tools/update-packaging/test/from-mac/Contents/MacOS/force.txt @@ -0,0 +1 @@ +file is same diff --git a/tools/update-packaging/test/from-mac/Contents/MacOS/removed.txt b/tools/update-packaging/test/from-mac/Contents/MacOS/removed.txt new file mode 100644 index 0000000000..2c3f0b3406 --- /dev/null +++ b/tools/update-packaging/test/from-mac/Contents/MacOS/removed.txt @@ -0,0 +1 @@ +removed diff --git a/tools/update-packaging/test/from-mac/Contents/MacOS/same.bin b/tools/update-packaging/test/from-mac/Contents/MacOS/same.bin new file mode 100644 index 0000000000..a9ee7258cc Binary files /dev/null and b/tools/update-packaging/test/from-mac/Contents/MacOS/same.bin differ diff --git a/tools/update-packaging/test/from-mac/Contents/MacOS/update.manifest b/tools/update-packaging/test/from-mac/Contents/MacOS/update.manifest new file mode 100644 index 0000000000..d3e8ed851b --- /dev/null +++ b/tools/update-packaging/test/from-mac/Contents/MacOS/update.manifest @@ -0,0 +1 @@ +from file shouldn't go in update diff --git a/tools/update-packaging/test/from-mac/Contents/MacOS/{foodir/diff-patch-larger-than-file.txt b/tools/update-packaging/test/from-mac/Contents/MacOS/{foodir/diff-patch-larger-than-file.txt new file mode 100644 index 0000000000..8098d25853 --- /dev/null +++ b/tools/update-packaging/test/from-mac/Contents/MacOS/{foodir/diff-patch-larger-than-file.txt @@ -0,0 +1 @@ +from file diff --git a/tools/update-packaging/test/from-mac/Contents/MacOS/{foodir/readme.txt b/tools/update-packaging/test/from-mac/Contents/MacOS/{foodir/readme.txt new file mode 100644 index 0000000000..d7c40c63cd --- /dev/null +++ b/tools/update-packaging/test/from-mac/Contents/MacOS/{foodir/readme.txt @@ -0,0 +1 @@ +This from file should be ignored diff --git a/tools/update-packaging/test/from-mac/Contents/MacOS/{foodir/removed.txt b/tools/update-packaging/test/from-mac/Contents/MacOS/{foodir/removed.txt new file mode 100644 index 0000000000..2c3f0b3406 --- /dev/null +++ b/tools/update-packaging/test/from-mac/Contents/MacOS/{foodir/removed.txt @@ -0,0 +1 @@ +removed diff --git a/tools/update-packaging/test/from-mac/Contents/MacOS/{foodir/same.bin b/tools/update-packaging/test/from-mac/Contents/MacOS/{foodir/same.bin new file mode 100644 index 0000000000..a9ee7258cc Binary files /dev/null and b/tools/update-packaging/test/from-mac/Contents/MacOS/{foodir/same.bin differ diff --git a/tools/update-packaging/test/from-mac/Contents/MacOS/{foodir/same.txt b/tools/update-packaging/test/from-mac/Contents/MacOS/{foodir/same.txt new file mode 100644 index 0000000000..0ed0d50124 --- /dev/null +++ b/tools/update-packaging/test/from-mac/Contents/MacOS/{foodir/same.txt @@ -0,0 +1 @@ +file is same diff --git a/tools/update-packaging/test/from-mac/Contents/MacOS/{foodir/update.manifest b/tools/update-packaging/test/from-mac/Contents/MacOS/{foodir/update.manifest new file mode 100644 index 0000000000..d3e8ed851b --- /dev/null +++ b/tools/update-packaging/test/from-mac/Contents/MacOS/{foodir/update.manifest @@ -0,0 +1 @@ +from file shouldn't go in update diff --git a/tools/update-packaging/test/from-mac/Contents/Resources/application.ini b/tools/update-packaging/test/from-mac/Contents/Resources/application.ini new file mode 100644 index 0000000000..942e91a16a --- /dev/null +++ b/tools/update-packaging/test/from-mac/Contents/Resources/application.ini @@ -0,0 +1,5 @@ +[App] +Vendor=Mozilla +Name=MarTest +Version=1 +BuildID=20120101010101 diff --git a/tools/update-packaging/test/from-mac/Contents/Resources/chrome.manifest b/tools/update-packaging/test/from-mac/Contents/Resources/chrome.manifest new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tools/update-packaging/test/from-mac/Contents/Resources/distribution/extensions/diff/diff-patch-larger-than-file.txt b/tools/update-packaging/test/from-mac/Contents/Resources/distribution/extensions/diff/diff-patch-larger-than-file.txt new file mode 100644 index 0000000000..8098d25853 --- /dev/null +++ b/tools/update-packaging/test/from-mac/Contents/Resources/distribution/extensions/diff/diff-patch-larger-than-file.txt @@ -0,0 +1 @@ +from file diff --git a/tools/update-packaging/test/from-mac/Contents/Resources/extensions/diff/diff-patch-larger-than-file.txt b/tools/update-packaging/test/from-mac/Contents/Resources/extensions/diff/diff-patch-larger-than-file.txt new file mode 100644 index 0000000000..8098d25853 --- /dev/null +++ b/tools/update-packaging/test/from-mac/Contents/Resources/extensions/diff/diff-patch-larger-than-file.txt @@ -0,0 +1 @@ +from file diff --git a/tools/update-packaging/test/from-mac/Contents/Resources/precomplete b/tools/update-packaging/test/from-mac/Contents/Resources/precomplete new file mode 100644 index 0000000000..2d9068d372 --- /dev/null +++ b/tools/update-packaging/test/from-mac/Contents/Resources/precomplete @@ -0,0 +1,26 @@ +remove "Contents/MacOS/{foodir/update.manifest" +remove "Contents/MacOS/{foodir/same.txt" +remove "Contents/MacOS/{foodir/same.bin" +remove "Contents/MacOS/{foodir/removed.txt" +remove "Contents/MacOS/{foodir/readme.txt" +remove "Contents/MacOS/{foodir/force.txt" +remove "Contents/MacOS/{foodir/diff-patch-larger-than-file.txt" +remove "Contents/MacOS/update.manifest" +remove "Contents/MacOS/searchplugins/diff/diff-patch-larger-than-file.txt" +remove "Contents/MacOS/same.txt" +remove "Contents/MacOS/same.bin" +remove "Contents/MacOS/removed.txt" +remove "Contents/MacOS/readme.txt" +remove "Contents/MacOS/force.txt" +remove "Contents/MacOS/extensions/diff/diff-patch-larger-than-file.txt" +remove "Contents/MacOS/diff-patch-larger-than-file.txt" +remove "Contents/MacOS/application.ini" +remove "Contents/Resources/precomplete" +rmdir "Contents/MacOS/{foodir/" +rmdir "Contents/MacOS/searchplugins/diff/" +rmdir "Contents/MacOS/searchplugins/" +rmdir "Contents/MacOS/extensions/diff/" +rmdir "Contents/MacOS/extensions/" +rmdir "Contents/MacOS/" +rmdir "Contents/Resources/" +rmdir "Contents/" diff --git a/tools/update-packaging/test/from-mac/Contents/Resources/readme.txt b/tools/update-packaging/test/from-mac/Contents/Resources/readme.txt new file mode 100644 index 0000000000..b1a96f1fea --- /dev/null +++ b/tools/update-packaging/test/from-mac/Contents/Resources/readme.txt @@ -0,0 +1,2 @@ +This from file should be ignored + diff --git a/tools/update-packaging/test/from-mac/Contents/Resources/removed-files b/tools/update-packaging/test/from-mac/Contents/Resources/removed-files new file mode 100644 index 0000000000..5bbdac6f62 --- /dev/null +++ b/tools/update-packaging/test/from-mac/Contents/Resources/removed-files @@ -0,0 +1,8 @@ +Contents/Resources/removed1.txt +Contents/MacOS/removed2.bin +Contents/MacOS/recursivedir/meh/* +Contents/Resources/dir/ +Contents/MacOS/this file has spaces + + +Contents/MacOS/extra-spaces diff --git a/tools/update-packaging/test/from-mac/Contents/Resources/removed.txt b/tools/update-packaging/test/from-mac/Contents/Resources/removed.txt new file mode 100644 index 0000000000..2c3f0b3406 --- /dev/null +++ b/tools/update-packaging/test/from-mac/Contents/Resources/removed.txt @@ -0,0 +1 @@ +removed diff --git a/tools/update-packaging/test/from-mac/Contents/Resources/same.txt b/tools/update-packaging/test/from-mac/Contents/Resources/same.txt new file mode 100644 index 0000000000..0ed0d50124 --- /dev/null +++ b/tools/update-packaging/test/from-mac/Contents/Resources/same.txt @@ -0,0 +1 @@ +file is same diff --git a/tools/update-packaging/test/from-mac/Contents/Resources/searchplugins/diff/diff-patch-larger-than-file.txt b/tools/update-packaging/test/from-mac/Contents/Resources/searchplugins/diff/diff-patch-larger-than-file.txt new file mode 100644 index 0000000000..8098d25853 --- /dev/null +++ b/tools/update-packaging/test/from-mac/Contents/Resources/searchplugins/diff/diff-patch-larger-than-file.txt @@ -0,0 +1 @@ +from file diff --git a/tools/update-packaging/test/from-mac/Contents/Resources/update-settings.ini b/tools/update-packaging/test/from-mac/Contents/Resources/update-settings.ini new file mode 100644 index 0000000000..5fa6a9909e --- /dev/null +++ b/tools/update-packaging/test/from-mac/Contents/Resources/update-settings.ini @@ -0,0 +1 @@ +add-if-not from complete file diff --git a/tools/update-packaging/test/from-mac/Contents/Resources/{foodir/channel-prefs.js b/tools/update-packaging/test/from-mac/Contents/Resources/{foodir/channel-prefs.js new file mode 100644 index 0000000000..5fa6a9909e --- /dev/null +++ b/tools/update-packaging/test/from-mac/Contents/Resources/{foodir/channel-prefs.js @@ -0,0 +1 @@ +add-if-not from complete file diff --git a/tools/update-packaging/test/from-mac/Contents/Resources/{foodir/force.txt b/tools/update-packaging/test/from-mac/Contents/Resources/{foodir/force.txt new file mode 100644 index 0000000000..0ed0d50124 --- /dev/null +++ b/tools/update-packaging/test/from-mac/Contents/Resources/{foodir/force.txt @@ -0,0 +1 @@ +file is same diff --git a/tools/update-packaging/test/from/application.ini b/tools/update-packaging/test/from/application.ini new file mode 100644 index 0000000000..942e91a16a --- /dev/null +++ b/tools/update-packaging/test/from/application.ini @@ -0,0 +1,5 @@ +[App] +Vendor=Mozilla +Name=MarTest +Version=1 +BuildID=20120101010101 diff --git a/tools/update-packaging/test/from/chrome.manifest b/tools/update-packaging/test/from/chrome.manifest new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tools/update-packaging/test/from/diff-patch-larger-than-file.txt b/tools/update-packaging/test/from/diff-patch-larger-than-file.txt new file mode 100644 index 0000000000..8098d25853 --- /dev/null +++ b/tools/update-packaging/test/from/diff-patch-larger-than-file.txt @@ -0,0 +1 @@ +from file diff --git a/tools/update-packaging/test/from/distribution/extensions/diff/diff-patch-larger-than-file.txt b/tools/update-packaging/test/from/distribution/extensions/diff/diff-patch-larger-than-file.txt new file mode 100644 index 0000000000..8098d25853 --- /dev/null +++ b/tools/update-packaging/test/from/distribution/extensions/diff/diff-patch-larger-than-file.txt @@ -0,0 +1 @@ +from file diff --git a/tools/update-packaging/test/from/extensions/diff/diff-patch-larger-than-file.txt b/tools/update-packaging/test/from/extensions/diff/diff-patch-larger-than-file.txt new file mode 100644 index 0000000000..8098d25853 --- /dev/null +++ b/tools/update-packaging/test/from/extensions/diff/diff-patch-larger-than-file.txt @@ -0,0 +1 @@ +from file diff --git a/tools/update-packaging/test/from/force.txt b/tools/update-packaging/test/from/force.txt new file mode 100644 index 0000000000..0ed0d50124 --- /dev/null +++ b/tools/update-packaging/test/from/force.txt @@ -0,0 +1 @@ +file is same diff --git a/tools/update-packaging/test/from/precomplete b/tools/update-packaging/test/from/precomplete new file mode 100644 index 0000000000..e27f4fc31c --- /dev/null +++ b/tools/update-packaging/test/from/precomplete @@ -0,0 +1,23 @@ +remove "{foodir/update.manifest" +remove "{foodir/same.txt" +remove "{foodir/same.bin" +remove "{foodir/removed.txt" +remove "{foodir/readme.txt" +remove "{foodir/force.txt" +remove "{foodir/diff-patch-larger-than-file.txt" +remove "update.manifest" +remove "searchplugins/diff/diff-patch-larger-than-file.txt" +remove "same.txt" +remove "same.bin" +remove "removed.txt" +remove "readme.txt" +remove "precomplete" +remove "force.txt" +remove "extensions/diff/diff-patch-larger-than-file.txt" +remove "diff-patch-larger-than-file.txt" +remove "application.ini" +rmdir "{foodir/" +rmdir "searchplugins/diff/" +rmdir "searchplugins/" +rmdir "extensions/diff/" +rmdir "extensions/" diff --git a/tools/update-packaging/test/from/readme.txt b/tools/update-packaging/test/from/readme.txt new file mode 100644 index 0000000000..b1a96f1fea --- /dev/null +++ b/tools/update-packaging/test/from/readme.txt @@ -0,0 +1,2 @@ +This from file should be ignored + diff --git a/tools/update-packaging/test/from/removed-files b/tools/update-packaging/test/from/removed-files new file mode 100644 index 0000000000..73b348d9c4 --- /dev/null +++ b/tools/update-packaging/test/from/removed-files @@ -0,0 +1,8 @@ +removed1.txt +removed2.bin +recursivedir/meh/* +dir/ +this file has spaces + + +extra-spaces diff --git a/tools/update-packaging/test/from/removed.txt b/tools/update-packaging/test/from/removed.txt new file mode 100644 index 0000000000..2c3f0b3406 --- /dev/null +++ b/tools/update-packaging/test/from/removed.txt @@ -0,0 +1 @@ +removed diff --git a/tools/update-packaging/test/from/same.bin b/tools/update-packaging/test/from/same.bin new file mode 100644 index 0000000000..a9ee7258cc Binary files /dev/null and b/tools/update-packaging/test/from/same.bin differ diff --git a/tools/update-packaging/test/from/same.txt b/tools/update-packaging/test/from/same.txt new file mode 100644 index 0000000000..0ed0d50124 --- /dev/null +++ b/tools/update-packaging/test/from/same.txt @@ -0,0 +1 @@ +file is same diff --git a/tools/update-packaging/test/from/searchplugins/diff/diff-patch-larger-than-file.txt b/tools/update-packaging/test/from/searchplugins/diff/diff-patch-larger-than-file.txt new file mode 100644 index 0000000000..8098d25853 --- /dev/null +++ b/tools/update-packaging/test/from/searchplugins/diff/diff-patch-larger-than-file.txt @@ -0,0 +1 @@ +from file diff --git a/tools/update-packaging/test/from/update-settings.ini b/tools/update-packaging/test/from/update-settings.ini new file mode 100644 index 0000000000..5fa6a9909e --- /dev/null +++ b/tools/update-packaging/test/from/update-settings.ini @@ -0,0 +1 @@ +add-if-not from complete file diff --git a/tools/update-packaging/test/from/update.manifest b/tools/update-packaging/test/from/update.manifest new file mode 100644 index 0000000000..d3e8ed851b --- /dev/null +++ b/tools/update-packaging/test/from/update.manifest @@ -0,0 +1 @@ +from file shouldn't go in update diff --git a/tools/update-packaging/test/from/{foodir/channel-prefs.js b/tools/update-packaging/test/from/{foodir/channel-prefs.js new file mode 100644 index 0000000000..5fa6a9909e --- /dev/null +++ b/tools/update-packaging/test/from/{foodir/channel-prefs.js @@ -0,0 +1 @@ +add-if-not from complete file diff --git a/tools/update-packaging/test/from/{foodir/diff-patch-larger-than-file.txt b/tools/update-packaging/test/from/{foodir/diff-patch-larger-than-file.txt new file mode 100644 index 0000000000..8098d25853 --- /dev/null +++ b/tools/update-packaging/test/from/{foodir/diff-patch-larger-than-file.txt @@ -0,0 +1 @@ +from file diff --git a/tools/update-packaging/test/from/{foodir/force.txt b/tools/update-packaging/test/from/{foodir/force.txt new file mode 100644 index 0000000000..0ed0d50124 --- /dev/null +++ b/tools/update-packaging/test/from/{foodir/force.txt @@ -0,0 +1 @@ +file is same diff --git a/tools/update-packaging/test/from/{foodir/readme.txt b/tools/update-packaging/test/from/{foodir/readme.txt new file mode 100644 index 0000000000..d7c40c63cd --- /dev/null +++ b/tools/update-packaging/test/from/{foodir/readme.txt @@ -0,0 +1 @@ +This from file should be ignored diff --git a/tools/update-packaging/test/from/{foodir/removed.txt b/tools/update-packaging/test/from/{foodir/removed.txt new file mode 100644 index 0000000000..2c3f0b3406 --- /dev/null +++ b/tools/update-packaging/test/from/{foodir/removed.txt @@ -0,0 +1 @@ +removed diff --git a/tools/update-packaging/test/from/{foodir/same.bin b/tools/update-packaging/test/from/{foodir/same.bin new file mode 100644 index 0000000000..a9ee7258cc Binary files /dev/null and b/tools/update-packaging/test/from/{foodir/same.bin differ diff --git a/tools/update-packaging/test/from/{foodir/same.txt b/tools/update-packaging/test/from/{foodir/same.txt new file mode 100644 index 0000000000..0ed0d50124 --- /dev/null +++ b/tools/update-packaging/test/from/{foodir/same.txt @@ -0,0 +1 @@ +file is same diff --git a/tools/update-packaging/test/from/{foodir/update.manifest b/tools/update-packaging/test/from/{foodir/update.manifest new file mode 100644 index 0000000000..d3e8ed851b --- /dev/null +++ b/tools/update-packaging/test/from/{foodir/update.manifest @@ -0,0 +1 @@ +from file shouldn't go in update diff --git a/tools/update-packaging/test/make_full_update.sh b/tools/update-packaging/test/make_full_update.sh new file mode 100755 index 0000000000..cdcdae3c3b --- /dev/null +++ b/tools/update-packaging/test/make_full_update.sh @@ -0,0 +1,112 @@ +#!/bin/bash +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +# +# This tool generates full update packages for the update system. +# Author: Darin Fisher +# +# In here to use the local common.sh to allow the full mars to have unfiltered files + +. $(dirname "$0")/common.sh + +# ----------------------------------------------------------------------------- + +print_usage() { + notice "Usage: $(basename $0) [OPTIONS] ARCHIVE DIRECTORY" +} + +if [ $# = 0 ]; then + print_usage + exit 1 +fi + +if [ $1 = -h ]; then + print_usage + notice "" + notice "The contents of DIRECTORY will be stored in ARCHIVE." + notice "" + notice "Options:" + notice " -h show this help text" + notice "" + exit 1 +fi + +# ----------------------------------------------------------------------------- + +archive="$1" +targetdir="$2" +# Prevent the workdir from being inside the targetdir so it isn't included in +# the update mar. +if [ $(echo "$targetdir" | grep -c '\/$') = 1 ]; then + # Remove the / + targetdir=$(echo "$targetdir" | sed -e 's:\/$::') +fi +workdir="$targetdir.work" +updatemanifestv3="$workdir/updatev3.manifest" +targetfiles="updatev3.manifest" + +mkdir -p "$workdir" + +# Generate a list of all files in the target directory. +pushd "$targetdir" +if test $? -ne 0 ; then + exit 1 +fi + +if [ ! -f "precomplete" ]; then + if [ ! -f "Contents/Resources/precomplete" ]; then + notice "precomplete file is missing!" + exit 1 + fi +fi + +list_files files + +popd + +# Add the type of update to the beginning of the update manifests. +> $updatemanifestv3 +notice "" +notice "Adding type instruction to update manifests" +notice " type complete" +echo "type \"complete\"" >> $updatemanifestv3 + +notice "" +notice "Adding file add instructions to update manifests" +num_files=${#files[*]} + +for ((i=0; $i<$num_files; i=$i+1)); do + f="${files[$i]}" + + if check_for_add_if_not_update "$f"; then + make_add_if_not_instruction "$f" "$updatemanifestv3" + else + make_add_instruction "$f" "$updatemanifestv3" + fi + + dir=$(dirname "$f") + mkdir -p "$workdir/$dir" + $XZ $XZ_OPT --compress --x86 --lzma2 --format=xz --check=crc64 --force --stdout "$targetdir/$f" > "$workdir/$f" + copy_perm "$targetdir/$f" "$workdir/$f" + + targetfiles="$targetfiles \"$f\"" +done + +# Append remove instructions for any dead files. +notice "" +notice "Adding file and directory remove instructions from file 'removed-files'" +append_remove_instructions "$targetdir" "$updatemanifestv3" + +$XZ $XZ_OPT --compress --x86 --lzma2 --format=xz --check=crc64 --force "$updatemanifestv3" && mv -f "$updatemanifestv3.xz" "$updatemanifestv3" + +eval "$MAR -C \"$workdir\" -c output.mar $targetfiles" +mv -f "$workdir/output.mar" "$archive" + +# cleanup +rm -fr "$workdir" + +notice "" +notice "Finished" +notice "" diff --git a/tools/update-packaging/test/runtests.sh b/tools/update-packaging/test/runtests.sh new file mode 100755 index 0000000000..c66e54eaa6 --- /dev/null +++ b/tools/update-packaging/test/runtests.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +echo "testing make_incremental_updates.py" +python ../make_incremental_updates.py -f testpatchfile.txt + +echo "" +echo "diffing ref.mar and test.mar" +./diffmar.sh ref.mar test.mar test + +echo "" +echo "diffing ref-mac.mar and test-mac.mar" +./diffmar.sh ref-mac.mar test-mac.mar test-mac diff --git a/tools/update-packaging/test/testpatchfile.txt b/tools/update-packaging/test/testpatchfile.txt new file mode 100644 index 0000000000..a19c831eb4 --- /dev/null +++ b/tools/update-packaging/test/testpatchfile.txt @@ -0,0 +1,2 @@ +product-1.0.lang.platform.complete.mar,product-2.0.lang.platform.complete.mar,test.mar,"" +product-1.0.lang.mac.complete.mar,product-2.0.lang.mac.complete.mar,test-mac.mar,"" diff --git a/tools/update-packaging/test/to-mac/Contents/MacOS/addFeedPrefs.js b/tools/update-packaging/test/to-mac/Contents/MacOS/addFeedPrefs.js new file mode 100644 index 0000000000..3b2aed8e02 --- /dev/null +++ b/tools/update-packaging/test/to-mac/Contents/MacOS/addFeedPrefs.js @@ -0,0 +1 @@ +this is a new file diff --git a/tools/update-packaging/test/to-mac/Contents/MacOS/added.txt b/tools/update-packaging/test/to-mac/Contents/MacOS/added.txt new file mode 100644 index 0000000000..b242c36062 --- /dev/null +++ b/tools/update-packaging/test/to-mac/Contents/MacOS/added.txt @@ -0,0 +1 @@ +added file diff --git a/tools/update-packaging/test/to-mac/Contents/MacOS/diff-patch-larger-than-file.bin b/tools/update-packaging/test/to-mac/Contents/MacOS/diff-patch-larger-than-file.bin new file mode 100644 index 0000000000..a9ee7258cc Binary files /dev/null and b/tools/update-packaging/test/to-mac/Contents/MacOS/diff-patch-larger-than-file.bin differ diff --git a/tools/update-packaging/test/to-mac/Contents/MacOS/diff-patch-larger-than-file.txt b/tools/update-packaging/test/to-mac/Contents/MacOS/diff-patch-larger-than-file.txt new file mode 100644 index 0000000000..a61ffbb5e0 --- /dev/null +++ b/tools/update-packaging/test/to-mac/Contents/MacOS/diff-patch-larger-than-file.txt @@ -0,0 +1 @@ +file to diff --git a/tools/update-packaging/test/to-mac/Contents/MacOS/force.txt b/tools/update-packaging/test/to-mac/Contents/MacOS/force.txt new file mode 100644 index 0000000000..0ed0d50124 --- /dev/null +++ b/tools/update-packaging/test/to-mac/Contents/MacOS/force.txt @@ -0,0 +1 @@ +file is same diff --git a/tools/update-packaging/test/to-mac/Contents/MacOS/same.bin b/tools/update-packaging/test/to-mac/Contents/MacOS/same.bin new file mode 100644 index 0000000000..a9ee7258cc Binary files /dev/null and b/tools/update-packaging/test/to-mac/Contents/MacOS/same.bin differ diff --git a/tools/update-packaging/test/to-mac/Contents/MacOS/update.manifest b/tools/update-packaging/test/to-mac/Contents/MacOS/update.manifest new file mode 100644 index 0000000000..73364fdca1 --- /dev/null +++ b/tools/update-packaging/test/to-mac/Contents/MacOS/update.manifest @@ -0,0 +1 @@ +to file shouldn't go in update diff --git a/tools/update-packaging/test/to-mac/Contents/MacOS/{foodir/added.txt b/tools/update-packaging/test/to-mac/Contents/MacOS/{foodir/added.txt new file mode 100644 index 0000000000..b242c36062 --- /dev/null +++ b/tools/update-packaging/test/to-mac/Contents/MacOS/{foodir/added.txt @@ -0,0 +1 @@ +added file diff --git a/tools/update-packaging/test/to-mac/Contents/MacOS/{foodir/diff-patch-larger-than-file.txt b/tools/update-packaging/test/to-mac/Contents/MacOS/{foodir/diff-patch-larger-than-file.txt new file mode 100644 index 0000000000..a61ffbb5e0 --- /dev/null +++ b/tools/update-packaging/test/to-mac/Contents/MacOS/{foodir/diff-patch-larger-than-file.txt @@ -0,0 +1 @@ +file to diff --git a/tools/update-packaging/test/to-mac/Contents/MacOS/{foodir/readme.txt b/tools/update-packaging/test/to-mac/Contents/MacOS/{foodir/readme.txt new file mode 100644 index 0000000000..b5f7004cc9 --- /dev/null +++ b/tools/update-packaging/test/to-mac/Contents/MacOS/{foodir/readme.txt @@ -0,0 +1 @@ +This to file should be ignored diff --git a/tools/update-packaging/test/to-mac/Contents/MacOS/{foodir/same.bin b/tools/update-packaging/test/to-mac/Contents/MacOS/{foodir/same.bin new file mode 100644 index 0000000000..a9ee7258cc Binary files /dev/null and b/tools/update-packaging/test/to-mac/Contents/MacOS/{foodir/same.bin differ diff --git a/tools/update-packaging/test/to-mac/Contents/MacOS/{foodir/same.txt b/tools/update-packaging/test/to-mac/Contents/MacOS/{foodir/same.txt new file mode 100644 index 0000000000..0ed0d50124 --- /dev/null +++ b/tools/update-packaging/test/to-mac/Contents/MacOS/{foodir/same.txt @@ -0,0 +1 @@ +file is same diff --git a/tools/update-packaging/test/to-mac/Contents/MacOS/{foodir/update.manifest b/tools/update-packaging/test/to-mac/Contents/MacOS/{foodir/update.manifest new file mode 100644 index 0000000000..73364fdca1 --- /dev/null +++ b/tools/update-packaging/test/to-mac/Contents/MacOS/{foodir/update.manifest @@ -0,0 +1 @@ +to file shouldn't go in update diff --git a/tools/update-packaging/test/to-mac/Contents/Resources/application.ini b/tools/update-packaging/test/to-mac/Contents/Resources/application.ini new file mode 100644 index 0000000000..7bdc78819f --- /dev/null +++ b/tools/update-packaging/test/to-mac/Contents/Resources/application.ini @@ -0,0 +1,5 @@ +[App] +Vendor=Mozilla +Name=MarTest +Version=2 +BuildID=20130101010101 diff --git a/tools/update-packaging/test/to-mac/Contents/Resources/chrome.manifest b/tools/update-packaging/test/to-mac/Contents/Resources/chrome.manifest new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tools/update-packaging/test/to-mac/Contents/Resources/distribution/extensions/added/file.txt b/tools/update-packaging/test/to-mac/Contents/Resources/distribution/extensions/added/file.txt new file mode 100644 index 0000000000..4bbc6747ec --- /dev/null +++ b/tools/update-packaging/test/to-mac/Contents/Resources/distribution/extensions/added/file.txt @@ -0,0 +1 @@ +extfile diff --git a/tools/update-packaging/test/to-mac/Contents/Resources/distribution/extensions/diff/diff-patch-larger-than-file.txt b/tools/update-packaging/test/to-mac/Contents/Resources/distribution/extensions/diff/diff-patch-larger-than-file.txt new file mode 100644 index 0000000000..b779d9648a --- /dev/null +++ b/tools/update-packaging/test/to-mac/Contents/Resources/distribution/extensions/diff/diff-patch-larger-than-file.txt @@ -0,0 +1 @@ +to file diff --git a/tools/update-packaging/test/to-mac/Contents/Resources/extensions/added/file.txt b/tools/update-packaging/test/to-mac/Contents/Resources/extensions/added/file.txt new file mode 100644 index 0000000000..4bbc6747ec --- /dev/null +++ b/tools/update-packaging/test/to-mac/Contents/Resources/extensions/added/file.txt @@ -0,0 +1 @@ +extfile diff --git a/tools/update-packaging/test/to-mac/Contents/Resources/extensions/diff/diff-patch-larger-than-file.txt b/tools/update-packaging/test/to-mac/Contents/Resources/extensions/diff/diff-patch-larger-than-file.txt new file mode 100644 index 0000000000..b779d9648a --- /dev/null +++ b/tools/update-packaging/test/to-mac/Contents/Resources/extensions/diff/diff-patch-larger-than-file.txt @@ -0,0 +1 @@ +to file diff --git a/tools/update-packaging/test/to-mac/Contents/Resources/precomplete b/tools/update-packaging/test/to-mac/Contents/Resources/precomplete new file mode 100644 index 0000000000..7af8bfd769 --- /dev/null +++ b/tools/update-packaging/test/to-mac/Contents/Resources/precomplete @@ -0,0 +1,33 @@ +remove "Contents/MacOS/{foodir/update.manifest" +remove "Contents/MacOS/{foodir/same.txt" +remove "Contents/MacOS/{foodir/same.bin" +remove "Contents/MacOS/{foodir/readme.txt" +remove "Contents/MacOS/{foodir/force.txt" +remove "Contents/MacOS/{foodir/diff-patch-larger-than-file.txt" +remove "Contents/MacOS/{foodir/added.txt" +remove "Contents/MacOS/update.manifest" +remove "Contents/MacOS/searchplugins/diff/diff-patch-larger-than-file.txt" +remove "Contents/MacOS/searchplugins/added/file.txt" +remove "Contents/MacOS/same.txt" +remove "Contents/MacOS/same.bin" +remove "Contents/MacOS/removed-files" +remove "Contents/MacOS/readme.txt" +remove "Contents/MacOS/force.txt" +remove "Contents/MacOS/extensions/diff/diff-patch-larger-than-file.txt" +remove "Contents/MacOS/extensions/added/file.txt" +remove "Contents/MacOS/diff-patch-larger-than-file.txt" +remove "Contents/MacOS/diff-patch-larger-than-file.bin" +remove "Contents/MacOS/application.ini" +remove "Contents/MacOS/added.txt" +remove "Contents/MacOS/addFeedPrefs.js" +remove "Contents/Resources/precomplete" +rmdir "Contents/MacOS/{foodir/" +rmdir "Contents/MacOS/searchplugins/diff/" +rmdir "Contents/MacOS/searchplugins/added/" +rmdir "Contents/MacOS/searchplugins/" +rmdir "Contents/MacOS/extensions/diff/" +rmdir "Contents/MacOS/extensions/added/" +rmdir "Contents/MacOS/extensions/" +rmdir "Contents/MacOS/" +rmdir "Contents/Resources/" +rmdir "Contents/" diff --git a/tools/update-packaging/test/to-mac/Contents/Resources/readme.txt b/tools/update-packaging/test/to-mac/Contents/Resources/readme.txt new file mode 100644 index 0000000000..b5f7004cc9 --- /dev/null +++ b/tools/update-packaging/test/to-mac/Contents/Resources/readme.txt @@ -0,0 +1 @@ +This to file should be ignored diff --git a/tools/update-packaging/test/to-mac/Contents/Resources/removed-files b/tools/update-packaging/test/to-mac/Contents/Resources/removed-files new file mode 100644 index 0000000000..a756cc560b --- /dev/null +++ b/tools/update-packaging/test/to-mac/Contents/Resources/removed-files @@ -0,0 +1,14 @@ +Contents/Resources/removed1.txt +Contents/MacOS/removed2.bin +Contents/MacOS/recursivedir/meh/* +Contents/MacOS/removed3-foo.txt +Contents/Resources/dir/ +Contents/MacOS/this file has spaces +Contents/MacOS/notherdir/ + + +Contents/Resources/extra-spaces + +Contents/MacOS/lastFile + + diff --git a/tools/update-packaging/test/to-mac/Contents/Resources/same.txt b/tools/update-packaging/test/to-mac/Contents/Resources/same.txt new file mode 100644 index 0000000000..0ed0d50124 --- /dev/null +++ b/tools/update-packaging/test/to-mac/Contents/Resources/same.txt @@ -0,0 +1 @@ +file is same diff --git a/tools/update-packaging/test/to-mac/Contents/Resources/searchplugins/added/file.txt b/tools/update-packaging/test/to-mac/Contents/Resources/searchplugins/added/file.txt new file mode 100644 index 0000000000..4bbc6747ec --- /dev/null +++ b/tools/update-packaging/test/to-mac/Contents/Resources/searchplugins/added/file.txt @@ -0,0 +1 @@ +extfile diff --git a/tools/update-packaging/test/to-mac/Contents/Resources/searchplugins/diff/diff-patch-larger-than-file.txt b/tools/update-packaging/test/to-mac/Contents/Resources/searchplugins/diff/diff-patch-larger-than-file.txt new file mode 100644 index 0000000000..b779d9648a --- /dev/null +++ b/tools/update-packaging/test/to-mac/Contents/Resources/searchplugins/diff/diff-patch-larger-than-file.txt @@ -0,0 +1 @@ +to file diff --git a/tools/update-packaging/test/to-mac/Contents/Resources/update-settings.ini b/tools/update-packaging/test/to-mac/Contents/Resources/update-settings.ini new file mode 100644 index 0000000000..5fa6a9909e --- /dev/null +++ b/tools/update-packaging/test/to-mac/Contents/Resources/update-settings.ini @@ -0,0 +1 @@ +add-if-not from complete file diff --git a/tools/update-packaging/test/to-mac/Contents/Resources/{foodir/channel-prefs.js b/tools/update-packaging/test/to-mac/Contents/Resources/{foodir/channel-prefs.js new file mode 100644 index 0000000000..d6ada4591d --- /dev/null +++ b/tools/update-packaging/test/to-mac/Contents/Resources/{foodir/channel-prefs.js @@ -0,0 +1 @@ +add-if-not from partial file diff --git a/tools/update-packaging/test/to-mac/Contents/Resources/{foodir/force.txt b/tools/update-packaging/test/to-mac/Contents/Resources/{foodir/force.txt new file mode 100644 index 0000000000..0ed0d50124 --- /dev/null +++ b/tools/update-packaging/test/to-mac/Contents/Resources/{foodir/force.txt @@ -0,0 +1 @@ +file is same diff --git a/tools/update-packaging/test/to/addFeedPrefs.js b/tools/update-packaging/test/to/addFeedPrefs.js new file mode 100644 index 0000000000..3b2aed8e02 --- /dev/null +++ b/tools/update-packaging/test/to/addFeedPrefs.js @@ -0,0 +1 @@ +this is a new file diff --git a/tools/update-packaging/test/to/added.txt b/tools/update-packaging/test/to/added.txt new file mode 100644 index 0000000000..b242c36062 --- /dev/null +++ b/tools/update-packaging/test/to/added.txt @@ -0,0 +1 @@ +added file diff --git a/tools/update-packaging/test/to/application.ini b/tools/update-packaging/test/to/application.ini new file mode 100644 index 0000000000..7bdc78819f --- /dev/null +++ b/tools/update-packaging/test/to/application.ini @@ -0,0 +1,5 @@ +[App] +Vendor=Mozilla +Name=MarTest +Version=2 +BuildID=20130101010101 diff --git a/tools/update-packaging/test/to/chrome.manifest b/tools/update-packaging/test/to/chrome.manifest new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tools/update-packaging/test/to/diff-patch-larger-than-file.bin b/tools/update-packaging/test/to/diff-patch-larger-than-file.bin new file mode 100644 index 0000000000..a9ee7258cc Binary files /dev/null and b/tools/update-packaging/test/to/diff-patch-larger-than-file.bin differ diff --git a/tools/update-packaging/test/to/diff-patch-larger-than-file.txt b/tools/update-packaging/test/to/diff-patch-larger-than-file.txt new file mode 100644 index 0000000000..a61ffbb5e0 --- /dev/null +++ b/tools/update-packaging/test/to/diff-patch-larger-than-file.txt @@ -0,0 +1 @@ +file to diff --git a/tools/update-packaging/test/to/distribution/extensions/added/file.txt b/tools/update-packaging/test/to/distribution/extensions/added/file.txt new file mode 100644 index 0000000000..4bbc6747ec --- /dev/null +++ b/tools/update-packaging/test/to/distribution/extensions/added/file.txt @@ -0,0 +1 @@ +extfile diff --git a/tools/update-packaging/test/to/distribution/extensions/diff/diff-patch-larger-than-file.txt b/tools/update-packaging/test/to/distribution/extensions/diff/diff-patch-larger-than-file.txt new file mode 100644 index 0000000000..b779d9648a --- /dev/null +++ b/tools/update-packaging/test/to/distribution/extensions/diff/diff-patch-larger-than-file.txt @@ -0,0 +1 @@ +to file diff --git a/tools/update-packaging/test/to/extensions/added/file.txt b/tools/update-packaging/test/to/extensions/added/file.txt new file mode 100644 index 0000000000..4bbc6747ec --- /dev/null +++ b/tools/update-packaging/test/to/extensions/added/file.txt @@ -0,0 +1 @@ +extfile diff --git a/tools/update-packaging/test/to/extensions/diff/diff-patch-larger-than-file.txt b/tools/update-packaging/test/to/extensions/diff/diff-patch-larger-than-file.txt new file mode 100644 index 0000000000..b779d9648a --- /dev/null +++ b/tools/update-packaging/test/to/extensions/diff/diff-patch-larger-than-file.txt @@ -0,0 +1 @@ +to file diff --git a/tools/update-packaging/test/to/force.txt b/tools/update-packaging/test/to/force.txt new file mode 100644 index 0000000000..0ed0d50124 --- /dev/null +++ b/tools/update-packaging/test/to/force.txt @@ -0,0 +1 @@ +file is same diff --git a/tools/update-packaging/test/to/precomplete b/tools/update-packaging/test/to/precomplete new file mode 100644 index 0000000000..c2700dd972 --- /dev/null +++ b/tools/update-packaging/test/to/precomplete @@ -0,0 +1,30 @@ +remove "{foodir/update.manifest" +remove "{foodir/same.txt" +remove "{foodir/same.bin" +remove "{foodir/readme.txt" +remove "{foodir/force.txt" +remove "{foodir/diff-patch-larger-than-file.txt" +remove "{foodir/added.txt" +remove "update.manifest" +remove "searchplugins/diff/diff-patch-larger-than-file.txt" +remove "searchplugins/added/file.txt" +remove "same.txt" +remove "same.bin" +remove "removed-files" +remove "readme.txt" +remove "precomplete" +remove "force.txt" +remove "extensions/diff/diff-patch-larger-than-file.txt" +remove "extensions/added/file.txt" +remove "diff-patch-larger-than-file.txt" +remove "diff-patch-larger-than-file.bin" +remove "application.ini" +remove "added.txt" +remove "addFeedPrefs.js" +rmdir "{foodir/" +rmdir "searchplugins/diff/" +rmdir "searchplugins/added/" +rmdir "searchplugins/" +rmdir "extensions/diff/" +rmdir "extensions/added/" +rmdir "extensions/" diff --git a/tools/update-packaging/test/to/readme.txt b/tools/update-packaging/test/to/readme.txt new file mode 100644 index 0000000000..b5f7004cc9 --- /dev/null +++ b/tools/update-packaging/test/to/readme.txt @@ -0,0 +1 @@ +This to file should be ignored diff --git a/tools/update-packaging/test/to/removed-files b/tools/update-packaging/test/to/removed-files new file mode 100644 index 0000000000..4fdfff7fd5 --- /dev/null +++ b/tools/update-packaging/test/to/removed-files @@ -0,0 +1,14 @@ +removed1.txt +removed2.bin +recursivedir/meh/* +removed3-foo.txt +dir/ +this file has spaces +notherdir/ + + +extra-spaces + +lastFile + + diff --git a/tools/update-packaging/test/to/same.bin b/tools/update-packaging/test/to/same.bin new file mode 100644 index 0000000000..a9ee7258cc Binary files /dev/null and b/tools/update-packaging/test/to/same.bin differ diff --git a/tools/update-packaging/test/to/same.txt b/tools/update-packaging/test/to/same.txt new file mode 100644 index 0000000000..0ed0d50124 --- /dev/null +++ b/tools/update-packaging/test/to/same.txt @@ -0,0 +1 @@ +file is same diff --git a/tools/update-packaging/test/to/searchplugins/added/file.txt b/tools/update-packaging/test/to/searchplugins/added/file.txt new file mode 100644 index 0000000000..4bbc6747ec --- /dev/null +++ b/tools/update-packaging/test/to/searchplugins/added/file.txt @@ -0,0 +1 @@ +extfile diff --git a/tools/update-packaging/test/to/searchplugins/diff/diff-patch-larger-than-file.txt b/tools/update-packaging/test/to/searchplugins/diff/diff-patch-larger-than-file.txt new file mode 100644 index 0000000000..b779d9648a --- /dev/null +++ b/tools/update-packaging/test/to/searchplugins/diff/diff-patch-larger-than-file.txt @@ -0,0 +1 @@ +to file diff --git a/tools/update-packaging/test/to/update-settings.ini b/tools/update-packaging/test/to/update-settings.ini new file mode 100644 index 0000000000..5fa6a9909e --- /dev/null +++ b/tools/update-packaging/test/to/update-settings.ini @@ -0,0 +1 @@ +add-if-not from complete file diff --git a/tools/update-packaging/test/to/update.manifest b/tools/update-packaging/test/to/update.manifest new file mode 100644 index 0000000000..73364fdca1 --- /dev/null +++ b/tools/update-packaging/test/to/update.manifest @@ -0,0 +1 @@ +to file shouldn't go in update diff --git a/tools/update-packaging/test/to/{foodir/added.txt b/tools/update-packaging/test/to/{foodir/added.txt new file mode 100644 index 0000000000..b242c36062 --- /dev/null +++ b/tools/update-packaging/test/to/{foodir/added.txt @@ -0,0 +1 @@ +added file diff --git a/tools/update-packaging/test/to/{foodir/channel-prefs.js b/tools/update-packaging/test/to/{foodir/channel-prefs.js new file mode 100644 index 0000000000..5fa6a9909e --- /dev/null +++ b/tools/update-packaging/test/to/{foodir/channel-prefs.js @@ -0,0 +1 @@ +add-if-not from complete file diff --git a/tools/update-packaging/test/to/{foodir/diff-patch-larger-than-file.txt b/tools/update-packaging/test/to/{foodir/diff-patch-larger-than-file.txt new file mode 100644 index 0000000000..a61ffbb5e0 --- /dev/null +++ b/tools/update-packaging/test/to/{foodir/diff-patch-larger-than-file.txt @@ -0,0 +1 @@ +file to diff --git a/tools/update-packaging/test/to/{foodir/force.txt b/tools/update-packaging/test/to/{foodir/force.txt new file mode 100644 index 0000000000..0ed0d50124 --- /dev/null +++ b/tools/update-packaging/test/to/{foodir/force.txt @@ -0,0 +1 @@ +file is same diff --git a/tools/update-packaging/test/to/{foodir/readme.txt b/tools/update-packaging/test/to/{foodir/readme.txt new file mode 100644 index 0000000000..b5f7004cc9 --- /dev/null +++ b/tools/update-packaging/test/to/{foodir/readme.txt @@ -0,0 +1 @@ +This to file should be ignored diff --git a/tools/update-packaging/test/to/{foodir/same.bin b/tools/update-packaging/test/to/{foodir/same.bin new file mode 100644 index 0000000000..a9ee7258cc Binary files /dev/null and b/tools/update-packaging/test/to/{foodir/same.bin differ diff --git a/tools/update-packaging/test/to/{foodir/same.txt b/tools/update-packaging/test/to/{foodir/same.txt new file mode 100644 index 0000000000..0ed0d50124 --- /dev/null +++ b/tools/update-packaging/test/to/{foodir/same.txt @@ -0,0 +1 @@ +file is same diff --git a/tools/update-packaging/test/to/{foodir/update.manifest b/tools/update-packaging/test/to/{foodir/update.manifest new file mode 100644 index 0000000000..73364fdca1 --- /dev/null +++ b/tools/update-packaging/test/to/{foodir/update.manifest @@ -0,0 +1 @@ +to file shouldn't go in update -- cgit v1.2.3