Commit Graph

1966 Commits

Author SHA1 Message Date
Julien Olivain
8c5e4be97c support/testing: add pv runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-09-14 19:40:03 +02:00
Julien Olivain
f366528987 support/testing: add exfatprogs runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-09-14 19:26:09 +02:00
Thomas Petazzoni
2cb286c8a2 Revert "scripts/support/cve.py: avoid a complete clone of the CVE git repository"
This reverts commit e0ed05cc00.

Since this commit has been applied, the update of the NVD data fails:

Checking packages CVEs
Updating from https://github.com/fkie-cad/nvd-json-data-feeds/
Traceback (most recent call last):
  File "/home/buildroot/buildroot-stats/./support/scripts/pkg-stats", line 1346, in <module>
    __main__()
  File "/home/buildroot/buildroot-stats/./support/scripts/pkg-stats", line 1335, in __main__
    check_package_cves(args.nvd_path, packages)
  File "/home/buildroot/buildroot-stats/./support/scripts/pkg-stats", line 660, in check_package_cves
    for cve in cvecheck.CVE.read_nvd_dir(nvd_path):
  File "/home/buildroot/buildroot-stats/support/scripts/cve.py", line 105, in read_nvd_dir
    CVE.download_nvd(nvd_git_dir)
  File "/home/buildroot/buildroot-stats/support/scripts/cve.py", line 74, in download_nvd
    subprocess.check_call(
  File "/usr/lib/python3.11/subprocess.py", line 413, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['git', 'pull', '--depth', '1']' returned non-zero exit status 128.

Since we couldn't immediately figure out what's going on, let's revert
for now until this get investigated and fixed.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-09-12 12:39:20 +02:00
Peter Korsgaard
75b543880c support/misc/Vagrantfile: support libvirt provider
And configure memory/CPU like for the other providers.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-09-10 22:43:07 +02:00
Peter Korsgaard
6cedd92744 support/misc/Vagrantfile: move to Debian bullseye (12)
Ubuntu Bionic (18.04) was EOL'ed in June 2023:

https://ubuntu.com//blog/18-04-end-of-standard-support

And the VM image is only available in virtualbox format:

https://app.vagrantup.com/ubuntu/boxes/bionic64

So move to Debian bullseye (12), matching what we do for the docker image.
This is available in virtualbox and libvirt (qemu) format:

https://app.vagrantup.com/debian/boxes/bullseye64

Bullseye does not come with rsync out of the box, so install it.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-09-10 22:42:41 +02:00
Peter Korsgaard
3daa037528 Merge branch 'next'
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2024-09-06 21:05:52 +02:00
Peter Korsgaard
769d71ae84 Update for 2024.08
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2024-09-06 15:01:24 +02:00
Thomas Petazzoni
d3ad58dce9 toolchain/toolchain-external/toolchain-external-bootlin: bump to 2024.05
This commit updates the Bootlin external toolchain package to use the
recently released 2024.05 toolchains.

Notable changes:

- Tarballs are now xz-compressed instead of bz2-compressed

- We have new toolchains: RISC-V 32-bit glibc stable, RISC-V 32-bit
  uClibc, S390 uClibc, and the Sparc V8 is finally updated

All unit tests are passing, except 2 (see below):

  https://gitlab.com/tpetazzoni/buildroot/-/pipelines/1417551794/builds

The two tests that are not passing are the RISC-V 32-bit musl:

  https://gitlab.com/tpetazzoni/buildroot/-/jobs/7607519955
  https://gitlab.com/tpetazzoni/buildroot/-/jobs/7607519954

This is due to a bug in Busybox, and already existed prior to this
toolchain update.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2024-09-03 22:40:21 +02:00
Thomas Petazzoni
fdd9b3e24b support/scripts/gen-bootlin-toolchains: tarballs are now xz-compressed
As of the 2024.05 toolchain release, the toolchain tarballs are now
xz-compressed instead of bz2-compressed. Since this script is only
meant to update to the latest toolchains, we don't really bother
supporting the older toolchains that are bz2-compressed, and we simply
assume the tarballs are xz-compressed.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2024-09-03 22:40:19 +02:00
Thomas Petazzoni
ad99ad8e8a support/testing/tests/toolchain/test_external_synopsys.py: new test
Test the 6 combinations of Synopsys toolchains.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2024-09-03 22:14:12 +02:00
Thomas Petazzoni
0f79a555b8 support/testing/tests/toolchain/test_external_arm.py: new test
Test the 3 ARM toolchains: ARM, AArch64 and AArch64 BE.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2024-09-03 22:14:11 +02:00
Michael Trimarchi
e0ed05cc00 scripts/support/cve.py: avoid a complete clone of the CVE git repository
Just a simple clone and pull with --depth 1 should be enough to parse
the CVE data and generate the pkg-stats report.

From a full clone and a depth-1 clone, and the size delta is 2.9GiB
vs. 2.2GiB.

The download size does change: from 983.55MiB down to 270.78MiB.

It's a net time win too: 2m17s vs 1min7s (on a 100Mbps link).

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-09-03 20:44:52 +02:00
Peter Korsgaard
2bd1723c0a support/scripts/genimage.sh: drop gzip compression
Commit 6889056f1e (support/scripts/genimage.sh: support creating a bmap
image) added unconditional gzip compression of the genimage outputs if
bmap-tools is enabled, which is problematic for a number of reasons:

- The gzip invocation is not reproducable (E.G. does not use -n)

- The original file is removed, dropping the sparse info

- It hardcodes policy, E.G.  bmap supports a number of different compression
  algorithms / compression may not be desired for all images / different
  compression levels may be desired

So drop the compression step.  If desired, compression can be done with a
post-image script.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Acked-by: TIAN Yuanhao <tianyuanhao3@163.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-08-30 19:09:17 +02:00
Julien Olivain
c84b89fd0e support/testing: add dosfstools runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-08-27 18:42:40 +02:00
Julien Olivain
b3cdb0e36b support/testing: add parted runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-08-26 18:53:54 +02:00
Julien Olivain
8c30fe3966 support/testing: add which runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-08-26 18:45:38 +02:00
Julien Olivain
3da3361a1b support/testing: package: mariadb: fix test configuration
The mysql virtual package was removed in commit 8708f3a23a
"package/mysql: drop virtual package".

The mariadb runtime test was authored before this mysql virtual
package removal, but was merged after it, in commit 5356754d1e
"support/testing: add mariadb runtime test". Due to this, this test
always failed with the error:

    Makefile.legacy:9: *** "You have legacy configuration in your .config! Please check your configuration.".  Stop.

This commit fixes the issue by removing the legacy
BR2_PACKAGE_MYSQL=y configuration directive.

Fixes:
https://gitlab.com/buildroot.org/buildroot/-/jobs/7540345406

Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2024-08-23 11:01:26 +02:00
Peter Korsgaard
18368f6608 Update for 2024.05.2
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit 078f99a315)
[Peter: drop Makefile change]
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2024-08-14 12:05:48 +02:00
Julien Olivain
ab92eaa04b support/testing/run-tests: add a nose2 debug option
This commit adds the -D/--debug command line options to the
support/testing/run-tests script.

Using one of those options will pass "--log-level debug" to the
nose2 invocations. This can be useful to debug nose2 internal
behaviors. See:
https://github.com/nose-devs/nose2/blob/0.15.1/nose2/main.py#L209

For example, calling:

    support/testing/run-tests --list --debug

will output:

    List of tests
    DEBUG:nose2.main:logging initialized debug
    ...

Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-08-10 00:10:20 +02:00
Julien Olivain
fc4a727609 support/testing: add vorbis-tools runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-08-07 23:08:31 +02:00
Yann E. MORIN
e506946347 suport/testing/tests/package/test_flutter: extend to check rendering is happening
Commit 7f0af11cee (support/testing/tests/package/test_flutter.py: new
runtime test) added a simple test that just checked that the systemd
unit launching the application, was active.

It is perfectly possible, from a systemd perspective, that the unit is
active, while the application actually crashes.

Instead, what we need to check, is that the application does actually
render "something"; we don't really care what, as long as we know it is
actually rendering, thus the graphical stack is working and the
aplication stack is running.

Extend the flutter runtime test to also check that the framebuffer is
modified by the application when it is running, similarly to what we do
in the weston test.

We drop the activation of the unit and start it manually, as we want to
check the state of the CRC before, while, and after the application
runs.

We also need to disable the blinking cursor on the console, or we would
not be able to detect whether a change in CRC is due to the application
starting rendering, or to the cursor blinking. We tell the kernel to
disable the cursor with the appropriate kernel command line parameter.

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Adam Duskett <aduskett@gmail.com>
Reviewed-by: Adam Duskett <aduskett@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-08-07 22:53:41 +02:00
Yann E. MORIN
69629bae7c support/testing/test/graphics_base: add helper to test graphics rendering
In 4edb0e3456 (support/testing/tests/package/test_weston.py: new
runtime test), the weston test was introduced, and thus was the first
that needed to test that rendering was happening.

Now we also have a test for a flutter application, and we'll want to
have it test the rendering too.

Move the corresponding code to a helper that can be reused by other
tests, rather than duplicate (or reinvent) it.

Switch weston to using that new helper.

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-08-07 22:53:28 +02:00
Julien Olivain
b6f4d79df2 support/testing: package: gpsd: fix test by enabling python support
Commit 9696d27756 "package/gpsd: condition python stuff to the proper
kconfig option" changed the condition in which the gpsd python scripts
are installed. After that change, the "gpsfake" command (which is a
python script) is no longer found and the runtime test is failing.

This commit fixes the issue by reflecting the change in the runtime
test Buildroot configuration.

Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-08-07 12:03:45 +02:00
Julien Olivain
73e8652b57 support/testing: add lame runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-08-06 23:22:43 +02:00
Julien Olivain
4a285b160f support/testing: test_audio_codec_base.py: new helper class
This is a helper class providing a template for testing audio codec
programs such as lame mp3 encoder, flac tools, ogg vorbis-tools, ...

Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-08-06 23:21:33 +02:00
Julien Olivain
4dc5c45bd2 support/testing/tests/package/test_swipl.py: new test
This commit adds a test case for the recently added swipl package. It
should have been part of commit
69710addd1 ("package/swipl: new
package") but was forgotten.

Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-08-06 22:06:11 +02:00
Julien Olivain
5356754d1e support/testing: add mariadb runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-08-03 12:39:22 +02:00
Julien Olivain
3e1e49069d support/testing: add make runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-08-03 12:34:21 +02:00
Julien Olivain
7a6edbc7b9 support/testing/infra/emulator.py: add host load info in run log
Runtime tests running on test runners are subject to a high
variability in term of performance and timing. Most or the runtime
test commands are executed with a timeout, in pexpect.

Slow or very loaded test runners can use the timeout_multiplier to
globally increase those timeouts.

Some runtime test commands sometimes needs to poll or query a state,
rather than having purely sequential actions. It is sometimes hard to
know, from the test writer point of view, the maximum timeout to set, or
if a retry logic is needed.

In order to help debugging runtime tests failing due very slow
execution, this commit adds extra information on the host test runner
about its load in the run log. Relevant information are: number of
cpus, the load average at the moment the emulator is started and the
current timeout_multiplier.

Note: this change was discussed in:
https://lists.buildroot.org/pipermail/buildroot/2024-July/759119.html

Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-28 21:51:01 +02:00
J. Neuschäfer
7801890c3a support/testing: add testing for eltest in execline test
The previous commit removes s6-test from the runtime tests. This
commit adds the same test for eltest, which replaced s6-test.

Signed-off-by: J. Neuschäfer <j.neuschaefer@gmx.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-27 16:23:41 +02:00
J. Neuschäfer
6b70913703 support/testing: fix s6-portable-utils test
s6-test was removed in s6-portable-utils 2.3.0.0, and replaced with
eltest (from execline). This change broke the existing runtime tests
with commit 42fad03182 ("packages: bump skalibs-related packages").

Instead of s6-test simply use the shell built-in "test", which provides
sufficient functionality.

Fixes:

  https://gitlab.com/buildroot.org/buildroot/-/jobs/7338388010

Signed-off-by: J. Neuschäfer <j.neuschaefer@gmx.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-27 16:20:25 +02:00
Julien Olivain
49156a0fa4 support/testing: package: gpsd: fix gpsfake command line
The gpsfake command line has a typo (a missing space), which makes the
next gpsctl command to always fail.

This commit fixes the issue by adding the missing space.

Fixes:
https://gitlab.com/buildroot.org/buildroot/-/jobs/7391792948

Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-23 10:50:08 +02:00
Julien Olivain
b09ae4f045 support/testing: add 4th runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-22 22:20:58 +02:00
Brandon Maier
95e1043013 support/testing/infra/emulator.py: support init=/bin/sh
The TestInitSystemNone bypasses the normal init and instead launches
directly into a shell. So it needs to bypass the login code and go
directly to a shell.

Signed-off-by: Brandon Maier <brandon.maier@collins.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-22 21:51:00 +02:00
Brandon Maier
5ed1fab018 support/testing: fix TestInitSystemNone for non-login shell
This test started failing at commit
0cad947b96
"support/testing/infra/emulator.py: fix qemu prompt detection" with the
error message

  AttributeError: 'NoneType' object has no attribute 'run_command'

This is because we changed emulator.run() so that emulator.login() must
be called first. But this test skips the login and goes directly to a
shell. Use the new emulator.connect_shell() function which prepares the
shell without logging in.

Signed-off-by: Brandon Maier <brandon.maier@collins.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-22 21:49:40 +02:00
Julien Olivain
91738f5093 support/testing: add iproute2 runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-22 14:28:29 +02:00
Julien Olivain
5510d2890f support/testing: add nmap runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-22 09:41:09 +02:00
Julien Olivain
9c8f6dc5e4 support/testing: add gpsd runtime testing
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-20 23:21:56 +02:00
Julien Olivain
f04a95f79f support/testing: add mawk runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-20 23:11:48 +02:00
Brandon Maier
9b843284d2 support/testing: fix package/test_s6_networking.py
This test fails with the following error

  -sh: s6-tcpserver4: not found

In release 2.6.0.0 of s6-networking the `s6-tcpserver4` was unified into
a new `s6-tcpserver` command[1].

[1] https://github.com/skarnet/s6-networking/blob/master/NEWS#L33

Signed-off-by: Brandon Maier <brandon.maier@collins.com>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-15 16:49:52 +02:00
Dario Binacchi
6889056f1e support/scripts/genimage.sh: support creating a bmap image
The patch adds the possibility to create, in addition to the usual
image, an image of type bmap that drastically reduces the amount of
data that needs to be written to an SD card, resulting in time
savings.

It looks at whether BR2_PACKAGE_HOST_BMAP_TOOLS is enabled to decide
whether it should or not generate bmap tool images. It generates bmap
images for all images referenced in the genimage configuration file,
as long as they exist in $(BINARIES_DIR).

Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 15:44:35 +02:00
Marcus Hoffmann
2fe638af26 support/testing: add python-asn1crypto runtime test
Signed-off-by: Marcus Hoffmann <buildroot@bubu1.eu>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 13:04:12 +02:00
Julien Olivain
009f9106d9 support/testing: fs: new btrfs runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-15 11:22:10 +02:00
Julien Olivain
9d0bb0e67b support/testing: new dmidecode runtime test
Note: this test was not working in Buildroot test infrastructure
before commit [1] was merged, because dmidecode has the string "# "
in its output.

[1] 0cad947b96

Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-15 11:22:09 +02:00
Marcus Hoffmann
d429d5d399 support/testing: add python-msgpack runtime test
Signed-off-by: Marcus Hoffmann <buildroot@bubu1.eu>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-15 00:12:51 +02:00
Julien Olivain
2da40a2fd7 support/testing: add attr runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-15 00:12:47 +02:00
Yann E. MORIN
ac2e6b3927 support/download/check-hash: accept hash files without terminating \n
Lots of people are using broken text editors that 1. do not naturally
terminate text files with a final \n as is customary in UNIX text files,
and 2. do not respect our .editorconfig settings, which explicitly
require adding that final newline. See this nice summary of what a text
file is (with references to applicable standards):

    https://stackoverflow.com/questions/12916352/shell-script-read-missing-last-line/12916758#12916758

So, it is not surprising that read does not read the last "line" of a
file, when said "line" does not end with a newline, because it is thus
not really a line.

Even though we do mandate actual text files, let's be a little bit lax
in this respect, because people may write packages, and their hash
files, in a br2-external tree, and they may not have our .editorconfig
in the directory heierarchy (e.g. if buildroot is a submodule of their
br2-external tree, or whatever).

mapfile does not suffer from this limitation, though, and correctly
reads all lines from a file, even the final line-that-is-not-a-line.

mapfile was introduced in bash 4.0, released on 2009-01-20, more than
15 years ago. Debian squeeze, released in 2011 already had bash 4.1.
Those are really ancient. So, it means we can indeed expect bash
version 4.0 or later; which means mapfile is available.

"It should be fine!"

Fixes: #15976

Reported-by: masonwardle@gmail.com
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-14 22:58:04 +02:00
Yann E. MORIN
5d8445138b support/scripts/mkusers: accept user tables without terminating \n
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-14 22:58:00 +02:00
Matt Staveley-Taylor
7d0707cae4 package: add support for extracting zstd archives
Teach the generic package handling code how to extract zstd (.tar.zst)
archives. When zstd is not installed on the host, host-zstd gets built
automatically.

Signed-off-by: Matt Staveley-Taylor <matt.stav.taylor@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-14 22:47:15 +02:00
ʎɐH ǝʌǝʇS
ca6c896bdd support/scripts/graph-depends allow for forward and reverse depends on same graph
The current implementation of buildroot depe dependency graphing
either does forward- or reverse-dependency traversal.

This patch enables buildroot to graph forward and reverse dependencies
on the graph for the same package: (Diagram Credit: Yann E. MORIN)

    $ make pkg-d-graph-both-depends

    pkg A -.            .-> pkg E
            \          /
    pkg B ----> pkg D ----> pkg F
            /          \
    pkg C -'            '-> pkg G

In the above example a single graph shows pkg {A,B,C} are needed
by pkg D, and pkg D is a dependency of pkg {E,F,G}.

Makefile help and manual are also updated.

Signed-off-by: Steve Hay <me@stevenhay.com>
[Arnout:
 - remove DEPTH and RDEPTH, their functionality is already covered by
   BR2_GRAPH_DEPS_OPTS;
 - remove --rdepth, it was felt to not add sufficient added value;
 - add the new target to the manual;
 - fix flake8 errors.
]
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-14 21:31:03 +02:00