summaryrefslogtreecommitdiff
path: root/ci/ciimage
AgeCommit message (Collapse)Author
2025-12-10ci: disable unitests for arch cudaDylan Baker
Because they're the same as the main arch image.
2025-12-03ci: Use hotdoc hack for Ubuntu Rolling as wellNirbheek Chauhan
Same as OpenSUSE and Fedora.
2025-11-20ci: gentoo: enable media-libs/freetype[harfbuzz]Sam James
``` 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-10-29ci: opensuse: replace libboost_system-develSam James
See https://forums.opensuse.org/t/cant-find-libboost-system-devel-dependency/188865.
2025-10-29tests: don't skip HDF5 for Gentoo anymoreSam James
Stable HDF5 has a fixed .pc file, but we need to enable hdf5[cxx] for H5Cpp.h.
2025-10-29ci: add qtdeclarative to gentooEli Schwartz
2025-10-29ci: gentoo: don't accept unstable python-execEli Schwartz
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-29ci: gentoo: use a slimmer base imageEli Schwartz
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-29ci: gentoo: make vala tests actually runEli Schwartz
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-29ci: gentoo: use stable BoostSam James
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-29ci: gentoo: cleanup old Python commentary/entriesSam James
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-29ci: gentoo: handle llvm pkgmoveSam James
Bug: https://bugs.gentoo.org/910572
2025-10-24CI/gentoo: install reflexDylan Baker
To test the reflex (not RE/flex) path as well.
2025-10-24CI: install byacc instead of bison on ArchDylan Baker
So we can test the byacc path as well as the bison one
2025-10-24Switch C# test to use gtk-sharp-3Balló György
2025-07-19Hack around hotdoc build failuresMichał Górny
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-14scalapack: Fix exception when MKLROOT is unsetMichał Górny
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-01ci: gentoo: enable sys-devel/gcc[jit] to get binpkgSam James
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-05-29cuda: add cross-cuda testMaxandre Ogeret
2025-05-25ci: ubuntu-rolling: update for zig distfile renamingSam James
They've changed it from "linux-x86_64" to "x86-64-linux".
2025-04-06ci: arch: add vulkan-headers and vulkan-icd-loaderSam James
The latter is needed for vulkan.pc now, but let's add vulkan-headers explicitly while at it.
2025-04-06ci: arch: workaround cmake-4 vs wxwidgetsSam James
Workaround for cmake-4.0 vs wxwidgets-gtk2 by setting CMAKE_POLICY_VERSION_MINIMUM=3.5.
2025-04-06ci: opensuse: handle libSDL2-devel going awaySam James
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-03-05dependencies/dub: First try to describe local projectAndrei Horodniceanu
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-01-19ci: opensuse: drop gtk-sharp3-completeSam James
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-19ci: gentoo: drop fakerootSam James
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-07ci: add qt6 QML libraries in Linux imagesPierre Lamot
These packages are required to test `qml_module` from qt
2024-12-20ci: gentoo: include sys-devel/gcc[d], bindgen, rust[clippy,rustfmt]Sam James
Signed-off-by: Sam James <sam@gentoo.org>
2024-12-06add netinet/sctp.h to FedoraPaolo Bonzini
It is needed by objfw. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2024-10-02ci/ciimage: Lower nofile ulimit on containers that test DAndrei Horodniceanu
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-09-12ci: gentoo: install dev-qt/qttoolsSam James
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-08-19ci: ubuntu: fix coverage unittests by patching/updating lcovSam James
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-19ci: opensuse: add setuptoolsSam James
`test_meson_installed` fails without setuptools: ``` $ /usr/bin/python3 run_meson_command_tests.py -v Meson build system 1.5.99 Command Tests test_meson_exe_windows (__main__.CommandTests.test_meson_exe_windows) ... skipped 'NOT IMPLEMENTED' test_meson_installed (__main__.CommandTests.test_meson_installed) ... Traceback (most recent call last): File "/meson/setup.py", line 12, in <module> from setuptools import setup ModuleNotFoundError: No module named 'setuptools' ERROR ```
2024-08-19ci: try to install urld harder for opensuse, ubuntuSam James
Like in a5211a15207a2e6e30e213c5530a5d1bf5c2531c.
2024-08-06Add Zig to ubuntu-rolling imageandy5995
Signed-off-by: Eli Schwartz <eschwartz93@gmail.com> [Eli: do not add to CI tests as this is only a preparatory PR]
2024-07-24CI: arch: do not package up source files for stepping through code with gdbEli Schwartz
makepkg can do this, if when building packages from source you enable debug. This is apparently being shipped in the /etc/makepkg.conf in docker containers, which means building AUR packages now requires installing debugedit, and then bloating your container with /usr/src/debug. We really do not want that. Reconfigure so that we do not, in fact, need that.
2024-07-24CI: gentoo: avoid bloating up the image with cache dataEli Schwartz
2024-07-24CI: arch: fix failing to detect any glib ecosystem toolsEli Schwartz
Due to reasons, Arch has chosen to split out the glib2 package into a glib2-devel package containing a small handful of python programs. The references to these programs are contained in the main glib2 package, so meson fails a lot in CI with e.g. ``` test cases/frameworks/7 gnome/gdbus/meson.build:1:18: ERROR: Dependency 'gio-2.0' tool variable 'gdbus_codegen' contains erroneous value: '/usr/bin/gdbus-codegen' This is a distributor issue -- please report it to your gio-2.0 provider. ```
2024-05-30CI: make cuda tests even run to begin withEli Schwartz
Arch profile.d scripts were converted to use an appending function that disappears when /etc/profile exits, and overall are simply not suitable -- any more -- for sourcing individually. (I will freely admit I'm not really sure what the overall goal of refraining from sourcing /etc/profile itself is. Arguably it's kind of misuse of the profile...) This silently broke the cuda tests, which never ran because the cuda compiler was not detected as available. While we are at it, I guess we can convert gentoo to use the same trick of appending it in install.sh
2024-05-14CI: gentoo: make logs shorter by reducing progressbarEli Schwartz
2024-05-14CI: gentoo: explicitly install gdbus-codegenEli Schwartz
It is now getting uninstalled instead of updated, due to blockers on old glib. In fact, we explicitly need it...
2024-04-28Install ObjFW on macOS, Fedora and MSYS2 CIJonathan Schleifer
2024-04-25CI: ubuntu-rolling: fix configuration for sources after format changeEli Schwartz
``` # Ubuntu sources have moved to the /etc/apt/sources.list.d/ubuntu.sources # file, which uses the deb822 format. Use deb822-formatted .sources files # to manage package sources in the /etc/apt/sources.list.d/ directory. # See the sources.list(5) manual page for details. ``` Adapt to the new format.
2024-04-25CI: gentoo: fix profile 23.0 migration dropping default fortranEli Schwartz
We need this for scalapack -> virtual/mpi -> openmpi See https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a1b86025be85171281811eaced7b342fbdfdb591 We now get an immediate, very nicely readable error that the USE flag is necessary. For our use cases, there's no reason not to globally enable it.
2024-02-09CI image builder: fix profile loading for gentooEli Schwartz
We need to load various environment variables from /etc/profile. We cannot unconditionally load it, because opensuse sources env_vars and their /etc/profile has a fatal bug in it that causes it to return nonzero and abort under `set -e` (which is *amazing* as a thing to have in /etc/profile specifically -- just saying). Alas, even /etc/profile.env is not enough since Java support depends on profile.d logic. Re-conditionalize this check to only be added to env_vars.sh for the image named "gentoo".
2024-02-09ci: fedora; add file packageSam James
FAILED unittests/linuxliketests.py::LinuxlikeTests::test_install_strip - FileNotFoundError: [Errno 2] No such file or directory: 'file' Signed-off-by: Sam James <sam@gentoo.org> Signed-off-by: Eli Schwartz <eschwartz93@gmail.com>
2024-02-09ci: add GentooSam James
We may want to consider our own binpkg cache for future to speed things up, in addition to the ones provided by Gentoo's own binhost. Signed-off-by: Sam James <sam@gentoo.org> Signed-off-by: Eli Schwartz <eschwartz93@gmail.com>
2023-12-10unittests: migrate from jsonschema to fastjsonschemaEli Schwartz
The former has rust dependencies, which lead to max capping on Cygwin since there is no rust compiler there. But it turns out there are other disadvantages of jsonschema: - it involves installing 5 wheels, instead of just 1 - it is much slower To give some perspective to the latter issue, this is what it looks like when I test with jsonschema: ``` ===== 1 passed, 509 deselected in 3.07s ===== Total time: 3.341 seconds ``` And here's what it looks like when I test with fastjsonschema: ``` ===== 1 passed, 509 deselected, 1 warning in 0.28s ===== Total time: 0.550 seconds ``` I cannot think of a good reason to use the former. Although in order to work on old CI images, we'll support it as a fallback mechanism
2023-11-12CI: adapt to renamed fedora package when building updated imagesEli Schwartz
2023-11-06ci: Add arm rust toolchain in ubuntu-rolling imageXavier Claessens