Jeremiah,
I think I have sorted out how to avoid creating links to Denemo's
lilypond on the desktop and start menu
In gub/nsis/denemo.nsi I commented out some lines as follows
in the start menu section I commented out these
;;CreateShortCut "$SMPROGRAMS\Denemo\LilyPond.lnk" \
;;"$INSTDIR\usr\bin\lilypond-windows.exe" "-dgui" \
;;"$INSTDIR\usr\bin\lilypond-windows.exe" 0 SW_SHOWMINIMIZED
;;CreateShortCut "$SMPROGRAMS\Denemo\LilyPond Website.lnk" \
;;"http://lilypond.org/" "" \
;;"firefox.exe" 0
;;CreateShortCut "$SMPROGRAMS\Denemo\Music in Mutopia.lnk" \
;;"http://www.mutopiaproject.org" "" \
;;"$INSTDIR\usr\bin\lilypond-windows.exe" 1
;;CreateShortCut "$SMPROGRAMS\Denemo\Examples.lnk" \
;;"$INSTDIR\usr\share\doc\lilypond\input" "" \
;;"$INSTDIR\usr\bin\lilypond-windows.exe" 1
and in the Desktop section I commented out these
;;CreateShortCut "$DESKTOP\LilyPond.lnk" \
;;"$INSTDIR\usr\bin\lilypond-windows.exe" "-dgui" \
;;"$INSTDIR\usr\bin\lilypond-windows.exe" 0 SW_SHOWMINIMIZED
and this seemed to work ok. I am not sure if the file association with
the .ly extension is affected (or indeed if we may need it inside
Denemo, though I think not).
I attach my denemo.nsi file. The only other change I have which you may
not have if you have not built for mingw recently is a bump to the
version of libtool
> --- a/gub/specs/libtool.py
> +++ b/gub/specs/libtool.py
> @@ -5,7 +5,7 @@ from gub import target
> from gub import tools
>
> class Libtool (target.AutoBuild):
> - source = 'http://ftp.gnu.org/pub/gnu/libtool/libtool-2.2.6a.tar.gz'
> + source = 'http://ftp.gnu.org/pub/gnu/libtool/libtool-2.2.6b.tar.gz'
>
>
Are you able to start the release process now?
Richard
;;;; denemo.nsi -- Denemo installer script for Microsoft Windows
;;;; (c) 2005--2009
;;;; Jan Nieuwenhuizen <[email protected]>
;;;; Han-Wen Nienhuys <[email protected]>
;;;; licence: GNU GPL
;;;; FIXME: mostly cut-and paste from lilypond.nsi [installer.nsi]
;; For quick [wine] test runs
;; !define TEST "1"
;;; substitutions
!define ENVIRON "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
!define UNINSTALL \
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRETTY_NAME}"
!define USER_SHELL_FOLDERS \
"Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"
Var "EDITOR"
Var "UP_DESKTOP"
!define UninstLog "files.txt"
Var UninstLog
; Uninstall log file missing.
LangString UninstLogMissing ${LANG_ENGLISH} "${UninstLog} not
found.$\r$\nCannot uninstall."
!include "substitute.nsh"
${StrLoc}
${UnStrLoc}
;;SetCompressor lzma ; very slow
;;SetCompressor zlib
SetCompressor bzip2 ;;
Name "${PRETTY_NAME}"
Caption "${PRETTY_NAME} ${INSTALLER_VERSION} for Microsoft Windows"
BrandingText "${PRETTY_NAME} installer v1.0"
InstallDir $PROGRAMFILES\${PRETTY_NAME}
InstallDirRegKey HKLM "Software\${PRETTY_NAME}" "Install_Dir"
CRCCheck on
XPStyle on
InstallColors /windows
BGGradient 000000 E8FFE8 FFFFFF
;; Use Finish iso Close for the [close button text]
;; Although nothing happens after Close, experienced Windows users feel
;; much more with "Finish" than with Close.
MiscButtonText Back Next Cancel Finish
LicenseText "Conditions for redistributing ${PRETTY_NAME}" "Next"
LicenseData "${ROOT}\license\${NAME}"
LicenseForceSelection off
Page license
;; FIXME: the installer will crash on File /r commands if Page
;; directory is not used.
Page directory
Page components
;; Put a note to look at the Help page of the website on the
;; window when the install is completed
CompletedText "Install completed. Please see $INSTDIR\usr\bin\${CANARY_EXE}."
Page instfiles
UninstPage uninstConfirm
UninstPage instfiles
Section "${PRETTY_NAME} (required)"
;; always generate install log
Logset on
silent:
IfFileExists $INSTDIR\usr\bin\${CANARY_EXE}.exe no_overwrite_error
fresh_install
no_overwrite_error:
MessageBox MB_OK "Previous version of ${PRETTY_NAME}
found$\r$\nUninstall the old version first."
Abort "Previous version of ${PRETTY_NAME} found$\r$\nUninstall the old
version first."
fresh_install:
SetOverwrite on
AllowSkipFiles on
SetOutPath $INSTDIR
File /r "${ROOT}\usr"
File /r "${ROOT}\license"
File /r "${ROOT}\files.txt"
WriteUninstaller "uninstall.exe"
CreateDirectory "$INSTDIR\usr\bin"
;; Use tested lilypad for now
StrCpy $EDITOR "$INSTDIR\usr\bin\lilypad.exe"
Call registry_installer
Call registry_path
Call registry_lilypond
;; FIXME: these postinstall things should be part of their
;; respective packages once we have min-apt or Cygwin's
;; setup.exe in place.
Call postinstall_lilypond
Call postinstall_lilypad
Call postinstall_denemo
SectionEnd
Function registry_path
;;;ReadRegStr $R0 HKLM "${ENVIRON}" "PATH"
;;;WriteRegExpandStr HKLM "${ENVIRON}" "PATH" "$R0;$INSTDIR\usr\bin"
FunctionEnd
;; copy & paste from the NSIS code examples
Function un.install_installed_files
IfFileExists "$INSTDIR\${UninstLog}" +3
MessageBox MB_OK|MB_ICONSTOP "$(UninstLogMissing)"
Abort
Push $R0
Push $R1
Push $R2
SetFileAttributes "$INSTDIR\${UninstLog}" NORMAL
FileOpen $UninstLog "$INSTDIR\${UninstLog}" r
StrCpy $R1 -1
GetLineCount:
ClearErrors
FileRead $UninstLog $R0
IntOp $R1 $R1 + 1
StrCpy $R0 "$INSTDIR\$R0" -2
Push $R0
IfErrors 0 GetLineCount
Pop $R0
LoopRead:
StrCmp $R1 0 LoopDone
Pop $R0
IfFileExists "$R0\*.*" 0 +3
RMDir $R0 #is dir
Goto +3
IfFileExists "$R0" 0 +2
Delete "$R0" #is file
IntOp $R1 $R1 - 1
Goto LoopRead
LoopDone:
FileClose $UninstLog
Pop $R2
Pop $R1
Pop $R0
FunctionEnd
;; end copy & paste
Section "Uninstall"
ifSilent 0 silent
Logset on
silent:
DeleteRegKey HKLM SOFTWARE\${PRETTY_NAME}
DeleteRegKey HKLM "${UNINSTALL}"
DeleteRegKey HKCR "${PRETTY_NAME}" ""
ReadRegStr $R0 HKLM "${ENVIRON}" "PATH"
${UnStrLoc} $0 $R0 "$INSTDIR\usr\bin;" >
path_loop:
StrCmp $0 "" path_done
StrLen $1 "$INSTDIR\usr\bin;"
IntOp $2 $0 + $1
StrCpy $3 $R0 $0 0
StrCpy $4 $R0 10000 $2
WriteRegExpandStr HKLM "${ENVIRON}" "PATH" "$3$4"
ReadRegStr $R0 HKLM "${ENVIRON}" "PATH"
${UnStrLoc} $0 $R0 "$INSTDIR\usr\bin;" >
StrCmp $0 "" path_done path_loop
path_done:
call un.install_denemo_ttf
call un.install_installed_files
;; Remove shortcuts, if any
SetShellVarContext all
Delete "$SMPROGRAMS\${PRETTY_NAME}\*.*"
Delete "$DESKTOP\${PRETTY_NAME}.lnk"
RMDir "$SMPROGRAMS\${PRETTY_NAME}"
SetShellVarContext current
Delete "$SMPROGRAMS\${PRETTY_NAME}\*.*"
Delete "$DESKTOP\${PRETTY_NAME}.lnk"
RMDir "$SMPROGRAMS\${PRETTY_NAME}"
;; Remove directories used
RMDir "$SMPROGRAMS\${PRETTY_NAME}"
RMDir "$INSTDIR\usr\bin"
RMDir "$INSTDIR\usr\"
Delete "$INSTDIR\uninstall.exe"
Delete "$INSTDIR\files.txt"
RMDir "$INSTDIR"
SectionEnd
Function registry_installer
WriteRegStr HKLM "SOFTWARE\${PRETTY_NAME}" "Install_Dir" "$INSTDIR"
WriteRegStr HKLM "${UNINSTALL}" "DisplayName" "${PRETTY_NAME}"
WriteRegStr HKLM "${UNINSTALL}" "UninstallString"
'"$INSTDIR\uninstall.exe"'
WriteRegDWORD HKLM "${UNINSTALL}" "NoModify" 1
WriteRegDWORD HKLM "${UNINSTALL}" "NoRepair" 1
FunctionEnd
;; Optional section (can be disabled by the user)
Section "Start Menu Shortcuts"
;; First install for all users, if anything fails, install
;; for current user only.
ClearErrors
;; The OutPath specifies the CWD of the command. For desktop
;; shortcuts, set to a string that expands to the desktop folder
;; of the user who runs LilyPond.
ReadRegStr $R0 HKCU "${USER_SHELL_FOLDERS}" "Desktop"
SetOutPath '"$R0"'
SetShellVarContext all
;; Working directory: %USERPROFILE%\<locale's-desktop-folder-name>,
;; but that string is not expanded.
;; Let's see what happens when outputting to the shared desktop.
SetOutPath "$DESKTOP"
Call denemo_create_shortcuts
;; That also did not work, often the other users do no write access
;; there.
;; If no write access for all, delete common stuff and opt for
;; install for current user only.
IfErrors 0 exit
Delete "$DESKTOP\Denemo.lnk"
Delete "$SMPROGRAMS\Denemo\*.*"
RMDir "$SMPROGRAMS\Denemo"
;; $DESKTOP should expand to the same location as the outpath above,
;; but nsis may handle anomalies better.
current_user:
SetShellVarContext current
SetOutPath "$DESKTOP"
Call denemo_create_shortcuts
exit:
SetShellVarContext current
SetOutPath $INSTDIR
SectionEnd
!include "lilypond-prepost.nsh"
Function denemo_create_shortcuts
;; Start menu
CreateDirectory "$SMPROGRAMS\Denemo"
CreateShortCut "$SMPROGRAMS\Denemo\Denemo.lnk" \
"$INSTDIR\usr\bin\denemo.exe" "" \
"$INSTDIR\usr\bin\denemo.exe" 0 SW_SHOWNORMAL
CreateShortCut "$SMPROGRAMS\Denemo\Denemo Website.lnk" \
"http://denemo.org/" "" \
"firefox.exe" 0
;;CreateShortCut "$SMPROGRAMS\Denemo\LilyPond.lnk" \
;;"$INSTDIR\usr\bin\lilypond-windows.exe" "-dgui" \
;;"$INSTDIR\usr\bin\lilypond-windows.exe" 0 SW_SHOWMINIMIZED
;;CreateShortCut "$SMPROGRAMS\Denemo\LilyPond Website.lnk" \
;;"http://lilypond.org/" "" \
;;"firefox.exe" 0
;;CreateShortCut "$SMPROGRAMS\Denemo\Music in Mutopia.lnk" \
;;"http://www.mutopiaproject.org" "" \
;;"$INSTDIR\usr\bin\lilypond-windows.exe" 1
;;CreateShortCut "$SMPROGRAMS\Denemo\Examples.lnk" \
;;"$INSTDIR\usr\share\doc\lilypond\input" "" \
;;"$INSTDIR\usr\bin\lilypond-windows.exe" 1
CreateShortCut "$SMPROGRAMS\Denemo\Uninstall.lnk" \
"$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
;; Desktop
ClearErrors
ReadRegStr $R0 HKLM \
"SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
IfErrors dos windows
dos:
CreateShortCut "$DESKTOP\Denemo.lnk" "" \
"$INSTDIR\usr\bin\denemo.bat" \
"$INSTDIR\usr\bin\denemo.exe" 0 SW_SHOWNORMAL
Goto exit
windows:
CreateShortCut "$DESKTOP\Denemo.lnk" \
"$INSTDIR\usr\bin\denemo.exe" "" \
"$INSTDIR\usr\bin\denemo.exe" 0 SW_SHOWNORMAL
;;CreateShortCut "$DESKTOP\LilyPond.lnk" \
;;"$INSTDIR\usr\bin\lilypond-windows.exe" "-dgui" \
;;"$INSTDIR\usr\bin\lilypond-windows.exe" 0 SW_SHOWMINIMIZED
exit:
FunctionEnd
!include "FontName.nsh"
!include "FontReg.nsh"
Function postinstall_denemo
CopyFiles /silent "$INSTDIR\usr\share\fonts\truetype\denemo\Denemo.ttf"
"$WINDIR\Fonts\Denemo.ttf"
StrCpy $FONT_DIR "$WINDIR\Fonts"
!insertmacro InstallTTFFont
"${ROOT}\usr\share\fonts\truetype\denemo\Denemo.ttf"
ClearErrors
FunctionEnd
Function un.install_denemo_ttf
; Call must be used with function names starting with "un." in the uninstall
section.
; Usage: Call function_name | [:label_name]
; Error in macro GetFileNameCall on macroline 2
; Error in macro RemoveTTFFont on macroline 9
; Error in script
"/home/janneke/vc/gub/target/mingw/installer/denemo--dbdir/denemo.nsi" on line
331 -- aborting creation process
; !insertmacro RemoveTTFFont "Denemo.ttf"
Delete "$WINDIR\Fonts\Denemo.ttf"
ClearErrors
FunctionEnd
_______________________________________________
Denemo-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/denemo-devel