changeset 3462:369b21249f13

merge away extra head
author John W. Eaton <jwe@octave.org>
date Tue, 28 Jan 2014 03:45:26 -0500
parents bc0e6c5189cd (diff) fc11211443d5 (current diff)
children 7901815035d6
files dist-files.mk
diffstat 9 files changed, 205 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile.in	Fri Jan 24 13:54:49 2014 -0500
+++ b/Makefile.in	Tue Jan 28 03:45:26 2014 -0500
@@ -321,7 +321,7 @@
     MSYS_EXTENSION_VER := 1.0.13
     MSYS_BASE_DIR := $(TOP_DIR)/msys-base
     MSYS_EXTENSION_DIR := $(TOP_DIR)/msys-extension
-    MSYS_BASE_PACKAGES := $(addprefix msys-,bash coreutils diffutils dos2unix file findutils gawk grep gzip less libiconv libintl libmagic make msys-core patch regex sed tar termcap unzip wget)
+    MSYS_BASE_PACKAGES := $(addprefix msys-,bash coreutils diffutils dos2unix file findutils gawk grep gzip less libiconv libintl libmagic make msys-core patch regex sed tar termcap unzip zip wget)
 
     NOTEPAD_BASE_DIR := $(TOP_DIR)/notepad++
   endif
--- a/binary-dist-rules.mk	Fri Jan 24 13:54:49 2014 -0500
+++ b/binary-dist-rules.mk	Tue Jan 28 03:45:26 2014 -0500
@@ -73,6 +73,8 @@
   echo "  notepad++..."
   cd $(TOP_DIR) \
     && tar -c -h -f - notepad++ | ( cd $(OCTAVE_DIST_DIR) ; tar xpf - )
+  echo "  README.html..."
+  cp $(TOP_DIR)/installer-files/README.html $(OCTAVE_DIST_DIR)/
 endef
 endif
 
--- a/build_packages.m	Fri Jan 24 13:54:49 2014 -0500
+++ b/build_packages.m	Tue Jan 28 03:45:26 2014 -0500
@@ -1,5 +1,11 @@
 more ("off");
 echo ("on");
+% cd to script directory as the packages files are in the same place
+[packagedir] = fileparts(mfilename("fullpathext"));
+if length(packagedir) > 0
+  cd(packagedir);
+endif
+% install the packages
 pkg install general-1.3.2.tar.gz
 pkg install miscellaneous-1.2.0.tar.gz
 pkg install struct-1.0.10.tar.gz
--- a/dist-files.mk	Fri Jan 24 13:54:49 2014 -0500
+++ b/dist-files.mk	Tue Jan 28 03:45:26 2014 -0500
@@ -374,6 +374,7 @@
   msys-unzip.mk \
   msys-wget.mk \
   msys-xz.mk \
+  msys-zip.mk \
   muparser.mk \
   mxml-test.c \
   mxml.mk \
@@ -724,7 +725,8 @@
   gpl-3.0.txt \
   octave.bmp \
   octave-hdr.bmp \
-  octave-logo.ico
+  octave-logo.ico \
+  README.html
 INSTALL_FILES := $(addprefix installer-files/, $(INSTALL_FILES_1))
 
 DIST_FILES := \
--- a/index.html	Fri Jan 24 13:54:49 2014 -0500
+++ b/index.html	Tue Jan 28 03:45:26 2014 -0500
@@ -1878,6 +1878,11 @@
         <td id="msys-unzip-website"><a href="http://www.mingw.org/">MinGW unzip</a></td>
     </tr>
     <tr>
+        <td id="msys-zip-package">msys-zip</td>
+        <td id="msys-zip-version">3.0-1</td>
+        <td id="msys-zip-website"><a href="http://www.mingw.org/">MinGW zip</a></td>
+    </tr>
+    <tr>
         <td id="msys-termcap-package">msys-termcap</td>
         <td id="msys-termcap-version">0.20050421_1-2</td>
         <td id="msys-termcap-website"><a href="http://www.mingw.org/">MinGW termcap</a></td>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installer-files/README.html	Tue Jan 28 03:45:26 2014 -0500
@@ -0,0 +1,45 @@
+<html>
+<head>
+<title>GNU Octave</title>
+<style TYPE="text/css">
+<!--
+body {
+}
+-->
+</style>
+</head>
+<body>
+<h2>Welcome</h2>
+<p>
+Thank you for installing GNU Octave!
+</p>
+<p>
+Octave 3.8 is a major new release with many new features, including an
+experimental graphical user interface.  But because the GUI is not
+quite as polished as we would like, we have decided to wait until the
+4.0.x release series before making the GUI the default interface.
+</p>
+<p>
+See the release notes or the "Experimental GUI Info" button in the GUI
+for more information about the release and how you can help us with
+GUI development and speed up the 4.0 release.
+</p>
+<h2>Included Octave Forge Packages</h2>
+<p>
+A number of Octave-forge packages have been included with this install Octave, 
+however they need to be installed in order to use them.
+</p>
+<p>
+To install:
+<ul>
+ <li>Start Octave and then open the build_packages.m file found in the src folder 
+where Octave was installed.</li>
+ <li>Run the build_packages.m script to build and install the packages.</li>
+</ul>
+Packages must then be loaded in order to use them with the <tt>pkg load PACKAGENAME</tt> command.
+</p>
+<p>
+Other packages are available from <a href="http://octave.sourceforge.net/">Octave-Forge</a>
+</p>
+</body>
+</html>
--- a/makeinst-script.sh	Fri Jan 24 13:54:49 2014 -0500
+++ b/makeinst-script.sh	Tue Jan 28 03:45:26 2014 -0500
@@ -36,7 +36,7 @@
 !define DESCRIPTION "GNU Octave is a high-level programming language, primarily intended for numerical computations."
 !define INSTALLER_FILES "../installer-files"
 !define INSTALLER_NAME "octave-$OCTAVE_VERSION-installer.exe"
-!define MAIN_APP_EXE "octave.exe"
+!define MAIN_APP_EXE "octave-gui.exe"
 !define INSTALL_TYPE "SetShellVarContext current"
 !define PRODUCT_ROOT_KEY "HKLM"
 !define PRODUCT_KEY "Software\\Octave-$VERSION"
@@ -69,6 +69,12 @@
 ; MUI settings
 !include "MUI.nsh"
 
+; custom dialogs
+!include nsDialogs.nsh
+; additional logic
+!include LogicLib.nsh
+
+
 !define MUI_ABORTWARNING
 !define MUI_UNABORTWARNING
 !define MUI_HEADERIMAGE
@@ -85,24 +91,15 @@
 !define MUI_LICENSEPAGE_BUTTON "Next >"
 !insertmacro MUI_PAGE_LICENSE "\${INSTALLER_FILES}/gpl-3.0.txt"
 
+Page custom octaveOptionsPage octaveOptionsLeave
+
 !define MUI_PAGE_CUSTOMFUNCTION_LEAVE CheckPrevInstall
 !insertmacro MUI_PAGE_DIRECTORY
 
 !insertmacro MUI_PAGE_INSTFILES
 
-; set up checkbox to create desktop icon
-Function finishpage_desktopshortcut
-  SetOutPath "%USERPROFILE%"
-  CreateShortCut "\$desktop\\Octave-$VERSION (Command Line).lnk" "\$INSTDIR\\bin\\octave-cli.exe" "" "\$INSTDIR\\$ICON" 0
-  CreateShortCut "\$desktop\\Octave-$VERSION (Experimental GUI).lnk" "\$INSTDIR\\bin\\octave-gui.exe" "" "\$INSTDIR\\$ICON" 0
-FunctionEnd
-
-!define MUI_FINISHPAGE_SHOWREADME ""
-!define MUI_FINISHPAGE_SHOWREADME_CHECKED
-!define MUI_FINISHPAGE_SHOWREADME_TEXT "Create Desktop Shortcut"
-!define MUI_FINISHPAGE_SHOWREADME_FUNCTION finishpage_desktopshortcut
-
 !define MUI_FINISHPAGE_RUN "\$INSTDIR\\bin\\\${MAIN_APP_EXE}"
+!define MUI_FINISHPAGE_SHOWREADME "\$INSTDIR\\README.html"
 !insertmacro MUI_PAGE_FINISH
 
 !insertmacro MUI_UNPAGE_CONFIRM
@@ -117,6 +114,50 @@
  
 RequestExecutionLevel admin
 
+######################################################################
+; custom options page functions
+
+Var InstallAllUsers
+Var InstallAllUsersCtrl
+Var InstallShortcuts
+Var InstallShortcutsCtrl
+Var RegisterOctaveFileType
+Var RegisterOctaveFileTypeCtrl
+
+Function octaveOptionsPage 
+  Push \$0
+  nsDialogs::Create 1018
+  Pop \$0
+
+  \${If} \$0 == error
+    Abort
+  \${EndIf} 
+
+  \${NSD_CreateCheckBox} 0 0 100% 12u "Install for all users"
+  Pop \$InstallAllUsersCtrl
+  \${NSD_SetState} \$InstallAllUsersCtrl \${BST_CHECKED}
+
+  \${NSD_CreateCheckBox} 0 20 100% 12u "Create desktop shortcuts"
+  Pop \$InstallShortcutsCtrl
+  \${NSD_SetState} \$InstallShortcutsCtrl \${BST_CHECKED}
+
+  \${NSD_CreateCheckBox} 0 40 100% 12u "Register .m file type with Octave"
+  Pop \$RegisterOctaveFileTypeCtrl
+  \${NSD_SetState} \$RegisterOctaveFileTypeCtrl \${BST_CHECKED}
+
+  !insertmacro MUI_HEADER_TEXT "Install Options" "Choose options for installing"
+  nsDialogs::Show  
+  Pop \$0
+FunctionEnd
+
+Function octaveOptionsLeave
+  \${NSD_GetState} \$InstallAllUsersCtrl \$InstallAllUsers
+  \${NSD_GetState} \$InstallShortcutsCtrl \$InstallShortcuts
+  \${NSD_GetState} \$RegisterOctaveFileTypeCtrl \$RegisterOctaveFileType
+FunctionEnd
+
+######################################################################
+
 Function .onInit
   Call DetectWinVer
   Call CheckCurrVersion
@@ -127,6 +168,18 @@
 ; file section
 Section "MainFiles"
 
+  ; set context based on whether installing for user or all
+  \${If} \$InstallAllUsers == \${BST_CHECKED}
+    SetShellVarContext all
+  \${Else}
+    SetShellVarContext current
+  \${Endif}
+
+  ; include the README
+  SetOutPath "\$INSTDIR" 
+  File "$OCTAVE_SOURCE/README.html"
+
+  ; distro files
 EOF
 
 # insert the files
@@ -156,6 +209,9 @@
  WriteRegStr HKLM "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Octave-$VERSION" "UninstallString" "\$INSTDIR\\uninstall.exe"
  WriteRegDWORD HKLM "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Octave-$VERSION" "NoModify" 1
  WriteRegDWORD HKLM "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Octave-$VERSION" "NoRepair" 1
+ \${If} \$InstallAllUsers == \${BST_CHECKED}
+   WriteRegDWORD HKLM "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Octave-$VERSION" "AllUsers" 1
+ \${EndIf}
  WriteUninstaller "uninstall.exe"
 SectionEnd
 
@@ -181,10 +237,60 @@
   fi
  
   cat >> $OUTFILE << EOF
+
+  \${If} \$InstallShortcuts == \${BST_CHECKED}
+    SetOutPath "%USERPROFILE%"
+    CreateShortCut "\$desktop\\Octave-$VERSION (Command Line).lnk" "\$INSTDIR\\bin\\octave-cli.exe" "" "\$INSTDIR\\$ICON" 0
+    CreateShortCut "\$desktop\\Octave-$VERSION (Experimental GUI).lnk" "\$INSTDIR\\bin\\octave-gui.exe" "" "\$INSTDIR\\$ICON" 0
+  \${Endif}
+
+SectionEnd
+
+Section "FileTypeRego"
+  ; Octave document
+  WriteRegStr HKCR "Octave.Document.$VERSION" "" "GNU Octave Script"
+  WriteRegStr HKCR "Octave.Document.$VERSION\\DefaultIcon" "" "\$INSTDIR\\$ICON"
+  ; document actions
+  WriteRegStr HKCR "Octave.Document.$VERSION\\shell\\open\\command" "" '"\$INSTDIR\\bin\\octave-gui.exe" --force-gui --persist --eval "edit %1"'
+
+  \${If} \$RegisterOctaveFileType == \${BST_CHECKED}
+    ReadRegStr \$0 HKCR ".m" ""
+    StrCmp "\$0" "" no_back_type
+    WriteRegStr HKCR ".m" "backup_val" "\$0"  
+no_back_type:
+    WriteRegStr HKCR ".m" "" "Octave.Document.$VERSION"
+    WriteRegDWORD HKLM "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Octave-$VERSION" "RegisteredFileType" 1
+  \${EndIf}
 SectionEnd
 
 Section "Uninstall"
 
+  ReadRegDWORD \$0 HKLM "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Octave-$VERSION" "AllUsers"
+  IfErrors not_all_users
+
+  SetShellVarContext all
+
+not_all_users:
+  ReadRegDWORD \$0 HKLM "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Octave-$VERSION" "RegisteredFileType"
+  IfErrors not_registered_file
+
+  ReadRegStr \$0 HKCR ".m" "backup_val"
+  IfErrors not_backup_file
+
+  # retore backup
+  WriteRegStr HKCR ".m" "" "\$0"
+
+  DeleteRegValue HKCR ".m" "backup_val"
+
+  ; dont delete .m if just restored backup
+  Goto not_registered_file
+not_backup_file:
+  DeleteRegKey HKCR ".m"
+
+not_registered_file:
+ ; delete file type
+ DeleteRegKey HKCR "Octave.Document.$VERSION"
+
  DeleteRegKey HKLM "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Octave-$VERSION"
  DeleteRegKey HKLM "Software\\Octave-$VERSION"
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/msys-zip.mk	Tue Jan 28 03:45:26 2014 -0500
@@ -0,0 +1,23 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG             := msys-zip
+$(PKG)_IGNORE   :=
+$(PKG)_CHECKSUM := 38a09ab05f88abd8e31e769a4520b2caea79bfde
+$(PKG)_REMOTE_SUBDIR := zip/zip-$($(PKG)_VERSION)
+$(PKG)_SUBDIR   := 
+$(PKG)_FILE     := zip-$($(PKG)_VERSION)-msys-1.0.14-bin.tar.lzma
+$(PKG)_URL      := $(MSYS_EXTENSION_URL)/$($(PKG)_REMOTE_SUBDIR)/$($(PKG)_FILE)/download
+$(PKG)_DEPS     := 
+
+define $(PKG)_UPDATE
+    echo 'Warning: Updates are temporarily disabled for package $(PKG).' >&2;
+    echo $($(PKG)_VERSION)
+endef
+
+define $(PKG)_BUILD
+    mkdir -p '$(MSYS_EXTENSION_DIR)'
+    cd '$(1)' && tar cf - . | ( cd '$(MSYS_EXTENSION_DIR)'; tar xpf - )
+    mkdir -p '$(MSYS_INFO_DIR)'
+    cd '$(1)' && find . > '$(MSYS_INFO_DIR)'/$(PKG).list
+endef
--- a/src/of-miscellaneous.mk	Fri Jan 24 13:54:49 2014 -0500
+++ b/src/of-miscellaneous.mk	Tue Jan 28 03:45:26 2014 -0500
@@ -8,7 +8,7 @@
 $(PKG)_SUBDIR   := miscellaneous
 $(PKG)_FILE     := miscellaneous-$($(PKG)_VERSION).tar.gz
 $(PKG)_URL      := '$(OCTAVE_FORGE_BASE_URL)/$($(PKG)_FILE)/download'
-$(PKG)_DEPS     := of-general
+$(PKG)_DEPS     := of-general units
 
 define $(PKG)_UPDATE
     echo 'Warning: Updates are temporarily disabled for package $(PKG).' >&2;