summaryrefslogtreecommitdiffstats
path: root/bitbake/lib
Commit message (Collapse)AuthorAgeFilesLines
* bitbake: fetch: Fix use of tar's --exclude option for tar >= 1.29Mariano Lopez2016-08-104-4/+4
| | | | | | | | | | | | | | | Starting from tar 1.29 the --exclude option won't work anymore if is not used before the path. There are some fetch modules that copy the ptest using tar and --exclude option. This fixes these for bitbake. [YOCTO #9763] (Bitbake rev: cc71d5d9da71ea5f21d02f3b2fbf119bd2d794f0) Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: lib/toaster: Fix missing new files from previous commitsRichard Purdie2016-08-014-0/+415
| | | | | | (Bitbake rev: f77e6f21a2cc57a3fcb5970437e55cfae39849a3) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster-tests: fix URL given for Chromedriver downloadElliot Smith2016-07-291-1/+1
| | | | | | | | | | The link to the Chromedriver downloads page is dead, so put in the correct URL. (Bitbake rev: f0e6832bc33df2bb1b2f4b7f436ffbf023e24b13) Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster-tests: define capabilities for latest Firefox driverElliot Smith2016-07-291-2/+17
| | | | | | | | | | | | | | | For the latest Firefox versions, WebDriver requires a download of a separate binary and an additional capability to be defined on it. Modify our tests so that when "marionette" is set as the browser, this capability is defined on the Firefox driver. Also add a note to the README about the additional installation steps required. (Bitbake rev: f6011d986f9a573a39e7b98af0aefe6cc88461ad) Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: lib/bb/checksum: avoid exception on broken symlinksPaul Eggleton2016-07-291-2/+4
| | | | | | | | | | | | | | | | If using OE's externalsrc with a source tree that is not tracked by git and contains broken symlinks, you can receive "TypeError: unorderable types: NoneType() < str()" within the file checksum code due to: checksums.sort(key=operator.itemgetter(1)) Don't add files with no checksum to the checksums list in order to avoid this. (Bitbake rev: 484fe5a3f5b840e5422cbdff0eef9aecfe944a19) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: lib/bb/utils: show subprocess output in stack tracesRoss Burton2016-07-291-0/+6
| | | | | | | | | | If better_exec() throws a subprocess.CalledProcessError then show the output to the user as it likely contains useful information for solving the problem. (Bitbake rev: 8a6424ed871c3cbacd21cae8bc801197f83d67a6) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: fetch2: fix pickle issues while switching from master to krogothMaxin B. John2016-07-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | While switching from master to krogoth build with a common download directory, got a large number of warnings like the one listed below: WARNING: freetype-2.6.3-r0 do_fetch: Couldn't load checksums from donestamp /home/maxin/downloads/freetype-2.6.3.tar.bz2.done: ValueError (msg: unsupported pickle protocol: 4) These warnings are caused by the difference in pickle module implementation in python3(master) and python2(krogoth). Python2 supports 3 different protocols (0, 1, 2) and pickle.HIGHEST_PROTOCOL is 2 where as Python3 supports 5 different protocols (0, 1, 2, 3, 4) and pickle.HIGHEST_PROTOCOL is obviously 4. My suggestion is to use 2 since it is backward compatible with python2 (all the supported distros for krogoth provides python2 which supports pickle protocol version 2) (Bitbake rev: cc67800f279fb211ee3bb4ea7009fdbb82973b02) Signed-off-by: Maxin B. John <maxin.john@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: lib/bb/build: handle incomplete message fragments in log FIFORoss Burton2016-07-261-31/+36
| | | | | | | | | | | | | | | | | | It's possible that the logging FIFO doesn't do a complete read (or the sender a complete write) with the result that an incomplete message is read in bitbake. This used to result in silently truncated lines but since 42d727 now also results in a warning as the start of the rest of the message isn't a valid logging command. Solve this by storing incoming bytes in a bytearray() across reads, and parsing complete messages from that. [ YOCTO #9999 ] (Bitbake rev: 508112793ee7ace613f07695222997309a2ca58f) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster-tests: add tasks and recipes sub-page testsElliot Smith2016-07-262-0/+131
| | | | | | | | | | | | | Add tests for the tasks and recipes sub-pages of the build dashboard. [YOCTO #9833] (Bitbake rev: cecee440a76950f2824ea34b88e84185be493337) Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: set non-hideable columns for built recipes tableElliot Smith2016-07-261-1/+3
| | | | | | | | | | | | | | | | | | | None of the columns in the built recipes table are marked as not hideable, so it is possible to remove all the columns and make the table disappear. Set the recipe name and version columns as not hideable. Also rename the "Name" column to "Recipe", for consistency with the design and with other recipe tables. [YOCTO #9833] (Bitbake rev: 3abd0ac300462e6d1335018cf2d0420de7cc8b76) Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: set non-hideable columns for build tasks tableElliot Smith2016-07-261-0/+3
| | | | | | | | | | | | | | | | | | The task, recipe and order columns in the build tasks table should not be hideable. If they are, it's possible for the table to have all of its columns hidden so that it no longer displays. Set the hideable property to prevent these columns from being hidden. [YOCTO #9833] (Bitbake rev: dc1781e3783724823fd6b0c2d65f6b2771e8d0be) Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: fix download URL for task logsElliot Smith2016-07-261-4/+8
| | | | | | | | | | | | | | | | The task display template formatting had split the Django url template tag across two lines and broken it. This resulted in a gibberish URL for task logs. Fix by placing the tag and its arguments on a single line. [YOCTO #9837] (Bitbake rev: d6e88b7b410b6b99b47b031111a1126da9fd31b3) Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: fetcher2/__init__: Print command in case of ExecutionError in ↵Mario Domenech Goulart2016-07-261-1/+1
| | | | | | | | | runfetchcmd (Bitbake rev: df7f4897c463a48c45514e2bcbd44cc7f86c4bb0) Signed-off-by: Mario Domenech Goulart <mario.goulart@bmw-carit.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: loadconf Partially add back some of the layerSource parsingMichael Wood2016-07-261-3/+82
| | | | | | | | | | | | Partially add back a revised version of the layersource handling so that we can continue to support the old toasterconf.json and it's setup of the local project. (Bitbake rev: cc1a1bc2ea6ae058278d4ecf483f5ea00502c6cb) Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: admin Add Layer_Version to the admin-able modelsMichael Wood2016-07-262-7/+22
| | | | | | | | | | | | | | If the migration didn't get the release conversion right for say, a local or imported layer it would be handy to be able to edit this in the django admin page. Also useful for developers to be able to tweak layers on the fly. (Bitbake rev: 0b23b6919ef1162a0c7fb5b5a961a24653c51eb2) Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: orm Remove the layerindex specific up_branch fieldsMichael Wood2016-07-267-48/+46
| | | | | | | | | | | | | | | | | | We don't need to keep track of layerindex data in our database. And using branch==release is very confusing in the schema. Instead use the existing Release definition to keep track of which release a layer_version is for. Remove the Branch model and all references to it. Create a migration path to convert from up_branches to their corresponding releases. (Bitbake rev: f8f4cffe6fd371f3a7e63690c68f3fcb5dc1f297) Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: lsupdates Add progress information and clean up loggingMichael Wood2016-07-261-23/+58
| | | | | | | | | | | Adds basic progress % information and provides better description of what is happening. (Bitbake rev: 6393dbf97d450d2521c0bc9429da0987bb7720ec) Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: tests: Remove references to LayerSource modelMichael Wood2016-07-265-240/+2
| | | | | | | | | | | | Remove and replace layersource model references in the tests and test data. Remove the orm/test as this only tested LayerSource interactions which have now been removed. (Bitbake rev: 61a47cbc92c856690cb0e8da7102b2e669eaee0a) Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: Replace references to LayerSource modelsMichael Wood2016-07-267-53/+57
| | | | | | | | | | | Replace references to the now deprecated layersource models across Toaster with the new enums for layer source types. (Bitbake rev: 48c09c62eb979d840132e58144f0d81ffee675b1) Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: lsupdates Add layerindex fetcherMichael Wood2016-07-261-6/+245
| | | | | | | | | | | | | | | Move and refactor the layerindex layer source update mechanism so that we don't have to track the layerindex objects in the toaster database. Move this out of the orm and into the management command. Paves the way for future improvement to allow you to specify a layer index server as an argument to the command. (Bitbake rev: f83527edc6d52a34cd73a9c3650ee484407e2e0c) Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: models Remove LayerSource models and replace with enumMichael Wood2016-07-261-378/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | We had a lot of complexity around different layer sources to allow for multiple sources and different priorities for these source. This was implemented using rigged abstract classes which represented the different layer sources when in fact just an enum/flag on the layer_version object is sufficient for our needs. Remove the LayerSourcePriority object as this is not needed. We no longer have a problem of multiple layers coming from multiple sources so this is not needed. Two migrations are added to first remove the child models which represented layersources. Then a second migration is needed to remove the LayerSource model it's self as Django can't understand the non-standard base class dependency. Triggering this issue: https://docs.djangoproject.com/en/1.8/topics/migrations/#dependencies Clean up a number of flake8 warnings in classes which were modified. [YOCTO #9853] (Bitbake rev: 26624740418de95adb1f4a970a30a5f1149ebb79) Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: bldcollector admin Remove LayerSourceAdminMichael Wood2016-07-261-5/+1
| | | | | | | | | | | Remove the LayerSource admin from django admin interface. LayerSources are not going to be manageable from the admin interface. (Bitbake rev: 1c20ffcf88c5b73f6cf5e9b69b81e6bc8cd2493d) Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: loadconf remove Loading LayerSourcesMichael Wood2016-07-261-67/+2
| | | | | | | | | | | We don't need to configure layer sources in the initial configuration as this information is provided by the models. (Bitbake rev: fd56c152699bc4c2d22b87728d0fefbff5209135) Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: lib/bb/progress: avoid possibility of start event being reported twicePaul Eggleton2016-07-261-1/+4
| | | | | | | | | | | | In MultiStageProgressReporter, set a guard when we start the progress so that it can't happen more than once. This fixes "Initialising tasks.." being shown twice in succession when running bitbake in non-interactive terminal mode. (Bitbake rev: 923e68e069127ee7f6e11b91eb1cfa09d502a110) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: knotty: don't display ETA for tasks with progressPaul Eggleton2016-07-261-1/+1
| | | | | | | | | | | | | | | It turns out that progress information we can extract from a task is rarely apportioned closely enough to the time taken for the ETA to be accurate, so showing it is going to be misleading most of the time for anything but the most basic of examples. Let's just remove it and avoid misleading (or worse, annoying) the user. Fixes [YOCTO #9986]. (Bitbake rev: 235db4870b11db97250979e647b54cdb5ce4fbb6) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: knotty: fix some minor bugs in BBProgressPaul Eggleton2016-07-261-12/+13
| | | | | | | | | | | | If you specify custom widgets then we don't want to assume where the "extra" position is - you should have to specify it, and if it isn't specified it shouldn't just wipe out the last widget or you can start to see odd behaviour if you're modifying the code. (Bitbake rev: 19e33c10feb1637589ceb05b5e8d58b1e012ccb8) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: fetch: copy files with -HEnrico Scholz2016-07-261-1/+1
| | | | | | | | | | | | | | | | | | | | | When using a PREMIRROR with plain (non-unpack) files, a SRC_URI like SRC_URI = "file://devmem2.c" will cause devmem2.c to be a symlink in the WORKDIR pointing to the local PREMIRROR. Trying to apply a patch on this file will either modify the file on the PREMIRROR or will fail due to sanity checks: ERROR: devmem2-1.0-r7 do_patch: Command Error: 'quilt --quiltrc /cache/build-ubuntu/sysroots/x86_64-oe-linux/etc/quiltrc push' exited with 1 Output: Applying patch devmem2-fixups-2.patch File devmem2.c is not a regular file -- refusing to patch (Bitbake rev: cfd481fe9799e7a4c6bfac32e56cc91cfcd81088) Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cache: Don't interleave pickle cache file writingRichard Purdie2016-07-261-17/+10
| | | | | | | | | | | | For some reason the data written in this way is coming back out the files out of order. I've not been able to simplify the test case to a point where this was standalone reproducible. Simplify the code and write out the cache files sequentially since this seems to avoid the errors and makes the code more readable. (Bitbake rev: 14ec47f5f0566dbd280fae8a03160c8500ad3929) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cache: Add better cache loading sanity checksRichard Purdie2016-07-261-0/+7
| | | | | | | | | | | | We've seen cache corruption where the pairs come out in a different order to the way we saved them for unknown reasons. Add better sanity checking to give a more user friendly error rather than a crash/traceback. Also allows the system to reparse and recover. (Bitbake rev: 4be4a15491530bd6dc018033ad3d4b2562ab6e23) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cache: Drop/simplify pointless type checkingRichard Purdie2016-07-261-67/+60
| | | | | | | | | | | | Since we no longer have random data like version fields in these structures and we can assume any extra cache data subclasses our class, simplify the code. This is mostly reindenting after removal of the pointless type checks. (Bitbake rev: 5eb36278ac9975de1945f6da8161187320d90ba7) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cache: Improve versions fields handlingRichard Purdie2016-07-261-23/+20
| | | | | | | | | | | | Firstly, don't store the versions fields in memory in the cache objects data store. This just complicates the code for no good reason. Secondly, write the version fields to all cache files, not just the core one. This makes everything consistent and easier. (Bitbake rev: cb666262b2f986b5d9331dfb30458ef1a151fa4d) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cache: Correctly handle missing extra cachesRichard Purdie2016-07-261-0/+3
| | | | | | | | | | | | If an "extras" cache file is corrupted, the system would not notice and later fail with errors about missing entries. Add a test for this which means we can fall back to re-parsing in those cases. [YOCTO #9902] (Bitbake rev: 51843d8f2bbe2e54db7593ca61984abe70423ef6) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cache: Move the parsing message to a more logical placeRichard Purdie2016-07-261-1/+1
| | | | | | | | | Otherwise you can look at the log and wonder why parsing isn't happening when it really is due to other code paths. (Bitbake rev: b48d95677a4d285a77cda2892179965f7f8f06dd) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: implement idle timeout for xmlrpc serverEd Bartosh2016-07-212-4/+22
| | | | | | | | | | | | | | Idle timeout can be specified either by -T/--idle-timeout option or by sessing BBTIMEOUT environment variable. Bitbake xmlrpc server will unload itself when timeout exprired, i.e. when server is idle for more than <idle timeout> seconds. [YOCTO #5534] (Bitbake rev: 5fa0b3a19e7d0f40790f737abeddf499d53f1f6a) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: implement --foreground command line optionEd Bartosh2016-07-211-1/+11
| | | | | | | | | | This option makes bitbake xmlrpc server to run in foreground. It should be useful for debugging purposes. (Bitbake rev: 9d4254be5853a546a346bf0d19919dcfba12773d) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: Fix incorrect dot file generationRichard Purdie2016-07-201-1/+1
| | | | | | | | | | In the runqueue cleanup/conversion, "dep" was mistakenly used where "tid" should be leading to incorrect task-depends.dot files and causing general confusion. Fix this, its clearly incorrect looking at the code. (Bitbake rev: 689730dbb068c5ea3593e7b92fe5d5e5c0c3760a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster-tests: add class SeleniumTestCaseBase for browser testsAníbal Limón2016-07-201-181/+3
| | | | | | | | | | | | | | | | | In order to reuse the Selenium helper outside a Django environment (for functional testing), add a new module containing the base class SeleniumTestCaseBase, which only inherits unittest.TestCase Add a class SeleniumTestCase with multiple inheritance of StaticLiveServerTestCase and SeleniumTestCaseBase to prevent existing tests from breaking. (Bitbake rev: 1177b3f368d8b7f8557eb649adb2e327b6df801c) Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: main: implement server autostart featureEd Bartosh2016-07-201-5/+16
| | | | | | | | | | | | | | | | If environment variable BBSERVER == 'autostart' bitbake will automatically load server if it's not running yet. If host and port are in bitbake.lock then bitbake tries to check if server is running and responses to commands and starts new server only if this check fails. [YOCTO #5534] (Bitbake rev: 89c6e625d47303b2aad8e6645762f17aee01b2d4) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: utils: add BBSERVER to the list of preserved variablesEd Bartosh2016-07-201-0/+1
| | | | | | | | | | | | | All environment variables that are not in the list returned by preserved_envvars_exported are cleaned by bb.utils.clean_environment. Added BBSERVER to the list as we need to access it in bb/main.py after the call of bb.utils.clean_environment. (Bitbake rev: 15c4ea679f4fe097a9f21cccfc82907b5f39a4e4) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: xmlrpc: implement check of connection to serverEd Bartosh2016-07-201-0/+17
| | | | | | | | | | | | | | | | | Implemented check_connection function. The purpose of this function is to check if bitbake server is accessible and functional. To check this this function tries to connect to bitbake server and run getVariable command. This API is going to be used to implement autoloading of bitbake server. [YOCTO #5534] (Bitbake rev: 1a18f5ceb478f766b53850451549333f655621ea) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: lib/bb/utils: no need to unsetenv when manipulating os.environRoss Burton2016-07-201-1/+0
| | | | | | | | | | Doing both os.unsetenv(foo) and then del os.environ[foo] is pointless as del will call unsetenv automatically. (Bitbake rev: a4463e2ff3c7d234320176d671719243292f1af0) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: fetch2: implement progress supportPaul Eggleton2016-07-194-8/+107
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement progress reporting support specifically for the fetchers. For fetch tasks we don't necessarily know which fetcher will be used (we might initially be fetching a git:// URI, but if we instead download a mirror tarball we may fetch that over http using wget). These programs also have different abilities as far as reporting progress goes (e.g. wget gives us percentage complete and rate, git gives this some of the time depending on what stage it's at). Additionally we filter out the progress output before it makes it to the logs, in order to prevent the logs filling up with junk. At the moment this is only implemented for the wget and git fetchers since they are the most commonly used (and svn doesn't seem to support any kind of progress output, at least not without doing a relatively expensive remote file listing first). Line changes such as the ones you get in git's output as it progresses don't make it to the log files, you only get the final state of the line so the logs aren't filled with progress information that's useless after the fact. Part of the implementation for [YOCTO #5383]. (Bitbake rev: 4027649f422ee64b1c4e1ad8d48ac295050afbff) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster-tests: package count/size shouldn't show for non-image buildsElliot Smith2016-07-192-8/+63
| | | | | | | | | | | | | | If a build doesn't produce any image files, the package count and size shouldn't be shown. Also add some metadata to build dashboard elements so it is clear what they're for, and so they can be queried by the tests. (Bitbake rev: 3d5090af4475b1d0bb56911a8e30abf9097c1b3c) Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: bavery <brian.avery@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster-tests: new custom image button shouldn't show for non-image ↵Elliot Smith2016-07-191-0/+20
| | | | | | | | | | | | builds [YOCTO #9514] (Bitbake rev: 9bc014d89434400c1493fa9f07ce3a51d37dab51) Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: bavery <brian.avery@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster-tests: add tests for build artifact display on build dashboardElliot Smith2016-07-194-7/+191
| | | | | | | | | | | | | | | | | | | | | | | Add tests for display of image, kernel and SDK artifacts on the build dashboard, checking that the "Images" option in the left-hand menu and the "Build artifacts" section display correctly for different types of build. Also add metadata to elements on the build dashboard so it's clearer what they represent, and to assist in finding them in the tests. Add a method to the test helper to make it more convenient to check whether a single element matching a selector exists. [YOCTO #8556] [YOCTO #8563] [YOCTO #9500] (Bitbake rev: 644a888ce5a2141f2e6e1c22430e196b65cb1313) Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: bavery <brian.avery@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: the customise image button shouldn't rely on targetsElliot Smith2016-07-192-9/+4
| | | | | | | | | | | | | | | | | | The build dashboard customise image button (for creating a new custom image based on an image recipe used by a build) shouldn't rely on targets: whether a new custom image can be created or not depends on whether any of the recipes used by the build are image recipes. Modify the method used to determine whether a build has customisable images to look at the image recipes used during the build, rather than whether the targets run by the build refer to image recipes. (Bitbake rev: 6648876c91134bda8498b4f8d7ace9147ec0d985) Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: bavery <brian.avery@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: add package manifest path to Target objectsElliot Smith2016-07-195-6/+54
| | | | | | | | | | | | | | | | | | | Store the path to the *.rootfs.manifest file for targets which generate images. A link to the package manifest is displayed in the build dashboard for targets which produce image files. Like the license manifest path, if a target would have produced the package manifest (but didn't, because it already existed), that path is copied from the target which did produce the package manifest. (Bitbake rev: 79b8e349a0da2ea6b97ad82daa5837e6dfffe0af) Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: bavery <brian.avery@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: better display of targets which produced no imagesElliot Smith2016-07-192-44/+36
| | | | | | | | | | | | | | | | | | | | | | | | | SDK targets (populate_sdk) produce SDK artifacts but no image files. Currently, these targets appear under the "Images" heading in the build dashboard, even though they aren't strictly image targets. Change the heading to "Build artifacts". Also remove the section which states that a build produced no image files: this is not correct for populate_sdk targets (those targets don't produce image files under any circumstances); and other changes mean that all targets which do produce images will now show those files. The check for whether to display the "Build artifacts" section also needs to change, as we show targets here which didn't produce any images but did produce SDK artifacts. [YOCTO #8556] (Bitbake rev: b4dce68045c4615e7a6a474e952f670721a3b54e) Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: bavery <brian.avery@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: show manifests in their own section of the build dashboardElliot Smith2016-07-191-4/+7
| | | | | | | | | | | | | | In the build dashboard, add a section for manifests to each target, which will contain the license and package manifests for a target. As we don't record the package manifest (yet), just move the license manifest link to that section for now. (Bitbake rev: 58cb685b567a081834a605530957f165d35fcf5e) Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: bavery <brian.avery@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: only show "New custom image" button for builds with image ↵Elliot Smith2016-07-192-20/+35
| | | | | | | | | | | | | | | | targets Add a has_image_targets() method to Build, and use that to hide the "New custom image" button on the build dashboard if a build has no targets which build images. [YOCTO #9514] (Bitbake rev: 3c4b053e44ea512ef2ced67289a7b0161db6ce9b) Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: bavery <brian.avery@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>