+
+updates.xml::
+ ./updates.pl xscreensaver ../README ../archive ~/www/xscreensaver
+ @$(MAKE) test_sig
+
+test_sig::
+ @ \
+ U=../utils/version.h ; \
+ V=`sed -n 's/[^0-9]*\([0-9]\.[0-9][^. ;]*\).*/\1/p' < $$U` ; \
+ BASE="xscreensaver-$$V" ; \
+ OUTDIR="../archive" ; \
+ DMG="$$OUTDIR/$$BASE.dmg" ; \
+ SIG=`sed -n 's/^.*dsaSignature="\(.*\)".*/\1/p' updates.xml` ; \
+ PUB="sparkle_dsa_pub.pem" ; \
+ NN="t.$$$$" ; \
+ SIGB=/tmp/$$NN.sig ; \
+ HASH=/tmp/$$NN.hash ; \
+ rm -f "$$SIGB" "$$HASH" ; \
+ echo "$$SIG " | base64 -D > "$$SIGB" ; \
+ set -e ; \
+ for OPENSSL in /usr/bin/openssl /opt/local/bin/openssl ; do \
+ $$OPENSSL dgst -sha1 -binary < "$$DMG" > "$$HASH" ; \
+ /bin/echo -n "$$OPENSSL `$$OPENSSL version`: " ; \
+ $$OPENSSL dgst -dss1 -verify "$$PUB" -signature "$$SIGB" "$$HASH" ; \
+ done ; \
+ rm -f "$$SIGB" "$$HASH" ; \
+
+
+build/Release/installer.pkg: installer.rtf installer.xml installer.sh installer.png ../utils/version.h
+ @\
+ set -e ; \
+ SRC=../utils/version.h ; \
+ V=`sed -n 's/[^0-9]*\([0-9]\.[0-9][^. ]*\).*/\1/p' $$SRC` ; \
+ \
+ DIST="installer.xml" ; \
+ STAGE="build/Release/pkg_stage" ; \
+ PKG1="$@" ; \
+ PKG2="$$STAGE/contents.pkg" ; \
+ SCRIPTS="$$STAGE/scripts" ; \
+ RES="$$STAGE/resources" ; \
+ \
+ set -x ; \
+ rm -rf "$$STAGE" ; \
+ mkdir -p "$$SCRIPTS" "$$RES" ; \
+ \
+ cp -p installer.sh "$$SCRIPTS/preinstall" ; \
+ cp -p installer.png "$$RES/background.png" ; \
+ cp -p installer.rtf "$$RES/welcome.rtf" ; \
+ \
+ pkgbuild --identifier "$(PKGID)" --version "$$V" \
+ --scripts "$$SCRIPTS" --nopayload "$$PKG2" ; \
+ codesign -vfs $(CERT) "$$PKG2" ; \
+ codesign -vd "$$PKG2" ; \
+ \
+ productbuild --distribution "$$DIST" --resources "$$RES" \
+ --package-path "$$STAGE" --version "$$V" "$$PKG1" ; \
+ codesign -vfs $(CERT) "$$PKG1" ; \
+ codesign -vd "$$PKG1" ; \
+ \
+ rm -rf "$$STAGE" ; \
+
+