[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