<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/poky.git/meta/classes/archiver.bbclass, branch 3.2_M2</title>
<subtitle>Mirror of git.yoctoproject.org/poky</subtitle>
<id>https://git.enea.com/cgit/linux/poky.git/atom?h=3.2_M2</id>
<link rel='self' href='https://git.enea.com/cgit/linux/poky.git/atom?h=3.2_M2'/>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/'/>
<updated>2020-07-05T14:04:40+00:00</updated>
<entry>
<title>classes/archive: do_configure should not depend on do_ar_patched</title>
<updated>2020-07-05T14:04:40+00:00</updated>
<author>
<name>Joshua Watt</name>
<email>JPEWhacker@gmail.com</email>
</author>
<published>2020-07-03T13:16:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=90c3e86381eb65f72ba350cecf13de2037a5541c'/>
<id>urn:sha1:90c3e86381eb65f72ba350cecf13de2037a5541c</id>
<content type='text'>
The commit d4be264061 ("classes/archiver: run do_unpack_and_patch after
do_preconfigure") correctly moved do_unpack_and_patch to depend on
do_preconfigure, but left do_ar_patched as a dependency of do_configure
introduced from 8a7c779487 ("classes/archiver: Create patched archive
before configuring"). Having do_configure depend on do_ar_patched is
blatantly wrong. Firstly, doing so causes the taskhash of do_configure
to change which is undesirable. Secondly, the anon python that sets up
the tasks carefully skips GCC recipes that depend on gcc-source to
provide their source code since running do_unpack_and_patch in them
would delete the source code. Adding in the dependency effectively
bypasses this and makes these recipes delete the shared gcc-source

This fixes errors (for real this time) like:

 cat: .../gcc/defaults.h: No such file or directory

when making certain configuration changes.

For posterity, you could easily reproduce gcc-source being erased by
running the commands (replacing aarch64 with your correct target arch):

 bitbake -c cleanall gcc-source gcc-cross-aarch64
 bitbake -c do_deploy_archives gcc-source

 # The following would fail because
 # gcc-cross-aarch64:do_unpack_and_patch erases shared source, so
 # do_configure after that fails.
 bitbake gcc-cross-aarch64

(From OE-Core rev: f02c1904330da47a25cf85f0077712f584f4ee5b)

Signed-off-by: Joshua Watt &lt;JPEWhacker@gmail.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>classes/archiver: run do_unpack_and_patch after do_preconfigure</title>
<updated>2020-07-02T15:18:03+00:00</updated>
<author>
<name>Joshua Watt</name>
<email>JPEWhacker@gmail.com</email>
</author>
<published>2020-07-01T02:49:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=1c66128e7e63434fbade13796d671c5642ce2efe'/>
<id>urn:sha1:1c66128e7e63434fbade13796d671c5642ce2efe</id>
<content type='text'>
The commit 8a7c779487 ("classes/archiver: Create patched archive before
configuring") fixed a race condition when using the archiver, but
introduced a bug where the GCC source would occasionally be deleted due
to the archiving code running before do_preconfigure. Instead, make sure
the archiving code runs after do_preconfigure by making
do_unpack_and_patch depend on it. This makes more sense anyway since
do_preconfigure is effectively an extension of do_patch.

This fixes errors like:

 cat: .../gcc/defaults.h: No such file or directory

when making certain configuration changes

(From OE-Core rev: d4be264061023ae0ea6e023d82a7b99605bfc22c)

Signed-off-by: Joshua Watt &lt;JPEWhacker@gmail.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>classes/archiver: Create patched archive before configuring</title>
<updated>2020-06-17T10:10:28+00:00</updated>
<author>
<name>Joshua Watt</name>
<email>JPEWhacker@gmail.com</email>
</author>
<published>2020-06-16T14:39:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=7a57e777597d7f66d065582cfb83cd8f9468f4af'/>
<id>urn:sha1:7a57e777597d7f66d065582cfb83cd8f9468f4af</id>
<content type='text'>
do_configure and do_preconfigure can modify source files, which causes
race conditions if these tasks run in parallel with do_ar_patched. Add
explicit task dependencies to ensure that do_ar_patched finishes before
these tasks start. Specifically, this fixes a race condition with
gcc-source where do_ar_patched races with do_preconfigure deleting
gcc/gengtype-lex.c

(From OE-Core rev: 8a7c7794870815030239e90b03e37ed302b7e885)

Signed-off-by: Joshua Watt &lt;JPEWhacker@gmail.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>archiver: Capture git submodules in mirror archiver</title>
<updated>2020-06-09T12:13:59+00:00</updated>
<author>
<name>Paul Barker</name>
<email>pbarker@konsulko.com</email>
</author>
<published>2020-06-04T17:33:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=43f940172a6e8fd0af1101d7a3b11a918dfa10b0'/>
<id>urn:sha1:43f940172a6e8fd0af1101d7a3b11a918dfa10b0</id>
<content type='text'>
Using the new Fetch.expanded_urldata() function we can get URL data for
all git submodules.

(From OE-Core rev: d908ca51b72f4ba417e7573ae3d953535f53286c)

Signed-off-by: Paul Barker &lt;pbarker@konsulko.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>archiver.bbclass: Fix duplicated SRC_URIs for do_ar_original</title>
<updated>2020-05-25T21:25:53+00:00</updated>
<author>
<name>Robert Yang</name>
<email>liezhi.yang@windriver.com</email>
</author>
<published>2020-05-21T04:05:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=b38f320a3c2ea137d8c04d6cd7e078b5a233f485'/>
<id>urn:sha1:b38f320a3c2ea137d8c04d6cd7e078b5a233f485</id>
<content type='text'>
The argument urls of bb.fetch2.Fetch(urls, d) are duplicated to SRC_URI, which caused errors like:

bb.data_smart.ExpansionError: Failure expanding variable SRCPV, expression was ${@bb.fetch2.get_srcrev(d)} which triggered exception FetchError: Fetcher failure: The SRCREV_FORMAT variable must be set when multiple SCMs are used.
The SCMs are:
git://github.com/docker/notary.git;destsuffix=git/src/github.com/docker/notary
git://github.com/docker/notary.git

The first one is from original SRC_URI, the second one is from the
variable 'urls', so cleanup SRC_URI before call bb.fetch2.Fetch() can fix the
problem.

(From OE-Core rev: b244c4f3427cd07376d4b8f7d27e38735bcc90e7)

Signed-off-by: Robert Yang &lt;liezhi.yang@windriver.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>archiver.bbclass: Make do_deploy_archives a recursive dependency</title>
<updated>2020-05-18T05:33:36+00:00</updated>
<author>
<name>Paul Barker</name>
<email>pbarker@konsulko.com</email>
</author>
<published>2020-03-09T14:21:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=af728be16fa14c63c9bcf4f4ae71ff02c0e54bef'/>
<id>urn:sha1:af728be16fa14c63c9bcf4f4ae71ff02c0e54bef</id>
<content type='text'>
To ensure that archives are captured for all dependencies of a typical
bitbake build we add do_deploy_archives to the list of recursive
dependencies of do_build. Without this, archives may be missed for
recipes such as gcc-source which do not create packages or populate a
sysroot.

do_deploy_archives is also added to the recursive dependencies of
do_populate_sdk so that all sources required for an SDK can be captured.

(From OE-Core rev: cd3f766ae1875dfa1f63b68e2ae5b6a950ce67ae)

Signed-off-by: Paul Barker &lt;pbarker@konsulko.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>archiver.bbclass: Correct a typo</title>
<updated>2020-03-22T10:48:44+00:00</updated>
<author>
<name>Peter Kjellerstedt</name>
<email>pkj@axis.com</email>
</author>
<published>2020-03-20T18:03:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=c2b67f880f047904dd7b0ef9f1ae3d9077a09585'/>
<id>urn:sha1:c2b67f880f047904dd7b0ef9f1ae3d9077a09585</id>
<content type='text'>
Also add a missing space in a warning message.

(From OE-Core rev: 6d1d0dccafeaeb971ad18a8bb4ebdd2860d407d5)

Signed-off-by: Peter Kjellerstedt &lt;peter.kjellerstedt@axis.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>archiver.bbclass: Add new mirror archiver mode</title>
<updated>2020-01-10T21:18:22+00:00</updated>
<author>
<name>Paul Barker</name>
<email>pbarker@konsulko.com</email>
</author>
<published>2020-01-07T11:27:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=61e1b4136fb8ceb3785dcfdb22a3b80d062faaa6'/>
<id>urn:sha1:61e1b4136fb8ceb3785dcfdb22a3b80d062faaa6</id>
<content type='text'>
We define a new method of populating a source mirror using the archiver
bbclass instead of simply copying the contents of the downloads
directory. This allows the archiver features such as copyleft license
filtering and recipe type filtering to be used when preparing a source
mirror.

This new archiver mode is selected by setting `ARCHIVE_MODE[src]` to
'mirror'.

The source mirror mode can either be 'split' (default) or 'combined',
controlled by `ARCHIVER_MODE[mirror]`. Additionally, sources can be
excluded as needed by setting `ARCHIVER_MIRROR_EXCLUDE` to a list of
URI prefixes. These options are described in more detail in the new
entries in the header of archiver.bbclass.

New oeqa selftest cases are added to cover the mirror archiver mode.

(From OE-Core rev: 2c8b31ae0ab95a8b100e8bade23f51574e273c9a)

Signed-off-by: Paul Barker &lt;pbarker@konsulko.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>archiver: avoid empty incfile in ar_recipe</title>
<updated>2019-11-14T13:20:59+00:00</updated>
<author>
<name>grygorii tertychnyi</name>
<email>gtertych@cisco.com</email>
</author>
<published>2019-11-01T07:10:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=6961d96cba503ee9704a785ed28412f683425762'/>
<id>urn:sha1:6961d96cba503ee9704a785ed28412f683425762</id>
<content type='text'>
do_ar_recipe fails on perf recipe on line:

include ${@bb.utils.contains('PACKAGECONFIG', 'scripting', 'perf-perl.inc', '', d)}

1. "${...}" part expands into empty string
2. bb.utils.which() takes empty string and returns first directory name from bbpath
3. shutil.copy() fails on copying directory:

Exception: IsADirectoryError: [Errno 21] Is a directory: ......

Hence, check "incfile" variable on each step.

(From OE-Core rev: 3b393da7d2d15de12e2a8a9c11591078b40b188a)

Signed-off-by: grygorii tertychnyi &lt;gtertych@cisco.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>classes/archiver: Fix WORKDIR for shared source</title>
<updated>2019-09-19T09:54:33+00:00</updated>
<author>
<name>Joshua Watt</name>
<email>jpewhacker@gmail.com</email>
</author>
<published>2019-09-18T21:21:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=ec33280c00c75f8f3cbcfbd65500b8f946129155'/>
<id>urn:sha1:ec33280c00c75f8f3cbcfbd65500b8f946129155</id>
<content type='text'>
When archiving patched source, WORKDIR should only be changed to
${ARCHIVER_WORKDIR} if the recipe doesn't use a shared work directory.
This matches the behavior of do_unpack_and_patch for these recipes.

This fixes kernel recipes that set S = "${WORKDIR}/git"

(From OE-Core rev: e3caee8f86f2cca1d052f1f1b233018a3d4baa97)

Signed-off-by: Joshua Watt &lt;JPEWhacker@gmail.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
</feed>
