Provide build scripts for win32 releases
This commit is contained in:
parent
366ca3f7da
commit
d36e12f21d
7 changed files with 1054 additions and 0 deletions
92
win32/README_OPENSUSE_MINGW.txt
Normal file
92
win32/README_OPENSUSE_MINGW.txt
Normal file
|
@ -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.
|
||||
|
20
win32/crossconfig.sh
Normal file
20
win32/crossconfig.sh
Normal file
|
@ -0,0 +1,20 @@
|
|||
#!/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.
|
||||
|
||||
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 $@
|
||||
|
31
win32/makedist/dll-recursive.sh
Normal file
31
win32/makedist/dll-recursive.sh
Normal file
|
@ -0,0 +1,31 @@
|
|||
#! /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.
|
||||
|
||||
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
|
||||
|
96
win32/makedist/makedist.midori
Normal file
96
win32/makedist/makedist.midori
Normal file
|
@ -0,0 +1,96 @@
|
|||
#! /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.
|
||||
|
||||
# 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"
|
||||
|
664
win32/makedist/midori-0.3.3.nsi
Normal file
664
win32/makedist/midori-0.3.3.nsi
Normal file
|
@ -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
|
72
win32/x86-mingw32-opensuse/install.sh
Normal file
72
win32/x86-mingw32-opensuse/install.sh
Normal file
|
@ -0,0 +1,72 @@
|
|||
#!/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.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
|
79
win32/x86-mingw32-opensuse/packages.list
Normal file
79
win32/x86-mingw32-opensuse/packages.list
Normal file
|
@ -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
|
Loading…
Reference in a new issue