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
