# HG changeset patch # User Dario Sestito <darios@symbian.org> # Date 1245430857 -3600 # Node ID 6d9dd19b69495526726e2e5d87baaa111cc2e5ad # Parent bf91a7e3c25b21d603827a70b464aa006a5ac9bd# Parent 62976b2583f7d04735cc292782113fd605bf3aa6 Catchup from platform build diff -r bf91a7e3c25b -r 6d9dd19b6949 common/build.xml --- a/common/build.xml Fri Jun 19 16:13:48 2009 +0100 +++ b/common/build.xml Fri Jun 19 18:00:57 2009 +0100 @@ -21,11 +21,16 @@ <property name="prep.root.dir" value="${sf.spec.job.rootdir}"/> <property name="publish" value="${sf.spec.publish.enable}"/> <property name="publish.root.dir" value="${sf.spec.publish.rootdir}"/> + <property name="diamonds.host" value="${sf.spec.publish.diamonds.server}"/> + <property name="diamonds.port" value="${sf.spec.publish.diamonds.port}"/> + <property name="diamonds.path" value="${sf.spec.publish.diamonds.path}"/> <property name="build.system" value="${sf.spec.build.system}"/> <property name="base_release.path" value="${sf.spec.baseline.location}"/> <property name="base_release.getenv_options" value="${sf.spec.baseline.getenv_options}"/> - + <!-- SF-specific Helium properties not meant to be exposed in the project spec --> + <property name="diamonds.listener.configuration.file" location="${sf.common.config.dir}/diamonds/config.xml.ftl"/> + <!-- import all core HELIUM targets --> <import file="${helium.dir}/helium.ant.xml" /> @@ -176,6 +181,13 @@ <target name="sf-prebuild"> <echo>[SF-PREBUILD]</echo> + <if> + <istrue value="${sf.spec.publish.enable}"/> + <then> + <runtarget target="diamonds"/> + </then> + </if> + <!-- create BOM dir --> <mkdir dir="${build.drive}/output/logs/BOM"/> @@ -245,7 +257,7 @@ <arg value="${sf.spec.baseline.location}"/> </exec> - <!-- run interal target preparation-getenv --> + <!-- run internal target preparation-getenv --> <runtarget target="preparation-getenv"/> </then> @@ -469,7 +481,7 @@ <target name="sf-diamondize-bom"> <fmpp sourceFile="${sf.common.config.dir}/templates/build-info.xml.ftl" - outputFile="${build.drive}/output/logs/BOM/build-info.xml"> + outputFile="${build.drive}/output/logs/sf-diamondize-bom.xml"> <data expandProperties="yes"> ant: antProperties() config: csv(${build.drive}/output/logs/BOM/config.csv,{separator:',',headers:[loc,dst,rev]}) @@ -709,14 +721,33 @@ </path> <sequential> <propertyregex override="yes" property="yarpfile" input="@{logfile}" regexp=".*[\\|\/](.*)_compile\.log" replace="\1_yarp.csv"/> + <propertyregex override="yes" property="yarpfile_short" input="${yarpfile}" regexp="[^_]*_[^_]*_[^_]*_(.+)_[^_]*_yarp\.csv" replace="YARP_\1"/> <echo message="Yarping @{logfile}..."/> <exec executable="perl" dir="${build.drive}" failonerror="false" output="${build.log.dir}/analysis/${build.id}_yarp.log" append="true"> <arg value="${sf.common.config.dir}/tools/analysis/yarp.pl"/> <arg value="@{logfile}"/> <arg value="${build.log.dir}/analysis/${yarpfile}"/> </exec> + <exec executable="cmd" output="${build.drive}/output/logs/analysis/tmp_yarp_files.csv" append="true"> + <arg value="/c"/> + <arg value="echo"/> + <arg value="${yarpfile_short},${sf.spec.publish.networkdrive}\${sf.spec.job.name}\builds\${sf.spec.job.codeline}\${build.id}\logs\analysis\${yarpfile},${build.drive}\output\logs\analysis\${yarpfile}"/> + </exec> </sequential> </for> + + <exec executable="perl" dir="${build.drive}" failonerror="false" outputproperty="sf.job.totalyarperrors"> + <arg value="${sf.common.config.dir}/tools/analysis/parse_yarp_files.pl"/> + <arg value="${build.drive}/output/logs/analysis/tmp_yarp_files.csv"/> + </exec> + <echo message="Total yarp errors: ${sf.job.totalyarperrors}"/> + + <fmpp sourceFile="${sf.common.config.dir}/diamonds/sf-run-analysis.xml.ftl" outputFile="${build.drive}/output/logs/sf-run-analysis.xml"> + <data expandProperties="yes"> + ant: antProperties() + files: csv(${build.drive}/output/logs/analysis/tmp_yarp_files.csv,{separator:',',headers:[name,path,localpath]}) + </data> + </fmpp> </target> diff -r bf91a7e3c25b -r 6d9dd19b6949 common/common_props.ant.xml --- a/common/common_props.ant.xml Fri Jun 19 16:13:48 2009 +0100 +++ b/common/common_props.ant.xml Fri Jun 19 18:00:57 2009 +0100 @@ -50,6 +50,9 @@ <property name="sf.spec.publish.network.freespace" value="10"/> <property name="sf.spec.publish.networkdrive" value="\\v800008\Builds01\SF_builds"/> <property name="sf.spec.publish.rootdir" value="\\v800008\Builds01\SF_builds"/> + <property name="sf.spec.publish.diamonds.server" value="v800002.ad-sfpd.intra"/> + <property name="sf.spec.publish.diamonds.port" value="80"/> + <property name="sf.spec.publish.diamonds.path" value="/diamonds/builds/"/> <property name="sf.spec.tagafterbuild.enable" value="false"/> diff -r bf91a7e3c25b -r 6d9dd19b6949 common/diamonds/config.xml.ftl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/common/diamonds/config.xml.ftl Fri Jun 19 18:00:57 2009 +0100 @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Copyright (c) 2009 Symbian Foundation Ltd +This component and the accompanying materials are made available +under the terms of the License "Eclipse Public License v1.0" +which accompanies this distribution, and is available +at the URL "http://www.eclipse.org/legal/epl-v10.html". + +Initial Contributors: +Symbian Foundation Ltd - initial contribution. + +Contributors: + +Description: +Diamonds configuration template +--> +<configuration> +<config> + <template-dir path="${ant['helium.dir']}/tools/common/templates/diamonds"/> + <output-dir path="${ant['build.log.dir']}"/> + <property name="smtpserver" value="email.smtp.server" /> + <property name="ldapserver" value="email.ldap.server" /> + <property name="initialiser-target-name" value="diamonds" /> + <server> + <property name="host" value="diamonds.host" /> + <property name="port" value="diamonds.port" /> + <property name="path" value="diamonds.path" /> + <property name="tstampformat" value="yyyy-MM-dd'T'HH:mm:ss" /> + <property name="mail" value="diamonds.mail" /> + <property name="category-property" value="build.family" /> + <property name="buildid-property" value="diamonds.build.id" /> + </server> +</config> +<logger> + <stages> + <stage name="pre-build" start="prep" end="prebuild" /> + <stage name="build" start="compile-main" end="compile-main" /> + <stage name="post-build" start="postbuild" end="zip-localised" /> + <stage name="release" start="publish-variants" end="final" /> + </stages> + <targets> + <target name="diamonds" template-file="tool.xml.ftl" + logfile="${ant['temp.build.dir']}/build/doc/ivy/tool-dependencies-${ant['build.type']}.xml" ant-properties="true"/> + + <!-- note: replaced by sf-run-analysis --> + <!-- target name="compile-main" template-file="compile.xml.ftl" + logfile="${ant['diamonds.compile.summary']}" ant-properties="true"/ --> + + <target name="ido-codescanner" template-file="codescanner.xml.ftl" + logfile="${ant['ido.codescanner.output.dir']}/problemIndex.xml"/> + + <!-- if no logfile provided, looks for xml file to send + using <build.id_target_name.xml> file or<target_name.xml> file, + if both doesn't exists does nothing. tries to pass ant properties + and sends it.--> + + <target name="create-bom"/> + + <target name="rndsdk-create-api-descr-xml" template-file="apimetrics.xml.ftl" + logfile="${ant['build.drive']}/output/apidescr/apidescr.xml"/> + + <#if (ant?keys?seq_contains('validate.policy.log'))> + <target name="render-validate-policy" template-file="validate-policy-log.xml.ftl" + logfile="${ant['validate.policy.log']}"/> + </#if> + + <!-- defer will store all the converted output file and sends only if there any other + stage / target starts to send some data to diamonds --> + <target name="check-tool-dependencies" template-file="tool.xml.ftl" + logfile="${ant['temp.build.dir']}/build/doc/ivy/tool-dependencies-${ant['build.type']}.xml" ant-properties="true" + defer="true"/> + + <!-- SF specific --> + <target name="sf-diamondize-bom"/> + <target name="sf-run-analysis"/> + </targets> +</logger> +</configuration> \ No newline at end of file diff -r bf91a7e3c25b -r 6d9dd19b6949 common/diamonds/sf-run-analysis.xml.ftl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/common/diamonds/sf-run-analysis.xml.ftl Fri Jun 19 18:00:57 2009 +0100 @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<diamonds-build> + <schema>10</schema> + + <faults> + <total severity="error">${ant['sf.job.totalyarperrors']}</total> + <total severity="warning">0</total> + <total severity="warning_rvct_bad">0</total> + <total severity="warning_rvct_other">0</total> + <total severity="codescanner_high">0</total> + <total severity="codescanner_medium">0</total> + <total severity="codescanner_low">0</total> + </faults> + + <files> + <#list files as f> + <file> + <type>log</type> + <name>${f.name}</name> + <url>file:///${f.path}</url> + </file> + </#list> + </files> + +</diamonds-build> \ No newline at end of file diff -r bf91a7e3c25b -r 6d9dd19b6949 common/tools/analysis/parse_yarp_files.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/common/tools/analysis/parse_yarp_files.pl Fri Jun 19 18:00:57 2009 +0100 @@ -0,0 +1,38 @@ + +my @asYarpFiles = (); +open(FILE, $ARGV[0]); +while ( <FILE> ) +{ + if ( m/^[^,]*,[^,]*,([^,]*)/ ) + { + my $sFile = $1; + chomp $sFile; +# print "$sFile\n"; + push(@asYarpFiles, $sFile); + } +} +close(FILE); +my $nYarpFiles = scalar(@asYarpFiles); +#print "Found $nYarpFiles files to parse\n"; + +my $nTotalRecipeErrors = 0; +for my $nYarpFile (@asYarpFiles) +{ + my $nRecipeErrors = 0; +# print "Parsing file $nYarpFile...\n"; + open(FILE, $nYarpFile); + while ( <FILE> ) + { + if ( m/^Raptor recipe failures:\s+(\d+)$/ ) + { +# print "Raptor recipe failures: $1\n"; + $nRecipeErrors = $1; + } + } + close(FILE); +# print "Recipe errors in $nYarpFile: $nRecipeErrors\n"; + $nTotalRecipeErrors += $nRecipeErrors; +} +#print "Total recipe errors across all files: $nTotalRecipeErrors\n"; + +print "$nTotalRecipeErrors"; \ No newline at end of file diff -r bf91a7e3c25b -r 6d9dd19b6949 common/tools/analysis/yarp.pl --- a/common/tools/analysis/yarp.pl Fri Jun 19 16:13:48 2009 +0100 +++ b/common/tools/analysis/yarp.pl Fri Jun 19 18:00:57 2009 +0100 @@ -68,6 +68,7 @@ my %licenceattempts; my $counter = 0; my $licence = 0; + my $failures = 0; while( my $line = <FILE>) { ++$counter; @@ -84,6 +85,7 @@ # if($recipe->{'exit'} !~ m/ok/) if($recipe->{'exit'} =~ m/failed/) { + ++$failures; # if($recipe->{'target'} =~ m/\S:epoc32\//i) # && $recipe->{'target'} !~ m/\S:epoc32\/build/i) { @@ -131,6 +133,9 @@ } close FILE; print OUT "\n\nSummaries\n\n"; + + print OUT "Raptor recipe failures: $failures\n"; + foreach my $attempt (sort keys %attempts) { print OUT "Overall attempts: $attempt,".$attempts{$attempt}.",\n"; diff -r bf91a7e3c25b -r 6d9dd19b6949 sf-package/build.xml --- a/sf-package/build.xml Fri Jun 19 16:13:48 2009 +0100 +++ b/sf-package/build.xml Fri Jun 19 18:00:57 2009 +0100 @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<project name="SF-PACKAGE-CONFIG"> +<project name="SF-PACKAGE-CONFIG" xmlns:hlm="http://www.nokia.com/helium"> <!-- location of this config --> <dirname property="sf.package.config.dir" file="${ant.file.SF-PACKAGE-CONFIG}"/> @@ -12,5 +12,85 @@ <!-- import package references --> <import file="${sf.package.config.dir}/package_refs.ant.xml" /> + <target name="sf-compile"> + <runtarget target="sf-package-compile"/> + </target> + + <target name="sf-package-compile"> + + <hlm:sbsMakeOptions engine="gmake" id="sbs.fullbuild.options"/> + <hlm:sbsMakeOptions engine="gmake" id="sbs.toolsbuild.options"/> + + <!-- CLEAN --> + <hlm:argSet id="sbs.main.clean.sbs.var"> + <hlm:arg name="config" value="${sf.spec.sbs.config}" /> + <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" /> + <hlm:arg name="command" value="CLEAN" /> + </hlm:argSet> + <antcall target="compile-main" inheritAll="false" inheritRefs="true"> + <param name="build.system" value="${sf.spec.build.system}" /> + <!-- param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" / --> + <param name="sysdef.configurations.list" value="${sf.spec.sysdef.configurations.list}" /> + <!-- param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/ --> + <reference refid="sbs.main.clean.sbs.var" torefid="sbs.var" /> + <reference refid="sbs.fullbuild.options" torefid="sbs.make.options" /> + <reference refid="sf.spec.system.definition.files" torefid="system.definition.files" /> + </antcall> + + <!-- BUILD tools2 --> + <hlm:argSet id="sbs.tools2.var"> + <hlm:arg name="config" value="tools2_rel" /> + <hlm:arg name="singlejob" value="false" /> + <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" /> + </hlm:argSet> + <antcall target="compile-main" inheritAll="false" inheritRefs="true"> + <param name="build.system" value="${sf.spec.build.system}" /> + <!-- param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" / --> + <param name="sysdef.configurations.list" value="${sf.spec.sysdef.configurations.list}" /> + <!-- param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/ --> + <reference refid="sbs.tools2.var" torefid="sbs.var" /> + <reference refid="sbs.toolsbuild.options" torefid="sbs.make.options" /> + <reference refid="sf.spec.system.definition.files" torefid="system.definition.files" /> + </antcall> + + <!-- BUILD tools --> + <hlm:argSet id="sbs.tools.var"> + <hlm:arg name="config" value="tools_rel" /> + <hlm:arg name="singlejob" value="true" /> + <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" /> + </hlm:argSet> + <antcall target="compile-main" inheritAll="false" inheritRefs="true"> + <param name="build.system" value="${sf.spec.build.system}" /> + <!-- param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" / --> + <param name="sysdef.configurations.list" value="${sf.spec.sysdef.configurations.list}" /> + <!-- param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/ --> + <reference refid="sbs.tools.var" torefid="sbs.var" /> + <reference refid="sbs.toolsbuild.options" torefid="sbs.make.options" /> + <reference refid="sf.spec.system.definition.files" torefid="system.definition.files" /> + </antcall> + + <!-- BUILD --> + <hlm:argSet id="sbs.main.sbs.var"> + <hlm:arg name="config" value="${sf.spec.sbs.config}.whatlog" /> + <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" /> + </hlm:argSet> + <antcall target="compile-main" inheritAll="false" inheritRefs="true"> + <param name="build.system" value="${sf.spec.build.system}" /> + <!-- param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" / --> + <param name="sysdef.configurations.list" value="${sf.spec.sysdef.configurations.list}" /> + <!-- param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/ --> + <reference refid="sbs.main.sbs.var" torefid="sbs.var" /> + <reference refid="sbs.fullbuild.options" torefid="sbs.make.options" /> + <reference refid="sf.spec.system.definition.files" torefid="system.definition.files" /> + </antcall> + + <!-- CHECK --> + <exec executable="cmd" dir="${build.drive}/" output="${build.drive}/output\logs\build_check_compile.log"> + <arg value="/c sbs.bat -s ${build.drive}/output\build\canonical_system_definition_SF.xml -k -c ${sf.spec.sbs.config} -j 32 --check -m ${build.drive}/output\logs\build_check_Makefile"/> + <!-- argument of -j option can be parameterized with: ${number.of.threads} --> + </exec> + + </target> + </project> diff -r bf91a7e3c25b -r 6d9dd19b6949 sf-package/package_props.ant.xml --- a/sf-package/package_props.ant.xml Fri Jun 19 16:13:48 2009 +0100 +++ b/sf-package/package_props.ant.xml Fri Jun 19 18:00:57 2009 +0100 @@ -1,4 +1,18 @@ <?xml version="1.0"?> -<project name="SF-PACKAGE-PROPS"/> +<project name="SF-PACKAGE-PROPS"> + + <property name="sf.spec.baseline.enable" value="true"/> + <property name="sf.spec.baseline.select" value="location"/> + <property name="sf.spec.baseline.location" value="\\v800008.ad-sfpd.intra\g$\Releases\PDK_candidate_2.0.b_flat"/> + <property name="sf.spec.baseline.getenv_options" value="-i emu -i rnd"/> + + <property name="sf.spec.systemdefinition.assemble" value="false"/> + <property name="sf.spec.sysdef.configurations.list" value="SF"/> + + <property name="sf.spec.sbs.config" value="winscw"/> + + <property name="sf.spec.logs.raptorfilter.enable" value="false"/> +</project> + diff -r bf91a7e3c25b -r 6d9dd19b6949 sf-package/package_refs.ant.xml --- a/sf-package/package_refs.ant.xml Fri Jun 19 16:13:48 2009 +0100 +++ b/sf-package/package_refs.ant.xml Fri Jun 19 18:00:57 2009 +0100 @@ -1,3 +1,11 @@ <?xml version="1.0"?> -<project name="SF-PACKAGE-REFS"/> \ No newline at end of file +<project name="SF-PACKAGE-REFS"> + + <path id="sf.spec.system.definition.files"> + <fileset dir="${sf.spec.job.drive}/" casesensitive="false"> + <include name="${sf.spec.systemdefinition.location}" /> + </fileset> + </path> + + </project> \ No newline at end of file diff -r bf91a7e3c25b -r 6d9dd19b6949 sf-platform/build.xml --- a/sf-platform/build.xml Fri Jun 19 16:13:48 2009 +0100 +++ b/sf-platform/build.xml Fri Jun 19 18:00:57 2009 +0100 @@ -88,24 +88,6 @@ </for> </target> - <target name="generate-layers"> - <echo message="canno-file:${canonical.sysdef.file}"/> - <echo message="raptor-filters:raptor_${sysdef.configuration}"/> - - <!-- All we want is a sysdef with the config name appended, so just copy it --> - <echo message="INFO: Skip GenXML and copy sysdef to sysdef+config name"/> - <copy file="${canonical.sysdef.file}" tofile="${build.drive}/output/build/canonical_system_definition_${sysdef.configuration}_temp.xml"/> - - <copy file="${build.drive}/output/build/canonical_system_definition_${sysdef.configuration}_temp.xml" tofile="${build.drive}/output/build/canonical_system_definition_${sysdef.configuration}.xml"> - <filterchain> - <linecontainsregexp negate="true"> - <regexp pattern="^\s*$"/> - </linecontainsregexp> - </filterchain> - </copy> - <delete file="${build.drive}/output/build/canonical_system_definition_${sysdef.configuration}_temp.xml"/> - </target> - <!-- == Name: SF-COMPILE ==