# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1277310560 -10800 # Node ID d706e2bc01db8fe8bc508fe0263008ac641b0425 # Parent 85843213544904e6da664c02934cf72a76613dcd Revision: 201025 Kit: 2010125 diff -r 858432135449 -r d706e2bc01db bldsystemtools/sysdeftools/filtering.xsl --- a/bldsystemtools/sysdeftools/filtering.xsl Fri Jun 11 14:46:46 2010 +0300 +++ b/bldsystemtools/sysdeftools/filtering.xsl Wed Jun 23 19:29:20 2010 +0300 @@ -12,14 +12,25 @@ Contributors: Description: Filter a sysdef in the 2.0 or 3.0 syntax + The functionality of these filters is not supported outside of this tool. + The filtering concepts here may not be carried forward in future system definition processing tools --> only - + +"with" = components/units that have the opposite filter are removed. This covers the old symbian.com case of java, !java and "don't care" components. In other words we have a global feature that every item can be built only when the feature is set, only when the feature is not set, or it does not care and will always be built. So for a !java build only items containing filter="java" are stripped out. For a java build, only items with filter="!java" are stripped out. Anything which does not explicitly mention java are always unaffected. Opposite filters will generate sets which overlap. +--> + + + + + diff -r 858432135449 -r d706e2bc01db bldsystemtools/sysdeftools/joinsysdef-module.xsl --- a/bldsystemtools/sysdeftools/joinsysdef-module.xsl Fri Jun 11 14:46:46 2010 +0300 +++ b/bldsystemtools/sysdeftools/joinsysdef-module.xsl Wed Jun 23 19:29:20 2010 +0300 @@ -20,11 +20,19 @@ - ERROR: Cannot process this document + + ERROR: Cannot process this document () + + . Unrecognised syntax schema="" + . Missing schema + . Invalid file type: + + + - + @@ -46,9 +54,9 @@ - Cannot set "", already set + Note: Cannot set "", already set. Ignoring linked value - + @@ -90,7 +98,7 @@ - + @@ -108,7 +116,7 @@ - + @@ -136,8 +144,8 @@ - - + + @@ -193,6 +201,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -211,7 +287,7 @@ - + @@ -226,6 +302,8 @@ + + @@ -236,7 +314,6 @@ still has meta: keep / delete still has comments: keep / delete --> - @@ -244,14 +321,12 @@ - - - + @@ -265,6 +340,7 @@ + @@ -273,11 +349,21 @@ - + + + + + + + + + + + - / + / @@ -315,6 +401,7 @@ + @@ -360,7 +447,7 @@ - + @@ -374,7 +461,7 @@ - + @@ -413,15 +500,22 @@ - - - - - - / - - - + + + + + + + + + + + / + + + + + @@ -464,6 +558,7 @@ + @@ -473,6 +568,9 @@ + + + @@ -508,4 +606,5 @@ + diff -r 858432135449 -r d706e2bc01db bldsystemtools/sysdeftools/joinsysdef.xsl --- a/bldsystemtools/sysdeftools/joinsysdef.xsl Fri Jun 11 14:46:46 2010 +0300 +++ b/bldsystemtools/sysdeftools/joinsysdef.xsl Wed Jun 23 19:29:20 2010 +0300 @@ -14,6 +14,7 @@ Create a stand-alone sysdef from a linked set of fragments --> + /os/deviceplatformrelease/foundation_system/system_model/system_definition.xml @@ -29,6 +30,7 @@ + diff -r 858432135449 -r d706e2bc01db bldsystemtools/sysdeftools/mergesysdef-module.xsl --- a/bldsystemtools/sysdeftools/mergesysdef-module.xsl Fri Jun 11 14:46:46 2010 +0300 +++ b/bldsystemtools/sysdeftools/mergesysdef-module.xsl Wed Jun 23 19:29:20 2010 +0300 @@ -18,9 +18,9 @@ ERROR: Syntax not supported - + @@ -42,7 +42,7 @@ - + @@ -59,8 +59,8 @@ - - + + @@ -77,7 +77,7 @@ - + @@ -93,7 +93,7 @@ - + @@ -121,7 +121,7 @@ - + @@ -130,12 +130,18 @@ ERROR: Syntax not supported - - ERROR: Can only merge stand-alone system models + + ERROR: Can only merge system models of the same rank - + + + + + + + @@ -183,6 +189,7 @@ + @@ -192,6 +199,7 @@ + @@ -199,6 +207,7 @@ + @@ -226,7 +235,7 @@ - + @@ -316,15 +325,69 @@ + + + + + + + + + + + + * + + + + + + + + + +<----> + + ="" + + + + rel="Generic" + type="auto" + > + + + + + + - + - + + + + Note: "" + overridden in downstream sysdef + replaced by "" + + + + + + + + + + + @@ -372,9 +435,16 @@ - + + + + + + + + @@ -388,12 +458,16 @@ - + + + + + @@ -407,8 +481,11 @@ + + + - + @@ -448,12 +525,10 @@ - - - - - - + + + + @@ -467,11 +542,27 @@ + + + + + + + + + + + + + + + + - + @@ -481,12 +572,10 @@ - - - - - - + + + + diff -r 858432135449 -r d706e2bc01db bldsystemtools/sysdeftools/mergesysdef.xsl --- a/bldsystemtools/sysdeftools/mergesysdef.xsl Fri Jun 11 14:46:46 2010 +0300 +++ b/bldsystemtools/sysdeftools/mergesysdef.xsl Wed Jun 23 19:29:20 2010 +0300 @@ -22,10 +22,16 @@ - + Syntax not supported - + + Can only merge fragments of the same rank + + + Upstream @@ -36,11 +42,14 @@ - + Downstream + + Can only merge fragments of the same rank + @@ -68,7 +77,21 @@ - + + + + + + + + + + + + + + + diff -r 858432135449 -r d706e2bc01db bldsystemtools/sysdeftools/sysdefdowngrade.xsl --- a/bldsystemtools/sysdeftools/sysdefdowngrade.xsl Fri Jun 11 14:46:46 2010 +0300 +++ b/bldsystemtools/sysdeftools/sysdefdowngrade.xsl Wed Jun 23 19:29:20 2010 +0300 @@ -106,6 +106,7 @@ + @@ -124,9 +125,31 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + + @@ -211,7 +234,11 @@ - + + / + + + @@ -241,6 +268,15 @@ + + + + + + + + + diff -r 858432135449 -r d706e2bc01db bldsystemtools/sysdeftools/validate/checklinks.pl --- a/bldsystemtools/sysdeftools/validate/checklinks.pl Fri Jun 11 14:46:46 2010 +0300 +++ b/bldsystemtools/sysdeftools/validate/checklinks.pl Wed Jun 23 19:29:20 2010 +0300 @@ -1,4 +1,4 @@ -# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). # All rights reserved. # This component and the accompanying materials are made available # under the terms of "Eclipse Public License v1.0" @@ -12,97 +12,524 @@ # # Description: # Script to validate the unit links in a system definition or package definition XML file +#!/usr/bin/perl use strict; -if (! scalar @ARGV) {&help()} + +use FindBin; # for FindBin::Bin +use lib $FindBin::Bin; +use lib "$FindBin::Bin/lib"; + +use Cwd; +use Cwd 'abs_path'; +use Getopt::Long; +use File::Basename; +use File::Spec; +use XML::DOM; + +my $output; +my $path; +my %defineParams; +my %defines; +my $defaultns = 'http://www.symbian.org/system-definition'; # needed if no DTD +my $realloc; + +# need to add options for controlling which metas are filtered out and which are included inline +GetOptions + ( + 'path=s' => $path, + 'effective-sysdef=s' => \$realloc + ); + +# -path specifies the full system-model path to the file which is being processed. +# This must be an absolute path if you're processing a root sysdef. +# If processing a pkgdef file, you can use "./package_definition.xml" to leave all links relative. Though I can't really see the use case for this. + + +# if config is not set, no confguration will be done. +# If it is set, all configuration metadata will be processed and stripped from the output, even if the confguration data is empty + + if($path eq '') {$path = '/os/deviceplatformrelease/foundation_system/system_model/system_definition.xml'} + +($#ARGV == -1 ) && &help(); +my $sysdef = &abspath(shift); # resolve the location of the root sysdef + +$realloc = $realloc || $sysdef; + +my %unitmap; +my @p1=reverse(split(/[\\\/]/,$path)); +my @p2=reverse(split(/[\\\/]/,$realloc)); + +shift(@p1);shift(@p2); # don't care abt file name +while(lc($p1[0]) eq lc($p2[0])) {shift(@p1);shift(@p2)} + +$unitmap{join('/',reverse(@p1))} = join("/",reverse(@p2)); + +my @p1=reverse(split(/[\\\/]/,$sysdef)); +my @p2=reverse(split(/[\\\/]/,$realloc)); + +shift(@p1);shift(@p2); # don't care abt file name +while(lc($p1[0]) eq lc($p2[0])) {shift(@p1);shift(@p2)} + +$unitmap{join('/',reverse(@p1))} = join("/",reverse(@p2)); + + +# rootmap is a mapping from the filesystem to the paths in the doc +my %rootmap = &rootMap($path,$sysdef); +my %nsmap; +my %urimap; + +my $parser = new XML::DOM::Parser; +my $sysdefdoc = $parser->parsefile ($sysdef); + + +my $maxschema = $sysdefdoc->getDocumentElement()->getAttribute('schema'); # don't check value, just store it. + +my $docroot = $sysdefdoc->getDocumentElement; + +my $ns = $docroot->getAttribute('id-namespace'); +if(!$ns && $nsmap{''}) + { + $docroot->setAttribute('id-namespace',$nsmap{''}); + } + +$docroot->setAttribute('schema',$maxschema); # output has the largest syntax version of all includes + + +while(my($pre,$uri) = each(%nsmap)) + { + $pre ne '' || next ; + $docroot->setAttribute("xmlns:$pre",$uri); + } + +&walk($sysdef,$docroot); # process the XML + + +sub abspath + { # normalize the path into an absolute one + my ($name,$path) = fileparse($_[0]); + $path=~tr,\\,/,; + if( -e $path) + { + return abs_path($path)."/$name"; + } + my @dir = split('/',$_[0]); + my @new; + foreach my $d (@dir) + { + if($d eq '.') {next} + if($d eq '..') + { + pop(@new); + next; + } + push(@new,$d) + } + return join('/',@new); + } + +sub rootMap { + my @pathdirs = split(/\//,$_[0]); + my @rootdirs = split(/\//,$_[1]); + + while(lc($rootdirs[$#rootdirs]) eq lc($pathdirs[$#pathdirs]) ) + { + pop(@rootdirs); + pop(@pathdirs); + } + return (join('/',@rootdirs) => join('/',@pathdirs) ); + } + +sub rootMapMeta { + # find all the explict path mapping from the link-mapping metadata + my $node = shift; + foreach my $child (@{$node->getChildNodes}) + { + if ($child->getNodeType==1 && $child->getTagName eq 'map-prefix') + { + my $from = $child->getAttribute('link'); + my $to = $child->getAttribute('to'); # optional, but blank if not set + $rootmap{$from} = $to; + } + } + # once this is processed we have no more need for it. Remove from output + $node->getParentNode->removeChild($node); + } -my $debug = 0; -my $skipfilter; # skip anything with a named filter -my $xslt = "../../../buildtools/bldsystemtools/buildsystemtools/joinsysdef.xsl"; -my $xalan = "../../../buildtools/devlib/devlibhelp/tools/doc_tree/lib/apache/xalan.jar"; -my $sysdef = shift; -while($sysdef=~/^-/) { #arguments - if($sysdef eq '-nofilter') {$skipfilter = shift} - elsif($sysdef eq '-v') {$debug = 1} - else { &help("Invalid command line option $sysdef")} - $sysdef = shift; -} -my $dir = $sysdef; -$dir =~ s,[^\\/]+$,,; -my $root="../../../.."; - my $full; - -if($sysdef=~/system_definition\.xml/) { # if running on a sysdef, ensure it's joined before continuing - ($full = `java -jar $dir$xalan -in $sysdef -xsl $dir$xslt`) || die "bad XML syntax"; -}else { # assume any other file has no hrefs to include (valid by convention) - $root=''; - open S, $sysdef; - $full=join('',); - close S; -} -$full=~s///sg; # remove all comments; -my $count=1; +sub walk + { # walk through the doc, resolving all links + my $file = shift; + my $node = shift; + my $type = $node->getNodeType; + if($type!=1) {return} + my $tag = $node->getTagName; + if($tag=~/^(layer|package|collection|component)$/ ) + { + my $link= $node->getAttribute('href'); + if($link) + { + my $file = &resolvePath($file,$link); + if(-e $file) + { + &combineLink($node,$file); + } + else + { + print "Note: $file not found\n"; + $node->removeAttribute('href'); + } + return; + } + } + elsif($tag=~/^(SystemDefinition|systemModel)$/ ) + { + } + elsif($tag eq 'unit') + { + my %at = &atts($node); + my $pro; + foreach my $o (keys(%at)) + { + if($o eq 'proFile' || $o=~/:proFile$/) + { + $pro = $at{$o}; + last; + } + } + my $filter=$node->getParentNode()->getAttribute('filter'); + if($filter ne '' && $at{'filter'}) {$filter.=','.$at{'filter'}} + elsif($at{'filter'}) {$filter=$at{'filter'}} + if($filter ne '') {$filter="\t($filter)"} + foreach my $atr ('bldFile','mrp','base') + { + my $ext; + my $link= $at{$atr}; + if($atr eq 'bldFile') { + $ext = ($pro ne '') ? "/$pro" : '/bld.inf' + } + if($link ne '') + { + my $ok = 0; + my $trylink; + if($link && !($link=~/^\//)) + { + $link= &abspath(File::Basename::dirname($file)."/$link"); + $ok = (-e "$link$ext"); + if(!$ok) + { + foreach my $a (keys %rootmap) + { + $link=~s,^$a,$rootmap{$a},ie; + # remove leading ./ which is used to indicate that paths should remain relative + $link=~s,^\./([^/]),$1,; + } -my $filter = ''; -foreach (split(/getAttribute('rel') || 'Generic'; + my $link= $node->getAttribute('href'); + $link=~s,^file://(/([a-z]:/))?,$2,; # convert file URI to absolute path + if ($link ne '' ) + { + if($link=~/^[\/]+:/) + { + print "Note: Remote URL $link not validated\n"; + next; # do not alter children + } + if(! ($link=~/^\//)) + { + $link= &abspath(File::Basename::dirname($file)."/$link"); + } + if(! -e $link) + { + if(! -e &realPath($link)) { + print "Warning: Local metadata file not found: $link\n"; + } + next; # do not alter children + } + } + if($node->getAttribute('rel') eq 'link-mapping') + {# need to process this now + &rootMapMeta($node); + } + return; + } + else {return} + my $checkversion=0; + foreach my $item (@{$node->getChildNodes}) + { + #print $item->getNodeType,"\n"; + &walk($file,$item); + } + + + } - elsif(s/^unit//) { - my $f=",$filter,"; # commas are the separators - safe to have extra ones for testing - if(/filter="([^"]+)"/) {$f.=",$1,"} - if($skipfilter ne '' && $f=~/,$filter,/) {next} # don't test anything with s60 filter - if(/\smrp="(.*?)"/) { - my $file = &fileLocation($1); - if($debug) {print "MRP ",-s $file," $file\n"} # debug code - if(!(-s $file)){ - print STDERR "$count: Cannot find MRP file $file\n"; - $found=1; + + +sub realPath + { + my $link = shift; + foreach my $a (keys %unitmap) + { + if($a eq substr($link,0,length($a))) + { + my $trylink = $unitmap{$a}.substr($link,length($a)); + if(-e $trylink) {return $trylink} } } - if(/\sbldFile="(.*?)"/) { - my $file = &fileLocation("$1/bld.inf"); - if($debug) {print "Bld ",-s $file ," $file\n"} # debug code - if(!(-s $file) ){ - print STDERR "$count: Cannot find bld.inf file $file\n"; - $found=1; + } + +sub combineLink + { + # combine data from linked sysdef fragment w/ equivalent element in parent document + my $node = shift; + my $file = shift; + my $getfromfile = &localfile($file); + $getfromfile eq '' && return; # already raised warning, no need to repeat + my $doc = $parser->parsefile ($getfromfile); + my $item =&firstElement($doc->getDocumentElement); + $item || die "badly formatted $file"; + &fixIDs($item); + my %up = &atts($node); + my %down = &atts($item); + $up{'id'} eq $down{'id'} || die "$up{id} differs from $down{id}"; + $node->removeAttribute('href'); + foreach my $v (keys %up) {delete $down{$v}} + foreach my $v (keys %down) + { + $node->setAttribute($v,$down{$v}) + } + foreach my $child (@{$item->getChildNodes}) + { + ©Into($node,$child); + } + &walk($file,$node); + } + + +sub copyInto + { + # make a deep copy the node (2nd arg) into the element (1st arg) + my $parent=shift; + my $item = shift; + my $doc = $parent->getOwnerDocument; + my $type = $item->getNodeType; + my $new; + if($type==1) + { + &fixIDs($item); + $new = $doc->createElement($item->getTagName); + my %down = &atts($item); + foreach my $ordered ('id','name','bldFile','mrp','level','levels','introduced','deprecated','filter') + { + if($down{$ordered}) + { + $new->setAttribute($ordered,$down{$ordered}); + delete $down{$ordered} + } + } + while(my($a,$b) = each(%down)) + { + $new->setAttribute($a,$b); + } + foreach my $child (@{$item->getChildNodes}) + { + ©Into($new,$child); } } - if(/\sbase="(.*?)"/) { - my $file = &fileLocation($1); - if($debug) {print "Base $file\n"} # debug code - if(!(-d $file) ){ - print STDERR "$count: Cannot find base dir $file\n"; - $found=1; - } + elsif($type==3) + { + $new = $doc->createTextNode ($item->getData); + } + elsif($type==8) + { + $new = $doc->createComment ($item->getData); + } + if($new) + { + $parent->appendChild($new); } - } - $count+=$found; + } + +sub getNs + { + # find the namespace URI that applies to the specified prefix. + my $node = shift; + my $pre = shift; + my $uri = $node->getAttribute("xmlns:$pre"); + if($uri) {return $uri} + my $parent = $node->getParentNode; + if($parent && $parent->getNodeType==1) + { + return getNs($parent,$pre); + } + } + + +sub fixIDs + { + # translate the ID to use the root doc's namespaces + my $node = shift; + foreach my $id ('id','before') + { + &fixID($node,$id); + } } -exit $count; +sub fixID + { + # translate the ID to use the root doc's namespaces + my $node = shift; + my $attr = shift || 'id'; + my $id = $node->getAttribute($attr); + if($id eq '') {return} + my $ns; + if($id=~s/^(.*)://) + { # it's got a ns, find out what it is + my $pre = $1; + $ns=&getNs($node,$pre); + } + else + { + $ns = $node->getOwnerDocument->getDocumentElement->getAttribute("id-namespace") || + $defaultns; + } + $ns = $urimap{$ns}; + $id = ($ns eq '') ? $id : "$ns:$id"; + return $node->setAttribute($attr,$id); +} -sub fileLocation { - my $file = "$dir$root$_[0]"; - $file=~tr/\//\\/; - while($file=~s/\\[^\\.]+\\\.\.\\/\\/){} - return $file; +sub firstElement { + # return the first element in this node + my $node = shift; + foreach my $item (@{$node->getChildNodes}) { + if($item->getNodeType==1) {return $item} + } +} + + +sub atts { + # return a hash of all attribtues defined for this element + my $node = shift; + my %at = $node->getAttributes; + my %list; + foreach my $a (keys %{$node->getAttributes}) + { + if($a ne '') + { + $list{$a} = $node->getAttribute ($a); + } + } + return %list; } -sub help { - print "$0: ",($_[0] eq '' ? "syntax" : $_[0]); - print "\nSyntax: [-v] [-nofilter filter] system_definition.xml -Validate the unit links in a system definition or package definition XML -file. This only prints errors in the files. If it exits silently, the links -are all valid. - Call with -nos60 filter to skip checking presence of fitler=\"s60\" units - Requires system definition files to be in the standard location - in deviceplatformrelease, - and the presence of joinsysdef.xsl and xalan.jar in their expected - locations. - Package definition files can be anywhere."; -exit 1; -} + + +sub ns + { + # return a hash of ns prefix and uri -- the xmlns: part is stripped off + my $node = shift; + my %list; + foreach my $a (keys %{$node->getAttributes}) + { + my $pre = $a; + if($pre=~s/^xmlns://) + { + $list{$pre} = $node->getAttribute ($a); + } + } + return %list; + } + + +sub resolvePath + { + # return full path to 2nd arg relative to first (path or absolute URI) + my $base = shift; + my $path = shift; + if($path=~m,^/,) {return $path } # path is absolute, but has no drive. Let OS deal with it. + if($path=~s,^file:///([a-zA-Z]:/),$1,) {return $path } # file URI with drive letter + if($path=~m,^file://,) {return $path } # file URI with no drive letter (unit-style). Just pass on as is with leading / and let OS deal with it + if($path=~m,^[a-z0-9][a-z0-9]+:,i) {return $path } # absolute URI -- no idea how to handle, so just return + return &abspath(File::Basename::dirname($base)."/$path"); + } + + +sub resolveURI + { + # return full path to 2nd arg relative to first (path or absolute URI) + my $base = shift; + my $path = shift; + if($path=~m,[a-z0-9][a-z0-9]+:,i) {return $path } # absolute URI -- just return + if($path=~m,^/,) {return $path } # path is absolute, but has no drive. Let OS deal with it. + return &abspath(File::Basename::dirname($base)."/$path"); + } + +sub localfile + { + my $file = shift; + if($file=~s,file:///([a-zA-Z]:/),$1,) {return $file } # file URI with drive letter + if($file=~m,file://,) {return $file } # file URI with no drive letter (unit-style). Just pass on as is with leading / and let OS deal with it + if($file=~m,^([a-z0-9][a-z0-9]+):,i) + { + print "ERROR: $1 scheme not supported\n"; + return; # return empty string if not supported. + } + return $file + } + + + + + +sub help + { + my $name= $0; $name=~s,^.*[\\/],,; +my $text; +format STDERR = + ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + $text, + ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<~~ + $text +. +print STDERR "usage: $name [options...] sysdef\n valid options are:\n\n"; + foreach ( + "-path [sm-path]\tspecifies the full system-model path to the file which is being processed. By default this is \"/os/deviceplatformrelease/foundation_system/system_model/system_definition.xml\"", + " This must be an absolute path if you're processing a root sysdef.", + " If processing a pkgdef file, you can use \"./package_definition.xml\" to leave all links relative.", + "effective-sysdef [local-file]\tspecifies another local filesystem location the sysdef should be considered when resolving linked metas and unit paths, but not system model item hrefs. This is mainly used for testing system-wide changes to pkgdefs since it allows the pkgdefs to exist in a separate location to the rest of the codeline" + ) { + $text = $_; + write STDERR; + print STDERR "\n"; + } + + exit(1); + } + + + diff -r 858432135449 -r d706e2bc01db bldsystemtools/sysdeftools/validate/test-model.xsl --- a/bldsystemtools/sysdeftools/validate/test-model.xsl Fri Jun 11 14:46:46 2010 +0300 +++ b/bldsystemtools/sysdeftools/validate/test-model.xsl Wed Jun 23 19:29:20 2010 +0300 @@ -2,7 +2,7 @@ + @@ -291,8 +308,63 @@ + + + / + + + + + path "" should not end in / + + + path "" must use only forward slashes + + + + + + + + + + + + + + + + // + / + + + + + + / + + + + + + // + + + Unexpected path for -> : "" + + + + + + + + path "" should not end in / + + + path "" must use only forward slashes + @@ -330,33 +402,26 @@ - Unexpected path for -> "" + Unexpected path for -> : "" - Unexpected path for -> "" + Unexpected path for -> : "" - Unexpected path for -> "" + Unexpected path for -> : "" - Unexpected path for -> "" + Unexpected path for -> : "" - - path "" should not end in / - - - path "" must use only forward slashes - - diff -r 858432135449 -r d706e2bc01db package_definition.xml --- a/package_definition.xml Fri Jun 11 14:46:46 2010 +0300 +++ b/package_definition.xml Wed Jun 23 19:29:20 2010 +0300 @@ -5,21 +5,10 @@ - - - - - - - - - - - @@ -27,15 +16,6 @@ - - - - - - - - - @@ -44,7 +24,7 @@ - + diff -r 858432135449 -r d706e2bc01db toolsandutils/e32tools/elf2e32/include/h_ver.h --- a/toolsandutils/e32tools/elf2e32/include/h_ver.h Fri Jun 11 14:46:46 2010 +0300 +++ b/toolsandutils/e32tools/elf2e32/include/h_ver.h Wed Jun 23 19:29:20 2010 +0300 @@ -18,7 +18,7 @@ const TInt MajorVersion=2; const TInt MinorVersion=1; -const TInt Build=15; +const TInt Build=16; #endif diff -r 858432135449 -r d706e2bc01db toolsandutils/e32tools/elf2e32/source/parametermanager.cpp --- a/toolsandutils/e32tools/elf2e32/source/parametermanager.cpp Fri Jun 11 14:46:46 2010 +0300 +++ b/toolsandutils/e32tools/elf2e32/source/parametermanager.cpp Wed Jun 23 19:29:20 2010 +0300 @@ -25,6 +25,7 @@ #include "parametermanager.h" #include "errorhandler.h" #include +#include #include "h_utl.h" #include "h_ver.h" diff -r 858432135449 -r d706e2bc01db toolsandutils/e32tools/group/release.txt --- a/toolsandutils/e32tools/group/release.txt Fri Jun 11 14:46:46 2010 +0300 +++ b/toolsandutils/e32tools/group/release.txt Wed Jun 23 19:29:20 2010 +0300 @@ -1,3 +1,13 @@ +Version 2.1.16 (elf2e32) +=============== +Made by Lorence Wang 29/04/2010 + 1. DEF145126 elf2e32 has compilation errors when buid with Gcc4.4 and STLport 5.2.1 + +Version 2.2.1 +=============== +Made by Zheng Shen 02/03/2010 + 1. DEF144676 ELFTRAN'd give info in the illegal import of data message to allow debugging + Version is unchanged =============== Made by Zheng Shen 24/08/2009