Age | Commit message (Collapse) | Author | Files |
|
For some odd reason (at least I couldn't find an explanation to this,
yet), if a multilib version of a package is installed after the main one
(that is: in a different smart session), the main package binaries are
not overwritten.
This commit restores the functionality to the original one, before
migrating to python: feed all the packages to smart, apart from attempt
only ones which are installed separately.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
This commit whitelists some common directories, so the multilib sanity
checks pass and also fixes an issue in lib/oe/rootfs.py when the
compared files do not exist.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Print the entire command output in case of errors.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
Use python sets instead of lists, to avoid duplicates. When doing a
multilib build, "smart channel --add" fails because it tries to add
'all' channel twice.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
If we're just attempting to install packages and the package list is
empty, just return.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
When using opkg as the PM backend, one has the option to provide custom
feeds to create the rootfs from.
This commit:
* fixes this in the refactored code;
* moves the custom config creation code to python;
* clean up the package-ipk.bbclass;
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
The following commit:
rootfs_ipk: Ensure that BAD_RECOMMENDATIONS are honoured for all
architectures
changed the way BAD_RECOMMENDATIONS are handled. Make the change in the
new code too.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
Using stamps shortens rootfs/image creation because the package indexes
are not created again if no new package was installed in the deploy dir.
Unfortunately, there are some syncronization issues with
do_package_write_*() and the indexes are not properly created.
Will have to revisit this issue in the near future. For now, lose it.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
Status file path was not created correctly.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
This commit:
* adds missing mark_packages() function for OpkgPM. This is needed to
* manually change the packages installation status in the status file;
* fix OpkgPM remove_packaging_data() issue;
* fix OpkgPM handle_bad_recommendations() issue;
* improve OpkgPM/DpkgPM mark_packages() regex pattern;
* fix DpkgPM list_installed() problem;
* fix DpkgPM _create_configs() problem: status file should not be
truncated if it already exists/
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
The IMAGE_ROOTFS_EXTRA_SPACE value was not correctly added to the base
size.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
Lock deploy directory against concurrent index creation.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
The idea of postinstall intercept hooks is to run CPU intensive
postinstalls (like the ones generating font/pixbuf/icon caches) on host,
at rootfs generation time. So, ideally, the user would like to know if
the intercepts fail on host.
With this patch, the user will see warnings on console if intercept
hooks fail to execute.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
This commit:
* fixes a crash when handling interecept hook failures which happened when
MULTILIB_GLOBAL_VARIANTS was not set;
* convert dashes to underscores and use sets (so that we make sure the
items are unique) when creating RPM repos;
* uses a regex pattern to search for packages in the feeds list. The
old method could match also strings in the middle. For example: 'rpm'
matched 'kernel-module-lttng-probe-rpm" in qemux86_64 feeds;
* issue a bb.fatal if smart returns error while installing packages.
Otherwise we might end up with an incomplete image...
* fixes the /etc/rpm/platform file creation;
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
DB_CONFIG_CONTENT to RpmPM
The tweak made the code looks better.
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
The tweak made the code looks better.
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
- The variable D is needed by intercepts scripts;
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
- Use self.target_rootfs instead of self.image_rootfs as saved dir;
- Remove redundant comment line;
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
- Implementation RpmSdk class
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
The value of IMAGE_ROOTFS_EXTRA_SPACE is "0 + 51200",
we should use eval rather than int in python.
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
It failed to read Kernel version from kernel-abiversion
file, the reason was it didn't strip the readline.
...
Error: Kernel version 3.10.25-yocto-standard
does not match kernel-abiversion (3.10.25-yocto-standard)
...
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
The refactor of shell function rootfs_uninstall_unneeded is incorrect,
it should check and update the installed_pkgs.txt file for the existance
of the packages that were removed.
...
rootfs_uninstall_unneeded () {
if ${@base_contains("IMAGE_FEATURES", "package-management", "false", "true", d)}; then
if [ -z "$(delayed_postinsts)" ]; then
# All packages were successfully configured.
# update-rc.d, base-passwd, run-postinsts are no further
# use, remove them now
remove_run_postinsts=false
if [ -e ${IMAGE_ROOTFS}${sysconfdir}/init.d/run-postinsts ]; then
remove_run_postinsts=true
fi
# Remove package only if it's installed
pkgs_to_remove="update-rc.d base-passwd ${ROOTFS_BOOTSTRAP_INSTALL}"
for pkg in $pkgs_to_remove; do
# regexp for pkg, to be used in grep and sed
pkg_regexp="^`echo $pkg | sed 's/\./\\\./'` "
if grep -q "$pkg_regexp" ${WORKDIR}/installed_pkgs.txt; then
rootfs_uninstall_packages $pkg
sed -i "/$pkg_regexp/d" ${WORKDIR}/installed_pkgs.txt
fi
done
...
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
Move the bb.utils.remove(self.image_rootfs, True) from the base class
constructor, to Opkg/Ipkg constructors after super's constructor is
called.
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
- Implementation RpmRootfs class
- Refactor list_installed_packages in python
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
- Implementation RpmPM class
- Support rpm incremental image generation
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
Implementation RpmManifest class.
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
This new file contains the python 'populate sdk' implementation of the
old bash populate_sdk_image() function for Opkg and Dpkg.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
This commit contains the following fixes:
* pass the apt config directory to the DpkgPM constructor, so one can
instantiate this class multiple times and give it different config
files (like for creating SDK);
* change constructor argument name from 'dpkg_archs' to 'base_archs';
* export APT_CONFIG environment variable before calling apt-get, not in
constructor. If done in constructor, the last class instantiation,
sets the environment, which is note desireable;
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
Since the Manifest class has this property, use it. This contains the
default package installation order.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
This commit contains several changes:
* it is possible to create manifests for following types of images:
regular image, target SDK and host SDK. To distinguish between these
types of manifests, one has to pass the manifest_type argument to the
contructor or create_manifest() wrapper. The manifest type can have
the following values: image, sdk_host, sdk_target;
* move image_rootfs variable to _create_dummy_initial() since it's used
only here. This function will probably be removed in the future;
* fix a bug in the Dpkg class;
* add INSTALL_ORDER property to Manifest class which contains the
default install order for the packages and will be used Rootfs/Sdk
classes;
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
Remove the directory, manually, in the Rootfs.create() function.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
Additionaly, the commit contains a couple of minor changes
(comments, error printing, etc).
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
This commit will revert on using the bitbake APT_ARGS variable, so users
can alter the way apt is called without needing to change it in code.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
This is needed in order to serialize the index file creation when
multiple do_rootfs tasks are running in the same time.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
Manifest class clients don't really need to know how package types are
encoded.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
In this commit:
* add ability to create initial manifest for opkg;
* make var_map available to all backends;
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
This library will be used to generate the rootfs.
Recommended usage:
create_rootfs(d, manifest_file)
this will determine the PM backend used, save the shell environment and
will call the appropriate backend implementation (DpkgRootfs(d,
manifest_file).create()).
NOTE: this commit adds Dpkg support.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
This new library is intended to be used by the new python rootfs
creation code.
It implements the rpm/dpkg/opkg package management backends: RpmPM,
DpkgPM and OpkgPM.
The base API is this:
update()
install()
install_complementary()
remove()
write_index()
remove_packaging_data()
list_installed()
All implementations have to provide these functions. Some backends may
need to implement additional functions though.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
This new library allows for the creation of 2 types of manifests:
* initial manifest - used by the new rootfs creation routines to
generate the rootfs;
* final_manifest - this will contain all the packages in the image,
after all installations finished;
Usage:
Manifest(d, manifest_dir).create_initial()
Manifest(d, manifest_dir).create_final()
or using the provided wrapper function:
create_manifest(d, False, manifest_dir) -> creates initial manifest
create_manifest(d, True, manifest_dir) -> creates final manifest
If manifest_dir argument is ommited, it defaults to ${WORKDIR}.
NOTE: this commit creates fixed manifests for minimal/sato/sato-sdk
images, for Rpm & Opkg backends, in order to help speed up
development of rootfs refactoring. Dpkg initial manifest creation is
implemented.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
This will replace the old bash image creation code. This needs the
rootfs to be already generated in order to work.
Usage:
Image(d).create()
or using the provided wrapper function:
create_image(d)
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
This helper function will be used to execute pre/post process commands.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
|
It is better to use "git am" when possible to preserve the commit messages and
the mail format in general for patches when those are present. A typical use
case is when developers would like to keep the changes on top of the latest
upstream, and they may occasionally need to rebase. This is not possible with
"git diff" and "diff" generated patches.
Since this is not always the case, the fallback would be the "git apply"
operation which is currently available.
Signed-off-by: Laszlo Papp <lpapp@kde.org>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
Add a cpu_count wrapper function (useful from annonymous python where
the import would be trickier).
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
* I don't have any real evidence or good statistics for this, but when
comparing signature dumps from my big bitbake world builds I usually
see a lot of rebuilds caused by changes in .bbclasses and only very
rare would be the case where oe-core upgrade brings changes in -native
recipes and no change in .bbclasses used from target recipes
* changing the default to include them shouldn't cause significant
increase in rebuilds and sstate reuse a bit safer
* people working on toolchain (e.g. using gcc from AUTOREV) can easily
extend sstate_rundepfilter to ignore them again (it's easier than
removing existing filter), example how add own signature handler in
your layer is here:
https://github.com/openwebos/meta-webos/commit/9ac3a7c803e7793b3274e4998f167b6278db8042
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
to gnome-terminal
By default, all GNOME terminals share a single process,
reducing memory usage. This can be disabled by starting gnome-terminal
with the --disable-factory option
However, gnome-terminal in Fedora 20 does no longer support the
'--disable-factory' flag, so remove it. As the support for 'mate' terminals was
added as a copy of the gnome code in 8cc078a9c679845464c59028f584d7aba098cc1f,
remove the flag here aswell.
Signed-off-by: Jacob Kroon <jacob.kroon@mikrodidakt.se>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Like fetch, unpack and patch, populate_lic doesn't vary between different
archs so we should mark it as such. This means better sstate cache reuse
with fewer duplicate files as well as less confusing sstate debugging.
sstatesig also needs to account for the fact BPN is used for sstate files
in these cases.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
By resetting filesdates at this point, we lose matches from stamps which
may not have been in sstatedir. When we don't have hashes specicifed,
its better to return all matches and have the caller decide which are
relavent and which are not since this function has no ability to
decide. There will almost always be one match from stamps we need
to keep and refer to.
(From OE-Core rev: f4c1c9ad2c7e944d4926d0629611da97f9df6a9a)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
We've dropped sstate-name so we can remove this code. The fallback was
incorrect since we use taskname without the do_ prefix so this patch
updates to account for that too.
(From OE-Core rev: 72ff58124081333d46d37f31f2d1bf40d715e3bd)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|