1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/tools/update-packaging/Makefile.in Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,101 @@ 1.4 +# vim:set ts=8 sw=8 sts=8 noet: 1.5 +# 1.6 +# This Source Code Form is subject to the terms of the Mozilla Public 1.7 +# License, v. 2.0. If a copy of the MPL was not distributed with this 1.8 +# file, You can obtain one at http://mozilla.org/MPL/2.0/. 1.9 + 1.10 +STANDALONE_MAKEFILE := 1 1.11 + 1.12 +# input location for the build, usually $(DIST) 1.13 +# set this to $(DIST)/l10n-stage per override for L10n builds 1.14 +PACKAGE_BASE_DIR = $(DIST) 1.15 + 1.16 +# Default output location for update archive 1.17 +STAGE_DIR = $(DIST)/$(PKG_UPDATE_PATH) 1.18 + 1.19 +ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT)) 1.20 +ifdef UNIVERSAL_BINARY 1.21 +ifneq (,$(filter %/l10n-stage,$(PACKAGE_BASE_DIR))) 1.22 +PACKAGE_DIR = $(PACKAGE_BASE_DIR)/$(MOZ_PKG_DIR)/$(MOZ_MACBUNDLE_NAME) 1.23 +else 1.24 +PACKAGE_DIR = $(PACKAGE_BASE_DIR)/universal/$(MOZ_PKG_DIR)/$(MOZ_MACBUNDLE_NAME) 1.25 +endif 1.26 +else 1.27 +PACKAGE_DIR = $(PACKAGE_BASE_DIR)/$(MOZ_PKG_DIR)/$(MOZ_MACBUNDLE_NAME) 1.28 +endif 1.29 +else 1.30 +PACKAGE_DIR = $(PACKAGE_BASE_DIR)/$(MOZ_PKG_DIR) 1.31 +endif 1.32 + 1.33 +MAR_BIN = $(LIBXUL_DIST)/host/bin/mar$(HOST_BIN_SUFFIX) 1.34 +MBSDIFF_BIN = $(LIBXUL_DIST)/host/bin/mbsdiff$(HOST_BIN_SUFFIX) 1.35 + 1.36 +OVERRIDE_DEFAULT_GOAL := full-update 1.37 +full-update:: complete-patch $(if $(MOZ_AUTOMATION_UPDATE_PACKAGING),automation-partial-patch) 1.38 + 1.39 +ifeq ($(OS_TARGET), WINNT) 1.40 +MOZ_PKG_FORMAT := SFX7Z 1.41 +UNPACKAGE = '$(subst $(DIST),$(_ABS_DIST),$(INSTALLER_PACKAGE))' 1.42 +ifdef AB_CD 1.43 +UNPACKAGE = '$(PACKAGE_BASE_DIR)/$(PACKAGE)' 1.44 +endif 1.45 +endif 1.46 + 1.47 +include $(topsrcdir)/config/rules.mk 1.48 +include $(topsrcdir)/toolkit/mozapps/installer/signing.mk 1.49 +include $(topsrcdir)/toolkit/mozapps/installer/packager.mk 1.50 + 1.51 +ifdef MOZ_EXTERNAL_SIGNING_FORMAT 1.52 +# We can't use signcode on mar files 1.53 +MOZ_EXTERNAL_SIGNING_FORMAT := $(filter-out signcode,$(MOZ_EXTERNAL_SIGNING_FORMAT)) 1.54 +MOZ_EXTERNAL_SIGNING_FORMAT := mar $(MOZ_EXTERNAL_SIGNING_FORMAT) 1.55 +endif 1.56 + 1.57 +dir-stage := $(call mkdir_deps,$(STAGE_DIR)) 1.58 + 1.59 +complete-patch:: $(dir-stage) 1.60 +ifeq ($(OS_TARGET), WINNT) 1.61 + test -f $(UNPACKAGE) 1.62 + $(RM) -rf '$(PACKAGE_DIR)' 1.63 + cd $(PACKAGE_BASE_DIR) && $(INNER_UNMAKE_PACKAGE) 1.64 +endif 1.65 + MAR=$(MAR_BIN) \ 1.66 + $(srcdir)/make_full_update.sh \ 1.67 + '$(DIST)/$(COMPLETE_MAR)' \ 1.68 + '$(PACKAGE_DIR)' 1.69 +ifdef MOZ_SIGN_CMD 1.70 + $(MOZ_SIGN_CMD) -f mar '$(DIST)/$(COMPLETE_MAR)' 1.71 +endif 1.72 + 1.73 +partial-patch:: $(dir-stage) 1.74 + MAR=$(MAR_BIN) \ 1.75 + MBSDIFF=$(MBSDIFF_BIN) \ 1.76 + $(srcdir)/make_incremental_update.sh \ 1.77 + '$(STAGE_DIR)/$(PKG_UPDATE_BASENAME).partial.$(SRC_BUILD_ID)-$(DST_BUILD_ID).mar' \ 1.78 + '$(SRC_BUILD)' \ 1.79 + '$(DST_BUILD)' 1.80 +ifdef MOZ_SIGN_CMD 1.81 + $(MOZ_SIGN_CMD) -f mar '$(STAGE_DIR)/$(PKG_UPDATE_BASENAME).partial.$(SRC_BUILD_ID)-$(DST_BUILD_ID).mar' 1.82 +endif 1.83 + 1.84 +automation-partial-patch: complete-patch 1.85 + rm -rf current current.work previous 1.86 + mkdir current previous 1.87 + latestmar=$$(ssh -l $(UPLOAD_USER) -i $(UPLOAD_SSH_KEY) $(UPLOAD_HOST) 'ls -1t $(LATEST_MAR_DIR) | grep $(MOZ_PKG_PLATFORM).complete.mar$$ | head -n 1'); \ 1.88 + if test -n "$$latestmar"; then \ 1.89 + wget -O $(STAGE_DIR)/previous.mar http://$(UPLOAD_HOST)/$(LATEST_MAR_DIR)/$$latestmar && \ 1.90 + (cd previous; \ 1.91 + MAR=$(MAR_BIN) perl $(topsrcdir)/tools/update-packaging/unwrap_full_update.pl '../$(STAGE_DIR)/previous.mar') && \ 1.92 + (cd current; \ 1.93 + MAR=$(MAR_BIN) perl $(topsrcdir)/tools/update-packaging/unwrap_full_update.pl '../$(DIST)/$(COMPLETE_MAR)') && \ 1.94 + find current -name \*.pgc -print -delete && \ 1.95 + find previous -name \*.pgc -print -delete && \ 1.96 + rm -f $(STAGE_DIR)/*.partial.*.mar && \ 1.97 + SRC_BUILD_ID=$$(python $(topsrcdir)/config/printconfigsetting.py $$(find previous -maxdepth 4 -type f -name application.ini) App BuildID) \ 1.98 + DST_BUILD_ID=$$(cat $(DEPTH)/config/buildid) \ 1.99 + SRC_BUILD=previous DST_BUILD=current \ 1.100 + $(MAKE) partial-patch && \ 1.101 + rm -f $(STAGE_DIR)/previous.mar; \ 1.102 + else \ 1.103 + echo "No previous MAR found; not creating a partial MAR"; \ 1.104 + fi