Currently, the gdbinit is generated and installed during post install
hooks, either from the gdb package, or from the external-toolchain
package. When using per-package directories (PPD), the staging directory
of the either package is stored in the generated gdbinit, which is not
going to be valid when all the PPD staging dirs get merged into the
final staging: it would lack any library installed afterwards, i.e.
mostly everything would be missing (but the libraries from the C
toolchain in the case of an external toolchain).
Similarly, all the RPATH will point to various PPD drectories. This
does not cause any issue when the final host is aggregated, because the
PPD directories still exist when we call programs from there (e.g. from
the fs infra, or from post-image scripts).
However, we knew that would not always be possible to keep the PPD
directories: we have the prepare-sdk rule that runs a cleanup pass on
the RPATH, and also applies the generic PPD fixups.
When we introduced prepare-sdk in c32ad51cbf (core/sdk: generate the
SDK tarball ourselves), we did not yet have support for PPD for the host
directory, and especially, we did not have the host-finalize rule, which
was only introduced in d0f4f95e39 (Makefile: rework main directory
creation logic) which kick-started the introduction of PPD.
At that point, we did not realise that the rpath fixups from
prepare-sdk, would be better moved to the new host-finalize rule,
because that had no impact unless one would need an SDK.
Later, in 25e60fbe1c (Makefile: fix SDK relocation for
per-package-dirs), we eventually introduced the PPD generic fixups in
the prepare-sdk rule. Again, we did not realise that those fixups would
be better placed in the host-finalize rule rather than the prepare-sdk.
While fixing the RPATH in host-finalize is not critical, fixing up the
PPD paths actually is, as the gdbinit case demonstrate.
As such, move the PPD fixups to the host-finalize step, and while at it,
also move the RPATH fixups.
This now does not leave much to do in the prepare-sdk step, and that
could very well be moved to the host-finalize rule as well. However,
some people may have started to rely on prepare-sdk in its 6 years of
existence, and the little script it installs is not needed unless one
really needs an SDK. So leave it as it is for now.
Reported-by: Casey Reeves <casey@xogium.me>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Tested-by: Casey Reeves <casey@xogium.me>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Brandon Maier <Brandon.Maier@collins.com>
Tested-by: Brandon Maier <brandon.maier@collins.com>
Acked-by: TIAN Yuanhao <tianyuanhao3@163.com>
Add an option to install the firmware file required by the Linux rp2
driver.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
[yann.morin.1998@free.fr: fix indentation in help text]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
../testsuite/reftests/gtk-reftest.c:28:10: fatal error: execinfo.h: No such file or directory
We don't need the test suite, so disable it.
Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Newer versions of the imx6ulpico board come populated with QCA9377
Wifi chip instad of BRCM4339.
Also install the QCA9377 firmware so that Wifi can work by default
on the newer board revisions.
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Update to U-Boot 2024.07 and kernel 6.6.48 versions.
The default U-Boot pico-imx6ul_defconfig causes the board to hang in SPL.
Fix it by chaging it to the more specific U-Boot
pico-pi-imx6ul_defconfig.
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
By default, 'cargo install' also installs a kind of "registry" in
/usr/.crates2.json and /usr/.crates.toml [0]:
To track information of installed executables, some extra files,
such as .crates.toml and .crates2.json, are also created under this
root.
Presumably, this would be used by "cargo uninstall" to properly cleanup
the package [1]:
By default all binaries are removed for a crate [...].
However, in the context of Buildroot, this is useless, as we do not
uninstall packages, and thus those files are superfluous.
Tell cargo to not create that tracking information, by using --no-track
to "cargo install".
Note that this would cause cargo to fail to install a file that already
exists [2], like would be the case when running foo-reinstall for example:
--no-track
By default, Cargo keeps track of the installed packages with a
metadata file stored in the installation root directory. This flag
tells Cargo not to use or create that file. With this flag, Cargo
will refuse to overwrite any existing files unless the --force flag
is used. This also disables Cargo’s ability to protect against
multiple concurrent invocations of Cargo installing at the same
time.
However, we do already use --force which allows cargo to overwrite
existing files without any further ado, so in our case, --no-track will
only disable the tracking information.
Also, in Buildroot, we do not have concurrent installation _to the same
location_: either PPD is disabled, in which case only one package will
be installed to the common target/ at a time, or we're using PPD, so
each package will get installed into its own target/. Thus, --no-track
has no adverse side effect for us.
Fixes:
https://gitlab.com/buildroot.org/buildroot/-/issues/17
[0] https://doc.rust-lang.org/cargo/reference/config.html#installroot
[1] https://doc.rust-lang.org/cargo/commands/cargo-uninstall.html
[2] https://doc.rust-lang.org/cargo/commands/cargo-install.html
Reported-by: Thomas Kindler @thomask77
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Tested-by: Thomas Kindler @thomask77
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Add an option to enable building and installing the MiniBrowser program
included in the WebKitGTK source tree. This may be handy now that Midori
will no longer be packaged in Builroot. A post-install hook installs a
symbolic link to it into /usr/bin for convenience.
Signed-off-by: Adrian Perez de Castro <aperez@igalia.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
and update the two patches accordingly. Ejabberd now uses rebar3 by
default, so use the --with-rebar configure option to set the correct
rebar binary to use.
Signed-off-by: Johan Oudinet <johan.oudinet@gmail.com>
[yann.morin.1998@free.fr: update .checkpackageignore]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>