]> code.ossystems Code Review - openembedded-core.git/commitdiff
devtool: add: delete externalsrc files on npm recipe do_install
authorPaul Eggleton <paul.eggleton@linux.intel.com>
Mon, 21 Mar 2016 05:14:04 +0000 (18:14 +1300)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 23 Mar 2016 14:24:25 +0000 (14:24 +0000)
The npm class just installs whatever is in ${S}; if you're using
externalsrc in conjunction with it the symlinks (oe-workdir and oe-logs
by default) plus singletask.lock will end up in the final package, which
isn't really right. Introduce a variable so we know the path the files
will be installed into within npm.bbclass, and append to do_install
within the workspace bbappend to delete the files.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/npm.bbclass
scripts/lib/devtool/standard.py

index b5db99d2b9376734d14b93be750ea6965851d8a7..33ff5e3f45b11f4c8d95a760e6fe2c21634e71f4 100644 (file)
@@ -1,6 +1,8 @@
 DEPENDS_prepend = "nodejs-native "
 S = "${WORKDIR}/npmpkg"
 
+NPM_INSTALLDIR = "${D}${libdir}/node_modules/${PN}"
+
 npm_do_compile() {
        # changing the home directory to the working directory, the .npmrc will
        # be created in this directory
@@ -14,8 +16,8 @@ npm_do_compile() {
 }
 
 npm_do_install() {
-       mkdir -p ${D}${libdir}/node_modules/${PN}/
-       cp -a ${S}/* ${D}${libdir}/node_modules/${PN}/ --no-preserve=ownership
+       mkdir -p ${NPM_INSTALLDIR}/
+       cp -a ${S}/* ${NPM_INSTALLDIR}/ --no-preserve=ownership
 }
 
 python populate_packages_prepend () {
index 7600a8fa1f7231d0f2b1f2233d437f38c831da92..9ac2ad57a81de55e549d2badc8b471edb0e58ef8 100644 (file)
@@ -238,6 +238,17 @@ def add(args, config, basepath, workspace):
             f.write('    rm -f ${D}/singletask.lock\n')
             f.write('}\n')
 
+        if bb.data.inherits_class('npm', rd):
+            f.write('do_install_append() {\n')
+            f.write('    # Remove files added to source dir by devtool/externalsrc\n')
+            f.write('    rm -f ${NPM_INSTALLDIR}/singletask.lock\n')
+            f.write('    rm -rf ${NPM_INSTALLDIR}/.git\n')
+            f.write('    rm -rf ${NPM_INSTALLDIR}/oe-local-files\n')
+            f.write('    for symlink in ${EXTERNALSRC_SYMLINKS} ; do\n')
+            f.write('        rm -f ${NPM_INSTALLDIR}/${symlink%%:*}\n')
+            f.write('    done\n')
+            f.write('}\n')
+
     _add_md5(config, recipename, appendfile)
 
     logger.info('Recipe %s has been automatically created; further editing may be required to make it fully functional' % recipefile)