====== vlc 2.0.2 ======
2012-12-12\\
Script by uib gmbh \\
Comments and improvements welcome \\
Tested with opsi 4.0.2\\
type: localboot\\
id: vlc\\
name: VideoLAN - VLC media player\\
description: VLC media player is a highly portable multimedia player supporting most audio and video formats (H.264, Ogg, DivX, MKV, TS, MPEG-2, mp3, MPEG-4, aac, ...) from files, physical media (DVDs, VCD, Audio-CD), TV capture cards and many network streaming protocols.\\
It can also convert media files, transcode and act as a streaming server over unicast or multicast and IPv4 or IPv6. It doesn't need any external codec, program or codec pack to work.\\
version: 2.0.2\\
Full package: http://download.uib.de/opsi4.0/products/contribute/full-package/
==== setup.ins ====
; 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/
[actions]
requiredWinstVersion >= "4.11.2.6"
setloglevel = 6
DefVar $ProductId$
DefVar $MinimumSpace$
DefVar $NewExe$
DefVar $InstallDir$
DefVar $ExitCode$
DefVar $UserProfileName$
DefStringList $UserProfileNamesList$
DefVar $AppDataDirName$
DefVar $proxy$
set $ProductId$ = "vlc"
set $MinimumSpace$ = "200 MB"
Set $InstallDir$ = "%ProgramFiles32Dir%\VideoLAN\VLC"
set $NewExe$ = $InstallDir$ + "\" + $ProductId$ + ".exe"
set $proxy$ = GetProductProperty("proxy","")
Message "Installing VLC ..."
if not(HasMinimumSpace ("%SYSTEMDRIVE%", $MinimumSpace$))
LogError "Not enough space on %SYSTEMDRIVE%: . " + $MinimumSpace$ + " on Drive %SYSTEMDRIVE%: needed for " + $ProductId$ + "."
isFatalError
else
comment "show product picture"
ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" "VLC"
if FileExists("%ScriptPath%\delsub.ins")
comment "start uninstall sub section"
sub "%ScriptPath%\delsub.ins"
endif
Message "Installing VLC ..."
comment "Start setup program"
Winbatch_install
sub_check_exitcode
comment "what is the name of the Application Data Dir ?"
Set $AppDataDirName$ = TakeString(-1, SplitString("%CommonAppdataDir%", "\"))
if getMsVersionInfo >= "6"
set $AppDataDirName$ = "AppData\Roaming"
endif
comment "Patching user profiles"
;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
Set $UserProfileNamesList$ = getOutStreamFromSection('DosInAnIcon_list_profiledir')
for %prof% in $UserProfileNamesList$ do Sub_update_user_profile
comment "Delete desktop shortcut"
LinkFolder_remove_desktop_link
comment "test for installation success"
if not(FileExists($NewExe$))
logError "Fatal: After Installation "+$NewExe$+" not found"
isFatalError
endif
endif
[LinkFolder_remove_desktop_link]
set_basefolder common_desktopdirectory
set_subfolder ""
delete_element "VLC media player"
[DosInAnIcon_list_profiledir]
@echo off
dir "%ProfileDir%" /b /ad
[Winbatch_install]
;http://www.videolan.org/vlc/download-windows.html
"%SCRIPTPATH%\vlc-2.0.2-win32.exe" /L=1031 /S
[Sub_update_user_profile]
Set $UserProfileName$ = "%prof%"
if not ($UserProfileName$ = "") and not ($UserProfileName$ = "All Users") and not ($UserProfileName$ = "Public") and not ($UserProfileName$ = "LocalService") and not ($UserProfileName$ = "NetworkService")
if FileExists("%ProfileDir%\" + $UserProfileName$ +"\"+ $AppDataDirName$ + "\vlc\")
comment "VLC user profile exist for user " + $UserProfileName$ + ", patching"
Patches_vlcrc "%ProfileDir%\" + $UserProfileName$ +"\"+ $AppDataDirName$ + "\vlc\vlcrc"
else
comment "Creating new VLC profile for user " + $UserProfileName$
Files_copy_vlc_profile_template
endif
if not ($proxy$ = "")
Patches_vlcrc_proxy "%ProfileDir%\" + $UserProfileName$ +"\"+ $AppDataDirName$ + "\vlc\vlcrc"
endif
endif
[Files_copy_vlc_profile_template]
copy -s "%SCRIPTPATH%\profile-template\*.*" "%ProfileDir%\$UserProfileName$\$AppDataDirName$\vlc\"
[Patches_vlcrc]
set [qt4] qt-updates-notif=0
[Patches_vlcrc_proxy]
set [access_http] http-proxy=$proxy$
[sub_check_exitcode]
comment "test for installation success via exit code"
set $ExitCode$ = getLastExitCode
; informations to exit codes see
; http://msdn.microsoft.com/en-us/library/aa372835(VS.85).aspx
; http://msdn.microsoft.com/en-us/library/aa368542.aspx
if ($ExitCode$ = "0")
comment "looks good: setup program gives exitcode zero"
else
comment "Setup program gives a exitcode unequal zero: "+$ExitCode$
if ($ExitCode$ = "1605")
comment "ERROR_UNKNOWN_PRODUCT 1605 This action is only valid for products that are currently installed."
comment "Uninstall of a not installed product failed - no problem"
else
if ($ExitCode$ = "1641")
comment "looks good: setup program gives exitcode 1641"
comment "ERROR_SUCCESS_REBOOT_INITIATED 1641 The installer has initiated a restart. This message is indicative of a success."
Exitwindows /Reboot
else
if ($ExitCode$ = "3010")
comment "looks good: setup program gives exitcode 3010"
comment "ERROR_SUCCESS_REBOOT_REQUIRED 3010 A restart is required to complete the install. This message is indicative of a success."
Exitwindows /Reboot
else
logError "Fatal: Setup program gives an unknown exitcode unequal zero: "+$ExitCode$
isFatalError
endif
endif
endif
endif
==== delsub.ins ====
; delsub for vlc
Message "Deinstalling VLC ..."
DefVar $UninstallProgram$
Set $UninstallProgram$ = $InstallDir$ + "\uninstall.exe"
comment "Start uninstall program if exists"
if FileExists($UninstallProgram$)
Winbatch_uninstall /WaitForProcessEnding "Au_.exe" /Timeoutseconds 15
;Winbatch_uninstall
sub_check_exitcode
endif
comment "Delete files"
Files_uninstall
[Winbatch_uninstall]
"$UninstallProgram$" /S
[Files_uninstall]
del -sf "$InstallDir$"
[sub_check_exitcode]
comment "test for installation success via exit code"
set $ExitCode$ = getLastExitCode
; informations to exit codes see
; http://msdn.microsoft.com/en-us/library/aa372835(VS.85).aspx
; http://msdn.microsoft.com/en-us/library/aa368542.aspx
if ($ExitCode$ = "0")
comment "looks good: setup program gives exitcode zero"
else
comment "Setup program gives a exitcode unequal zero: "+$ExitCode$
if ($ExitCode$ = "1605")
comment "ERROR_UNKNOWN_PRODUCT 1605 This action is only valid for products that are currently installed."
comment "Uninstall of a not installed product failed - no problem"
else
if ($ExitCode$ = "1641")
comment "looks good: setup program gives exitcode 1641"
comment "ERROR_SUCCESS_REBOOT_INITIATED 1641 The installer has initiated a restart. This message is indicative of a success."
Exitwindows /Reboot
else
if ($ExitCode$ = "3010")
comment "looks good: setup program gives exitcode 3010"
comment "ERROR_SUCCESS_REBOOT_REQUIRED 3010 A restart is required to complete the install. This message is indicative of a success."
Exitwindows /Reboot
else
logError "Fatal: Setup program gives an unknown exitcode unequal zero: "+$ExitCode$
isFatalError
endif
endif
endif
endif
==== uninstall.ins ====
; Copyright (c) uib gmbh (www.uib.de)
; This sourcecode is owned by uib gmbh
; and published under the Terms of the General Public License.
; credits: http://www.opsi.org/credits/
[Actions]
requiredWinstVersion >= "4.11.2.6"
setLogLevel = 6
DefVar $ProductId$
DefVar $InstallDir$
DefVar $ExitCode$
; This should be edited
set $ProductId$ = "vlc"
Set $InstallDir$ = "%ProgramFiles32Dir%\VideoLAN\VLC"
comment "Show product picture"
ShowBitmap "%scriptpath%\" + $ProductId$ + ".png" "VLC"
if FileExists("%ScriptPath%\delsub.ins")
comment "Start uninstall sub section"
sub "%ScriptPath%\delsub.ins"
endif
==== login.ins ====
Can be used with opsi-Extension "User Profile Management"
; Copyright (c) uib gmbh (www.uib.de)
; This sourcecode is owned by uib gmbh
; and published under the Terms of the General Public License.
; credits: http://www.opsi.org/credits/
[Actions]
requiredWinstVersion >= "4.11.2.6"
setloglevel = 6
DefVar $proxy$
set $proxy$ = GetProductProperty("proxy","")
Message "Profile Patch for VLC ...."
comment "Did we run this script before ? - and set version stamp in profile"
if getValue("installationstate", getProductMap) = "installed"
comment "Product is installed"
if not (scriptWasExecutedBefore)
comment "loginscript was not run yet "
if FileExists("%CurrentAppdataDir%\vlc\")
comment "VLC user profile exist for user " + $UserProfileName$ + ", patching"
Patches_vlcrc "%CurrentAppdataDir%\vlc\vlcrc"
else
comment "Creating new VLC profile for user %Username%"
Files_copy_vlc_profile_template
endif
if not ($proxy$ = "")
Patches_vlcrc_proxy "%CurrentAppdataDir%\vlc\vlcrc"
endif
endif
endif
[Files_copy_vlc_profile_template]
copy -s "%SCRIPTPATH%\profile-template\*.*" "%CurrentAppdataDir%\vlc\"
[Patches_vlcrc]
set [qt4] qt-updates-notif=0
[Patches_vlcrc_proxy]
set [access_http] http-proxy=$proxy$