* The generated text file adheres to the SRAS software manifest format.

Signed-off-by: Jacob Stiffler <[email protected]>
---
 meta-arago-distro/classes/tisdk-image.bbclass |  243 +++++++++++++++++++++----
 1 file changed, 208 insertions(+), 35 deletions(-)

diff --git a/meta-arago-distro/classes/tisdk-image.bbclass 
b/meta-arago-distro/classes/tisdk-image.bbclass
index 747670f..9498f6c 100644
--- a/meta-arago-distro/classes/tisdk-image.bbclass
+++ b/meta-arago-distro/classes/tisdk-image.bbclass
@@ -57,6 +57,7 @@ DEPLOY_SPL_UART_NAME ?= "u-boot-spl.bin-${MACHINE}"
 # This manifest follows the TI manifest format requirements which is why
 # it differs from some of the default manifest code in oe-core.
 SW_MANIFEST_FILE ?= "${IMAGE_ROOTFS}/docs/software_manifest.htm"
+SW_MANIFEST_TEXT ?= "${IMAGE_ROOTFS}/docs/software_manifest.txt"
 
 # helper function for generating a set of strings based on a list.  Taken
 # from the image.bbclass.
@@ -145,21 +146,17 @@ Any use of ECCNs listed in the Manifest is at the user's 
risk and without recour
 
 <h2><u>Links in the Manifest</u></h2>
 <p>
-Any links appearing on this Manifest (for example in the &ldquo;Obtained 
from&rdquo field) were verified at the time the Manifest was created.  TI makes 
no guarantee that any listed links will remain active in the future.
+Any links appearing on this Manifest (for example in the &ldquo;Obtained 
from&rdquo; field) were verified at the time the Manifest was created.  TI 
makes no guarantee that any listed links will remain active in the future.
 </p>
 
 <h2><u>Open Source License References</u></h2>
 <p>
-Your company is responsible for confirming the applicable license terms for 
any open source Software listed in this Manifest that was not &ldquo;Obtained 
from&rdquo TI.  Any open source license specified in this Manifest for Sotware 
that was not &ldquo;Obtained from&rdquo TI is for TI's internal use only and 
shall not be construed as a representation of warranty regarding the proper 
open source license terms for such Software.
+Your company is responsible for confirming the applicable license terms for 
any open source Software listed in this Manifest that was not &ldquo;Obtained 
from&rdquo; TI.  Any open source license specified in this Manifest for Sotware 
that was not &ldquo;Obtained from&rdquo; TI is for TI's internal use only and 
shall not be construed as a representation of warranty regarding the proper 
open source license terms for such Software.
 </p>
 
 <h2><b>Export Information</b></h2>
 <p>
-ECCN for Software included in this release: 5D002 License Exception TSU
-</p>
-
-<p>
-ECCN for Technology (e.g., user documentation, specifications) included in 
this release: 5D002 License Exception TSU
+ECCN for Software included in this release: 5D991 (Telecom Software) 
 </p>
 
 <h2><b>Manifest</b></h2>
@@ -167,6 +164,62 @@ ECCN for Technology (e.g., user documentation, 
specifications) included in this
 See Legend above for a description of the columns and possible values.
 </p>
 " > ${SW_MANIFEST_FILE}
+
+cat > ${SW_MANIFEST_TEXT} << 'EOF'
+<--
+Manifest template 1.0  
+
+This template is used to generate an unloadable manifest to the SRAS. To do 
so, save the document as a plain text file (Save As .txt). Do not change any 
options on the save which means leave the default as Windows Default Encoding. 
The SRAS will generate a nice looking HTML manifest for you.
+
+Instructions:
+
+ 1.   Text in blue should not be edited or removed. It will NOT appear on your 
manifest.
+ 2.   DO NOT color outside the lines in the manifest.  There are specific 
blocks where you enter information. Information 
+       should only be entered in the sections below and not outside of them.
+ 3.   DO NOT use the < or > symbols in your manifest table or in your 
footnotes.
+ 4.   Please REFRAIN from using Word specific formatting when filling in the 
table. Examples are things like superscripts,
+      subscripts, etc. We are unable to understand those.
+ 5.   Auto correction is not your friend in word. Please turn it off. It 
should be disabled already in this template.
+
+Table Instructions:
+
+Define what you are delivering by filling in the table below. Tables start 
with the start keyword <table> end with the end keyword, </table> and may also 
contain footnotes specific to that table.  
+
+You can have as many .Public. tables as you like in your manifest and can name 
them.  You can have one and only one .Private. table. To create additional 
tables copy everything starting with <table> down to </table> and then paste it 
after the table below.
+
+The field .attribute =. can be set to Public (the default) or Private to 
define the type of table it is. If the table is Public then everything in the 
table will appear on your manifest. If the table is Private then none of the 
entries will appear on your manifest but they will be stored in the SRAS. 
Private tables are useful for documenting third party code, that requires Legal 
review, but does not need to be acknowledged on the manifest you ship; e.g. it 
may be covered by our TI license.
+
+The field .name = . is used to put a heading over the table on the manifest 
you ship.
+
+The field .description =. is used to put a description under the Table name on 
the manifest you ship.
+
+To learn how to document software in the table read the instructions here. A 
brief explanation of the table columns follows.
+License Type - If its an SPDX defined license use their short name identifier. 
You can see a list here: http://spdx.org/licenses/ . If it.s not on the list 
and not a commercial or TSPA  license then use the application name as the 
license.
+
+Delivered As - This field will either be .Source., .Binary. or .Source and 
Binary. and is the form the content of the Software is delivered in.  If the 
Software is delivered in an archive format, this field applies to the contents 
of the archive. If the word Limited is used with Source, as in .Limited Source. 
or .Limited Source and Binary. then only portions of the Source for the 
application are provided.
+
+Modified by TI - This field will either be .Yes. or .No.. A .Yes. means TI has 
made changes to the Software. A .No. means TI has not made any changes. Note: 
This field is not applicable for Software .Obtained from. TI.
+
+Location - The directory name and path on the media, e.g. drive, (or in an 
archive) where the Software is located after installing or extracting. 
+
+Obtained From - This field specifies from where or from whom TI obtained the 
Software. It may be a URL to an Open Source site, a 3rd party licensor, or TI 
(if TI developed the software). If this field contains a link to Open Source 
software, the date TI downloaded the Software is also recorded. See Links 
Disclaimer in the Disclaimers Section.
+-->
+
+<directives>
+Version = .1.0.
+Sep = .|.
+Tool=.Word.
+</directives>
+
+<-- ** Do not edit or remove anything above this line **   
+-->
+
+<--  
+Instructions: DO NOT Alter the column headings below. This is now a single row 
table as opposed to the older manifests which used merged rows. The order is 
extremely important; if you change the order or add or remove a column the 
upload will not work.
+-->
+
+EOF
+
 }
 
 sw_manifest_footer() {
@@ -212,27 +265,107 @@ echo "
 </html>
 
 " >> ${SW_MANIFEST_FILE}
+
+
+cat >> ${SW_MANIFEST_TEXT} << 'EOF'
+<Credits>
+
+</credits>
+
+<Licenses>
+
+Licenses can be found in the "docs/licenses" directory of the SDK install 
directory
+GCC RUNTIME LIBRARY EXCEPTION
+
+Version 3.1, 31 March 2009
+
+Copyright © 2009 Free Software Foundation, Inc. http://fsf.org/
+
+Everyone is permitted to copy and distribute verbatim copies of this license 
document, but changing it is not allowed.
+
+This GCC Runtime Library Exception (Exception) is an additional permission 
under section 7 of the GNU General Public License, version 3 (GPLv3). It 
applies to a given file (the Runtime Library) that bears a notice placed by the 
copyright holder of the file stating that the file is governed by GPLv3 along 
with this Exception.
+
+When you use GCC to compile a program, GCC may combine portions of certain GCC 
header files and runtime libraries with the compiled program. The purpose of 
this Exception is to allow compilation of non-GPL (including proprietary) 
programs to use, in this way, the header files and runtime libraries covered by 
this Exception.
+0. Definitions.
+
+A file is an Independent Module if it either requires the Runtime Library for 
execution after a Compilation Process, or makes use of an interface provided by 
the Runtime Library, but is not otherwise based on the Runtime Library.
+
+GCC means a version of the GNU Compiler Collection, with or without 
modifications, governed by version 3 (or a specified later version) of the GNU 
General Public License (GPL) with the option of using any subsequent versions 
published by the FSF.
+
+GPL-compatible Software is software whose conditions of propagation, 
modification and use would permit combination with GCC in accord with the 
license of GCC.
+
+GPL-compatible Software is software whose conditions of propagation, 
modification and use would permit combination with GCC in accord with the 
license of GCC.
+
+The Compilation Process transforms code entirely represented in 
non-intermediate languages designed for human-written code, and/or in Java 
Virtual Machine byte code, into Target Code. Thus, for example, use of source 
code generators and preprocessors need not be considered part of the 
Compilation Process, since the Compilation Process can be understood as 
starting with the output of the generators or preprocessors.
+
+A Compilation Process is Eligible if it is done using GCC, alone or with other 
GPL-compatible software, or if it is done without using any work based on GCC. 
For example, using non-GPL-compatible Software to optimize any GCC intermediate 
representations would not qualify as an Eligible Compilation Process.
+1. Grant of Additional Permission.
+
+You have permission to propagate a work of Target Code formed by combining the 
Runtime Library with Independent Modules, even if such propagation would 
otherwise violate the terms of GPLv3, provided that all Target Code was 
generated by Eligible Compilation Processes. You may then convey such a 
combination under terms of your choice, consistent with the licensing of the 
Independent Modules.
+2. No Weakening of GCC Copyleft.
+
+The availability of this Exception does not imply any general presumption that 
third-party software is unaffected by the copyleft requirements of the license 
of GCC.
+
+</licenses>
+EOF
+
+}
+
+sw_manifest_table_header() {
+    echo "
+<h2><u>$1</u></h2>
+<p>$2</p>
+" >> ${SW_MANIFEST_FILE}
+
+    cat >> ${SW_MANIFEST_TEXT} << EOF
+<table>
+<thead>
+attribute = "Public"
+name = "$1"
+description = "$2"
+</thead>
+
+EOF
 }
 
+sw_manifest_table_footer() {
+    if [ ! -z $1 ]; then
+        cat >> ${SW_MANIFEST_TEXT} << EOF
+<Footnotes>
+$1
+</footnotes>
+EOF
+    fi
+    cat >> ${SW_MANIFEST_TEXT} << EOF
+</table>
+
+EOF
+}
 # Create the host side toolchain components table
 sw_manifest_toolchain_host() {
     
opkg_dir="${IMAGE_ROOTFS}/${TISDK_TOOLCHAIN_PATH}/sysroots/i686-*-linux/var/lib/opkg"
 
-echo "
-<h2><u>GPLv3 Development Host Content</u></h2>
-<p>This table describes any GPLv3 software being delivered that is expected to 
run on a Development Host, instead of the target device.</p>
-" >> ${SW_MANIFEST_FILE}
+    sw_manifest_table_header "GPLv3 Development Host Content" "This table 
describes any GPLv3 software being delivered that is expected to run on a 
Development Host, instead of the target device."
+
+#echo "
+#<h2><u>GPLv3 Development Host Content</u></h2>
+#<p>This table describes any GPLv3 software being delivered that is expected 
to run on a Development Host, instead of the target device.</p>
+#" >> ${SW_MANIFEST_FILE}
 
     generate_sw_manifest_table $opkg_dir "true"
 
+    sw_manifest_table_footer
 
-echo "
-<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>
-" >> ${SW_MANIFEST_FILE}
+    sw_manifest_table_header "Development Host Content" "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."
+
+#echo "
+#<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>
+#" >> ${SW_MANIFEST_FILE}
 
     generate_sw_manifest_table $opkg_dir
 
+    sw_manifest_table_footer
 }
 
 # Create the target side toolchain components table.  These are components on
@@ -240,33 +373,45 @@ echo "
 sw_manifest_toolchain_target() {
     
opkg_dir="${IMAGE_ROOTFS}/${TISDK_TOOLCHAIN_PATH}/sysroots/*-oe-linux-gnueabi*/var/lib/opkg/info"
 
-echo "
-<h2><u>GPLv3 Development Libraries Installed on Host</u></h2>
-<p>This table describes GPLv3 software libraries and headers that are 
installed on the development host and used during the development of software 
to run on the target. Customers should be careful when linking against these 
libraries to make sure they are complying with the license(s) of the library</p>
-" >> ${SW_MANIFEST_FILE}
+    sw_manifest_table_header "GPLv3 Development Libraries Installed on Host" 
"This table describes GPLv3 software libraries and headers that are installed 
on the development host and used during the development of software to run on 
the target. Customers should be careful when linking against these libraries to 
make sure they are complying with the license(s) of the library"
+
+#echo "
+#<h2><u>GPLv3 Development Libraries Installed on Host</u></h2>
+#<p>This table describes GPLv3 software libraries and headers that are 
installed on the development host and used during the development of software 
to run on the target. Customers should be careful when linking against these 
libraries to make sure they are complying with the license(s) of the library</p>
+#" >> ${SW_MANIFEST_FILE}
 
     generate_sw_manifest_table $opkg_dir "true"
 
-echo "
-<h2><u>Development Libraries Installed on Host</u></h2>
-<p>This table describes software libraries and headers that are installed on 
the development host and used during the development of software to run on the 
target.  Some of this software may be licensed under GPLv3.  Customers should 
be careful when linking against these libraries to make sure they are complying 
with the license(s) of the library</p>
-" >> ${SW_MANIFEST_FILE}
+    sw_manifest_table_footer
+
+    sw_manifest_table_header "Development Libraries Installed on Host" "This 
table describes software libraries and headers that are installed on the 
development host and used during the development of software to run on the 
target.  Some of this software may be licensed under GPLv3.  Customers should 
be careful when linking against these libraries to make sure they are complying 
with the license(s) of the library"
+
+#echo "
+#<h2><u>Development Libraries Installed on Host</u></h2>
+#<p>This table describes software libraries and headers that are installed on 
the development host and used during the development of software to run on the 
target.  Some of this software may be licensed under GPLv3.  Customers should 
be careful when linking against these libraries to make sure they are complying 
with the license(s) of the library</p>
+#" >> ${SW_MANIFEST_FILE}
 
     generate_sw_manifest_table $opkg_dir
+
+    sw_manifest_table_footer
 }
 
 # Create the table of GPLv3 components found in the target file system
 sw_manifest_target_gplv3() {
     opkg_dir="$1"
 
-echo "
-<h2><u>GPLv3 Target Device Content</u></h2>
+    sw_manifest_table_header "GPLv3 Target Device Content" "This table 
describes any GPLv3 software being delivered that is expected to run on the 
target device."
 
-<p>This table describes any GPLv3 software being delivered that is expected to 
run on the target device.</p>
+#echo "
+#<h2><u>GPLv3 Target Device Content</u></h2>
 
-" >> ${SW_MANIFEST_FILE}
+#<p>This table describes any GPLv3 software being delivered that is expected 
to run on the target device.</p>
+#
+#" >> ${SW_MANIFEST_FILE}
 
     generate_sw_manifest_table $opkg_dir "true"
+
+    sw_manifest_table_footer
 }
 
 # Generate the full target file system components table.
@@ -291,31 +436,38 @@ sw_manifest_target() {
 
     sw_manifest_target_gplv3 $opkg_dir
 
-echo "
-<h2><u>All Target Device Content</u></h2>
+    sw_manifest_table_header "All Target Device Content" "This table describes 
any software being delivered that is expected to run on the target device."
 
-<p>This table describes any software being delivered that is expected to run 
on the target device.</p>
+#echo "
+#<h2><u>All Target Device Content</u></h2>
 
-" >> ${SW_MANIFEST_FILE}
+#<p>This table describes any software being delivered that is expected to run 
on the target device.</p>
+
+#" >> ${SW_MANIFEST_FILE}
 
     generate_sw_manifest_table $opkg_dir
 
+    sw_manifest_table_footer
     # Remove the temporary var directory that was extracted
     rm -rf ${IMAGE_ROOTFS}/filesystem/var
 }
 
 # Create the table of host components installed.
 sw_manifest_host() {
-echo "
-<h2><u>Additional Development Host Content</u></h2>
+    sw_manifest_table_header "Additional Development Host Content" "This table 
describes software that is installed on the development host but is not part of 
the linux-devkit package.  This is usually software example sources or tools 
such a flash utilities."
 
-<p>This table describes software that is installed on the development host but 
is not part of the linux-devkit package.  This is usually software example 
sources or tools such a flash utilities.</p>
+#echo "
+#<h2><u>Additional Development Host Content</u></h2>
 
-" >> ${SW_MANIFEST_FILE}
+#<p>This table describes software that is installed on the development host 
but is not part of the linux-devkit package.  This is usually software example 
sources or tools such a flash utilities.</p>
+
+#" >> ${SW_MANIFEST_FILE}
 
     opkg_dir="${IMAGE_ROOTFS}/var/lib/opkg/info"
 
     generate_sw_manifest_table $opkg_dir
+
+    sw_manifest_table_footer
 }
 
 # This function expects to be passed the following parameter
@@ -353,6 +505,18 @@ echo "
 </tr>
 " >> ${SW_MANIFEST_FILE}
 
+cat >> ${SW_MANIFEST_TEXT} << EOF
+<tbody>
+<!-- Software Name
+| Version
+| License Type
+| Delivered As
+| Modified by TI
+| Location
+| Obtained from -->
+
+EOF
+
     control_files_there=0
     for possible_control_file in $control_dir/*.control
     do
@@ -474,9 +638,18 @@ echo "
 </tr>
 " >> ${SW_MANIFEST_FILE}
 
+cat >> ${SW_MANIFEST_TEXT} << EOF
+| ${package} | ${version} | ${license/\|/\&} | ${delivered_as} | ${modified} | 
${location} | ${source} 
+EOF
     done
 
     echo "</table><br><br>" >> ${SW_MANIFEST_FILE}
+
+cat >> ${SW_MANIFEST_TEXT} << EOF
+</tbody>
+
+EOF
+
 }
 
 # Generate the TI SW Manifest for the SDK image
-- 
1.7.9.5

_______________________________________________
meta-arago mailing list
[email protected]
http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago

Reply via email to