1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-30 00:20:08 +00:00

devtool / recipetool: add handling for binary-only packages

Add a means of creating recipes for package files or archives that
contain a directory structure to be installed verbatim, for example an
rpm file. (We mostly just re-use bin_package here and skip some of the
normal build system checks.) This support is available in "recipetool
create" and "devtool add" which wraps the former.

(From OE-Core rev: 9e0a6b2e6f16185f8032d36b77d40802bc388987)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Paul Eggleton
2015-09-22 17:21:39 +01:00
committed by Richard Purdie
parent 76084cdfa6
commit c4181c6e7e
2 changed files with 23 additions and 0 deletions
+14
View File
@@ -104,6 +104,10 @@ def create_recipe(args):
if '://' in args.source:
# Fetch a URL
fetchuri = urlparse.urldefrag(args.source)[0]
if args.binary:
# Assume the archive contains the directory structure verbatim
# so we need to extract to a subdirectory
fetchuri += ';subdir=%s' % os.path.splitext(os.path.basename(urlparse.urlsplit(fetchuri).path))[0]
srcuri = fetchuri
rev_re = re.compile(';rev=([^;]+)')
res = rev_re.search(srcuri)
@@ -226,6 +230,10 @@ def create_recipe(args):
lines_after.append('PACKAGE_ARCH = "%s"' % pkgarch)
lines_after.append('')
if args.binary:
lines_after.append('INSANE_SKIP_${PN} += "already-stripped"')
lines_after.append('')
# Find all plugins that want to register handlers
handlers = []
for plugin in plugins:
@@ -235,6 +243,11 @@ def create_recipe(args):
# Apply the handlers
classes = []
handled = []
if args.binary:
classes.append('bin_package')
handled.append('buildsystem')
for handler in handlers:
handler.process(srctree, classes, lines_before, lines_after, handled)
@@ -426,5 +439,6 @@ def register_command(subparsers):
parser_create.add_argument('-m', '--machine', help='Make recipe machine-specific as opposed to architecture-specific', action='store_true')
parser_create.add_argument('-x', '--extract-to', metavar='EXTRACTPATH', help='Assuming source is a URL, fetch it and extract it to the directory specified as %(metavar)s')
parser_create.add_argument('-V', '--version', help='Version to use within recipe (PV)')
parser_create.add_argument('-b', '--binary', help='Treat the source tree as something that should be installed verbatim (no compilation, same directory structure)', action='store_true')
parser_create.set_defaults(func=create_recipe)