I don't have any issues with the patch, per se, but wouldn't the main logic to 
break up package index be better written in awk? :)


On Fri, Mar 13, 2015 at 10:47:28AM +0000, Stiffler, Jacob wrote:
> Ping. 
> 
> Anything preventing this from being committed? I have another patch on top 
> of this to also support the text format.
> 
> Thanks,
> Jake
> 
> -----Original Message-----
> From: Stiffler, Jacob 
> Sent: Monday, March 09, 2015 1:55 PM
> To: [email protected]
> Cc: Stiffler, Jacob
> Subject: [PATCH v3] tisdk-image: Fix manifest generation for nativesdk.
> 
> The software manifest is created by parsing the *.control files in the images 
> /var/lib/opkg directory. For the nativesdk sysroot, there are some cases 
> where the control files are not present. The reason for this and the specific 
> circumstances of when this occurs has not yet been root caused.
> 
> When this does happen, the "Development Host Content" tables of the manifest 
> are not valid. However, the package indexes are present. These contain all of 
> the information in the control files, only concatenated together in a large 
> file. This patch will split up these package indexes into individual control 
> files which will allow the previous parsing to produce a valid output.
> 
> Here is an example of the invalid output when the control files are not 
> present:
> 
> <h2><u>Development Host Content</u></h2> <p>This table describes any software 
> being delivered that is expected to run on a Development Host, instead of the 
> target device.  Some of this software may be licensed under GPLv3 but it is 
> not expected to be shipped as a product.</p>
> 
> <table border=1 cellspacing=1 cellpadding=1 width=80%> <tr bgcolor=#c0c0c0  
> color=white>
>     <td><b>Software Name</b></td>
>     <td><b>Version</b></td>
>     <td><b>License</b></td>
>     <td><b>Location</b></td>
>     <td><b>Delivered As</b></td>
>     <td><b>Modified by TI</b></td>
>     <td><b>Obtained from</b></td>
> </tr>
> 
> <tr>
>     <td> </td>
>     <td></td>
>     <td ></td>
>     <td>__.ipk</td>
>     <td>Binary</td>
>     <td>No</td>
>     <td></td>
> </tr>
> 
> Signed-off-by: Jacob Stiffler <[email protected]>
> ---
>  meta-arago-distro/classes/tisdk-image.bbclass |   37 
> +++++++++++++++++++++++++
>  1 file changed, 37 insertions(+)
> 
> diff --git a/meta-arago-distro/classes/tisdk-image.bbclass 
> b/meta-arago-distro/classes/tisdk-image.bbclass
> index 3030a38..747670f 100644
> --- a/meta-arago-distro/classes/tisdk-image.bbclass
> +++ b/meta-arago-distro/classes/tisdk-image.bbclass
> @@ -353,6 +353,43 @@ echo "
>  </tr>
>  " >> ${SW_MANIFEST_FILE}
>  
> +    control_files_there=0
> +    for possible_control_file in $control_dir/*.control
> +    do
> +        if [ -f $possible_control_file ]
> +        then
> +            control_files_there=1
> +            break
> +        fi
> +    done
> +
> +    if [ $control_files_there -eq 0 ]
> +    then
> +        for pkg_idx in $control_dir/oe*; do
> +            package_start=`grep -n "^Package" $pkg_idx || true`
> +
> +            IFS_OLD=${IFS}
> +            IFS="
> +"
> +
> +            for pkg in ${package_start}; do
> +                end=`echo $pkg | cut -d: -f1`
> +
> +                if [ -z $begin ]; then
> +                    pkg_name=`echo $pkg | cut -d: -f3`
> +                    begin=`echo $pkg | cut -d: -f1`
> +                    continue
> +                fi
> +                cnt=$[$cnt+1]
> +                head -n $[$end - 1] $pkg_idx | tail -n $[$end - $begin] 
> + > ${control_dir}/${pkg_name// /}.control
> +
> +                pkg_name=`echo $pkg | cut -d: -f3`
> +                begin=$end
> +            done
> +            IFS=${IFS_OLD}
> +        done
> +    fi
> +
>      for i in $control_dir/*.control
>      do
>          package="`cat $i | grep Package: | awk {'print $2'}`"
> --
> 1.7.9.5
> 
> _______________________________________________
> meta-arago mailing list
> [email protected]
> http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago
_______________________________________________
meta-arago mailing list
[email protected]
http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago

Reply via email to