summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/build-compare/files/functions.sh-run-rpm-once-to-make-it-faster.patch
Commit message (Collapse)AuthorAgeFilesLines
* build-compare: 2015.02.10 -> 2019.08.14Robert Yang2019-09-061-361/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Removed the following patches which are already merged by upstream: 0001-Add-support-for-deb-and-ipk-packaging.patch Rename-rpm-check.sh-to-pkg-diff.sh.patch functions.sh-improve-deb-and-ipk-checking.patch functions.sh-remove-space-at-head.patch functions.sh-run-rpm-once-to-make-it-faster.patch pkg-diff.sh-check-for-fifo-named-pipe.patch pkg-diff.sh-check_single_file-return-at-once-when-sa.patch pkg-diff.sh-remove-space-in-the-end-for-ftype.patch * Rebased Ignore-DWARF-sections.patch This version is very outstanding when compare binary packages, e.g.: PRSERV_HOST = "localhost:0" INHERIT += "packagefeed-stability" PACKAGE_CLASSES = "package_ipk $ bitbake opkg $ find tmp/deploy/ipk >/tmp/ipk_1 Add a "bbnote 'hello'" to autotools.bbclass' autotools_do_configure. * BEFORE the upgrading, the result is: $ diff /tmp/ipk_1 /tmp/ipk_2 -Nur | diffstat ipk_2 | 1570 +++++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 785 insertions(+), 785 deletions(-) * AFTER the upgrading, the result is: $ bitbake opkg $ find tmp/deploy/ipk >/tmp/ipk_2 $ diff /tmp/ipk_1 /tmp/ipk_2 -Nur No output And if we really modifed a recipe such as opkg, then it would show that it is changed. For a full world build AFTER the upgrading: $ diff /tmp/ipk_6 /tmp/ipk_7 -Nur | diffstat ipk_7 | 2090 +++++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 1045 insertions(+), 1045 deletions(-) There are 10968 packages in totall, 1045 ones have been changed, so we can still improve it in the future. (From OE-Core rev: 4c77fdfc0b3b31105a4dfd1a4634f8464b52d933) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* build-compare: make pkg-diff.sh 75% fasterRobert Yang2016-07-261-0/+361
The rpm tool is a heavy process, pkg-diff.sh ran 16 (or 17 for kernel) "rpm -qp" times when the pkgs are identical, now we only run "rpm -qp --qf <all we need>" twice (one is for old pkg, and one is for new), save the results to spec_old and spec_new, then use sed command to get what we need later, this can make it 75% faster when the pkgs are identical. Here is the rough data on my host Ubuntu 14.04.4, 32 cores CPU and 128G mem: * When the pkgs are identical: - Before the patch: 1s - After the patch: 0.26s I compare the whole spec firstly, and return 0 if they are the same, or go on checking one by one if not, without this, it would be 0.46s, the gain is great when there are lot of packages, usually, we have more than 10,000 rpms to compare. * When the pkgs are different: That depends on where is the different, if the different is at the comparing rpmtags stage: - Before the patch: 0.26s - After the patch: 0.29s Increased 0.03s, but if the different is happend later than comparing rpmtags, it will save time. (From OE-Core rev: 71eee4adbcda1d9e75cbce58045d03ea12432431) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>