[OE-core] Using SSTATE_MIRRORS with sstate subdirectories

Mike Crowe mac at mcrowe.com
Fri Oct 19 15:38:35 UTC 2012


I'm having trouble using SSTATE_MIRRORS as suggested at
https://wiki.yoctoproject.org/wiki/Enable_sstate_cache :

SSTATE_MIRRORS ?= "file://.* file:///private/sstate-cache/"

Since commit 5d45c7b025f6635b2232d7bf92b7c1aba350396b my sstate-cache
files are stored in two-letter subdirectories (and
9360fc318cec5c873b17f59b817dd6312c81ee27 adds the LSB prefix too.)
Although these components are present in the original URL they don't
make it into the rewritten one:

DEBUG: SState using premirror of: file://.* file:///private/sstate-cache/
DEBUG: SState: Attempting to fetch file://Debian-testing/b0/sstate-quilt-native-x86_64-linux-0.60-r0-x86_64-2-b0869ac9e0e74960018909e56a6822a1_populate-sysroot.tgz
DEBUG: Searching for Debian-testing/b0/sstate-quilt-native-x86_64-linux-0.60-r0-x86_64-2-b0869ac9e0e74960018909e56a6822a1_populate-sysroot.tgz in paths:   
DEBUG: Searching for Debian-testing/b0/sstate-quilt-native-x86_64-linux-0.60-r0-x86_64-2-b0869ac9e0e74960018909e56a6822a1_populate-sysroot.tgz in path: /vg0disk/mac/src/oe2/build-bcm7425/conf/.
DEBUG: Defaulting to /vg0disk/mac/src/oe2/build-bcm7425/sstate-cache/Debian-testing/b0/sstate-quilt-native-x86_64-linux-0.60-r0-x86_64-2-b0869ac9e0e74960018909e56a6822a1_populate-sysroot.tgz for Debian-testing/b0/sstate-quilt-native-x86_64-linux-0.60-r0-x86_64-2-b0869ac9e0e74960018909e56a6822a1_populate-sysroot.tgz
DEBUG: Testing URL file://Debian-testing/b0/sstate-quilt-native-x86_64-linux-0.60-r0-x86_64-2-b0869ac9e0e74960018909e56a6822a1_populate-sysroot.tgz
DEBUG: For url ['file', '', 'Debian-testing/b0/sstate-quilt-native-x86_64-linux-0.60-r0-x86_64-2-b0869ac9e0e74960018909e56a6822a1_populate-sysroot.tgz', '', '', {}] comparing ['file', '', '.*', '', '', {}] to ['file', '', '/private/sstate-cache/', '', '', {}]
DEBUG: For url file://Debian-testing/b0/sstate-quilt-native-x86_64-linux-0.60-r0-x86_64-2-b0869ac9e0e74960018909e56a6822a1_populate-sysroot.tgz returning file:///private/sstate-cache/sstate-quilt-native-x86_64-linux-0.60-r0-x86_64-2-b0869ac9e0e74960018909e56a6822a1_populate-sysroot.tgz
DEBUG: For url ['file', '', '/private/sstate-cache/sstate-quilt-native-x86_64-linux-0.60-r0-x86_64-2-b0869ac9e0e74960018909e56a6822a1_populate-sysroot.tgz', '', '', {}] comparing ['file', '', '.*', '', '', {}] to ['file', '', '/private/sstate-cache/', '', '', {}]
DEBUG: SState: Unsuccessful fetch test for file://Debian-testing/b0/sstate-quilt-native-x86_64-linux-0.60-r0-x86_64-2-b0869ac9e0e74960018909e56a6822a1_populate-sysroot.tgz

Inspired by 9360fc318cec5c873b17f59b817dd6312c81ee27 I tried:

SSTATE_MIRRORS ?= "file://(.*) file:///private/sstate-cache/\1"

But this just resulted in an infinite loop with progressively more
private/sstate-cache/ components added to the path name.

I've had a poke at fetch2's uri_replace but it isn't obvious to me how
to change this behaviour without risking breaking something else.

Any ideas?

Thanks.

Mike.






More information about the Openembedded-core mailing list