[Libreoffice-commits] .: android/experimental android/qa ios/CustomTarget_Viewer_app.mk scp2/inc scp2/source setup_native/prj setup_native/source solenv/bin
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Thu Jan 10 01:32:56 PST 2013
android/experimental/DocumentLoader/Makefile | 1
android/experimental/LibreOffice4Android/Makefile | 1
android/qa/desktop/Makefile | 1
ios/CustomTarget_Viewer_app.mk | 1
scp2/inc/macros.inc | 11
scp2/source/activex/file_activex.scp | 7
scp2/source/calc/registryitem_calc.scp | 1
scp2/source/draw/registryitem_draw.scp | 1
scp2/source/impress/registryitem_impress.scp | 1
scp2/source/ooo/common_brand.scp | 20
scp2/source/ooo/directory_ooo_macosx.scp | 1
scp2/source/ooo/file_library_ooo.scp | 15
scp2/source/ooo/file_ooo.scp | 9
scp2/source/ooo/module_hidden_ooo.scp | 1
scp2/source/ooo/windowscustomaction_ooo.scp | 69
scp2/source/smoketest/smoketest.scp | 1
scp2/source/writer/registryitem_writer.scp | 1
setup_native/prj/build.lst | 1
setup_native/source/win32/customactions/languagepacks/respintest.cxx | 33
setup_native/source/win32/customactions/patch/exports.dxp | 8
setup_native/source/win32/customactions/patch/makefile.mk | 75 -
setup_native/source/win32/customactions/patch/swappatchfiles.cxx | 717 ----------
solenv/bin/modules/installer.pm | 78 -
solenv/bin/modules/installer/archivefiles.pm | 67
solenv/bin/modules/installer/control.pm | 1
solenv/bin/modules/installer/epmfile.pm | 468 ------
solenv/bin/modules/installer/globals.pm | 6
solenv/bin/modules/installer/parameter.pm | 31
solenv/bin/modules/installer/scriptitems.pm | 67
solenv/bin/modules/installer/simplepackage.pm | 16
solenv/bin/modules/installer/systemactions.pm | 1
solenv/bin/modules/installer/windows/createfolder.pm | 2
solenv/bin/modules/installer/windows/directory.pm | 5
solenv/bin/modules/installer/windows/feature.pm | 1
solenv/bin/modules/installer/windows/idtglobal.pm | 29
solenv/bin/modules/installer/windows/inifile.pm | 19
solenv/bin/modules/installer/windows/mergemodule.pm | 2
solenv/bin/modules/installer/windows/msiglobal.pm | 16
solenv/bin/modules/installer/windows/property.pm | 40
solenv/bin/modules/installer/windows/upgrade.pm | 109 -
solenv/bin/modules/installer/worker.pm | 383 -----
solenv/bin/modules/installer/ziplist.pm | 3
solenv/bin/oochkpatch | 23
solenv/bin/oochkpatch.pl | 292 ----
44 files changed, 73 insertions(+), 2562 deletions(-)
New commits:
commit 26c142ca5f2b405b02ab5701dfaeab7bf281a727
Author: Tor Lillqvist <tml at iki.fi>
Date: Tue Jan 8 23:47:02 2013 +0200
Kill the ancient StarOffice "patch" concept
For Windows, superseded by Windows Installer patching (i.e., creating
.msp files), which is something completely different. (And quite hard
to get working... but still a saner approach, I think.)
For Linux, many distros use delta RPMs or similar, so no home-grown
LO-specific patching mechanism is needed.
Remove the -patch and -patchinc command-line options to
make_installer.pl and all code that was invoked only when using those.
Remove the PATCH and PATCH_ONLY flags in scp2.
Remove the patchmsi.dll Windows Installer custom action.
Change-Id: I09e949e601a969f88eff60067faa2352f4f89537
Reviewed-on: https://gerrit.libreoffice.org/1605
Reviewed-by: Michael Stahl <mstahl at redhat.com>
Tested-by: Miklos Vajna <vmiklos at suse.cz>
diff --git a/android/experimental/DocumentLoader/Makefile b/android/experimental/DocumentLoader/Makefile
index 6cd8a29..193184e 100644
--- a/android/experimental/DocumentLoader/Makefile
+++ b/android/experimental/DocumentLoader/Makefile
@@ -123,7 +123,6 @@ copy-stuff:
echo 'AllLanguages=en-US' >> assets/program/versionrc
echo 'BuildVersion=' >> assets/program/versionrc
echo 'buildid=dead-beef' >> assets/program/versionrc
- echo 'ProductBuildid=3' >> assets/program/versionrc
echo 'ProductMajor=360' >> assets/program/versionrc
echo 'ProductMinor=1' >> assets/program/versionrc
echo 'ReferenceOOoMajorMinor=3.6' >> assets/program/versionrc
diff --git a/android/experimental/LibreOffice4Android/Makefile b/android/experimental/LibreOffice4Android/Makefile
index eded9e6..284e9c3 100644
--- a/android/experimental/LibreOffice4Android/Makefile
+++ b/android/experimental/LibreOffice4Android/Makefile
@@ -100,7 +100,6 @@ copy-stuff:
echo 'AllLanguages=en-US' >> assets/program/versionrc
echo 'BuildVersion=' >> assets/program/versionrc
echo 'buildid=dead-beef' >> assets/program/versionrc
- echo 'ProductBuildid=3' >> assets/program/versionrc
echo 'ProductMajor=360' >> assets/program/versionrc
echo 'ProductMinor=1' >> assets/program/versionrc
echo 'ReferenceOOoMajorMinor=3.6' >> assets/program/versionrc
diff --git a/android/qa/desktop/Makefile b/android/qa/desktop/Makefile
index bec3908..37f283e 100644
--- a/android/qa/desktop/Makefile
+++ b/android/qa/desktop/Makefile
@@ -67,7 +67,6 @@ buildrcs:
echo "BuildVersion=" >> assets/program/versionrc
echo "buildid=dead-beef" >> assets/program/versionrc
echo "ExtensionUpdateURL=http://updateexte.libreoffice.org/ExtensionUpdateService/check.Update" >> assets/program/versionrc
- echo "ProductBuildid=3" >> assets/program/versionrc
echo "ProductMajor=360" >> assets/program/versionrc
echo "ProductMinor=1" >> assets/program/versionrc
echo "ReferenceOOoMajorMinor=3.6" >> assets/program/versionrc
diff --git a/ios/CustomTarget_Viewer_app.mk b/ios/CustomTarget_Viewer_app.mk
index 8c05728..2ccbf84 100644
--- a/ios/CustomTarget_Viewer_app.mk
+++ b/ios/CustomTarget_Viewer_app.mk
@@ -123,7 +123,6 @@ $(SCRIPT_OUTPUT_FILE_0) : $(call gb_Executable_get_target,Viewer)
echo 'AllLanguages=en-US' && \
echo 'BuildVersion=' && \
echo 'buildid=$(buildid)' && \
- echo 'ProductBuildid=3' && \
echo 'ProductMajor=360' && \
echo 'ProductMinor=1' && \
: ) > $(appdir)/program/versionrc
diff --git a/scp2/inc/macros.inc b/scp2/inc/macros.inc
index c10a136..fd336d0 100755
--- a/scp2/inc/macros.inc
+++ b/scp2/inc/macros.inc
@@ -100,11 +100,6 @@
Styles = (PACKED); \
Dir = SCP2_OOO_BIN_DIR
-#define PACKED_LIB_FILE_BODY_PATCH \
- LIB_FILE_BODY; \
- Styles = (PACKED,PATCH); \
- Dir = SCP2_OOO_BIN_DIR
-
#define STD_LIB_FILE(id,name) \
File id \
Name = LIBNAME(name); \
@@ -117,12 +112,6 @@
PACKED_LIB_FILE_BODY; \
End
-#define SPECIAL_LIB_FILE_PATCH(id,name) \
- File id \
- Name = SPECIAL_NAME(name); \
- PACKED_LIB_FILE_BODY_PATCH; \
- End
-
#define STD_RES_FILE(id,name) \
File id \
TXT_FILE_BODY; \
diff --git a/scp2/source/activex/file_activex.scp b/scp2/source/activex/file_activex.scp
index 2ff8583..680480d 100644
--- a/scp2/source/activex/file_activex.scp
+++ b/scp2/source/activex/file_activex.scp
@@ -53,11 +53,4 @@ File gid_File_Lib_Regactivex_Msi
Name = "regactivex.dll";
End
-File gid_File_Lib_Regpatchactivex_Msi
- LIB_FILE_BODY;
- Styles = (PACKED,PATCH,PATCH_ONLY,BINARYTABLE,BINARYTABLE_ONLY,DONTRENAMEINPATCH);
- Dir = SCP2_OOO_BIN_DIR;
- Name = "regpatchactivex.dll";
-End
-
#endif // WITH_ACTIVEX_COMPONENT
diff --git a/scp2/source/calc/registryitem_calc.scp b/scp2/source/calc/registryitem_calc.scp
index 6f886a4..d5b5af2 100644
--- a/scp2/source/calc/registryitem_calc.scp
+++ b/scp2/source/calc/registryitem_calc.scp
@@ -835,7 +835,6 @@ RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabi
ModuleID = gid_Module_Root;
Name = ".fods";
Value = "LibreOffice.CalcDocument.1";
- Styles = (PATCH);
End
RegistryItem gid_Regitem_Fods_Contenttype
diff --git a/scp2/source/draw/registryitem_draw.scp b/scp2/source/draw/registryitem_draw.scp
index 2caa0bc..4e90016 100644
--- a/scp2/source/draw/registryitem_draw.scp
+++ b/scp2/source/draw/registryitem_draw.scp
@@ -843,7 +843,6 @@ RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabi
ModuleID = gid_Module_Root;
Name = ".fodg";
Value = "LibreOffice.DrawDocument.1";
- Styles = (PATCH);
End
RegistryItem gid_Regitem_fodg_KindMap
diff --git a/scp2/source/impress/registryitem_impress.scp b/scp2/source/impress/registryitem_impress.scp
index 0c76dbd..8fa7ee9 100644
--- a/scp2/source/impress/registryitem_impress.scp
+++ b/scp2/source/impress/registryitem_impress.scp
@@ -864,7 +864,6 @@ RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabi
ModuleID = gid_Module_Root;
Name = ".fodp";
Value = "LibreOffice.ImpressDocument.1";
- Styles = (PATCH);
End
RegistryItem gid_Regitem_Fodp_Contenttype
diff --git a/scp2/source/ooo/common_brand.scp b/scp2/source/ooo/common_brand.scp
index 9582f76..eae79e7 100644
--- a/scp2/source/ooo/common_brand.scp
+++ b/scp2/source/ooo/common_brand.scp
@@ -529,7 +529,7 @@ End
File gid_File_Bin_QStart_Bin
BIN_FILE_BODY;
Dir = gid_Brand_Dir_Program;
- Styles = (PACKED, PATCH);
+ Styles = (PACKED);
Name = "oosplash";
End
@@ -1016,15 +1016,6 @@ ProfileItem gid_Brand_Profileitem_Version_Productminor
Value = "<productminor>";
End
-ProfileItem gid_Brand_Profileitem_Version_Productbuildid
- ProfileID = gid_Brand_Profile_Version_Ini;
- ModuleID = gid_Module_Root_Brand;
- Section = "Version";
- Order = 12;
- Key = "ProductBuildid";
- Value = "<productbuildid>";
-End
-
ProfileItem gid_Brand_Profileitem_Version_Alllanguages
ProfileID = gid_Brand_Profile_Version_Ini;
ModuleID = gid_Module_Root_Brand;
@@ -1332,15 +1323,6 @@ ProfileItem gid_Brand_Profileitem_Setup_Upgradecode
End
#endif
-ProfileItem gid_Brand_Profileitem_Setup_Productbuildid
- ProfileID = gid_Brand_Profile_Setup_Ini;
- ModuleID = gid_Module_Root_Brand;
- Section = "Bootstrap";
- Order = 8;
- Key = "ProductBuildid";
- Value = "<productbuildid>";
-End
-
ProfileItem gid_Brand_Profileitem_Setup_Buildid
ProfileID = gid_Brand_Profile_Setup_Ini;
ModuleID = gid_Module_Root_Brand;
diff --git a/scp2/source/ooo/directory_ooo_macosx.scp b/scp2/source/ooo/directory_ooo_macosx.scp
index ab1138d..c8b160e 100644
--- a/scp2/source/ooo/directory_ooo_macosx.scp
+++ b/scp2/source/ooo/directory_ooo_macosx.scp
@@ -32,7 +32,6 @@ Directory gid_Dir_Bundle
ParentID = PD_PROGDIR;
HostName = "%PRODUCTNAME.app";
LangPackHostName = "%PRODUCTNAME Language Pack.app";
- PatchHostName = "%PRODUCTNAME Patch.app";
End
Directory gid_Dir_Bundle_Contents
diff --git a/scp2/source/ooo/file_library_ooo.scp b/scp2/source/ooo/file_library_ooo.scp
index a804041..65a346f 100644
--- a/scp2/source/ooo/file_library_ooo.scp
+++ b/scp2/source/ooo/file_library_ooo.scp
@@ -753,17 +753,6 @@ End
#endif
-#ifdef WNT
-
-File gid_File_Lib_Patchmsi
- LIB_FILE_BODY;
- Name = "patchmsi.dll";
- Dir = SCP2_OOO_BIN_DIR;
- Styles = (PACKED,PATCH,PATCH_ONLY,BINARYTABLE,BINARYTABLE_ONLY,DONTRENAMEINPATCH);
-End
-
-#endif
-
STD_LIB_FILE( gid_File_Lib_Lng, lng)
File gid_File_Lib_Localedata_En
@@ -1424,10 +1413,10 @@ STD_LIB_FILE( gid_File_Lib_Unoxml, unoxml )
STD_LIB_FILE( gid_File_Lib_AVMedia, avmedia )
#if defined ENABLE_GSTREAMER
-SPECIAL_LIB_FILE_PATCH( gid_File_Lib_AVMediaGStreamer, avmediagst )
+SPECIAL_LIB_FILE( gid_File_Lib_AVMediaGStreamer, avmediagst )
#endif
#if defined ENABLE_GSTREAMER_0_10
-SPECIAL_LIB_FILE_PATCH( gid_File_Lib_AVMediaGStreamer_0_10, avmediagst_0_10 )
+SPECIAL_LIB_FILE( gid_File_Lib_AVMediaGStreamer_0_10, avmediagst_0_10 )
#endif
#if defined WNT
#ifdef ENABLE_DIRECTX
diff --git a/scp2/source/ooo/file_ooo.scp b/scp2/source/ooo/file_ooo.scp
index e973a58..68fe448 100644
--- a/scp2/source/ooo/file_ooo.scp
+++ b/scp2/source/ooo/file_ooo.scp
@@ -1122,15 +1122,6 @@ File gid_File_Xsl_Import_Wordml_Wordml2ooo_Props
Name = "/xslt/import/wordml/wordml2ooo_props.xsl";
End
-#ifdef WNT
-File gid_File_Txt_Patchfiles
- TXT_FILE_BODY;
- Name = "patchlist.txt";
- Dir = gid_Brand_Dir_Program;
- Styles = (PACKED,PATCH,PATCH_ONLY,DONTRENAMEINPATCH);
-End
-#endif
-
File gid_Starregistry_Services_Rdb
TXT_FILE_BODY;
Name = "services.rdb";
diff --git a/scp2/source/ooo/module_hidden_ooo.scp b/scp2/source/ooo/module_hidden_ooo.scp
index 2671051..0efe8b6 100644
--- a/scp2/source/ooo/module_hidden_ooo.scp
+++ b/scp2/source/ooo/module_hidden_ooo.scp
@@ -449,7 +449,6 @@ Module gid_Module_Root_Files_5
gid_File_Lib_Msvcp70,
gid_File_Lib_Msvcr70,
gid_File_Lib_Ole,
- gid_File_Lib_Patchmsi,
gid_File_Lib_Reg4allmsdoc,
gid_File_Lib_Qslnkmsi,
gid_File_Lib_Sdqsmsi,
diff --git a/scp2/source/ooo/windowscustomaction_ooo.scp b/scp2/source/ooo/windowscustomaction_ooo.scp
index b489c32..a52a07b 100644
--- a/scp2/source/ooo/windowscustomaction_ooo.scp
+++ b/scp2/source/ooo/windowscustomaction_ooo.scp
@@ -244,26 +244,6 @@ WindowsCustomAction gid_Customaction_Patch_Regpatchactivex_Patchactivexcontrol
Assignment1 = ("InstallExecuteSequence", "\&FEATURETEMPLATE=3", "end");
End
-WindowsCustomAction gid_Customaction_Patch_SetProductInstallModeAction
- Name = "SetProductInstallModeAction";
- Typ = "321";
- Source = "patchmsi.dll";
- Target = "SetProductInstallMode";
- Inbinarytable = 1;
- Assignment1 = ("InstallExecuteSequence", "Not Installed", "FindRelatedProducts");
- Assignment2 = ("InstallUISequence", "Not Installed", "FindRelatedProducts");
-End
-
-WindowsCustomAction gid_Customaction_Patch_InstallExchangeFiles
- Name = "InstallExchangeFiles";
- Typ = "65";
- Source = "patchmsi.dll";
- Target = "InstallPatchedFiles";
- Inbinarytable = 1;
- Assignment1 = ("InstallExecuteSequence", "Not Installed", "behind_InstallFinalize");
- Assignment2 = ("AdminExecuteSequence", "", "behind_InstallFinalize");
-End
-
WindowsCustomAction gid_Customaction_Langpack_Register_Extensions
Name = "RegisterExtensions";
Typ = "65";
@@ -274,34 +254,6 @@ WindowsCustomAction gid_Customaction_Langpack_Register_Extensions
Assignment2 = ("AdminExecuteSequence", "", "end");
End
-WindowsCustomAction gid_Customaction_Patch_SetFeatureState
- Name = "SetFeatureState";
- Typ = "65";
- Source = "patchmsi.dll";
- Target = "SetFeatureState";
- Inbinarytable = 1;
- Assignment1 = ("InstallExecuteSequence", "Not Installed", "SetNewFeatureState");
-End
-
-WindowsCustomAction gid_Customaction_Patch_DeinstallExchangeFiles
- Name = "DeinstallExchangeFiles";
- Typ = "65";
- Source = "patchmsi.dll";
- Target = "UninstallPatchedFiles";
- Inbinarytable = 1;
- Assignment1 = ("InstallExecuteSequence", "Installed", "RemoveIniValues");
-End
-
-WindowsCustomAction gid_Customaction_Patch_Shutdownquickstarter
- Name = "ShutDownQuickstarter";
- Typ = "65";
- Source = "patchmsi.dll";
- Target = "ShutDownQuickstarter";
- Inbinarytable = 1;
- Assignment1 = ("ControlEvent", "DestinationFolder", "Next", "DoAction", "ShutDownQuickstarter", "1", "0");
- Assignment2 = ("InstallExecuteSequence", "", "IsolateComponents");
-End
-
WindowsCustomAction gid_Customaction_CheckPatchList
Name = "CheckPatchList";
Typ = "65";
@@ -311,27 +263,6 @@ WindowsCustomAction gid_Customaction_CheckPatchList
Assignment1 = ("InstallExecuteSequence", "PATCH", "Patch1NotInstalled");
End
-WindowsCustomAction gid_Customaction_Patch_SetUserInstallMode
- Name = "SetUserInstallMode";
- Typ = "321";
- Source = "patchmsi.dll";
- Target = "GetUserInstallMode";
- Inbinarytable = 1;
- Assignment1 = ("ControlEvent", "InstallWelcome", "Next", "DoAction", "SetUserInstallMode", "1", "1");
- Assignment2 = ("ControlEvent", "InstallChangeFolder", "OK", "DoAction", "SetUserInstallMode", "1", "8");
- Assignment3 = ("ControlCondition", "DestinationFolder", "Next", "Enable", "NOT INVALIDDIRECTORY And NOT PATCHISOLDER And NOT ISWRONGPRODUCT");
- Assignment4 = ("ControlCondition", "DestinationFolder", "Next", "Disable", "INVALIDDIRECTORY Or PATCHISOLDER Or ISWRONGPRODUCT");
- Assignment5 = ("ControlCondition", "DestinationFolder", "LabelStartInstall", "Show", "NOT INVALIDDIRECTORY And NOT PATCHISOLDER And NOT ISWRONGPRODUCT");
- Assignment6 = ("ControlCondition", "DestinationFolder", "LabelInvalidDir", "Show", "INVALIDDIRECTORY");
- Assignment7 = ("ControlCondition", "DestinationFolder", "LabelPatchOlder", "Show", "PATCHISOLDER");
- Assignment8 = ("ControlCondition", "DestinationFolder", "LabelWrongProduct", "Show", "ISWRONGPRODUCT");
- Assignment9 = ("ControlCondition", "DestinationFolder", "LabelStartInstall2", "Show", "NOT INVALIDDIRECTORY And NOT PATCHISOLDER And NOT ISWRONGPRODUCT");
- Assignment10 = ("ControlCondition", "DestinationFolder", "LabelInvalidDir2", "Show", "INVALIDDIRECTORY");
- Assignment11 = ("ControlCondition", "DestinationFolder", "LabelPatchOlder2", "Show", "PATCHISOLDER");
- Assignment12 = ("ControlCondition", "DestinationFolder", "LabelWrongProduct2", "Show", "ISWRONGPRODUCT");
- Assignment13 = ("InstallExecuteSequence", "Not Installed", "PatchIsOlder");
-End
-
WindowsCustomAction gid_Customaction_Langpack_SetUserInstallMode
Name = "SetUserInstallMode";
Typ = "65";
diff --git a/scp2/source/smoketest/smoketest.scp b/scp2/source/smoketest/smoketest.scp
index 7c368c3..e233a0e 100644
--- a/scp2/source/smoketest/smoketest.scp
+++ b/scp2/source/smoketest/smoketest.scp
@@ -62,7 +62,6 @@ Directory gid_Test_Dir_Bundle
ParentID = PD_PROGDIR;
HostName = "%PRODUCTNAME.app";
LangPackHostName = "%PRODUCTNAME Language Pack.app";
- PatchHostName = "%PRODUCTNAME Patch.app";
End
Directory gid_Test_Dir_Bundle_Contents
diff --git a/scp2/source/writer/registryitem_writer.scp b/scp2/source/writer/registryitem_writer.scp
index 2de4a8b..8242f77 100644
--- a/scp2/source/writer/registryitem_writer.scp
+++ b/scp2/source/writer/registryitem_writer.scp
@@ -1008,7 +1008,6 @@ RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabi
ModuleID = gid_Module_Root;
Name = ".fodt";
Value = "LibreOffice.WriterDocument.1";
- Styles = (PATCH);
End
RegistryItem gid_Regitem_Fodt_Contenttype
diff --git a/setup_native/prj/build.lst b/setup_native/prj/build.lst
index 1c3bf53..fb45ce8 100644
--- a/setup_native/prj/build.lst
+++ b/setup_native/prj/build.lst
@@ -15,7 +15,6 @@ pk setup_native\source\win32\customactions\quickstarter nmake - w sn_quic
pk setup_native\source\win32\customactions\shellextensions nmake - w sn_shellextensions sn_tools.w NULL
pk setup_native\source\win32\customactions\indexingfilter nmake - w sn_indexingfilter NULL
pk setup_native\source\win32\customactions\languagepacks nmake - w sn_languagepacks sn_shellextensions.w sn_tools.w NULL
-pk setup_native\source\win32\customactions\patch nmake - w sn_patch sn_languagepacks.w sn_shellextensions.w sn_quickstarter.w sn_tools.w NULL
pk setup_native\source\win32\wintools\makecab nmake - u sn_makecab NULL
pk setup_native\source\win32\wintools\msidb nmake - u sn_msidb NULL
pk setup_native\source\win32\wintools\msiinfo nmake - u sn_msiinfo NULL
diff --git a/setup_native/source/win32/customactions/languagepacks/respintest.cxx b/setup_native/source/win32/customactions/languagepacks/respintest.cxx
index 3362a7a..f757a88 100644
--- a/setup_native/source/win32/customactions/languagepacks/respintest.cxx
+++ b/setup_native/source/win32/customactions/languagepacks/respintest.cxx
@@ -150,38 +150,7 @@ extern "C" UINT __stdcall GetUserInstallMode(MSIHANDLE handle)
return ERROR_SUCCESS;
}
- // 3. Only for patch: Comparing "PRODUCTMINOR from property table and "ProductMinor" from InfoFile
-
- string isPatch = GetMsiProperty(handle, TEXT("ISPATCH"));
-
- if (isPatch=="1")
- {
- string ProductMinor = GetMsiProperty(handle, TEXT("PRODUCTBUILDID"));
- int PatchProductMinor = atoi(ProductMinor.c_str());
-
- szValue[0] = '\0';
-
- GetPrivateProfileString(
- TEXT("Bootstrap"),
- TEXT("ProductBuildid"),
- TEXT("8918"),
- szValue,
- SAL_N_ELEMENTS(szValue),
- sSetupiniPath.c_str()
- );
-
- int InstalledProductMinor = atoi(szValue);
-
- if ( InstalledProductMinor >= PatchProductMinor )
- {
- SetMsiProperty( handle, TEXT("PATCHISOLDER"), TEXT("YES") );
- // MessageBox(NULL, "PATCHISOLDER set", "DEBUG", MB_OK);
- SetMsiErrorCode( MSI_ERROR_PATCHISOLDER );
- return ERROR_SUCCESS;
- }
- }
-
- // 4. Setting property ALLUSERS with value from "setup.ini"
+ // 3. Setting property ALLUSERS with value from "setup.ini"
szValue[0] = '\0';
diff --git a/setup_native/source/win32/customactions/patch/exports.dxp b/setup_native/source/win32/customactions/patch/exports.dxp
deleted file mode 100644
index bb66077..0000000
--- a/setup_native/source/win32/customactions/patch/exports.dxp
+++ /dev/null
@@ -1,8 +0,0 @@
-InstallPatchedFiles
-UninstallPatchedFiles
-GetUserInstallMode
-SetProductInstallMode
-ShutDownQuickstarter
-SetFeatureState
-SetNewFeatureState
-ShowOnlineUpdateDialog
diff --git a/setup_native/source/win32/customactions/patch/makefile.mk b/setup_native/source/win32/customactions/patch/makefile.mk
deleted file mode 100644
index 81ff1c4..0000000
--- a/setup_native/source/win32/customactions/patch/makefile.mk
+++ /dev/null
@@ -1,75 +0,0 @@
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# This file incorporates work covered by the following license notice:
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed
-# with this work for additional information regarding copyright
-# ownership. The ASF licenses this file to you under the Apache
-# License, Version 2.0 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.apache.org/licenses/LICENSE-2.0 .
-#
-
-PRJ=..$/..$/..$/..
-PRJNAME=setup_native
-TARGET=patchmsi
-
-# --- Settings -----------------------------------------------------
-
-ENABLE_EXCEPTIONS=TRUE
-NO_DEFAULT_STL=TRUE
-DYNAMIC_CRT=
-USE_DEFFILE=TRUE
-
-.INCLUDE : settings.mk
-
-# --- Files --------------------------------------------------------
-
-.IF "$(OS)"=="WNT" && "$(WINDOWS_SDK_HOME)"!=""
-
-UWINAPILIB=
-
-SLOFILES = \
- $(SLO)$/swappatchfiles.obj
-
-STDSHL += \
- $(ADVAPI32LIB)\
- $(MSILIB)\
- $(SHELL32LIB)
-
-.IF "$(COM)"=="GCC"
-STDSHL+= \
- $(KERNEL32LIB)\
- -lmsvcrt
-.ENDIF
-
-
-SHL1OBJS = $(SLOFILES) \
- $(SLO)$/respintest.obj \
- $(SLO)$/shutdown_quickstart.obj \
- $(SLO)$/quickstarter.obj \
- $(SLO)$/upgrade.obj \
- $(SLO)$/seterror.obj
-
-SHL1TARGET = $(TARGET)
-SHL1IMPLIB = i$(TARGET)
-
-SHL1DEF = $(MISC)$/$(SHL1TARGET).def
-SHL1DEPN = $(SLB)$/$(TARGET).lib
-SHL1BASE = 0x1c000000
-DEF1NAME=$(SHL1TARGET)
-DEF1EXPORTFILE=exports.dxp
-
-.ENDIF
-
-# --- Targets --------------------------------------------------------------
-
-.INCLUDE : target.mk
-
-# -------------------------------------------------------------------------
diff --git a/setup_native/source/win32/customactions/patch/swappatchfiles.cxx b/setup_native/source/win32/customactions/patch/swappatchfiles.cxx
deleted file mode 100644
index f2eb254..0000000
--- a/setup_native/source/win32/customactions/patch/swappatchfiles.cxx
+++ /dev/null
@@ -1,717 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#define _WIN32_WINDOWS 0x0410
-
-#ifdef _MSC_VER
-#pragma warning(push, 1) /* disable warnings within system headers */
-#endif
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#include <msiquery.h>
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-
-#include <malloc.h>
-#include <assert.h>
-
-#ifdef UNICODE
-#define _UNICODE
-#define _tstring wstring
-#else
-#define _tstring string
-#endif
-#include <tchar.h>
-#include <string>
-#include <queue>
-#include <stdio.h>
-#include <sal/macros.h>
-
-#include <systools/win32/uwinapi.h>
-#include <../tools/seterror.hxx>
-
-#ifdef DEBUG
-inline void OutputDebugStringFormat( LPCTSTR pFormat, ... )
-{
- _TCHAR buffer[1024];
- va_list args;
-
- va_start( args, pFormat );
- _vsntprintf( buffer, SAL_N_ELEMENTS(buffer), pFormat, args );
- OutputDebugString( buffer );
-}
-#else
-static inline void OutputDebugStringFormat( LPCTSTR, ... )
-{
-}
-#endif
-
-static std::_tstring GetMsiProperty( MSIHANDLE handle, const std::_tstring& sProperty )
-{
- std::_tstring result;
- TCHAR szDummy[1] = TEXT("");
- DWORD nChars = 0;
-
- if ( MsiGetProperty( handle, sProperty.c_str(), szDummy, &nChars ) == ERROR_MORE_DATA )
- {
- DWORD nBytes = ++nChars * sizeof(TCHAR);
- LPTSTR buffer = reinterpret_cast<LPTSTR>(_alloca(nBytes));
- ZeroMemory( buffer, nBytes );
- MsiGetProperty(handle, sProperty.c_str(), buffer, &nChars);
- result = buffer;
- }
-
- return result;
-}
-
-// The provided GUID must be without surounding '{}'
-static std::_tstring GetGuidPart(const std::_tstring& guid, int index)
-{
- assert((guid.length() == 36) && "No GUID or wrong format!");
- assert(((index > -1) && (index < 5)) && "Out of range!");
-
- if (index == 0) return std::_tstring(guid.c_str(), 8);
- if (index == 1) return std::_tstring(guid.c_str() + 9, 4);
- if (index == 2) return std::_tstring(guid.c_str() + 14, 4);
- if (index == 3) return std::_tstring(guid.c_str() + 19, 4);
- if (index == 4) return std::_tstring(guid.c_str() + 24, 12);
-
- return std::_tstring();
-}
-
-static void Swap(char* p1, char* p2)
-{
- char tmp = *p1;
- *p1 = *p2;
- *p2 = tmp;
-}
-
-static std::_tstring Invert(const std::_tstring& str)
-{
- char* buff = reinterpret_cast<char*>(_alloca(str.length()));
- strncpy(buff, str.c_str(), str.length());
-
- char* front = buff;
- char* back = buff + str.length() - 1;
-
- while (front < back)
- Swap(front++, back--);
-
- return std::_tstring(buff, str.length());
-}
-
-// Convert the upgrade code (which is a GUID) according
-// to the way the windows installer does when writing it
-// to the registry
-// The first 8 bytes will be inverted, from the the last
-// 8 bytes always the nibbles will be inverted for further
-// details look in the MSDN under compressed registry keys
-static std::_tstring ConvertGuid(const std::_tstring& guid)
-{
- std::_tstring convertedGuid;
-
- std::_tstring part = GetGuidPart(guid, 0);
- convertedGuid = Invert(part);
-
- part = GetGuidPart(guid, 1);
- convertedGuid += Invert(part);
-
- part = GetGuidPart(guid, 2);
- convertedGuid += Invert(part);
-
- part = GetGuidPart(guid, 3);
- convertedGuid += Invert(std::_tstring(part.c_str(), 2));
- convertedGuid += Invert(std::_tstring(part.c_str() + 2, 2));
-
- part = GetGuidPart(guid, 4);
- int pos = 0;
- for (int i = 0; i < 6; i++)
- {
- convertedGuid += Invert(std::_tstring(part.c_str() + pos, 2));
- pos += 2;
- }
- return convertedGuid;
-}
-
-static inline bool IsSetMsiProperty(MSIHANDLE handle, const std::_tstring& sProperty)
-{
- std::_tstring value = GetMsiProperty(handle, sProperty);
- return (value.length() > 0);
-}
-
-static inline void UnsetMsiProperty(MSIHANDLE handle, const std::_tstring& sProperty)
-{
- MsiSetProperty(handle, sProperty.c_str(), NULL);
-}
-
-static inline void SetMsiProperty(MSIHANDLE handle, const std::_tstring& sProperty)
-{
- MsiSetProperty(handle, sProperty.c_str(), TEXT("1"));
-}
-
-static bool SwapFiles( const std::_tstring& sFileName1, const std::_tstring& sFileName2 )
-{
- std::_tstring sTempFileName = sFileName1 + TEXT(".tmp");
-
- bool fSuccess = true;
-
- //Try to move the original file to a temp file
- fSuccess = MoveFileExA( sFileName1.c_str(), sTempFileName.c_str(), MOVEFILE_REPLACE_EXISTING);
-
- if ( fSuccess )
- {
- fSuccess = MoveFileExA( sFileName2.c_str(), sFileName1.c_str(), MOVEFILE_REPLACE_EXISTING );
-
- if ( fSuccess )
- {
- fSuccess = MoveFileExA( sTempFileName.c_str(), sFileName2.c_str(),
- MOVEFILE_REPLACE_EXISTING );
- if ( !fSuccess )
- {
- MoveFileExA( sFileName1.c_str(), sFileName2.c_str(), MOVEFILE_REPLACE_EXISTING );
- }
- }
- else
- {
- MoveFileExA( sTempFileName.c_str(), sFileName1.c_str(), MOVEFILE_REPLACE_EXISTING );
- }
- }
- else
- {
- //It could be that there is no original file and therefore copying the original to a temp
- // file failed. Examine if there is no original and if so then move file2 to file1
-
- WIN32_FIND_DATA data;
- HANDLE hdl = FindFirstFile(sFileName1.c_str(), &data);
- if (hdl == INVALID_HANDLE_VALUE)
- {
- fSuccess = MoveFileExA( sFileName2.c_str(), sFileName1.c_str(), MOVEFILE_REPLACE_EXISTING );
- }
- else
- {
- FindClose(hdl);
- }
- }
-
- OutputDebugStringFormat( TEXT("%s <-> %s: %s"), sFileName1.c_str(), sFileName2.c_str(), fSuccess ? TEXT("OK") : TEXT("FAILED") );
-
- if (!fSuccess )
- {
- DWORD dwError = GetLastError();
- LPVOID lpMsgBuf;
- if ( FormatMessage(
- FORMAT_MESSAGE_ALLOCATE_BUFFER |
- FORMAT_MESSAGE_FROM_SYSTEM |
- FORMAT_MESSAGE_IGNORE_INSERTS,
- NULL,
- GetLastError(),
- MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
- (LPTSTR) &lpMsgBuf,
- 0,
- NULL ))
- {
- OutputDebugStringFormat( TEXT("Error Code %d: %s"), dwError, lpMsgBuf );
- LocalFree( lpMsgBuf );
- }
- else
- OutputDebugStringFormat( TEXT("Error Code %d: Unknown"), dwError );
- SetMsiErrorCode( dwError );
- }
-
- return fSuccess;
-}
-
-static std::_tstring strip( const std::_tstring& s, _TCHAR c )
-{
- std::_tstring result = s;
-
- std::_tstring::size_type f;
-
- do
- {
- f = result.find( c );
- if ( f != std::_tstring::npos )
- result.erase( f, 1 );
- } while ( f != std::_tstring::npos );
-
- return result;
-}
-
-static std::_tstring trim( const std::_tstring& rString )
-{
- std::_tstring temp = rString;
-
- while ( temp.length() && temp[0] == ' ' || temp[0] == '\t' )
- temp.erase( 0, 1 );
-
- std::_tstring::size_type len = temp.length();
-
- while ( len && temp[len-1] == ' ' || temp[len-1] == '\t' )
- {
- temp.erase( len - 1, 1 );
- len = temp.length();
- }
-
- return temp;
-}
-
-static bool readLine( FILE *fp, std::_tstring& rLine )
-{
- _TCHAR szBuffer[1024];
- bool bSuccess = false;
- bool bEOL = false;
- std::_tstring line;
-
-
- while ( !bEOL && _fgetts( szBuffer, sizeof(szBuffer), fp ) )
- {
- int len = _tcslen(szBuffer);
-
- bSuccess = true;
-
- while ( len && szBuffer[len - 1] == '\n' )
- {
- szBuffer[--len] = 0;
- bEOL = true;
- }
-
- line.append( szBuffer );
- }
-
- rLine = line;
- return bSuccess;
-}
-
-
-static std::_tstring getProfileString(
- const std::_tstring& aFileName,
- const std::_tstring& aSectionName,
- const std::_tstring& aKeyName,
- const std::_tstring& aDefault = _T("") )
-{
- FILE *fp = _tfopen( aFileName.c_str(), _T("r") );
- std::_tstring retValue = aDefault.length() ? aDefault : _T("");
-
- if ( fp )
- {
- std::_tstring line;
- std::_tstring section;
-
- while ( readLine( fp, line ) )
- {
- line = trim( line );
-
- if ( line.length() && line[0] == '[' )
- {
- line.erase( 0, 1 );
- std::_tstring::size_type end = line.find( ']', 0 );
-
- if ( std::_tstring::npos != end )
- section = trim( line.substr( 0, end ) );
- }
- else
- {
-
- std::_tstring::size_type iEqualSign = line.find( '=', 0 );
-
- if ( iEqualSign != std::_tstring::npos )
- {
- std::_tstring keyname = line.substr( 0, iEqualSign );
- keyname = trim( keyname );
-
- std::_tstring value = line.substr( iEqualSign + 1 /*, std::_tstring::npos */ );
- value = trim( value );
-
- if (
- 0 == _tcsicmp( section.c_str(), aSectionName.c_str() ) &&
- 0 == _tcsicmp( keyname.c_str(), aKeyName.c_str() )
- )
- {
- retValue = value;
- break;
- }
- }
- }
- }
-
- fclose( fp );
- }
-
- return retValue;
-}
-
-static std::queue< std::_tstring > getProfileSections( const std::_tstring& aFileName )
-{
- FILE *fp = _tfopen( aFileName.c_str(), _T("r") );
- std::queue< std::_tstring > aResult;
-
- OutputDebugStringFormat( TEXT("*** Retrieving Section Names ****") );
-
- if ( fp )
- {
- std::_tstring line;
- std::_tstring section;
-
- while ( readLine( fp, line ) )
- {
- line = trim( line );
-
- if ( line.length() && line[0] == '[' )
- {
- line.erase( 0, 1 );
- std::_tstring::size_type end = line.find( ']', 0 );
-
- if ( std::_tstring::npos != end )
- section = trim( line.substr( 0, end ) );
-
- aResult.push( section );
-
- OutputDebugStringFormat( TEXT("Section: %s"), section.c_str() );
-
- }
- }
-
- fclose( fp );
- }
-
- OutputDebugStringFormat( TEXT("*** Done Section Names ***") );
-
- return aResult;
-}
-
-static std::queue< std::_tstring > getProfileKeys( const std::_tstring& aFileName, const std::_tstring& aSectionName )
-{
- FILE *fp = _tfopen( aFileName.c_str(), _T("r") );
- std::queue< std::_tstring > aResult;
-
- OutputDebugStringFormat( TEXT("*** Retrieving Key Names for [%s] ***"), aSectionName.c_str() );
-
- if ( fp )
- {
- std::_tstring line;
- std::_tstring section;
-
- while ( readLine( fp, line ) )
- {
- line = trim( line );
-
- if ( line.length() && line[0] == '[' )
- {
- line.erase( 0, 1 );
- std::_tstring::size_type end = line.find( ']', 0 );
-
- if ( std::_tstring::npos != end )
- section = trim( line.substr( 0, end ) );
- }
- else
- {
-
- std::_tstring::size_type iEqualSign = line.find( '=', 0 );
-
- if ( iEqualSign != std::_tstring::npos )
- {
- std::_tstring keyname = line.substr( 0, iEqualSign );
- keyname = trim( keyname );
-
- if ( 0 == _tcsicmp( section.c_str(), aSectionName.c_str() ) )
- {
- aResult.push( keyname );
-
- OutputDebugStringFormat( keyname.c_str() );
-
- }
- }
- }
- }
-
- fclose( fp );
- }
-
- OutputDebugStringFormat( TEXT("*** Done Key Names for [%s] ***"), aSectionName.c_str() );
-
- return aResult;
-}
-
-extern "C" UINT __stdcall InstallPatchedFiles( MSIHANDLE handle )
-{
- std::_tstring sInstDir = GetMsiProperty( handle, TEXT("INSTALLLOCATION") );
- std::_tstring sProgramDir = sInstDir + TEXT("program\\");
- std::_tstring sPatchFile = sProgramDir + TEXT("patchlist.txt");
-
- std::queue< std::_tstring > aSectionNames;
- std::queue< std::_tstring > aKeyNames;
-
- OutputDebugStringA( "Starting Custom Action" );
-
- aSectionNames = getProfileSections( sPatchFile );
- while ( !aSectionNames.empty() )
- {
- std::_tstring sSectionName = aSectionNames.front();
- if ( std::_tstring(TEXT("_root")) == sSectionName ) { sSectionName = TEXT(""); }
-
- aKeyNames = getProfileKeys( sPatchFile, sSectionName );
- while ( !aKeyNames.empty() )
- {
- std::_tstring sKeyName = aKeyNames.front();
- std::_tstring sValue = getProfileString( sPatchFile, sSectionName, sKeyName );
-
- if ( sValue.length() )
- {
- std::_tstring sFileName1 = sKeyName;
- std::_tstring sExtension = sValue;
- std::_tstring sFileName2;
-
- sFileName1 = strip( sFileName1, '\"' );
- sExtension = strip( sExtension, '\"' );
-
- sFileName1 = sInstDir + sSectionName + sFileName1;
- sFileName2 = sFileName1 + sExtension;
-
- SwapFiles( sFileName1, sFileName2 );
- }
-
- aKeyNames.pop();
- }
-
- aSectionNames.pop();
- }
-
- return ERROR_SUCCESS;
-}
-
-extern "C" UINT __stdcall UninstallPatchedFiles( MSIHANDLE handle )
-{
- TCHAR szValue[8192];
- DWORD nValueSize = sizeof(szValue);
- HKEY hKey;
-
- std::_tstring sInstDir;
-
- std::_tstring sProductKey = GetMsiProperty( handle, TEXT("FINDPRODUCT") );
-
- if ( ERROR_SUCCESS == RegOpenKey( HKEY_CURRENT_USER, sProductKey.c_str(), &hKey ) )
- {
- if ( ERROR_SUCCESS == RegQueryValueEx( hKey, TEXT("INSTALLLOCATION"), NULL, NULL, (LPBYTE)szValue, &nValueSize ) )
- {
- sInstDir = szValue;
- }
- RegCloseKey( hKey );
- }
- else if ( ERROR_SUCCESS == RegOpenKey( HKEY_LOCAL_MACHINE, sProductKey.c_str(), &hKey ) )
- {
- if ( ERROR_SUCCESS == RegQueryValueEx( hKey, TEXT("INSTALLLOCATION"), NULL, NULL, (LPBYTE)szValue, &nValueSize ) )
- {
- sInstDir = szValue;
- }
- RegCloseKey( hKey );
- }
- else
- return ERROR_SUCCESS;
-
- std::_tstring sProgramDir = sInstDir + TEXT("program\\");
- std::_tstring sPatchFile = sProgramDir + TEXT("patchlist.txt");
-
- std::queue< std::_tstring > aSectionNames;
- std::queue< std::_tstring > aKeyNames;
-
- aSectionNames = getProfileSections( sPatchFile );
- while ( !aSectionNames.empty() )
- {
- std::_tstring sSectionName = aSectionNames.front();
- if ( std::_tstring(TEXT("_root")) == sSectionName ) { sSectionName = TEXT(""); }
-
- aKeyNames = getProfileKeys( sPatchFile, sSectionName );
- while( !aKeyNames.empty() )
- {
- std::_tstring sKeyName = aKeyNames.front();
- std::_tstring sValue = getProfileString( sPatchFile, sSectionName, sKeyName );
-
- if ( sValue.length() )
- {
- std::_tstring sFileName1 = sKeyName;
- std::_tstring sExtension = sValue;
- std::_tstring sFileName2;
-
- sFileName1 = strip( sFileName1, '\"' );
- sExtension = strip( sExtension, '\"' );
-
- sFileName1 = sInstDir + sSectionName + sFileName1;
- sFileName2 = sFileName1 + sExtension;
-
- SwapFiles( sFileName2, sFileName1 );
- }
-
- aKeyNames.pop();
- }
-
- aSectionNames.pop();
- }
-
- return ERROR_SUCCESS;
-}
-
-extern "C" UINT __stdcall SetFeatureState( MSIHANDLE handle )
-{
-
- // 1. Reading Product Code from setup.ini of installed Office
-
- std::_tstring sInstallPath = GetMsiProperty(handle, TEXT("INSTALLLOCATION"));
- std::_tstring sSetupiniPath = sInstallPath + TEXT("program\\setup.ini");
-
- TCHAR szProductCode[32767];
-
- GetPrivateProfileString(
- TEXT("Bootstrap"),
- TEXT("ProductCode"),
- TEXT("NOTFOUND"),
- szProductCode,
- SAL_N_ELEMENTS(szProductCode),
- sSetupiniPath.c_str()
- );
-
- if ( !_tcsicmp( szProductCode, TEXT("NOTFOUND") ) )
- {
- // No setup.ini or no "ProductCode" in setup.ini. This is an invalid directory.
- return ERROR_SUCCESS;
- }
-
- // 2. Converting Product code
-
- std::_tstring productCode = TEXT(szProductCode);
- productCode = ConvertGuid(std::_tstring(productCode.c_str() + 1, productCode.length() - 2));
-
- // 3. Setting path in the Windows registry to find installed features
-
- std::_tstring registryKey;
- HKEY registryRoot;
-
- if ( IsSetMsiProperty(handle, TEXT("ALLUSERS")) )
- {
- registryRoot = HKEY_LOCAL_MACHINE;
- registryKey = TEXT("Software\\Classes\\Installer\\Features\\") + productCode;
- }
- else
- {
- registryRoot = HKEY_CURRENT_USER;
- registryKey = TEXT("Software\\Microsoft\\Installer\\Features\\") + productCode;
- }
-
- // 4. Collecting all installed features from Windows registry
-
- HKEY hKey;
- if (RegOpenKey(registryRoot, registryKey.c_str(), &hKey) == ERROR_SUCCESS)
- {
- int counter = 0;
- LONG lEnumResult;
-
- do
- {
- TCHAR szValueName[8192];
- DWORD nValueNameSize = sizeof(szValueName);
- LPDWORD pValueNameSize = &nValueNameSize;
- TCHAR szValueData[8192];
- DWORD nValueDataSize = sizeof(szValueData);
-
- lEnumResult = RegEnumValue( hKey, counter, szValueName, pValueNameSize, NULL, NULL, (LPBYTE)szValueData, &nValueDataSize);
-
- if ( ERROR_SUCCESS == lEnumResult )
- {
- std::_tstring sValueName = szValueName;
-
- // Does this feature exist in this patch?
- if ( IsSetMsiProperty(handle, sValueName) )
- {
- // Feature is not installed, if szValueData starts with a "square" (ascii 6)
- if ( 6 == szValueData[0] )
- {
- MsiSetFeatureState(handle,sValueName.c_str(),INSTALLSTATE_ABSENT); // do not install this feature
- }
- else
- {
- MsiSetFeatureState(handle,sValueName.c_str(),INSTALLSTATE_LOCAL); // do install this feature
- }
- }
- }
-
- counter = counter + 1;
-
- } while ( ERROR_SUCCESS == lEnumResult );
-
- RegCloseKey( hKey );
- }
-
- return ERROR_SUCCESS;
-}
-
-extern "C" UINT __stdcall SetNewFeatureState( MSIHANDLE handle )
-{
- std::_tstring sValueName;
-
- sValueName = TEXT("gm_o_Onlineupdate");
-
- if (IsSetMsiProperty(handle, TEXT("SELECT_OU_FEATURE")))
- {
- MsiSetFeatureState(handle,sValueName.c_str(),INSTALLSTATE_LOCAL); // do install this feature
- }
- else
- {
- MsiSetFeatureState(handle,sValueName.c_str(),INSTALLSTATE_ABSENT); // do not install this feature
- }
-
- return ERROR_SUCCESS;
-}
-
-extern "C" UINT __stdcall ShowOnlineUpdateDialog( MSIHANDLE handle )
-{
- // Checking existence of file "updchk.uno.dll", which shows, that
- // Online Update functionality is always available. Then the dialog
- // that offers the Online Update is superfluous.
-
- std::_tstring sInstDir = GetMsiProperty( handle, TEXT("INSTALLLOCATION") );
- std::_tstring sProgramDir = sInstDir + TEXT("program\\");
- std::_tstring sSearchFile = sProgramDir + TEXT("updchk.uno.dll");
-
- WIN32_FIND_DATA data;
- HANDLE hdl = FindFirstFile(sSearchFile.c_str(), &data);
- if (hdl != INVALID_HANDLE_VALUE) // the file exists
- {
- // And finally setting property SHOW_ONLINEUPDATE_DIALOG
- // to hide this dialog
- UnsetMsiProperty(handle, TEXT("SHOW_ONLINEUPDATE_DIALOG"));
-
- // Setting SELECT_OU_FEATURE to 1, which is probably superfluous
- // because this is already the default value. But only this
- // guarantees, that CustomAction SetNewFeatureState always sets
- // the correct FeatureState for "gm_o_Onlineupdate", if it is
- // already installed.
- SetMsiProperty(handle, TEXT("SELECT_OU_FEATURE"));
- }
- else
- {
- // If the file does not exist, the Online Update dialog
- // has to be shown.
- SetMsiProperty(handle, TEXT("SHOW_ONLINEUPDATE_DIALOG"));
- FindClose(hdl);
- }
-
- return ERROR_SUCCESS;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/solenv/bin/modules/installer.pm b/solenv/bin/modules/installer.pm
index 76455f1..4df3bc7 100644
--- a/solenv/bin/modules/installer.pm
+++ b/solenv/bin/modules/installer.pm
@@ -298,7 +298,6 @@ sub run {
my $dirsinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "Directory");
if ( $installer::globals::languagepack ) { installer::scriptitems::use_langpack_hostname($dirsinproductarrayref); }
- if ( $installer::globals::patch ) { installer::scriptitems::use_patch_hostname($dirsinproductarrayref); }
if ( $allvariableshashref->{'SHIFT_BASIS_INTO_BRAND_LAYER'} ) { $dirsinproductarrayref = installer::scriptitems::shift_basis_directory_parents($dirsinproductarrayref); }
if ( $allvariableshashref->{'OFFICEDIRECTORYNAME'} ) { installer::scriptitems::set_officedirectory_name($dirsinproductarrayref, $allvariableshashref->{'OFFICEDIRECTORYNAME'}); }
@@ -329,11 +328,6 @@ sub run {
$filesinproductarrayref = installer::scriptitems::remove_Helppacklibraries_from_Installset($filesinproductarrayref);
}
- if (! $installer::globals::patch)
- {
- $filesinproductarrayref = installer::scriptitems::remove_patchonlyfiles_from_Installset($filesinproductarrayref);
- }
-
installer::logger::print_message( "... analyzing scpactions ... \n" );
my $scpactionsinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "ScpAction");
@@ -341,7 +335,6 @@ sub run {
if ( $installer::globals::languagepack ) { installer::scriptitems::use_langpack_copy_scpaction($scpactionsinproductarrayref); }
if ( $installer::globals::helppack ) { installer::scriptitems::use_langpack_copy_scpaction($scpactionsinproductarrayref); }
if ( $allvariableshashref->{'PRODUCTNAME'} eq "LibO-dev" ) { installer::scriptitems::use_devversion_copy_scpaction($scpactionsinproductarrayref); }
- if ( $installer::globals::patch ) { installer::scriptitems::use_patch_copy_scpaction($scpactionsinproductarrayref); }
installer::scriptitems::change_keys_of_scpactions($scpactionsinproductarrayref);
@@ -442,12 +435,6 @@ sub run {
installer::logger::print_message( "------------------------------------\n" );
installer::logger::print_message( "... languages $$languagestringref ... \n" );
- if ( $installer::globals::patch )
- {
- $installer::globals::addlicensefile = 0; # no license files for patches
- $installer::globals::makedownload = 0;
- }
-
if ( $installer::globals::languagepack )
{
$installer::globals::addsystemintegration = 0;
@@ -743,7 +730,7 @@ sub run {
my $profilesinproductlanguageresolvedarrayref;
my $profileitemsinproductlanguageresolvedarrayref;
- if ((!($installer::globals::is_copy_only_project)) && (!($installer::globals::product =~ /ada/i )) && (!($installer::globals::languagepack)) && (!($installer::globals::helppack)))
+ if ((!($installer::globals::is_copy_only_project)) && (!($installer::globals::languagepack)) && (!($installer::globals::helppack)))
{
installer::logger::print_message( "... creating profiles ...\n" );
@@ -757,6 +744,8 @@ sub run {
installer::scriptitems::replace_setup_variables($profileitemsinproductlanguageresolvedarrayref, $languagestringref, $allvariableshashref);
+ # Note that patch_user_dir is not related to the killed
+ # ancient (not MSP) "patch" thing, I think.
if ( $installer::globals::patch_user_dir )
{
installer::scriptitems::replace_userdir_variable($profileitemsinproductlanguageresolvedarrayref);
@@ -878,32 +867,6 @@ sub run {
}
- # Collecting all files without flag PATCH (for maintenance reasons)
- if ( $installer::globals::patch ) { installer::worker::collect_all_files_without_patch_flag($filesinproductlanguageresolvedarrayref); }
-
- # Patch projects can now start to select the required information
- if (( $installer::globals::patch ) && (( $installer::globals::issolarispkgbuild ) || ( $installer::globals::iswindowsbuild )))
- {
- $filesinproductlanguageresolvedarrayref = installer::worker::select_patch_items($filesinproductlanguageresolvedarrayref, "File");
- $scpactionsinproductlanguageresolvedarrayref = installer::worker::select_patch_items($scpactionsinproductlanguageresolvedarrayref, "ScpAction");
- $linksinproductlanguageresolvedarrayref = installer::worker::select_patch_items($linksinproductlanguageresolvedarrayref, "Shortcut");
- $unixlinksinproductlanguageresolvedarrayref = installer::worker::select_patch_items($unixlinksinproductlanguageresolvedarrayref, "Unixlink");
- $folderitemsinproductlanguageresolvedarrayref = installer::worker::select_patch_items($folderitemsinproductlanguageresolvedarrayref, "FolderItem");
- # @{$folderitemsinproductlanguageresolvedarrayref} = (); # no folderitems in languagepacks
-
- if ( $installer::globals::iswindowsbuild )
- {
- $registryitemsinproductlanguageresolvedarrayref = installer::worker::select_patch_items_without_name($registryitemsinproductlanguageresolvedarrayref, "RegistryItem");
-
- installer::worker::prepare_windows_patchfiles($filesinproductlanguageresolvedarrayref, $languagestringref, $allvariableshashref);
-
- # For Windows patches, the directories can now be collected again
- ($directoriesforepmarrayref, $alldirectoryhash) = installer::scriptitems::collect_directories_from_filesarray($filesinproductlanguageresolvedarrayref);
-
- @$directoriesforepmarrayref = sort { $a->{"HostName"} cmp $b->{"HostName"} } @$directoriesforepmarrayref;
- }
- }
-
#########################################################
# Collecting all scp actions
#########################################################
@@ -1012,8 +975,6 @@ sub run {
my $shellscriptsfilename = "";
if ( $onepackage->{'script'} ) { $shellscriptsfilename = $onepackage->{'script'}; }
- # no scripts for Solaris patches!
- if (( $installer::globals::patch ) && ( $installer::globals::issolarispkgbuild )) { $shellscriptsfilename = ""; }
###########################
# package name
@@ -1101,22 +1062,6 @@ sub run {
next; # next package, end of loop !
}
- #################################################################
- # nothing to do for Linux patches, if no file has flag PATCH
- #################################################################
-
- # Linux Patch: The complete RPM has to be built, if one file in the RPM has the flag PATCH (also for DEBs)
- if (( $installer::globals::patch ) && (( $installer::globals::isrpmbuild ) || ( $installer::globals::isdebbuild )))
- {
- my $patchfiles = installer::worker::collect_all_items_with_special_flag($filesinpackage ,"PATCH");
- if ( ! ( $#{$patchfiles} > -1 ))
- {
- $infoline = "\n\nLinux Patch: No patch file in package: $packagename \-\> Skipping\n\n";
- push(@installer::globals::logfileinfo, $infoline);
- next;
- }
- }
-
###########################################
# Stripping libraries
###########################################
@@ -1152,18 +1097,6 @@ sub run {
my $epmheaderref = installer::epmfile::create_epm_header($allvariableshashref, $filesinproductlanguageresolvedarrayref, $languagesarrayref, $onepackage);
installer::epmfile::adding_header_to_epm_file(\@epmfile, $epmheaderref);
- if (( $installer::globals::patch ) && ( $installer::globals::issolarispkgbuild ))
- {
- $filesinpackage = installer::worker::analyze_patch_files($filesinpackage);
-
- if ( ! ( $#{$filesinpackage} > -1 ))
- {
- $infoline = "\nNo file in package: $packagename \-\> Skipping\n";
- push(@installer::globals::logfileinfo, $infoline);
- next; # next package, end of loop !
- }
- }
-
# adding directories, files and links into epm file
installer::epmfile::put_directories_into_epmfile($dirsinpackage, \@epmfile, $allvariableshashref, $packagerootpath);
@@ -1292,10 +1225,6 @@ sub run {
# Creating installation set for Unix help packs, that are not part of multi lingual installation sets
if ( ( $installer::globals::helppack ) && ( ! $installer::globals::debian ) && ( ! $installer::globals::makedownload ) ) { installer::helppack::build_installer_for_helppack($installer::globals::epmoutpath, $allvariableshashref, $includepatharrayref, $languagesarrayref, $languagestringref); }
- # Finalizing patch installation sets
- if (( $installer::globals::patch ) && ( $installer::globals::issolarispkgbuild )) { installer::epmfile::finalize_patch($installer::globals::epmoutpath, $allvariableshashref); }
- if (( $installer::globals::patch ) && ( $installer::globals::isrpmbuild )) { installer::epmfile::finalize_linux_patch($installer::globals::epmoutpath, $allvariableshashref, $includepatharrayref); }
-
chdir($currentdir); # changing back into start directory
}
@@ -1731,7 +1660,6 @@ sub run {
my $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "downloadname");
if ( $installer::globals::languagepack ) { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "langpackdownloadname"); }
if ( $installer::globals::helppack ) { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "helppackdownloadname"); }
- if ( $installer::globals::patch ) { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "patchdownloadname"); }
if ( $$downloadname ne "" ) { $create_download = 1; }
if ( $installer::globals::iswindowsbuild )
diff --git a/solenv/bin/modules/installer/archivefiles.pm b/solenv/bin/modules/installer/archivefiles.pm
index bd26953..11498f8 100644
--- a/solenv/bin/modules/installer/archivefiles.pm
+++ b/solenv/bin/modules/installer/archivefiles.pm
@@ -212,18 +212,6 @@ sub resolving_archive_flag
my $select_patch_files = 0;
my $patchlistfiles = "";
my @keptpatchflags = ();
- if (( $styles =~ /\bPATCH\b/ ) && ( $onefile->{'Patchfiles'} ) && ( $installer::globals::patch ))
- {
- $select_patch_files = 1; # special handling if a Patchlist is defined
- $patchlistfiles = get_patch_file_list( $onefile->{'Patchfiles'} );
- $infoline = "Patch file list defined at file: $onefile->{'Name'} :\n";
- push( @installer::globals::logfileinfo, $infoline);
- for ( my $k = 0; $k <= $#{$patchlistfiles}; $k++ )
- {
- $infoline = "\"${$patchlistfiles}[$k]\"\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
- }
if ( $onefile->{'Patchfiles'} ) { $onefile->{'Patchfiles'} = ""; } # Patch file list no longer required
@@ -398,24 +386,6 @@ sub resolving_archive_flag
}
}
- if ( $select_patch_files )
- {
- # Is this file listed in the Patchfile list?
- # $zipname (filename including path in zip file has to be listed in patchfile list
-
- if ( ! grep {$_ eq $zipname} @{$patchlistfiles} )
- {
- $newfile{'Styles'} =~ s/\bPATCH\b//; # removing the flag PATCH
- $newfile{'Styles'} =~ s/\,\s*\,/\,/;
- $newfile{'Styles'} =~ s/\(\s*\,/\(/;
- $newfile{'Styles'} =~ s/\,\s*\)/\)/;
- }
- else
- {
- push( @keptpatchflags, $zipname); # collecting all PATCH flags
- }
- }
-
if ( $rename_to_language )
{
my $newzipname = put_language_into_name($zipname, $onelanguage);
@@ -484,43 +454,6 @@ sub resolving_archive_flag
}
- # Comparing the content of @keptpatchflags and $patchlistfiles
- # Do all files from the patch list have a PATCH flag ?
- # @keptpatchflags contains only files included in $patchlistfiles. But are all
- # files from $patchlistfiles included in @keptpatchflags?
-
- if ( $select_patch_files )
- {
- my $number = $#{$patchlistfiles} + 1;
- $infoline = "PATCHLIST: Number of files in patch list: $number\n";
- push( @installer::globals::logfileinfo, $infoline);
- $number = $#keptpatchflags + 1;
- $infoline = "PATCHLIST: Number of kept PATCH flags: $number\n";
- push( @installer::globals::logfileinfo, $infoline);
-
- for ( my $k = 0; $k <= $#keptpatchflags; $k++ )
- {
- $infoline = "KEPT PATCH FLAGS: $keptpatchflags[$k]\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
-
- my @warningfiles = ();
-
- for ( my $k = 0; $k <= $#{$patchlistfiles}; $k++ )
- {
- if ( ! grep {$_ eq ${$patchlistfiles}[$k]} @keptpatchflags )
- {
- push(@warningfiles, ${$patchlistfiles}[$k]);
- }
- }
-
- for ( my $k = 0; $k <= $#warningfiles; $k++ )
- {
- $infoline = "WARNING: $warningfiles[$k] did not keep PATCH flag (does not exist in zip file)!\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
- }
-
if ( $unziperror )
{
installer::logger::print_warning( "Repeating to unpack $sourcepath! \n" );
diff --git a/solenv/bin/modules/installer/control.pm b/solenv/bin/modules/installer/control.pm
index 3f88c47..6baced7 100644
--- a/solenv/bin/modules/installer/control.pm
+++ b/solenv/bin/modules/installer/control.pm
@@ -484,7 +484,6 @@ sub set_addsystemintegration
if ( $allvariables->{'ADDSYSTEMINTEGRATION'} ) { $installer::globals::addsystemintegration = 1; }
- if ( $installer::globals::patch ) { $installer::globals::addsystemintegration = 0; }
if ( $installer::globals::languagepack ) { $installer::globals::addsystemintegration = 0; }
if ( $installer::globals::helppack ) { $installer::globals::addsystemintegration = 0; }
if (( $installer::globals::packageformat eq "native" ) || ( $installer::globals::packageformat eq "portable" )) { $installer::globals::addsystemintegration = 0; }
diff --git a/solenv/bin/modules/installer/epmfile.pm b/solenv/bin/modules/installer/epmfile.pm
index fa66fd9..58fe27d 100644
--- a/solenv/bin/modules/installer/epmfile.pm
+++ b/solenv/bin/modules/installer/epmfile.pm
@@ -487,16 +487,16 @@ sub create_epm_header
my $replaces = "";
- if (( $installer::globals::issolarispkgbuild ) && ( ! $installer::globals::patch ))
+ if ( $installer::globals::issolarispkgbuild )
{
$replaces = "solarisreplaces"; # the name in the packagelist
}
- elsif (( $installer::globals::islinuxbuild ) && ( ! $installer::globals::patch ))
+ elsif ( $installer::globals::islinuxbuild )
{
$replaces = "linuxreplaces"; # the name in the packagelist
}
- if (( $replaces ) && ( ! $installer::globals::patch ))
+ if ( $replaces )
{
if ( $onepackage->{$replaces} )
{
@@ -549,13 +549,6 @@ sub create_epm_header
$provides = "freebsdprovides"; # the name in the packagelist
$requires = "freebsdrequires"; # the name in the packagelist
}
- elsif (( $installer::globals::isrpmbuild ) &&
- ( $installer::globals::patch ) &&
- ( exists($onepackage->{'linuxpatchrequires'}) ))
- {
- $provides = "provides"; # the name in the packagelist
- $requires = "linuxpatchrequires"; # the name in the packagelist
- }
else
{
$provides = "provides"; # the name in the packagelist
@@ -1008,124 +1001,6 @@ sub set_revision_in_pkginfo
}
########################################################
-# Setting Patch information for Respin versions
-# into pkginfo file. This prevents Respin versions
-# from patching.
-########################################################
-
-sub set_patchlist_in_pkginfo_for_respin
-{
- my ($changefile, $filename, $allvariables, $packagename) = @_;
-
- my $patchlistname = "SOLSPARCPATCHLISTFORRESPIN";
- if ( $installer::globals::issolarisx86build ) { $patchlistname = "SOLIAPATCHLISTFORRESPIN"; }
-
- if ( $allvariables->{$patchlistname} )
- {
- # patchlist separator is a blank
- my $allpatchesstring = $allvariables->{$patchlistname};
- my @usedpatches = ();
-
- # Analyzing the patchlist
- # Syntax: 120186-10 126411-01(+core-01) -> use 126411-01 only for core-01
- # Syntax: 120186-10 126411-01(-core-01) -> use 126411-01 for all packages except for core-01
- my $allpatches = installer::converter::convert_whitespace_stringlist_into_array(\$allpatchesstring);
-
- for ( my $i = 0; $i <= $#{$allpatches}; $i++ )
- {
- my $patchdefinition = ${$allpatches}[$i];
-
- my $patchid = "";
- my $symbol = "";
- my $constraint = "";
- my $isusedpatch = 0;
-
- if ( $patchdefinition =~ /^\s*(.+)\(([+-])(.+)\)\s*$/ )
- {
- $patchid = $1;
- $symbol = $2;
- $constraint = $3;
- }
- elsif (( $patchdefinition =~ /\(/ ) || ( $patchdefinition =~ /\)/ )) # small syntax check
- {
- # if there is a bracket in the $patchdefinition, but it does not
- # match the if-condition, this is an erroneous definition.
- installer::exiter::exit_program("ERROR: Unknown patch string: $patchdefinition", "set_patchlist_in_pkginfo_for_respin");
- }
- else
- {
- $patchid = $patchdefinition;
- $isusedpatch = 1; # patches without constraint are always included
- }
-
- if ( $symbol ne "" )
- {
- if ( $symbol eq "+" )
- {
- if ( $packagename =~ /^.*\Q$constraint\E\s*$/ ) { $isusedpatch = 1; }
- }
-
- if ( $symbol eq "-" )
- {
- if ( ! ( $packagename =~ /^.*\Q$constraint\E\s*$/ )) { $isusedpatch = 1; }
- }
- }
-
- if ( $isusedpatch ) { push(@usedpatches, $patchid); }
- }
-
- if ( $#usedpatches > -1 )
- {
- my $patchstring = installer::converter::convert_array_to_space_separated_string(\@usedpatches);
-
- my $newline = "PATCHLIST=" . $patchstring . "\n";
- add_one_line_into_file($changefile, $newline, $filename);
-
- # Adding patch info for each used patch in the patchlist
-
- for ( my $i = 0; $i <= $#usedpatches; $i++ )
- {
- my $patchid = $usedpatches[$i];
- my $key = "PATCH_INFO_" . $patchid;
- $key =~ s/\s*$//;
-
- if ( ! $allvariables->{$key} ) { installer::exiter::exit_program("ERROR: No Patch info available in zip list file for $key", "set_patchlist_in_pkginfo"); }
- my $value = set_timestamp_in_patchinfo($allvariables->{$key});
- $newline = $key . "=" . $value . "\n";
-
- add_one_line_into_file($changefile, $newline, $filename);
- }
- }
- }
-}
-
-########################################################
-# Solaris requires, that the time of patch installation
-# must not be empty.
-# Format: Mon Mar 24 11:20:56 PDT 2008
-# Log file: Tue Apr 29 23:26:19 2008 (04:31 min.)
-# Replace string: ${TIMESTAMP}
-########################################################
-
-sub set_timestamp_in_patchinfo
-{
- my ($value) = @_;
-
- my $currenttime = localtime();
-
- if ( $currenttime =~ /^\s*(.+?)(\d\d\d\d)\s*$/ )
- {
- my $start = $1;
- my $year = $2;
- $currenttime = $start . "CET " . $year;
- }
-
- $value =~ s/\$\{TIMESTAMP\}/$currenttime/;
-
- return $value;
-}
-
-########################################################
# Setting MAXINST=1000 into the pkginfo file.
########################################################
@@ -1662,126 +1537,6 @@ sub contains_extension_dir
}
############################################################
-# A Solaris patch contains 7 specific scripts
-############################################################
-
-sub add_scripts_into_prototypefile
-{
- my ($prototypefile, $prototypefilename, $languagestringref, $staticpath) = @_;
-
- # The files are stored in the directory $installer::globals::patchincludepath
- # The file names are available via @installer::globals::solarispatchscripts
-
- my $path = $installer::globals::patchincludepath;
- $path =~ s/\/\s*$//;
- $path = $path . $installer::globals::separator;
-
- my @newlines = ();
- my $is_extension_package = contains_extension_dir($prototypefile);
-
- if ( $is_extension_package )
- {
- for ( my $i = 0; $i <= $#installer::globals::solarispatchscriptsforextensions; $i++ )
- {
- my $sourcefilename = $path . $installer::globals::solarispatchscriptsforextensions[$i];
- my $destfile = $installer::globals::solarispatchscriptsforextensions[$i];
-
- # If the sourcepath has "_extension" in its name, this has to be removed
- $destfile =~ s/_extensions\s*$//; # hard coded renaming of script name
-
- # Creating unique directory name with $prototypefilename
- my $extensiondir = installer::systemactions::create_directories("extensionscripts", $languagestringref);
-
- if ( $prototypefilename =~ /\/(\S*?)\s*$/ ) { $prototypefilename = $1; }
- $prototypefilename =~ s/\./_/g;
- my $destdir = $extensiondir . $installer::globals::separator . $prototypefilename;
- if ( ! -d $destdir ) { installer::systemactions::create_directory($destdir); }
- my $destpath = $destdir . $installer::globals::separator . $destfile;
- if ( -f $destpath ) { unlink($destpath); }
-
- # Reading file
- my $scriptfile = installer::files::read_file($sourcefilename);
-
- # Replacing variables
- my $oldstring = "PRODUCTDIRECTORYNAME";
- replace_variables_in_shellscripts_for_patch($scriptfile, $destpath, $oldstring, $staticpath);
-
- # Saving file
- installer::files::save_file($destpath, $scriptfile);
-
- # Writing file destination into prototype file
- my $line = "i $destfile=" . $destpath . "\n";
- push(@newlines, $line);
- }
- }
- else
- {
- for ( my $i = 0; $i <= $#installer::globals::solarispatchscripts; $i++ )
- {
- my $line = "i $installer::globals::solarispatchscripts[$i]=" . $path . $installer::globals::solarispatchscripts[$i] . "\n";
- push(@newlines, $line);
- }
- }
-
- # Including the new lines after the last line starting with "i"
-
- for ( my $i = 0; $i <= $#{$prototypefile}; $i++ )
- {
- if ( ${$prototypefile}[$i] =~ /^\s*i\s+copyright/ )
- {
- splice(@{$prototypefile}, $i, 1); # ignoring old copyright text, using patch standard
- next;
- }
- if ( ${$prototypefile}[$i] =~ /^\s*i\s+/ ) { next; }
- splice(@{$prototypefile}, $i, 0, @newlines);
- last;
- }
-}
-
-############################################################
-# Adding patch infos in pkginfo file
-############################################################
-
-sub include_patchinfos_into_pkginfo
-{
- my ( $changefile, $filename, $variableshashref ) = @_;
-
- # SUNW_PATCHID=101998-10
- # SUNW_OBSOLETES=114999-01 113999-01
- # SUNW_PKGTYPE=usr
- # SUNW_PKGVERS=1.0
- # SUNW_REQUIRES=126411-01
-
- my $patchidname = "SOLSPARCPATCHID";
- if ( $installer::globals::issolarisx86build ) { $patchidname = "SOLIAPATCHID"; }
-
- if ( ! $variableshashref->{$patchidname} ) { installer::exiter::exit_program("ERROR: Variable $patchidname not defined in zip list file!", "include_patchinfos_into_pkginfo"); }
-
- my $newline = "SUNW_PATCHID=" . $variableshashref->{$patchidname} . "\n";
- add_one_line_into_file($changefile, $newline, $filename);
-
- my $patchobsoletesname = "SOLSPARCPATCHOBSOLETES";
- if ( $installer::globals::issolarisx86build ) { $patchobsoletesname = "SOLIAPATCHOBSOLETES"; }
-
- my $obsoletes = "";
- if ( $variableshashref->{$patchobsoletesname} ) { $obsoletes = $variableshashref->{$patchobsoletesname}; }
- $newline = "SUNW_OBSOLETES=" . $obsoletes . "\n";
- add_one_line_into_file($changefile, $newline, $filename);
-
- my $patchrequiresname = "SOLSPARCPATCHREQUIRES";
- if ( $installer::globals::issolarisx86build ) { $patchrequiresname = "SOLIAPATCHREQUIRES"; }
-
- if ( $variableshashref->{$patchrequiresname} )
- {
- my $requires = $variableshashref->{$patchrequiresname};
- $newline = "SUNW_REQUIRES=" . $requires . "\n";
- add_one_line_into_file($changefile, $newline, $filename);
- }
- $newline = "SUNW_PATCH_PROPERTIES=\n";
- add_one_line_into_file($changefile, $newline, $filename);
-}
-
-############################################################
# Setting the correct Solaris locales
############################################################
@@ -1848,53 +1603,6 @@ sub include_languageinfos_into_pkginfo
}
############################################################
-# Collecting all files included in patch in
-# @installer::globals::patchfilecollector
-############################################################
-
-sub collect_patch_files
-{
- my ($file, $packagename, $prefix) = @_;
-
- # $file is the spec file or the prototypefile
-
- $prefix = $prefix . "/";
- my $packagenamestring = "Package " . $packagename . " \:\n";
- push(@installer::globals::patchfilecollector, $packagenamestring);
-
- for ( my $i = 0; $i <= $#{$file}; $i++ )
- {
- my $line = ${$file}[$i];
-
- if ( $installer::globals::isrpmbuild )
- {
- # %attr(0444,root,root) "/opt/openofficeorg20/program/about.bmp"
-
- if ( $line =~ /^\s*\%attr\(.*\)\s*\"(.*?)\"\s*$/ )
- {
- my $filename = $1 . "\n";
- $filename =~ s/^\s*\Q$prefix\E//;
- push(@installer::globals::patchfilecollector, $filename);
- }
- }
-
- if ( $installer::globals::issolarispkgbuild )
- {
- # f none program/msomrl.rdb=/ab/SRC680/unxsols4.pro/bin/msomrl.rdb 0444 root bin
-
- if ( $line =~ /^\s*f\s+\w+\s+(.*?)\=/ )
- {
- my $filename = $1 . "\n";
- push(@installer::globals::patchfilecollector, $filename);
- }
- }
- }
-
- push(@installer::globals::patchfilecollector, "\n");
-
-}
-
-############################################################
# Including package names into the depend files.
# The package names have to be included into
# packagelist. They are already saved in
@@ -1983,7 +1691,6 @@ sub prepare_packages
set_license_in_specfile($changefile, $variableshashref);
set_tab_into_datafile($changefile, $filesref);
installer::files::save_file($completefilename, $changefile);
- if ( $installer::globals::patch ) { collect_patch_files($changefile, $packagename, $localrelocatablepath); }
}
# removing the relocatable path in prototype file
@@ -1994,8 +1701,6 @@ sub prepare_packages
set_maxinst_in_pkginfo($changefile, $filename);
set_solaris_parameter_in_pkginfo($changefile, $filename, $variableshashref);
if ( $installer::globals::issolarisx86build ) { fix_architecture_setting($changefile); }
- if ( ! $installer::globals::patch ) { set_patchlist_in_pkginfo_for_respin($changefile, $filename, $variableshashref, $packagename); }
- if ( $installer::globals::patch ) { include_patchinfos_into_pkginfo($changefile, $filename, $variableshashref); }
if (( $onepackage->{'language'} ) && ( $onepackage->{'language'} ne "" ) && ( $onepackage->{'language'} ne "en-US" )) { include_languageinfos_into_pkginfo($changefile, $filename, $languagestringref, $onepackage, $variableshashref); }
installer::files::save_file($completefilename, $changefile);
@@ -2012,10 +1717,7 @@ sub prepare_packages
installer::files::save_file($completefilename, $changefile);
}
- if ( $installer::globals::patch ) { add_scripts_into_prototypefile($prototypefile, $prototypefilename, $languagestringref, $staticpath); }
-
installer::files::save_file($prototypefilename, $prototypefile);
- if ( $installer::globals::patch ) { collect_patch_files($prototypefile, $packagename, ""); }
# Adding package names into depend files for Solaris (not supported by epm)
my $dependfilename = $packagename . ".depend";
@@ -2817,170 +2519,6 @@ sub analyze_rootpath
}
-######################################################
-# Replacing one variable in patchinfo file
-######################################################
-
-sub replace_one_variable_in_file
-{
- my ( $file, $placeholder, $value ) = @_;
-
- for ( my $i = 0; $i <= $#{$file}; $i++ )
- {
- ${$file}[$i] =~ s/$placeholder/$value/g;
- }
-}
-
-######################################################
-# Setting variables in the patchinfo file
-######################################################
-
-sub set_patchinfo
-{
- my ( $patchinfofile, $patchid, $allvariables ) = @_;
-
- # Setting: PATCHIDPLACEHOLDER and ARCHITECTUREPLACEHOLDER and PATCHCORRECTSPLACEHOLDER
-
- replace_one_variable_in_file($patchinfofile, "PATCHIDPLACEHOLDER", $patchid);
-
- my $architecture = "";
- if ( $installer::globals::issolarissparcbuild ) { $architecture = "sparc"; }
- if ( $installer::globals::issolarisx86build ) { $architecture = "i386"; }
-
- replace_one_variable_in_file($patchinfofile, "ARCHITECTUREPLACEHOLDER", $architecture);
-
- if ( ! $allvariables->{'SOLARISPATCHCORRECTS'} ) { installer::exiter::exit_program("ERROR: No setting for PATCH_CORRECTS in zip list file!", "set_patchinfo"); }
- my $patchcorrects = $allvariables->{'SOLARISPATCHCORRECTS'};
-
- replace_one_variable_in_file($patchinfofile, "PATCHCORRECTSPLACEHOLDER", $patchcorrects);
-
- # Setting also PATCH_REQUIRES in patch info file, if entry in zip list file exists
- my $requiresstring = "";
- if ( $installer::globals::issolarissparcbuild ) { $requiresstring = "SOLSPARCPATCHREQUIRES"; }
- if ( $installer::globals::issolarisx86build ) { $requiresstring = "SOLIAPATCHREQUIRES"; }
-
- if ( $allvariables->{$requiresstring} )
- {
- my $newline = "PATCH_REQUIRES=\"" . $allvariables->{$requiresstring} . "\"" . "\n";
- push(@{$patchinfofile}, $newline);
- }
-}
-
-######################################################
-# Finalizing patch: Renaming directory and
-# including additional patch files.
-######################################################
-
-sub finalize_patch
-{
- my ( $newepmdir, $allvariables ) = @_;
-
- my $patchidname = "SOLSPARCPATCHID";
- if ( $installer::globals::issolarisx86build ) { $patchidname = "SOLIAPATCHID"; }
-
- if ( ! $allvariables->{$patchidname} ) { installer::exiter::exit_program("ERROR: Variable $patchidname not defined in zip list file!", "finalize_patch"); }
- my $patchid = $allvariables->{$patchidname};
- installer::systemactions::rename_directory($newepmdir, $patchid);
-
- # Copying all typical patch files into the patch directory
- # All patch file names are stored in @installer::globals::solarispatchfiles
- # Location of the file is $installer::globals::patchincludepath
-
- my $sourcepath = $installer::globals::patchincludepath;
- $sourcepath =~ s/\/\s*$//;
-
- for ( my $i = 0; $i <= $#installer::globals::solarispatchfiles; $i++ )
- {
- my $sourcefile = $sourcepath . $installer::globals::separator . $installer::globals::solarispatchfiles[$i];
- my $destfile = $patchid . $installer::globals::separator . $installer::globals::solarispatchfiles[$i];
- installer::systemactions::copy_one_file($sourcefile, $destfile);
- }
-
- # And editing the patchinfo file
-
- my $patchinfofilename = $patchid . $installer::globals::separator . "patchinfo";
- my $patchinfofile = installer::files::read_file($patchinfofilename);
- set_patchinfo($patchinfofile, $patchid, $allvariables);
- installer::files::save_file($patchinfofilename, $patchinfofile);
-}
-
-######################################################
-# Finalizing Linux patch: Renaming directory and
-# including additional patch files.
-######################################################
-
-sub finalize_linux_patch
-{
- my ( $newepmdir, $allvariables, $includepatharrayref ) = @_;
-
- # Copying the setup into the patch directory
- # and including the list of RPMs into it
-
- print "... creating patch setup ...\n";
-
- installer::logger::include_header_into_logfile("Creating Linux patch setup:");
-
- # find and read setup script template
-
- my $scriptfilename = "linuxpatchscript.sh";
- my $scriptref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$scriptfilename, $includepatharrayref, 0);
- if ($$scriptref eq "") { installer::exiter::exit_program("ERROR: Could not find patch script template $scriptfilename!", "finalize_linux_patch"); }
- my $scriptfile = installer::files::read_file($$scriptref);
-
- my $infoline = "Found script file $scriptfilename: $$scriptref \n";
- push( @installer::globals::logfileinfo, $infoline);
-
- # Collecting all RPMs in the patch directory
-
- my $fileextension = "rpm";
- my $rpmfiles = installer::systemactions::find_file_with_file_extension($fileextension, $newepmdir);
- if ( ! ( $#{$rpmfiles} > -1 )) { installer::exiter::exit_program("ERROR: Could not find rpm in directory $newepmdir!", "finalize_linux_patch"); }
- for ( my $i = 0; $i <= $#{$rpmfiles}; $i++ ) { installer::pathanalyzer::make_absolute_filename_to_relative_filename(\${$rpmfiles}[$i]); }
-
- # Searching packagename containing -core01
- my $found_package = 0;
- my $searchpackagename = "";
- for ( my $i = 0; $i <= $#{$rpmfiles}; $i++ )
- {
- if ( ${$rpmfiles}[$i] =~ /-core01-/ )
- {
- $searchpackagename = ${$rpmfiles}[$i];
- $found_package = 1;
- if ( $searchpackagename =~ /^\s*(.*?-core01)-.*/ ) { $searchpackagename = $1; }
- last;
- }
- }
-
- if ( ! $found_package ) { installer::exiter::exit_program("ERROR: No package containing \"-core01\" found in directory \"$newepmdir\"", "finalize_linux_patch"); }
-
- # Replacing the searchpackagename
- for ( my $j = 0; $j <= $#{$scriptfile}; $j++ ) { ${$scriptfile}[$j] =~ s/SEARCHPACKAGENAMEPLACEHOLDER/$searchpackagename/; }
-
- # Setting the PRODUCTDIRECTORYNAME to $installer::globals::officedirhostname
- for ( my $j = 0; $j <= $#{$scriptfile}; $j++ ) { ${$scriptfile}[$j] =~ s/PRODUCTDIRECTORYNAME/$installer::globals::officedirhostname/; }
-
- # Replacing the productname
- my $productname = $allvariables->{'PRODUCTNAME'};
- $productname = lc($productname);
- $productname =~ s/ /_/g; # abc office -> abc_office
-
- $infoline = "Adding productname $productname into Linux patch script\n";
- push( @installer::globals::logfileinfo, $infoline);
-
- for ( my $j = 0; $j <= $#{$scriptfile}; $j++ ) { ${$scriptfile}[$j] =~ s/PRODUCTNAMEPLACEHOLDER/$productname/; }
-
- # Saving the file
-
- my $newscriptfilename = "setup";
- installer::files::save_file($newscriptfilename, $scriptfile);
-
- $infoline = "Saved Linux patch setup $newscriptfilename \n";
- push( @installer::globals::logfileinfo, $infoline);
-
- # Setting unix rights 755
- chmod 0755, $newscriptfilename;
-}
-
################################################
# Defining the English license text to add
# it into Solaris packages.
diff --git a/solenv/bin/modules/installer/globals.pm b/solenv/bin/modules/installer/globals.pm
index 23ac86e..45aa11b 100644
--- a/solenv/bin/modules/installer/globals.pm
+++ b/solenv/bin/modules/installer/globals.pm
@@ -192,12 +192,9 @@ BEGIN
$patch_user_dir = 0;
$languagepack = 0;
$helppack = 0;
- $patch = 0;
- $patchincludepath = "";
$refresh_includepaths = 0;
$include_paths_read = 0;
@patchfilecollector = ();
- $nopatchfilecollector = "";
@userregistrycollector = ();
$addeduserregitrykeys = 0;
$desktoplinkexists = 0;
@@ -256,9 +253,6 @@ BEGIN
$postprocess_standardepm = 0;
$mergemodules_analyzed = 0;
- @solarispatchscripts = ("checkinstall", "copyright", "patch_checkinstall", "patch_postinstall", "postinstall", "preinstall", "i.none");
- @solarispatchscriptsforextensions = ("checkinstall", "copyright", "patch_checkinstall", "patch_postinstall_extensions", "postinstall_extensions", "preinstall", "i.none");
- @solarispatchfiles = (".diPatch", "patchinfo");
@packagelistitems = ("module", "solarispackagename", "packagename", "copyright", "vendor", "description" );
@languagepackfeature =();
@helppackfeature =();
diff --git a/solenv/bin/modules/installer/parameter.pm b/solenv/bin/modules/installer/parameter.pm
index 609f7b4..2aa0a28 100644
--- a/solenv/bin/modules/installer/parameter.pm
+++ b/solenv/bin/modules/installer/parameter.pm
@@ -66,8 +66,6 @@ The following parameter are needed:
-copyproject : is set for projects that are only used for copying (optional)
-languagepack : do create a languagepack, no product pack (optional)
-helppack : do create a helppack, no product pack (optional)
--patch : do create a patch (optional)
--patchinc: Source for the patch include files (Solaris only)
-strip: Stripping files (Unix only)
-log : Logging all available information (optional)
@@ -137,12 +135,10 @@ sub getparameter
elsif ($param eq "-dontcallepm") { $installer::globals::call_epm = 0; }
elsif ($param eq "-msitemplate") { $installer::globals::idttemplatepath = shift(@ARGV); }
elsif ($param eq "-msilanguage") { $installer::globals::idtlanguagepath = shift(@ARGV); }
- elsif ($param eq "-patchinc") { $installer::globals::patchincludepath = shift(@ARGV); }
elsif ($param eq "-buildid") { $installer::globals::buildid = shift(@ARGV); }
elsif ($param eq "-copyproject") { $installer::globals::is_copy_only_project = 1; }
elsif ($param eq "-languagepack") { $installer::globals::languagepack = 1; }
elsif ($param eq "-helppack") { $installer::globals::helppack = 1;}
- elsif ($param eq "-patch") { $installer::globals::patch = 1; }
elsif ($param eq "-debian") { $installer::globals::debian = 1; }
elsif ($param eq "-strip") { $installer::globals::strip = 1; }
elsif ($param eq "-destdir") # new parameter for simple installer
@@ -477,31 +473,6 @@ sub control_required_parameter
}
#######################################
- # Patch currently only available
- # for Solaris packages and Linux
- #######################################
-
- if (( $installer::globals::patch ) && ( ! $installer::globals::issolarispkgbuild ) && ( ! $installer::globals::isrpmbuild ) && ( ! $installer::globals::isdebbuild ) && ( ! $installer::globals::iswindowsbuild ) && ( ! $installer::globals::ismacdmgbuild ))
- {
- installer::logger::print_error( "Sorry, Patch flag currently only available for Solaris pkg, Linux RPM and Windows builds!" );
- usage();
- exit(-1);
- }
-
- if (( $installer::globals::patch ) && ( $installer::globals::issolarispkgbuild ) && ( ! $installer::globals::patchincludepath ))
- {
- installer::logger::print_error( "Solaris patch requires parameter -patchinc !" );
- usage();
- exit(-1);
- }
-
- if (( $installer::globals::patch ) && ( $installer::globals::issolarispkgbuild ) && ( $installer::globals::patchincludepath ))
- {
- make_path_absolute(\$installer::globals::patchincludepath);
- $installer::globals::patchincludepath = installer::converter::make_path_conform($installer::globals::patchincludepath);
- }
-
- #######################################
# Testing existence of files
# also for copy-only projects
#######################################
@@ -560,7 +531,6 @@ sub outputparameter
if ((!($installer::globals::idtlanguagepath eq "")) && (!($installer::globals::iswindowsbuild))) { push(@output, "msi language path will be ignored for non Windows builds!\n"); }
if ((!($installer::globals::iswindowsbuild)) && ( $installer::globals::call_epm )) { push(@output, "Calling epm\n"); }
if ((!($installer::globals::iswindowsbuild)) && (!($installer::globals::call_epm))) { push(@output, "Not calling epm\n"); }
- if ( $installer::globals::patchincludepath ) { push(@output, "Patch include path: $installer::globals::patchincludepath\n"); }
if ( $installer::globals::strip ) { push(@output, "Stripping files\n"); }
else { push(@output, "No file stripping\n"); }
if ( $installer::globals::debian ) { push(@output, "Linux: Creating Debian packages\n"); }
@@ -578,7 +548,6 @@ sub outputparameter
if ( $installer::globals::is_copy_only_project ) { push(@output, "This is a copy only project!\n"); }
if ( $installer::globals::languagepack ) { push(@output, "Creating language pack!\n"); }
if ( $installer::globals::helppack ) { push(@output, "Creating help pack!\n"); }
- if ( $installer::globals::patch ) { push(@output, "Creating patch!\n"); }
push(@output, "########################################################\n");
# output into shell and into logfile
diff --git a/solenv/bin/modules/installer/scriptitems.pm b/solenv/bin/modules/installer/scriptitems.pm
index 3f32f94..77fa1d3 100644
--- a/solenv/bin/modules/installer/scriptitems.pm
+++ b/solenv/bin/modules/installer/scriptitems.pm
@@ -516,21 +516,6 @@ sub use_langpack_hostname
# Using different HostName for language packs
################################################################################
-sub use_patch_hostname
-{
- my ($dirsref) = @_;
-
- for ( my $i = 0; $i <= $#{$dirsref}; $i++ )
- {
- my $onedir = ${$dirsref}[$i];
- if (( $onedir->{'PatchHostName'} ) && ( $onedir->{'PatchHostName'} ne "" )) { $onedir->{'HostName'} = $onedir->{'PatchHostName'}; }
- }
-}
-
-################################################################################
-# Using different HostName for language packs
-################################################################################
-
sub use_langpack_copy_scpaction
{
my ($scpactionsref) = @_;
@@ -558,21 +543,6 @@ sub use_devversion_copy_scpaction
}
################################################################################
-# Using different HostName for language packs
-################################################################################
-
-sub use_patch_copy_scpaction
-{
- my ($scpactionsref) = @_;
-
- for ( my $i = 0; $i <= $#{$scpactionsref}; $i++ )
- {
- my $onescpaction = ${$scpactionsref}[$i];
- if (( $onescpaction->{'PatchCopy'} ) && ( $onescpaction->{'PatchCopy'} ne "" )) { $onescpaction->{'Copy'} = $onescpaction->{'PatchCopy'}; }
- }
-}
-
-################################################################################
# Shifting parent directories of URE and Basis layer, so that
# these directories are located below the Brand layer.
# Style: SHIFT_BASIS_INTO_BRAND_LAYER
@@ -728,7 +698,6 @@ sub replace_setup_variables
$value =~ s/\<alllanguages\>/$languagesstring/;
$value =~ s/\<productmajor\>/$localbuild/;
$value =~ s/\<productminor\>/$localminor/;
- $value =~ s/\<productbuildid\>/$installer::globals::buildid/;
$value =~ s/\<sourceid\>/$installer::globals::build/;
$value =~ s/\<updateid\>/$updateid/;
$value =~ s/\<pkgformat\>/$installer::globals::packageformat/;
@@ -1616,42 +1585,6 @@ sub remove_Helppacklibraries_from_Installset
}
############################################################################
-# Removing all files with flag PATCH_ONLY from installation set.
-# This function is not called during patch creation.
-############################################################################
-
-sub remove_patchonlyfiles_from_Installset
-{
- my ($itemsarrayref) = @_;
-
- my $infoline;
-
- my @newitemsarray = ();
-
- for ( my $i = 0; $i <= $#{$itemsarrayref}; $i++ )
- {
- my $oneitem = ${$itemsarrayref}[$i];
- my $styles = "";
- if ( $oneitem->{'Styles'} ) { $styles = $oneitem->{'Styles'}; }
-
- if ( $styles =~ /\bPATCH_ONLY\b/ )
- {
- $infoline = "Removing file with flag PATCH_ONLY $oneitem->{'gid'} from the installation set.\n";
- push( @installer::globals::globallogfileinfo, $infoline);
-
- next;
- }
-
- push(@newitemsarray, $oneitem);
- }
-
- $infoline = "\n";
- push( @installer::globals::globallogfileinfo, $infoline);
-
- return \@newitemsarray;
-}
-
-############################################################################
# Some files cotain a $ in their name. epm conflicts with such files.
# Solution: Renaming this files, converting "$" to "$$"
############################################################################
diff --git a/solenv/bin/modules/installer/simplepackage.pm b/solenv/bin/modules/installer/simplepackage.pm
index 5bc319d..c9ce580 100755
--- a/solenv/bin/modules/installer/simplepackage.pm
+++ b/solenv/bin/modules/installer/simplepackage.pm
@@ -301,7 +301,7 @@ sub create_package
my $localtempdir = $tempdir;
- if (( $installer::globals::languagepack ) || ( $installer::globals::helppack ) || ( $installer::globals::patch ))
+ if (( $installer::globals::languagepack ) || ( $installer::globals::helppack ))
{
$localtempdir = "$tempdir/$packagename";
if ( $installer::globals::helppack ) { $volume_name = "$volume_name Help Pack"; }
@@ -311,12 +311,6 @@ sub create_package
$volume_name_classic = "$volume_name_classic Language Pack";
$volume_name_classic_app = "$volume_name_classic_app Language Pack";
}
- if ( $installer::globals::patch )
- {
- $volume_name = "$volume_name Patch";
- $volume_name_classic = "$volume_name_classic Patch";
- $volume_name_classic_app = "$volume_name_classic_app Patch";
- }
# Create tar ball named tarball.tar.bz2
# my $appfolder = $localtempdir . "/" . $volume_name . "\.app";
@@ -362,7 +356,6 @@ sub create_package
my $scriptfilename = "";
if ( $installer::globals::languagepack ) { $scriptfilename = "osx_install_languagepack.applescript"; }
if ( $installer::globals::helppack ) { $scriptfilename = "osx_install_helppack.applescript"; }
- if ( $installer::globals::patch ) { $scriptfilename = "osx_install_patch.applescript"; }
my $scripthelpersolverfilename = "mac_install.script";
# my $scripthelperrealfilename = $volume_name;
my $scripthelperrealfilename = $volume_name_classic_app;
@@ -508,7 +501,6 @@ sub create_simple_package
$downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "downloadname");
if ( $installer::globals::languagepack ) { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "langpackdownloadname"); }
if ( $installer::globals::helppack ) { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "helppackdownloadname"); }
- if ( $installer::globals::patch ) { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "patchdownloadname"); }
$packagename = installer::download::resolve_variables_in_downloadname($allvariables, $$downloadname, \$locallanguage);
}
}
@@ -574,8 +566,6 @@ sub create_simple_package
my $onefile = ${$filesref}[$i];
if (( $onefile->{'Styles'} ) && ( $onefile->{'Styles'} =~ /\bBINARYTABLE_ONLY\b/ )) { next; }
- if (( $installer::globals::patch ) && ( $onefile->{'Styles'} ) && ( ! ( $onefile->{'Styles'} =~ /\bPATCH\b/ ))) { next; }
- if (( $installer::globals::patch ) && ( $installer::globals::packageformat eq "dmg" )) { push(@installer::globals::patchfilecollector, "$onefile->{'destination'}\n"); }
my $source = $onefile->{'sourcepath'};
my $destination = $onefile->{'destination'};
@@ -627,8 +617,6 @@ sub create_simple_package
{
my $onelink = ${$linksref}[$i];
- if (( $installer::globals::patch ) && ( $onelink->{'Styles'} ) && ( ! ( $onelink->{'Styles'} =~ /\bPATCH\b/ ))) { next; }
-
my $destination = $onelink->{'destination'};
$destination = $subfolderdir . $installer::globals::separator . $destination;
my $destinationfile = $onelink->{'destinationfile'};
@@ -644,8 +632,6 @@ sub create_simple_package
{
my $onelink = ${$unixlinksref}[$i];
- if (( $installer::globals::patch ) && ( $onelink->{'Styles'} ) && ( ! ( $onelink->{'Styles'} =~ /\bPATCH\b/ ))) { next; }
-
my $target = $onelink->{'Target'};
my $destination = $subfolderdir . $installer::globals::separator . $onelink->{'destination'};
diff --git a/solenv/bin/modules/installer/systemactions.pm b/solenv/bin/modules/installer/systemactions.pm
index 22d83fb..e2c11ff 100644
--- a/solenv/bin/modules/installer/systemactions.pm
+++ b/solenv/bin/modules/installer/systemactions.pm
@@ -230,7 +230,6 @@ sub create_directories
if ( $installer::globals::languagepack ) { $path = $path . $localproductname . "_languagepack" . $installer::globals::separator; }
elsif ( $installer::globals::helppack ) { $path = $path . $localproductname . "_helppack" . $installer::globals::separator; }
- elsif ( $installer::globals::patch ) { $path = $path . $localproductname . "_patch" . $installer::globals::separator; }
else { $path = $path . $localproductname . $installer::globals::separator; }
create_directory($path);
diff --git a/solenv/bin/modules/installer/windows/createfolder.pm b/solenv/bin/modules/installer/windows/createfolder.pm
index 5f42ee7..d43961b 100644
--- a/solenv/bin/modules/installer/windows/createfolder.pm
+++ b/solenv/bin/modules/installer/windows/createfolder.pm
@@ -88,10 +88,8 @@ sub get_createfolder_component
# containing the file $allvariableshashref->{'GLOBALFILEGID'}
if ( ! $allvariableshashref->{'GLOBALFILEGID'} ) { installer::exiter::exit_program("ERROR: GLOBALFILEGID must be defined in list file!", "get_createfolder_component"); }
- if (( $installer::globals::patch ) && ( ! $allvariableshashref->{'GLOBALFILEGID'} )) { installer::exiter::exit_program("ERROR: GLOBALPATCHFILEGID must be defined in list file!", "get_createfolder_component"); }
my $globalfilegid = $allvariableshashref->{'GLOBALFILEGID'};
- if ( $installer::globals::patch ) { $globalfilegid = $allvariableshashref->{'GLOBALPATCHFILEGID'}; }
my $onefile;
if ( $installer::globals::languagepack ) { $onefile = get_languagepack_file($filesref, $onedir); }
diff --git a/solenv/bin/modules/installer/windows/directory.pm b/solenv/bin/modules/installer/windows/directory.pm
index 92cb920..97b9937 100644
--- a/solenv/bin/modules/installer/windows/directory.pm
+++ b/solenv/bin/modules/installer/windows/directory.pm
@@ -253,8 +253,7 @@ sub check_sourcedir_addon
{
my ( $onedir, $allvariableshashref ) = @_;
- if (($installer::globals::patch) ||
- ($installer::globals::languagepack) ||
+ if (($installer::globals::languagepack) ||
($installer::globals::helppack) ||
($allvariableshashref->{'CHANGETARGETDIR'}))
{
@@ -407,7 +406,7 @@ sub add_root_directories
my $oneline = "";
- if (( ! $installer::globals::patch ) && ( ! $installer::globals::languagepack ) && ( ! $installer::globals::helppack ) && ( ! $allvariableshashref->{'DONTUSESTARTMENUFOLDER'} ))
+ if (( ! $installer::globals::languagepack ) && ( ! $installer::globals::helppack ) && ( ! $allvariableshashref->{'DONTUSESTARTMENUFOLDER'} ))
{
my $productname;
diff --git a/solenv/bin/modules/installer/windows/feature.pm b/solenv/bin/modules/installer/windows/feature.pm
index c22b864..d8ead03 100644
--- a/solenv/bin/modules/installer/windows/feature.pm
+++ b/solenv/bin/modules/installer/windows/feature.pm
@@ -141,7 +141,6 @@ sub get_feature_level
if ( $localdefault eq "NO" ) # explicitly set Default = "NO"
{
$level = "200"; # deselected in default installation, base is 100
- if ( $installer::globals::patch ) { $level = "20"; }
}
# special handling for Java and Ada
diff --git a/solenv/bin/modules/installer/windows/idtglobal.pm b/solenv/bin/modules/installer/windows/idtglobal.pm
index b29004e..de80cef 100644
--- a/solenv/bin/modules/installer/windows/idtglobal.pm
+++ b/solenv/bin/modules/installer/windows/idtglobal.pm
@@ -760,23 +760,6 @@ sub prepare_language_idt_directory
{
installer::systemactions::create_directory($destinationdir . $installer::globals::separator . "Binary");
installer::systemactions::copy_directory($installer::globals::idttemplatepath . $installer::globals::separator . "Binary", $destinationdir . $installer::globals::separator . "Binary");
-
- if ((( $installer::globals::patch ) && ( $allvariables->{'WINDOWSPATCHBITMAPDIRECTORY'} )) || ( $allvariables->{'WINDOWSBITMAPDIRECTORY'} ))
- {
- my $bitmapdir = "";
- if ( $allvariables->{'WINDOWSPATCHBITMAPDIRECTORY'} ) { $bitmapdir = $allvariables->{'WINDOWSPATCHBITMAPDIRECTORY'}; }
- if ( $allvariables->{'WINDOWSBITMAPDIRECTORY'} ) { $bitmapdir = $allvariables->{'WINDOWSBITMAPDIRECTORY'}; }
-
- my $newsourcedir = $installer::globals::unpackpath . $installer::globals::separator . $bitmapdir; # path setting in list file dependent from unpackpath !?
- $infoline = "\nOverwriting files in directory \"" . $destinationdir . $installer::globals::separator . "Binary" . "\" with files from directory \"" . $newsourcedir . "\".\n";
- push( @installer::globals::logfileinfo, $infoline);
- if ( ! -d $newsourcedir )
- {
- my $currentdir = cwd();
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list