https://github.com/qemu/qemu

sort by:
Revision Author Date Message Commit Date
3a9b285 Bump versions to 0.61.5 for LTS release Patch collection is reported here: https://github.com/mesonbuild/meson/pull/10295 https://github.com/mesonbuild/meson/pull/10295#issuecomment-1141795702 02 June 2022, 11:40:57 UTC
58b762a Fix sandbox violation when using subproject as a symlink Fix "Tried to grab file outside current (sub)project" error when subproject exists within a source tree but it is used through a symlink. Using subprojects as symlinks is very useful feature when migrating an existing codebase to meson that all sources do not need to be immediately moved to subprojects folder. 02 June 2022, 11:40:54 UTC
071903a fix traceback when run_command has a find_program as the inline arg We were poking directly at the node, so if it was a FunctionNode then this broke. Instead, just do a reverse lookup in the overrides table to get the original find_program name. 31 May 2022, 07:54:34 UTC
257e6c9 Fix --allow-shlib-undefined for LLVM versions > 9 31 May 2022, 07:54:11 UTC
25a80eb Make a copy of auto_features options when changing its name This fixes bogus messages "skipped: feature foo disabled" when auto_features=disabled. It was reporting the name of the latest get_option() call instead of the name of the current feature option. This is especially visible in GStreamer summary where it should show a different option name for every subproject but instead shows "tools" everywhere: ``` Subprojects gst-devtools : NO Feature 'tools' disabled gst-editing-services : NO Feature 'tools' disabled ... ``` 31 May 2022, 07:53:47 UTC
0635be0 Visual Studio: Only use /utf-8 on VS2015 or later or clang-cl The compiler flag only exists on Visual Studio 2015 or later, or clang-cl, and using this always can interfere with compiler feature detection when this flag is not supported. So, remove '/utf-8' from always_args if we are on Visual Studio 2013 or earlier. 31 May 2022, 07:49:44 UTC
9e27c1b Limit parallelism to hopefully work on machines with 160 cores. 31 May 2022, 07:48:02 UTC
ff3ae93 fix regression in reporting errors for invalid gnu_symbol_visibility In commit fb2cdd0fe2797b30e1fd4c118407302402739a3b the internal property was renamed, but one use case of it in raising a MesonException was not changed to go with it. This meant that instead of erroring out with: ``` ERROR: GNU symbol visibility arg XXXX not one of: default, internal, hidden, protected, inlineshidden ``` we instead errored out with: ``` AttributeError: 'SharedLibrary' object has no attribute 'symbol_visibility' ``` Fixes #9659 31 May 2022, 07:47:13 UTC
26936e1 mtest: stop disrespecting the gdb config file This was added in commit 01be50fdd90851f17de5499537f10b5b62c9fb49 with zero explanation as a side effect of moving code around. It seems like a really bad idea and it causes people to view debugging Meson projects on e.g. debuginfod systems as "painful". 31 May 2022, 07:46:44 UTC
02c85bb Use system install scheme rather than the incorrect Debian one. 31 May 2022, 07:45:42 UTC
6a4d62d Fix purelib and platlib validation in Python3 module. 31 May 2022, 07:45:42 UTC
311fd33 python: Remove warning about invalid install path It was originally added because proper detection was not working on Debian, but that has been fixed since. It was causing annoying warning by default when prefix is /usr/local that can only be avoided by setting options. 31 May 2022, 07:45:42 UTC
a97e4d0 cmake: Fix CMake LLVM dependency error (fixes #10322) 31 May 2022, 07:45:42 UTC
01c71b6 another day, another mypy update becomes stricter about typing Move GlobalState to a runtime T.NamedTuple, use it for constructing the tuple we are passing around rather than expecting mypy to detect that the one we already have matches. 31 May 2022, 07:45:42 UTC
bdb30bb improve help for -Ddebug "Debug" is not a very helpful help message. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> 31 May 2022, 07:45:42 UTC
e5ed51d Use a temp file to invoke the introspection command. This is more reliable as '-c' can, for example, exhaust the maximum command line length. 31 May 2022, 07:45:42 UTC
b5491fe mdist: use better approach to finding original configured options Instead of reading intro-buildoptions.json, a giant json file containing every option ever + its current value, use the private file that is internally used by msetup for e.g. --wipe to restore settings. This accurately tracks exactly the options specified on the command line, and avoids lengthy summary messages containing all the overridden defaults. It also avoids passing potentially incompatible options, such as explictly specifying -Dpython.install_env while also having a non-empty -Dpython.{x}libdir Fixes #10181 31 May 2022, 07:45:42 UTC
4eecec0 packaging: rework how pyinstaller gets its instructions Make use of pyinstaller hooks by creating a hook that updates how the `mesonbuild` import functions. This is more or less the same as passing a bajillion arguments to pyinstaller's CLI, but allows the logic to be self-contained (and reusable). It becomes more obvious what parts of the process pertain to pyinstaller, and which parts pertain to MSI/pkg creation. 31 May 2022, 07:45:42 UTC
3b216e4 run tools/gen_data.py and commit the results 31 May 2022, 07:45:42 UTC
95339d3 cmake: Always use all compilers for LLVM (fixes #10249) 31 May 2022, 07:45:42 UTC
d73b738 Fix CMake error message 31 May 2022, 07:45:42 UTC
9a40ede Fix typos in Xcode backend. 31 May 2022, 07:45:42 UTC
5b8a213 Correctly handle --version argument to runpython Followup to #10204. 31 May 2022, 07:45:42 UTC
eb2bd86 install_symlink: Handle $DESTDIR case for links with absolute path In case a link is pointing_to an absolute path and we are using $DESTDIR we fail in case the target is missing. This is incorrect because we may need to use an absolute path to an already installed file that is in $DESTDIR. So if an absolute target is not existing, check if we have such file in $DESTDIR before failing for real. 31 May 2022, 07:45:42 UTC
27d7a8a Add ppc970 definition to universal.py 31 May 2022, 07:45:42 UTC
261ce1e Fix universal builds on Darwin PPC: add ppc7400 definition 31 May 2022, 07:45:42 UTC
79e63ef Add regression test for Python dist. 31 May 2022, 07:45:42 UTC
6a47a76 compilers: fix broken CompCert support for release flags This has been broken ever since the original implementation. Due to a typo, the optimization flag used a zero instead of an uppercase "o", which the compiler then breaks on during argument parsing because it is an invalid argument. Fixes #10267 31 May 2022, 07:45:42 UTC
af15d41 mconf: Fix printing <inherited from main project> for yielding options In print_options() k was a string instead of OptionKey, but self.yielding_options expects OptionKey. Not sure how this has not been catched by mypy. Fix by keeping k as OptionKey which makes self.yielding_options useless. Fixes: #9503 31 May 2022, 07:45:42 UTC
0654356 qt module: also prefer the changed name scheme for the tools Although Qt6 has decided these are "internal" commands and should never be run directly, so they don't get symlinked to /usr/bin at all, and are only available in the qt_dep.bindir anyway. But, the general naming pattern should be followed on principle. 31 May 2022, 07:45:42 UTC
88bfbf8 qt dependency: adapt to the qmake command changed name Qt now has official guidance for the symlinked names of the tools, which is great. Qt now officially calls the tools `fooX` instead of `foo-qtX` where the major version of Qt is X. Which is not great, because a bit of an unofficial standard had prior art and now needs to change, and we never adapted. Prefer the official name whenever looking up qmake, and in the testsuite, specifically look only for the official name on versions of qt which we know should have that. 31 May 2022, 07:45:42 UTC
0d3170d qt dependency: find the correct -qtX configtool name Fixes regression in commit c211fea51389728783cf59ae41156a5e0de9c41a. The original dependency lookup looked for `qmake-{self.name}`, i.e. `qmake-qt5`, but when porting to config-tool, it got switched to `qmake-{self.qtname}` i.e. `qmake-Qt6`, which was bogus and never worked. As a result, if `qmake-qt5` and `qmake` both existed, and the latter was NOT qt5, it would only try the less preferred name, and then fail. We need to define self.name early enough to define the configtool names, which means we need to set it before running the configtool __init__() even though configtool/pkgconfig would also set it to the same value. Mark the tests as passing on two distros that were failing to detect qmake due to this issue, and were marked for skipping because we assumed that the CI skipping there was an expected case rather than an old regression. 31 May 2022, 07:45:42 UTC
3eb8307 tests: fix incomplete Qt 6 support The "frameworks/4 qt" test covers Qt 4 and 5. There is already Qt 6 code in the test but it is incomplete because translations are missing and Qt 6 requires C++17 or later to compile. 31 May 2022, 07:45:42 UTC
1f04689 Add support for Qt 6.1+ Qt 6.1 moved the location of some binaries from QT_HOST_BINS to QT_HOST_LIBEXECS as noted in the changelog: c515ee178f Move build tools to libexec instead of the bin dir - Tools that are called by the build system and are unlikely to be called by the user are now installed to the libexec directory. https://code.qt.io/cgit/qt/qtreleasenotes.git/tree/qt/6.1.0/release-note.txt It's possible to help the 'qt' module find the tools by adding Qt's libexec directory to the PATH environment variable, but this manual workaround is not ideal. To compensate, meson now needs to look for moc, rcc, uic, etc. in QT_HOST_LIBEXECS as well as QT_HOST_BINS. Co-authored-by: Stefan Hajnoczi <stefanha@jammr.net> 31 May 2022, 07:45:42 UTC
edd75bd compilers/gnu: use Popen_safe to prevent resource leaks Fixes the following ResourceWarnings: ResourceWarning: subprocess 25556 is still running _warn("subprocess %s is still running" % self.pid, ResourceWarning: Enable tracemalloc to get the object allocation traceback mesonbuild/compilers/mixins/gnu.py:195: ResourceWarning: unclosed file <_io.BufferedReader name=4> return gnulike_default_include_dirs(tuple(self.exelist), self.language).copy() ResourceWarning: Enable tracemalloc to get the object allocation traceback 31 May 2022, 07:45:42 UTC
99499eb Fix CMake deprecation warning generated from interpreter Conflicts: mesonbuild/cmake/interpreter.py (only two arguments in the constructor) 31 May 2022, 07:45:42 UTC
2f57f88 runpython: support --version argparse is the gift that keeps on giving, hahaha. Suppress the script argument when --version is specified to avoid "required argument not provided" errors, and print the python version. The version argument is required in order to make this baseline functional as a resolved python for find_program, which may specify a version and expect this to work with python itself. Our incomplete CLI wrapper over the python CLI interface was missing this. Fixes #10162 31 May 2022, 07:45:42 UTC
45c2a95 Debian renamed cython to cython3, support both 31 May 2022, 07:45:42 UTC
3b73dac gnome module: properly fallback to gtk-update-icon-cache Commit a0cade8f introduced a typo and wrongly check for gtk4-update-icon-cache twice. If gtk4-update-icon-cache (gtk4) is not found, look for gtk-update-icon-cache (gtk3) instead. 31 May 2022, 07:45:42 UTC
7802059 Bump versions to 0.61.4 for release Also contains one revert, which was not suppose to be in 0.61.3 at all, but was included accidentally and causes a regression. 23 March 2022, 19:49:35 UTC
caa5220 Add support for cython_args cython_args was previoously ignored by Meson. 23 March 2022, 19:49:32 UTC
2647f18 Make sure we support "<lang>_args" kwarg for all languages 23 March 2022, 19:49:32 UTC
2000ece ninja backend: do not fatally error on compdb failure We print a warning if a compilation database isn't successfully generated, which is good, because that gives some visibility in case the user really wanted to use the compdb. But warnings default to being fatal with --fatal-meson-warnings, which is not so good, because this isn't a very important warning at all, and we'd rather not error out in such cases when building works fine and a random bonus IDE feature doesn't work. Mark this particular warning as non-fatal. Fixes side issue in https://github.com/mesonbuild/wrapdb/pull/343#issuecomment-1074545609 23 March 2022, 10:16:21 UTC
6b26d79 modules/rust: set bindgen include_dirs for both build and source dir Which we pretty obviously need if any of our headers are generated 23 March 2022, 10:15:01 UTC
9c82617 gnome module: fix incorrect lookup of nonexistent dependencies in post_install While gtk+-3.0 / gtk4 do exist, they have never provided the location of the gtk-update-icon-cache program as a pkgconfig variable. Trying to find one anyway, resulted in two things happening: - a useless dep lookup - a fatal-meson-warnings error and build failure because the get_pkgconfig_variable() in question never existed The desktop-file-utils package is a package solely providing some command line programs, and has never provided a pkg-config file in the first place, so this always logged that the dependency was not found and fell back to normal find_program_impl(), although without fatal-meson-warnings build errors. Fixes #10139 23 March 2022, 10:15:01 UTC
cf4396d fix detection of language standard library paths The code in the C++ and Fortran compilers' language_stdlib_only_link_flags method is broken and cannot possibly have ever worked. Instead of splitting by line, it splits by whitespace and therefore, instead of the last line of the compiler output: programs: =/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin libraries: =/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0 it is only the last field that has its first 11 characters removed. Instead of reinventing the wheel with a new and brittle pattern, reuse get_compiler_dirs. Fixes: 64c267c49 ("compilers: Add default search path stdlib_only_link_flags", 2021-09-25) Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> 23 March 2022, 10:15:01 UTC
3f14b37 coredata: be even more robust on unpickling errors When reverting from 0.62 to 0.59, one can see an error like this: line 1003, in load obj = pickle.load(f) File "/Users/pm215/src/qemu-for-merges/meson/mesonbuild/mesonlib/universal.py", line 2076, in __setstate__ self.__init__(**state) # type: ignore TypeError: __init__() got an unexpected keyword argument 'module' FAILED: build.ninja Raise a MesonException for TypeError as well, so that reconfiguration proceeds using cmd_line.txt. 22 March 2022, 11:24:13 UTC
ef18510 Revert "mtest: raise informative error message when test program doesn't exist" This reverts commit c1f933db6bde20cf740bda0abc709693943e827a, which was supposed to be done for 0.61.3, but was missed by accident. 22 March 2022, 05:59:04 UTC
5cf5575 Bump versions to 0.61.3 for release 14 March 2022, 05:39:17 UTC
b15c5c2 compilers/detect: Make mypy happy mesonbuild/compilers/detect.py:1015: error: Unused "type: ignore" comment 14 March 2022, 05:39:15 UTC
7534cf3 mtest: print stderr of TAP/Rust tests in verbose/non-parallel mode Verbose, non-parallel tests generally print their output as they run, rather than after they finish. This however is not the case if stdout of the test is parsed as is the case for TAP and Rust tests. In this case, the output during the run is the list of the subtests, but stderr still has to be printed after the test finishes. Conflicts: mesonbuild/mtest.py [use harness.options.verbose instead of result.verbose] 14 March 2022, 05:32:42 UTC
46ff69e fix missing encodings These were caught by the testsuite erroring out with a fatal EncodingWarning due to the previous commit. Fixes #9996 11 March 2022, 08:15:37 UTC
d910966 use a more sane check instead of run_custom_lint Unfortunately, checking for strings without context is exceedingly prone to false positives, while missing anything that indirectly opens a file. Python 3.10 has a feature to warn about this though -- and it uses a runtime check which runs at the same time that the code fails to open files in the broken Windows locale. Set this up automatically when running the testsuite. Sadly, Python's builtin feature to change the warning level, e.g. by setting EncodingWarning to error at startup, is utterly broken if you want to limit it to only certain modules. This is tracked in order to be more efficiently ignored at https://bugs.python.org/issue34624 and https://github.com/python/cpython/pull/9358 It is also very trigger happy and passing stuff around via environment variable either messes with the testsuite, or with thirdparty programs which are implemented in python *such as lots of gnome*, or perhaps both. Instead, add runtime code to meson itself, to add a hidden "feature". In the application source code, running the 'warnings' module, you can actually get the expected behavior that $PYTHONWARNINGS doesn't have. So check for a magic testsuite variable every time meson starts up, and if it does, then go ahead and initialize a warnings filter that makes EncodingWarning fatal, but *only* when triggered via Meson and not arbitrary subprocess scripts. 11 March 2022, 08:15:37 UTC
aa2b277 compilers/d: fix mangling of rpath-link in DMD-like compilers We didn't consider that it has arguments following it, so the resulting compiler command line ended up with stuff like: -L=-rpath-link -L=-L=/path/to/directory -L=more-args and the directory for rpath-link got eaten up as a regular -L path to the compiler rather than being passed as -Xlinker to the linker. Then the -rpath-link would consume the next -Xlinker argument, end up with the wrong rpath-link (may or may not cause link errors) and then disappear arguments we need. As an example failure mode, if the next argument is -soname this treats the soname text as an input file, which probably does not exist if it was generated in a subdirectory, and also because it can never be successfully built in the first place -- though if it did, it would link to itself which is very wrong. 11 March 2022, 08:15:37 UTC
c1f933d mtest: raise informative error message when test program doesn't exist If --no-rebuild is used, the test program might not exist, spawning a FileNotFoundError inside a long traceback rooted in subprocess.Popen trying to run that test program. Current versions of Meson even say it's an "unhandled python exception". But we can do one better and actually tell the user what is wrong, why, and what to do to fix it. And we can do so before getting waist deep in partially running tests. Fixes #10006 11 March 2022, 08:13:17 UTC
915ae23 test cases: rename shared library('c') avoid libc collision In a bunch of cases we create a series of sample libraries named "a", "b", "c" etc. This breaks on musl. Originally reported with muon via commit https://git.sr.ht/~lattis/muon/commit/ca5c37171423e9884047a85349e1b236d7449510 and also breaks the testsuite when packaging meson for alpine linux. libc.so is an existing library which is linked in by default for all the obvious reasons. You can get away with this on glibc, because that includes a soversion of "6", but it loads the wrong library on musl. 11 March 2022, 08:13:17 UTC
27ef9d1 project tests: fine-tune the check for whether we are in CI Follow-up on commit 4274e0f42a9673df981dd7a7a456f4d4fcfe5452. We want to allow tests to be skipped freely in third-party environments, so this should check the jobname, not whether $CI exists. We will anyways raise an error when trying to run the project tests, if $CI is set but no jobname is set. 11 March 2022, 08:13:17 UTC
21d737a intl dependency: include header when checking for libc builtin This header is required anyway. And the compile test for linking to libc with the gettext symbol, can succeed when we try to use the literal symbol name without includes, but fail later during project build, because actually including libintl.h might redefine the function to match a forked symbol. This happens when GNU libintl is installed as a standalone library on systems that have a less fully-featured gettext implementation. So, by including the header in has_function, we can ensure that we test against the default resolved header. In the event that the symbol which is #define'd by the header is 'libintl_gettext', linking will fail against libc even when a builtin gettext does exist, and we will fall back to the intl dependency that provides -lintl (and which is needed to properly use the default header). Of course, even that probably won't work. has_function(prefix: '...') is useless to check the difference between builtins and external library functions. It has code to detect "builtins" that misfires in some cases (previously seen with iconv_open). Instead compile an open-coded test file that this intl dependency implementation fully controls, that doesn't get up to imaginative edge cases like trying to find `__builtin_gettext`. It's the only way to be sure. Fixes compiling against the intl dependency on e.g. Alpine Linux when the libintl package is installed. 11 March 2022, 08:13:17 UTC
ffa5a0d tests: allow setting MESON_CI_JOBNAME=thirdparty This is treated by the test harness as though unset, i.e. we do normal skipping and don't assume we are running in Meson's own project CI. However, it has one distinction which is that it isn't an error to set $CI without setting $MESON_CI_JOBNAME, if it is in fact set but to the ignored value. This lets automated workflows such as Linux distro testing, particularly alpine linux, set $CI or have it set for them by default, without messing things up. Also it has the advantage of $CI actually enabling useful benefits! We will still assume that this thirdparty environment wants to force verbose logging (printing testlogs, running ninja/samu with -v) and colorize the console. 11 March 2022, 08:13:17 UTC
9a3ef53 tests: do not use a GNU bash script to check the minimum version of programs find_program() can check that for us already, there's no need to require GNU bash on systems that default to other POSIX shells. Even though this is the *linuxlike* tests and a POSIX shell is guaranteed, there is actually no need to require a shell at all. It's *easier* to use the meson builtin functionality here. 11 March 2022, 08:13:17 UTC
f2dd330 unittests: make ninja detection faster and more robust Instead of blindly assuming when $CI is set that `ninja` is always correct and always new enough, check for it the same way we do when $CI is not set. Instead of special casing when $CI is set and skipping ninja detection in subprocess tests (by assuming it is always `ninja`), skip detection in subprocess tests all the time, by passing this information around across processes after the first time it is looked up. This means that local (non-CI) tests are faster too! Fixes running unittests in alpine linux using samu. Although ninja is a symlink to samu, the exact output string on no-op builds is different, which we already handle, but what we don't handle is the fact that samu prints a third case when you invoke it as `ninja`. If $CI is exported, then the unittests ignored $NINJA entirely. Fixes running unittests when $CI is set, `samu` exists and `ninja` does not exist. This is not currently the case anywhere, but may be in the future; why not fix it now? 11 March 2022, 08:13:17 UTC
2ec2a4e shared module: Allow linking on Android Android requires shared modules that use symbols from other shared modules to be linked before they can be dlopen()ed in the correct order. Not doing so leads to a missing symbol error: https://github.com/android/ndk/issues/201 We need to always allow linking for this. Also add a soname, although it's not confirmed that it's needed, and it doesn't really hurt if it isn't needed. 11 March 2022, 08:13:17 UTC
20abea2 Add wx-config-3.1 provided by mingw-w64-x86_64-wxmsw3.1 On Windows using MSYS2 MinGW installing the package `mingw-w64-x86_64-wxmsw3.1` provides `wx-config-3.1`. I have tried building my software by making this exact change and it build correctly. 11 March 2022, 08:13:17 UTC
b2b78b8 Bump versions to 0.61.2 for release 14 February 2022, 14:00:19 UTC
84ac38c run_unittests: check for pytest and pytest-xdist separately Do not quit from using pytest at all, when pytest is present, simply because xdist isn't available. Even without xdist, pytest is still useful. There doesn't seem to be any particular reason to require xdist. It just happens to have been implemented that way, back in commit 4200afc74d1e6ba6d117e900799d0d82a85bae8a when we originally added a check to avoid pytest erroring out with unknown options when xdist options are passed and xdist is not installed. 14 February 2022, 10:19:21 UTC
b8c3d2e unittests: fine-tune the check for whether we are in CI The $CI environment variable may be generally set by Github or Gitlab actions, and is not a reliable indicator of whether we are running "CI". It could also, for an absolutely random example that didn't *just happen*, be Alpine Linux's attempt to enable the Meson testsuite in their packaging, which... uses Gitlab CI. In this case, we do want to perform normal skipping on not-found requirements. Instead of checking for $CI, check for $MESON_CI_JOBNAME as we already use that in all of our own CI jobs for various reasons. This makes it easier for linux distros to package Meson without accumulating hacks like "run the testsuite using `env -u CI`". 14 February 2022, 10:19:21 UTC
da058c0 packaging: fix the MSI bundling of distutils sub-packages Fixes regression in commit 05b5a1e56fe8f5400b65d0d69680cc6531fe74f8. This added usage of another module in the python module's introspection of `meson.exe runpython`, but the MSI packaging didn't adapt, causing it to fail to be detected due to ImportError. Fixes #9975 14 February 2022, 10:19:21 UTC
2288055 ninjabackend: fix rust program names with dashes This substitution matches the behaviour of rustc[1] when inferring crate name based on file name. [1]: https://github.com/rust-lang/rust/tree/4e8fb743ccbec27344b2dd42de7057f41d4ebfdd/compiler/rustc_session/src/output.rs#L88 14 February 2022, 10:19:21 UTC
5e5099e add some forgotten FeatureNew annotations Forgotten in #8512. 14 February 2022, 10:19:21 UTC
fc9e82a fix UI regression in compiler.compiles logging In commit b30dddd4e5b4ae6e5e1e812085a00a47e3edfcf1, various refactorings were done, during which a kwarg got accidentally dropped from the function that determined part of the log message. As a result, a ':' suddenly appeared in the log message where none should be. Example expected output: Checking if "-Werror=shadow with local shadowing" compiles: YES What actually happened: Checking if "-Werror=shadow with local shadowing" : compiles: YES Fixes #9974 14 February 2022, 10:19:21 UTC
5757b08 minstall: raise explicit errors, by using MesonException RuntimeError is way too generic when we have an explicit class for "Meson reports to the user, something went wrong". Moreover we now tell people that generic exceptions are "Meson bugs and should be reported", so our failure to do the technically correct thing and report the right kind of exception means we get haunted by demons of confusion. Specifically, people complain to us that Meson told them "there is a bug in Meson" when their install fails due to meson.build or build environment issues. 14 February 2022, 10:19:21 UTC
8a41bf6 pypi: include a ninja extra This will really help with pipx run, as `pipx run meson[ninja]` will now work on any system with pipx 0.17 or newer, no dependencies required. This now includes GitHub Actions, which just updated to pipx 1.0.0. Pipx run lets you use recent (always <1 week old) versions of anything on PyPI. 14 February 2022, 10:19:21 UTC
4242e43 mdist: fix dist scripts in subprojects being marked as superproject scripts This has never worked for built/found programs, only for script files. In commit 2fabd4c7dc22373e99fc63823d80083ad30704b8 scripts learned an attribute stating which subproject they came from. In commit 3990754bf55727ef5593769b48f0a03c6b7a3671 dist scripts learned to run even from a subproject, and relied on that attribute to know when, in fact, they came from a subproject. Unfortunately the original attribute was only set in one half of an if/else, and the other half returned early with only part of the work done. Fixes #9964 14 February 2022, 10:19:21 UTC
3e05ad2 add FeatureNew check for compiler.* methods with dependency on internal dep In commit 0deab2ee9efc2ffe9e43f2787611e34656e6a304 we added the ability to pass a declare_dependency() to any compiler method that accepts "dependencies", but we never marked the version it is available since. Fixes #9957 14 February 2022, 10:19:21 UTC
555ede1 dlang: fix #9250 invalid include flag for root directory 14 February 2022, 10:19:21 UTC
e262a28 dlang: add test case for root include_directory #9250 14 February 2022, 10:19:21 UTC
fa18d3e mesonlib: Fix Popen_safe_legacy() stderr assumption It may be None. This was encountered with radare's build system on Windows, where symbolextractor.py crashes without any output displayed. 14 February 2022, 10:19:21 UTC
1e8afaf ninjabackend: treat link_whole_targets like link_targets for Rust targets For static library crates that depend on other internal static library crates, all link_with targets get promoted to link_whole targets. Due to a bug, only link_with targets are considered when generating a Rust target for the ninja backend. This made it impossible to link a Rust static library with another internal Rust static library. This change fixes that issue by chaining link_whole_targets with link_targets, just like many other languages within the ninja backend. 14 February 2022, 10:19:21 UTC
995461d backends/ninja: generate symlink aliases for rust/cs/swift libraries too Basically the last thing we did during target processing was to generate shlib symlinks for e.g. libfoo.so -> libfoo.so.1. In some cases we would dispatch to another function and return early, though, which meant we never got far enough to generate the symlinks. This then led to breakage when people tried to compile against libfoo.so This surely breaks -uninstalled.pc usage, and also caused problems in https://github.com/rust-lang/rust/pull/90260 14 February 2022, 10:19:21 UTC
2543eef Add test for empty string default_value Backported from 0185f2ed61290715f990f786597f3b73a36e678f, which contains a fix that doesn't need to be backported, but we can backport the test to ensure that it's still working in the 0.61 branch. 14 February 2022, 10:19:21 UTC
a82882b unittests: Fix warning about distutils deprecation unittests/rewritetests.py:19: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives from distutils.dir_util import copy_tree 14 February 2022, 10:19:20 UTC
0a52792 ninja backend: Fix usage of same constants file for native and cross For example: ``` meson builddir \ --native-file vs2019-paths.txt \ --native-file vs2019-win-x64.txt \ --cross-file vs2019-paths.txt \ --cross-file vs2019-win-arm64.txt ``` This was causing the error: > ERROR: Multiple producers for Ninja target "/path/to/vs2019-paths.txt". Please rename your targets. Fix it by using a set() when generating the list of regen files, and add a test for it too. 14 February 2022, 10:19:20 UTC
a75a837 add location data to various Feature checks 14 February 2022, 10:19:20 UTC
9de6a50 pkgconfig module: fix incorrect Feature logging for uninstalled_variables The utility function that processes this for both 'variables' and 'uninstalled_variables' accepts a kwarg for the name of the argument, but then hardcodes 'variables' in the warning message. This is misleading. 14 February 2022, 10:19:20 UTC
40c978c do not report context on python traceback, for PermissionError It's not a MesonBug which needs to be reported, and the existing error already adequately points out the problematic file. It is impossible to get a PermissionError for files created by meson itself, once the build directory has been created, anyway. 14 February 2022, 10:07:20 UTC
7e04d7f modules/gnome: Allow gdbus_annotations to take an empty list again This was allows up to 0.61.0 (including with the initial type annotations), but was accidentally broken by fixes for other bugs in 0.61.1. Fixes: #9883 14 February 2022, 10:07:20 UTC
6c9e0fd remove incorrect deprecated feature for vcs_tag In commit 06481666f4e74ecef01e59351fc345ab0962d998 this warning got moved from build.py to the interpreter. Unfortunately it got added to the wrong function... it is supposed to be part of custom_target and even mentions this as the feature_name. Since then, build_always became a KwargInfo and has the deprecated-since attribute baked into it. But it didn't have the additional message which it really should have. Add that message at the same time we remove it from vcs_tag. 14 February 2022, 10:07:20 UTC
6bdba64 move the version info for build_always* directly into the kwarginfo Rather than pointlessly evolving it in the exactly one place which it is used. It's not clear what the purpose for this was. 14 February 2022, 10:07:20 UTC
62fe709 gnome: Fix gtk4 pkgconfig name 14 February 2022, 10:07:20 UTC
d8adaf5 mcompile: fix broken codepaths and restore orphaned code In commit 928078982c8643bffd95a8da06a1b4494fe87e2b a good error message about the directory not being a valid build directory, was replaced by a worse message. In commit abaa980436f53100041bd5535589bb1c42019bd6 the error message was replaced by a traceback when trying to load the coredata before checking if it was a build directory. Revert back to using the helper function with the good error message. Reorganize code so that we check basic things first, and do less work before detecting errors. Fixes #9584 14 February 2022, 10:07:20 UTC
9b98405 cygwin: fix python versions again Now cygwin seems to have completed a migration of the default python to 3.9, so that is where the devel package is at. Back out the changes from commit 3304a38496a52052ae9d58ed2459c7deb18ca703 and update the pip/wheel packages as appropriate. 14 February 2022, 10:07:20 UTC
41c650a Bump versions to 0.61.1 for release 16 January 2022, 19:20:17 UTC
483b426 Add a test for the --vsenv meson setup option The tests and the unittests both unconditionally call setup_vsenv() because all tests are run using the backend commands directly: ninja, msbuild, etc. There's no way to undo this vs env setup, so the only way to test that --vsenv works is by: 1. Removing all paths in PATH that provide ninja 2. Changing setup_vsenv(force=True) to forcibly set-up a new vsenv when MESON_FORCE_VSENV_FOR_UNITTEST is set 3. Mock-patching build_command, test_command, install_command to use `meson` instead of `ninja` 4. Asserting that 'Activating VS' is in the output for all commands 5. Ensure that compilation works because ninja is picked up from the vs env. I manually checked that this test actually does fail when the previous commit is reverted. 16 January 2022, 19:18:58 UTC
37c69e1 install: Setup VS env if we did that during setup Otherwise we might not find a ninja that was picked up from the Visual Studio installation. ``` $ meson setup _build ... Activating VS 15.9.40 ... Found ninja-1.8.2 at "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.EXE" $ meson compile -C _build Activating VS 15.9.40 ... $ meson install -C _build Can't find ninja, can't rebuild test. ``` Fixes https://github.com/mesonbuild/meson/issues/9774 16 January 2022, 19:18:58 UTC
6f7b7b4 gnome.genmarshal: restore the ability to pass sources as Files objects It used to support: - a single string - an array of anything And as long as CustomTarget supported it too, everything worked fine. So, a `files('foo')` worked but a `files('foo')[0]` did not, which is silly... and it's not exactly terrible to use files() here, the input is literally a list of source files. Fixes building gnome-terminal Fixes #9827 Test updated by Nirbheek Chauhan <nirbheek@centricular.com> 16 January 2022, 07:19:19 UTC
885fff6 Fix system include arguments for clang-cl 16 January 2022, 07:19:19 UTC
de26ab9 tests: Add a partial test for gtk_doc check: kwarg check: true is needed for an actual regression test, but that requires a pedantically correct gtk-doc configuration, which I attempted to do and failed. So let's just put check: false so we get *some* coverage: just that typed_kwargs accepts the argument. Related to https://github.com/mesonbuild/meson/pull/9807 14 January 2022, 20:17:49 UTC
01171ce tests: Add regression tests for gdbus_codegen args https://github.com/mesonbuild/meson/pull/9812 14 January 2022, 20:17:49 UTC
55f2344 tests: Add a regression test for gtk-doc arguments gobject_typesfile html_assets https://github.com/mesonbuild/meson/pull/9807 14 January 2022, 20:17:49 UTC
5de1a3f tests: Add a regression test for vapigen metadatadir https://github.com/mesonbuild/meson/pull/9806 14 January 2022, 20:17:49 UTC
back to top