summaryrefslogtreecommitdiffstats
path: root/meta/classes/archiver.bbclass
Commit message (Collapse)AuthorAgeFilesLines
* archiver.bbclass: add revision to git tarfile nameJoe Slater2014-08-271-1/+6
| | | | | | | | | | | | When archiving original source, insert the first 10 characters of srcrev, after stripping off any AUTOINC+, into the filename for tarfiles created from directories. (From OE-Core rev: 36726049a6a452f85d7cc849d57ad6af05d6d3ea) Signed-off-by: Joe Slater <jslater@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* archiver: delete the tail slash in directory nameJian Liu2014-08-231-1/+1
| | | | | | | | | | | | If directory names in SRC_URI ended with "/", function do_ar_original() in layers/oe-core/meta/classes/archiver.bbclass will generate a tar file whose name is ".tar.gz". So delete the "/" at the tail of the directory names before use the names. (From OE-Core rev: a539e823d002fefe129e3045f893d1237fadb87f) Signed-off-by: Jian Liu <jian.liu@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* archiver: create dir 'B' explicitly while WORKDIR changedHongxu Jia2014-06-171-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In the do_unpack_and_patch task of archiver, the changed 'WORKDIR' also casued 'B' changed, create dir 'B' for the possibly requiring of the tasks which executed in do_unpack_and_patch task. Such as cut-ecgl's do_patch required 'B' existed: ... | cp: target 'tmp/work/x86_64-wrs-linux/cut-ecgl/1.0-r0/archiver-work /cut-ecgl-1.0' is not a directory ... | ERROR: Function failed: do_patch (log file is located at tmp/work/ x86_64-wrs-linux/cut-ecgl/1.0-r0/temp/do_unpack_and_patch/ log.do_unpack_and_patch.11886) ... The 'B' dir is implicitly created at the task executing time while the task tag 'dirs' is not assigned. In the above cut-ecgl example, the 'B' was created at the wrl_buildlink executing time which is the prefuncs of task do_unpack. So the following do_patch could use 'B' correctly. But wrl_buildlink is unnecessary and not invoked in the do_unpack_and_patch task. (From OE-Core rev: 8baefb49d0bf9d3dd757d9b2359e0a9f4f33dd60) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* archiver.bbclass: emit patch series files for original srcRobert Yang2014-03-251-0/+13
| | | | | | | | | | | | | Emit patch series files for original src so that the user knows how to apply the patch orderly. [YOCTO #5113] (From OE-Core rev: 053631bc3cf7c7c2d090decaa3b5e5690963e64a) Signed-off-by: Christopher Larson <kergoth@gmail.com> Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* archiver.bbclass: make it can filter the licenseRobert Yang2014-03-251-2/+25
| | | | | | | | | | | | | | | | | | | * Filter the license (default: no), the recipe whose license in COPYLEFT_LICENSE_INCLUDE will be included, and in COPYLEFT_LICENSE_EXCLUDE will be excluded. * The user can set the recipe type that would be archived (native, target, and so on), deafult to all. The copyleft_filter.bbclass is come from copyleft_compliance.bbclass, which is used by both copyleft_compliance.bbclass and archiver.bbclass. [YOCTO #5740] (From OE-Core rev: 0e798d5cbcf585535e19633828dc540a282261fc) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* archiver.bbclass: move a few code to copyleft_compliance.bbclassRobert Yang2014-03-211-19/+0
| | | | | | | | | | | | | | | | | | Move the code which is only used by copyleft_compliance.bbclass from archiver.bbclassc, and remove the "inherit archiver" from copyleft_compliance.bbclass. The archiver.bbclass is used for archiving various types of sources, but the copyleft_compliance.bbclass is used for analysing the license, they don't have much relationships. [YOCTO #4986] [YOCTO #5113] (From OE-Core rev: 578830fe2ff279ea620916ea711b80dc1b29a275) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* archiver.bbclass: refactor itRobert Yang2014-03-211-554/+275
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The archiver didn't work, and there were a few problems, for example: 1) There was no src_dir.org (or orig), but the diff command still use it 2) There were a few duplicated code 3) It didn't archive the source for the native or gcc 4) The work flow is not very well 5) The "subprocess.call('fakeroot cp xxxx'" should be removed 6) And others ... So that we have to refactor it, the benefits are: 1) Fix the problems and make it work well. 2) Reduce more than 300 lines 3) Make it easy to use. Hre are the explanation about the bbclass: This bbclass is used for creating archive for: 1) original (or unpacked) source: ARCHIVER_MODE[src] = "original" 2) patched source: ARCHIVER_MODE[src] = "patched" (default) 3) configured source: ARCHIVER_MODE[src] = "configured" 4) The patches between do_unpack and do_patch: ARCHIVER_MODE[diff] = "1" And you can set the one that you'd like to exclude from the diff: ARCHIVER_MODE[diff-exclude] ?= ".pc autom4te.cache patches" 5) The environment data, similar to 'bitbake -e recipe': ARCHIVER_MODE[dumpdata] = "1" 6) The recipe (.bb and .inc): ARCHIVER_MODE[recipe] = "1" All of the above can be packed into a .src.rpm package: (when PACKAGES != "") ARCHIVER_MODE[srpm] = "1" [YOCTO #4986] [YOCTO #5113] (From OE-Core rev: e5b20199ddddfa2146dc112c0a81f3fd292258e5) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/archive*.bbclass: remove archive-*-source.bbclassRobert Yang2014-03-211-1/+62
| | | | | | | | | | | | | | | | Nearly all of the codes in the following 3 files are the same, we can move the code to archiver.bbclass and remove them: archive-configured-source.bbclass archive-original-source.bbclass archive-patched-source.bbclass [YOCTO #5113] (From OE-Core rev: d2d3428a0fc746e56c0a0046bd12a393dedb4dda) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: Don't use deprecated bitbake APIRichard Purdie2013-09-011-9/+9
| | | | | | | | | | 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>
* classes: Remove references to _remove in function names since this may ↵Richard Purdie2013-08-261-3/+3
| | | | | | | | | | | | | | become a bitbake keyword There is a good chance we might want to support a bitbake operator "_remove" which works in a similar way to _append and _prepend. As such, we can't use those keywords in function or variable names. (From OE-Core rev: 491fde8cd3fd493f9fec2fd434fe1be547f66148) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* archiver.bbclass: check if package contains a copyleft licenseKevin Strasser2013-06-171-1/+4
| | | | | | | | | | | | | | | | | | The copyleft filter is only excluding packages that contain a closed source license. This is because oe.license.is_included() returns a boolean value that indicates if the license is excluded, and a string that contains the matched included licenses. If the string is empty it indicates that no licenses were matched. Reject packages that do not contain a copyleft license. [YOCTO 4630] (From OE-Core rev: 3d0f9ee3d2fcce331d35467d5965ff44b825427f) Signed-off-by: Kevin Strasser <kevin.strasser@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* archiver: fix srpm archiving build errorsKevin Strasser2013-04-031-4/+0
| | | | | | | | | | | | | | | | | | | | srpm archiving doesn't need to be handled as a different case when deciding what archive tasks to add. When srpm is selected as the archiving type, the scripts and logs archive staging directory ${WORKDIR}/script-logs is cleaned, and its contents moved out to ${WORKDIR}. Now that we are including ${WORKDIR}/script-logs in sstate-inputdirs, the directory must be preserved. [YOCTO #4032] (From OE-Core rev: 0c80286a3383b436a0a63a0b00eb357dd9dea4fb) Signed-off-by: Kevin Strasser <kevin.strasser@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* archiver: fix archive filtering behaviorKevin Strasser2013-03-181-12/+1
| | | | | | | | | | | | | | | | | | | With the addition of sstate, ensure that archiving tasks are only added to the build if they produce output in the directory specified by the 'sstate-inputdirs' flag. Move calls to 'tar_filter' and 'not_tarball' out to archive-*-source.bbclass in order to filter out packages before their archiving tasks are added to the build. Additionally, negate the return value of copyleft_should_include in tar_filter, so that packages that do not pass are in turn filtered out. (From OE-Core rev: 392562a21d9f2deb6fe6f8bb5378b09f4c5918d4) Signed-off-by: Kevin Strasser <kevin.strasser@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* archiver class: Use tasks with sstate instead of pre/post funcsMuhammad Shakeel2013-02-281-11/+29
| | | | | | | | | | | | | | | | | | | | | | | | * Add tasks to move sources, script/logs and diff/env files in deploy directory. * Enable SSTATE for 'do_archive_scripts_logs' task * Enable SSTATE for 'do_dumpdata_create_diff_gz' task * SSTATE is not used for sources/patches archiver task because source archive package can result into a very large file. It will be an unnecessary overhead to keep sources in DL_DIR and cached-binaries. * If 'SOURCE_ARCHIVE_PACKAGE_TYPE' is 'srpm' then use pre/post functions because in this case we do not want to use tasks to move sources/logs in DEPLOY_DIR. 'do_package_write_rpm' is responsible for handling archiver packages. [YOCTO #3449] (From OE-Core rev: 959e2ae23ccbc6955a28996d4538e457cd8cfa5e) Signed-off-by: Muhammad Shakeel <muhammad_shakeel@mentor.com> Signed-off-by: Noor Ahsan <noor_ahsan@mentor.com> Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* archiver.bbclass: DISTRO is not required variable so deal with itMarcin Juszkiewicz2012-11-241-2/+1
| | | | | | | (From OE-Core rev: 3e7f411e6eb428f6d49a6f1a396e70a2bd1ceadc) Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Rename task to packagegroupPaul Eggleton2012-09-041-2/+2
| | | | | | | | | | | | "Package group" is a much more appropriate name for these than task, since we use the word task to describe units of work executed by BitBake. (From OE-Core rev: 424dcf7046e4ad09dcc664eb1992201195247fcf) 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>
* archiver.bbclass: fix the remove errorRobert Yang2012-08-291-31/+20
| | | | | | | | | | | | | | | | | | | | | * 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-15/+11
| | | | | | | | | | | | | | 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-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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: fix the coding styleRobert Yang2012-08-291-116/+172
| | | | | | | | | | | | | | | * Make the comment line under 80 characters. * Use the triple double quotes for the docstring. * Add a whitespace behind the comma (,). * Other minor fixes. [YOCTO #2619] (From OE-Core rev: 885a95992abe11ebef7a8e4363e6002ee80403bf) 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-378/+379
| | | | | | | | | | | | | | | | | | | 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>
* 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>
* archiver.bbclass: Add the function of filtering packagesXiaofeng Yan2012-06-281-1/+70
| | | | | | | | | | | | | This function can miss packages whose license is in "COPYLEFT_LICENSE_EXCLUDE" and tarball packages with license in "COPYLEFT_LICENSE_INCLUDE". [YOCTO #2473] (From OE-Core rev: 4800bed394ebd7fb50552a96d6a5f83d98fe790f) Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* archiver.bbclass: Reduce some duplication for function get_licensesXiaofeng Yan2012-06-081-11/+12
| | | | | | | | | | | | | | | The content to modify this bbclass is as follow: - Use the existing functions to get license as a directory instead of rewriting it for avoiding code duplication. - Use SPDXLICENSEMAP to map licenses [YOCTO #2473] (From OE-Core rev: 31bee6e7b0a23efc1555ab739ef10041803d5bb1) Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com> Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* archiver.bbclass: Improve the usability for the archiver classesXiaofeng Yan2012-06-051-2/+4
| | | | | | | | | | | | | | The usability of the archiver classes can be improved, beyond the simple addition of default values for the variables. A user could well inherit just archiver rather than the individual useful classes, and not realize it will do nothing. [YOCTO #2472] (From OE-Core rev: ce91f495e0c4ef3bf53ee8b2ea570061da38e14f) Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: replace os.system with subprocess.callRobert Yang2012-05-301-1/+2
| | | | | | | | | | | | | | | Replace os.system with subprocess.call since the older function would fail (more or less) silently if the executed program cannot be found More info: http://docs.python.org/library/subprocess.html#subprocess-replacements [YOCTO #2454] (From OE-Core rev: a07d03cc6f67c88feb9813ae7deb6e4a93552dfe) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* archiver.bbclass: Add two default set for avoiding error when missing assignmentXiaofeng Yan2012-05-171-1/+3
| | | | | | | | | | | Add two default set(SOURCE_ARCHIVE_LOG_WITH_SCRIPTS, \ SOURCE_ARCHIVE_PACKAGE_TYPE) to archiver.bbclass for avoiding \ building error when forgetting to assign to them. (From OE-Core rev: 5bda8f33b6763fb519543d0f9e35c970a31d39b8) Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* archiver.bbclass: Amend the problem for moving tarballs in ${DL_DIR} to ↵Xiaofeng Yan2012-04-111-0/+1
| | | | | | | | | | | | | | | | | | | | ${DEPLOY_DIR}/source when enable archiver When running "bitbake core-imamge-minmal", the error information like the following will appear: ERROR: Error executing a python function in /buildarea2/yzhao-test/poky-test/meta/recipes-core/zlib/zlib_1.2.6.bb: IOError: [Errno 2] No such file or directory: '/buildarea2/yzhao-test/poky-test/build-archive/downloads/zlib-1.2.6.tar.bz2' An absolute path from variable "file" pointed to tarballs in ${DL_DIR} \ cause this problem. So return base-name of "file" for fixing this bug here. [YOCTO #2272] (From OE-Core rev: 40c34087dea6869e5ec9a655980de3c3baa01960) Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* archiver.bbclass: enhance code readabilityXiaofeng Yan2012-04-041-119/+108
| | | | | | | | | | | | The modification is as follow: - Modify some codes with more preferable readability and vague description. - Use existed functions instead of custom functions. (From OE-Core rev: 514319c4a15156cd63a4ac3c6ee903f64c98884e) Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* archiver.bbclass:Xiaofeng Yan2012-03-261-0/+460
1 Archive sources in ${S} in the different stage (do_unpack,do_patch,do_configure). 2 Archive patches including series 3 Archive logs including scripts (.bb and .inc files) 4 dump environment resources which show all variable and functions used to xxx.showdata.dump when running a task 5 dump all content in 's' including patches to file xxx.diff.gz All archiving packages will be deployed to ${DEPLOY_DIR}/sources/ [YOCTO #1977] (From OE-Core rev: 2fdc271887db8c0ef0641472d00e850e8b3caa19) Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>