Fix 3.0.0 compilation for win32, switch gtk (and others) runtimes from gnome.org to opensuse build service

Thu, 04 Apr 2013 01:21:30 +0200

author
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
date
Thu, 04 Apr 2013 01:21:30 +0200
changeset 33854
5744cfb1c3d1
parent 33852
368feedc80cf
child 33855
9d172d15a45f

Fix 3.0.0 compilation for win32, switch gtk (and others) runtimes from gnome.org to opensuse build service

Makefile.mingw file | annotate | diff | comparison | revisions
libpurple/Makefile.mingw file | annotate | diff | comparison | revisions
libpurple/http.c file | annotate | diff | comparison | revisions
libpurple/plugins/tcl/tcl_cmds.c file | annotate | diff | comparison | revisions
libpurple/protocols/gg/Makefile.mingw file | annotate | diff | comparison | revisions
libpurple/protocols/gg/status.c file | annotate | diff | comparison | revisions
libpurple/win32/global.mak file | annotate | diff | comparison | revisions
pidgin/Makefile.mingw file | annotate | diff | comparison | revisions
pidgin/plugins/Makefile.mingw file | annotate | diff | comparison | revisions
pidgin/plugins/disco/Makefile.mingw file | annotate | diff | comparison | revisions
pidgin/plugins/perl/common/Makefile.mingw file | annotate | diff | comparison | revisions
pidgin/plugins/ticker/Makefile.mingw file | annotate | diff | comparison | revisions
pidgin/plugins/win32/transparency/Makefile.mingw file | annotate | diff | comparison | revisions
pidgin/plugins/win32/winprefs/Makefile.mingw file | annotate | diff | comparison | revisions
pidgin/win32/nsis/generate_gtk_zip.sh file | annotate | diff | comparison | revisions
pidgin/win32/nsis/rpm2zip.sh file | annotate | diff | comparison | revisions
--- a/Makefile.mingw	Wed Apr 03 23:15:20 2013 +0200
+++ b/Makefile.mingw	Thu Apr 04 01:21:30 2013 +0200
@@ -31,7 +31,7 @@
     exit; \
 }' VERSION)
 
-GTK_INSTALL_VERSION = 2.16.6.1
+GTK_INSTALL_VERSION = 2.24.14.0
 
 authenticode_sign = $(MONO_SIGNCODE) \
 		    -spc "$(SIGNCODE_SPC)" -v "$(SIGNCODE_PVK)" \
--- a/libpurple/Makefile.mingw	Wed Apr 03 23:15:20 2013 +0200
+++ b/libpurple/Makefile.mingw	Thu Apr 04 01:21:30 2013 +0200
@@ -33,9 +33,11 @@
 			-I$(GTK_TOP)/include \
 			-I$(GTK_TOP)/include/glib-2.0 \
 			-I$(GTK_TOP)/lib/glib-2.0/include \
+			-I$(JSON_GLIB_TOP)/include/json-glib-1.0 \
 			-I$(LIBXML2_TOP)/include/libxml2
 
 LIB_PATHS +=		-L$(GTK_TOP)/lib \
+			-L$(JSON_GLIB_TOP)/lib \
 			-L$(LIBXML2_TOP)/lib
 
 ##
@@ -63,15 +65,19 @@
 			dnssrv.c \
 			eventloop.c \
 			ft.c \
+			http.c \
 			idle.c \
 			imgstore.c \
 			log.c \
+			media/candidate.c \
+			media/enum-types.c \
 			mediamanager.c \
 			media.c \
 			mime.c \
 			nat-pmp.c \
 			network.c \
 			notify.c \
+			obsolete.c \
 			ntlm.c \
 			plugin.c \
 			pluginpref.c \
@@ -120,7 +126,8 @@
 		-lgmodule-2.0 \
 		-lintl \
 		-lws2_32 \
-		-lxml2
+		-lxml2 \
+		-ljson-glib-1.0
 
 include $(PIDGIN_COMMON_RULES)
 
--- a/libpurple/http.c	Wed Apr 03 23:15:20 2013 +0200
+++ b/libpurple/http.c	Thu Apr 04 01:21:30 2013 +0200
@@ -27,6 +27,7 @@
 #include "http.h"
 
 #include "internal.h"
+#include "glibcompat.h"
 
 #include "debug.h"
 #include "ntlm.h"
--- a/libpurple/plugins/tcl/tcl_cmds.c	Wed Apr 03 23:15:20 2013 +0200
+++ b/libpurple/plugins/tcl/tcl_cmds.c	Thu Apr 04 01:21:30 2013 +0200
@@ -1532,7 +1532,8 @@
 
 	switch (cmd) {
 	case CMD_STATUS_ATTR:
-#if !(defined PURPLE_DISABLE_DEPRECATED)
+# if (0)
+/* #if !(defined PURPLE_DISABLE_DEPRECATED) */
 		if (objc != 4 && objc != 5) {
 			Tcl_WrongNumArgs(interp, 2, objv, "status attr_id ?value?");
 			return TCL_ERROR;
--- a/libpurple/protocols/gg/Makefile.mingw	Wed Apr 03 23:15:20 2013 +0200
+++ b/libpurple/protocols/gg/Makefile.mingw	Thu Apr 04 01:21:30 2013 +0200
@@ -56,12 +56,28 @@
 	lib/pubdir50.c \
 	lib/resolver.c \
 	lib/sha1.c \
+	utils.c \
+	confer.c \
 	buddylist.c \
-	confer.c \
 	gg.c \
-	search.c \
-	utils.c \
-	resolver-purple.c
+	resolver-purple.c \
+	image.c \
+	account.c \
+	deprecated.c \
+	purplew.c \
+	libgaduw.c \
+	avatar.c \
+	libgadu-events.c \
+	roster.c \
+	validator.c \
+	xml.c \
+	multilogon.c \
+	status.c \
+	servconn.c \
+	pubdir-prpl.c \
+	oauth/oauth.c \
+	oauth/oauth-parameter.c \
+	oauth/oauth-purple.c
 
 OBJECTS = $(C_SRC:%.c=%.o)
 
@@ -72,7 +88,8 @@
 			-lglib-2.0 \
 			-lintl \
 			-lpurple \
-			-lws2_32
+			-lws2_32 \
+			-lz
 
 include $(PIDGIN_COMMON_RULES)
 
--- a/libpurple/protocols/gg/status.c	Wed Apr 03 23:15:20 2013 +0200
+++ b/libpurple/protocols/gg/status.c	Thu Apr 04 01:21:30 2013 +0200
@@ -292,7 +292,7 @@
 		sleep_time *= 2;
 	}
 	*/
-	usleep(100000);
+	g_usleep(100000);
 	
 	g_free(msg);
 }
--- a/libpurple/win32/global.mak	Wed Apr 03 23:15:20 2013 +0200
+++ b/libpurple/win32/global.mak	Thu Apr 04 01:21:30 2013 +0200
@@ -12,10 +12,11 @@
 WIN32_DEV_TOP ?= $(PIDGIN_TREE_TOP)/../win32-dev
 GTKSPELL_TOP ?= $(WIN32_DEV_TOP)/gtkspell-2.0.16
 ENCHANT_TOP ?= $(WIN32_DEV_TOP)/enchant_1.6.0_win32
-GTK_TOP ?= $(WIN32_DEV_TOP)/gtk_2_0-2.14
+GTK_TOP ?= $(WIN32_DEV_TOP)/gtk_2_0-2.24
 GTK_BIN ?= $(GTK_TOP)/bin
 BONJOUR_TOP ?= $(WIN32_DEV_TOP)/Bonjour_SDK
-LIBXML2_TOP ?= $(WIN32_DEV_TOP)/libxml2-2.9.0
+JSON_GLIB_TOP ?= $(WIN32_DEV_TOP)/json-glib-0.14
+LIBXML2_TOP ?= $(WIN32_DEV_TOP)/libxml2-2.8.0
 MEANWHILE_TOP ?= $(WIN32_DEV_TOP)/meanwhile-1.0.2_daa3
 NSS_TOP ?= $(WIN32_DEV_TOP)/nss-3.14.3-nspr-4.9.5
 PERL_LIB_TOP ?= $(WIN32_DEV_TOP)/perl-5.10.0
@@ -24,6 +25,8 @@
 GSTREAMER_TOP ?= $(WIN32_DEV_TOP)/gstreamer-0.10.13
 GCC_SSP_TOP ?= $(shell dirname $(shell which $(CC)))
 CYRUS_SASL_TOP ?= $(WIN32_DEV_TOP)/cyrus-sasl-2.1.25
+WEBKITGTK_TOP ?= $(WIN32_DEV_TOP)/libwebkitgtk-1.10
+LIBSOUP_TOP ?= $(WIN32_DEV_TOP)/libsoup-2.36
 
 # Where we installing this stuff to?
 PIDGIN_INSTALL_DIR := $(PIDGIN_TREE_TOP)/win32-install-dir
--- a/pidgin/Makefile.mingw	Wed Apr 03 23:15:20 2013 +0200
+++ b/pidgin/Makefile.mingw	Thu Apr 04 01:21:30 2013 +0200
@@ -39,10 +39,14 @@
 			-I$(GTK_TOP)/include/pango-1.0 \
 			-I$(GTK_TOP)/include/atk-1.0 \
 			-I$(GTK_TOP)/include/cairo \
+			-I$(GTK_TOP)/include/gdk-pixbuf-2.0 \
 			-I$(GTK_TOP)/lib/gtk-2.0/include \
-			-I$(GTKSPELL_TOP)/include/gtkspell-2.0
+			-I$(GTKSPELL_TOP)/include/gtkspell-2.0 \
+			-I$(LIBSOUP_TOP)/include/libsoup-2.4 \
+			-I$(WEBKITGTK_TOP)/include/webkitgtk-1.0
 
 LIB_PATHS +=		-L$(GTK_TOP)/lib \
+			-L$(WEBKITGTK_TOP)/lib \
 			-L$(PURPLE_TOP) \
 			-L$(PIDGIN_TOP)
 
@@ -129,7 +133,8 @@
 		-lgdk-win32-2.0 \
 		-lgdk_pixbuf-2.0 \
 		-lgdi32 \
-		-lwinmm
+		-lwinmm \
+		-lwebkitgtk-1.0
 
 include $(PIDGIN_COMMON_RULES)
 
--- a/pidgin/plugins/Makefile.mingw	Wed Apr 03 23:15:20 2013 +0200
+++ b/pidgin/plugins/Makefile.mingw	Thu Apr 04 01:21:30 2013 +0200
@@ -26,8 +26,11 @@
 			-I$(GTK_TOP)/include/pango-1.0 \
 			-I$(GTK_TOP)/include/atk-1.0 \
 			-I$(GTK_TOP)/include/cairo \
+			-I$(GTK_TOP)/include/gdk-pixbuf-2.0 \
 			-I$(GTK_TOP)/lib/glib-2.0/include \
 			-I$(GTK_TOP)/lib/gtk-2.0/include \
+			-I$(LIBSOUP_TOP)/include/libsoup-2.4 \
+			-I$(WEBKITGTK_TOP)/include/webkitgtk-1.0 \
 			-I$(PIDGIN_TREE_TOP) \
 			-I$(PURPLE_TOP) \
 			-I$(PURPLE_TOP)/win32 \
@@ -35,6 +38,7 @@
 			-I$(PIDGIN_TOP)/win32
 
 LIB_PATHS +=		-L$(GTK_TOP)/lib \
+			-L$(WEBKITGTK_TOP)/lib \
 			-L$(PURPLE_TOP) \
 			-L$(PIDGIN_TOP)
 
@@ -51,6 +55,7 @@
 			-lcairo \
 			-lintl \
 			-lws2_32 \
+			-lwebkitgtk-1.0 \
 			-lpurple \
 			-lpidgin
 
@@ -101,7 +106,7 @@
 		spellchk.dll \
 		themeedit.dll \
 		timestamp_format.dll \
-		timestamp.dll \
+		webkit.dll \
 		xmppconsole.dll
 
 ##
--- a/pidgin/plugins/disco/Makefile.mingw	Wed Apr 03 23:15:20 2013 +0200
+++ b/pidgin/plugins/disco/Makefile.mingw	Thu Apr 04 01:21:30 2013 +0200
@@ -19,6 +19,7 @@
 			-I$(GTK_TOP)/include/pango-1.0 \
 			-I$(GTK_TOP)/include/atk-1.0 \
 			-I$(GTK_TOP)/include/cairo \
+			-I$(GTK_TOP)/include/gdk-pixbuf-2.0 \
 			-I$(GTK_TOP)/lib/glib-2.0/include \
 			-I$(GTK_TOP)/lib/gtk-2.0/include \
 			-I$(PURPLE_TOP) \
--- a/pidgin/plugins/perl/common/Makefile.mingw	Wed Apr 03 23:15:20 2013 +0200
+++ b/pidgin/plugins/perl/common/Makefile.mingw	Thu Apr 04 01:21:30 2013 +0200
@@ -28,8 +28,11 @@
 			-I$(GTK_TOP)/include/glib-2.0 \
 			-I$(GTK_TOP)/include/gtk-2.0 \
 			-I$(GTK_TOP)/include/pango-1.0 \
+			-I$(GTK_TOP)/include/gdk-pixbuf-2.0 \
 			-I$(GTK_TOP)/lib/glib-2.0/include \
 			-I$(GTK_TOP)/lib/gtk-2.0/include \
+			-I$(LIBSOUP_TOP)/include/libsoup-2.4 \
+			-I$(WEBKITGTK_TOP)/include/webkitgtk-1.0 \
 			-I$(PERL_LIB_TOP)/CORE
 
 LIB_PATHS += 		-L$(PERL_LIB_TOP) \
--- a/pidgin/plugins/ticker/Makefile.mingw	Wed Apr 03 23:15:20 2013 +0200
+++ b/pidgin/plugins/ticker/Makefile.mingw	Thu Apr 04 01:21:30 2013 +0200
@@ -19,6 +19,7 @@
 			-I$(GTK_TOP)/include/pango-1.0 \
 			-I$(GTK_TOP)/include/atk-1.0 \
 			-I$(GTK_TOP)/include/cairo \
+			-I$(GTK_TOP)/include/gdk-pixbuf-2.0 \
 			-I$(GTK_TOP)/lib/glib-2.0/include \
 			-I$(GTK_TOP)/lib/gtk-2.0/include \
 			-I$(PURPLE_TOP) \
--- a/pidgin/plugins/win32/transparency/Makefile.mingw	Wed Apr 03 23:15:20 2013 +0200
+++ b/pidgin/plugins/win32/transparency/Makefile.mingw	Thu Apr 04 01:21:30 2013 +0200
@@ -20,6 +20,7 @@
 			-I$(GTK_TOP)/include/pango-1.0 \
 			-I$(GTK_TOP)/include/atk-1.0 \
 			-I$(GTK_TOP)/include/cairo \
+			-I$(GTK_TOP)/include/gdk-pixbuf-2.0 \
 			-I$(GTK_TOP)/lib/glib-2.0/include \
 			-I$(GTK_TOP)/lib/gtk-2.0/include \
 			-I$(PURPLE_TOP) \
--- a/pidgin/plugins/win32/winprefs/Makefile.mingw	Wed Apr 03 23:15:20 2013 +0200
+++ b/pidgin/plugins/win32/winprefs/Makefile.mingw	Thu Apr 04 01:21:30 2013 +0200
@@ -21,6 +21,7 @@
 			-I$(GTK_TOP)/include/pango-1.0 \
 			-I$(GTK_TOP)/include/atk-1.0 \
 			-I$(GTK_TOP)/include/cairo \
+			-I$(GTK_TOP)/include/gdk-pixbuf-2.0 \
 			-I$(GTK_TOP)/lib/glib-2.0/include \
 			-I$(GTK_TOP)/lib/gtk-2.0/include \
 			-I$(PURPLE_TOP) \
--- a/pidgin/win32/nsis/generate_gtk_zip.sh	Wed Apr 03 23:15:20 2013 +0200
+++ b/pidgin/win32/nsis/generate_gtk_zip.sh	Thu Apr 04 01:21:30 2013 +0200
@@ -1,11 +1,12 @@
 #!/bin/bash
 # Script to generate zip file for GTK+ runtime to be included in Pidgin installer
 
-PIDGIN_BASE=$1
-GPG_SIGN=$2
+PIDGIN_BASE=`pwd`
+PIDGIN_BASE="$PIDGIN_BASE/../../.."
+GPG_SIGN=$1
 
 if [ ! -e $PIDGIN_BASE/ChangeLog ]; then
-	echo $(basename $0) must must have the pidgin base dir specified as a parameter.
+	echo pidgin base dir not found
 	exit 1
 fi
 
@@ -16,19 +17,29 @@
 PIDGIN_VERSION=$( < $PIDGIN_BASE/VERSION )
 
 #This needs to be changed every time there is any sort of change.
-BUNDLE_VERSION=2.16.6.1
-BUNDLE_SHA1SUM=3e586e3f716f909ff6c11bf64c5ad23f1a0c98bf
+BUNDLE_VERSION=2.24.14.0
+BUNDLE_SHA1SUM="402c265590f304537e31a1f3b04aad32c6eea620"
 ZIP_FILE="$PIDGIN_BASE/pidgin/win32/nsis/gtk-runtime-$BUNDLE_VERSION.zip"
 
 #Download the existing file (so that we distribute the exact same file for all releases with the same bundle version)
 FILE="$ZIP_FILE"
 if [ ! -e "$FILE" ]; then
-	wget "https://pidgin.im/win32/download_redir.php?version=$PIDGIN_VERSION&gtk_version=$BUNDLE_VERSION&dl_pkg=gtk" -O "$FILE"
+	echo "Downloading the existing file"
+	wget -q "https://pidgin.im/win32/download_redir.php?version=$PIDGIN_VERSION&gtk_version=$BUNDLE_VERSION&dl_pkg=gtk" -O "$FILE"
+	if [ `stat -c %s $FILE` == 0 ]; then
+		rm $FILE
+	fi
 fi
-CHECK_SHA1SUM=`sha1sum $FILE`
-CHECK_SHA1SUM=${CHECK_SHA1SUM%%\ *}
+if [ -e "$FILE" ]; then
+	CHECK_SHA1SUM=`sha1sum $FILE`
+	CHECK_SHA1SUM=${CHECK_SHA1SUM%%\ *}
+else
+	CHECK_SHA1SUM=
+fi
 if [ "$CHECK_SHA1SUM" != "$BUNDLE_SHA1SUM" ]; then
-	echo "sha1sum ($CHECK_SHA1SUM) for $FILE doesn't match expected value of $BUNDLE_SHA1SUM"
+	if [ "x$CHECK_SHA1SUM" != "x" ]; then
+		echo "sha1sum ($CHECK_SHA1SUM) for $FILE doesn't match expected value of $BUNDLE_SHA1SUM"
+	fi
 	# Allow "devel" versions to build their own bundles if the download doesn't succeed
 	if [[ "$PIDGIN_VERSION" == *"devel" ]]; then
 		echo "Continuing GTK+ Bundle creation for development version of Pidgin"
@@ -39,22 +50,43 @@
 	exit 0
 fi
 
+#DOWNLOAD_HOST="http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_12.3/noarch/"
+#TODO: this is just a temporary mirror - Tomek Wasilczyk's <tomkiewicz@cpw.pidgin.im> Dropbox
+DOWNLOAD_HOST="http://dl.dropbox.com/u/5448886/pidgin-win32/runtime-deps/"
 
-ATK="http://ftp.gnome.org/pub/gnome/binaries/win32/atk/1.32/atk_1.32.0-2_win32.zip ATK 1.32.0-2 sha1sum:3c31c9d6b19af840e2bd8ccbfef4072a6548dc4e"
-#Cairo 1.10.2 has a bug that can be seen when selecting text
-#CAIRO="http://ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/cairo_1.10.2-2_win32.zip Cairo 1.10.2-2 sha1sum:d44cd66a9f4d7d29a8f2c28d1c1c5f9b0525ba44"
-CAIRO="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/cairo_1.8.10-1_win32.zip Cairo 1.8.10-1 sha1sum:a08476cccd807943958610977a138c4d6097c7b8"
-EXPAT="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/expat_2.1.0-1_win32.zip Expat 2.1.0-1 gpg:0x71D4DDE53F188CBE"
-FONTCONFIG="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/fontconfig_2.8.0-2_win32.zip Fontconfig 2.8.0-2 sha1sum:37a3117ea6cc50c8a88fba9b6018f35a04fa71ce"
-FREETYPE="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/freetype_2.4.10-1_win32.zip Freetype 2.4.10-1 gpg:0x71D4DDE53F188CBE"
-GETTEXT="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime_0.18.1.1-2_win32.zip Gettext 0.18.1.1-2 sha1sum:a7cc1ce2b99b408d1bbea9a3b4520fcaf26783b3"
-GLIB="http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.28/glib_2.28.8-1_win32.zip Glib 2.28.8-1 sha1sum:5d158f4c77ca0b5508e1042955be573dd940b574"
-GTK="http://ftp.acc.umu.se/pub/gnome/binaries/win32/gtk+/2.16/gtk+_2.16.6-2_win32.zip GTK+ 2.16.6-2 sha1sum:012853e6de814ebda0cc4459f9eed8ae680e6d17"
-LIBPNG="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libpng_1.4.12-1_win32.zip libpng 1.4.12-1 gpg:0x71D4DDE53F188CBE"
-PANGO="http://ftp.gnome.org/pub/gnome/binaries/win32/pango/1.29/pango_1.29.4-1_win32.zip Pango 1.29.4-1 sha1sum:3959319bd04fbce513458857f334ada279b8cdd4"
-ZLIB="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/zlib_1.2.5-2_win32.zip zlib 1.2.5-2 sha1sum:568907188761df2d9309196e447d91bbc5555d2b"
-
-ALL="ATK CAIRO EXPAT FONTCONFIG FREETYPE GETTEXT GLIB GTK LIBPNG PANGO ZLIB"
+ATK="${DOWNLOAD_HOST}mingw32-atk-2.6.0-1.4.noarch.rpm ATK 2.6.0-1.4 sha1sum:d0792a3355b22cf4f0e218382dde71b1e22a2b03"
+CAIRO2="${DOWNLOAD_HOST}mingw32-libcairo2-1.10.2-8.4.noarch.rpm Cairo 1.10.2-8.4 sha1sum:f69af74753c7fcd95b7778eee7c3d731d64749ba"
+DBUS="${DOWNLOAD_HOST}mingw32-dbus-1-1.4.16-1.4.noarch.rpm D-Bus 1.4.16-1.4 sha1sum:f623a75dedc9646246582f5c62310627b323b30b"
+DBUS_GLIB="${DOWNLOAD_HOST}mingw32-dbus-1-glib-0.92-3.4.noarch.rpm dbus-glib 0.92-3.4 sha1sum:3af1dd35cbe2cdf62ee5144862934f5f8dd5e20d"
+ENCHANT="${DOWNLOAD_HOST}mingw32-enchant-1.6.0-3.7.noarch.rpm Enchant 1.6.0-3.4 sha1sum:f7e0571ef98833b087be6c9d71008b3c4c4435d6"
+FONTCONFIG="${DOWNLOAD_HOST}mingw32-fontconfig-2.10.1-1.4.noarch.rpm fontconfig 2.10.1-1.4 sha1sum:64fa2a6f8576209dd2253fe52dc59ef8ac92ba6f"
+FREETYPE="${DOWNLOAD_HOST}mingw32-freetype-2.4.10-1.4.noarch.rpm freetype 2.4.10-1.4 sha1sum:62a8a494df380c982d6d131ffa0846b498f3d7d0"
+GDK_PIXBUF="${DOWNLOAD_HOST}mingw32-gdk-pixbuf-2.26.3-1.4.noarch.rpm gdk-pixbuf 2.26.3-1.4 sha1sum:e454ffc771d923a443553599c1981a3cc9e56bab"
+GEOCLUE="${DOWNLOAD_HOST}mingw32-libgeoclue-0.12.99-1.4.noarch.rpm Geoclue 0.12.99-1.4 sha1sum:cf3df30e75c5b38fbe2f63689cadcc2930823b9c"
+GLIB="${DOWNLOAD_HOST}mingw32-glib2-2.34.1-1.4.noarch.rpm Glib 2.34.1-1.4 sha1sum:34317487546e5ca5d493c38794c927ff94b6a5b7"
+GST="${DOWNLOAD_HOST}mingw32-libgstreamer-0.10.35-1.4.noarch.rpm GStreamer 0.10.35-1.4 sha1sum:fd5bb6f8a9083eb3ca402670e7c38474f7270efe"
+GST_INT="${DOWNLOAD_HOST}mingw32-libgstinterfaces-0.10.32-5.4.noarch.rpm GStreamer-interfaces 0.10.32-5.4 sha1sum:cec1dd36bbcc10716e9f8776e4bd53fb0b07d8bb"
+GTK2="${DOWNLOAD_HOST}mingw32-gtk2-2.24.14-1.4.noarch.rpm GTK+ 2.24.14-1.4 sha1sum:71971fe63d355aa893536b691f249ace78d89a2b"
+LIBFFI="${DOWNLOAD_HOST}mingw32-libffi-3.0.10-2.4.noarch.rpm libffi 3.0.10-2.4 sha1sum:871f13d5f02c03d62b882cc1fa4c98dcff76d4c5"
+LIBGCC="${DOWNLOAD_HOST}mingw32-libgcc-4.7.2-2.4.noarch.rpm libgcc 4.7.2-2.4 sha1sum:9023897a5faf380efc89699ac5145c985d03a8bf"
+LIBJASPER="${DOWNLOAD_HOST}mingw32-libjasper-1.900.1-6.4.noarch.rpm JasPer 1.900.1-6.4 sha1sum:25e01ed277b8dda6191afb7dd0e0928558c1f2d6"
+LIBICU="${DOWNLOAD_HOST}mingw32-libicu-51.1-2.1.noarch.rpm ICU 51.1-2.1 sha1sum:97ec8264e38abceeadda4631730bb0b5f3f3ebfe"
+LIBINTL="${DOWNLOAD_HOST}mingw32-libintl-0.18.1.1-13.4.noarch.rpm libintl 0.18.1.1-13.4 sha1sum:043c3b8eb9c872681faed5ec5263456a24bf29e4"
+LIBJPEG="${DOWNLOAD_HOST}mingw32-libjpeg-8d-3.4.noarch.rpm libjpeg 8d-3.4 sha1sum:5d1db1eaabc6ababbed648408adbbe6eee0292fc"
+LIBJSON="${DOWNLOAD_HOST}mingw32-libjson-glib-0.14.2-1.4.noarch.rpm json-glib 0.14.2-1.4 sha1sum:698194c97baf732bd6b109778f2834d71eedc524"
+LIBLZMA="${DOWNLOAD_HOST}mingw32-liblzma-5.0.4-1.4.noarch.rpm liblzma 5.0.4-1.4 sha1sum:ef360fab4b6c77d1618891ccc8f52c2421f37c09"
+LIBPNG="${DOWNLOAD_HOST}mingw32-libpng-1.5.11-1.4.noarch.rpm libpng 1.5.11-1.4 sha1sum:99d0a077f70e83f7df10f28915a2137a0ff34462"
+LIBSOUP="${DOWNLOAD_HOST}mingw32-libsoup-2.40.3-1.4.noarch.rpm libsoup 2.40.3-1.4 sha1sum:3f2d836acea04741508a341b2bddaa55fd49f720"
+LIBSTDCPP="${DOWNLOAD_HOST}mingw32-libstdc++-4.7.2-2.4.noarch.rpm libstdc++ 4.7.2-2.4 sha1sum:e031fad6b7bf54c9846d5a857bb8de6faefdcd1b"
+LIBTIFF="${DOWNLOAD_HOST}mingw32-libtiff-4.0.2-1.4.noarch.rpm libtiff 4.0.2-1.4 sha1sum:9a8f8b018e8bafd47067fe6fd0debc1e887239b1"
+LIBXSLT="${DOWNLOAD_HOST}mingw32-libxslt-1.1.27-1.4.noarch.rpm libxslt 1.1.27-1.4 sha1sum:4a08612ad73235b0fab95e17644d72e8f24097c3"
+PANGO="${DOWNLOAD_HOST}mingw32-pango-1.30.1-1.4.noarch.rpm Pango 1.30.1-1.4 sha1sum:69c4515babdf99b0ded04c24dc3a7f33debac934"
+PIXMAN="${DOWNLOAD_HOST}mingw32-pixman-0.26.0-1.4.noarch.rpm pixman 0.26.0-1.4 sha1sum:f751fe428ea83996daf7e57bff6f4f79361b0d29"
+PTHREADS="${DOWNLOAD_HOST}mingw32-pthreads-2.8.0-14.6.noarch.rpm pthreads 2.8.0-14.6 sha1sum:e948ae221f82bbcb4fbfd991638e4170c150fe9f"
+SQLITE="${DOWNLOAD_HOST}mingw32-libsqlite-3.7.6.2-1.6.noarch.rpm SQLite 3.7.6.2-1.6 sha1sum:f61529bc0c996d9af28a94648ce6102d579ed928"
+WEBKITGTK="${DOWNLOAD_HOST}mingw32-libwebkitgtk-1.10.2-1.3.noarch.rpm WebKitGTK+ 1.10.2-1.3 sha1sum:33b558d2110fc2caf2c3c0ab24a6c18645814893"
+ZLIB="${DOWNLOAD_HOST}mingw32-zlib-1.2.7-1.4.noarch.rpm zlib 1.2.7-1.4 sha1sum:83e91f3b4d14e47131ca33fc69e12b82aabdd589"
+ALL="ATK CAIRO2 DBUS DBUS_GLIB ENCHANT FONTCONFIG FREETYPE GDK_PIXBUF GEOCLUE GLIB GST GST_INT GTK2 LIBFFI LIBGCC LIBJASPER LIBICU LIBINTL LIBJPEG LIBJSON LIBLZMA LIBPNG LIBSOUP LIBSTDCPP LIBTIFF LIBXSLT PANGO PIXMAN PTHREADS SQLITE WEBKITGTK ZLIB"
 
 mkdir -p $STAGE_DIR
 cd $STAGE_DIR
@@ -65,15 +97,36 @@
 #new CONTENTS file
 echo Bundle Version $BUNDLE_VERSION > $CONTENTS_FILE
 
+#TODO: temporary mirror also
+CPIO_URL="http://dl.dropbox.com/u/5448886/pidgin-win32/cpio/bsdcpio-3.0.3-1.4.zip"
+CPIO_SHA1SUM="0cb99adb2c2d759c9a21228223e55c8bf227f736"
+CPIO_DIR="bsdcpio"
+FILE="bsdcpio.zip"
+if [ ! -e "$FILE" ]; then
+	echo "Downloading bsdcpio"
+	wget -q "$CPIO_URL" -O "$FILE" || exit 1
+fi
+CHECK_SHA1SUM=`sha1sum $FILE`
+CHECK_SHA1SUM=${CHECK_SHA1SUM%%\ *}
+if [ "$CHECK_SHA1SUM" != "$CPIO_SHA1SUM" ]; then
+	echo "sha1sum ($CHECK_SHA1SUM) for $FILE doesn't match expected value of $CPIO_SHA1SUM"
+	rm $FILE
+	exit 1
+fi
+rm -rf $CPIO_DIR
+unzip -q $FILE -d . || exit 1
+
 function download_and_extract {
 	URL=${1%%\ *}
 	VALIDATION=${1##*\ }
 	NAME=${1%\ *}
 	NAME=${NAME#*\ }
 	FILE=$(basename $URL)
+	MINGW_DIR="usr/i686-w64-mingw32/sys-root/mingw"
+	MINGW_DIR_TOP="usr"
 	if [ ! -e $FILE ]; then
 		echo Downloading $NAME
-		wget $URL || exit 1
+		wget -q $URL || exit 1
 	fi
 	VALIDATION_TYPE=${VALIDATION%%:*}
 	VALIDATION_VALUE=${VALIDATION##*:}
@@ -87,7 +140,7 @@
 	elif [ $VALIDATION_TYPE == 'gpg' ]; then
 		if [ ! -e "$FILE.asc" ]; then
 			echo Downloading GPG key for $NAME
-			wget "$URL.asc" || exit 1
+			wget -q "$URL.asc" || exit 1
 		fi
 		#Use our own keyring to avoid adding stuff to the main keyring
 		#This doesn't use $GPG_SIGN because we don't this validation to be bypassed when people are skipping signing output
@@ -105,36 +158,45 @@
 	EXTENSION=${FILE##*.}
 	#This is an OpenSuSE build service RPM
 	if [ $EXTENSION == 'rpm' ]; then
-		echo "Generating zip from $FILE"
-		FILE=$(../rpm2zip.sh $FILE)
+		rm -rf $MINGW_DIR_TOP
+		bsdcpio/bsdcpio.exe --quiet -f etc/fonts/conf.d -di < $FILE || exit 1
+		cp -rf $MINGW_DIR/* $INSTALL_DIR
+		rm -rf $MINGW_DIR_TOP
+	else
+		unzip -q $FILE -d $INSTALL_DIR || exit 1
 	fi
-	unzip -q $FILE -d $INSTALL_DIR || exit 1
 	echo "$NAME" >> $CONTENTS_FILE
 }
 
+echo "Downloading and extracting components..."
 for VAL in $ALL
 do
 	VAR=${!VAL}
 	download_and_extract "$VAR"
 done
+rm -rf $CPIO_DIR
+echo "All components ready"
 
-#Default GTK+ Theme to MS-Windows
-echo gtk-theme-name = \"MS-Windows\" > $INSTALL_DIR/etc/gtk-2.0/gtkrc
+cp $INSTALL_DIR/bin/libintl-8.dll $INSTALL_DIR/bin/intl.dll
+
+#Default GTK+ Theme to MS-Windows (already set)
+#echo gtk-theme-name = \"MS-Windows\" > $INSTALL_DIR/etc/gtk-2.0/gtkrc
 
-#Blow away translations that we don't have in Pidgin
-for LOCALE_DIR in $INSTALL_DIR/share/locale/*
-do
-	LOCALE=$(basename $LOCALE_DIR)
-	if [ ! -e $PIDGIN_BASE/po/$LOCALE.po ]; then
-		echo Removing $LOCALE translation as it is missing from Pidgin
-		rm -r $LOCALE_DIR
-	fi
-done
+#Blow away translations that we don't have in Pidgin (temporarily not included)
+#for LOCALE_DIR in $INSTALL_DIR/share/locale/*
+#do
+#	LOCALE=$(basename $LOCALE_DIR)
+#	if [ ! -e $PIDGIN_BASE/po/$LOCALE.po ]; then
+#		echo Removing $LOCALE translation as it is missing from Pidgin
+#		rm -r $LOCALE_DIR
+#	fi
+#done
 
 #Generate zip file to be included in installer
 rm -f $ZIP_FILE
 zip -9 -r $ZIP_FILE Gtk
-($GPG_SIGN -ab $ZIP_FILE && $GPG_SIGN --verify $ZIP_FILE.asc) || exit 1
+if [ "x$GPG_SIGN" != "x" ]; then
+	($GPG_SIGN -ab $ZIP_FILE && $GPG_SIGN --verify $ZIP_FILE.asc) || exit 1
+fi
 
 exit 0
-
--- a/pidgin/win32/nsis/rpm2zip.sh	Wed Apr 03 23:15:20 2013 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-#!/bin/sh
-
-here=`pwd`
-for F in $*; do
-    case $F in
-        mingw32-*.noarch.rpm|mingw64-*.noarch.rpm|*/mingw32-*.noarch.rpm|*/mingw64-*.noarch.rpm)
-        package=`rpm -qp $F 2>/dev/null`
-        case $package in
-            mingw32-*|mingw64-*)
-            case $package in
-                mingw32-*)
-                cpu=i686
-                bits=32
-                ;;
-                mingw64-*)
-                cpu=x86_64
-                bits=64
-                ;;
-            esac
-            origname=`rpm -qp --queryformat='%{NAME}'  $F 2>/dev/null`
-            name=$origname
-            case $name in
-                *-devel)
-                name=${name%el}
-                ;;
-            esac
-            shortpackage="$name"_`rpm -qp --queryformat='%{VERSION}-%{RELEASE}'_win${bits} $F 2>/dev/null`
-            shortpackage=${shortpackage#mingw32-}
-            shortpackage=${shortpackage#mingw64-}
-            shortname=$name
-            shortname=${shortname#mingw32-}
-            shortname=${shortname#mingw64-}
-            tmp=`mktemp -d`
-            #rpm2cpio $F | lzcat | (cd $tmp && cpio --quiet -id)
-            rpm2cpio $F |  (cd $tmp && cpio --quiet -id)
-            (
-                cd $tmp
-                zipfile="$here/$shortpackage.zip"
-                rm -f $zipfile
-                (cd usr/${cpu}-pc-mingw32/sys-root/mingw && zip -q -r -D $zipfile .)
-                if [ -d usr/share/doc/packages/$origname ] ; then
-                    mv usr/share/doc/packages/$origname usr/share/doc/packages/$shortname
-                    (cd usr && zip -q -r -D $zipfile share/doc/packages/$shortname)
-                fi
-                mkdir -p manifest
-                unzip -l $zipfile >manifest/$shortpackage.mft
-                zip -q $zipfile manifest/$shortpackage.mft
-                N=`unzip -l $zipfile | wc -l | sed -e 's/^ *\([0-9]*\).*/\1/'`
-                Nm1=`expr $N - 1`
-                unzip -l $zipfile | sed -e "1,3 d" -e "$Nm1,$N d" | awk '{print $4}' | grep -v -E '/$' >manifest/$shortpackage.mft
-                zip -q $zipfile manifest/$shortpackage.mft
-                echo $zipfile
-            )
-            rm -rf $tmp
-            ;;
-            *)
-            echo $F is not a mingw32/64 RPM package >&2
-            ;;
-        esac
-        ;;
-        *)
-        echo $F is not a mingw32/64 RPM package >&2
-        ;;
-    esac
-done

mercurial