| 18 |
18 |
| 19 STAGE_DIR=`readlink -f $PIDGIN_BASE/pidgin/win32/nsis/gtk_runtime_stage` |
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 |
20 CERT_PATH=`readlink -f $PIDGIN_BASE/pidgin/win32/nsis`/cacert.pem |
| 21 #Subdirectory of $STAGE_DIR |
21 #Subdirectory of $STAGE_DIR |
| 22 INSTALL_DIR=Gtk |
22 INSTALL_DIR=Gtk |
| |
23 SRC_INSTALL_DIR=src_install |
| 23 CONTENTS_FILE=$INSTALL_DIR/CONTENTS |
24 CONTENTS_FILE=$INSTALL_DIR/CONTENTS |
| 24 PIDGIN_VERSION=$( < $PIDGIN_BASE/VERSION ) |
25 PIDGIN_VERSION=$( < $PIDGIN_BASE/VERSION ) |
| 25 |
26 |
| 26 #This needs to be changed every time there is any sort of change. |
27 #This needs to be changed every time there is any sort of change. |
| 27 BUNDLE_VERSION=2.24.18.0 |
28 BUNDLE_VERSION=2.24.18.0 |
| 28 BUNDLE_SHA1SUM="5957b0bf3f5e520863cf8ba64db7592383e9dd42" |
29 BUNDLE_SHA1SUM="5957b0bf3f5e520863cf8ba64db7592383e9dd42" |
| 29 ZIP_FILE="$PIDGIN_BASE/pidgin/win32/nsis/gtk-runtime-$BUNDLE_VERSION.zip" |
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" |
| 30 #BUNDLE_URL="https://pidgin.im/win32/download_redir.php?version=$PIDGIN_VERSION>k_version=$BUNDLE_VERSION&dl_pkg=gtk" |
32 #BUNDLE_URL="https://pidgin.im/win32/download_redir.php?version=$PIDGIN_VERSION>k_version=$BUNDLE_VERSION&dl_pkg=gtk" |
| 31 BUNDLE_URL="https://pidgin.im/~twasilczyk/win32/gtk-runtime-$BUNDLE_VERSION.zip" |
33 BUNDLE_URL="https://pidgin.im/~twasilczyk/win32/gtk-runtime-$BUNDLE_VERSION.zip" |
| 32 |
34 |
| 33 if [ "x`uname`" == "xLinux" ]; then |
35 if [ "x`uname`" == "xLinux" ]; then |
| 34 is_win32="no" |
36 is_win32="no" |
| 332 else |
340 else |
| 333 cp -rf $MINGW_DIR/* $INSTALL_DIR |
341 cp -rf $MINGW_DIR/* $INSTALL_DIR |
| 334 fi |
342 fi |
| 335 } |
343 } |
| 336 |
344 |
| 337 function download_and_extract { |
345 function validate_file { |
| 338 URL=${1%%\ *} |
346 VALIDATION=$1 |
| 339 VALIDATION=${1##*\ } |
347 FILE=$2 |
| 340 NAME=${1%\ *} |
|
| 341 NAME=${NAME#*\ } |
|
| 342 FILE=$(basename $URL) |
|
| 343 MINGW_DIR="usr/i686-w64-mingw32/sys-root/mingw" |
|
| 344 MINGW_DIR_TOP="usr" |
|
| 345 if [ ! -e $FILE ]; then |
|
| 346 echo "Downloading $NAME" |
|
| 347 download "$URL" "$FILE" || exit 1 |
|
| 348 else |
|
| 349 echo "Extracting $NAME" |
|
| 350 fi |
|
| 351 VALIDATION_TYPE=${VALIDATION%%:*} |
348 VALIDATION_TYPE=${VALIDATION%%:*} |
| 352 VALIDATION_VALUE=${VALIDATION##*:} |
349 VALIDATION_VALUE=${VALIDATION##*:} |
| 353 if [ $VALIDATION_TYPE == 'sha1sum' ]; then |
350 if [ $VALIDATION_TYPE == 'sha1sum' -o $VALIDATION_TYPE == 'sha256sum' ]; then |
| 354 CHECK_SHA1SUM=`sha1sum $FILE` |
351 CHECK_SUM=`$VALIDATION_TYPE "$FILE"` |
| 355 CHECK_SHA1SUM=${CHECK_SHA1SUM%%\ *} |
352 CHECK_SUM=${CHECK_SUM%%\ *} |
| 356 if [ "$CHECK_SHA1SUM" != "$VALIDATION_VALUE" ]; then |
353 if [ "$CHECK_SUM" != "$VALIDATION_VALUE" ]; then |
| 357 echo "sha1sum ($CHECK_SHA1SUM) for $FILE doesn't match expected value of $VALIDATION_VALUE" |
354 echo "$VALIDATION_TYPE ($CHECK_SUM) for $FILE doesn't match expected value of $VALIDATION_VALUE" |
| 358 exit 1 |
355 exit 1 |
| 359 fi |
356 fi |
| 360 elif [ $VALIDATION_TYPE == 'gpg' ]; then |
357 elif [ $VALIDATION_TYPE == 'gpg' ]; then |
| 361 if [ ! -e "$FILE.asc" ]; then |
358 if [ ! -e "$FILE.asc" ]; then |
| 362 echo Downloading GPG key for $NAME |
359 echo Downloading GPG key for $NAME |
| 363 download "$URL.asc" "$FILE.asc" || exit 1 |
360 download "$URL.asc" "$FILE.asc" || exit 1 |
| 364 fi |
361 fi |
| 365 #Use our own keyring to avoid adding stuff to the main keyring |
362 #Use our own keyring to avoid adding stuff to the main keyring |
| 366 #This doesn't use $GPG_SIGN because we don't this validation to be bypassed when people are skipping signing output |
363 #This doesn't use $GPG_SIGN because we don't this validation to be bypassed when people are skipping signing output |
| 367 GPG_BASE="gpg -q --keyring $STAGE_DIR/$VALIDATION_VALUE-keyring.gpg" |
364 GPG_BASE="gpg -q --keyring $STAGE_DIR/$VALIDATION_VALUE-keyring.gpg" |
| 368 if [[ ! -e $STAGE_DIR/$VALIDATION_VALUE-keyring.gpg \ |
365 if [[ ! -e "$STAGE_DIR/$VALIDATION_VALUE-keyring.gpg" \ |
| 369 || `$GPG_BASE --list-keys "$VALIDATION_VALUE" > /dev/null && echo -n "0"` -ne 0 ]]; then |
366 || `$GPG_BASE --list-keys "$VALIDATION_VALUE" > /dev/null && echo -n "0"` -ne 0 ]]; then |
| 370 touch $STAGE_DIR/$VALIDATION_VALUE-keyring.gpg |
367 touch "$STAGE_DIR/$VALIDATION_VALUE-keyring.gpg" |
| 371 $GPG_BASE --no-default-keyring --keyserver pgp.mit.edu --recv-key "$VALIDATION_VALUE" || exit 1 |
368 $GPG_BASE --no-default-keyring --keyserver pgp.mit.edu --recv-key "$VALIDATION_VALUE" || exit 1 |
| 372 fi |
369 fi |
| 373 $GPG_BASE --verify "$FILE.asc" || (echo "$FILE failed signature verification"; exit 1) || exit 1 |
370 $GPG_BASE --verify "$FILE.asc" || (echo "$FILE failed signature verification"; exit 1) || exit 1 |
| 374 else |
371 else |
| 375 echo "Unrecognized validation type of $VALIDATION_TYPE" |
372 echo "Unrecognized validation type of $VALIDATION_TYPE" |
| 376 exit 1 |
373 exit 1 |
| 377 fi |
374 fi |
| 378 EXTENSION=${FILE##*.} |
375 } |
| 379 #This is an OpenSuSE build service RPM |
376 |
| 380 if [ $EXTENSION == 'rpm' ]; then |
377 function download_and_validate { |
| 381 rm -rf $MINGW_DIR_TOP |
378 PREFIX=$1 |
| 382 $BSDCPIO --quiet -f etc/fonts/conf.d -di < $FILE || exit 1 |
379 URLS=$2 |
| 383 rpm_install |
380 VALIDATIONS=$3 |
| 384 rm -rf $MINGW_DIR_TOP |
381 EXTRACT=$4 |
| 385 else |
382 OLD_IFS=$IFS |
| 386 unzip -q $FILE -d $INSTALL_DIR || exit 1 |
383 IFS='|' |
| 387 fi |
384 URL_SPLIT=($URLS) |
| |
385 VALIDATION_SPLIT=($VALIDATIONS) |
| |
386 IFS=$OLD_IFS |
| |
387 |
| |
388 if [ ${#URL_SPLIT[@]} -ne ${#VALIDATION_SPLIT[@]} ]; then |
| |
389 echo "URL and validation counts don't match for $VAL" |
| |
390 exit 1 |
| |
391 fi |
| |
392 |
| |
393 if [ "x$PREFIX" != "x" ]; then |
| |
394 mkdir -p "$PREFIX" |
| |
395 fi |
| |
396 |
| |
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" |
| |
407 fi |
| |
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 |
| |
419 fi |
| |
420 else |
| |
421 mkdir -p "$SRC_INSTALL_DIR/$PREFIX" |
| |
422 cp "$FILE" "$SRC_INSTALL_DIR/$FILE" |
| |
423 fi |
| |
424 done |
| |
425 } |
| |
426 |
| |
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" |
| |
433 |
| |
434 # SRC_URL=${SPLIT[4]} |
| |
435 # SRC_VALIDATION=${SPLIT[5]} |
| |
436 # download_and_validate "src/$NAME/" "$SRC_URL" "$SRC_VALIDATION" "0" |
| |
437 |
| 388 echo "$NAME" >> $CONTENTS_FILE |
438 echo "$NAME" >> $CONTENTS_FILE |
| 389 } |
439 } |
| |
440 |
| |
441 MINGW_DIR="usr/i686-w64-mingw32/sys-root/mingw" |
| |
442 MINGW_DIR_TOP="usr" |
| 390 |
443 |
| 391 echo "Downloading and extracting components..." |
444 echo "Downloading and extracting components..." |
| 392 for VAL in $ALL |
445 for VAL in $ALL |
| 393 do |
446 do |
| 394 VAR=${!VAL} |
447 VAR=${!VAL} |
| 395 download_and_extract "$VAR" |
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 |
| |
453 fi |
| |
454 process_package "$VAR" |
| 396 done |
455 done |
| |
456 |
| 397 rm -rf $CPIO_DIR |
457 rm -rf $CPIO_DIR |
| 398 rm "$CERT_PATH" |
458 rm "$CERT_PATH" |
| 399 |
459 |
| 400 #mv "${STAGE_DIR}/${INSTALL_DIR}/share/tcl8.5" "${STAGE_DIR}/${INSTALL_DIR}/lib/" |
460 #mv "${STAGE_DIR}/${INSTALL_DIR}/share/tcl8.5" "${STAGE_DIR}/${INSTALL_DIR}/lib/" |
| 401 rm "${STAGE_DIR}/${INSTALL_DIR}/lib/gstreamer-0.10/libfsmsnconference.dll" |
461 rm "${STAGE_DIR}/${INSTALL_DIR}/lib/gstreamer-0.10/libfsmsnconference.dll" |