[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