summaryrefslogtreecommitdiffstats
path: root/meta/lib/oe/rootfs.py
Commit message (Collapse)AuthorAgeFilesLines
...
* rootfs.py: Improve rpm log_check_regexEd Bartosh2015-05-221-1/+3
| | | | | | | | | | | | | | | | | Current regex can cause false negatives if paths in bitbake log files contain "ERR" or "Fail". do_rootfs fails with return code 1 in this case. Improved regexp is based on error messages produced by rpm. Those are found by analyzing rpm source code. [YOCTO #7789] (From OE-Core rev: 38871dc0295fb2516e1c8b1dc9948c2d2fc4d2cd) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs.py: Also uninstall update-alternatives and shadow for read-only-rootfsAndreas Oberritter2015-03-251-0/+2
| | | | | | | | | | This brings back commit d41097a970e9bfa553cd4bc3c9fad4b9073d7bd5, which got lost during transition from image.bbclass to rootfs.py. (From OE-Core rev: f4932e2e640764d16f1f6d398390ebfb376f4cf1) Signed-off-by: Andreas Oberritter <obi@opendreambox.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs.py: add log checking ability for deb and ipkChen Qi2015-03-221-17/+44
| | | | | | | | | | Extract the common codes of log checking and add the ability of log checking for deb and ipk package backend. (From OE-Core rev: d995871b433643958845e1d476813fa12888100e) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs.py: two changes regarding log checkingChen Qi2015-03-221-3/+2
| | | | | | | | | | | | | | | | | | | This patch involves two changes. 1. Extend the regular expression to also catch '^WARNING:' in _log_check_warn. Warnings from bb.note or bbnote begin with 'WARNING:'. So if we decide to catch warnings at rootfs time, we should not ignore those produced by the build system itself. 2. Delay _log_check in rootfs process so that more warnings are likely to be catched. Note that we should at least delay the _log_check after the execution of ROOTFS_POSTPROCESS_COMMANDS, because we want to catch warnings there. (From OE-Core rev: 4c9213dffb71510ba99a0665f620e9de4a2dfeb5) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_manager: Create variable for install_dir_nameSaul Wold2015-03-201-1/+4
| | | | | | | | | | | | | | | | This patch creates a variable for the install_dir name so it can be something other than /install, also by doing this we can correctly clean up the empty directories (/install/tmp) during the clean-up phase. The new default is /oe_install so as to not conflict with other possible packages that might use /install to place files. [YOCTO #7353] (From OE-Core rev: 335effec42099666d0fb433b31981edcb0dae9a0) Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs.py: fix logic error so that warnings are checkedChen Qi2015-03-161-1/+1
| | | | | | | | | | | | | | | | | | | | | The following commit caused log checking for warnings not working for RPM rootfs. rootfs.py: ignore "NOTE:" when catching warnings The problem is that checking for warnings is always skipped because the following statement is always true. if 'log_check' or 'NOTE:' in line: This patch fixes the above problem so that warning checking in RPM rootfs can work again. (From OE-Core rev: 3e9e2ce380a73b50cbfc1995e361cfe879de6a8a) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs.py: ignore "NOTE:" when catching warningsRicardo Neri2015-02-141-1/+1
| | | | | | | | | | | | | The script looks for any warn|Warn pattern in the log. However, it may happen that the warn|Warn pattern appears as part of the name of the objects described in the NOTE lines of the log. Thus, to avoid false positives, ignore the line if it contains the word "NOTE:" (From OE-Core rev: 0387d0957909a9977efd8b2008e4d1c6d81ceb2a) Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: make kernel depmod data optionalDan McGregor2015-02-031-1/+2
| | | | | | | | | | | | | This allows an image to skip the creation of kernel depmod data. It is useful for creating an image that will run as a container image inside a host with no knowledge of the parent's kernel. (From OE-Core rev: ca641aedff5f6bd155796ead02cb2eb871f8c17a) Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/image: ensure uninstalled packages do not appear in manifestsPaul Eggleton2015-02-031-25/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the rewrite of the image construction code in python a few releases ago, we remove a couple of packages from the image as one of the final steps when constructing the image (notably update-rc.d and run-postinsts). However, because of the order of operations, these packages are still listed both in the buildhistory installed_package*.txt files and in the manifest file created next to the image, which is wrong. There were two possible solutions to this: (1) change the order such that the uninstallation occurs before calling ROOTFS_POSTPROCESS_COMMAND or (2) add another hook variable in such that we can have the package list collection code run at the right time. Because it's currently possible (but very much not recommended) to install additional packages within ROOTFS_POSTPROCESS_COMMAND, which may have postinstall scripts and thus require the packages we would otherwise uninstall if we were to take option 1, option 2 is really the least likely to cause problems. Therefore, add ROOTFS_POSTUNINSTALL_COMMAND and make the image and buildhistory classes use it. Fixes [YOCTO #6479]. (From OE-Core rev: b198a189228648057c3be7d068598f50841b3bf9) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/rootfs.py: rename _uninstall_uneeded to fix spelling errorPaul Eggleton2015-02-031-2/+2
| | | | | | | | | Rename it to _uninstall_unneeded. (From OE-Core rev: cb217f442b8143d88112bebe4011051efbd905a3) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel: Fix depmod for multilibRichard Purdie2015-01-291-1/+1
| | | | | | | | | | | | Using populate_sysroot for this data was a nice idea but flawed as it doesn't work in multilib builds. Instead we can use PKGDATA_DIR since this is consistent over multilib builds. It also turns out to be slightly neater code too. Hopefully this resolves the problem once and for all. (From OE-Core rev: 6cccae3ca54c1177a1d91d23c3e151d74e735ee9) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel/image/depmodwrapper: Fixups for depmodRichard Purdie2015-01-231-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | With the rpm package backend enabled, running: bitbake <image> bitbake virtual/kernel -c clean bitbake <image> -c rootfs -f results in an image with incorrect kernel module dependency information. The problem is that the System.map and kernel-abiversion files are needed for depmod and after the recent kernel changes, these are no longer in sstate. Its reasonable to require the kernel to unpack/build if you're about to build a module against it. It is not reasonable to require this just to build a rootfs. Therefore stash the needed files specifically for depmod. Also fix some STAGING_KERNEL_DIR references which were incorrect, found whilst sorting through his change. (From OE-Core rev: b851504dcf5e147c9efb1c7b6a4d22c1a1a87cd7) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/rootfs.py: Fix reference to abiversion file locationRichard Purdie2015-01-161-1/+1
| | | | | | | | | | | With the changes to kernel layout, we need to refer to the correct location of the kernel abiversion file. Thanks to Saul, Randy, Darren and Bruce to figuring out the issue. (From OE-Core rev: 6541799c2e9a5a1586676c207d62f885c70e24dc) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs.py: tweak inner warn message catchingHongxu Jia2014-11-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | The fix filters out irrelevant messages, and makes the catching more accurate, the inner warn message in do_rootfs usually comes from the output of complementary install, and pattern the format to catch it. Here is the example of irrelevant messages: ... |WARNING: log_check: There is a warn message in the logfile |WARNING: log_check: Matched keyword: [warn] |WARNING: log_check: `tmp/deploy/rpm/core2_64/pam-plugin-warn -1.1.6-r5.0.core2_64.rpm' -> `tmp/work/intel_x86_64-wrs-linux/ wrlinux-image-installer/1.0-r0/rootfs/Packages.intel/./core2_64/ pam-plugin-warn-1.1.6-r5.0.core2_64.rpm' ... (From OE-Core rev: 4ceb3b5f928af7f631294c83b83e3a3c89cbf890) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs.py: catch inner warn messageHongxu Jia2014-09-301-1/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | Package managements (smart/apt-get/opkg-cl) generate some warn messages to stdout, and we need to catch them and output by bb.warn. Here is an example, while invoking smart to attempt install doc packages, if install failed, it generates warn message to stdout. ... |warning: Can't install util-linux-doc-2.24.2-r1@i586: Can't install util-linux-doc-2.24.2-r1@i586: no package provides info ... The fix catches it and outputs: ... |WARNING: log_check: There is a warn message in the logfile |WARNING: log_check: Matched keyword: [warn] |WARNING: log_check: warning: Can't install util-linux-doc-2.24.2-r1@ i586: Can't install util-linux-doc-2.24.2-r1@i586: no package provides info ... (From OE-Core rev: f8d725f49f2be4b854f523a5ee3a5c4357e67e30) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_manager.py: use RPM_PREFER_ELF_ARCHRobert Yang2014-09-101-1/+1
| | | | | | | | | | | | | Use RPM_PREFER_ELF_ARCH to instead of RPM_PREFER_COLOR as rpm upstream suggested, and use "4" to instead of "3" since it is a bit mask (not enumeration), so we need "4" here. (From OE-Core rev: 8dcfa7143a6690455c3bd5772621f142f2d9e559) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_manager.py: set preferred ABI for rpmRobert Yang2014-08-021-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | When using the RPM packaging backend to generate a rootfs there needs to be a way to configure the preferred ABI to resolve ELF file conflicts. Currently RPM resolves ELF file conflicts with the last-installed wins. Using SMART it's difficult to know what the last installed will be. There are three specific policies that can be selected: 1: ELF32 wins 2: ELF64 wins 3: ELF64 N32 wins (mips64 or mips64el only) Another option "0" is uncontrollable, which means that if two are being installed at once Elf64 is preferred, but if they're being installed in two different transactions, last in wins, so we don't document it. Add RPM_PREFER_COLOR to let the user config the preferred ABI. [YOCTO #4073] (From OE-Core rev: f56d7be2c35cedcd763ba66913982aa4c425d561) 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>
* lib/oe/rootfs: Improve error message whitespaceRichard Purdie2014-07-281-1/+1
| | | | | | | | [YOCTO #6493] (From OE-Core rev: 91ca6b1b2e009381d8e813906654c0958eee7efc) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass/rootfs.py: add variables to rootfs[vardeps]Roxana Ciobanu2014-07-231-0/+21
| | | | | | | | | | | | | | | | | Added base variables and package backend specific variables to rootfs[vardeps] in order for rootfs to rebuild when changes are made. Set some variables as [func] to inform bitbake that they are shell scripts, so that it invokes its shell dependency parsing. Without marking them as functions, changes in the actual function body would not trigger rootfs rebuilds. [YOCTO #6502] (From OE-Core rev: b8b6214b885a0757f0e628937f8fe21c92c45155) Signed-off-by: Roxana Ciobanu <roxana.ciobanu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs: Remove the extraneous install directorySaul Wold2014-07-191-0/+1
| | | | | | | | | | | | The /install/tmp diectory is created during installation by the smart package manager, we need to clean it up here [YOCTO #6497] (From OE-Core rev: d4f4ad5edd8914e696722c1a1c3ba7de091d4c19) Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs.py: change the logic in _uninstall_unneededChen Qi2014-06-131-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, if we have 'package-management' and 'read-only-rootfs' both in IMAGE_FEATRUES, we would meet the following error at system start-up. rm: can't remove '/etc/rcS.d/S99run-postinsts': Read-only file system However, what's really expected is that when there's no postinstall script at system start-up, the /etc/rcS.d/S99run-postinsts should not even be there. Whether or not to remove the init script symlinks to run-postinsts should not depend on whether we have 'package-management' in IMAGE_FEATURES; rather, it should only depend on whether we have any postinstall script left to run at system start-up. This patch changes the _uninstall_unneeded function based on the logic stated above. [YOCTO #6257] (From OE-Core rev: 6c2f7ecee754ff3f29fdde17c0363f5d138057ff) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Globally replace oe.utils.contains to bb.utils.containsOtavio Salvador2014-04-251-4/+3
| | | | | | | | | | | BitBake has the exact same code as oe.utils.contains so there's no reason to duplicate it. We now rely on the bb.utils.contains code for metadata. (From OE-Core rev: 93499ebc46547f5bf6dcecd5a786ead9f726de28) Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs.py: introduce USE_DEVFS checkMatthieu Crapet2014-04-041-1/+2
| | | | | | | | | | | | Since commit a83144bac8d67704ff66f5dc0fc56f5b63979694 (2014-02-11), USE_DEVFS is not considered anymore. For compatibility, let's restore USE_DEVFS semantic. Also add USE_DEVFS to documentation.conf. (From OE-Core rev: d12a5e38a02abe3feb3db8ae5ffd9a5005124294) Signed-off-by: Matthieu Crapet <Matthieu.Crapet@ingenico.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs.py: add new cleanup methodLaurentiu Palcu2014-03-301-0/+25
| | | | | | | | | | | | | | This commit adds a new _cleanup() internal method that will be called at the end of rootfs creation, so that each backend can delete various files that were probably generated during rootfs postprocess execution, etc. [YOCTO #6049] (From OE-Core rev: 6151d69875f3f4f097b6e2fdef2a0f3ab391e2fd) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs.py, sdk.py: adjust/create the wrappers for creating installed ↵Laurentiu Palcu2014-03-211-15/+4
| | | | | | | | | | | | | | | | packages list Since we created a new PkgsList object that will deal with listing the installed packages in a rootfs, use the new class both for images and SDKs in the wrapper functions. The old list_installed_packages() wrapper listed only the packages inside an image rootfs. It didn't deal with target/host SDK rootfs's. (From OE-Core rev: 8fc18e67504db5b6df3fdd239c6187a71af52656) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* do_rootfs: Added PACKAGE_FEED_URIS functionalityDavid Nyström2014-03-071-12/+4
| | | | | | | | | | | | | | | | | | | | | Adding a common interface to add predefined package manager channels to prebuilt rootfs:es. Adding PACKAGE_FEED_URIS = "http://myre.po/repo/, will assume repo directories named (rpm,ipk,deb) as subdirectories and statically add them to the rootfs, using the same PKG_ARCHs as the build which produced the images. Tested with RPM, IPK and DEB. deb feed functionality seem broken, is anyone using this ? (From OE-Core rev: 9b8811045546ad67b4695d980f09636d5506e50c) Signed-off-by: David Nyström <david.c.nystrom@gmail.com> Signed-off-by: David Nyström <david.nystrom@enea.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.py, rootfs.py, package_manager.py: redirect stderr to stdout when ↵Laurentiu Palcu2014-03-071-1/+1
| | | | | | | | | | | | | | | | | | | calling check_output() If a command executed with subprocess.check_output() fails, the subprocess.CalledProcessError.output contains only STDOUT and the user needs to check the log.do_rootfs to see any other details. This commit forwards stderr to stdout so that, in case of failure, the entire error output will be displayed in terminal. [YOCTO #5902] (From OE-Core rev: 4661f1441429952f30e19cebd93dc42ce31fd868) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/rootfs: Fix LDCONFIGDEPEND checkRichard Purdie2014-02-251-1/+1
| | | | | | | | | We shouldn't be running this if it expands to None or "" or False so update the code accordingly. (From OE-Core rev: 255079780729f0dd9df6f35302169e0c8480eced) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs.py: tweak _multilib_sanity_test for ipk incremental image generationHongxu Jia2014-02-211-2/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | The _multilib_sanity_test installs multilib packages in a temporary root fs, and compare with the current image to figure out duplicated files that come from different packages. While incremental image generation enabled and the previous image was existed, there was an Multilib check error: ... ERROR: Multilib check error: duplicate files tmp/work/qemux86_64-poky- linux/core-image-minimal/1.0-r0/multilib/lib32/lib/libc.so.6 tmp/work/ qemux86_64-poky-linux/core-image-minimal/1.0-r0/rootfs/lib/libc.so.6 is not the same ... The reason is the file in the existing image has been prelinked by previous image generation and the file in a temporary root fs is not prelinked, even though both of them came from the same package, the Multilib check failed. [YOCTO #1894] (From OE-Core rev: 8d813f614cdfda31c85bbaf133f2822f90a4a78a) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs.py: support BAD_RECOMMENDATIONS for ipk incremental image generationHongxu Jia2014-02-211-1/+28
| | | | | | | | | | | | | | While incremental image generation enabled and the previous image is existed, if BAD_RECOMMENDATIONS is changed, the operation on the existing image is complicated, so remove the old image in this situation. The same with PACKAGE_EXCLUDE and NO_RECOMMENDATIONS. [YOCTO #1894] (From OE-Core rev: 0566de3fa424af3bdfadcd0a08ce4c214abda083) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs.py: support ipk incremental image generationHongxu Jia2014-02-211-3/+47
| | | | | | | | | | | | The incremental image generation is based on the previous existing image, adds new packages, upgrades existing packages, and removes unused packages. [YOCTO #1894] (From OE-Core rev: adf587e55c0f9bc74f0bef415273c937401baebb) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs.py: Check for LDCONFIGDEPEND being empty stringKhem Raj2014-02-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | We override LDCONFIGDEPEND to be empty string for uclibc however the current check is for it being None as a result the function is still executed but ldconfig-native is not built as dependency for rootfs when building with uclibc Fixes errors like below File: '/home/kraj/work/angstrom-repo/sources/openembedded-core/meta/lib/oe/rootfs.py', lineno: 191, function: _run_ldconfig 0187: def _run_ldconfig(self): 0188: if self.d.getVar('LDCONFIGDEPEND', True) is not None: 0189: bb.note("Executing: ldconfig -r" + self.image_rootfs + "-c new -v") 0190: self._exec_shell_cmd(['ldconfig', '-r', self.image_rootfs, '-c', *** 0191: 'new', '-v']) (From OE-Core rev: 315a71e00928fea6715087b1ce66f8a8a91d5fe0) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_manager.py, rootfs.py, sdk.py: add Indexer classLaurentiu Palcu2014-02-141-58/+0
| | | | | | | | | | | | | | | | | | | Because the package-index.bb needs to create package indexes outside do_rootfs environment, move the indexing capability out of PackageManager class to a smaller Indexer class. This commit: * simply moves the indexing functions for ipk/deb with no changes; * rewrites the RPM indexing function so that it can be easily moved out of the PackageManager class; * removes some RPM duplicate code, moves it into a method inside RpmPM class and changes the RpmPM constructor so that the new method is effective; (From OE-Core rev: d339d6f48f81330e94162f333aad76f3c65d6bfd) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/rootfs.py: fix RPM multilib issueLaurentiu Palcu2014-02-131-4/+11
| | | | | | | | | | | | | | | | 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. (From OE-Core rev: 1fa94697163f16cdbb1499b57f1bc018546974ee) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* (image|rootfs_ipk).bbclass, rootfs.py: ipk multilib fixesLaurentiu Palcu2014-02-131-1/+3
| | | | | | | | | | | 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. (From OE-Core rev: 4615ac771175cd413f461c081f7d3191c49ccc4b) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.py, package_manager.py, rootfs.py: dump command output on errorLaurentiu Palcu2014-02-111-1/+1
| | | | | | | | | 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>
* rootfs.py, package_manager.py, sdk.py: Fix building from feeds feature for opkgLaurentiu Palcu2014-02-111-2/+3
| | | | | | | | | | | | | | | 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>
* lib/oe/rootfs.py: OpkgRootfs, fix issue in _get_delayed_postinsts()Laurentiu Palcu2014-02-111-1/+1
| | | | | | | | | Status file path was not created correctly. (From OE-Core rev: 628c4bce36ca0bc2b316ec78cf58b02a42e7f35f) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/rootfs.py: warn the user if intercept hooks failLaurentiu Palcu2014-02-111-2/+2
| | | | | | | | | | | | | | | 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. (From OE-Core rev: 5666ce9720132a76b5ff6e99712e240b8dc8e47a) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_manger.py/rootfs.py: rename save_rpmpostinist with save_rpmpostinstHongxu Jia2014-02-111-1/+1
| | | | | | | | | | 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>
* lib/oe/rootfs.py: fix invoking _run_intercepts failedHongxu Jia2014-02-111-0/+1
| | | | | | | | | | - The variable D is needed by intercepts scripts; (From OE-Core rev: 3d37dcdb836b59d8a7f880ce22d06760eb8af232) 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>
* lib/oe/rootfs.py: fix invoking rpm _handle_intercept_failure failedHongxu Jia2014-02-111-1/+1
| | | | | | | | (From OE-Core rev: 7858c8ac141a7bf66c65ddc7e4b39ad937a7e084) 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>
* rootfs.py: strip kernel-abiversion useless readlineHongxu Jia2014-02-111-1/+1
| | | | | | | | | | | | | | | 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) ... (From OE-Core rev: 17a0a8f44fe344ab1ae49730d9f17705b43987e5) 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>
* rootfs.py: fix uninstall uneeded pkgs failedHongxu Jia2014-02-111-4/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 ... (From OE-Core rev: 9cdecb3935962653733705ad6313558bfd4fda29) 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>
* lib/oe/rootfs.py: Tweak the rootfs removing operationHongxu Jia2014-02-111-3/+4
| | | | | | | | | | | | Move the bb.utils.remove(self.image_rootfs, True) from the base class constructor, to Opkg/Ipkg constructors after super's constructor is called. (From OE-Core rev: 66d86c4bbb9423c9fe0fc89005530be54068d401) 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>
* lib/oe/rootfs.py: support RpmRootfsHongxu Jia2014-02-111-6/+205
| | | | | | | | | | | - Implementation RpmRootfs class - Refactor list_installed_packages in python (From OE-Core rev: b3eeb0edf3f0296d30d7e62628bde722402bdb9d) 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>
* lib/oe/rootfs.py: use Manifest.INSTALL_ORDERLaurentiu Palcu2014-02-111-5/+1
| | | | | | | | | | Since the Manifest class has this property, use it. This contains the default package installation order. (From OE-Core rev: bb1fb4ceb544c161ed30cd102155657e3771859b) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass, lib/oe/rootfs.py: remove intercept_scripts directoryLaurentiu Palcu2014-02-111-0/+2
| | | | | | | | | Remove the directory, manually, in the Rootfs.create() function. (From OE-Core rev: 37a9dc05272e7e49c8a475ccb3d10880dcee4763) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/rootfs.py: add support for opkg backendLaurentiu Palcu2014-02-111-9/+149
| | | | | | | (From OE-Core rev: 0650e1f2354cdb6f925040d9d07e2c785274a592) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/rootfs.py: add new library for rootfs creationLaurentiu Palcu2014-02-111-0/+328
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. (From OE-Core rev: 5ad8c21bc7f2213d1287cecf07d00a61d1456ff7) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>