summaryrefslogtreecommitdiffstats
path: root/meta/lib/oe/sdk.py
Commit message (Collapse)AuthorAgeFilesLines
* package_manager/sdk: Use filtered copies of the deploy ipk/deb directoriesRichard Purdie2018-08-151-4/+16
| | | | | | | | | | | | Similar to rpm, use copies of the ipk/deb directories for rootfs construction. This means the image creation code can no longer "see" recipes wich aren't in its dependency chain which is good for a variety of reasons including determinism, incompatible recipe (e.g. systemd/sysvinit) package conflicts and locking performance. (From OE-Core rev: c7c5f4065c102fde4e11d138fb0b6e25bffe0379) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image: Add locale archive optimisationRichard Purdie2018-08-151-47/+4
| | | | | | | | | | | | | Refactor the locale archive function from the SDK to also make it work during general image creation. This reduces the size of the locales from 900MB to 220MB in core-image-lsb-sdk. The exception handling around subprocess was dropped as the standard subprocess exception printing is better handled than the catchall exception. (From OE-Core rev: 8ffd93bdb09b0a4a84b27dafcd684c6abba392ed) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_manager.py: rework postinst_intercept failuresAlexander Kanavin2018-06-181-6/+6
| | | | | | | | | | | | | | | | | | Previously a warning was printed regardless of context and nature of the failure, and because it was only a warning, it was mostly ignored. Now, the following is considered when a failure happens: 1) whether we are installing packages into a target image, or populating a SDK with host or target packages. 2) whether the failure was due to qemu not supporting the target machine. Accordingly, warnings, notes, and failures are printed, and postponing to first boot happens if possible. (From OE-Core rev: a335e78672b1e1ae3ea6427f6a805218e513bb52) Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sdk.py: run postinst interceptsAlexander Kanavin2018-04-051-0/+12
| | | | | | | | | | | | | | Previously this wasn't done, and so any packages installed from populate_sdk would not have the postinsts fully executed (particularly generation of various caches via running nativesdk or target binaries with qemu wasn't working). [YOCTO #12630] (From OE-Core rev: a484ff072eea3f47de2c3348048201249cefa46b) Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sdk: only install locales if we're using glibcRoss Burton2018-03-061-0/+4
| | | | | | | | | Using glibc-locale to install locales only makes sense if we're using glibc. (From OE-Core rev: 8fc80734053645fa893694dfe33ddaee99aa9a1a) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sdk: generate locale archive and remove packagesRoss Burton2018-03-011-2/+54
| | | | | | | (From OE-Core rev: c6f1010a47df33b40320aa5784181b659a3254d7) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sdk: install specified locales into SDKRoss Burton2018-03-011-0/+16
| | | | | | | (From OE-Core rev: 9b1c3dbe79f67d3b46e0f90a73bce6c61f094a50) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/package_manager/sdk: Ensure do_populate_sdk_ext and do_populate_sdk ↵Richard Purdie2018-01-221-2/+8
| | | | | | | | | | | | repos don't conflict The repository indexes updated during do_populate_sdk_ext and do_populate_sdk can conflcit. Add the missing lockfile calls for deb/ipk and in the rpm case, ensure different directories are used for the index for the two sdk cases. (From OE-Core rev: 5e5569c962c9ebc898eeb5044214e95117b190e1) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* nativesdk/sdk: Update sdk dummy providersRichard Purdie2018-01-111-18/+0
| | | | | | | | | | | | | | | | | | When we migrated rpm v5 -> v4, we lost the ability to drop "per file" dependencies from the rpm backend for things like "/bin/bash" and "/usr/bin/env" which meant the sdks were becomming 'bloated'. This restores the functionality using a dummy package, similarly to the way the buildtools perl issue was addressed. It also removes the non-functional old code so as not to confuse people in future. I ran into this problem trying to filter dependencies to only rpms a build directly depends upon and it turns out we have some determinism issues in this area so this is something key to fix. (From OE-Core rev: 9d490dc01dcedb216129b22cbe17a6c99efc4f5c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta/lib/oe/sdk.py: support added for executing pre-target commandsAmarnath Valluri2017-07-061-0/+6
| | | | | | | | | | | | | Added a new POPULATE_SDK_PRE_TARGET_COMMAND variable, which can contain functions need to be executed at pre traget sysroot creation phase. classes/populate_sdk_base.bbclass: Added POPULATE_SDK_PRE_TARGET_COMMAND to sdk command variables list. (From OE-Core rev: b0c65c8a64cd0b77629c9f3c65fc827d4cdcf026) Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/sdk: Adds get_extra_sdk_info to reuse code in buildhistoryFrancisco Pedraza2017-06-121-0/+19
| | | | | | | | | | | | | | This function is going to be used for generating the target and host manifest files packages for eSDK. Added some fixes for buildhistory.bblclass, and docstring for get_extra_sdkinfo at oe.sdk [YOCTO #9038] (From OE-Core rev: f696b3bbe01969ce7ecb8174d63d3e1e172b473e) Signed-off-by: Francisco Pedraza <francisco.j.pedraza.gonzalez@intel.com> Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs_rpm.bbclass: migrate image creation to dnfAlexander Kanavin2017-03-141-3/+4
| | | | | | | | | To properly look at this patch, you probably need a side-by-side diff viewing tool. (From OE-Core rev: 65581c68d130fa74d703f6c3c92560e053857ac7) Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: remove True option to getVar callsJoshua Lock2016-12-161-38/+38
| | | | | | | | | | | | | getVar() now defaults to expanding by default, thus remove the True option from getVar() calls with a regex search and replace. Search made with the following regex: getVar ?\(( ?[^,()]*), True\) (From OE-Core rev: 7c552996597faaee2fbee185b250c0ee30ea3b5f) Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/lib: Complete transition to python3Richard Purdie2016-06-021-3/+1
| | | | | | | | | This patch contains all the other misc pieces of the transition to python3 which didn't make sense to be broken into individual patches. (From OE-Core rev: fcd6b38bab8517d83e1ed48eef1bca9a9a190f57) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/lib: Convert to use python3 octal syntaxRichard Purdie2016-06-021-2/+2
| | | | | | | | The syntax for octal values changed in python3, adapt to it. (From OE-Core rev: 737a095fcde773a36e0fee1f27b74aaa88062386) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sdk.py: preserve packaging data when SDKIMAGE_FEATURES has "package-management"Denys Dmytriyenko2016-04-291-4/+14
| | | | | | | | | | | | | | | | | | | | | | | This is not enabled by default, as there are still limitations and possible issues with opkg (and rpm?) packaging data containing broken symlinks for local indexes: http://cgit.openembedded.org/openembedded-core/commit/?id=c8e0ec2da9ad4ce1c103966906a85f68c15400dd There are other use cases for the packaging data to be available in SDK, since it provides comprehensive info about SDK's contents and in the case of opkg and dpkg is all text-based and can be easily parsed by simple scripts. Introduce new "package-management" flag for SDKIMAGE_FEATURES list (similar to the one already used for IMAGE_FEATURES) that controls presence of the packaging data in resulting SDK, while unifying this behavior across the board for supported pkg managers - rpm, opkg, dpkg. (From OE-Core rev: 9ab934e4aecb759c922049245888dcd2a8c55477) Signed-off-by: Denys Dmytriyenko <denys@ti.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/sdk: Partially revert "sdk.py: fix conflicts of packages"Richard Purdie2016-01-241-22/+8
| | | | | | | | | | | | OE-Core rev: f2b64f725803ad8be7c2876c531e057a4fe5ca7c (poky 1362986886cc96c8cc11fb60795f729b41770414) unintentionally broke opkg/dpkg multilib support within the SDK by making things not honour self.install_order. This reinstates that code for opkg/dpkg but not rpm where the original problem was. (From OE-Core rev: 98b585120137a3db07ed742a8f18223883ad6dc5) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/rootfs: Use list_pkgs() instead of list()Mariano Lopez2016-01-201-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | This patch changes the use list_pkgs() instead of list() from class RpmPkgsList. The change is in two functions, image_list_installed_packages from rootfs.py and sdk_list_installed_packages from sdk.py. With this change the functions calling the functions listed above, must format the output as they required. The formatting can be done using format_pkg_list() from oe.utils. The classes calling the afected functions are changed too with this patch, to keep the same functionality using the new data structure. [YOCTO #7427] (From OE-Core rev: 983ea373362514e5888bd1d7d9c4f136c94b00f2) Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sdk.py / OpkgSdk: remove_packaging_data() after installHaris Okanovic2015-12-091-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Run remove_packaging_data() on both host and target sysroots to wipe opkg state after install, similar to what RpmSdk does. Use case: Opkg may download local package indexes (I.e. file:// URLs) by sym-linking them into /var/lib/opkg/lists/ instead of copying [1]. This leaves behind broken symlinks under the lists directory when using opkg to build SDK sysroots. The -h option may be set via SDKTAROPTS in some configurations to create symlink-less SDK archives for Windows file systems. Sysroots containing broken symlinks will fail to archive under this configuration. Testing: Verified /var/lib/opkg/ is empty after running populate_sdk() in a Fido based distribution. [1] http://git.yoctoproject.org/cgit/cgit.cgi/opkg/commit/?h=opkg-0.3.x&id=f9022a8520fcde8f1b71424d26a652c218fce685 (From OE-Core rev: c8e0ec2da9ad4ce1c103966906a85f68c15400dd) Signed-off-by: Haris Okanovic <haris.okanovic@ni.com> Reviewed-by: Alejandro del Castillo <alejandro.delcastillo@ni.com> Natinst-ReviewBoard-ID: 119065 Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* populate SDK: prepare calling of bb.utils for exceptionsBenjamin Esquivel2015-10-211-24/+52
| | | | | | | | | | | | | | | | | bb.utils.remove, bb.utils.movefile and bb.utils.mkdirhier can throw exceptions that need handling and proper error messages more work is required for these methods to handle properly the exceptions that can be raised within the various OS calls they make but this is a start to at least not hide the errors in the requested operations [YOCTO#8213] (From OE-Core rev: 2e81dbdce6f92908c4d4c980af032516581178de) Signed-off-by: Benjamin Esquivel <benjamin.esquivel@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sdk.py: fix conflicts of packagesJian Liu2015-09-041-12/+33
| | | | | | | | | | | | | | | | If packages are conveyed to smart to install at the same time, conflicts will not happen. Try to install packages into sdk image at the same time. This patch is not so perfect. For example, IMAGE_INSTALL += "lib32-ncurses" IMAGE_INSTALL += "ncurses-dev" ncurses-dev and lib32-ncurses-dev will have conflicts during packages installation. (From OE-Core rev: f2b64f725803ad8be7c2876c531e057a4fe5ca7c) Signed-off-by: Jian Liu <jian.liu@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/sdk.py: Add SDKIMAGE_INSTALL_COMPLEMENTARY capabilities to DpkgSdkPau Espin Pedrol2015-01-231-0/+2
| | | | | | | | | | | | | | | | | Creating an SDK by means of do_populate_sdk, complementary packages (SDKIMAGE_FEATURES = "dev-pkgs dbg-pkgs") are not installed when using the deb packaging system. The reason is that the call to install the complementary packages is missing from the deb backend. This patch fixes that. [YOCTO #7160] (From OE-Core rev: 0bcca69ea97ac51acf290f8f1da1bde715ab51c4) (From OE-Core rev: 6755935e58b0414870adb7c7abab1aa331596209) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sdk.py: fix write target sdk manifest failed based on ipkHongxu Jia2014-10-101-1/+1
| | | | | | | | | | | | | | | | | bitbake meta-toolchain ls tmp/deploy/sdk/poky-glibc-x86_64-meta-toolchain-i586-toolchain-1.7.manifest -al ... |-rw-rw-r-- 1 root root 0 Oct 10 15:05 tmp/deploy/sdk/poky-glibc-x86_64- meta-toolchain-i586-toolchain-1.7.manifest ... The manifest is empty, the reason is target's ipk config path is d.getVar('IPKGCONF_TARGET') rather than d.getVar('IPKGCONF_Target') (From OE-Core rev: 81b3cc448f040dcb4c2f2b05983231ac53270663) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/sdk: Ensure target directory exists before creating the linkRichard Purdie2014-04-301-0/+1
| | | | | | (From OE-Core rev: d8096433c27643f39eeb29d34e20328a39981fd6) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs.py, sdk.py: adjust/create the wrappers for creating installed ↵Laurentiu Palcu2014-03-211-0/+18
| | | | | | | | | | | | | | | | 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>
* package_manager.py, rootfs.py, sdk.py: add Indexer classLaurentiu Palcu2014-02-141-43/+5
| | | | | | | | | | | | | | | | | | | 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>
* rootfs.py, package_manager.py, sdk.py: Fix building from feeds feature for opkgLaurentiu Palcu2014-02-111-1/+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/sdk.py: support RpmRootfsHongxu Jia2014-02-111-2/+136
| | | | | | | | | | - Implementation RpmSdk class (From OE-Core rev: 417b27ce5c1ea2fe2057caa898291cce0c043359) 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/sdk.py: add SDK classLaurentiu Palcu2014-02-111-0/+209
This new file contains the python 'populate sdk' implementation of the old bash populate_sdk_image() function for Opkg and Dpkg. (From OE-Core rev: 6247efaba592db924e6466c39aef441f0e07c62a) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>