From aa665d1d89c9ce5d856a57febba9c0a8f311664f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20K=C3=B6hler?= Date: Sat, 23 Dec 2006 18:50:20 +0000 Subject: [PATCH] Use `cp -a' in dist.sh. Let inno create guile.bat (which sets GUILE_LOAD_PATH) and slibcat, because the user running GnuCash later on may not have the rights to do that. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@15251 57a11ea4-9604-0410-9ed3-97b8803252fd --- packaging/win32/dist.sh | 37 +++++++++++++++++----------------- packaging/win32/gnucash.iss.in | 17 +++++++++++++--- 2 files changed, 33 insertions(+), 21 deletions(-) diff --git a/packaging/win32/dist.sh b/packaging/win32/dist.sh index 2b6a53204d..91b6fef927 100644 --- a/packaging/win32/dist.sh +++ b/packaging/win32/dist.sh @@ -46,28 +46,29 @@ function dist_regex() { function dist_autotools() { setup Autotools mkdir -p $DIST_UDIR/bin - cp $_AUTOTOOLS_UDIR/bin/*.dll $DIST_UDIR/bin + cp -a $_AUTOTOOLS_UDIR/bin/*.dll $DIST_UDIR/bin } function dist_guile() { setup Guile mkdir -p $DIST_UDIR/bin cp -a $_GUILE_UDIR/bin/libguile{.,-ltdl.,-srfi}*dll $DIST_UDIR/bin + cp -a $_GUILE_UDIR/bin/guile.exe $DIST_UDIR/bin mkdir -p $DIST_UDIR/share - cp -r $_GUILE_UDIR/share/guile $DIST_UDIR/share + cp -a $_GUILE_UDIR/share/guile $DIST_UDIR/share [ -f $DIST_UDIR/share/guile/1.6/slibcat ] && rm $DIST_UDIR/share/guile/1.6/slibcat } function dist_openssl() { setup OpenSSL mkdir -p $DIST_UDIR/bin - cp $_WIN_UDIR/system32/lib{eay,ssl}*.dll $DIST_UDIR/bin + cp -a $_WIN_UDIR/system32/lib{eay,ssl}*.dll $DIST_UDIR/bin } function dist_libxml2() { setup LibXML2 mkdir -p $DIST_UDIR/bin - cp $_LIBXML2_UDIR/bin/libxml2.dll $DIST_UDIR/bin + cp -a $_LIBXML2_UDIR/bin/libxml2.dll $DIST_UDIR/bin } function dist_gnome() { @@ -109,38 +110,38 @@ function dist_gnome() { function dist_libgsf() { setup libGSF mkdir -p $DIST_UDIR/bin - cp $_LIBGSF_UDIR/bin/libgsf*.dll $DIST_UDIR/bin + cp -a $_LIBGSF_UDIR/bin/libgsf*.dll $DIST_UDIR/bin mkdir -p $DIST_UDIR/etc/gconf/schemas - cp $_LIBGSF_UDIR/etc/gconf/schemas/* $DIST_UDIR/etc/gconf/schemas + cp -a $_LIBGSF_UDIR/etc/gconf/schemas/* $DIST_UDIR/etc/gconf/schemas mkdir -p $DIST_UDIR/lib - cp -r $_LIBGSF_UDIR/lib/locale $DIST_UDIR/lib + cp -a $_LIBGSF_UDIR/lib/locale $DIST_UDIR/lib } function dist_goffice() { setup GOffice mkdir -p $DIST_UDIR/bin - cp $_GOFFICE_UDIR/bin/libgoffice*.dll $DIST_UDIR/bin + cp -a $_GOFFICE_UDIR/bin/libgoffice*.dll $DIST_UDIR/bin mkdir -p $DIST_UDIR/lib - cp -r $_GOFFICE_UDIR/lib/{goffice,locale} $DIST_UDIR/lib + cp -a $_GOFFICE_UDIR/lib/{goffice,locale} $DIST_UDIR/lib mkdir -p $DIST_UDIR/share - cp -r $_GOFFICE_UDIR/share/{goffice,pixmaps} $DIST_UDIR/share + cp -a $_GOFFICE_UDIR/share/{goffice,pixmaps} $DIST_UDIR/share } function dist_gnucash() { setup GnuCash mkdir -p $DIST_UDIR/bin - cp $_INSTALL_UDIR/bin/* $DIST_UDIR/bin + cp -a $_INSTALL_UDIR/bin/* $DIST_UDIR/bin mkdir -p $DIST_UDIR/etc/gconf/schemas - cp $_INSTALL_UDIR/etc/gconf/schemas/* $DIST_UDIR/etc/gconf/schemas + cp -a $_INSTALL_UDIR/etc/gconf/schemas/* $DIST_UDIR/etc/gconf/schemas mkdir -p $DIST_UDIR/lib - cp -r $_INSTALL_UDIR/lib/{bin,locale} $DIST_UDIR/lib - cp $_INSTALL_UDIR/lib/lib*.{dll,la} $DIST_UDIR/lib + cp -a $_INSTALL_UDIR/lib/{bin,locale} $DIST_UDIR/lib + cp -a $_INSTALL_UDIR/lib/lib*.{dll,la} $DIST_UDIR/lib mkdir -p $DIST_UDIR/lib/gnucash - cp $_INSTALL_UDIR/lib/gnucash/lib*.{dll,la} $DIST_UDIR/lib/gnucash - cp -r $_INSTALL_UDIR/libexec $DIST_UDIR + cp -a $_INSTALL_UDIR/lib/gnucash/lib*.{dll,la} $DIST_UDIR/lib/gnucash + cp -a $_INSTALL_UDIR/libexec $DIST_UDIR mkdir -p $DIST_UDIR/share - cp -r $_INSTALL_UDIR/share/{gnucash,pixmaps,xml} $DIST_UDIR/share - cp $_BUILD_UDIR/packaging/win32/gnucash.iss $_GNUCASH_UDIR + cp -a $_INSTALL_UDIR/share/{gnucash,pixmaps,xml} $DIST_UDIR/share + cp -a $_BUILD_UDIR/packaging/win32/gnucash.iss $_GNUCASH_UDIR } function finish() { diff --git a/packaging/win32/gnucash.iss.in b/packaging/win32/gnucash.iss.in index 2ae4722f05..f88d853edf 100644 --- a/packaging/win32/gnucash.iss.in +++ b/packaging/win32/gnucash.iss.in @@ -42,6 +42,7 @@ Name: "{userdesktop}\GnuCash"; Filename: "{app}\bin\gnucash.bat"; WorkingDir: "{ [Run] Filename: "{app}\bin\gnucash.bat"; Description: "{cm:RunPrg}"; WorkingDir: "{app}\bin"; Flags: postinstall skipifsilent +Filename: "{app}\bin\guile.bat"; Parameters: "-c ""(use-modules (ice-9 slib)) (require 'printf)"""; Flags: runhidden ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Here we configure the included files and the place of their @@ -49,7 +50,7 @@ Filename: "{app}\bin\gnucash.bat"; Description: "{cm:RunPrg}"; WorkingDir: "{app ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [Files] ; The main executables and DLLs -Source: "@prefix@\..\dist\bin\*"; DestDir: "{app}\bin"; Flags: recursesubdirs; Components: main; AfterInstall: MyAfterInstallConfig(ExpandConstant('{app}\bin\gnucash.bat')) +Source: "@prefix@\..\dist\bin\*"; DestDir: "{app}\bin"; Flags: recursesubdirs; Components: main; AfterInstall: MyAfterInstallConfig() ; Note: The above AfterInstall function will create the ; gnucash.bat file on-the-fly by the Pascal script below. @@ -86,6 +87,8 @@ Root: HKCU; Subkey: "Software\GnuCash\Paths"; ValueType: string; ValueName: "loc ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [UninstallDelete] Type: files; Name: "{app}\bin\gnucash.bat" +Type: files; Name: "{app}\bin\guile.bat" +Type: files; Name: "{app}\share\guile\1.6\slibcat" Type: filesandordirs; Name: "{app}\etc\gconf" Type: dirifempty; Name: "{app}\etc" @@ -108,9 +111,9 @@ begin StringChange(Result, '\', '/'); end; -procedure MyAfterInstallConfig(FileName: String); +procedure MyAfterInstallConfig(); var - FileString, appdir, libdir, pkglibdir, pkgdatadir: String; + FileName, FileString, appdir, libdir, pkglibdir, pkgdatadir: String; Res: Boolean; begin @@ -121,6 +124,7 @@ begin pkgdatadir := appdir + '\share\gnucash'; { Create the gnucash.bat file; #10 is the linefeed character and #13 CR } + FileName := appdir + '\bin\gnucash.bat' ; FileString := 'set PATH=' + appdir + '\bin;' + libdir + '\bin;%PATH%'#13#10 ; FileString := FileString + 'set GUILE_WARN_DEPRECATED=no'#13#10 ; @@ -134,6 +138,13 @@ begin if Res = False then MsgBox('Error on saving '+FileName+' for completing the installation', mbInformation, MB_OK); + FileName := appdir + '\bin\guile.bat' ; + FileString := 'set GUILE_LOAD_PATH=' + pkgdatadir + '\guile-modules;' + pkgdatadir + '\scm;' + appdir + '\share\guile\1.6;%GUILE_LOAD_PATH%'#13#10 ; + FileString := FileString + 'start guile.exe %*'#13#10 ; + Res := SaveStringToFile(FileName, FileString, False); + if Res = False then + MsgBox('Error on saving '+FileName+' for completing the installation', mbInformation, MB_OK); + end;