summaryrefslogtreecommitdiffstats
path: root/support
Commit message (Collapse)AuthorAgeFilesLines
...
* support/scripts: add generic genimage scriptPhelip Etienne2017-04-011-0/+27
| | | | | | | | | | This script is a wrapper for the genimage tool used by most boards. The board postimage script can now call this script instead of invoking genimage command themselves. Signed-off-by: Etienne Phelip <etienne.phelip@savoirfairelinux.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* scripts/scanpypi: use SPDX short identifier for licenseRahul Bedarkar2017-04-011-11/+11
| | | | | Signed-off-by: Rahul Bedarkar <rahulbedarkar89@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* scripts/scancpan: use SPDX short identifier for licenseRahul Bedarkar2017-04-011-1/+1
| | | | | Signed-off-by: Rahul Bedarkar <rahulbedarkar89@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* core/br2-external: properly report unexpected errorsYann E. MORIN2017-03-261-0/+3
| | | | | | | | | | | | | | | | | | | Unextected error in the br2-external script are properly caught, but they are not reported properly, and we end up in either of two situations: - the .br2-external.mk file is not generated, in which case make will try to find a rule to generate it (because the 'include' directive tries to generate missing files); - the .br-external.mk file is generated but does not contain the error variable, and thus the build might not get interrupted. We fix that by using a trap on the pseudo ERR signal, to emit the error variable on unexpected errors. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/scripts/check-bin-arch: fix after "fix for filenames with spaces"Thomas Petazzoni2017-03-221-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit 2f6c5e513cf6688f9343a25ac90138e9ad751eb5 ("support/check-bin-arch: fix for filenames with spaces"), Yann adjuste the check-bin-arch script to properly handle filenames with spaces. However, he also did a subtle change of the regexp that extracts the path of the files. It was: "/^${package},(.+)$/!d; s//\1/;" and Yann changed it to: "/^${package},\.(.+)$/!d; s//\1/;" So the file paths used to start with a dot (like "./usr/share/foo"), and now they no longer start with a dot (like "/usr/share/foo"). While this modification is good and makes sense, the match for /lib/firmware/ was not adjusted accordingly, and the follow-up patch also ignoring /usr/share was not adjusted as well. This commit fixes those /lib/firmware/ and /usr/share/ special cases, which will fix: http://autobuild.buildroot.net/results/76a1475f4cdedb80426fb022ef2e644aa5625660/ Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* download/git: create GNU format tar filesArnout Vandecappelle2017-03-211-1/+3
| | | | | | | | | | | | | | | | | | | | | On most distros, the tar format defaults to GNU. However, at build time the default format may be changed to posix. Also, future versions of tar will default to posix. Since we want the tarballs created by the git download method to be reproducible (so their hash can be checked), we should explicitly specify the format. Since existing tarballs on sources.buildroot.org use the GNU format, and also the existing hashes in the *.hash files are based on GNU format tarballs, we use the GNU format. In addition, the Posix format encodes atime and ctime as well as mtime, but tar offers no option like --mtime to override them. In the GNU format, atime and ctime are only encoded if the --incremental option is given. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Cc: Peter Seiderer <ps.report@gmx.net> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* graph-depends: rename pkgutil.py to brpkgutil.pyYegor Yefremov2017-03-212-4/+4
| | | | | | | | | | | | pkgutil.py is also part of Python itself. Placing pkgutil.py as is in a folder with other scripts that require original pkgutil will break them. This is the case with scanpypi. So rename pkgutil.py to brpkgutil.py to avoid naming collision. Fixes: https://bugs.busybox.net/show_bug.cgi?id=9766 Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/script/check-bin-arch: ignore /usr/shareThomas Petazzoni2017-03-211-0/+7
| | | | | | | | | | | | | | | | | | | | | /usr/share normally should not contain binaries executable for the target platform. However, it might contain ELF binaries for other platforms, such as firmware files installed by Qemu or pru-software-support. Instead of special-casing each package, let's simply ignore /usr/share. Fixes: http://autobuild.buildroot.net/results/6f3fea9f6adaef1573fbb0dd6903b5d99e470610/ (pru-software-support) http://autobuild.buildroot.net/results/fe8892bc22a03299fc41e30bfea5e42166838f88/ (qemu) Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* support/check-bin-arch: fix for filenames with spacesYann E. MORIN2017-03-211-4/+6
| | | | | | | | | | | | | Filenames with spaces will break the current for loop. Fix that by using a while-read loop, fed with the list of files on stdin, using process substitution. Reported-by: Peter Korsgaard <peter@korsgaard.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Peter Korsgaard <peter@korsgaard.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* pycompile: allow to force compilationJérôme Pouiller2017-03-201-1/+10
| | | | | | | | | | | By default, compile_dir() relies on the modification time to know if a python file has to be built again. However in some circumstances (when doing reproducible builds), modification times are not reliable. Thus, this patch adds a way to force the rebuild of all python sources. Signed-off-by: Jérôme Pouiller <jezz@sysmic.org> Reviewed-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* Makefile: add check of binaries architectureThomas Petazzoni2017-03-201-0/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As shown recently by the firejail example, it is easy to miss that a package builds and installs binaries without actually cross-compiling them: they are built for the host architecture instead of the target architecture. This commit adds a small helper script, check-bin-arch, called as a GLOBAL_INSTRUMENTATION_HOOKS at the end of the target installation of each package, to verify that the files installed by this package have been built for the correct architecture. Being called as a GLOBAL_INSTRUMENTATION_HOOKS allows the build to error out right after the installation of the faulty package, and therefore get autobuilder error detection properly assigned to this specific package. Example output with the firejail package enabled, when building for an ARM target: ERROR: architecture for ./usr/lib/firejail/libconnect.so is Advanced Micro Devices X86-64, should be ARM ERROR: architecture for ./usr/bin/firejail is Advanced Micro Devices X86-64, should be ARM ERROR: architecture for ./usr/lib/firejail/libtrace.so is Advanced Micro Devices X86-64, should be ARM ERROR: architecture for ./usr/lib/firejail/libtracelog.so is Advanced Micro Devices X86-64, should be ARM ERROR: architecture for ./usr/lib/firejail/ftee is Advanced Micro Devices X86-64, should be ARM ERROR: architecture for ./usr/lib/firejail/faudit is Advanced Micro Devices X86-64, should be ARM ERROR: architecture for ./usr/bin/firemon is Advanced Micro Devices X86-64, should be ARM ERROR: architecture for ./usr/bin/firecfg is Advanced Micro Devices X86-64, should be ARM Many thanks to Yann E. Morin and Arnout Vandecappelle for their reviews and suggestions. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* scripts/pycompile: Accomodate latest Python 3 codebaseAndrey Smirnov2017-03-191-13/+46
| | | | | | | | | | | | | | | | | | As of the version 3.6.0 compile_dir() call will treat its 'quiet' argument as a full blown integer rather than a boolean value and perform integer comparison operations such as '<' or '>='. To account for that convert ReportProblem type to be a true derivative of built-in int() and override all of int's rich comparison operators in order to be able to "sniff" for PyCompileError in all possible use-cases The integer value ReportProblem pretends to be is teremined by class variable VALUE which is set to 1. Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Reviewed-by: Yegor Yefremov <yegorslists@googlemail.com> Tested-by: Yegor Yefremov <yegorslists@googlemail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/scripts/test-pkg: extend logfile with olddefconfig outputBenoît Allard2017-03-091-1/+1
| | | | | Signed-off-by: Benoît Allard <benoit.allard@greenbone.net> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* core/pkg-cmake: better way to pass our CMAKE_MODULE_PATHYann E. MORIN2017-03-051-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, we tell cmake where to look for our own custom platform description by passing the path to the moduls directory on the command line. However, this causes two different problems. First, some packages simply set CMAKE_MODULE_PATH in their CMakeList.txt, thus overriding our own path, and then our platform description is not found. Second, cmake may internally call sub-cmake (e.g. in the try_compile macro), but the CMAKE_MODULE_PATH is not automatically passed down in this case. For the first problem, we could hunt down and fix all offenders, but this is an endless endeavour, especially since packagers are told to do so on the cmake wiki [0]: CMAKE_MODULE_PATH tell CMake to search first in directories listed in CMAKE_MODULE_PATH when you use FIND_PACKAGE() or INCLUDE() SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/MyCMakeScripts) FIND_PACKAGE(HelloWorld) The second problem could be solved by passing yet another variable on the command line, that tells cmake to explicitly pass arbitrary variables down to sub-cmake calls: -DCMAKE_TRY_COMPILE_PLATFORM_VARIABLES=CMAKE_MODULE_PATH However, this only covers the case of try_compile. Even though no other case is known yet, we'd still risk missing locations where we would need to propagate CMAKE_MODULE_PATH, even some where we'd have no solution like for try_compile. Instead, ngladitz on IRC suggested that CMAKE_MODULE_PATH be set directly from the toolchain file. And indeed this fixes both problems explained above. So be it. [0] https://cmake.org/Wiki/CMake_Useful_Variables Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Samuel Martin <s.martin49@gmail.com> Cc: Jörg Krause <joerg.krause@embedded.rocks> Cc: Ben Boeckel <mathstuf@gmail.com> Cc: Baruch Siach <baruch@tkos.co.il> Cc: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Arnout Vandecappelle <arnout@mind.be> Cc: Peter Korsgaard <peter@korsgaard.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/mkusers: rename variable to avoid name clashingYann E. MORIN2017-03-041-7/+7
| | | | | | | | | | | | | | | | | | | The LINES variable is automatically set by bash to represent the number of lines in the terminal. That variable can be set when the shell receives SIGWINCH. If the shell does receive SIGWINCH after our LINES array is filled, the content of the array is mangled. Rename the variable to avoid that. Fixes #9456 Reported-by: George Y. <georgebrmz@oss3d.com> Reported-by: Paul Stewart <paulstewartis@gmail.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Arnout Vandecappelle <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/cmake: impersonate a Linux system even moreYann E. MORIN2017-03-021-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | Some packages test the system name to decide whether to enable/disable features or link with specific libs. So we forcefully set the system name form our custom system file, so that packagses still believe they are running on Linux rather than Buildroot. Fixes: fastd : http://autobuild.buildroot.net/results/f1d/f1dfe90068ad62e733f17a22202235415bda3974/ paho-mqtt-c: http://autobuild.buildroot.net/results/457/457d76279e16247bf58c838a2c5dd0a4f3962c21/ libiio : http://autobuild.buildroot.net/results/281/2812b008a0ab6bab5fe4d45eb9ffe4e9496a8cb4/ and so on... Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reported-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Baruch Siach <baruch@tkos.co.il> Cc: Ben Boeckel <mathstuf@gmail.com> Cc: Jörg Krause <joerg.krause@embedded.rocks> Cc: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Cc: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* Revert "dependencies/cmake: blacklist cmake 3.7"Yann E. MORIN2017-03-011-8/+0
| | | | | | | | | | This reverts commit 4422eca2d418e2b817b419ff6c4c62f7f4cb7871. We now have a workaround for the RPATH issue introduced in 3.7, so we can use it again. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* core/pkg-cmake: provide our own platform descriptionYann E. MORIN2017-03-012-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The handling of RPATH in cmake-3.7 has changed drastically, causing a slew of build failures dues to libraries from the host being pulled in: - domoticz : http://autobuild.buildroot.org/results/fd0/fd0ba54c7abf973691b39a0ca1bb4e07d749593a/ - freerdp : http://autobuild.buildroot.org/results/5d4/5d429d0e288754a541ee5d8be515454c5fccd28b/ - libcec : http://autobuild.buildroot.org/results/3f3/3f3593bab7734dd274faf5b5690895e9424cbb89/ - and so on... The bug was reported upstream [0], which dismissed it altogether [1] as being expected behaviour, quoting: I don't think there is anything wrong with that change on its own. It merely exposed some existing behavior in a new case. Instead, upstream suggested in that same message that a platform definition be used instead, quoting: If a toolchain file specifies CMAKE_SYSTEM_NAME such that a custom `Platform/MySystem.cmake` file is loaded then the latter can set them as needed for the target platform. So here we are doing so: - we add a new platfom definitions that inherits from the Linux one, then overrides the problematic settings; - we change our toolchain file to use that platform instead; - we tell cmake where to find additional modules, so that it can find our custom platform file. This has been tested to work in the following conditions: - pre-installed host cmake, versions 3.5.1 (Ubuntu 16.04) and 3.7.2 (manually built) - internal cmake, versions 3.6.3 (the current version as of this patch) and 3.7.2 (with the followup patches). Thanks to Jörg, Ben and Baruch for the help investigating the issue. Special thanks to Jörg for handling the discussion with upstream and pointing to the relevant messages! :-) [0] http://public.kitware.com/pipermail/cmake/2017-February/064970.html [1] http://public.kitware.com/pipermail/cmake/2017-February/065063.html To be noted: Thomas suggested we set these directly in the toolchain file. Unfortunately, wherever we put those settings in the toolchain file, this does not work. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Jörg Krause <joerg.krause@embedded.rocks> Cc: Ben Boeckel <mathstuf@gmail.com> Cc: Baruch Siach <baruch@tkos.co.il> Cc: Samuel Martin <s.martin49@gmail.com> Cc: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Peter Korsgaard <peter@korsgaard.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* Update for 2017.022017.02Peter Korsgaard2017-02-281-1/+1
| | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* dependencies/cmake: blacklist cmake 3.7Yann E. MORIN2017-02-281-0/+8
| | | | | | | | | | | | | | | | | cmake-3.7 has a bug in how it handles rpath, linking with libraries from the host. Until we completely understand the issue, just blacklist cmake-3.7. The issue has been reported upstream: http://public.kitware.com/pipermail/cmake/2017-February/064970.html Reported-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Jörg Krause <joerg.krause@embedded.rocks> Cc: Ben Boeckel <mathstuf@gmail.com> Cc: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* support/misc/Vagrantfile: reorganize provisioningAngelo Compagnucci2017-02-261-9/+10
| | | | | | | | | | | | | | | * Remove distribution upgrade cause it slows down the first boot and presents a bug when executed non interactively. * Reorganize provision scripts to be in privileged and non privileged sections * Add Ubuntu mirror automatic handling for apt packages sources Fixes bug #9581 Signed-off-by: Angelo Compagnucci <angelo.compagnucci@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* package: add generic support for lz archivesBaruch Siach2017-02-152-0/+19
| | | | | | | | | | This commit teaches the generic package handling code how to extract .tar.lz archives. When lzip is not installed on the host, host-lzip gets built automatically. Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* package: refactor listing of extractor dependenciesBaruch Siach2017-02-151-0/+1
| | | | | | | | | | | | | | | Don't special case $(XZCAT) when constructing DL_TOOLS_DEPENDENCIES. The next commit will introduce another extractor that automatically builds when not installed. Introduce EXTRACTOR_DEPENDENCY_PRECHECKED_EXTENSIONS that lists archive extensions for which the extractor is already checked in support/dependencies/check-host-foo.mk. Use this in the newly introduced extractor-dependency to populate DL_TOOLS_DEPENDENCIES. Cc: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> [Thomas: add missing space after "firstword", as noticed by Thomas DS.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/test-pkg: report number and types of failuresYann E. MORIN2017-02-121-6/+18
| | | | | | | | Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Luca Ceresoli <luca@lucaceresoli.net> Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/test-pkg: be less verboseYann E. MORIN2017-02-121-10/+6
| | | | | | Requested-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/test-pkg: simplify the config checkYann E. MORIN2017-02-121-9/+5
| | | | | | | | | Use comm(1) to check that all our config options are properly set in the resulting configuration, rather than our canned and fragile code. Reported-by: Cam Hutchison <camh@xdna.net> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/test-pkg: check the config snippet existsYann E. MORIN2017-02-121-0/+3
| | | | | Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/test-pkg: fix code styleYann E. MORIN2017-02-121-10/+10
| | | | | | Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/test-pkg: add option to limit the number of testsYann E. MORIN2017-02-091-4/+17
| | | | | | | | | | | | | | Sometimes, it interesting to have a global overview of whether the package builds at all or not, rather than test on all toolchains. Add an option that allows testing on a limited set of randomly choosen toolchains. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Luca Ceresoli <luca@lucaceresoli.net> Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/test-pkg: store lines missing from resulting configuraitonYann E. MORIN2017-02-091-4/+11
| | | | | | | | | | | | | | When a build is skipped, store the lines from the config snippet, that are missing in the resulting configuration, in a file in the build directory, for the user to inspect. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Luca Ceresoli <luca@lucaceresoli.net> Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com> Acked-by: Luca Ceresoli <luca@lucaceresoli.net> Tested-by: Luca Ceresoli <luca@lucaceresoli.net> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/scripts: add script to test a packageYann E. MORIN2017-02-091-0/+168
| | | | | | | | | | | | | | | | | | This script helps in testing that a package builds fine on a wide range of architectures and toolchains: BE/LE, 32/64-bit, musl/glibc/uclibc... Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> [yann.morin.1998@free.fr: - completely rewrite the script from Thomas, with help from Luca ] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Luca Ceresoli <luca@lucaceresoli.net> Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com> Acked-by: Luca Ceresoli <luca@lucaceresoli.net> Reviewed-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> Tested-by: Luca Ceresoli <luca@lucaceresoli.net> Acked-by: Luca Ceresoli <luca@lucaceresoli.net> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* size-stats: don't count hard linksFrank Hunleth2017-02-061-1/+10
| | | | | | | | | | | | | | | This change adds inode tracking to the size-stats script so that hard links don't cause files to be double counted. This has a significant effect on the size computation for some packages. For example, git has around a dozen hard links to a large file. Before this change, git would weigh in at about 170 MB with the total filesystem size reported as 175 MB. The actual rootfs.ext2 size was around 16 MB. With the change, the git package registers at 10.5 MB with a total filesystem size of 15.8 MB. Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com> Acked-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* graph-depends: split off get_rdepends from get_dependsThomas De Schampheleire2017-02-062-7/+16
| | | | | | | | | | | | | | The use of a 'rule' variable that can contain 'show-depends' or 'show-rdepends' is not logical if get_depends is considered as a reusable function from various scripts. The name of these rules are too much an implementation detail. Therefore, split the existing get_depends into two separate functions get_depends and get_rdepends, while keeping code duplication to a minimum. Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* graph-depends: split off get_version/get_depends into pkgutil.pyThomas De Schampheleire2017-02-062-51/+57
| | | | | | | | | | | Functions to obtain the version and dependencies of a package from Python can be useful for several scripts. Extract this logic out of graph-depends into pkgutil.py. Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> [Thomas: remove shebang from pkgutil.py, noticed by Yann E. Morin.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* graph-depends: avoid use of global var 'rule' in get_dependsThomas De Schampheleire2017-02-051-2/+2
| | | | | | | | | | | | | | Function get_depends was recently changed to support both normal dependencies as reverse dependencies, via a global variable 'rule' that equals 'show-depends' or 'show-rdepends'. As a subsequent function will extract this function get_depends to a separate file, the use of globals is problematic. Instead, pass the global as an argument. Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* core: do not reset DEPENDENCIES_HOST_PREREQ in dependencies.mkJérôme Pouiller2017-01-281-2/+0
| | | | | | | | Usually, Buildroot does never initialize variables with empty content. DEPENDENCIES_HOST_PREREQ was an unjustified exception. Signed-off-by: Jérôme Pouiller <jezz@sysmic.org> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* Update for 2016.11.2Peter Korsgaard2017-01-251-1/+1
| | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* core/br2-external: fix use of relative pathsYann E. MORIN2017-01-161-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes #9576 When the path to a br2-external tree is relative, make enters an endless recursive loop (paths elided for brevity): $ make BR2_EXTERNAL=.. foo_defconfig make[1]: stat: ../configs/../configs/../configs[...]/toto_defconfig: Filename too long make[1]: *** No rule to make target '../configs/../configs/../configs[...]/toto_defconfig', needed by '../configs/../configs/../configs[...]/toto_defconfig'. Stop. Makefile:79: recipe for target '_all' failed make: *** [_all] Error 2 It is a bit complex to understand the actual technical reason for this never-ending expansion; it seems it happens in the code generated by the percent_defconfig macro. Not sure why, though... But the root cause is the relative path. Just use absolute, canonical paths to br2-external trees. Always. [Peter: add bugzilla reference] Reported-by: outtierbert@gmail.com Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* perl: bump to version 5.24.0Francois Perrad2017-01-041-3/+3
| | | | | Signed-off-by: Francois Perrad <francois.perrad@gadz.org> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Update for 2016.11.1Peter Korsgaard2016-12-291-1/+1
| | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* support/dependencies: ensure we have 'file' on the hostYann E. MORIN2016-12-271-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recently, the autoconf macros for libtool started using '/usr/bin/file' to determine the type of library that is generated by the toolchain. Packages that use this recent version of the libtool autoconf macros will fail in a rather dramatic way when /usr/bin/file is not present on the host: the package will still build but no shared library is generated, which in turn may cause build failures in other packages that link with it. For example, libpng's configure determines that it is not possible to build a shared library on MIPS64 because the expected output from 'file' is not present. Therefore, only a static libpng.a is built. Later, bandwithd links with -lpng but it doesn't use the pkg-config's Private-Libs (because it's not linking statically) and it doesn't have access to the NEEDED reference from the shared library. Therefore, it doesn't link with zlib and fails with pngrutil.c:(.text+0x55c): undefined reference to `inflate' We cant use host-file because it is itself an autotools package and is itself using libtool, so this would be a chicken-n-egg problem. Besides, the libtool script really wants to call /usr/bin/file, so it would not even find our host-file anyway. So, just require that '/usr/bin/file' is present on the host. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Arnout Vandecappelle <arnout@mind.be> Cc: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* mkusers: fix spelling in intro commentDanomi Manchego2016-12-201-2/+2
| | | | | Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* pkg-autotools: generic configure fix for powerpc64Sam bobroff2016-12-051-0/+47
| | | | | | | | | | | | | | | | | | | Many (100+) packages supported by buildroot contain old configure scripts (or build them from old versions of autotools) that are unable to determine how to link shared libraries on powerpc64 and powerpc64le. This causes that test to erroneously fail on toolchains that are not "bi-endian" (which is the case for toolchains built by buildroot), which causes configure to build static libraries instead of dynamic ones. Although these builds succeed, they tend to cause linker failures in binaries later linked against them. Because affected configure files can be discovered automatically, this patch introduces a hook (enabled only when building for powerpc64 and powerpc64le) that uses a script to scan and fix each package. Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/dependencies: use the new kconfig option to check UTF8 localeYann E. MORIN2016-12-041-2/+1
| | | | | | | | | | | | | | | Currently, we require a host with an UTF-8 locale as soone as we build a Buildroot toolchain with support for locales. This means that we do erquire such a locale when building a toolchain with either uClibc, glibc or musl. However, glibc and musl do not require such a locale to be present. Use the new option to check if an UTF8 locale is needed on the host, rather than deriving that from toolchain settings. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* Update for 2016.112016.11Peter Korsgaard2016-11-301-1/+1
| | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* core/br2-external: restore compatibility with old distrosYann E. MORIN2016-11-231-17/+17
| | | | | | | | | | | | | | | | | | | | Currently, the br2-external script uses bash-4's associative arrays. However, some oldish enterprise-class distros like RHEL5 still use bash-3.1 which lacks associative arrays. We restore compatibility with those oldish distros using 'eval' to emulate associative arrays, as suggested by Arnout. Reported-by: Ricardo Martincoski <ricardo.martincoski@gmail.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Ricardo Martincoski <ricardo.martincoski@gmail.com> Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com> Cc: Arnout Vandecappelle <arnout@mind.be> Cc: Max Filippov <jcmvbkbc@gmail.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Tested-by: Ricardo Martincoski <ricardo.martincoski@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* pkg-cmake: Change -DNEBUG to -DNDEBUGStefan Nickl2016-11-061-4/+4
| | | | | | Signed-off-by: Stefan Nickl <Stefan.Nickl@gmail.com> Acked-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* get-developers: fix parentheses for printGaël PORTAY2016-11-051-1/+1
| | | | | | | | | | | | | Python3 complains about missing parentheses. $ ./support/scripts/get-developers File "./support/scripts/get-developers", line 45 print f ^ SyntaxError: Missing parentheses in call to 'print' Signed-off-by: Gaël PORTAY <gael.portay@savoirfairelinux.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* linux: add ev3dev extensionDavid Lechner2016-11-021-0/+1
| | | | | | | | This adds an ev3dev Linux drivers extension that provides Linux kernel drivers for LEGO MINDSTORMS EV3 from the ev3dev project. Signed-off-by: David Lechner <david@lechnology.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/download: make the git wrapper more robustYann E. MORIN2016-10-251-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, there are two failure paths in the wrapper: - if the tar fails, then the error is ignored because it is on the left-hand-side of a pipe; - if the find fails, then the error is ignored because it is a process substitution (and there is a pipe, too). While the former could be fixed with "set -o pipefail", the latter can not be fixed thusly and we must use an intemediate file for it. So, fix both issues by using intermediate files, both to generate the list of files to include in the archive, and generate the archive in a temporary tarball. Fixes the following build issue, where the find is failing for whatever unknown reason: http://autobuild.buildroot.net/results/20f/20fd76d2256eee81837f7e9bbaefbe79d7645ae9/ And this one, where the process substitution failed, also for an unknown reason: http://autobuild.buildroot.org/results/018/018971ea9227b386fe25d3c264c7e80b843a9f68/ Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
OpenPOWER on IntegriCloud