midori/win32/x86-mingw32-opensuse/install.sh
2012-04-04 23:00:08 +02:00

95 lines
3.1 KiB
Bash
Executable file

#!/bin/sh
# Copyright (C) 2010-2011 Peter de Ridder <peter@xfce.org>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# See the file COPYING for the full license text.
# config variables
REPO_URL=http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_11.4
REPO_ARCH=noarch
DOWNLOAD_PATH=~/dev/mingw/packages/opensuse
BUILD_PATH=~/tmp/opensuse
INSTALL_PATH=~/dev/mingw/mingw32
if [[ "$1" == "update" ]]
then
UPDATE=yes
fi
which xmlgrep 2> /dev/null && HAVE_XMLGREP=1 || HAVE_XMLGREP=0
if [[ "$HAVE_XMLGREP" == "0" ]]; then
echo -e "\nPlease install xmlclitools http://robur.slu.se/jensl/xmlclitools\n"
exit
fi
# create download and build directory
mkdir -p $DOWNLOAD_PATH
mkdir -p $BUILD_PATH
rm $DOWNLOAD_PATH/repomd.xml
wget -nc $REPO_URL/repodata/repomd.xml -P $DOWNLOAD_PATH || exit 1
OTHER_FILE=`xmlgrep -c -f $DOWNLOAD_PATH/repomd.xml repomd.data:type=other.location | sed 's/.*href="\([^"]*\)".*/\1/'`
wget -nc $REPO_URL/$OTHER_FILE -O $DOWNLOAD_PATH/other.xml.gz || exit 1
rm $DOWNLOAD_PATH/other.xml
#gunzip -N $DOWNLOAD_PATH/`basename $OTHER_FILE`
gunzip -N $DOWNLOAD_PATH/other.xml
rm packages.version
touch packages.version
# download all packages
while read line
do
VERSION=`xmlgrep -c -f $DOWNLOAD_PATH/other.xml otherdata.package:name="$line":arch="$REPO_ARCH" | awk -F\< '{print $2}' |sed -e 'h' -e 's/^.*ver="\([^"]*\)".*$/\1/p' -e 'g' -e 's/^.*rel="\([^"]*\)".*$/\1/' | sed -e N -e 's/\n/-/' | sort -V -r | head -n 1`
FILE=$line-$VERSION.$REPO_ARCH.rpm
test "$UPDATE" == yes || echo $FILE >> packages.version
if [ ! -f $DOWNLOAD_PATH/$FILE ]
then
test "$UPDATE" == yes && echo $FILE >> packages.version
wget -nc $REPO_URL/$REPO_ARCH/$FILE -P $DOWNLOAD_PATH
fi
done < packages.list
# convert and install packages
while read line
do
pushd $BUILD_PATH
# extract rpm
rpm2cpio $DOWNLOAD_PATH/$line | cpio -i -d
if [ -d $BUILD_PATH/usr/i686-pc-ming32/sys-root/mingw ]
then
# convert pkgconfig files
if [ -d $BUILD_PATH/usr/i686-pc-mingw32/sys-root/mingw/lib/pkgconfig ]
then
sed -i -e 's@^prefix=.*@prefix='$INSTALL_PATH'@' -e 's@/usr/i686-pc-mingw32/sys-root/mingw@${prefix}@' $BUILD_PATH/usr/i686-pc-mingw32/sys-root/mingw/lib/pkgconfig/*.pc
fi
# install the package
cp -rf $BUILD_PATH/usr/i686-pc-mingw32/sys-root/mingw/* $INSTALL_PATH/
fi
if [ -d $BUILD_PATH/usr/i686-w64-mingw32/sys-root/mingw ]
then
# convert pkgconfig files
if [ -d $BUILD_PATH/usr/i686-w64-mingw32/sys-root/mingw/lib/pkgconfig ]
then
sed -i -e 's@^prefix=.*@prefix='$INSTALL_PATH'@' -e 's@/usr/i686-w64-mingw32/sys-root/mingw@${prefix}@' $BUILD_PATH/usr/i686-w64-mingw32/sys-root/mingw/lib/pkgconfig/*.pc
fi
# install the package
cp -rf $BUILD_PATH/usr/i686-w64-mingw32/sys-root/mingw/* $INSTALL_PATH/
fi
# remove the extracted file
rm -rf $BUILD_PATH/usr
popd
done < packages.version
# remove build directory
rm -rf $BUILD_PATH