Add support for osslsigncode and newer versions of nsis release-2.x.y

Tue, 30 Mar 2021 03:22:10 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Tue, 30 Mar 2021 03:22:10 -0500
branch
release-2.x.y
changeset 40832
cbb6d1c52d6e
parent 40829
99152d2c1529
child 40833
2eb25613d054

Add support for osslsigncode and newer versions of nsis

Testing Done:
Built locally on windows with `make -f Makefile.mingw installers`

Ran the installer in Russian to verify that that issue was fixed as well.

Bugs closed: PIDGIN-17325, PIDGIN-17402

Reviewed at https://reviews.imfreedom.org/r/588/

Makefile.mingw file | annotate | diff | comparison | revisions
pidgin/win32/nsis/pidgin-installer.nsi file | annotate | diff | comparison | revisions
--- a/Makefile.mingw	Mon Mar 29 22:56:22 2021 -0500
+++ b/Makefile.mingw	Tue Mar 30 03:22:10 2021 -0500
@@ -41,6 +41,18 @@
 		    /tr "http://timestamp.comodoca.com/rfc3161" /td SHA256 \
 		    $(1)
 else
+ifdef OSSLSIGNCODE
+osslsigncode_sign = $(OSSLSIGNCODE) sign \
+		    -spc "$(SIGNCODE_SPC)" -key "$(SIGNCODE_PVK)" \
+		    -h $(3) -comm \
+		    -n $(2) -i "https://pidgin.im" \
+		    -t http://timestamp.digicert.com \
+                    -in $(1) -out $(1).signed \
+		    && mv $(1).signed $(1)
+# osslsigncode apparently only allows one nested signature
+authenticode_sign = $(call osslsigncode_sign,$(1),$(2),sha1) && \
+		    $(call osslsigncode_sign,$(1),$(2),sha256 -nest)
+else
 authenticode_sign = $(MONO_SIGNCODE) \
 		    -spc "$(SIGNCODE_SPC)" -v "$(SIGNCODE_PVK)" \
 		    -a sha1 -$$ commercial \
@@ -48,6 +60,7 @@
 		    -t "http://timestamp.verisign.com/scripts/timstamp.dll" -tr 10 \
 		    $(1) && rm -f $(1).bak
 endif
+endif
 
 gpg_sign = $(GPG_SIGN) -ab $(1) && $(GPG_SIGN) --verify $(1).asc
 
--- a/pidgin/win32/nsis/pidgin-installer.nsi	Mon Mar 29 22:56:22 2021 -0500
+++ b/pidgin/win32/nsis/pidgin-installer.nsi	Tue Mar 30 03:22:10 2021 -0500
@@ -90,8 +90,8 @@
 ;--------------------------------
 ;Reserve files used in .onInit
 ;for faster start-up
-ReserveFile "${NSISDIR}\Plugins\System.dll"
-ReserveFile "${NSISDIR}\Plugins\UserInfo.dll"
+ReserveFile "${NSISDIR}\Plugins\unicode\System.dll"
+ReserveFile "${NSISDIR}\Plugins\unicode\UserInfo.dll"
 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
 !insertmacro MUI_RESERVEFILE_LANGDLL
 

mercurial