aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/wrap
AgeCommit message (Collapse)AuthorFilesLines
2021-10-27fix various flake8 whitespace errorsEli Schwartz1-2/+1
2021-10-15wrap: move FeatureNew checks to a more natural placeEli Schwartz1-12/+16
Now, warnings are unconditionally raised when parsing the wrap file, whether they are used or not. That being said, these warnings literally just check for a couple of keys used in the .wrap ini file. Moving these checks from the time of use to the time of loading, means that we no longer report warnings only when originally downloading or extracting the file or VCS repo. It also means we no longer report warnings in one subproject, when a wrap file is picked up from a different subproject because the first subproject actually does a dependency lookup. This caused issues for the WrapDB tooling, which uses patch_directory everywhere and the superproject requires a suitable minimum version of meson for this... but individual wraps might use a much lower version, and would then raise a warning (in strict mode, converted to an error) when it resolved a dependency from another WrapDB project. Fixes #9118
2021-10-10improve wraptool searchDaniel Jacobs1-2/+6
2021-10-04wrap clone: be less noisy when doing automated code checkoutsEli Schwartz1-4/+5
There are two possible issues, both of which emit very long messages from git: - when shallow cloning via depth + a pinned commit we locally init rather than cloning; use an almost-certainly not conflicting dummy branch name - any time a checkout of a revision is performed, it might not be a branch name, in which case it will be a detached HEAD. By default git is very noisy about this -- it wants you to know what happened and how not to mess up. But wraps aren't per default intended for user editing and development, it's just part of the internal transport which meson uses. So, temporarily squelch this advice. Do not permanently configure the repo like this though, because the user *might* cd in and start developing on the subproject; in this case, any additional git advice they trigger is their responsibility (and they probably do want it). Fixes #9318
2021-10-04condense linesEli Schwartz1-6/+3
2021-10-04f-stringsEli Schwartz1-17/+17
2021-09-03log a more informative error when wrap-git subprojects cannot be downloadedEli Schwartz1-1/+1
"ERROR: Git program not found" is both highly true, and somewhat inscrutable. Sure, looking at the line number you can basically figure out that subproject('something') must somehow need git to operate, but that may not be immediately obvious. Make mention of the fact that it is needed to "download foo.wrap". Fixes #7764
2021-08-31pylint: turn on superflous-parensDylan Baker1-1/+1
We have a lot of these. Some of them are harmless, if unidiomatic, such as `if (condition)`, others are potentially dangerous `assert(...)`, as `assert(condtion)` works as expected, but `assert(condition, message)` will result in an assertion that never triggers, as what you're actually asserting is `bool(tuple[2])`, which will always be true.
2021-08-30wraptool: Fix version comparisonXavier Claessens1-4/+4
2021-07-03Delete redirected wrap files in subprojects purgeTristan Partin1-0/+4
We need to store the original filename as well as whether the wrap was redirected in order to properly purge the redirected wrap.
2021-06-29fix: Always explicitly set encoding for text files (fixes #8263)Daniel Mensinger1-1/+1
2021-06-16interpreter: Extract dependency() logic into its own helper classXavier Claessens1-7/+7
The dependency lookup is a lot of complex code. This refactor it all into a single file/class outside of interpreter main class. This new design allows adding more fallbacks candidates in the future (e.g. using cc.find_library()) but does not yet add any extra API.
2021-06-04wrap: Port to v2 protocolXavier Claessens2-46/+48
Fixes: #8754.
2021-04-22Add trailing -- parameter to git checkouts.Dan1-3/+3
2021-03-29wrap: Tell which wrap-redirect file is missingSeungha Yang1-1/+1
Otherwise user cannot understand which wrap file is missing or wrong
2021-03-04mass rewrite of string formatting to use f-strings everywhereEli Schwartz2-25/+25
performed by running "pyupgrade --py36-plus" and committing the results
2021-03-04various python neatness cleanupsEli Schwartz1-1/+1
All changes were created by running "pyupgrade --py3-only --keep-percent-format" and committing the results. I have not touched string formatting for now. - use set literals - simplify .format() parameter naming - remove __future__ - remove default "r" mode for open() - use OSError rather than compatibility aliases - remove stray parentheses in function(generator) scopes
2021-03-02wrap: sha256 digest is not case sensitiveXavier Claessens1-2/+2
Fixes: #8450.
2021-01-26do not require git installed in order to use wrapsEli Schwartz1-1/+3
It doesn't make sense to check for the presence of git every time we use it, but short-circuit any attempt to use a wrap right from the get-go because we are trying to be fancy with submodules. If git is not installed, simply do not try to figure out whether the wrap is a submodule that can potentially be checked out/updated for the user. Just take it on faith that it isn't one. Fixes #2623
2021-01-17Do not store config parser object in Wrap object. Closes: #7920.Jussi Pakkanen1-11/+11
2020-12-30Handle uppercase dependency names in wraps.Jussi Pakkanen1-2/+5
2020-11-20use real pathlib moduleDylan Baker1-1/+1
We added the _pathlib module to work around defeciencies in python 3.5's implementation, since we now rely on 3.6 lets drop this
2020-11-03wrap: fix type annotationsDylan Baker1-2/+2
2020-11-03wrap: Fix git exception not catched by interpreterXavier Claessens1-1/+11
This is a regression introduced in Meson 0.56.0, it was fatal error when optional dependencies fails to download their fallback subproject.
2020-10-19In text, betterer grammer usings.Jussi Pakkanen1-1/+1
2020-10-13wrap: Add 'redirect' type and use it when auto promoteXavier Claessens1-13/+39
2020-10-13Add wrap mode to disable auto promoteXavier Claessens1-0/+2
2020-10-13wrap: Use sub-subproject packagefilesXavier Claessens1-5/+6
2020-10-13Merge wraps from subprojects into wraps from main projectXavier Claessens1-10/+37
wraps from subprojects are now merged into the list of wraps from main project, so they can be used to download dependencies of dependencies instead of having to promote wraps manually. If multiple projects provides the same wrap file, the first one to be configured wins. This also fix usage of sub-subproject that don't have wrap files. We can now configure B when its source tree is at `subprojects/A/subprojects/B/`. This has the implication that we cannot assume that subproject "foo" is at `self.subproject_dir / 'foo'` any more.
2020-10-04pathlib: Fix resolve() by overriding it in Python 3.5Daniel Mensinger1-1/+1
2020-09-18msubprojects: Stop trying to guess subproject typeXavier Claessens1-12/+0
It was done to include them in `meson subprojects foreach` without --types argument, but it's better to special case missing --types and include wraps that have type=None too. It was a bad idea because that was messing them in `meson subprojects update`, now they are ignored by that command.
2020-09-10msubprojects: Allow comma separated list of typesXavier Claessens1-0/+4
2020-09-10Move verbose_git() and quiet_git() to mesonlibXavier Claessens1-18/+1
2020-09-10msubprojects: Support git subprojects with no wrap fileXavier Claessens1-0/+12
User could have cloned manually a subproject.
2020-09-08typing: fix code reviewDaniel Mensinger1-1/+1
2020-09-08typing: fully annotate wrapDaniel Mensinger3-34/+40
2020-07-14wrap: Raise MesonException when git command failsXavier Claessens1-1/+4
This avoid printing long backtrace by default, the user already has the output of the git command printed for debugging purpose since we don't redirect stdout/stderr.
2020-07-04wrap: Add back filename member in PackageDefinitionXavier Claessens1-0/+1
It is still used by msubprojects.py and cause issues when updating wrapdb.
2020-07-01wrap: Abort if multiple wraps provide the same dep or programXavier Claessens1-11/+23
2020-07-01wrap: Refactor to split wraps dictionary into 3 separate dictsXavier Claessens1-50/+57
It makes the code cleaner to have 3 separate dictionaries for packagename, dependency and programs.
2020-07-01Fix typo: coma->commaXavier Claessens1-2/+2
2020-07-01find_program: Fallback if a wrap file provide the program nameXavier Claessens1-0/+14
We don't need the legacy variable name system as for dependency() fallbacks because meson.override_find_program() is largely used already, so we can just rely on it.
2020-07-01wrap: Add special 'dependency_names' key in [provide] sectionXavier Claessens1-1/+13
The value for that key must be a coma separated list of dependecy names provided by that subproject, when no variable name is needed because the subproject uses override_dependency().
2020-07-01wrap: Add 'provide' sectionXavier Claessens1-4/+44
2020-06-30wrap: Apply patch even in VCS casesXavier Claessens1-1/+1
2020-06-26wrap: add user agent when downloading filesEli Schwartz1-1/+3
This lets servers know when they're being used by meson. It also avoids issues where the Independent JPEG Group decided to ban the "Python-urllib" default user agent. Fixes https://github.com/mesonbuild/libjpeg/issues/9
2020-06-21wrap: Add patch_directory supportXavier Claessens1-12/+20
Copy a tree instead of extracting an archive. Closes: #7216
2020-04-25wrap: Add support for local files via only `*_filename`Daniel Mensinger1-11/+27
2020-04-13wrap: Add fallback urlsXavier Claessens1-8/+17
It can happen that a server is temporaly down, tarballs often have many mirrors available so we should be able to add at least one fallback mirror in wrap files.
2020-01-27Always disable interpolation for ini parsers.Jussi Pakkanen1-1/+1