clarify these old files are not for the current Windows AIO package

This commit is contained in:
Paul Franklin
2016-03-07 14:53:43 -08:00
parent 6c1ba0f23f
commit c007cdd82c
13 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
** The files in this folder ([SVNRoot]\windows\nsis) are deprecated. **
They remain here for reference only and will be removed at a later date.

View File

@@ -0,0 +1,49 @@
#
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2008 Steve Hall
# Copyright (C) 2008 Stephen George
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
import sys
fn = sys.argv[1]
f = open(fn,"w")
f.write('[tests]\n')
try:
from gi.repository import Gtk
f.write('gtk=yes\n')
f.write('gtkver=%d.%d.%d\n' % Gtk.gtk_version)
f.write('pygtk=yes\n')
f.write('pygtkver=%d.%d.%d\n' % Gtk.pygtk_version)
except ImportError:
f.write('gtk=no\n')
f.write('gtkver=no\n')
f.write('pygtk=no\n')
f.write('pygtkver=no\n')
try:
import cairo
f.write('pycairo=yes\n')
#f.write('pycairover=%s\n' % cairo.version_info)
f.write('pycairover=%s\n' % str(cairo.version_info) )
except ImportError:
f.write('pycairo=no\n')
f.write('pycairover=no\n')
f.close()

View File

@@ -0,0 +1,393 @@
@echo off
rem
rem Filename: gramps-build.bat
rem Author: Steve Hall [ digitect dancingpaper com ]
rem Date: (See timestamp in :CHOOSE)
rem
rem Documentation
rem License {{{1
rem --------
rem This program is free software; you can redistribute it and/or
rem modify it under the terms of the GNU General Public License as
rem published by the Free Software Foundation; either version 2 of the
rem License, or (at your option) any later version.
rem [ http://www.gnu.org/licenses/gpl.html ]
rem
rem This program is distributed in the hope that it will be useful,
rem but WITHOUT ANY WARRANTY; without even the implied warranty of
rem MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
rem General Public License for more details.
rem
rem You should have received a copy of the GNU General Public License
rem along with this program; if not, write to the Free Software
rem Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
rem 02111-1307, USA.
rem
rem Usage {{{1
rem ------
rem This script automates the build process and creation of an
rem installer as much as possible, downloading sources and making
rem assumptions where necessary. To use it, the following are
rem required:
rem
rem o Windows NT/2K/XP (we no longer support 95/98/ME)
rem
rem o These GNU tools on path:
rem - gzip/gunzip
rem - tar (GNU version >= 1.13.10)
rem - sed
rem - wget
rem
rem o The Nullsoft Installer.
rem
rem o Adjust the variables in :ENVIRONMENT (below) to fit your
rem preferences and installation conditions.
rem
rem 1}}}
rem Initialization
rem Version and Personal Environment (*** FIX ME!! ***) {{{1
echo -----------------------------------------------------------------
echo Version and Personal environment...
echo.
rem *****************************************************
rem * MAKE ALL ADJUSTMENTS IN THIS SECTION! *
rem version (also used for location
set VERSION=3
set VERSIONSUB=0
set VERSIONPT=3
set VERSIONBUILD=1
rem path to Nullsoft Installer (NSIS)
set NSIS=C:\PROGRA~1\NSIS
rem path to Nullsoft customized files
set CUSTOM=C:\DOCUME~1\halls\_seh\devel\gramps
rem path to Python
if "%PYTHONPATH%"=="" echo Manually setting $PYTHONPATH...
if "%PYTHONPATH%"=="" set PYTHONPATH=C:\Python25
rem * END OF ADJUSTMENTS SECTION *
rem ******************************************************
rem Initial Environment {{{1
echo -----------------------------------------------------------------
echo Initial environment...
echo.
rem force Win NT/2K/XP
if not "%OS%"=="Windows_NT" echo Windows NT/2K/XP required, unable to continue.
if not "%OS%"=="Windows_NT" goto QUIT
rem program name
set PROG=gramps
rem save system PATH
set PATHORIG=%PATH%
rem set build path (location of this file and tarball)
set BUILDPATH=%CD%
rem cat for general filename
set VERSIONNAME=%PROG%-%VERSION%.%VERSIONSUB%.%VERSIONPT%
rem Verify {{{1
echo -----------------------------------------------------------------
echo Verifying environment and utilities available...
echo.
echo %%BUILDPATH%% : %BUILDPATH%
echo %%VERSIONNAME%% : %VERSIONNAME%
echo %%NSIS%% : %NSIS%
echo %%CUSTOM%% : %CUSTOM%
rem date
for /F "TOKENS=1* DELIMS= " %%A in ('date/t') do set MYDAYNAME=%%A
for /F "TOKENS=2* DELIMS= " %%A in ('date/t') do set MYMDY=%%A
for /f "TOKENS=3* DELIMS=/" %%A in ('echo %MYMDY%') do set MYYEAR=%%A
for /f "TOKENS=1* DELIMS=/" %%A in ('echo %MYMDY%') do set MYMONTH=%%A
for /f "TOKENS=2* DELIMS=/" %%A in ('echo %MYMDY%') do set MYDAY=%%A
rem time
for /F "TOKENS=1* DELIMS=:" %%A in ('time/t') do set MYHOUR=%%A
for /F "TOKENS=2* DELIMS=: " %%A in ('time/t') do set MYMINUTE=%%A
echo Date : %MYYEAR%-%MYMONTH%-%MYDAY%
echo Time : %MYHOUR%:%MYMINUTE%
echo Build version : %VERSIONBUILD%
echo.
set TRY=gzip.exe
for %%A in (%TRY%) do set YES=%%~$PATH:A
if "%YES%"=="" goto UTILHALT
echo Found %TRY%...
set TRY=gunzip.exe
for %%A in (%TRY%) do set YES=%%~$PATH:A
if "%YES%"=="" goto UTILHALT
echo Found %TRY%...
set TRY=sed.exe
for %%A in (%TRY%) do set YES=%%~$PATH:A
if "%YES%"=="" goto UTILHALT
echo Found %TRY%...
set TRY=tar.exe
for %%A in (%TRY%) do set YES=%%~$PATH:A
if "%YES%"=="" goto UTILHALT
echo Found %TRY%...
set TRY=wget.exe
for %%A in (%TRY%) do set YES=%%~$PATH:A
if "%YES%"=="" goto UTILHALT
echo Found %TRY%...
echo.
set /P CH=Continue? [Y/N]
if /I "%CH%"=="Y" goto CHOOSE
:UTILHALT
if "%YES%"=="" echo Utility %TRY% not found on PATH, unable to continue.
echo.
echo Quitting...
echo.
goto QUIT
rem }}}1
rem Procedures
rem CHOOSE {{{1
:CHOOSE
cls
echo.
echo ______________________________________________________________________________
echo Updated: 2007-06-18 07:09:16-0400
echo.
echo Please select a choice:
echo.
echo [1] Clean build location
echo [2] Extract source tarballs
echo [3] Build source
echo [4] Nullsoft Installer
echo.
echo [R]emove existing installation
echo.
echo [A]uto
echo [Q]uit
echo.
echo ______________________________________________________________________________
echo.
:WinNT
set /P CH=Please enter choice above...
if /I "%CH%"=="Q" goto QUIT
if /I "%CH%"=="A" goto AUTO
if /I "%CH%"=="R" goto REMOVE
if /I "%CH%"=="4" goto NSIS
if /I "%CH%"=="3" goto BUILD
if /I "%CH%"=="2" goto SOURCE
if /I "%CH%"=="1" goto CLEAN
goto WinNT
rem AUTO {{{1
:AUTO
echo -----------------------------------------------------------------
echo Setting Auto-Run...
echo.
set RETURN=no
rem CLEAN {{{1
:CLEAN
echo -----------------------------------------------------------------
echo Cleaning up build location (removing all directories and files)
echo.
if not exist %BUILDPATH%\%VERSIONNAME% echo (Nothing to clean.)
if exist %BUILDPATH%\%VERSIONNAME% rmdir /s /q %BUILDPATH%\%VERSIONNAME%
if not "%RETURN%"=="no" echo.
if not "%RETURN%"=="no" echo Build location cleaned. (Ctrl+C to quit)
if not "%RETURN%"=="no" pause
if not "%RETURN%"=="no" goto CHOOSE
rem SOURCE {{{1
:SOURCE
echo -----------------------------------------------------------------
echo Downloading and extracting source tarballs...
echo.
rem NOTE: tar -xzf does not always work
:SOURCES
echo %VERSIONNAME%.tar.gz...
if exist "%VERSIONNAME%.tar" goto TARBALL
if not exist "%VERSIONNAME%.tar.gz" echo.
if not exist "%VERSIONNAME%.tar.gz" echo Tarball not found, downloading...
if not exist "%VERSIONNAME%.tar.gz" echo.
if not exist "%VERSIONNAME%.tar.gz" wget -c http://superb-east.dl.sourceforge.net/sourceforge/gramps/%VERSIONNAME%.tar.gz
if not exist "%VERSIONNAME%.tar.gz" echo.
if not exist "%VERSIONNAME%.tar.gz" echo Download failed, unable to continue.
if not exist "%VERSIONNAME%.tar.gz" echo.
if not exist "%VERSIONNAME%.tar.gz" goto CHOOSE
if exist "%VERSIONNAME%.tar.gz" gunzip "%VERSIONNAME%.tar.gz"
echo tarball unzipped.
:TARBALL
if not exist "%VERSIONNAME%.tar" echo.
if not exist "%VERSIONNAME%.tar" echo Unable to continue, no tarball found.
if not exist "%VERSIONNAME%.tar" echo.
if not exist "%VERSIONNAME%.tar" goto CHOOSE
echo extracting...
tar -xvf %VERSIONNAME%.tar
if not "%RETURN%"=="no" echo.
if not "%RETURN%"=="no" echo Source tarballs unpacked. (Ctrl+C to quit)
if not "%RETURN%"=="no" pause
if not "%RETURN%"=="no" goto CHOOSE
rem BUILD {{{1
:BUILD
echo -----------------------------------------------------------------
echo Building...
echo.
rem TODO: This should happen on the user's machine, since the process
rem apparently embeds a number of paths into the result.
echo.
echo Translations...
echo.
rem TODO: Brian's script doesn't work for me...
rem cd "%BUILDPATH%\%VERSIONNAME%"
rem if exist "%CUSTOM%\grampsSetup.py" copy /Y "%CUSTOM%\grampsSetup.py" "%BUILDPATH%\%VERSIONNAME%"
rem if exist "%CUSTOM%\grampsSetup.py" echo Setting up language files (this could take a while)...
rem rem Use Brian's grampsSetup.py utility...
rem rem switches:
rem rem -r :: release
rem rem -c :: compile
rem rem -t :: set up the language files
rem rem Note: we use only "-t", we don't want to compile
rem if exist "%CUSTOM%\grampsSetup.py" python grampsSetup.py -t
echo.
echo Setting up language files...
echo.
cd "%BUILDPATH%\%VERSIONNAME%\po"
rem create the directories
for %%A in (*.po) do if not exist lang\%%~nA\LC_MESSAGES mkdir lang\%%~nA\LC_MESSAGES
rem convert .po to gramps.mo (in directories)
for %%A in (*.po) do %PYTHONPATH%\python %PYTHONPATH%\Tools\i18n\msgfmt.py -o lang\%%~nA\LC_MESSAGES\gramps.mo %%A & echo processing language %%~nA...
echo.
echo Attempting to update build level in const.py to "%VERSIONBUILD%"...
echo.
cd "%BUILDPATH%\%VERSIONNAME%\src"
sed -i -e "s/^\(version \s\+= \"%VERSION%\.%VERSIONSUB%\.%VERSIONPT%-\).\+\"/\1%VERSIONBUILD%\"/g" const.py
rem ren sedDOSSUX const.py
if not "%RETURN%"=="no" echo.
if not "%RETURN%"=="no" echo Did we enjoy building?
if not "%RETURN%"=="no" pause
if not "%RETURN%"=="no" goto CHOOSE
rem NSIS {{{1
:NSIS
echo -----------------------------------------------------------------
echo Nullsoft Installer creation
echo.
if exist %NSIS%\CON goto NSISFOUND
echo.
echo NSIS path not found. Unable to continue...
pause
goto CHOOSE
:NSISFOUND
rem echo copying customized NSIS files...
rem if not exist "%BUILDPATH%\%VERSIONNAME%\nsis" mkdir "%BUILDPATH%\%VERSIONNAME%\nsis"
rem copy /Y "%NSIS%\Contrib\Graphics\Icons\classic-install.ico" "%BUILDPATH%\%VERSIONNAME%\nsis\classic-install.ico"
rem copy /Y "%NSIS%\Contrib\Graphics\Icons\classic-uninstall.ico" "%BUILDPATH%\%VERSIONNAME%\nsis\classic-uninstall.ico"
rem copy /Y "%NSIS%\Contrib\Graphics\Header\win.bmp" "%BUILDPATH%\%VERSIONNAME%\nsis\win.bmp"
rem if exist "%CUSTOM%\nsis-splash.bmp" copy /Y "%CUSTOM%\nsis-splash.bmp" "%BUILDPATH%\%VERSIONNAME%\nsis\nsis-splash.bmp"
rem if exist "%CUSTOM%\nsis-checkboxes.bmp" copy /Y "%CUSTOM%\nsis-checkboxes.bmp" "%BUILDPATH%\%VERSIONNAME%\nsis\nsis-checkboxes.bmp"
rem TODO:
echo copying temporary, should end up in next release (?)
if not exist "%BUILDPATH%\%VERSIONNAME%\nsis\CON" mkdir "%BUILDPATH%\%VERSIONNAME%\nsis"
if exist "%CUSTOM%\gramps.nsi" copy /Y "%CUSTOM%\gramps.nsi" /Y "%BUILDPATH%\%VERSIONNAME%\nsis\gramps.nsi"
if exist "%CUSTOM%\ped24.ico" copy /Y "%CUSTOM%\ped24.ico" /Y "%BUILDPATH%\%VERSIONNAME%\src\images\ped24.ico"
if exist "%CUSTOM%\gcheck.py" copy /Y "%CUSTOM%\gcheck.py" /Y "%BUILDPATH%\%VERSIONNAME%\nsis\gcheck.py"
echo building installer...
cd "%BUILDPATH%\%VERSIONNAME%\nsis"
%NSIS%\makensis gramps.nsi
rem Open Windows Explorer to this directory
explorer /e,"%BUILDPATH%\%VERSIONNAME%\nsis"
echo.
echo Pausing... did we enjoy building the Nullsoft installer? (Ctrl+C to quit)
pause
goto CHOOSE
rem REMOVE {{{1
:REMOVE
rem this is NOT automatic
if "%RETURN%"=="no" goto CHOOSE
echo -----------------------------------------------------------------
echo Removing existing installation
echo.
echo removing "%ProgramFiles%\gramps"
if exist "%ProgramFiles%\gramps" rmdir /s /q "%ProgramFiles%\gramps"
echo removing "%USERPROFILE%\Start Menu\Programs\GRAMPS"
if exist "%USERPROFILE%\Start Menu\Programs\GRAMPS" rmdir /s /q "%USERPROFILE%\Start Menu\Programs\GRAMPS"
echo removing "%TEMP%\gramps-install.ini"
if exist "%TEMP%\gramps-install.ini" del "%TEMP%\gramps-install.ini"
echo removing "%TEMP%\gcheck.py"
if exist "%TEMP%\gcheck.py" del "%TEMP%\gcheck.py"
if not "%RETURN%"=="no" echo.
if not "%RETURN%"=="no" echo Pausing... did we enjoy removing existing installation? (Ctrl+C to quit)
if not "%RETURN%"=="no" pause
if not "%RETURN%"=="no" goto CHOOSE
rem QUIT {{{1
:QUIT
echo.
echo Finished.
echo.
cd "%BUILDPATH%"
rem clear variables
set ARCHIVEDRIVE=
set BUILDDRIVE=
set BUILDPATH=
set BUILDTYPE=
set VERSION=
set VERSIONNAME=
set VERSIONSUB=
set CH=
set FNAME=
set GCC=
set LICENSEFILE=
set MYDAY=
set MYMONTH=
set MYYEAR=
set MYDAYNAME=
set MDY=
set NSIS=
set CUSTOM=
rem set PATHORIG=
set RETURN=
set TRY=
set YES=
rem reset path if backup exists
rem if "%PATHORIG%"=="" goto END
set PATH=%PATHORIG%
set PATHORIG=
rem 1}}}
:END
rem vim:foldmethod=marker

View File

@@ -0,0 +1,776 @@
#
# Gramps - a GTK+ based genealogy program
#
# Copyright (C) 2006-2008 Steve Hall <digitect dancingpaper com>
# Copyright (C) 2008 Stephen George
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# $Id$
#
# Description: Nullsoft Installer (NSIS) file to build Windows installer:
#
# Requires: NSIS version 2.0 or later.
# Notes:
# o WARNING: if you make changes to this script, look out for $INSTDIR
# to be valid, because this line is very dangerous: RMDir /r $INSTDIR
# o WARNING: Except the uninstaller. That re-paths for some reason.
#
# ToDo {{{1
#
# o More refined dependency checking (versioning)
# o Add .gramps and .gpkg as extensions
# * => Need separate icons for them?
#
# 1}}}
# Installer Attributes
# 0. Base Settings {{{1
# version numbers
!define GRAMPS_VER_MAJOR $%VERSION%
!define GRAMPS_VER_MINOR $%VERSIONSUB%
!define GRAMPS_VER_POINT $%VERSIONPT%
!define GRAMPS_VER_BUILD $%VERSIONBUILD%
; HM NIS Edit Wizard helper defines
!define PRODUCT_NAME "GRAMPS"
!define PRODUCT_VERSION ${GRAMPS_VER_MAJOR}.${GRAMPS_VER_MINOR}.${GRAMPS_VER_POINT}-${GRAMPS_VER_BUILD}
!define PRODUCT_PUBLISHER "The GRAMPS project"
!define PRODUCT_WEB_SITE "http://gramps-project.org"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
!define DESKTOP_LINK "$DESKTOP\${PRODUCT_NAME} ${PRODUCT_VERSION}.lnk"
# adds Native Language Support
!define HAVE_NLS
# output file
Name ${PRODUCT_NAME}
OutFile gramps-${PRODUCT_VERSION}.exe
# self ensure we don't have a corrupted file
CRCCheck on
# compression
SetCompress auto
# zlib good, bzip2 better, lzma best (and slowest, whew.)
SetCompressor lzma
# reference existing store if possible
SetDatablockOptimize on
# UPX
# comment next line if you don't have UPX (http://upx.sourceforge.net)
!packhdr temp.dat "upx --best --compress-icons=0 temp.dat"
SetOverwrite try
# don't allow installation into C:\ directory
AllowRootDirInstall false
# install details color scheme
InstallColors /windows
# background
BGGradient off
# adds an XP manifest
XPStyle on
# default install path
InstallDir $PROGRAMFILES\gramps
# Remember install folder
InstallDirRegKey HKCU "Software\${PRODUCT_NAME}" ""
# Remember the installer language
!define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
!define MUI_LANGDLL_REGISTRY_KEY "Software\${PRODUCT_NAME}"
!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
# types of installs we can perform
InstType Typical
InstType Minimal
InstType Full
SilentInstall normal
# 1. Header file (Begin Modern User Interface) {{{1
!include "MUI.nsh"
# 2. Interface Configuration {{{1
# installer/uninstaller icons (these must match in size!)
#!define MUI_ICON "classic-install.ico"
#!define MUI_UNICON "classic-uninstall.ico"
# splash, header graphics (same for both!)
!define MUI_HEADERIMAGE
#!define MUI_HEADERIMAGE_BITMAP "win.bmp"
#!define MUI_WELCOMEFINISHPAGE_BITMAP "nsis-splash.bmp"
!define MUI_LICENSEPAGE_BUTTON $(^AgreeBtn)
!define MUI_LICENSEPAGE_RADIOBUTTONS
!define MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT $(^AcceptBtn)
!define MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE $(^DontAcceptBtn)
#!define MUI_COMPONENTSPAGE_CHECKBITMAP "nsis-checkboxes.bmp"
# use small description box below components (not adjacent)
!define MUI_COMPONENTSPAGE_SMALLDESC
!define MUI_DIRECTORYPAGE_TEXT_TOP $(^DirText)
!define MUI_DIRECTORYPAGE_TEXT_DESTINATION $(^DirBrowseText)
!define MUI_DIRECTORYPAGE_VERIFYONLEAVE
!define MUI_FINISHPAGE_RUN "$3"
!define MUI_FINISHPAGE_RUN_PARAMETERS "$\"$INSTDIR\gramps.py$\""
!define MUI_ABORTWARNING
# 3. Pages {{{1
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "..\COPYING"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
# Uninstaller
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
# 4. Custom functions {{{1
# 5. Language files {{{1
# Languages
# TODO: These are pretty badly broken at the moment.
# Note: This appears to be due to building on Win95 which does not
# support Unicode:
# (http://nsis.sf.net/archive/nsisweb.php?page=247&instances=0,235)
#
# So what happens if we use only ASCII?
#
#!insertmacro MUI_LANGUAGE "Arabic"
#!insertmacro MUI_LANGUAGE "Bulgarian"
#!insertmacro MUI_LANGUAGE "Catalan"
#!insertmacro MUI_LANGUAGE "Croatian"
#!insertmacro MUI_LANGUAGE "Czech"
#!insertmacro MUI_LANGUAGE "Default"
#!insertmacro MUI_LANGUAGE "Estonian"
#!insertmacro MUI_LANGUAGE "Farsi"
#!insertmacro MUI_LANGUAGE "Finnish"
#!insertmacro MUI_LANGUAGE "Greek"
#!insertmacro MUI_LANGUAGE "Hebrew"
#!insertmacro MUI_LANGUAGE "Hungarian"
#!insertmacro MUI_LANGUAGE "Indonesian"
#!insertmacro MUI_LANGUAGE "Japanese"
#!insertmacro MUI_LANGUAGE "Korean"
#!insertmacro MUI_LANGUAGE "Latvian"
#!insertmacro MUI_LANGUAGE "Lithuanian"
#!insertmacro MUI_LANGUAGE "Macedonian"
#!insertmacro MUI_LANGUAGE "Norwegian"
#!insertmacro MUI_LANGUAGE "Polish"
#!insertmacro MUI_LANGUAGE "Romanian"
#!insertmacro MUI_LANGUAGE "Russian"
#!insertmacro MUI_LANGUAGE "Serbian"
#!insertmacro MUI_LANGUAGE "SerbianLatin"
#!insertmacro MUI_LANGUAGE "SimpChinese"
#!insertmacro MUI_LANGUAGE "Slovak"
#!insertmacro MUI_LANGUAGE "Slovenian"
#!insertmacro MUI_LANGUAGE "Swedish"
#!insertmacro MUI_LANGUAGE "Thai"
#!insertmacro MUI_LANGUAGE "TradChinese"
#!insertmacro MUI_LANGUAGE "Turkish"
#!insertmacro MUI_LANGUAGE "Ukrainian"
!insertmacro MUI_LANGUAGE "Danish"
!insertmacro MUI_LANGUAGE "Dutch"
!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_LANGUAGE "French"
!insertmacro MUI_LANGUAGE "German"
!insertmacro MUI_LANGUAGE "Italian"
!insertmacro MUI_LANGUAGE "Portuguese"
!insertmacro MUI_LANGUAGE "PortugueseBR"
!insertmacro MUI_LANGUAGE "Spanish"
# 6. Reserve Files {{{1
# 1}}}
# 7a. Sections
# Program Files {{{1
######################################################################
Section "Program files (required)" Main
SectionIn 1 2 3 RO
Call WarnDirExists
SetOutPath $INSTDIR
File /r ..\src\*.*
File ..\COPYING
File ..\NEWS
File ..\FAQ
File ..\AUTHORS
#File /r ..\nsis\gramps.ico
WriteRegStr HKLM "SOFTWARE\${PRODUCT_NAME}" "" "$INSTDIR"
WriteRegStr HKLM "SOFTWARE\${PRODUCT_NAME}" "version" ${PRODUCT_VERSION}
SectionEnd
# Menus and shortcuts {{{1
SubSection "Menus and shortcuts" MenusAndIcons
Section "Add GRAMPS to the Start Menu" MenuStart
SectionIn 1 3
# determines "Start In" location for shortcuts
SetOutPath $INSTDIR
StrCpy $0 "GRAMPS"
IfFileExists "$SMPROGRAMS\$0" 0 skipStartMenuRemove
RMDir /r "$SMPROGRAMS\$0\"
skipStartMenuRemove:
CreateDirectory "$SMPROGRAMS\$0\"
CreateShortCut "$SMPROGRAMS\$0\GRAMPS ${PRODUCT_VERSION}.lnk" "$3" "$\"$INSTDIR\gramps.py$\"" "$INSTDIR\images\ped24.ico" "0" "" "" "GRAMPS"
WriteINIStr "$SMPROGRAMS\$0\GRAMPS Website.url" "InternetShortcut" "URL" "http://www.gramps-project.org/"
CreateShortCut "$SMPROGRAMS\$0\Uninstall GRAMPS.lnk" "$\"$INSTDIR\uninstall.exe$\"" "" "" "0" "" "" "Uninstall GRAMPS"
SectionEnd
Section "Add Desktop icon" Desktop
#SectionIn 1 3
# determines "Start In" location for shortcuts
SetOutPath $INSTDIR
CreateShortCut "${DESKTOP_LINK}" "$3" "$\"$INSTDIR\gramps.py$\"" "$INSTDIR\images\ped24.ico" "0" "" "" "GRAMPS"
SectionEnd
SubSectionEnd
# Language Files {{{1
Section "Language Files" LangFiles
# off by default
#SectionIn 1 3
#CreateDirectory $INSTDIR\lang
SetOutPath $INSTDIR
File /r ..\po\*.mo
#MessageBox MB_OK "Setting up languages..."
# setup
; switches:
; -c
; -t :: setup the language files
; -r
;
; pythonw grampsSetup.py -c -t
#Exec '"$3" $\"$INSTDIR\grampsSetup.py -c -t -r$\"'
SectionEnd
# File Association {{{1
# FileAssoc.nsh macro {{{2
;
; FileAssoc.nsh (http://nsis.sourceforge.net/FileAssoc)
; File association helper macros
; Written by Saivert
;
; Features automatic backup system and UPDATEFILEASSOC macro for
; shell change notification.
;
; |> How to use <|
; To associate a file with an application so you can double-click it in explorer, use
; the APP_ASSOCIATE macro like this:
;
; Example:
; !insertmacro APP_ASSOCIATE \
; "txt" \
; "myapp.textfile" \
; "myapp tiny description" \
; "$INSTDIR\myapp.exe,0" \
; "Open with myapp" \
; "$INSTDIR\myapp.exe $\"%1$\""
;
; Never insert the APP_ASSOCIATE macro multiple times, it is only ment
; to associate an application with a single file and using the
; the "open" verb as default. To add more verbs (actions) to a file
; use the APP_ASSOCIATE_ADDVERB macro.
;
; Example:
; !insertmacro APP_ASSOCIATE_ADDVERB "myapp.textfile" "edit" "Edit with myapp" \
; "$INSTDIR\myapp.exe /edit $\"%1$\""
;
; To have access to more options when registering the file association use the
; APP_ASSOCIATE_EX macro. Here you can specify the verb and what verb is to be the
; standard action (default verb).
;
; And finally: To remove the association from the registry use the APP_UNASSOCIATE
; macro. Here is another example just to wrap it up:
; !insertmacro APP_UNASSOCIATE "txt" "myapp.textfile"
;
; |> Note <|
; When defining your file class string always use the short form of your application title
; then a period (dot) and the type of file. This keeps the file class sort of unique.
; Examples:
; Winamp.Playlist
; NSIS.Script
; Photoshop.JPEGFile
;
; |> Tech info <|
; The registry key layout for a file association is:
; HKEY_CLASSES_ROOT
; <applicationID> = <"description">
; shell
; <verb> = <"menu-item text">
; command = <"command string">
;
!macro APP_ASSOCIATE EXT FILECLASS DESCRIPTION ICON COMMANDTEXT COMMAND
; Backup the previously associated file class
ReadRegStr $R0 HKCR ".${EXT}" ""
WriteRegStr HKCR ".${EXT}" "${FILECLASS}_backup" "$R0"
WriteRegStr HKCR ".${EXT}" "" "${FILECLASS}"
WriteRegStr HKCR "${FILECLASS}" "" `${DESCRIPTION}`
WriteRegStr HKCR "${FILECLASS}\DefaultIcon" "" `${ICON}`
WriteRegStr HKCR "${FILECLASS}\shell" "" "open"
WriteRegStr HKCR "${FILECLASS}\shell\open" "" `${COMMANDTEXT}`
WriteRegStr HKCR "${FILECLASS}\shell\open\command" "" `${COMMAND}`
!macroend
!macro APP_ASSOCIATE_EX EXT FILECLASS DESCRIPTION ICON VERB DEFAULTVERB SHELLNEW COMMANDTEXT COMMAND
; Backup the previously associated file class
ReadRegStr $R0 HKCR ".${EXT}" ""
WriteRegStr HKCR ".${EXT}" "${FILECLASS}_backup" "$R0"
WriteRegStr HKCR ".${EXT}" "" "${FILECLASS}"
StrCmp "${SHELLNEW}" "0" +2
WriteRegStr HKCR ".${EXT}\ShellNew" "NullFile" ""
WriteRegStr HKCR "${FILECLASS}" "" `${DESCRIPTION}`
WriteRegStr HKCR "${FILECLASS}\DefaultIcon" "" `${ICON}`
WriteRegStr HKCR "${FILECLASS}\shell" "" `${DEFAULTVERB}`
WriteRegStr HKCR "${FILECLASS}\shell\${VERB}" "" `${COMMANDTEXT}`
WriteRegStr HKCR "${FILECLASS}\shell\${VERB}\command" "" `${COMMAND}`
!macroend
!macro APP_ASSOCIATE_ADDVERB FILECLASS VERB COMMANDTEXT COMMAND
WriteRegStr HKCR "${FILECLASS}\shell\${VERB}" "" `${COMMANDTEXT}`
WriteRegStr HKCR "${FILECLASS}\shell\${VERB}\command" "" `${COMMAND}`
!macroend
!macro APP_ASSOCIATE_REMOVEVERB FILECLASS VERB
DeleteRegKey HKCR `${FILECLASS}\shell\${VERB}`
!macroend
!macro APP_UNASSOCIATE EXT FILECLASS
; Backup the previously associated file class
ReadRegStr $R0 HKCR ".${EXT}" `${FILECLASS}_backup`
WriteRegStr HKCR ".${EXT}" "" "$R0"
DeleteRegKey HKCR `${FILECLASS}`
!macroend
!macro APP_ASSOCIATE_GETFILECLASS OUTPUT EXT
ReadRegStr ${OUTPUT} HKCR ".${EXT}" ""
!macroend
; !defines for use with SHChangeNotify
!ifdef SHCNE_ASSOCCHANGED
!undef SHCNE_ASSOCCHANGED
!endif
!define SHCNE_ASSOCCHANGED 0x08000000
!ifdef SHCNF_FLUSH
!undef SHCNF_FLUSH
!endif
!define SHCNF_FLUSH 0x1000
!macro UPDATEFILEASSOC
; Using the system.dll plugin to call the SHChangeNotify Win32 API function so we
; can update the shell.
System::Call "shell32::SHChangeNotify(i,i,i,i) (${SHCNE_ASSOCCHANGED}, ${SHCNF_FLUSH}, 0, 0)"
!macroend
;EOF
# 2}}}
Section "File Association" FileAssoc
SectionIn 1 3
# depends on FileAssoc.nsh, by Saivert (http://nsis.sourceforge.net/FileAssoc)
# .grdb
!insertmacro APP_ASSOCIATE \
"grdb" \
"application/x-gramps-database" \
"GRAMPS database file" \
"$INSTDIR\images\ped24.ico" \
"Open with GRAMPS" \
"$\"$3$\" $\"$INSTDIR\gramps.py$\" $\"%1$\""
# .gramps
!insertmacro APP_ASSOCIATE \
"gramps" \
"application/x-gramps-file" \
"GRAMPS application file" \
"$INSTDIR\images\ped24.ico" \
"Open with GRAMPS" \
"$\"$3$\" $\"$INSTDIR\gramps.py$\" $\"%1$\""
# .gpkg
!insertmacro APP_ASSOCIATE \
"gpkg" \
"application/x-gramps-package" \
"GRAMPS package file" \
"$INSTDIR\images\ped24.ico" \
"Open with GRAMPS" \
"$\"$3$\" $\"$INSTDIR\gramps.py$\" $\"%1$\""
# .ged
!insertmacro APP_ASSOCIATE \
"ged" \
"application/x-gramps-gedcom" \
"GEnealogical Data COMmunication (GEDCOM) file" \
"$INSTDIR\images\ped24.ico" \
"Open with GRAMPS" \
"$\"$3$\" $\"$INSTDIR\gramps.py$\" $\"%1$\""
SectionEnd
# Uninstall {{{1
######################################################################
Section Uninstall
# ask first
MessageBox MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON2 \
"Completely remove installation? $\n\
(Delete folder $INSTDIR ) " \
IDNO unQuit IDYES unContinue
unQuit:
Abort
unContinue:
ClearErrors
RMDir /r $INSTDIR
Call un.StartMenu
Call un.Desktop
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
DeleteRegKey HKLM "SOFTWARE\${PRODUCT_NAME}"
unEnd:
SectionEnd
# 1}}}
# 7b. Functions
# Installer {{{1
#####################################################################
Function .onInit
#MessageBox MB_OK "Testing dependencies..."
; look for pythonw.exe
; NOTE: This is set to $3 if it exists.
; on path
SearchPath $3 pythonw.exe
#MessageBox MB_OK "DEBUG: Testing pythonw.exe on path...$\n$\nFound: $\"$3$\""
IfFileExists $3 HavePython 0
; registry keys (these are confirmed possibilities)
; reg key
ReadRegStr $3 HKLM 'SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\python.exe' ""
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
IfFileExists $3 HavePython 0
; reg key (updated on 2.5 upgrade)
ReadRegStr $3 HKCR 'Python.File\shell\open\command' ""
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
IfFileExists $3 HavePython 0
; reg key (updated on 2.5 upgrade)
ReadRegStr $3 HKCU 'Software\Classes\Python.File\shell\open\command' ""
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
IfFileExists $3 HavePython 0
; reg key
ReadRegStr $3 HKCU 'Software\Microsoft\Windows\Current version\App Paths\Python.exe' ""
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
IfFileExists $3 HavePython 0
; reg key
ReadRegStr $3 HKCU 'Software\Microsoft\Windows\ShellNoRoam\MUICache (data:python)' ""
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
IfFileExists $3 HavePython 0
; reg key (Python version 2.5)
ReadRegStr $3 HKCU 'Software\Python\PythonCore\2.5\InstallPath' ""
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
IfFileExists $3 HavePython 0
; reg key (Python version 2.4)
ReadRegStr $3 HKCU 'Software\Python\PythonCore\2.4\InstallPath' ""
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
IfFileExists $3 HavePython 0
# these hold compound paths
#; reg key (Python version 2.5)
#ReadRegStr $3 HKCU 'Software\Python\PythonCore\2.5\PythonPath' ""
#StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
#IfFileExists $3 HavePython 0
#; reg key (Python version 2.4)
#ReadRegStr $3 HKCU 'Software\Python\PythonCore\2.4\PythonPath' ""
#StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
#IfFileExists $3 HavePython 0
; Keys not prone to be properly updated on upgrades
; reg key
ReadRegStr $3 HKCR 'Applications\python.exe\shell\open\command' ""
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
IfFileExists $3 HavePython 0
; reg key (not updated on 2.5 upgrade)
ReadRegStr $3 HKLM 'SOFTWARE\Python\PythonCore\2.5\PythonPath' ""
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
IfFileExists $3 HavePython 0
; reg key
ReadRegStr $3 HKLM 'SOFTWARE\Python\PythonCore\2.4\PythonPath' ""
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
IfFileExists $3 HavePython 0
; reg key
ReadRegStr $3 HKLM 'SOFTWARE\Python\PythonCore\2.5' ""
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
IfFileExists $3 HavePython 0
; reg key
ReadRegStr $3 HKLM 'SOFTWARE\Python\PythonCore\2.4' ""
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
IfFileExists $3 HavePython 0
; reg key
ReadRegStr $3 HKLM 'SOFTWARE\Python\PythonCore\2.5\InstallPath' ""
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
IfFileExists $3 HavePython 0
; reg key
ReadRegStr $3 HKLM 'SOFTWARE\Python\PythonCore\2.4\InstallPath' ""
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
IfFileExists $3 HavePython 0
; TODO: request path from user/browse (can NSIS do this?)
#MessageBox MB_OK "GRAMPS requires Python to be installed, please see:$\n \
# $\n \
# http://gramps-project.org/windows/ $\n \
# $\n \
# for installation help. Unable to continue installation."
#Abort
MessageBox MB_OK "Python not found."
StrCpy $4 "flag"
HavePython:
; extract gcheck
SetOutPath $TEMP
File gcheck.py
; set INI output location ($1)
StrCpy $1 "$TEMP\gramps-install.ini"
; run gcheck
ExecWait '"$3" $TEMP\gcheck.py $1'
; verify INI created
IfFileExists $1 YesINI 0
#MessageBox MB_OK "Dependency test INI creation failed, unable to continue."
#Abort
MessageBox MB_OK "Dependency test INI creation failed."
StrCpy $4 "flag"
YesINI:
; verify environment test results
; GTK+ and pygtk
ReadINIStr $0 $1 tests gtk
StrCmp $0 "yes" HaveGTK 0
; TODO: if no, perhaps just have GTK+ installed, check registry
; reg key
ReadRegStr $3 HKCU 'Environment\GTK_BASEPATH' ""
IfFileExists $3\*.* NoHavePyGTK 0
; reg key
ReadRegStr $3 HKCU 'Software\GTK\2.0\Path' ""
IfFileExists $3\*.* NoHavePyGTK 0
; reg key
ReadRegStr $3 HKLM 'Software\GTK\2.0\Path' ""
IfFileExists $3\*.* NoHavePyGTK 0
; reg key
ReadRegStr $3 HKLM 'Software\GTK\2.0\DllPath' ""
IfFileExists $3\*.* NoHavePyGTK 0
; if we make it this far, we don't have GTK+
#MessageBox MB_OK "GRAMPS requires GTK+ and PyGTK to be installed, please see:$\n \
# $\n \
# http://gramps-project.org/windows/ $\n \
# $\n \
# for installation help. Unable to continue installation."
#Abort
MessageBox MB_OK "GTK+ and PyGTK not found."
StrCpy $4 "flag"
NoHavePyGTK:
#MessageBox MB_OK "PyGTK import failed (GTK+ found on system), please see:$\n \
# $\n \
# http://gramps-project.org/windows/ $\n \
# $\n \
# for installation help. Unable to continue installation."
#Abort
MessageBox MB_OK "PyGTK not found."
StrCpy $4 "flag"
HaveGTK:
# NOTE: we can not detect just pygtk via gcheck.py
; glade
ReadINIStr $0 $1 tests glade
StrCmp $0 "yes" Haveglade 0
#MessageBox MB_OK "glade not installed, unable to continue."
#Abort
MessageBox MB_OK "Glade not found."
StrCpy $4 "flag"
Haveglade:
; pycairo
ReadINIStr $0 $1 tests pycairo
StrCmp $0 "yes" Havepycairo 0
#MessageBox MB_OK "pycairo not installed, unable to continue."
#Abort
MessageBox MB_OK "pycairo not found."
StrCpy $4 "flag"
Havepycairo:
#!insertmacro MUI_LANGDLL_DISPLAY
StrCmp $4 "flag" +1 DependantsOK
MessageBox MB_OK "At least one dependency was not found, unable to continue."
Abort
DependantsOK:
Call RemovePrevious
# default install directory ($INSTDIR)
StrCpy $INSTDIR $PROGRAMFILES\gramps
FunctionEnd
Function .onInstSuccess
# write uninstaller
WriteUninstaller $INSTDIR\uninstall.exe
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninstall.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
#Does not display icon on win2000? WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\images\ped24.ico"
FunctionEnd
Function .onInstFailed
MessageBox MB_OK|MB_ICONEXCLAMATION "Installation failed."
FunctionEnd
Function RemovePrevious
#check if gramps exists in registry
ClearErrors
Var /GLOBAL PreviousPath
ReadRegStr $PreviousPath HKLM "SOFTWARE\${PRODUCT_NAME}" ""
# do some tests to find an installed version
ifErrors NoPreviousVersion
IfFileExists $PreviousPath\uninstall.exe 0 NoPreviousVersion #Check uninstall.exe from previous version exists on HD
Var /GLOBAL PreviousVersion
ReadRegStr $PreviousVersion HKLM "SOFTWARE\${PRODUCT_NAME}" "Version"
# query OK to delete old version
MessageBox MB_OKCANCEL|MB_ICONQUESTION|MB_DEFBUTTON2 \
"${PRODUCT_NAME} $PreviousVersion is already installed$\n$\nClick 'OK' to uninstall previous version or 'Cancel' to continue anyway" \
IDCANCEL NoPreviousVersion
# uninstall old version
CopyFiles $PreviousPath\uninstall.exe $TEMP
ExecWait '"$TEMP\uninstall.exe" _?=$PreviousPath' $0
StrCpy $INSTDIR $PreviousPath #set the previous path as the default install path <= worth while or not?
;DetailPrint "uninstaller set error level $0"
NoPreviousVersion:
FunctionEnd
Function WarnDirExists
# warn if dir already exists
IfFileExists $INSTDIR\*.* DirExists DirExistsOK
DirExists:
MessageBox MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON2 \
"Install over existing installation?" \
IDYES DirExistsOK
Quit
DirExistsOK:
FunctionEnd
# Uninstaller {{{1
#####################################################################
Function un.onUnInstSuccess
FunctionEnd
Function un.StartMenu
IfFileExists "$SMPROGRAMS\GRAMPS" 0 unStartMenuFine
RMDir /r "$SMPROGRAMS\GRAMPS\"
unStartMenuFine:
FunctionEnd
Function un.Desktop
IfFileExists "${DESKTOP_LINK}" 0 unNoDesktop
Delete "${DESKTOP_LINK}"
unNoDesktop:
FunctionEnd
# 1}}}
# 8. Section Descriptions {{{1
######################################################################
# (must be last)
LangString DESC_Main ${LANG_ENGLISH} "Main program files (required)."
LangString DESC_MenusAndIcons ${LANG_ENGLISH} "General Desktop and Start Menu shortcut options."
LangString DESC_Desktop ${LANG_ENGLISH} "Add icon to the Desktop."
LangString DESC_MenuStart ${LANG_ENGLISH} "Add icons to the Start Menu."
LangString DESC_LangFiles ${LANG_ENGLISH} "Set up non-English languages."
LangString DESC_FileAssoc ${LANG_ENGLISH} "Associate GRAMPS with .grdb, .gramps, .gpkg, and .ged files."
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${Main} $(DESC_Main)
!insertmacro MUI_DESCRIPTION_TEXT ${MenusAndIcons} $(DESC_MenusAndIcons)
!insertmacro MUI_DESCRIPTION_TEXT ${Desktop} $(DESC_Desktop)
!insertmacro MUI_DESCRIPTION_TEXT ${MenuStart} $(DESC_MenuStart)
!insertmacro MUI_DESCRIPTION_TEXT ${LangFiles} $(DESC_LangFiles)
!insertmacro MUI_DESCRIPTION_TEXT ${FileAssoc} $(DESC_FileAssoc)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
# 1}}}
# vim:foldmethod=marker:noexpandtab

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB