Reuse componentids for *.dll across minor releases.
Indicate to the user when this is an upgrade installation.
Make CHM file non-advertised.
Backported to 2.4.
diff --git a/Tools/msi/msilib.py b/Tools/msi/msilib.py
index 61715fc..8371e96 100644
--- a/Tools/msi/msilib.py
+++ b/Tools/msi/msilib.py
@@ -445,7 +445,7 @@
             blogical = None
         add_data(db, "Directory", [(logical, blogical, default)])
 
-    def start_component(self, component = None, feature = None, flags = None, keyfile = None):
+    def start_component(self, component = None, feature = None, flags = None, keyfile = None, uuid=None):
         """Add an entry to the Component table, and make this component the current for this
         directory. If no component name is given, the directory name is used. If no feature
         is given, the current feature is used. If no flags are given, the directory's default
@@ -453,7 +453,10 @@
         table."""
         if flags is None:
             flags = self.componentflags
-        uuid = gen_uuid()
+        if uuid is None:
+            uuid = gen_uuid()
+        else:
+            uuid = uuid.upper()
         if component is None:
             component = self.logical
         self.component = component