From 666c5f1557703ed24272387f9272321ded2ecf7f Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Thu, 7 Jan 2016 15:47:08 -0700 Subject: [PATCH] Windows code-signing and ".tgz" options for distro-build --- INSTALL.txt | 12 ++++++++++-- Makefile | 21 +++++++++++++++------ 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/INSTALL.txt b/INSTALL.txt index 3654772566..e7da5d0243 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -514,12 +514,20 @@ In more detail: `make'. The `README' value is used as a file name to download from the server. - For a Mac OS X installer, set `SIGN_IDENTITY' to sign the - installer, where the value of `SIGN_IDENTITY' is the name to + To create a ".tgz" archive instead of an installer (or any + platform), set `TGZ_MODE' to "--tgz". + + For a Mac OS X installer, set `SIGN_IDENTITY' as the name to which the signing certificate is associated. Set `MAC_PKG_MODE' to "--mac-pkg" to create a ".pkg" installer instead of a ".dmg" image. + For a Windows installer, set `OSSLSIGNCODE_ARGS_BASE64` as a + Base64 encoding of an S-expression for a list of argument strings + for `osslsigncode`. The `-n', `-t', `-in', and `-out' arguments + are provided to `osslsigncode` automatically, so supply the + others. + The `SERVER_CATALOG_PATH' and `SERVER_COLLECTS_PATH' makefile variables specify paths at `SERVER' plus `SERVER_PORT' to access the package catalog and pre-built "collects" tree needed for a diff --git a/Makefile b/Makefile index 50e6312fd5..550ec36e1d 100644 --- a/Makefile +++ b/Makefile @@ -234,6 +234,9 @@ VERSIONLESS_MODE = # instead of a ".dmg" for drag-and-drop installation: MAC_PKG_MODE = +# Set to "--tgz" to create a ".tgz" archive instead of an installer: +TGZ_MODE = + # Set to "--source --no-setup" to include packages in an installer # (or archive) only in source form: PKG_SOURCE_MODE = @@ -264,10 +267,14 @@ BUILD_STAMP = # the default as the version number: INSTALL_NAME = -# A signing identity (spaces allowed) for Mac OS X binaries in an +# For Mac OS X, a signing identity (spaces allowed) for binaries in an # installer: SIGN_IDENTITY = +# For Windows, `osslsigncode' arguments other than `-n', `-t', `-in', +# and `-out' as a Base64-encoded, S-expression, list of strings: +OSSLSIGNCODE_ARGS_BASE64 = + # URL for a README file to include in an installer (empty for none, # spaces allowed): README = http://$(SVR_PRT)/README.txt @@ -443,11 +450,12 @@ PROP_ARGS = SERVER=$(SERVER) SERVER_PORT=$(SERVER_PORT) SERVER_HOSTS="$(SERVER_H PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" BUILD_STAMP="$(BUILD_STAMP)" \ RELEASE_MODE=$(RELEASE_MODE) SOURCE_MODE=$(SOURCE_MODE) \ VERSIONLESS_MODE=$(VERSIONLESS_MODE) MAC_PKG_MODE=$(MAC_PKG_MODE) \ - PKG_SOURCE_MODE="$(PKG_SOURCE_MODE)" INSTALL_NAME="$(INSTALL_NAME)"\ + PKG_SOURCE_MODE="$(PKG_SOURCE_MODE)" INSTALL_NAME="$(INSTALL_NAME)" \ DIST_NAME="$(DIST_NAME)" DIST_BASE=$(DIST_BASE) \ DIST_DIR=$(DIST_DIR) DIST_SUFFIX=$(DIST_SUFFIX) UPLOAD="$(UPLOAD)" \ - DIST_DESC="$(DIST_DESC)" README="$(README)" SIGN_IDENTITY="$(SIGN_IDENTITY)"\ - JOB_OPTIONS="$(JOB_OPTIONS)" + DIST_DESC="$(DIST_DESC)" README="$(README)" SIGN_IDENTITY="$(SIGN_IDENTITY)" \ + OSSLSIGNCODE_ARGS_BASE64="$(OSSLSIGNCODE_ARGS_BASE64)" JOB_OPTIONS="$(JOB_OPTIONS)" \ + TGZ_MODE=$(TGZ_MODE) COPY_ARGS = $(PROP_ARGS) \ SERVER_CATALOG_PATH=$(SERVER_CATALOG_PATH) SERVER_COLLECTS_PATH=$(SERVER_COLLECTS_PATH) @@ -496,9 +504,10 @@ bundle-from-server: $(RACKET) -l setup/unixstyle-install post-adjust "$(SOURCE_MODE)" "$(PKG_SOURCE_MODE)" racket bundle/racket UPLOAD_q = --readme "$(README)" --upload "$(UPLOAD)" --desc "$(DIST_DESC)" -DIST_ARGS_q = $(UPLOAD_q) $(RELEASE_MODE) $(SOURCE_MODE) $(VERSIONLESS_MODE) $(MAC_PKG_MODE) \ +DIST_ARGS_q = $(UPLOAD_q) $(RELEASE_MODE) $(SOURCE_MODE) $(VERSIONLESS_MODE) \ + $(MAC_PKG_MODE) $(TGZ_MODE) \ "$(DIST_NAME)" $(DIST_BASE) $(DIST_DIR) "$(DIST_SUFFIX)" \ - "$(SIGN_IDENTITY)" + "$(SIGN_IDENTITY)" "$(OSSLSIGNCODE_ARGS_BASE64)" # Create an installer from the build (with installed packages) that's # in "bundle/racket":