Commit Graph

68 Commits

Author SHA1 Message Date
Laurentiu Palcu b2c7cc7fe5 image.py, package_manager.py, rootfs.py: dump command output on error
Print the entire command output in case of errors.

(From OE-Core rev: 2253c9ac2caa61dee0bd4fea04d4d77b79be7b36)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-02-11 11:53:44 +00:00
Laurentiu Palcu 12f47c23df lib/oe/package_manager.py: RpmPM: fix issue with multilib builds
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.

(From OE-Core rev: 730d675090eec5c03e444f0448d96a52035d0bef)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-02-11 11:53:44 +00:00
Laurentiu Palcu 847591e41a lib/oe/package_manager.py: check that package list is not empty
If we're just attempting to install packages and the package list is
empty, just return.

(From OE-Core rev: 8bf5d80e3502a71fdda688aace0799b47ae19b3b)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-02-11 11:53:44 +00:00
Laurentiu Palcu f4fa44cf91 rootfs.py, package_manager.py, sdk.py: Fix building from feeds feature for opkg
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;

(From OE-Core rev: 19c538f57c8fa7c566e88a6dbe13ea4826d4f26c)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-02-11 11:53:44 +00:00
Laurentiu Palcu ab8cbf35d6 lib/oe/package_manager.py: OpkgPM, bad recommendation handling change
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.

(From OE-Core rev: 7e518e399da51de3b159bd6804735b2f14c39357)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-02-11 11:53:44 +00:00
Laurentiu Palcu 8af55651ae lib/oe/package_manager.py: do not use stamps
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.

(From OE-Core rev: 276f2a8a072ce243daa74210934ee63046e9c480)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-02-11 11:53:44 +00:00
Laurentiu Palcu 365b77909d lib/oe/package_manager.py: OpkgPM/DpkgPM fixes
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/

(From OE-Core rev: d50a40100763dcbfabec2c147fdfcb46aa909329)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-02-11 11:53:43 +00:00
Laurentiu Palcu ce12c1bf9f lib/oe/package_manager.py: DpkgPM, use lock on deploy dir
Lock deploy directory against concurrent index creation.

(From OE-Core rev: 127d19b84e78b5e650d0e6d7eaf29a8b7d799e5e)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-02-11 11:53:43 +00:00
Laurentiu Palcu 65a28699c8 lib/oe/package_manager.py: RpmPM fixes
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;

(From OE-Core rev: b98c7e4945f1c36a6e4f98144a3af4f3049450ae)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-02-11 11:53:43 +00:00
Hongxu Jia 4a6596d95f lib/oe/package_manager.py: moving global SCRIPTLET_FORMAT and DB_CONFIG_CONTENT to RpmPM
The tweak made the code looks better.

(From OE-Core rev: 8e06be633222635c549d7f067218e8b833e76bda)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-02-11 11:53:43 +00:00
Hongxu Jia c8f41d7e48 package_manger.py/rootfs.py: rename save_rpmpostinist with save_rpmpostinst
The tweak made the code looks better.

(From OE-Core rev: 61981755b4738ccc49be0e790de828f4166ef0e8)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-02-11 11:53:43 +00:00
Hongxu Jia 9c71ee080d lib/oe/package_manager.py: fix invoking rpm save_rpmpostinist failed
- Use self.target_rootfs instead of self.image_rootfs as saved dir;
- Remove redundant comment line;

(From OE-Core rev: 41d6edab676277afbcaa6cf41cd64a5663f09dc7)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-02-11 11:53:42 +00:00
Hongxu Jia c8103fba58 lib/oe/package_manager.py: support RpmPM
- Implementation RpmPM class
- Support rpm incremental image generation

(From OE-Core rev: ca5203d6b1bb0cbf7830ea4f46109c6867138efc)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-02-11 11:53:41 +00:00
Laurentiu Palcu 080ce63516 lib/oe/package_manager.py: fixes for dpkg backend
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;

(From OE-Core rev: dc626cbcfd37c940bb8739b14d3ab8097e1760ea)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-02-11 11:53:40 +00:00
Laurentiu Palcu ed83ace10a lib/oe/package_manager.py: add support for opkg backend
Additionaly, the commit contains a couple of minor changes
(comments, error printing, etc).

(From OE-Core rev: ef3faaef6b1a25c943a8d5594ce55b0e558b62f3)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-02-11 11:53:39 +00:00
Laurentiu Palcu 2979098c57 lib/oe/package_manager.py: use the bitbake APT_ARGS variable
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.

(From OE-Core rev: ae337edc8ac441c947d1543c2800f37104a0be70)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-02-11 11:53:39 +00:00
Laurentiu Palcu 1b3e7f0e27 lib/oe/package_manager.py: add deploy dir locking mechanism
This is needed in order to serialize the index file creation when
multiple do_rootfs tasks are running in the same time.

(From OE-Core rev: cb03d15482569c2e56232c921526938dcecfdb68)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-02-11 11:53:39 +00:00
Laurentiu Palcu e1bb8a61a9 lib/oe/package_manager.py: add new package management library
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.

(From OE-Core rev: 224e5053044b4c7966fea3b8d199a3dfd4fe438e)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-02-11 11:53:38 +00:00