- Eclipse Project .x Stream Downloads
+ Eclipse Project .x Stream Downloads
Latest downloads from the Eclipse project
@@ -55,7 +126,7 @@
Software User Agreement unless otherwise specified.
-Eclipse .x downloads are available.
+Eclipse .x downloads are available.
See the main Eclispe download site for other packages and projects.
Help out with Eclipse translations - check out the Babel project.
If you prefer, try downloading with the SDK Torrents
@@ -79,7 +150,7 @@
// sanity check input
if (isset($dirName) && strlen($dirName) > 0) {
$firstChar = substr($dirName, 0, 1);
- //echo "first char: ".$firstChar;
+ //print "first char: ".$firstChar;
foreach($dropPrefix as $type) {
if ($firstChar == "$type") {
$result = true;
@@ -89,7 +160,7 @@
}
}
else {
- echo "dropPrefix not defined as expected\n";
+ print "dropPrefix not defined as expected\n";
}
return $result;
}
@@ -97,7 +168,6 @@
// hard code for now the tests ran on one box
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=378706
return 1;
-
global $subdirDrops;
$testBoxes=array("linux", "macosx", "win32");
$length=count($testBoxes);
@@ -120,7 +190,7 @@
global $subdirDrops;
// no file name, write empty column
if ($fileName == "") {
- echo " | | \n";
+ print " | \n";
return;
}
// get build name, date and time
@@ -145,13 +215,13 @@
// presumably this particular md5 was choosen since last one made, I'd guess?
//$build_done=file_exists("$dropDir/checksum/swt-$buildName-win32-wce_ppc-arm-j2me.zip.md5");
$build_done=file_exists("$dropDir/eclipse-SDK-$buildName-linux-gtk.tar.gz");
- echo "\n";
+ print " | \n";
// hard code for now the build is done
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=378706
// if ($build_done) {
if (true) {
$boxes=runTestBoxes($fileName);
- echo "\n";
+ print "\n";
//$testResults="$dropDir/testresults/xml";
//if (file_exists("$testResults")) {
switch ($boxes) {
@@ -160,21 +230,21 @@
//if ($diff > 480) {
// for now, hard code to "0" since we are not reunning tests
if ($diff > 0) {
- echo "\n";
+ print "\n";
} else {
- echo "\n";
+ print "\n";
}
break;
case 5:
- echo "\n";
+ print "\n";
break;
default:
// if more than 12 hours then consider that the regression tests did not finish
if ($diff > 720) {
- echo "\n";
+ print "\n";
} else {
- echo "\n";
+ print "\n";
}
}
//break;
@@ -184,9 +254,9 @@
// $perfsFile="$perfsDir/performance.php";
// if (file_exists("$perfsFile")) {
// if (file_exists("$perfsDir/global.php")) {
- //echo "\n";
+ //print "\n";
// } else {
- // echo "\n";
+ // print "\n";
/// }
// } else {
// if (file_exists("$perfsDir/consolelogs")) {
@@ -197,9 +267,9 @@
// } else {
// $reason="either they were not stored in DB or not generated";
// }
- // echo "\n";
+ // print "\n";
//} else {
- // echo "\n";
+ // print "\n";
// }
// }
// }
@@ -208,12 +278,12 @@
else {
// if more than 5 hours then consider that the build did not finish
if ($diff > 300) {
- echo "\n";
+ print "\n";
} else {
- echo "\n";
+ print "\n";
}
}
- echo " | \n";
+ print "\n";
return $buildName;
}
?>
@@ -226,7 +296,7 @@
if ($anEntry != "." && $anEntry!=".." && $anEntry!="TIME" && startsWithDropPrefix($anEntry,$dropPrefix)) {
$parts = explode("-", $anEntry);
- // echo "an entry: $anEntry\n";
+ // print "
an entry: $anEntry\n";
if (count($parts) == 3) {
$buckets[$parts[0]][] = $anEntry;
@@ -289,8 +359,8 @@
$prefix=$typeToPrefix[$value];
// if empty bucket, do not print this row
if (array_key_exists($prefix,$buckets)) {
- echo "
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -installIU ${extraIU} +
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -installIU ${testPlugin} +
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- trying to find ${testPlugin}_*
-
-
-
-
- trying to find ${testPluginX}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- trying to find ${testPlugin}_*
-
-
-
-
- trying to find ${testPluginX}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
diff --git eclipse/publishingFiles/staticDropFiles/buildNotes.php eclipse/publishingFiles/staticDropFiles/buildNotes.php
index e3f2dd2..7df68bd 100644
--- eclipse/publishingFiles/staticDropFiles/buildNotes.php
+++ eclipse/publishingFiles/staticDropFiles/buildNotes.php
@@ -56,7 +56,7 @@
if ($hasNotes) {
echo "\n";
}
- echo "Build notes (if any) are used to notify the community of notable, but temporary, issues or changes in a particular build.
";
+ echo "Build notes (if any) are used to notify the community of notable issues or changes in a particular build.
";
echo "Committers, to include build notes for your component, add a file with the pattern buildnotes_<component-name>.html to the root of one of your bundle's source tree.
";
aDirectory.closedir();
diff --git eclipse/publishingFiles/templateFiles/testResults.php.template eclipse/publishingFiles/templateFiles/testResults.php.template
index 89b9859..37c2235 100644
--- eclipse/publishingFiles/templateFiles/testResults.php.template
+++ eclipse/publishingFiles/templateFiles/testResults.php.template
@@ -3,6 +3,7 @@
Zip of .api_filters files used in the build";
?>
Cvs tag v$buildName of org.eclipse.releng.eclipsebuilder and org.eclipse.releng.basebuilder was used to create this build. ";
-}
+
+ echo"org.eclipse.releng.eclipsebuilder: $eclipsebuilderBranch ";
+ echo"org.eclipse.releng.basebuilder: $basebuilderBranch ";
+
?>
diff --git extras/pack.properties extras/pack.properties
index 5fa7783..9806ba2 100644
--- extras/pack.properties
+++ extras/pack.properties
@@ -1,3 +1,3 @@
pack200.default.args=-E4
-pack.excludes=content.jar,artifacts.jar,plugins/org.eclipse.ecf_3.1.300.v20120319-0616.jar,plugins/org.eclipse.ecf.source_3.1.300.v20120319-0616.jar,plugins/org.eclipse.ecf.ssl_1.0.100.v20120319-0616.jar,plugins/org.eclipse.ecf.ssl.source_1.0.100.v20120319-0616.jar,plugins/org.eclipse.ecf.identity_3.1.200.v20120319-0616.jar,plugins/org.eclipse.ecf.identity.source_3.1.200.v20120319-0616.jar,plugins/org.eclipse.ecf.filetransfer_5.0.0.v20120319-0616.jar,plugins/org.eclipse.ecf.filetransfer.source_5.0.0.v20120319-0616.jar,plugins/org.eclipse.ecf.provider.filetransfer_3.2.0.v20120319-0616.jar,plugins/org.eclipse.ecf.provider.filetransfer.source_3.2.0.v20120319-0616.jar,plugins/org.eclipse.ecf.provider.filetransfer.ssl_1.0.0.v20120319-0616.jar,plugins/org.eclipse.ecf.provider.filetransfer.ssl.source_1.0.0.v20120319-0616.jar,plugins/org.eclipse.ecf.provider.filetransfer.httpclient_4.0.200.v20120319-0616.jar,plugins/org.eclipse.ecf.provider.filetransfer.httpclient.source_4.0.200.v20120319-0616.jar,plugins/org.eclipse.ecf.provider.filetransfer.httpclient.ssl_1.0.0.v20120319-0616.jar,plugins/org.eclipse.ecf.provider.filetransfer.httpclient.ssl.source_1.0.0.v20120319-0616.jar,@excludejars@
-sign.excludes=content.jar,artifacts.jar,plugins/org.eclipse.ecf_3.1.300.v20120319-0616.jar,plugins/org.eclipse.ecf.source_3.1.300.v20120319-0616.jar,plugins/org.eclipse.ecf.ssl_1.0.100.v20120319-0616.jar,plugins/org.eclipse.ecf.ssl.source_1.0.100.v20120319-0616.jar,plugins/org.eclipse.ecf.identity_3.1.200.v20120319-0616.jar,plugins/org.eclipse.ecf.identity.source_3.1.200.v20120319-0616.jar,plugins/org.eclipse.ecf.filetransfer_5.0.0.v20120319-0616.jar,plugins/org.eclipse.ecf.filetransfer.source_5.0.0.v20120319-0616.jar,plugins/org.eclipse.ecf.provider.filetransfer_3.2.0.v20120319-0616.jar,plugins/org.eclipse.ecf.provider.filetransfer.source_3.2.0.v20120319-0616.jar,plugins/org.eclipse.ecf.provider.filetransfer.ssl_1.0.0.v20120319-0616.jar,plugins/org.eclipse.ecf.provider.filetransfer.ssl.source_1.0.0.v20120319-0616.jar,plugins/org.eclipse.ecf.provider.filetransfer.httpclient_4.0.200.v20120319-0616.jar,plugins/org.eclipse.ecf.provider.filetransfer.httpclient.source_4.0.200.v20120319-0616.jar,plugins/org.eclipse.ecf.provider.filetransfer.httpclient.ssl_1.0.0.v20120319-0616.jar,plugins/org.eclipse.ecf.provider.filetransfer.httpclient.ssl.source_1.0.0.v20120319-0616.jar,@excludejars@
\ No newline at end of file
+pack.excludes=content.jar,artifacts.jar,plugins/org.eclipse.ecf_3.1.300.v20120608-0148.jar,plugins/org.eclipse.ecf.source_3.1.300.v20120608-0148.jar,plugins/org.eclipse.ecf.ssl_1.0.100.v20120608-0148.jar,plugins/org.eclipse.ecf.ssl.source_1.0.100.v20120608-0148.jar,plugins/org.eclipse.ecf.identity_3.1.200.v20120608-0148.jar,plugins/org.eclipse.ecf.identity.source_3.1.200.v20120608-0148.jar,plugins/org.eclipse.ecf.filetransfer_5.0.0.v20120608-0148.jar,plugins/org.eclipse.ecf.filetransfer.source_5.0.0.v20120608-0148.jar,plugins/org.eclipse.ecf.provider.filetransfer_3.2.0.v20120608-0148.jar,plugins/org.eclipse.ecf.provider.filetransfer.source_3.2.0.v20120608-0148.jar,plugins/org.eclipse.ecf.provider.filetransfer.ssl_1.0.0.v20120608-0148.jar,plugins/org.eclipse.ecf.provider.filetransfer.ssl.source_1.0.0.v20120608-0148.jar,plugins/org.eclipse.ecf.provider.filetransfer.httpclient_4.0.200.v20120608-0148.jar,plugins/org.eclipse.ecf.provider.filetransfer.httpclient.source_4.0.200.v20120608-0148.jar,plugins/org.eclipse.ecf.provider.filetransfer.httpclient.ssl_1.0.0.v20120608-0148.jar,plugins/org.eclipse.ecf.provider.filetransfer.httpclient.ssl.source_1.0.0.v20120608-0148.jar,@excludejars@
+sign.excludes=content.jar,artifacts.jar,plugins/org.eclipse.ecf_3.1.300.v20120608-0148.jar,plugins/org.eclipse.ecf.source_3.1.300.v20120608-0148.jar,plugins/org.eclipse.ecf.ssl_1.0.100.v20120608-0148.jar,plugins/org.eclipse.ecf.ssl.source_1.0.100.v20120608-0148.jar,plugins/org.eclipse.ecf.identity_3.1.200.v20120608-0148.jar,plugins/org.eclipse.ecf.identity.source_3.1.200.v20120608-0148.jar,plugins/org.eclipse.ecf.filetransfer_5.0.0.v20120608-0148.jar,plugins/org.eclipse.ecf.filetransfer.source_5.0.0.v20120608-0148.jar,plugins/org.eclipse.ecf.provider.filetransfer_3.2.0.v20120608-0148.jar,plugins/org.eclipse.ecf.provider.filetransfer.source_3.2.0.v20120608-0148.jar,plugins/org.eclipse.ecf.provider.filetransfer.ssl_1.0.0.v20120608-0148.jar,plugins/org.eclipse.ecf.provider.filetransfer.ssl.source_1.0.0.v20120608-0148.jar,plugins/org.eclipse.ecf.provider.filetransfer.httpclient_4.0.200.v20120608-0148.jar,plugins/org.eclipse.ecf.provider.filetransfer.httpclient.source_4.0.200.v20120608-0148.jar,plugins/org.eclipse.ecf.provider.filetransfer.httpclient.ssl_1.0.0.v20120608-0148.jar,plugins/org.eclipse.ecf.provider.filetransfer.httpclient.ssl.source_1.0.0.v20120608-0148.jar,@excludejars@
\ No newline at end of file
diff --git runTests2.xml runTests2.xml
index e6adbfa..d4f22e8 100644
--- runTests2.xml
+++ runTests2.xml
@@ -159,7 +159,7 @@
-->
-
+
-
+
-
+
${buildResults}/buildProperties.php
+echo "\$basebuilderBranch='${basebuilderBranch}';" >> ${buildResults}/buildProperties.php
+echo "\$eclipsebuilderBranch='${eclipsebuilderBranch}';" >> $buildResults/buildProperties.php
+echo "?>" >> $buildResults/buildProperties.php
updateBaseBuilder
checkForErrorExit $? "Failed while updating Base Buidler"
diff --git scripts/promotionRelated/milestonePromotionRelated/createEquinoxPromotionScriptFunction.sh scripts/promotionRelated/milestonePromotionRelated/createEquinoxPromotionScriptFunction.sh
new file mode 0
index 0000000..559e576 0
--- /dev/null
+++ scripts/promotionRelated/milestonePromotionRelated/createEquinoxPromotionScriptFunction.sh
@@ -0,0 +1,52 @@
+#!/usr/bin/env bash
+
+function createPromotionScriptEq () {
+
+buildId=$1
+if [[ -z "${buildId}" ]]
+then
+ echo "ERROR: this function requires buildId or label to promote"
+ exit 1
+fi
+
+scriptName="promote-${buildId}.sh"
+
+# remember, there is no 'downloads' segment in equinox locations,
+# unlike the eclipse locations
+buildRoot=/shared/eclipse/eclipse4I
+siteDir=${buildRoot}/siteDir
+equinoxPostingDirectory=${siteDir}/equinox/drops
+
+# The 'workLocation' provides a handy central place to have the
+# promote script, and log results. ASSUMING this works for all
+# types of builds, etc (which is the goal for the sdk promotions).
+workLocationEquinox=/shared/eclipse/equinox/promotion
+
+# the cron job must know about and use this same
+# location to look for its promotions scripts. (i.e. implicite tight coupling)
+promoteScriptLocationEquinox=${workLocationEquinox}/queue
+
+# directory should normally exist -- best to create with committer's ID --
+# but in case not
+mkdir -p "${promoteScriptLocationEquinox}"
+
+eqFromDir=${equinoxPostingDirectory}/${buildId}
+eqToDir="/home/data/httpd/download.eclipse.org/equinox/drops/"
+
+# Note: for proper mirroring at Eclispe, we probably do not want/need to
+# maintain "times" on build machine, but let them take times at time of copying.
+# If it turns out to be important to maintain times (such as ran more than once,
+# to pick up a "more" output, such as test results, then add -t to rsync
+# Similarly, if download server is set up right, it will end up with the
+# correct permissions, but if not, we may need to set some permissions first,
+# then use -p on rsync
+
+# Here is content of promtion script (note, use same ptimestamp created above):
+echo "#!/usr/bin/env bash" > ${promoteScriptLocationEquinox}/${scriptName}
+echo "# promotion script created at $ptimestamp" >> ${promoteScriptLocationEquinox}/${scriptName}
+echo "rsync --recursive \"${eqFromDir}\" \"${eqToDir}\"" >> ${promoteScriptLocationEquinox}/${scriptName}
+
+# we restrict "others" rights for a bit more security or safety from accidents
+chmod -v ug=rwx,o-rwx ${promoteScriptLocationEquinox}/${scriptName}
+
+}
diff --git scripts/promotionRelated/milestonePromotionRelated/promoteDropSite38.sh scripts/promotionRelated/milestonePromotionRelated/promoteDropSite38.sh
new file mode 0
index 0000000..98f66e5 0
--- /dev/null
+++ scripts/promotionRelated/milestonePromotionRelated/promoteDropSite38.sh
@@ -0,0 +1,31 @@
+#!/usr/bin/env bash
+
+DROP_ID=I20120531-0600
+DL_LABEL=3.8RC3
+BUILD_TIMESTAMP=${DROP_ID//[I-]/}
+DL_DROP_ID=S-${DL_LABEL}-${BUILD_TIMESTAMP}
+
+source updateIndexFilesFunction.sh
+
+DL_SITE_PATH=/home/data/httpd/download.eclipse.org/eclipse/downloads/drops/
+
+cd /opt/public/eclipse/eclipse3I/siteDir/eclipse/downloads/drops
+echo "PWD: ${PWD}"
+cp /opt/public/eclipse/sdk/renameBuild.sh .
+
+echo "save temp backup"
+rsync -ra ${DROP_ID}/ ${DROP_ID}ORIG
+
+echo "rename ${DROP_ID} ${DL_DROP_ID} ${DL_LABEL}"
+./renameBuild.sh ${DROP_ID} ${DL_DROP_ID} ${DL_LABEL}
+
+echo "rsync ${DL_DROP_ID} to ${DL_SITE_PATH}"
+rsync -r ${DL_DROP_ID} ${DL_SITE_PATH}
+
+updateIndex 3
+
+echo "move backup back to original"
+mv ${DROP_ID}ORIG ${DROP_ID}
+
+rm renameBuild.sh
+
diff --git scripts/promotionRelated/milestonePromotionRelated/promoteDropSite42.sh scripts/promotionRelated/milestonePromotionRelated/promoteDropSite42.sh
new file mode 0
index 0000000..62b91a7 0
--- /dev/null
+++ scripts/promotionRelated/milestonePromotionRelated/promoteDropSite42.sh
@@ -0,0 +1,34 @@
+#!/usr/bin/env bash
+
+#
+#
+
+DROP_ID=I20120531-1500
+DL_LABEL=4.2RC3
+
+BUILD_TIMESTAMP=${DROP_ID//[I-]/}
+DL_DROP_ID=S-${DL_LABEL}-${BUILD_TIMESTAMP}
+
+source updateIndexFilesFunction.sh
+
+DL_SITE_PATH=/home/data/httpd/download.eclipse.org/eclipse/downloads/drops4/
+
+cd /opt/public/eclipse/eclipse4I/siteDir/eclipse/downloads/drops4
+echo "PWD: ${PWD}"
+cp /opt/public/eclipse/sdk/renameBuild.sh .
+
+echo "save temp backup copy to ${DROP_ID}ORIG"
+rsync -ra ${DROP_ID}/ ${DROP_ID}ORIG
+
+echo "rename ${DROP_ID} ${DL_DROP_ID} ${DL_LABEL}"
+./renameBuild.sh ${DROP_ID} ${DL_DROP_ID} ${DL_LABEL}
+
+echo "rsync ${DL_DROP_ID} to ${DL_SITE_PATH}"
+rsync -r ${DL_DROP_ID} ${DL_SITE_PATH}
+
+updateIndex 4
+
+echo "move backup back to original"
+mv ${DROP_ID}ORIG ${DROP_ID}
+
+rm renameBuild.sh
diff --git scripts/promotionRelated/milestonePromotionRelated/promoteDropSiteEq42.sh scripts/promotionRelated/milestonePromotionRelated/promoteDropSiteEq42.sh
new file mode 0
index 0000000..8cce4f3 0
--- /dev/null
+++ scripts/promotionRelated/milestonePromotionRelated/promoteDropSiteEq42.sh
@@ -0,0 +1,33 @@
+#!/usr/bin/env bash
+
+# note, for equinox, we use the "4.2 build",
+# but label is "3.8"
+
+DROP_ID=I20120531-1500
+DL_LABEL=3.8RC3
+
+BUILD_TIMESTAMP=${DROP_ID//[I-]/}
+DL_DROP_ID=S-${DL_LABEL}-${BUILD_TIMESTAMP}
+
+source createEquinoxPromotionScriptFunction.sh
+
+#
+
+cd /opt/public/eclipse/eclipse4I/siteDir/equinox/drops
+echo "PWD: ${PWD}"
+cp /opt/public/eclipse/sdk/renameBuild.sh .
+
+echo "save temp backup copy to ${DROP_ID}ORIG"
+rsync -ra ${DROP_ID}/ ${DROP_ID}ORIG
+
+echo "rename ${DROP_ID} ${DL_DROP_ID} ${DL_LABEL}"
+./renameBuild.sh ${DROP_ID} ${DL_DROP_ID} ${DL_LABEL}
+
+# For Equinox, we don't do the promotion, just create a
+# script to do it and put it in the right place for others to run.
+createPromotionScriptEq ${DL_DROP_ID}
+
+echo "move backup back to original"
+mv ${DROP_ID}ORIG ${DROP_ID}
+
+rm renameBuild.sh
diff --git scripts/promotionRelated/milestonePromotionRelated/promoteRepo38.sh scripts/promotionRelated/milestonePromotionRelated/promoteRepo38.sh
new file mode 0
index 0000000..48bbb7c 0
--- /dev/null
+++ scripts/promotionRelated/milestonePromotionRelated/promoteRepo38.sh
@@ -0,0 +1,27 @@
+#!/usr/bin/env bash
+
+
+DROP_SITE_ID=I20120531-0600
+
+DROP_LABEL=S-3.8RC3
+
+BUILD_TIMESTAMP=${DROP_SITE_ID//[I-]/}
+
+DL_SITE_ID="${DROP_LABEL}"-"${BUILD_TIMESTAMP}"
+
+BUILDMACHINE_BASE_SITE=/opt/public/eclipse/eclipse3I/siteDir/updates/3.8-I-builds
+
+DLMACHINE_BASE_SITE=/home/data/httpd/download.eclipse.org/eclipse/updates/3.8milestones
+
+BUILDMACHINE_SITE=${BUILDMACHINE_BASE_SITE}/${DROP_SITE_ID}
+
+DLMACHINE_SITE=${DLMACHINE_BASE_SITE}/${DL_SITE_ID}
+
+# remember, need trailing slash since going from existing directories
+# contents to new directories contents
+echo "BUILDMACHINE_SITE: ${BUILDMACHINE_SITE}/"
+echo "DLMACHINE_SITE: ${DLMACHINE_SITE}"
+rsync --dry-run -vr "${BUILDMACHINE_SITE}/" "${DLMACHINE_SITE}"
+
+echo " ... remember to update composite files ... "
+
diff --git scripts/promotionRelated/milestonePromotionRelated/promoteRepo42.sh scripts/promotionRelated/milestonePromotionRelated/promoteRepo42.sh
new file mode 0
index 0000000..bc63e9c 0
--- /dev/null
+++ scripts/promotionRelated/milestonePromotionRelated/promoteRepo42.sh
@@ -0,0 +1,27 @@
+#!/usr/bin/env bash
+
+
+DROP_SITE_ID=I20120531-1500
+
+DROP_LABEL=S-4.2RC3
+
+BUILD_TIMESTAMP=${DROP_SITE_ID//[I-]/}
+
+DL_SITE_ID="${DROP_LABEL}"-"${BUILD_TIMESTAMP}"
+
+BUILDMACHINE_BASE_SITE=/opt/public/eclipse/eclipse4I/siteDir/updates/4.2-I-builds
+
+DLMACHINE_BASE_SITE=/home/data/httpd/download.eclipse.org/eclipse/updates/4.2milestones
+
+BUILDMACHINE_SITE=${BUILDMACHINE_BASE_SITE}/${DROP_SITE_ID}
+
+DLMACHINE_SITE=${DLMACHINE_BASE_SITE}/${DL_SITE_ID}
+
+# remember, need trailing slash since going from existing directories
+# contents to new directories contents
+echo "BUILDMACHINE_SITE: ${BUILDMACHINE_SITE}/"
+echo "DLMACHINE_SITE: ${DLMACHINE_SITE}"
+rsync --dry-run -vr "${BUILDMACHINE_SITE}/" "${DLMACHINE_SITE}"
+
+echo " ... remember to update composite files ... "
+
diff --git scripts/promotionRelated/milestonePromotionRelated/updateIndexFilesFunction.sh scripts/promotionRelated/milestonePromotionRelated/updateIndexFilesFunction.sh
new file mode 0
index 0000000..f2c4540 0
--- /dev/null
+++ scripts/promotionRelated/milestonePromotionRelated/updateIndexFilesFunction.sh
@@ -0,0 +1,73 @@
+#!/usr/bin/env bash
+
+# this function accomplished "from a client" the same function that
+# could be done like this, on the download server (in .../eclipse/downloads directory):
+# php createIndex4x.php > index.html
+# php eclipse3x.php > eclipse3x.html
+
+function internalUpdateIndex ()
+{
+
+ if [[ $# != 2 ]]
+ then
+ echo "PROGRAM ERROR: this function requires to arguments, in order, "
+ echo " the php page to use to create the html page, named in second argument)."
+ exit 1
+ fi
+
+ PHP_PAGE=$1
+ HTML_PAGE=$2
+
+ TEMP_INDEX_TXT=tempIndex.txt
+
+ wget -O ${TEMP_INDEX_TXT} http://download.eclipse.org/eclipse/downloads/${PHP_PAGE}
+ rccode=$?
+ if [ $rccode -eq 0 ]
+ then
+ rsync ${TEMP_INDEX_TXT} /home/data/httpd/download.eclipse.org/eclipse/downloads/${HTML_PAGE}
+ rccode=$?
+ if [ $rccode -eq 0 ]
+ then
+ echo "INFO: Upated http://download.eclipse.org/eclipse/downloads/${HTML_PAGE}"
+ return 0
+ else
+ echo "ERROR: Could not copy ${HTML_PAGE} to downlaods. rccode: $rccode"
+ return $rccode
+ fi
+ else
+ echo "ERROR: Could not create or pull ${TEMP_INDEX_TXT} from downloads file ${PHP_PAGE}. rccode: $rccode"
+ return $rccode
+ fi
+
+ rm ${TEMP_INDEX_TXT}
+}
+
+
+function updateIndex ()
+{
+
+
+ x4X_PHP_PAGE="createIndex4x.php"
+ x4X_HTML_PAGE="index.html"
+ x3X_PHP_PAGE="eclipse3x.php"
+ x3X_HTML_PAGE="eclipse3x.html"
+
+ # if no arguments, do both, else we expect "3" or "4"
+ # TODO: would be polite to detect unexpected arguments and give warnings.
+ if [[ $# == 0 ]]
+ then
+ internalUpdateIndex ${x4X_PHP_PAGE} ${x4X_HTML_PAGE}
+ internalUpdateIndex ${x3X_PHP_PAGE} ${x3X_HTML_PAGE}
+ else
+ if [[ "$1" == "3" ]]
+ then
+ internalUpdateIndex ${x3X_PHP_PAGE} ${x3X_HTML_PAGE}
+ elif [[ "$1" == "4" ]]
+ then
+ internalUpdateIndex ${x4X_PHP_PAGE} ${x4X_HTML_PAGE}
+ fi
+ fi
+
+}
+
+
diff --git scripts/testScriptArea/dateTimeFormats.sh scripts/testScriptArea/dateTimeFormats.sh
index ccb5b15..ce6baf0 100755
--- scripts/testScriptArea/dateTimeFormats.sh
+++ scripts/testScriptArea/dateTimeFormats.sh
@@ -12,3 +12,13 @@
timestamp=$( date +%Y%m%d-%H%M )
echo $timestamp
+
+
+START_TIME=`date +%s`
+sleep 62
+END_TIME=`date +%s`
+ELAPSED=$((END_TIME-START_TIME))
+echo "Raw Elapsed: $ELAPSED"
+echo "FINISHED at " `date` " Elapsed time: " `date -d 00:00:$ELAPSED +%H:%M:%S`
+
+printf "Pretty format Elapsed Time: %02d:%02d:%02d:%02d\n" "$((ELAPSED/86400))" "$(($ELAPSED/3600%24))" "$(($ELAPSED/60%60))" "$(($ELAPSED%60))"
\ No newline at end of file
diff --git scripts/testScriptArea/testPHPWrite.sh scripts/testScriptArea/testPHPWrite.sh
new file mode 0
index 0000000..bd3af6c 0
--- /dev/null
+++ scripts/testScriptArea/testPHPWrite.sh
@@ -0,0 +1,11 @@
+
+buildResults="/home/davidw/temp"
+basebuilderBranch="abcd"
+eclipsebuilderBranch="1234"
+
+# make sure exists, before we write a file there
+mkdir -p $buildResults
+echo " ${buildResults}/buildProperties.php
+echo "\$basebuilderBranch='${basebuilderBranch}';" >> ${buildResults}/buildProperties.php
+echo "\$eclipsebuilderBranch='${eclipsebuilderBranch}';" >> $buildResults/buildProperties.php
+echo "?>" >> $buildResults/buildProperties.php
\ No newline at end of file
diff --git scripts/testScriptArea/testbuildidTotimestamp.sh scripts/testScriptArea/testbuildidTotimestamp.sh
new file mode 0
index 0000000..3d893c7 0
--- /dev/null
+++ scripts/testScriptArea/testbuildidTotimestamp.sh
@@ -0,0 +1,8 @@
+
+
+buildId=I20120526-0900
+
+timestamp=${buildId//[I-]/}
+
+echo "buildId: $buildId"
+echo "timestamp: $timestamp"
diff --git scripts/utilities/git-map-check.sh scripts/utilities/git-map-check.sh
new file mode 0
index 0000000..434e196 0
--- /dev/null
+++ scripts/utilities/git-map-check.sh
@@ -0,0 +1,117 @@
+#!/usr/bin/env bash
+#
+# This utility is to double check the "sanity" of the map files
+# produced in earlier step.
+# Repos must be checked out on the branch you
+# expect to tag, map file tags already computed, "added" to repo,
+# and committed (to local workspace), but not yet pushed ... not good
+# to push, if turns our there are errors and we cancel build.
+#
+#
+# USAGE: repoRoot buildTag relengRoot repoURL [repoURL]*
+# repoRoot - absolute path to a folder containing cloned git repositories
+# buildTag - build tag to tag all repositories
+# relengRoot - asolute path to releng project containing map files
+# repoURL - git repository urls to check, must match entries in the map files (i.e. git://... form)
+# EXAMPLE:
+# ./git-map-check.sh \
+# /opt/public/eclipse/eclipse3I/build/supportDir/gitCache \
+# I20120529-2100 \
+# /opt/public/eclipse/eclipse3I/build/supportDir/gitCache/eclipse.platform.releng.maps/org.eclipse.releng \
+# $( cat clones.txt ) | tee mapcheckout.txt
+#
+# returns 1 if FAILURE, else 0. Examine the maps-check.txt file for details.
+#
+
+LOGFILE="${PWD}/maps-check.txt"
+echo "LOGFILE: $LOGFILE"
+echo "# `basename ${0}` started at $( date +%Y%m%d-%H%M%S )" > "${LOGFILE}"
+START_TIME=`date +%s`
+
+check_map () {
+ #echo check_map "$@"
+ REPO=$1
+ REPO_DIR=$( basename $REPO .git )
+ MAP=$2
+ # assume no error, 0, but set to true, 1, if error found
+ FOUND_ERROR=0
+ pushd "$gitCache/$REPO_DIR" >/dev/null
+ grep "repo=${REPO}," "$MAP" >/tmp/maplines_$$.txt
+ # check that file exists and is not empty.
+ # (probably some type of an error if it does not,
+ # but, not the type of error we are interested in here).
+ if [ ! -s /tmp/maplines_$$.txt ]; then
+ return $FOUND_ERROR
+ fi
+ while read LINE; do
+ LINE_START=$( echo $LINE | sed 's/^\([^=]*\)=.*$/\1/g' )
+ PROJ_PATH=$( echo $LINE | sed 's/^.*path=//g' )
+ CURRENT_TAG=$( echo $LINE | sed 's/.*tag=\([^,]*\),.*$/\1/g' )
+ LAST_COMMIT=$( git rev-list -1 HEAD -- "$PROJ_PATH" )
+ if [ -z "$LAST_COMMIT" ]; then
+ echo "#SKIPPING $LINE_START, no commits for $PROJ_PATH" >> "${LOGFILE}"
+ continue
+ fi
+
+ if ! ( git tag --contains $LAST_COMMIT | grep $CURRENT_TAG >/dev/null ); then
+ echo FAIL $PROJ_PATH ":" $LAST_COMMIT not contained in $CURRENT_TAG ":" "$REPO" >> "${LOGFILE}"
+ FOUND_ERROR=1
+ else
+ echo "OK $LINE_START $CURRENT_TAG" >> "${LOGFILE}"
+ fi
+ done /dev/null
+ return $FOUND_ERROR
+}
+
+
+STATUS=OK
+STATUS_MSG=""
+LATEST_SUBMISSION=""
+
+
+if [ $# -lt 4 ]; then
+ echo "USAGE: $0 repoRoot buildTag relengRoot repoURL [repoURL]*"
+ exit 1
+fi
+
+
+gitCache=$1; shift
+buildTag=$1; shift
+RELENG=$1; shift
+REPOS="$@"
+
+echo "DEBUG: gitCache: $gitCache"
+echo "DEBUG: buildTag: $buildTag"
+echo "DEBUG: RELENG: $RELENG"
+echo "DEBUG: REPOS: $REPOS"
+
+# If there is one failure, the whole thing is a failure,
+# but, important to keep going to check all in one run, in case
+# there is more than one inaccuracy.
+OVERALL_FAIL=0
+
+cd $gitCache
+for REPO in $REPOS; do
+
+ MAPS=$( find $RELENG -name "*.map" -exec grep -l "repo=${REPO}," {} \; )
+ echo " "
+ echo "DEBUG: REPO: $REPO"
+ echo "DEBUG: MAPS: $MAPS"
+ if [ ! -z "$MAPS" ]; then
+ for MAP in $MAPS; do
+ echo "DEBUG: MAP : $MAP"
+ FAILED=$( check_map $REPO $MAP )
+ if [[ $FAILED == 1 ]]
+ then
+ OVERALL_FAIL=1;
+ fi
+ done
+ fi
+done
+echo "# check maps file ended at $( date +%Y%m%d-%H%M%S )" >> "${LOGFILE}"
+END_TIME=`date +%s`
+ELAPSED=$((END_TIME-START_TIME))
+echo "# Elapsed seconds: $ELAPSED" >> "${LOGFILE}"
+exit $OVERALL_FAIL