199 Commits
Author SHA1 Message Date
Paolo Bonzini f31d43fd7f ci: azure: use rustc --print to adjust path, add libdir
Recently, rustup moved std-*.dll from the $sysroot\bin directory to
the libdir.  This causes issues with CI; fix them by adding the
libdir to the path and, while at it, getting the sysroot and libdir
directly from rustc.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2026-10-22 09:15:38 +02:00
Tristan Partin 34767edec9 Add libclang-rt-dev to ubuntu-rolling
Debian/Ubuntu have changed their packaging such that libclang-dev no
longer includes libclang-rt-dev. We require the libraries in
libclang-rt-dev to run some of our tests.

Signed-off-by: Tristan Partin <tristan@partin.io>
Part-of: https://github.com/mesonbuild/meson/pull/16165
Closes: https://github.com/mesonbuild/meson/pull/16165
Signed-off-by: Sam James <sam@gentoo.org>
2026-08-28 04:56:03 +01:00
Sam James 9139618ebc ci: gentoo: cleanup cached fetched binpkgs too
Portage uses a different directory now for cached remote binpkgs to
distinguish those from locally-produced ones.

Signed-off-by: Sam James <sam@gentoo.org>
2026-08-27 04:17:50 +01:00
Sam James 43aa26a2b3 ci: gentoo: drop Qt 5 packages
They've been removed. We already have the Qt 6 equivalents here.
2026-08-27 02:16:38 +01:00
Tristan Partin 0efde72d42 Fix racy wine prefix initialization in ubuntu-rolling cross CI
Wine wants to initialize the prefix on first use. In our CI, we were
initializing the prefix lazily when the tests actually ran. Since we run
tests in parallel, this became contentious and resulted in the following
failure:

	wine client error:0: recvmsg: Connection reset by peer

Sometimes the CI job would pass and other times it would fail.

Signed-off-by: Tristan Partin <tristan@partin.io>
2026-08-27 01:30:52 +01:00
Michał Górny 88285d41fd ci: Replace removed wine-stable with wine on ubuntu-rolling
Signed-off-by: Michał Górny <mgorny@quansight.com>
2026-05-21 09:48:01 -04:00
Dylan Baker 30599dfb98 Drop Python < 3.10 support 2026-04-23 14:01:23 -07:00
Dylan Baker be8fa9d468 ci: Drop ubuntu bionic
There is no support for Python 3.10, so we can drop this.
2026-04-23 14:01:23 -07:00
Dylan Baker 5b7fa5bd07 ci/arch: install zlib-static and boost-libs
Which the tests expect to be present
2026-04-17 14:47:22 -07:00
Dylan Baker b01e88d0da ci/arch: fix the cleanup phase
Use pacman to cleanup the pacman cache, and yay only to clean up the
auro cache, as the aur user doesn't have permission to clear the pacman
cache
2026-04-17 14:47:22 -07:00
Dylan Baker 5988be3a4f ci/opensuse: Install libgcrypt
This is expected to be installed, but no longer is. It was probably
being installed as a dependency before.
2026-04-17 14:47:22 -07:00
Dylan Baker a70c9da139 ci/opensuse: Remove gettext-csharp package from install list
It isn't packaged anymore
2026-04-17 14:47:22 -07:00
Dylan Baker c0163e0e78 ci/ubuntu-rolling: lcov in questing and resolute is fine
Hack no longer needed
2026-04-17 14:47:22 -07:00
Dylan Baker e1ee518ce6 ci/ubuntu-rolling: install npm for hotdog build
Also uninstall it before committing the package
2026-04-17 14:47:22 -07:00
Dylan Baker 6a3fe11dc1 ci: disable unitests for arch cuda
Because they're the same as the main arch image.
2025-12-10 13:07:09 -05:00
Nirbheek Chauhan 814ef370b5 ci: Use hotdoc hack for Ubuntu Rolling as well
Same as OpenSUSE and Fedora.
2025-12-03 11:09:46 -08:00
Sam James e38b2e83e6 ci: gentoo: enable media-libs/freetype[harfbuzz]
```
emerge: there are no ebuilds built with USE flags to satisfy ">=media-libs/freetype-2.5.0.1:2[harfbuzz,png,abi_x86_64(-)]".
!!! One of the following packages is required to complete your request:
- media-libs/freetype-2.14.1-r1::gentoo (Change USE: +harfbuzz)
(dependency required by "x11-libs/pango-1.57.0::gentoo" [binary])
(dependency required by "gnome-base/librsvg-2.60.0::gentoo" [binary])
(dependency required by "x11-themes/adwaita-icon-theme-legacy-46.2::gentoo" [binary])
(dependency required by "x11-themes/adwaita-icon-theme-48.1::gentoo" [binary])
(dependency required by "x11-libs/gtk+-3.24.51::gentoo" [binary])
(dependency required by "@selected" [set])
(dependency required by "@world" [argument])
```

This comes from the change we made now that the FT<->HB cycle is gone
where pango now unconditionally depends on freetype[harfbuzz] because it's
janky at runtime otherwise.

Bug: https://bugs.gentoo.org/712374
Bug: https://bugs.gentoo.org/962715
Signed-off-by: Sam James <sam@gentoo.org>
2025-11-20 09:14:04 -05:00
Sam James 2189ab0746 ci: opensuse: replace libboost_system-devel
See https://forums.opensuse.org/t/cant-find-libboost-system-devel-dependency/188865.
2025-10-29 05:13:20 +00:00
Sam James 79fa009e02 tests: don't skip HDF5 for Gentoo anymore
Stable HDF5 has a fixed .pc file, but we need to enable hdf5[cxx]
for H5Cpp.h.
2025-10-29 05:13:19 +00:00
Eli Schwartz 1a71f91959 ci: add qtdeclarative to gentoo 2025-10-29 05:13:19 +00:00
Eli Schwartz af27c3630c ci: gentoo: don't accept unstable python-exec
Currently what this does is permit freethreaded builds, which are
stablemasked but not masked, which means we get a binpackage cache miss
for something we frankly very much do not care about at all.

We can and do unmask implementations themselves later on in this file,
which should handle all this for us anyway.
2025-10-29 05:13:19 +00:00
Eli Schwartz f517487e73 ci: gentoo: use a slimmer base image
We've been using the desktop profile until now, mostly because it
automatically provides various frameworks we test e.g. wayland, gtk, qt
etc that all install out of the box. It also guarantees that binpackages
match.

The image is also really fat though. :( Switch to the base profile,
install a few packages that otherwise wouldn't be installed, and tweak
individual USE flags for binary coverage.
2025-10-29 05:13:19 +00:00
Eli Schwartz d4c9536591 ci: gentoo: make vala tests actually run
Gentoo does a weirdo thing where you cannot detect vala without setting
an environment variable. It's usually only set in ebuild recipes, and
vala simply does not work on Gentoo at all, period, end of story,
outside of that.

Capitulate, and parse the output of portage to find the most recent vala
installed and export that directly into meson's binary table lookup. We
aren't interested in whether *Gentoo* works with Vala, we are interested
in finding out whether newly packaged vala versions in Gentoo are
compatible with meson.

Bug: https://bugs.gentoo.org/513658
2025-10-29 05:13:19 +00:00
Sam James 76cec64832 ci: gentoo: use stable Boost
By doing some cleanups here, we can now use a binpkg for dev-build/b2
and often dev-libs/boost.

Signed-off-by: Sam James <sam@gentoo.org>
2025-10-29 05:13:18 +00:00
Sam James aac2f8223e ci: gentoo: cleanup old Python commentary/entries
This dates back to before we changed to Python 3.12 default in Gentoo. I
don't remember why we specifically wanted/needed 3.12 in the CI builder
though (maybe something to do with distutils removal to test that). The
Python changes here shouldn't make much difference to binpkg eligibility
right now because the binhost has a double builder for old targets, though
it won't cover everything.

Signed-off-by: Sam James <sam@gentoo.org>
2025-10-29 05:13:18 +00:00
Sam James cdd6a3de23 ci: gentoo: handle llvm pkgmove
Bug: https://bugs.gentoo.org/910572
2025-10-29 05:13:18 +00:00
Dylan Baker f2c5eec896 CI/gentoo: install reflex
To test the reflex (not RE/flex) path as well.
2025-10-24 22:20:49 -07:00
Dylan Baker ead297a662 CI: install byacc instead of bison on Arch
So we can test the byacc path as well as the bison one
2025-10-24 22:20:49 -07:00
Balló György f4650db5b0 Switch C# test to use gtk-sharp-3 2025-10-24 08:14:20 -07:00
Jussi Pakkanen ea82dba6c7 Update Azure image from win2019 to win2022
https://github.com/actions/runner-images/issues/12045
2025-10-17 01:59:24 +03:00
Michał Górny c3531971ab Hack around hotdoc build failures
Build hotdoc from the git repository to work around the build failures
resulting from C99 incompatibilities.  The issues are already fixed,
but the fix has not made it into a release yet.

Signed-off-by: Michał Górny <mgorny@quansight.com>
2025-07-19 11:50:59 -07:00
Michał Górny 27c5ac36c8 scalapack: Fix exception when MKLROOT is unset
Fix `scalapack.MKLPkgConfigDependency` not to crash when `MKLROOT`
is unset:

```
  File "/meson/mesonbuild/dependencies/scalapack.py", line 65, in __init__
    super().__init__(name, env, kwargs, language=language)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/meson/mesonbuild/dependencies/pkgconfig.py", line 322, in __init__
    self._set_cargs()
    ~~~~~~~~~~~~~~~^^
  File "/meson/mesonbuild/dependencies/scalapack.py", line 141, in _set_cargs
    cflags = self.pkgconfig.cflags(self.name, allow_system, define_variable=(('prefix', self.__mklroot.as_posix()),))
                                                                                        ^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'as_posix'
```

The code is crashing because the `_set_cargs()` method assumes that
`self.__mklroot` will always be set, presumably because it assumes
it will only be called only when `MKLPkgConfigDependency.__init__()`
finishes with `is_found = True`.  However, both `_set_cargs()`
and `_set_libs()` are called during `PkgConfigDependency.__init__()`,
and therefore they will be called if pkg-config lookup succeeds even
without `MKL_ROOT` set.

To avoid the issue, check for `self.__mklroot is None` in both
functions, and raise a `DependencyException` — effectively causing
the pkg-config lookup to fail in a natural way.

Fixes #11172

Signed-off-by: Michał Górny <mgorny@quansight.com>
2025-07-14 15:05:10 -04:00
Sam James 1e6986b99d ci: gentoo: enable sys-devel/gcc[jit] to get binpkg
See https://github.com/mesonbuild/meson/issues/14756#issuecomment-3020599903.

When I changed Gentoo's binhost.git in a117703e74dfabc6972911504453c2492c11dead,
I'd forgot that we match those settings in Meson's CI builder, so we've
not been able to take advantage of the binpkg since then.
2025-07-01 01:45:50 +01:00
Jussi Pakkanen 7f908d909e Remove coverage measurement. 2025-06-18 17:22:04 +03:00
Maxandre Ogeret 7d567901de cuda: add cross-cuda test 2025-05-29 14:30:34 -04:00
Sam James a1a334ce5b ci: ubuntu-rolling: update for zig distfile renaming
They've changed it from "linux-x86_64" to "x86-64-linux".
2025-05-25 07:16:47 +01:00
Sam James 9150c2a68a ci: arch: add vulkan-headers and vulkan-icd-loader
The latter is needed for vulkan.pc now, but let's add vulkan-headers
explicitly while at it.
2025-04-06 03:17:33 -04:00
Sam James 66329e6f55 ci: arch: workaround cmake-4 vs wxwidgets
Workaround for cmake-4.0 vs wxwidgets-gtk2 by setting CMAKE_POLICY_VERSION_MINIMUM=3.5.
2025-04-06 03:17:33 -04:00
Sam James 78213e653f ci: opensuse: handle libSDL2-devel going away
See https://lists.opensuse.org/archives/list/factory@lists.opensuse.org/thread/BJO756KHSCBPDMXVGFMGPHPUMW4PZK6T/#SLVEVFEFOCT3R5RCSVZPQN3GZSZYAEXL.

Use sdl2-compat-devel instead. I did try 'pkgconfig(sdl2)' but it failed
with some resolver error I didn't probe further.
2025-04-06 03:17:33 -04:00
Andrei Horodniceanu f8c3f9e909 dependencies/dub: First try to describe local project
The current approach of determining dub dependencies is by specifying
a name and, optionally, a version. Dub will then be called to generate
a json summary of the package and code in meson will parse that and
extract relevant information. This can be insufficient because dub
packages can provide multiple configurations for multiple use-cases,
examples include providing a configuration for an executable and a
configuration for a library. As a practical example, the dub package
itself provides an application configuration and multiple library
configurations, the json description of dub will, by default, be for
the application configuration which will make dub as a library
unusable in meson.

This can be solved without modifying the meson build interface by
having dub describe the entire local project and collecting
dependencies information from that. This way dub will generate
information based on the project's 'dub.json' file, which is free to
require dependencies in any way accepted by dub, by specifying
configurations, by modifying compilation flags etc. This is all
transparent to meson as dub's main purpose is to provide a path to the
library file generated by the dependency in addition to other
command-line arguments for the compiler.

This change will, however, require that projects that want to build
with meson also provided a 'dub.json' file in which dependency
information is recorded. Failure to do so will not break existing
projects that didn't use a 'dub.json', but they will be limited to
what the previous implementation offered. Projects that already have a
'dub.json' should be fine, so long as the file is valid and the
information in it matches the one in 'meson.build'. For example for a
'dependency()' call in 'meson.build' that dependency must exist in
'dub.json', otherwise the call will now fail when it worked
previously.

Using a 'dub.json' also has as a consequence that the version of the
dependencies that are found are the ones specified in
'dub.selections.json', which can be helpful for projects that already
provide a 'dub.json' in addition to 'meson.build' to de-duplicate code.

In terms of other code changes:
- multiple version requirements for a dub dependency now work, though
they can only be used when a 'dub.json' is present in which case the
version of dependencies is already pinned by 'dub.selections.json'
- the 'd/11 dub' test case has been changed to auto-generate the
'dub.json' config outside of the source directory, as the
auto-generated file triggers warning when parsed by dub, which upsets
the new code as the warnings interfere with the legitimate output.

Signed-off-by: Andrei Horodniceanu <a.horodniceanu@proton.me>
2025-03-05 02:34:07 -05:00
Sam James 74bef61a26 ci: opensuse: drop gtk-sharp3-complete
I can't find the equivalent of opensuse's "last rites" for package
removal but gtk-sharp3-complete appears gone from Factory and I can't find
any reference except for one mentioning it failing to build [0].

Drop it from the list of packages to install to fix the image build.

[0] https://lists.opensuse.org/archives/list/factory@lists.opensuse.org/message/TXFU2U5N3IMN3QA7VRDFLDC5M7NPKFVP/

Signed-off-by: Sam James <sam@gentoo.org>
2025-01-19 18:27:33 +02:00
Sam James c07d0295d4 ci: gentoo: drop fakeroot
I assume I only added this when copying Arch as a template initially,
it certainly isn't needed now, as pointed out by Eli being suspicious
of its presence...

Signed-off-by: Sam James <sam@gentoo.org>
2025-01-19 18:27:33 +02:00
Pierre Lamot 4379ca1ca7 ci: add qt6 QML libraries in Linux images
These packages are required to test `qml_module` from qt
2025-01-07 01:37:28 +02:00
Eli Schwartz 21614ac00b Revert "CI: Windows: downgrade rust to 1.77"
This reverts commit 1da230c9e0.

Should be fixed now in upstream rustc.
2024-12-20 04:03:42 -05:00
Sam James e56eea7476 ci: gentoo: include sys-devel/gcc[d], bindgen, rust[clippy,rustfmt]
Signed-off-by: Sam James <sam@gentoo.org>
2024-12-20 02:22:30 +00:00
Paolo Bonzini 57aea2c244 add netinet/sctp.h to Fedora
It is needed by objfw.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2024-12-06 11:10:37 -05:00
Andrei Horodniceanu 3c2d04d702 ci/ciimage: Lower nofile ulimit on containers that test D
The D stdlib function std.process.spawnProcessPosix suffers from a bug
that causes any program that calls it to OOM if the nofile ulimit is
large.

This doesn't affect CI currently but trying to run or build the
containers locally will most likely crash when calling dub as docker
defaults to something like 1073741816 for both the hard limit and soft
limit. Lowering the soft limit is enough to make dub behave.

Signed-off-by: Andrei Horodniceanu <a.horodniceanu@proton.me>
2024-10-02 23:15:07 +03:00
Andrei Horodniceanu 188869724a ci/run.ps1: Clean up D related code
Bump the version of the cidata archive and remove the code that tries
to setup dmd and the dub packages from run.ps1 as it doesn't work as
expected (builds for x86 instead of x86_64) and cidata should already
take care of them.

Signed-off-by: Andrei Horodniceanu <a.horodniceanu@proton.me>
2024-09-12 23:19:57 -04:00
Sam James 9c6881f0e2 ci: gentoo: install dev-qt/qttools
Qt 6 now has stable keywords (and has for a while). Recent stabilisation
of Plasma 6 now pulls in Qt 6 in the image builder so frameworks: 4 qt
fails as qttools is missing.

Signed-off-by: Sam James <sam@gentoo.org>
2024-09-12 02:46:04 +01:00
Sam James cdf646feb8 ci: ubuntu: fix coverage unittests by patching/updating lcov
Hack for https://github.com/linux-test-project/lcov/issues/245. I tried
to backport https://github.com/linux-test-project/lcov/commit/bf135caf5f626e02191c42bd2773e08a0bb9b7e5
but had no luck (worked in one container but didn'y apply in another, whatever).

This fixes the coverage unittests.

>=lcov-2.1-beta works fine. The beta has landed in a beta version of
Ubuntu too.

Bug: https://github.com/linux-test-project/lcov/issues/245
2024-08-19 06:59:51 +01:00