[oe] [PATCH 1/1] distribute_license: added class to copy license files
Bernhard Reutner-Fischer
rep.dot.nop at gmail.com
Thu Jul 29 20:55:04 UTC 2010
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/
>+ set -f
hush: set: -f: invalid option
>+
>+ # Check if LICENSE_FILES exist. If so copy them to DEPLOY_DIR
>+ for lic in ${LICENSE_FILES}
>+ do
>+ res=""
superfluous
>+ 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.
>+ then
>+ mkdir -p ${DEPLOY_DIR}/licenses/${PN}
>+ cp $res ${DEPLOY_DIR}/licenses/${PN}
install -D ${DEPLOY_DIR}/licenses/${PN} ${DEPLOY_DIR}/licenses/${PN}
>+ fi
>+ done
>+
>+ # Turn globbing back on
>+ set +f
hush: set: +f: invalid option
>+
>+ # 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..
>+
>+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 ...
More information about the Openembedded-devel
mailing list