[oe] [PATCH 1/1] distribute_license: added class to copy license files

Maupin, Chase chase.maupin at ti.com
Thu Jul 29 21:46:55 UTC 2010


> -----Original Message-----
> From: Bernhard Reutner-Fischer [mailto:rep.dot.nop at gmail.com]
> Sent: Thursday, July 29, 2010 3:55 PM
> To: openembedded-devel at lists.openembedded.org
> Cc: Maupin, Chase
> Subject: Re: [oe] [PATCH 1/1] distribute_license: added class to copy
> license files
> 
> On Thu, Jul 29, 2010 at 09:51:01AM -0500, Chase Maupin wrote:
> >* This class can be used to copy license files from package
> >  sources into the deploy directory so they can be distributed.
> >* By default it searches the top-level source directory for
> >  files matching COPYING* or LICENSE*
> >* Search depth and pattern can be modified using the
> >  LICENSE_SEARCH_DEPTH and LICENSE_FILES variables
> >  respectively.
> >
> >Signed-off-by: Chase Maupin <chase.maupin at ti.com>
> >---
> > classes/distribute_license.bbclass |   56
> ++++++++++++++++++++++++++++++++++++
> > 1 files changed, 56 insertions(+), 0 deletions(-)
> > create mode 100644 classes/distribute_license.bbclass
> >
> >diff --git a/classes/distribute_license.bbclass
> b/classes/distribute_license.bbclass
> >new file mode 100644
> >index 0000000..795a404
> >--- /dev/null
> >+++ b/classes/distribute_license.bbclass
> >@@ -0,0 +1,56 @@
> >+# distribute-license.bbclass will search the sources of a package to
> >+# a given depth looking for a match to the specified pattern and if
> >+# found will copy the matching file(s) to the deploy directory.
> >+#
> >+# This class is used to collect license files such as COPYING or
> >+# LICENSE where they are found and save them per package.
> >+#
> >+# This package uses the following variables to control its operations:
> >+#   - LICENSE_FILES         = Pattern of license files to be searched
> for.
> >+#                             By default this is COPYING* and LICENSE*
> but
> >+#                             this can be changed per package.
> >+#   - LICENSE_SEARCH_DEPTH  = The maximum depth to search in the package
> >+#                             sources for files matching the
> LICENSE_FILES
> >+#                             pattern.
> >+
> >+
> >+# Files to copy for the licensing.  By default this is looking for
> >+# files following the patters COPYING* or LICENSING* in the top
> >+# level sources directory.
> >+LICENSE_FILES ?= "COPYING* LICENSE*"
> >+
> >+# Maximum depth to look for license files
> >+LICENSE_SEARCH_DEPTH ?= "1"
> >+
> >+distribute_license_do_copy_license() {
> >+    # Change directory to source directory
> >+    cd ${S}
> >+
> >+    # Turn of globbing so that wildcards are not expanded in for loop
> 
> /s/of/off/

I'll update this

> 
> >+    set -f
> 
> hush: set: -f: invalid option

I thought bash was the standard shell for working with OE.  Is that wrong?

> 
> >+
> >+    # Check if LICENSE_FILES exist.  If so copy them to DEPLOY_DIR
> >+    for lic in ${LICENSE_FILES}
> >+    do
> >+        res=""
> 
> superfluous

True, I'll go ahead and remove it.

> 
> >+        res=`find . -maxdepth ${LICENSE_SEARCH_DEPTH} -name "$lic"`
> >+        if [ "$res" != "" ]
> 
> breaks on older test(1) impls that don't handle empty strings properly.
> Could be that this one is moot by now though.

So did this break for you?  I've never seen this issue.

> 
> >+        then
> >+            mkdir -p ${DEPLOY_DIR}/licenses/${PN}
> >+            cp $res ${DEPLOY_DIR}/licenses/${PN}
> 
> install -D ${DEPLOY_DIR}/licenses/${PN} ${DEPLOY_DIR}/licenses/${PN}

I'll change this

> 
> >+        fi
> >+    done
> >+
> >+    # Turn globbing back on
> >+    set +f
> 
> hush: set: +f: invalid option

Same question as above

> 
> >+
> >+    # Just to be clean change directory back to where we started from.
> >+    cd -
> >+}
> 
> What's the reason you don't do that in python instead?
> Just curious as it would save quite some potential hazzle..

I know shell and not python, it's as simple as that.  If you want to rewrite this in python with the same functionality that's OK with me :)

> 
> >+
> >+EXPORT_FUNCTIONS do_copy_license
> >+
> >+# Put after do_patch in case a patch adds the license files
> >+do_copy_license[deptask] = "do_patch"
> >+
> >+addtask copy_license after do_patch before do_configure
> >--
> >1.7.0.4
> 
> someone should bump git to 1.7.2, a BBCLASSEXTENDEDed version seems to
> work for me ...

Sorry, I don't understand what my git version has to do with BBCLASSEXTEND.




More information about the Openembedded-devel mailing list