Packaging / warning fixes
v2 cover Packaging / warning fixes
A few fixes for things that have been bugging me lately. (I realise we've just changed the S warning recently, hopefully this is the last time...)
Changes since v1:
* Adjust message for installed-vs-shipped to suggest not installing
* Add S warning improvement patch
The following changes since commit cfc43743b0e41cf168cad9cbd4e9d870b8f01f03:
toolchain-scripts: Allow the CONFIGSITE_CACHE variable to be overridden (2015-04-15 14:29:54 +0100)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib paule/pkgfixes
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/pkgfixes
Paul Eggleton (3):
classes/package: clarify installed-vs-shipped message lib/oe/package_manager: avoid traceback with no packages classes/base: clarify S not set correctly warning
meta/classes/base.bbclass | 2 +- meta/classes/package.bbclass | 3 ++- meta/lib/oe/package_manager.py | 2 ++ 3 files changed, 5 insertions(+), 2 deletions(-)
Signature · 1 line
2.1.0
PATCH v2 1/3 classes/package: clarify installed-vs-shipped message
Based on the number of times I've had to explain it over the years it seems that a lot of new users don't immediately realise what is meant by "shipped" here (nor should we expect them to) so let's at least mention packaging and briefly tell the user what they need to do. (I was going to go into more detail in the message, but there is really more detail than can be covered succinctly here.)
--- meta/classes/package.bbclass | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
meta/classes/package.bbclass +2 -1
@@ -1132,12 +1132,13 @@ python populate_packages () { unshipped.append(path) if unshipped != []: - msg = pn + ": Files/directories were installed but not shipped" + msg = pn + ": Files/directories were installed but not shipped in any package:" if "installed-vs-shipped" in (d.getVar('INSANE_SKIP_' + pn, True) or "").split(): bb.note("Package %s skipping QA tests: installed-vs-shipped" % pn) else: for f in unshipped: msg = msg + "\n " + f + msg = msg + "\nPlease set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install." package_qa_handle_error("installed-vs-shipped", msg, d) } populate_packages[dirs] = "${D}"
Signature · 1 line
2.1.0
PATCH v2 2/3 lib/oe/package_manager: avoid traceback with no packages
In reply to Paul EggletonIf you were using deb packaging, had buildhistory enabled and produced an SDK that contained no packages in one of the sysroots (such as with uninative-tarball) then the do_populate_sdk was failing with a python traceback because there were no fields to split in the output line.
--- meta/lib/oe/package_manager.py | 2 ++ 1 file changed, 2 insertions(+)
meta/lib/oe/package_manager.py +2 -0
@@ -446,6 +446,8 @@ class DpkgPkgsList(PkgsList): if format == "file": tmp_output = "" for line in tuple(output.split('\n')): + if not line.strip(): + continue pkg, pkg_file, pkg_arch = line.split() full_path = os.path.join(self.rootfs_dir, pkg_arch, pkg_file) if os.path.exists(full_path):
Signature · 1 line
2.1.0
PATCH v2 3/3 classes/base: clarify S not set correctly warning
In reply to Paul EggletonHopefully make it a bit clearer to the user which recipe needs fixing and what needs to be done to fix it.
--- meta/classes/base.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
meta/classes/base.bbclass +1 -1
@@ -151,7 +151,7 @@ python base_do_unpack() { raise bb.build.FuncFailed(e) if not os.path.exists(s_dir): - bb.warn("%s ('S') doesn't exist, please set 'S' to a proper value" % s_dir) + bb.warn('%s: the directory %s (%s) pointed to by the S variable doesn\'t exist - please set S within the recipe to point to where the source has been unpacked to' % (d.getVar('PN', True), d.getVar('S', False), s_dir)) } def pkgarch_mapping(d):
Signature · 1 line
2.1.0