From 6eeb31abee82cb2016bf054cd302af64f6dfdc2e Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Wed, 11 Jun 2014 15:45:29 +0200 Subject: [PATCH] speedo: Improve building of the w32 installer. * build-aux/speedo.mk: Change name of build directory to PLAY. Improve the dist-source target. * build-aux/speedo/w32/gdk-pixbuf-loaders.cache: Add a blank line (plus comment). * build-aux/speedo/w32/inst.nsi: Change name of file to gnupg-w32-*. Install more tools. -- gdk-pixbuf-loaders.cache needs to end with an extra LF or the gdk-pixbuf is not able to read the last entry. The final comment is to make our git sanity checks happy. Running make -f build-aux/speedo.mk \ TARGETOS=w32 TARBALLS=~/tarballs installer does now create a working installer. After removing dirmngr from the installation GPA kind of works. There are remaining problems with dirmngr and scdaemon which will be fixed soon. Running make -f build-aux/speedo.mk \ TARGETOS=w32 TARBALLS=~/tarballs dist-source creates an xz compressed tarball with all the sources used to build the installer. Distributing this tarball along with the installer is sufficient to comply with the GPL. Well, some more instructions should be given in the readme files. --- .gitignore | 2 +- build-aux/speedo.mk | 21 ++++++++++------ build-aux/speedo/w32/gdk-pixbuf-loaders.cache | 3 +++ build-aux/speedo/w32/inst.nsi | 25 ++++++++++++++++++- 4 files changed, 42 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index d4816a110..5fc934a2c 100644 --- a/.gitignore +++ b/.gitignore @@ -21,7 +21,7 @@ keyserver/gpg2keys_test tools/gpg-zip # Files created by make when not using a VPATH build -play/ +PLAY/ *.o po/en@boldquot.insert-header po/en@boldquot.po diff --git a/build-aux/speedo.mk b/build-aux/speedo.mk index 34d5f98dc..1bebd8b28 100644 --- a/build-aux/speedo.mk +++ b/build-aux/speedo.mk @@ -23,7 +23,7 @@ # or # make -f speedo.mk # -# Builds all packages and installs them under play/inst. At the end, +# Builds all packages and installs them under PLAY/inst. At the end, # speedo prints commands that can be executed in the local shell to # make use of the installed packages. # @@ -390,7 +390,7 @@ MAKENSIS=makensis BUILD_ISODATE=$(shell date -u +%Y-%m-%d) # These paths must be absolute, as we switch directories pretty often. -root := $(shell pwd)/play +root := $(shell pwd)/PLAY sdir := $(root)/src bdir := $(root)/build bdir6:= $(root)/build-w64 @@ -772,7 +772,7 @@ clean-stamps: $(RM) -fR $(stampdir) clean-speedo: - $(RM) -fR play + $(RM) -fR PLAY # @@ -780,10 +780,16 @@ clean-speedo: # dist-source: all - for i in 00 01 02 03; do sleep 1;touch play/stamps/stamp-*-${i}-*;done - tar -cvJf gnupg-$(INST_VERSION)_$(BUILD_ISODATE).tar.xz \ - --exclude-backups --exclude-vc \ - patches play/stamps/stamp-*-00-unpack play/src + for i in 00 01 02 03; do sleep 1;touch PLAY/stamps/stamp-*-${i}-*;done + (set -e;\ + tarname="gnupg-w32-$(INST_VERSION)_$(BUILD_ISODATE).tar" ;\ + [ -f "$$tarname" ] && rm "$$tarname" ;\ + tar -C $(topsrc) -cf "$$tarname" --exclude-backups --exclude-vc \ + --anchored --exclude './PLAY' . ;\ + tar --totals -rf "$$tarname" --exclude-backups --exclude-vc \ + PLAY/stamps/stamp-*-00-unpack PLAY/src ;\ + xz "$$tarname" ;\ + ) $(bdir)/NEWS.tmp: $(topsrc)/NEWS @@ -820,6 +826,7 @@ installer: all w32_insthelpers $(bdir)/inst-options.ini $(bdir)/README.txt -DVERSION=$(INST_VERSION) \ -DPROD_VERSION=$(INST_PROD_VERSION) \ $(w32src)/inst.nsi + @echo "Ready: $(idir)/gnupg-w32-$(INST_VERSION)" # # Mark phony targets diff --git a/build-aux/speedo/w32/gdk-pixbuf-loaders.cache b/build-aux/speedo/w32/gdk-pixbuf-loaders.cache index af513464c..78bc18a2c 100755 --- a/build-aux/speedo/w32/gdk-pixbuf-loaders.cache +++ b/build-aux/speedo/w32/gdk-pixbuf-loaders.cache @@ -133,3 +133,6 @@ "image/x-xpixmap" "" "xpm" "" "/* XPM */" "" 100 + + +# eof # diff --git a/build-aux/speedo/w32/inst.nsi b/build-aux/speedo/w32/inst.nsi index cf627f66c..30b3871e7 100644 --- a/build-aux/speedo/w32/inst.nsi +++ b/build-aux/speedo/w32/inst.nsi @@ -93,7 +93,7 @@ SetCompressor lzma Name "${PRETTY_PACKAGE}" # Set the output filename. -OutFile "${PACKAGE}-${VERSION}.exe" +OutFile "gnupg-w32-${VERSION}.exe" #Fixme: Do we need a logo #Icon "${TOP_SRCDIR}/doc/logo/gnupg-logo-icon.ico" @@ -526,6 +526,7 @@ Section "-gnupginst" # If we are reinstalling, try to kill a possible running agent using # an already installed gpgconf. ifFileExists "$INSTDIR\bin\gpgconf.exe" 0 no_gpgconf + ExecWait '"$INSTDIR\bin\gpgconf" --kill dirmngr' ExecWait '"$INSTDIR\bin\gpgconf" --kill gpg-agent' no_gpgconf: @@ -542,9 +543,11 @@ Section "GnuPG" SEC_gnupg SetOutPath "$INSTDIR\bin" File /oname=gpg.exe "bin/gpg2.exe" + File /oname=gpgv.exe "bin/gpgv2.exe" File "bin/gpgsm.exe" File "bin/gpgconf.exe" File "bin/gpg-connect-agent.exe" + File "bin/gpgtar.exe" ClearErrors SetOverwrite try @@ -554,6 +557,22 @@ Section "GnuPG" SEC_gnupg File /oname=gpg-agent.exe.tmp "bin/gpg-agent.exe" Rename /REBOOTOK gpg-agent.exe.tmp gpg-agent.exe + ClearErrors + SetOverwrite try + File "libexec/scdaemon.exe" + SetOverwrite lastused + ifErrors 0 +3 + File /oname=scdaemon.exe.tmp "libexec/scdaemon.exe" + Rename /REBOOTOK scdaemon.exe.tmp scdaemon.exe + + ClearErrors + SetOverwrite try + File "bin/dirmngr.exe" + SetOverwrite lastused + ifErrors 0 +3 + File /oname=dirmngr.exe.tmp "bin/dirmngr.exe" + Rename /REBOOTOK dirmngr.exe.tmp dirmngr.exe + SetOutPath "$INSTDIR\share\gnupg" File "share/gnupg/gpg-conf.skel" SectionEnd @@ -995,10 +1014,14 @@ SectionEnd Section "-un.gnupg" Delete "$INSTDIR\bin\gpg.exe" + Delete "$INSTDIR\bin\gpgv.exe" Delete "$INSTDIR\bin\gpgsm.exe" Delete "$INSTDIR\bin\gpg-agent.exe" + Delete "$INSTDIR\bin\scdaemon.exe" + Delete "$INSTDIR\bin\dirmngr.exe" Delete "$INSTDIR\bin\gpgconf.exe" Delete "$INSTDIR\bin\gpg-connect-agent.exe" + Delete "$INSTDIR\bin\gpgtar.exe" Delete "$INSTDIR\share\gnupg\gpg-conf.skel" RMDir "$INSTDIR\share\gnupg"