[Xfce4-commits] <midori:master> Provide build scripts for win32 releases

Christian Dywan noreply at xfce.org
Wed Apr 27 02:38:01 CEST 2011


Updating branch refs/heads/master
         to d36e12f21d297b6ca5bf0daa38b452fccdf318d8 (commit)
       from 366ca3f7da8b9b355ba595559521ff7d5d0273f3 (commit)

commit d36e12f21d297b6ca5bf0daa38b452fccdf318d8
Author: Peter de Ridder <peter at xfce.org>
Date:   Wed Apr 27 01:42:47 2011 +0200

    Provide build scripts for win32 releases

 win32/README_OPENSUSE_MINGW.txt          |   92 ++++
 win32/crossconfig.sh                     |   20 +
 win32/makedist/dll-recursive.sh          |   31 ++
 win32/makedist/makedist.midori           |   96 +++++
 win32/makedist/midori-0.3.3.nsi          |  664 ++++++++++++++++++++++++++++++
 win32/x86-mingw32-opensuse/install.sh    |   72 ++++
 win32/x86-mingw32-opensuse/packages.list |   79 ++++
 7 files changed, 1054 insertions(+), 0 deletions(-)

diff --git a/win32/README_OPENSUSE_MINGW.txt b/win32/README_OPENSUSE_MINGW.txt
new file mode 100644
index 0000000..ed8a59a
--- /dev/null
+++ b/win32/README_OPENSUSE_MINGW.txt
@@ -0,0 +1,92 @@
+This file is licensed under the terms of the LGPL 2.1, see the file COPYING.
+
+        FILES
+
+README.txt              This file, explaining how to build Midori.
+midori-0.3.3.nsi        The NSIS installer creation script.
+
+packages.list           The suse mingw packages required to build Midori.
+x86-mingw32-opensuse/   Install and update script for the opensuse repository.
+
+makedist/               Scripts to create distribution package
+			from cross-compiled binaries and libs.
+
+crossconfig.sh          Setup environment for cross build and run
+			configure script for cross build.
+
+
+        INTRODUCTION
+
+This document will explain how to get Midori compiling for windows, hopefully.
+
+
+        REQUIREMENTS
+
+A working tool chain with the mingw compiler is required. This can either be
+native in Windows or a cross-chain.
+This tool chain must have the following applications and all applications
+needed to build Midori:
+- basename, for x86-mingw32-opensuse
+- bash, for the shell scripts
+- cat, for makedist.midori
+- cp, for x86-mingw32-opensuse and makedist.midori
+- cpio, for x86-mingw32-opensuse
+- echo, for x86-mingw32-opensuse and makedist.midori
+- find, for makedist.midori
+- git, to get the development sources
+- grep, for makedist.midori
+- gunzip, for x86-mingw32-opensuse
+- head, for x86-mingw32-opensuse
+- ls, for makedist.midori
+- mkdir, for x86-mingw32-opensuse and makedist.midori
+- mktemp, for makedist.midori
+- pwd, for makedist.midori
+- rm, for x86-mingw32-opensuse and makedist.midori
+- rmdir, for makedist.midori
+- rpm2cpio, for x86-mingw32-opensuse
+- sed, for x86-mingw32-opensuse
+- sha1sum, for makedist.midori
+- sort, for x86-mingw32-opensuse and makedist.midori
+- strings, for makedist.midori
+- tar, to unpack the scripts
+- touch, for x86-mingw32-opensuse
+- uniq, for makedist.midori
+- wget, for x86-mingw32-opensuse
+- xmlgrep, for x86-mingw32-opensuse
+- zip, for makedist.midori
+
+
+        PREPARATIONS
+
+Install all the packages needed by Midori and its dependencies. There are two
+ways to do this. Automatically install the dependencies from opensuse.org or
+manually install them.
+To automatically install the packages use the scripts and change configuration
+in header of install.sh file where needed. And run ./install.sh to install all
+necessary packages.
+This script can be also invoked with "update" argument ./install.sh update
+to update the installed packages to newer versions.
+To install the dependencies manually install the packages in packages.list.
+This are all the packages needed by Midori and its dependencies.
+
+Get the Midori sources. Either use git to get them or download a snapshot or a
+release. See http://git.xfce.org/apps/midori or
+http://archive.xfce.org/src/apps/midori/
+
+
+        BUILDING
+
+Read the instruction in the source tree. For cross compiling the script
+crossconfig.sh might help.
+
+
+        DISTRIBUTION
+
+To create a Windows installer for Midori you need NSIS. See
+http://nsis.sourceforge.net/Main_Page
+Use the makedist.midori script to get all files needed for distribution. Add
+the version number as argument to makedist.midori to create a version number
+in the distribution package. eg. ./makedist.midori -0.3.3
+To complete the installer unzip the file created by the makedist script.
+Compile midori-0.3.3.nsi with NSIS.
+
diff --git a/win32/crossconfig.sh b/win32/crossconfig.sh
new file mode 100644
index 0000000..276bcc9
--- /dev/null
+++ b/win32/crossconfig.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+# Copyright (C) 2010-2011 Peter de Ridder <peter at 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.
+
+export MINGW_PREFIX=/usr/i686-pc-mingw32/sys-root/mingw
+export PATH=$MINGW_PREFIX/bin:$PATH
+export PKG_CONFIG_PATH=$MINGW_PREFIX/lib/pkgconfig
+export PKG_CONFIG_LIBDIR=
+export MINGW_BUILD=`gcc -dumpmachine`
+export MINGW_TARGET=i386-mingw32
+
+CC=i386-mingw32-gcc ./configure --prefix=$MINGW_PREFIX $@
+
diff --git a/win32/makedist/dll-recursive.sh b/win32/makedist/dll-recursive.sh
new file mode 100644
index 0000000..9442490
--- /dev/null
+++ b/win32/makedist/dll-recursive.sh
@@ -0,0 +1,31 @@
+#! /bin/sh
+
+# Copyright (C) 2010-2011 Peter de Ridder <peter at 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.
+
+temp_file_new=`mktemp`
+temp_file_old=`mktemp`
+
+while [ "$1" ]
+do
+  echo $1 >> $temp_file_new
+  shift
+done
+
+while [ "x`sha1sum - < $temp_file_new`" != "x`sha1sum - < $temp_file_old`" ]
+do
+  files=`cat $temp_file_new $temp_file_old | sort | uniq -u`
+  cp $temp_file_new $temp_file_old
+  strings $files 2> /dev/null | grep \\.dll | cat - $temp_file_old | sort | uniq > $temp_file_new
+done
+
+cat $temp_file_new
+
+rm $temp_file_new $temp_file_old
+
diff --git a/win32/makedist/makedist.midori b/win32/makedist/makedist.midori
new file mode 100644
index 0000000..e9732c8
--- /dev/null
+++ b/win32/makedist/makedist.midori
@@ -0,0 +1,96 @@
+#! /bin/sh
+
+# Copyright (C) 2010-2011 Peter de Ridder <peter at 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.
+
+# a bit of configuration
+root_dir=$MINGW_PREFIX
+script_dir=$PWD
+
+# create temporary working directory
+temp_dir=`mktemp -d`
+
+# generate unique filename
+ARCHIVE=midori$1-`date +%Y%m%d%H%M`.zip
+
+echo -n "Creating $ARCHIVE ."
+
+# create destination folder
+mkdir $temp_dir/midori$1
+
+echo -n .
+
+# auto generate dll list, only of existing files
+pushd $root_dir/bin > /dev/null
+$script_dir/dll-recursive.sh midori*.exe gspawn-*-helper*.exe libhunspell*.dll > $temp_dir/midori.exe.lst
+files=`ls | cat - $temp_dir/midori.exe.lst | sort | uniq -d`
+rm $temp_dir/midori.exe.lst
+popd > /dev/null
+
+echo -n .
+
+# copy auto generate dll list
+pushd $root_dir/bin > /dev/null
+mkdir $temp_dir/midori$1/bin
+cp $files $temp_dir/midori$1/bin
+popd > /dev/null
+
+echo -n .
+
+# copy etc
+pushd $root_dir > /dev/null
+find etc "(" -name "*midori*" -o -name "gtkrc" ")" -prune -exec mkdir -p $temp_dir/midori$1/{} ";" -exec rmdir --ignore-fail-on-non-empty $temp_dir/midori$1/{} ";" -exec cp -r {} $temp_dir/midori$1/{} ";"
+popd > /dev/null
+
+echo -n .
+
+# copy lib
+pushd $root_dir > /dev/null
+find lib "(" -path "lib/midori/*" -o -path "lib/gtk-2.0/*" -o -path "lib/enchant/*" -o -path "lib/engines/*" ")" -a -name "*.dll" -prune -exec mkdir -p $temp_dir/midori$1/{} ";" -exec rmdir --ignore-fail-on-non-empty $temp_dir/midori$1/{} ";" -exec cp -r {} $temp_dir/midori$1/{} ";"
+popd > /dev/null
+
+echo -n .
+
+# copy share
+pushd $root_dir > /dev/null
+find share "(" -name "*midori*" -o -name "icons" -o -name "MS-Windows" -o -name "mime" ")" -prune -exec mkdir -p $temp_dir/midori$1/{} ";" -exec rmdir --ignore-fail-on-non-empty $temp_dir/midori$1/{} ";" -exec cp -r {} $temp_dir/midori$1/{} ";"
+
+# copy locales for gtk
+# so we have translated stock items, file dialogs
+
+find share "(" -name "midori.mo" ")" >  locale.list
+mkdir -p $temp_dir/midori$1/share/locale/
+for LOCALE in $(cat locale.list); do
+	 LOCALE=$(echo $LOCALE|awk -F/ '{print $3}')
+	 cp /usr/share/locale/$LOCALE/LC_MESSAGES/gtk20.mo $temp_dir/midori$1/share/locale/$LOCALE/LC_MESSAGES/
+done
+rm locale.list
+popd > /dev/null
+
+echo -n .
+
+# copy doc files to root
+cp $temp_dir/midori$1/share/doc/midori/{COPYING,AUTHORS} $temp_dir/midori$1
+
+echo -n .
+
+ARCHIVE=`pwd`/$ARCHIVE
+
+# store as tar.bz2 file
+pushd $temp_dir > /dev/null
+zip -rq $ARCHIVE midori$1
+popd > /dev/null
+
+echo -n .
+
+# remove working directory
+rm -r $temp_dir
+
+echo " ready"
+
diff --git a/win32/makedist/midori-0.3.3.nsi b/win32/makedist/midori-0.3.3.nsi
new file mode 100644
index 0000000..cb19b2b
--- /dev/null
+++ b/win32/makedist/midori-0.3.3.nsi
@@ -0,0 +1,664 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Copyright (C) 2009 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+;               2010-2011 Peter de Ridder <peter(at)xfce(dot)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.
+;
+; Installer script for Midori (Windows Installer)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+
+; Do a Cyclic Redundancy Check to make sure the installer was not corrupted by the download
+CRCCheck force
+RequestExecutionLevel user ; set execution level for Windows Vista
+
+;;;;;;;;;;;;;;;;;;;
+; helper defines  ;
+;;;;;;;;;;;;;;;;;;;
+!define PRODUCT_NAME "Midori"
+!define PRODUCT_VERSION "0.3.3"
+!define PRODUCT_BUILD "0"
+!define PRODUCT_VERSION_ID "${PRODUCT_VERSION}.${PRODUCT_BUILD}"
+!define PRODUCT_PUBLISHER "Christian Dywan"
+!define PRODUCT_WEB_SITE "http://www.twotoasts.de/"
+!define PRODUCT_DIR_REGKEY "Software\${PRODUCT_NAME}"
+!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
+!define PRODUCT_BROWER_KEY "Software\Clients\StartMenuInternet"
+!define PRODUCT_EXE "$INSTDIR\bin\midori.exe"
+!define UNINSTALL_EXE "$INSTDIR\uninst.exe"
+!define RESOURCEDIR "midori-${PRODUCT_VERSION}"
+
+;;;;;;;;;;;;;;;;;;;;;
+; Version resource  ;
+;;;;;;;;;;;;;;;;;;;;;
+VIProductVersion "${PRODUCT_VERSION_ID}"
+VIAddVersionKey "ProductName" "${PRODUCT_NAME}"
+VIAddVersionKey "FileVersion" "${PRODUCT_VERSION}"
+VIAddVersionKey "ProductVersion" "${PRODUCT_VERSION}"
+VIAddVersionKey "LegalCopyright" "Copyright 2009 by Christian Dywan"
+VIAddVersionKey "FileDescription" "${PRODUCT_NAME} Installer"
+
+BrandingText "$(^NAME) installer (NSIS ${NSIS_VERSION})"
+InstallDir "$PROGRAMFILES\${PRODUCT_NAME}"
+Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
+SetCompressor /SOLID lzma
+ShowInstDetails hide
+ShowUnInstDetails hide
+XPStyle on
+OutFile "${PRODUCT_NAME}-${PRODUCT_VERSION}_setup.exe"
+
+Var Answer
+Var UserName
+Var StartmenuFolder
+Var UNINSTDIR
+Var DefaultBrowser
+
+;;;;;;;;;;;;;;;;
+; MUI Settings ;
+;;;;;;;;;;;;;;;;
+!include "MUI2.nsh"
+
+!define MUI_ABORTWARNING
+!define MUI_ICON "midori.ico"
+!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall-full.ico"
+
+; Welcome page
+!insertmacro MUI_PAGE_WELCOME
+; License page
+;!define MUI_LICENSEPAGE_RADIOBUTTONS
+!insertmacro MUI_PAGE_LICENSE "${RESOURCEDIR}\COPYING"
+; Components page
+!insertmacro MUI_PAGE_COMPONENTS
+; Directory page
+!define MUI_PAGE_CUSTOMFUNCTION_LEAVE OnDirLeave
+!insertmacro MUI_PAGE_DIRECTORY
+; Start menu page
+!define MUI_STARTMENUPAGE_DEFAULTFOLDER "Midori"
+!define MUI_STARTMENUPAGE_REGISTRY_ROOT HKLM
+!define MUI_STARTMENUPAGE_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
+!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
+!insertmacro MUI_PAGE_STARTMENU ${PRODUCT_NAME} "$StartmenuFolder"
+; Instfiles page
+!insertmacro MUI_PAGE_INSTFILES
+; Finish page
+!define MUI_FINISHPAGE_RUN "${PRODUCT_EXE}"
+!define MUI_FINISHPAGE_RUN_NOTCHECKED
+!define MUI_FINISHPAGE_NOREBOOTSUPPORT
+!insertmacro MUI_PAGE_FINISH
+
+; Uninstaller page
+!insertmacro MUI_UNPAGE_CONFIRM 
+!insertmacro MUI_UNPAGE_INSTFILES 
+!insertmacro MUI_UNPAGE_FINISH 
+
+; Language file
+!insertmacro MUI_LANGUAGE "English" 
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Sections and InstTypes  ;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;
+InstType "Full"
+InstType "Minimal"
+
+Section "!Program Files" SEC01
+	SectionIn RO 1 2
+	SetOverwrite ifnewer
+
+	SetOutPath "$INSTDIR"
+	File "${RESOURCEDIR}\*"
+
+	SetOutPath "$INSTDIR\bin"
+	File /r "${RESOURCEDIR}\bin\*"
+
+	SetOutPath "$INSTDIR\etc"
+	File /r "${RESOURCEDIR}\etc\*"
+
+	SetOutPath "$INSTDIR\lib"
+	File /r /x "midori" "${RESOURCEDIR}\lib\*"
+
+	SetOutPath "$INSTDIR\share"
+	File /r /x "locale" /x "user" /x "Tango" "${RESOURCEDIR}\share\*"
+
+	SetOutPath "$INSTDIR\share\icons\Tango"
+	File "${RESOURCEDIR}\share\icons\Tango\index.theme"
+
+	SetOutPath "$INSTDIR"
+	CreateShortCut "$INSTDIR\Midori.lnk" "${PRODUCT_EXE}"
+
+	!insertmacro MUI_STARTMENU_WRITE_BEGIN ${PRODUCT_NAME}
+	CreateDirectory "$SMPROGRAMS\$StartmenuFolder"
+	CreateShortCut "$SMPROGRAMS\$StartmenuFolder\Midori.lnk" "${PRODUCT_EXE}"
+	!insertmacro MUI_STARTMENU_WRITE_END
+SectionEnd
+
+Section "Extensions" SEC04
+	SectionIn 1
+	SetOverwrite ifnewer
+	SetOutPath "$INSTDIR\lib"
+	File /r "${RESOURCEDIR}\lib\midori"
+SectionEnd
+
+Section "Language Files" SEC02
+	SectionIn 1
+	SetOutPath "$INSTDIR\share"
+	File /r "${RESOURCEDIR}\share\locale"
+SectionEnd
+
+Section "FAQ" SEC06
+	SectionIn 1
+	SetOutPath "$INSTDIR\share\doc\midori"
+	File "${RESOURCEDIR}\share\doc\midori\faq.css"
+	File "${RESOURCEDIR}\share\doc\midori\faq.html"
+SectionEnd
+
+!macro InstallTangoIconRenameSmall OPath IPath
+	File "/oname=16x16\${OPath}.png" "${RESOURCEDIR}\share\icons\Tango\16x16\${IPath}.png"
+	File "/oname=22x22\${OPath}.png" "${RESOURCEDIR}\share\icons\Tango\22x22\${IPath}.png"
+	File "/oname=32x32\${OPath}.png" "${RESOURCEDIR}\share\icons\Tango\32x32\${IPath}.png"
+!macroend
+
+!macro InstallTangoIconRename OPath IPath
+	!insertmacro InstallTangoIconRenameSmall ${OPath} ${IPath}
+	File "/oname=48x48\${OPath}.png" "${RESOURCEDIR}\share\icons\Tango\48x48\${IPath}.png"
+	File /nonfatal "/oname=64x64\${OPath}.png" "${RESOURCEDIR}\share\icons\Tango\64x64\${IPath}.png"
+	File /nonfatal "/oname=72x72\${OPath}.png" "${RESOURCEDIR}\share\icons\Tango\72x72\${IPath}.png"
+	File /nonfatal "/oname=96x96\${OPath}.png" "${RESOURCEDIR}\share\icons\Tango\96x96\${IPath}.png"
+	File /nonfatal "/oname=128x128\${OPath}.png" "${RESOURCEDIR}\share\icons\Tango\128x128\${IPath}.png"
+	File "/oname=scalable\${OPath}.svg" "${RESOURCEDIR}\share\icons\Tango\scalable\${IPath}.svg"
+	File /nonfatal "/oname=scalable\${OPath}.icon" "${RESOURCEDIR}\share\icons\Tango\scalable\${IPath}.icon"
+!macroend
+
+!macro InstallTangoIconSmall IconPath
+	!insertmacro InstallTangoIconRenameSmall ${IconPath} ${IconPath}
+!macroend
+
+!macro InstallTangoIcon IconPath
+	!insertmacro InstallTangoIconRename ${IconPath} ${IconPath}
+!macroend
+
+!macro CreateTangoSectionsSmall SectionPath
+	CreateDirectory "$INSTDIR\share\icons\Tango\16x16\${SectionPath}"
+	CreateDirectory "$INSTDIR\share\icons\Tango\22x22\${SectionPath}"
+	CreateDirectory "$INSTDIR\share\icons\Tango\32x32\${SectionPath}"
+!macroend
+
+!macro CreateTangoSections SectionPath
+	!insertmacro CreateTangoSectionsSmall ${SectionPath}
+	CreateDirectory "$INSTDIR\share\icons\Tango\48x48\${SectionPath}"
+	CreateDirectory "$INSTDIR\share\icons\Tango\64x64\${SectionPath}"
+	CreateDirectory "$INSTDIR\share\icons\Tango\72x72\${SectionPath}"
+	CreateDirectory "$INSTDIR\share\icons\Tango\96x96\${SectionPath}"
+	CreateDirectory "$INSTDIR\share\icons\Tango\128x128\${SectionPath}"
+	CreateDirectory "$INSTDIR\share\icons\Tango\scalable\${SectionPath}"
+!macroend
+
+Section "Tango icons" SEC07
+	SectionIn 1
+	SetOutPath "$INSTDIR\share\icons\Tango"
+
+	!insertmacro CreateTangoSections "actions"
+	!insertmacro CreateTangoSectionsSmall "animations"
+	!insertmacro CreateTangoSections "apps"
+	!insertmacro CreateTangoSections "categories"
+	!insertmacro CreateTangoSections "devices"
+	!insertmacro CreateTangoSections "emblems"
+	!insertmacro CreateTangoSections "emotes"
+	!insertmacro CreateTangoSections "mimetypes"
+	!insertmacro CreateTangoSections "places"
+	!insertmacro CreateTangoSections "status"
+
+	!insertmacro InstallTangoIcon "actions\gtk-add"
+	!insertmacro InstallTangoIcon "actions\gtk-bold"
+	!insertmacro InstallTangoIcon "actions\gtk-cancel"
+	!insertmacro InstallTangoIcon "actions\gtk-cancel"
+	!insertmacro InstallTangoIcon "actions\gtk-clear"
+	!insertmacro InstallTangoIcon "actions\gtk-copy"
+	!insertmacro InstallTangoIcon "actions\gtk-cut"
+	!insertmacro InstallTangoIcon "actions\gtk-delete"
+	!insertmacro InstallTangoIcon "actions\gtk-find"
+	!insertmacro InstallTangoIcon "actions\gtk-fullscreen"
+	!insertmacro InstallTangoIcon "actions\gtk-go-back-ltr"
+	!insertmacro InstallTangoIcon "actions\gtk-go-back-ltr"
+	!insertmacro InstallTangoIcon "actions\gtk-go-down"
+	!insertmacro InstallTangoIcon "actions\gtk-go-forward-ltr"
+	!insertmacro InstallTangoIcon "actions\gtk-go-forward-ltr"
+	!insertmacro InstallTangoIcon "actions\gtk-go-up"
+	!insertmacro InstallTangoIcon "actions\gtk-goto-first-ltr"
+	!insertmacro InstallTangoIcon "actions\gtk-goto-first-ltr"
+	!insertmacro InstallTangoIcon "actions\gtk-goto-last-ltr"
+	!insertmacro InstallTangoIcon "actions\gtk-goto-last-ltr"
+	!insertmacro InstallTangoIcon "actions\gtk-home"
+	!insertmacro InstallTangoIcon "actions\gtk-indent-ltr"
+	!insertmacro InstallTangoIcon "actions\gtk-indent-rtl"
+	!insertmacro InstallTangoIcon "actions\gtk-italic"
+	!insertmacro InstallTangoIcon "actions\gtk-jump-to-ltr"
+	!insertmacro InstallTangoIcon "actions\gtk-jump-to-ltr"
+	!insertmacro InstallTangoIcon "actions\gtk-media-next-ltr"
+	!insertmacro InstallTangoIcon "actions\gtk-media-next-rtl"
+	!insertmacro InstallTangoIcon "actions\gtk-media-previous-ltr"
+	!insertmacro InstallTangoIcon "actions\gtk-media-previous-rtl"
+	!insertmacro InstallTangoIcon "actions\gtk-open"
+	!insertmacro InstallTangoIcon "actions\gtk-paste"
+	!insertmacro InstallTangoIcon "actions\gtk-print"
+	!insertmacro InstallTangoIcon "actions\gtk-properties"
+	!insertmacro InstallTangoIcon "actions\gtk-redo-ltr"
+	!insertmacro InstallTangoIcon "actions\gtk-refresh"
+	!insertmacro InstallTangoIcon "actions\gtk-remove"
+	!insertmacro InstallTangoIcon "actions\gtk-save"
+	!insertmacro InstallTangoIcon "actions\gtk-save-as"
+	!insertmacro InstallTangoIcon "actions\gtk-select-all"
+	!insertmacro InstallTangoIcon "actions\gtk-stop"
+	!insertmacro InstallTangoIcon "actions\gtk-underline"
+	!insertmacro InstallTangoIcon "actions\gtk-undo-ltr"
+	!insertmacro InstallTangoIcon "actions\stock_add-bookmark"
+	!insertmacro InstallTangoIcon "actions\stock_new-tab"
+	!insertmacro InstallTangoIcon "actions\stock_new-window"
+	!insertmacro InstallTangoIconSmall "animations\process-working"
+	!insertmacro InstallTangoIcon "apps\gnome-settings-theme"
+	!insertmacro InstallTangoIcon "apps\gtk-help"
+	!insertmacro InstallTangoIcon "apps\terminal"
+	!insertmacro InstallTangoIcon "apps\web-browser"
+	!insertmacro InstallTangoIcon "categories\gtk-preferences"
+	#!insertmacro InstallTangoIcon "cookie-manager"
+	#!insertmacro InstallTangoIcon "document-open-recent"
+	#!insertmacro InstallTangoIcon "extention"
+	#!insertmacro InstallTangoIcon "feed-panel"
+	#!insertmacro InstallTangoIcon "gtk-about"
+	#!insertmacro InstallTangoIcon "gtk-close"
+	#!insertmacro InstallTangoIcon "gtk-convert"
+	#!insertmacro InstallTangoIcon "gtk-dialog-authentication"
+	#!insertmacro InstallTangoIcon "gtk-dnd-multiple"
+	#!insertmacro InstallTangoIcon "gtk-edit"
+	#!insertmacro InstallTangoIcon "gtk-execute"
+	#!insertmacro InstallTangoIcon "gtk-file"
+	#!insertmacro InstallTangoIcon "gtk-index"
+	#!insertmacro InstallTangoIcon "gtk-info"
+	#!insertmacro InstallTangoIcon "gtk-ok"
+	#!insertmacro InstallTangoIcon "gtk-orientation-portait"
+	#!insertmacro InstallTangoIcon "gtk-quit"
+	#!insertmacro InstallTangoIcon "gtk-select-color"
+	#!insertmacro InstallTangoIcon "gtk-select-font"
+	#!insertmacro InstallTangoIcon "gtk-sort-ascending"
+	#!insertmacro InstallTangoIcon "gtk-spell-check"
+	#!insertmacro InstallTangoIcon "gtk-undelete"
+	#!insertmacro InstallTangoIcon "gtk-yes"
+	#!insertmacro InstallTangoIcon "gtk-zoom-100"
+	#!insertmacro InstallTangoIcon "gtk-zoom-in"
+	#!insertmacro InstallTangoIcon "gtk-zoom-out"
+	!insertmacro InstallTangoIcon "mimetypes\gnome-mime-application-x-shockwave-flash"
+	!insertmacro InstallTangoIcon "mimetypes\gnome-mime-image"
+	!insertmacro InstallTangoIcon "mimetypes\package"
+	!insertmacro InstallTangoIcon "mimetypes\stock_script"
+	!insertmacro InstallTangoIcon "mimetypes\vcard"
+	#!insertmacro InstallTangoIcon "news-feed"
+	#!insertmacro InstallTangoIcon "place-holder"
+	!insertmacro InstallTangoIcon "places\gnome-stock-trash"
+	!insertmacro InstallTangoIcon "places\gtk-directory"
+	!insertmacro InstallTangoIcon "places\gtk-network"
+	!insertmacro InstallTangoIcon "status\gtk-dialog-error"
+	!insertmacro InstallTangoIcon "status\gtk-dialog-info"
+	!insertmacro InstallTangoIcon "status\gtk-dialog-warning"
+	!insertmacro InstallTangoIcon "status\gtk-missing-image"
+	!insertmacro InstallTangoIcon "status\network-offline"
+	#!insertmacro InstallTangoIcon "stock_bookmark"
+	#!insertmacro InstallTangoIcon "stock_mail-send"
+	#!insertmacro InstallTangoIcon "tab-panel"
+SectionEnd
+
+Section "Desktop Shortcuts" SEC03
+	SectionIn 1
+	CreateShortCut "$DESKTOP\Midori.lnk" "${PRODUCT_EXE}"
+	CreateShortCut "$QUICKLAUNCH\Midori.lnk" "${PRODUCT_EXE}"
+SectionEnd
+
+Section "Default Browser" SEC05
+	SectionIn 1
+	StrCpy $DefaultBrowser "yes"
+SectionEnd
+
+Section -AdditionalIcons
+	SetOutPath $INSTDIR
+	!insertmacro MUI_STARTMENU_WRITE_BEGIN ${PRODUCT_NAME}
+	WriteIniStr "$INSTDIR\Website.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"
+	CreateShortCut "$SMPROGRAMS\$StartmenuFolder\Website.lnk" "${PRODUCT_EXE}" \
+		"${PRODUCT_WEB_SITE}" "${PRODUCT_EXE}"
+	CreateShortCut "$SMPROGRAMS\$StartmenuFolder\Uninstall.lnk" "${UNINSTALL_EXE}"
+	CreateShortCut "$SMPROGRAMS\$StartmenuFolder\Make Default.lnk" "${UNINSTALL_EXE}" \
+		"/S /MAKEDEFAULT" "${PRODUCT_EXE}"
+	!insertmacro MUI_STARTMENU_WRITE_END
+SectionEnd
+
+Section -Post
+	WriteUninstaller "${UNINSTALL_EXE}"
+	WriteRegStr SHCTX "${PRODUCT_DIR_REGKEY}" Path "$INSTDIR"
+	WriteRegStr SHCTX "${PRODUCT_UNINST_KEY}" "StartMenu" "$SMPROGRAMS\$StartmenuFolder"
+	${if} $Answer == "yes" ; if user is admin
+		WriteRegStr SHCTX "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
+		WriteRegStr SHCTX "${PRODUCT_UNINST_KEY}" "UninstallString" "${UNINSTALL_EXE}"
+		WriteRegStr SHCTX "${PRODUCT_UNINST_KEY}" "DisplayIcon" "${PRODUCT_EXE}"
+		WriteRegStr SHCTX "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
+		WriteRegStr SHCTX "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
+		WriteRegStr SHCTX "${PRODUCT_UNINST_KEY}" "URLUpdateInfo" "${PRODUCT_WEB_SITE}"
+		WriteRegStr SHCTX "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
+		WriteRegDWORD SHCTX "${PRODUCT_UNINST_KEY}" "NoModify" 0x00000001
+		WriteRegDWORD SHCTX "${PRODUCT_UNINST_KEY}" "NoRepair" 0x00000001
+
+		WriteRegStr HKLM "${PRODUCT_BROWER_KEY}\MIDORI.EXE" "" "${PRODUCT_NAME}"
+		WriteRegStr HKLM "${PRODUCT_BROWER_KEY}\MIDORI.EXE\DefaultIcon" "" "${PRODUCT_EXE},0"
+		WriteRegStr HKLM "${PRODUCT_BROWER_KEY}\MIDORI.EXE\shell\open\command" "" "${PRODUCT_EXE}"
+		WriteRegStr HKLM "${PRODUCT_BROWER_KEY}\MIDORI.EXE\InstallInfo" "HideIconsCommand" '"${UNINSTALL_EXE}" /S /HIDE'
+		WriteRegDWORD HKLM "${PRODUCT_BROWER_KEY}\MIDORI.EXE\InstallInfo" "IconsVisible" 0x00000000
+		WriteRegStr HKLM "${PRODUCT_BROWER_KEY}\MIDORI.EXE\InstallInfo" "ReinstallCommand" '"${UNINSTALL_EXE}" /S /MAKEDEFAULT'
+		WriteRegStr HKLM "${PRODUCT_BROWER_KEY}\MIDORI.EXE\InstallInfo" "ShowIconsCommand" '"${UNINSTALL_EXE}" /S /SHOW'
+	${endif}
+
+	${if} $DefaultBrowser == "yes"
+		${if} $Answer == "yes" ; if user is admin
+			WriteRegDWORD HKLM "${PRODUCT_BROWER_KEY}\MIDORI.EXE\InstallInfo" "IconsVisible" 0x00000001
+		${endif}
+		WriteRegStr HKCU "${PRODUCT_BROWER_KEY}" "" "MIDORI.EXE"
+		WriteRegStr HKCR "http\DefaultIcon" "" "${PRODUCT_EXE},0"
+		WriteRegStr HKCR "http\shell\open\command" "" '${PRODUCT_EXE} "%1"'
+		WriteRegStr HKCR "https\DefaultIcon" "" "${PRODUCT_EXE},0"
+		WriteRegStr HKCR "https\shell\open\command" "" '${PRODUCT_EXE} "%1"'
+	${endif}
+SectionEnd
+
+Section Uninstall
+	Delete "$INSTDIR\Website.url"
+	Delete "${UNINSTALL_EXE}"
+	Delete "$INSTDIR\COPYING"
+	Delete "$INSTDIR\AUTHORS"
+	Delete "$INSTDIR\Midori.lnk"
+
+	; delete start menu entry
+	ReadRegStr $0 SHCTX "${PRODUCT_UNINST_KEY}" "StartMenu"
+	RMDir /r "$0"
+
+	Delete "$QUICKLAUNCH\Midori.lnk"
+	Delete "$DESKTOP\Midori.lnk"
+
+	RMDir /r "$INSTDIR\bin"
+	RMDir /r "$INSTDIR\etc"
+	RMDir /r "$INSTDIR\lib"
+	RMDir /r "$INSTDIR\share"
+	RMDir "$INSTDIR"
+
+	DeleteRegKey SHCTX "${PRODUCT_UNINST_KEY}"
+	DeleteRegKey HKCU "${PRODUCT_UNINST_KEY}"
+	DeleteRegKey SHCTX "${PRODUCT_DIR_REGKEY}"
+	DeleteRegKey HKCU "${PRODUCT_DIR_REGKEY}"
+	DeleteRegKey HKLM "${PRODUCT_BROWER_KEY}\MIDORI.EXE"
+
+	SetAutoClose true
+SectionEnd
+
+;;;;;;;;;;;;;;;;;;;;;;;;;
+; Section descriptions  ;
+;;;;;;;;;;;;;;;;;;;;;;;;;
+!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
+!insertmacro MUI_DESCRIPTION_TEXT ${SEC01} "Required program files. You cannot skip these files."
+!insertmacro MUI_DESCRIPTION_TEXT ${SEC02} "Various translations of Midori's interface."
+!insertmacro MUI_DESCRIPTION_TEXT ${SEC03} "Create shortcuts for Midori on the desktop and in the Quicklaunch Bar"
+!insertmacro MUI_DESCRIPTION_TEXT ${SEC04} "Available plugins like 'Advertisement Blocker', 'Form history filler' and 'Mouse Gestures'."
+!insertmacro MUI_DESCRIPTION_TEXT ${SEC05} "Make Midori the default browser."
+!insertmacro MUI_DESCRIPTION_TEXT ${SEC06} "User manual of the Midori application."
+!insertmacro MUI_DESCRIPTION_TEXT ${SEC07} "Better looking icons from the Tango icon theme."
+!insertmacro MUI_FUNCTION_DESCRIPTION_END
+
+;;;;;;;;;;;;;;;;;;;;;
+; helper functions  ;
+;;;;;;;;;;;;;;;;;;;;;
+
+; (from http://jabref.svn.sourceforge.net/viewvc/jabref/trunk/jabref/src/windows/nsis/setup.nsi)
+!macro IsUserAdmin Result UName
+	ClearErrors
+	UserInfo::GetName
+	IfErrors Win9x
+	Pop $0
+	StrCpy ${UName} $0
+	UserInfo::GetAccountType
+	Pop $1
+	${if} $1 == "Admin"
+		StrCpy ${Result} "yes"
+	${else}
+		StrCpy ${Result} "no"
+	${endif}
+	Goto done
+
+Win9x:
+	StrCpy ${Result} "yes"
+done:
+!macroend
+
+; (from http://nsis.sourceforge.net/GetOptions)
+Function un.GetOptions
+	!define GetOptions `!insertmacro GetOptionsCall`
+ 
+	!macro GetOptionsCall _PARAMETERS _OPTION _RESULT
+		Push `${_PARAMETERS}`
+		Push `${_OPTION}`
+		Call un.GetOptions
+		Pop ${_RESULT}
+	!macroend
+ 
+	Exch $1
+	Exch
+	Exch $0
+	Exch
+	Push $2
+	Push $3
+	Push $4
+	Push $5
+	Push $6
+	Push $7
+	ClearErrors
+ 
+	StrCpy $2 $1 '' 1
+	StrCpy $1 $1 1
+	StrLen $3 $2
+	StrCpy $7 0
+ 
+	begin:
+	StrCpy $4 -1
+	StrCpy $6 ''
+ 
+	quote:
+	IntOp $4 $4 + 1
+	StrCpy $5 $0 1 $4
+	StrCmp $5$7 '0' notfound
+	StrCmp $5 '' trimright
+	StrCmp $5 '"' 0 +7
+	StrCmp $6 '' 0 +3
+	StrCpy $6 '"'
+	goto quote
+	StrCmp $6 '"' 0 +3
+	StrCpy $6 ''
+	goto quote
+	StrCmp $5 `'` 0 +7
+	StrCmp $6 `` 0 +3
+	StrCpy $6 `'`
+	goto quote
+	StrCmp $6 `'` 0 +3
+	StrCpy $6 ``
+	goto quote
+	StrCmp $5 '`' 0 +7
+	StrCmp $6 '' 0 +3
+	StrCpy $6 '`'
+	goto quote
+	StrCmp $6 '`' 0 +3
+	StrCpy $6 ''
+	goto quote
+	StrCmp $6 '"' quote
+	StrCmp $6 `'` quote
+	StrCmp $6 '`' quote
+	StrCmp $5 $1 0 quote
+	StrCmp $7 0 trimleft trimright
+ 
+	trimleft:
+	IntOp $4 $4 + 1
+	StrCpy $5 $0 $3 $4
+	StrCmp $5 '' notfound
+	StrCmp $5 $2 0 quote
+	IntOp $4 $4 + $3
+	StrCpy $0 $0 '' $4
+	StrCpy $4 $0 1
+	StrCmp $4 ' ' 0 +3
+	StrCpy $0 $0 '' 1
+	goto -3
+	StrCpy $7 1
+	goto begin
+ 
+	trimright:
+	StrCpy $0 $0 $4
+	StrCpy $4 $0 1 -1
+	StrCmp $4 ' ' 0 +3
+	StrCpy $0 $0 -1
+	goto -3
+	StrCpy $3 $0 1
+	StrCpy $4 $0 1 -1
+	StrCmp $3 $4 0 end
+	StrCmp $3 '"' +3
+	StrCmp $3 `'` +2
+	StrCmp $3 '`' 0 end
+	StrCpy $0 $0 -1 1
+	goto end
+ 
+	notfound:
+	SetErrors
+	StrCpy $0 ''
+ 
+	end:
+	Pop $7
+	Pop $6
+	Pop $5
+	Pop $4
+	Pop $3
+	Pop $2
+	Pop $1
+	Exch $0
+FunctionEnd
+
+Function .onInit
+	StrCpy "$StartmenuFolder" "Midori"
+
+	; (from http://jabref.svn.sourceforge.net/viewvc/jabref/trunk/jabref/src/windows/nsis/setup.nsi)
+	; If the user does *not* have administrator privileges, abort
+	StrCpy $Answer ""
+	StrCpy $UserName ""
+	!insertmacro IsUserAdmin $Answer $UserName ; macro from LyXUtils.nsh
+	${if} $Answer == "yes"
+		SetShellVarContext all ; set that e.g. shortcuts will be created for all users
+	${else}
+		SetShellVarContext current
+		; TODO is this really what we want? $PROGRAMFILES is not much better because
+		; probably the unprivileged user can't write it anyways
+		StrCpy $INSTDIR "$PROFILE\$(^Name)"
+	${endif}
+
+	; prevent running multiple instances of the installer
+	System::Call 'kernel32::CreateMutexA(i 0, i 0, t "midori_installer") i .r1 ?e'
+	Pop $R0
+	StrCmp $R0 0 +3
+	MessageBox MB_OK|MB_ICONEXCLAMATION "The installer is already running." /SD IDOK
+	Abort
+	; warn about a new install over an existing installation
+	ReadRegStr $R0 SHCTX "${PRODUCT_UNINST_KEY}" "UninstallString"
+	StrCmp $R0 "" finish
+
+	MessageBox MB_YESNO|MB_ICONEXCLAMATION \
+	"Midori has already been installed. $\nDo you want to remove the previous version before installing $(^Name) ?" \
+		/SD IDYES IDYES remove IDNO finish
+
+remove:
+	; run the uninstaller
+	ClearErrors
+	; we read the installation path of the old installation from the Registry
+	ReadRegStr $UNINSTDIR SHCTX "${PRODUCT_DIR_REGKEY}" "Path"
+	IfSilent dosilent nonsilent
+dosilent:
+	ExecWait '$R0 /S _?=$UNINSTDIR' ;Do not copy the uninstaller to a temp file
+	Goto finish
+nonsilent:
+	ExecWait '$R0 _?=$UNINSTDIR' ;Do not copy the uninstaller to a temp file
+finish:
+FunctionEnd
+
+Function un.onInit
+	StrCpy $Answer ""
+	!insertmacro IsUserAdmin $Answer $UserName
+	${if} $Answer == "yes"
+		SetShellVarContext all
+	${else}
+		SetShellVarContext current
+	${endif}
+
+	${GetOptions} "$CMDLINE" "/MAKEDEFAULT" $0
+	IfErrors 0 +2
+	goto makedefault_next
+
+	WriteRegStr HKCU "${PRODUCT_BROWER_KEY}" "" "MIDORI.EXE"
+	WriteRegStr HKCR "http\DefaultIcon" "" "${PRODUCT_EXE},0"
+	WriteRegStr HKCR "http\shell\open\command" "" '${PRODUCT_EXE} "%1"'
+	WriteRegStr HKCR "https\DefaultIcon" "" "${PRODUCT_EXE},0"
+	WriteRegStr HKCR "https\shell\open\command" "" '${PRODUCT_EXE} "%1"'
+	Abort
+makedefault_next:
+
+	${GetOptions} "$CMDLINE" "/SHOW" $0
+	IfErrors 0 +2
+	goto show_next
+
+	${if} $Answer == "yes" ; if user is admin
+		WriteRegDWORD HKLM "${PRODUCT_BROWER_KEY}\MIDORI.EXE\InstallInfo" "IconsVisible" 0x00000001
+	${endif}
+	CreateShortCut "$DESKTOP\Midori.lnk" "${PRODUCT_EXE}"
+	CreateShortCut "$QUICKLAUNCH\Midori.lnk" "${PRODUCT_EXE}"
+	Abort
+show_next:
+
+	${GetOptions} "$CMDLINE" "/HIDE" $0
+	IfErrors 0 +2
+	goto hide_next
+
+	${if} $Answer == "yes" ; if user is admin
+		WriteRegDWORD HKLM "${PRODUCT_BROWER_KEY}\MIDORI.EXE\InstallInfo" "IconsVisible" 0x00000000
+	${endif}
+	Delete "$QUICKLAUNCH\Midori.lnk"
+	Delete "$DESKTOP\Midori.lnk"
+	Abort
+hide_next:
+
+	; If the user does *not* have administrator privileges, abort
+	${if} $Answer != "yes"
+		; check if the Midori has been installed with admin permisions
+		ReadRegStr $0 HKLM "${PRODUCT_UNINST_KEY}" "Publisher"
+		${if} $0 != ""
+			MessageBox MB_OK|MB_ICONSTOP "You need administrator privileges to uninstall Midori!" \
+				/SD IDOK
+			Abort
+		${endif}
+	${endif}
+FunctionEnd
+
+Function OnDirLeave
+	ClearErrors
+	SetOutPath "$INSTDIR" ; what about IfError creating $INSTDIR?
+	GetTempFileName $1 "$INSTDIR" ; creates tmp file (or fails)
+	FileOpen $0 "$1" "w" ; error to open?
+	FileWriteByte $0 "0"
+	IfErrors notPossible possible
+
+notPossible:
+	RMDir "$INSTDIR" ; removes folder if empty
+	MessageBox MB_OK "The given directory is not writeable. Please choose another one!" /SD IDOK
+	Abort
+possible:
+	FileClose $0
+	Delete "$1"
+FunctionEnd
diff --git a/win32/x86-mingw32-opensuse/install.sh b/win32/x86-mingw32-opensuse/install.sh
new file mode 100644
index 0000000..909a523
--- /dev/null
+++ b/win32/x86-mingw32-opensuse/install.sh
@@ -0,0 +1,72 @@
+#!/bin/sh
+
+# Copyright (C) 2010-2011 Peter de Ridder <peter at 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.2
+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
+
+# 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
+
+# downlaod 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
+  # 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/
+  # remove the extracted file
+  rm -rf $BUILD_PATH/usr
+  popd
+done < packages.version
+
+# remove build directory
+rm -rf $BUILD_PATH
diff --git a/win32/x86-mingw32-opensuse/packages.list b/win32/x86-mingw32-opensuse/packages.list
new file mode 100644
index 0000000..5caff20
--- /dev/null
+++ b/win32/x86-mingw32-opensuse/packages.list
@@ -0,0 +1,79 @@
+This file is licensed under the terms of the LGPL 2.1, see the file COPYING.
+
+mingw32-atk
+mingw32-atk-devel
+mingw32-cairo-devel
+mingw32-dbus-1
+mingw32-dbus-1-glib
+mingw32-dbus-1-glib-devel
+mingw32-enchant
+mingw32-enchant-devel
+mingw32-fontconfig
+mingw32-fontconfig-devel
+mingw32-freetype
+mingw32-freetype-devel
+mingw32-gcc-c++
+mingw32-gcc
+mingw32-gdk-pixbuf
+mingw32-gdk-pixbuf-devel
+mingw32-gettext-runtime
+mingw32-gettext-tools
+mingw32-glib2
+mingw32-glib2-devel
+mingw32-gst-plugins-base-devel
+mingw32-gstreamer-devel
+mingw32-gtk2
+mingw32-gtk2-devel
+mingw32-hunspell
+mingw32-hunspell-devel
+mingw32-libexpat
+mingw32-libexpat-devel
+mingw32-libgcc
+mingw32-libgcrypt
+mingw32-libgcrypt-devel
+mingw32-libcairo2
+mingw32-libgeoclue
+mingw32-libgeoclue-devel
+mingw32-libgnutls
+mingw32-libgnutls-devel
+mingw32-libgpg-error
+mingw32-libgpg-error-devel
+mingw32-libgstinterfaces
+mingw32-libgstreamer
+mingw32-libidn
+mingw32-libidn-devel
+mingw32-libjasper
+mingw32-libjasper-devel
+mingw32-libjpeg
+mingw32-libjpeg-devel
+mingw32-libopenssl
+mingw32-libopenssl-devel
+mingw32-libpng
+mingw32-libpng-devel
+mingw32-libsoup
+mingw32-libsoup-devel
+mingw32-libstdc++
+mingw32-libsqlite
+mingw32-libsqlite-devel
+mingw32-libtasn1
+mingw32-libtasn1-devel
+mingw32-libtiff
+mingw32-libtiff-devel
+mingw32-libwebkit
+mingw32-libwebkit-devel
+mingw32-libxml2
+mingw32-libxml2-devel
+mingw32-libxslt
+mingw32-libxslt-devel
+mingw32-pango
+mingw32-pango-devel
+mingw32-pixman
+mingw32-pixman-devel
+mingw32-pthreads
+mingw32-pthreads-devel
+mingw32-shared-mime-info
+mingw32-shared-mime-info-devel
+mingw32-win_iconv
+mingw32-win_iconv-devel
+mingw32-zlib
+mingw32-zlib-devel



More information about the Xfce4-commits mailing list