summaryrefslogtreecommitdiffstats
path: root/meta/classes/package_rpm.bbclass
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* Replace "echo -e" with "printf" to have the same behavior in dash or bashAndrei Gherzan2012-09-201-3/+3
| | | | | | | | | | | | | | | | | | | | oe-core removed the prerequisite to have sh as bash. POSIX doesn't define any options and furthermore allows 'echo -e' to be the default behavior. This means that in dash 'echo -e' will actually print '-e' and interpret backslashes by default. We use instead 'printf' builtin command with or without '\n' to simulate 'echo -e' or 'echo -n'. 'printf' needs format while 'echo' can be used without any arguments. So 'echo >' was replaced by 'printf "" >'. 'echo' without '-n' flag adds a new line by default so to keep the same behavior of two new lines while using 'echo "\n"', 'printf "\n\n"' is used. [YOCTO #3138] (From OE-Core rev: a19880ad10ccb5d7d909dcf9de5c3dc58a0ebcd3) Signed-off-by: Andrei Gherzan <andrei@gherzan.ro> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm.bbclass: Avoid unnecessary installs in complementary passMark Hatle2012-09-121-1/+8
| | | | | | | | | | | | | | | | | When called with the complementary install option, the first step is to backup the install manifest so that we can avoid installing items previously installed. However, this backup process skipped the initial_install portion of the manifest, causing early install items like libc6, bash, and base-files to be installed a second time. Fix this by cating the files to original_solution. This is done as an append to allow multiple calls to package_install_internal_rpm to work. (From OE-Core rev: af9fd7566a5de4716a202922f5eabb13a412f2fb) 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 incremental rpm image generationRobert Yang2012-09-101-2/+2
| | | | | | | | | | | | | | | | | | * Check ${target_rootfs}/etc/passwd rather than ${target_rootfs}${rpmlibdir} to make sure that it has been previously installed. * Remove the "--nodeps" when incremental image generation, it should take care of the dependencies. Still use "--replacefiles --replacepkgs" in case there are conflicts. [YOCTO #3047] (From OE-Core rev: 2b3df2ec7979a49842df172be442a8794fe68fff) 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: fix the arch (replace "-" with "_")Robert Yang2012-09-101-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | rpm can't use the "-" as the arch, which causes problem, e.g., when MACHINE = "beagleboard": * The arch should be armv7a-vfp-neon, but rpm only takes the armv7a, this is incorrect since it is mixed with real arch armv7a. * The nativesdk's arch should be i686-nativesdk (or x86_64-nativesdk), but rpm only takes the i686 (or x86_64), this in incorrect since it is mixed with the arch i686 (or x86_64). Replace "-" with "_" when rpm package and the rootfs generation would fix the problem, I think this is fine since it doesn't change the tune's arch, the package manager doesn't care about the arch's name, but it needs a unify arch system to avoid confusing. This is similar to what we have done on the deb which fixed the arch i486, i586 and so on to i386. [YOCTO #2328] (From OE-Core rev: fc985f511da86400e4fa7d17555216c12eb51666) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* nativesdk: Switch to using nativesdk as a prefix, not a suffixRichard Purdie2012-09-021-1/+1
| | | | | | | | | | | | | | | As discussed on the mailing lists, using a suffix to package names is hard and has lead to many recipes having to do PKGSUFFIX games. Its looking extremely hard to scale nativesdk much further without hacking many recipes. By comparison, using a prefix like multilib does works much better and doesn't involve "hacking" as many recipes. This change converts nativesdk to use a prefix using the existing multilib infrastructure. (From OE-Core rev: 81813c0e322dc04ce4b069117188d8a54dfddb8c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* archiver.bbclass: fix the remove errorRobert Yang2012-08-291-18/+7
| | | | | | | | | | | | | | | | | | | | | * The "tar-package" is used for saving the "Source" list for rpmbuild, there is no such a file when "ARCHIVER_MODE[type] ?= srpm", and there would be errors, it hadn't happen before was becuase that the remove function didn't work. Let the "rpmbuild --rmsource" to remove the Sources, and the remove function will just remove the tar-package file. * Remove several unwanted "try ... exception" sentences, let the error raise rather than ignore them when the error happens. * Remove several un-needed code. [YOCTO #2619] (From OE-Core rev: 6ac3e8be0307ecaea5e92f8bda94f1cd2193a47a) 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>
* archiver.bbclass: remove the "upper()" functionRobert Yang2012-08-291-6/+6
| | | | | | | | | | | | | | The configuration value from the conf file is lower case, e.g. srpm, tar, so there is no reason to use the upper case which makes things complicated. [YOCTO #2619] (From OE-Core rev: 036a2502689092bb278b929f6e8ef2a119c1cf35) 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>
* archiver.bbclass: fix the fakeroot and other issuesRobert Yang2012-08-291-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix the fakeroot issue The archiver.bbclass is used for archiving sources, patches, and logs, it uses the "rpmbuild -bs" from the package_rpm.bbclass to generate the .src.rpm, but it didn't work (it's not easy to explain it clearly): Reason: - It directly used the "fakeroot" command, we don't have such a command in native tools, so it would use the fakeroot from the host, and it would fail when there is no fakeroot on the host. - The "rpmbuild -bs" doesn't need to work under root, but it is in the function do_package_write_rpm which is running under fakeroot, and "rpmbuild" needs to know the source file's user/group name, the source file is the tarball which is created by the postfuncs of do_unpack or do_patch which doesn't use the fakeroot, so the created file's owner would be the real user, e.g.: robert, but there is no such a user under our native tools' fakeroot(pseudo), then the rpmbuild would fail. It worked when use the host's fakeroot in the past was because that the host's fakeroot knows the users on the host. Fix: - Remove the incorrect "fakeroot". - Change the source file's owner to root.root under fakeroot will fix the problem. * Other fixes: - The typo: "do_remove_taball -> do_remove_tarball" which will cause the tarball is not removed. - Add the _sourcedir defination to the rpmbuild command since the the SOURCES would be added to the specfile when archiver.bbclass is inherited, otherwise there would be errors when "rpmbuild -bb", though the build is OK. It only added the defination to "rpmbuild -bs", didn't add to "rpmbuild -bb". [YOCTO #2619] (From OE-Core rev: ac152f277fdff256def01af4268215a05685a0f7) 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>
* archiver.bbclass: indent fixesRobert Yang2012-08-291-1/+0
| | | | | | | | | | | | | | | | | | | Several fixes: * It uses mixed tab and whitespace as the indent in one function, Fix them to use "4 spaces" as the indent. * Remove the unwanted blank, for example, more than one blank lines appeared together. * Remove the tail whitespace. [YOCTO #2619] (From OE-Core rev: 5eacbcdf306d9e743164a1563559cd24eb5fffe0) 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: fix and enhance the incremental rpm generationRobert Yang2012-08-211-25/+43
| | | | | | | | | | | | | | | | | | | | | | | The incremental rpm generation usually broke when package_rpm.bbclass changed, change its implementation to make it more stable: * It depended on the previous and current saved manifest files in the past, it would break when the manifest changed. Now query the previous and current installed pkgs from rootfs/var/lib and rootfs/install/, this would be more reliable, the manifest's change would not affect it any more. * Add explanations before package_install_internal_rpm to explain what does the function do. * Remove an unwanted "awk '{print $1}'". [YOCTO #2906] (From OE-Core rev: 5d8ca498e09438bd91654fa8b8b2c970956d88e3) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta/classes: Various python whitespace fixesRichard Purdie2012-08-211-17/+17
| | | | | | | | | | | It was pointed out we have a number of weird indentations in the python functions. This patch cleans up 3, 7 and other weird indentations for the core bbclass files. It also fixes some wierd (odd) shell function indentation which my searches picked up. (From OE-Core rev: 8385d6d74624000d68814f4e3266d47bc8885942) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm.bbclass: Fix attemptonly install failuresMark Hatle2012-08-171-1/+1
| | | | | | | | | | | | | | | | | | | During an attemptonly install, if you try to install two packages that conflict with each other, a message is generated: error: Failed dependencies: dropbear conflicts with openssh-6.0p1-r4.ppc603e dropbear conflicts with openssh-sshd-6.0p1-r4.ppc603e This is placed onto stderr (vs stdout), which was not being redirected. This allowed the log-check code to find the magic key of "Failed" causing the package installation process to fail. Instead the proper behavior is to simply ignore the error and proceed with the install. (From OE-Core rev: 16d8d7fdda4ae7d108f5d50cde3f6104e231bd23) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rpmresolve: improve debug outputPaul Eggleton2012-08-151-2/+2
| | | | | | | | | | | | | Rename rpmresolve's -d option to -t and make -d enable debug output; add a -o option to specify the output file (so rpm debug output doesn't go to the output file) and also add a little more detail to some of the error messages. (From OE-Core rev: 163dd734d79fd7040b48b10bca6fde28460ac20c) 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: Accomodate dash when using arraysKhem Raj2012-07-311-1/+6
| | | | | | | | | | | | | | | | | | | | | | | we were assigning local variable to an array coming through positional arguments. local is a non posix contruct thats also supported by dash luckily but operates differently in this case it exapnds the array before assignment. so local pkgs="$@" turns into pkgs=locale-base-en-us locale-base-en-gb ant we see errors run.do_rootfs.25593: 932: local: locale-base-en-gb: bad variable name So lets not use defining and assigning local in one go first define a local and then the assignment (From OE-Core rev: 4029ce1a15e1dbd374444ee77ccf2a915e463b7b) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Rework installation of dev, dbg, doc, and locale packagesPaul Eggleton2012-07-291-30/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use a similar mechanism that was previously used to install locales at rootfs generation time to install other "complementary" packages (e.g. *-dev packages) - i.e. install all of the explicitly requested packages and their dependencies, then get a list of the packages that were installed, and use that list to install the complementary packages. This has been implemented by using a list of globs which should make it easier to extend in future. The previous locale package installation code assumed that the locale packages did not have any dependencies that were not already installed; now that we are installing non-locale packages this is no longer correct. In practice only the rpm backend actually made use of this assumption, so it needed to be changed to call into the existing package backend code to do the complementary package installation rather than calling rpm directly. This fixes the doc-pkgs IMAGE_FEATURES feature to work correctly, and also ensures that all dev/dbg packages get installed for dev-pkgs/dbg-pkgs respectively even if the dependency chains between those packages was not ensuring that already. The code has also been adapted to work correctly with the new SDK-from-image functionality. To that end, an SDKIMAGE_FEATURES variable has been added to allow specifying what extra image features should go into the SDK (extra, because by virtue of installing all of the packages in the image into the target part of the SDK, we already include all of IMAGE_FEATURES) with a default value of "dev-pkgs dbg-pkgs". Fixes [YOCTO #2614]. (From OE-Core rev: 72d1048a8381fa4a8c4c0d082047536727b4be47) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/rootfs_rpm: improve speed of RPM rootfs constructionPaul Eggleton2012-07-291-64/+45
| | | | | | | | | | | | | Improve the performance of the RPM backend during do_rootfs by performing most of the package name to file resolution in a separate utility written in C, processing the entire list of packages at once rather than running rpm on the command line which loads the RPM database for every package. (From OE-Core rev: 9135d351ba7cb21e50239d2b310565680bd4fdca) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm: DEPLOY_DIR_RPM must exist before make indexRobert Yang2012-07-201-2/+2
| | | | | | | | | | | | | | | | There is a package-index.bb which will update the index, but the DEPLOY_DIR_RPM may not exist, for example, when "bitbake package-index" in a fresh build. Only the package_rpm.bbclass needs this, the package_ipk.bbclass and package_deb.bbclass doesn't need. [YOCTO #2753] (From OE-Core rev: 72e18bb4171698a386b277b12d973e3d0fd7c4cc) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Remove a number of unneeded import os/bb callsRichard Purdie2012-07-191-3/+0
| | | | | | | | | | The bb and os modules are always imported so having these extra import calls are a waste of space/execution time. They also set a bad example for people copy and pasting code so clean them up. (From OE-Core rev: 7d674820958be3a7051ea619effe1a6061d9cbe2) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Convert tab indentation in python functions into four-spaceRichard Purdie2012-07-191-590/+590
| | | | | | (From OE-Core rev: 604d46c686d06d62d5a07b9c7f4fa170f99307d8) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm: Avoid duplicate package generation failuresMark Hatle2012-07-091-5/+5
| | | | | | | | | | | | | When constructing a multilib based image, it's possible to end up with the same package listed in multiple steps of the install. During resolution we use the --replacepkgs option to avoid errors, as the resulting install solution will be as expected. (We do not enable the replacepkgs option for the final install step, only the generation of the install solution.) (From OE-Core rev: 68ea7d827710ae7c5cf402887d4c12319038e064) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>