gtk+: Build from source.
authorWerner Koch <wk@gnupg.org>
Tue, 17 Apr 2012 16:54:26 +0000 (18:54 +0200)
committerWerner Koch <wk@gnupg.org>
Tue, 17 Apr 2012 16:54:26 +0000 (18:54 +0200)
This bunch of changes is required to build gtk+ from source and to
update to the latest gtk+-2 version.

* m4/gpg4win.m4: Support tar.xz files.
* src/zlib.pc: New.
* src/gpg4win.mk.in: Support tar.xz.  Support pkgextracflags macro.

* configure.ac: Gurn gtk+ into a source package.  Add libffi and
gdk-pixbuf packages.  Print warning for missing tools required by glib
et al.

* include/config.nsi.in: Add packages libffi and gdk-pixbuf.
* src/inst-libffi.nsi, src/uninst-libffi.nsi: New.
* src/inst-gdk-pixbuf.nsi, src/uninst-gdk-pixbuf.nsi: New.

* src/inst-cairo.nsi (libcairo-gobject-2.dll)
(libcairo-script-interpreter-2.dll): Install new DLLs.
* src/uninst-cairo.nsi: Uninstall them.

* src/inst-glib.nsi: Install more tools and the schema.
* src/uninst-glib.nsi: Uninstall them.

20 files changed:
.gitignore
README
configure.ac
include/config.nsi.in
m4/gpg4win.m4
src/Makefile.am
src/gpg4win.mk.in
src/inst-cairo.nsi
src/inst-gdk-pixbuf.nsi [new file with mode: 0644]
src/inst-glib.nsi
src/inst-gtk+.nsi
src/inst-libffi.nsi [new file with mode: 0644]
src/inst-sections.nsi
src/installer.nsi
src/uninst-cairo.nsi
src/uninst-gdk-pixbuf.nsi [new file with mode: 0644]
src/uninst-glib.nsi
src/uninst-gtk+.nsi
src/uninst-libffi.nsi [new file with mode: 0644]
src/zlib.pc [new file with mode: 0644]

index fc028a4..1a84ee3 100644 (file)
@@ -27,6 +27,7 @@ src/mingwm10.dll
 /packages/*.tar.bz2
 /packages/*.zip
 /packages/*.tar.bz2
+/packages/*.tar.xz
 /gpg4win-2.*.*-git???????/
 /packages/packages.current.sig
 /src/playground
@@ -66,3 +67,5 @@ src/mingwm10.dll
 /src/versioninfo.txt
 /src/kleowrap.exe
 /src/gpg4win-*.exe
+/src/HOWTO-SMIME.de.txt
+/src/HOWTO-SMIME.en.txt
diff --git a/README b/README
index 7e64823..ba09403 100644 (file)
--- a/README
+++ b/README
@@ -51,11 +51,13 @@ installed:
  tetex-extra
  latex-xcolor (for the compendium)
  tr
- gs-common
+ gs-common (gs)
+ docbook-utils
  hyperlatex
  sharutils (uudecode for claws icon patch)
  gettext (msgfmt, dcgettext, gmsgfmt, xgettext for glib)
- libglib2.0-dev (glib-genmarshal for glib)
+ libglib2.0-dev (glib-genmarshal, glib-compile-{resources,schemas})
+ libgdk-pixbuf2.0-dev (gdk-pixbuf-csource)
  docbook-utils, ghostscript (claws-mail manual)
 
 
@@ -73,9 +75,9 @@ Development Branches
 ====================
 
 The old version of gpg4win (version < 1.2) is since 1.1.3 tracked by
-the SVN branch: branches/gpg4win-1-branch.  Only important fixes will
-go into this version.  The current version is in the SVN trunk starts
-as version 1.9 and will soon lead to version 2.0.
+the GIT branch: gpg4win-1-branch.  Only important fixes will go into
+this version.  The current version in the GIT master starts as version
+1.9.
 
 
 
@@ -119,7 +121,7 @@ Version numbers
 We use a specific order of version numbers.  This is best shown by an
 example:
 
-  1.0.0             - The final 1.0.0 release. 
+  1.0.0             - The final 1.0.0 release.
   1.0.1-svn1234     - A snapshot based on SVN revision 1234
   1.0.1-svn1235     - A newer snapshot
   1.0.1rc1-svn1236  - A snapshot while preparing for a release candidate
@@ -140,17 +142,17 @@ Copyright
 The entire Gpg4win package is
 
   Copyright (C) 2005, 2006, 2007, 2008, 2009 g10 Code GmbH
-  
+
   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., 51 Franklin Street, Fifth Floor, Boston, MA
index 1205f4a..d3ad2eb 100644 (file)
@@ -224,6 +224,28 @@ for i in DLLTOOL MAKE UNZIP TAR MKDIR CP RM STOW MAKENSIS ZCAT TEXI2DVI \
    fi
 done
 
+AC_CHECK_PROGS(GLIB_GENMARSHAL, glib-genmarshal)
+AC_CHECK_PROGS(GLIB_COMPILE_SCHEMAS, glib-compile-schemas)
+AC_CHECK_PROGS(GLIB_COMPILE_RESOURCES, glib-compile-resources)
+AC_CHECK_PROGS(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource)
+AC_CHECK_PROGS(GS, gs)
+# For the claws manual we need:
+AC_CHECK_PROGS(DOCBOOK2HTML, docbook2html)
+AC_CHECK_PROGS(DOCBOOK2TXT, docbook2txt)
+AC_CHECK_PROGS(DOCBOOK2PS, docbook2ps)
+AC_CHECK_PROGS(DOCBOOK2PDF, docbook2pdf)
+
+
+missing_opt_tools=
+for i in GLIB_GENMARSHAL GLIB_COMPILE_SCHEMAS GLIB_COMPILE_RESOURCES \
+         GDK_PIXBUF_CSOURCE GS \
+         DOCBOOK2PDF DOCBOOK2TXT DOCBOOK2PS DOCBOOK2PDF; do
+   eval tmp='$'$i
+   if test -z "$tmp"; then
+      missing_opt_tools="$missing_opt_tools `echo $i | tr 'A-Z' 'a-z'`"
+   fi
+done
+
 
 
 # Optional tools.
@@ -241,16 +263,18 @@ GPG4WIN_SPKG([zlib])
 GPG4WIN_BPKG_GNUWIN32([bsfilter])
 
 GPG4WIN_BPKG_GTK([pkgconfig])
-# We build our own version of glib, because we need to apply a few patches.
-# GPG4WIN_BPKG_GTK_DEV([glib], [pkgconfig])
-GPG4WIN_SPKG([glib], [libiconv gettext pkgconfig])
+
+GPG4WIN_SPKG([libffi], [pkgconfig])
+GPG4WIN_SPKG([glib], [libiconv gettext pkgconfig libffi zlib])
 GPG4WIN_BPKG_GTK_DEV([atk], [glib pkgconfig])
 GPG4WIN_BPKG_GTK_DEV([pango], [glib pkgconfig])
 GPG4WIN_BPKG_GTK_DEV([cairo], [glib pkgconfig])
 GPG4WIN_BPKG_GTK_DEV([expat])
 GPG4WIN_BPKG_GTK_DEV([freetype], [pkgconfig zlib])
 GPG4WIN_BPKG_GTK_DEV([fontconfig], [pkgconfig zlib expat])
-GPG4WIN_BPKG_GTK_DEV([gtk+], [libiconv gettext pkgconfig atk pango glib cairo])
+GPG4WIN_SPKG([gdk-pixbuf], [glib])
+GPG4WIN_SPKG([gtk+], [libiconv gettext pkgconfig atk pango dnl
+                      glib gdk-pixbuf cairo])
 GPG4WIN_SPKG([libpng], [pkgconfig])
 GPG4WIN_SPKG([enchant], [pkgconfig glib])
 
@@ -367,3 +391,17 @@ AC_CONFIG_FILES(doc/website/Makefile)
 AC_CONFIG_FILES(src/dictionaries/Makefile)
 AC_CONFIG_FILES(patches/gnupg2/01-version.patch)
 AC_OUTPUT
+
+# Throw a warning if optional tools are missing
+if test -n "$missing_opt_tools"; then
+    AC_MSG_WARN([[
+***
+*** Some tools not found.  They may or may not be needed depending on
+*** the packages you want to include.  For example GLIB and GTK+
+*** require certain tools; you may need to install a recent version of
+*** GLIB and GTK+ on the build machine to allow for cross-compiling.
+***]])
+    for i in $missing_opt_tools; do
+      AC_MSG_NOTICE([$i is missing])
+    done
+fi
index 2eff9d8..8978b4a 100644 (file)
@@ -1,18 +1,18 @@
 # config.nsi - Configuration settings for gpg4win.nsi.         -*- nsi -*-
 # Copyright (C) 2005, 2007 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
 #!define gpg4win_pkg_glib_dev @gpg4win_pkg_glib_dev@
 #!define gpg4win_pkg_glib_src @gpg4win_pkg_glib_src@
 
+@HAVE_PKG_GDK_PIXBUF@
+!define gpg4win_pkg_gdk_pixbuf @gpg4win_pkg_gdk_pixbuf@
+!define gpg4win_pkg_gdk_pixbuf_version @gpg4win_pkg_gdk_pixbuf_version@
+
+@HAVE_PKG_LIBFFI@
+!define gpg4win_pkg_libffi @gpg4win_pkg_libffi@
+!define gpg4win_pkg_libffi_version @gpg4win_pkg_libffi_version@
+
+
 @HAVE_PKG_ATK@
 !define gpg4win_pkg_atk @gpg4win_pkg_atk@
 !define gpg4win_pkg_atk_version @gpg4win_pkg_atk_version@
index 6107827..ac2de93 100644 (file)
@@ -7,12 +7,12 @@ dnl GPG4Win is free software; you can redistribute it and/or modify
 dnl it under the terms of the GNU General Public License as published by
 dnl the Free Software Foundation; either version 2 of the License, or
 dnl (at your option) any later version.
-dnl 
+dnl
 dnl GPG4Win is distributed in the hope that it will be useful,
 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 dnl GNU General Public License for more details.
-dnl 
+dnl
 dnl You should have received a copy of the GNU General Public License
 dnl along with this program; if not, write to the Free Software
 dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
@@ -110,7 +110,7 @@ AC_DEFUN([GPG4WIN_FIND],
     AS_IF([test -z "$2"], [_gpg4win_pat='$1-\([[0-9]].*\)'],
          [_gpg4win_pat="$2"])
 
-    # Frob pattern.  Regex party! 
+    # Frob pattern.  Regex party!
     [_gpg4win_glob=`echo "$_gpg4win_pat" | sed -e 's/\\\\(\(.*\)\\\\)/\1/'`]
     [_gpg4win_glob=`echo "$_gpg4win_glob" | sed -e 's/\\.\\*/*/'`]
 
@@ -121,6 +121,9 @@ AC_DEFUN([GPG4WIN_FIND],
     AS_IF([test ! -z "$3"], _gpg4win_format="$3")
 
     AS_IF([test -z "$_gpg4win_file" -a $_gpg4win_format != zip],
+          [_gpg4win_file=`echo ${_gpg4win_dir}/${_gpg4win_glob}.tar.xz`
+           _gpg4win_suffix=.tar.xz])
+    AS_IF([test -z "$_gpg4win_file" -a $_gpg4win_format != zip],
           [_gpg4win_file=`echo ${_gpg4win_dir}/${_gpg4win_glob}.tar.bz2`
            _gpg4win_suffix=.tar.bz2])
     AS_IF([test -z "$_gpg4win_file" -a $_gpg4win_format != zip],
@@ -639,7 +642,7 @@ AC_DEFUN([GPG4WIN_BPKG_BINSRC],
                  $_gpg4win_pkg, _gpg4win_bpkg=$gpg4win_val, tmp_binsrc=no)
     if test $tmp_binsrc = no ; then
        GPG4WIN_FIND($1-source, [$1-\(.*\)-source],,
-                    $_gpg4win_pkg, _gpg4win_bpkg=$gpg4win_val, 
+                    $_gpg4win_pkg, _gpg4win_bpkg=$gpg4win_val,
                     AC_MSG_ERROR(can not find sources for package $1))
     fi
     # gpg4win_pkg_PKGNAME_src=FILENAME_OF_SOURCE
index 25fa538..eff6764 100644 (file)
@@ -21,7 +21,7 @@ EXTRA_DIST = pkg-config gpg4win.nsi gpg4win-src.nsi config.site \
         installer-options.ini.in libiconv.def libintl.def loreley.mid \
         gpg4win-splash.wav gpgwrap.c exdll.h g4wihelp.c g4wihelp.nsi \
         inst-sections.nsi installer.nsi installer-finish.nsi  \
-       QtCore.pc QtGui.pc sha1sum.c                          \
+       QtCore.pc QtGui.pc zlib.pc sha1sum.c                  \
         qt.conf kleowrap.c potomo Memento.nsh dirmngr.conf    \
         inst-gpg4win.nsi          uninst-gpg4win.nsi         \
         inst-atk.nsi               uninst-atk.nsi            \
@@ -46,6 +46,7 @@ EXTRA_DIST = pkg-config gpg4win.nsi gpg4win-src.nsi config.site \
         inst-crypt.nsi            uninst-crypt.nsi           \
         inst-dirmngr.nsi          uninst-dirmngr.nsi         \
         inst-gettext.nsi          uninst-gettext.nsi         \
+        inst-libffi.nsi                   uninst-libffi.nsi          \
         inst-glib.nsi             uninst-glib.nsi            \
         inst-gnupg2.nsi                   uninst-gnupg2.nsi          \
         inst-gpa.nsi              uninst-gpa.nsi             \
@@ -54,6 +55,7 @@ EXTRA_DIST = pkg-config gpg4win.nsi gpg4win-src.nsi config.site \
         inst-paperkey.nsi         uninst-paperkey.nsi        \
         inst-gpgol.nsi            uninst-gpgol.nsi           \
         inst-gpgex.nsi            uninst-gpgex.nsi           \
+        inst-gdk-pixbuf.nsi        uninst-gdk-pixbuf.nsi      \
         inst-gtk+.nsi             uninst-gtk+.nsi            \
         inst-libassuan.nsi        uninst-libassuan.nsi       \
         inst-libgcrypt.nsi        uninst-libgcrypt.nsi       \
@@ -103,7 +105,8 @@ CLEANFILES = g4wihelp.dll versioninfo.txt $(README_files) $(HOWTO_files) \
             gpgwrap.exe gpgwrap-2.exe kleowrap.exe $(foosum_exe)
 
 # Supported source packages.
-gpg4win_spkgs = glib libgpg-error gpgme gpgol gpgex libpng enchant \
+gpg4win_spkgs = glib libffi gdk-pixbuf gtk+ \
+                libgpg-error gpgme gpgol gpgex libpng enchant \
                gpa libgsasl libtasn1 opencdk gnutls curl libxml2 \
                 libetpan claws-mail notification_plugin gtkhtml2_viewer \
                vcalendar rssyl gnupg2 pinentry libassuan libksba libgcrypt \
@@ -116,6 +119,15 @@ gpg4win_spkgs = glib libgpg-error gpgme gpgol gpgex libpng enchant \
 gpg4win_pkg_glib_configure = \
   --with-lib-prefix=$(idir) --with-libiconv-prefix=$(idir) \
   CPPFLAGS=-I$(idir)/include LDFLAGS=-L$(idir)/lib CCC=i586-mingw32msvc-g++
+gpg4win_pkg_glib_extracflags = -march=i486
+
+gpg4win_pkg_gdk_pixbuf_configure = \
+  --with-lib-prefix=$(idir) --with-libiconv-prefix=$(idir) \
+  --with-included-loaders=yes \
+  CPPFLAGS=-I$(idir)/include LDFLAGS=-L$(idir)/lib
+
+gpg4win_pkg_gtk__configure = \
+  CPPFLAGS=-I$(idir)/include LDFLAGS=-L$(idir)/lib
 
 # The GnuPG package provides man pages which we have to convert.
 # We also create the MO files here.
@@ -267,12 +279,13 @@ gpg4win_pkg_claws_mail_configure = \
   --disable-spamassassin-plugin --disable-bogofilter-plugin \
   --disable-valgrind --disable-networkmanager-support
 
-define gpg4win_pkg_claws_mail_post_install
-(for i in de en ; do \
-    (cd $$$${pkgidir}/share/doc/claws-mail/manual/$$$${i}; \
-    ps2pdf claws-mail-manual.ps); \
- done)
-endef
+# This is not anymore needed sinces 3.8.0 already builds a PDF version.
+# define gpg4win_pkg_claws_mail_post_install
+# (for i in de en ; do \
+#     (cd $$$${pkgidir}/share/doc/claws-mail/manual/$$$${i}; \
+#     ps2pdf claws-mail-manual.ps); \
+#  done)
+# endef
 
 
 gpg4win_pkg_notification_plugin_configure = \
@@ -333,7 +346,7 @@ gpg4win_pkg_zlib_make_args_inst = -fwin32/Makefile.gcc install \
 
 # Supported binary packages.
 gpg4win_bpkgs = libiconv gettext pkgconfig pango expat freetype fontconfig cairo \
-               atk gtk+ qt kdesupport oxygen-icons kdelibs kleopatra bsfilter
+               atk qt kdesupport oxygen-icons kdelibs kleopatra bsfilter
 
 # libiconv needs some special magic to generate a usable import
 # library.
@@ -355,8 +368,11 @@ endef
 
 
 # Zlib needs some special magic to generate a libtool file.
+# We also install the pc file here.
 define gpg4win_pkg_zlib_post_install
-(cd $$$${pkgidir};                                     \
+(mkdir $$$${pkgidir}/lib/pkgconfig || true;             \
+cp $(abs_srcdir)/zlib.pc $$$${pkgidir}/lib/pkgconfig/;  \
+cd $$$${pkgidir};                                      \
 echo "# Generated by libtool" > lib/libz.la            \
 echo "dlname='../bin/zlib1.dll'" >> lib/libz.la;       \
 echo "library_names='libz.dll.a'" >> lib/libz.la;      \
@@ -369,7 +385,7 @@ echo "installed=yes" >> lib/libz.la;                        \
 echo "shouldnotlink=no" >> lib/libz.la;                        \
 echo "dlopen=''" >> lib/libz.la;                       \
 echo "dlpreopen=''" >> lib/libz.la;                    \
-echo "libdir=\"$$$${pkgidir}/lib\"" >> lib/libz.la;)
+echo "libdir=\"$$$${pkgidir}/lib\"" >> lib/libz.la)
 endef
 
 # To make sure that we link against the static versions we need
@@ -385,6 +401,16 @@ define gpg4win_pkg_glib_post_install
  perl -pi -e 's/^prefix=.*$$$$/prefix=\/usr/' `find . -name \*.pc`)
 endef
 
+define gpg4win_pkg_libffi_post_install
+ (cd $$$${pkgidir};                                                    \
+ perl -pi -e 's/^prefix=.*$$$$/prefix=\/usr/' `find . -name \*.pc`)
+endef
+
+define gpg4win_pkg_gdk_pixbuf_post_install
+ (cd $$$${pkgidir};                                                    \
+ perl -pi -e 's/^prefix=.*$$$$/prefix=\/usr/' `find . -name \*.pc`)
+endef
+
 define gpg4win_pkg_atk_post_install
  (cd $$$${pkgidir_dev};                                                        \
  perl -pi -e 's/^prefix=.*$$$$/prefix=\/usr/' `find . -name \*.pc`)
index 735d8ed..b8be8f0 100644 (file)
@@ -67,6 +67,7 @@ define SETVARS
        pkg_version_dev="$(1)-dev-$(call GETVAR,gpg4win_pkg_$(1)_version)"; \
        pkgidir_dev="$(ipdir)/$$$${pkg_version_dev}";                   \
        pkgcfg="$(call GETVAR,gpg4win_pkg_$(1)_configure)";             \
+       pkgextracflags="$(call GETVAR,gpg4win_pkg_$(1)_extracflags)";   \
        pkgmkargs="$(call GETVAR,gpg4win_pkg_$(1)_make_args)";          \
        pkgmkargs_inst="$(call GETVAR,gpg4win_pkg_$(1)_make_args_inst)";\
        export PKG_CONFIG="$(tsdir)/src/pkg-config";                    \
@@ -86,6 +87,8 @@ define DEFLATE_macro
            $(TAR) xzf "$(1)" ;;        \
          *.tar.bz2 | *.tbz2 | *.tbz)   \
            $(TAR) xjf "$(1)" ;;        \
+         *.tar.xz )                    \
+           $(TAR) xJf "$(1)" ;;        \
          *.zip)                        \
            $(UNZIP) -o "$(1)" ;;               \
        esac
@@ -134,7 +137,7 @@ stamps/stamp-$(1)-02-configure: stamps/stamp-$(1)-01-patch
                --prefix="$$$${pkgidir}"                \
                --host=$(host_cpu)-$(host_os)           \
                --build=$(build_cpu)-$(build_os)        \
-               $$$${pkgcfg} CFLAGS=-mms-bitfields)
+               $$$${pkgcfg} CFLAGS=\"-mms-bitfields $$$${pkgextracflags}\")
        touch stamps/stamp-$(1)-02-configure
 
 stamps/stamp-$(1)-03-make: stamps/stamp-$(1)-02-configure
index 4a32b85..5de16f0 100644 (file)
@@ -1,18 +1,18 @@
 # inst-cairo.nsi - Installer snippet for Cairo.     -*- coding: latin-1; -*-
 # Copyright (C) 2007 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
@@ -34,6 +34,8 @@ Section "-cairo" SEC_cairo
 !else
 
   File ${prefix}/bin/libcairo-2.dll
+  File ${prefix}/bin/libcairo-gobject-2.dll
+  File ${prefix}/bin/libcairo-script-interpreter-2.dll
 
 !endif
 SectionEnd
diff --git a/src/inst-gdk-pixbuf.nsi b/src/inst-gdk-pixbuf.nsi
new file mode 100644 (file)
index 0000000..f755c3e
--- /dev/null
@@ -0,0 +1,39 @@
+# inst-gdk-pixbuf.nsi - Installer part for gdk-pixbuf  -*- coding: latin-1; -*-
+# Copyright (C) 2012 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
+
+!ifdef prefix
+!undef prefix
+!endif
+!define prefix ${ipdir}/gdk-pixbuf-${gpg4win_pkg_gdk_pixbuf_version}
+
+!ifdef DEBUG
+Section "gdk_pixbuf" SEC_gdk_pixbuf
+!else
+Section "-gdk_pixbuf" SEC_gdk_pixbuf
+!endif
+  SetOutPath "$INSTDIR"
+!ifdef SOURCES
+  File ${gpg4win_pkg_gdk_pixbuf}
+!else
+  File ${prefix}/bin/libgdk_pixbuf-2.0-0.dll
+  File ${prefix}/bin/gdk-pixbuf-query-loaders.exe
+  File ${prefix}/bin/gdk-pixbuf-pixdata.exe
+
+!endif
+SectionEnd
index 476d3ae..737fd24 100644 (file)
@@ -1,18 +1,18 @@
 # inst-glib.nsi - Installer snippet for glib.        -*- coding: latin-1; -*-
 # Copyright (C) 2005, 2008 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
@@ -39,6 +39,23 @@ Section "-glib" SEC_glib
   File ${prefix}/bin/libgthread-2.0-0.dll
   File ${prefix}/bin/libgio-2.0-0.dll
 
+  File ${prefix}/bin/gdbus.exe
+  File ${prefix}/bin/gio-querymodules.exe
+  File ${prefix}/bin/glib-compile-resources.exe
+  File ${prefix}/bin/glib-compile-schemas.exe
+  File ${prefix}/bin/glib-genmarshal.exe
+  File ${prefix}/bin/gobject-query.exe
+  File ${prefix}/bin/gresource.exe
+  File ${prefix}/bin/gsettings.exe
+  File ${prefix}/bin/gspawn-win32-helper-console.exe
+  File ${prefix}/bin/gspawn-win32-helper.exe
+
+  SetOutPath "$INSTDIR\lib"
+  File ${prefix}/lib/charset.alias
+
+  SetOutPath "$INSTDIR\share\glib-2.0\schemas"
+  File ${prefix}/share/glib-2.0/schemas/gschema.dtd
+
   SetOutPath "$INSTDIR\share\locale\de\LC_MESSAGES"
   File ${prefix}/share/locale/de/LC_MESSAGES/glib20.mo
 
index 25a3be0..b2c28ff 100644 (file)
@@ -1,18 +1,18 @@
 # inst-gtk+.nsi - Installer snippet for gtk+.     -*- coding: latin-1; -*-
 # Copyright (C) 2005, 2008 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
@@ -30,25 +30,37 @@ Section "-gtk+" SEC_gtk_
 !endif
   SetOutPath "$INSTDIR"
 !ifdef SOURCES
-  File "${gpg4win_pkg_gtk__src}"
+  File "${gpg4win_pkg_gtk_}"
 !else
-  File ${prefix}/bin/libgdk_pixbuf-2.0-0.dll
   File ${prefix}/bin/libgdk-win32-2.0-0.dll
   File ${prefix}/bin/libgtk-win32-2.0-0.dll
 
   File ${prefix}/bin/libgailutil-18.dll
-  File ${prefix}/bin/gdk-pixbuf-query-loaders.exe
   File ${prefix}/bin/gtk-query-immodules-2.0.exe
 
+  File ${prefix}/bin/gtk-update-icon-cache.exe.manifest
+  File ${prefix}/bin/gtk-update-icon-cache.exe
+
   SetOutPath "$INSTDIR\etc\gtk-2.0"
-  File ${prefix}/etc/gtk-2.0/gdk-pixbuf.loaders
-  File ${prefix}/etc/gtk-2.0/gtk.immodules
   File ${prefix}/etc/gtk-2.0/im-multipress.conf
 
   SetOutPath "$INSTDIR\lib\gtk-2.0\2.10.0\engines"
   File ${prefix}/lib/gtk-2.0/2.10.0/engines/libpixmap.dll
   File ${prefix}/lib/gtk-2.0/2.10.0/engines/libwimp.dll
 
+  SetOutPath "$INSTDIR\lib\gtk-2.0\2.10.0\immodules"
+  File ${prefix}/lib/gtk-2.0/2.10.0/immodules/im-am-et.dll
+  File ${prefix}/lib/gtk-2.0/2.10.0/immodules/im-thai.dll
+  File ${prefix}/lib/gtk-2.0/2.10.0/immodules/im-multipress.dll
+  File ${prefix}/lib/gtk-2.0/2.10.0/immodules/im-ti-er.dll
+  File ${prefix}/lib/gtk-2.0/2.10.0/immodules/im-cedilla.dll
+  File ${prefix}/lib/gtk-2.0/2.10.0/immodules/im-ti-et.dll
+  File ${prefix}/lib/gtk-2.0/2.10.0/immodules/im-ime.dll
+  File ${prefix}/lib/gtk-2.0/2.10.0/immodules/im-inuktitut.dll
+  File ${prefix}/lib/gtk-2.0/2.10.0/immodules/im-ipa.dll
+  File ${prefix}/lib/gtk-2.0/2.10.0/immodules/im-viqr.dll
+  File ${prefix}/lib/gtk-2.0/2.10.0/immodules/im-cyrillic-translit.dll
+
   SetOutPath "$INSTDIR\lib\gtk-2.0\modules"
   File ${prefix}/lib/gtk-2.0/modules/libgail.dll
 
diff --git a/src/inst-libffi.nsi b/src/inst-libffi.nsi
new file mode 100644 (file)
index 0000000..88c888b
--- /dev/null
@@ -0,0 +1,36 @@
+# inst-libffi.nsi                               -*- coding: latin-1; -*-
+# Copyright (C) 2012 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
+
+!ifdef prefix
+!undef prefix
+!endif
+!define prefix ${ipdir}/libffi-${gpg4win_pkg_libffi_version}
+
+!ifdef DEBUG
+Section "libffi" SEC_libffi
+!else
+Section "-libffi" SEC_libffi
+!endif
+  SetOutPath "$INSTDIR"
+!ifdef SOURCES
+  File ${gpg4win_pkg_libffi}
+!else
+  File ${prefix}/bin/libffi-5.dll
+!endif
+SectionEnd
index e3b4c20..3e087eb 100644 (file)
@@ -92,6 +92,9 @@
 !ifdef HAVE_PKG_LIBGPG_ERROR
 !include "inst-libgpg-error.nsi"
 !endif
+!ifdef HAVE_PKG_LIBFFI
+!include "inst-libffi.nsi"
+!endif
 !ifdef HAVE_PKG_GLIB
 !include "inst-glib.nsi"
 !endif
 !ifdef HAVE_PKG_DIRMNGR
 !include "inst-dirmngr.nsi"
 !endif
+!ifdef HAVE_PKG_GDK_PIXBUF
+!include "inst-gdk-pixbuf.nsi"
+!endif
 !ifdef HAVE_PKG_GTK_
 !include "inst-gtk+.nsi"
 !endif
 !ifdef HAVE_PKG_GTK_
 !include "uninst-gtk+.nsi"
 !endif
+!ifdef HAVE_PKG_GDK_PIXBUF
+!include "uninst-gdk-pixbuf.nsi"
+!endif
 !ifdef HAVE_PKG_DIRMNGR
 !include "uninst-dirmngr.nsi"
 !endif
 !ifdef HAVE_PKG_GLIB
 !include "uninst-glib.nsi"
 !endif
+!ifdef HAVE_PKG_LIBFFI
+!include "uninst-libffi.nsi"
+!endif
 !ifdef HAVE_PKG_LIBGPG_ERROR
 !include "uninst-libgpg-error.nsi"
 !endif
index 6fb2d2f..4934d42 100644 (file)
@@ -529,23 +529,23 @@ LangString T_SMIMECheckboxText ${LANG_ENGLISH} \
        "Root certificate defined or skip configuration"
 
 LicenseLangString T_HowtoSmimeFile ${LANG_GERMAN} \
-       "${TOP_SRCDIR}/doc/HOWTO-SMIME.de.txt"
+       "${TOP_SRCDIR}/src/HOWTO-SMIME.de.txt"
 LicenseLangString T_HowtoSmimeFile ${LANG_ENGLISH} \
-       "${TOP_SRCDIR}/doc/HOWTO-SMIME.en.txt"
+       "${TOP_SRCDIR}/src/HOWTO-SMIME.en.txt"
 LicenseLangString T_HowtoSmimeFile ${LANG_FRENCH} \
-       "${TOP_SRCDIR}/doc/HOWTO-SMIME.en.txt"
+       "${TOP_SRCDIR}/src/HOWTO-SMIME.en.txt"
 LicenseLangString T_HowtoSmimeFile ${LANG_SPANISH} \
-       "${TOP_SRCDIR}/doc/HOWTO-SMIME.en.txt"
+       "${TOP_SRCDIR}/src/HOWTO-SMIME.en.txt"
 LicenseLangString T_HowtoSmimeFile ${LANG_PORTUGUESE} \
-       "${TOP_SRCDIR}/doc/HOWTO-SMIME.en.txt"
+       "${TOP_SRCDIR}/src/HOWTO-SMIME.en.txt"
 LicenseLangString T_HowtoSmimeFile ${LANG_CZECH} \
-       "${TOP_SRCDIR}/doc/HOWTO-SMIME.en.txt"
+       "${TOP_SRCDIR}/src/HOWTO-SMIME.en.txt"
 LicenseLangString T_HowtoSmimeFile ${LANG_ARABIC} \
-       "${TOP_SRCDIR}/doc/HOWTO-SMIME.en.txt"
+       "${TOP_SRCDIR}/src/HOWTO-SMIME.en.txt"
 LicenseLangString T_HowtoSmimeFile ${LANG_RUSSIAN} \
-       "${TOP_SRCDIR}/doc/HOWTO-SMIME.en.txt"
+       "${TOP_SRCDIR}/src/HOWTO-SMIME.en.txt"
 LicenseLangString T_HowtoSmimeFile ${LANG_ITALIAN} \
-       "${TOP_SRCDIR}/doc/HOWTO-SMIME.en.txt"
+       "${TOP_SRCDIR}/src/HOWTO-SMIME.en.txt"
 
 #---------------------------------------------
 # From the old installation checking functions
index 92bdd4a..fe33dac 100644 (file)
@@ -1,18 +1,18 @@
 # uninst-cairo.nsi - Installer snippet for cairo.   -*- coding: latin-1; -*-
 # Copyright (C) 2007 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
@@ -31,6 +31,9 @@ Section "-un.cairo"
   Call un.SourceDelete
 !else
   Delete "$INSTDIR\libcairo-2.dll"
+  Delete "$INSTDIR\libcairo-gobject-2.dll"
+  Delete "$INSTDIR\libcairo-script-interpreter-2.dll"
+
   RMDir "$INSTDIR"
 !endif
 SectionEnd
diff --git a/src/uninst-gdk-pixbuf.nsi b/src/uninst-gdk-pixbuf.nsi
new file mode 100644 (file)
index 0000000..f82484c
--- /dev/null
@@ -0,0 +1,39 @@
+# uninst-gdk-pixbuf.nsi                       .      -*- coding: latin-1; -*-
+# Copyright (C) 2012 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
+
+!ifdef prefix
+!undef prefix
+!endif
+!define prefix ${ipdir}/gdk-pixbuf-${gpg4win_pkg_gdk_pixbuf_version}
+
+
+; Uninstaller section.
+Section "-un.gdk_pixbuf"
+!ifdef SOURCES
+  Push "${gpg4win_pkg_gdk_pixbufib}"
+  Call un.SourceDelete
+!else
+
+  Delete "$INSTDIR\libgdk_pixbuf-2.0-0.dll"
+  Delete "$INSTDIR\gdk-pixbuf-query-loaders.exe"
+  Delete "$INSTDIR\gdk-pixbuf-pixdata.exe"
+
+  RMDir "$INSTDIR"
+!endif
+SectionEnd
index bde22f8..7ca6ac2 100644 (file)
@@ -1,18 +1,18 @@
 # uninst-glib.nsi - Installer snippet for glib.      -*- coding: latin-1; -*-
 # Copyright (C) 2005, 2008 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
@@ -46,10 +46,29 @@ Section "-un.glib"
   RMDir "$INSTDIR\share\locale\ru\LC_MESSAGES"
   RMDir "$INSTDIR\share\locale\ru"
   RMDir "$INSTDIR\share\locale"
+
+  Delete "$INSTDIR\share\glib-2.0\schemas\gschema.dtd"
+  RMDir "$INSTDIR\share\glib-2.0\schemas"
+  RMDir "$INSTDIR\share\glib-2.0"
+
   RMDir "$INSTDIR\share"
 
+  Delete "$INSTDIR\lib\charset.alias"
+  RMDir "$INSTDIR\lib"
+
   Delete "$INSTDIR\gspawn-win32-helper.exe"
   Delete "$INSTDIR\gspawn-win32-helper-console.exe"
+  Delete "$INSTDIR\gdbus.exe"
+  Delete "$INSTDIR\gio-querymodules.exe"
+  Delete "$INSTDIR\glib-compile-resources.exe"
+  Delete "$INSTDIR\glib-compile-schemas.exe"
+  Delete "$INSTDIR\glib-genmarshal.exe"
+  Delete "$INSTDIR\gobject-query.exe"
+  Delete "$INSTDIR\gresource.exe"
+  Delete "$INSTDIR\gsettings.exe"
+  Delete "$INSTDIR\gspawn-win32-helper-console.exe"
+  Delete "$INSTDIR\gspawn-win32-helper.exe"
+
   Delete "$INSTDIR\libglib-2.0-0.dll"
   Delete "$INSTDIR\libgmodule-2.0-0.dll"
   Delete "$INSTDIR\libgobject-2.0-0.dll"
index 0541892..cd3ef61 100644 (file)
@@ -1,18 +1,18 @@
 # uninst-gtk+.nsi - Installer snippet for gtk+.   -*- coding: latin-1; -*-
 # Copyright (C) 2005, 2008 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
@@ -31,14 +31,15 @@ Section "-un.gtk+"
   Call un.SourceDelete
 !else
 
-  Delete "$INSTDIR\libgdk_pixbuf-2.0-0.dll"
   Delete "$INSTDIR\libgdk-win32-2.0-0.dll"
   Delete "$INSTDIR\libgtk-win32-2.0-0.dll"
 
   Delete "$INSTDIR\libgailutil-18.dll"
-  Delete "$INSTDIR\gdk-pixbuf-query-loaders.exe"
   Delete "$INSTDIR\gtk-query-immodules-2.0.exe"
 
+  Delete "$INSTDIR\gtk-update-icon-cache.exe.manifest"
+  Delete "$INSTDIR\gtk-update-icon-cache.exe"
+
   Delete "$INSTDIR\etc\gtk-2.0\gdk-pixbuf.loaders"
   Delete "$INSTDIR\etc\gtk-2.0\gtk.immodules"
   Delete "$INSTDIR\etc\gtk-2.0\im-multipress.conf"
diff --git a/src/uninst-libffi.nsi b/src/uninst-libffi.nsi
new file mode 100644 (file)
index 0000000..2fc9187
--- /dev/null
@@ -0,0 +1,36 @@
+# uninst-libffi                                  -*- coding: latin-1; -*-
+# Copyright (C) 2012 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
+
+!ifdef prefix
+!undef prefix
+!endif
+!define prefix ${ipdir}/libffi-${gpg4win_pkg_libffi_version}
+
+
+; Uninstaller section.
+Section "-un.libffi"
+!ifdef SOURCES
+  Push "${gpg4win_pkg_libffi}"
+  Call un.SourceDelete
+!else
+
+  Delete "$INSTDIR\libffi-5.dll"
+  RMDir "$INSTDIR"
+!endif
+SectionEnd
diff --git a/src/zlib.pc b/src/zlib.pc
new file mode 100644 (file)
index 0000000..b758050
--- /dev/null
@@ -0,0 +1,10 @@
+prefix=/usr
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: zlib
+Description:  zlib compression library
+Version: 1.2.5
+Libs: -L${libdir} -lz
+Cflags: -I${includedir}