diff options
author | Milan Crha <mcrha@redhat.com> | 2014-08-25 17:36:19 +0800 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2014-08-25 17:36:19 +0800 |
commit | 396e5e82c16d3d81e1e575e02fe05a77149ed0ea (patch) | |
tree | 655b4918d46b56a1a638f6c4d4476c727530ea17 /win32 | |
parent | 9a8604400946bf0fe5d1fa227fa2524e9baf4fb0 (diff) | |
download | gsoc2013-evolution-396e5e82c16d3d81e1e575e02fe05a77149ed0ea.tar gsoc2013-evolution-396e5e82c16d3d81e1e575e02fe05a77149ed0ea.tar.gz gsoc2013-evolution-396e5e82c16d3d81e1e575e02fe05a77149ed0ea.tar.bz2 gsoc2013-evolution-396e5e82c16d3d81e1e575e02fe05a77149ed0ea.tar.lz gsoc2013-evolution-396e5e82c16d3d81e1e575e02fe05a77149ed0ea.tar.xz gsoc2013-evolution-396e5e82c16d3d81e1e575e02fe05a77149ed0ea.tar.zst gsoc2013-evolution-396e5e82c16d3d81e1e575e02fe05a77149ed0ea.zip |
Add Win32 build scripts into sources
See win32/readme.txt for more information.
Diffstat (limited to 'win32')
38 files changed, 5603 insertions, 0 deletions
diff --git a/win32/.gitignore b/win32/.gitignore new file mode 100644 index 0000000000..4448af21d0 --- /dev/null +++ b/win32/.gitignore @@ -0,0 +1,2 @@ +/src +/downloads diff --git a/win32/Makefile b/win32/Makefile new file mode 100644 index 0000000000..0d325b8f1a --- /dev/null +++ b/win32/Makefile @@ -0,0 +1,736 @@ +all: help
+
+help:
+ @echo Creates evolution from sources
+ @echo usual call order is:
+ @echo " - dependencies - builds dependencies, including evolution-data-server"
+ @echo " - evolution - builds evolution itself"
+ @echo " - addons - builds 3rd-party connectors, like ews and rss"
+
+env:
+ @if test "$(BUILD_ROOT_DEPS)" = "" -o "$(BUILD_ROOT_EVO)" = "" ; then \
+ echo "Run 'source setup-env' first" >&2; \
+ exit 1; \
+ fi
+ @if test ! -d src ; then \
+ mkdir src; \
+ fi
+ @if test ! -d downloads ; then \
+ mkdir downloads; \
+ fi
+
+# use `make V=1` to get verbose build
+VERBOSE="$(V)"
+DISABLE_GTK_DOC=--disable-gtk-doc --disable-gtk-doc-html --disable-gtk-doc-pdf
+
+# Shortcuts
+deps: dependencies
+eds: evolution-data-server
+evo: evolution
+ews: evolution-ews
+rss: evolution-rss
+
+dependencies: core-tools zlib fake-gtk-doc gnome-common dbus glib gtk librsvg2 icon-themes gsettings-desktop-schemas shared-mime-info libsoup nss liboauth libgdata libgweather openldap libical iso-codes enchant gtkspell gcr webkitgtk gtkhtml
+addons: evolution-ews evolution-rss
+evolution-data-server: dependencies evolution-data-server$(EVO_BUILD_SUFFIX)
+evolution: evolution$(EVO_BUILD_SUFFIX)
+evolution-ews: evolution-ews$(EVO_BUILD_SUFFIX)
+evolution-rss: evolution-rss$(EVO_BUILD_SUFFIX)
+
+
+# !!! TODO !!! FixMe !!! TODO !!!
+evolution-data-server-stable: evolution-data-server-master
+evolution-stable: evolution-master
+evolution-ews-stable: evolution-ews-master
+evolution-rss-stable: evolution-rss-master
+
+evolution-data-server-master: env dependencies $(BUILD_ROOT_EVO)/lib/pkgconfig/libedataserver-1.2.pc
+
+$(BUILD_ROOT_EVO)/lib/pkgconfig/libedataserver-1.2.pc:
+ @if test ! -d "../../evolution-data-server" ; then \
+ cd ../.. && \
+ git clone git://git.gnome.org/evolution-data-server; \
+ fi
+ @if test ! -f "../../evolution-data-server/gtk-doc.make" ; then \
+ cp "patches/gtk-doc.make" "../../evolution-data-server/"; \
+ fi
+ @./build acmmi "$(BUILD_ROOT_EVO)" ../../../evolution-data-server "" "--enable-weather --disable-goa --disable-uoa --disable-examples --without-libdb --with-openldap=$(BUILD_ROOT_DEPS) $(DISABLE_GTK_DOC)" $(VERBOSE)
+
+evolution-master: env evolution-data-server-master $(BUILD_ROOT_EVO)/lib/pkgconfig/evolution-shell-3.0.pc
+
+$(BUILD_ROOT_EVO)/lib/pkgconfig/evolution-shell-3.0.pc:
+ @if test ! -d "../../evolution" ; then \
+ cd ../.. && \
+ git clone git://git.gnome.org/evolution; \
+ fi
+ @if test ! -f "../../evolution/gtk-doc.make" ; then \
+ cp "patches/gtk-doc.make" "../../evolution/"; \
+ fi
+ @./build acmmi "$(BUILD_ROOT_EVO)" ../../../evolution "" "--enable-plugins=all --enable-weather --disable-canberra --disable-contact-maps --disable-goa --disable-libcryptui --disable-bogofilter --disable-spamassassin --disable-text-highlight --disable-pst-import --disable-gnome-desktop --without-clutter --without-help $(DISABLE_GTK_DOC)" $(VERBOSE)
+
+evolution-ews-master: env evolution-master $(BUILD_ROOT_EVO)/lib/evolution-data-server/libeews-1.2.dll.a
+
+$(BUILD_ROOT_EVO)/lib/evolution-data-server/libeews-1.2.dll.a:
+ @if test ! -d "../../evolution-ews" ; then \
+ cd ../.. && \
+ git clone git://git.gnome.org/evolution-ews; \
+ fi
+ @if test ! -f "../../evolution-ews/gtk-doc.make" ; then \
+ cp "patches/gtk-doc.make" "../../evolution-ews/"; \
+ fi
+ @./build acmmi "$(BUILD_ROOT_EVO)" ../../../evolution-ews "" "--with-internal-lzx" $(VERBOSE)
+ @mv $(BUILD_ROOT_EVO)/lib/bin/* $(BUILD_ROOT_EVO)/bin/
+
+evolution-rss-master: env evolution-master $(BUILD_ROOT_EVO)/share/glib-2.0/schemas/org.gnome.evolution.plugin.evolution-rss.gschema.xml
+
+$(BUILD_ROOT_EVO)/share/glib-2.0/schemas/org.gnome.evolution.plugin.evolution-rss.gschema.xml:
+ @if test ! -d "../../evolution-rss" ; then \
+ cd ../.. && \
+ git clone git://git.gnome.org/evolution-rss; \
+ fi
+ @if test ! -f "../../evolution-rss/gtk-doc.make" ; then \
+ cp "patches/gtk-doc.make" "../../evolution-rss/"; \
+ fi
+ @./build acmmi "$(BUILD_ROOT_EVO)" ../../../evolution-rss "rss.patch" "" $(VERBOSE)
+
+gcr: env gtk dbus $(BUILD_ROOT_DEPS)/lib/pkgconfig/gcr-3.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/gcr-3.pc:
+ @./get-src https://download.gnome.org/sources/gcr/3.10 gcr-3.10.1.tar.xz
+ @./build acmmi "$(BUILD_ROOT_DEPS)" gcr-3.10.1 "gcr.patch" "$(DISABLE_GTK_DOC)" $(VERBOSE)
+
+shared-mime-info: env $(BUILD_ROOT_DEPS)/share/pkgconfig/shared-mime-info.pc
+
+$(BUILD_ROOT_DEPS)/share/pkgconfig/shared-mime-info.pc:
+ @./get-src http://freedesktop.org/~hadess shared-mime-info-1.2.tar.xz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" shared-mime-info-1.2 "" "" $(VERBOSE)
+
+glib: env zlib libxml2 libffi fake-gtk-doc $(BUILD_ROOT_DEPS)/lib/pkgconfig/glib-2.0.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/glib-2.0.pc:
+ @./get-src https://download.gnome.org/sources/glib/2.40 glib-2.40.0.tar.xz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" glib-2.40.0 "" "--disable-static" $(VERBOSE)
+
+glib-networking: env glib gnutls $(BUILD_ROOT_DEPS)/lib/gio/modules/libgiognutls.la
+
+$(BUILD_ROOT_DEPS)/lib/gio/modules/libgiognutls.la:
+ @./get-src https://download.gnome.org/sources/glib-networking/2.40 glib-networking-2.40.1.tar.xz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" glib-networking-2.40.1 "" "--without-ca-certificates" $(VERBOSE)
+
+libmspack: env $(BUILD_ROOT_DEPS)/lib/pkgconfig/libmspack.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/libmspack.pc:
+ @./get-src http://www.cabextract.org.uk/libmspack libmspack-0.4alpha.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" libmspack-0.4alpha "" "" $(VERBOSE)
+
+libsoup: env glib-networking sqlite $(BUILD_ROOT_DEPS)/lib/pkgconfig/libsoup-2.4.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/libsoup-2.4.pc:
+ @./get-src https://download.gnome.org/sources/libsoup/2.44 libsoup-2.44.2.tar.xz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" libsoup-2.44.2 "" "--disable-tls-check $(DISABLE_GTK_DOC)" $(VERBOSE)
+
+libical: env tzdata cmake $(BUILD_ROOT_DEPS)/lib/pkgconfig/libical.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/libical.pc:
+ @./get-src "http://downloads.sourceforge.net/project/freeassociation/libical/libical-1.0/libical-1.0.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Ffreeassociation%2Ffiles%2Flibical%2Flibical-1.0%2F&ts=1395872482&use_mirror=cznic" "0" libical-1.0.tar.gz
+ @cd src/libical-1.0 && \
+ cmake -G "MSYS Makefiles" -DCMAKE_PREFIX_PATH=$(BUILD_ROOT_DEPS) -DCMAKE_INSTALL_PREFIX=$(BUILD_ROOT_DEPS) .
+ @./build mmi "$(BUILD_ROOT_DEPS)" libical-1.0 "libical.patch" "" $(VERBOSE)
+
+libgweather: env libsoup tzdata $(BUILD_ROOT_DEPS)/lib/pkgconfig/gweather-3.0.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/gweather-3.0.pc:
+ @./get-src https://download.gnome.org/sources/libgweather/3.10 libgweather-3.10.2.tar.xz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" libgweather-3.10.2 "libgweather.patch" "--with-zoneinfo-dir=$(BUILD_ROOT_DEPS)/share/zoneinfo $(DISABLE_GTK_DOC)" $(VERBOSE)
+
+tzdata: env $(BUILD_ROOT_DEPS)/share/zoneinfo/zone.tab
+
+$(BUILD_ROOT_DEPS)/share/zoneinfo/zone.tab:
+ @./get-src https://www.iana.org/time-zones/repository/releases tzdata2014b.tar.gz "" src/tzdata2014b
+ @./get-src https://www.iana.org/time-zones/repository/releases tzcode2014b.tar.gz "" src/tzcode2014b
+ @cp src/tzcode2014b/* src/tzdata2014b/
+ @./build mmi "$(BUILD_ROOT_DEPS)" tzdata2014b "tzdata.patch" "TOPDIR=$(BUILD_ROOT_DEPS) CC=gcc" $(VERBOSE)
+
+iso-codes: env $(BUILD_ROOT_DEPS)/share/pkgconfig/iso-codes.pc
+
+$(BUILD_ROOT_DEPS)/share/pkgconfig/iso-codes.pc:
+ @./get-src https://pkg-isocodes.alioth.debian.org/downloads iso-codes-3.51.tar.xz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" iso-codes-3.51 "" "" $(VERBOSE)
+
+enchant: env $(BUILD_ROOT_DEPS)/lib/pkgconfig/enchant.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/enchant.pc:
+ @./get-src http://www.abisource.com/downloads/enchant/1.6.0 enchant-1.6.0.tar.gz
+ @export CFLAGS="$(CFLAGS) -DNO_STRICT=1" && ./build cmmi "$(BUILD_ROOT_DEPS)" enchant-1.6.0 "" "" $(VERBOSE)
+
+nss: env moztools $(BUILD_ROOT_DEPS)/lib/pkgconfig/nss.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/nss.pcAAA:
+ @./get-src ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_15_4_RTM/src nss-3.15.4-with-nspr-4.10.2.tar.gz "" "" "nss-3.15.4"
+ @cd src/nss-3.15.4/ && \
+ (patch -p1 -f <../../patches/nss.patch || echo a > /dev/null) && \
+ export BUILD_OPT=1 && \
+ export OS_TARGET=WINNT && \
+ export NS_USE_GCC=1 && \
+ export NSPR_USE_GCC=1 && \
+ export NSPR_PREFIX=`pwd`/dist/WINNT6.1_gcc_OPT.OBJ && \
+ ../../build cmmi "$(BUILD_ROOT_DEPS)" nspr "" "--host=i586-pc-mingw32 --prefix=$(BUILD_ROOT_DEPS) --with-dist-prefix=`pwd`/dist/WINNT6.1_gcc_OPT.OBJ --with-dist-includedir=`pwd`/dist/WINNT6.1_gcc_OPT.OBJ/include --enable-win32-target=WINNT" $(VERBOSE) "nspr" && \
+ mv $(BUILD_ROOT_DEPS)/lib/libnspr4.dll $(BUILD_ROOT_DEPS)/bin/ && \
+ mv $(BUILD_ROOT_DEPS)/lib/libplc4.dll $(BUILD_ROOT_DEPS)/bin/ && \
+ mv $(BUILD_ROOT_DEPS)/lib/libplds4.dll $(BUILD_ROOT_DEPS)/bin/ && \
+ ../../build m "$(BUILD_ROOT_DEPS)" nss "" "all" $(VERBOSE) "nss" && \
+ cp -rf dist/public/* "$(BUILD_ROOT_DEPS)/include/" && \
+ mv dist/WINNT6.1_gcc_OPT.OBJ/lib/*.dll "$(BUILD_ROOT_DEPS)/bin/" && \
+ mv dist/WINNT6.1_gcc_OPT.OBJ/lib/* "$(BUILD_ROOT_DEPS)/lib/" && \
+ echo "prefix=$(BUILD_ROOT_DEPS)" >$(BUILD_ROOT_DEPS)/lib/pkgconfig/nss.pc && \
+ cat nss/nss.pc >>$(BUILD_ROOT_DEPS)/lib/pkgconfig/nss.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/nss.pc:
+ @./get-src ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_15_4_RTM/src nss-3.15.4-with-nspr-4.10.2.tar.gz "" "" "nss-3.15.4"
+ @cd src/nss-3.15.4/ && \
+ (patch -p1 -f <../../patches/nss.patch || echo a > /dev/null) && \
+ export NSPR_USE_GCC=1 && \
+ export NSPR_PREFIX=`pwd`/dist/WIN954.0_gcc_OPT.OBJ && \
+ export BUILD_OPT=1 && \
+ export NS_USE_GCC=1 && \
+ ../../build cmmi "$(BUILD_ROOT_DEPS)" nspr "" "--prefix=$(BUILD_ROOT_DEPS) --enable-win32-target=WIN95 --enable-debug=no --with-dist-prefix=`pwd`/dist/WIN954.0_gcc_OPT.OBJ --with-dist-includedir=`pwd`/dist/WIN954.0_gcc_OPT.OBJ/include " "$(VERBOSE)" "nspr" "'-DRELEASE_OBJDIR_NAME=WIN954.0_gcc_OPT.OBJ'" && \
+ ../../build m "$(BUILD_ROOT_DEPS)" nss "" "all" "$(VERBOSE)" "nss" && \
+ cp -rf dist/public/* "$(BUILD_ROOT_DEPS)/include/" && \
+ mv $(BUILD_ROOT_DEPS)/lib/nspr4.dll $(BUILD_ROOT_DEPS)/bin/libnspr4.dll && \
+ mv $(BUILD_ROOT_DEPS)/lib/plc4.dll $(BUILD_ROOT_DEPS)/bin/libplc4.dll && \
+ mv $(BUILD_ROOT_DEPS)/lib/plds4.dll $(BUILD_ROOT_DEPS)/bin/libplds4.dll && \
+ mv dist/WIN954.0_gcc_OPT.OBJ/lib/*.dll "$(BUILD_ROOT_DEPS)/bin/" && \
+ mv dist/WIN954.0_gcc_OPT.OBJ/lib/* "$(BUILD_ROOT_DEPS)/lib/" && \
+ echo "prefix=$(BUILD_ROOT_DEPS)" >$(BUILD_ROOT_DEPS)/lib/pkgconfig/nss.pc && \
+ cat nss/nss.pc >>$(BUILD_ROOT_DEPS)/lib/pkgconfig/nss.pc
+
+moztools: env $(BUILD_ROOT_DEPS)/bin/nsinstall.exe
+
+$(BUILD_ROOT_DEPS)/bin/nsinstall.exe:
+ @./get-src http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32 moztools-static.zip "" "" "moztools"
+ @cp src/moztools/bin/nsinstall.exe $(BUILD_ROOT_DEPS)/bin/
+
+gnutls: env zlib gmp nettle p11-kit $(BUILD_ROOT_DEPS)/lib/pkgconfig/gnutls.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/gnutls.pc:
+ @./get-src ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2 gnutls-3.2.12.1.tar.xz "" "" "gnutls-3.2.12"
+ @./build cmmi "$(BUILD_ROOT_DEPS)" gnutls-3.2.12 "@gnutls.patch" "--disable-guile --disable-doc --disable-libdane --disable-crywrap" $(VERBOSE)
+
+gnupg: env gnutls pth libassuan libksba $(BUILD_ROOT_DEPS)/bin/gpg2.exe
+
+$(BUILD_ROOT_DEPS)/bin/gpg2.exe:
+ @./get-src ftp://ftp.gnupg.org/gcrypt/gnupg gnupg-2.0.22.tar.bz2
+ @./build cmmi "$(BUILD_ROOT_DEPS)" gnupg-2.0.22 "" "" $(VERBOSE)
+
+pth: env $(BUILD_ROOT_DEPS)/lib/libw32pth.dll.a
+
+$(BUILD_ROOT_DEPS)/lib/libw32pth.dll.a:
+ @./get-src ftp://ftp.g10code.com/g10code/w32pth w32pth-2.0.5.tar.bz2
+ @cd src/w32pth-2.0.5 && \
+ mv libw32pth.def libw32pth.def.orig && \
+ echo EXPORTS >libw32pth.def && \
+ cat libw32pth.def.orig | grep -v EXPORTS >>libw32pth.def
+ @./build cmmi "$(BUILD_ROOT_DEPS)" w32pth-2.0.5 "" "" $(VERBOSE)
+
+libassuan: env $(BUILD_ROOT_DEPS)/lib/libassuan.dll.a
+
+$(BUILD_ROOT_DEPS)/lib/libassuan.dll.a:
+ @./get-src ftp://ftp.gnupg.org/gcrypt/libassuan libassuan-2.1.1.tar.bz2
+ @cd src/libassuan-2.1.1/src && \
+ mv libassuan.def libassuan.def.orig && \
+ echo EXPORTS >libassuan.def && \
+ cat libassuan.def.orig | grep -v EXPORTS >>libassuan.def
+ @./build cmmi "$(BUILD_ROOT_DEPS)" libassuan-2.1.1 "" "" $(VERBOSE)
+
+libksba: env $(BUILD_ROOT_DEPS)/lib/libksba.dll.a
+
+$(BUILD_ROOT_DEPS)/lib/libksba.dll.a:
+ @./get-src ftp://ftp.gnupg.org/gcrypt/libksba libksba-1.3.0.tar.bz2
+ @cd src/libksba-1.3.0/src && \
+ mv libksba.def libksba.def.orig && \
+ echo EXPORTS >libksba.def.def && \
+ cat libksba.def.orig | grep -v EXPORTS >>libksba.def
+ @./build cmmi "$(BUILD_ROOT_DEPS)" libksba-1.3.0 "" "" $(VERBOSE)
+
+sqlite: env $(BUILD_ROOT_DEPS)/lib/pkgconfig/sqlite3.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/sqlite3.pc:
+ @./get-src http://sqlite.org/2014 sqlite-autoconf-3080300.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" sqlite-autoconf-3080300 "" "" $(VERBOSE)
+
+nettle: env $(BUILD_ROOT_DEPS)/lib/pkgconfig/nettle.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/nettle.pc:
+ @./get-src http://www.lysator.liu.se/~nisse/archive nettle-2.7.1.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" nettle-2.7.1 "" "" $(VERBOSE)
+
+gmp: env $(BUILD_ROOT_DEPS)/lib/libgmp.la
+
+$(BUILD_ROOT_DEPS)/lib/libgmp.la:
+ @./get-src https://gmplib.org/download/gmp gmp-4.3.2.tar.bz2
+ @./build cmmi "$(BUILD_ROOT_DEPS)" gmp-4.3.2 "" "--disable-assembly --disable-fft --without-readline --enable-shared --disable-static --disable-rpath" $(VERBOSE)
+
+p11-kit: env libtasn1 $(BUILD_ROOT_DEPS)/lib/pkgconfig/p11-kit-1.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/p11-kit-1.pc:
+ @./get-src http://cgit.freedesktop.org/p11-glue/p11-kit/snapshot p11-kit-98292d6bbc.tar.gz
+ @./build acmmi "$(BUILD_ROOT_DEPS)" p11-kit-98292d6bbc "p11-kit.patch" "--disable-rpath --disable-trust-module --without-trust-paths" $(VERBOSE)
+
+trousers: env openssl $(BUILD_ROOT_DEPS)/lib/pkgconfig/trousers.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/trousers.pc:
+ @./get-src "http://downloads.sourceforge.net/project/trousers/trousers/0.3.11/trousers-0.3.11.2.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Ftrousers%2Ffiles%2Ftrousers%2F0.3.11%2F&ts=1390773464&use_mirror=skylink" "0" trousers-0.3.11.2.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" trousers-0.3.11.2 "" "" $(VERBOSE)
+
+libunbound: env openssl ldns $(BUILD_ROOT_DEPS)/lib/pkgconfig/libunbound.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/libunbound.pc:
+ @./get-src http://unbound.net/downloads unbound-1.4.21.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" unbound-1.4.21 "" "--with-ssl=$(BUILD_ROOT_DEPS) --with-libexpat=$(BUILD_ROOT_DEPS) --with-libunbound-only --disable-ecdsa" $(VERBOSE)
+
+ldns: env $(BUILD_ROOT_DEPS)/lib/pkgconfig/ldns.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/ldns.pc:
+ @./get-src http://www.nlnetlabs.nl/downloads/ldns ldns-1.6.16.tar.gz
+ @mkdir src/ldns-1.6.16/lib
+ @mkdir src/ldns-1.6.16/lib/.libs
+ @./build cmmi "$(BUILD_ROOT_DEPS)" ldns-1.6.16 "" "--with-ssl=$(BUILD_ROOT_DEPS) " $(VERBOSE)
+
+liboauth: env nss $(BUILD_ROOT_DEPS)/lib/pkgconfig/oauth.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/oauth.pc:
+ @./get-src "http://downloads.sourceforge.net/project/liboauth/liboauth-1.0.1.tar.gz?r=http%3A%2F%2Fliboauth.sourceforge.net%2F&ts=1394912907&use_mirror=heanet" "0" liboauth-1.0.1.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" liboauth-1.0.1 "@liboauth.patch" "--enable-nss" $(VERBOSE)
+ @rm $(BUILD_ROOT_DEPS)/lib/liboauth.la
+
+curl: env nss openldap $(BUILD_ROOT_DEPS)/lib/pkgconfig/curl.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/curl.pc:
+ @./get-src http://curl.haxx.se/download curl-7.35.0.tar.bz2
+ @./build cmmi "$(BUILD_ROOT_DEPS)" curl-7.35.0 "" "--with-nss" $(VERBOSE)
+
+heimdal: env nss ncurses openssl openldap $(BUILD_ROOT_DEPS)/lib/pkgconfig/heimdal.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/heimdal.pc:
+ @./get-src http://www.h5l.org/dist/src heimdal-1.5.2.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" heimdal-1.5.2 "" "" $(VERBOSE)
+
+ncurses: env $(BUILD_ROOT_DEPS)/lib/libncurses.a
+
+$(BUILD_ROOT_DEPS)/lib/libncurses.a:
+ @./get-src ftp://invisible-island.net/ncurses ncurses-5.9.tgz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" ncurses-5.9 "ncurses.patch" "--without-ada --without-manpages --without-progs --without-tests" $(VERBOSE)
+
+openldap: env regex gnutls libgpg-error libgcrypt $(BUILD_ROOT_DEPS)/lib/libldap.la
+
+$(BUILD_ROOT_DEPS)/lib/libldap.la:
+ @./get-src ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release openldap-2.4.9.tgz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" openldap-2.4.9 "@openldap.patch" "--disable-backends --disable-overlays --disable-slapd --disable-debug --enable-dynamic --without-threads --with-tls=gnutls" $(VERBOSE)
+
+libgpg-error: env gnutls $(BUILD_ROOT_DEPS)/lib/libgpg-error.la
+
+$(BUILD_ROOT_DEPS)/lib/libgpg-error.la:
+ @./get-src ftp://ftp.gnutls.org/gcrypt/libgpg-error libgpg-error-1.12.tar.bz2
+ @./build cmmi "$(BUILD_ROOT_DEPS)" libgpg-error-1.12 "libgpg-error.patch" "" $(VERBOSE)
+
+libgcrypt: env libgpg-error $(BUILD_ROOT_DEPS)/lib/libgcrypt.la
+
+$(BUILD_ROOT_DEPS)/lib/libgcrypt.la:
+ @./get-src ftp://ftp.gnutls.org/gcrypt/libgcrypt libgcrypt-1.6.1.tar.bz2
+ @export w32root=$(BUILD_ROOT_DEPS) && \
+ ./build acmmi "$(BUILD_ROOT_DEPS)" libgcrypt-1.6.1 "" "--build-w32^" $(VERBOSE)
+
+regex: env $(BUILD_ROOT_DEPS)/include/regex.h
+
+$(BUILD_ROOT_DEPS)/include/regex.h:
+ @./get-src "http://downloads.sourceforge.net/project/mingw/MSYS/Base/regex/regex-1.20090805-2/regex-1.20090805-2-msys-1.0.13-src.tar.lzma?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fmingw%2Ffiles%2FMSYS%2FBase%2Fregex%2Fregex-1.20090805-2%2Fregex-1.20090805-2-msys-1.0.13-src.tar.lzma%2Fdownload&ts=1395255273&use_mirror=cznic" "0" regex-1.20090805-2-msys-1.0.13-src.tar.lzma
+ @tar -xf src/regex-20090805.tar.xz --directory=src
+ @./build cmmi "$(BUILD_ROOT_DEPS)" regex-20090805 "regex.patch" "" $(VERBOSE)
+
+catgets: env $(BUILD_ROOT_DEPS)/include/langinfo.h
+
+$(BUILD_ROOT_DEPS)/include/langinfo.h:
+ @./get-src "http://downloads.sourceforge.net/project/mingw/MinGW/Extension/catgets/mingw-catgets-1.0.1/mingw-catgets-1.0.1-src.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fmingw%2Ffiles%2FMinGW%2FExtension%2Fcatgets%2Fmingw-catgets-1.0.1%2F&ts=1396202721&use_mirror=freefr" "0" mingw-catgets-1.0.1-src.tar.gz "mingw-catgets-1.0.1"
+ @./build cmmi "$(BUILD_ROOT_DEPS)" mingw-catgets-1.0.1 "" "" $(VERBOSE)
+
+libdb: env $(BUILD_ROOT_DEPS)/lib/libdb.a
+
+$(BUILD_ROOT_DEPS)/lib/libdb.a:
+ @./get-src http://download.oracle.com/berkeley-db db-5.1.29.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" db-5.1.29/build_unix "@libdb.patch" "../dist/configure --enable-smallbuild --disable-cxx --disable-java --disable-replication --enable-mingw" $(VERBOSE)
+
+libgdata: env glib libsoup liboauth json-glib $(BUILD_ROOT_DEPS)/lib/pkgconfig/libgdata.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/libgdata.pc:
+ @./get-src https://download.gnome.org/sources/libgdata/0.15 libgdata-0.15.1.tar.xz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" libgdata-0.15.1 "libgdata.patch" "--disable-gnome --disable-goa $(DISABLE_GTK_DOC)" $(VERBOSE)
+
+gsettings-desktop-schemas: env gtk $(BUILD_ROOT_DEPS)/share/pkgconfig/gsettings-desktop-schemas.pc
+
+$(BUILD_ROOT_DEPS)/share/pkgconfig/gsettings-desktop-schemas.pc:
+ @./get-src https://download.gnome.org/sources/gsettings-desktop-schemas/3.10 gsettings-desktop-schemas-3.10.1.tar.xz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" gsettings-desktop-schemas-3.10.1 "" "" $(VERBOSE)
+
+gtkspell: env gtk enchant $(BUILD_ROOT_DEPS)/lib/pkgconfig/gtkspell3-3.0.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/gtkspell3-3.0.pc:
+ @./get-src "http://downloads.sourceforge.net/project/gtkspell/3.0.4/gtkspell3-3.0.4.tar.gz?r=http%3A%2F%2Fgtkspell.sourceforge.net%2F&ts=1395867752&use_mirror=skylink" "0" gtkspell3-3.0.4.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" gtkspell3-3.0.4 "" "$(DISABLE_GTK_DOC)" $(VERBOSE)
+
+gtkhtml: env $(BUILD_ROOT_DEPS)/lib/pkgconfig/libgtkhtml-4.0.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/libgtkhtml-4.0.pc:
+ @./get-src https://download.gnome.org/sources/gtkhtml/4.8 gtkhtml-4.8.0.tar.xz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" gtkhtml-4.8.0 "" "$(DISABLE_GTK_DOC)" $(VERBOSE)
+
+gnome-common: env $(BUILD_ROOT_DEPS)/share/aclocal/gnome-common.m4
+
+$(BUILD_ROOT_DEPS)/share/aclocal/gnome-common.m4:
+ @./get-src https://download.gnome.org/sources/gnome-common/3.10 gnome-common-3.10.0.tar.xz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" gnome-common-3.10.0 "" "" $(VERBOSE)
+
+webkitgtk: env gtk enchant libsoup ruby gperf libwebp icu libsecret libxslt $(BUILD_ROOT_DEPS)/lib/pkgconfig/webkitgtk-3.0.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/webkitgtk-3.0.pc:
+ @./get-src http://webkitgtk.org/releases webkitgtk-2.4.4.tar.xz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" webkitgtk-2.4.4 "webkitgtk.patch" "--enable-win32-target --enable-spellcheck --enable-jit --disable-geolocation --disable-video --disable-web-audio --disable-webgl --disable-accelerated-compositing --disable-glx --disable-egl --disable-gles2 --disable-webkit2 $(DISABLE_GTK_DOC)" $(VERBOSE)
+
+ruby: env 7zip $(BUILD_ROOT_DEPS)/bin/ruby.exe
+
+$(BUILD_ROOT_DEPS)/bin/ruby.exe:
+ @./get-src http://dl.bintray.com/oneclick/rubyinstaller ruby-1.9.3-p545-i386-mingw32.7z
+ @cp -r src/ruby-1.9.3-p545-i386-mingw32/bin/* $(BUILD_ROOT_DEPS)/bin/
+ @cp -r src/ruby-1.9.3-p545-i386-mingw32/include/* $(BUILD_ROOT_DEPS)/include/
+ @cp -r src/ruby-1.9.3-p545-i386-mingw32/lib/* $(BUILD_ROOT_DEPS)/lib/
+
+gperf: env $(BUILD_ROOT_DEPS)/bin/gperf.exe
+
+$(BUILD_ROOT_DEPS)/bin/gperf.exe:
+ @./get-src http://ftp.gnu.org/pub/gnu/gperf gperf-3.0.4.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" gperf-3.0.4 "" "" $(VERBOSE)
+
+libwebp: env giflib $(BUILD_ROOT_DEPS)/lib/pkgconfig/libwebp.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/libwebp.pc:
+ @./get-src https://webp.googlecode.com/files libwebp-0.4.0.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" libwebp-0.4.0 "" "" $(VERBOSE)
+
+icu: env $(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-uc.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-uc.pc:
+ @./get-src http://download.icu-project.org/files/icu4c/53.1 icu4c-53_1-src.tgz "" "" icu
+ @./build cmmi "$(BUILD_ROOT_DEPS)" icu/source "" "--disable-rpath" $(VERBOSE)
+ @mv $(BUILD_ROOT_DEPS)/lib/icu*.dll $(BUILD_ROOT_DEPS)/bin/
+ @mv $(BUILD_ROOT_DEPS)/lib/icudt.dll.a $(BUILD_ROOT_DEPS)/lib/libicudt.dll.a
+ @mv $(BUILD_ROOT_DEPS)/lib/icuin.dll.a $(BUILD_ROOT_DEPS)/lib/libicuin.dll.a
+ @mv $(BUILD_ROOT_DEPS)/lib/icuio.dll.a $(BUILD_ROOT_DEPS)/lib/libicuio.dll.a
+ @mv $(BUILD_ROOT_DEPS)/lib/icule.dll.a $(BUILD_ROOT_DEPS)/lib/libicule.dll.a
+ @mv $(BUILD_ROOT_DEPS)/lib/iculx.dll.a $(BUILD_ROOT_DEPS)/lib/libiculx.dll.a
+ @mv $(BUILD_ROOT_DEPS)/lib/icutest.dll.a $(BUILD_ROOT_DEPS)/lib/libicutest.dll.a
+ @mv $(BUILD_ROOT_DEPS)/lib/icutu.dll.a $(BUILD_ROOT_DEPS)/lib/libicutu.dll.a
+ @mv $(BUILD_ROOT_DEPS)/lib/icuuc.dll.a $(BUILD_ROOT_DEPS)/lib/libicuuc.dll.a
+ @mv $(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-i18n.pc $(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-i18n.pc.bak && \
+ cat $(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-i18n.pc.bak | grep -v "Libs: -licuin53" >$(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-i18n.pc && \
+ echo "Libs: -licuin" >>$(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-i18n.pc && \
+ rm $(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-i18n.pc.bak
+ @mv $(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-io.pc $(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-io.pc.bak && \
+ cat $(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-io.pc.bak | grep -v "Libs: -licuio53" >$(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-io.pc && \
+ echo "Libs: -licuio" >>$(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-io.pc && \
+ rm $(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-io.pc.bak
+ @mv $(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-le.pc $(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-le.pc.bak && \
+ cat $(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-le.pc.bak | grep -v "Libs: -licule53" >$(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-le.pc && \
+ echo "Libs: -licule" >>$(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-le.pc && \
+ rm $(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-le.pc.bak
+ @mv $(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-lx.pc $(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-lx.pc.bak && \
+ cat $(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-lx.pc.bak | grep -v "Libs: -liculx53" >$(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-lx.pc && \
+ echo "Libs: -liculx" >>$(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-lx.pc && \
+ rm $(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-lx.pc.bak
+ @mv $(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-uc.pc $(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-uc.pc.bak && \
+ cat $(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-uc.pc.bak | grep -v "} -licuuc53 -licudt53" >$(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-uc.pc && \
+ echo "Libs: -L$(BUILD_ROOT_DEPS)/lib/ -licuuc -licudt" >>$(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-uc.pc && \
+ rm $(BUILD_ROOT_DEPS)/lib/pkgconfig/icu-uc.pc.bak
+
+libsecret: env $(BUILD_ROOT_DEPS)/lib/pkgconfig/libsecret-1.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/libsecret-1.pc:
+ @./get-src https://download.gnome.org/sources/libsecret/0.16 libsecret-0.16.tar.xz
+ @./build acmmi "$(BUILD_ROOT_DEPS)" libsecret-0.16 "libsecret.patch" "--disable-manpages" $(VERBOSE)
+
+libxslt: env libxml2 $(BUILD_ROOT_DEPS)/lib/pkgconfig/libxslt.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/libxslt.pc:
+ @./get-src https://git.gnome.org/browse/libxslt/snapshot libxslt-1.1.28.tar.gz
+ @./build acmmi "$(BUILD_ROOT_DEPS)" libxslt-1.1.28 "libxslt.patch" "" $(VERBOSE)
+
+json-glib: env glib $(BUILD_ROOT_DEPS)/lib/pkgconfig/json-glib-1.0.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/json-glib-1.0.pc:
+ @./get-src https://download.gnome.org/sources/json-glib/0.99 json-glib-0.99.2.tar.xz
+ @mv $(BUILD_ROOT_DEPS)/bin/msgmerge.exe $(BUILD_ROOT_DEPS)/bin/msgmerge.ex && \
+ ./build cmmi "$(BUILD_ROOT_DEPS)" json-glib-0.99.2 "" "$(DISABLE_GTK_DOC)" $(VERBOSE) && \
+ mv $(BUILD_ROOT_DEPS)/bin/msgmerge.ex $(BUILD_ROOT_DEPS)/bin/msgmerge.exe
+
+libunistring: env $(BUILD_ROOT_DEPS)/lib/pkgconfig/libunistring.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/libunistring.pc:
+ @./get-src ftp://ftp.gnu.org/pub/gnu/libunistring libunistring-0.9.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" libunistring-0.9 "" "" $(VERBOSE)
+
+libtasn1: env $(BUILD_ROOT_DEPS)/lib/pkgconfig/libtasn1.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/libtasn1.pc:
+ @./get-src http://ftp.gnu.org/gnu/libtasn1 libtasn1-3.4.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" libtasn1-3.4 "@libtasn1.patch" "" $(VERBOSE)
+
+openssl: env $(BUILD_ROOT_DEPS)/lib/pkgconfig/openssl.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/openssl.pc:
+ @./get-src http://www.openssl.org/source openssl-1.0.1g.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" openssl-1.0.1g "" "mingw" $(VERBOSE)
+
+gtk: env glib intltool atk gdk-pixbuf cairo pango $(BUILD_ROOT_DEPS)/lib/pkgconfig/gtk+-3.0.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/gtk+-3.0.pc:
+ @./get-src https://download.gnome.org/sources/gtk+/3.10 gtk+-3.10.6.tar.xz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" gtk+-3.10.6 "gtk.patch" "--disable-static $(DISABLE_GTK_DOC) --disable-man" $(VERBOSE)
+
+atk: env glib $(BUILD_ROOT_DEPS)/lib/pkgconfig/atk.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/atk.pc:
+ @./get-src https://download.gnome.org/sources/atk/2.10 atk-2.10.0.tar.xz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" atk-2.10.0 "atk.patch" "--disable-static" $(VERBOSE)
+
+cairo: env glib pixman libpng freetype fontconfig $(BUILD_ROOT_DEPS)/lib/pkgconfig/cairo.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/cairo.pc:
+ @./get-src http://cairographics.org/releases cairo-1.12.16.tar.xz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" cairo-1.12.16 "" "--disable-static $(DISABLE_GTK_DOC)" $(VERBOSE)
+
+pixman: env $(BUILD_ROOT_DEPS)/lib/pkgconfig/pixman-1.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/pixman-1.pc:
+ @./get-src http://cairographics.org/releases pixman-0.32.4.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" pixman-0.32.4 "" "--disable-static" $(VERBOSE)
+
+libpng: env zlib $(BUILD_ROOT_DEPS)/lib/pkgconfig/libpng.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/libpng.pc:
+ @./get-src http://download.sourceforge.net/libpng libpng-1.6.7.tar.xz
+ @./build mmi "$(BUILD_ROOT_DEPS)" libpng-1.6.7 "libpng.patch" "-f scripts/makefile.msys prefix=$(BUILD_ROOT_DEPS)" $(VERBOSE)
+ @cp $(BUILD_ROOT_DEPS)/lib/libpng16.dll.a $(BUILD_ROOT_DEPS)/lib/libpng.dll.a
+
+fontconfig: env freetype expat $(BUILD_ROOT_DEPS)/lib/pkgconfig/fontconfig.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/fontconfig.pc:
+ @./get-src http://www.freedesktop.org/software/fontconfig/release fontconfig-2.11.0.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" fontconfig-2.11.0 "@fontconfig.patch" "--disable-docs" $(VERBOSE)
+
+freetype: env zlib giflib libpng libjpeg libtiff jasper $(BUILD_ROOT_DEPS)/lib/pkgconfig/freetype2.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/freetype2.pc:
+ @./get-src http://download.savannah.gnu.org/releases/freetype freetype-2.5.2.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" freetype-2.5.2 "freetype.patch" "" $(VERBOSE)
+
+harfbuzz: env cairo freetype glib icu $(BUILD_ROOT_DEPS)/lib/pkgconfig/harfbuzz.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/harfbuzz.pc:
+ @./get-src http://www.freedesktop.org/software/harfbuzz/release harfbuzz-0.9.27.tar.bz2 || test -d src/harfbuzz-0.9.27
+ @./build cmmi "$(BUILD_ROOT_DEPS)" harfbuzz-0.9.27 "harfbuzz.patch" "--with-icu=yes --disable-static" $(VERBOSE)
+
+librsvg2: env zlib cairo gdk-pixbuf libcroco $(BUILD_ROOT_DEPS)/lib/pkgconfig/librsvg-2.0.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/librsvg-2.0.pc:
+ @./get-src http://ftp.acc.umu.se/pub/gnome/sources/librsvg/2.36 librsvg-2.36.4.tar.xz
+ @export PATH="$(PATH):`pwd`/src/librsvg-2.36.4/.libs" && \
+ ./build cmmi "$(BUILD_ROOT_DEPS)" librsvg-2.36.4 "" "--disable-gtk-theme --enable-pixbuf-loader --enable-introspection=no $(DISABLE_GTK_DOC)" $(VERBOSE)
+
+pango: env glib cairo fontconfig freetype harfbuzz $(BUILD_ROOT_DEPS)/lib/pkgconfig/pango.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/pango.pc:
+ @./get-src http://ftp.gnome.org/pub/GNOME/sources/pango/1.36 pango-1.36.1.tar.xz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" pango-1.36.1 "" "" $(VERBOSE)
+
+icon-themes: hicolor-icon-theme icon-naming-utils gnome-icon-theme gnome-icon-theme-symbolic
+
+hicolor-icon-theme: env $(BUILD_ROOT_DEPS)/share/icons/hicolor/index.theme
+
+$(BUILD_ROOT_DEPS)/share/icons/hicolor/index.theme:
+ @./get-src http://icon-theme.freedesktop.org/releases hicolor-icon-theme-0.13.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" hicolor-icon-theme-0.13 "" "" $(VERBOSE)
+
+perl-xml-simple: /lib/perl5/5.8/XML
+
+/lib/perl5/5.8/XML:
+ @./get-src http://pkgs.fedoraproject.org/repo/pkgs/perl-XML-Simple/XML-Simple-2.18.tar.gz/593aa8001e5c301cdcdb4bb3b63abc33 XML-Simple-2.18.tar.gz
+ @cp -r src/XML-Simple-2.18/lib/XML /lib/perl5/5.8/
+
+icon-naming-utils: env perl-xml-simple $(BUILD_ROOT_DEPS)/share/pkgconfig/icon-naming-utils.pc
+
+$(BUILD_ROOT_DEPS)/share/pkgconfig/icon-naming-utils.pc:
+ @./get-src http://tango.freedesktop.org/releases icon-naming-utils-0.8.90.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" icon-naming-utils-0.8.90 "" "" $(VERBOSE)
+
+gnome-icon-theme: env icon-naming-utils gtk $(BUILD_ROOT_DEPS)/share/pkgconfig/gnome-icon-theme.pc
+
+$(BUILD_ROOT_DEPS)/share/pkgconfig/gnome-icon-theme.pc:
+ @./get-src https://download.gnome.org/sources/gnome-icon-theme/3.10 gnome-icon-theme-3.10.0.tar.xz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" gnome-icon-theme-3.10.0 "" "" $(VERBOSE)
+
+gnome-icon-theme-symbolic: env gnome-icon-theme $(BUILD_ROOT_DEPS)/share/pkgconfig/gnome-icon-theme-symbolic.pc
+
+$(BUILD_ROOT_DEPS)/share/pkgconfig/gnome-icon-theme-symbolic.pc:
+ @./get-src https://download.gnome.org/sources/gnome-icon-theme-symbolic/3.10 gnome-icon-theme-symbolic-3.10.1.tar.xz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" gnome-icon-theme-symbolic-3.10.1 "" "" $(VERBOSE)
+
+gdk-pixbuf: env giflib libpng libjpeg libtiff jasper glib $(BUILD_ROOT_DEPS)/lib/pkgconfig/gdk-pixbuf-2.0.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/gdk-pixbuf-2.0.pc:
+ @./get-src https://download.gnome.org/sources/gdk-pixbuf/2.30 gdk-pixbuf-2.30.2.tar.xz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" gdk-pixbuf-2.30.2 "" "--disable-static --with-libjasper" $(VERBOSE)
+
+libcroco: env glib $(BUILD_ROOT_DEPS)/lib/pkgconfig/libcroco-0.6.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/libcroco-0.6.pc:
+ @./get-src http://ftp.acc.umu.se/pub/gnome/sources/libcroco/0.6 libcroco-0.6.8.tar.xz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" libcroco-0.6.8 "" "$(DISABLE_GTK_DOC)" $(VERBOSE)
+
+giflib: env $(BUILD_ROOT_DEPS)/include/gif_lib.h
+
+$(BUILD_ROOT_DEPS)/include/gif_lib.h:
+ @./get-src "http://downloads.sourceforge.net/project/giflib/giflib-5.0.6.tar.bz2?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fgiflib%2F&ts=1398011957&use_mirror=kent" "0" giflib-5.0.6.tar.bz2
+ @./build cmmi "$(BUILD_ROOT_DEPS)" giflib-5.0.6 "" "" $(VERBOSE)
+
+libjpeg: env zlib $(BUILD_ROOT_DEPS)/bin/libjpeg-9.dll
+
+$(BUILD_ROOT_DEPS)/bin/libjpeg-9.dll:
+ @./get-src http://www.ijg.org/files jpegsrc.v9.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" jpeg-9 "" "" $(VERBOSE)
+
+libtiff: env zlib $(BUILD_ROOT_DEPS)/lib/pkgconfig/libtiff-4.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/libtiff-4.pc:
+ @./get-src ftp://ftp.remotesensing.org/pub/libtiff tiff-4.0.3.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" tiff-4.0.3 "" "" $(VERBOSE)
+
+jasper: env zlib $(BUILD_ROOT_DEPS)/include/jasper/jasper.h
+
+$(BUILD_ROOT_DEPS)/include/jasper/jasper.h:
+ @./get-src http://www.ece.uvic.ca/~frodo/jasper/software jasper-1.900.1.zip
+ @./build cmmi "$(BUILD_ROOT_DEPS)" jasper-1.900.1 "jasper.patch" "" $(VERBOSE)
+
+libffi: env $(BUILD_ROOT_DEPS)/lib/pkgconfig/libffi.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/libffi.pc:
+ @./get-src ftp://sourceware.org/pub/libffi/ libffi-3.0.9.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" libffi-3.0.9 "" "" $(VERBOSE)
+
+dbus: env expat $(BUILD_ROOT_DEPS)/lib/pkgconfig/dbus-1.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/dbus-1.pc:
+ @./get-src http://dbus.freedesktop.org/releases/dbus dbus-1.8.0.tar.gz
+ @./build rcmmi "$(BUILD_ROOT_DEPS)" dbus-1.8.0 "dbus.patch" "--build=mingw32" $(VERBOSE)
+
+expat: env libxml2 $(BUILD_ROOT_DEPS)/lib/pkgconfig/expat.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/expat.pc:
+ @./get-src "http://downloads.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fexpat%2Ffiles%2Fexpat%2F2.1.0%2F&ts=1388081569&use_mirror=heanet" "0" expat-2.1.0.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" expat-2.1.0 "" "" $(VERBOSE)
+
+krb5: env $(BUILD_ROOT_DEPS)/include/krb5.h
+
+$(BUILD_ROOT_DEPS)/include/krb5.h:
+ @./get-src http://web.mit.edu/kerberos/dist/krb5/1.12 krb5-1.12-signed.tar
+ @./build cmmi "$(BUILD_ROOT_DEPS)" krb5-1.12-signed "" "" $(VERBOSE)
+
+# to be able to call ./autogen.sh
+fake-gtk-doc: env $(BUILD_ROOT_DEPS)/bin/gtkdocize
+
+$(BUILD_ROOT_DEPS)/bin/gtkdocize:
+ @echo "#!/bin/bash" >$(BUILD_ROOT_DEPS)/bin/gtkdocize
+ @echo "echo fake gtkdocize binary >&2" >>$(BUILD_ROOT_DEPS)/bin/gtkdocize
+ @echo "#if [ x$-1 = x--version ] ; then" >>$(BUILD_ROOT_DEPS)/bin/gtkdocize
+ @echo " echo 1.20.1" >>$(BUILD_ROOT_DEPS)/bin/gtkdocize
+ @echo " exit 0" >>$(BUILD_ROOT_DEPS)/bin/gtkdocize
+ @echo "#fi" >>$(BUILD_ROOT_DEPS)/bin/gtkdocize
+ @echo "exit 1" >>$(BUILD_ROOT_DEPS)/bin/gtkdocize
+ @cp patches/gtk-doc.m4 $(BUILD_ROOT_DEPS)/share/aclocal/
+ @cp patches/yelp.m4 $(BUILD_ROOT_DEPS)/share/aclocal/
+
+libxml2: env libiconv $(BUILD_ROOT_DEPS)/lib/pkgconfig/libxml-2.0.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/libxml-2.0.pc:
+ @./get-src ftp://xmlsoft.org/libxml2 libxml2-2.8.0.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" libxml2-2.8.0 "" "" $(VERBOSE)
+
+zlib: env pkg-config $(BUILD_ROOT_DEPS)/lib/pkgconfig/zlib.pc
+
+$(BUILD_ROOT_DEPS)/lib/pkgconfig/zlib.pc:
+ @./get-src http://zlib.net/ zlib-1.2.8.tar.xz
+ @./build mmi "$(BUILD_ROOT_DEPS)" zlib-1.2.8 "" "-f win32/Makefile.gcc NO_MSCVER_FILE64_FUNC=1" $(VERBOSE)
+ @cd src/zlib-1.2.8 && \
+ cp libz.dll.a $(BUILD_ROOT_DEPS)/lib/ && \
+ cp zlib1.dll $(BUILD_ROOT_DEPS)/bin/ && \
+ cd ../..
+
+cmake: env $(BUILD_ROOT_DEPS)/bin/cmake.exe
+
+$(BUILD_ROOT_DEPS)/bin/cmake.exe:
+ @./get-src http://www.cmake.org/files/v2.8 cmake-2.8.12.2-win32-x86.zip
+ @cp -r src/cmake-2.8.12.2-win32-x86/share/* $(BUILD_ROOT_DEPS)/share/
+ @cp -r src/cmake-2.8.12.2-win32-x86/bin/* $(BUILD_ROOT_DEPS)/bin/
+
+7zip: env $(BUILD_ROOT_DEPS)/bin/7za.exe
+
+$(BUILD_ROOT_DEPS)/bin/7za.exe:
+ @./get-src http://downloads.sourceforge.net/sevenzip 7za920.zip
+ @cp src/7za.exe $(BUILD_ROOT_DEPS)/bin/7za.exe
+
+intltool: env $(BUILD_ROOT_DEPS)/bin/intltoolize
+
+$(BUILD_ROOT_DEPS)/bin/intltoolize:
+ @./get-src https://launchpad.net/intltool/trunk/0.50.2/+download intltool-0.50.2.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" intltool-0.50.2 "" "" $(VERBOSE)
+
+core-tools: regex libtool autoconf automake pkg-config intltool libiconv gettext
+
+libtool: env $(BUILD_ROOT_DEPS)/bin/libtool
+
+$(BUILD_ROOT_DEPS)/bin/libtool:
+ @./get-src http://ftp.gnu.org/gnu/libtool libtool-2.4.tar.xz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" libtool-2.4 "" "" $(VERBOSE)
+
+autoconf: env $(BUILD_ROOT_DEPS)/bin/autoconf
+
+$(BUILD_ROOT_DEPS)/bin/autoconf:
+ @./get-src http://ftp.gnu.org/gnu/autoconf autoconf-2.69.tar.xz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" autoconf-2.69 "" "" $(VERBOSE)
+
+automake: env $(BUILD_ROOT_DEPS)/bin/automake
+
+$(BUILD_ROOT_DEPS)/bin/automake:
+ @./get-src http://ftp.gnu.org/gnu/automake automake-1.14.tar.xz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" automake-1.14 "" "" $(VERBOSE)
+
+libiconv: env $(BUILD_ROOT_DEPS)/bin/iconv.exe
+
+$(BUILD_ROOT_DEPS)/bin/iconv.exe:
+ @./get-src http://ftp.gnu.org/gnu/libiconv libiconv-1.14.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" libiconv-1.14 "" "" $(VERBOSE)
+
+gettext: env $(BUILD_ROOT_DEPS)/bin/gettext.exe
+
+$(BUILD_ROOT_DEPS)/bin/gettext.exe:
+ @./get-src http://ftp.gnu.org/pub/gnu/gettext gettext-0.18.3.1.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" gettext-0.18.3.1 "@gettext.patch" "" $(VERBOSE)
+
+bison: env $(BUILD_ROOT_DEPS)/bin/bison.exe
+
+$(BUILD_ROOT_DEPS)/bin/bison.exe:
+ @./get-src http://ftp.gnu.org/gnu/bison bison-3.0.2.tar.xz
+ @./build acmmi "$(BUILD_ROOT_DEPS)" bison-3.0.2 "bison.patch" "" $(VERBOSE)
+
+pkg-config: env $(BUILD_ROOT_DEPS)/bin/pkg-config.exe
+
+$(BUILD_ROOT_DEPS)/bin/pkg-config.exe:
+ @./get-src "http://downloads.sourceforge.net/project/pkgconfiglite/0.28-1/pkg-config-lite-0.28-1.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fpkgconfiglite%2Ffiles%2F0.28-1%2F&ts=1391208353&use_mirror=garr" "0" pkg-config-lite-0.28-1.tar.gz
+ @./build cmmi "$(BUILD_ROOT_DEPS)" pkg-config-lite-0.28-1 "" "" $(VERBOSE)
diff --git a/win32/build b/win32/build new file mode 100755 index 0000000000..915e352c35 --- /dev/null +++ b/win32/build @@ -0,0 +1,130 @@ +#!/bin/bash
+
+HOW=$1
+PREFIX=$2
+WHAT=$3
+PATCHES=$4
+CFGPARAMS=$5
+VERBOSE=$6
+SRCDIR=$7
+MKPARAMS=
+PATCHAFTERCFG=0
+
+if test "$HOW" = "m" -o "$HOW" = "mmi" ; then
+ MKPARAMS=$CFGPARAMS
+fi
+
+PATCHAFTERCFG=0
+if test "${PATCHES:0:1}" = "@" ; then
+ PATCHAFTERCFG=1
+ PATCHES=${PATCHES:1}
+fi
+
+if test "$SRCDIR" = "" ; then
+ SRCDIR=src/$WHAT
+fi
+
+cd $SRCDIR
+
+if test "$?" != "0" ; then
+ exit 1
+fi
+
+export BINARY_PATH=$PREFIX/bin
+export INCLUDE_PATH=$PREFIX/include
+export LIBRARY_PATH=$PREFIX/lib
+
+if test "$PATCHAFTERCFG" != "1" ; then
+ for p in $PATCHES; do patch -p1 -f --fuzz=0 <../../patches/$p; done
+fi
+
+if test "${HOW:0:1}" = "r" ; then
+ echo " * Running autoreconf for '$WHAT'..."
+
+ HOW=${HOW:1}
+ if test "$VERBOSE" != "1" ; then
+ autoreconf --force --install >/dev/null
+
+ else
+ autoreconf --force --install
+ fi
+
+ if test "$?" != "0" ; then
+ exit 1
+ fi
+fi
+
+if test "${HOW:0:1}" = "a" ; then
+ AUTOGENSH=
+ if test -f "./autogen.sh" ; then
+ AUTOGENSH="./autogen.sh"
+ AUTOGENPARAMS="$CFGPARAMS --prefix=$PREFIX"
+ else
+ AUTOGENSH="autoreconf -fi"
+ AUTOGENPARAMS=
+ fi
+
+ echo " * Running $AUTOGENSH for '$WHAT'..."
+
+ HOW=${HOW:1}
+ if test "$CFGPARAMS" != "" -a "${CFGPARAMS%%^}" != "" -a "${CFGPARAMS%%^}" != "$CFGPARAMS" ; then
+ AUTOGENPARAMS="${CFGPARAMS%%^}"
+ CFGPARAMS="${CFGPARAMS##*^}"
+ fi
+ if test "$VERBOSE" != "1" ; then
+ $AUTOGENSH $AUTOGENPARAMS >/dev/null
+ else
+ $AUTOGENSH $AUTOGENPARAMS
+ fi
+
+ if test "$?" != "0" ; then
+ exit 1
+ fi
+fi
+
+if test "$HOW" = "cmmi" ; then
+ echo " * Configuring '$WHAT'..."
+
+ make clean &>/dev/null
+
+ FIRSTPARAM=${CFGPARAMS%% }
+ if test "$FIRSTPARAM" != "" -a "${FIRSTPARAM%%/}" != "" -a "${FIRSTPARAM%%/}" != "$FIRSTPARAM" ; then
+ if test "$VERBOSE" != "1" ; then
+ $CFGPARAMS --prefix=$PREFIX >/dev/null
+
+ else
+ $CFGPARAMS --prefix=$PREFIX
+ fi
+ elif test "$VERBOSE" != "1" ; then
+ ./configure --prefix=$PREFIX $CFGPARAMS >/dev/null
+
+ else
+ ./configure --prefix=$PREFIX $CFGPARAMS
+ fi
+
+ if test "$?" != "0" ; then
+ exit 1
+ fi
+fi
+
+if test "$PATCHAFTERCFG" = "1" ; then
+ for p in $PATCHES; do patch -p1 -f --fuzz=0 <../../patches/$p; done
+fi
+
+if test "$VERBOSE" != "1" ; then
+ echo " * Building '$WHAT'..." && \
+ make $MKPARAMS >/dev/null && \
+ if test "$HOW" != "m" ; then
+ make install $MKPARAMS >/dev/null
+ fi
+else
+ echo " * Building '$WHAT'..." && \
+ make V=1 $MKPARAMS && \
+ if test "$HOW" != "m" ; then
+ make install V=1 $MKPARAMS
+ fi
+fi
+
+if test "$?" != "0" ; then
+ exit 1
+fi
diff --git a/win32/get-src b/win32/get-src new file mode 100755 index 0000000000..7332815982 --- /dev/null +++ b/win32/get-src @@ -0,0 +1,83 @@ +#!/bin/bash
+
+OK=0
+MKPWD=$PWD
+URLLINK=$1
+DOWNLOADEDFILE=$2
+EXTRACTTO=$4
+EXTRACTEDDIR=$5
+
+if test "$DOWNLOADEDFILE" = "0" ; then
+ DOWNLOADEDFILE=$3 ;
+else
+ URLLINK="$URLLINK/$DOWNLOADEDFILE" ;
+fi
+
+if test ! -f "downloads/$DOWNLOADEDFILE" ; then
+ cd downloads && \
+ wget --no-check-certificate $URLLINK && \
+ cd .. && \
+ OK=1
+else
+ OK=1
+fi
+if test "$OK" = "0" ; then
+ exit 1;
+fi
+
+case "$DOWNLOADEDFILE" in
+ *.7z)
+ if test "$EXTRACTEDDIR" = "" ; then
+ EXTRACTEDDIR=${DOWNLOADEDFILE%%.7z}
+ fi
+ if test ! -d "src/${EXTRACTEDDIR}" ; then
+ echo " * Unpacking '$DOWNLOADEDFILE'..."
+ if test "$EXTRACTTO" != "" ; then
+ cd $EXTRACTTO &&
+ 7za x -y $MKPWD/downloads/$DOWNLOADEDFILE >/dev/null &&
+ cd $MKPWD
+ else
+ cd src && \
+ 7za x -y ../downloads/$DOWNLOADEDFILE >/dev/null && \
+ cd ..
+ fi
+ fi
+ ;;
+ *.zip)
+ if test "$EXTRACTEDDIR" = "" ; then
+ EXTRACTEDDIR=${DOWNLOADEDFILE%%.zip}
+ fi
+ if test ! -d "src/${EXTRACTEDDIR}" ; then
+ echo " * Unpacking '$DOWNLOADEDFILE'..."
+ if test "$EXTRACTTO" != "" ; then
+ cd $EXTRACTTO &&
+ unzip -o $MKPWD/downloads/$DOWNLOADEDFILE >/dev/null &&
+ cd $MKPWD
+ else
+ cd src && \
+ unzip -o ../downloads/$DOWNLOADEDFILE >/dev/null && \
+ cd ..
+ fi
+ fi
+ ;;
+ *.tar*|*.tgz)
+ if test "$EXTRACTEDDIR" = "" ; then
+ case "$DOWNLOADEDFILE" in
+ *.tar*) EXTRACTEDDIR=${DOWNLOADEDFILE%%.tar*} ;;
+ *.tgz) EXTRACTEDDIR=${DOWNLOADEDFILE%%.tgz*} ;;
+ *) echo "unknown archive type for tar case: '$DOWNLOADEDFILE'"; exit 1; ;;
+ esac
+ fi
+ if test ! -d "src/$EXTRACTEDDIR" ; then
+ echo " * Unpacking '$DOWNLOADEDFILE'..."
+ if test "$EXTRACTTO" = "" ; then
+ EXTRACTTO=src
+ fi
+ if test ! -d "$EXTRACTTO" ; then
+ mkdir -p "$EXTRACTTO";
+ fi
+ tar -xf downloads/$DOWNLOADEDFILE --directory=$EXTRACTTO
+ fi
+ ;;
+ *) echo "unknown archive type '$DOWNLOADEDFILE'"; exit 1; ;;
+esac
diff --git a/win32/patches/atk.patch b/win32/patches/atk.patch new file mode 100644 index 0000000000..7429516d5a --- /dev/null +++ b/win32/patches/atk.patch @@ -0,0 +1,11 @@ +diff -upr -x .deps -x .libs -x '*.la' atk-2.10.0.old/atk/atk.symbols atk-2.10.0/atk/atk.symbols +--- atk-2.10.0.old/atk/atk.symbols 2013-09-13 15:00:44 +0000 ++++ atk-2.10.0/atk/atk.symbols 2014-05-17 16:34:24 +0000 +@@ -107,6 +107,7 @@ + atk_object_get_n_accessible_children + atk_object_get_name + atk_object_get_parent ++ atk_object_get_object_locale + atk_object_get_role + atk_object_get_type + atk_object_initialize diff --git a/win32/patches/bison.patch b/win32/patches/bison.patch new file mode 100644 index 0000000000..ae77ae2688 --- /dev/null +++ b/win32/patches/bison.patch @@ -0,0 +1,18 @@ +diff -upr bison-3.0.2.old/Makefile.am bison-3.0.2/Makefile.am +--- bison-3.0.2.old/Makefile.am 2013-08-02 15:35:13 +0000 ++++ bison-3.0.2/Makefile.am 2014-05-08 07:40:11 +0000 +@@ -54,12 +54,12 @@ noinst_LIBRARIES = + include build-aux/local.mk + include data/local.mk + include djgpp/local.mk +-include doc/local.mk ++#include doc/local.mk + include etc/local.mk + include examples/local.mk + include lib/local.mk + include src/local.mk +-include tests/local.mk ++#include tests/local.mk + + # See comments in build-aux/git-version-gen. However, we make .version depend + # on configure so that .version and VERSION/PACKAGE_VERSION stay in sync in the diff --git a/win32/patches/dbus.patch b/win32/patches/dbus.patch new file mode 100644 index 0000000000..c876f2fce0 --- /dev/null +++ b/win32/patches/dbus.patch @@ -0,0 +1,202 @@ +diff -upr -x .deps -x .libs -x '*.la' dbus-1.8.0.old/dbus/Makefile.am dbus-1.8.0/dbus/Makefile.am +--- dbus-1.8.0.old/dbus/Makefile.am 2014-01-20 13:40:21 +0000 ++++ dbus-1.8.0/dbus/Makefile.am 2014-08-09 12:50:47 +0000 +@@ -304,8 +304,8 @@ if DBUS_WIN + # this code is used, we don't actually need libstdc++. + noinst_LTLIBRARIES += libdbus-init-win.la + libdbus_init_win_la_SOURCES = dbus-init-win.cpp +-libdbus_1_la_LIBADD += libdbus-init-win.la +-libdbus_internal_la_LIBADD += libdbus-init-win.la ++libdbus_1_la_LIBADD += libdbus-init-win.la -lole32 ++libdbus_internal_la_LIBADD += libdbus-init-win.la -lole32 + endif + + noinst_PROGRAMS = +diff -upr -x .deps -x .libs -x '*.la' dbus-1.8.0.old/dbus/dbus-sysdeps-win.c dbus-1.8.0/dbus/dbus-sysdeps-win.c +--- dbus-1.8.0.old/dbus/dbus-sysdeps-win.c 2014-01-07 11:32:53 +0000 ++++ dbus-1.8.0/dbus/dbus-sysdeps-win.c 2014-08-09 13:35:34 +0000 +@@ -55,6 +55,7 @@ + #include <ws2tcpip.h> + #include <wincrypt.h> + #include <iphlpapi.h> ++#include <shlobj.h> + + /* Declarations missing in mingw's and windows sdk 7.0 headers */ + extern BOOL WINAPI ConvertStringSidToSidA (LPCSTR StringSid, PSID *Sid); +@@ -3379,6 +3380,139 @@ _dbus_lookup_session_address (dbus_bool_ + return TRUE; + } + ++static char * ++get_special_folder (int csidl) ++{ ++ char path[MAX_PATH+1]; ++ HRESULT hr; ++ LPITEMIDLIST pidl = NULL; ++ BOOL b; ++ char *retval = NULL; ++ ++ hr = SHGetSpecialFolderLocation (NULL, csidl, &pidl); ++ if (hr == S_OK) ++ { ++ b = SHGetPathFromIDListA (pidl, path); ++ if (b) ++ retval = strdup (path); ++ CoTaskMemFree (pidl); ++ } ++ return retval; ++} ++ ++static char * ++get_windows_directory_root (void) ++{ ++ char windowsdir[MAX_PATH]; ++ ++ if (GetWindowsDirectory (windowsdir, MAX_PATH)) ++ { ++ /* Usually X:\Windows, but in terminal server environments ++ * might be an UNC path, AFAIK. ++ */ ++ int len; ++ ++ if (!*windowsdir) ++ return strdup("C:\\"); ++ ++ len = strlen(windowsdir); ++ if (len < MAX_PATH - 1 && windowsdir[len - 1] != '\\' && windowsdir[len - 1] != '/') { ++ char sep[2] = {0, 0}, *p; ++ ++ for (p = windowsdir; *p && !*sep; p++) { ++ if (*p == '/' || *p == '\\') { ++ sep[0] = *p; ++ break; ++ } ++ } ++ ++ strcat(windowsdir, sep); ++ } ++ return strdup(windowsdir); ++ } ++ else ++ return strdup("C:\\"); ++} ++ ++static dbus_bool_t ++_dbus_set_user_home (DBusString *homedir) ++{ ++ const char *env; ++ char *tmp = NULL; ++ ++ env = _dbus_getenv("HOME"); ++ ++ /* Only believe HOME if it is an absolute path and exists. ++ * ++ * We only do this check on Windows for a couple of reasons. ++ * Historically, we only did it there because we used to ignore $HOME ++ * on UNIX. There are concerns about enabling it now on UNIX because ++ * of things like autofs. In short, if the user has a bogus value in ++ * $HOME then they get what they pay for... ++ */ ++ if (env) ++ { ++ /* In case HOME is Unix-style (it happens), convert it to ++ * Windows style. ++ */ ++ char *p; ++ tmp = strdup(env); ++ while ((p = strchr(tmp, '/')) != NULL) { ++ *p = '\\'; ++ } ++ ++ if (!((tmp[0] == '\\' || (((tmp[0] >= 'a' && tmp[0] <= 'z') || (tmp[0] >= 'A' && tmp[0] <= 'Z')) && tmp[1] == ':')) && ++ GetFileAttributesA (tmp) != INVALID_FILE_ATTRIBUTES && ++ (GetFileAttributesA (tmp) & FILE_ATTRIBUTE_DIRECTORY) != 0)) ++ { ++ env = NULL; ++ free(tmp); ++ tmp = NULL; ++ } ++ } ++ ++ if (!tmp) ++ { ++ /* USERPROFILE is probably the closest equivalent to $HOME? */ ++ env = _dbus_getenv("USERPROFILE"); ++ if (env != NULL) ++ tmp = strdup(env); ++ } ++ ++ if (!tmp) ++ tmp = get_special_folder(CSIDL_PROFILE); ++ ++ if (!tmp) ++ tmp = get_windows_directory_root(); ++ ++ if (tmp) { ++ _dbus_string_append (homedir, tmp); ++ free(tmp); ++ return TRUE; ++ } ++ ++ return FALSE; ++} ++ ++static void ++_dbus_set_homedir_from_drive_and_path_env(DBusString *homedir) ++{ ++ const char *homepath; ++ const char *homedrive; ++ ++ homedrive = _dbus_getenv("HOMEDRIVE"); ++ if (homedrive != NULL && *homedrive != '\0') ++ { ++ _dbus_string_append(homedir,homedrive); ++ } ++ ++ homepath = _dbus_getenv("HOMEPATH"); ++ if (homepath != NULL && *homepath != '\0') ++ { ++ _dbus_string_append(homedir,homepath); ++ } ++} ++ + /** + * Appends the directory in which a keyring for the given credentials + * should be stored. The credentials should have either a Windows or +@@ -3398,8 +3532,6 @@ _dbus_append_keyring_directory_for_crede + { + DBusString homedir; + DBusString dotdir; +- const char *homepath; +- const char *homedrive; + + _dbus_assert (credentials != NULL); + _dbus_assert (!_dbus_credentials_are_anonymous (credentials)); +@@ -3407,18 +3539,16 @@ _dbus_append_keyring_directory_for_crede + if (!_dbus_string_init (&homedir)) + return FALSE; + +- homedrive = _dbus_getenv("HOMEDRIVE"); +- if (homedrive != NULL && *homedrive != '\0') +- { +- _dbus_string_append(&homedir,homedrive); +- } ++ _dbus_set_homedir_from_drive_and_path_env(&homedir); ++ /* It's a default folder, like X:\, try to use a better one, in user's home directory */ ++ if (_dbus_string_get_length(&homedir) <= 3) { ++ _dbus_string_set_length(&homedir, 0); ++ if (!_dbus_set_user_home(&homedir)) { ++ _dbus_string_set_length(&homedir, 0); ++ _dbus_set_homedir_from_drive_and_path_env(&homedir); ++ } ++ } + +- homepath = _dbus_getenv("HOMEPATH"); +- if (homepath != NULL && *homepath != '\0') +- { +- _dbus_string_append(&homedir,homepath); +- } +- + #ifdef DBUS_ENABLE_EMBEDDED_TESTS + { + const char *override; diff --git a/win32/patches/fontconfig.patch b/win32/patches/fontconfig.patch new file mode 100644 index 0000000000..6fcb8881d6 --- /dev/null +++ b/win32/patches/fontconfig.patch @@ -0,0 +1,35 @@ +diff -upr fontconfig-2.11.0/src/fcatomic.h fontconfig-2.11.0.new/src/fcatomic.h +--- fontconfig-2.11.0/src/fcatomic.h 2013-10-11 03:10:18 +0000 ++++ fontconfig-2.11.0.new/src/fcatomic.h 2014-01-10 21:56:13 +0000 +@@ -51,6 +51,7 @@ + /* mingw32 does not have MemoryBarrier. + * MemoryBarrier may be defined as a macro or a function. + * Just make a failsafe version for ourselves. */ ++#undef MemoryBarrier + #ifdef MemoryBarrier + #define HBMemoryBarrier MemoryBarrier + #else +diff -upr fontconfig-2.11.0/test/Makefile fontconfig-2.11.0.new/test/Makefile +--- fontconfig-2.11.0/test/Makefile 2014-01-10 22:09:27 +0000 ++++ fontconfig-2.11.0.new/test/Makefile 2014-01-10 22:00:23 +0000 +@@ -78,7 +78,7 @@ PRE_UNINSTALL = : + POST_UNINSTALL = : + build_triplet = i686-pc-mingw32 + host_triplet = i686-pc-mingw32 +-check_PROGRAMS = test-migration$(EXEEXT) $(am__EXEEXT_1) ++check_PROGRAMS = + #am__append_1 = test-pthread + subdir = test + DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ +diff -upr fontconfig-2.11.0/test/Makefile.in fontconfig-2.11.0.new/test/Makefile.in +--- fontconfig-2.11.0/test/Makefile.in 2013-10-11 04:28:47 +0000 ++++ fontconfig-2.11.0.new/test/Makefile.in 2014-01-10 21:59:55 +0000 +@@ -78,7 +78,7 @@ PRE_UNINSTALL = : + POST_UNINSTALL = : + build_triplet = @build@ + host_triplet = @host@ +-check_PROGRAMS = test-migration$(EXEEXT) $(am__EXEEXT_1) ++check_PROGRAMS = + @HAVE_PTHREAD_TRUE@am__append_1 = test-pthread + subdir = test + DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ diff --git a/win32/patches/freetype.patch b/win32/patches/freetype.patch new file mode 100644 index 0000000000..1593340a0c --- /dev/null +++ b/win32/patches/freetype.patch @@ -0,0 +1,18 @@ +diff -upr freetype-2.5.2/src/gzip/ftgzip.c freetype-2.5.2.new/src/gzip/ftgzip.c +--- freetype-2.5.2/src/gzip/ftgzip.c 2013-08-29 15:53:13 +0000 ++++ freetype-2.5.2.new/src/gzip/ftgzip.c 2014-01-10 20:14:37 +0000 +@@ -45,6 +44,14 @@ + #error "gzip code does not support PIC yet" + #endif + ++#ifndef __int64 ++# define __int64 long long ++#endif ++typedef long _off_t; ++typedef _off_t off_t; ++typedef __int64 _off64_t; ++typedef __int64 off64_t; ++ + #ifdef FT_CONFIG_OPTION_SYSTEM_ZLIB + + #include <zlib.h> diff --git a/win32/patches/gcr.patch b/win32/patches/gcr.patch new file mode 100644 index 0000000000..1ba13b8788 --- /dev/null +++ b/win32/patches/gcr.patch @@ -0,0 +1,933 @@ +diff -upr -x .deps -x .libs -x '*.la' gcr-3.10.1.old/configure.ac gcr-3.10.1/configure.ac +--- gcr-3.10.1.old/configure.ac 2014-06-20 22:20:25 +0000 ++++ gcr-3.10.1/configure.ac 2014-06-20 21:46:28 +0000 +@@ -62,20 +62,44 @@ AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GET + AC_SUBST(GETTEXT_PACKAGE) + AM_GLIB_GNU_GETTEXT + ++dnl ****************************** ++dnl Check for Win32 ++dnl ****************************** ++AC_MSG_CHECKING([for Win32]) ++case "$host" in ++*-mingw*) ++ os_win32='yes' ++ AC_CACHE_VAL(ac_cv_have_addrinfo, [ac_cv_have_addrinfo=yes]) ++ AC_DEFINE(_WIN32_WINNT, 0x501, [To get getaddrinfo etc declarations]) ++ ;; ++*) ++ os_win32='no' ++ ;; ++esac ++AC_MSG_RESULT([$os_win32]) ++AM_CONDITIONAL(OS_WIN32, [test $os_win32 = yes]) ++ + # ----------------------------------------------------------------------------- + # GLib and GTK+ stuff + ++GIO_PLAT= ++if test "$os_win32" = "yes" ; then ++ GIO_PLAT=gio-windows-2.0 ++else ++ GIO_PLAT=gio-unix-2.0 ++fi ++ + PKG_CHECK_MODULES(GLIB, + glib-2.0 >= 2.32.0 + gmodule-no-export-2.0 + gthread-2.0 + gobject-2.0 +- gio-2.0 gio-unix-2.0) ++ gio-2.0 $GIO_PLAT) + AC_SUBST(GLIB_CFLAGS) + AC_SUBST(GLIB_LIBS) + + GLIB_GSETTINGS +-GOBJECT_INTROSPECTION_CHECK([1.34]) ++dnl GOBJECT_INTROSPECTION_CHECK([1.34]) + AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal) + AC_PATH_PROG(GLIB_MKENUMS, glib-mkenums) + +@@ -107,7 +131,7 @@ fi + + VALA_REQUIRED=0.18.0.22 + +-VAPIGEN_CHECK($VALA_REQUIRED) ++dnl VAPIGEN_CHECK($VALA_REQUIRED) + + if test "$enable_vala" != "no"; then + AC_PATH_PROG([VALAC], [valac], []) +@@ -120,6 +144,8 @@ AM_CONDITIONAL(HAVE_VALAC, test "x$VALAC + + AC_CHECK_FUNCS(timegm, AC_DEFINE(HAVE_TIMEGM,1,[Have timegm])) + AC_CHECK_FUNCS(mlock) ++AC_CHECK_FUNCS(gmtime_r strptime memrchr) ++AC_CHECK_HEADERS([err.h pwd.h syslog.h sys/mman.h sys/wait.h]) + + # -------------------------------------------------------------------- + # p11-kit +@@ -370,6 +396,9 @@ else + valgrind_status="no" + fi + ++AM_CONDITIONAL(HAVE_INTROSPECTION, test "yes" = "no") ++AM_CONDITIONAL(ENABLE_VAPIGEN, test "yes" = "no") ++ + # ---------------------------------------------------------------------- + + GCK_LT_RELEASE=$GCK_CURRENT:$GCK_REVISION:$GCK_AGE +diff -upr -x .deps -x .libs -x '*.la' gcr-3.10.1.old/egg/egg-armor.c gcr-3.10.1/egg/egg-armor.c +--- gcr-3.10.1.old/egg/egg-armor.c 2014-06-20 22:20:25 +0000 ++++ gcr-3.10.1/egg/egg-armor.c 2014-06-20 21:46:28 +0000 +@@ -60,6 +60,29 @@ EGG_SECURE_DECLARE (armor); + #define ARMOR_PREF_END "-----END " + #define ARMOR_PREF_END_L 9 + ++#ifndef HAVE_MEMRCHR ++extern void* memrchr (const void *s, int c, size_t n); ++ ++void* ++memrchr (const void *s, int c, size_t n) ++{ ++ if (n > 0) { ++ const char* p = (const char*) s; ++ const char* q = p + n; ++ ++ while (1) { ++ q--; if (q < p || q[0] == (char) c) break; ++ q--; if (q < p || q[0] == (char) c) break; ++ q--; if (q < p || q[0] == (char) c) break; ++ q--; if (q < p || q[0] == (char) c) break; ++ } ++ if (q >= p) ++ return (void*)q; ++ } ++ return NULL; ++} ++#endif ++ + static void + parse_header_lines (const gchar *hbeg, + const gchar *hend, +diff -upr -x .deps -x .libs -x '*.la' gcr-3.10.1.old/egg/egg-asn1x.c gcr-3.10.1/egg/egg-asn1x.c +--- gcr-3.10.1.old/egg/egg-asn1x.c 2014-06-20 22:20:25 +0000 ++++ gcr-3.10.1/egg/egg-asn1x.c 2014-06-20 21:46:28 +0000 +@@ -1929,7 +1929,7 @@ static int + two_to_four_digit_year (int year) + { + time_t now; +- struct tm tm; ++ GDate *date; + int century, current; + + g_return_val_if_fail (year >= 0 && year <= 99, -1); +@@ -1937,11 +1937,15 @@ two_to_four_digit_year (int year) + /* Get the current year */ + now = time (NULL); + g_return_val_if_fail (now >= 0, -1); +- if (!gmtime_r (&now, &tm)) ++ date = g_date_new (); ++ g_date_set_time_t (date, now); ++ if (!g_date_valid (date)) + g_return_val_if_reached (-1); + +- current = (tm.tm_year % 100); +- century = (tm.tm_year + 1900) - current; ++ century = (g_date_get_year (date) / 100) * 100; ++ current = g_date_get_year (date) - century; ++ ++ g_date_free (date); + + /* + * Check if it's within 40 years before the +diff -upr -x .deps -x .libs -x '*.la' gcr-3.10.1.old/egg/egg-secure-memory.c gcr-3.10.1/egg/egg-secure-memory.c +--- gcr-3.10.1.old/egg/egg-secure-memory.c 2014-06-20 22:20:25 +0000 ++++ gcr-3.10.1/egg/egg-secure-memory.c 2014-06-20 21:46:28 +0000 +@@ -32,7 +32,9 @@ + #include "egg-secure-memory.h" + + #include <sys/types.h> ++#ifdef HAVE_SYS_MMAN_H + #include <sys/mman.h> ++#endif + #include <stddef.h> + #include <string.h> + #include <stdio.h> +@@ -188,9 +190,11 @@ pool_alloc (void) + + /* Create a new pool */ + if (pool == NULL) { ++#if !defined(_WIN32) + len = getpagesize () * 2; + pages = mmap (0, len, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0); + if (pages == MAP_FAILED) ++#endif + return NULL; + + /* Fill in the block header, and inlude in block list */ +@@ -254,7 +258,9 @@ pool_free (void* item) + VALGRIND_DESTROY_MEMPOOL (pool); + #endif + ++#if !defined(_WIN32) + munmap (pool, pool->length); ++#endif + return; + } + +@@ -860,11 +866,11 @@ sec_acquire_pages (size_t *sz, + ASSERT (*sz); + ASSERT (during_tag); + ++#if defined(HAVE_MLOCK) + /* Make sure sz is a multiple of the page size */ + pgsize = getpagesize (); + *sz = (*sz + pgsize -1) & ~(pgsize - 1); + +-#if defined(HAVE_MLOCK) + pages = mmap (0, *sz, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0); + if (pages == MAP_FAILED) { + if (show_warning && egg_secure_warnings) +@@ -902,9 +908,9 @@ static void + sec_release_pages (void *pages, size_t sz) + { + ASSERT (pages); +- ASSERT (sz % getpagesize () == 0); + + #if defined(HAVE_MLOCK) ++ ASSERT (sz % getpagesize () == 0); + if (munlock (pages, sz) < 0 && egg_secure_warnings) + fprintf (stderr, "couldn't unlock private memory: %s\n", strerror (errno)); + +@@ -914,7 +920,7 @@ sec_release_pages (void *pages, size_t s + DEBUG_ALLOC ("gkr-secure-memory: freed block ", sz); + + #else +- ASSERT (FALSE); ++ ASSERT (0); + #endif + } + +@@ -937,6 +943,11 @@ sec_block_create (size_t size, + if (getenv ("SECMEM_FORCE_FALLBACK")) + return NULL; + ++#ifdef _WIN32 ++ /* win32 does not have mlock(), so just fail in that case */ ++ return NULL; ++#endif ++ + block = pool_alloc (); + if (!block) + return NULL; +diff -upr -x .deps -x .libs -x '*.la' gcr-3.10.1.old/egg/tests/test-asn1x.c gcr-3.10.1/egg/tests/test-asn1x.c +--- gcr-3.10.1.old/egg/tests/test-asn1x.c 2014-06-20 22:20:25 +0000 ++++ gcr-3.10.1/egg/tests/test-asn1x.c 2014-06-20 21:46:28 +0000 +@@ -27,7 +27,9 @@ + #include "egg/egg-asn1-defs.h" + #include "egg/egg-testing.h" + ++#ifdef HAVE_PWD_H + #include <pwd.h> ++#endif + #include <stdlib.h> + #include <unistd.h> + +diff -upr -x .deps -x .libs -x '*.la' gcr-3.10.1.old/gck/Makefile.am gcr-3.10.1/gck/Makefile.am +--- gcr-3.10.1.old/gck/Makefile.am 2014-06-20 22:20:25 +0000 ++++ gcr-3.10.1/gck/Makefile.am 2014-06-20 21:46:28 +0000 +@@ -1,6 +1,6 @@ + include $(top_srcdir)/Makefile.decl + +-SUBDIRS = . tests ++SUBDIRS = . + + incdir = $(includedir)/gck-@GCK_MAJOR@/gck + +@@ -77,16 +77,6 @@ libgck_@GCK_MAJOR@_la_LIBADD = \ + $(GIO_LIBS) \ + $(GLIB_LIBS) + +-noinst_LTLIBRARIES = libgck-testable.la +-libgck_testable_la_SOURCES = \ +- gck-mock.c \ +- gck-mock.h \ +- gck-test.c \ +- gck-test.h +-libgck_testable_la_LIBADD = $(libgck_@GCK_MAJOR@_la_OBJECTS) \ +- $(libgck_@GCK_MAJOR@_la_LIBADD) +-libgck_testable_la_DEPENDENCIES = $(libgck_@GCK_MAJOR@_la_OBJECTS) +- + gck-marshal.h: gck-marshal.list $(GLIB_GENMARSHAL) + $(GLIB_GENMARSHAL) $< --header --prefix=_gck_marshal > $@ + +diff -upr -x .deps -x .libs -x '*.la' gcr-3.10.1.old/gck/gck-debug.c gcr-3.10.1/gck/gck-debug.c +--- gcr-3.10.1.old/gck/gck-debug.c 2014-06-20 22:20:25 +0000 ++++ gcr-3.10.1/gck/gck-debug.c 2014-06-20 21:46:28 +0000 +@@ -33,6 +33,11 @@ + + #include <unistd.h> + ++#ifdef G_OS_WIN32 ++ ++#include <windows.h> ++#endif ++ + #ifdef WITH_DEBUG + + static gsize initialized_flags = 0; +@@ -69,21 +74,30 @@ on_gck_log_debug (const gchar *log_domai + { + GString *gstring; + const gchar *progname; ++#ifdef G_OS_WIN32 ++ DWORD pid = GetCurrentProcessId (); ++#else ++ pid_t pid = getpid (); ++#endif + + gstring = g_string_new (NULL); + + progname = g_get_prgname (); + g_string_append_printf (gstring, "(%s:%lu): %s-DEBUG: %s\n", + progname ? progname : "process", +- (gulong)getpid (), log_domain, ++ (gulong) pid, log_domain, + message ? message : "(NULL) message"); + ++ ++#ifdef G_OS_WIN32 ++ g_print ("%s", gstring->str); ++#else + /* + * Give up on debug messages if stdout got lost. + */ + if (write (1, gstring->str, gstring->len) != gstring->len) + current_flags = 0; +- ++#endif + g_string_free (gstring, TRUE); + } + +diff -upr -x .deps -x .libs -x '*.la' gcr-3.10.1.old/gck/gck-slot.c gcr-3.10.1/gck/gck-slot.c +--- gcr-3.10.1.old/gck/gck-slot.c 2014-06-20 22:20:25 +0000 ++++ gcr-3.10.1/gck/gck-slot.c 2014-06-20 21:46:28 +0000 +@@ -606,7 +606,7 @@ _gck_token_info_from_pkcs11 (CK_TOKEN_IN + { + GckTokenInfo *token_info; + gchar *string; +- struct tm tm; ++ GTimeVal tv; + + token_info = g_new0 (GckTokenInfo, 1); + token_info->label = gck_string_from_chars (info->label, sizeof (info->label)); +@@ -634,10 +634,12 @@ _gck_token_info_from_pkcs11 (CK_TOKEN_IN + /* Parse the time into seconds since epoch */ + if (info->flags & CKF_CLOCK_ON_TOKEN) { + string = g_strndup ((gchar*)info->utcTime, MIN (14, sizeof (info->utcTime))); +- if (!strptime (string, "%Y%m%d%H%M%S", &tm)) ++ /* Transform into an ISO-8601 string */ ++ string = g_strconcat (g_strndup (string,8), "T", g_strndup (string+8,6), "Z", NULL); ++ if (!g_time_val_from_iso8601 (string, &tv)) + token_info->utc_time = -1; + else +- token_info->utc_time = timegm (&tm); ++ token_info->utc_time = tv.tv_sec; + g_free (string); + } else { + token_info->utc_time = -1; +@@ -649,8 +651,8 @@ _gck_token_info_from_pkcs11 (CK_TOKEN_IN + void + _gck_token_info_to_pkcs11 (GckTokenInfo *token_info, CK_TOKEN_INFO_PTR info) + { +- gchar buffer[64]; +- struct tm tm; ++ gchar *buffer; ++ GDateTime *datetime = NULL; + time_t tim; + gsize len; + +@@ -690,9 +692,12 @@ _gck_token_info_to_pkcs11 (GckTokenInfo + /* Parse the time into seconds since epoch */ + if (token_info->flags & CKF_CLOCK_ON_TOKEN) { + tim = token_info->utc_time; +- if (!gmtime_r (&tim, &tm)) ++ datetime = g_date_time_new_from_unix_utc (tim); ++ if (datetime == NULL) + g_return_if_reached (); +- len = strftime (buffer, sizeof (buffer), "%Y%m%d%H%M%S", &tm); ++ buffer = g_date_time_format (datetime, "%Y%m%d%H%M%S"); ++ len = strlen (buffer); ++ g_date_time_unref (datetime); + g_return_if_fail (len == sizeof (info->utcTime)); + memcpy (info->utcTime, buffer, sizeof (info->utcTime)); + } else { +diff -upr -x .deps -x .libs -x '*.la' gcr-3.10.1.old/gck/tests/test-gck-crypto.c gcr-3.10.1/gck/tests/test-gck-crypto.c +--- gcr-3.10.1.old/gck/tests/test-gck-crypto.c 2014-06-20 22:20:25 +0000 ++++ gcr-3.10.1/gck/tests/test-gck-crypto.c 2014-06-20 21:46:28 +0000 +@@ -57,7 +57,11 @@ setup (Test *test, gconstpointer unused) + GckSlot *slot; + + /* Successful load */ ++#ifdef G_OS_WIN32 ++ test->module = gck_module_initialize (BUILDDIR "/.libs/libmock-test-module.dll", NULL, &err); ++#else + test->module = gck_module_initialize (BUILDDIR "/.libs/libmock-test-module.so", NULL, &err); ++#endif + g_assert_no_error (err); + g_assert (GCK_IS_MODULE (test->module)); + g_object_add_weak_pointer (G_OBJECT (test->module), (gpointer *)&test->module); +diff -upr -x .deps -x .libs -x '*.la' gcr-3.10.1.old/gck/tests/test-gck-enumerator.c gcr-3.10.1/gck/tests/test-gck-enumerator.c +--- gcr-3.10.1.old/gck/tests/test-gck-enumerator.c 2014-06-20 22:20:25 +0000 ++++ gcr-3.10.1/gck/tests/test-gck-enumerator.c 2014-06-20 21:46:28 +0000 +@@ -50,7 +50,11 @@ setup (Test *test, gconstpointer unused) + GError *err = NULL; + + /* Successful load */ ++#ifdef G_OS_WIN32 ++ test->module = gck_module_initialize (BUILDDIR "/.libs/libmock-test-module.dll", NULL, &err); ++#else + test->module = gck_module_initialize (BUILDDIR "/.libs/libmock-test-module.so", NULL, &err); ++#endif + g_assert_no_error (err); + g_assert (GCK_IS_MODULE (test->module)); + g_object_add_weak_pointer (G_OBJECT (test->module), (gpointer *)&test->module); +diff -upr -x .deps -x .libs -x '*.la' gcr-3.10.1.old/gck/tests/test-gck-module.c gcr-3.10.1/gck/tests/test-gck-module.c +--- gcr-3.10.1.old/gck/tests/test-gck-module.c 2014-06-20 22:20:25 +0000 ++++ gcr-3.10.1/gck/tests/test-gck-module.c 2014-06-20 21:46:28 +0000 +@@ -42,7 +42,11 @@ setup (Test *test, gconstpointer unused) + GError *err = NULL; + + /* Successful load */ ++#ifdef G_OS_WIN32 ++ test->module = gck_module_initialize (BUILDDIR "/.libs/libmock-test-module.dll", NULL, &err); ++#else + test->module = gck_module_initialize (BUILDDIR "/.libs/libmock-test-module.so", NULL, &err); ++#endif + g_assert_no_error (err); + g_assert (test->module); + g_object_add_weak_pointer (G_OBJECT (test->module), (gpointer *)&test->module); +@@ -71,7 +75,11 @@ test_initialize_async (void) + GError *error = NULL; + + /* Shouldn't be able to load modules */ ++#ifdef G_OS_WIN32 ++ gck_module_initialize_async (BUILDDIR "/.libs/libmock-test-module.dll", ++#else + gck_module_initialize_async (BUILDDIR "/.libs/libmock-test-module.so", ++#endif + NULL, fetch_async_result, &result); + + egg_test_wait_until (500); +@@ -101,7 +109,11 @@ test_invalid_modules (Test *test, gconst + g_clear_error (&error); + + /* Shouldn't be able to load any file successfully */ ++#ifdef G_OS_WIN32 ++ invalid = gck_module_initialize ("c:\\windows\\system32\\shell32.dll", NULL, &error); ++#else + invalid = gck_module_initialize ("/usr/lib/libm.so", NULL, &error); ++#endif + g_assert_error (error, GCK_ERROR, (int)CKR_GCK_MODULE_PROBLEM); + g_assert (invalid == NULL); + +@@ -139,7 +151,11 @@ test_module_props (Test *test, gconstpoi + + g_object_get (test->module, "path", &path, NULL); + g_assert (path != NULL && "no module-path"); ++#ifdef G_OS_WIN32 ++ g_assert (strcmp (BUILDDIR "/.libs/libmock-test-module.dll", path) == 0 && "module path wrong"); ++#else + g_assert (strcmp (BUILDDIR "/.libs/libmock-test-module.so", path) == 0 && "module path wrong"); ++#endif + g_free (path); + } + +diff -upr -x .deps -x .libs -x '*.la' gcr-3.10.1.old/gck/tests/test-gck-modules.c gcr-3.10.1/gck/tests/test-gck-modules.c +--- gcr-3.10.1.old/gck/tests/test-gck-modules.c 2014-06-20 22:20:25 +0000 ++++ gcr-3.10.1/gck/tests/test-gck-modules.c 2014-06-20 21:46:28 +0000 +@@ -48,7 +48,11 @@ setup (Test *test, gconstpointer unused) + GError *err = NULL; + + /* Successful load */ ++#ifdef G_OS_WIN32 ++ module = gck_module_initialize (BUILDDIR "/.libs/libmock-test-module.dll", NULL, &err); ++#else + module = gck_module_initialize (BUILDDIR "/.libs/libmock-test-module.so", NULL, &err); ++#endif + g_assert_no_error (err); + g_assert (GCK_IS_MODULE (module)); + +diff -upr -x .deps -x .libs -x '*.la' gcr-3.10.1.old/gck/tests/test-gck-object.c gcr-3.10.1/gck/tests/test-gck-object.c +--- gcr-3.10.1.old/gck/tests/test-gck-object.c 2014-06-20 22:20:25 +0000 ++++ gcr-3.10.1/gck/tests/test-gck-object.c 2014-06-20 21:46:28 +0000 +@@ -50,7 +50,11 @@ setup (Test *test, gconstpointer unused) + GList *slots; + + /* Successful load */ ++#ifdef G_OS_WIN32 ++ test->module = gck_module_initialize (BUILDDIR "/.libs/libmock-test-module.dll", NULL, &err); ++#else + test->module = gck_module_initialize (BUILDDIR "/.libs/libmock-test-module.so", NULL, &err); ++#endif + g_assert_no_error (err); + g_assert (GCK_IS_MODULE (test->module)); + +diff -upr -x .deps -x .libs -x '*.la' gcr-3.10.1.old/gck/tests/test-gck-session.c gcr-3.10.1/gck/tests/test-gck-session.c +--- gcr-3.10.1.old/gck/tests/test-gck-session.c 2014-06-20 22:20:25 +0000 ++++ gcr-3.10.1/gck/tests/test-gck-session.c 2014-06-20 21:46:28 +0000 +@@ -50,7 +50,11 @@ setup (Test *test, gconstpointer unused) + GList *slots; + + /* Successful load */ ++#ifdef G_OS_WIN32 ++ test->module = gck_module_initialize (BUILDDIR "/.libs/libmock-test-module.dll", NULL, &err); ++#else + test->module = gck_module_initialize (BUILDDIR "/.libs/libmock-test-module.so", NULL, &err); ++#endif + g_assert_no_error (err); + g_assert (GCK_IS_MODULE (test->module)); + g_object_add_weak_pointer (G_OBJECT (test->module), (gpointer *)&test->module); +diff -upr -x .deps -x .libs -x '*.la' gcr-3.10.1.old/gck/tests/test-gck-slot.c gcr-3.10.1/gck/tests/test-gck-slot.c +--- gcr-3.10.1.old/gck/tests/test-gck-slot.c 2014-06-20 22:20:25 +0000 ++++ gcr-3.10.1/gck/tests/test-gck-slot.c 2014-06-20 21:46:28 +0000 +@@ -43,7 +43,11 @@ setup (Test *test, gconstpointer unused) + GList *slots; + + /* Successful load */ ++#ifdef G_OS_WIN32 ++ test->module = gck_module_initialize (BUILDDIR "/.libs/libmock-test-module.dll", NULL, &err); ++#else + test->module = gck_module_initialize (BUILDDIR "/.libs/libmock-test-module.so", NULL, &err); ++#endif + g_assert_no_error (err); + g_assert (GCK_IS_MODULE (test->module)); + +diff -upr -x .deps -x .libs -x '*.la' gcr-3.10.1.old/gcr/Makefile.am gcr-3.10.1/gcr/Makefile.am +--- gcr-3.10.1.old/gcr/Makefile.am 2014-06-20 22:20:25 +0000 ++++ gcr-3.10.1/gcr/Makefile.am 2014-06-20 21:46:28 +0000 +@@ -1,6 +1,6 @@ + include $(top_srcdir)/Makefile.decl + +-SUBDIRS = . tests ++SUBDIRS = . + + incdir = $(includedir)/gcr-@GCR_MAJOR@/gcr + +diff -upr -x .deps -x .libs -x '*.la' gcr-3.10.1.old/gcr/gcr-gnupg-collection.c gcr-3.10.1/gcr/gcr-gnupg-collection.c +--- gcr-3.10.1.old/gcr/gcr-gnupg-collection.c 2014-06-20 22:20:25 +0000 ++++ gcr-3.10.1/gcr/gcr-gnupg-collection.c 2014-06-20 21:46:28 +0000 +@@ -36,7 +36,9 @@ + #include "gcr-record.h" + #include "gcr-util.h" + ++#ifdef HAVE_SYS_WAIT_H + #include <sys/wait.h> ++#endif + #include <string.h> + + enum { +diff -upr -x .deps -x .libs -x '*.la' gcr-3.10.1.old/gcr/gcr-gnupg-process.c gcr-3.10.1/gcr/gcr-gnupg-process.c +--- gcr-3.10.1.old/gcr/gcr-gnupg-process.c 2014-06-20 22:20:25 +0000 ++++ gcr-3.10.1/gcr/gcr-gnupg-process.c 2014-06-20 21:46:28 +0000 +@@ -31,7 +31,12 @@ + + #include <glib/gi18n-lib.h> + ++#ifdef HAVE_SYS_WAIT_H + #include <sys/wait.h> ++#endif ++#ifdef G_OS_WIN32 ++#include <windows.h> ++#endif + #include <fcntl.h> + #include <errno.h> + #include <string.h> +@@ -854,12 +859,18 @@ on_gnupg_process_child_exited (GPid pid, + gint code; + guint i; + ++#if defined (G_OS_UNIX) + _gcr_debug ("process exited: %d", (int)pid); ++#elif defined (G_OS_WIN32) ++ DWORD real_pid = GetProcessId (pid); ++ _gcr_debug ("process exited: %d", (int)real_pid); ++#endif + + g_spawn_close_pid (gnupg_source->child_pid); + gnupg_source->child_pid = 0; + gnupg_source->child_sig = 0; + ++#ifndef G_OS_WIN32 + if (WIFEXITED (status)) { + code = WEXITSTATUS (status); + if (code != 0) { +@@ -873,6 +884,7 @@ on_gnupg_process_child_exited (GPid pid, + error = g_error_new (G_SPAWN_ERROR, G_SPAWN_ERROR_FAILED, + _("Gnupg process was terminated with signal: %d"), code); + } ++#endif + + /* Take this as the async result error */ + if (error && !self->pv->error) { +@@ -891,11 +903,16 @@ on_gnupg_process_child_exited (GPid pid, + } + + complete_source_is_done (gnupg_source); ++ ++#ifdef G_OS_WIN32 ++ g_spawn_close_pid (pid); ++#endif + } + + static void + on_gnupg_process_child_setup (gpointer user_data) + { ++#ifdef G_OS_UNIX + int *child_fds = user_data; + long val; + guint i; +@@ -911,6 +928,7 @@ on_gnupg_process_child_setup (gpointer u + fcntl (child_fds[i], F_SETFD, val & ~FD_CLOEXEC); + } + } ++#endif + } + + static void +@@ -929,9 +947,16 @@ on_cancellable_cancelled (GCancellable * + + /* Try and kill the child process */ + if (gnupg_source->child_pid) { ++#if defined(G_OS_UNIX) + _gcr_debug ("sending term signal to process: %d", + (int)gnupg_source->child_pid); + kill (gnupg_source->child_pid, SIGTERM); ++#elif defined(G_OS_WIN32) ++ DWORD real_pid = GetProcessId (gnupg_source->child_pid); ++ _gcr_debug ("sending term signal to process: %d", ++ (int)real_pid); ++ TerminateProcess (gnupg_source->child_pid, 0); ++#endif + } + } + +@@ -1000,14 +1025,22 @@ _gcr_gnupg_process_run_async (GcrGnupgPr + child_fds[FD_ERROR] = 2; + + if (flags & GCR_GNUPG_PROCESS_WITH_STATUS) { ++#if defined(G_OS_UNIX) + if (pipe (status_fds) < 0) ++#elif defined(G_OS_WIN32) ++ if (_pipe (status_fds, 4096, _O_BINARY) < 0) ++#endif + g_return_if_reached (); + child_fds[FD_STATUS] = status_fds[1]; + g_ptr_array_add (args, g_strdup ("--status-fd")); + g_ptr_array_add (args, g_strdup_printf ("%d", child_fds[FD_STATUS])); + } + if (flags & GCR_GNUPG_PROCESS_WITH_ATTRIBUTES) { ++#if defined(G_OS_UNIX) + if (pipe (attribute_fds) < 0) ++#elif defined(G_OS_WIN32) ++ if (_pipe (attribute_fds, 4096, _O_BINARY) < 0) ++#endif + g_return_if_reached (); + child_fds[FD_ATTRIBUTE] = attribute_fds[1]; + g_ptr_array_add (args, g_strdup ("--attribute-fd")); +@@ -1036,11 +1069,11 @@ _gcr_gnupg_process_run_async (GcrGnupgPr + + if (_gcr_debugging) { + gchar *command = g_strjoinv (" ", (gchar**)args->pdata); +- gchar *environ = g_strjoinv (", ", (gchar**)envs->pdata); ++ gchar *environment = g_strjoinv (", ", (gchar**)envs->pdata); + _gcr_debug ("running command: %s", command); +- _gcr_debug ("process environment: %s", environ); ++ _gcr_debug ("process environment: %s", environment); + g_free (command); +- g_free (environ); ++ g_free (environment); + } + + g_spawn_async_with_pipes (self->pv->directory, (gchar**)args->pdata, +@@ -1068,7 +1101,12 @@ _gcr_gnupg_process_run_async (GcrGnupgPr + return; + } + ++#if defined (G_OS_UNIX) + _gcr_debug ("process started: %d", (int)pid); ++#elif defined (G_OS_WIN32) ++ DWORD real_pid = GetProcessId (pid); ++ _gcr_debug ("process started: %d", (int)real_pid); ++#endif + + source = g_source_new (&gnupg_source_funcs, sizeof (GnupgSource)); + +diff -upr -x .deps -x .libs -x '*.la' gcr-3.10.1.old/gcr/gcr-record.c gcr-3.10.1/gcr/gcr-record.c +--- gcr-3.10.1.old/gcr/gcr-record.c 2014-06-20 22:20:25 +0000 ++++ gcr-3.10.1/gcr/gcr-record.c 2014-06-20 21:46:28 +0000 +@@ -597,7 +597,9 @@ _gcr_record_get_date (GcrRecord *record, + const gchar *raw; + gulong result; + gchar *end = NULL; +- struct tm tm; ++ gchar **string; ++ int year, month, day; ++ GDateTime *dt = NULL; + + g_return_val_if_fail (record, NULL); + +@@ -615,14 +617,20 @@ _gcr_record_get_date (GcrRecord *record, + } + + /* Try to parse as a date */ +- memset (&tm, 0, sizeof (tm)); +- end = strptime (raw, "%Y-%m-%d", &tm); +- if (!end || end[0]) { ++ string = g_strsplit (raw, "-", 3); ++ if ((string[0] != NULL) && (string[1] != NULL) && (string[2] != NULL)) { ++ year = strtol (string[0], NULL, 10); ++ month = strtol (string[1], NULL, 10); ++ day = strtol (string[2], NULL, 10); ++ dt = g_date_time_new_utc (year, month, day, 0, 0, 0); ++ } ++ g_strfreev (string); ++ if (dt == NULL) { + _gcr_debug ("invalid date value: %s", raw); + return NULL; + } + +- return g_date_time_new_utc (tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, 0, 0, 0); ++ return dt; + } + + /** +@@ -860,4 +868,4 @@ _gcr_records_parse_colons (gconstpointer + g_free (lines); + + return result; +-} ++} +\ No newline at end of file +diff -upr -x .deps -x .libs -x '*.la' gcr-3.10.1.old/ui/Makefile.am gcr-3.10.1/ui/Makefile.am +--- gcr-3.10.1.old/ui/Makefile.am 2014-06-20 22:20:25 +0000 ++++ gcr-3.10.1/ui/Makefile.am 2014-06-20 21:46:28 +0000 +@@ -1,6 +1,6 @@ + include $(top_srcdir)/Makefile.decl + +-SUBDIRS = . icons tests ++SUBDIRS = . icons + + incdir = $(includedir)/gcr-@GCR_MAJOR@/ui + +@@ -51,11 +51,13 @@ libgcr_ui_@GCR_MAJOR@_la_LIBADD = \ + $(GTK_LIBS) \ + $(NULL) + ++if !OS_WIN32 + # libgcr-3.so (and friends) symlink to libgcr-ui-3.so for compatibility raisons + install-exec-hook: + $(LN_S) -f `readlink $(DESTDIR)$(libdir)/libgcr-ui-@GCR_MAJOR@.so` $(DESTDIR)$(libdir)/libgcr-@GCR_MAJOR@.so + $(LN_S) -f `readlink $(DESTDIR)$(libdir)/libgcr-ui-@GCR_MAJOR@.so` $(DESTDIR)$(libdir)/libgcr-@GCR_MAJOR@.so.@GCR_CURRENT@ + $(LN_S) -f `readlink $(DESTDIR)$(libdir)/libgcr-ui-@GCR_MAJOR@.so` $(DESTDIR)$(libdir)/libgcr-@GCR_MAJOR@.so.@GCR_CURRENT@.0.0 ++endif + + uidir = $(datadir)/gcr-@GCR_MAJOR@/ui/ + +diff -upr -x .deps -x .libs -x '*.la' gcr-3.10.1.old/ui/gcr-prompt-dialog.c gcr-3.10.1/ui/gcr-prompt-dialog.c +--- gcr-3.10.1.old/ui/gcr-prompt-dialog.c 2014-06-20 22:20:25 +0000 ++++ gcr-3.10.1/ui/gcr-prompt-dialog.c 2014-06-20 21:46:28 +0000 +@@ -31,7 +31,13 @@ + #include "gcr-secure-entry-buffer.h" + + #include <gtk/gtk.h> ++#if defined(GDK_WINDOWING_X11) + #include <gdk/gdkx.h> ++#endif ++#if defined(GDK_WINDOWING_WIN32) ++#include <gdk/gdkwin32.h> ++#include <windows.h> ++#endif + #include <glib/gi18n.h> + + /** +@@ -152,12 +158,21 @@ update_transient_for (GcrPromptDialog *s + } + + display = gtk_widget_get_display (GTK_WIDGET (self)); ++#if defined(GDK_WINDOWING_X11) + transient_for = gdk_x11_window_foreign_new_for_display (display, (Window)handle); ++#elif defined(GDK_WINDOWING_WIN32) ++ transient_for = gdk_win32_window_foreign_new_for_display (display, (HWND)handle); ++#endif + if (transient_for == NULL) { + g_warning ("caller-window property doesn't represent a window on current display: %s", + self->pv->caller_window); + } else { ++#if defined(GDK_WINDOWING_X11) + gdk_window_set_transient_for (window, transient_for); ++#elif defined(GDK_WINDOWING_WIN32) ++ HWND chandle = gdk_win32_window_get_handle (window); ++ SetWindowLongPtr (chandle, GWLP_HWNDPARENT, (LONG_PTR)handle); ++#endif + g_object_unref (transient_for); + } + +diff -upr -x .deps -x .libs -x '*.la' gcr-3.10.1.old/ui/gcr-prompter-tool.c gcr-3.10.1/ui/gcr-prompter-tool.c +--- gcr-3.10.1.old/ui/gcr-prompter-tool.c 2014-06-20 22:20:25 +0000 ++++ gcr-3.10.1/ui/gcr-prompter-tool.c 2014-06-20 21:46:28 +0000 +@@ -30,13 +30,17 @@ + + #include <glib/gi18n.h> + #include <gtk/gtk.h> ++#ifdef GDK_WINDOWING_X11 + #include <gdk/gdkx.h> ++#endif + #include <pango/pango.h> + + #include <locale.h> + #include <stdlib.h> + #include <string.h> ++#ifdef HAVE_SYSLOG_H + #include <syslog.h> ++#endif + + #define QUIT_TIMEOUT 10 + +@@ -138,6 +142,7 @@ log_handler (const gchar *log_domain, + const gchar *message, + gpointer user_data) + { ++#ifdef HAVE_SYSLOG_H + int level; + + /* Note that crit and err are the other way around in syslog */ +@@ -171,6 +176,7 @@ log_handler (const gchar *log_domain, + syslog (level, "%s: %s", log_domain, message); + else + syslog (level, "%s", message); ++#endif + + /* And then to default handler for aborting and stuff like that */ + g_log_default_handler (log_domain, log_level, message, user_data); +@@ -179,9 +185,11 @@ log_handler (const gchar *log_domain, + static void + printerr_handler (const gchar *string) + { ++#ifdef HAVE_SYSLOG_H + /* Print to syslog and stderr */ + syslog (LOG_WARNING, "%s", string); + fprintf (stderr, "%s", string); ++#endif + } + + static void +@@ -191,7 +199,9 @@ prepare_logging () + G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING | + G_LOG_LEVEL_MESSAGE | G_LOG_LEVEL_INFO; + ++#ifdef HAVE_SYSLOG_H + openlog ("gcr-prompter", LOG_PID, LOG_AUTH); ++#endif + + g_log_set_handler (NULL, flags, log_handler, NULL); + g_log_set_handler ("Glib", flags, log_handler, NULL); +diff -upr -x .deps -x .libs -x '*.la' gcr-3.10.1.old/ui/gcr-ui.pc.in gcr-3.10.1/ui/gcr-ui.pc.in +--- gcr-3.10.1.old/ui/gcr-ui.pc.in 2013-04-21 12:31:47 +0000 ++++ gcr-3.10.1/ui/gcr-ui.pc.in 2014-06-20 22:22:58 +0000 +@@ -11,5 +11,5 @@ Description: GObject and GUI library for + Version: @VERSION@ + Requires: glib-2.0 gobject-2.0 gio-2.0 gtk+-3.0 gcr-base-@GCR_MAJOR@ gck-@GCK_MAJOR@ + Requires.private: p11-kit-1 +-Libs: -L${libdir} -lgcr-@GCR_MAJOR@ ++Libs: -L${libdir} -lgcr-ui-@GCR_MAJOR@ + Cflags: -I${includedir}/gcr-@GCR_MAJOR@ +diff -upr -x .deps -x .libs -x '*.la' gcr-3.10.1.old/ui/tests/frob-prompt.c gcr-3.10.1/ui/tests/frob-prompt.c +--- gcr-3.10.1.old/ui/tests/frob-prompt.c 2014-06-20 22:20:25 +0000 ++++ gcr-3.10.1/ui/tests/frob-prompt.c 2014-06-20 21:46:28 +0000 +@@ -27,15 +27,45 @@ + #include "gcr/gcr-base.h" + + #include <gtk/gtk.h> ++#ifdef GDK_WINDOWING_X11 + #include <gdk/gdkx.h> ++#endif ++#ifdef GDK_WINDOWING_WIN32 ++#include <gdk/gdkwin32.h> ++#endif + ++#ifdef HAVE_ERR_H + #include <err.h> ++#else ++#include <errno.h> ++#endif ++#include <stdlib.h> + + static const gchar *file_name = NULL; + static gchar *prompt_type = NULL; + static gint prompt_delay = 0; + static gboolean prompt_window = FALSE; + ++#ifndef HAVE_ERR_H ++extern void errx (int eval, char *format, ...); ++ ++void errx (int eval, char *format, ...) ++{ ++ gchar *err_s; ++ ++ va_list ap; ++ va_start (ap, format); ++ vsprintf (err_s, format, ap); ++ va_end (ap); ++ ++ err_s = g_strconcat (g_get_prgname (), ": ", g_strdup (err_s), "\n", NULL); ++ g_printerr (err_s); ++ g_free (err_s); ++ ++ exit (eval); ++} ++#endif ++ + static gboolean + on_delay_timeout (gpointer data) + { +@@ -80,7 +110,11 @@ prompt_perform (GtkWidget *parent) + errx (1, "couldn't create prompt: %s", error->message); + + if (parent) { ++#if defined(GDK_WINDOWING_X11) + caller_id = g_strdup_printf ("%lu", (gulong)GDK_WINDOW_XID (gtk_widget_get_window (parent))); ++#elif defined(GDK_WINDOWING_WIN32) ++ caller_id = g_strdup_printf ("%lu", (gulong)GDK_WINDOW_HWND (gtk_widget_get_window (parent))); ++#endif + gcr_prompt_set_caller_window (GCR_PROMPT (prompt), caller_id); + g_free (caller_id); + } +diff -upr -x .deps -x .libs -x '*.la' gcr-3.10.1.old/ui/tests/frob-system-prompt.c gcr-3.10.1/ui/tests/frob-system-prompt.c +--- gcr-3.10.1.old/ui/tests/frob-system-prompt.c 2014-06-20 22:20:25 +0000 ++++ gcr-3.10.1/ui/tests/frob-system-prompt.c 2014-06-20 21:46:28 +0000 +@@ -28,7 +28,12 @@ + #include "egg/egg-testing.h" + + #include <gtk/gtk.h> ++#ifdef GDK_WINDOWING_X11 + #include <gdk/gdkx.h> ++#endif ++#ifdef GDK_WINDOWING_WIN32 ++#include <gdk/gdkwin32.h> ++#endif + + #include <unistd.h> + #include <string.h> +@@ -56,7 +61,11 @@ on_prompt_clicked (GtkToolButton *button + gcr_prompt_set_message (GCR_PROMPT (prompt), "This is the message"); + gcr_prompt_set_description (GCR_PROMPT (prompt), "This is the description"); + ++#if defined(GDK_WINDOWING_X11) + caller_id = g_strdup_printf ("%lu", (gulong)GDK_WINDOW_XID (gtk_widget_get_window (parent))); ++#elif defined(GDK_WINDOWING_WIN32) ++ caller_id = g_strdup_printf ("%lu", (gulong)GDK_WINDOW_HWND (gtk_widget_get_window (parent))); ++#endif + gcr_prompt_set_caller_window (GCR_PROMPT (prompt), caller_id); + g_free (caller_id); + diff --git a/win32/patches/gettext.patch b/win32/patches/gettext.patch new file mode 100644 index 0000000000..a3b5385bf3 --- /dev/null +++ b/win32/patches/gettext.patch @@ -0,0 +1,97 @@ +diff -upr gettext-0.18.3.1.old/gettext-tools/gnulib-lib/Makefile gettext-0.18.3.1/gettext-tools/gnulib-lib/Makefile +--- gettext-0.18.3.1.old/gettext-tools/gnulib-lib/Makefile 2014-05-08 15:10:25 +0000 ++++ gettext-0.18.3.1/gettext-tools/gnulib-lib/Makefile 2014-05-07 19:38:11 +0000 +@@ -129,7 +129,7 @@ am__append_12 = $(LTLIBCROCO) $(LTLIBGLI + #am__append_17 = libxml_rpl.la + #am__append_18 = libxml_rpl.la + #am__append_19 = term-styled-ostream.c +-am__append_20 = ../woe32dll/c++term-styled-ostream.cc ++#am__append_20 = ../woe32dll/c++term-styled-ostream.cc + am__append_21 = uniconv/u8-conv-from-enc.c + am__append_22 = unilbrk/u8-possible-linebreaks.c + am__append_23 = unilbrk/u8-width-linebreaks.c +@@ -475,7 +475,7 @@ am__libgettextlib_la_SOURCES_DIST = copy + findprog.h findprog.c fstrcmp.h fstrcmp.c full-write.h \ + full-write.c fwriteerror.h fwriteerror.c gcd.h gcd.c gettext.h \ + ../woe32dll/gettextlib-exports.c hash.h hash.c html-ostream.c \ +- html-styled-ostream.c ../woe32dll/c++html-styled-ostream.cc \ ++ \ + javacomp.h javacomp.c javaexec.h javaexec.c javaversion.h \ + javaversion.c gl_linkedhash_list.h gl_linkedhash_list.c \ + gl_anyhash_list1.h gl_anyhash_list2.h gl_anylinked_list1.h \ +@@ -490,8 +490,8 @@ am__libgettextlib_la_SOURCES_DIST = copy + sig-handler.c size_max.h spawn-pipe.h spawn-pipe.c striconv.h \ + striconv.c striconveh.h striconveh.c striconveha.h \ + striconveha.c strnlen1.h strnlen1.c styled-ostream.c \ +- tempname.c term-ostream.c term-styled-ostream.c \ +- ../woe32dll/c++term-styled-ostream.cc glthread/threadlib.c \ ++ tempname.c term-ostream.c \ ++ glthread/threadlib.c \ + glthread/tls.h glthread/tls.c tmpdir.h tmpdir.c trim.c \ + uniconv/u8-conv-from-enc.c unilbrk/lbrktables.c \ + unilbrk/u8-possible-linebreaks.c unilbrk/u8-width-linebreaks.c \ +@@ -509,9 +509,9 @@ am__libgettextlib_la_SOURCES_DIST = copy + xvasprintf.c xasprintf.c + am__objects_1 = ../woe32dll/gettextlib-exports.lo + #am__objects_2 = html-styled-ostream.lo +-am__objects_3 = ../woe32dll/c++html-styled-ostream.lo ++#am__objects_3 = ../woe32dll/c++html-styled-ostream.lo + #am__objects_4 = term-styled-ostream.lo +-am__objects_5 = ../woe32dll/c++term-styled-ostream.lo ++#am__objects_5 = ../woe32dll/c++term-styled-ostream.lo + am__objects_6 = uniconv/u8-conv-from-enc.lo + am__objects_7 = unilbrk/u8-possible-linebreaks.lo + am__objects_8 = unilbrk/u8-width-linebreaks.lo +@@ -545,7 +545,7 @@ am_libgettextlib_la_OBJECTS = copy-acl.l + fd-hook.lo fd-ostream.lo fd-safer-flag.lo dup-safer-flag.lo \ + file-ostream.lo findprog.lo fstrcmp.lo full-write.lo \ + fwriteerror.lo gcd.lo $(am__objects_1) hash.lo html-ostream.lo \ +- $(am__objects_2) $(am__objects_3) javacomp.lo javaexec.lo \ ++ $(am__objects_2) javacomp.lo javaexec.lo \ + javaversion.lo gl_linkedhash_list.lo gl_list.lo \ + localcharset.lo localename.lo glthread/lock.lo malloca.lo \ + mbchar.lo mbiter.lo mbslen.lo mbsstr.lo mbswidth.lo mbuiter.lo \ +@@ -555,7 +555,7 @@ am_libgettextlib_la_OBJECTS = copy-acl.l + safe-read.lo safe-write.lo sh-quote.lo sig-handler.lo \ + spawn-pipe.lo striconv.lo striconveh.lo striconveha.lo \ + strnlen1.lo styled-ostream.lo tempname.lo term-ostream.lo \ +- $(am__objects_4) $(am__objects_5) glthread/threadlib.lo \ ++ $(am__objects_4) glthread/threadlib.lo \ + glthread/tls.lo tmpdir.lo trim.lo $(am__objects_6) \ + unilbrk/lbrktables.lo $(am__objects_7) $(am__objects_8) \ + unilbrk/ulc-common.lo $(am__objects_9) $(am__objects_10) \ +diff -upr gettext-0.18.3.1.old/gettext-tools/src/write-catalog.c gettext-0.18.3.1/gettext-tools/src/write-catalog.c +--- gettext-0.18.3.1.old/gettext-tools/src/write-catalog.c 2012-12-10 01:59:06 +0000 ++++ gettext-0.18.3.1/gettext-tools/src/write-catalog.c 2014-05-07 19:41:40 +0000 +@@ -240,7 +240,7 @@ message catalog has plural form translat + } + + style_file_prepare (); +- stream = term_styled_ostream_create (fd, filename, style_file_name); ++ stream = NULL; /*term_styled_ostream_create (fd, filename, style_file_name);*/ + if (stream == NULL) + stream = fd_ostream_create (fd, filename, true); + output_syntax->print (mdlp, stream, page_width, debug); +@@ -286,11 +286,11 @@ message catalog has plural form translat + stream = file_ostream_create (fp); + + #if ENABLE_COLOR +- if (output_syntax->supports_color && color_mode == color_html) ++ /*if (output_syntax->supports_color && color_mode == color_html) + { + html_styled_ostream_t html_stream; + +- /* Convert mdlp to UTF-8 encoding. */ ++ /* Convert mdlp to UTF-8 encoding. * / + if (mdlp->encoding != po_charset_utf8) + { + mdlp = msgdomain_list_copy (mdlp, 0); +@@ -302,7 +302,7 @@ message catalog has plural form translat + output_syntax->print (mdlp, html_stream, page_width, debug); + ostream_free (html_stream); + } +- else ++ else*/ + #endif + { + output_syntax->print (mdlp, stream, page_width, debug); diff --git a/win32/patches/gnutls.patch b/win32/patches/gnutls.patch new file mode 100644 index 0000000000..6960842292 --- /dev/null +++ b/win32/patches/gnutls.patch @@ -0,0 +1,21 @@ +diff -upr gnutls-3.2.12.old/lib/libgnutls.map gnutls-3.2.12/lib/libgnutls.map +--- gnutls-3.2.12.old/lib/libgnutls.map 2014-03-24 22:56:11 +0000 ++++ gnutls-3.2.12/lib/libgnutls.map 2014-03-23 20:24:12 +0000 +@@ -936,6 +936,7 @@ GNUTLS_PRIVATE { + _gnutls_read_uint24; + _gnutls_get_cred; + _gnutls_recv_int; ++ _gnutls_vasprintf; + # Internal symbols needed by libgnutls-openssl: + _gnutls_pkix1_asn; + _gnutls_x509_parse_dn_oid; +diff -upr gnutls-3.2.12.old/lib/vasprintf.c gnutls-3.2.12/lib/vasprintf.c +--- gnutls-3.2.12.old/lib/vasprintf.c 2014-03-24 22:56:11 +0000 ++++ gnutls-3.2.12/lib/vasprintf.c 2014-03-23 20:24:12 +0000 +@@ -1,5 +1,6 @@ + #include <config.h> + #include <stdio.h> ++#include <stdlib.h> + #include "vasprintf.h" + + #ifndef HAVE_VASPRINTF diff --git a/win32/patches/gtk-doc.m4 b/win32/patches/gtk-doc.m4 new file mode 100644 index 0000000000..36755432b5 --- /dev/null +++ b/win32/patches/gtk-doc.m4 @@ -0,0 +1,88 @@ +dnl -*- mode: autoconf -*- + +# serial 2 + +dnl Usage: +dnl GTK_DOC_CHECK([minimum-gtk-doc-version]) +AC_DEFUN([GTK_DOC_CHECK], +[ + AC_REQUIRE([PKG_PROG_PKG_CONFIG]) + AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first + + ifelse([$1],[],[gtk_doc_requires="gtk-doc"],[gtk_doc_requires="gtk-doc >= $1"]) + AC_MSG_CHECKING([for gtk-doc]) + PKG_CHECK_EXISTS([$gtk_doc_requires],[have_gtk_doc=yes],[have_gtk_doc=no]) + AC_MSG_RESULT($have_gtk_doc) + + if test "$have_gtk_doc" = "no"; then + AC_MSG_WARN([ + You will not be able to create source packages with 'make dist' + because $gtk_doc_requires is not found.]) + fi + + dnl check for tools we added during development + dnl Use AC_CHECK_PROG to avoid the check target using an absolute path that + dnl may not be writable by the user. Currently, automake requires that the + dnl test name must end in '.test'. + dnl https://bugzilla.gnome.org/show_bug.cgi?id=701638 + AC_CHECK_PROG([GTKDOC_CHECK],[gtkdoc-check],[gtkdoc-check.test]) + AC_PATH_PROG([GTKDOC_CHECK_PATH],[gtkdoc-check]) + AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true]) + AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf]) + + dnl for overriding the documentation installation directory + AC_ARG_WITH([html-dir], + AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),, + [with_html_dir='${datadir}/gtk-doc/html']) + HTML_DIR="$with_html_dir" + AC_SUBST([HTML_DIR]) + + dnl enable/disable documentation building + AC_ARG_ENABLE([gtk-doc], + AS_HELP_STRING([--enable-gtk-doc], + [use gtk-doc to build documentation [[default=no]]]),, + [enable_gtk_doc=no]) + + AC_MSG_CHECKING([whether to build gtk-doc documentation]) + AC_MSG_RESULT($enable_gtk_doc) + + if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then + AC_MSG_ERROR([ + You must have $gtk_doc_requires installed to build documentation for + $PACKAGE_NAME. Please install gtk-doc or disable building the + documentation by adding '--disable-gtk-doc' to '[$]0'.]) + fi + + dnl don't check for glib if we build glib + if test "x$PACKAGE_NAME" != "xglib"; then + dnl don't fail if someone does not have glib + PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0,,[:]) + fi + + dnl enable/disable output formats + AC_ARG_ENABLE([gtk-doc-html], + AS_HELP_STRING([--enable-gtk-doc-html], + [build documentation in html format [[default=yes]]]),, + [enable_gtk_doc_html=yes]) + AC_ARG_ENABLE([gtk-doc-pdf], + AS_HELP_STRING([--enable-gtk-doc-pdf], + [build documentation in pdf format [[default=no]]]),, + [enable_gtk_doc_pdf=no]) + + if test -z "$GTKDOC_MKPDF"; then + enable_gtk_doc_pdf=no + fi + + if test -z "$AM_DEFAULT_VERBOSITY"; then + AM_DEFAULT_VERBOSITY=1 + fi + AC_SUBST([AM_DEFAULT_VERBOSITY]) + + AM_CONDITIONAL([HAVE_GTK_DOC], [test x$have_gtk_doc = xyes]) + AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes]) + AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes]) + AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes]) + AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"]) + AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"]) +]) diff --git a/win32/patches/gtk-doc.make b/win32/patches/gtk-doc.make new file mode 100644 index 0000000000..dd319930f4 --- /dev/null +++ b/win32/patches/gtk-doc.make @@ -0,0 +1,315 @@ +# -*- mode: makefile -*- + +#################################### +# Everything below here is generic # +#################################### + +if GTK_DOC_USE_LIBTOOL +GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +GTKDOC_RUN = $(LIBTOOL) --mode=execute +else +GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +GTKDOC_RUN = +endif + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) + +TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) + +SETUP_FILES = \ + $(content_files) \ + $(DOC_MAIN_SGML_FILE) \ + $(DOC_MODULE)-sections.txt \ + $(DOC_MODULE)-overrides.txt + +EXTRA_DIST = \ + $(HTML_IMAGES) \ + $(SETUP_FILES) + +DOC_STAMPS=setup-build.stamp scan-build.stamp tmpl-build.stamp sgml-build.stamp \ + html-build.stamp pdf-build.stamp \ + tmpl.stamp sgml.stamp html.stamp pdf.stamp + +SCANOBJ_FILES = \ + $(DOC_MODULE).args \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).signals + +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + +gtkdoc-check.test: Makefile + $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \ + echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \ + chmod +x $@ + +CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test + +if GTK_DOC_BUILD_HTML +HTML_BUILD_STAMP=html-build.stamp +else +HTML_BUILD_STAMP= +endif +if GTK_DOC_BUILD_PDF +PDF_BUILD_STAMP=pdf-build.stamp +else +PDF_BUILD_STAMP= +endif + +all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) +.PHONY: all-gtk-doc + +if ENABLE_GTK_DOC +all-local: all-gtk-doc +endif + +docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) + +$(REPORT_FILES): sgml-build.stamp + +#### setup #### + +GTK_DOC_V_SETUP=$(GTK_DOC_V_SETUP_$(V)) +GTK_DOC_V_SETUP_=$(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_SETUP_0=@echo " DOC Preparing build"; + +setup-build.stamp: + -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \ + if test "x$$files" != "x" ; then \ + for file in $$files ; do \ + destdir=`dirname $(abs_builddir)/$$file` ;\ + test -d "$$destdir" || mkdir -p "$$destdir"; \ + test -f $(abs_srcdir)/$$file && \ + cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ + done; \ + fi; \ + test -d $(abs_srcdir)/tmpl && \ + { cp -pR $(abs_srcdir)/tmpl $(abs_builddir)/; \ + chmod -R u+w $(abs_builddir)/tmpl; } \ + fi + $(AM_V_at)touch setup-build.stamp + +#### scan #### + +GTK_DOC_V_SCAN=$(GTK_DOC_V_SCAN_$(V)) +GTK_DOC_V_SCAN_=$(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_SCAN_0=@echo " DOC Scanning header files"; + +GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_$(V)) +GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_INTROSPECT_0=@echo " DOC Introspecting gobjects"; + +scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) + $(GTK_DOC_V_SCAN)_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) + $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ + scanobj_options=""; \ + gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$(?)" = "0"; then \ + if test "x$(V)" = "x1"; then \ + scanobj_options="--verbose"; \ + fi; \ + fi; \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ + gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ + else \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ + fi + $(AM_V_at)touch scan-build.stamp + +$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp + @true + +#### templates #### + +GTK_DOC_V_TMPL=$(GTK_DOC_V_TMPL_$(V)) +GTK_DOC_V_TMPL_=$(GTK_DOC_V_TMPL_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_TMPL_0=@echo " DOC Rebuilding template files"; + +tmpl-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt + $(GTK_DOC_V_TMPL)gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS) + $(AM_V_at)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + if test -w $(abs_srcdir) ; then \ + cp -pR $(abs_builddir)/tmpl $(abs_srcdir)/; \ + fi \ + fi + $(AM_V_at)touch tmpl-build.stamp + +tmpl.stamp: tmpl-build.stamp + @true + +$(srcdir)/tmpl/*.sgml: + @true + +#### xml #### + +GTK_DOC_V_XML=$(GTK_DOC_V_XML_$(V)) +GTK_DOC_V_XML_=$(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_XML_0=@echo " DOC Building XML"; + +sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files) + -$(GTK_DOC_V_XML)chmod -R u+w $(srcdir) && _source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) + $(AM_V_at)touch sgml-build.stamp + +sgml.stamp: sgml-build.stamp + @true + +#### html #### + +GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_$(V)) +GTK_DOC_V_HTML_=$(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_HTML_0=@echo " DOC Building HTML"; + +GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_$(V)) +GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_XREF_0=@echo " DOC Fixing cross-references"; + +html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \ + mkhtml_options=""; \ + gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$(?)" = "0"; then \ + if test "x$(V)" = "x1"; then \ + mkhtml_options="$$mkhtml_options --verbose"; \ + fi; \ + fi; \ + gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ + if test "$(?)" = "0"; then \ + mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \ + fi; \ + cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) + -@test "x$(HTML_IMAGES)" = "x" || \ + for file in $(HTML_IMAGES) ; do \ + if test -f $(abs_srcdir)/$$file ; then \ + cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ + fi; \ + if test -f $(abs_builddir)/$$file ; then \ + cp $(abs_builddir)/$$file $(abs_builddir)/html; \ + fi; \ + done; + $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) + $(AM_V_at)touch html-build.stamp + +#### pdf #### + +GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_$(V)) +GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_PDF_0=@echo " DOC Building PDF"; + +pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \ + mkpdf_options=""; \ + gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$(?)" = "0"; then \ + if test "x$(V)" = "x1"; then \ + mkpdf_options="$$mkpdf_options --verbose"; \ + fi; \ + fi; \ + if test "x$(HTML_IMAGES)" != "x"; then \ + for img in $(HTML_IMAGES); do \ + part=`dirname $$img`; \ + echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ + if test $$? != 0; then \ + mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ + fi; \ + done; \ + fi; \ + gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) + $(AM_V_at)touch pdf-build.stamp + +############## + +clean-local: + @rm -f *~ *.bak + @rm -rf .libs + @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \ + rm -f $(DOC_MODULE).types; \ + fi + +distclean-local: + @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \ + rm -rf tmpl; \ + fi + +maintainer-clean-local: + @rm -rf xml html + +install-data-local: + @installfiles=`echo $(builddir)/html/*`; \ + if test "$$installfiles" = '$(builddir)/html/*'; \ + then echo 1>&2 'Nothing to install' ; \ + else \ + if test -n "$(DOC_MODULE_VERSION)"; then \ + installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ + else \ + installdir="$(DESTDIR)$(TARGET_DIR)"; \ + fi; \ + $(mkinstalldirs) $${installdir} ; \ + for i in $$installfiles; do \ + echo ' $(INSTALL_DATA) '$$i ; \ + $(INSTALL_DATA) $$i $${installdir}; \ + done; \ + if test -n "$(DOC_MODULE_VERSION)"; then \ + mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ + $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ + fi; \ + $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ + fi + +uninstall-local: + @if test -n "$(DOC_MODULE_VERSION)"; then \ + installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ + else \ + installdir="$(DESTDIR)$(TARGET_DIR)"; \ + fi; \ + rm -rf $${installdir} + +# +# Require gtk-doc when making dist +# +if HAVE_GTK_DOC +dist-check-gtkdoc: docs +else +dist-check-gtkdoc: + @echo "*** gtk-doc is needed to run 'make dist'. ***" + @echo "*** gtk-doc was not found when 'configure' ran. ***" + @echo "*** please install gtk-doc and rerun 'configure'. ***" + @false +endif + +dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local + @mkdir $(distdir)/tmpl + @mkdir $(distdir)/html + @-cp ./tmpl/*.sgml $(distdir)/tmpl + @cp ./html/* $(distdir)/html + @-cp ./$(DOC_MODULE).pdf $(distdir)/ + @-cp ./$(DOC_MODULE).types $(distdir)/ + @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/ + @cd $(distdir) && rm -f $(DISTCLEANFILES) + @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html + +.PHONY : dist-hook-local docs diff --git a/win32/patches/gtk.patch b/win32/patches/gtk.patch new file mode 100644 index 0000000000..595b4054b0 --- /dev/null +++ b/win32/patches/gtk.patch @@ -0,0 +1,116 @@ +diff -upr gtk+-3.10.6/gdk/Makefile.in gtk+-3.10.6.new/gdk/Makefile.in +--- gtk+-3.10.6/gdk/Makefile.in 2013-12-05 04:09:38 +0000 ++++ gtk+-3.10.6.new/gdk/Makefile.in 2014-01-26 19:43:22 +0000 +@@ -94,7 +94,7 @@ DIST_COMMON = $(top_srcdir)/Makefile.dec + @USE_WIN32_FALSE@ $(am__append_1) $(am__append_3) \ + @USE_WIN32_FALSE@ $(am__append_5) $(am__append_7) \ + @USE_WIN32_FALSE@ $(am__append_8) +-@USE_WIN32_TRUE@am__append_6 = -Wl,win32/rc/gdk-win32-res.o -export-symbols $(srcdir)/gdk.def ++@USE_WIN32_TRUE@am__append_6 = -Wl,win32/rc/gdk-win32-res.o + @USE_BROADWAY_TRUE@am__append_7 = broadway/libgdk-broadway.la + @USE_WAYLAND_TRUE@am__append_8 = wayland/libgdk-wayland.la + @HAVE_INTROSPECTION_TRUE@am__append_9 = Gdk-3.0.gir +@@ -737,7 +737,7 @@ libgdk_3_la_CFLAGS = $(AM_CFLAGS) $(GDK_ + libgdk_3_la_LIBADD = $(GDK_DEP_LIBS) $(am__append_1) $(am__append_3) \ + $(am__append_5) $(am__append_7) $(am__append_8) + libgdk_3_la_LDFLAGS = $(LDADD) $(am__append_6) +-@USE_WIN32_TRUE@libgdk_3_la_DEPENDENCIES = win32/libgdk-win32.la win32/rc/gdk-win32-res.o gdk.def ++@USE_WIN32_TRUE@libgdk_3_la_DEPENDENCIES = win32/libgdk-win32.la win32/rc/gdk-win32-res.o + @HAVE_INTROSPECTION_TRUE@introspection_files = \ + @HAVE_INTROSPECTION_TRUE@ $(filter-out gdkkeysyms-compat.h, $(gdk_public_h_sources)) \ + @HAVE_INTROSPECTION_TRUE@ $(gdk_c_sources) \ +@@ -1625,16 +1625,8 @@ check-local: test-cwd + + @HAVE_INTROSPECTION_TRUE@@USE_X11_TRUE@GdkX11-3.0.gir: libgdk-3.la Gdk-3.0.gir Makefile + +-@OS_WIN32_TRUE@install-def-file: gdk.def +-@OS_WIN32_TRUE@ mkdir -p $(DESTDIR)$(libdir) +-@OS_WIN32_TRUE@ $(INSTALL) $(srcdir)/gdk.def $(DESTDIR)$(libdir)/gdk-win32-3.0.def +-@OS_WIN32_TRUE@uninstall-def-file: +-@OS_WIN32_TRUE@ -rm $(DESTDIR)$(libdir)/gdk-win32-3.0.def +-@OS_WIN32_FALSE@install-def-file: +-@OS_WIN32_FALSE@uninstall-def-file: +- +-@MS_LIB_AVAILABLE_TRUE@gdk-win32-$(GTK_API_VERSION).lib: libgdk-win32-$(GTK_API_VERSION).la gdk.def +-@MS_LIB_AVAILABLE_TRUE@ lib -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgdk-win32-$(GTK_API_VERSION)-@LT_CURRENT_MINUS_AGE@.dll -def:gdk.def -out:$@ ++@MS_LIB_AVAILABLE_TRUE@gdk-win32-$(GTK_API_VERSION).lib: libgdk-win32-$(GTK_API_VERSION).la ++@MS_LIB_AVAILABLE_TRUE@ lib -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgdk-win32-$(GTK_API_VERSION)-@LT_CURRENT_MINUS_AGE@.dll -out:$@ + + @MS_LIB_AVAILABLE_TRUE@install-ms-lib: + @MS_LIB_AVAILABLE_TRUE@ mkdir -p $(DESTDIR)$(libdir) +@@ -1714,9 +1706,9 @@ dist-hook: ../build/win32/vs9/gdk.vcproj + $(CPP) -P - <$(top_srcdir)/build/win32/vs10/gdk.vcxproj.filtersin >$@ + rm libgdk.vs10.sourcefiles.filters + +-install-data-local: install-ms-lib install-def-file ++install-data-local: install-ms-lib + +-uninstall-local: uninstall-ms-lib uninstall-def-file ++uninstall-local: uninstall-ms-lib + rm -f $(DESTDIR)$(configexecincludedir)/gdkconfig.h + + # if srcdir!=builddir, clean out maintainer-clean files from builddir +diff -upr gtk+-3.10.6/gtk/Makefile.in gtk+-3.10.6.new/gtk/Makefile.in +--- gtk+-3.10.6/gtk/Makefile.in 2013-12-05 04:09:40 +0000 ++++ gtk+-3.10.6.new/gtk/Makefile.in 2014-01-26 19:45:23 +0000 +@@ -111,7 +111,7 @@ DIST_COMMON = $(top_srcdir)/Makefile.dec + @USE_QUARTZ_FALSE@@USE_WIN32_FALSE@@USE_X11_FALSE@am__append_13 = $(gtk_use_stub_c_sources) + @USE_WIN32_TRUE@am__append_14 = -lole32 -lgdi32 -lcomdlg32 -lwinspool -lcomctl32 + @USE_WIN32_TRUE@am__append_15 = -Wl,-luuid +-@USE_WIN32_TRUE@am__append_16 = $(gtk_def) $(gtk_win32_res) $(deps) ++@USE_WIN32_TRUE@am__append_16 = $(gtk_win32_res) $(deps) + + # And include the regular ones: + @HAVE_INTROSPECTION_TRUE@@USE_QUARTZ_TRUE@am__append_17 = \ +@@ -1047,8 +1047,6 @@ AM_CPPFLAGS = \ + $(INCLUDED_IMMODULE_DEFINE) + + @PLATFORM_WIN32_TRUE@no_undefined = -no-undefined +-@OS_WIN32_TRUE@gtk_def = gtk.def +-@OS_WIN32_TRUE@gtk_win32_symbols = -export-symbols $(srcdir)/gtk.def + @OS_WIN32_TRUE@gtk_win32_res = gtk-win32-res.o + @OS_WIN32_TRUE@gtk_win32_res_ldflag = -Wl,gtk-win32-res.o + @MS_LIB_AVAILABLE_TRUE@noinst_DATA = gtk-win32-$(GTK_API_VERSION).lib +@@ -1959,7 +1957,7 @@ libgtk_3_la_SOURCES = $(gtk_c_sources) + libgtk_3_la_LDFLAGS = $(libtool_opts) $(am__append_15) + libgtk_3_la_LIBADD = $(libadd) $(am__append_14) + libgtk_3_la_DEPENDENCIES = $(deps) $(am__append_16) +-@USE_WIN32_TRUE@libgtk_target_ldflags = $(gtk_win32_res_ldflag) $(gtk_win32_symbols) ++@USE_WIN32_TRUE@libgtk_target_ldflags = $(gtk_win32_res_ldflag) + DEPS = libgtk-3.la $(top_builddir)/gdk/libgdk-3.la + TEST_DEPS = $(DEPS) immodules.cache + LDADDS = \ +@@ -5912,15 +5910,8 @@ check-local: test-cwd + @OS_WIN32_TRUE@gtk-win32-res.o : gtk-win32.rc + @OS_WIN32_TRUE@ $(WINDRES) gtk-win32.rc $@ + +-@OS_WIN32_TRUE@install-def-file: gtk.def +-@OS_WIN32_TRUE@ $(INSTALL) $(srcdir)/gtk.def $(DESTDIR)$(libdir)/gtk-win32-3.0.def +-@OS_WIN32_TRUE@uninstall-def-file: +-@OS_WIN32_TRUE@ -rm $(DESTDIR)$(libdir)/gtk-win32-3.0.def +-@OS_WIN32_FALSE@install-def-file: +-@OS_WIN32_FALSE@uninstall-def-file: +- +-@MS_LIB_AVAILABLE_TRUE@gtk-win32-$(GTK_API_VERSION).lib: libgtk-win32-$(GTK_API_VERSION).la gtk.def +-@MS_LIB_AVAILABLE_TRUE@ lib -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgtk-win32-$(GTK_API_VERSION)-@LT_CURRENT_MINUS_AGE@.dll -def:gtk.def -out:$@ ++@MS_LIB_AVAILABLE_TRUE@gtk-win32-$(GTK_API_VERSION).lib: libgtk-win32-$(GTK_API_VERSION).la ++@MS_LIB_AVAILABLE_TRUE@ lib -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgtk-win32-$(GTK_API_VERSION)-@LT_CURRENT_MINUS_AGE@.dll -out:$@ + + @MS_LIB_AVAILABLE_TRUE@install-ms-lib: + @MS_LIB_AVAILABLE_TRUE@ $(INSTALL) gtk-win32-$(GTK_API_VERSION).lib $(DESTDIR)$(libdir) +@@ -6055,13 +6046,13 @@ dist-hook: ../build/win32/vs9/gtk.vcproj + rm libgtk.vs10.sourcefiles.filters + + # Install a RC file for the default GTK+ theme, and key themes +-install-data-local: install-ms-lib install-def-file install-mac-key-theme ++install-data-local: install-ms-lib install-mac-key-theme + $(MKDIR_P) $(DESTDIR)$(datadir)/themes/Default/gtk-3.0 + $(INSTALL_DATA) $(srcdir)/gtk-keys.css.default $(DESTDIR)$(datadir)/themes/Default/gtk-3.0/gtk-keys.css + $(MKDIR_P) $(DESTDIR)$(datadir)/themes/Emacs/gtk-3.0 + $(INSTALL_DATA) $(srcdir)/gtk-keys.css.emacs $(DESTDIR)$(datadir)/themes/Emacs/gtk-3.0/gtk-keys.css + +-uninstall-local: uninstall-ms-lib uninstall-def-file uninstall-mac-key-theme ++uninstall-local: uninstall-ms-lib uninstall-mac-key-theme + rm -f $(DESTDIR)$(datadir)/themes/Raleigh/gtk-3.0/gtk.css + rm -f $(DESTDIR)$(datadir)/themes/Default/gtk-3.0/gtk-keys.css + rm -f $(DESTDIR)$(datadir)/themes/Emacs/gtk-3.0/gtk-keys.css diff --git a/win32/patches/harfbuzz.patch b/win32/patches/harfbuzz.patch new file mode 100644 index 0000000000..792feef4ce --- /dev/null +++ b/win32/patches/harfbuzz.patch @@ -0,0 +1,25 @@ +diff -upr harfbuzz-0.9.27.old//Makefile.in harfbuzz-0.9.27/Makefile.in +--- harfbuzz-0.9.27.old//Makefile.in 2014-03-18 17:07:54 +0000 ++++ harfbuzz-0.9.27/Makefile.in 2014-04-20 18:18:47 +0000 +@@ -365,7 +365,7 @@ top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + NULL = + ACLOCAL_AMFLAGS = -I m4 +-SUBDIRS = src util test docs ++SUBDIRS = src + EXTRA_DIST = \ + autogen.sh \ + harfbuzz.doap \ +diff -upr harfbuzz-0.9.27.old//src/hb-common.cc harfbuzz-0.9.27/src/hb-common.cc +--- harfbuzz-0.9.27.old//src/hb-common.cc 2014-03-16 20:40:33 +0000 ++++ harfbuzz-0.9.27/src/hb-common.cc 2014-04-20 18:16:17 +0000 +@@ -33,6 +33,9 @@ + + #include <locale.h> + ++extern "C" { ++_CRTIMP char* __cdecl __MINGW_NOTHROW strdup (const char*) __MINGW_ATTRIB_MALLOC; ++} + + /* hb_options_t */ + diff --git a/win32/patches/jasper.patch b/win32/patches/jasper.patch new file mode 100644 index 0000000000..ee1e67f8d1 --- /dev/null +++ b/win32/patches/jasper.patch @@ -0,0 +1,12 @@ +diff -upr jasper-1.900.1/src/appl/tmrdemo.c jasper-1.900.1.new/src/appl/tmrdemo.c +--- jasper-1.900.1/src/appl/tmrdemo.c 2007-01-19 21:43:08 +0000 ++++ jasper-1.900.1.new/src/appl/tmrdemo.c 2013-12-29 22:42:52 +0000 +@@ -43,7 +43,7 @@ int main(int argc, char **argv) + printf("zero time %.3f us\n", t * 1e6); + + jas_tmr_start(&tmr); +- sleep(1); ++ //sleep(1); + jas_tmr_stop(&tmr); + t = jas_tmr_get(&tmr); + printf("time delay %.8f s\n", t); diff --git a/win32/patches/libgdata.patch b/win32/patches/libgdata.patch new file mode 100644 index 0000000000..25bcd0d262 --- /dev/null +++ b/win32/patches/libgdata.patch @@ -0,0 +1,158 @@ +diff -upr -x .deps -x .libs -x '*.la' libgdata-0.15.1.old/Makefile.am libgdata-0.15.1/Makefile.am +--- libgdata-0.15.1.old/Makefile.am 2014-06-20 21:01:11 +0000 ++++ libgdata-0.15.1/Makefile.am 2014-06-20 20:58:04 +0000 +@@ -1,4 +1,4 @@ +-SUBDIRS = . gdata/tests po docs ++SUBDIRS = . po docs + + ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} + +diff -upr -x .deps -x .libs -x '*.la' libgdata-0.15.1.old/Makefile.in libgdata-0.15.1/Makefile.in +--- libgdata-0.15.1.old/Makefile.in 2014-06-20 21:01:11 +0000 ++++ libgdata-0.15.1/Makefile.in 2014-06-20 20:58:04 +0000 +@@ -775,7 +775,7 @@ target_alias = @target_alias@ + top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ +-SUBDIRS = . gdata/tests po docs ++SUBDIRS = . po docs + ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} + DISTCHECK_CONFIGURE_FLAGS = --enable-introspection --enable-gtk-doc + MAINTAINERCLEANFILES = $(GITIGNORE_MAINTAINERCLEANFILES_TOPLEVEL) \ +diff -upr -x .deps -x .libs -x '*.la' libgdata-0.15.1.old/configure libgdata-0.15.1/configure +--- libgdata-0.15.1.old/configure 2014-06-20 21:01:11 +0000 ++++ libgdata-0.15.1/configure 2014-06-20 20:58:04 +0000 +@@ -16239,96 +16239,6 @@ fi + + + +-pkg_failed=no +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for UHTTPMOCK" >&5 +-$as_echo_n "checking for UHTTPMOCK... " >&6; } +- +-if test -n "$UHTTPMOCK_CFLAGS"; then +- pkg_cv_UHTTPMOCK_CFLAGS="$UHTTPMOCK_CFLAGS" +- elif test -n "$PKG_CONFIG"; then +- if test -n "$PKG_CONFIG" && \ +- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libuhttpmock-0.0\""; } >&5 +- ($PKG_CONFIG --exists --print-errors "libuhttpmock-0.0") 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; }; then +- pkg_cv_UHTTPMOCK_CFLAGS=`$PKG_CONFIG --cflags "libuhttpmock-0.0" 2>/dev/null` +- test "x$?" != "x0" && pkg_failed=yes +-else +- pkg_failed=yes +-fi +- else +- pkg_failed=untried +-fi +-if test -n "$UHTTPMOCK_LIBS"; then +- pkg_cv_UHTTPMOCK_LIBS="$UHTTPMOCK_LIBS" +- elif test -n "$PKG_CONFIG"; then +- if test -n "$PKG_CONFIG" && \ +- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libuhttpmock-0.0\""; } >&5 +- ($PKG_CONFIG --exists --print-errors "libuhttpmock-0.0") 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; }; then +- pkg_cv_UHTTPMOCK_LIBS=`$PKG_CONFIG --libs "libuhttpmock-0.0" 2>/dev/null` +- test "x$?" != "x0" && pkg_failed=yes +-else +- pkg_failed=yes +-fi +- else +- pkg_failed=untried +-fi +- +- +- +-if test $pkg_failed = yes; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +- +-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then +- _pkg_short_errors_supported=yes +-else +- _pkg_short_errors_supported=no +-fi +- if test $_pkg_short_errors_supported = yes; then +- UHTTPMOCK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libuhttpmock-0.0" 2>&1` +- else +- UHTTPMOCK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libuhttpmock-0.0" 2>&1` +- fi +- # Put the nasty error message in config.log where it belongs +- echo "$UHTTPMOCK_PKG_ERRORS" >&5 +- +- as_fn_error $? "Package requirements (libuhttpmock-0.0) were not met: +- +-$UHTTPMOCK_PKG_ERRORS +- +-Consider adjusting the PKG_CONFIG_PATH environment variable if you +-installed software in a non-standard prefix. +- +-Alternatively, you may set the environment variables UHTTPMOCK_CFLAGS +-and UHTTPMOCK_LIBS to avoid the need to call pkg-config. +-See the pkg-config man page for more details." "$LINENO" 5 +-elif test $pkg_failed = untried; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +-is in your PATH or set the PKG_CONFIG environment variable to the full +-path to pkg-config. +- +-Alternatively, you may set the environment variables UHTTPMOCK_CFLAGS +-and UHTTPMOCK_LIBS to avoid the need to call pkg-config. +-See the pkg-config man page for more details. +- +-To get pkg-config, see <http://pkg-config.freedesktop.org/>. +-See \`config.log' for more details" "$LINENO" 5; } +-else +- UHTTPMOCK_CFLAGS=$pkg_cv_UHTTPMOCK_CFLAGS +- UHTTPMOCK_LIBS=$pkg_cv_UHTTPMOCK_LIBS +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-$as_echo "yes" >&6; } +- +-fi + + # Various necessary functions and headers + for ac_func in strchr +diff -upr -x .deps -x .libs -x '*.la' libgdata-0.15.1.old/configure.ac libgdata-0.15.1/configure.ac +--- libgdata-0.15.1.old/configure.ac 2014-06-20 21:01:11 +0000 ++++ libgdata-0.15.1/configure.ac 2014-06-20 20:58:04 +0000 +@@ -123,11 +123,6 @@ AC_SUBST([GNOME_PACKAGES_PRIVATE]) + AC_SUBST([GNOME_PACKAGES]) + AC_SUBST([GOA_ENABLED]) + +-dnl **************************** +-dnl Check for uhttpmock +-dnl **************************** +-PKG_CHECK_MODULES(UHTTPMOCK, libuhttpmock-0.0) +- + # Various necessary functions and headers + AC_CHECK_FUNCS([strchr]) + AC_CHECK_FUNCS([strstr]) +diff -upr -x .deps -x .libs -x '*.la' libgdata-0.15.1.old/gdata/gdata.symbols libgdata-0.15.1/gdata/gdata.symbols +--- libgdata-0.15.1.old/gdata/gdata.symbols 2014-06-20 21:01:11 +0000 ++++ libgdata-0.15.1/gdata/gdata.symbols 2014-06-20 21:02:28 +0000 +@@ -965,9 +965,6 @@ gdata_documents_entry_get_quota_used + gdata_documents_service_copy_document + gdata_documents_service_copy_document_async + gdata_documents_service_copy_document_finish +-gdata_goa_authorizer_get_type +-gdata_goa_authorizer_new +-gdata_goa_authorizer_get_goa_object + gdata_documents_document_get_thumbnail_uri + gdata_tasks_task_get_type + gdata_tasks_task_new +@@ -1087,8 +1084,6 @@ gdata_freebase_topic_value_is_image + gdata_freebase_topic_result_get_type + gdata_freebase_topic_result_new + gdata_freebase_topic_result_dup_object +-gdata_freebase_result_error_get_type +-gdata_freebase_result_error_quark + gdata_freebase_result_get_type + gdata_freebase_result_new + gdata_freebase_result_dup_variant diff --git a/win32/patches/libgpg-error.patch b/win32/patches/libgpg-error.patch new file mode 100644 index 0000000000..416f5258a9 --- /dev/null +++ b/win32/patches/libgpg-error.patch @@ -0,0 +1,12 @@ +diff -upr libgpg-error-1.12.old/po/LINGUAS libgpg-error-1.12/po/LINGUAS +--- libgpg-error-1.12.old/po/LINGUAS 2014-04-27 14:43:44 +0000 ++++ libgpg-error-1.12/po/LINGUAS 2014-04-27 14:44:04 +0000 +@@ -7,8 +7,6 @@ fr + it + ja + nl +-pl +-ro + sv + uk + vi diff --git a/win32/patches/libgweather.patch b/win32/patches/libgweather.patch new file mode 100644 index 0000000000..3a7eb3e7fe --- /dev/null +++ b/win32/patches/libgweather.patch @@ -0,0 +1,191 @@ +diff -upr libgweather-3.10.2.old//configure libgweather-3.10.2/configure +--- libgweather-3.10.2.old//configure 2014-02-02 16:39:52 +0000 ++++ libgweather-3.10.2/configure 2014-04-15 14:05:25 +0000 +@@ -15884,16 +15884,16 @@ case "$am__api_version" in + ;; + esac + +-INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.50.0 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` ++INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.40.0 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` + INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` + INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +-if test -n "0.50.0"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.50.0" >&5 +-$as_echo_n "checking for intltool >= 0.50.0... " >&6; } ++if test -n "0.40.0"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.40.0" >&5 ++$as_echo_n "checking for intltool >= 0.40.0... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 + $as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } + test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || +- as_fn_error $? "Your intltool is too old. You need intltool 0.50.0 or later." "$LINENO" 5 ++ as_fn_error $? "Your intltool is too old. You need intltool 0.40.0 or later." "$LINENO" 5 + fi + + # Extract the first word of "intltool-update", so it can be a program name with args. +diff -upr libgweather-3.10.2.old//libgweather/weather-owm.c libgweather-3.10.2/libgweather/weather-owm.c +--- libgweather-3.10.2.old//libgweather/weather-owm.c 2014-04-15 14:03:39 +0000 ++++ libgweather-3.10.2/libgweather/weather-owm.c 2014-04-15 13:58:56 +0000 +@@ -29,7 +29,6 @@ + #include <math.h> + #include <time.h> + #include <unistd.h> +-#include <langinfo.h> + + #include <libxml/parser.h> + #include <libxml/xpath.h> +@@ -130,32 +129,20 @@ static time_t + date_to_time_t (const xmlChar *str, const char * tzid) + { + struct tm time = { 0 }; +- GTimeZone *tz; + GDateTime *dt; + time_t rval; ++ GTimeVal tv; + char *after; + +- after = strptime ((const char*) str, "%Y-%m-%dT%T", &time); +- if (after == NULL) { ++ if (!g_time_val_from_iso8601 ((const char*) str, &tv)) { + g_warning ("Cannot parse date string \"%s\"", str); + return 0; + } + +- if (*after == 'Z') +- tzid = "UTC"; +- +- tz = g_time_zone_new (tzid); +- dt = g_date_time_new (tz, +- time.tm_year + 1900, +- time.tm_mon + 1, +- time.tm_mday, +- time.tm_hour, +- time.tm_min, +- time.tm_sec); ++ dt = g_date_time_new_from_timeval_local (&tv); + + rval = g_date_time_to_unix (dt); + +- g_time_zone_unref (tz); + g_date_time_unref (dt); + + return rval; +diff -upr libgweather-3.10.2.old//libgweather/weather-priv.h libgweather-3.10.2/libgweather/weather-priv.h +--- libgweather-3.10.2.old//libgweather/weather-priv.h 2014-04-15 14:03:39 +0000 ++++ libgweather-3.10.2/libgweather/weather-priv.h 2014-04-15 13:58:57 +0000 +@@ -32,7 +32,7 @@ + #include "gweather-location.h" + + #ifdef _WIN32 +-#include "gweather-win32.h" ++#define localtime_r(t,tmp) (localtime (t) ? ((*tmp) = *localtime (t), tmp) : NULL) + #endif + + void _gweather_gettext_init (void); +diff -upr libgweather-3.10.2.old//libgweather/weather-yahoo.c libgweather-3.10.2/libgweather/weather-yahoo.c +--- libgweather-3.10.2.old//libgweather/weather-yahoo.c 2014-04-15 14:03:39 +0000 ++++ libgweather-3.10.2/libgweather/weather-yahoo.c 2014-04-15 13:58:57 +0000 +@@ -151,10 +151,35 @@ date_to_time_t (const xmlChar *str) + { + struct tm time = { 0 }; + ++ #ifdef G_OS_WIN32 ++ char mnthname[10] = {0}; ++ int day, month, year; ++ const gchar tm_months[][4] = { ++ "Jan", "Feb", "Mar", "Apr", "May", "Jun", ++ "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ++ }; ++ if (sscanf ((const char*) str, "%d %3s %4d", &day, mnthname, &year) != 3) { ++ g_warning ("Cannot parse date string \"%s\"", str); ++ return 0; ++ } ++ for (month = 0; month < 12; month++) { ++ if (g_ascii_strcasecmp (tm_months[month], mnthname) == 0) { ++ break; ++ } ++ } ++ if (month == 12) { ++ g_warning ("Cannot parse date string \"%s\"", str); ++ return 0; ++ } ++ time.tm_mday = day; ++ time.tm_mon = month; ++ time.tm_year = year - 1900; ++ #else + if (!strptime ((const char*) str, "%d %b %Y", &time)) { + g_warning ("Cannot parse date string \"%s\"", str); + return 0; + } ++ #endif + + return mktime(&time); + } +diff -upr libgweather-3.10.2.old//libgweather/weather-yrno.c libgweather-3.10.2/libgweather/weather-yrno.c +--- libgweather-3.10.2.old//libgweather/weather-yrno.c 2014-04-15 14:03:39 +0000 ++++ libgweather-3.10.2/libgweather/weather-yrno.c 2014-04-15 13:58:57 +0000 +@@ -91,32 +91,20 @@ static time_t + date_to_time_t (const xmlChar *str, const char * tzid) + { + struct tm time = { 0 }; +- GTimeZone *tz; + GDateTime *dt; + time_t rval; ++ GTimeVal tv; + char *after; + +- after = strptime ((const char*) str, "%Y-%m-%dT%T", &time); +- if (after == NULL) { ++ if (!g_time_val_from_iso8601 ((const char*) str, &tv)) { + g_warning ("Cannot parse date string \"%s\"", str); + return 0; + } + +- if (*after == 'Z') +- tzid = "UTC"; +- +- tz = g_time_zone_new (tzid); +- dt = g_date_time_new (tz, +- time.tm_year + 1900, +- time.tm_mon + 1, +- time.tm_mday, +- time.tm_hour, +- time.tm_min, +- time.tm_sec); ++ dt = g_date_time_new_from_timeval_local (&tv); + + rval = g_date_time_to_unix (dt); + +- g_time_zone_unref (tz); + g_date_time_unref (dt); + + return rval; +diff -upr libgweather-3.10.2.old//libgweather/weather.c libgweather-3.10.2/libgweather/weather.c +--- libgweather-3.10.2.old//libgweather/weather.c 2014-04-15 14:03:39 +0000 ++++ libgweather-3.10.2/libgweather/weather.c 2014-04-15 13:58:57 +0000 +@@ -28,7 +28,10 @@ + #include <math.h> + #include <time.h> + #include <unistd.h> ++ ++#ifdef HAVE_NL_LANGINFO + #include <langinfo.h> ++#endif + + #include <gtk/gtk.h> + #include <gdk-pixbuf/gdk-pixbuf.h> +@@ -701,12 +704,14 @@ gweather_info_get_conditions (GWeatherIn + static gboolean + is_locale_metric (void) + { ++#ifdef HAVE_NL_LANGINFO + const char *fmt; + fmt = nl_langinfo (_NL_MEASUREMENT_MEASUREMENT); + + if (fmt && *fmt == 2) + return FALSE; + else ++#endif /* HAVE_NL_LANGINFO */ + return TRUE; + } + diff --git a/win32/patches/libical.patch b/win32/patches/libical.patch new file mode 100644 index 0000000000..96a0c1e4b3 --- /dev/null +++ b/win32/patches/libical.patch @@ -0,0 +1,169 @@ +diff -upr -x .deps -x .libs -x '*.la' libical-1.0.old/src/libical/icaltime.c libical-1.0/src/libical/icaltime.c +--- libical-1.0.old/src/libical/icaltime.c 2013-04-14 17:24:42 +0000 ++++ libical-1.0/src/libical/icaltime.c 2014-08-03 13:58:29 +0000 +@@ -61,7 +61,7 @@ + #undef gmtime_r + + /* The gmtime() in Microsoft's C library is MT-safe */ +-#define gmtime_r(tp,tmp) (gmtime(tp)?(*(tmp)=*gmtime(tp),(tmp)):0) ++#define gmtime_r(tp,tmp) (gmtime(tp)?(*(tmp)=*gmtime(tp),(tmp)):memset(tmp, 0, sizeof(*tmp))) + #endif + + #ifdef HAVE_PTHREAD +@@ -205,11 +205,7 @@ icaltime_from_timet_with_zone(const time + + /* Convert the time_t to a struct tm in UTC time. We can trust gmtime + for this. */ +-#ifdef HAVE_PTHREAD + gmtime_r (&tm, &t); +-#else +- t = *(gmtime (&tm)); +-#endif + + tt.year = t.tm_year + 1900; + tt.month = t.tm_mon + 1; +diff -upr -x .deps -x .libs -x '*.la' libical-1.0.old/src/libical/icaltimezone.c libical-1.0/src/libical/icaltimezone.c +--- libical-1.0.old/src/libical/icaltimezone.c 2013-04-14 17:24:42 +0000 ++++ libical-1.0/src/libical/icaltimezone.c 2014-08-03 13:59:38 +0000 +@@ -61,12 +61,19 @@ static pthread_mutex_t builtin_mutex = P + #undef gmtime_r + + /* The gmtime() in Microsoft's C library is MT-safe */ +-#define gmtime_r(tp,tmp) (gmtime(tp)?(*(tmp)=*gmtime(tp),(tmp)):0) ++#define gmtime_r(tp,tmp) (gmtime(tp)?(*(tmp)=*gmtime(tp),(tmp)):memset(tmp, 0, sizeof(*tmp))) + + // MSVC lacks the POSIX macro S_ISDIR, however it's a trivial one: + #ifndef S_ISDIR + #define S_ISDIR(m) (((m) & _S_IFMT) == _S_IFDIR) + #endif ++ ++#define DIR_SEPARATOR "\\" ++ ++#else ++ ++#define DIR_SEPARATOR "/" ++ + #endif + + #if defined(_MSC_VER) +@@ -75,7 +82,7 @@ static pthread_mutex_t builtin_mutex = P + #endif + + /** This is the toplevel directory where the timezone data is installed in. */ +-#define ZONEINFO_DIRECTORY PACKAGE_DATA_DIR "/zoneinfo" ++#define ZONEINFO_DIRECTORY PACKAGE_DATA_DIR DIR_SEPARATOR "zoneinfo" + + /** The prefix we use to uniquely identify TZIDs. + It must begin and end with forward slashes. +@@ -1702,10 +1709,10 @@ icaltimezone_parse_zone_tab (void) + return; + } + #ifndef USE_BUILTIN_TZDATA +- snprintf (filename, filename_len, "%s/%s", icaltzutil_get_zone_directory (), ++ snprintf (filename, filename_len, "%s" DIR_SEPARATOR "%s", icaltzutil_get_zone_directory (), + ZONES_TAB_SYSTEM_FILENAME); + #else +- snprintf (filename, filename_len, "%s/%s", get_zone_directory(), ++ snprintf (filename, filename_len, "%s" DIR_SEPARATOR "%s", get_zone_directory(), + ZONES_TAB_FILENAME); + #endif + +@@ -1823,7 +1830,7 @@ icaltimezone_load_builtin_timezone (ical + goto out; + } + +- snprintf (filename, filename_len, "%s/%s.ics", get_zone_directory(), ++ snprintf (filename, filename_len, "%s " DIR_SEPARATOR " %s.ics", get_zone_directory(), + zone->location); + + fp = fopen (filename, "r"); +diff -upr -x .deps -x .libs -x '*.la' libical-1.0.old/src/libical/icaltz-util.c libical-1.0/src/libical/icaltz-util.c +--- libical-1.0.old/src/libical/icaltz-util.c 2013-04-14 17:24:42 +0000 ++++ libical-1.0/src/libical/icaltz-util.c 2014-08-03 12:54:17 +0000 +@@ -50,7 +50,7 @@ + # endif + #endif + +-#ifdef _MSC_VER ++#ifdef WIN32 + #if !defined(HAVE_BYTESWAP_H) && !defined(HAVE_SYS_ENDIAN_H) && !defined(HAVE_ENDIAN_H) + #define bswap_16(x) (((x) << 8) & 0xff00) | (((x) >> 8 ) & 0xff) + #define bswap_32(x) (((x) << 24) & 0xff000000) \ +@@ -67,6 +67,11 @@ + | (((x) & 0x00000000000000ffull) << 56)) + #endif + #include <io.h> ++#include <sys/param.h> /* for BYTE_ORDER */ ++#endif ++ ++#ifdef WIN32 ++#include <windows.h> + #endif + + #if defined(__APPLE__) +@@ -191,6 +196,7 @@ zname_from_stridx (char *str, long int i + static void + set_zonedir (void) + { ++ #ifndef WIN32 + char file_path[PATH_MAX]; + const char *fname = ZONES_TAB_SYSTEM_FILENAME; + int i; +@@ -202,6 +208,42 @@ set_zonedir (void) + break; + } + } ++ ++ #else ++ #define ZONEINFO_REL_PATH "..\\share\\zoneinfo" ++ if (!zdir) { ++ HMODULE lib = LoadLibrary("libical.dll"); ++ if (lib) { ++ static char win32_path[PATH_MAX * 2 + 32 + 1]; ++ DWORD read = GetModuleFileNameA (lib, win32_path, PATH_MAX * 2); ++ FreeLibrary(lib); ++ ++ if (read > 0) { ++ char *backslash; ++ int cut_path_at; ++ ++ win32_path[read] = 0; ++ ++ backslash = strrchr(win32_path, '\\'); ++ if (backslash) ++ backslash[1] = 0; ++ ++ strcat (win32_path, ZONEINFO_REL_PATH); ++ cut_path_at = strlen (win32_path); ++ strcat (win32_path, "\\"); ++ strcat (win32_path, ZONES_TAB_SYSTEM_FILENAME); ++ ++ if (!access (win32_path, F_OK|R_OK)) { ++ win32_path[cut_path_at] = 0; ++ zdir = win32_path; ++ } else { ++ fprintf (stderr, "libical: Failed to find '%s'\n", win32_path); ++ } ++ } ++ } ++ } ++ #undef ZONEINFO_REL_PATH ++ #endif + } + + +@@ -256,6 +298,14 @@ icaltzutil_fetch_timezone (const char *l + + full_path = (char *) malloc (strlen (basedir) + strlen (location) + 2); + sprintf (full_path,"%s/%s",basedir, location); ++ #ifdef WIN32 ++ pos = strlen(basedir); ++ while(full_path[pos]) { ++ if (full_path[pos] == '/') ++ full_path[pos] = '\\'; ++ pos++; ++ } ++ #endif + + if ((f = fopen (full_path, "rb")) == 0) { + icalerror_set_errno (ICAL_FILE_ERROR); diff --git a/win32/patches/liboauth.patch b/win32/patches/liboauth.patch new file mode 100644 index 0000000000..9613332bca --- /dev/null +++ b/win32/patches/liboauth.patch @@ -0,0 +1,56 @@ +diff -upr -x .deps -x .libs -x '*.la' liboauth-1.0.1.old/src/Makefile liboauth-1.0.1/src/Makefile +--- liboauth-1.0.1.old/src/Makefile 2014-06-20 20:41:31 +0000 ++++ liboauth-1.0.1/src/Makefile 2014-06-20 20:38:41 +0000 +@@ -249,7 +249,7 @@ ACLOCAL_AMFLAGS = -I m4 + lib_LTLIBRARIES = liboauth.la + include_HEADERS = oauth.h + liboauth_la_SOURCES = oauth.c config.h hash.c xmalloc.c xmalloc.h oauth_http.c +-liboauth_la_LDFLAGS = -Wall -export-symbols-regex '^oauth_.*' -Wl,--as-needed -version-info 8:5:8 ++liboauth_la_LDFLAGS = -Wall -export-symbols-regex '^oauth_.*' -Wl,--as-needed -version-info 8:5:8 -no-undefined + liboauth_la_LIBADD = -LC:/MinGW/msys/1.0/build/local/deps/lib -lssl3 -lsmime3 -lnss3 -lnssutil3 -lplds4 -lplc4 -lnspr4 + liboauth_la_CFLAGS = -Wall -IC:/MinGW/msys/1.0/build/local/deps/include/nss -IC:/MinGW/msys/1.0/build/local/deps/include/nspr + all: config.h +diff -upr -x .deps -x .libs -x '*.la' liboauth-1.0.1.old/src/oauth.c liboauth-1.0.1/src/oauth.c +--- liboauth-1.0.1.old/src/oauth.c 2014-06-20 20:43:07 +0000 ++++ liboauth-1.0.1/src/oauth.c 2014-05-17 20:27:28 +0000 +@@ -48,8 +48,10 @@ + #include <unistd.h> + #else + #define snprintf _snprintf ++#ifndef strncasecmp + #define strncasecmp strnicmp + #endif ++#endif + + /** + * Base64 encode one byte +@@ -520,7 +522,7 @@ char *oauth_serialize_url_parameters (in + */ + #if !defined HAVE_OPENSSL_HMAC_H && !defined USE_NSS + /* pre liboauth-0.7.2 and possible future versions that don't use OpenSSL or NSS */ +-char *oauth_gen_nonce() { ++char *oauth_gen_nonce(void) { + char *nc; + static int rndinit = 1; + const char *chars = "abcdefghijklmnopqrstuvwxyz" +@@ -557,7 +559,7 @@ char *oauth_gen_nonce() { + # define MY_RAND RAND_bytes + # define MY_SRAND ; + #endif +-char *oauth_gen_nonce() { ++char *oauth_gen_nonce(void) { + char *nc; + unsigned char buf; + const char *chars = "abcdefghijklmnopqrstuvwxyz" +diff -upr -x .deps -x .libs -x '*.la' liboauth-1.0.1.old/src/oauth.h liboauth-1.0.1/src/oauth.h +--- liboauth-1.0.1.old/src/oauth.h 2014-06-20 20:43:07 +0000 ++++ liboauth-1.0.1/src/oauth.h 2014-05-17 20:27:28 +0000 +@@ -262,7 +262,7 @@ char *oauth_serialize_url_parameters (in + * + * @return zero terminated random string. + */ +-char *oauth_gen_nonce(); ++char *oauth_gen_nonce(void); + + /** + * string compare function for oauth parameters. diff --git a/win32/patches/libpng.patch b/win32/patches/libpng.patch new file mode 100644 index 0000000000..951fea13f5 --- /dev/null +++ b/win32/patches/libpng.patch @@ -0,0 +1,86 @@ +diff -upr -x .deps -x .libs -x '*.la' libpng-1.6.7.old/scripts/makefile.msys libpng-1.6.7/scripts/makefile.msys +--- libpng-1.6.7.old/scripts/makefile.msys 2014-05-17 04:40:44 +0000 ++++ libpng-1.6.7/scripts/makefile.msys 2014-05-17 05:27:20 +0000 +@@ -12,7 +12,7 @@ + # For conditions of distribution and use, see the disclaimer + # and license in png.h + # # # # # # # # # # # # # # # # # +-prefix=/usr/local ++prefix?=/usr/local + exec_prefix=$(prefix) + + # Library name: +@@ -29,8 +29,8 @@ OLDSO=libpng.dll + # Where the zlib library and include files are located. + #ZLIBLIB=../zlib + #ZLIBINC=../zlib +-ZLIBLIB=/usr/local/lib +-ZLIBINC=/usr/local/include ++ZLIBLIB=$(prefix)/lib ++ZLIBINC=$(prefix)/include + + # Compiler, linker, lib and other tools + CC = gcc +@@ -97,15 +97,14 @@ pnglibconf.h: scripts/pnglibconf.h.prebu + + static: libpng$(A) pngtest$(EXE) + +-shared: $(LIBSOMAJ) +- $(CC) -shared -Wl,-soname,$(LIBSOMAJ) -o $(LIBSO) ++shared: libpng$(A) ++ $(CC) -shared scripts/symbols.def $(LDFLAGS) -L$(ZLIBLIB) libpng$(A) $(LIBS) -o $(LIBSO) -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker $(LIBSO)$(A) ++ cp $(LIBSO) $(LIBSOMAJ) ++ cp $(LIBSO)$(A) $(LIBSOMAJ)$(A) + + $(LIBSO): $(LIBSOMAJ) + $(LN_SF) $(LIBSOMAJ) $(LIBSO) + +-$(LIBSOMAJ): +- $(CC) -shared -Wl,-soname,$(LIBSOMAJ) -o $(LIBSOMAJ) +- + libpng$(A): $(OBJS) + $(AR_RC) $@ $(OBJS) + $(RANLIB) $@ +@@ -144,8 +143,10 @@ install-shared: install-headers $(LIBSOM + -@if [ ! -d $(DL) ]; then $(MKDIR_P) $(DL); fi + -@$(RM_F) $(DL)/$(LIBSO) + -@$(RM_F) $(DL)/$(OLDSO) +- cp $(LIBSO) $(DL)/$(LIBSOREL) +- (cd $(DL); \ ++ cp $(LIBSO).a $(DL)/$(LIBSO).a ++ cp $(LIBSOMAJ).a $(DL)/$(LIBSOMAJ).a ++ cp $(LIBSO) $(DB)/$(LIBSOREL) ++ (cd $(DB); \ + $(LN_SF) $(LIBSOREL) $(LIBSO); \ + $(LN_SF) $(LIBSO) $(OLDSO)) + +diff -upr -x .deps -x .libs -x '*.la' libpng-1.6.7.old/scripts/symbols.def libpng-1.6.7/scripts/symbols.def +--- libpng-1.6.7.old/scripts/symbols.def 2013-11-14 19:03:02 +0000 ++++ libpng-1.6.7/scripts/symbols.def 2014-05-17 04:56:00 +0000 +@@ -1,10 +1,3 @@ +-;Version 1.6.7 +-;-------------------------------------------------------------- +-; LIBPNG symbol list as a Win32 DEF file +-; Contains all the symbols that can be exported from libpng +-;-------------------------------------------------------------- +-LIBRARY +- + EXPORTS + png_access_version_number @1 + png_set_sig_bytes @2 +@@ -109,7 +102,6 @@ EXPORTS + png_free_default @101 + png_error @102 + png_chunk_error @103 +- png_err @104 + png_warning @105 + png_chunk_warning @106 + png_benign_error @107 +@@ -190,7 +182,6 @@ EXPORTS + png_get_header_version @182 + png_get_libpng_ver @183 + png_permit_mng_features @184 +- png_set_strip_error_numbers @185 + png_set_user_limits @186 + png_get_user_width_max @187 + png_get_user_height_max @188 diff --git a/win32/patches/libsecret.patch b/win32/patches/libsecret.patch new file mode 100644 index 0000000000..5e6c70e7ff --- /dev/null +++ b/win32/patches/libsecret.patch @@ -0,0 +1,157 @@ +diff -upr libsecret-0.16.old/Makefile.am libsecret-0.16/Makefile.am +--- libsecret-0.16.old/Makefile.am 2013-03-25 12:10:12 +0000 ++++ libsecret-0.16/Makefile.am 2014-04-20 18:49:09 +0000 +@@ -3,7 +3,7 @@ include $(top_srcdir)/Makefile.decl + + ACLOCAL_AMFLAGS = -I build/m4 ${ACLOCAL_FLAGS} + +-SUBDIRS = build egg libsecret tool po docs . ++SUBDIRS = build egg libsecret po docs . + + DISTCHECK_CONFIGURE_FLAGS = \ + --enable-debug=yes \ +diff -upr libsecret-0.16.old/configure.ac libsecret-0.16/configure.ac +--- libsecret-0.16.old/configure.ac 2013-06-21 13:11:14 +0000 ++++ libsecret-0.16/configure.ac 2014-04-20 18:42:09 +0000 +@@ -55,20 +55,48 @@ AM_GLIB_GNU_GETTEXT + # Checks for functions + + AC_CHECK_FUNCS(mlock) ++AC_CHECK_FUNCS(gmtime_r strptime memrchr) ++AC_CHECK_HEADERS([err.h pwd.h syslog.h sys/mman.h sys/wait.h]) ++ ++dnl ****************************** ++dnl Check for Win32 ++dnl ****************************** ++AC_MSG_CHECKING([for Win32]) ++case "$host" in ++*-mingw*) ++ os_win32='yes' ++ AC_CACHE_VAL(ac_cv_have_addrinfo, [ac_cv_have_addrinfo=yes]) ++ AC_DEFINE(_WIN32_WINNT, 0x501, [To get getaddrinfo etc declarations]) ++ ;; ++*) ++ os_win32='no' ++ ;; ++esac ++AC_MSG_RESULT([$os_win32]) ++AM_CONDITIONAL(OS_WIN32, [test $os_win32 = yes]) + + # -------------------------------------------------------------------- + # GLib + ++GIO_PLAT= ++if test "$os_win32" = "yes" ; then ++ GIO_PLAT=gio-windows-2.0 ++else ++ GIO_PLAT=gio-unix-2.0 ++fi ++ + PKG_CHECK_MODULES(GLIB, + glib-2.0 >= 2.32.0 + gio-2.0 >= 2.32.0 +- gio-unix-2.0) ++ $GIO_PLAT) + LIBS="$LIBS $GLIB_LIBS" + CFLAGS="$CFLAGS $GLIB_CFLAGS" + + GTK_DOC_CHECK(1.9) + +-GOBJECT_INTROSPECTION_CHECK([1.29]) ++AM_CONDITIONAL(HAVE_INTROSPECTION, test "yes" = "no") ++ ++dnl GOBJECT_INTROSPECTION_CHECK([1.29]) + AC_PATH_PROG(GLIB_MKENUMS, glib-mkenums) + + # -------------------------------------------------------------------- +diff -upr libsecret-0.16.old/egg/egg-secure-memory.c libsecret-0.16/egg/egg-secure-memory.c +--- libsecret-0.16.old/egg/egg-secure-memory.c 2012-10-27 10:23:32 +0000 ++++ libsecret-0.16/egg/egg-secure-memory.c 2014-04-20 18:43:03 +0000 +@@ -32,7 +32,9 @@ + #include "egg-secure-memory.h" + + #include <sys/types.h> ++#ifdef HAVE_SYS_MMAN_H + #include <sys/mman.h> ++#endif + #include <stddef.h> + #include <string.h> + #include <stdio.h> +@@ -188,9 +190,11 @@ pool_alloc (void) + + /* Create a new pool */ + if (pool == NULL) { ++#if !defined(_WIN32) + len = getpagesize () * 2; + pages = mmap (0, len, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0); + if (pages == MAP_FAILED) ++#endif + return NULL; + + /* Fill in the block header, and inlude in block list */ +@@ -254,7 +258,9 @@ pool_free (void* item) + VALGRIND_DESTROY_MEMPOOL (pool); + #endif + ++#if !defined(_WIN32) + munmap (pool, pool->length); ++#endif + return; + } + +@@ -860,11 +866,11 @@ sec_acquire_pages (size_t *sz, + ASSERT (*sz); + ASSERT (during_tag); + ++#if defined(HAVE_MLOCK) + /* Make sure sz is a multiple of the page size */ + pgsize = getpagesize (); + *sz = (*sz + pgsize -1) & ~(pgsize - 1); + +-#if defined(HAVE_MLOCK) + pages = mmap (0, *sz, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0); + if (pages == MAP_FAILED) { + if (show_warning && egg_secure_warnings) +@@ -902,9 +908,9 @@ static void + sec_release_pages (void *pages, size_t sz) + { + ASSERT (pages); +- ASSERT (sz % getpagesize () == 0); + + #if defined(HAVE_MLOCK) ++ ASSERT (sz % getpagesize () == 0); + if (munlock (pages, sz) < 0 && egg_secure_warnings) + fprintf (stderr, "couldn't unlock private memory: %s\n", strerror (errno)); + +@@ -914,7 +920,7 @@ sec_release_pages (void *pages, size_t s + DEBUG_ALLOC ("gkr-secure-memory: freed block ", sz); + + #else +- ASSERT (FALSE); ++ ASSERT (0); + #endif + } + +@@ -937,6 +943,11 @@ sec_block_create (size_t size, + if (getenv ("SECMEM_FORCE_FALLBACK")) + return NULL; + ++#ifdef _WIN32 ++ /* win32 does not have mlock(), so just fail in that case */ ++ return NULL; ++#endif ++ + block = pool_alloc (); + if (!block) + return NULL; +diff -upr libsecret-0.16.old/libsecret/Makefile.am libsecret-0.16/libsecret/Makefile.am +--- libsecret-0.16.old/libsecret/Makefile.am 2013-06-21 13:11:15 +0000 ++++ libsecret-0.16/libsecret/Makefile.am 2014-04-20 18:45:31 +0000 +@@ -1,6 +1,6 @@ + include $(top_srcdir)/Makefile.decl + +-SUBDIRS = . tests ++SUBDIRS = . + + AM_CPPFLAGS = \ + -I$(top_srcdir) \ diff --git a/win32/patches/libtasn1.patch b/win32/patches/libtasn1.patch new file mode 100644 index 0000000000..a9b87ce03f --- /dev/null +++ b/win32/patches/libtasn1.patch @@ -0,0 +1,42 @@ +diff -upr libtasn1-3.4.old/config.h libtasn1-3.4/config.h +--- libtasn1-3.4.old/config.h 2014-03-24 22:51:20 +0000 ++++ libtasn1-3.4/config.h 2014-03-24 22:53:52 +0000 +@@ -558,7 +558,7 @@ + #define HAVE_WINSOCK2_H 1 + + /* Define to 1 if you have the `_ftelli64' function. */ +-#define HAVE__FTELLI64 1 ++#undef HAVE__FTELLI64 + + /* Define to 1 if you have the `_ftime' function. */ + #define HAVE__FTIME 1 +diff -upr libtasn1-3.4.old/gl/msvc-inval.c libtasn1-3.4/gl/msvc-inval.c +--- libtasn1-3.4.old/gl/msvc-inval.c 2014-03-24 22:52:55 +0000 ++++ libtasn1-3.4/gl/msvc-inval.c 2014-03-24 22:50:23 +0000 +@@ -28,7 +28,7 @@ + + # if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING + +-static void cdecl ++static void __cdecl + gl_msvc_invalid_parameter_handler (const wchar_t *expression, + const wchar_t *function, + const wchar_t *file, +@@ -45,7 +45,7 @@ gl_msvc_invalid_parameter_handler (const + + # if defined _MSC_VER + +-static void cdecl ++static void __cdecl + gl_msvc_invalid_parameter_handler (const wchar_t *expression, + const wchar_t *function, + const wchar_t *file, +@@ -94,7 +94,7 @@ gl_msvc_inval_current (void) + } + } + +-static void cdecl ++static void __cdecl + gl_msvc_invalid_parameter_handler (const wchar_t *expression, + const wchar_t *function, + const wchar_t *file, diff --git a/win32/patches/libxslt.patch b/win32/patches/libxslt.patch new file mode 100644 index 0000000000..6605d4efc2 --- /dev/null +++ b/win32/patches/libxslt.patch @@ -0,0 +1,24 @@ +diff -upr -x .deps -x .libs -x '*.la' libxslt-1.1.28.old/Makefile.am libxslt-1.1.28/Makefile.am +--- libxslt-1.1.28.old/Makefile.am 2014-05-18 08:43:11 +0000 ++++ libxslt-1.1.28/Makefile.am 2014-05-18 08:29:50 +0000 +@@ -2,7 +2,6 @@ SUBDIRS = \ + libxslt \ + libexslt \ + xsltproc \ +- doc \ + $(PYTHON_SUBDIR) \ + tests + +diff -upr -x .deps -x .libs -x '*.la' libxslt-1.1.28.old/libxslt/security.c libxslt-1.1.28/libxslt/security.c +--- libxslt-1.1.28.old/libxslt/security.c 2012-11-21 07:22:59 +0000 ++++ libxslt-1.1.28/libxslt/security.c 2014-05-18 08:42:42 +0000 +@@ -40,6 +40,9 @@ + #define INVALID_FILE_ATTRIBUTES ((DWORD)-1) + #endif + #endif ++#if defined(WIN32) ++#include "win32config.h" ++#endif + + #ifndef HAVE_STAT + # ifdef HAVE__STAT diff --git a/win32/patches/ncurses.patch b/win32/patches/ncurses.patch new file mode 100644 index 0000000000..eb357cfa06 --- /dev/null +++ b/win32/patches/ncurses.patch @@ -0,0 +1,15 @@ +diff -upr ncurses-5.9.old/include/curses.tail ncurses-5.9/include/curses.tail +--- ncurses-5.9.old/include/curses.tail 2014-03-19 18:30:52 +0000 ++++ ncurses-5.9/include/curses.tail 2014-03-19 18:31:25 +0000 +@@ -142,6 +142,11 @@ extern NCURSES_EXPORT(char *) _traceccha + #define _tracech_t _tracechtype + #define _tracech_t2 _tracechtype2 + #endif ++ ++#if defined(__MINGW32__) ++#undef trace ++#endif ++ + extern NCURSES_EXPORT(char *) _tracemouse (const MEVENT *); + extern NCURSES_EXPORT(void) trace (const unsigned int); + diff --git a/win32/patches/nss.patch b/win32/patches/nss.patch new file mode 100644 index 0000000000..7cbf8eff5f --- /dev/null +++ b/win32/patches/nss.patch @@ -0,0 +1,464 @@ +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nspr/pr/include/md/_win32_errors.h nss-3.15.4/nspr/pr/include/md/_win32_errors.h +--- nss-3.15.4.old/nspr/pr/include/md/_win32_errors.h 2013-11-09 09:49:40 +0000 ++++ nss-3.15.4/nspr/pr/include/md/_win32_errors.h 2014-07-29 18:09:32 +0000 +@@ -6,8 +6,8 @@ + #ifndef nspr_win32_errors_h___ + #define nspr_win32_errors_h___ + ++#include <winsock2.h> + #include <windows.h> +-#include <winsock.h> + #include <errno.h> + + +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nspr/pr/include/md/_win95.h nss-3.15.4/nspr/pr/include/md/_win95.h +--- nss-3.15.4.old/nspr/pr/include/md/_win95.h 2013-11-09 09:49:40 +0000 ++++ nss-3.15.4/nspr/pr/include/md/_win95.h 2014-07-29 18:09:32 +0000 +@@ -8,8 +8,8 @@ + + #include "prio.h" + ++#include <winsock2.h> + #include <windows.h> +-#include <winsock.h> + #include <errno.h> + + /* +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nspr/pr/include/md/_winnt.h nss-3.15.4/nspr/pr/include/md/_winnt.h +--- nss-3.15.4.old/nspr/pr/include/md/_winnt.h 2013-11-09 09:49:40 +0000 ++++ nss-3.15.4/nspr/pr/include/md/_winnt.h 2014-07-29 18:09:32 +0000 +@@ -16,8 +16,8 @@ + #define _WIN32_WINNT 0x0400 + #endif /* _WIN32_WINNT */ + ++#include <winsock2.h> + #include <windows.h> +-#include <winsock.h> + #ifdef __MINGW32__ + #include <mswsock.h> + #endif +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nspr/pr/include/pratom.h nss-3.15.4/nspr/pr/include/pratom.h +--- nss-3.15.4.old/nspr/pr/include/pratom.h 2014-07-29 17:38:22 +0000 ++++ nss-3.15.4/nspr/pr/include/pratom.h 2014-07-29 18:09:32 +0000 +@@ -14,6 +14,11 @@ + #include "prtypes.h" + #include "prlock.h" + ++#ifdef _WIN32 ++#include <winsock2.h> ++#include <windows.h> ++#endif ++ + PR_BEGIN_EXTERN_C + + /* +@@ -78,20 +83,20 @@ NSPR_API(PRInt32) PR_AtomicAdd(PRInt32 * + ** the macros and functions won't be compatible and can't be used + ** interchangeably. + */ +-#if defined(_WIN32) && !defined(_WIN32_WCE) && \ +- (!defined(_MSC_VER) || (_MSC_VER >= 1310)) ++#if defined(_WIN32) && !defined(_WIN32_WCE) + ++#if defined(_MSC_VER) ++#if (_MSC_VER >= 1310) + long __cdecl _InterlockedIncrement(long volatile *Addend); + long __cdecl _InterlockedDecrement(long volatile *Addend); + long __cdecl _InterlockedExchange(long volatile *Target, long Value); + long __cdecl _InterlockedExchangeAdd(long volatile *Addend, long Value); ++#endif + +-#ifdef _MSC_VER + #pragma intrinsic(_InterlockedIncrement) + #pragma intrinsic(_InterlockedDecrement) + #pragma intrinsic(_InterlockedExchange) + #pragma intrinsic(_InterlockedExchangeAdd) +-#endif + + #define PR_ATOMIC_INCREMENT(val) _InterlockedIncrement((long volatile *)(val)) + #define PR_ATOMIC_DECREMENT(val) _InterlockedDecrement((long volatile *)(val)) +@@ -100,6 +105,15 @@ long __cdecl _InterlockedExchangeAdd(lon + #define PR_ATOMIC_ADD(ptr, val) \ + (_InterlockedExchangeAdd((long volatile *)(ptr), (long)(val)) + (val)) + ++#elif defined(__MINGW32__) ++#define PR_ATOMIC_INCREMENT(val) InterlockedIncrement((long volatile *)(val)) ++#define PR_ATOMIC_DECREMENT(val) InterlockedDecrement((long volatile *)(val)) ++#define PR_ATOMIC_SET(val, newval) \ ++ InterlockedExchange((long volatile *)(val), (long)(newval)) ++#define PR_ATOMIC_ADD(ptr, val) \ ++ (InterlockedExchangeAdd((long volatile *)(ptr), (long)(val)) + (val)) ++#endif ++ + #elif ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)) && \ + ((defined(__APPLE__) && \ + (defined(__ppc__) || defined(__i386__) || defined(__x86_64__))) || \ +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nspr/pr/src/md/prosdep.c nss-3.15.4/nspr/pr/src/md/prosdep.c +--- nss-3.15.4.old/nspr/pr/src/md/prosdep.c 2013-11-09 09:49:40 +0000 ++++ nss-3.15.4/nspr/pr/src/md/prosdep.c 2014-07-29 18:09:32 +0000 +@@ -10,6 +10,7 @@ + #include <unistd.h> + #endif + #ifdef _WIN32 ++#include <winsock2.h> + #include <windows.h> + #endif + #ifdef XP_BEOS +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nspr/pr/src/md/windows/ntdllmn.c nss-3.15.4/nspr/pr/src/md/windows/ntdllmn.c +--- nss-3.15.4.old/nspr/pr/src/md/windows/ntdllmn.c 2013-11-09 09:49:40 +0000 ++++ nss-3.15.4/nspr/pr/src/md/windows/ntdllmn.c 2014-07-29 18:09:32 +0000 +@@ -16,6 +16,7 @@ + * or not. + */ + ++#include <winsock2.h> + #include <windows.h> + #include <primpl.h> + +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nspr/pr/src/md/windows/ntgc.c nss-3.15.4/nspr/pr/src/md/windows/ntgc.c +--- nss-3.15.4.old/nspr/pr/src/md/windows/ntgc.c 2013-11-09 09:49:40 +0000 ++++ nss-3.15.4/nspr/pr/src/md/windows/ntgc.c 2014-07-29 18:09:32 +0000 +@@ -7,6 +7,7 @@ + * GC related routines + * + */ ++#include <winsock2.h> + #include <windows.h> + #include "primpl.h" + +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nspr/pr/src/md/windows/ntio.c nss-3.15.4/nspr/pr/src/md/windows/ntio.c +--- nss-3.15.4.old/nspr/pr/src/md/windows/ntio.c 2013-11-09 09:49:40 +0000 ++++ nss-3.15.4/nspr/pr/src/md/windows/ntio.c 2014-07-29 18:09:32 +0000 +@@ -2461,7 +2461,7 @@ _PR_MD_WRITE(PRFileDesc *fd, const void + PRInt32 + _PR_MD_SOCKETAVAILABLE(PRFileDesc *fd) + { +- PRInt32 result; ++ u_long result; + + if (ioctlsocket(fd->secret->md.osfd, FIONREAD, &result) < 0) { + PR_SetError(PR_BAD_DESCRIPTOR_ERROR, WSAGetLastError()); +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nspr/pr/src/md/windows/ntmisc.c nss-3.15.4/nspr/pr/src/md/windows/ntmisc.c +--- nss-3.15.4.old/nspr/pr/src/md/windows/ntmisc.c 2013-11-09 09:49:40 +0000 ++++ nss-3.15.4/nspr/pr/src/md/windows/ntmisc.c 2014-07-29 18:09:32 +0000 +@@ -10,6 +10,7 @@ + + #include "primpl.h" + #include <math.h> /* for fabs() */ ++#include <winsock2.h> + #include <windows.h> + + char *_PR_MD_GET_ENV(const char *name) +@@ -769,10 +770,14 @@ PRStatus _PR_WaitWindowsProcess(PRProces + return PR_FAILURE; + } + PR_ASSERT(dwRetVal == WAIT_OBJECT_0); +- if (exitCode != NULL && +- GetExitCodeProcess(process->md.handle, exitCode) == FALSE) { +- PR_SetError(PR_UNKNOWN_ERROR, GetLastError()); +- return PR_FAILURE; ++ if (exitCode != NULL) { ++ DWORD dwExitCode = 0; ++ if (GetExitCodeProcess(process->md.handle, &dwExitCode) == FALSE) { ++ *exitCode = dwExitCode; ++ PR_SetError(PR_UNKNOWN_ERROR, GetLastError()); ++ return PR_FAILURE; ++ } ++ *exitCode = dwExitCode; + } + CloseHandle(process->md.handle); + PR_DELETE(process); +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nspr/pr/src/md/windows/w32rng.c nss-3.15.4/nspr/pr/src/md/windows/w32rng.c +--- nss-3.15.4.old/nspr/pr/src/md/windows/w32rng.c 2013-11-09 09:49:40 +0000 ++++ nss-3.15.4/nspr/pr/src/md/windows/w32rng.c 2014-07-29 18:09:32 +0000 +@@ -3,6 +3,7 @@ + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + ++#include <winsock2.h> + #include <windows.h> + #include <time.h> + #include <io.h> +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nspr/pr/src/md/windows/w95dllmain.c nss-3.15.4/nspr/pr/src/md/windows/w95dllmain.c +--- nss-3.15.4.old/nspr/pr/src/md/windows/w95dllmain.c 2013-11-09 09:49:40 +0000 ++++ nss-3.15.4/nspr/pr/src/md/windows/w95dllmain.c 2014-07-29 18:09:32 +0000 +@@ -10,6 +10,7 @@ + * nspr. + */ + ++#include <winsock2.h> + #include <windows.h> + #include <primpl.h> + +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nspr/pr/src/md/windows/w95sock.c nss-3.15.4/nspr/pr/src/md/windows/w95sock.c +--- nss-3.15.4.old/nspr/pr/src/md/windows/w95sock.c 2013-11-09 09:49:40 +0000 ++++ nss-3.15.4/nspr/pr/src/md/windows/w95sock.c 2014-07-29 18:09:32 +0000 +@@ -110,7 +110,7 @@ _MD_CloseSocket(PROsfd osfd) + PRInt32 + _MD_SocketAvailable(PRFileDesc *fd) + { +- PRInt32 result; ++ u_long result; + + if (ioctlsocket(fd->secret->md.osfd, FIONREAD, &result) < 0) { + PR_SetError(PR_BAD_DESCRIPTOR_ERROR, WSAGetLastError()); +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nspr/pr/src/md/windows/win32_errors.c nss-3.15.4/nspr/pr/src/md/windows/win32_errors.c +--- nss-3.15.4.old/nspr/pr/src/md/windows/win32_errors.c 2013-11-09 09:49:40 +0000 ++++ nss-3.15.4/nspr/pr/src/md/windows/win32_errors.c 2014-07-29 18:09:32 +0000 +@@ -6,6 +6,7 @@ + #include "prerror.h" + #include "prlog.h" + #include <errno.h> ++#include <winsock2.h> + #include <windows.h> + + /* +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nspr/pr/src/misc/prtpool.c nss-3.15.4/nspr/pr/src/misc/prtpool.c +--- nss-3.15.4.old/nspr/pr/src/misc/prtpool.c 2013-11-09 09:49:40 +0000 ++++ nss-3.15.4/nspr/pr/src/misc/prtpool.c 2014-07-29 18:09:32 +0000 +@@ -12,6 +12,7 @@ + * + */ + #ifdef OPT_WINNT ++#include <winsock2.h> + #include <windows.h> + #endif + +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nss/cmd/crmftest/Makefile nss-3.15.4/nss/cmd/crmftest/Makefile +--- nss-3.15.4.old/nss/cmd/crmftest/Makefile 2014-07-29 17:38:22 +0000 ++++ nss-3.15.4/nss/cmd/crmftest/Makefile 2014-07-29 18:09:32 +0000 +@@ -58,7 +58,7 @@ include $(CORE_DEPTH)/coreconf/rules.mk + LDDIST = $(DIST)/lib + + ifeq (,$(filter-out WIN%,$(OS_TARGET))) +-EXTRA_LIBS += $(LDDIST)/sectool.lib ++EXTRA_LIBS += $(LDDIST)/$(LIB_PREFIX)sectool.$(LIB_SUFFIX) + endif + + include ../platrules.mk +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nss/cmd/manifest.mn nss-3.15.4/nss/cmd/manifest.mn +--- nss-3.15.4.old/nss/cmd/manifest.mn 2014-07-29 17:38:22 +0000 ++++ nss-3.15.4/nss/cmd/manifest.mn 2014-07-29 18:09:32 +0000 +@@ -47,7 +47,6 @@ DIRS = lib \ + selfserv \ + signtool \ + signver \ +- $(SHLIBSIGN_SRCDIR) \ + smimetools \ + ssltap \ + strsclnt \ +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nss/cmd/p7env/p7env.c nss-3.15.4/nss/cmd/p7env/p7env.c +--- nss-3.15.4.old/nss/cmd/p7env/p7env.c 2014-07-29 17:38:22 +0000 ++++ nss-3.15.4/nss/cmd/p7env/p7env.c 2014-07-29 18:09:32 +0000 +@@ -14,6 +14,14 @@ + #include "certdb.h" + #include "nss.h" + ++#if defined(XP_WIN32) ++#include <winsock2.h> ++#include <windows.h> ++#ifdef EncryptFile ++#undef EncryptFile ++#endif ++#endif ++ + #if defined(XP_UNIX) + #include <unistd.h> + #endif +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nss/cmd/platlibs.mk nss-3.15.4/nss/cmd/platlibs.mk +--- nss-3.15.4.old/nss/cmd/platlibs.mk 2014-07-29 17:38:22 +0000 ++++ nss-3.15.4/nss/cmd/platlibs.mk 2014-07-29 18:09:32 +0000 +@@ -80,6 +80,7 @@ EXTRA_LIBS += \ + $(DIST)/lib/$(LIB_PREFIX)cryptohi.$(LIB_SUFFIX) \ + $(DIST)/lib/$(LIB_PREFIX)pk11wrap.$(LIB_SUFFIX) \ + $(DIST)/lib/$(LIB_PREFIX)certdb.$(LIB_SUFFIX) \ ++ $(DIST)/lib/$(LIB_PREFIX)certhi.$(LIB_SUFFIX) \ + $(SOFTOKENLIB) \ + $(CRYPTOLIB) \ + $(DIST)/lib/$(LIB_PREFIX)nsspki.$(LIB_SUFFIX) \ +@@ -95,10 +96,19 @@ EXTRA_LIBS += \ + $(NULL) + + # $(PROGRAM) has NO explicit dependencies on $(OS_LIBS) +-#OS_LIBS += \ ++ifdef NS_USE_GCC ++ OS_LIBS += \ ++ -lws2_32 \ ++ -lwsock32 \ ++ -lwinmm \ ++ $(NULL) ++else ++ OS_LIBS += \ + wsock32.lib \ + winmm.lib \ + $(NULL) ++endif ++ + else + + EXTRA_LIBS += \ +@@ -167,10 +177,19 @@ EXTRA_LIBS += \ + $(NULL) + + # $(PROGRAM) has NO explicit dependencies on $(OS_LIBS) +-#OS_LIBS += \ ++ifdef NS_USE_GCC ++ OS_LIBS += \ ++ -lws2_32 \ ++ -lwsock32 \ ++ -lwinmm \ ++ $(NULL) ++else ++ OS_LIBS += \ + wsock32.lib \ + winmm.lib \ + $(NULL) ++endif ++ + else + + # $(PROGRAM) has explicit dependencies on $(EXTRA_LIBS) +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nss/cmd/shlibsign/shlibsign.c nss-3.15.4/nss/cmd/shlibsign/shlibsign.c +--- nss-3.15.4.old/nss/cmd/shlibsign/shlibsign.c 2014-07-29 17:38:22 +0000 ++++ nss-3.15.4/nss/cmd/shlibsign/shlibsign.c 2014-07-29 18:09:32 +0000 +@@ -560,7 +560,7 @@ softokn_Init(CK_FUNCTION_LIST_PTR pFunct + CK_C_INITIALIZE_ARGS initArgs; + char *moduleSpec = NULL; + +- initArgs.CreateMutex = NULL; ++ initArgs.GenerateMutex = NULL; + initArgs.DestroyMutex = NULL; + initArgs.LockMutex = NULL; + initArgs.UnlockMutex = NULL; +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nss/coreconf/WINNT.mk nss-3.15.4/nss/coreconf/WINNT.mk +--- nss-3.15.4.old/nss/coreconf/WINNT.mk 2014-07-29 17:38:22 +0000 ++++ nss-3.15.4/nss/coreconf/WINNT.mk 2014-07-29 18:09:32 +0000 +@@ -12,9 +12,14 @@ include $(CORE_DEPTH)/coreconf/WIN32.mk + DEFINES += -DWINNT + + # +-# Win NT needs -GT so that fibers can work ++# MinGW needs IE 4.0 to have SHGetSpecialFolderPath functions ++# MSVC needs -GT so that fibers can work + # +-OS_CFLAGS += -GT ++ifdef NS_USE_GCC ++ OS_CFLAGS += -D_WIN32_IE=0x0400 ++else ++ OS_CFLAGS += -GT ++endif + + # WINNT uses the lib prefix, Win95 doesn't + NSPR31_LIB_PREFIX = lib +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nss/lib/ckfw/wrap.c nss-3.15.4/nss/lib/ckfw/wrap.c +--- nss-3.15.4.old/nss/lib/ckfw/wrap.c 2014-07-29 17:38:22 +0000 ++++ nss-3.15.4/nss/lib/ckfw/wrap.c 2014-07-29 18:09:32 +0000 +@@ -107,7 +107,7 @@ nssCKFW_GetThreadSafeState(CK_C_INITIALI + *pLocking_state = MultiThreaded; + return CKR_OK; + } +- if ((CK_CREATEMUTEX) NULL != pInitArgs->CreateMutex) functionCount++; ++ if ((CK_CREATEMUTEX) NULL != pInitArgs->GenerateMutex) functionCount++; + if ((CK_DESTROYMUTEX) NULL != pInitArgs->DestroyMutex) functionCount++; + if ((CK_LOCKMUTEX) NULL != pInitArgs->LockMutex) functionCount++; + if ((CK_UNLOCKMUTEX) NULL != pInitArgs->UnlockMutex) functionCount++; +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c nss-3.15.4/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c +--- nss-3.15.4.old/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c 2014-07-29 17:38:22 +0000 ++++ nss-3.15.4/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c 2014-07-29 18:09:32 +0000 +@@ -480,6 +480,8 @@ cleanup: + * work as proxy function to a real objects. + * + */ ++#undef ERROR ++ + PKIX_Error * + pkix_pl_Object_RegisterSelf(void *plContext) + { +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nss/lib/softoken/legacydb/manifest.mn nss-3.15.4/nss/lib/softoken/legacydb/manifest.mn +--- nss-3.15.4.old/nss/lib/softoken/legacydb/manifest.mn 2014-07-29 17:38:22 +0000 ++++ nss-3.15.4/nss/lib/softoken/legacydb/manifest.mn 2014-07-29 18:09:32 +0000 +@@ -12,6 +12,8 @@ LIBRARY_NAME = nssdbm + LIBRARY_VERSION = 3 + MAPFILE = $(OBJDIR)/nssdbm.def + ++OS_CFLAGS += -I../../../../../dbm/include ++ + DEFINES += -DSHLIB_SUFFIX=\"$(DLL_SUFFIX)\" -DSHLIB_PREFIX=\"$(DLL_PREFIX)\" + + CSRCS = \ +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nss/lib/softoken/pkcs11.c nss-3.15.4/nss/lib/softoken/pkcs11.c +--- nss-3.15.4.old/nss/lib/softoken/pkcs11.c 2014-07-29 17:38:22 +0000 ++++ nss-3.15.4/nss/lib/softoken/pkcs11.c 2014-07-29 18:09:32 +0000 +@@ -2855,7 +2855,7 @@ CK_RV nsc_CommonInitialize(CK_VOID_PTR p + + /* initialize the key and cert db's */ + if (init_args && (!(init_args->flags & CKF_OS_LOCKING_OK))) { +- if (init_args->CreateMutex && init_args->DestroyMutex && ++ if (init_args->GenerateMutex && init_args->DestroyMutex && + init_args->LockMutex && init_args->UnlockMutex) { + /* softoken always uses NSPR (ie. OS locking), and doesn't know how + * to use the lock functions provided by the application. +@@ -2863,7 +2863,7 @@ CK_RV nsc_CommonInitialize(CK_VOID_PTR p + crv = CKR_CANT_LOCK; + return crv; + } +- if (init_args->CreateMutex || init_args->DestroyMutex || ++ if (init_args->GenerateMutex || init_args->DestroyMutex || + init_args->LockMutex || init_args->UnlockMutex) { + /* only some of the lock functions were provided by the + * application. This is invalid per PKCS#11 spec. +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nss/lib/ssl/sslmutex.c nss-3.15.4/nss/lib/ssl/sslmutex.c +--- nss-3.15.4.old/nss/lib/ssl/sslmutex.c 2014-07-29 17:38:22 +0000 ++++ nss-3.15.4/nss/lib/ssl/sslmutex.c 2014-07-29 18:09:32 +0000 +@@ -6,6 +6,11 @@ + /* This ifdef should match the one in sslsnce.c */ + #if defined(XP_UNIX) || defined(XP_WIN32) || defined (XP_OS2) || defined(XP_BEOS) + ++#if defined(XP_WIN32) ++#include <winsock2.h> ++#include <windows.h> ++#endif ++ + #include "sslmutex.h" + #include "prerr.h" + +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nss/lib/util/pkcs11t.h nss-3.15.4/nss/lib/util/pkcs11t.h +--- nss-3.15.4.old/nss/lib/util/pkcs11t.h 2014-07-29 17:38:22 +0000 ++++ nss-3.15.4/nss/lib/util/pkcs11t.h 2014-07-29 18:09:32 +0000 +@@ -1181,7 +1181,7 @@ typedef CK_CALLBACK_FUNCTION(CK_RV, CK_U + /* CK_C_INITIALIZE_ARGS provides the optional arguments to + * C_Initialize */ + typedef struct CK_C_INITIALIZE_ARGS { +- CK_CREATEMUTEX CreateMutex; ++ CK_CREATEMUTEX GenerateMutex; + CK_DESTROYMUTEX DestroyMutex; + CK_LOCKMUTEX LockMutex; + CK_UNLOCKMUTEX UnlockMutex; +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nss/lib/util/secport.c nss-3.15.4/nss/lib/util/secport.c +--- nss-3.15.4.old/nss/lib/util/secport.c 2014-07-29 17:38:22 +0000 ++++ nss-3.15.4/nss/lib/util/secport.c 2014-07-29 18:09:32 +0000 +@@ -31,6 +31,10 @@ + #if defined(XP_UNIX) || defined(XP_OS2) || defined(XP_BEOS) + #include <stdlib.h> + #else ++#if defined(XP_WIN32) ++#include <winsock2.h> ++#include <windows.h> ++#endif + #include "wtypes.h" + #endif + +diff -upr -x .deps -x .libs -x '*.la' nss-3.15.4.old/nss/nss.pc nss-3.15.4/nss/nss.pc +--- nss-3.15.4.old/nss/nss.pc 2014-07-29 17:44:30 +0000 ++++ nss-3.15.4/nss/nss.pc 2014-07-29 18:09:32 +0000 +@@ -0,0 +1,10 @@ ++exec_prefix=${prefix} ++libdir=${exec_prefix}/lib ++includedir=${prefix}/include/nss ++ ++Name: NSS ++Description: The Netscape Security Services ++Version: 3.15.4 ++Requires: nspr ++Libs: -L${exec_prefix}/lib -lssl3 -lsmime3 -lnss3 -lnssutil3 ++Cflags: -I${prefix}/include/nss diff --git a/win32/patches/openldap.patch b/win32/patches/openldap.patch new file mode 100644 index 0000000000..3f737f014c --- /dev/null +++ b/win32/patches/openldap.patch @@ -0,0 +1,82 @@ +diff -upr openldap-2.4.9.old/Makefile openldap-2.4.9/Makefile +--- openldap-2.4.9.old/Makefile 2014-03-26 05:17:05 +0000 ++++ openldap-2.4.9/Makefile 2014-03-26 21:20:23 +0000 +@@ -264,7 +264,7 @@ FORCE: + ## top-level directory of the distribution or, alternatively, at + ## <http://www.OpenLDAP.org/license.html>. + +-SUBDIRS= include libraries clients servers tests doc ++SUBDIRS= include libraries clients servers + CLEANDIRS= + INSTALLDIRS= + +diff -upr openldap-2.4.9.old/Makefile.in openldap-2.4.9/Makefile.in +--- openldap-2.4.9.old/Makefile.in 2014-03-26 05:17:05 +0000 ++++ openldap-2.4.9/Makefile.in 2014-03-26 21:20:00 +0000 +@@ -13,7 +13,7 @@ + ## top-level directory of the distribution or, alternatively, at + ## <http://www.OpenLDAP.org/license.html>. + +-SUBDIRS= include libraries clients servers tests doc ++SUBDIRS= include libraries clients servers + CLEANDIRS= + INSTALLDIRS= + +diff -upr openldap-2.4.9.old/include/ldap_pvt_thread.h openldap-2.4.9/include/ldap_pvt_thread.h +--- openldap-2.4.9.old/include/ldap_pvt_thread.h 2014-03-26 05:17:20 +0000 ++++ openldap-2.4.9/include/ldap_pvt_thread.h 2014-03-26 21:19:42 +0000 +@@ -61,7 +61,7 @@ ldap_pvt_thread_set_concurrency LDAP_P(( + #define LDAP_PVT_THREAD_SET_STACK_SIZE + #ifndef LDAP_PVT_THREAD_STACK_SIZE + /* LARGE stack. Will be twice as large on 64 bit machine. */ +-#define LDAP_PVT_THREAD_STACK_SIZE ( 1 * 1024 * 1024 * sizeof(void *) ) ++#define LDAP_PVT_THREAD_STACK_SIZE ( 1 * 1024 * 1024 * 4 ) + /* May be explicitly defined to zero to disable it */ + #elif LDAP_PVT_THREAD_STACK_SIZE == 0 + #undef LDAP_PVT_THREAD_SET_STACK_SIZE +diff -upr openldap-2.4.9.old/include/portable.h openldap-2.4.9/include/portable.h +--- openldap-2.4.9.old/include/portable.h 2014-03-26 05:17:20 +0000 ++++ openldap-2.4.9/include/portable.h 2014-03-26 21:19:42 +0000 +@@ -1086,7 +1086,7 @@ + #define snprintf _snprintf + + /* Define like ber_socklen_t if <sys/socket.h> does not define. */ +-#define socklen_t int ++/*#define socklen_t int*/ + + /* Define to `signed int' if <sys/types.h> does not define. */ + /* #undef ssize_t */ +diff -upr openldap-2.4.9.old/libraries/libldap_r/Makefile openldap-2.4.9/libraries/libldap_r/Makefile +--- openldap-2.4.9.old/libraries/libldap_r/Makefile 2014-03-26 05:17:20 +0000 ++++ openldap-2.4.9/libraries/libldap_r/Makefile 2014-03-26 21:19:42 +0000 +@@ -304,10 +304,10 @@ LIB_DEFS = -DLDAP_LIBRARY + + XDEFS = -DLDAP_R_COMPILE -I$(XXDIR) + XLIBS = $(LIBRARY) $(LDAP_LIBLBER_LA) $(LDAP_LIBLUTIL_A) +-XXLIBS = $(SECURITY_LIBS) $(LUTIL_LIBS) ++XXLIBS = $(SECURITY_LIBS) $(LUTIL_LIBS) -lgcrypt + XXXLIBS = $(LTHREAD_LIBS) +-NT_LINK_LIBS = $(LDAP_LIBLBER_LA) $(AC_LIBS) $(SECURITY_LIBS) +-UNIX_LINK_LIBS = $(LDAP_LIBLBER_LA) $(AC_LIBS) $(SECURITY_LIBS) $(LTHREAD_LIBS) ++NT_LINK_LIBS = $(LDAP_LIBLBER_LA) $(AC_LIBS) $(SECURITY_LIBS) -lgcrypt ++UNIX_LINK_LIBS = $(LDAP_LIBLBER_LA) $(AC_LIBS) $(SECURITY_LIBS) $(LTHREAD_LIBS) -lgcrypt + + .links : Makefile + @for i in $(XXSRCS); do \ +diff -upr openldap-2.4.9.old/libraries/libldap_r/Makefile.in openldap-2.4.9/libraries/libldap_r/Makefile.in +--- openldap-2.4.9.old/libraries/libldap_r/Makefile.in 2014-03-26 05:17:20 +0000 ++++ openldap-2.4.9/libraries/libldap_r/Makefile.in 2014-03-26 21:19:42 +0000 +@@ -53,10 +53,10 @@ LIB_DEFS = -DLDAP_LIBRARY + + XDEFS = -DLDAP_R_COMPILE -I$(XXDIR) + XLIBS = $(LIBRARY) $(LDAP_LIBLBER_LA) $(LDAP_LIBLUTIL_A) +-XXLIBS = $(SECURITY_LIBS) $(LUTIL_LIBS) ++XXLIBS = $(SECURITY_LIBS) $(LUTIL_LIBS) -lgcrypt + XXXLIBS = $(LTHREAD_LIBS) +-NT_LINK_LIBS = $(LDAP_LIBLBER_LA) $(AC_LIBS) $(SECURITY_LIBS) +-UNIX_LINK_LIBS = $(LDAP_LIBLBER_LA) $(AC_LIBS) $(SECURITY_LIBS) $(LTHREAD_LIBS) ++NT_LINK_LIBS = $(LDAP_LIBLBER_LA) $(AC_LIBS) $(SECURITY_LIBS) -lgcrypt ++UNIX_LINK_LIBS = $(LDAP_LIBLBER_LA) $(AC_LIBS) $(SECURITY_LIBS) $(LTHREAD_LIBS) -lgcrypt + + .links : Makefile + @for i in $(XXSRCS); do \ diff --git a/win32/patches/p11-kit.patch b/win32/patches/p11-kit.patch new file mode 100644 index 0000000000..00694bbfc2 --- /dev/null +++ b/win32/patches/p11-kit.patch @@ -0,0 +1,60 @@ +diff -upr p11-kit-98292d6bbc.old/configure.ac p11-kit-98292d6bbc/configure.ac +--- p11-kit-98292d6bbc.old/configure.ac 2014-03-24 21:44:56 +0000 ++++ p11-kit-98292d6bbc/configure.ac 2014-03-24 20:45:41 +0000 +@@ -22,7 +22,7 @@ P11KIT_AGE=0 + AC_CONFIG_HEADERS([config.h]) + AC_CONFIG_MACRO_DIR([build/m4]) + AC_CONFIG_AUX_DIR([build/litter]) +-AM_INIT_AUTOMAKE([1.10 foreign serial-tests]) ++AM_INIT_AUTOMAKE([1.10 foreign]) + AM_SANITY_CHECK + AM_MAINTAINER_MODE([enable]) + m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],) +diff -upr p11-kit-98292d6bbc.old/common/compat.c p11-kit-98292d6bbc/common/compat.c +--- p11-kit-98292d6bbc.old/common/compat.c 2014-03-26 05:06:34 +0000 ++++ p11-kit-98292d6bbc/common/compat.c 2014-03-26 05:04:47 +0000 +@@ -840,7 +840,17 @@ strerror_r (int errnum, + size_t buflen) + { + #ifdef OS_WIN32 ++ #ifdef __MINGW32__ ++ char *str = strerror (errnum); ++ if (!str) { ++ *buf = 0; ++ return EINVAL; ++ } ++ strncpy (buf, str, buflen); ++ return 0; ++ #else + return strerror_s (buf, buflen, errnum); ++ #endif + #else + #error no strerror_r implementation + #endif +diff -upr p11-kit-98292d6bbc.old/p11-kit/Makefile.am p11-kit-98292d6bbc/p11-kit/Makefile.am +--- p11-kit-98292d6bbc.old/p11-kit/Makefile.am 2014-03-26 05:06:05 +0000 ++++ p11-kit-98292d6bbc/p11-kit/Makefile.am 2014-03-24 23:17:41 +0000 +@@ -98,6 +98,11 @@ libp11_kit_testable_la_CFLAGS = \ + $(LIBFFI_CFLAGS) \ + $(NULL) + ++# Proxy module is actually same as library, so install a link ++install-exec-hook: ++ $(LN_S) -f `readlink $(DESTDIR)$(libdir)/libp11-kit.so` $(DESTDIR)$(libdir)/p11-kit-proxy.so ++ $(MKDIR_P) $(DESTDIR)$(p11_package_config_modules) ++ + endif + + pkgconfigdir = $(libdir)/pkgconfig +@@ -112,11 +117,6 @@ EXTRA_DIST = \ + docs.h \ + $(NULL) + +-# Proxy module is actually same as library, so install a link +-install-exec-hook: +- $(LN_S) -f `readlink $(DESTDIR)$(libdir)/libp11-kit.so` $(DESTDIR)$(libdir)/p11-kit-proxy.so +- $(MKDIR_P) $(DESTDIR)$(p11_package_config_modules) +- + bin_PROGRAMS = \ + p11-kit + diff --git a/win32/patches/regex.patch b/win32/patches/regex.patch new file mode 100644 index 0000000000..cb39919944 --- /dev/null +++ b/win32/patches/regex.patch @@ -0,0 +1,48 @@ +diff -upr -x .deps -x .libs -x '*.la' regex-20090805.old/lib/gettext.h regex-20090805/lib/gettext.h +--- regex-20090805.old/lib/gettext.h 2009-08-05 19:37:29 +0000 ++++ regex-20090805/lib/gettext.h 2014-05-31 06:05:12 +0000 +@@ -178,7 +178,7 @@ npgettext_aux (const char *domain, + #include <string.h> + + #define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS \ +- (((__GNUC__ >= 3 || __GNUG__ >= 2) && !__STRICT_ANSI__) \ ++ (((__GNUC__ >= 3 || __GNUG__ >= 2) && (defined(__STRICT_ANSI__) && !__STRICT_ANSI__)) \ + /* || __STDC_VERSION__ >= 199901L */ ) + + #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS +diff -upr -x .deps -x .libs -x '*.la' regex-20090805.old/lib/regex.h regex-20090805/lib/regex.h +--- regex-20090805.old/lib/regex.h 2009-08-05 19:37:32 +0000 ++++ regex-20090805/lib/regex.h 2014-05-31 06:05:29 +0000 +@@ -630,7 +630,7 @@ extern int re_exec (const char *); + 'configure' might #define 'restrict' to those words, so pick a + different name. */ + #ifndef _Restrict_ +-# if 199901L <= __STDC_VERSION__ ++# if (defined(__STDC_VERSION__) && 199901L <= __STDC_VERSION__) + # define _Restrict_ restrict + # elif 2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__) + # define _Restrict_ __restrict +@@ -642,9 +642,9 @@ extern int re_exec (const char *); + sys/cdefs.h's definition of __restrict_arr, though, as it + mishandles gcc -ansi -pedantic. */ + #ifndef _Restrict_arr_ +-# if ((199901L <= __STDC_VERSION__ \ ++# if (((defined(__STDC_VERSION__) && 199901L <= __STDC_VERSION__) \ + || ((3 < __GNUC__ || (3 == __GNUC__ && 1 <= __GNUC_MINOR__)) \ +- && !__STRICT_ANSI__)) \ ++ && (!defined(__STRICT_ANSI__) || !__STRICT_ANSI__))) \ + && !defined __GNUG__) + # define _Restrict_arr_ _Restrict_ + # else +diff -upr -x .deps -x .libs -x '*.la' regex-20090805.old/lib/regex_internal.h regex-20090805/lib/regex_internal.h +--- regex-20090805.old/lib/regex_internal.h 2009-08-05 19:37:33 +0000 ++++ regex-20090805/lib/regex_internal.h 2014-05-31 06:05:50 +0000 +@@ -338,7 +338,7 @@ typedef struct + Idx idx; /* for BACK_REF */ + re_context_type ctx_type; /* for ANCHOR */ + } opr; +-#if __GNUC__ >= 2 && !__STRICT_ANSI__ ++#if __GNUC__ >= 2 && (defined(__STRICT_ANSI__) && !__STRICT_ANSI__) + re_token_type_t type : 8; + #else + re_token_type_t type; diff --git a/win32/patches/rss.patch b/win32/patches/rss.patch new file mode 100644 index 0000000000..5fa6194387 --- /dev/null +++ b/win32/patches/rss.patch @@ -0,0 +1,101 @@ +diff --git a/configure.ac b/configure.ac +index 6679ab5..f7fdae5 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -104,6 +104,7 @@ PKG_CHECK_MODULES(EVOLUTION_RSS_EPLUGIN, + libsoup$SOUP >= $LIBSOUP_REQUIRED dnl + $EVOLUTION_PLUGIN_CHECK dnl + evolution-shell$EVOLUTION_BASE_VERSION_S >= $EVOLUTION_REQUIRED dnl ++ evolution-mail$EVOLUTION_BASE_VERSION_S >= $EVOLUTION_REQUIRED dnl + $EVOLUTION_ADDITIONAL dnl + libebook-1.2 dnl + ]) +@@ -316,12 +317,6 @@ AC_SUBST(RENDER_CFLAGS) + AC_SUBST(RENDER) + AC_SUBST(RENDER_N) + +-dnl *********** +-dnl GConf stuff +-dnl *********** +-AC_PATH_PROG(GCONFTOOL, gconftool-2, no) +-AM_GCONF_SOURCE_2 +- + dnl *************** + dnl Gsettings stuff + dnl *************** +diff --git a/src/Makefile.am b/src/Makefile.am +index 91f2671..c0c6ecd 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -130,8 +130,12 @@ evolution_module_rss_la_CPPFLAGS = \ + $(AM_CPPFLAGS) \ + -I$(top_srcdir) \ + -DEVOLUTION_PRIVDATADIR=\""$(privdatadir)"\" \ +- -DG_LOG_DOMAIN=\"evolution-module-rss\" \ +- $(EVOLUTION_RSS_EPLUGIN_LIBS) ++ -DG_LOG_DOMAIN=\"evolution-module-rss\" ++ ++evolution_module_rss_la_LIBADD = \ ++ $(EVOLUTION_RSS_EPLUGIN_LIBS) \ ++ $(DATASERVER_LIBS) ++ + + + evolution_module_rss_la_LDFLAGS = \ +diff --git a/src/e-mail-formatter-evolution-rss.c b/src/e-mail-formatter-evolution-rss.c +index 6ae8d16..fd581d1 100644 +--- a/src/e-mail-formatter-evolution-rss.c ++++ b/src/e-mail-formatter-evolution-rss.c +@@ -30,7 +30,6 @@ + #include <libedataserver/libedataserver.h> + + #include <glib/gi18n-lib.h> +-#include <X11/Xlib.h> + #include <camel/camel.h> + + #include "misc.h" +diff --git a/src/rss-config-factory.c b/src/rss-config-factory.c +index a4f22e8..3529a64 100644 +--- a/src/rss-config-factory.c ++++ b/src/rss-config-factory.c +@@ -552,11 +552,18 @@ folder_cb (GtkWidget *widget, gpointer data) + model = em_folder_tree_model_get_default (); + #endif + #if EVOLUTION_VERSION >= 30303 ++#if EVOLUTION_VERSION >= 31301 ++ dialog = em_folder_selector_new (window, model); ++ em_folder_selector_set_can_create (EM_FOLDER_SELECTOR (dialog), TRUE); ++ em_folder_selector_set_caption (EM_FOLDER_SELECTOR (dialog), _("Move to Folder")); ++ em_folder_selector_set_default_button_label (EM_FOLDER_SELECTOR (dialog), _("M_ove")); ++#else + dialog = em_folder_selector_new ( + window, + model, + EM_FOLDER_SELECTOR_CAN_CREATE, + _("Move to Folder"), NULL, _("M_ove")); ++#endif + #else + dialog = em_folder_selector_new ( + window, +diff --git a/src/rss-evo-common.c b/src/rss-evo-common.c +index 1a96862..269565b 100644 +--- a/src/rss-evo-common.c ++++ b/src/rss-evo-common.c +@@ -55,6 +55,17 @@ + #include <libsoup/soup-gnome-features.h> + #endif + ++#ifdef G_OS_WIN32 ++#include <winsock2.h> ++#include <ws2tcpip.h> ++#ifdef HAVE_WSPIAPI_H ++#include <wspiapi.h> ++#endif ++ ++#define IN6_ARE_ADDR_EQUAL(a,b) IN6_ADDR_EQUAL(a,b) ++ ++#endif ++ + #define d(x) + + #include "rss-evo-common.h" diff --git a/win32/patches/tzdata.patch b/win32/patches/tzdata.patch new file mode 100644 index 0000000000..97963ced99 --- /dev/null +++ b/win32/patches/tzdata.patch @@ -0,0 +1,42 @@ +diff -upr tzdata2014b.old/Makefile tzdata2014b/Makefile +--- tzdata2014b.old/Makefile 2014-03-30 17:49:03 +0000 ++++ tzdata2014b/Makefile 2014-03-30 20:19:53 +0000 +@@ -52,7 +52,7 @@ TOPDIR= /usr/local + # Use an absolute path name for TZDIR unless you're just testing the software. + + TZDIR_BASENAME= zoneinfo +-TZDIR= $(TOPDIR)/etc/$(TZDIR_BASENAME) ++TZDIR= $(TOPDIR)/share/$(TZDIR_BASENAME) + + # Types to try, as an alternative to time_t. int64_t should be first. + TIME_T_ALTERNATIVES= int64_t int32_t uint32_t uint64_t +@@ -223,7 +223,7 @@ GCC_DEBUG_FLAGS = -Dlint -g3 -O3 -fno-co + # before the first Monday in January when a "%V" format is used and January 1 + # falls on a Friday, Saturday, or Sunday. + +-CFLAGS= ++CFLAGS=-DHAVE_SYS_WAIT_H=0 -DHAVE_LINK=0 -DHAVE_SYMLINK=0 -DHAVE_STDINT_H=1 + + # Linker flags. Default to $(LFLAGS) for backwards compatibility + # to tzcode2012h and earlier. +diff -upr tzdata2014b.old/zic.c tzdata2014b/zic.c +--- tzdata2014b.old/zic.c 2014-03-30 17:49:03 +0000 ++++ tzdata2014b/zic.c 2014-03-30 17:52:02 +0000 +@@ -16,7 +16,7 @@ + typedef int_fast64_t zic_t; + #define ZIC_MIN INT_FAST64_MIN + #define ZIC_MAX INT_FAST64_MAX +-#define SCNdZIC SCNdFAST64 ++#define SCNdZIC "lld" + + #ifndef ZIC_MAX_ABBR_LEN_WO_WARN + #define ZIC_MAX_ABBR_LEN_WO_WARN 6 +@@ -2814,7 +2814,7 @@ mkdirs(char *argname) + ** created by some other multiprocessor, so we get + ** to do extra checking. + */ +- if (mkdir(name, MKDIR_UMASK) != 0) { ++ if (mkdir(name) != 0) { + const char *e = strerror(errno); + + if (errno != EEXIST || !itsdir(name)) { diff --git a/win32/patches/webkitgtk.patch b/win32/patches/webkitgtk.patch new file mode 100644 index 0000000000..7cc42fc0f3 --- /dev/null +++ b/win32/patches/webkitgtk.patch @@ -0,0 +1,727 @@ +diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/JavaScriptCore/jit/JITStubsX86.h webkitgtk-2.4.1/Source/JavaScriptCore/jit/JITStubsX86.h +--- webkitgtk-2.4.1.old/Source/JavaScriptCore/jit/JITStubsX86.h 2014-06-20 20:05:59 +0000 ++++ webkitgtk-2.4.1/Source/JavaScriptCore/jit/JITStubsX86.h 2014-06-20 19:42:30 +0000 +@@ -32,6 +32,7 @@ + #define JITStubsX86_h + + #include "JITStubsX86Common.h" ++#include <wtf/InlineASM.h> + + #if !CPU(X86) + #error "JITStubsX86.h should only be #included if CPU(X86)" +@@ -198,6 +199,225 @@ SYMBOL_STRING(ctiMasmProbeTrampolineEnd) + ); + #endif // USE(MASM_PROBE) + ++#if OS(WINDOWS) && ENABLE(JIT) ++extern "C" { ++ ++ // FIXME: Since Windows doesn't use the LLInt, we have inline stubs here. ++ // Until the LLInt is changed to support Windows, these stub needs to be updated. ++ asm ( ++ ".globl " SYMBOL_STRING(callToJavaScript) "\n" ++ HIDE_SYMBOL(callToJavaScript) "\n" ++ SYMBOL_STRING(callToJavaScript) ":" "\n" ++ "mov (%esp),%edx" "\n" ++ "push %ebp" "\n" ++ "mov %ebp,%eax" "\n" ++ "mov %esp,%ebp" "\n" ++ "push %esi" "\n" ++ "push %edi" "\n" ++ "push %ebx" "\n" ++ "sub $0x1c,%esp" "\n" ++ "mov 0x34(%esp),%ecx" "\n" ++ "mov 0x38(%esp),%esi" "\n" ++ "mov 0x3c(%esp),%ebp" "\n" ++ "sub $0x20,%ebp" "\n" ++ "movl $0x0,0x24(%ebp)" "\n" ++ "movl $0x0,0x20(%ebp)" "\n" ++ "movl $0x0,0x1c(%ebp)" "\n" ++ "mov %ecx,0x18(%ebp)" "\n" ++ "mov (%ecx),%ebx" "\n" ++ "movl $0x0,0x14(%ebp)" "\n" ++ "mov %ebx,0x10(%ebp)" "\n" ++ "movl $0x0,0xc(%ebp)" "\n" ++ "movl $0x1,0x8(%ebp)" "\n" ++ "mov %edx,0x4(%ebp)" "\n" ++ "mov %eax,0x0(%ebp)" "\n" ++ "mov %ebp,%eax" "\n" ++ ++ "mov 0x28(%esi),%edx" "\n" ++ "add $0x5,%edx" "\n" ++ "shl $0x3,%edx" "\n" ++ "sub %edx,%ebp" "\n" ++ "mov %eax,0x0(%ebp)" "\n" ++ ++ "mov $0x5,%eax" "\n" ++ ++ ".copyHeaderLoop:" "\n" ++ "sub $0x1,%eax" "\n" ++ "mov (%esi,%eax,8),%ecx" "\n" ++ "mov %ecx,0x8(%ebp,%eax,8)" "\n" ++ "mov 0x4(%esi,%eax,8),%ecx" "\n" ++ "mov %ecx,0xc(%ebp,%eax,8)" "\n" ++ "test %eax,%eax" "\n" ++ "jne .copyHeaderLoop" "\n" ++ ++ "mov 0x18(%esi),%edx" "\n" ++ "sub $0x1,%edx" "\n" ++ "mov 0x28(%esi),%ecx" "\n" ++ "sub $0x1,%ecx" "\n" ++ ++ "cmp %ecx,%edx" "\n" ++ "je .copyArgs" "\n" ++ ++ "xor %eax,%eax" "\n" ++ "mov $0xfffffffc,%ebx" "\n" ++ ++ ".fillExtraArgsLoop:" "\n" ++ "sub $0x1,%ecx" "\n" ++ "mov %eax,0x30(%ebp,%ecx,8)" "\n" ++ "mov %ebx,0x34(%ebp,%ecx,8)" "\n" ++ "cmp %ecx,%edx" "\n" ++ "jne .fillExtraArgsLoop" "\n" ++ ++ ".copyArgs:" "\n" ++ "mov 0x2c(%esi),%eax" "\n" ++ ++ ".copyArgsLoop:" "\n" ++ "test %edx,%edx" "\n" ++ "je .copyArgsDone" "\n" ++ "sub $0x1,%edx" "\n" ++ "mov (%eax,%edx,8),%ecx" "\n" ++ "mov 0x4(%eax,%edx,8),%ebx" "\n" ++ "mov %ecx,0x30(%ebp,%edx,8)" "\n" ++ "mov %ebx,0x34(%ebp,%edx,8)" "\n" ++ "jmp .copyArgsLoop" "\n" ++ ++ ".copyArgsDone:" "\n" ++ "mov 0x34(%esp),%ecx" "\n" ++ "mov %ebp,(%ecx)" "\n" ++ ++ "call *0x30(%esp)" "\n" ++ ++ "cmpl $0x1,0x8(%ebp)" "\n" ++ "je .calleeFramePopped" "\n" ++ "mov 0x0(%ebp),%ebp" "\n" ++ ++ ".calleeFramePopped:" "\n" ++ "mov 0x18(%ebp),%ecx" "\n" ++ "mov 0x10(%ebp),%ebx" "\n" ++ "mov %ebx,(%ecx)" "\n" ++ ++ "add $0x1c,%esp" "\n" ++ "pop %ebx" "\n" ++ "pop %edi" "\n" ++ "pop %esi" "\n" ++ "pop %ebp" "\n" ++ "ret" "\n" ++ ++ ".globl " SYMBOL_STRING(returnFromJavaScript) "\n" ++ HIDE_SYMBOL(returnFromJavaScript) "\n" ++ SYMBOL_STRING(returnFromJavaScript) ":" "\n" ++ "add $0x1c,%esp" "\n" ++ "pop %ebx" "\n" ++ "pop %edi" "\n" ++ "pop %esi" "\n" ++ "pop %ebp" "\n" ++ "ret" "\n" ++ ++ ".globl " SYMBOL_STRING(callToNativeFunction) "\n" ++ HIDE_SYMBOL(callToNativeFunction) "\n" ++ SYMBOL_STRING(callToNativeFunction) ":" "\n" ++ "mov (%esp),%edx" "\n" ++ "push %ebp" "\n" ++ "mov %ebp,%eax" "\n" ++ "mov %esp,%ebp" "\n" ++ "push %esi" "\n" ++ "push %edi" "\n" ++ "push %ebx" "\n" ++ "sub $0x1c,%esp" "\n" ++ "mov 0x34(%esp),%ecx" "\n" ++ "mov 0x38(%esp),%esi" "\n" ++ "mov 0x3c(%esp),%ebp" "\n" ++ "sub $0x20,%ebp" "\n" ++ "movl $0x0,0x24(%ebp)" "\n" ++ "movl $0x0,0x20(%ebp)" "\n" ++ "movl $0x0,0x1c(%ebp)" "\n" ++ "mov %ecx,0x18(%ebp)" "\n" ++ "mov (%ecx),%ebx" "\n" ++ "movl $0x0,0x14(%ebp)" "\n" ++ "mov %ebx,0x10(%ebp)" "\n" ++ "movl $0x0,0xc(%ebp)" "\n" ++ "movl $0x1,0x8(%ebp)" "\n" ++ "mov %edx,0x4(%ebp)" "\n" ++ "mov %eax,0x0(%ebp)" "\n" ++ "mov %ebp,%eax" "\n" ++ ++ "mov 0x28(%esi),%edx" "\n" ++ "add $0x5,%edx" "\n" ++ "shl $0x3,%edx" "\n" ++ "sub %edx,%ebp" "\n" ++ "mov %eax,0x0(%ebp)" "\n" ++ ++ "mov $0x5,%eax" "\n" ++ ++ "copyHeaderLoop:" "\n" ++ "sub $0x1,%eax" "\n" ++ "mov (%esi,%eax,8),%ecx" "\n" ++ "mov %ecx,0x8(%ebp,%eax,8)" "\n" ++ "mov 0x4(%esi,%eax,8),%ecx" "\n" ++ "mov %ecx,0xc(%ebp,%eax,8)" "\n" ++ "test %eax,%eax" "\n" ++ "jne copyHeaderLoop" "\n" ++ ++ "mov 0x18(%esi),%edx" "\n" ++ "sub $0x1,%edx" "\n" ++ "mov 0x28(%esi),%ecx" "\n" ++ "sub $0x1,%ecx" "\n" ++ ++ "cmp %ecx,%edx" "\n" ++ "je copyArgs" "\n" ++ ++ "xor %eax,%eax" "\n" ++ "mov $0xfffffffc,%ebx" "\n" ++ ++ "fillExtraArgsLoop:" "\n" ++ "sub $0x1,%ecx" "\n" ++ "mov %eax,0x30(%ebp,%ecx,8)" "\n" ++ "mov %ebx,0x34(%ebp,%ecx,8)" "\n" ++ "cmp %ecx,%edx" "\n" ++ "jne fillExtraArgsLoop" "\n" ++ ++ "copyArgs:" "\n" ++ "mov 0x2c(%esi),%eax" "\n" ++ ++ "copyArgsLoop:" "\n" ++ "test %edx,%edx" "\n" ++ "je copyArgsDone" "\n" ++ "sub $0x1,%edx" "\n" ++ "mov (%eax,%edx,8),%ecx" "\n" ++ "mov 0x4(%eax,%edx,8),%ebx" "\n" ++ "mov %ecx,0x30(%ebp,%edx,8)" "\n" ++ "mov %ebx,0x34(%ebp,%edx,8)" "\n" ++ "jmp copyArgsLoop" "\n" ++ ++ "copyArgsDone:" "\n" ++ "mov 0x34(%esp),%ecx" "\n" ++ "mov %ebp,(%ecx)" "\n" ++ ++ "mov 0x30(%esp),%edi" "\n" ++ "mov %ebp,0x30(%esp)" "\n" ++ "mov %ebp,%ecx" "\n" ++ "call *%edi" "\n" ++ ++ "cmpl $0x1,0x8(%ebp)" "\n" ++ "je calleeFramePopped" "\n" ++ "mov 0x0(%ebp),%ebp" "\n" ++ ++ "calleeFramePopped:" "\n" ++ "mov 0x18(%ebp),%ecx" "\n" ++ "mov 0x10(%ebp),%ebx" "\n" ++ "mov %ebx,(%ecx)" "\n" ++ ++ "add $0x1c,%esp" "\n" ++ "pop %ebx" "\n" ++ "pop %edi" "\n" ++ "pop %esi" "\n" ++ "pop %ebp" "\n" ++ "ret" "\n" ++ ); ++} ++ ++#endif // OS(WINDOWS) && ENABLE(JIT) ++ + #endif // COMPILER(GCC) + + #if COMPILER(MSVC) +diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/ThirdParty/ANGLE/GNUmakefile.am webkitgtk-2.4.1/Source/ThirdParty/ANGLE/GNUmakefile.am +--- webkitgtk-2.4.1.old/Source/ThirdParty/ANGLE/GNUmakefile.am 2014-06-20 20:05:59 +0000 ++++ webkitgtk-2.4.1/Source/ThirdParty/ANGLE/GNUmakefile.am 2014-05-24 05:04:11 +0000 +@@ -80,7 +80,6 @@ libANGLE_la_SOURCES = \ + Source/ThirdParty/ANGLE/src/compiler/MMap.h \ + Source/ThirdParty/ANGLE/src/compiler/NodeSearch.h \ + Source/ThirdParty/ANGLE/src/compiler/osinclude.h \ +- Source/ThirdParty/ANGLE/src/compiler/ossource_posix.cpp \ + Source/ThirdParty/ANGLE/src/compiler/OutputESSL.cpp \ + Source/ThirdParty/ANGLE/src/compiler/OutputESSL.h \ + Source/ThirdParty/ANGLE/src/compiler/OutputGLSLBase.cpp \ +@@ -161,3 +160,11 @@ libANGLE_la_SOURCES = \ + Source/ThirdParty/ANGLE/src/compiler/VersionGLSL.h \ + Source/ThirdParty/ANGLE/src/third_party/compiler/ArrayBoundsClamper.cpp \ + Source/ThirdParty/ANGLE/src/third_party/compiler/ArrayBoundsClamper.h ++ ++if OS_WIN32 ++libANGLE_la_SOURCES += \ ++ Source/ThirdParty/ANGLE/src/compiler/ossource_win.cpp ++else ++libANGLE_la_SOURCES += \ ++ Source/ThirdParty/ANGLE/src/compiler/ossource_posix.cpp ++endif +diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/ThirdParty/ANGLE/src/compiler/ossource_win.cpp webkitgtk-2.4.1/Source/ThirdParty/ANGLE/src/compiler/ossource_win.cpp +--- webkitgtk-2.4.1.old/Source/ThirdParty/ANGLE/src/compiler/ossource_win.cpp 2014-07-12 16:07:30 +0000 ++++ webkitgtk-2.4.1/Source/ThirdParty/ANGLE/src/compiler/ossource_win.cpp 2014-05-24 05:04:11 +0000 +@@ -0,0 +1,57 @@ ++// ++// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style license that can be ++// found in the LICENSE file. ++// ++ ++#include "compiler/osinclude.h" ++// ++// This file contains contains the window's specific functions ++// ++ ++#if !defined(ANGLE_OS_WIN) ++#error Trying to build a windows specific file in a non windows build. ++#endif ++ ++ ++// ++// Thread Local Storage Operations ++// ++OS_TLSIndex OS_AllocTLSIndex() ++{ ++ DWORD dwIndex = TlsAlloc(); ++ if (dwIndex == TLS_OUT_OF_INDEXES) { ++ assert(0 && "OS_AllocTLSIndex(): Unable to allocate Thread Local Storage"); ++ return OS_INVALID_TLS_INDEX; ++ } ++ ++ return dwIndex; ++} ++ ++ ++bool OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue) ++{ ++ if (nIndex == OS_INVALID_TLS_INDEX) { ++ assert(0 && "OS_SetTLSValue(): Invalid TLS Index"); ++ return false; ++ } ++ ++ if (TlsSetValue(nIndex, lpvValue)) ++ return true; ++ else ++ return false; ++} ++ ++ ++bool OS_FreeTLSIndex(OS_TLSIndex nIndex) ++{ ++ if (nIndex == OS_INVALID_TLS_INDEX) { ++ assert(0 && "OS_SetTLSValue(): Invalid TLS Index"); ++ return false; ++ } ++ ++ if (TlsFree(nIndex)) ++ return true; ++ else ++ return false; ++} +diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WTF/GNUmakefile.list.am webkitgtk-2.4.1/Source/WTF/GNUmakefile.list.am +--- webkitgtk-2.4.1.old/Source/WTF/GNUmakefile.list.am 2014-05-18 16:44:48 +0000 ++++ webkitgtk-2.4.1/Source/WTF/GNUmakefile.list.am 2014-05-24 05:09:00 +0000 +@@ -256,3 +256,8 @@ wtf_sources += \ + Source/WTF/wtf/unicode/UnicodeMacrosFromICU.h \ + Source/WTF/wtf/unicode/icu/CollatorICU.cpp \ + Source/WTF/wtf/unicode/icu/UnicodeIcu.h ++ ++if TARGET_WIN32 ++wtf_sources += \ ++ Source/WTF/wtf/win/GdiObject.h ++endif # TARGET_WIN32 +diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WTF/wtf/Atomics.h webkitgtk-2.4.1/Source/WTF/wtf/Atomics.h +--- webkitgtk-2.4.1.old/Source/WTF/wtf/Atomics.h 2014-06-20 20:05:59 +0000 ++++ webkitgtk-2.4.1/Source/WTF/wtf/Atomics.h 2014-05-28 18:01:59 +0000 +@@ -260,7 +260,7 @@ inline void memoryBarrierBeforeUnlock() + inline bool weakCompareAndSwap(uint8_t* location, uint8_t expected, uint8_t newValue) + { + #if ENABLE(COMPARE_AND_SWAP) +-#if !OS(WINDOWS) && (CPU(X86) || CPU(X86_64)) ++#if !COMPILER(MSVC) && (CPU(X86) || CPU(X86_64)) + unsigned char result; + asm volatile( + "lock; cmpxchgb %3, %2\n\t" +diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WTF/wtf/MathExtras.h webkitgtk-2.4.1/Source/WTF/wtf/MathExtras.h +--- webkitgtk-2.4.1.old/Source/WTF/wtf/MathExtras.h 2014-06-20 20:05:59 +0000 ++++ webkitgtk-2.4.1/Source/WTF/wtf/MathExtras.h 2014-05-24 05:04:11 +0000 +@@ -67,6 +67,12 @@ const double piOverFourDouble = M_PI_4; + const float piOverFourFloat = static_cast<float>(M_PI_4); + #endif + ++#ifndef M_SQRT2 ++const double sqrtOfTwoDouble = 1.41421356237309504880; ++#else ++const double sqrtOfTwoDouble = M_SQRT2; ++#endif ++ + #if OS(DARWIN) + + // Work around a bug in the Mac OS X libc where ceil(-0.1) return +0. +diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WTF/wtf/Platform.h webkitgtk-2.4.1/Source/WTF/wtf/Platform.h +--- webkitgtk-2.4.1.old/Source/WTF/wtf/Platform.h 2014-06-20 20:05:59 +0000 ++++ webkitgtk-2.4.1/Source/WTF/wtf/Platform.h 2014-05-24 05:04:11 +0000 +@@ -594,8 +594,6 @@ + #define HAVE_ALIGNED_MALLOC 1 + #define HAVE_ISDEBUGGERPRESENT 1 + +-#include <WTF/WTFHeaderDetection.h> +- + #endif + + #if OS(WINDOWS) +diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WTF/wtf/threads/BinarySemaphore.h webkitgtk-2.4.1/Source/WTF/wtf/threads/BinarySemaphore.h +--- webkitgtk-2.4.1.old/Source/WTF/wtf/threads/BinarySemaphore.h 2014-05-18 16:44:58 +0000 ++++ webkitgtk-2.4.1/Source/WTF/wtf/threads/BinarySemaphore.h 2014-05-29 17:02:56 +0000 +@@ -41,12 +41,12 @@ public: + WTF_EXPORT_PRIVATE void signal(); + WTF_EXPORT_PRIVATE bool wait(double absoluteTime); + +-#if OS(WINDOWS) ++#if PLATFORM(WIN) + HANDLE event() const { return m_event; } + #endif + + private: +-#if OS(WINDOWS) ++#if PLATFORM(WIN) + HANDLE m_event; + #else + bool m_isSet; +diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WTF/wtf/win/GDIObject.h webkitgtk-2.4.1/Source/WTF/wtf/win/GDIObject.h +--- webkitgtk-2.4.1.old/Source/WTF/wtf/win/GDIObject.h 2014-07-12 06:21:32 +0000 ++++ webkitgtk-2.4.1/Source/WTF/wtf/win/GDIObject.h 2014-05-24 12:26:42 +0000 +@@ -0,0 +1,131 @@ ++/* ++ * Copyright (C) 2013 Apple Inc. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY ++ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ++ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ++ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ++ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ++ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR ++ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY ++ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#ifndef GDIObject_h ++#define GDIObject_h ++ ++#include <algorithm> ++#include <cstddef> ++#include <memory> ++#include <windows.h> ++#include <wtf/Assertions.h> ++#include <wtf/Noncopyable.h> ++ ++namespace WTF { ++ ++template<typename T> void deleteObject(T); ++ ++template<typename T> class GDIObject { ++ WTF_MAKE_NONCOPYABLE(GDIObject); ++public: ++ GDIObject() : m_object(0) { } ++ GDIObject(std::nullptr_t) : m_object(0) { } ++ ~GDIObject() { deleteObject<T>(m_object); } ++ ++ T get() const { return m_object; } ++ ++ void clear(); ++ T leak() WARN_UNUSED_RETURN; ++ ++ bool operator!() const { return !m_object; } ++ ++ // This conversion operator allows implicit conversion to bool but not to other integer types. ++ typedef const void* UnspecifiedBoolType; ++ operator UnspecifiedBoolType() const { return m_object ? reinterpret_cast<UnspecifiedBoolType>(&m_object) : 0; } ++ ++ GDIObject<T>& operator=(std::nullptr_t) { clear(); return *this; } ++ ++ GDIObject(GDIObject&&); ++ template<typename U> GDIObject(GDIObject<U>&&); ++ ++ GDIObject& operator=(GDIObject&&); ++ template<typename U> GDIObject& operator=(GDIObject<U>&&); ++ ++ void swap(GDIObject& o) { std::swap(m_object, o.m_object); } ++ ++private: ++ template<typename U> friend GDIObject<U> adoptGDIObject(U); ++ GDIObject(T object) : m_object(object) { } ++ ++ GDIObject<T>& operator=(T); ++ ++ T m_object; ++}; ++ ++template<typename T> inline void GDIObject<T>::clear() ++{ ++ T object = m_object; ++ m_object = 0; ++ deleteObject(object); ++} ++ ++template<typename T> inline T GDIObject<T>::leak() ++{ ++ T object = m_object; ++ m_object = 0; ++ return object; ++} ++ ++template<typename T> inline GDIObject<T>::GDIObject(GDIObject<T>&& other) ++ : m_object(other.leak()) ++{ ++} ++ ++template<typename T> inline GDIObject<T>& GDIObject<T>::operator=(GDIObject<T>&& other) ++{ ++ auto object = std::move(other); ++ swap(object); ++ return *this; ++} ++ ++template<typename T> inline GDIObject<T> adoptGDIObject(T object) ++{ ++ return GDIObject<T>(object); ++} ++ ++template<typename T> inline void swap(GDIObject<T>& a, GDIObject<T>& b) ++{ ++ a.swap(b); ++} ++ ++// Nearly all GDI types use the same DeleteObject call. ++template<typename T> inline void deleteObject(T object) ++{ ++ if (object) ++ ::DeleteObject(object); ++} ++ ++template<> inline void deleteObject<HDC>(HDC hdc) ++{ ++ if (hdc) ++ ::DeleteDC(hdc); ++} ++ ++} // namespace WTF ++ ++using WTF::GDIObject; ++using WTF::adoptGDIObject; ++ ++#endif // GDIObject_h +diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WebCore/GNUmakefile.list.am webkitgtk-2.4.1/Source/WebCore/GNUmakefile.list.am +--- webkitgtk-2.4.1.old/Source/WebCore/GNUmakefile.list.am 2014-06-20 20:05:59 +0000 ++++ webkitgtk-2.4.1/Source/WebCore/GNUmakefile.list.am 2014-05-24 05:09:00 +0000 +@@ -6252,9 +6252,11 @@ webcoregtk_sources += \ + Source/WebCore/platform/graphics/glx/GLContextGLX.h + endif # END USE_GLX + else ++if !TARGET_WIN32 + webcore_sources += \ + Source/WebCore/plugins/PluginPackageNone.cpp \ + Source/WebCore/plugins/PluginViewNone.cpp ++endif # !TARGET_WIN32 + endif # END TARGET_X11 + + if TARGET_X11_OR_WAYLAND +@@ -6281,9 +6283,12 @@ webcore_sources += \ + Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp \ + Source/WebCore/platform/graphics/win/GraphicsContextWin.cpp \ + Source/WebCore/platform/graphics/win/LocalWindowsContext.h \ ++ Source/WebCore/platform/graphics/win/SharedGDIObject.h \ + Source/WebCore/platform/graphics/win/TransformationMatrixWin.cpp \ + Source/WebCore/platform/win/BitmapInfo.cpp \ + Source/WebCore/platform/win/BitmapInfo.h \ ++ Source/WebCore/platform/win/GDIObjectCounter.cpp \ ++ Source/WebCore/platform/win/GDIObjectCounter.h \ + Source/WebCore/platform/win/SystemInfo.cpp \ + Source/WebCore/platform/win/SystemInfo.h \ + Source/WebCore/platform/win/WebCoreInstanceHandle.cpp \ +diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WebCore/bindings/scripts/preprocessor.pm webkitgtk-2.4.1/Source/WebCore/bindings/scripts/preprocessor.pm +--- webkitgtk-2.4.1.old/Source/WebCore/bindings/scripts/preprocessor.pm 2014-06-20 20:05:59 +0000 ++++ webkitgtk-2.4.1/Source/WebCore/bindings/scripts/preprocessor.pm 2014-05-24 05:04:11 +0000 +@@ -51,6 +51,8 @@ sub applyPreprocessor + $preprocessor = "/usr/sfw/bin/gcc"; + } elsif (-x "/usr/bin/clang") { + $preprocessor = "/usr/bin/clang"; ++ } elsif ($Config{osname} eq 'msys') { ++ $preprocessor = "gcc"; + } else { + $preprocessor = "/usr/bin/gcc"; + } +@@ -71,7 +73,7 @@ sub applyPreprocessor + @macros = map { "-D$_" } @macros; + + my $pid = 0; +- if ($Config{osname} eq "cygwin" || $Config{osname} eq 'MSWin32') { ++ if ($Config{osname} eq "cygwin" || $Config{osname} eq 'MSWin32' || $Config{osname} eq 'msys') { + # This call can fail if Windows rebases cygwin, so retry a few times until it succeeds. + for (my $tries = 0; !$pid && ($tries < 20); $tries++) { + eval { +diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WebCore/dom/make_names.pl webkitgtk-2.4.1/Source/WebCore/dom/make_names.pl +--- webkitgtk-2.4.1.old/Source/WebCore/dom/make_names.pl 2014-06-20 20:05:59 +0000 ++++ webkitgtk-2.4.1/Source/WebCore/dom/make_names.pl 2014-05-24 05:04:11 +0000 +@@ -69,6 +69,8 @@ if ($ENV{CC}) { + $gccLocation = "/usr/sfw/bin/gcc"; + } elsif ($Config::Config{"osname"} eq "darwin" && $ENV{SDKROOT}) { + chomp($gccLocation = `xcrun -find cc -sdk '$ENV{SDKROOT}'`); ++} elsif ($Config::Config{"osname"} eq "msys") { ++ $gccLocation = "gcc"; + } else { + $gccLocation = "/usr/bin/cc"; + } +diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WebCore/platform/graphics/FontPlatformData.h webkitgtk-2.4.1/Source/WebCore/platform/graphics/FontPlatformData.h +--- webkitgtk-2.4.1.old/Source/WebCore/platform/graphics/FontPlatformData.h 2014-06-20 20:05:59 +0000 ++++ webkitgtk-2.4.1/Source/WebCore/platform/graphics/FontPlatformData.h 2014-05-24 05:04:11 +0000 +@@ -62,7 +62,6 @@ typedef const struct __CTFont* CTFontRef + #include <wtf/text/StringImpl.h> + + #if PLATFORM(WIN) +-#include <wtf/win/GDIObject.h> + typedef struct HFONT__* HFONT; + #endif + +diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp webkitgtk-2.4.1/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp +--- webkitgtk-2.4.1.old/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp 2014-06-20 20:05:59 +0000 ++++ webkitgtk-2.4.1/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp 2014-05-24 05:04:11 +0000 +@@ -32,6 +32,7 @@ + #include <ft2build.h> + #include FT_TRUETYPE_TABLES_H + #include <wtf/text/WTFString.h> ++#include <wtf/MathExtras.h> + + #if !PLATFORM(EFL) + #include <gdk/gdk.h> +@@ -120,7 +121,7 @@ static void rotateCairoMatrixForVertical + // combination of rotation (R) and translation (T) applied on the + // horizontal matrix (H). V = H . R . T, where R rotates by -90 degrees + // and T translates by font size towards y axis. +- cairo_matrix_rotate(matrix, -M_PI_2); ++ cairo_matrix_rotate(matrix, -piOverTwoDouble); + cairo_matrix_translate(matrix, 0.0, 1.0); + } + +diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp webkitgtk-2.4.1/Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp +--- webkitgtk-2.4.1.old/Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp 2014-06-20 20:05:59 +0000 ++++ webkitgtk-2.4.1/Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp 2014-05-24 05:09:00 +0000 +@@ -32,6 +32,7 @@ + + #include <cairo-win32.h> + #include "GraphicsContextPlatformPrivateCairo.h" ++#include <wtf/win/GdiObject.h> + + using namespace std; + +diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WebCore/platform/gtk/FileSystemGtk.cpp webkitgtk-2.4.1/Source/WebCore/platform/gtk/FileSystemGtk.cpp +--- webkitgtk-2.4.1.old/Source/WebCore/platform/gtk/FileSystemGtk.cpp 2014-06-20 20:05:59 +0000 ++++ webkitgtk-2.4.1/Source/WebCore/platform/gtk/FileSystemGtk.cpp 2014-05-24 05:04:11 +0000 +@@ -23,6 +23,10 @@ + #include "config.h" + #include "FileSystem.h" + ++#if OS(WINDOWS) ++#include <windows.h> ++#endif ++ + #include "FileMetadata.h" + #include "UUID.h" + #include <gio/gio.h> +diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WebCore/rendering/RenderBlock.h webkitgtk-2.4.1/Source/WebCore/rendering/RenderBlock.h +--- webkitgtk-2.4.1.old/Source/WebCore/rendering/RenderBlock.h 2014-06-20 20:05:59 +0000 ++++ webkitgtk-2.4.1/Source/WebCore/rendering/RenderBlock.h 2014-05-24 15:52:01 +0000 +@@ -613,8 +613,8 @@ public: + unsigned m_beingDestroyed : 1; + unsigned m_hasMarkupTruncation : 1; + unsigned m_hasBorderOrPaddingLogicalWidthChanged : 1; +- enum LineLayoutPath { UndeterminedPath, SimpleLinesPath, LineBoxesPath, ForceLineBoxesPath }; + unsigned m_lineLayoutPath : 2; ++ enum LineLayoutPath { UndeterminedPath, SimpleLinesPath, LineBoxesPath, ForceLineBoxesPath }; + + // RenderRubyBase objects need to be able to split and merge, moving their children around + // (calling moveChildTo, moveAllChildrenTo, and makeChildrenNonInline). +diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp webkitgtk-2.4.1/Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp +--- webkitgtk-2.4.1.old/Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp 2014-06-20 20:05:59 +0000 ++++ webkitgtk-2.4.1/Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp 2014-05-24 05:04:11 +0000 +@@ -71,8 +71,8 @@ void RenderMathMLMenclose::computePrefer + size_t notationalValueSize = notationValues.size(); + for (size_t i = 0; i < notationalValueSize; i++) { + if (notationValues[i] == "circle") { +- m_minPreferredLogicalWidth = minPreferredLogicalWidth() * float(M_SQRT2); +- m_maxPreferredLogicalWidth = maxPreferredLogicalWidth() * float(M_SQRT2); ++ m_minPreferredLogicalWidth = minPreferredLogicalWidth() * float(sqrtOfTwoDouble); ++ m_maxPreferredLogicalWidth = maxPreferredLogicalWidth() * float(sqrtOfTwoDouble); + } + } + +@@ -86,7 +86,7 @@ void RenderMathMLMenclose::updateLogical + size_t notationalValueSize = notationValues.size(); + for (size_t i = 0; i < notationalValueSize; i++) + if (notationValues[i] == "circle") +- setLogicalHeight(logicalHeight() * float(M_SQRT2)); ++ setLogicalHeight(logicalHeight() * float(sqrtOfTwoDouble)); + } + + void RenderMathMLMenclose::paint(PaintInfo& info, const LayoutPoint& paintOffset) +diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/autotools/FindDependencies.m4 webkitgtk-2.4.1/Source/autotools/FindDependencies.m4 +--- webkitgtk-2.4.1.old/Source/autotools/FindDependencies.m4 2014-06-20 20:05:59 +0000 ++++ webkitgtk-2.4.1/Source/autotools/FindDependencies.m4 2014-05-24 05:04:11 +0000 +@@ -109,8 +109,14 @@ case "$host" in + UNICODE_LIBS="-licucore" + ;; + *-*-mingw*) +- UNICODE_CFLAGS="" +- UNICODE_LIBS="-licui18n -licuuc" ++ PKG_CHECK_MODULES(ICU, icu-i18n, ,) ++ if test "x$ICU_LIBS" = "x" ; then ++ UNICODE_CFLAGS="" ++ UNICODE_LIBS="-licui18n -licuuc" ++ else ++ UNICODE_CFLAGS="$ICU_CFLAGS" ++ UNICODE_LIBS="$ICU_LIBS" ++ fi + AC_CHECK_HEADERS([unicode/uchar.h], [], [AC_MSG_ERROR([Could not find ICU headers.])]) + ;; + *) +@@ -455,7 +461,14 @@ if test "$found_opengl" = "yes"; then + OPENGL_LIBS="-lGLESv2" + else + acceleration_description="$acceleration_description (gl" +- OPENGL_LIBS="-lGL" ++ case "$host" in ++ *-*-mingw*) ++ OPENGL_LIBS="-lopengl32" ++ ;; ++ *) ++ OPENGL_LIBS="-lGL" ++ ;; ++ esac + fi + if test "$enable_egl" = "yes"; then + acceleration_description="$acceleration_description, egl" +diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/autotools/ReadCommandLineArguments.m4 webkitgtk-2.4.1/Source/autotools/ReadCommandLineArguments.m4 +--- webkitgtk-2.4.1.old/Source/autotools/ReadCommandLineArguments.m4 2014-06-20 20:05:59 +0000 ++++ webkitgtk-2.4.1/Source/autotools/ReadCommandLineArguments.m4 2014-05-24 05:04:11 +0000 +@@ -83,7 +83,7 @@ AM_WEBKIT_DETERMINE_BUILD_TARGET_STATUS( + AM_WEBKIT_DETERMINE_BUILD_TARGET_STATUS([directfb], [enable_directfb_target], [build_targets]) + + AC_MSG_CHECKING([whether to build for the Win32 target]) +-AC_MSG_RESULT([$enable_wayland_target]) ++AC_MSG_RESULT([$enable_win32_target]) + + AC_MSG_CHECKING([whether to enable spellcheck support]) + AC_ARG_ENABLE([spellcheck], diff --git a/win32/patches/yelp.m4 b/win32/patches/yelp.m4 new file mode 100644 index 0000000000..adbbdb53f4 --- /dev/null +++ b/win32/patches/yelp.m4 @@ -0,0 +1,194 @@ +AC_DEFUN([YELP_HELP_INIT], +[ +AC_REQUIRE([AC_PROG_LN_S]) +m4_pattern_allow([AM_V_at]) +m4_pattern_allow([AM_V_GEN]) +m4_pattern_allow([AM_DEFAULT_VERBOSITY]) +AC_ARG_WITH([help-dir], + AC_HELP_STRING([--with-help-dir=DIR], + [path where help files are installed]),, + [with_help_dir='${datadir}/help']) +HELP_DIR="$with_help_dir" +AC_SUBST(HELP_DIR) + +dnl AC_ARG_VAR([ITSTOOL], [Path to the `itstool` command]) +dnl AC_CHECK_PROG([ITSTOOL], [itstool], [itstool]) +dnl if test x"$ITSTOOL" = x; then +dnl AC_MSG_ERROR([itstool not found]) +dnl fi + +AC_ARG_VAR([XMLLINT], [Path to the `xmllint` command]) +AC_CHECK_PROG([XMLLINT], [xmllint], [xmllint]) +if test x"$XMLLINT" = x; then + AC_MSG_ERROR([xmllint not found]) +fi + +YELP_HELP_RULES=' +HELP_ID ?= +HELP_POT ?= +HELP_FILES ?= +HELP_EXTRA ?= +HELP_MEDIA ?= +HELP_LINGUAS ?= + +_HELP_LINGUAS = $(if $(filter environment,$(origin LINGUAS)),$(filter $(LINGUAS),$(HELP_LINGUAS)),$(HELP_LINGUAS)) +_HELP_POTFILE = $(if $(HELP_POT),$(HELP_POT),$(if $(HELP_ID),$(HELP_ID).pot)) +_HELP_POFILES = $(if $(HELP_ID),$(foreach lc,$(_HELP_LINGUAS),$(lc)/$(lc).po)) +_HELP_MOFILES = $(patsubst %.po,%.mo,$(_HELP_POFILES)) +_HELP_C_FILES = $(foreach f,$(HELP_FILES),C/$(f)) +_HELP_C_EXTRA = $(foreach f,$(HELP_EXTRA),C/$(f)) +_HELP_C_MEDIA = $(foreach f,$(HELP_MEDIA),C/$(f)) +_HELP_LC_FILES = $(foreach lc,$(_HELP_LINGUAS),$(foreach f,$(HELP_FILES),$(lc)/$(f))) +_HELP_LC_STAMPS = $(foreach lc,$(_HELP_LINGUAS),$(lc)/$(lc).stamp) + +_HELP_DEFAULT_V = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1) +_HELP_V = $(if $(V),$(V),$(_HELP_DEFAULT_V)) +_HELP_LC_VERBOSE = $(_HELP_LC_VERBOSE_$(_HELP_V)) +_HELP_LC_VERBOSE_ = $(_HELP_LC_VERBOSE_$(_HELP_DEFAULT_V)) +_HELP_LC_VERBOSE_0 = @echo " GEN "$(dir [$]@); + +all: $(_HELP_C_FILES) $(_HELP_C_EXTRA) $(_HELP_C_MEDIA) $(_HELP_LC_FILES) $(_HELP_POFILES) + +.PHONY: pot +pot: $(_HELP_POTFILE) +$(_HELP_POTFILE): $(_HELP_C_FILES) $(_HELP_C_EXTRA) $(_HELP_C_MEDIA) + $(AM_V_GEN)$(ITSTOOL) -o "[$]@" $(_HELP_C_FILES) + +.PHONY: repo +repo: $(_HELP_POTFILE) + $(AM_V_at)for po in $(_HELP_POFILES); do \ + if test "x[$](_HELP_V)" = "x0"; then echo " GEN $${po}"; fi; \ + msgmerge -q -o "$${po}" "$${po}" "$(_HELP_POTFILE)"; \ + done + +$(_HELP_POFILES): + $(AM_V_at)if ! test -d "$(dir [$]@)"; then mkdir "$(dir [$]@)"; fi + $(AM_V_at)if test ! -f "[$]@" -a -f "$(srcdir)/[$]@"; then cp "$(srcdir)/[$]@" "[$]@"; fi + $(AM_V_GEN)if ! test -f "[$]@"; then \ + (cd "$(dir [$]@)" && \ + $(ITSTOOL) -o "$(notdir [$]@).tmp" $(_HELP_C_FILES) && \ + mv "$(notdir [$]@).tmp" "$(notdir [$]@)"); \ + else \ + (cd "$(dir [$]@)" && \ + $(ITSTOOL) -o "$(notdir [$]@).tmp" $(_HELP_C_FILES) && \ + msgmerge -o "$(notdir [$]@)" "$(notdir [$]@)" "$(notdir [$]@).tmp" && \ + rm "$(notdir [$]@).tmp"); \ + fi + +$(_HELP_MOFILES): %.mo: %.po + $(AM_V_at)if ! test -d "$(dir [$]@)"; then mkdir "$(dir [$]@)"; fi + $(AM_V_GEN)msgfmt -o "[$]@" "$<" + +$(_HELP_LC_FILES): $(_HELP_LINGUAS) +$(_HELP_LINGUAS): $(_HELP_LC_STAMPS) +$(_HELP_LC_STAMPS): %.stamp: %.mo +$(_HELP_LC_STAMPS): $(_HELP_C_FILES) $(_HELP_C_EXTRA) + $(AM_V_at)if ! test -d "$(dir [$]@)"; then mkdir "$(dir [$]@)"; fi + $(_HELP_LC_VERBOSE)if test -d "C"; then d="../"; else d="$(abs_srcdir)/"; fi; \ + mo="$(dir [$]@)$(patsubst %/$(notdir [$]@),%,[$]@).mo"; \ + if test -f "$${mo}"; then mo="../$${mo}"; else mo="$(abs_srcdir)/$${mo}"; fi; \ + (cd "$(dir [$]@)" && $(ITSTOOL) -m "$${mo}" $(foreach f,$(_HELP_C_FILES),$${d}/$(f))) && \ + touch "[$]@" + +.PHONY: clean-help +mostlyclean-am: $(if $(HELP_ID),clean-help) +clean-help: + rm -f $(_HELP_LC_FILES) $(_HELP_LC_STAMPS) $(_HELP_MOFILES) + +EXTRA_DIST ?= +EXTRA_DIST += $(_HELP_C_EXTRA) $(_HELP_C_MEDIA) +EXTRA_DIST += $(foreach lc,$(HELP_LINGUAS),$(lc)/$(lc).stamp) +EXTRA_DIST += $(foreach lc,$(HELP_LINGUAS),$(lc)/$(lc).po) +EXTRA_DIST += $(foreach f,$(HELP_MEDIA),$(foreach lc,$(HELP_LINGUAS),$(wildcard $(lc)/$(f)))) + +distdir: distdir-help-files +distdir-help-files: + @for lc in C $(HELP_LINGUAS); do \ + $(MKDIR_P) "$(distdir)/$$lc"; \ + for file in $(HELP_FILES); do \ + if test -f "$$lc/$$file"; then d=./; else d=$(srcdir)/; fi; \ + cp -p "$$d$$lc/$$file" "$(distdir)/$$lc/" || exit 1; \ + done; \ + done; \ + +.PHONY: check-help +check: check-help +check-help: + for lc in C $(_HELP_LINGUAS); do \ + if test -d "$$lc"; \ + then d=; \ + xmlpath="$$lc"; \ + else \ + d="$(srcdir)/"; \ + xmlpath="$$lc:$(srcdir)/$$lc"; \ + fi; \ + for page in $(HELP_FILES); do \ + echo "$(XMLLINT) --noout --noent --path $$xmlpath --xinclude $$d$$lc/$$page"; \ + $(XMLLINT) --noout --noent --path "$$xmlpath" --xinclude "$$d$$lc/$$page"; \ + done; \ + done + + +.PHONY: install-help +install-data-am: $(if $(HELP_ID),install-help) +install-help: + @for lc in C $(_HELP_LINGUAS); do \ + $(mkinstalldirs) "$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)" || exit 1; \ + done + @for lc in C $(_HELP_LINGUAS); do for f in $(HELP_FILES); do \ + if test -f "$$lc/$$f"; then d=; else d="$(srcdir)/"; fi; \ + helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ + if ! test -d "$$helpdir"; then $(mkinstalldirs) "$$helpdir"; fi; \ + echo "$(INSTALL_DATA) $$d$$lc/$$f $$helpdir`basename $$f`"; \ + $(INSTALL_DATA) "$$d$$lc/$$f" "$$helpdir`basename $$f`" || exit 1; \ + done; done + @for f in $(_HELP_C_EXTRA); do \ + lc=`dirname "$$f"`; lc=`basename "$$lc"`; \ + if test -f "$$f"; then d=; else d="$(srcdir)/"; fi; \ + helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ + if ! test -d "$$helpdir"; then $(mkinstalldirs) "$$helpdir"; fi; \ + echo "$(INSTALL_DATA) $$d$$f $$helpdir`basename $$f`"; \ + $(INSTALL_DATA) "$$d$$f" "$$helpdir`basename $$f`" || exit 1; \ + done + @for f in $(HELP_MEDIA); do \ + for lc in C $(_HELP_LINGUAS); do \ + if test -f "$$lc$$f"; then d=; else d="$(srcdir)/"; fi; \ + helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ + mdir=`dirname "$$f"`; \ + if test "x$mdir" = "x."; then mdir=""; fi; \ + if ! test -d "$$helpdir$$mdir"; then $(mkinstalldirs) "$$helpdir$$mdir"; fi; \ + if test -f "$$d$$lc/$$f"; then \ + echo "$(INSTALL_DATA) $$d$$lc/$$f $$helpdir$$f"; \ + $(INSTALL_DATA) "$$d$$lc/$$f" "$$helpdir$$f" || exit 1; \ + elif test "x$$lc" != "xC"; then \ + echo "$(LN_S) -f $(HELP_DIR)/C/$(HELP_ID)/$$f $$helpdir$$f"; \ + $(LN_S) -f "$(HELP_DIR)/C/$(HELP_ID)/$$f" "$$helpdir$$f" || exit 1; \ + fi; \ + done; \ + done + +.PHONY: uninstall-help +uninstall-am: $(if $(HELP_ID),uninstall-help) +uninstall-help: + for lc in C $(_HELP_LINGUAS); do for f in $(HELP_FILES); do \ + helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ + echo "rm -f $$helpdir`basename $$f`"; \ + rm -f "$$helpdir`basename $$f`"; \ + done; done + @for f in $(_HELP_C_EXTRA); do \ + lc=`dirname "$$f"`; lc=`basename "$$lc"`; \ + helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ + echo "rm -f $$helpdir`basename $$f`"; \ + rm -f "$$helpdir`basename $$f`"; \ + done + @for f in $(HELP_MEDIA); do \ + for lc in C $(_HELP_LINGUAS); do \ + helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ + echo "rm -f $$helpdir$$f"; \ + rm -f "$$helpdir$$f"; \ + done; \ + done; +' +AC_SUBST([YELP_HELP_RULES]) +m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([YELP_HELP_RULES])]) +]) diff --git a/win32/readme.txt b/win32/readme.txt new file mode 100644 index 0000000000..e8aa73bd82 --- /dev/null +++ b/win32/readme.txt @@ -0,0 +1,53 @@ +************************************************
+*** Caution - this work is still in progress ***
+************************************************
+
+These are steps how to setup local envinronment to build evolution
+and its dependencies from sources.
+
+a) http://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download
+ Destination folder: C:\MinGW
+
+ Install packages:
+ - Basic setup:
+ - mingw-developer-toolkit
+ - msys-base
+
+ - All Packages
+ - msys-patch
+ - msys-perl
+ - msys-unzip
+ - msys-wget
+
+b) http://sourceforge.net/projects/mingwbuilds/files/mingw-builds-install/mingw-builds-install.exe/download
+ Version: 4.8.1
+ Architecture: x32
+ Threads: posix
+ Exception: dwarf
+ Build revision: 5
+
+ Destination folder: C:\MinGW64
+
+c) Replace MinGW version of gcc & co. with the MinGW64 version (mainly for webkitgtk)
+ - delete all but 'msys' directories in C:\MinGW\
+ - move all directories from C:\MinGW64\mingw32\ to C:MinGW\
+
+d) http://www.python.org/ftp/python/2.7.6/python-2.7.6.msi
+ Destination folder: C:\Python27
+
+e) Add to PATH: C:\Python27;C:\MinGW\bin
+
+f) go to evolution checkout, into evolution\win32\ subfolder and execute:
+ $ source setup-env
+ which setups build environment. This can take some addition
+ parameters, see the top of setup-env for more information.
+
+g) build evolution from sources with:
+ $ make evolution
+ or with some additional software:
+ $ make addons
+
+h) Make sure dbus-daemon is running before evolution is run, which can
+ be done with $PREFIX\deps\bin\dbus-launch.exe
+
+i) Run 'evolution'
diff --git a/win32/session-local.conf.in b/win32/session-local.conf.in new file mode 100644 index 0000000000..a2b16f49b8 --- /dev/null +++ b/win32/session-local.conf.in @@ -0,0 +1,4 @@ +<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-Bus Bus Configuration 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> +<busconfig> + <servicedir>@BUILD_ROOT_EVO@</servicedir> +</busconfig> diff --git a/win32/setup-env b/win32/setup-env new file mode 100755 index 0000000000..1b0cde5140 --- /dev/null +++ b/win32/setup-env @@ -0,0 +1,76 @@ +#!/bin/bash + +############################################################################## +# +# Setup a build environment. This can take up to two parameters: +# argv[1] - build type, can be 'stable' or 'master'; anything else than +# 'stable' means 'master' build in the ./Makefile, which uses +# relative path for build and if the respective folder is not +# downloaded yet, then it creates a checkout from the master git +# branch (hence the 'master' build name). There can be built +# anything as master, the only condition is that the directory +# with the sources is in place. +# argv[2] - use "debug" to build with debug options; using 'debug' build type +# also uses debug build options +# +############################################################################## + +if [ "$BUILD_ROOT_OVERRIDE" = "" ] ; then + export BUILD_ROOT_BASE=/build/local +else + export BUILD_ROOT_BASE=$BUILD_ROOT_OVERRIDE +fi + +# Optional parameter to compile other than 'master' or 'stable' releases; +# empty value means 'stable', anything else means 'master' type in Makefile +export EVO_BUILD_TYPE=$1 + +export BUILD_ROOT_DEPS=$BUILD_ROOT_BASE/deps +if [ "x$EVO_BUILD_TYPE" != "x" -a "x$EVO_BUILD_TYPE" != "xstable" ] ; then + # Build custom builds like from 'master', aka from relative path checkouts + export EVO_BUILD_SUFFIX="-master" + export BUILD_ROOT_EVO="$BUILD_ROOT_BASE/evo-$EVO_BUILD_TYPE" +else + # Build from tarballs + export EVO_BUILD_SUFFIX="-stable" + export BUILD_ROOT_EVO=$BUILD_ROOT_BASE/evo +fi + +if [ "$PATH_DEFAULT" = "" ] ; then + export PATH_DEFAULT=$PATH +fi + +export PATH=$BUILD_ROOT_DEPS/bin:$BUILD_ROOT_EVO/bin:$PATH_DEFAULT + +# Compile against locally installed software. +export LD_LIBRARY_PATH=$BUILD_ROOT_DEPS/lib:$BUILD_ROOT_EVO/lib:/lib +export PKG_CONFIG_PATH=$BUILD_ROOT_DEPS/lib/pkgconfig:$BUILD_ROOT_EVO/lib/pkgconfig:$BUILD_ROOT_DEPS/share/pkgconfig:$BUILD_ROOT_EVO/share/pkgconfig +export ACLOCAL_FLAGS="-I $BUILD_ROOT_DEPS/share/aclocal -I $BUILD_ROOT_EVO/share/aclocal -I /share/aclocal" +export GSETTINGS_SCHEMA_DIR=$BUILD_ROOT_DEPS/share/glib-2.0/schemas:$BUILD_ROOT_EVO/share/glib-2.0/schemas +if [ "$1" = "debug" -o "$2" = "debug" ] ; then + export CFLAGS="$CFLAGS -g -O0 -Wall -DMSVCRT_VERSION=710" +else + export CFLAGS="$CFLAGS -DMSVCRT_VERSION=710" +fi +export CPPFLAGS="$CPPFLAGS -I$BUILD_ROOT_DEPS/include -I$BUILD_ROOT_EVO/include -I/include" +export LDFLAGS="$LDFLAGS -L$BUILD_ROOT_DEPS/lib -L$BUILD_ROOT_EVO/lib -L/lib" + +mkdir -p $BUILD_ROOT_DEPS/bin 2>/dev/null +mkdir -p $BUILD_ROOT_DEPS/include 2>/dev/null +mkdir -p $BUILD_ROOT_DEPS/lib 2>/dev/null +mkdir -p $BUILD_ROOT_DEPS/share/aclocal 2>/dev/null +mkdir -p $BUILD_ROOT_DEPS/etc/dbus-1/session.d 2>/dev/null +#mkdir -p $BUILD_ROOT_DEPS/share/dbus-1 2>/dev/null + +mkdir -p $BUILD_ROOT_EVO/bin 2>/dev/null +mkdir -p $BUILD_ROOT_EVO/include 2>/dev/null +mkdir -p $BUILD_ROOT_EVO/lib 2>/dev/null +mkdir -p $BUILD_ROOT_EVO/share/aclocal 2>/dev/null +#mkdir -p $BUILD_ROOT_EVO/share/dbus-1 2>/dev/null + +#rm /usr/local/share/dbus-1 2>/dev/null +#ln -s $BUILD_ROOT_DEPS/share/dbus-1 /usr/local/share/dbus-1 + +if [ -f "session-local.conf.in" ] ; then + cat session-local.conf.in | sed 's|@BUILD_ROOT_EVO@|'$BUILD_ROOT_EVO'/share/dbus-1/services|g' >$BUILD_ROOT_DEPS/etc/dbus-1/session.d/session-local.conf +fi |