GraphicsMagick: Fix graphics magick installer for Windows.

GraphicsMagick Commits <[email protected]>
Newsgroups gmane.comp.video.graphicsmagick.cvs
Message-ID <mailman.39144.1672855239.1459.graphicsmagick-commit@lists.sourceforge.net>
changeset 6f34369374cc in /hg/GraphicsMagick
details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=6f34369374cc
summary: Fix graphics magick installer for Windows.

diffstat:

 ChangeLog                                                |    8 +
 VisualMagick/installer/inc/body.isx                      |   88 +++++++++++++++
 VisualMagick/installer/inc/files-dlls.isx                |   10 +-
 VisualMagick/installer/redist/VC2008SP1/vcredist_x64.exe |  Bin 
 VisualMagick/installer/redist/VC2008SP1/vcredist_x86.exe |  Bin 
 5 files changed, 102 insertions(+), 4 deletions(-)

diffs (154 lines):

diff -r 8a2f008e12a9 -r 6f34369374cc ChangeLog
--- a/ChangeLog	Wed Jan 04 06:24:22 2023 +0100
+++ b/ChangeLog	Wed Jan 04 18:56:38 2023 +0100
@@ -1,3 +1,11 @@
+2023-01-04 Fojtik Jaroslav  <[email protected]>
+
+	* VisualMagick/installer/inc/body.isx
+	* VisualMagick/installer/inc/files-dlls.isx
+	+ VisualMagick/installer/redist/VC2008SP1/vcredist_x64.exe
+	+ VisualMagick/installer/redist/VC2008SP1/vcredist_x86.exe 
+	Fix graphics magick installer for Windows.
+
 2023-01-04 Fojtik Jaroslav  <[email protected]>
 
 	* VisualMagick/tests/runtest.bat Added new tests for PGX (jp2), MAT,
diff -r 8a2f008e12a9 -r 6f34369374cc VisualMagick/installer/inc/body.isx
--- a/VisualMagick/installer/inc/body.isx	Wed Jan 04 06:24:22 2023 +0100
+++ b/VisualMagick/installer/inc/body.isx	Wed Jan 04 18:56:38 2023 +0100
@@ -81,6 +81,15 @@
 #include "icons-associate.isx"
 
 [Run]
+
+; conditional installation Check for Visual Studio Redistributable
+#ifdef WIN64
+  Filename: "{tmp}\vcredist_x64.exe"; Check: VCRedistNeedsInstall
+#else
+  Filename: "{tmp}\vcredist_x86.exe"; Check: VCRedistNeedsInstall
+#endif
+
+
 #include "run-pathtool.isx"
 
 #ifdef MagickDynamicPackage
@@ -102,3 +111,82 @@
 #ifdef MSVCProprietary
   #include "uninstallrun-unregister-com.isx"
 #endif
+
+
+[Code]
+
+#IFDEF UNICODE
+  #DEFINE AW "W"
+#ELSE
+  #DEFINE AW "A"
+#ENDIF
+type
+  INSTALLSTATE = Longint;
+const
+  INSTALLSTATE_INVALIDARG = -2;  // An invalid parameter was passed to the function.
+  INSTALLSTATE_UNKNOWN = -1;     // The product is neither advertised or installed.
+  INSTALLSTATE_ADVERTISED = 1;   // The product is advertised but not installed.
+  INSTALLSTATE_ABSENT = 2;       // The product is installed for a different user.
+  INSTALLSTATE_DEFAULT = 5;      // The product is installed for the current user.
+
+  // Microsoft Visual C++ Redistributable Package is installed at "c:\WINDOWS\WinSxS\"
+  VC_2005_REDIST_X86                  = '{A49F249F-0C91-497F-86DF-B2585E8E76B7}';
+  VC_2005_REDIST_X64                  = '{6E8E85E8-CE4B-4FF5-91F7-04999C9FAE6A}';
+  VC_2005_REDIST_IA64                 = '{03ED71EA-F531-4927-AABD-1C31BCE8E187}';
+  VC_2005_SP1_REDIST_X86              = '{7299052B-02A4-4627-81F2-1818DA5D550D}';
+  VC_2005_SP1_REDIST_X64              = '{071C9B48-7C32-4621-A0AC-3F809523288F}';
+  VC_2005_SP1_REDIST_IA64             = '{0F8FB34E-675E-42ED-850B-29D98C2ECE08}';
+  VC_2005_SP1_ATL_SEC_UPD_REDIST_X86  = '{837B34E3-7C30-493C-8F6A-2B0F04E2912C}';  // Microsoft Visual C++ 2005 Redistributable, v 8.0.59193
+  VC_2005_SP1_ATL_SEC_UPD_REDIST_X64  = '{6CE5BAE9-D3CA-4B99-891A-1DC6C118A5FC}';
+  VC_2005_SP1_ATL_SEC_UPD_REDIST_IA64 = '{85025851-A784-46D8-950D-05CB3CA43A13}';
+
+  VC_2008_REDIST_X86                  = '{FF66E9F6-83E7-3A3E-AF14-8DE9A809A6A4}';
+  VC_2008_REDIST_X64                  = '{350AA351-21FA-3270-8B7A-835434E766AD}';
+  VC_2008_REDIST_IA64                 = '{2B547B43-DB50-3139-9EBE-37D419E0F5FA}';
+  VC_2008_SP1_REDIST_X86_             = '{3C3D696B-0DB7-3C6D-A356-3DB8CE541918}';  // Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729
+  VC_2008_SP1_REDIST_X86              = '{9A25302D-30C0-39D9-BD6F-21E6EC160475}';  // Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.17
+  VC_2008_SP1_REDIST_X64              = '{8220EEFE-38CD-377E-8595-13398D740ACE}';
+  VC_2008_SP1_REDIST_IA64             = '{5827ECE1-AEB0-328E-B813-6FC68622C1F9}';
+  VC_2008_SP1_ATL_SEC_UPD_REDIST_X86  = '{1F1C2DFC-2D24-3E06-BCB8-725134ADF989}';
+  VC_2008_SP1_ATL_SEC_UPD_REDIST_X64  = '{4B6C7001-C7D6-3710-913E-5BC23FCE91E6}';
+  VC_2008_SP1_ATL_SEC_UPD_REDIST_IA64 = '{977AD349-C2A8-39DD-9273-285C08987C7B}';
+  VC_2008_SP1_MFC_SEC_UPD_REDIST_X86  = '{9BE518E6-ECC6-35A9-88E4-87755C07200F}';  // Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.6161
+  VC_2008_SP1_MFC_SEC_UPD_REDIST_X64  = '{5FCE6D76-F5DC-37AB-B2B8-22AB8CEDB1D4}';
+  VC_2008_SP1_MFC_SEC_UPD_REDIST_IA64 = '{515643D1-4E9E-342F-A75A-D1F16448DC04}';
+
+  VC_2010_REDIST_X86                  = '{196BB40D-1578-3D01-B289-BEFC77A11A1E}';
+  VC_2010_REDIST_X64                  = '{DA5E371C-6333-3D8A-93A4-6FD5B20BCC6E}';
+  VC_2010_REDIST_IA64                 = '{C1A35166-4301-38E9-BA67-02823AD72A1B}';
+  VC_2010_SP1_REDIST_X86              = '{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}';
+  VC_2010_SP1_REDIST_X64              = '{1D8E6291-B0D5-35EC-8441-6616F567A0F7}';
+  VC_2010_SP1_REDIST_IA64             = '{88C73C1C-2DE5-3B01-AFB8-B46EF4AB41CD}';
+
+function MsiQueryProductState(szProduct: string): INSTALLSTATE; 
+  external 'MsiQueryProductState{#AW}@msi.dll stdcall';
+
+function VCVersionInstalled(const ProductID: string): Boolean;
+begin
+  Result := MsiQueryProductState(ProductID) = INSTALLSTATE_DEFAULT;
+end;
+
+function VCRedistNeedsInstall: Boolean;
+var
+  r1, r2, r3: Boolean;
+begin
+  // here the Result must be True when you need to install your VCRedist
+  // or False when you don't need to, so now it's upon you how you build
+  // this statement, the following won't install your VC redist only when
+  // the Visual C++ 2010 Redist (x86) and Visual C++ 2010 SP1 Redist(x86)
+  // are installed for the current user
+#ifdef WIN64
+  r1 := VCVersionInstalled(VC_2008_REDIST_X64);
+  r2 := VCVersionInstalled(VC_2008_SP1_REDIST_X64);
+  r3 := VCVersionInstalled(VC_2008_SP1_MFC_SEC_UPD_REDIST_X64);
+#else
+  r1 := VCVersionInstalled(VC_2008_REDIST_X86);
+  r2 := VCVersionInstalled(VC_2008_SP1_REDIST_X86_);
+  r3 := VCVersionInstalled(VC_2008_SP1_MFC_SEC_UPD_REDIST_X86);
+#endif
+  Result := not ((r1 and r2) or r3);
+end;
+
diff -r 8a2f008e12a9 -r 6f34369374cc VisualMagick/installer/inc/files-dlls.isx
--- a/VisualMagick/installer/inc/files-dlls.isx	Wed Jan 04 06:24:22 2023 +0100
+++ b/VisualMagick/installer/inc/files-dlls.isx	Wed Jan 04 18:56:38 2023 +0100
@@ -12,23 +12,25 @@
 
 #ifdef WIN64
   #define  public CPUARCH "amd64"
+  Source: "redist\VC2008SP1\vcredist_x64.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall; Check: VCRedistNeedsInstall
 #else
   #define  public CPUARCH "x86"
+  Source: "redist\VC2008SP1\vcredist_x86.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall; Check: VCRedistNeedsInstall
 #endif
 
 ;
 ; MSVC Runtime DLLs and manifests
 ;
 ; C runtime
-Source: {#MSVCRedist}\{#CPUARCH}\Microsoft.VC90.CRT\msvcr90.dll; DestDir: {#MagickLibDirectory}; Flags: ignoreversion
+;Source: {#MSVCRedist}\{#CPUARCH}\Microsoft.VC90.CRT\msvcr90.dll; DestDir: {#MagickLibDirectory}; Flags: ignoreversion
 
 ; C++ standard runtime
 ; Source: {#MSVCRedist}\{#CPUARCH}\Microsoft.VC90.CRT\msvcp90.dll; DestDir: {#MagickLibDirectory}; Flags: ignoreversion
-Source: {#MSVCRedist}\{#CPUARCH}\Microsoft.VC90.CRT\Microsoft.VC90.CRT.manifest; DestDir: {#MagickLibDirectory}; Flags: ignoreversion
+;Source: {#MSVCRedist}\{#CPUARCH}\Microsoft.VC90.CRT\Microsoft.VC90.CRT.manifest; DestDir: {#MagickLibDirectory}; Flags: ignoreversion
 
 ; OpenMP runtime
-Source: {#MSVCRedist}\{#CPUARCH}\Microsoft.VC90.OPENMP\vcomp90.dll; DestDir: {#MagickLibDirectory}; Flags: ignoreversion
-Source: {#MSVCRedist}\{#CPUARCH}\Microsoft.VC90.OPENMP\Microsoft.VC90.OpenMP.manifest; DestDir: {#MagickLibDirectory}; Flags: ignoreversion
+;Source: {#MSVCRedist}\{#CPUARCH}\Microsoft.VC90.OPENMP\vcomp90.dll; DestDir: {#MagickLibDirectory}; Flags: ignoreversion
+;Source: {#MSVCRedist}\{#CPUARCH}\Microsoft.VC90.OPENMP\Microsoft.VC90.OpenMP.manifest; DestDir: {#MagickLibDirectory}; Flags: ignoreversion
 
 ; MFC C++ runtime
 ; Source: {#MSVCRedist}\{#CPUARCH}\Microsoft.VC90.MFC\mfc90.dll;   DestDir: {#MagickLibDirectory}; Flags: ignoreversion
diff -r 8a2f008e12a9 -r 6f34369374cc VisualMagick/installer/redist/VC2008SP1/vcredist_x64.exe
Binary file VisualMagick/installer/redist/VC2008SP1/vcredist_x64.exe has changed
diff -r 8a2f008e12a9 -r 6f34369374cc VisualMagick/installer/redist/VC2008SP1/vcredist_x86.exe
Binary file VisualMagick/installer/redist/VC2008SP1/vcredist_x86.exe has changed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.