Since version 21.3.0 of mesa3d, the generic broadcom infrastructure
(which is called v3d but is used also for VC4) started using NEON
instructions. This leads to assembler failures when VC4 is built for
32-bit ARM without NEON:
FAILED: src/broadcom/libv3d_neon.a.p/common_v3d_tiling.c.o
/home/buildroot/autobuild/instance-2/output-1/host/bin/arm-linux-gcc [...] -c ../src/broadcom/common/v3d_tiling.c
/tmp/ccAvufNv.s: Assembler messages:
/tmp/ccAvufNv.s:602: Error: selected processor does not support `vldm r7,{q0,q1,q2,q3}' in ARM mode
[...]
/tmp/ccAvufNv.s:686: Error: selected processor does not support `vstm r7,{q0,q1,q2,q3}' in ARM mode
Let the VC4 driver depend on NEON for 32-bit ARM. Aarch64 always has
NEON, so no condition is needed there.
Fixes:
http://autobuild.buildroot.net/results/2b5/2b531f7aa4506ee31a7252c87a2e401fffab9dfb/http://autobuild.buildroot.net/results/6f9/6f9e7c864808dc0fafbca7c8984651fe92edbaf2/
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Reviewed-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
support/scripts/pkg-stats:1171:8: E713 test for membership should be 'not in'
support/scripts/pkg-stats:1175:8: E713 test for membership should be 'not in'
support/scripts/pkg-stats:1179:8: E713 test for membership should be 'not in'
3 E713 test for membership should be 'not in'
Fixes: https://gitlab.com/buildroot.org/buildroot/-/jobs/1955772278
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Commit eb49354eb3 updated systemd's
minimal kernel headers version to 3.13, but forgot to update the
dependencies of BR2_INIT_SYSTEMD.
Update BR2_INIT_SYSTEMD kernel headers dependency to 3.13.
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Add mysql_config to MARIADB_CONFIG_SCRIPTS, this won't fix any build
failure at the moment but will avoid possible issues in the future
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Disable MBEDTLS_FATAL_WARNINGS to avoid the following build failure
since bump to version 2.28.0 in commit
0f8aab08e7:
/home/buildroot/autobuild/instance-0/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/features.h:412:4: error: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Werror=cpp]
412 | # warning _FORTIFY_SOURCE requires compiling with optimization (-O)
| ^~~~~~~
Fixes:
- http://autobuild.buildroot.org/results/af017382bb5772de7383d71ed7b8af44717981f9
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
RUSTC_TARGET_NAME's dashes are substituted with underscores, but this is
not enough to fix building, we also need to make it UPPERCASE. So let make
it like that by using UPPERCASE macro.
Fixes:
http://autobuild.buildroot.net/results/498/498b96224c8bcff91542ca3731dfd66891f4ec23/
Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
[Arnout: remove subst, implied by UPPERCASE]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
It is possible to build the vulkan intel driver without X11/GLX.
- remove xorgproto dependency; it is already given via
BR2_PACKAGE_MESA3D_OPENGL_GLX/BR2_PACKAGE_MESA3D_NEEDS_X11 and was
already gone from the .mk file
- enable DRI3 automatically when X11 is enabled, like we do for other
drivers
- libxshmfence is implied by DRI3 (both in Config.in and mesa3d.mk), but
we need to propagate dependencies (RISCV_32 doesn't apply since it's
x86 only)
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
[Arnout: select DRI3 like other drivers though, which simplifies the
whole thing]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
When the BR2_PACKAGE_SYSTEMD_TMPFILES was removed, it was added to
Config.in. The idea was to warn users who use the symbol in their
br2-external.
However, most users don't have a br2-external that uses this symbol.
Since the symbol defaults to y when systemd is enabled, they'll get this
legacy warning - which is completely meaningless for them since nothing
changes.
The annoyance of the many is worse than the possible unexpected change
for the few. And anyone actually relying on BR2_PACKAGE_SYSTEMD_TMPFILES
will probably easily discover the issue in testing (e.g. because the
tmpfiles conf is missing in the target).
Therefore, remove BR2_PACKAGE_SYSTEMD_TMPFILES from Config.in.legacy.
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
When libglvnd is enabled, mesa3d must be told so, so as it installs its
libraries with the vendor suffix (e.g. libEGL_mesa.so instead of
libEGL.so).
Additionally, the provider (in Buildroot parlance) is libglvnd, not mesa3d.
Signed-off-by: Jakub Skrzypnik <jskrzypnik@novomatic-tech.com>
[yann.morin.1998@free.fr:
- don't override the _PROVIDES variable, only assign when needed
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Tested-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
libglvnd is the GL Vendor-Neutral Dispatch library, used to dispatch
GL calls across multiple GL implementations at runtime.
Full GL support, as usual, requires (parts of) the X11 stack: libX11,
libXext, and xorgproto (for glproto). However, with just libX11, it is
possible to do EGL on X11. EGL and GLES have no dependencies.
Note: x11 and glx are 'features', so need to be 'enabled' or 'disabled'
(or 'auto', but we don't care in Buildroot), while egl and gles1/2 are
'booleans', so need to be 'true' or 'false'.
When an actual provider for GL, EGL, or GLES is enabled, so must the
corresponding flavour be enabled in libglvnd. Conversely, when there is
no actual provider, the corresponding support must be disabled in
libglvnd. So we make each flavour selectable with hidden options, which
actual providers will have to select.
The license for libglvnd itself is a custom license by NVidia. It is
pretty close to MIT, but it's different (although Debian does classify
it as MIT); SPDX has no identifier for that license either. As such, we
choose to just identify it as 'libglvnd license', and let users deal
that with their legal department. Additionally, libglvnd bundles some
code from other projects, so we list them explicitly as well.
Signed-off-by: Jakub Skrzypnik <jskrzypnik@novomatic-tech.com>
[yann.morin.1998@free.fr:
- provide help text
- don't force X11 libraries, split them between X11 and full GL
- make each flavour selectable
- fix make check-package issues
- fix and complete licensing information
- bump to 1.3.2
- expand commit log
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
When debugging pkg-stats, it's quite useful to be able to disable some
features that are quite long (checking upstream URL, checking latest
version, checking CVE). This commit adds a --disable option, which can
take a comma-separated list of features to disable, such as:
./support/scripts/pkg-stats --disable url,upstream
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
The .affects() method of the CVE class in support/scripts/cve.py can
return 3 values: CVE_AFFECTS, CVE_DOESNT_AFFECT and CVE_UNKNOWN.
We of course properly account for CVEs where .affects() return
CVE_AFFECTS, but the ones for which CVE_UNKNOWN is returned are
currently ignored, and therefore treated as if they did not affect the
package.
However CVE_UNKNOWN in fact indicates that the v_start/v_end fields of
the CPE entry could not be parsed by
distutils.version.LooseVersion(). Instead of ignoring such cases, this
commit adds support for the concept of "unsure CVEs", which will be
listed next to CVEs known to affect the package, so that we are aware
of them and can investigate the version issue.
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Many applications that use GLX want to combine it with DRI3 to bypass
the X server and send GL commands directly to the graphics driver. This
is only available in mesa3d if glx-direct=true.
Up to now, we only enabled glx-direct when a DRI driver was enabled.
Historically, this is either because only DRI drivers had DRI3, or
because we didn't know better at the time. However, glx-direct is not
related to DRI drivers at all. Setting it for a DRI driver when there is
no GLX is effectively a NOP. Conversely, we also want to set it for
Gallium drivers when GLX is enabled, otherwise GLX-direct applications
don't work.
Note that glx-direct is only functional if glx=dri. If glx=xlib or
glx=gallium-xlib, GLX always goes through the X server so direct is not
possible (as far as we understand).
Set glx-direct=true unconditionally when GLX is selected. Remove it from
DRI drivers.
Reported-by: Howard Mitchell <hm@hmbedded.co.uk>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Although the Gallium V3D driver for RPi4 can be built independently, in
practice the accelaration doesn't work unless the VC4 driver is also
enabled.
Select VC4 automatically when V3D is selected.
Signed-off-by: Howard Mitchell <hm@hmbedded.co.uk>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
hiawatha needs mbedtls3 since bump to version 11.1 in commit
24e4c888c3:
/home/giuliobenetti/autobuild/run/instance-3/output-1/build/hiawatha-11.1/src/wigwam.c:39:10: fatal error: mbedtls/psa_util.h: No such file or directory
39 | #include "mbedtls/psa_util.h"
| ^~~~~~~~~~~~~~~~~~~~
As mbedtls 3.x is not backward compatible with mbedtls 2.x, disable
system mbedtls to let hiawatha uses its own copy (which will be
installed in $(TARGET_DIR)/usr/lib/hiawatha)
Fixes:
- http://autobuild.buildroot.org/results/064af90aa95c28781d96d7eca0f14841fce0687a
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
We are not passing TARGET_CONFIGURE_OPTS when building busybox; instead
we are passing variables explicitly. As thus, it is missing the ar, nm,
and ranlib that we are using.
We add explicit AR, NM, and RANLIB, so that the ones we want to use
(i.e. the gcc-wrapped ones) are actually used.
Signed-off-by: Norbert Lange <nolange79@gmail.com>
[yann.morin.1998@free.fr:
- reword the commit log to explain why we need that
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
This will use gcc-ar, gcc-nm and gcc-ranlib instead of the normal
binutils tools. The difference is that with the wrappers, gcc plugins
will be automatically picked up.
gcc 4.7 introduced these wrappers, to detect the prefix and keep gcc
specifics out of Makefile.in, a new variable BR2_TOOLCHAIN_BUTILS_PREFIX
will be used to carry the prefix on supported versions.
Note that binutils added some automatic loading with the 'bfd-plugins'
directory (somewhere around 2.28), but the first implementation had
issues, and generally depends on correctly setup symlinks (often broken,
may point to some other gcc's library). The wrappers always work
painless.
The original motivation (now ~2 years in use) was to add "-flto
-ffat-lto-objects" to both BR2_TARGET_OPTIMIZATION and
BR2_TARGET_LDFLAGS, and have target binaries lto optimized.
Not all packages will compile with this option, further work could
white/blacklist packages (adding -fno-lto to the options).
Signed-off-by: Norbert Lange <nolange79@gmail.com>
[yann.morin.1998@free.fr: don't introduce a Config.in blind option]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
- Updated language training data version to 4.1.0
- Removed current patch as not required anymore
- Added patch to fix uclibc failures
- Supported C++ version has moved from C++11 to C++17
Signed-off-by: Gilles Talis <gilles.talis@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
add the missing user if oomd is enabled.
Signed-off-by: Norbert Lange <nolange79@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Especially for read-only filesystems it is helpful to
pre-create all folders for non-volatile paths.
This needs to run under fakeroot to allow setting
uids/gids/perms for the target fs.
systemd-tmpfilesd supports specifiers and target rootfs,
but some specifiers resolve to information from the host,
it is necessary to specially handle (skip) entries that
contain problematic specifiers.
Signed-off-by: Norbert Lange <nolange79@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
python-setuptools-scm dropped python 2 support since
f0be71fbcf
resulting in the following build failure since bump to version 6.3.2 in
commit 12e3527fd9:
/buildroot/autobuild/instance-2/output-1/host/lib" INTLTOOL_PERL=/usr/bin/perl /home/buildroot/autobuild/instance-2/output-1/host/bin/python setup.py build )
File "setup.py", line 22
f"{type(self).__name__} is forbidden, "
^
Fixes:
- http://autobuild.buildroot.org/results/2f6125993de364b4a44d259f16806e6dfd792402
With python 2 support dropped, python-backports-functools-lru-cache can no
longer be built, so drop it.
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Together with changes to sysv/busybox init, this directory
will already exist on all init systems before any service
scripts are run.
Signed-off-by: Norbert Lange <nolange79@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
systemd's own configuration file is not installed anymore,
as side effect of disabling sysv support in commit
96f0d9969e.
Add the legacy.conf functionality back in skeleton-init-systemd,
since this is a buildroot feature to support software expecting
these directories to exist, as well as trying to be similar to
other init systems.
Create our own legacy.conf instead of using the one from upstream,
because:
- upstream has legacy.conf.in which has to be preprocessed;
- we don't want to enable upstream's full sysv support as explained in
commit 96f0d9969e6220154b39d9d80cda97998d41f670;
- we would probably need to post-process upstream's legacy.conf anyway
since it doesn't fully match with buildroot expectations.
Signed-off-by: Norbert Lange <nolange79@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Since tmpfiles is no longer optional, the Config.in symbol serves no
purpose. It was only used in cryptsetup.mk, where we replace it with
BR2_PACKAGE_SYSTEMD.
Advise to do the same in Config.in.legacy.
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
this tool and service is pretty much expected to be enabled,
making this a certainty will enable future improvements.
The config variable BR2_PACKAGE_SYSTEMD_TMPFILES is still
availabe and always set.
Signed-off-by: Norbert Lange <nolange79@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
This modifies the order of the nss modules, reflecting the current
state of the documentation.
nss-mymachines lost support for resolution of users and groups,
and now only does resolution of hostnames. Changed in v246.
Multiple changes in regards to nss-myhostname now recommend placement
after nss-files and before nss-dns. See commits ce266330, f918c67.
nss-resolve handles the nss-files logic itself, and its suggested to
move in front of nss-files. Changed in v249.
Signed-off-by: Norbert Lange <nolange79@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
realign the configuration to the README.
enable CONFIG_AUTOFS_FS (kernel >= 4.18) as well as the someday
to be removed CONFIG_AUTOFS4_FS option.
Signed-off-by: Norbert Lange <nolange79@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Use the unified hierarchy, which is systemds default since v243.
The biggest holdover was docker which now supports the unified
layout.
Note that systemd will automatically fallback to hybrid if the
kernel is too old or the unified hierarchy fails for other reasons.
Signed-off-by: Norbert Lange <nolange79@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
This version bump requires significant changes because
python-cryptography is now partially implemented in Rust.
This means that:
- The C++ dependency is no longer needed.
- We need to ensure we are on an architecture where Rust is
available (BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS)
- Almost all Python dependencies are no longer relevant, except for
the python-cffi.
- A number of environment variables are needed to make the Rust part
build correctly.
- We need to invoke the "cargo" download post-process hook to vendor
the Cargo dependencies at download time.
- We need to propagate to relatively significant reverse dependency
tree the changes of dependencies on python-cryptography.
Co-developed-by: James Hilliard <james.hilliard1@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/rustc/rustc.mk produces a config file in $(CARGO_HOME) that
points to the linker. We can simplify that by using the
CARGO_TARGET_<target>_LINKER environment variable.
This will also fix problems when host == target, where the target
linker gets picked up incorrectly.
Fixes:
http://autobuild.buildroot.net/results/2183f1835f2ef553e45e83959910205127b2b259/
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This will allow PKG_CARGO_ENV to be used in other contexts, such as
the upcoming python-cryptography version bump.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This should be more reliable and fix the host == target bug when
doing indirect invocations using the cargo env.
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Some variables should only be passed for target packages, such as the
target-applies-to-host variable. Additional target-specific variables
will also be added.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
In a follow-up commit, we are about to bump python-cryptography to a
new version, which has the interesting charateristic of using Rust
code. This means python-cryptography will now only be available on
platforms supported by Rust, which for now excludes uclibc-based
configurations (none of the Rust Tier1/Tier2 platforms use uClibc,
there is some uClibc support in Tier3 platforms but they have not been
added to Buildroot for now).
So in preparation for this bump, we switch the few test cases of
Python packages that directly or indirectly use python-cryptography to
use a glibc toolchain. Another impacted test case is the
docker-compose test case, but it already uses a glibc toolchain;
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
In most pure Rust packages, the Cargo.toml manifest is at the root
directory, which is why we could call "cargo vendor" without
specifying the path of the manifest.
However, other packages, such as python-cryptography, which have parts
implemented in Rust, have their Cargo.toml located in a specific
subdirectory.
This commit extends the cargo-post-process download script to
understand a BR_CARGO_MANIFEST_PATH environment variable, which allows
a package to pass the location of the Cargo.toml file. If not passed,
"Cargo.toml" is used, preserving the existing behavior for other
packages.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>