summaryrefslogtreecommitdiffstats
path: root/bitbake
Commit message (Collapse)AuthorAgeFilesLines
* bitbake: Remove whitelisted vars from non-task depsChristopher Larson2013-02-141-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Though the value of variables in the BB_BASEHASH_WHITELIST is kept out of the checksums, dependency on them is not, at least for variables and non-task functions. In the code, the whitelist is removed from the overall task dep list, but not the individual variable deps. The result of this is that functions like sysroot_stage_all and oe_runmake end up with whitelisted variables like TERM listed in their dependencies, which means that doing a 'unset TERM' before building will result in all checksums for tasks that depend on those changing, and shared state reuse not behaving correctly. This is only really a potential issue for variables from the environment, as it's the existance/removal of the variable that's an issue, not its value, and the other whitelisted variables are set in our metadata. This which means in practical terms the only cases where this is likely to be an issue are in environments where one of the following are unset: TERM, LOGNAME, HOME, USER, PWD, SHELL. This may seem like an unlikely circumstance, but is in fact a real issue for those of us using autobuilders. Jenkins does not set TERM when executing shell, which means shared state archives produced by your jenkins server would not be fully reused by an actual user. Fixed by removing the whitelisted elements from the individual variable deps, not just the accumulated result. (Bitbake rev: dac12560ac8431ee24609f8de25cb1645572d350) Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: ConfHandler: Improve regexp to fix mis-parsing of += and no whitespaceRichard Purdie2013-02-141-1/+1
| | | | | | | | | | | | | | | | | | | | | If you have: FOO = "a" FOO += "b" FOO+= "c" The expected result is "a b c" however we were seeing "a b" with the FOO+ variable being assigned the value "c". This isn't the expected result. We need to make the name part of the variale non-greedy so that any + character becomes part of the operator. This patch does that. I compared the configuration in OE-Core before and after the change and only the test case changed. [YOCTO #3834] (Bitbake rev: 2cd8d7fd12a646e6516e2c985e6a54121d19eb59) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake/utils: Improve environment handling to allow UIs access to ↵Richard Purdie2013-02-112-8/+12
| | | | | | | | | | | | | | | | original environment We need to empty out the environment whilst we build the cooker but we need the environment for the UIs since hob uses DISPLAY and other session variables. This patch adapts the utils functions to return removed environment components so we can reinject them for use by the UI, allowing hob to work again. (Bitbake rev: fc330d810099c57fefd4e706159a73ad8401d97c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: prserv/serv.py: Fix logging in daemon modeRichard Purdie2013-02-061-4/+16
| | | | | | | | | In deamon mode we need to ensure the logging module is sending log data to the log file. These changes ensure this happens correctly. (Bitbake rev: bb53b47710ca4579e20284668cb354f734c3d502) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: Always use separate process for PR ServiceRichard Purdie2013-02-062-23/+8
| | | | | | | | | | | | | | | Using the threading module interacts badly with multiprocessing used elsewhere in bitbake under certain machine loads. This was leading to bitbake hanging on Ctrl+C when the PR Server was being used. This patch converts it to always use the daemonize code which then means the threading code isn't required. [YOCTO #3742] (Bitbake rev: 2d0bbd9398ab839bd2d1e29e50b25d52efb1ce2a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: Update version to 1.17.0Richard Purdie2013-02-062-2/+2
| | | | | | (Bitbake rev: d96ef9398356b2a61f7cff765821616bf1e55492) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: fetch2: Remove broken git variables from the environmentDarren Hart2013-02-061-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following variables perform no function outside of bitbake: GIT_CONFIG GIT_PROXY_HOST GIT_PROXY_PORT GIT_PROXY_IGNORE GIT_CONFIG only affects the git-config command which is not relevant to the fetcher. This was previously used with the OE GIT_CORE_CONFIG variable which would provide a basic git config to use instead of the user's config. This usage was deprecated by git for over a year now: http://git.661346.n2.nabble.com/Overriding-gitconfig-using-GIT-CONFIG-td6680977.html GIT_PROXY_HOST and GIT_PROXY_PORT are not used by git. GIT_PROXY_IGNORE was an OE construct used to create the custom git config and had no meaning outside of the OE environment. It is not used by git. Remove these variables from the fetcher environment. Users wishing to configure git to work with a proxy should define the GIT_PROXY_COMMAND environment variable to use an external script. NO_PROXY can be used within this script to skip the proxy for certain hosts. (Bitbake rev: e60270bdce6b8c2f8da1a4838aa374da9db3c86a) Signed-off-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: fetch2: Export upper and lower case environment variablesDarren Hart2013-02-061-2/+7
| | | | | | | | | | | | | | | | | Applications are inconsistent in their use of upper and lower case proxy variables. Curl, for example, specifies NO_PROXY (not no_proxy) in the man page (changed in 2009 [1]). Avoid proxy issues by ensuring both the upper and lower case versions of each proxy variable is available in the environment for the fetcher commands. Add FTPS_PROXY and ftps_proxy to the list as well. 1. http://curl.haxx.se/mail/tracker-2009-04/0012.html (Bitbake rev: c3e6b2c5ec81d5ad7dcf606fff16fd5552bd267c) Signed-off-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker/utils: Drop custom 'interactive' variables list and store ↵Richard Purdie2013-02-062-26/+2
| | | | | | | | | | | | environment in BB_ORIGENV instead Maintining hardcoded lists of user environmental variables is hacky, replace these with the savedenv datastore. Allow access to that through the BB_ORIGENV variable. (Bitbake rev: 0a99563a4ea270594fd9a61da46f9387fb79dc66) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: compat/utils: Add copy of python multiprocessing pool for pre 2.7.3 ↵Richard Purdie2013-02-062-0/+695
| | | | | | | | | | | | issues python 2.7 shows hangs with issues in its pool implmenetation. Rather than try and hack around these, add a copy of the working pool implementation to the compat module from 2.7.3. (Bitbake rev: c9eb742637131e8dbd526d2ad9b458abea0a2d87) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: fetch2: Print the complete SRCREV variable name when INVALIDDarren Hart2013-02-051-2/+5
| | | | | | | | | | | | | | | | | | | | If a particular SRCREV (say for a particular branch) is missing, the fetcher will currently just report an obtuse error about the "SRCREV" being invalid. If there is more information is to be had (say from name, i.e. branch, and pn) then display that as well. The new error looks something like this: ERROR: ExpansionError during parsing /home/dvhart/source/poky/meta/recipes-kernel/linux/linux-yocto_3.4.bb: Failure expanding variable do_patch: ExpansionError: Failure expanding variable SRCPV, expression was ${@bb.fetch2.get_srcrev(d)} which triggered exception FetchError: Fetcher failure for URL: 'git://otcgit.jf.intel.com/dvhart/linux-yocto-minnow-3.4.git;protocol=git;nocheckout=1;branch=standard/minnow,meta,emgd-1.14;name=machine,meta,emgd'. Please set SRCREV_emgd_pn-linux-yocto to a valid value Note the variable listed as invalid is "SRCREV_emgd_pn-linux-yocto", making it explicit what is wrong. (Bitbake rev: 63774f5b4edb999300bddd891233f6050f4af877) Signed-off-by: Darren Hart <dvhart@linux.intel.com> Cc: bitbake-devel@lists.openembedded.org Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake-layers: print the recipe's depends that crosses a layer ↵Robert Yang2013-01-311-0/+133
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | boundary Figure out the dependency between recipes that crosses a layer boundary * Introduction: - For the .bb file, we need check the following depends: > Check the DEPENDS, RDEPENDS and inherits according to the cooker_data. > The cooker_data doesn't have the info about "require/include xxx", so we need check them manually. - For the .bbclass, .inc and .conf file, we can't get their file depends from the cooker_data, we need check them manually. * Usage: $ bitbake-layer show-cross-depends I don't like the name "show-cross-depends", figure-out-cross-depends might be better, but most of the commands are "show-xxx" for bitbake-layers. * Output: (snipped) /work/poky/meta/recipes-support/libusb/libusb-compat_0.1.4.bb inherits /work/poky/meta-yocto/classes/poky-sanity.bbclass /work/poky/meta-intel/meta-cedartrail/recipes-cdv-media/images/core-image-cdv-media.bb requires /work/poky/meta/recipes-sato/images/core-image-sato.bb /work/poky/meta-yocto/recipes-core/tiny-init/tiny-init.bb RDEPENDS /work/poky/meta/recipes-core/busybox/busybox_1.20.2.bb /work/poky/meta-intel/common/recipes-bsp/amt/lms_7.1.20.bb DEPENDS /work/poky/meta/recipes-devtools/autoconf/autoconf_2.69.bb /work/poky/meta/classes/distrodata.bbclass includes /work/poky/meta-yocto/conf/distro/include/package_regex.inc /work/poky/meta-intel/meta-sys940x/conf/machine/sys940x.conf requires /work/poky/meta/conf/machine/include/tune-atom.inc [YOCTO #3387] (Bitbake rev: 100502ef722bf19b6c125a5e017f31686ad18421) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: ssh.py: add example SRC_URIMartin Jansa2013-01-311-0/+6
| | | | | | | (Bitbake rev: f838af8e7afebf279ffb00a3afa6592f061b703f) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: ssh.py: throw ParameterError when someone tries ssh://foo; protocol=gitMartin Jansa2013-01-311-0/+5
| | | | | | | | | | * taken from SFTP fetcher: http://patchwork.openembedded.org/patch/43027/ (Bitbake rev: 88e565855b52e905156d85c3f45b341cddfe2f55) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: ssh: fix fetcherMartin Jansa2013-01-311-14/+7
| | | | | | | | | | | | | | | | | | | * set localpath in urldata_init otherwise localpath and basename were None, when fetcher was trying to define .lock and .done paths basepath = d.expand("${DL_DIR}/%s" % os.path.basename(self.localpath or self.basename)) * remove "host" from localpath .done and .lock files are always using just basename, so if someone has 2 recipes with: SRC_URI = "ssh://foo/file.txt" SRC_URI = "ssh://bar/file.txt" then there will be only one file.txt.done in downloads anyway (and only first file.txt from first server will be returned on do_fetch (Bitbake rev: 41208760d70a657297f9ecfb48b74e2c3b594e70) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: hob: eliminate the "by recipe" grouping in the packages tableCristiana Voicu2013-01-312-182/+112
| | | | | | | | | | | | We have agreed to change how we show the packages. Now they are not grouped by recipe. Until now, it was implemented using TreeStore and I've changed it to extend a ListStore. I have modified all the function in according to this. [YOCTO #2180] (Bitbake rev: 311e7ba8b2c88fbf6f16b6ffb1400226b155ddd4) Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: hob: Use a GtkTreeView to present and configure the sstate mirrorsCristiana Voicu2013-01-312-121/+204
| | | | | | | | | | | | After some discussions about the design of the Shared State Settings tab in Hob, we have decided that using a GtkTreeView to present and configure the sstate mirrors is probably the best solution. [YOCTO #3569] (Bitbake rev: 2ff636910b9cf3099e8d961f4bbe71512c015ecc) Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: tinfoil: support other fds, enable color supportChristopher Larson2013-01-311-3/+5
| | | | | | | | | | Rather than only handling sys.stdout, also support any arbitrary file object, and enable color for the formatter if that file is a tty. (Bitbake rev: c46db4be4cc4dc53376ed3f574b2f1c868730f2a) Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: hob: small fixes to parsing warnings dialogCristiana Voicu2013-01-312-2/+5
| | | | | | | | | | | Set the labels selectable; reset the warnings list when another machine is selected; changed a label name [YOCTO #3215] (Bitbake rev: a4463d7b51828c32e55dea3c0dd51966d387abac) Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake & hob: implement functions to assure consistency for ↵Cristiana Voicu2013-01-316-37/+153
| | | | | | | | | | | | | | | | | | | | | | | | configuration files Added a new command in bitbake to save a variable in a file; added a function in cooker which is called by this command. Added new command in bitbake to enable/disable data tracking. The function saveConfigurationVar from cooker.py saves a variable in the file that is received by argument. It checks all the operations made on that variable, using the history. If it's the first time when it does some changes on a variable,it comments the lines where an operation is made on it, and it sets it in a line to the end of file. If it's not the first time(it has a comment before), it replaces the line. Made some changes in hob to save the variables from bblayers.conf and local.conf using the bitbake command. [YOCTO #2934] (Bitbake rev: 55b814ccfa413d461d12956896364ab63eed70a8) Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cache.py: Drop support for BROKEN variableRichard Purdie2013-01-301-2/+1
| | | | | | | | | | All it now does is function in a similar way to EXCLUDE_FROM_WORLD and since we have a better named variable for this, lets just drop the usage of BROKEN at the bitbake level. (Bitbake rev: 8f4dcf794545273417d78ba18f51aa2b81606ae4) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: build.py: Dump out performance data of individual tasksRichard Purdie2013-01-282-3/+18
| | | | | | | (Bitbake rev: 32aa49519e4f015e3c21466a7e5dc939f6369851) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: utils.py: Add function for processing profile outputRichard Purdie2013-01-282-19/+21
| | | | | | (Bitbake rev: 0df64810e8d40e7761cfd5059c0617dda31a6641) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake-diffigs: Don't pull in tinfoil unless we really need/plan ↵Richard Purdie2013-01-251-1/+1
| | | | | | | | | | | to use it This means we can run in parallel with other bitbake processed we're not in task mode. (Bitbake rev: 20222f2f16130e91eed5e68286188ee0e8f8f3bf) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake-layers: fix get_file_layerRobert Yang2013-01-251-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | The get_file_layer can't handle the nested layer correctly, e.g.: meta-intel/conf/layer.conf meta-intel/meta-cedartrail/conf/layer.conf They are two layers, the file: meta-intel/common/recipes-bsp/amt/lms_7.1.20.bb belongs to meta-intel's layer, but the get_file_layer() may return meta-cedartrail accordig to BBLAYERS' order, since it uses: for layerdir in self.bblayers: if regex.match(os.path.join(layerdir, 'test')): return self.get_layer_name(layerdir) which doesn't care the filename, re-match the filename would fix the problem. [YOCTO #3387] (Bitbake rev: 7a31b9eac4d894c302f0e052a132c31b17d13d1f) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cache.py: remove the duplicated self.file_dependsRobert Yang2013-01-251-1/+0
| | | | | | | | | | | | | | | | | | | | | | | There are two "self.file_depends =" lines in cache.py::CoreRecipeInfo: class CoreRecipeInfo(RecipeInfoCommon): __slots__ = () cachefile = "bb_cache.dat" def __init__(self, filename, metadata): self.file_depends = metadata.getVar('__depends', False) [snip] self.file_depends = metadata.getVar('__depends', False) They are duplicated, remove the last one. [YOCTO #3795] (Bitbake rev: 409a4aa0e166c25a8cfcd91e54f1b61cced74e87) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: hob: hob do not use .hob dir for variables from local.conf and ↵Cristiana Voicu2013-01-252-28/+10
| | | | | | | | | | | | | bblayers.conf If .hob exists, hob takes the variable from there. Change to not override anymore the variables which comes from bblayers.conf and local.conf [YOCTO #2934] (Bitbake rev: 00533e83038e3d5e3cd5d1be73c45afece92ec0c) Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: prserv: use only PRSERV_HOSTConstantin Musca2013-01-251-4/+11
| | | | | | | | | | | | | - remove PRSERV_PORT variable - use 'hostname:port' as PRSERV_HOST format - use 'localhost:0' for enabling the local PRServer [YOCTO #3744] (Bitbake rev: ad62eed9e1f0867a406e9fbfa44916a0f1ad1282) Signed-off-by: Constantin Musca <constantinx.musca@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: crumbs: Add file lost from previous commitRichard Purdie2013-01-221-0/+161
| | | | | | (Bitbake rev: 90aabeb87d6c1f00d6333cc9930626d36b6d9709) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: hob: combo box updated correctlyCristiana Voicu2013-01-221-2/+5
| | | | | | | | | | | The 'select a base image' option is no longer displayed once an image is selected [YOCTO #3671] (Bitbake rev: 27f2247b4c227c3b5adb1ca33d0cd7f7b492e170) Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: persist_data: add get_by_pattern method to APIConstantin Musca2013-01-221-0/+5
| | | | | | | | | | - one can use get_by_pattern to get a list of values associated with keys that match the specified pattern (Bitbake rev: 6ee1f58698e2d782c54ce5aec271bcec26107eac) Signed-off-by: Constantin Musca <constantinx.musca@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: parse_py: add ~ to config_regexpConstantin Musca2013-01-221-1/+1
| | | | | | | | | - enable the '~' character in bitbake variables (Bitbake rev: 7c15ff1d50d7b601414f1d55c90e3c59981a0876) Signed-off-by: Constantin Musca <constantinx.musca@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: hob: Hob should display warnings generated during parsingCristiana Voicu2013-01-215-6/+80
| | | | | | | | | | | | | | -now Hob catches the warnings generated during parsing, and after the parsing is completed, if there are any warnings, it shows a bar that contains a message with how many warnings has encountered, and a button "View warnings" -when "View warnings" button is clicked, Hob shows a dialog with the warnings; if there more than 1 warning, you can use "Previous" and "Next" button to see them [YOCTO #3215] (Bitbake rev: d7b5311d35b3974398fecabfb5ecf1effa85c27e) Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: hob: progress bar changed to busy cursor when you open log fileCristiana Voicu2013-01-215-161/+6
| | | | | | | | | | | | | | -the first implementation for this bug used a progress bar, that is shown during open file process; it revelead that the progress bar stops earlier -now I have implemented using gtk.show_uri() method, that shows itself a busy cursor when it opens a file; -deleted the code for the first implementation [YOCTO #2997] (Bitbake rev: 09d1c4c2db124104b9da460547b20a2c2ff07bb3) Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: BBHandler/ConfHandler: Merge fix for multiline commentsRichard Purdie2013-01-212-2/+2
| | | | | | | | | | This was meant to be squashed into the previous commit for multiline comment handling. It fixes the case the commented multiline is followed by an empty line which was resulting in a traceback instead of a sane error message. (Bitbake rev: 7e7d692e244fe8dca533f842ca143b9c821e317c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: BBHandler/ConfHandler: Improve multiline comment handlingRichard Purdie2013-01-212-4/+14
| | | | | | | | | | | | | | | | | | | | Faced with an expression like: # Some comment \ FOO = "bar" what should bitbake do? Technically, the \ character means its multiline and currently the code treats this as a continuation of the comment. This can surprise some people and is not intuitive. This patch makes bitbake simply error and asks the user to be clearer about what they mean. (Bitbake rev: 589d31ce41e019ee6a7cb6527d67bc76c0b6382a) (Bitbake rev: 79c00fabe08b4c210a3bd81cfaffbc47ffdc2e2b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: hob: Fix GTK+ and PyGtk version check error message to be more clearJessica Zhang2013-01-181-1/+1
| | | | | | | | | | | Improve the error message the user sees if the versions are incorrect. [YOCTO #3637] (Bitbake rev: 7e3a99949358f4362876df5a82f8aeaae72c3c97) Signed-off-by: Jessica Zhang <jessica.zhang@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: hg.py: Fixed fetch failure that occurs when SRCREV is a tag.Jon Szymaniak2013-01-181-1/+6
| | | | | | | | | | | | Removed "-r REV" from hg clone invocation to fetch the entire repo, rather than just the subset at the specified revision. This will ensure that the specified tag exists for successive commands (e.g., the update built on line 149.) (Bitbake rev: f0a6261d3a8ede9ebdb6383e02cb2c2de1690640) Signed-off-by: Jon Szymaniak <jon.szymaniak@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: fetch2: Sort file checksums by value, not pathTyler Hall2013-01-181-1/+2
| | | | | | | | | | | | | | | | | | | Changing the path to a file could change the task hash even if the file still has the same checksum. This occurs when the task depends on multiple files and the sort order of their paths changes. Usually the sorting is consistent because layers tend to have the same relative paths, but this should take care of other configuations. The problem arose when using a .bbappend to add files to a recipe in another layer. If the layer is located alongside the other layers and their parent directory is moved, the hash does not change. However, moving the .bbappend layer outside of the common directory can change the path sort order and the task hash. (Bitbake rev: 22bd19d208f0251f5a1f9b98f3cac66181f3fc07) Signed-off-by: Tyler Hall <tylerwhall@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: data_smart.py and friends: Track variable historyPeter Seebach2013-01-184-54/+251
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds tracking of the history of variable assignments. The changes are predominantly localized to data_smart.py and parse/ast.py. cooker.py and data.py are altered to display the recorded data, and turn tracking on for the bitbake -e case. The data.py update_data() function warns DataSmart.finalize() to report the caller one further back up the tree. In general, d.setVar() does what it used to do. Optionally, arguments describing an operation may be appended; if none are present, the operation is implicitly ignored. If it's not ignored, it will attempt to infer missing information (name of variable, value assigned, file and line) by examining the traceback. This slightly elaborate process eliminates a category of problems in which the 'var' member of the keyword arguments dict is set, and a positional argument corresponding to 'var' is also set. It also makes calling much simpler for the common cases. The resulting output gives you a pretty good picture of what values got set, and how they got set. RP Modifications: a) Split from IncludeHistory to separate VariableHistory b) Add dedicated copy function instead of deepcopy c) Use COW for variables dict d) Remove 'value' loginfo value and just use 'details' e) Desensitise code for calling order (set 'op' before/after infer_caller_details was error prone) f) Fix bug where ?= "" wasn't shown correctly g) Log more set operations as some variables mysteriously acquired values previously h) Standardise infer_caller_details to be triggered from .record() where at all possible to reduce overhead in non-enabled cases i) Rename variable parameter names to match inference code j) Add VariableHistory emit() function to match IncludeHistory k) Fix handling of appendVar, prependVar and matching flag ops l) Use ignored=True to stop logging further events where appropriate (Bitbake rev: f00524a3729000cbcb3317fee933ac448fae5e2d) Signed-off-by: Peter Seebach <peter.seebach@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: data_smart.py and friends: Track file inclusions for ↵Peter Seebach2013-01-183-1/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bitbake -e This code adds inclusion history to bitbake -e output, showing which files were included, in what order. This doesn't completely resolve timing questions, because it doesn't show you which lines of a file were processed before or after a given include, but it does let you figure out what the path was by which a particular file ended up in your build at all. How it works: data_smart acquires a .history member, which is an IncludeHistory; this represents the inclusion of a file and all its inclusions, recursively. It provides methods for including files, for finishing inclusion (done as an __exit__), and for dumping the whole tree. The parser is modified to run includes inside a with() to push and pop the include filename. RP Modifications: a) Split Include and Variable tracking b) Replace deepcopy usage with dedicated copy function c) Simplify some variable and usage (Bitbake rev: b2dda721262da8abb7dc32d019e18fbc32ed8860) Signed-off-by: Peter Seebach <peter.seebach@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: BBHandler/data: Standardise some setVar access formatsRichard Purdie2013-01-182-6/+6
| | | | | | (Bitbake rev: e12c1a485f96a4701144ac81179ae1af348e5bf3) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: hig.py: refactor into individual componentsBogdan Marinescu2013-01-1617-1987/+2268
| | | | | | | | | | | | | | | | | | Since hig.py was becoming too large (which impacted maintenance and operations like git merges) it was split into individual files for the classes that were implemented in hig.py. hig is now a Python package (lib/bb/ui/crumbs/hig/). The patch was tested by building core-image-basic/qemux86 in Hob and accessing the various UI elements implemented in hig. Note that the patch does not change the functionality of Hob in any way, it's just a code refactoring that should make life a bit easier for Hob developers. [YOCTO #3200] (Bitbake rev: a7a2b730f915cafe7aa30539622dd1ca64ae41f5) Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: build.py: Fix traceback when there are no dependenciesRichard Purdie2013-01-071-3/+4
| | | | | | | | | A recipe with no dependencies results in a traceback (e.g. all in ASSUME_PROVIDED). This shouldn't happen and this patch fixes it. (Bitbake rev: dee7decf87dfa8cb966fe40846d27f3e6ab1846b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: fetch2: remove localcount and use AUTOINC insteadConstantin Musca2012-12-172-83/+11
| | | | | | | | | | | | | | | | - do not use the BB_URI_LOCALCOUNT database for computing revision incremental numbers anymore - sortable_revision now generates "AUTOINC+${latest_rev}" - use one incrementing value rather than several - PV becomes 0.1+gitAUTOINC+deadbeefdecafbad_decafbaddeadbeef - remove all localcount code and simplify the fetcher - this patch addresses the following proposal: http://lists.linuxtogo.org/pipermail/bitbake-devel/2012-November/003878.html (Bitbake rev: 61cf01c5c236b4218f40cfae7c059c2b86765dbd) Signed-off-by: Constantin Musca <constantinx.musca@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: data: Ensure emit_func honours vardeps flagRichard Purdie2012-12-171-0/+1
| | | | | | | | | | | | | | | Currently, calling a shell function using exec_func may result in dependent functions being missing, if the shell parser can't detect the dependency, even if it was specified with the vardeps flag. This patch ensures the function looks at the flag and considers it when deciding which other functions need to be output. [YOCTO #3561] (Bitbake rev: a906c94328b040d5076571bd593b57be7ee403a5) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: hob: use base image only if it was setCristiana Voicu2012-12-141-4/+5
| | | | | | | | | | As it is, when you create a new image from scratch, hob gives an error. This is because of the patch for #2601. (Bitbake rev: 42d9db0cc80ed45d769f843ccb51e0c194ec557b) Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: hob/bitbake: custom image is now using the base imageCristiana Voicu2012-12-145-2/+49
| | | | | | | | | | | | | Till now, a custom image made in Hob was using only the packages from the base image. Now it is using everything declared in the base image. Also next to hob-image.bb, it creates another .bb file which is used in building process. Those images are ignored by git. [YOCTO #2601] (Bitbake rev: 22007cf71a00fbb03b40f97201a6eb06c9aebd16) Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: knotty: use bb.error instead of printMihai Lindner2012-12-141-2/+2
| | | | | | | | | | Change to use bb.error instead of print, or maybe that was desired (?) Also remove a tab, while in the neighborhood. (Bitbake rev: 4a36a1af71530afc8fa896271fa94362ead176bd) Signed-off-by: Mihai Lindner <mihaix.lindner@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: git.py: A bit of tidying up regarding grammar and supported protocols.Robert P. J. Day2012-12-141-5/+5
| | | | | | | | | Doc cleanup, no functional change. (Bitbake rev: 5161a84f5dcfe748382a5073349bf10ed21641f9) Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>