Bug 261051 [releng] Add site.xml to the builder
A slightly different approach ... simply install the categories
diff --git a/org.eclipse.e4.builder/builder/general/build.properties b/org.eclipse.e4.builder/builder/general/build.properties
index 9088e7d..a4a0ebe 100644
--- a/org.eclipse.e4.builder/builder/general/build.properties
+++ b/org.eclipse.e4.builder/builder/general/build.properties
@@ -296,5 +296,6 @@
 #p2.publish.artifacts=true
 p2.root.name=${topLevelElementId}
 p2.root.version=4.0.0.v${buildId}
-p2.category.site=file:${buildDirectory}/features/${topLevelElementId}/site.xml
+# This won't quite do what you want
+#p2.category.site=file:${buildDirectory}/features/${topLevelElementId}/site.xml
 
diff --git a/org.eclipse.e4.builder/builder/general/patch-ver.xsl b/org.eclipse.e4.builder/builder/general/patch-ver.xsl
index 6f9316b..b61005a 100644
--- a/org.eclipse.e4.builder/builder/general/patch-ver.xsl
+++ b/org.eclipse.e4.builder/builder/general/patch-ver.xsl
@@ -10,6 +10,69 @@
     <xsl:attribute name="range">[3.5.0,4.0.0)</xsl:attribute>
   </xsl:template>
   
+  <xsl:template match="unit[@id='org.eclipse.e4.master.categoryIU']">
+    <unit id="org.eclipse.e4.swt.category" version="0.0.0">
+      <properties size="2">
+        <property name="org.eclipse.equinox.p2.name" value="E4 SWT"/>
+        <property name="org.eclipse.equinox.p2.type.category" value="true"/>
+      </properties>
+      <provides size="1">
+        <provided namespace="org.eclipse.equinox.p2.iu" name="org.eclipse.e4.swt.category" version="0.0.0"/>
+      </provides>
+      <requires size="2">
+        <required namespace="org.eclipse.equinox.p2.iu" name="org.eclipse.e4.swt.as.feature.feature.group" range="0.0.0"/>
+        <required namespace="org.eclipse.equinox.p2.iu" name="org.eclipse.e4.swt.as.source.feature.feature.group" range="0.0.0"/>
+      </requires>
+      <touchpoint id="null" version="0.0.0"/>
+    </unit>
+    <unit id="org.eclipse.e4.ui.category" version="0.0.0">
+      <properties size="2">
+        <property name="org.eclipse.equinox.p2.name" value="E4 UI"/>
+        <property name="org.eclipse.equinox.p2.type.category" value="true"/>
+      </properties>
+      <provides size="1">
+        <provided namespace="org.eclipse.equinox.p2.iu" name="org.eclipse.e4.ui.category" version="0.0.0"/>
+      </provides>
+      <requires size="4">
+        <required namespace="org.eclipse.equinox.p2.iu" name="org.eclipse.e4.ui.feature.feature.group" range="0.0.0"/>
+        <required namespace="org.eclipse.equinox.p2.iu" name="org.eclipse.e4.ui.css.feature.feature.group" range="0.0.0"/>
+        <required namespace="org.eclipse.equinox.p2.iu" name="org.eclipse.e4.ui.source.feature.feature.group" range="0.0.0"/>
+        <required namespace="org.eclipse.equinox.p2.iu" name="org.eclipse.e4.ui.css.source.feature.feature.group" range="0.0.0"/>
+      </requires>
+      <touchpoint id="null" version="0.0.0"/>
+    </unit>
+    <unit id="org.eclipse.e4.resources.category" version="0.0.0">
+      <properties size="2">
+        <property name="org.eclipse.equinox.p2.name" value="E4 Resources"/>
+        <property name="org.eclipse.equinox.p2.type.category" value="true"/>
+      </properties>
+      <provides size="1">
+        <provided namespace="org.eclipse.equinox.p2.iu" name="org.eclipse.e4.resources.category" version="0.0.0"/>
+      </provides>
+      <requires size="3">
+        <required namespace="org.eclipse.equinox.p2.iu" name="org.eclipse.e4.resources.feature.feature.group" range="0.0.0"/>
+        <required namespace="org.eclipse.equinox.p2.iu" name="org.eclipse.e4.resources.platform.patch.source.feature.group" range="0.0.0"/>
+        <required namespace="org.eclipse.equinox.p2.iu" name="org.eclipse.e4.resources.rcp.patch.source.feature.group" range="0.0.0"/>
+      </requires>
+      <touchpoint id="null" version="0.0.0"/>
+    </unit>
+    <unit id="org.eclipse.e4.xwt.category" version="0.0.0">
+      <properties size="2">
+        <property name="org.eclipse.equinox.p2.name" value="E4 XWT"/>
+        <property name="org.eclipse.equinox.p2.type.category" value="true"/>
+      </properties>
+      <provides size="1">
+        <provided namespace="org.eclipse.equinox.p2.iu" name="org.eclipse.e4.xwt.category" version="0.0.0"/>
+      </provides>
+      <requires size="4">
+        <required namespace="org.eclipse.equinox.p2.iu" name="org.eclipse.e4.xwt.feature.feature.group" range="0.0.0"/>
+        <required namespace="org.eclipse.equinox.p2.iu" name="org.eclipse.e4.xwt.tools.feature.feature.group" range="0.0.0"/>
+        <required namespace="org.eclipse.equinox.p2.iu" name="org.eclipse.e4.xwt.source.feature.feature.group" range="0.0.0"/>
+        <required namespace="org.eclipse.equinox.p2.iu" name="org.eclipse.e4.xwt.tools.source.feature.feature.group" range="0.0.0"/>
+      </requires>
+      <touchpoint id="null" version="0.0.0"/>
+    </unit>
+  </xsl:template>
   <!-- Whenever you match any node or any attribute -->
   <xsl:template match="node()|@*">
     <!-- Copy the current node -->