summaryrefslogtreecommitdiffstats
path: root/meta/classes/package_rpm.bbclass
Commit message (Collapse)AuthorAgeFilesLines
* package_rpm: Add optional improved directory handlingRonan Le Martret2014-09-031-8/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | During spec generation, ideally directories should not be auto packaged under the %file section of rpm packages but take ownership of specific directories. * packages only empty directories or explict directory. See: - http://www.rpm.org/max-rpm/s1-rpm-inside-files-list-directives.html - "The %dir Directive" * This will prevent the overlapping of security permission. For example, in Tizen the directory /etc have smack label 'System::Shared' So Only one package should own and set the label of /etc to prevent the overwriting of the smack label. Existing behaviour is maintained if DIRFILES is not set. If it is set, the modified behaviour is used. If can be set to an empty value by core recipes to trigger the modified behaviour. [RP: Modified to allow optional usage of DIRFILES] (From OE-Core rev: 0e33d232916125ba5305ced7200cc00f8b5f7b22) Signed-off-by: Ronan Le Martret <ronan@fridu.net> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm: Add builddir macro to define source directoryRichard Purdie2014-09-031-0/+1
| | | | | | | | This allows its usage in other RPM macros so files in ${S} can be found. (From OE-Core rev: 649ddd4b17e8a1f94ca9f4bc3a71560437c61909) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm: Add custom extension support for spec generation.Richard Purdie2014-09-031-0/+5
| | | | | | | | | | | | | | | | | Add hooks to allow customisation of the rpm spec files. Since python functions aren't visible in the data store, one variable is used to trigger the call to a separately named function. A dummy function is not provided since this then triggers various class ordering complexities which are best avoided. Ultimately this will be replaced by a refactor of the code to generate the spec file using a python class. This allows the tizen layer to add hooks for the security manifests for example. (From OE-Core rev: 03ac91815013c0e85c4694b3ab849257e658aeba) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm.bbclass: Should be using HOST_* not TARGET_*Mark Hatle2014-07-081-2/+2
| | | | | | | | | | | | When building target packages, HOST_OS and TARGET_OS are the same, as is the VENDOR field. However, when building an SDK this is not true. The patch corrects the oversight and switches to using the 'HOST' version and resolves the issue of meta-mingw not working w/ the rpm packaging. (From OE-Core rev: 0fa1eb5c1296a38b332b63d539608da7ef56c3c0) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/package_rpm.bbclass: Fix SDK Suffix referenceMark Hatle2014-06-251-1/+2
| | | | | | | | | | | | | The meta-mingw layer attempts to change the SDK Suffix, but the rpm packaging had a hard coded reference to _nativesdk. I did a quick scan for other hard coded entries and did not fine any more. (From OE-Core rev: 0d3f7a753f17fa8c455f64e3df3259ef1887fd8a) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_*.bbclass: Simplify addtaskRichard Purdie2014-03-301-1/+1
| | | | | | | | | The package_write task was previously removed. Remove a remaining superfluous reference to it. (From OE-Core rev: 76bbf9e8f07f3e6f20c890dd4c82c72641e2ca88) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm.bbclass: archive the source to srpm packageRobert Yang2014-03-211-21/+12
| | | | | | | | | | | | | The archiver.bbclass will put the sources to ARCHIVER_OUTDIR according to configuration, then the rpmbuild -bs will create the srpm. [YOCTO #4986] [YOCTO #5113] (From OE-Core rev: f9ba047afb8780c8bd7cb1ba45470d30abf92e92) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package: Drop do_package_write taskRichard Purdie2014-02-251-0/+2
| | | | | | | | | | | | | | | | | The reasons this task was introduced are lost in the mists of time. It allowed for the a single "package_write" task instead of spelling out the explicit package backends, however in all but one case we do that anyway. As such as might as well give in and delete the task, converting that single reference into explicit dependencies. This gives bitbake a bit less work to to when processing the runqueue since there are less tasks (but more dependencies in some cases). (From OE-Core rev: cf70e15f063716f3227d467ab1f4bfc0018286f6) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_*.bbclass: remove references to the old bash indexing routinesLaurentiu Palcu2014-02-141-1/+0
| | | | | | | | | | Package indexing is done in python and package-index.bb uses the new routines. (From OE-Core rev: 2ab1a2bccfbb4ed90fe3b877d1be80817ba32099) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* conf/bitbake.conf: default HOMEPAGE to blank instead of unknownPaul Eggleton2014-02-111-1/+2
| | | | | | | | | | | | | | | | The default value for HOMEPAGE of "unknown" has been in place since the early OE-Classic days, but it doesn't really make sense - "unknown" is not a valid URL and it just means we have to explicitly check for this hardcoded string if we're displaying the value in some form of UI, such as Toaster. This has required some changes to the packaging classes as they previously did not expect the value to be blank. (From OE-Core rev: 244e1d73ef58e92d73c098044c66bd784644b933) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Cleanup rootfs_rpm,package_rpm bbclass filesHongxu Jia2014-02-111-472/+0
| | | | | | | | | | This commit cleans up the functions that were ported to python. (From OE-Core rev: a4fe5263a683b73d0318fe3c0c55382c084f25b5) 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>
* package_rpm.bbclass: Trigger the regexp on exact keyword matchKhem Raj2014-02-021-1/+1
| | | | | | | | | | This causes issues when postinstalls have ERROR keywords its interpreted as error and image build is cancelled (From OE-Core rev: f5bc3cfac9545c402b415695c4e0f98ad38fb2b0) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_{ipk, deb, rpm}.bbclass: support additional user-defined metadataLeonid Borisenko2014-01-281-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Additional metadata from user-defined variable is written into control/spec file of binary package. Three variables are searched for adiitional package metadata: * PACKAGE_ADD_METADATA_<PKGTYPE>_<PN> * PACKAGE_ADD_METADATA_<PKGTYPE> * PACKAGE_ADD_METADATA First found variable with defined value wins. <PN> is a package name. <PKGTYPE> is a distinct name of specific package type: * IPK for .ipk packages * DEB for .deb packages * RPM for .rpm packages Variable can contain multiple [one-line] metadata fields separated by literal sequence '\n'. Separator can be redefined through variable flag 'separator'. In package control/spec file separator is replaced by newline character. (From OE-Core rev: 773d7352309241e15ef5acadcbe416bdd7d45c18) Signed-off-by: Leonid Borisenko <ive.found@gmail.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm: Fix a race with package_deb/package_ipkRichard Purdie2014-01-161-0/+5
| | | | | | | | | | | | | | | | | We have the odd situation where the CONTROL/DEBIAN directory can be removed in the middle of the walk, the isdir() test would then fail and the walk code would assume its a file hence we check for the names in files too. This resolves the autobuilder failure: error: File not found: /home/pokybuild/yocto-autobuilder/yocto-slave/nightly-fsl-arm/build/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/xinit/1_1.3.3-r0/package/DEBIAN RPM build errors: File not found: /home/pokybuild/yocto-autobuilder/yocto-slave/nightly-fsl-arm/build/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/xinit/1_1.3.3-r0/package/DEBIAN (From OE-Core rev: e38d7702be279d6d6d4c79b3f2379e689a7473d2) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Get rid of crazy name mappingRichard Purdie2013-12-181-1/+0
| | | | | | | | | | | | | | | When originally developed, it was thought a task may have more than one associated sstate archive. The way the code has grown that idea is now not possible or needed. We can therefore assume one sstate archive per task and drop the crazy name mapping code. Simpler is better in this case. The downside is that various sstate archives will change name so this forces a cache rebuild. Given the other sstate changes going in at this time, this isn't really a bad thing as things would rebuild anyway. (From OE-Core rev: 5afe86a6854b21692fd97c5fc7fab50dbc068acb) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm.bbclass: Replace -linux-gnun32 with -linux.* in RPM platform fileLei Liu2013-11-221-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 rev: d9489c44ee4f195ae1b09f340b9545cddba58145) Signed-off-by: Lei Liu <lei.liu2@windriver.com> Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Jeff Polk <jeff.polk@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm: Remove need for lockingRichard Purdie2013-11-061-5/+7
| | | | | | | | | | | | | | Currently if multiple package tasks are running against a recipe, package_rpm is restricted to the slowest speed of them due to the locking. This patch explicitly ignores the opkg/debian artefacts and hence allows a speedup. It also removes an issue were a Ctrl+C interrupting a deb.ipk packaging task would end up with CONTROL/DEBIAN files in the spec file resulting in a build failure. (From OE-Core rev: 4c3b3a57aa9ced231f5c0340920195c15a26f2b1) 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>