summaryrefslogtreecommitdiffstats
path: root/meta/classes/package_rpm.bbclass
Commit message (Collapse)AuthorAgeFilesLines
* package_rpm.bbclass: Replace -linux-gnun32 with -linux.* in RPM platform fileLei Liu2013-12-121-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | On a multilib system when one of the multibs has a different OS then other multilibs a failure can occur during the install process because RPM assumes all systems have the same OS. When an n32 platform is selected as an alternative multilib, it shows up as mips64_n32-.*-linux-gnun32 in /etc/rpm/platform. This causes problems when the smart tool tries to add a channel for the multilib. RPM archScore call always returns zero for arch "mips64_n32" - after appending default vendor and os, it finds "mips64_n32-wrs-linux" doesn't match any predefined platforms. Fix this by removing the restriction of -gnun32 suffix in platform file. (From OE-Core master rev: d9489c44ee4f195ae1b09f340b9545cddba58145) (From OE-Core rev: f0118b605b3727b5ca5d560094bb4dd2ff29c310) Signed-off-by: Lei Liu <lei.liu2@windriver.com> Signed-off-by: Jeff Polk <jeff.polk@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* run-postinst: Ensure that the postinsts are orderedMark Hatle2013-10-071-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | The postinst files were being generated using purely the name of the package, this unfortunately meant the run order would be based on the name of the package and not the order in which it was installed on the filesystem. If package A requires package Z to be fully installed, this causes a problem. Note: rpm - as the rpm based install proceeds the order is defined and captured. so the problem is resolved there. ipk - this unfortunately does not appear to solve the problem for ipk, as the status file is not ordered in any appreciable way. This does not cause any regressions however and sets the stage for a proper fix. deb - this -may- fix the deb install. Early testing indicates at least some ordering to the status file. But it's unclear if it completely resolves the issue. (From OE-Core rev: b5bafccb89f45d7cdd515b4ba45e0152ca7922de) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm.bbclass: Workaround failure in attemptonly installsMark Hatle2013-10-071-1/+1
| | | | | | | | | | | | | | | | | | | | [YOCTO #5313] When performing an attemptonly install, we should skip an errors and continue to install everything else. However, there is a case where two packages can conflict, and cause a hard failure. This workaround, ignores this and allows the image to be constructed. Note: Some items in the failed transaction may not get installed. To fix this properly we need to find the issue in smart, and make it ignore or at least attempt to resolve these kinds of conflicts. (From OE-Core rev: 4228005689e31ebcafcf0969e80fcc021d1ae063) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/package_rpm: fix bitbake package-index for RPMPaul Eggleton2013-09-261-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | The function that "bitbake package-index" relies upon when using the RPM package backend (package_update_index_rpm()) uses MULTILIB_PREFIX_LIST to get the list of package architectures to be indexed, but that variable is only set when populate_sdk_rpm or rootfs_rpm are inherited, which is not the case for the package-index recipe. Until we're able to refactor this properly, for minimal impact just use the value of ALL_MULTILIB_PACKAGE_ARCHS if MULTILIB_PREFIX_LIST does not give us any architectures (the equivalent function in the ipk backend uses the former variable). Having "bitbake package-index" working is important because it's the only practical way of indexing RPM packages for use as a feed; host versions of createrepo won't work properly because they won't support indexing recommends relationships. Stopgap fix for [YOCTO #5278]. (From OE-Core rev: 9359719c563e1ab0ff10186d1a1b6bde7840dbf3) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake.conf/package: Collapse PKGDATA_DIR into a single machine specific ↵Richard Purdie2013-09-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | directory Currently we have a hierarchy of pkgdata directories and the code has to put together a search path and look through each in turn until it finds the data it needs. This has lead to a number of hardcoded paths and file globing which is unpredictable and undesirable. Worse, certain tricks that should be easy like a GL specific package architecture become problematic with the curretn search paths. With the modern sstate code, we can do better and construct a single pkgdata directory for each machine in just the same way as we do for the sysroot. This is already tried and well tested. With such a single directory, all the code that iterated through multiple pkgdata directories and simply be removed and give a significant simplification of the code. Even existing build directories adapt to the change well since the package contents doesn't change, just the location they're installed to and the stamp for them. The only complication is the we need a different shlibs directory for each multilib. These are only used by package.bbclass and the simple fix is to add MLPREFIX to the shlib directory name. This means the multilib packages will repackage and the sstate checksum will change but an existing build directory will adapt to the changes safely. It is close to release however I believe the benefits this patch give us are worth consideration for inclusion and give us more options for dealing with problems like the GL one. It also sets the ground work well for shlibs improvements in 1.6. (From OE-Core rev: 1b8e4abd2d9c0901d38d89d0f944fe1ffd019379) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/package_rpm: remove unsed outdir variableStefan Stanacar2013-09-111-2/+1
| | | | | | | | | Not only outdir had the wrong value, it wasn't used actually used in that function. (From OE-Core rev: 5db4b53e5d969a6da314904fa2335462947c97ea) Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python-smartpm: Add an attempt install modeMark Hatle2013-09-111-5/+2
| | | | | | | | | | | | | | [ YOCTO #3723 ] Add a mode to smart that will allow an installation to continue, instead of failure in the case that one or more items is uninstallable. Uninstallable packages are simply ignored, and no error is generated. (From OE-Core rev: bdf07b1698d228dc7ff555199a269b1ff8ceca19) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm.bbclass: Fix no_recommendations and package_excludeMark Hatle2013-09-061-2/+2
| | | | | | | | | | | | When the code was refactored to address review comments, the wrong version was sent to the community. Replace the $1 with ${target_rootfs} Fix identified by: Yue Tao <yue.tao@windriver.com> (From OE-Core rev: a04f4fe8db425f0ea87a67b5c72d61816b8d53e2) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: Don't use deprecated bitbake APIRichard Purdie2013-09-011-2/+2
| | | | | | | | | | These have been deprecated for a long time, convert the remaining references to the correct modules and prepare for removal of the compatibility support from bitbake. (From OE-Core rev: 6a39835af2b2b3c7797fe05479341d71a3f3aaf6) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm.bbclass: NO_RECOMMENDATIONS supportMark Hatle2013-08-221-0/+3
| | | | | | | | | | | | | | | | | | Add NO_RECOMMENDATIONS support. A way to disable all recommended packages from being installed. This will help shrink the size of the resulting filesystem. Add documentation on NO_RECOMMENDATIONS and BAD_RECOMMENDATIONS. Note, using NO_RECOMMENDATIONS has side effects such that kernel-modules may not have been installed. A user will need to manually add to their image any kernel-modules required to be on the image for functionality. (From OE-Core rev: 0341bfa886ea851f5a394051545b4e624d8003dd) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm.bbclass: Add support for PACKAGE_EXCLUDE to RPM installsMark Hatle2013-08-221-0/+5
| | | | | | | | | | | Using the new smart exclude mechanism an error will be generated in the excluded package is required for the image to be generated. (From OE-Core rev: 238c46c03d0d9c35523c78b94bfebb57904bac5a) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/buildhistory: record size of installed package not compressed archiveMartin Jansa2013-08-161-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | * usually it's more important to know how much space will each package take on target device then size of compressed package * example for libewebkit0 with 4 different architectures, interesting that om_gta02 .ipk is bigger but it's smaller when installed before: MACHINE DEFAULTTUNE SIZE (.ipk file) om_gta04 cortexa8t-neon 15996 KiB libewebkit0 qemux86_64 x86-64 16992 KiB libewebkit0 spitz xscale 16148 KiB libewebkit0 om_gta02 arm920t 16260 KiB libewebkit0 after: MACHINE DEFAULTTUNE SIZE (installed) om_gta04 cortexa8t-neon 60544 KiB libewebkit0 qemux86_64 x86-64 63720 KiB libewebkit0 spitz xscale 60588 KiB libewebkit0 om_gta02 arm920t 56268 KiB libewebkit0 (From OE-Core rev: 85e4a77138381a6086d5ebd3a28cb5a94bc26a19) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/rootfs_rpm: implement BAD_RECOMMENDATIONS for RPMPaul Eggleton2013-07-291-2/+9
| | | | | | | | | | | | | | | | | | | | Add support for the BAD_RECOMMENDATIONS variable that can be used to prevent specific packages from being installed via an RRECOMMENDS relationship when using the RPM backend. (Previously this functionality was only available when using ipk packaging.) In the process this moves the defaulting of BAD_RECOMMENDATIONS (as empty) to bitbake.conf since it is no longer specific to the ipk backend, as well as unifying some of the code that creates the configuration for smart for use on the host and target. Fixes [YOCTO #3916]. (From OE-Core rev: 4e85129a7d47baf3e32b815cbc277bff84e085a0) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm.bbclass: remove xx.spec before doing rpmbuild xx.src.rpmBian Naimeng2013-07-131-0/+5
| | | | | | | | | | If the spec file already exist, and has not been stored into pseudo's files.db, it maybe cause rpmbuild src.rpm fail, so remove it before doing rpmbuild src.rpm. (From OE-Core rev: 760af902a98b350a2f1f3203fa0096965924a83d) Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm.bbclass: make DESCRIPTION support newlineRobert Yang2013-07-101-5/+15
| | | | | | | | | | | | | | | | | | | | | | The recipe's DESCRIPTION is wrapped automatically by textwrap, make it support newline ("\n") to let the user can wrap it manually, e.g.: DESCRIPTION = "Foo1\nFoo2" In the past, it would be: Foo1\nFoo2 Now: Foo1 Foo2 [YOCTO #4348] (From OE-Core rev: 503b6370080fcbcd99305eac846c6dfbdd07c5df) 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>
* package_rpm.bbclass: handle pre/post remove scriptletsLaurentiu Palcu2013-06-111-6/+10
| | | | | | | | | | | | | Currently the scriptlet_wrapper is designed to handle only pre/post install scriptlets. This patch will slightly change the wrapper script to handle also pre/post remove scriptlets when we want to remove packages from the final image. (From OE-Core rev: aea47c77d69407b2e62f151cabba35293d179f0c) 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>
* package_*.bbclass: Drop fakeroot from setscene callsRichard Purdie2013-06-071-1/+0
| | | | | | | | | | | | | Back in 2010, I added these in commit: http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=36f1ae42fe13dae174b7fb5eb85dc49d7d7b516b however the package_write tasks sstate only consists of package files and no fakeroot privileges are needed to write these out, only originally create them. We can therefore drop these for some small performance gains and a less convoluted depenency chain. (From OE-Core rev: 3c760ce4dc15d85be07aafbfea896e7276e0c2c4) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bbclass: bb.fatal() clean upRobert Yang2013-05-161-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The bb.fatal() is defined as: def fatal(*args): logger.critical(''.join(args)) sys.exit(1) So anything after bb.fatal() in the same code block doesn't have any effect, e.g.: bb.fatal("%s_%s: %s" % (var, pkg, e)) raise e The "raise e" should be removed. I searched all the files which use bb.fatal(), only the following 3 classes have this issues: insane.bbclass package.bbclass package_rpm.bbclass [YOCTO #4461] (From OE-Core rev: 4c47525c5a171b1282615c9fbc7d84addef85f92) 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>
* class/lib: Fix up various file access methodsRichard Purdie2013-05-091-6/+3
| | | | | | | | | | | | | | There are various bits of cruft that have built up around our file accesses. This patch cleans some of them up, specifically: * Remove pointless "from __builtin__ import file" * Use open(), not file() * Wrap file usage in a with container to ensure files are closed * Add missing .close() calls in some cases (From OE-Core rev: a43e0a8ecd0441131e929daf998c3cd454d9c8f3) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm.bbclass: fix build multilib image failed when PR Server enabledHongxu Jia2013-04-111-1/+8
| | | | | | | | | | | | | | | | | | | | | | 1, In bitbake.conf PKGR ?= "${PR}${EXTENDPRAUTO}" EXTENDPKGV ?= "${EXTENDPKGEVER}${PKGV}-${PKGR}" RDEPENDS_${PN}-dev = "${PN} (= ${EXTENDPKGV})" 2, When PR Server is enabled, EXTENDPRAUTO is not none which means PKGR and PR don't have the same value. 3, When multilib is enabled, RDEPENDS_${PN}-dev is not expanded correctly which uses PR rather than PKGR in the versioned dependency string. 4, Make sure PKGR rather than PR in version string when do_package_rpm. [YOCTO #4050] (From OE-Core rev: cf53c606fc1bc81abb68b6851ae68916f92e1d84) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package/populate_sdk: Move functions from package_* to populate_sdk_*Richard Purdie2013-03-231-17/+0
| | | | | | | | | | | This fixes build failures introduced with "classes/buildhistory: implement history collection for SDK" by moving the functions to files where only the specific image type which is enabled is inherited. The failures occured when multiple PACKAGE_CLASSES were enabled. (From OE-Core rev: 9a414a57ad69a426a8d8a2970c42ca7427240615) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/buildhistory: implement history collection for SDKsPaul Eggleton2013-03-231-0/+17
| | | | | | | | | | | | | | | | | | | | | | SDKs are constructed in a similar manner to images, and the contents can be influenced by a number of different factors, thus tracking the contents of produced SDKs when buildhistory is enabled can help detect the same kinds of issues as with images. This required adding POPULATE_SDK_POST_HOST_COMMAND and SDK_POSTPROCESS_COMMAND variables so that data collection functions can be injected at the appropriate points in the SDK construction process, as well as moving the list_installed_packages and rootfs_list_installed_depends functions from the rootfs_{rpm,ipk,deb} to the package_{rpm,ipk,deb} classes so they can also be called during do_populate_sdk as well as do_rootfs. Implements [YOCTO #3964]. (From OE-Core rev: c3736064483d4840e38cb1b8c13d2dd3a26b36aa) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_{ipk, deb, rpm}: drop the TARGET_OS conditionalChristopher Larson2013-03-221-5/+0
| | | | | | | | | | | The tclibc file for uclibc already empties IMAGE_LINGUAS, so there's no point to this conditional as far as I can tell, and it can cause issues for certain values of TARGET_OS. (From OE-Core rev: 0fdda5840452c7715ed775d5d18d9f850396f483) Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm: Ensure PV manipulations are correctRichard Purdie2013-03-161-1/+1
| | | | | | | | | | | | | The previous change to this function fixed one manipuation at the expense of the other, depending on ow expanded the versioned dependency string was when the AUTOINC substitution was made. This update ensures we cover both cases and ensures the classextended version works as as well as the normal case. (From OE-Core rev: 0f8447a7d99d2645b932eac1c24149f0c2d3791e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm: Ensure package dependencies have correct version numbersRichard Purdie2013-03-141-2/+3
| | | | | | | | | | | | | | | | | | | | If a recipe has versioned dependencies on another package within the same recipe, there are potentially races where the version remapping may not happen correctly. This issue triggered with neard in multilib builds since it uses a "-" character in its PV which is illegal in an rpm version field. The remapping to "+" was not occuring. It only triggers in the multilib case since in this case, expansion of the datastore happens at slightly different points. The correct fix is to search for PV, not PKGV but substitute the PV value. (From OE-Core rev: bd03014c8fd080e04dd0a96a6b4b9211568c1cf1) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm.bbclass: Optimise per file dependency handlingRichard Purdie2013-03-051-65/+104
| | | | | | | | | | | | | | | | | | | | | | | Currently the process for injecting the per file rpm dependencies into rpmbuild is painfully slow. Its done through the repeated execution of a script which has to return the correct value in each case. This continual execution means the CPU usage of rpmbuild is low. This patch allows the option of collapsing the per file dependencies to a per package basis and injecting them through the .spec file. This removes the execution overhead and allows rpmbuild to run at 100% of cpu. Ultimately it would be nice to inject the per file dependencies through the .spec file however that is not currently possible. Since few people use the per file dependency information, this patch goes for the faster approach. It can be enabled if anyone needs it although I'd mention that its being used to us as this code may well go away in the future if nobody complains. (From OE-Core rev: be40f6d0bb80274366af00461112af65687a4de8) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm.bbclass: Fix translate_smart_to_oe arch comparisonMark Hatle2013-03-021-2/+3
| | | | | | | | | | | | | | When the OE arch is of the format "foo_bar-foobar" the previous comparison routine did not selectively translate the '-' causing a failed comparison. In order to work around this issue, we -always- compare the RPM translated version of the package architectures. (From OE-Core rev: caf798da9502c1c4967d13a4450fe02b1e7b4850) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm.bbclass: add more description for pre/post scriptletsKang Kai2013-03-011-0/+4
| | | | | | | | | | | | | | | | | When write rpm spec file, one description line "# pkgname - script_type" is added to pre/post scriptlets for base package but no such line writted for subpackage. Add similiar line to subpackage to facilitate handling the pre/post scriptlets. (From OE-Core rev: 34f3926f1787f9a2efa2257a2aaea6ee92adf8a3) Signed-off-by: Kang Kai <kai.kang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm.bbclass: name postinst files with package nameKang Kai2013-03-011-6/+5
| | | | | | | | | | | | | | | | When create rootfs, some post install scripts need be run on device. They are saved under directory /etc/rpm-postinst and named with numbers such as 100, 101 etc. Update to name the postinst script file with its package name instead of just number. That may be more easy to debug when there is a error. [YOCTO #3218] (From OE-Core rev: 9b2a008c25a7a3152ae2d8c64ae8de2534471d47) Signed-off-by: Kang Kai <kai.kang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs_rpm.bbclass: Handle multilib configures with different OS valuesMark Hatle2013-02-221-22/+9
| | | | | | | | | | | | | | | [ CQID: WIND00404082 ] It is possible for the TARGET_OS to change dependending on the multilib used for a given package build. mips64 has two potential TARGET_OS values: linux and linux-gnun32. The RPM and Smart setup needs to distinguish between the two otherwise packages of the "non-default" TARGET_OS may be ignored as incompatible. (From OE-Core rev: aa760ff7dee4029c30c9de9fc0b640149e4a4c77) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm/dev/ipk/tar: Drop unused functionsRichard Purdie2013-02-171-8/+0
| | | | | | | | | | | The package_xxx_install functions date from a different era and are not used by anything. In the rpm case, they're simply unimplemented, in the tar case they're using broken whitespace and deprecated functions. We might as well clean out the old broken unused code. (From OE-Core rev: 3684036213c9b1c27389260b7a1e3441c6bd659d) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm/deb/ipk: Error if we don't find packages when creating the ↵Richard Purdie2013-02-171-2/+7
| | | | | | | | | | | | | | | package index If for whatever reason the package directory is empty of packages, it makes sense to error early rather than later in what become much more obtuse errors. This adds in a sanity check to each of the packaging backends. It also removes the duplicate createrepo call since the core index creation function now uses this directly after the switch to smart. (From OE-Core rev: 721ef058b37604e100021ec7a90ad2f745d83916) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_ipk/deb/rpm: Ensure deploy staging directory is empty before ↵Richard Purdie2013-01-301-0/+1
| | | | | | | | | | | rerunning task If we don't do this, stale files can build up, particularly with the PR server. (From OE-Core rev: c30ae39229b35d72e2205040d76754b5120fa878) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Split do_packagedata task from do_packageRichard Purdie2013-01-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Currently, do_rootfs has a dependency on all the do_package output being present due to its usage of the pkgdata directories. This means that if you run: bitbake xxxx-image -c rootfs you end up having to fetch and unpack all the do_package data which is usually large and inefficient. It also means rm_work has to leave all the do_package data lying around so rootfs works. This patch splits the actual creation of the pkgdata directory off into a separate task, "packagedata" which happens immediately after do_package. We can then remap the dependencies so this task is depended upon, not do_package. Sstate can then be programmed not to require do_package at the appropriate times. Whilst this patch doesn't do so, it opens the possibility of rm_work wiping out the do_package output from WORKDIR as long as it also removed the do_package stamp (both normal and setscene variants) and allowing more space savings with rm_work which has been regularly requested. (From OE-Core rev: 6107ee294afde395e39d084c33e8e94013c625a9) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm.bbclass: Refactor the attempt only installMark Hatle2012-12-191-2/+6
| | | | | | | | | | | | | | Smart does not have a method to perform an install, but ignore failures. There was a class of failures that stopped Smart from processing attemptonly installs. To work around this we need to iterate over the to be attempted list. (From OE-Core rev: 7c11ab93242ad3453b730da79a641479de588227) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/image: handle multilibs in complementary package lookupPaul Eggleton2012-12-191-1/+4
| | | | | | | | | | | | | | | | | | For multilib the vendor string is altered, so we need to iterate over all of the multilib vendors when we do the glob processing for complementary packages. (From OE-Core rev: ff01518c6667e1b6e87df4e5a435a701d0f38fa7) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> In addition, the RPM package arch have been munged by adding the multilib identifier. This identifier needs to be stripped when generating the installed_packages list for the complementary lookup code to work. Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm: Workaround for 'all' arch multilib package namingMark Hatle2012-12-171-2/+12
| | | | | | | | | | | | | | | | | | | [YOCTO #3565] All packages should not be multilib specific, however when the multilib rules run, they automatically rename the 'all' target recipes. As such there is no way to know if an 'all' package should or should not contain the multilib prefix. We workaround this issue in the translate function by checking to see if the runtime-reverse file exists or not. The workaround should be removed once a proper solution to the architectural issue is in place. (From OE-Core rev: ea4b8c73a7f807ccd9aa22dfcf41285145a9dd2e) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm.bbclass: Add a simply way to enable RPM debuggingMark Hatle2012-12-171-0/+3
| | | | | | | | (From OE-Core rev: 08b980da3caafc331fef457a16466eda98139bb4) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm.bbclass: Add additional install error detectionMark Hatle2012-12-171-1/+1
| | | | | | | | | | | There is a condition where the package will fail to install, but smart does not capture the error. Add the error string to the scan list. (From OE-Core rev: 230068110e1cda349f9bf3886d8d06ac46deea37) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm.bbclass: Add support for incremental installsMark Hatle2012-12-171-1/+47
| | | | | | | | (From OE-Core rev: 140750f9c334ba9abb1f5c89fc28ef9b866c605b) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm.bbclass: Add additional loggingMark Hatle2012-12-171-0/+9
| | | | | | | | (From OE-Core rev: 2a21e63869ec9541dd338df1d86ef2ca01762bfe) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm.bbclass: Fix the way the RPM platform file is generatedMark Hatle2012-12-171-3/+13
| | | | | | | | | | | When generating an SDK, we need to use either the SDK or TARGET version of the OS. They are not interchangable! (From OE-Core rev: 8f6e33231439c9c2c1584b2790f62f833439e3c1) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm: Update the way the multilib package names are translatedMark Hatle2012-12-171-13/+175
| | | | | | | | | | | | | | | | | | | | The variable MULTILIB_PACKAGE_ARCHS has been removed in favor of a repurposed MULTILIB_PREFIX_LIST. The format of this item is now <libid>:<arch>:<arch1>:...:<archN>. This ensures that we can correctly translate the libid to one of the supported archs in a tri-lib system. All of the users of MULTILIB_PREFIX_LIST and MULTILIB_PACKAGE_ARCHS have been modified accordingly. Also change the way attempted packages are installed, verify the package exists in the translate functions, then perform the install in one single operation. This results in a significantly faster install time. (From OE-Core rev: ffe6cf3a1c57defdbe8531bdeb588e199177bb6c) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/*_rpm: integrate Smart into RPM filesystem constructionPaul Eggleton2012-12-171-441/+90
| | | | | | | | | | | | | | | | | | | | Use Smart to construct the root filesystem for images and the contents of SDKs rather than the custom scripts around rpm we had previously. This ensures the result when producing an updated image will be the same as upgrading to the same package versions from an older image on the target, as well as allowing us to remove a substantial amount of code making the rpm classes much easier to follow. Some bugfixes from Bogdan Marinescu <bogdan.marinescu@intel.com>. SDK implementation and testing as well as a number of bugfixes from Mark Hatle <mark.hatle@windriver.com>. (From OE-Core rev: a726ae7c032fac1aa49ce34180fa2ed2dcaf87d3) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs generation: export two new variables to postinst scriptletsLaurentiu Palcu2012-12-061-0/+2
| | | | | | | | | | | | | | In order for the postinst scriptlets to be able to run once we need to export the location of the intercept scripts and also the location of native sysrootfs. The gdk-pixbuf binaries will need the latter because in order to generate the loaders.cache it will need to scan some shared libraries that must be native. Even though the output is a text file. (From OE-Core rev: 927fabf549bb79cc179d2cb0a953dcd515acf464) 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>
* package_rpm.bbclass: Add the runtime dependencies to the pre/post scriptletsMark Hatle2012-12-061-31/+55
| | | | | | | | | | | | | When the scriptlets are processed in RPM, they have a different dependency set then the core package. OE has no way to specify dependencies for the pre/post scriptlists, so we simply make the runtime dependencies scriptlets as well. (From OE-Core rev: c1acac8c46aa75d78634c30de773b28a1466070c) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm.bbclass: Fix an issue where complementary installs failMark Hatle2012-10-071-5/+9
| | | | | | | | | | | | | | | | Also ensure that we always cleanup the temporary install manifest files, some of them will cause problems if they exist in multiple install attempts. Finally verify that the lists remain uniquely sorted otherwise the complementary install may install the same files numerous times, triggering a failure. (From OE-Core rev: 4f2a290cbcc6c21afbb2a6e6148efdef4d135b41) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes: Update to use corrected bb.utils.explode_dep_versions2 APIRichard Purdie2012-10-021-38/+46
| | | | | | | | | | | | | | | | | The bb.utils.explode_dep_versions function has issues where dependency information can be lost. The API doesn't support maintaining the correct information so this changes to use a new function which correctly handles the data. This patch also fixes various points in the code to ensure that we do not have any duplicates in things that use explode_dep_versions. A new sanity test to test the contents of the R* variables is also added. [Some changes from Mark Hatle <mark.hatle@windriver.com>] (From OE-Core rev: 16a892431d0c0d03f8b561b92909cf2f11af4918) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm.bbclass: change the arch's "-" to "_" for platformRobert Yang2012-09-261-2/+2
| | | | | | | | | | | | | The platform and platform_extra will be written to /etc/rpm/platform, the rpm's arch has changed the "-" to "_", so the value in platform should also be updated. [YOCTO #3159] (From OE-Core rev: 9880a5261ca509c69efbafa27cddd9b2b8ca08f0) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm.bbclass: no initial_solution in the second buildRobert Yang2012-09-261-4/+7
| | | | | | | | | | | | | There is no initial_solution.manifest in the second build when incremental rpm image generation, since the initial solution has been skipped. So we should check it before cat it. [YOCTO #3128] (From OE-Core rev: ad17fa82a481ab3c9f17a8338ebad1eb07c0f9d8) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>