In the usual case, the computed path used for debugedit to fix
up path references for the target filesystem is correct. However,
prebuilt binary components, such as prebuilt toolchains, can
have debug paths that do not reflect paths within the local
build directory. Providing an override lets us continue to use
the standard debugedit logic in package.bbclass.
(From OE-Core rev: 32b1fde106bf423873a4a56e1111f230494e2d4a)
Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Package install failures due to issues in post install rules.
package_do_shlibs only looks for libraries in a directory "lib", this should be
modified to the variable baselib.
ldconfig_postinst_fragment failure observed on systems without /sbin/ldconfig
[ -x /sbin/ldconfig ] && /sbin/ldconfig
results in the post install rule returning a failure. Modify to
if [ -x /sbin/ldconfig ]; then /sbin/ldconfig; fi
(From OE-Core rev: 3f85ab6d0d05a4e34fe73fa343d2b3b942fc69b7)
Signed-off-by: Amy Fong <amy.fong@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This will allow the reporting of these errors as either WARNINGs (default)
or ERRORs if installed_vs_shipped is added to the ERROR_QA of the policy
file (such as a <distro_name>.conf file.
V2: found the code I had intended to send instead of that other junk,
was just not watching what I pushed on that one, sorry. (this is edit in
no in the actual commit message)
(From OE-Core rev: 20d4205a4e408b6a99db392d4df458156113106a)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Most of the time skipping per file dependency generation is a bad idea, but
when building a nativesdk or similar you may be required to pickup host
dependencies. These host dependencies can not always be reconciled within
the scope of other nativesdk components, so if we skip them we can facilitate
this unique situation.
(From OE-Core rev: a1ca125de55a8e7cab402e2ba5737a56d4e890c2)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
These variables all take package name extensions and should be considered in sstate
dependency processing.
This may also fix some multilib alternatives issues (unconfirmed).
[YOCTO #2056]
(From OE-Core rev: 64422f7c5da160050a5454817c8fa9d070104b34)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
'//' in a FILES variable causes hard to track down issues with
packaging. This adds a warning and attempts to auto-correct the issue to
try and make the problem more user friendly.
[YOCTO #2448]
(From OE-Core rev: 0e33e314b1d2d3779658696f13a274b20d698667)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This reverts commit e83d8e58a6b107eea87df0ec233a1bc932b2c6e as the conversion
is not correct. Its replacing readlines() calls which generate an array with
what are effectively strings. There are split("\n") calls missing in many
cases so this needs to be reverted until it gets fixed.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Replace os.popen with subprocess.Popen since the older function would
fail (more or less) silently if the executed program cannot be found
There are both bb.process.run() and bb.process.Popen() which wraps the
subprocess module, use it for simplifying the code.
Note: We don't need the "2>/dev/null" or "2>&1" since bb.process.run()
can handle it, it will raise exception when error occurs, we should
handle the exception ourselves if we want to ignore the error.
More info:
http://docs.python.org/library/subprocess.html#subprocess-replacements
[YOCTO #2454]
(From OE-Core rev: e83d8e58a6b107eea87df0ec233a1bc932b2c6ea)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Replace os.system with subprocess.call since the older function would
fail (more or less) silently if the executed program cannot be found
More info:
http://docs.python.org/library/subprocess.html#subprocess-replacements
[YOCTO #2454]
(From OE-Core rev: a07d03cc6f67c88feb9813ae7deb6e4a93552dfe)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Refactor in order to:
* Deprecate the old interfaces, but keep them for compatibility
* Provide a new, interface -- capable of working with split packages
* Each update-alternative will now set proper "per-file" provides
Note: this adds a warning message when the older deprecated behavior is
used. The older behavior has been fully tested using oe-core.
(From OE-Core rev: 309117d26de6a87b16406a44a0cefcbaaf7b5d7a)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When trying to understand why a QA wanring such as:
ERROR: QA Issue: foo rdepends on bar-dev
it is very difficult to figure out where the bar-dev dependency
comes from, since many of them are added dynamically.
This adds a debug statement that says which dependency adds an
rdepends to the system.
Also, while doing this work, it was noted that the same dependencies
were being scanned for over and over. Instead we shorten the list
by only added to the dep list if the dependency was not already there.
(From OE-Core rev: 257b9e371143421b78a6991ef5401e564918c164)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Added multilib prefix to the locale related package names/dependencies.
(From OE-Core rev: a52f7cf2cc90d918e3250c410995dcc1f3bfd5ee)
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
As the comment says, using packages[0] is rather broken and can be incorrect,
as demonstrated by the recent gdk-pixbuf change. Replacing it with PN is
a bit more correct and more likely to do what was originally intended
by this function.
(From OE-Core rev: 5d0144fe6bd1febc2d1e651bbcff891c80f20b88)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The usage of this function renaming and it being called using
bb.build.exec_func() causes needless indirection loops, confusing log
files and seems generally pointless.
This simplification makes the process much simpler and faster. I can't
come up with a good reason why the export_functions functionality is
needed for this function.
(From OE-Core rev: 74daad03ca29a03b0005f7d2b90a0347d5b583a5)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Kernel modules are not marked as executable but we do expect to strip them.
This patch adds in missing code to ensure we do this. Without this images
are getting sigificantly bloated in size.
(From OE-Core rev: 00b0a5f2f51bb3f88bbb9ae558c2859e3c1c406c)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In this way the needs_ldconfig variable in linux_so never gets True in the statements
below this function. As global statement is generally discouraged, a return value
would be a clean and fast way to solve this issue.
[YOCTO #2205]
RP: Added logic to ensure the value doesn't get overwritten once set
(From OE-Core rev: 6d39af4f85220f20bad09b0fdd3ee0a7ec19c12d)
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>---
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Typoes fixed: "enviroment", "editted", "spliting", "scheulder".
(From OE-Core rev: 17e981a857a51b0bec08c929e8539d36d83874b6)
Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This adds a few things to the incompatible license functionality
1. INCOMPATIBLE_LICENSE was unable to distinguish any variation
within LICENSE (e.g. GPLv3 v. GPLv3.0). This now utilizes the
SPDXLICENSEMAP of the license indicated as INCOMPATIBLE_LICENSE
2. Given a recipe where the main LICENSE was incompatible but
a package of the recipe was compatible, the entire recipe would
be excluded. This allows us some finer grained control over what
exactly gets excluded.
(From OE-Core rev: a8d7246f7b13ef2636c325263c8bfa22552d7a57)
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We don't have to split the debug pkg if it is null (No debugsources.list
since the find-debuginfo.sh would not generate it for the null pkg).
Serval pkg's debug pkg is null, and there were a few errors: (53 pkgs
had such errors in a core-image-sato build):
log.do_package:sort: open failed: debugsources.list: No such file or directory
[YOCTO #2076]
(From OE-Core rev: f88e3f420b4e95ab5ba4a075df8ed65b817f8b45)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* do_split_packages and package_do_split_locales dynamically add
packages in order of appearance of os.walk() or os.listdir().
This order varies between multiple build hosts (and probably
also between successive builds).
* Sort the list of dynamically added packages, to get a consistent
and reproducible order.
* This reduces the diffs in buildhistory and improves
comparability between builds.
(From OE-Core rev: 76f46391239d3e123cfde900c52ca12ac73fd84f)
Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This python depends is added by rpmdeps every time it finds a python
script. This is not necessary since we handle this in otherways. It
also breaks things like nativesdk since the dependency is not renamed.
The easiest solution is just to ignore this dependency.
(From OE-Core rev: 5c8ad2638baac0501cecf38f8d3e8467d56afb8a)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Using "1" with getVar is bad coding style and "True" is preferred.
This patch is a sed over the meta directory of the form:
sed \
-e 's:\(\.getVar([^,()]*, \)1 *):\1True):g' \
-e 's:\(\.getVarFlag([^,()]*, [^,()]*, \)1 *):\1True):g' \
-i `grep -ril getVar *`
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Write the size of a package into its pkgdata for hob2 to get the size
and show on the UI for image making.
(From OE-Core rev: 9c446d007957dab36ee2c012f0a5b22494a7a84f)
Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We can create directories like /usr/src/debug as part of the debug file
manipulations. If these are going to end up empty, remove them to avoid QA
warnings like:
WARNING: For recipe task-core-x11, the following files/directories were installed but not shipped in any package:
WARNING: /usr
WARNING: /usr/src
WARNING: /usr/src/debug
WARNING: For recipe task-core-console, the following files/directories were installed but not shipped in any package:
WARNING: /usr
WARNING: /usr/src
WARNING: /usr/src/debug
(From OE-Core rev: 4f4451f7c0f9762092eb3dbc995b4afa2572ceb6)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently a process was being forked off for each individual file
this class wanted to inspect with rpmdeps. This converts it to use
rpmdeps-oecore which allows batch processing of these dependencies.
For do_package for perl, this reduced the time by about 1 minute (33%).
(From OE-Core rev: 548037acd63bd4859f8de8d23a3d12f36ce9f97f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If a recipe packages multiple versions of shlib (e.g. powervr drivers) we only want the shlib code to pickup $PN, not $PN-foo subpackages.
This keeps backward compatibility with the global PRIVATE_LIBS usage if no per package PRIVATE_LIBS are set for a given package. In other words: this doesn't break the firefox recipe.
(From OE-Core rev: ce46dbddef40ae3eef7238ac07438b15bd09e156)
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
OpenEmbedded doesn't officially use a bug tracker anymore, and a message
asking the user to fix the metadata could be applied to almost any error
that occurs, so just remove the whole message.
(From OE-Core rev: ee486e30432ffd3ef97ba16511a9a1a38bad3826)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Packaging will fail with executable files containing spaces in their
names. Patch quotes the parameter passed to 'objdump'.
(From OE-Core rev: 7f7db286ca0b70bd5cce643c3b84f77ad45cc786)
Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[YOCTO #1556]
- Modified meta/class/package.bbclass and prserv.bbclass according to
the change in PR service by adding PACKAGE_ARCH into the query tuple.
- Added prexport.bbclass, primport.bbclass to export/import AUTOPR
values from/to PRService.
- Move PR service related common code to lib/oe/prservice.py.
- Supported reading the AUTOPR values from the exported .inc file
instead of reading it from remote PR service.
- Created a new script bitbake-prserv-tool to export/import the AUTOPR
values from/to the PR service.
Typical usage scenario of the export/import is:
1. bitbake-prserv-tool export <file> to export the AUTOPR values from
the current PR service into an exported .inc file.
2. Others may use that exported .inc file(to be included in the
local.conf) to lockdown and reproduce the same AUTOPR when generating
package feeds.
3. Others may "bitbake-prserv-tool import <file>" to import the AUTOPR
values into their own PR service and the AUTOPR values will be
incremented from there.
(From OE-Core rev: 9979107d8eaf503efd921564385859b1e83dbb3c)
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The magic file could be installed somewhere else if the system native prefix
settings are changed. Adjust the packaging files to compensate for this.
(From OE-Core rev: 93c0e9915b5c9bf8b0877c76f89de721adfbfd66)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
emite_package_data needs to have LICENSE, as pkgdata is as an
audit of licenses collected during do_populate_license.
(From OE-Core rev: 60f0b866b4b7c4aa337a2ff764455741a73665da)
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Complete the bb.data.getVar/setVar replacements with accesses
directly to the data store object.
(From OE-Core rev: 2864ff6a4b3c3f9b3bbb6d2597243cc5d3715939)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If rpm-native was built in an alternative location, it may not relocate correctly
unless the rpmpopt and macros paths are explicitly specified.
This fixes errors seen on the Yocto autobuilder where pkgconfig
"provides" entries could disappear leading to image dependency failures.
(From OE-Core rev: fb01bd81197057e62106aac966f9ebc4c5054f97)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* relative links for elf files like ../foo.so ends up in the
debugdir with ../.debug/foo.so, this causes infinite fileaccessloops
fix it by adding an extra "../" to the link path
(From OE-Core rev: 27cf695f1cf259f8c79214e95a0c4bc2c0779b81)
Signed-off-by: Henning Heinold <heinold@inf.fu-berlin.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Without this, if rpmddeps came from a sstate package which was relocated
it might not find its magic file and if that happens, requires/provides
in packages could get corrupted. This leads to failures at rootfs time
during builds with messages like:
libdbus-1.so.3 is needed by libdbus-glib-1-2-0.92-r1.armv5te
since the provides would be missing in the dbus package.
(From OE-Core rev: abe2a948905a997314c61a8fcd35e2b42a3f4408)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Before this change:
a) Ownership and permissions of files copied from packages to
package-split could get lost during the copy process. This change
ensures they are preserved.
b) Ownership and permissions of directories could also get lost.
Most of the complexity in this patch is addressing this problem
ensuring newly created directories match the source ones being
copied.
c) There was no warning about directories being created but not
shipped by any package.
This patch fixes all of the above issues.
(From OE-Core rev: 6021e309e69d823e1467648aee12a32182945569)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Previously python dependencies were of the format "python(abi) = ..."
This format is not yet supportable within OE, so revert to a form
we know we can handle.
Introduce a change to package.bbclass that ensures it will causes the
sstate-cache's "package" to invalidate. Since pythondeps changed, the
output of rpmdeps changes, which causes the per-file dependency
information to change.... thus we need to invalidate the cache!
(From OE-Core rev: 30064a98dc9049db4a37f119d15fbb59aa3c8377)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[YOCTO #1486]
1. image.bbclass: In multilib_sanity_check, duplicated files except
those matching to MULTILIBRE_ALLOW_REP are allowed if they're equal.
2. pacakge.bbclass: Allow DEBIAN_NOAUTONAMES variable to be
automatically mapped in multilib case.
(From OE-Core rev: 66f9045e17c39f5c64a0699b72ea460a0701717a)
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
For packages that have files installed that aren't in a subdirectory,
the following build WARNING is emitted (this for initramfs-live-boot
as an example):
WARNING: For recipe initramfs-live-boot, the following files were
installed but not shipped in any package:
WARNING: init
The problem is that the filenames added to the 'seen' array are always
added with a path separator at the beginning of the filename, but when
the package dir is walked for comparison, any files at the top-level
will be missing the beginning path separator and the comparison will
fail despite the fact that the file was actually packaged. This
because the remainder between the dirname and the dvar base name is
used in the path join and in the case of files at the top-level, the
remainder is the empty string, where it should be '/' for comparison
purposes.
(From OE-Core rev: cb19503139b9102f02ba3e5be63d5e85f280f2ef)
Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[YOCTO #1388]
This change is needed to correctly add the dependencies for the do_package
task which bitbake is unable to automatically detect itself.
(From OE-Core rev: 0614b9aa62a46f81d334ca4230080cc707347f3c)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
For image type of recipes, we need to define do_package_write as its
do_build recrdeptask, which ensures that all packaging types listed in
PACKAGE_CLASSES will be built out.
[YOCTO 1370]
(From OE-Core rev: b68cd33673fdc17711d7b9fde9cc23b0d8498c17)
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[YOCTO #1345]
The new variable ALL_MULTILIB_PACKAGE_ARCHS contains all the values of
PACKAGE_ARCHS for each multilib variants. The opkg backend now uses this
new value insteald of the PACKAGE_ARCHS to update the opkg indexes and
to generate the opkg configuration files. This allows the normal
packages and multilib packages may be installed into the same rootfs.
(From OE-Core rev: b774bf44ef004276da12a83ebd69715c00b596ac)
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>