Bug 1407285 - Support spaces in MOZ_MACBUNDLE_NAME and in various Makefile and tools r?glandium
MozReview-Commit-ID: Eda1qiPCTJ0
--- a/browser/app/Makefile.in
+++ b/browser/app/Makefile.in
@@ -73,31 +73,31 @@ LPROJ := Contents/Resources/$(LPROJ_ROOT
clean clobber repackage::
$(RM) -r $(dist_dest)
MAC_BUNDLE_VERSION = $(shell $(PYTHON) $(srcdir)/macversion.py --version=$(MOZ_APP_VERSION) --buildid=$(DEPTH)/buildid.h)
.PHONY: repackage
tools repackage:: $(DIST)/bin/$(MOZ_APP_NAME) features
rm -rf $(dist_dest)
- $(MKDIR) -p $(dist_dest)/Contents/MacOS
- $(MKDIR) -p $(dist_dest)/$(LPROJ)
- rsync -a --exclude '*.in' $(srcdir)/macbuild/Contents $(dist_dest) --exclude English.lproj
- rsync -a --exclude '*.in' $(srcdir)/macbuild/Contents/Resources/English.lproj/ $(dist_dest)/$(LPROJ)
- sed -e 's/%APP_VERSION%/$(MOZ_APP_VERSION)/' -e 's/%MAC_APP_NAME%/$(MAC_APP_NAME)/' -e 's/%MOZ_MACBUNDLE_ID%/$(MOZ_MACBUNDLE_ID)/' -e 's/%MAC_BUNDLE_VERSION%/$(MAC_BUNDLE_VERSION)/' -e 's|%MOZ_DEVELOPER_REPO_PATH%|$(topsrcdir)|' -e 's|%MOZ_DEVELOPER_OBJ_PATH%|$(topobjdir)|' $(srcdir)/macbuild/Contents/Info.plist.in > $(dist_dest)/Contents/Info.plist
- sed -e 's/%MAC_APP_NAME%/$(MAC_APP_NAME)/' $(srcdir)/macbuild/Contents/Resources/English.lproj/InfoPlist.strings.in | iconv -f UTF-8 -t UTF-16 > $(dist_dest)/$(LPROJ)/InfoPlist.strings
- rsync -a --exclude-from='$(srcdir)/macbuild/Contents/MacOS-files.in' $(DIST)/bin/ $(dist_dest)/Contents/Resources
- rsync -a --include-from='$(srcdir)/macbuild/Contents/MacOS-files.in' --exclude '*' $(DIST)/bin/ $(dist_dest)/Contents/MacOS
- $(RM) $(dist_dest)/Contents/MacOS/$(MOZ_APP_NAME)
- rsync -aL $(DIST)/bin/$(MOZ_APP_NAME) $(dist_dest)/Contents/MacOS
- cp -RL $(DIST)/branding/firefox.icns $(dist_dest)/Contents/Resources/firefox.icns
- cp -RL $(DIST)/branding/document.icns $(dist_dest)/Contents/Resources/document.icns
- $(MKDIR) -p $(dist_dest)/Contents/Library/LaunchServices
+ $(MKDIR) -p '$(dist_dest)/Contents/MacOS'
+ $(MKDIR) -p '$(dist_dest)/$(LPROJ)'
+ rsync -a --exclude '*.in' $(srcdir)/macbuild/Contents '$(dist_dest)' --exclude English.lproj
+ rsync -a --exclude '*.in' $(srcdir)/macbuild/Contents/Resources/English.lproj/ '$(dist_dest)/$(LPROJ)'
+ sed -e 's/%APP_VERSION%/$(MOZ_APP_VERSION)/' -e 's/%MAC_APP_NAME%/$(MAC_APP_NAME)/' -e 's/%MOZ_MACBUNDLE_ID%/$(MOZ_MACBUNDLE_ID)/' -e 's/%MAC_BUNDLE_VERSION%/$(MAC_BUNDLE_VERSION)/' -e 's|%MOZ_DEVELOPER_REPO_PATH%|$(topsrcdir)|' -e 's|%MOZ_DEVELOPER_OBJ_PATH%|$(topobjdir)|' $(srcdir)/macbuild/Contents/Info.plist.in > '$(dist_dest)/Contents/Info.plist'
+ sed -e 's/%MAC_APP_NAME%/$(MAC_APP_NAME)/' $(srcdir)/macbuild/Contents/Resources/English.lproj/InfoPlist.strings.in | iconv -f UTF-8 -t UTF-16 > '$(dist_dest)/$(LPROJ)/InfoPlist.strings'
+ rsync -a --exclude-from='$(srcdir)/macbuild/Contents/MacOS-files.in' $(DIST)/bin/ '$(dist_dest)/Contents/Resources'
+ rsync -a --include-from='$(srcdir)/macbuild/Contents/MacOS-files.in' --exclude '*' $(DIST)/bin/ '$(dist_dest)/Contents/MacOS'
+ $(RM) '$(dist_dest)/Contents/MacOS/$(MOZ_APP_NAME)'
+ rsync -aL $(DIST)/bin/$(MOZ_APP_NAME) '$(dist_dest)/Contents/MacOS'
+ cp -RL $(DIST)/branding/firefox.icns '$(dist_dest)/Contents/Resources/firefox.icns'
+ cp -RL $(DIST)/branding/document.icns '$(dist_dest)/Contents/Resources/document.icns'
+ $(MKDIR) -p '$(dist_dest)/Contents/Library/LaunchServices'
ifdef MOZ_UPDATER
- mv -f $(dist_dest)/Contents/MacOS/updater.app/Contents/MacOS/org.mozilla.updater $(dist_dest)/Contents/Library/LaunchServices
- ln -s ../../../../Library/LaunchServices/org.mozilla.updater $(dist_dest)/Contents/MacOS/updater.app/Contents/MacOS/org.mozilla.updater
+ mv -f '$(dist_dest)/Contents/MacOS/updater.app/Contents/MacOS/org.mozilla.updater' '$(dist_dest)/Contents/Library/LaunchServices'
+ ln -s ../../../../Library/LaunchServices/org.mozilla.updater '$(dist_dest)/Contents/MacOS/updater.app/Contents/MacOS/org.mozilla.updater'
endif
- printf APPLMOZB > $(dist_dest)/Contents/PkgInfo
+ printf APPLMOZB > '$(dist_dest)/Contents/PkgInfo'
endif
.PHONY: features
tools features::
$(PYTHON) -c 'import os, json; listing = {"system": sorted(os.listdir("$(DIST)/bin/browser/features"))}; print json.dumps(listing)' > $(DIST)/bin/browser/chrome/browser/content/browser/built_in_addons.json
--- a/browser/installer/Makefile.in
+++ b/browser/installer/Makefile.in
@@ -105,29 +105,29 @@ MOZ_PKG_MAC_ICON=branding/disk.icns
MOZ_PKG_MAC_EXTRA=--symlink '/Applications:/ '
endif
include $(topsrcdir)/toolkit/mozapps/installer/signing.mk
include $(topsrcdir)/toolkit/mozapps/installer/packager.mk
ifeq (bundle, $(MOZ_FS_LAYOUT))
BINPATH = $(_BINPATH)
-DEFINES += -DAPPNAME=$(_APPNAME)
+DEFINES += -DAPPNAME='$(_APPNAME)'
else
# Every other platform just winds up in dist/bin
BINPATH = bin
endif
-DEFINES += -DBINPATH=$(BINPATH)
+DEFINES += -DBINPATH='$(BINPATH)'
ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
RESPATH = $(_APPNAME)/Contents/Resources
else
RESPATH = $(BINPATH)
endif
-DEFINES += -DRESPATH=$(RESPATH)
+DEFINES += -DRESPATH="$(RESPATH)"
LPROJ_ROOT = $(firstword $(subst -, ,$(AB_CD)))
ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
ifeq (zh-TW,$(AB_CD))
LPROJ_ROOT := $(subst -,_,$(AB_CD))
endif
endif
DEFINES += -DLPROJ_ROOT=$(LPROJ_ROOT)
--- a/browser/locales/Makefile.in
+++ b/browser/locales/Makefile.in
@@ -166,20 +166,20 @@ else
sed -e 's/%MOZ_APP_DISPLAYNAME%/$(MOZ_APP_DISPLAYNAME)/' > \
$(FINAL_TARGET)/../updater.ini
endif
endif
ident:
@printf 'fx_revision '
@$(PYTHON) $(topsrcdir)/config/printconfigsetting.py \
- $(STAGEDIST)/application.ini App SourceStamp
+ '$(STAGEDIST)'/application.ini App SourceStamp
@printf 'buildid '
@$(PYTHON) $(topsrcdir)/config/printconfigsetting.py \
- $(STAGEDIST)/application.ini App BuildID
+ '$(STAGEDIST)'/application.ini App BuildID
# test target, depends on make package
# try to repack x-test, with just toolkit/defines.inc being there
l10n-check:: INNER_UNMAKE_PACKAGE=true
l10n-check::
$(RM) -rf x-test
$(NSINSTALL) -D x-test/toolkit
echo '#define MOZ_LANG_TITLE Just testing' > x-test/toolkit/defines.inc
--- a/old-configure.in
+++ b/old-configure.in
@@ -4532,23 +4532,23 @@ fi
dnl ========================================================
dnl = Mac bundle name prefix
dnl ========================================================
MOZ_ARG_WITH_STRING(macbundlename-prefix,
[ --with-macbundlename-prefix=prefix
Prefix for MOZ_MACBUNDLE_NAME],
[ MOZ_MACBUNDLE_NAME_PREFIX="$withval"])
-MOZ_MACBUNDLE_NAME=`echo $MOZ_APP_DISPLAYNAME | tr -d ' '`
+MOZ_MACBUNDLE_NAME=$MOZ_APP_DISPLAYNAME
if test "$MOZ_MACBUNDLE_NAME_PREFIX"; then
- MOZ_MACBUNDLE_NAME="${MOZ_MACBUNDLE_NAME_PREFIX}${MOZ_MACBUNDLE_NAME}"
+ MOZ_MACBUNDLE_NAME="${MOZ_MACBUNDLE_NAME_PREFIX} ${MOZ_MACBUNDLE_NAME}"
fi
if test "$MOZ_DEBUG"; then
- MOZ_MACBUNDLE_NAME=${MOZ_MACBUNDLE_NAME}Debug.app
+ MOZ_MACBUNDLE_NAME="${MOZ_MACBUNDLE_NAME} Debug.app"
else
MOZ_MACBUNDLE_NAME=${MOZ_MACBUNDLE_NAME}.app
fi
AC_SUBST(MOZ_MACBUNDLE_NAME)
dnl Mac bundle identifier (based on MOZ_APP_DISPLAYNAME)
# If the MOZ_MACBUNDLE_ID is defined in the configure.sh, use it
# Otherwise, use MOZ_APP_DISPLAYNAME
--- a/toolkit/mozapps/installer/packager.mk
+++ b/toolkit/mozapps/installer/packager.mk
@@ -41,17 +41,17 @@ stage-package: multilocale.json locale-m
$(if $(filter-out 0,$(MOZ_PKG_FATAL_WARNINGS)),,--ignore-errors) \
$(if $(MOZ_PACKAGER_MINIFY),--minify) \
$(if $(MOZ_PACKAGER_MINIFY_JS),--minify-js \
$(addprefix --js-binary ,$(JS_BINARY)) \
) \
$(if $(JARLOG_DIR),$(addprefix --jarlog ,$(wildcard $(JARLOG_FILE_AB_CD)))) \
$(if $(OPTIMIZEJARS),--optimizejars) \
$(addprefix --compress ,$(JAR_COMPRESSION)) \
- $(MOZ_PKG_MANIFEST) $(DIST) $(DIST)/$(MOZ_PKG_DIR)$(if $(MOZ_PKG_MANIFEST),,$(_BINPATH)) \
+ $(MOZ_PKG_MANIFEST) '$(DIST)' '$(DIST)'/$(MOZ_PKG_DIR)$(if $(MOZ_PKG_MANIFEST),,$(_BINPATH)) \
$(if $(filter omni,$(MOZ_PACKAGER_FORMAT)),$(if $(NON_OMNIJAR_FILES),--non-resource $(NON_OMNIJAR_FILES)))
$(PYTHON) $(MOZILLA_DIR)/toolkit/mozapps/installer/find-dupes.py $(DEFINES) $(ACDEFINES) $(MOZ_PKG_DUPEFLAGS) $(DIST)/$(MOZ_PKG_DIR)
ifndef MOZ_IS_COMM_TOPDIR
# Package mozharness
$(call py_action,test_archive, \
mozharness \
$(ABS_DIST)/$(PKG_PATH)$(MOZHARNESS_PACKAGE))
endif # MOZ_IS_COMM_TOPDIR
--- a/tools/update-packaging/common.sh
+++ b/tools/update-packaging/common.sh
@@ -78,25 +78,25 @@ make_add_instruction() {
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
+ echo "add-if \"$testdir\" \"$f\"" >> "$filev2"
if [ ! $filev3 = "" ]; then
- echo "add-if \"$testdir\" \"$f\"" >> $filev3
+ echo "add-if \"$testdir\" \"$f\"" >> "$filev3"
fi
else
notice " add \"$f\"$forced"
- echo "add \"$f\"" >> $filev2
+ echo "add \"$f\"" >> "$filev2"
if [ ! $filev3 = "" ]; then
- echo "add \"$f\"" >> $filev3
+ 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 \
@@ -133,22 +133,22 @@ make_patch_instruction() {
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
+ 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
+ echo "patch \"$f.patch\" \"$f\"" >> "$filev2"
+ echo "patch \"$f.patch\" \"$f\"" >> "$filev3"
fi
}
append_remove_instructions() {
dir="$1"
filev2="$2"
filev3="$3"
@@ -167,28 +167,28 @@ append_remove_instructions() {
# 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
+ 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
+ echo "rmrfdir \"$f\"" >> "$filev2"
+ echo "rmrfdir \"$f\"" >> "$filev3"
else
notice " remove \"$f\""
- echo "remove \"$f\"" >> $filev2
- echo "remove \"$f\"" >> $filev3
+ echo "remove \"$f\"" >> "$filev2"
+ echo "remove \"$f\"" >> "$filev3"
fi
fi
fi
done
fi
}
# List all files in the current directory, stripping leading "./"
--- a/tools/update-packaging/make_full_update.sh
+++ b/tools/update-packaging/make_full_update.sh
@@ -62,23 +62,23 @@ if [ ! -f "precomplete" ]; then
fi
fi
list_files files
popd
# Add the type of update to the beginning of the update manifests.
-> $updatemanifestv2
-> $updatemanifestv3
+> "$updatemanifestv2"
+> "$updatemanifestv3"
notice ""
notice "Adding type instruction to update manifests"
notice " type complete"
-echo "type \"complete\"" >> $updatemanifestv2
-echo "type \"complete\"" >> $updatemanifestv3
+echo "type \"complete\"" >> "$updatemanifestv2"
+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]}"