On Mon, Nov 25, 2019 at 10:12 AM Jacob Stiffler <j-stiffler@ti.com> wrote:On 11/25/2019 12:42 PM, Denys Dmytriyenko wrote:On Fri, Nov 15, 2019 at 09:14:15AM -0800, Khem Raj wrote:On Fri, 2019-11-15 at 10:14 -0500, Jacob Stiffler wrote:Recently individual components and LLD sources have been combined into a single PDK repo. Use this class to specify the common source. Also use this class to keep the sources separate from each other when building. This keeps the build identical to previous recipes while keeping control on interdependencies. Signed-off-by: Jacob Stiffler <j-stiffler@ti.com> ---...+# Extract only required sources from PDK +python do_unpack_append() { + if len(d.getVar('TI_PDK_COMP') or '') > 0: + import subprocess + + src = os.path.join(d.getVar('TI_PDK_SRC'),'packages',d.getVar('TI_PDK_COMP_ PATH')) + + # Package up only the required sources + cmd = 'tar -cf - -C %s -p -S . | tar -xf - -C %s' % (src, d.getVar('S')) + subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT) + + bb.utils.remove(d.getVar('TI_PDK_SRC'), recurse=True) +}perhaps looking in work-shared idea from kernel or gcc or clang packages could make it better where, you only untar sources onceJake, Any updates on this - will you be looking into the above suggestion?I had originally considered this approach, but decided against it so that there would be no way a recipe could access other sources in the pdk.git. It may be a bit paranoid, but the work-shared approach would make the entire pdk sources available through a ti-pdk-fetch variable. I wanted it so that the entire pdk.git will never be unpacked in its entirety.disk operations are not cheap, so you could save a lot by having a monorepo. Is it due to access perms ? then its a single tarballs you cant have ACLs. I am still not convinced if monorepo approach has downsides, plus its a known approach elsewhere so will be easy on users.
We wanted to have this safety net to make sure that this pdk.git
does not end up as spaghetti code. So this method was devised to
ensure that only a single component's sources and its DEPENDS are
available during compilation.
It may be acceptable to clone to the work-shared path, and then
symlink the specific directory into the WORKDIR. But we will need
to remain vigilant so that work-shared path is never referenced in
the recipe.
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#12528): https://lists.yoctoproject.org/g/meta-ti/message/12528 Mute This Topic: https://lists.yoctoproject.org/mt/61321552/3619770 Group Owner: meta-ti+owner@lists.yoctoproject.org Unsubscribe: https://lists.yoctoproject.org/g/meta-ti/unsub [j-stiffler@ti.com] -=-=-=-=-=-=-=-=-=-=-=-