mirror of
https://git.yoctoproject.org/poky-contrib
synced 2025-05-08 23:52:25 +08:00

As stated in our top level license files, the license is MIT unless otherwise stated. Add SPDX identifers accordingly. Replace older license statementa with the standardised syntax. Also drop "All Rights Reserved" expression as it isn't used now, doesn't mean anything and is confusing. (From OE-Core rev: 081a391fe09a21265881e39a2a496e4e10b4f80b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
71 lines
2.2 KiB
Plaintext
71 lines
2.2 KiB
Plaintext
#
|
|
# Copyright OpenEmbedded Contributors
|
|
#
|
|
# SPDX-License-Identifier: MIT
|
|
#
|
|
|
|
# Deploy sources for recipes for compliance with copyleft-style licenses
|
|
# Defaults to using symlinks, as it's a quick operation, and one can easily
|
|
# follow the links when making use of the files (e.g. tar with the -h arg).
|
|
#
|
|
# vi:sts=4:sw=4:et
|
|
|
|
inherit copyleft_filter
|
|
|
|
COPYLEFT_SOURCES_DIR ?= '${DEPLOY_DIR}/copyleft_sources'
|
|
|
|
python do_prepare_copyleft_sources () {
|
|
"""Populate a tree of the recipe sources and emit patch series files"""
|
|
import os.path
|
|
import shutil
|
|
|
|
p = d.getVar('P')
|
|
included, reason = copyleft_should_include(d)
|
|
if not included:
|
|
bb.debug(1, 'copyleft: %s is excluded: %s' % (p, reason))
|
|
return
|
|
else:
|
|
bb.debug(1, 'copyleft: %s is included: %s' % (p, reason))
|
|
|
|
sources_dir = d.getVar('COPYLEFT_SOURCES_DIR')
|
|
dl_dir = d.getVar('DL_DIR')
|
|
src_uri = d.getVar('SRC_URI').split()
|
|
fetch = bb.fetch2.Fetch(src_uri, d)
|
|
ud = fetch.ud
|
|
|
|
pf = d.getVar('PF')
|
|
dest = os.path.join(sources_dir, pf)
|
|
shutil.rmtree(dest, ignore_errors=True)
|
|
bb.utils.mkdirhier(dest)
|
|
|
|
for u in ud.values():
|
|
local = os.path.normpath(fetch.localpath(u.url))
|
|
if local.endswith('.bb'):
|
|
continue
|
|
elif local.endswith('/'):
|
|
local = local[:-1]
|
|
|
|
if u.mirrortarball:
|
|
tarball_path = os.path.join(dl_dir, u.mirrortarball)
|
|
if os.path.exists(tarball_path):
|
|
local = tarball_path
|
|
|
|
oe.path.symlink(local, os.path.join(dest, os.path.basename(local)), force=True)
|
|
|
|
patches = src_patches(d)
|
|
for patch in patches:
|
|
_, _, local, _, _, parm = bb.fetch.decodeurl(patch)
|
|
patchdir = parm.get('patchdir')
|
|
if patchdir:
|
|
series = os.path.join(dest, 'series.subdir.%s' % patchdir.replace('/', '_'))
|
|
else:
|
|
series = os.path.join(dest, 'series')
|
|
|
|
with open(series, 'a') as s:
|
|
s.write('%s -p%s\n' % (os.path.basename(local), parm['striplevel']))
|
|
}
|
|
|
|
addtask prepare_copyleft_sources after do_fetch before do_build
|
|
do_prepare_copyleft_sources[dirs] = "${WORKDIR}"
|
|
do_build[recrdeptask] += 'do_prepare_copyleft_sources'
|