Record versions of installed packages.
authorWerner Koch <wk@gnupg.org>
Fri, 6 Jan 2006 19:45:13 +0000 (19:45 +0000)
committerWerner Koch <wk@gnupg.org>
Fri, 6 Jan 2006 19:45:13 +0000 (19:45 +0000)
Include actual manuals.

14 files changed:
ChangeLog
Makefile.am
NEWS
configure.ac
doc/manual-de/Makefile.am
src/Makefile.am
src/gpg4win.mk.in
src/inst-gpg4win.nsi [new file with mode: 0644]
src/inst-man_advanced_de.nsi
src/inst-man_novice_de.nsi
src/inst-sections.nsi
src/uninst-gpg4win.nsi [new file with mode: 0644]
src/uninst-man_advanced_de.nsi
src/uninst-man_novice_de.nsi

index 5ce053e..f90c037 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2006-01-06  Werner Koch  <wk@g10code.com>
+
+       * src/gpg4win.mk.in (VERSIONINFO_macro): New.  Use it where
+       appropriate.
+
+       * configure.ac: Test for texi2dvi, dvipdf and sha1sum.
+
+       * Makefile.am (SUBDIRS): Build doc prior to src.
+
+       * src/inst-man_novice_de.nsi: Install einsteiger.pdf.
+       * src/uninst-man_novice_de.nsi: Likewise.
+       * src/inst-man_advanced_de.nsi: Install druchblicker.pdf
+       * src/uninst-man_advanced_de.nsi: Likewise.
+
 2006-01-05  Werner Koch  <wk@g10code.com>
 
        Released 0.5.0.
index 8925cbe..b468363 100644 (file)
@@ -21,7 +21,7 @@ ACLOCAL_AMFLAGS = -I m4
 AUTOMAKE_OPTIONS = dist-bzip2
 DISTCHECK_CONFIGURE_FLAGS = --host=i586-mingw32msvc
 
-SUBDIRS = packages include src doc
+SUBDIRS = packages include doc src
 
 EXTRA_DIST = autogen.sh README.SVN \
        patches/gnupg-1.4.2/01-po-subdirs.patch \
diff --git a/NEWS b/NEWS
index 0eadca3..b8a1ed7 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,7 @@
 Noteworthy changes in version 0.5.1
 ------------------------------------------------
 
+
 Noteworthy changes in version 0.5.0 (2006-01-05)
 ------------------------------------------------
 
index f741c84..9dbf3e3 100644 (file)
@@ -70,10 +70,14 @@ AC_CHECK_PROGS(RM, rm)
 AC_CHECK_PROGS(STOW, stow)
 AC_CHECK_PROGS(MAKENSIS, makensis)
 AC_CHECK_PROGS(ZCAT, zcat)
+AC_CHECK_PROGS(TEXI2DVI, texi2dvi)
+AC_CHECK_PROGS(DVIPDF, dvipdf)
+AC_CHECK_PROGS(SHA1SUM, sha1sum)
 AC_PROG_INSTALL
 
 missing_tools=
-for i in DLLTOOL MAKE UNZIP TAR MKDIR CP RM STOW MAKENSIS; do
+for i in DLLTOOL MAKE UNZIP TAR MKDIR CP RM STOW MAKENSIS ZCAT TEXI2DVI \
+         DVIPDF SHA1SUM ; do
    eval tmp='$'$i
    if test -z "$tmp"; then 
       missing_tools="$missing_tools `echo $i | tr 'A-Z' 'a-z'`"
index c9175f1..62508da 100644 (file)
@@ -50,4 +50,4 @@ all-local: einsteiger.pdf durchblicker.pdf
        $(TEXI2DVI) `test -f '$<' || echo '$(srcdir)/'`$< 
 
 %.pdf : %.dvi
-       TEXPICTS=$(srcdir) dvipdf  $< $@
+       TEXPICTS=$(srcdir) $(DVIPDF)  $< $@
index 4f76a56..7fd4906 100644 (file)
 
 
 EXTRA_DIST = pkg-config $(common_nsi) gpg4win.nsi gpg4win-src.nsi \
+        inst-gpg4win.nsi uninst-gpg4win.nsi \
        libiconv.def libintl.def  gpg4win-splash.bmp gpg4win-splash.wav \
        exdll.h g4wihelp.c g4wihelp.nsi config.site loreley.mid
 
 # Need to clean the dll because we bypassed automake.
-CLEANFILES = g4wihelp.dll 
+CLEANFILES = g4wihelp.dll versioninfo.txt
 
 # Supported source packages.
 gpg4win_spkgs := glib gnupg libgpg-error gpgme gpgol gpa winpt sylpheed-claws \
@@ -181,11 +182,25 @@ common_nsi := inst-sections.nsi installer.nsi installer-finish.nsi        \
   $(addsuffix .nsi,$(addprefix inst-,$(gpg4win_build_list)))           \
   $(addsuffix .nsi,$(addprefix uninst-,$(gpg4win_build_list)))
 
+
+# Prepare the versioninfo file.  The pipeline extracts the last
+# occurrence of a package with the same name, sorts the entries and
+# writes the file with DOS line endings.  This helps to avoid
+# duplicate entries in case one package has been rebuild (which is
+# common when developing a new version).
+versioninfo.txt : playground/build/versioninfo.txt
+       set -e; \
+       ( while read a b; do echo "$$a $$(basename $$b)"; \
+            done < playground/build/versioninfo.txt \
+          | sort -k2 -sf | tac | uniq -f1 ; \
+          echo '=========== SHA-1 checksum ============= == package ==' \
+         ) | tac | awk '{printf "%s\r\n", $$0}' > versioninfo.txt
+
 # For some nut-crazy reason someone thought it would be a great idea
 # if makensis changed to the directory of the source file at startup.
 # So we have to pull a couple of strings to correct this.
 gpg4win-$(VERSION).exe: gpg4win.nsi $(common_nsi) stamps/stamp-final \
-                        g4wihelp.dll
+                        g4wihelp.dll  versioninfo.txt
        $(MAKENSIS) -V3 -DBUILD_DIR=`pwd` -DTOP_SRCDIR=$(top_srcdir) \
                -DSRCDIR=$(srcdir) $(srcdir)/gpg4win.nsi
 
index 76cc83d..d3da5ff 100644 (file)
@@ -71,6 +71,11 @@ define SETVARS
        export CONFIG_SITE="$(tsdir)/src/config.site"
 endef
 
+# Support macro.  Record version number of file $(1).
+define VERSIONINFO_macro
+         $(SHA1SUM) "$(1)" >> "$(bdir)/versioninfo.txt" 
+endef
+
 # Support macro.  Unpack the archive $(1).
 define DEFLATE_macro
        case "$(1)" in                  \
@@ -101,6 +106,7 @@ define SPKG_template
 stamps/stamp-$(1)-00-unpack: stamps/stamp-directories 
        (cd $(bdir);                                    \
         $(call SETVARS,$(1));                          \
+        $(call VERSIONINFO_macro,$$$${pkg});           \
         $(call DEFLATE_macro,$$$${pkg}))
        touch stamps/stamp-$(1)-00-unpack
 
@@ -155,6 +161,7 @@ define MPKG_template
 stamps/stamp-$(1)-00-unpack: stamps/stamp-directories 
        (cd $(bdir);                                    \
         $(call SETVARS,$(1));                          \
+        $(call VERSIONINFO_macro,$$$${pkg});           \
         $(call DEFLATE_macro,$$$${pkg}))
        touch stamps/stamp-$(1)-00-unpack
 
@@ -199,6 +206,7 @@ stamps/stamp-$(1)-00-install: stamps/stamp-directories
        ($(call SETVARS,$(1));                          \
         $(MKDIR) "$$$${pkgidir}";                      \
         cd $$$${pkgidir};                              \
+        $(call VERSIONINFO_macro,$$$${pkg});           \
         $(call DEFLATE_macro,$$$${pkg}))
        touch stamps/stamp-$(1)-00-install
 
@@ -208,6 +216,7 @@ stamps/stamp-$(1)-01-install-dev: stamps/stamp-$(1)-00-install
        ($(call SETVARS,$(1));                          \
         $(MKDIR) "$$$${pkgidir_dev}";                  \
         (cd $$$${pkgidir_dev};                         \
+          $(call VERSIONINFO_macro,$$$${pkg_dev});      \
          $(call DEFLATE_macro,$$$${pkg_dev}));         \
         $(call gpg4win_pkg_$(call FROB_macro,$(1))_post_install))
        touch stamps/stamp-$(1)-01-install-dev
diff --git a/src/inst-gpg4win.nsi b/src/inst-gpg4win.nsi
new file mode 100644 (file)
index 0000000..b8f5c21
--- /dev/null
@@ -0,0 +1,36 @@
+# inst-gpg4win.nsi - Hidden section for common files. -*- coding: latin-1; -*-
+# Copyright (C) 2006 g10 Code GmbH
+# 
+# This file is part of GPG4Win.
+# 
+# GPG4Win is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# GPG4Win is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+
+# This is the very first section installed.
+Section "-gpg4win"
+
+!ifdef SOURCES
+  #
+!else
+  SetOutPath "$INSTDIR\share\gpg4win"
+
+  File "${BUILD_DIR}/versioninfo.txt"
+
+!endif
+
+SectionEnd
+
+
+
index 02109c0..4f73ec5 100644 (file)
 !ifdef prefix
 !undef prefix
 !endif
-!define prefix ${ipdir}/man_advanced_de-${gpg4win_pkg_man_advanced_de_version}
 
 
 Section "$(DESC_Name_man_advanced_de)" SEC_man_advanced_de
   SetOutPath "$INSTDIR"
 !ifdef SOURCES
-  File "${gpg4win_pkg_man_advanced_de}"
+  # No need to include anything as the manuals are part of gpg4win
+  # File "${gpg4win_pkg_man_advanced_de}"
 !else
 
   SetOutPath "$INSTDIR\share\gpg4win"
-  File "${prefix}/share/man_advanced_de/man_advanced_de.html"
+  File "${BUILD_DIR}/../doc/manual-de/durchblicker.pdf"
 !endif
 SectionEnd
 
index a048f90..2a870e0 100644 (file)
 !ifdef prefix
 !undef prefix
 !endif
-!define prefix ${ipdir}/man_novice_de-${gpg4win_pkg_man_novice_de_version}
 
 
 Section "$(DESC_Name_man_novice_de)" SEC_man_novice_de
   SetOutPath "$INSTDIR"
 !ifdef SOURCES
-  File "${gpg4win_pkg_man_novice_de}"
+  # No need to include anything as the manuals are part of gpg4win
+  # File "${gpg4win_pkg_man_novice_de}"
 !else
 
   SetOutPath "$INSTDIR\share\gpg4win"
-  File "${prefix}/share/man_novice_de/man_novice_de.html"
+  File "${BUILD_DIR}/../doc/manual-de/einsteiger.pdf"
 !endif
 SectionEnd
 
index 0f86d12..6f367a9 100644 (file)
@@ -19,6 +19,8 @@
 
 # Sections
 
+!include "inst-gpg4win.nsi"
+
 !ifdef HAVE_PKG_GNUPG
 !include "inst-gnupg.nsi"
 !endif
 !include "uninst-gnupg.nsi"
 !endif
 
+!include "uninst-gpg4win.nsi"
+
+
 # Dependency Management
 
 !include "Sections.nsh"
@@ -498,7 +503,7 @@ Section "-startmenu"
     IntCmp $R0 ${SF_SELECTED} 0 no_man_novice_de_menu 
     CreateShortCut \
         "$SMPROGRAMS\$STARTMENU_FOLDER\$(DESC_Name_man_novice_de).lnk" \
-       "$INSTDIR\share\gpg4win\man_novice_de.html" \
+       "$INSTDIR\share\gpg4win\einsteiger.pdf" \
         "" "" "" SW_SHOWNORMAL "" $(DESC_Menu_man_novice_de)
   no_man_novice_de_menu:
 !endif
@@ -509,7 +514,7 @@ Section "-startmenu"
     IntCmp $R0 ${SF_SELECTED} 0 no_man_advanced_de_menu 
     CreateShortCut \
         "$SMPROGRAMS\$STARTMENU_FOLDER\$(DESC_Name_man_advanced_de).lnk" \
-       "$INSTDIR\share\gpg4win\man_novice_de.html" \
+       "$INSTDIR\share\gpg4win\durchblicker.pdf" \
         "" "" "" SW_SHOWNORMAL "" $(DESC_Menu_man_advanced_de)
   no_man_advanced_de_menu:
 !endif
diff --git a/src/uninst-gpg4win.nsi b/src/uninst-gpg4win.nsi
new file mode 100644 (file)
index 0000000..4cdf146
--- /dev/null
@@ -0,0 +1,37 @@
+# uninst-gpg4win.nsi - Hidden uninstaller.           -*- coding: latin-1; -*-
+# Copyright (C) 2005 g10 Code GmbH
+# 
+# This file is part of GPG4Win.
+# 
+# GPG4Win is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# GPG4Win is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+
+# This is the very last section of the uninstaller.
+Section "-un.gpg4win"
+!ifdef SOURCES
+
+!else
+
+  Delete "$INSTDIR\share\gpg4win\versioninfo.txt"
+
+  RMDir "$INSTDIR\share\gpg4win"
+
+  # Try to remove otehr top directories.
+  RMDir "$INSTDIR\lib"
+  RMDir "$INSTDIR\share"
+  RMDir "$INSTDIR"
+
+!endif
+SectionEnd
index 5662777..8c01995 100644 (file)
 !ifdef prefix
 !undef prefix
 !endif
-!define prefix ${ipdir}/man_advanced_de-${gpg4win_pkg_man_advanced_de_version}
 
 
 ; Uninstaller section.
 Section "-un.man_advanced_de"
 !ifdef SOURCES
-  Push "${gpg4win_pkg_man_advanced_de}"
-  Call un.SourceDelete
+  #Push "${gpg4win_pkg_man_advanced_de}"
+  #Call un.SourceDelete
 !else
 
+  # Note, that we will delete the dummy package which might have been
+  # installed by versions of gpg4win pre 0.5.1
   Delete "$INSTDIR\share\gpg4win\man_advanced_de.html"
+
+  Delete "$INSTDIR\share\gpg4win\durchblicker.pdf"
   RMDir "$INSTDIR\share\gpg4win"
   RMDir "$INSTDIR\share"
   RMDir "$INSTDIR"
index 9c2e7a0..0bc7f48 100644 (file)
 !ifdef prefix
 !undef prefix
 !endif
-!define prefix ${ipdir}/man_novice_de-${gpg4win_pkg_man_novice_de_version}
-
 
 ; Uninstaller section.
 Section "-un.man_novice_de"
 !ifdef SOURCES
-  Push "${gpg4win_pkg_man_novice_de}"
-  Call un.SourceDelete
+  #Push "${gpg4win_pkg_man_novice_de}"
+  #Call un.SourceDelete
 !else
 
+  # Note, that we will delete the dummy package which might have been
+  # installed by versions of gpg4win pre 0.5.1
   Delete "$INSTDIR\share\gpg4win\man_novice_de.html"
+
+  Delete "$INSTDIR\share\gpg4win\einsteiger.pdf"
   RMDir "$INSTDIR\share\gpg4win"
   RMDir "$INSTDIR\share"
   RMDir "$INSTDIR"