Go to file
Adam Duskett 37809258fc package/flutter-sdk-bin/Config.in.host: change flutter-pub-cache location
When running the command "flutter pub get," the plugins are stored in the
pub-cache directory along with their sha256sum hashes. The default location of
the pub-cache directory is current $(HOST_DIR)/share/flutter/sdk/.pub-cache,
which is not an acceptable choice by default because every plugin is
re-downloaded during every build of a flutter application either during a new
build or when building with the per-package-directory option enabled.

Furthermore, keeping the pub-cache in its current location prevents users from
committing the pub-cache directory to git for faster rebuilds of a
Buildroot-based system, as users cannot store the pub-cache for later use.

To fix the above issue completely, the following two changes must occur:

  - Change the hard-coded Flutter pub-cache location to
    $(DL_DIR)/br-flutter-pub-cache.

  - Remove the `rm -rf $(HOST_FLUTTER_SDK_BIN_SDK)/.pub-cache` and the
    associated comment about why the build system removes the .pub-cache
    directory. After further research, the help text of the precache command
    reads, "Populate the Flutter tool's cache of binary artifacts."
    The current reasoning listed in the comments is not accurate for a
    the following reasons:

    1. We do not want to remove their directory if users already have a pub
       cache they have symlinked to.

    2. If the flutter-sdk-bin package previously set up the pub-cache, then
       the pub-cache directory is set up with the options we want, and there
       is no reason to remove the pub-cache directory.

Note that upstream considers it safe to have multiple instances of
readers/writers to the pub cache concurently, which is a situation that
can happen when two flutter-based pacakges are going to be built in
parallel. There have been reports upstream [0] [1] [2] where concurrency
was an issue, and they have always been fixed [3] [4] (or considered
fixed already). So we can assune that, if the conncurrent ccess to the
shared pub-cache causes issues, that will be an upstream bug that will
get solved.

If that turns out to be an unsolvable problem, we'll still have the
option to run the pub-get commands under flock.

[0] https://github.com/dart-lang/pub/issues/1178
[1] https://github.com/dart-lang/pub/issues/3404
[2] https://github.com/dart-lang/pub/issues/3420
[3] https://github.com/dart-lang/pub/issues/1178#issuecomment-1006489414
[4] https://github.com/dart-lang/pub/issues/1178#issuecomment-1007273739

Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com>
[yann.morin.1998@free.fr: add blurb about concurrent access]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2024-01-20 21:24:10 +01:00
arch arch: add support 16k page size on ARM64 2024-01-19 21:19:33 +01:00
board board/broadcom/northstar: fix building custom images 2024-01-13 22:02:06 +01:00
boot boot/uboot: bump to 2024.1 2024-01-13 22:17:26 +01:00
configs configs/asus_tinker-s_rk3288: bump U-boot to 2024.01 2024-01-13 22:17:36 +01:00
docs docs/website: Update for 2023.02.9 2024-01-15 21:03:16 +01:00
fs fs/cpio: allow users to provide their own dracut modules 2023-02-06 22:46:35 +01:00
linux arch: add support 16k page size on ARM64 2024-01-19 21:19:33 +01:00
package package/flutter-sdk-bin/Config.in.host: change flutter-pub-cache location 2024-01-20 21:24:10 +01:00
support Update for 2023.11.1 2024-01-15 17:07:16 +01:00
system package/openrc: fix uclibc handling 2023-11-29 10:00:43 +01:00
toolchain toolchain/toolchain-external/toolchain-external-bootlin: update to 2023.11-1 2023-12-28 21:57:50 +01:00
utils utils/scanpypi: add flit package support 2023-11-25 12:47:10 +01:00
.checkpackageignore package/libuwsc: fix wolfssl build 2024-01-15 08:46:17 +01:00
.clang-format .clang-format: initial import from Linux 5.15.6 2022-01-01 15:01:13 +01:00
.defconfig arch: remove support for sh64 2016-09-08 22:15:15 +02:00
.editorconfig editorconfig: fix wildcard expansion 2023-12-20 21:32:06 +01:00
.flake8 Revert ".flake8: fix check for 80/132 columns" 2021-01-02 17:38:20 +01:00
.gitignore
.gitlab-ci.yml support/misc/gitlab-ci.yml.in: retry a job only if it failed due to a runner issue 2023-08-27 10:09:37 +02:00
.shellcheckrc utils/check-package: improve shellcheck reproducibility 2022-07-25 23:52:47 +02:00
CHANGES Update for 2023.02.9 2024-01-15 21:01:07 +01:00
Config.in Config.in: change default optimization level from -Os to -O2 2024-01-07 17:59:48 +01:00
Config.in.legacy package/linux-headers: drop 4.14.x option 2024-01-13 21:42:50 +01:00
COPYING
DEVELOPERS package/asterisk: bump to 20.5.2 2024-01-13 22:14:06 +01:00
Makefile Kickoff 2024.02 cycle 2023-12-04 15:25:25 +01:00
Makefile.legacy Remove BR2_DEPRECATED 2016-10-15 23:14:45 +02:00
README docs: move the IRC channel away from Freenode 2021-05-29 22:16:23 +02:00

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