Tested with opsi 4.2
Windows 10 x64 Ent SAC 19.09, 20H2 & 21H2
You can download Libre CAD from here: https://librecad.org/#download
type: localboot
id: libre-cad
description: LibreCAD is a free Open Source 2D CAD application for Windows, Apple and Linux
Hint: After the setup is completed Libre CAD tries to open a web page for a donation request. This is unfortunately a non-controllable behavior after the program installation and occurs once. However, a web browser is not preselected by the Windows 10 app control. The app selection message can be ignored, this is suppressed by the final restart after installation.
tree: |-- setup.opsiscript |-- delsub.opsiscript |-- uninstall.opsiscript |-- LibreCAD-Installer-2.2.0.exe |-- Libre_CAD.png |-- check_nsis_exitcode.opsiscript
; Copyright (c) uib gmbh (www.uib.de) ; This sourcecode is owned by uib ; and published under the Terms of the General Public License. ; credits: http://www.opsi.org/credits/ [Initial] SetLogLevel=6 ; Log Errors in Logfile but don't abort: ExitOnError=false ; Show syntax errors in the script: ScriptErrorMessages=on ; Dont trace step by step through the script: TraceMode=off ; let started programs run in front of the winst window StayOnTop=false [Actions] requiredWinstVersion >= "4.11.3.3" ; ---------------------------------------------------------------- ; - define Variables - ; ---------------------------------------------------------------- DefVar $UninstallProgram$ DefVar $LogDir$ DefVar $ProductId$ DefVar $ProductPic$ DefVar $MinimumSpace$ DefVar $InstallDir$ DefVar $ExitCode$ DefVar $INST_SystemType$ DefVar $INST_architecture$ DefVar $Version$ DefVar $Inst_Cmd$ DefVar $Inst_Prg$ DefVar $Uninst_Prg$ DefVar $Uninst_Cmd$ DefVar $INST_MsVersion$ DefVar $OSVersion$ DefVar $ErrorMsg$ DefVar $target$ DefVar $workdir$ ; ---------------------------------------------------------------- ; ---------------------------------------------------------------- ; - Setting Variables and getting Product Property's - ; ---------------------------------------------------------------- Set $INST_SystemType$ = GetSystemType Set $LogDir$ = "%SystemDrive%\tmp" Set $INST_MsVersion$ = GetMSVersionInfo include_append "%ScriptPath%\check_nsis_exitcode.opsiscript" ; ---------------------------------------------------------------- ; ---------------------------------------------------------------- ; - Please edit the following values - ; ---------------------------------------------------------------- Set $ProductId$ = "LibreCAD" Set $ProductPic$ = "Libre_CAD.png" Set $Version$ = "2.2.0" Set $MinimumSpace$ = "500 MB" Set $InstallDir$ = "%ProgramFiles32Dir%\LibreCAD" Set $Inst_Prg$ = "LibreCAD-Installer-"+$Version$+".exe" Set $Inst_Cmd$ = ' /S' Set $Uninst_Prg$ = "\uninstall.exe" Set $Uninst_Cmd$ = ' /S' Set $OSVersion$ = "6.1" ; for Start Menu entry Set $target$ = $InstallDir$ + "\LibreCAD.exe" Set $workdir$ = $InstallDir$ ; ---------------------------------------------------------------- ; ---------------------------------------------------------------- ; - Check System Requierements - ; ---------------------------------------------------------------- if not(HasMinimumSpace ("%SystemDrive%", $MinimumSpace$)) LogError "Not enough space on %SystemDrive%, " + $MinimumSpace$ + " on drive %SystemDrive% needed for " + $ProductId$ isFatalError "No Space" ; Stop process and set installation status to failed endif if CompareDotSeparatedNumbers($INST_MsVersion$,"<=",$OSVersion$) LogError "Wrong OS Version. At least Windows 7 is required for installation!" isFatalError endif ; ---------------------------------------------------------------- ; ---------------------------------------------------------------- ; - Installation - ; ---------------------------------------------------------------- comment "Show product picture" ShowBitmap "%ScriptPath%\" + $ProductPic$ $ProductId$ comment "Check if preverious Version is installed, uninstall if so." if FileExists("%ScriptPath%\delsub.opsiscript") comment "Start uninstall sub section" Sub "%ScriptPath%\delsub.opsiscript" endif comment "installing" if ($INST_SystemType$ = "x86 System") Message "Installing " + $ProductId$ + " " + $Version$ + " on 32 Bit OS." comment "Start setup program" Winbatch_install sub "%SCRIPTPATH%\check_nsis_exitcode.opsiscript" LinkFolder_Startmenu endif if ($INST_SystemType$ = "64 Bit System") Message "Installing " + $ProductId$ + " " + $Version$ + " on 64 Bit OS" comment "Start setup program" Winbatch_install sub "%SCRIPTPATH%\check_nsis_exitcode.opsiscript" LinkFolder_Startmenu endif ExitWindows /reboot ; ---------------------------------------------------------------- ; ---------------------------------------------------------------- ; install section ; ---------------------------------------------------------------- [Winbatch_install] "%ScriptPath%\$Inst_Prg$" $Inst_Cmd$ [LinkFolder_Startmenu] set_basefolder common_programs set_subfolder $ProductId$ set_link name: $ProductId$ target: $target$ ;parameters: working_dir: $workdir$ ;icon_file: ;icon_index: end_link ; ----------------------------------------------------------------
; ---------------------------------------------------------------- ; Deinstallation ; ---------------------------------------------------------------- Set $UninstallProgram$ = $InstallDir$ + $Uninst_Prg$ if ($INST_SystemType$ = "x86 System") if FileExists($UninstallProgram$) Message "Uninstalling " + $ProductId$ + " x86" comment "Uninstall program found, starting uninstall" Winbatch_uninstall sub "%SCRIPTPATH%\check_nsis_exitcode.opsiscript" comment "Removing "+$InstallDir$ Files_uninstall else comment "Unistall Programm not found." endif endif if ($INST_SystemType$ = "64 Bit System") if FileExists($UninstallProgram$) Message "Uninstalling " + $ProductId$+ " x64" comment "Uninstall program found, starting uninstall" Winbatch_uninstall sub "%SCRIPTPATH%\check_nsis_exitcode.opsiscript" comment "Removing "+$InstallDir$ Files_uninstall else comment "Unistall Programm not found." endif endif ; ---------------------------------------------------------------- ; ---------------------------------------------------------------- ; deinstall section ; ---------------------------------------------------------------- [Winbatch_uninstall] "$UninstallProgram$" $Uninst_Cmd$ [Files_uninstall] del -sf "$InstallDir$" ; ----------------------------------------------------------------
[Initial] LogLevel=6 ; Log Errors in Logfile but don't abort: ExitOnError=false ; Show syntax errors in the script: ScriptErrorMessages=on ; Dont trace step by step through the script: TraceMode=off ; let started programs run in front of the winst window StayOnTop=false [Actions] requiredWinstVersion >= "4.11.3.3" ; ---------------------------------------------------------------- ; - define Variables - ; ---------------------------------------------------------------- DefVar $UninstallProgram$ DefVar $ProductPic$ DefVar $LogDir$ DefVar $ExitCode$ DefVar $ProductId$ DefVar $InstallDir$ DefVar $INST_SystemType$ DefVar $INST_architecture$ DefVar $Uninst_Cmd$ DefVar $Uninst_Prg$ DefVar $ErrorMsg$ DefVar $result$ ; ---------------------------------------------------------------- ; ---------------------------------------------------------------- ; - Setting Variables and getting Product Property's - ; ---------------------------------------------------------------- Set $INST_SystemType$ = GetSystemType Set $LogDir$ = "%SystemDrive%\tmp" include_append "%ScriptPath%\check_nsis_exitcode.opsiscript" ; ---------------------------------------------------------------- ; ---------------------------------------------------------------- ; - Please edit the following values - ; ---------------------------------------------------------------- Set $ProductId$ = "Libre CAD" Set $ProductPic$ = "Libre_CAD.png" Set $InstallDir$ = "%ProgramFiles32Dir%\LibreCAD" Set $Uninst_Prg$ = "\uninstall.exe" Set $Uninst_Cmd$ = ' /S' ; ---------------------------------------------------------------- ; ---------------------------------------------------------------- ; - Deinstallation - ; ---------------------------------------------------------------- comment "Show product picture" ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$ Message "Uninstalling " + $ProductId$ + " ..." if FileExists("%ScriptPath%\delsub.opsiscript") comment "Start uninstall sub section" Sub "%ScriptPath%\delsub.opsiscript" else comment "No unistall Script found." LogError "No unistall Script found. Check OPSI Program Package." isFatalError endif ; ----------------------------------------------------------------
comment "Check exit code" set $ExitCode$ = getLastExitCode if ($ExitCode$ = "0") comment "ExitCode = "+$ExitCode$+" Setup was successfully run to completion." else if ($ExitCode$ = "1") set $ErrorMsg$ = "ExitCode = "+$ExitCode$+" - Installation aborted by user (cancel button)" else set $ErrorMsg$ = "ExitCode = "+$ExitCode$+" - Error detected" endif logError $ErrorMsg$ isFatalError "Installer failed" endif