aboutsummaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/fetch2/__init__.py
AgeCommit message (Collapse)Author
2013-02-19bitbake: Revert "fetch2: Adapt encode/decode url to use URI class"1.4_M4.rc11.4_M4.final1.4_M4Richard Purdie
This reverts commit 21fe2683aefde10e847e66c11c26d4f4c1e07cfd since bitbake-selftest doesn't pass when this is applied and we're seeing multiple build failures from this change. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-19bitbake: bitbake/fetch2: workaround urlparse in older python not support gitMatthew McClintock
(Bitbake rev: 7e479dc6a574a8f3bd9f24d2ed1c3ceef91f3828) Signed-off-by: Matthew McClintock <msm@freescale.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-17bitbake: fetch2: Add SFTP fetcherOlof Johansson
This fetcher differs from the SSH fetcher in that it adheres more strictly to the SECSH URI internet draft --- it uses the sftp:// instead of the ssh:// scheme, and it uses sftp instead of scp. (Bitbake rev: d240baeb7a4107d2eba3f08c411c0f086674d8e2) Signed-off-by: Olof Johansson <olof.johansson@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-17bitbake: fetch2: Adapt encode/decode url to use URI classOlof Johansson
(Bitbake rev: 21fe2683aefde10e847e66c11c26d4f4c1e07cfd) Signed-off-by: Olof Johansson <olof.johansson@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-17bitbake: fetch2: Add a class representing a generic URIOlof Johansson
A class representing a generic URI, with methods for accessing the URI components, and stringifies to the URI. This class should be a bit more flexible than the existing {encode,decode}_url functions in that it supports more components (e.g. port) and that it does not rely on a specific order on the return values. This makes it easy to add new properties without affecting the API. (Bitbake rev: bd824da8a7eafe27310e410807319628378caeca) Signed-off-by: Olof Johansson <olof.johansson@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15bitbake: fetch2: Ensure directory for stampfile exists before trying to ↵Richard Purdie
create it (Bitbake rev: cf510e3da36e53f98ca86501747364bf4699ecc1) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15bitbake: fetch2: Improve lock/done stamp file paths for local filesRichard Purdie
Currently stamps end up at the top level of DL_DIR even if the files themselves are in a directory structure. This patch preserves path components allowing the top level directory to be less populated which is an advantage for large sstate caches. (Bitbake rev: 59921ce3ed7a4c0b7f8ef1a101ad9127469bf1fd) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15bitbake: fetch2: Ensure expansions happen in URL parameters in uri_replaceRichard Purdie
For example, this allows us to specify downloadfilename=PATH in sstate mirror urls to improve directory structures in DL_DIR when using sstate. (Bitbake rev: 7850a1364b6b37c58664d84f9c14806b4479b45c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06bitbake: fetch2: Remove broken git variables from the environmentDarren Hart
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>
2013-02-06bitbake: fetch2: Export upper and lower case environment variablesDarren Hart
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>
2013-02-05bitbake: bitbake: fetch2: Print the complete SRCREV variable name when INVALIDDarren Hart
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>
2013-01-18bitbake: fetch2: Sort file checksums by value, not pathTyler Hall
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>
2012-12-17bitbake: fetch2: remove localcount and use AUTOINC insteadConstantin Musca
- 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>
2012-11-26bitbake: fetch2: Avoid using FILESDIR in unpackRichard Purdie
Currently there is code which uses FILESDIR in unpack to ensure parent directories are created, leading to differing behaviour depending on which search path is used to locate the directory. This change standardises the code and takes the data from the fetcher in question meaning we can standardise the code and deprecate FILESDIR. (Bitbake rev: 1cccb3bd01ed82e4978acfef0fda1bd797eef72a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-27bitbake: fetch2: add "-d" option to cpioRobert Yang
Add "-d" option to cpio since it is useful: -d --make-directories Create leading directories where needed. [YOCTO #3137] (Bitbake rev: a78f9ded7896432b107f34c0bb608b389fdb676a) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-24bitbake: fetch2: improve error output for checksum failuresPaul Eggleton
* Don't print the full exception in the initial warning - if we later succeed in fetching the file from a mirror, we won't usually need the details (which are in the fetch log if they are needed); otherwise the full error will be printed when the fetch operation fails. Also adjust the conditional block so that we don't print another warning just mentioning we're going to try mirrors. * Call logger.error() so that with knotty the full log is not printed * Provide an explanation around the lines we print for easily updating the checksums in the recipe. We don't want users to be just blindly updating the recipe in case of a transient failure or deliberately altered remote file. (Bitbake rev: 2793413106c925b06783beb7413aa87cbcf246c3) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-24bitbake: fetch2: make fetch failure errors more readablePaul Eggleton
Most of the time we don't need to see the fetch command; the fetch log includes the command as a debug message in any case, so omit it. Also adjust the way command output is printed (we don't need stderr/stdout labelled, and print "no output" instead of "output:\nNone" when there is no output. (Bitbake rev: a75505a52e4da918222100221f79e8a658f90446) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-10bitbake: fetch2: fix malformed URL causing a useless tracebackPaul Eggleton
The implementation of NoMethodError and MalformedUrl was broken - if you just set self.args in an exception class to a string it treats it as a list and then fails later on with a TypeError due to the number of arguments not matching up. This nasty exception during exception handling was breaking the normal exception flow (fixed separately), which meant that if you had a malformed URL or invalid protocol in SRC_URI you would get the following: ERROR: Command execution failed: Traceback (most recent call last): File "/home/user/poky/poky/bitbake/lib/bb/command.py", line 84, in runAsyncCommand self.cooker.updateCache() File "/home/user/poky/poky/bitbake/lib/bb/cooker.py", line 1207, in updateCache if not self.parser.parse_next(): File "/home/user/poky/poky/bitbake/lib/bb/cooker.py", line 1694, in parse_next logger.error('Unable to parse %s', value.recipe, AttributeError: 'exceptions.TypeError' object has no attribute 'recipe' A specific fix for [YOCTO #2977]. (Bitbake rev: 9d4150d99051d24ff218e8a43664ceaf524b19c7) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-07bitbake: fetch2: replace double slashes in paths in encodeurl()Paul Eggleton
This ensures that if all a MIRRORS entry does is add a slash, this does not result in a circular loop. Fixes [YOCTO #3073]. (Bitbake rev: 57055d337a2c9997a6e5d5bdabaec396e3e128e9) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-07bitbake: fetch2: unpack rpm, ipk and deb binary packageRobert Yang
* Unpack the ".rpm" binary package (only .src.rpm in the past) * Unpack the .deb and .ipk binary package, their unpack commands are the same. * This is useful for binary package recipe. [YOCTO #1592] (Bitbake rev: de7ceb9459574f33920ccc06255b533434f0ec25) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-02bitbake: fetch2: print checksums when they are different then expectedMartin Jansa
* in form which can be copied into a recipe without modification * like oe-classic did since: http://git.openembedded.org/openembedded/commit/?id=68abc465559a68e9201c9525be3c4acc6297eaed * it shows them in right form when they are missing completely, but in more verbose form when different * it needs to print that only when checksums were requested, e.g. fetching from sstate mirror sets both md5mismatch and sha256mismatch, but your checksums shouldn't be shown (Bitbake rev: 9eb34fc866775fd8310759a0111f232a9dc98981) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-02bitbake: fetch2: handle broken symlinks in local mirror handlingChristopher Larson
If a file:// mirror is being used, the fetcher will create a symlink to the local file. However, if the local file gets removed, that link will be dead, and os.path.exists() returns False in that case, so it tries and fails to recreate the link. Now we unlink such a dead link if it exists. (Bitbake rev: 229ed3857e826e3e215e843cb51f729c1e13ed37) Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-02bitbake: fetch2/__init__.py: Add NoChecksumError exceptionMark Hatle
Without the new exception, when the system is configured to use premirrors, but not allow network access (via BB_NO_NETWORK), when a recipe was lacking a checksum the wrong error message(s) were being generated. Instead of complaining about trying to perform network access, if the system was able to find the item in the premirror, it should inform the user of the lack of checksums, and the two SRC_URI fields they should use to update their recipe. (Bitbake rev: cb10e9c03a3f96d94e27e18330009616dde5e2b3) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-11bitbake: fetch2/__init__.py: Warn user if SRC_URI is using "proto" and not ↵Andrei Gherzan
"protocol" As well, if "proto" is used, get the associated value as "protocol" (Bitbake rev: 53e6b630f0463d2d07cdaa9c9eb36794dc9b6b69) Signed-off-by: Andrei Gherzan <andrei@gherzan.ro> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28bitbake: fetch2: Revert the regexp removal for the type field and instead ↵Richard Purdie
anchor regexp People are using regexps in the url type field so we need to preserve this bitbake behaviour. To address the issues with https:// urls mapping badly to file:// urls we anchor the regexp if its not already anchored. There should be no expressions in the wild which would break with this change. (Bitbake rev: ce0579dc256251e523c6330641f98b9f5a0e5761) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25bitbake: fetch2: Ensure star character doesn't end up in mirror tarball namesRichard Purdie
If '*' does end up in mirror urls accidently, some strange things can break since supports_checksum() looks for this, ud.localpath can then get ignored and this can lead to empty directories being downloaded "successfully". '*' is a special case for file urls only at this point so remove any entries that accidentlly make it in through url mapping. (Bitbake rev: 1369bec2404d942acc3618a8d005ec6868dcfd41) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25bitbake: fetch2: Add new mirror syntax to simplify mirror specificationsRichard Purdie
When writing mirror specifications, the current regexp syntax can be awkward and hard to get it to do what you want. For example, extracting the 'basename' of a repository: PREMIRRORS = "git://.*/([^/]+/)*([^/]*) git://somewhere.org/somedir/\\2;protocol=file" can now become: PREMIRRORS = "git://.*/.* git://somewhere.org/somedir/BASENAME;protocol=file" which is much clearer. A MIRRORNAME substitution is also added which contains an encoded form of both host and path. One of the problems with the existing regexp syntax is you couldn't access HOST information from PATH and vice-versa which is an issue this patch also addresses. Tests for the new syntax are also added. (Bitbake rev: c6b1acbad7b3d2698530eb8b5249adb4ab95da21) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25bitbake: fetch2: Handle errors orruring when building mirror urlsRichard Purdie
When we build the mirror urls, its possible an error will occur. If it does, it should just mean we don't attempt this mirror url. The current code actually aborts *all* the mirrors, not just the failed url. This patch catches and logs the exception allowing things to continue. (Bitbake rev: c35cbd1a1403865cf4f59ec88e1881669868103c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21bitbake: fetch2: Update replace_uri to handle uri types explicitlyRichard Purdie
For mirror mapping, we never use regexps for the type component of the url. Doing so causes various slightly bizarre behaviour such as https:// urls being translated to files:// urls which we have no handler for. This patch forces the type matches to be direct, not regexp based and gives the expected bahvriour. (From Poky rev: 695d8aca0999d2d61970b990e83c3132ba6f12cb) (Bitbake rev: 604df1b25cf114e083f52917df2df64e01279c25) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21bitbake: fetch2: uri_replace() only consider ud.localpath where its a fileRichard Purdie
Using ud.localpath as a basename when it points at a directory causes problems. The supports_checksum() method gives a good indication of whether ud.localpath can be used in the way we need. (From Poky rev: 933ec8a44634e33f92f6f76de3a34094c3d63aa6) (Bitbake rev: dcd79ae20ab2c72c3312b2251c2b6dc4cabe988e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21bitbake: fetch2: uri_replace() improve mirrortarball handlingRichard Purdie
We only consider mirror tarballs when the source and target urls are of differing types. We also should clear all url paramters when handling mirror tarballs. (From Poky rev: da140b8b0b3dda5429f9eee68829ef5247cdfe12) (Bitbake rev: 7619dcad29a6c2405b15a8fbadfa11e81b399ae1) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21bitbake: fetch2: uri_replace() remove what amounts to a null operation and ↵Richard Purdie
add some comments (From Poky rev: 6d67200d052ba72258f5a0a178542ef99500a9cc) (Bitbake rev: e67af4d12f390ce6083965509ca9ea85a76dc351) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21bitbake: fetch2: Add parameter handling to uri_replace()Richard Purdie
This means that parameters in the source expression are used as part of the match. Parameters in the destination are used explicitly in the final url. (From Poky rev: c465cb0c5c927dd41d96ad6d6fa1566349574bb7) (Bitbake rev: 3c468ac3ed6d045561afce19b85ae9dd18d87cea) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21bitbake: fetch2: Remove basestring test and simplify uri_replaceRichard Purdie
(From Poky rev: d5657883d34bfef6beec594ac8d799f617b6b3ad) (Bitbake rev: 84ffc261f376429b3a6b5d7bf2f6217cd10ca12a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21bitbake: fetch2: Simplify some looping constructs in uri_replace()Richard Purdie
(From Poky rev: c6bd25150a842a530f958d7233b15ae50d42c6c8) (Bitbake rev: 075296f3e5e5e3662290a888a6ba11229a36b95a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21bitbake: fetch2: Improve mirror looping to consider more casesRichard Purdie
Currently we only consider one pass through the mirror list. This doesn't catch cases where for example you might want to setup a mirror of a mirror and allow multiple redirection. There is no reason we can't support this and the patch loops through the list recursively now. As a safeguard, it will stop if any duplicate urls are found, hence avoiding circular dependency looping. (From Poky rev: 0ec0a4412865e54495c07beea1ced8355da58073) (Bitbake rev: e585730e931e6abdb15ba8a3849c5fd22845b891) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21bitbake: fetch2: Explicitly check for mirror tarballs in mirror handling codeRichard Purdie
With support for things like git:// -> git:// urls, we need to be more explicity about the mirrortarball check since we need to fall through to the following code in other cases. (From Poky rev: 28e858cd6f7509468ef3e527a86820b9e06044db) (Bitbake rev: a2459f5ca2f517964287f9a7c666a6856434e631) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21bitbake: fetch2: Split try_mirrors into two partsRichard Purdie
There are no functionality changes in this change (From Poky rev: d222ebb7c75d74fde4fd04ea6feb27e10a862bae) (Bitbake rev: db62e109cc36380ff8b8918628c9dea14ac9afbc) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21bitbake: fetch2: Ensure when downloading we are consistently in the same ↵Richard Purdie
directory This assists with build reproducuility. It also avoids errors if cwd happens not to exist when we call into the fetcher. That situation would be unusual but I hit it with the unit tests. (From Poky rev: 86517af9e066c2da1d580fa66b7c7f0340f3403e) (Bitbake rev: b886c6c15a58643e06ca5ad7a3ff1f7766e4f48c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21bitbake: fetch2: Only cache data if fn is set, its pointless caching it ↵Richard Purdie
against a None value (From Poky rev: c2df30bf6d1f8c263a38c45866936c1bf496ece5) (Bitbake rev: f4b59cc6e1c3ddc168a1678ce39ff402ea1ff4cc) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21bitbake: fetch2: Fix error handling in uri_replace()Richard Purdie
(From Poky rev: 1bfba28a583cb167f60e05ecdf34d0786dc1eec5) (Bitbake rev: aa7467a764ddcbc7d65af99e88cf093b6ec6d24e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21bitbake: fetch2/__init__: Make it clearer when uri_replace doesn't return a ↵Richard Purdie
match (From Poky rev: dc9976331c5cbb0983adb54f6deb97b9203bacbc) (Bitbake rev: eb96609864dec95a516e6e687dd6a2f31d523acf) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14fetch2: Fix missing output from stderr in fetcher logsJason Wessel
There are actually two problems to fix 1) The exception for bb.process.ExecutionError must be processed first because it is a derived from the bb.process.CmdError class and we never reach the ExecutionError otherwise. 2) The stderr needs to be printed as well as stdout to determine the root cause of a fetch failure. The example I have is that I got a log that looked like: -- ERROR: Function failed: Network access disabled through BB_NO_NETWORK but access requested with command /usr/bin/env wget -t 5 -nv --passive-ftp --no-check-certificate -P /localds 'http://downloads.yoctoproject.org/[...CLIPPED...] url None) -- That really didn't tell me much, but with this patch I get error above plus the following: -- STDERR: /net/[...CLIPPED...]kernel-tools.git: Read-only file system -- (Bitbake rev: af2133a04e1f4b22b181adf9c71f89c439bb88cf) Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30lib/bb/fetch2: ignore remote URIs when doing file checksumsPaul Eggleton
Skip evaluating remote URIs when doing local file checksums, because we don't need to process them and doing so will trigger a parse failure if SRCREV is not fully specified. Whilst this is just delaying a check until runtime (when do_fetch runs for the recipe) we're only validating this here accidentally and if we did wish to check it during parsing it ought to be done explicitly. Fixes [YOCTO #2512] (Bitbake rev: 99feb77c2de707f2d825566cf48371c48f450e3e) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25lib/bb/fetch2: fix comments for verify_checksumPaul Eggleton
This function no longer returns a value, it raises errors instead, so update the comments to reflect this. (Bitbake rev: 8b61b9584a8b00378f9fd8f165dbd65dcfd3c14e) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-23bitbake: implement checksums for local files in SRC_URIPaul Eggleton
Gathers a list of paths to have checksums calculated at parse time, and processes these when calculating task hashes. Checksums are cached with the file's current mtime. Thus, changing any local file in SRC_URI will now cause the do_fetch taskhash to change, thus forcing a rebuild. This change adds very roughly about an 8% increase in parse time (a few seconds) and maybe a few seconds during runqueue generation, so a fairly moderate performance hit. Note that since paths are resolved at parse time, this will not force a rebuild when files are introduced which would cause that resolved path to be different - for example, where a machine-specific version of a file was added without otherwise changing the recipe. This will need to be handled in a future update. Code to hook this into the signature generator was courtesy of Richard Purdie <richard.purdie@linuxfoundation.org>. Implements [YOCTO #2044]. (Bitbake rev: c993b7c457f8b7776e8a5dff253bfa0724bc2cae) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-22fetch2: quote/unquote url pathsChristopher Larson
This ensures we can handle things like %-encoded characters in the path portion of urls. (Bitbake rev: b1dbc24ebcc4e5100c32568c2c41fd982fb4bcce) Signed-off-by: Christopher Larson <kergoth@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-22fetch2: Also exclude urls containing wildcards from checksumming for nowRichard Purdie
Without this change, bitbake will try and checksum a wildcard which will lead to fetch failures. (Bitbake rev: ac53b88be58b0bed21730c0b61a8fc8e801a2f1b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-21bb/fetch2/__init__.py: Don't try to compute checksums for directoriesAndrei Gherzan
In this way we avoid failing the build while trying to fetch local directories. [YOCTO #2475] (Bitbake rev: 39adb5741d9eee0879d3181be505400dffc60804) Signed-off-by: Andrei Gherzan <andrei@gherzan.ro> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-20bitbake/fetch: Spell out which fetcher backends support and recommend checksumsRichard Purdie
There were some hardcoded behaviours in the system for which backends support checksums verses which backends recommend them verses which don't recommend them. This moves the functionality into specific fetchers and then makes the general code generic. This cleans up the codebase and fixes some corner cases such as trying to checksum directories returned by the git fetcher. (Bitbake rev: ef6d268f7b8527541a7fb044cf95a973be4097f4) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>