7135 Commits

Author SHA1 Message Date
Alassane Yattara
94b73c33d5 bitbake: toaster/toastergui: Bug-fix verify given layer path only if import/add local layer
(Bitbake rev: 380a9ac97de5774378ded5e37d40b79b96761a0c)

Signed-off-by: Alassane Yattara <alassane.yattara@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-02-07 04:00:02 -10:00
Joshua Watt
afe1706a77 bitbake: asyncrpc: Add context manager API
Adds context manager API for the asyncrcp client class which allow
writing code that will automatically close the connection like so:

    with hashserv.create_client(address) as client:
       ...

Rework the bitbake-hashclient tool and PR server to use this new API to
fix warnings about unclosed event loops when exiting

(Bitbake rev: 52226a7244968c8dad6f4ee9ccec57ac1979217a)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d01d684a0f6398270fe35ed59b7d28f3fd9b7e41)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-10 05:02:09 -10:00
Richard Purdie
0b4769de4a bitbake: lib/bb: Add workaround for libgcc issues with python 3.8 and 3.9
With python 3.8 and 3.9, we see intermittent errors of:

libgcc_s.so.1 must be installed for pthread_cancel to work
Aborted (core dumped)

which seem related to:

https://stackoverflow.com/questions/64797838/libgcc-s-so-1-must-be-installed-for-pthread-cancel-to-work
https://bugs.ams1.psf.io/issue42888

These tend to occur on debian 11 and ubuntu 20.04.

Workaround this by ensuring libgcc is preloaded in all cases.

(Bitbake rev: 72bf75f0b2e7f36930185e18a1de8277ce7045d8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-04 04:09:43 -10:00
Marta Rybczynska
53387c5ca3 bitbake: toastergui: verify that an existing layer path is given
Verify that an existing layer path was given when adding a new
layer.

Manually using the shell for globbing is unnecessary, use the glob
function instead for cleaner code.

(Bitbake rev: f02c3ccc46bfc78ff3ec577b84247a37cbb1a58c)

Signed-off-by: Marta Rybczynska <marta.rybczynska@syslinbit.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-21 06:27:18 -10:00
Peter Kjellerstedt
59c56c080d bitbake: command: Make parseRecipeFile() handle virtual recipes correctly
Running `devtool search gcc` would result in errors like this for
virtual recipes:

  ERROR: When reparsing
  .../meta/recipes-devtools/gcc/libgcc-initial_13.2.bb:do_populate_sysroot,
  the basehash value changed from
  b1cd809ed98cef9db0fb1b17d34c4083e739c336f9d5619b89715b0294d81af5 to
  44c2f92781dc4a20e98b7bb4724e204e64b101905fa75e71241a574b725997dc. The
  metadata is not deterministic and this needs to be fixed.
  ERROR: The following commands may help:
  ERROR: $ bitbake libgcc-initial -cdo_populate_sysroot -Snone
  ERROR: Then:
  ERROR: $ bitbake libgcc-initial -cdo_populate_sysroot -Sprintdiff

The reason was the newly introduced :layer-<layername> override, which
is used, e.g., in meta/classes-global/insane.bbclass to add the
patch-status QA test only for the meta layer:

  ERROR_QA:append:layer-core = " patch-status"

When tinfoil parsed the recipes using the parseRecipeFile() function, it
failed to properly identify the layername for virtual recipes, which
resulted in the error above.

The correct thing to do is to make parseRecipeFile() call
bb.cache.virtualfn2realfn() to convert the virtual filename into a real
filename and virtual class.

(Bitbake rev: 4684d8886834595c3b81d97befecad69ac73545f)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-21 06:27:18 -10:00
Marta Rybczynska
fb6d870a75 bitbake: SECURITY.md: add file
Add a SECURITY.md file with hints for security researchers and other
parties who might report potential security vulnerabilities.

(Bitbake rev: 936fcec41efacc4ce988c81882a9ae6403702bea)

Signed-off-by: Marta Rybczynska <marta.rybczynska@syslinbit.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-24 12:52:39 +01:00
Chris Laplante
2460c1b3ec bitbake: codeparser: replace deprecated ast.Str and 's'
These have been deprecated since 3.8

(Bitbake rev: 5419a8473d6d4cd1d01537de68ad8d72cf5be0b2)

Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-17 11:41:33 +01:00
Alassane Yattara
e0e0a3f510 bitbake: Toaster: Fixed javascript issue on tests.browser.test_js_unit_tests
- Update /toastergui/static/js/projectpage.js to fix following
javascript issue that make fail test_js_unit_tests.
Uncaught TypeError: Cannot read properties of null (reading 'name')

Signed-off-by Alassane Yattara <alassane.yattara@savoirfairelinux.com>

(Bitbake rev: 87f5987e22b3d1c05b29a25ef354ecd63ac9e1df)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-17 11:41:33 +01:00
Alassane Yattara
50d88674b2 bitbake: Toaster: Bug-fix failure on tests.browser.test_layerdetails_page
Call wait_until_visible before send_keys to be sure inputs is visible otherwise
we get followings error: selenium.common.exceptions.WebDriverException -> Message: element not interactable
Signed-off-by Alassane Yattara <alassane.yattara@savoirfairelinux.com>

(Bitbake rev: 8d671e50036acb0e65c90a07f757e066c0463113)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-17 11:41:33 +01:00
Alassane Yattara
7774bab05f bitbake: toaster: bug-fix on tests.browser.test_most_recent_builds_states
Fixed errors that make test_most_recent_builds_states failed.
Signed-off-by Alassane Yattara <alassane.yattara@savoirfairelinux.com>

(Bitbake rev: d34d1f58bd30b998ffaef2e91f02a26ca06c2745)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-17 11:41:33 +01:00
Marlon Rodriguez Garcia
480aeaff08 bitbake: toaster: fixed functional test
Updated functional test file to fix url access and added waiting time after click operations
to allow following elements to be available for tests, this will needed to be revisited
when autobuilder is ready

(Bitbake rev: fa30af75b3b7d37215f2615aa4b458525fce509e)

Signed-off-by: Marlon Rodriguez Garcia <marlon.rodriguez-garcia@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-17 11:41:33 +01:00
Marlon Rodriguez Garcia
06f2cf81f4 bitbake: toaster: update jquery version 2.0.3 -> 3.7.1
Updated jquery version from 2.0.3 to 3.7.1
https://blog.jquery.com/2023/08/28/jquery-3-7-1-released-reliable-table-row-dimensions/

(Bitbake rev: 8490844a0304ca2af2ee6c5700790121cccf0a13)

Signed-off-by: Marlon Rodriguez Garcia <marlon.rodriguez-garcia@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-17 11:41:33 +01:00
Marlon Rodriguez Garcia
ae269e191b bitbake: toaster: Update bootstrap version to 3.4.1
Update bootstrap version to 3.4.1 to fix incompatibility issues and security vulnerabilities
Files base, base_specific and js-unit-test were updated to match new versions of files

(Bitbake rev: 046bbe22f7144efa02fc33fec9c933c2e97e0ba7)

Signed-off-by: Marlon Rodriguez Garcia <marlon.rodriguez-garcia@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-17 11:41:31 +01:00
Marlon Rodriguez Garcia
5ed3a577cc bitbake: toaster: updated bootstrap version 3.3.6 -> 3.3.7
Updated bootstrap from version 3.3.6 to 3.3.7 to fix compatibility errors
https://github.com/twbs/bootstrap/issues/16834

(Bitbake rev: 5254e826877e416364f498f8d320b99970ea162d)

Signed-off-by: Marlon Rodriguez Garcia <marlon.rodriguez-garcia@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-17 11:41:28 +01:00
Alberto Pianon
ef3e46afd9 bitbake: fetch2: Add API for upstream source tracing
This patch adds an API to bb.fetch2 to enable users to plug in an unpack
tracer that can trace each source file back to its corresponding
upstream source url, even when multiple upstream sources are combined
together in the same unpack directory. This may be required for software
composition analysis, license compliance, and detailed SBoM generation.

This patch provides only the needed hooks in bb.fetch2 code and a dummy
abstract class defining the API; users may load their own unpack tracer
class by setting the BB_UNPACK_TRACER_CLASS config parameter.

(Bitbake rev: 05051152cc42acc52bcf9af9a696f632fac4307f)

Signed-off-by: Alberto Pianon <alberto@pianon.eu>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-15 09:12:43 +01:00
Alassane Yattara
3a09f0d184 bitbake: Update toaster-requirements to add django-log-viewer==1.1.7
Django Log Viewer allows us to read & download log files
in the admin page by using DataTables

(Bitbake rev: bc33f4275bc2dd82e308ef8da3ec93f3275e6127)

Signed-off-by: Alassane Yattara <alassane.yattara@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-15 09:12:05 +01:00
Joshua Watt
55af1bad8c bitbake: bitbake-hashclient: Add clean-unused subcommand
Adds a subcommand to clean unused outhash entries from the server based
on age

(Bitbake rev: 29c310be2c00d0e192923a4b90c60771ef0c620c)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-09 15:48:44 +01:00
Joshua Watt
b026e816f7 bitbake: hashserv: Add API to clean unused entries
Adds an API to remove unused entries in the outhash database based on
age and if they are referenced by any unihash

(Bitbake rev: a169ac523d166c6cbba918b152a76782176c3e88)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-09 15:48:44 +01:00
Joshua Watt
cc218dd108 bitbake: hashserv: Extend get_outhash API to optionally include unihash
Extends the get_outhash API with a flag indicating whether to include
the unihash in the output. This is means that the query doesn't require
the unihash entry to be present to return a result

(Bitbake rev: b8d6abfeb4a0765727a62b3d8d83276335c7c7d6)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-09 15:48:44 +01:00
Joshua Watt
840d60de78 bitbake: bitbake-hashclient: Add remove subcommand
Adds a subcommand to invoke the remove API on the server

(Bitbake rev: a778b99e6a2a1a1e1b7eb26d48313fadcd34de54)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-09 15:48:44 +01:00
Joshua Watt
61f5c32308 bitbake: hashserv: Add remove API
Adds a `remove` API to the client and server that can be used to remove
hash equivalence entries that match a particular critera

(Bitbake rev: 861d068b3a9fb5e91a01dbec54996a5a6f93ef29)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-09 15:48:44 +01:00
Richard Purdie
b8b5c786e7 bitbake: selftest/fetch: Ensure top level directory timestamp doesn't break test
The infrastructure changes highlighed an issue where the top level directory
mtime stamp isn't included in the tarballs. This isn't an issue the test is
meant to check for so ignore it.

(Bitbake rev: 5a1e5b8dc55d6bb4d93bac3492f8c43ff957e712)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-06 11:42:46 +01:00
Alassane Yattara
78b02e1845 bitbake: toaster: Monitoring - implement Django logging system
(Bitbake rev: 2efb146480ee46c0463d9edb71bf1c03ce15bcf2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-06 11:42:46 +01:00
Marlon Rodriguez Garcia
3ac4694fc3 bitbake: toaster: update selenium version and code syntax
Updated selenium version to latest 4.13.0, changed selenum specific version syntax elements to accomplish test success

(Bitbake rev: 868c88a249ef4b9fe5a891e76e25e054e4fcd994)

Signed-off-by: Marlon Rodriguez Garcia <marlon.rodriguez-garcia@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-06 11:42:46 +01:00
Peter Kjellerstedt
3b46d6a41a bitbake: bitbake-getvar: Treat undefined variables as empty with --value
Rather than outputting the string "None" for undefined variables, output
only a linefeed (the same as for variables that are defined to the empty
string).

(Bitbake rev: f3ba9c3726ec7b38b557100d8a2d4b6a1446a968)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-28 12:38:26 +01:00
Peter Kjellerstedt
826807785e bitbake: bitbake-getvar: Add a (suppressable) error for undefined variables
If an undefined variable or variable flag is specified, bitbake-getvar
will now fail with an error message indicating this.

The error can be supressed with --ignore-undefined, which matches the
previous behavior.

This also changes the errors related to specifying --flag or --unexpand
without --value so that they are sent to stderr rather than stdout.

(Bitbake rev: 136b8dda4e8b6f4d7e45a552c2d2e278b3ae1b7d)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-28 12:38:26 +01:00
Julien Stephan
8eeb58cf4a bitbake: bitbake: cooker: add a new function to retrieve task signatures
adding a new command in cooker to compute and get task signatures

this commit also add the associated command and event needed to get the
signatures using tinfoil

(Bitbake rev: 05c15162de90c41dad67e37a95ec9fdb440a7864)

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-28 12:38:26 +01:00
Matthias Schnelte
6cb490713e bitbake: fetch2: Adds vscode devcontainer support
Visual studio code is injecting a git credential helper
into every dev container. This helper is forwarding the git credentials
from the host into the container.

In order for this helper to work the REMOTE_CONTAINERS_IPC
needs to be available in the environment for all git operations
that require authentication.

(Bitbake rev: 612bdf09416ff96d08b22cf92b077516d23d0963)

Signed-off-by: Matthias Schnelte <develop@schnelte.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-26 10:38:45 +01:00
Ross Burton
362c70a993 bitbake: bitbake/lib: spawn server/worker using the current Python interpreter
The user may have invoked ./bin/bitbake using a different Python
interpreter than whatever python3 is on $PATH (for example, explicitly
using a different version).  However, as the server and workers are
spawned directly they'll use the hashbang and thus a different Python.

We also ensure that argv[0] is set to sys.executable instead of
'bitbake-server' or 'bitbake-worker', so that sys.executable is set to
the right value inside the child.  Without this the server won't be
able to start any workers.

(Bitbake rev: b44d5d2a53d3082c8ce94e09c0cf833e33e25aec)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-26 10:37:17 +01:00
Peter Kjellerstedt
0dbc45e52f bitbake: bitbake-getvar: Make --value imply --quiet
It does not make any sense to get log output from bitbake-getvar when
the --value option is used as the log output is sent to stdout and thus
interferes with the output of the variable's value.

(Bitbake rev: 6b7883533af9c14d80a9f1ae5142644f155b5dee)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-26 10:37:17 +01:00
Peter Kjellerstedt
874e8bb159 bitbake: bitbake-getvar: Make --quiet work with --recipe
Initializing Tinfoil with setup_logging = False only has an effect when
recipe parsing is not needed. To make it work regardless of if --recipe
is used, manipulate the quiet parameter to Tinfoil.prepare() instead.

(Bitbake rev: 71ee69a20f21f3d37f4f060a7d8e87d9f1dc6aa1)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-26 10:37:17 +01:00
Peter Kjellerstedt
c7f99d688c bitbake: tinfoil: Do not fail when logging is disabled and full config is used
If Tinfoil is initialized with setup_logging = False and
Tinfoil.prepare() is called with config_only = False, then it fails
because self.localhandlers is only initialized when
setup_logging = True.

This is seen with, e.g., `bitbake-getvar -q -r busybox MACHINE`:

  Traceback (most recent call last):
    File ".../bitbake/bin/bitbake-getvar", line 41, in <module>
      tinfoil.prepare(quiet=2)
    File ".../bitbake/lib/bb/tinfoil.py", line 390, in prepare
      for handler in self.localhandlers:
  AttributeError: 'Tinfoil' object has no attribute 'localhandlers'.
  Did you mean: 'oldhandlers'?

(Bitbake rev: 616101ddb630e2c9975022068b52a87c4cf647f6)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-26 10:37:17 +01:00
Richard Purdie
5614e6b38a bitbake: codeparser: Update debug variable reference
The code has changed and the debug message didn't work. Fix it. The output
is still incredibly useful.

(Bitbake rev: f1fa4bb3066e2bbaff0b69088ba5c6c6c597b93d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-22 07:45:47 +01:00
Etienne Cordonnier
4638698834 bitbake: bitbake-worker/runqueue: Avoid unnecessary bytes object copies
declaring queue=b"" creates an object of types bytes().
bytes() is an immutable object, and therefore doing "self.queue = self.queue + r"
creates a new object containing "self.queue" concatenated with "r".

On my test setup, we are passing 180MB of data of "workerdata" to the bitbake-worker,
so those copies significantly slow down the initialization of the bitbake-worker.

Rather use bytearray() which a mutable type, and use extend() to avoid copies.
In my test setup, byterray.extend() is 10.000 times faster than copying the queue,
for a queue size of 180MB.

(Bitbake rev: 2302b5316091dff189e6c3f546341b2274ed9d0a)

Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-22 07:45:47 +01:00
Insu Park
6ad45f110e bitbake: data: Add missing dependency handling of remove operator
A recipe variable handles its dependencies even on the "contains"
variables within the "inline Python expressions" like bb.utils.filter().
And it also handles those in the append operator correctly, but the
problem is that it does not so in the remove operator.

Fix it by adding the missing dependencies every time the remove
operator has been handled.
Also add a test case to check if the override operators handle
dependencies correctly.

(Bitbake rev: b90520eedb1dbc7f6a3928d089fe74fafb864eb5)

Signed-off-by: Insu Park <insu0.park@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-20 08:57:41 +01:00
Richard Purdie
c603849494 bitbake: cooker: Drop unneeded flush calls
Since the flush calls have significant effects for bitbake timeout issues,
drop the remaining ones from cooker. These aren't in as critical paths
as the other issues but it makes sense to clean up.

(Bitbake rev: dd682363341bae3b060e284d73f000813964dc05)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-20 08:57:41 +01:00
Richard Purdie
022deeb0ef bitbake: server/process: Disable the flush() call in server logging
We've been chasing bitbake timeouts for a while and it was unclear where things
were blocking on IO. It appears the flush() call in server logging can cause
pauses up to minutes long on systems with slow (spinning) disks that are heavily
loaded with IO.

Since the flush() was added to aid debugging of other timing issues, we shouldn't
need it now and it can be disabled. Leave a comment as a reminder of the pain this
can cause.

(Bitbake rev: afbc169e1490a86d6250969f780062c426eb4682)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-18 11:35:05 +01:00
Richard Purdie
37c31a5adc bitbake: lib: Drop inotify support and replace with mtime checks
With the flush in serverlog() removed and a memory resident bitbake with a
60s timeout, the following could fail in strange ways:

rm bitbake-cookerdaemon.log
bitbake-layers add-layer ../meta-virtualization/
bitbake-layers add-layer ../meta-openembedded/meta-oe/
bitbake -m

specifically that it might error adding meta-oe with an error related to meta-virt.

This clearly shows that whilst bblayers.conf was modified, bitbake was not
recognising that. This would fit with the random autobuilder issues seen when
the serverlog flush() call was removed.

The issue appears to be that you have no way to "sync()" the inotify events with
the command stream coming over the socket. There is no way to know if there are
changes in the IO queue which bitbake needs to wait for before proceeding with
the next command.

I did experiment with os.sync() and fsync on the inotify fd, however nothing
addressed the issue. Since it is extremely important we have accurate cache data,
the only realistic thing to do is to switch to stat() calls and check mtime.

For bitbake commands, this is straightforward since we can revalidate the cache
upon new connections/commands. For tinfoil this is problematic and we need to
introduce and explict command "revalidateCaches" that the code can use to force
bitbake to re-check it's cache validity. I've exposed this through tinfoil with
a new "modified_files" function.

So, this patch:

a) drops inotify support within bitbake's cooker/server and switch to using mtime
b) requires a new function call in tinfoil when metadata has been modified

(Bitbake rev: da3ec3801bdb80180b3f1ac24edb27a698415ff7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-18 11:35:05 +01:00
Joshua Watt
e12e6d94ec bitbake: fetch2: git: Use path_is_descendant() instead of path for repo check
Using path prefixes to check if the git directory is a descendant of the
clone directory can be easily confused with symlinkes and bind mounts,
causing directories to be deleted unnecessarily. Instead, use
bb.utils.path_is_descendant() which is immune to the these sorts of
problems.

(Bitbake rev: b4d7a0546630620480b7fee159b84c3506e941a2)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-14 15:08:21 +01:00
Joshua Watt
b2ab9bd4a3 bitbake: utils: Add path_is_descendant()
Adds a utility that checks if one path is an descendant of another. This
check uses os.path.samestat() to make it immune to symlinks and bind
mounts.

(Bitbake rev: c3ae45946886ee2049939dd5a205790657a7de32)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-14 15:08:21 +01:00
Richard Purdie
37a6a28768 bitbake: bitbake: Update to 2.6.0 release series/version
(Bitbake rev: 033896da8daaff69df3c2adb4ad5fee29121e831)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-10 09:01:29 +01:00
Richard Purdie
733afeffd1 bitbake: server/process: Add more timing debug
It is helpful to have timestamps on the ping failures so that they
can be matched against the bitbake logs. It is also useful to understand
how long the server takes for form a reply verses when it is sent.

(Bitbake rev: 65969a7a8f5ae22c230431d2db080eb187a27708)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-05 08:14:50 +01:00
Martin Jansa
7e6d7315f9 bitbake: runqueue: show number of currently running bitbake threads when pressure changes
* it might be a bit confusing as it shows number of threads before making
  the decision to start more tasks and also it can show only a few tasks
  running, but not because of pressure when there just aren't many tasks
  left or wait for their dependencies to be finished first

* example output:
  NOTE: Pressure status changed to CPU: True, IO: None, Mem: None (CPU: 297589.5/200000.0, IO: 5522.2/None, Mem: 779.2/None) - using 7/8 bitbake threads
  NOTE: Pressure status changed to CPU: False, IO: None, Mem: None (CPU: 196381.2/200000.0, IO: 2667.9/None, Mem: 556.2/None) - using 2/8 bitbake threads

(Bitbake rev: b0b114f31f20c5fcde31e6c308937ad4102dfe0a)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-05 08:13:13 +01:00
Michael Opdenacker
de243647d6 bitbake: doc: bitbake-user-manual: remove reference to SSTATE_MIRRORS variable
This variable is implemented in OE-Core, and therefore
only documented in the Yocto Project manual.

(Bitbake rev: 1019998e2f8682c8f2f13320fdb0de1a9a23e854)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-05 08:13:13 +01:00
Richard Purdie
f066aee598 bitbake: doc: Document challenges of tags with git fetcher
Using tags with the git fetcher may cause surprising behaviour. There
are reasons for this, document them.

(Bitbake rev: 56224da378ab63526d44fd7a70bcfd2cffe245cc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-05 08:13:13 +01:00
Michael Opdenacker
b08b5169f3 README: update/fix contribution guidelines
- Ask to CC the docs@lists.yoctoproject.org mailing list
- doc/README: fix the command to generate the manual

(Bitbake rev: 8332664f9141d2c12f70589ebd2eed7eeddd8f77)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-03 10:31:11 +01:00
Martin Jansa
e25914a99e Makefile: remove from top-level directory
* https://git.openembedded.org/bitbake/commit/?id=a7c47f1eac8caac607a2b5f12d07235dff4d740f
  was somehow badly imported as:
  just a rename from bitbake/doc/Makefile.sphinx to Makefile:
  https://git.yoctoproject.org/poky/commit/?id=1fd9c4b2c0ae927df29f7a0d34c3e595bcf48e89

  The missing bitbake/doc/Makefile was later restored in:
  https://git.yoctoproject.org/poky/commit/?id=415962ad94149de121a1c01215073a52bb54dc14
  but the doc/README change is still missing in poky

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-03 10:31:11 +01:00
Joshua Watt
d51176429d bitbake: fetch2: git: Remove useless try..else clause
There is no reason to have the else clause in this try block, as it can
be moved into the try block, which is clearer.

(Bitbake rev: 5625849e9327fc71a38eea00d4506f80abc11bc6)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-02 11:48:05 +01:00
Richard Purdie
3bdabde2df bitbake: command: Avoid time intensive distractions for ping
We noticed some users were seeing very slow ping response times which
caused 'server timeout' issues. There were some function calls in runCommand
which could be slow such as the inotify callback processing.

Mark up the ping command such that it doesn't need configuration information,
it is allowed on a readonly server and specifically skip the inofity processing
too since ping would never need that.

This will hopefully resolve various ping timeout issues that were being reported.

(Bitbake rev: 0fc821a22f2b49cbd336d9658d92942c0d733be1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-02 07:46:40 +01:00
Richard Purdie
229f88f5b5 bitbake: README: Update to point to new contributor guide
Now we have a contributor guide combining various wiki pages, point at
that.

(Bitbake rev: fb19d647697d56e7554722abb5f4903c774d4213)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-02 07:46:40 +01:00