Go to file
Yann E. MORIN 0d19fcf6c2 core/download: fix when the BR2_DL_DIR does not accept hardlinks
When the BR2_DL_DIR is a mountpoint (presumably shared between various
machine, or mounted from the local host when running in a VM), it is
possible that it does not support hardlinks (e.g. samba, or the VMWare
VMFS, etc...).

If the hardlink fails, fallback to copying the file. As a last resort,
if that also fails, eventually fallback to doing the download.

Note: this means that the dl-wrapper is no longer atomic-safe: the code
suffers of a TOCTTOU condition: the file may be created in-between the
check and the moment we try to ln/cp it. Fortunately, the dl-wrapper is
now run under an flock, so we're still safe. If we eventually go for a
more fine-grained implementation, we'll have to be careful then.

Reported-by: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Arnout Vandecappelle <arnout@mind.be>
Cc: Peter Korsgaard <peter@korsgaard.com>
Cc: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2018-04-03 22:45:00 +02:00
arch arc/xtensa: store the Xtensa overlay in the per-package DL_DIR 2018-04-02 15:59:30 +02:00
board qemu_ppc64_e5500_defconfig: convert quotes in readme.txt emulation example 2018-04-03 12:51:35 +02:00
boot packages: use new $($PKG)_DL_DIR) variable 2018-04-02 15:53:53 +02:00
configs configs/qemu_ppc64_e5500_defconfig: needs host-openssl for the Linux kernel build 2018-04-03 00:30:33 +02:00
docs help/manual: update help about the new $(LIBFOO_DL_DIR) 2018-04-02 17:48:56 +02:00
fs fs/*/Config.in: re-wrap help text 2018-04-01 08:52:45 +02:00
linux linux/Config.*: re-wrap help text 2018-04-01 08:53:57 +02:00
package openal: Bump to version 1.18.2 2018-04-03 22:43:55 +02:00
support core/download: fix when the BR2_DL_DIR does not accept hardlinks 2018-04-03 22:45:00 +02:00
system system/Config.in: re-wrap help text 2018-04-01 08:01:05 +02:00
toolchain toolchain-wrapper: use -ffp-contract=off on MIPS Xburst for gcc >= 4.6 2018-04-01 16:23:33 +02:00
utils check-package: support symlinks to the script 2018-04-01 22:41:54 +02:00
.defconfig
.flake8 .flake8: ignore utils/diffconfig 2018-03-13 22:37:54 +01:00
.gitignore
.gitlab-ci.yml configs/qemu_ppc64_e5500: new defconfig 2018-04-02 00:42:59 +02:00
.gitlab-ci.yml.in .gitlab-ci.yml: extend check-package test to Config.* files 2018-04-01 10:16:35 +02:00
CHANGES Update for 2018.02 2018-03-04 22:28:34 +01:00
Config.in help/manual: update help about the new $(LIBFOO_DL_DIR) 2018-04-02 17:48:56 +02:00
Config.in.legacy package/kodi-adsp-*: remove packages 2018-04-01 16:20:11 +02:00
COPYING
DEVELOPERS python-yieldfrom: new package 2018-04-03 00:30:46 +02:00
Makefile package/pkg-generic: add <pkg>-show-recursive-(r)depends targets 2018-04-01 22:25:57 +02: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 Freenode IRC.

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