Go to file
Thomas Petazzoni 8450b76918 package/pkg-cargo: move CARGO_HOME into DL_DIR
CARGO_HOME is where Cargo stores its downloaded artefacts. See
https://doc.rust-lang.org/cargo/reference/environment-variables.html:

  CARGO_HOME — Cargo maintains a local cache of the registry index and
  of git checkouts of crates. By default these are stored under
  $HOME/.cargo (%USERPROFILE%\.cargo on Windows), but this variable
  overrides the location of this directory. Once a crate is cached it
  is not removed by the clean command. For more details refer to the
  guide.

We currently make it point to $(HOST_DIR)/share/cargo, but this has a
number of drawbacks:

 (1) It is not shared between Buildroot builds. Each Buildroot build
     will re-download the crates index, and the crates themselves,
     unless of course the final vendored tarball is already there.

 (2) With BR2_PER_PACKAGE_DIRECTORIES=y, it is even worse: CARGO_HOME
     is not even shared between packages, as $(HOST_DIR)/share/cargo
     is per package. So each package in the build that needs vendoring
     of Cargo crates will download the crates index and the crates in
     its own CARGO_HOME location.

To solve this, this commit moves CARGO_HOME into $(DL_DIR), so that it
is shared between builds and packages.

Even though not the best/most authoritative source,
https://github.com/rust-lang/cargo/issues/6930 indicates that there is
a lock when accessing CARGO_HOME, because a user even complains that
this lock has even become more coarse-grained than it used to be
(which for us is fine, it just means that two Cargo fetch operations
from two different packages will be serialized, not a big deal).

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Tested-by: Moritz Bitsch <moritz@h6t.eu>
[yann.morin.1998@free.fr: rename directory: s/\.cargo/br-cargo-home/]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2022-11-07 18:31:50 +01:00
arch
board configs/zynqmp_zcu10x_defconfig: use BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS 2022-11-03 16:43:43 +01:00
boot
configs configs/zynqmp_zcu10x_defconfig: use BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS 2022-11-03 16:43:43 +01:00
docs Update for 2022.11-rc1 2022-11-03 16:50:49 +01:00
fs fs/cpio: don't fail systems without /dev/null 2022-11-01 21:44:49 +01:00
linux
package package/pkg-cargo: move CARGO_HOME into DL_DIR 2022-11-07 18:31:50 +01:00
support support/testing/tests/package/test_docker-compose: update kernel to 4.19.262 2022-11-01 19:15:01 +01:00
system
toolchain
utils
.clang-format
.defconfig
.flake8
.gitignore
.gitlab-ci.yml
.shellcheckrc
CHANGES Update for 2022.11-rc1 2022-11-03 16:50:49 +01:00
Config.in
Config.in.legacy
COPYING
DEVELOPERS DEVELOPERS: remove Emile Cormier 2022-11-02 18:08:02 +01:00
Makefile Update for 2022.11-rc1 2022-11-03 16:50:49 +01:00
Makefile.legacy
README

Buildroot is a simple, efficient and easy-to-use tool to generate embedded
Linux systems through cross-compilation.

The documentation can be found in docs/manual. You can generate a text
document with 'make manual-text' and read output/docs/manual/manual.text.
Online documentation can be found at http://buildroot.org/docs.html

To build and use the buildroot stuff, do the following:

1) run 'make menuconfig'
2) select the target architecture and the packages you wish to compile
3) run 'make'
4) wait while it compiles
5) find the kernel, bootloader, root filesystem, etc. in output/images

You do not need to be root to build or run buildroot.  Have fun!

Buildroot comes with a basic configuration for a number of boards. Run
'make list-defconfigs' to view the list of provided configurations.

Please feed suggestions, bug reports, insults, and bribes back to the
buildroot mailing list: buildroot@buildroot.org
You can also find us on #buildroot on OFTC IRC.

If you would like to contribute patches, please read
https://buildroot.org/manual.html#submitting-patches