aboutsummaryrefslogtreecommitdiff
path: root/support
Commit message (Collapse)AuthorAgeFilesLines
* support/download: protect from custom commands with spaces in argsGravatar Yann E. MORIN2015-12-128-15/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some users may provide custom download commands with spaces in their arguments, like so: BR2_HG="hg --config foo.bar='some space-separated value'" However, the way we currently call those commands does not account for the extra quotes, and each space-separated part of the command is interpreted as separate arguments. Fix that by calling 'eval' on the commands. Because of the eval, we must further quote our own arguments, to avoid the eval further splitting them in case there are spaces (even though we do not support paths with spaces, better be clean from the onset to avoid breakage in the future). We change all the wrappers to use a wrapper-function, even those with a single call, so they all look alike. Note that we do not single-quote some of the variables, like ${verbose} because it can be empty and we really do not want to generate an empty-string argument. That's not a problem, as ${verbose} would not normally contain space-separated values (it could get set to something like '-q -v' but in that case we'd still want two arguments, so that's fine). Reported-by: Thomas De Schampheleire <patrickdepinguin@gmail.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com> Reviewed-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Tested-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* apply-patches: only use first field of line for series fileGravatar Ryan Barnett2015-12-121-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | A series file for quilt has a valid syntax of: fixes/autoconf.diff -p1 fixes/doc-html-local-css.diff -p1 fixes/gnu-inline.diff -p1 However, with the current way that a series file is handled, it will error out because the -p1 is tried as a file. This is because in the for loop that iterates the files, we only look for comment lines. Then each line is used within a bash for loop which uses spaces a delimiter. In order to fix this, we should only use the string that comes before a space in the series file. Note that the format allows for any arbitrary depth to the -pN field. But since we'll have only one package with -pN fields, and all will be -p1, we for now always assume -p1. This will have to be fixed whenever we get a package with other values. Signed-off-by: Ryan Barnett <ryanbarnett3@gmail.com> [yann.morin.1998@free.fr: expand comment about the format of a series file and how we interpret it] 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/check-host-rpath: remove trailing '/' in host dirGravatar Yann E. MORIN2015-12-021-1/+1
| | | | | | | | | | | | | | | | | Despite the comment saying so, the trailing '/' in the host directory is not removed. Note however that it is properly removed from extracted RPATH tags. This is not visible when the host directory is our default $(O)/host location, but breaks for user-supplied external host directory, when the user leaves a trailing slash in the path. Fix that. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Peter Korsgaard <jacmet@uclibc.org> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Merge branch 'next'Gravatar Peter Korsgaard2015-12-011-1/+1
|\ | | | | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
| * support/download: fetch all refs on full git cloneGravatar Vivien Didelot2015-11-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When specifying BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION, a user may want to specify the SHA of a reference different than a branch or tag. For instance, Gerrit stores the patchsets under refs/changes/xx/xxx, and Github stores the pull requests under refs/pull/xxx/head. When cloning a repository with --bare, you don't fetch these references. This patch uses --mirror for a full clone, in order to give the user access to all references of the Git repository. Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com> Reviewed-by: "Maxime Hadjinlian" <maxime.hadjinlian@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* | core: check host executables have appropriate RPATHGravatar Yann E. MORIN2015-11-181-0/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we build our host programs, and they depend on a host library we also build, we want to ensure that program actually uses that library at runtime, and not the one from the system. We currently ensure that in two ways: - we add a RPATH tag that points to our host library directory, - we export LD_LIBRARY_PATH to point to that same directory. With these two in place, we're pretty much confident that our host libraries will be used by our host programs. However, it turns our that not all the host programs we build end up with an RPATH tag: - some packages do not use our $(HOST_LDFLAGS) - some packages' build system are oblivious to those LDFLAGS In this case, there are two situations: - the program is not linked to one of our host libraries: it in fact does not need an RPATH tag [0] - the program actually uses one of our host libraries: in that case it should have had an RPATH tag pointing to the host directory. For libraries, they only need an RPATH if they depend on another library that is not installed in the standard library path. However, any system library will already be in the standard library path, and any library we install ourselves is in $(HOST_DIR)/usr/lib so already in RPATH. We add a new support script that checks that all ELF executables have a proper DT_RPATH (or DT_RUNPATH) tag when they link to our host libraries, and reports those file that are missing an RPATH. If a file missing an RPATH is an executable, the script aborts; if only libraries are are missing an RPATH, the script does not abort. [0] Except if it were to dlopen() it, of course, but the only program I'm aware of that does that is openssl, and it has a correct RPATH tag. [Peter: reworded as suggested by Arnout, fix HOT_DIR typo in comment] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Arnout Vandecappelle <arnout@mind.be> Cc: Peter Korsgaard <jacmet@uclibc.org> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* | apply-patches.sh: use everything from the series fileGravatar Arnout Vandecappelle2015-11-171-25/+30
|/ | | | | | | | | | | | When a series file exists, we should use every file mentioned in it, not just the ones ending with .patch or .diff. Also, there's no need to uncompress anything if it's mentioned in a series file (the tools that manipulate series files don't support compressed patches). Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Cc: Doug Kehn <rdkehn@yahoo.com> Tested-by: Doug Kehn <rdkehn@yahoo.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Makefile: Remove 'quiet' variableGravatar Cédric Marie2015-10-291-3/+1
| | | | | | | | | | | | | | | | | 'quiet' variable is set and exported, but it is not used. We can safely remove it. This variable is inherited from the Makefile of the Linux kernel, and is not used in Buildroot. In support/scripts/mkmakefile, 'quiet' value is checked, but the test is always true ('quiet' is never set to silent_), so the test can be removed as well. Signed-off-by: Cédric Marie <cedric.marie@openmailbox.org> Reviewed-by: "James Knight" <james.d.knight@live.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* scancpan: README as default license fileGravatar Francois Perrad2015-10-261-0/+3
| | | | | | | add this heuristic when no specific license file is found Signed-off-by: Francois Perrad <francois.perrad@gadz.org> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* support/mkusers: allow comments in users tablesGravatar Yann E. MORIN2015-10-181-19/+26
| | | | | | | | | | | | | | | | | | | | The format of the users table files is non trivial, so it is sometimes handy to add comments explaining the syntax (or simply the reason for the user) inline in the files. Ignore empty lines and comment lines prefixed with '#' similar to shell or makedevs files. Packages that defined no user (the vast majority) would cause an empty line to be present in the internal users table, hence the reason we skipped empty usernames. Now that we ignore empty lines, we no longer need to check for empty usernames. Reported-by: Peter Korsgaard <jacmet@uclibc.org> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Peter Korsgaard <jacmet@uclibc.org> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/scripts: add size-stats scriptGravatar Thomas Petazzoni2015-10-171-0/+217
| | | | | | | | | | | | | | | This new script uses the data collected by the step_pkg_size instrumentation hook to generate a pie chart of the size contribution of each package to the target root filesystem, and two CSV files with statistics about the package size and file size. To achieve this, it looks at each file in $(TARGET_DIR), and using the packages-file-list.txt information collected by the step_pkg_size hook, it determines to which package the file belongs. It is therefore able to give the size installed by each package. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* dependencies.sh: improve the missing perl modules detectionGravatar Vicente Olivert Riera2015-10-151-5/+21
| | | | | | | | | | [Thomas: - Check for Thread::Queue, not Thread:Queue. - Use 'printf' instead of 'echo -e', since printf is POSIX, but not 'echo -e'.] Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* package-cmake: remove now-redundant target ccache supportGravatar Arnout Vandecappelle2015-10-041-30/+2
| | | | | | | | | | | | All the complexity with the different ways that CMAKE_C_COMPILER and CMAKE_C_COMPILER_ARG1 can be set are no longer needed, it's all handled by the toolchain wrapper now. Note that it is still necessary to handle this for the host build. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Romain Naour <romain.naour@openwide.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* pkg-perl: refactor perl infrastructureGravatar Francois Perrad2015-10-021-6/+4
| | | | | | | | the perl dependency of cpan module is no longer generated by scancpan, but added at the infrastructure level Signed-off-by: Francois Perrad <francois.perrad@gadz.org> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* scancpan: fix detection of native moduleGravatar Francois Perrad2015-09-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | When a module is native or depends of a native module, it must be disabled for static builds via its Config.in We detect native modules by looking at the filenames listed in the MANIFEST. If there is a file which looks like it contains code that much be compiled (e.g. .c, .h and so on...), then we exclude that module (and its dependencies) from static builds. That's what we tried to do so far, but failed when there was a comment on the same line as the filename in the manifest, like so: foo-bar.c # Bla bla bla Fix that by detecting either endof-line (as currently done) or end-of-string. For an example of failed build of perl-html-parser, see http://autobuild.buildroot.net/results/128/128671dfa23d843698a63220c2fac1f44e1d5845/ [Thomas: use better commit log proposed by Yann E. Morin.] Signed-off-by: Francois Perrad <francois.perrad@gadz.org> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* scancpan: remove hack for Module-BuildGravatar Francois Perrad2015-09-061-5/+0
| | | | | | | with Perl 5.22, Module-Build is no longer a core module Signed-off-by: Francois Perrad <francois.perrad@gadz.org> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* perl: bump to version 5.22.0Gravatar Francois Perrad2015-09-061-1/+1
| | | | | Signed-off-by: Francois Perrad <francois.perrad@gadz.org> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* support/download: fix the Hg backend for tagsGravatar Yann E. MORIN2015-08-291-1/+1
| | | | | | | | | | | | | | | | | | | When the version of a package is a Mercurial tag, the download fails, with: abort: unknown revision 'X.Y.Z'! This is because, in Mercurial, tags are commits like the others, and when we clone, we actively request a tag. But then, the server "dereferences" that tag and sends us the revision pointed to by that tag. Of course, since the tag is a commit after the revision we got, we do not have the revision adding the tag. So, we just have to download the full repository to be sure we have the tags in our local clone. 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>
* docs/manual: fix generation of deprecated listGravatar Yann E. MORIN2015-08-021-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 5f117c3 (webkit: mark as deprecated), generation of the manual has been broken. This is because that commit added a deprecated dependency on a prompt-less symbol, BR2_PACKAGE_WEBKIT_ARCH_SUPPORTS. However, the generation script does not check that a symbol has a prompt before it attempts to add it to the deprecated list. So, we end up with traceback: Writing the virtual-packages list in: /home/ymorin/dev/buildroot/O/build/docs/manual/virtual-package-list.txt Traceback (most recent call last): File "/home/ymorin/dev/buildroot/buildroot/support/scripts/gen-manual-lists.py", line 510, in <module> buildroot.print_list(list_name, dry_run=args.dry_run, output=output) File "/home/ymorin/dev/buildroot/buildroot/support/scripts/gen-manual-lists.py", line 466, in print_list item_label=item_label) File "/home/ymorin/dev/buildroot/buildroot/support/scripts/gen-manual-lists.py", line 126, in format_asciidoc_table enable_choice=enable_choice)) File "/home/ymorin/dev/buildroot/buildroot/support/scripts/gen-manual-lists.py", line 350, in _format_symbol_prompt_location return "| {0:<40} <| {1}\n".format(get_label_func(symbol), File "/home/ymorin/dev/buildroot/buildroot/support/scripts/gen-manual-lists.py", line 458, in <lambda> get_label = lambda x: self._get_symbol_label(x, mark_depr) File "/home/ymorin/dev/buildroot/buildroot/support/scripts/gen-manual-lists.py", line 313, in _get_symbol_label label = symbol.get_prompts()[0] IndexError: list index out of range However, we can not use the existing _is_deprecated filter function to filter out symbols without prompts, because this function is also used to add a '(deprecated)' tag in the man package list (not that it would not work, but it does not seem /right/). Furthermore, it could also be used (but is currently not) to build the list of virtual packages, which do not have a prompt. So, introduce a filter function, aptly named _is_deprecated_feature(), to be used as the filter to find deprecated feature, and keep the existing _is_deprecated() that can be used in any context to decide whether a symbol is deprecated or not. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Samuel Martin <s.martin49@gmail.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Gustavo Zacarias <gustavo@zacarias.com.ar> Acked-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* core/download: don't be needlessly verbose in backendsGravatar Yann E. MORIN2015-07-266-5/+10
| | | | | | | | | | | | | | | | | | In 50c8b7e (support/download: support -q in all download backends), the backend were made to respect the quietness of the main Makefile, when -s is poassed on the 'make' command line. In doing so, they were all made to be verbose by default. However, the verbosity of some of the tools, like scp, is very high, and is in fact intended for debug purposes. Drop being verbose by default, just use whatever each tool deems normal output. Only respect the quietness requested by the user. Reported-by: Thomas De Schampheleire <patrickdepinguin@gmail.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Reviewed-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* scancpan: adjust package nameGravatar Francois Perrad2015-07-231-0/+1
| | | | | | | | | underscore is not allowed in BR package name. this problem was found with the Perl module DB_File which must give the BR package perl-db-file. Signed-off-by: Francois Perrad <francois.perrad@gadz.org> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* core/out-of-tree: fix Makefile wrapperGravatar Yann E. MORIN2015-07-161-1/+1
| | | | | | | | | | | | Commit 971faf8 (Makefile: fix out-of-tree builds with multiple targets with 'all') renamed the default target to '_all' to avoid name-clashing. In doing so, I forgot to also fix the instance in the .PHONY rule. Fix that now. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* graph-depends: Strip skeleton from dependencyGravatar Maxime Hadjinlian2015-07-141-4/+5
| | | | | | | | skeleton being a mandatory dependency, we don't want all our packages to have a link back to that node, the graph would be awful. Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* scripts: mkmakefile: set umask before calling BR's makefileGravatar Guido Martínez2015-07-131-1/+1
| | | | | | | | Small optimization so we don't have another 'make' level (caused by the umask fix) when running the generated makefile. Signed-off-by: Guido Martínez <guido@vanguardiasur.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* pkg-generic: fix fallout of <pkg>_STRIP_COMPONENTS introductionGravatar Thomas Petazzoni2015-07-121-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The introduction of <pkg>_STRIP_COMPONENTS broke the build of the target tar package, because support/dependencies/check-host-tar.mk defines TAR_STRIP_COMPONENTS to --strip-components. Which leads to have the package infrastructure do: $$(TAR_STRIP_COMPONENTS)=$$($(2)_STRIP_COMPONENTS) which for the tar package evaluates to: $$(TAR_STRIP_COMPONENTS)=$$(TAR_STRIP_COMPONENTS) which evalutes to: --strip-components=--strip-components Which obviously doesn't work really well. And in fact the TAR_STRIP_COMPONENTS definition in support/dependencies/check-host-tar.mk is no longer necessary: it was needed in the days where we were trying to support old tar versions that did not support --strip-components. But nowadays, when such an old tar version is encountered, we build our own host-tar which supports --strip-components. Fixes: http://autobuild.buildroot.org/results/ae2/ae20df67f99f75b1ba5d5b7316ad265d66f3aa66/ Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/download/cvs: add support to use a date instead of a tagGravatar Fabio Porcedda2015-07-101-1/+10
| | | | | | | | | | This is useful when a tag is not avaiable. Also fix support for Fedora where the command "cvs -r :<version>" doesn't work. Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support: remove outdated note re. Python 3 supportGravatar Ulf Magnusson2015-06-121-5/+0
| | | | | | | Kconfiglib now runs as either Python 2 or Python 3. Signed-off-by: Ulf Magnusson <ulfalizer@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support: get prompts via official Kconfiglib APIsGravatar Ulf Magnusson2015-06-111-5/+5
| | | | | | | These weren't available when gen-manual-lists.py was first written. Signed-off-by: Ulf Magnusson <ulfalizer@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support: gen-manual-lists.py base directory simplificationGravatar Ulf Magnusson2015-06-111-4/+2
| | | | | | | Buildroot doesn't use $srctree from what I could tell. Signed-off-by: Ulf Magnusson <ulfalizer@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support: update Kconfiglib to the latest versionGravatar Ulf Magnusson2015-06-112-1143/+912
| | | | | | | | | | | | | | | | | | | | | | | | Corresponds to a95f477 in https://github.com/ulfalizer/Kconfiglib. Fixes: - Unset user values when loading a zero-byte .config. (5e54e2c) - Ignore indented .config assignments. (f8a7510) - Do not require $srctree to be set for non-kernel projects. (d56e9c1) - Allow digits in $-references to symbols. (ecacdd5) - Add Symbol.is_allnoconfig_y(). (deaa624) - Fix small output issue with Comments inside Choices. Also adds Python 3 support and has a lot of internal cleanup and optimization. Signed-off-by: Ulf Magnusson <ulfalizer@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* scripts/mkusers: allow users with no password value setGravatar James Knight2015-06-091-0/+3
| | | | | | | | | | | | | | | | | | The following allows a user definition to specify that a created user entry should not have a password value set. Original implementation allowed a user definition to provide a password value of "=" (no quotes) to generate a crypt-encoded empty string value. In some cases, it may be desired to have no value specified for a user's password. By using a value "-" for a password, no value will be set in the shadow value. An example when this can be used is when logging into a terminal. Logging into a session with an encoded empty password will prompt a user to enter a password since it does not know the password is empty. If the password field blank, a login session will not prompt for a password. Signed-off-by: James Knight <james.knight@rockwellcollins.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/download: relocate the git clone commentGravatar Baruch Siach2015-05-311-2/+7
| | | | | | | | | | | | | Following commit 95a572282e87 (pkg-infra: move the git download helper to a script, 2014-07-02), move the comment describing the shallow clone trickery as well. Merge this comment with the existing helper comment that was added in 7e40a1103a91 (support/download: convert git to use the wrapper, 2014-08-03). Rename $($(PKG)_DL_VERSION) to ${cset} to match the helper code context. Cc: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* fix typo in package install suggestion for dependenciesGravatar Gergely Imreh2015-05-081-1/+1
| | | | | Signed-off-by: Gergely Imreh <imrehg@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* support/download: restore mandatory check of hashesGravatar Yann E. MORIN2015-04-251-1/+1
| | | | | | | | | | | | | | Now that custom external toolchains to be downloaded properly instruct to not fail on a missing hash, restore the mandatory hash check for everything else. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Gustavo Zacarias <gustavo@zacarias.com.ar> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Acked-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/download: add possibility to not fail on missing hashGravatar Yann E. MORIN2015-04-251-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In very constrained cases, it might be needed to not fail if a hash is missing. This is notably the case for custom external toolchains to be downloaded, because we do have a .hash file for external toolchains, but we obviously can not have hashes for all existing custom toolchains (he, "custom"!). So, add a way to avoid failing in that case. >From the Makefile, we export the list of files for which not to check the hash. Then, from the check-hash script, if no check was done, and the file we were trying to match in in this exclusion list, we just exit without error. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Gustavo Zacarias <gustavo@zacarias.com.ar> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> changes v6 -> v7: - /beautify/ the pattern in the case clause Changed v5 -> v6: (Arnout) - fix the pattern in the case clause Changes v4 -> v5: - micro-optimisation, use case-esac instead of a for-loop (Arnout) - typoes (Arnout) Changes v3 -> v4: - drop the magic value, use a list of excluded files (Arnout) Changes v1 -> v2: - fix typoes in commit log Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Tested-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* Makefile: rename TARGETS to PACKAGESGravatar Thomas Petazzoni2015-04-141-1/+1
| | | | | | | | | | For clarity, this commit renames the TARGETS variable to the more meaningful PACKAGES variable. Indeed, only packages (handled by one of the package infrastructures) should be listed in this variable, and not other random non-package targets. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
* Fix typos in comment blocksGravatar Masahiro Yamada2015-04-082-2/+2
| | | | | | | | | | | [Thomas: fix issues noticed by Arnout: - Rewrap the linux/Config.in paragraph - Revert the "is a toolchain dependency" -> "has a toolchain dependency" change from pkg-generic.mk, as the original was correct.] Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/download: do not warn about missing hash file for repositoriesGravatar Yann E. MORIN2015-04-061-1/+5
| | | | | | | | | | | | | | | | | | | | | When downloading from a repository, we explicitly pass no hash file, because we can't check hashes in that case. However, we're still printing a message that there is a missign hash file. Beside being a bit annoying (since we can't do anything about it), it may also be wrong, especially for packages for which we support multiple versions, with some being downloaded via a git clone and others as tarballs. Just print no warning when the path to the hash file is empty. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Gustavo Zacarias <gustavo@zacarias.com.ar> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/download: quick fix to avoid breaking on custom toolchainsGravatar Yann E. MORIN2015-04-031-1/+1
| | | | | | | | | | | | | | When the user selects a custom toolchain to be downloaded, there's no hash for that toolchain, so the download fails, now that hashes are mandatory. Fix that by simply exiting as if there was no error, until we have a better fix... Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/download: warn when there's no .hash fileGravatar Yann E. MORIN2015-04-031-0/+1
| | | | | | | | | | | | Instead of silently accepting a missing .hash file, print a warning. This can be grepped from a build log, to find packages that still have no hash, with the long-term goal of adding hashes for all packages. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/download: always fail when there's no hashGravatar Yann E. MORIN2015-04-031-6/+2
| | | | | | | | | | | | | | | | | | At the time we introduced hashes, we did not want to be too harsh in the beginning, and give people some time to adapt and accept the hashes. So we so far only whined^Wwarned about a missing hash (when the .hash file exists). Some time has passed now, and people are still missing updating hashes when bumping packages. Let's make that warning a little bit more annoying... Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Arnout Vandecappelle <arnout@mind.be> Reviewed-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/download: properly catch missing hashesGravatar Yann E. MORIN2015-04-031-1/+10
| | | | | | | | | | | | | When checking hashes reports no hash for a file, and this is treated as an error (now: because BR2_ENFORCE_CHECK_HASH is set; later: because that will be the new and only behaviour), exit promptly in error. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Arnout Vandecappelle <arnout@mind.be> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/download: return different exit codes for different failuresGravatar Yann E. MORIN2015-04-031-3/+12
| | | | | | | | | | | | | | | | | | | | Return different exit codes depending on the error that occured: 0: no error (hash file missing, or all hashes match) 1: unknown option 2: hash file exists, but at least one hash in error 3: hash file exists, but no hash for file to check 4: hash file exists, but at least one hash type unknown This will be used in a later patch to decide whether the downloaded file should be kept or removed. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Samuel Martin <s.martin49@gmail.com> Cc: Arnout Vandecappelle <arnout@mind.be> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/download: add explicit no-hash supportGravatar Yann E. MORIN2015-04-031-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add support to explicitly state that an archive has no hash. This can be used for archives downloaded from a repository, like a git-clone or a subversion checkout, or using the github helper. This will come in handy when we'll eventually make hashes mandatory as soon as a .hash file exists: for some packages, like gcc, some versions are downloaded as archives from upstream, while other versions may come from a GitHub repository (via the github herlper). In this case, a .hash file would exist, that contains hashes for the downloaded tarballs, but archives downloaded from the repository would not have a hash (since it is currently not possible to have reproducible such archives). So, we'd need a way to explicitly state there is no hash, on purpose, for those archives. So, add 'none' as a new type of hash. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Arnout Vandecappelle <arnout@mind.be> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/download: make hash file optionalGravatar Yann E. MORIN2015-04-032-4/+1
| | | | | | | | | | | | | | | | | | | | Currently, specifying a hash file for our download wrapper is mandatory. However, when we download a git, svn, bzr, hg or cvs tree, there's by design no hash to check the download against. Since we're going to have hash checking mandatory when a hash file exists, this would break those downloads from a repository. So, make specifying a hash file optional when calling our download wrapper and bail out early from the check-hash script if no hash file is specified. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/graph-depends: allow excluding virtual packagesGravatar Yann E. MORIN2015-04-011-0/+4
| | | | | | | | | Like for --stop-on, make --exclude recognise the keyword 'virtual', to stop on virtual packages (as explained in the help...). 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/graph-depends: add option to completely exclude a packageGravatar Yann E. MORIN2015-03-311-2/+15
| | | | | | | | | | Similar to --stop-on, but also omits the package from the graph. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Francois Perrad <fperrad@gmail.com> Reviewed-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/graph-depends: accepts globs to stop on packageGravatar Yann E. MORIN2015-03-311-2/+5
| | | | | | | | Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Francois Perrad <fperrad@gmail.com> Reviewed-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/graph-depends: add option to stop on specific packagesGravatar Yann E. MORIN2015-03-311-1/+13
| | | | | | | | | | | | | | Add a new option to graph-depends, that users can set to stop the graph on a specific (set of) package(s). This accepts any actual package name, or the 'virtual' keyword to stop on virtual packages. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Francois Perrad <fperrad@gmail.com> Reviewed-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* support/mkusers: enhance error messagesGravatar Yann E. MORIN2015-03-291-8/+14
| | | | | | | | | | | The current error messages are a bit terse, and do not provide all the required information. Expand them to provide more context. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Tom Elliott <tommygunsster@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>