Quicktime

From WPKG | Open Source Software Deployment and Distribution
Jump to: navigation, search

This is a silent installer for QuickTime.

QuickTime 7.7.8 (7.78)[edit]

Current iTunes releases don't seem to install correctly from the; fortunately, unpacking it to get MSIs a'la iTunes is simple.

QuickTime requires Apple Application Support. 7.7.6 through 7.7.8 ship 2.3.6, but iTunes 12.0.1 ships 3.1. If you're going to install both, they should depend on a separate package instead of both trying to install & remove it; therefore, this definition requires a separate Apple Application Support package. You should generally use the one provided in the iTunes article, but if you're not deploying iTunes, a package for 2.3.6 is also included here for your convenience.

To use this definition, download QuickTime and place it into %SOFTWARE%\Apple\QuickTime-7.7.8. In that directory, run QuickTimeInstaller.exe /extract (or unpack it with an appropriate file archiver). You'll end up with three MSIs and one EXE. If you also distribute iTunes, then you only care about QuickTime.msi; if you don't distribute iTunes, you also need AppleApplicationSupport.msi.

To avoid the tedious process of looking up new ClassIDs / GUIDs each time you deploy a new QuickTime, this package is written to remove by referencing the original MSI. This means it's a good idea to keep the old MSIs around.

To deploy a new QuickTime release, start by updating %PKG_VERSION%, then create a new directory %SOFTWARE\Apple\QuickTime-%PKG_VERSION% and extract the new installer there. Right-click each MSI and check the Details tab to find the internal version, then update %QT_INTERNAL_VER% and your Apple Application Support package, as appropriate.

<package
   id="apple_quicktime"
   name="QuickTime"
   revision="%PKG_VERSION%-%QT_INTERNAL_VER%"
   reboot="false"
   priority="0">

 <depends package-id="appleapplicationsupport" />

 <!-- QuickTime has two version numbers one for the end-user and the other
      an internal version. Find it by right-clicking on the MSI and looking
      at the Details tab, where it's been helpfully added as a comment. -->

 <variable name="PKG_VERSION" value="7.7.8" />
 <variable name="QT_INTERNAL_VER" value="7.78.80.95" />

 <check type="uninstall" condition="versiongreaterorequal" path="QuickTime 7" value="%QT_INTERNAL_VER%" />

 <install cmd='msiexec /qn /i "%SOFTWARE%\Apple\QuickTime-%PKG_VERSION%\QuickTime.msi" DESKTOP_SHORTCUTS=0 QT_TRAY_ICON=0'>
   <exit code="0" />
   <exit code="3010" />
 </install>

 <remove cmd='msiexec /qn /x "%SOFTWARE%\Apple\QuickTime-%PKG_VERSION%\QuickTime.msi"'>
   <exit code="any" /> <!-- rely on checks to tell if it's gone -->
 </remove>

 <upgrade include="install" />
 <downgrade include="install" />

</package>

Apple Application Support[edit]

If you're not bothering with iTunes, this untested modification of a current Apple Application Support package might work with 2.3.6 as shipped in QuickTime 7.7.8. Note that because Apple Application Support is shared between iTunes and QuickTime, this package expects its MSI in %SOFTWARE%\Apple\AppleApplicationSupport-%PKG_VERSION%.msi.

<package
   id="appleapplicationsupport"
   name="Apple Application Support"
   revision="%PKG_VERSION%"
   reboot="false"
   priority="0">

 <variable name="PKG_VERSION" value="2.3.6" />

 <check type="uninstall" condition="versiongreaterorequal" path="Apple Application Support" value="%PKG_VERSION%"  /> 

 <install cmd='msiexec /qn /i "%SOFTWARE%\Apple\AppleApplicationSupport-%PKG_VERSION%.msi"'>
   <exit code="0" /> 
   <exit code="1638" /> 
   <exit code="3010" /> 
 </install>

 <upgrade include="install" />
 <downgrade include="install" />

 <remove cmd='msiexec /qn /x "%SOFTWARE%\Apple\AppleApplicationSupport-%PKG_VERSION%.msi"'>
   <exit code="any" /> <!-- we'll rely on check conditions to see if it was removed -->
 </remove>

</package>

Older releases[edit]

The older procedure of installing from the EXE no longer seems to work with current releases.

Package for Quicktime 7.3.1:

<package id="Apple_Quicktime" name="Apple Quicktime Player" revision="731" priority="40" reboot="false">
 <check type="logical" condition="and">
   <check type="registry" condition="exists" path="HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{E0D51394-1D45-460A-B62D-383BC4F8B335}" /> 
   <check type="uninstall" condition="exists" path="QuickTime" /> 
 </check>
 <install cmd='"%SOFTWARE%\Apple\Quicktime\7.3.1\QuickTimeInstaller.exe" /quiet /norestart ChkOptInstASU=0 DESKTOP_SHORTCUTS=0 QT_TRAY_ICON=0 SCHEDULE_ASUW=0' timeout="0">
   <exit code="0" /> 
   <exit code="3010" /> 
 </install>
 <remove cmd="%windir%\system32\MsiExec.exe /X {E0D51394-1D45-460A-B62D-383BC4F8B335} /qb-!" timeout="0">
   <exit code="0" /> 
   <exit code="3010" reboot="true" /> 
 </remove>
 <upgrade cmd='"%SOFTWARE%\Apple\Quicktime\7.3.1\QuickTimeInstaller.exe" /quiet /norestart ChkOptInstASU=0 DESKTOP_SHORTCUTS=0 QT_TRAY_ICON=0 SCHEDULE_ASUW=0' timeout="0">
   <exit code="0" /> 
   <exit code="3010" reboot="true" /> 
 </upgrade>
</package>

With each QuickTime release, the classID for the registry check and uninstall command changes. To find the correct classID for unknown QuickTime versions, try running strings QuickTimeInstaller.exe | egrep '\{[0-F]+(-[0-F]+){4}\}'. For example, QuickTime 7.6.9 uses {57752979-A1C9-4C02-856B-FBB27AC4E02C}.

Newer QuickTime releases require Apple Application Support to work properly. See iTunes for more information.

Now you only have to delete the Registry key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" -> "QuickTime Task". I do this one using KIXTART.



Below a "truly silent" method, taken from http://www.mediamacros.com/item/item-1006687115/:

How do I make Quicktime Install Silently?

First you need the stand alone installer from Quicktime. Then place a text file beside the installer and name it QuickTimeInstaller.ini and place this text inside....

 [QTSETUP]
 license_option=0
 no_dialogs=true
 registration_dialog=false
 supress_speed_dialog=true
 install_qtjava=false
 install_qd3d=true
 show_sample=false
 show_readme=false
 show_programfolder=false
 install_qtinfo=true


Then I use these settings:

<packages>
 <package id="quicktime" name="QuickTime" revision="3" priority="10" reboot="false">
 <check type="uninstall" condition="exists" path="QuickTime"/>
 <install cmd="%SOFTWARE%\Quicktime\QuickTimeInstaller.exe /quiet"/>
 <install cmd='cmd /c del /s /q "%ALLUSERSPROFILE%\Desktop\QuickTime Player.lnk"'/>
 <remove cmd="%SYSTEMROOT%\system32\msiexec.exe /i {5E863175-E85D-44A6-8968-82507D34AE7F} /qf /quiet"/>
 <upgrade cmd="%SOFTWARE%\Quicktime\QuickTimeInstaller.exe /quiet"/>
 <upgrade cmd='cmd /c del /s /q "%ALLUSERSPROFILE%\Desktop\QuickTime Player.lnk"'/>
 </package>
</packages>

Note: You may wish to use 'start /wait' to ensure installation is completed before the installer returns.