Migrate certificates, icons, logs to XDG dirs
[pidgin-git.git] / pidgin / win32 / nsis / generate_gtk_zip.sh
blob1d919ac0e4a3c51233d9c620b9b2dac9d021a0f6
1 #!/bin/bash
2 # Script to generate zip file for GTK+ runtime to be included in Pidgin installer
4 PIDGIN_BASE=`pwd`
5 PIDGIN_BASE="$PIDGIN_BASE/../../.."
6 GPG_SIGN=$1
8 if [ ! -e $PIDGIN_BASE/ChangeLog ]; then
9 echo "Pidgin base directory not found"
10 exit 1
13 if [ ! -e $PIDGIN_BASE/VERSION ]; then
14 cd ../../..
15 make -f Makefile.mingw VERSION
16 cd - > /dev/null
19 STAGE_DIR=`readlink -f $PIDGIN_BASE/pidgin/win32/nsis/gtk_runtime_stage`
20 CERT_PATH=`readlink -f $PIDGIN_BASE/pidgin/win32/nsis`/cacert.pem
21 #Subdirectory of $STAGE_DIR
22 INSTALL_DIR=Gtk
23 SRC_INSTALL_DIR=src_install
24 CONTENTS_FILE=$INSTALL_DIR/CONTENTS
25 PIDGIN_VERSION=$( < $PIDGIN_BASE/VERSION )
27 #This needs to be changed every time there is any sort of change.
28 BUNDLE_VERSION=2.24.18.0
29 BUNDLE_SHA1SUM="5957b0bf3f5e520863cf8ba64db7592383e9dd42"
30 ZIP_FILE="$PIDGIN_BASE/pidgin/win32/nsis/gtk-runtime-$BUNDLE_VERSION.zip"
31 SRC_ZIP_FILE="$PIDGIN_BASE/pidgin/win32/nsis/gtk-runtime-$BUNDLE_VERSION-src.zip"
32 #BUNDLE_URL="https://pidgin.im/win32/download_redir.php?version=$PIDGIN_VERSION&gtk_version=$BUNDLE_VERSION&dl_pkg=gtk"
33 BUNDLE_URL="https://pidgin.im/~twasilczyk/win32/gtk-runtime-$BUNDLE_VERSION.zip"
35 if [ "x`uname`" == "xLinux" ]; then
36 is_win32="no"
37 else
38 is_win32="yes"
41 function download() {
42 if [ -e "$2" ]; then
43 echo "File exists"
44 exit 1
46 failed=0
47 wget -t 5 "$1" -O "$2" -o "wget.log" --retry-connrefused --waitretry=5 \
48 --ca-certificate="$CERT_PATH" \
49 || failed=1
50 if [ $failed != 0 ] ; then
51 if [ "$3" != "quiet" ] ; then
52 echo "Download failed"
53 cat "wget.log"
55 rm "wget.log"
56 rm -f "$2"
57 return 1
59 rm "wget.log"
60 return 0
63 cat $PIDGIN_BASE/share/ca-certs/*.pem > "$CERT_PATH"
65 #Download the existing file (so that we distribute the exact same file for all releases with the same bundle version)
66 FILE="$ZIP_FILE"
67 if [ ! -e "$FILE" ]; then
68 echo "Downloading the existing file"
69 download "$BUNDLE_URL" "$FILE" "quiet"
71 if [ -e "$FILE" ]; then
72 CHECK_SHA1SUM=`sha1sum $FILE`
73 CHECK_SHA1SUM=${CHECK_SHA1SUM%%\ *}
74 else
75 CHECK_SHA1SUM=
77 if [ "$CHECK_SHA1SUM" != "$BUNDLE_SHA1SUM" ]; then
78 if [ "x$CHECK_SHA1SUM" != "x" ]; then
79 echo "sha1sum ($CHECK_SHA1SUM) for $FILE doesn't match expected value of $BUNDLE_SHA1SUM"
81 # Allow "devel" versions to build their own bundles if the download doesn't succeed
82 if [[ "$PIDGIN_VERSION" == *"devel" ]]; then
83 echo "Continuing GTK+ Bundle creation for development version of Pidgin"
84 else
85 echo "Couldn't download GTK+ Bundle"
86 exit 1
88 else
89 echo "GTK+ Bundle is up to date"
90 exit 0
93 # origin: http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_12.3/noarch/
94 DOWNLOAD_HOST="https://pidgin.im/~twasilczyk/win32/runtime-deps/"
96 ALL=""
97 #Format for packages is "binary_url name version binary_validation src_url src_validation"
98 #TODO: Fix packages SRC handling
100 ARC_ATK="${DOWNLOAD_HOST}mingw32-atk-2.8.0-1.5.noarch.rpm ATK 2.8.0-1.5 sha1sum:0c682eadc299963aaa5d7998d655e46ead7d7515"
101 ALL+="ARC_ATK "
103 ARC_CAIRO2="${DOWNLOAD_HOST}mingw32-libcairo2-1.10.2-8.12.noarch.rpm Cairo 1.10.2-8.12 sha1sum:e33c58603678a8ba113bffe282bec810bd70172e"
104 ALL+="ARC_CAIRO2 "
106 ARC_DBUS="${DOWNLOAD_HOST}mingw32-dbus-1-1.8.0-1.19.noarch.rpm D-Bus 1.8.0-1.19 sha1sum:c951d935f58212abb70ba5edf1794390f8434832"
107 ALL+="ARC_DBUS "
109 ARC_DBUS_GLIB="${DOWNLOAD_HOST}mingw32-dbus-1-glib-0.100.2-1.2.noarch.rpm dbus-glib 0.100.2-1.2 sha1sum:72d27c0c01ce3e94e4dddc653c6ac0544c28362f"
110 ALL+="ARC_DBUS_GLIB "
112 ARC_ENCHANT="${DOWNLOAD_HOST}mingw32-enchant-1.6.0-3.9.noarch.rpm Enchant 1.6.0-3.9 sha1sum:a8569c8dcc77f69d065320388fca822ef5bf1fe5"
113 ALL+="ARC_ENCHANT "
115 ARC_FONTCONFIG="${DOWNLOAD_HOST}mingw32-fontconfig-2.10.92-1.2.noarch.rpm fontconfig 2.10.92-1.2 sha1sum:d8da351f5d4d9816f02ac5287dd7887c711902ed"
116 ALL+="ARC_FONTCONFIG "
118 ARC_FREETYPE="${DOWNLOAD_HOST}mingw32-freetype-2.4.12-3.10.noarch.rpm freetype 2.4.12-3.10 sha1sum:d0c8fc8ba3785f5445a429ae7b6a3fce6d1f0333"
119 ALL+="ARC_FREETYPE "
121 ARC_GDK_PIXBUF="${DOWNLOAD_HOST}mingw32-gdk-pixbuf-2.28.0-1.2.noarch.rpm gdk-pixbuf 2.28.0-1.2 sha1sum:8673e06c3a838e47a093043bf86bb62ea3627fe0"
122 ALL+="ARC_GDK_PIXBUF "
124 ARC_GEOCLUE="${DOWNLOAD_HOST}mingw32-libgeoclue-0.12.99-1.10.noarch.rpm Geoclue 0.12.99-1.10 sha1sum:84410ca9a6d2fac46217c51e22ebbc5ac3cae040"
125 ALL+="ARC_GEOCLUE "
127 ARC_GLIB="${DOWNLOAD_HOST}mingw32-glib2-2.38.0-1.4.noarch.rpm Glib 2.38.0-1.4 sha1sum:e71d8c2f105548e752df4a0b6ba5958ab4826707"
128 ALL+="ARC_GLIB "
130 ARC_GNUTLS="${DOWNLOAD_HOST}mingw32-libgnutls-3.1.22-1.3.noarch.rpm GnuTLS 3.1.22-1.3 sha1sum:e744435362f4124210a7b70d75f154b7ac0bf1fd"
131 ALL+="ARC_GNUTLS "
133 ARC_GNUTLS_GCRYPT="${DOWNLOAD_HOST}mingw32-libgcrypt-1.6.0-2.4.noarch.rpm libgcrypt 1.6.0-2.4 sha1sum:1d6ce973a866d93dc083888b19d64a7891ff224f"
134 ALL+="ARC_GNUTLS_GCRYPT "
136 ARC_GNUTLS_GPGERR="${DOWNLOAD_HOST}mingw32-libgpg-error-1.12-2.5.noarch.rpm gpg-error 1.12-2.5 sha1sum:af3a21a58fce483196e882ab1bf801203535f46e"
137 ALL+="ARC_GNUTLS_GPGERR "
139 ARC_GTK2="${DOWNLOAD_HOST}mingw32-gtk2-2.24.18-3.4.noarch.rpm GTK+ 2.24.18-3.4 sha1sum:31bc7f8aa2222517a3ec614924a07432983dc20d"
140 ALL+="ARC_GTK2 "
142 ARC_LIBFFI="${DOWNLOAD_HOST}mingw32-libffi-3.0.13-2.2.noarch.rpm libffi 3.0.13-2.2 sha1sum:0751dddb44eba3f553534c0a2a8ed438ed84a793"
143 ALL+="ARC_LIBFFI "
145 ARC_LIBGADU="${DOWNLOAD_HOST}mingw32-libgadu-1.12.0rc3-6.1.noarch.rpm libgadu 1.12.0rc3-6.1 sha1sum:ec2f3ccbc850c29bb26318a46ccba4db39b0a328"
146 ALL+="ARC_LIBGADU "
148 ARC_LIBGCC="${DOWNLOAD_HOST}mingw32-libgcc-4.8.2-3.7.noarch.rpm libgcc 4.8.2-3.7 sha1sum:91ab8f6881ce1004dda5279920742f78743e897b"
149 ALL+="ARC_LIBGCC "
151 ARC_LIBGMP="${DOWNLOAD_HOST}mingw32-libgmp-5.0.5-2.2.noarch.rpm libgmp 5.0.5-2.2 sha1sum:30c8c403d4d2dead7674e567d83c8c069b603e49"
152 ALL+="ARC_LIBGMP "
154 ARC_LIBGNURX="${DOWNLOAD_HOST}mingw32-libgnurx-2.5-4.6.noarch.rpm libgnurx 2.5-4.6 sha1sum:51571e6b1e5e9fb865c110cae04c582ff3c44cb7"
155 ALL+="ARC_LIBGNURX "
157 ARC_LIBHB="${DOWNLOAD_HOST}mingw32-libharfbuzz-0.9.19-3.5.noarch.rpm libharfbuzz 0.9.19-3.5 sha1sum:a31cd8ed4a7a8b75cf7b1252706f79b19e612d68"
158 ALL+="ARC_LIBHB "
160 ARC_LIBHOGWEED="${DOWNLOAD_HOST}mingw32-libhogweed-2.7-2.2.noarch.rpm libhogweed 2.7-2.2 sha1sum:c22ea84a8a5037be6021f9494b8252861dee63b5"
161 ALL+="ARC_LIBHOGWEED "
163 ARC_LIBJASPER="${DOWNLOAD_HOST}mingw32-libjasper-1.900.1-6.6.noarch.rpm JasPer 1.900.1-6.6 sha1sum:1a0f0072e0b0f73bd8d4e26aed93baa10d77e504"
164 ALL+="ARC_LIBJASPER "
166 ARC_LIBICU="${DOWNLOAD_HOST}mingw32-libicu-51.1-2.3.noarch.rpm ICU 51.1-2.3 sha1sum:c259c9d7f9f58934ebb49ecc80b15b7492e5a245"
167 ALL+="ARC_LIBICU "
169 ARC_LIBIDN="${DOWNLOAD_HOST}mingw32-libidn-1.22-3.8.noarch.rpm libidn 1.22-3.8 sha1sum:2052ea6fc2e789b2c252f621a7134ea4286cf5cc"
170 ALL+="ARC_LIBIDN "
172 ARC_LIBINTL="${DOWNLOAD_HOST}mingw32-libintl-0.18.1.1-15.11.noarch.rpm libintl 0.18.1.1-15.11 sha1sum:29812544f7362dde1378f71feb31fed4f9cb640e"
173 ALL+="ARC_LIBINTL "
175 ARC_LIBJPEG="${DOWNLOAD_HOST}mingw32-libjpeg-8d-3.6.noarch.rpm libjpeg 8d-3.6 sha1sum:db85723377243045388a5d3c873262cd83ffa7e2"
176 ALL+="ARC_LIBJPEG "
178 ARC_LIBJSON="${DOWNLOAD_HOST}mingw32-libjson-glib-0.14.2-2.1.noarch.rpm json-glib 0.14.2-2.1 sha1sum:366bf545855ced7fdfefc57b75ef7bbb5ebc249b"
179 ALL+="ARC_LIBJSON "
181 ARC_LIBLZMA="${DOWNLOAD_HOST}mingw32-liblzma-5.0.4-1.6.noarch.rpm liblzma 5.0.4-1.6 sha1sum:67bad5204ae09d163f799adec3286fff297e3bc8"
182 ALL+="ARC_LIBLZMA "
184 ARC_LIBNETTLE="${DOWNLOAD_HOST}mingw32-libnettle-2.7-2.2.noarch.rpm libnettle 2.7-2.2 sha1sum:45337e6ccb46c0752d2761b6c48a20e97dd09195"
185 ALL+="ARC_LIBNETTLE "
187 ARC_LIBP11="${DOWNLOAD_HOST}mingw32-libp11-kit0-0.20.1-4.3.noarch.rpm libp11 0.20.1-4.3 sha1sum:ee5b7a3e16b29f26ee1c275d8228ba0bb6a27190"
188 ALL+="ARC_LIBP11 "
190 ARC_LIBPNG="${DOWNLOAD_HOST}mingw32-libpng-1.5.17-2.11.noarch.rpm libpng 1.5.17-2.11 sha1sum:ff2c29197b5529d2cdc936f7b2b61af5c1175d29"
191 ALL+="ARC_LIBPNG "
193 ARC_LIBSILC="${DOWNLOAD_HOST}mingw32-libsilc-1.1.10-2.1.noarch.rpm libsilc 1.1.10-2.1 sha1sum:b7690eac1a91caf2b02b058483a3768705a6f3df"
194 ALL+="ARC_LIBSILC "
196 ARC_LIBSILCCL="${DOWNLOAD_HOST}mingw32-libsilcclient-1.1.10-2.1.noarch.rpm libsilcclient 1.1.10-2.1 sha1sum:88b84ff4c43643ce4b8ec1eb345e73c139cc164a"
197 ALL+="ARC_LIBSILCCL "
199 ARC_LIBSOUP="${DOWNLOAD_HOST}mingw32-libsoup-2.42.2-1.1.noarch.rpm libsoup 2.42.2-1.1 sha1sum:f0af29ceb420daaa549dd5dc470fbd62bc732252"
200 ALL+="ARC_LIBSOUP "
202 ARC_LIBSSP="${DOWNLOAD_HOST}mingw32-libssp-4.8.2-3.7.noarch.rpm LibSSP 4.8.2-3.7 sha1sum:bc42038985d5c75dd3b1511849db2c9f80dbbd7e"
203 ALL+="ARC_LIBSSP "
205 ARC_LIBSTDCPP="${DOWNLOAD_HOST}mingw32-libstdc++-4.8.2-3.7.noarch.rpm libstdc++ 4.8.2-3.7 sha1sum:1f9779c16afb0bbfab6dc79389cf6f6198292062"
206 ALL+="ARC_LIBSTDCPP "
208 ARC_LIBTASN="${DOWNLOAD_HOST}mingw32-libtasn1-3.3-3.2.noarch.rpm libtasn 3.3-3.2 sha1sum:3d5bb0df8eb7ed5e3f05b5378d3d61dbbbdbbd3f"
209 ALL+="ARC_LIBTASN "
211 ARC_LIBTIFF="${DOWNLOAD_HOST}mingw32-libtiff-4.0.2-1.6.noarch.rpm libtiff 4.0.2-1.6 sha1sum:3a082540386748ead608d388ce55a0c1dd28715d"
212 ALL+="ARC_LIBTIFF "
214 ARC_LIBXML="${DOWNLOAD_HOST}mingw32-libxml2-2.9.0-2.1.noarch.rpm libxml 2.9.0-2.1 sha1sum:de73090544effcd167f94fcfe8e2d1f005adbea7"
215 ALL+="ARC_LIBXML "
217 ARC_LIBXSLT="${DOWNLOAD_HOST}mingw32-libxslt-1.1.28-1.2.noarch.rpm libxslt 1.1.28-1.2 sha1sum:6ee150c6271edded95f92285f59d02c2896e459e"
218 ALL+="ARC_LIBXSLT "
220 ARC_MEANW="${DOWNLOAD_HOST}mingw32-meanwhile-1.0.2-3.2.noarch.rpm Meanwhile 1.0.2-3.2 sha1sum:6b0fd8d94205d80eba37ea3e3f19ded7a1297473"
221 ALL+="ARC_MEANW "
223 ARC_MOZNSS="${DOWNLOAD_HOST}mingw32-mozilla-nss-3.14.5-3.9.noarch.rpm NSS 3.14.5-3.9 sha1sum:434bcb5073bae6d16ab248280b2b033507d20453"
224 ALL+="ARC_MOZNSS "
226 ARC_MOZNSPR="${DOWNLOAD_HOST}mingw32-mozilla-nspr-4.10.2-2.8.noarch.rpm NSPR 4.10.2-2.8 sha1sum:ca61d4453042725e4f700a4b51859dc5f58110c4"
227 ALL+="ARC_MOZNSPR "
229 ARC_NCURSES="${DOWNLOAD_HOST}mingw32-ncurses-5.9-20140422.1.noarch.rpm ncurses 5.9-20140422.1 sha1sum:4873c22e5f67d0bc72bbb89b71a3967bce6067e0"
230 ALL+="ARC_NCURSES "
232 ARC_PANGO="${DOWNLOAD_HOST}mingw32-pango-1.34.0-2.3.noarch.rpm Pango 1.34.0-2.3 sha1sum:65b55b73c4f5c8107fdf48ef2e4f5c351189cd4f"
233 ALL+="ARC_PANGO "
235 ARC_PIXMAN="${DOWNLOAD_HOST}mingw32-pixman-0.30.0-3.10.noarch.rpm pixman 0.30.0-3.10 sha1sum:ed63261f29c356a58276435df013376e688a3a6b"
236 ALL+="ARC_PIXMAN "
238 ARC_PROTOBUFC="${DOWNLOAD_HOST}mingw32-protobuf-c-0.15-6.1.noarch.rpm protobuf-c 0.15-6.1 sha1sum:b58ef0aca3c99d956479ec1510e3ca62d79a443f"
239 ALL+="ARC_PROTOBUFC "
241 ARC_PTHREADS="${DOWNLOAD_HOST}mingw32-pthreads-2.8.0-14.6.noarch.rpm pthreads 2.8.0-14.6 sha1sum:e948ae221f82bbcb4fbfd991638e4170c150fe9f"
242 ALL+="ARC_PTHREADS "
244 ARC_SQLITE="${DOWNLOAD_HOST}mingw32-libsqlite3-0-3.8.4.1-1.4.noarch.rpm SQLite 3.8.4.1-1.4 sha1sum:1c42db1a48f616d824c3ae8e0a8eb0693ddac88f"
245 ALL+="ARC_SQLITE "
247 ARC_VV_FARST="${DOWNLOAD_HOST}mingw32-farstream-0.1.2-5.3.noarch.rpm farstream 0.1.2-5.3 sha1sum:0334213ece2f339cba38aff9290ef07238763c5c"
248 ALL+="ARC_VV_FARST "
250 ARC_VV_GST="${DOWNLOAD_HOST}mingw32-gstreamer-0.10.36-6.3.noarch.rpm GStreamer 0.10.36-6.3 sha1sum:3fd80dfc05c64f277d787c60799638701e0f058e"
251 ALL+="ARC_VV_GST "
253 ARC_VV_GST_LIB="${DOWNLOAD_HOST}mingw32-libgstreamer-0.10.36-6.3.noarch.rpm GStreamer-libgstreamer 0.10.36-6.3 sha1sum:eef44d1ff93f0c2ddffdbaecc65f08a5617b4724"
254 ALL+="ARC_VV_GST_LIB "
256 ARC_VV_GST_INT="${DOWNLOAD_HOST}mingw32-libgstinterfaces-0.10.36-5.4.noarch.rpm GStreamer-interfaces 0.10.36-5.4 sha1sum:d974b38c1da02191103c253e27a15ec7f160000f"
257 ALL+="ARC_VV_GST_INT "
259 ARC_VV_GST_PLBAD="${DOWNLOAD_HOST}mingw32-gst-plugins-bad-0.10.23-5.4.noarch.rpm GStreamer-plugins-bad 0.10.23-5.4 sha1sum:d2754a1358edab0c06b4038123274025f58af6ef"
260 ALL+="ARC_VV_GST_PLBAD "
262 ARC_VV_GST_PLBASE="${DOWNLOAD_HOST}mingw32-gst-plugins-base-0.10.36-5.4.noarch.rpm GStreamer-plugins-base 0.10.36-5.4 sha1sum:9e642d5a1e71dfeaa5b38b7ebf0ade4442ee763b"
263 ALL+="ARC_VV_GST_PLBASE "
265 ARC_VV_GST_PLGOOD="${DOWNLOAD_HOST}mingw32-gst-plugins-good-0.10.31-5.4.noarch.rpm GStreamer-plugins-good 0.10.31-5.4 sha1sum:3e0daa815e4d51749fc6d2e9353245d09ee9854d"
266 ALL+="ARC_VV_GST_PLGOOD "
268 ARC_VV_LIBNICE="${DOWNLOAD_HOST}mingw32-libnice-0.1.4-5.3.noarch.rpm libnice 0.1.4-5.3 sha1sum:abbabaa03d81202f2d78adca2b833d1072dfecf0"
269 ALL+="ARC_VV_LIBNICE "
271 ARC_VV_LIBOGG="${DOWNLOAD_HOST}mingw32-libogg-1.3.0-1.8.noarch.rpm libogg 1.3.0-1.8 sha1sum:1978cbd5148630fc95d4a6b1c5024f76f519fcd4"
272 ALL+="ARC_VV_LIBOGG "
274 ARC_VV_LIBTHEORA="${DOWNLOAD_HOST}mingw32-libtheora-1.1.1-5.8.noarch.rpm libtheora 1.1.1-5.8 sha1sum:9809978e4e7c0a620dd735218bb1bd317fe32149"
275 ALL+="ARC_VV_LIBTHEORA "
277 ARC_VV_LIBVORBIS="${DOWNLOAD_HOST}mingw32-libvorbis-1.3.3-1.8.noarch.rpm libvorbis 1.3.3-1.8 sha1sum:c9efd698ed62c26cf62442dafc2d9d2dcbcd651c"
278 ALL+="ARC_VV_LIBVORBIS "
280 ARC_WEBKITGTK="${DOWNLOAD_HOST}mingw32-libwebkitgtk-1.10.2-9.2.noarch.rpm WebKitGTK+ 1.10.2-9.2 sha1sum:010dbad413f824696cd1e32fe70046c9a1cb425f"
281 ALL+="ARC_WEBKITGTK "
283 ARC_ZLIB="${DOWNLOAD_HOST}mingw32-zlib-1.2.8-2.6.noarch.rpm zlib 1.2.8-2.6 sha1sum:bb75b2a341309eb75daacb93d43d6c072c71923c"
284 ALL+="ARC_ZLIB "
286 mkdir -p $STAGE_DIR
287 mkdir -p $STAGE_DIR/src
288 cd $STAGE_DIR
290 rm -rf $INSTALL_DIR
291 mkdir $INSTALL_DIR
293 rm -rf $SRC_INSTALL_DIR
294 mkdir $SRC_INSTALL_DIR
296 #new CONTENTS file
297 echo Bundle Version $BUNDLE_VERSION > $CONTENTS_FILE
299 if [ $is_win32 = "yes" ]; then
300 CPIO_URL="https://pidgin.im/~twasilczyk/win32/devel-deps/cpio/bsdcpio-3.0.3-1.4.tar.gz"
301 CPIO_SHA1SUM="0460c7a52f8c93d3c4822d6d1aaf9410f21bd4da"
302 CPIO_DIR="bsdcpio"
303 FILE="bsdcpio.tar.gz"
304 if [ ! -e "$FILE" ]; then
305 echo "Downloading bsdcpio"
306 download "$CPIO_URL" "$FILE" || exit 1
308 CHECK_SHA1SUM=`sha1sum $FILE`
309 CHECK_SHA1SUM=${CHECK_SHA1SUM%%\ *}
310 if [ "$CHECK_SHA1SUM" != "$CPIO_SHA1SUM" ]; then
311 echo "sha1sum ($CHECK_SHA1SUM) for $FILE doesn't match expected value of $CPIO_SHA1SUM"
312 rm $FILE
313 exit 1
315 rm -rf "$CPIO_DIR"
316 mkdir "$CPIO_DIR"
317 tar xf "$FILE" --strip-components=1 --directory="$CPIO_DIR" || exit 1
318 BSDCPIO=bsdcpio/bsdcpio.exe
319 else
320 BSDCPIO=`which bsdcpio`
323 function rpm_install {
324 PKG_NAME=${NAME%%\ *}
325 if [ "$PKG_NAME" = "GStreamer-plugins-bad" ]; then
326 cp $MINGW_DIR/lib/gstreamer-0.10/libgstdirectdrawsink.dll $INSTALL_DIR/lib/gstreamer-0.10/
327 cp $MINGW_DIR/lib/gstreamer-0.10/libgstdirectsoundsrc.dll $INSTALL_DIR/lib/gstreamer-0.10/
328 cp $MINGW_DIR/lib/gstreamer-0.10/libgstliveadder.dll $INSTALL_DIR/lib/gstreamer-0.10/
329 cp $MINGW_DIR/lib/gstreamer-0.10/libgstrtpmux.dll $INSTALL_DIR/lib/gstreamer-0.10/
330 cp $MINGW_DIR/lib/gstreamer-0.10/libgstwinks.dll $INSTALL_DIR/lib/gstreamer-0.10/
331 elif [ "$PKG_NAME" = "GStreamer-plugins-good" ]; then
332 cp $MINGW_DIR/lib/gstreamer-0.10/libgstalaw.dll $INSTALL_DIR/lib/gstreamer-0.10/
333 cp $MINGW_DIR/lib/gstreamer-0.10/libgstdirectsoundsink.dll $INSTALL_DIR/lib/gstreamer-0.10/
334 cp $MINGW_DIR/lib/gstreamer-0.10/libgstlevel.dll $INSTALL_DIR/lib/gstreamer-0.10/
335 cp $MINGW_DIR/lib/gstreamer-0.10/libgstmulaw.dll $INSTALL_DIR/lib/gstreamer-0.10/
336 cp $MINGW_DIR/lib/gstreamer-0.10/libgstrtp.dll $INSTALL_DIR/lib/gstreamer-0.10/
337 cp $MINGW_DIR/lib/gstreamer-0.10/libgstrtpmanager.dll $INSTALL_DIR/lib/gstreamer-0.10/
338 cp $MINGW_DIR/lib/gstreamer-0.10/libgstrtsp.dll $INSTALL_DIR/lib/gstreamer-0.10/
339 cp $MINGW_DIR/lib/gstreamer-0.10/libgstwavparse.dll $INSTALL_DIR/lib/gstreamer-0.10/
340 else
341 cp -rf $MINGW_DIR/* $INSTALL_DIR
345 function validate_file {
346 VALIDATION=$1
347 FILE=$2
348 VALIDATION_TYPE=${VALIDATION%%:*}
349 VALIDATION_VALUE=${VALIDATION##*:}
350 if [ $VALIDATION_TYPE == 'sha1sum' -o $VALIDATION_TYPE == 'sha256sum' ]; then
351 CHECK_SUM=`$VALIDATION_TYPE "$FILE"`
352 CHECK_SUM=${CHECK_SUM%%\ *}
353 if [ "$CHECK_SUM" != "$VALIDATION_VALUE" ]; then
354 echo "$VALIDATION_TYPE ($CHECK_SUM) for $FILE doesn't match expected value of $VALIDATION_VALUE"
355 exit 1
357 elif [ $VALIDATION_TYPE == 'gpg' ]; then
358 if [ ! -e "$FILE.asc" ]; then
359 echo Downloading GPG key for $NAME
360 download "$URL.asc" "$FILE.asc" || exit 1
362 #Use our own keyring to avoid adding stuff to the main keyring
363 #This doesn't use $GPG_SIGN because we don't this validation to be bypassed when people are skipping signing output
364 GPG_BASE="gpg -q --keyring $STAGE_DIR/$VALIDATION_VALUE-keyring.gpg"
365 if [[ ! -e "$STAGE_DIR/$VALIDATION_VALUE-keyring.gpg" \
366 || `$GPG_BASE --list-keys "$VALIDATION_VALUE" > /dev/null && echo -n "0"` -ne 0 ]]; then
367 touch "$STAGE_DIR/$VALIDATION_VALUE-keyring.gpg"
368 $GPG_BASE --no-default-keyring --keyserver pgp.mit.edu --recv-key "$VALIDATION_VALUE" || exit 1
370 $GPG_BASE --verify "$FILE.asc" || (echo "$FILE failed signature verification"; exit 1) || exit 1
371 else
372 echo "Unrecognized validation type of $VALIDATION_TYPE"
373 exit 1
377 function download_and_validate {
378 PREFIX=$1
379 URLS=$2
380 VALIDATIONS=$3
381 EXTRACT=$4
382 OLD_IFS=$IFS
383 IFS='|'
384 URL_SPLIT=($URLS)
385 VALIDATION_SPLIT=($VALIDATIONS)
386 IFS=$OLD_IFS
388 if [ ${#URL_SPLIT[@]} -ne ${#VALIDATION_SPLIT[@]} ]; then
389 echo "URL and validation counts don't match for $VAL"
390 exit 1
393 if [ "x$PREFIX" != "x" ]; then
394 mkdir -p "$PREFIX"
397 LEN=${#URL_SPLIT[@]}
398 for (( i = 0; i < ${LEN}; i++ )); do
399 URL=${URL_SPLIT[$i]}
400 VALIDATION=${VALIDATION_SPLIT[$i]}
401 FILE=${PREFIX}$(basename $URL)
402 if [ ! -e "$FILE" ]; then
403 echo Downloading $FILE for $NAME ...
404 download "$URL" "$FILE" || exit 1
405 else
406 echo "Extracting $NAME"
408 validate_file "$VALIDATION" "$FILE"
409 EXTENSION=${FILE##*.}
410 #This is an OpenSuSE build service RPM
411 if [ $EXTRACT == "1" ]; then
412 if [ $EXTENSION == 'rpm' ]; then
413 rm -rf $MINGW_DIR_TOP
414 $BSDCPIO --quiet -f etc/fonts/conf.d -di < $FILE || exit 1
415 rpm_install
416 rm -rf $MINGW_DIR_TOP
417 else
418 unzip -q "$FILE" -d "$INSTALL_DIR" || exit 1
420 else
421 mkdir -p "$SRC_INSTALL_DIR/$PREFIX"
422 cp "$FILE" "$SRC_INSTALL_DIR/$FILE"
424 done
427 function process_package {
428 SPLIT=($1)
429 URL=${SPLIT[0]}
430 NAME="${SPLIT[1]} ${SPLIT[2]}"
431 VALIDATION=${SPLIT[3]}
432 download_and_validate "" "$URL" "$VALIDATION" "1"
434 # SRC_URL=${SPLIT[4]}
435 # SRC_VALIDATION=${SPLIT[5]}
436 # download_and_validate "src/$NAME/" "$SRC_URL" "$SRC_VALIDATION" "0"
438 echo "$NAME" >> $CONTENTS_FILE
441 MINGW_DIR="usr/i686-w64-mingw32/sys-root/mingw"
442 MINGW_DIR_TOP="usr"
444 echo "Downloading and extracting components..."
445 for VAL in $ALL
447 VAR=${!VAL}
448 SPLIT=($VAR)
449 # if [ ${#SPLIT[@]} -lt 6 ]; then
450 if [ ${#SPLIT[@]} -lt 4 ]; then
451 echo "$VAL has only ${#SPLIT[@]} attributes"
452 exit 1
454 process_package "$VAR"
455 done
457 rm -rf $CPIO_DIR
458 rm "$CERT_PATH"
460 #mv "${STAGE_DIR}/${INSTALL_DIR}/share/tcl8.5" "${STAGE_DIR}/${INSTALL_DIR}/lib/"
461 rm "${STAGE_DIR}/${INSTALL_DIR}/lib/gstreamer-0.10/libfsmsnconference.dll"
462 rm "${STAGE_DIR}/${INSTALL_DIR}/lib/gstreamer-0.10/libgstgnomevfs.dll"
464 echo "All components ready"
466 #Default GTK+ Theme to MS-Windows (already set)
467 #echo gtk-theme-name = \"MS-Windows\" > $INSTALL_DIR/etc/gtk-2.0/gtkrc
469 #Blow away translations that we don't have in Pidgin (temporarily not included)
470 #for LOCALE_DIR in $INSTALL_DIR/share/locale/*
472 # LOCALE=$(basename $LOCALE_DIR)
473 # if [ ! -e $PIDGIN_BASE/po/$LOCALE.po ]; then
474 # echo Removing $LOCALE translation as it is missing from Pidgin
475 # rm -r $LOCALE_DIR
476 # fi
477 #done
479 #Generate zip file to be included in installer
480 rm -f $ZIP_FILE
481 zip -9 -r $ZIP_FILE Gtk
483 if [ "`$GPG_SIGN -K 2> /dev/null`" != "" ]; then
484 ($GPG_SIGN -ab $ZIP_FILE && $GPG_SIGN --verify $ZIP_FILE.asc) || exit 1
485 (cd $SRC_INSTALL_DIR/src && zip -9 -r $SRC_ZIP_FILE *)
486 ($GPG_SIGN -ab $SRC_ZIP_FILE && $GPG_SIGN --verify $SRC_ZIP_FILE.asc) || exit 1
487 else
488 echo "Warning: cannot sign generated bundle"
491 exit 0