summaryrefslogtreecommitdiffstats
path: root/meta/classes/package.bbclass
Commit message (Collapse)AuthorAgeFilesLines
* classes/package: move read_shlib_providers() to a common unitPaul Eggleton2014-12-211-23/+1
| | | | | | | | | This allows us to use this function elsewhere in the code. (From OE-Core rev: 657cff8a0f0e5db171b2ed9388a790ee0b135842) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: do variable fixups even when FILES was setPeter Seebach2014-12-191-8/+10
| | | | | | | | | | | | | | | | | | | A number of settings (DESCRIPTION, SUMMARY, postinst, postrm, and appends to RDEPENDS) were made only if FILES_foo was not set for a given package. If you had a modified glibc packaging setup that was defining FILES_glibc-gconv-somelocale, this would prevent the automatic append of glibc-gconv as a dependency, because extra_depends was ignored. I think the assumption may have been that if FILES_foo was set, DESCRIPTION_foo and SUMMARY_foo would also be set, but it seems to me that the right answer is probably to set them if they aren't already set, and leave them alone if they are. (From OE-Core rev: 7e59b0c7e03fc08a6eaf9c8ccb6bfa72b4604cc5) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: Create empty key/value if not there for shlib_providerKhem Raj2014-12-031-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we use ASSUME_SHLIBS,e.g. ASSUME_SHLIBS = "libEGL.so.1:libegl-implementation" then we end up with errors like below when using shlibs2 (dizzy+) File: 'package_do_shlibs', lineno: 216, function: package_do_shlibs 0212: dep_pkg = dep_pkg.rsplit("_", 1) 0213: if len(dep_pkg) == 2: 0214: lib_ver = dep_pkg[1] 0215: dep_pkg = dep_pkg[0] *** 0216: shlib_provider[l][libdir] = (dep_pkg, lib_ver) 0217: 0218: libsearchpath = [d.getVar('libdir', True), d.getVar('base_libdir', True)] 0219: 0220: for pkg in packages.split(): Exception: KeyError: 'libEGL.so.1' This is because the entry which is being populated does not exist so lets create it if its not already there. Change-Id: I9e292c5439e5d1e01ea48341334507aacc3784ae (From OE-Core rev: a64f81fcef42172f788cec7a63bb4672eac99f94) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package/prserv: Merge two similar functions into oneRichard Purdie2014-11-091-14/+38
| | | | | | | | | | | | | | Having these two separate functions handling PR values seems pointless, and worse, there are impossible code branches mixed within them. Merge them into one function and tweak comments so at least you don't have to read both functions to figure out what is going on. This does restructure the conditionals to try and aid readability. (From OE-Core rev: 865d001de168915a5796e5c760f96bdd04cebd61) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_do_shlibs: Look for provider in the path thats in shlib_provider ↵Khem Raj2014-10-101-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dictionary shlib2 code puts the information about path where a provider will be found. e.g. {'/usr/lib/llvm3.3': ('libllvm3.3-llvm-3.3', '3.3')} This is obtained from new shlib2 pkgdata from llvm3.3/3.3-r0/pkgdata/shlibs2/libllvm3.3-llvm-3.3.list However when we search for NEEDED libraries we ignore the key above which is the path where the provider library is installed and instead just seach in libdir and base_libdir and hence libraries which are not in above standard search paths gets ignored even if they appear in DT_NEEDED sections and a note is emitted NOTE: Couldn't find shared library provider for libLLVM-3.3.so, used by files: .... IMO this note should actually become an error since if we do not have all DT_NEEDED libraries in image the system is dysfunctional. This patch extracts this libpath from key and add it to seach paths when looing for a provider of a shared library [YOCTO #6798] Change-Id: Ie5f08632e37ba8d3439c8aaae33bc68b8996792f (From OE-Core rev: bf8472274ac1e9a35f8cbc82357da6c95b396759) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: Reverse runtime symlinks should be tied to package generationOtavio Salvador2014-10-061-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | In case a package is not generated (is empty and does not has allow empty flag set) the package data regarding reverse runtime dependency shouldn't be done. This were causing a false-positive in the meta-fsl-arm layer, when building mesa, as: ,----[ Error during build of MX53 in meta-fsl-arm ] | ERROR: The recipe mesa is trying to install files into a shared area | when those files already exist. Those files and their manifest | location are: | /.../build/build/tmp/sysroots/imx53qsb/pkgdata/runtime-reverse/libopenvg-dev | Matched in manifest-imx53qsb-amd-gpu-x11-bin-mx51.packagedata | Please verify which recipe should provide the above files. `---- Fixes [YOCTO: #6795] (From OE-Core rev: 9ef8728514b02dd2e18e87645298d9ec2e8a785a) Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package: Correct two typos in a commentPeter Kjellerstedt2014-08-291-3/+3
| | | | | | | | | | This quite coincidentally invalidates the sstate for do_package which is needed due to the correction of oe.utils.multiprocess_exec(). (From OE-Core rev: 9972f0686794a01582fd1a15889dcbd89bc5cf72) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package: Disable runtime mapping of RPROVIDES/RCONFLICTS/RREPLACESRichard Purdie2014-08-251-3/+0
| | | | | | | | | | | | | It doesn't really make sense to run the remapping code on these variables. If specific renaming is needed, it should be applied manually. This means that the debian RPROVIDES of the original package name can be preserved. There was also a bug report about this on the OE-Core mailing list recently where someone else ran into this problem too. (From OE-Core rev: a0cd18ff5405b63b8296b8ef1fc2a488b906f576) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package: Don't remap names in packagegroup recipesRichard Purdie2014-08-251-0/+3
| | | | | | | | | For package groups, use the original package names and don't use the remapped (e.g. debian) naming. (From OE-Core rev: afde71e8784144f05cebb0bdeeff6b3184819362) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: Fixup for using common functionRichard Purdie2014-08-231-13/+2
| | | | | | | | | We may as well use the common function for this rather than duplicating the code. (From OE-Core rev: 20979854c52607212c16e0b01cf610c80d8b524e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package: Fix darwin shlibs codeRichard Purdie2014-08-041-11/+13
| | | | | | | | | | | We need to scan binaries as well as libraries for dependencies. Also ensure if its not an object file (as found by otool), we handle this case. (From OE-Core rev: 3a26862b7a7e0ff247bd1441d670443e83fca391) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package: Convert dylib handling from .la to otoolRichard Purdie2014-08-031-32/+22
| | | | | | | | | | | Currently, the darwin shlibs detection is done by parsing the .la file dependency fields. This is very old code and is incomplete in some cases so convert to using otool -l and otool -L to correctly load the rpath and dependency information. (From OE-Core rev: e27573b6c3562662e4b2f5d8543eb7d150c3bc92) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package: Fix pkgdest for darwin shlibs codeRichard Purdie2014-08-031-1/+1
| | | | | | | | | | | | When the code was rewritten we forgot to strip the pkg that is present in the pkgdest path. This was fixed in the linux version of the code but not the darwin one, this matches the fix. Without this, the provider paths are broken. (From OE-Core rev: bcada055f89c8722024faf20088943ea006cfe36) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: add a stub implementation of package_name_hookRoss Burton2014-07-101-0/+12
| | | | | | | | | | | | | | | do_package() calls package_name_hook so that e.g. debian-style renaming through debian.bbclass can happen. If there is no class providing a package_name_hook then this causes "WARNING: Function package_name_hook doesn't exist" every time do_package() is executed. Silence this warning by providing an empty package_name_hook in package.bbclass. (From OE-Core rev: f6eb8e4e44b66217e4ada9f830a058c5ba120932) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: Generate runtime-rprovides dataRichard Purdie2014-07-101-4/+11
| | | | | | | | | | | | | | | Currently, given a list of rdepends its near impossible to figure out which ones are potentially invalid and which might be an RPROVIDES of a package. This problem is simple to solve, we can write lookup data into the pkgdata. This patch does that, accounting for the fact that multiple packages can RPROVIDE the same thing (particularly with locales). Its done with symlinks so the performance overhead is minimal. (From OE-Core rev: 30b4bff944c4625696e9be97ce4912a2710d13e9) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: Rewrite shlib_provider handling to include RPATHRichard Purdie2014-07-101-17/+30
| | | | | | | | | | | | | | | | Change the do_package shlibs code to account for RPATHS. This means that for library dependency purposes, only libraries in system paths or in any declared RPATH will be seen. This is important to resolve problems people have been having where similarly named libraries in "private" paths were conflicting, e.g. with gstreamer. For now this code assumes the default search path is libdir and base_libdir and places ASSUME_SHLIBS in libdir so they are searched by default. (From OE-Core rev: 48b9ecd5335f63fb2bcc47c4b23d067122734fe9) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: Improve shlibs pkgdata file formatRichard Purdie2014-07-101-20/+11
| | | | | | | | | | | | | | | | Instead of having a .list file and a .ver file, place the version information into the .list file in a ":" delimited string. Also place the path to the library here, this can then be used to evaluate RPATHs in the shlib dependency code. Since the disk format has changed, the easiest way to avoid build failures in the same TMPDIR is to change the shlibs directory to shlibs2. sstate dependency code with ensure everything rebuilds. (From OE-Core rev: 8dd09b3ddc572a338b4a6f1d859b68b2b4482d00) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: Rewrite sonames data structure to include library pathRichard Purdie2014-07-101-10/+13
| | | | | | | | | | | | In order to do more advanced processing of the shared libraries, we need to know where a given library is located on disk so we can know whether its a system path or a private directory for example. This patch adds this information into the 'sonames' data structure. (From OE-Core rev: 5f48d53c5ed94b5c6aad9f73ff177aa35af90397) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: Improve shlibs needed data structureRichard Purdie2014-07-101-22/+20
| | | | | | | | | | | | | | Improve the shlibs 'needed' data structure to include the file and any rpath information. This allows various cleanups to the data structure and moves us closer to being able to resolve shlibs providers issues based on path in due course. This commit doesn't change any stored data, just cleans up internal data structures (for example dropping the needed_from dict). (From OE-Core rev: d3aa7668a9f001044d0a0f1ba2de425a36056102) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: Add CONFFILES to list of package specific variablesRichard Purdie2014-04-081-1/+1
| | | | | | | | | | Changes to CONFFILES should change the sstate checksum. To make that happen, it needs to be listed in the list of package specific variables, therefore add it. (From OE-Core rev: 9db71fa03b9d5f5307b2d09e7aa89f46f622aa09) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package: Drop do_package_write taskRichard Purdie2014-02-251-12/+0
| | | | | | | | | | | | | | | | | The reasons this task was introduced are lost in the mists of time. It allowed for the a single "package_write" task instead of spelling out the explicit package backends, however in all but one case we do that anyway. As such as might as well give in and delete the task, converting that single reference into explicit dependencies. This gives bitbake a bit less work to to when processing the runqueue since there are less tasks (but more dependencies in some cases). (From OE-Core rev: cf70e15f063716f3227d467ab1f4bfc0018286f6) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: do_split_packages should always return something.Josua Mayer2014-02-171-1/+1
| | | | | | | | | | | | | | So far, when do_split_packages is passed a non-existing folder, it will return nothing. While building Mesa with PACKAGECONFIG="egl gles" for qemux86, do_package threw a nice exception on a line reading "pkgs += do_split_packages": "Exception: TypeError: 'NoneType' object is not iterable" I think a function should always return something, and in this specific case, returning an empty list should be right. This patch simply fixes the return statement to do just that. (From OE-Core rev: 39737e00e85bd4a6053f63f0c959fd424aa009be) Signed-off-by: Josua Mayer <josua.mayer97@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package: Remove the before do_build constraint of the do_package taskRichard Purdie2014-02-131-1/+1
| | | | | | | | | | | | | | | | Currently, if you bitbake xxxx, it will restore the package_write_, packagedata, populate_sysroot *and* the package data from sstate. We generally care about the packagedata and the actual packages, we no longer need/care about the do_package data itself unless something is going to repackage. By relaxing this constraint (and relying on the packagedata target), we can save things being installed from sstate and hence speedup build times. (From OE-Core rev: 4fda89477a2d7c1b3186bf4896297338ed64c448) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: fix strip and split logicKoen Kooi2014-02-111-2/+1
| | | | | | | | | | | | | | | | | | | Marks original commit message and variable documentation state that stripping and splitting are independent of eachother, but package.bbclass ANDs the two INHIBIT flags to see which files can be stripped and/or split. Original behaviour: INHIBIT_PACKAGE_STRIP: no strip, no debug split INHIBIT_PACAKGE_DEBUG_SPLIT: no strip, no debug split Behaviour after this patch: INHIBIT_PACKAGE_STRIP: no strip, no debug split INHIBIT_PACKAGE_DEBUG_SPLIT: strip, no split (From OE-Core rev: 8ea3cc2c45d4e34bb68bd3e0bc359204c772133c) Signed-off-by: Koen Kooi <koen.kooi@linaro.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: Show which files require given dependency in debug outputMartin Jansa2014-01-291-2/+10
| | | | | | | | | | | * when log.do_package shows some unexpected dependency, people usually need to grep package directory to find which binary was creating that dependency, show it directly in the debug output (From OE-Core rev: cf0696a39b811b13bb6e7dd06a2dad607e93a643) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: Don't search for providers of PRIVATE_LIBSMartin Jansa2014-01-291-2/+11
| | | | | | | | | | * split PRIVATE_LIBS and don't use find(), so that libfoo cannot be found in PRIVATE_LIBS = "libfoobar" (From OE-Core rev: 2dec075478f977b554061dd9a4b2b8ff4af3597a) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: add getter of additional metadataLeonid Borisenko2014-01-281-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | Two variables are searched for value of additional package metadata: * PACKAGE_ADD_METADATA_<PKGTYPE> * PACKAGE_ADD_METADATA First found variable with defined value wins. <PKGTYPE> is a parameter of getter and expected to be a distinct name of specific package type. For example: 'DEB' or 'RPM'. Variable can contain multiple [one-line] metadata fields, separated by literal sequence '\n'. Separator can be redefined through variable flag 'separator'. Getter returns found value with separator replaced with newline character. As side-effect, searched variables acquired flags 'type' (equals to 'list') and 'separator'. (From OE-Core rev: 98ea2fc35a3ef609a944929e21e0f9be2889036d) Signed-off-by: Leonid Borisenko <ive.found@gmail.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: show warning when package is providing already provided shlibMartin Jansa2014-01-211-2/+9
| | | | | | | | | | | | | * move read_shlib_providers before registering package as provider and show warning when different package tries to provide something already provided. [YOCTO #4628] (From OE-Core rev: 8141e3f61f12c8901b990496bcf6b76a9db95a57) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: move reading shlibs providers to separate functionMartin Jansa2014-01-211-20/+23
| | | | | | | | | | | | * prepare for reading shlibs providers only from dependency tree of current recipe [YOCTO #4628] (From OE-Core rev: c5076f33ac27c0c2b0743bf6dc4edc983254c467) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package: Keep global pkgfiles[] up to date when snapping library symlinksPhil Blundell2014-01-101-0/+2
| | | | | | | | | | | | | Since ca86603607a69a17cc5540d69de0e242b33382d3 we are now calling stat() on all the pkgfiles[] during emit_pkgdata(). If symlink snapping has removed some of the files then we will blow up trying to stat a path that no longer exists. Fix that by ensuring that pkgfiles[] is updated when we process the list of library renames. (From OE-Core rev: bdad58c51dfdda5253933c3e371a7d526cdbb67e) Signed-off-by: Phil Blundell <pb@pbcl.net> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/package: set SUMMARY in do_split_packages()Paul Eggleton2014-01-021-1/+7
| | | | | | | | | | | | | | | | | do_split_packages() is commonly used to split out plugin/module packages dynamically within recipes. If it doesn't set SUMMARY for each of these packages then they get a generic SUMMARY from the recipe, which isn't particularly useful; so add a parameter to set this and default it from the current description parameter (it ought to have been the other way around, but the description parameter is what we currently have in use by all recipes that use this function.) Fixes [YOCTO #5406]. (From OE-Core rev: 2b3080831042ffab26d70c3feee232fc31aa591a) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Get rid of crazy name mappingRichard Purdie2013-12-181-2/+0
| | | | | | | | | | | | | | | When originally developed, it was thought a task may have more than one associated sstate archive. The way the code has grown that idea is now not possible or needed. We can therefore assume one sstate archive per task and drop the crazy name mapping code. Simpler is better in this case. The downside is that various sstate archives will change name so this forces a cache rebuild. Given the other sstate changes going in at this time, this isn't really a bad thing as things would rebuild anyway. (From OE-Core rev: 5afe86a6854b21692fd97c5fc7fab50dbc068acb) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/package: write PE and PKGE out to pkgdataPaul Eggleton2013-12-031-0/+2
| | | | | | | | | | These are important parts of the version for every package, so we should include them in PKGDATA just as we include PV/PR/PKGV/PKGR. (From OE-Core rev: 5ceed97ba02a698f1c260c3f56cdf2cc156e6d8b) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/package: record PKGSIZE as total file size in pkgdataPaul Eggleton2013-12-031-9/+3
| | | | | | | | | | | | | | | | | | | | | We were using "du -sk" to collect the total size of all files in each package for writing out to PKGSIZE in each pkgdata file; however this reports the total space used on disk not the total size of all files, which means it is dependent on the block size and filesystem being used for TMPDIR on the build host. Instead, take the total of the size reported by lstat() for each packaged file, which we are already collecting for FILES_INFO in any case. Note: this changes PKGSIZE to be reported in bytes instead of kilobytes since this is what lstat reports, but this is really what we should be storing anyway so that we have the precision if we need it. Fixes [YOCTO #5334] (From OE-Core rev: 29615b36fca696822a715ece2afbe0bf9a43ed61) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/package: fix FILES_INFO serialisation in pkgdataPaul Eggleton2013-12-031-10/+9
| | | | | | | | | | | | | | | | | | | | | The FILES_INFO entry in each pkgdata file stores the list of files for each package. Make the following improvements to how this is stored: * Store paths as they would be seen on the target rather than erroneously including the full path to PKGDEST (which is specific to the build host the package was built on) * For simplicity when loading the data, store complete paths for each entry instead of trying to break off the first part and use it as the dict key * Record sizes for each file (as needed by Toaster) * Serialise the value explicitly using json rather than just passing it through str(). Fixes [YOCTO #5443]. (From OE-Core rev: ca86603607a69a17cc5540d69de0e242b33382d3) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: Fix split_and_strip_files when file has single quote (')Felipe F. Tonello2013-11-051-1/+1
| | | | | | | | | | | | Fix false error report when a file that has a single quote by escaping the single quote. Some packages might install files with quotes, such as music files and other types, that will cause the problem. (From OE-Core rev: 212471f81d210e596798db5e5d927418090a63a2) Signed-off-by: Felipe F. Tonello <eu@felipetonello.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/package: handle filenames containing wildcardsPaul Eggleton2013-10-141-9/+19
| | | | | | | | | | | | | | | | | | | It is uncommon, but it is possible for upstream sources to contain files that have wildcard characters in their names (Webmin is an example). Because we were running glob.glob() on every entry in the list of entries in FILES and then adding the result to the files list to be processed, the process would loop infinitely if files whose names contained wildcard characters were present. Fix this by avoiding re-processing the output of glob.glob() with itself, and also "escape" wildcard characters in FILES entries added automatically from do_split_packages(). Fixes [YOCTO #1676]. (From OE-Core rev: 1aa3fbb547b0e21455f0dcc9b72ded08dc0efd67) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes: tar 1.27 fixesRichard Purdie2013-10-141-1/+1
| | | | | | | | | | | | | tar version 1.27 returns: tar: --same-order option cannot be used with -c with the commandlines we have been using. We can remove the -s option (which is --same-order) to remove the error. (From OE-Core rev: 3d5a6d0a480a0fa98260a3b3ffc71b8d9e3e58af) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: Clear umask when using os.mkdirRichard Purdie2013-09-261-0/+4
| | | | | | | | | | | | | | | | | | We switched to using os.mkdir with the file creation mode specified as the second parameter. Python masks this with umask behind the scenes which isn't what we want, we really want the permissions we specify. To avoid this we zero the umask beforehand and restore afterwards. Other solutions are possible but would not perform as well which is why we're using os.mkdir in the first place. Martin Jansa deserves the credit for debugging where the problem was. (From OE-Core rev: f91226553e39439bfd17ab2b06c56cb8bf41061b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake.conf/package: Collapse PKGDATA_DIR into a single machine specific ↵Richard Purdie2013-09-141-11/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | directory Currently we have a hierarchy of pkgdata directories and the code has to put together a search path and look through each in turn until it finds the data it needs. This has lead to a number of hardcoded paths and file globing which is unpredictable and undesirable. Worse, certain tricks that should be easy like a GL specific package architecture become problematic with the curretn search paths. With the modern sstate code, we can do better and construct a single pkgdata directory for each machine in just the same way as we do for the sysroot. This is already tried and well tested. With such a single directory, all the code that iterated through multiple pkgdata directories and simply be removed and give a significant simplification of the code. Even existing build directories adapt to the change well since the package contents doesn't change, just the location they're installed to and the stamp for them. The only complication is the we need a different shlibs directory for each multilib. These are only used by package.bbclass and the simple fix is to add MLPREFIX to the shlib directory name. This means the multilib packages will repackage and the sstate checksum will change but an existing build directory will adapt to the changes safely. It is close to release however I believe the benefits this patch give us are worth consideration for inclusion and give us more options for dealing with problems like the GL one. It also sets the ground work well for shlibs improvements in 1.6. (From OE-Core rev: 1b8e4abd2d9c0901d38d89d0f944fe1ffd019379) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: skip already-stripped QA test if asked forKhem Raj2013-09-061-2/+5
| | | | | | | | | | | | | | | | | | | | | | | Some packages like grub have already stripped binaries e.g. ERROR: QA Issue: File '/boot/grub/kernel.img' from grub was already stripped, this will prevent future debugging! ERROR: QA run found fatal errors. Please consider fixing them. We would like to have a possibility to skip it using something like INSANE_SKIP_${PN} = "already-stripped" This adds the logic to do so it acts at PN level and not at package level. so something like INSANE_SKIP_${PN}-misc = "already-stripped" wont work. (From OE-Core rev: 765982f4c050d9cd3eb608d630312da482c737c7) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: Fix darwin shlib handlingRichard Purdie2013-09-041-1/+1
| | | | | | | | | | shlibs dependency calculations on darwin we not functioning correctly, we need to process the filename without the complete path. If we don't, "." characters in the path cause problems. (From OE-Core rev: 07e697d651178a84007123181fca38e4d98ae0e9) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: Fix handling of symlinks in debug packagesRichard Purdie2013-08-231-0/+6
| | | | | | | | | | | | | | | | | | When copying the sources for the debug source package we use cpio -Ll which means to copy files as hardlinks and to dereference symlinks. It appears there is a bug in cpio since -Ll will copy symlinks and not dereference them. We therefore do a second pass over copied symlinks resolving them into files. Ideally we would copy these as hardlinks as well however it doesn't seem worth the extra code and effort for what amounts to a corner case for a minor space improvement. This means that the -dbg packages no longer contain broken symlinks. [YOCTO #5020] (From OE-Core rev: 2ca2c4747f645a0d478c2171fff4c65752188285) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: avoid packing debug sources from other packagesAndreas Müller2013-07-291-1/+1
| | | | | | | | | | | | The error case was gcc-dbg packing files from libgcc-dbg reported in [1] [1] http://lists.openembedded.org/pipermail/openembedded-core/2013-July/080728.html (From OE-Core rev: fd2c0af422d67da870a5a11720d06a871e660215) Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/package: print command output when commands failPaul Eggleton2013-07-021-15/+14
| | | | | | | | | | | | When external commands such as debugedit fail, it can be useful to see their output, so use oe.utils.getstatusoutput() instead of subprocess.call() to capture this and print it on failure. (From OE-Core rev: 34179cc78b730ecb8ff3f4feb4beee2d17498ce3) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package: Ensure we iterate all the pool objectsRichard Purdie2013-06-281-2/+2
| | | | | | | | | | | | | There is the possibility that if we don't iterate through the multiprocessing pool objects we might not catch return codes and this could lead to hung/zombie processes either temproarily or on a wider scale. Adding this certainly doesn't hurt anything and is better practise so we might as well do it. Its not 100% clear if this fixes some issues or not. (From OE-Core rev: 89c8493d4d85044cd72af2756569d15e87cd5947) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* insane/package: refactor packaging sanity testsRobert Yang2013-06-071-13/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactor packaging sanity tests from package.bbclass to insane.bbclass so that the message can respect WARN_QA (print the warning message and go on the task) and ERROR_QA (print the error message and fail the task). - For the bb.warn(), give it a message name and add it to WARN_QA, then use package_qa_handle_error() to handle it. - For the bb.error(), give it a message name and add it to ERROR_QA, then use package_qa_handle_error() to handle it. - All the bb.warn() and bb.error() have been replaced in package.bbclass. - A few bb.warn() and bb.error() in insane.bbclass have been kept since they can not be replaced or doesn't have to, for example the bb.error() in package_qa_check_license(), it will print the error message and then invoke bb.fatal() to fail the task, I think that we don't have to replace it with package_qa_handle_error(). - Put all the WARN_QA and ERROR_QA in one line, so that they can be redefined by the user easily. [YOCTO #3190] [YOCTO #4396] (From OE-Core rev: 2f117ee615b703db07d3274ac592e2bd653743dd) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* insane/package: let package.bbclass inherit insane.bbclassRobert Yang2013-06-071-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | RP's comment: "What we're trying to do is move everything to use a standard mechanism for reporting issues of this type (do_package). With insane.bbclass, you can elect whether a given type of error is a warning or error and fails the task." * The package.bbclass had used package_qa_handle_error() which is from insane.bbclass, and we will use it for handling other warnings and errors, so let package.bbclass inherit insane.bbclass, this change will make the insane as a requirement (always included). * Change the "PACKAGEFUNCS ?=" to "+=", otherwise there would be an error like: Exception: variable SUMMARY references itself! This is because we let package.bbclass inherit insane.bbclass, and PACKAGEFUNCS has been set in insane.bbclass, so the "PACKAGEFUNCS ?=" will set nothing, then the "emit_pkgdata" doesn't run which will cause this error. * Add a QA_SANE variable in insane.bbclass, once the error type is ERROR_QA, it will fail the task and stop the build. [YOCTO #3190] [YOCTO #4396] (From OE-Core rev: 852dead71387c66ec0cba7c71e3814a74e409560) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bbclass: bb.fatal() clean upRobert Yang2013-05-161-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The bb.fatal() is defined as: def fatal(*args): logger.critical(''.join(args)) sys.exit(1) So anything after bb.fatal() in the same code block doesn't have any effect, e.g.: bb.fatal("%s_%s: %s" % (var, pkg, e)) raise e The "raise e" should be removed. I searched all the files which use bb.fatal(), only the following 3 classes have this issues: insane.bbclass package.bbclass package_rpm.bbclass [YOCTO #4461] (From OE-Core rev: 4c47525c5a171b1282615c9fbc7d84addef85f92) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: Fix sources contentsRichard Purdie2013-05-141-5/+5
| | | | | | | | | | | | | http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=c376f1f49cea182a2887945840ab97a20970a373 fixed a valid issue where the sources file was accumulating information and subsequent task runs of do_packacge were not cleaning it. The fix is wrong however since we're removing the file within a loop. This fix removes the file outside the loop ensuring it is not truncated and contains the correct information. (From OE-Core rev: a015881f2207aded601459ba3eebbefb0002b3c5) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>