Mac v2 signing - Bug 1059567 - Packaging changes for the move of removed-files file from Contents/MacOS to Contents/Resources. r=bbondy, r=nthomas

--HG--
rename : tools/update-packaging/test/from-mac/Contents/MacOS/application.ini => tools/update-packaging/test/from-mac/Contents/Resources/application.ini
rename : tools/update-packaging/test/from-mac/Contents/MacOS/distribution/extensions/diff/diff-patch-larger-than-file.txt => tools/update-packaging/test/from-mac/Contents/Resources/distribution/extensions/diff/diff-patch-larger-than-file.txt
rename : tools/update-packaging/test/from-mac/Contents/MacOS/extensions/diff/diff-patch-larger-than-file.txt => tools/update-packaging/test/from-mac/Contents/Resources/extensions/diff/diff-patch-larger-than-file.txt
rename : tools/update-packaging/test/from-mac/Contents/MacOS/readme.txt => tools/update-packaging/test/from-mac/Contents/Resources/readme.txt
rename : tools/update-packaging/test/from-mac/Contents/MacOS/removed.txt => tools/update-packaging/test/from-mac/Contents/Resources/removed.txt
rename : tools/update-packaging/test/from-mac/Contents/MacOS/same.txt => tools/update-packaging/test/from-mac/Contents/Resources/same.txt
rename : tools/update-packaging/test/from-mac/Contents/MacOS/searchplugins/diff/diff-patch-larger-than-file.txt => tools/update-packaging/test/from-mac/Contents/Resources/searchplugins/diff/diff-patch-larger-than-file.txt
rename : tools/update-packaging/test/from-mac/Contents/MacOS/update-settings.ini => tools/update-packaging/test/from-mac/Contents/Resources/update-settings.ini
rename : tools/update-packaging/test/from-mac/Contents/MacOS/{foodir/channel-prefs.js => tools/update-packaging/test/from-mac/Contents/Resources/{foodir/channel-prefs.js
rename : tools/update-packaging/test/from-mac/Contents/MacOS/{foodir/force.txt => tools/update-packaging/test/from-mac/Contents/Resources/{foodir/force.txt
rename : tools/update-packaging/test/to-mac/Contents/MacOS/application.ini => tools/update-packaging/test/to-mac/Contents/Resources/application.ini
rename : tools/update-packaging/test/to-mac/Contents/MacOS/distribution/extensions/added/file.txt => tools/update-packaging/test/to-mac/Contents/Resources/distribution/extensions/added/file.txt
rename : tools/update-packaging/test/to-mac/Contents/MacOS/distribution/extensions/diff/diff-patch-larger-than-file.txt => tools/update-packaging/test/to-mac/Contents/Resources/distribution/extensions/diff/diff-patch-larger-than-file.txt
rename : tools/update-packaging/test/to-mac/Contents/MacOS/extensions/added/file.txt => tools/update-packaging/test/to-mac/Contents/Resources/extensions/added/file.txt
rename : tools/update-packaging/test/to-mac/Contents/MacOS/extensions/diff/diff-patch-larger-than-file.txt => tools/update-packaging/test/to-mac/Contents/Resources/extensions/diff/diff-patch-larger-than-file.txt
rename : tools/update-packaging/test/to-mac/Contents/MacOS/readme.txt => tools/update-packaging/test/to-mac/Contents/Resources/readme.txt
rename : tools/update-packaging/test/to-mac/Contents/MacOS/removed-files => tools/update-packaging/test/to-mac/Contents/Resources/removed-files
rename : tools/update-packaging/test/to-mac/Contents/MacOS/same.txt => tools/update-packaging/test/to-mac/Contents/Resources/same.txt
rename : tools/update-packaging/test/to-mac/Contents/MacOS/searchplugins/added/file.txt => tools/update-packaging/test/to-mac/Contents/Resources/searchplugins/added/file.txt
rename : tools/update-packaging/test/to-mac/Contents/MacOS/searchplugins/diff/diff-patch-larger-than-file.txt => tools/update-packaging/test/to-mac/Contents/Resources/searchplugins/diff/diff-patch-larger-than-file.txt
rename : tools/update-packaging/test/to-mac/Contents/MacOS/update-settings.ini => tools/update-packaging/test/to-mac/Contents/Resources/update-settings.ini
rename : tools/update-packaging/test/to-mac/Contents/MacOS/{foodir/channel-prefs.js => tools/update-packaging/test/to-mac/Contents/Resources/{foodir/channel-prefs.js
rename : tools/update-packaging/test/to-mac/Contents/MacOS/{foodir/force.txt => tools/update-packaging/test/to-mac/Contents/Resources/{foodir/force.txt
This commit is contained in:
Robert Strong 2014-09-29 11:52:04 -07:00
Родитель 2230b3918e
Коммит e401342c35
32 изменённых файлов: 128 добавлений и 145 удалений

Просмотреть файл

@ -52,51 +52,66 @@
#
# Example: path/to/dir/*
# Due to Apple Mac OS X packaging requirements files that are in the same
# directory on other platforms must be located in different directories on
# Mac OS X. The following defines allow specifying the Mac OS X bundle
# location which also work on other platforms.
#
# @DIR_MACOS@
# Equals Contents/MacOS/ on Mac OX X and is an empty string on other platforms.
#
# @DIR_RESOURCES@
# Equals Contents/Resources/ on Mac OX X and is an empty string on other
# platforms.
# File Removals
# This is located under the "distribution/" directory and it was added before
# Firefox 27
distribution/extensions/testpilot@labs.mozilla.com.xpi
@DIR_MACOS@distribution/extensions/testpilot@labs.mozilla.com.xpi
# Some users are ending up with unpacked chrome instead of omni.ja. This
# causes updates to break badly, see bug 1063052. Removing the toplevel
# chrome.manifest causes us to use the updated omni.ja.
#ifndef MOZ_GTK
chrome.manifest
@DIR_MACOS@chrome.manifest
#ifdef XP_MACOSX
@DIR_RESOURCES@chrome.manifest
#endif
#endif
# Directory removals
chrome/
@DIR_MACOS@chrome/
#ifdef XP_UNIX
#ifndef XP_MACOSX
chrome/icons/
chrome/icons/default/
#endif
#endif
chrome/overlayinfo/
components/
defaults/autoconfig/
defaults/profile/
defaults/profile/chrome/
defaults/profile/US/*
defaults/profile/extensions/
defaults/profile/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/*
distribution/
distribution/extensions/
extensions/
extensions/inspector@mozilla.org/*
extensions/reporter@mozilla.org/*
extensions/talkback@mozilla.org/*
extensions/testpilot@labs.mozilla.com/*
extensions/{641d8d09-7dda-4850-8228-ac0ab65e2ac9}/*
extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/*
greprefs/
jssubloader/
modules/
@DIR_MACOS@chrome/overlayinfo/
@DIR_MACOS@components/
@DIR_MACOS@defaults/autoconfig/
@DIR_MACOS@defaults/profile/
@DIR_MACOS@defaults/profile/chrome/
@DIR_MACOS@defaults/profile/US/*
@DIR_MACOS@defaults/profile/extensions/
@DIR_MACOS@defaults/profile/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/*
@DIR_MACOS@distribution/
@DIR_MACOS@distribution/extensions/
@DIR_MACOS@extensions/
@DIR_MACOS@extensions/inspector@mozilla.org/*
@DIR_MACOS@extensions/reporter@mozilla.org/*
@DIR_MACOS@extensions/talkback@mozilla.org/*
@DIR_MACOS@extensions/testpilot@labs.mozilla.com/*
@DIR_MACOS@extensions/{641d8d09-7dda-4850-8228-ac0ab65e2ac9}/*
@DIR_MACOS@extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/*
@DIR_MACOS@greprefs/
@DIR_MACOS@jssubloader/
@DIR_MACOS@modules/
#ifdef XP_MACOSX
plugins/Default Plugin.plugin/*
plugins/JavaEmbeddingPlugin.bundle/*
plugins/MRJPlugin.plugin/*
../Plug-Ins/PrintPDE.plugin/*
@DIR_MACOS@plugins/Default Plugin.plugin/*
@DIR_MACOS@plugins/JavaEmbeddingPlugin.bundle/*
@DIR_MACOS@plugins/MRJPlugin.plugin/*
Contents/Plug-Ins/PrintPDE.plugin/*
#endif
searchplugins/*
webapprt/components/
@DIR_MACOS@searchplugins/*
@DIR_MACOS@webapprt/components/

Просмотреть файл

@ -608,6 +608,12 @@ endif
DEFINES += -DDLL_PREFIX=$(DLL_PREFIX) -DDLL_SUFFIX=$(DLL_SUFFIX) -DBIN_SUFFIX=$(BIN_SUFFIX)
ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
DEFINES += -DDIR_MACOS=Contents/MacOS/ -DDIR_RESOURCES=Contents/Resources/
else
DEFINES += -DDIR_MACOS= -DDIR_RESOURCES=
endif
ifdef MOZ_FOLD_LIBS
DEFINES += -DMOZ_FOLD_LIBS=1
endif

Просмотреть файл

@ -130,11 +130,9 @@ append_remove_instructions() {
filev3="$3"
if [ -f "$dir/removed-files" ]; then
prefix=
listfile="$dir/removed-files"
elif [ -f "$dir/Contents/MacOS/removed-files" ]; then
prefix=Contents/MacOS/
listfile="$dir/Contents/MacOS/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.
@ -149,33 +147,20 @@ append_remove_instructions() {
if [ -n "$f" ]; then
# Exclude comments
if [ ! $(echo "$f" | grep -c '^#') = 1 ]; then
# Normalize the path to the root of the Mac OS X bundle if necessary
fixedprefix="$prefix"
if [ $prefix ]; then
if [ $(echo "$f" | grep -c '^\.\./') = 1 ]; then
if [ $(echo "$f" | grep -c '^\.\./\.\./') = 1 ]; then
f=$(echo $f | sed -e 's:^\.\.\/\.\.\/::')
fixedprefix=""
else
f=$(echo $f | sed -e 's:^\.\.\/::')
fixedprefix=$(echo "$prefix" | sed -e 's:[^\/]*\/$::')
fi
fi
fi
if [ $(echo "$f" | grep -c '\/$') = 1 ]; then
notice " rmdir \"$fixedprefix$f\""
echo "rmdir \"$fixedprefix$f\"" >> $filev2
echo "rmdir \"$fixedprefix$f\"" >> $filev3
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 \"$fixedprefix$f\""
echo "rmrfdir \"$fixedprefix$f\"" >> $filev2
echo "rmrfdir \"$fixedprefix$f\"" >> $filev3
notice " rmrfdir \"$f\""
echo "rmrfdir \"$f\"" >> $filev2
echo "rmrfdir \"$f\"" >> $filev3
else
notice " remove \"$fixedprefix$f\""
echo "remove \"$fixedprefix$f\"" >> $filev2
echo "remove \"$fixedprefix$f\"" >> $filev3
notice " remove \"$f\""
echo "remove \"$f\"" >> $filev2
echo "remove \"$f\"" >> $filev3
fi
fi
fi

Просмотреть файл

@ -144,17 +144,6 @@ num_removes=0
for ((i=0; $i<$num_oldfiles; i=$i+1)); do
f="${oldfiles[$i]}"
# This file is created by Talkback, so we can ignore it
if [ "$f" = "readme.txt" ]; then
continue 1
fi
# removed-files is excluded by make_incremental_updates.py so it is excluded
# here for consistency.
if [ `basename $f` = "removed-files" ]; then
continue 1
fi
# If this file exists in the new directory as well, then check if it differs.
if [ -f "$newdir/$f" ]; then
@ -219,12 +208,6 @@ num_newfiles=${#newfiles[*]}
for ((i=0; $i<$num_newfiles; i=$i+1)); do
f="${newfiles[$i]}"
# removed-files is excluded by make_incremental_updates.py so it is excluded
# here for consistency.
if [ `basename $f` = "removed-files" ]; then
continue 1
fi
# If we've already tested this file, then skip it
for ((j=0; $j<$num_oldfiles; j=$j+1)); do
if [ "$f" = "${oldfiles[j]}" ]; then

Просмотреть файл

@ -300,29 +300,21 @@ def process_explicit_remove_files(dir_path, patch_info):
# Windows and linux have this file at the root of the dir
list_file_path = os.path.join(dir_path, "removed-files")
prefix=""
if not os.path.exists(list_file_path):
# On Mac removed-files contains relative paths from Contents/MacOS/
prefix= "Contents/MacOS"
list_file_path = os.path.join(dir_path, prefix+"/removed-files")
list_file_path = os.path.join(dir_path, "Contents/Resources/removed-files")
if (os.path.exists(list_file_path)):
list_file = bz2.BZ2File(list_file_path,"r") # throws if doesn't exist
list_file = open(list_file_path,"r") # throws if doesn't exist
lines = []
for line in list_file:
lines.append(line.strip())
list_file.close()
lines.sort(reverse=True)
for line in lines:
# Exclude any blank and comment lines.
if line and not line.startswith("#"):
if prefix != "":
if line.startswith("../"):
line = line.replace("../../", "")
line = line.replace("../", "Contents/")
else:
line = os.path.join(prefix,line)
# Python on windows uses \ for path separators and the update
# manifests expects / for path separators on all platforms.
line = line.replace("\\", "/")
@ -404,27 +396,27 @@ def create_partial_patch(from_dir_path, to_dir_path, patch_filename, shas, patch
if not os.path.exists(patch_file_dir):
os.makedirs(patch_file_dir)
shutil.copy2(os.path.join(patch_info.work_dir,"output.mar"), patch_filename)
return patch_filename
def usage():
print "-h for help"
print "-f for patchlist_file"
def get_buildid(work_dir, platform):
def get_buildid(work_dir):
""" extracts buildid from MAR
TODO: this should handle 1.8 branch too
"""
if platform == 'mac':
ini = '%s/Contents/MacOS/application.ini' % work_dir
else:
ini = '%s/application.ini' % work_dir
ini = '%s/application.ini' % work_dir
if not os.path.exists(ini):
print 'WARNING: application.ini not found, cannot find build ID'
return ''
ini = '%s/Contents/Resources/application.ini' % work_dir
if not os.path.exists(ini):
print 'WARNING: application.ini not found, cannot find build ID'
return ''
file = bz2.BZ2File(ini)
for line in file:
if line.find('BuildID') == 0:
return line.strip().split('=')[1]
if line.find('BuildID') == 0:
return line.strip().split('=')[1]
print 'WARNING: cannot find build ID in application.ini'
return ''
@ -475,7 +467,7 @@ def create_partial_patches(patches):
os.mkdir(work_dir_from)
extract_mar(from_filename,work_dir_from)
from_decoded = decode_filename(from_filename)
from_buildid = get_buildid(work_dir_from, from_decoded['platform'])
from_buildid = get_buildid(work_dir_from)
from_shasum = sha.sha(open(from_filename).read()).hexdigest()
from_size = str(os.path.getsize(to_filename))
@ -484,13 +476,13 @@ def create_partial_patches(patches):
os.mkdir(work_dir_to)
extract_mar(to_filename, work_dir_to)
to_decoded = decode_filename(from_filename)
to_buildid = get_buildid(work_dir_to, to_decoded['platform'])
to_buildid = get_buildid(work_dir_to)
to_shasum = sha.sha(open(to_filename).read()).hexdigest()
to_size = str(os.path.getsize(to_filename))
mar_extract_time = time.time()
partial_filename = create_partial_patch(work_dir_from, work_dir_to, patch_filename, shas, PatchInfo(work_dir, ['update.manifest','updatev2.manifest','updatev3.manifest','removed-files'],['/readme.txt']),forced_updates,['channel-prefs.js','update-settings.ini'])
partial_filename = create_partial_patch(work_dir_from, work_dir_to, patch_filename, shas, PatchInfo(work_dir, ['update.manifest','updatev2.manifest','updatev3.manifest'],[]),forced_updates,['channel-prefs.js','update-settings.ini'])
partial_buildid = to_buildid
partial_shasum = sha.sha(open(partial_filename).read()).hexdigest()
partial_size = str(os.path.getsize(partial_filename))

Просмотреть файл

@ -131,11 +131,9 @@ append_remove_instructions() {
filev3="$3"
if [ -f "$dir/removed-files" ]; then
prefix=
listfile="$dir/removed-files"
elif [ -f "$dir/Contents/MacOS/removed-files" ]; then
prefix=Contents/MacOS/
listfile="$dir/Contents/MacOS/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.
@ -150,33 +148,20 @@ append_remove_instructions() {
if [ -n "$f" ]; then
# Exclude comments
if [ ! $(echo "$f" | grep -c '^#') = 1 ]; then
# Normalize the path to the root of the Mac OS X bundle if necessary
fixedprefix="$prefix"
if [ $prefix ]; then
if [ $(echo "$f" | grep -c '^\.\./') = 1 ]; then
if [ $(echo "$f" | grep -c '^\.\./\.\./') = 1 ]; then
f=$(echo $f | sed -e 's:^\.\.\/\.\.\/::')
fixedprefix=""
else
f=$(echo $f | sed -e 's:^\.\.\/::')
fixedprefix=$(echo "$prefix" | sed -e 's:[^\/]*\/$::')
fi
fi
fi
if [ $(echo "$f" | grep -c '\/$') = 1 ]; then
notice " rmdir \"$fixedprefix$f\""
echo "rmdir \"$fixedprefix$f\"" >> $filev2
echo "rmdir \"$fixedprefix$f\"" >> $filev3
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 \"$fixedprefix$f\""
echo "rmrfdir \"$fixedprefix$f\"" >> $filev2
echo "rmrfdir \"$fixedprefix$f\"" >> $filev3
notice " rmrfdir \"$f\""
echo "rmrfdir \"$f\"" >> $filev2
echo "rmrfdir \"$f\"" >> $filev3
else
notice " remove \"$fixedprefix$f\""
echo "remove \"$fixedprefix$f\"" >> $filev2
echo "remove \"$fixedprefix$f\"" >> $filev3
notice " remove \"$f\""
echo "remove \"$f\"" >> $filev2
echo "remove \"$f\"" >> $filev3
fi
fi
fi

Просмотреть файл

@ -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

Просмотреть файл

@ -0,0 +1 @@
removed

Просмотреть файл

@ -1,14 +1,8 @@
removed1.txt
removed2.bin
recursivedir/meh/*
removed3-foo.txt
dir/
this file has spaces
notherdir/
extra-spaces
lastFile

Просмотреть файл

@ -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

Просмотреть файл

@ -11,7 +11,7 @@ from make_incremental_updates import PatchInfo, MarFileEntry
class TestPatchInfo(unittest.TestCase):
def setUp(self):
self.work_dir = 'work_dir'
self.file_exclusion_list = ['update.manifest','updatev2.manifest','updatev3.manifest','removed-files']
self.file_exclusion_list = ['update.manifest','updatev2.manifest','updatev3.manifest']
self.path_exclusion_list = ['/readme.txt']
self.patch_info = PatchInfo(self.work_dir, self.file_exclusion_list, self.path_exclusion_list)
@ -99,7 +99,7 @@ class TestMarFileEntry(unittest.TestCase):
class TestMakeIncrementalUpdates(unittest.TestCase):
def setUp(self):
work_dir = '.'
self.patch_info = PatchInfo(work_dir, ['update.manifest','updatev2.manifest','updatev3.manifest','removed-files'],['/readme.txt'])
self.patch_info = PatchInfo(work_dir, ['update.manifest','updatev2.manifest','updatev3.manifest'],['/readme.txt'])
root_path = '/'
filename = 'test.file'
self.mar_file_entry = MarFileEntry(root_path, filename)