All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] tisdk-image: Generate software manifest text file.
@ 2015-03-17 14:18 Jacob Stiffler
  2015-03-19 14:47 ` Stiffler, Jacob
  2015-03-20 23:38 ` Denys Dmytriyenko
  0 siblings, 2 replies; 3+ messages in thread
From: Jacob Stiffler @ 2015-03-17 14:18 UTC (permalink / raw)
  To: meta-arago

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

Signed-off-by: Jacob Stiffler <j-stiffler@ti.com>
---
 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



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] tisdk-image: Generate software manifest text file.
  2015-03-17 14:18 [PATCH] tisdk-image: Generate software manifest text file Jacob Stiffler
@ 2015-03-19 14:47 ` Stiffler, Jacob
  2015-03-20 23:38 ` Denys Dmytriyenko
  1 sibling, 0 replies; 3+ messages in thread
From: Stiffler, Jacob @ 2015-03-19 14:47 UTC (permalink / raw)
  To: meta-arago

Ping.

-----Original Message-----
From: Stiffler, Jacob 
Sent: Tuesday, March 17, 2015 10:19 AM
To: meta-arago@arago-project.org
Cc: Stiffler, Jacob
Subject: [PATCH] tisdk-image: Generate software manifest text file.

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

Signed-off-by: Jacob Stiffler <j-stiffler@ti.com>
---
 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


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] tisdk-image: Generate software manifest text file.
  2015-03-17 14:18 [PATCH] tisdk-image: Generate software manifest text file Jacob Stiffler
  2015-03-19 14:47 ` Stiffler, Jacob
@ 2015-03-20 23:38 ` Denys Dmytriyenko
  1 sibling, 0 replies; 3+ messages in thread
From: Denys Dmytriyenko @ 2015-03-20 23:38 UTC (permalink / raw)
  To: Jacob Stiffler; +Cc: meta-arago

Jake,

This looks mostly good. First - do you plan on removing old table headers 
replaced with a function call, that you just commented out?
Second - see inline.


On Tue, Mar 17, 2015 at 10:18:57AM -0400, Jacob Stiffler wrote:
> * The generated text file adheres to the SRAS software manifest format.
> 
> Signed-off-by: Jacob Stiffler <j-stiffler@ti.com>
> ---
>  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) 

Can you please elaborate on this ECCN change?


>  </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.

Is it unloadable or uploadable here ^^^^^^^^^^^^^?

And the rest below is just headers and footers - see the questions at the 
beginning.


> +
> +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
> meta-arago@arago-project.org
> http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-03-20 23:38 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-17 14:18 [PATCH] tisdk-image: Generate software manifest text file Jacob Stiffler
2015-03-19 14:47 ` Stiffler, Jacob
2015-03-20 23:38 ` Denys Dmytriyenko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.