diff --git a/extra/meson/PKGBUILD b/extra/meson/PKGBUILD index d0b553041..a51358f9a 100644 --- a/extra/meson/PKGBUILD +++ b/extra/meson/PKGBUILD @@ -7,7 +7,7 @@ pkgname=meson pkgver=0.58.0 -pkgrel=1 +pkgrel=2 pkgdesc='High productivity build system' url='https://mesonbuild.com/' arch=('any') @@ -18,19 +18,24 @@ checkdepends=('gcc-objc' 'vala' 'rust' 'gcc-fortran' 'mono' 'boost' 'qt5-base' ' 'itstool' 'gtk3' 'java-environment=8' 'gtk-doc' 'llvm' 'clang' 'sdl2' 'graphviz' 'doxygen' 'vulkan-validation-layers' 'openssh' 'mercurial' 'gtk-sharp-2' 'qt5-tools' 'libwmf' 'valgrind' 'cmake' 'netcdf-fortran' 'openmpi' 'nasm' 'gnustep-base' 'libelf' - 'python-pytest-xdist' 'python2-setuptools' 'ldc' 'rust-bindgen' 'cuda') + 'python-pytest-xdist' 'python2-setuptools' 'ldc' 'rust-bindgen' 'cuda' 'hotdoc') source=(https://github.com/mesonbuild/meson/releases/download/${pkgver/rc/.rc}/meson-${pkgver}.tar.gz{,.asc} + workaround-8744.diff skip-test.diff arch-meson) sha512sums=('6a075666a12962a613c63c35e19c692b31ee434ce61040ecd12af83d98766164076744570fe426ebf7f6a93ce83f7fdce26c8447f9d3752f6b94824d57c751c5' 'SKIP' - '4e643d1db5a09c061f1118aee4018e820c86ad164c469eeb5823a17e7ec83be0a875b1a841ae22078c84777b4951f198fb55c31aa31a8f37209fae0de06e61ea' + '5f4ab315599c5c950048472a92b4ef28cd978cfc2aed17f8361174d68ad1ef153a72ff4e6d3d0593d0363b8988daca9c454a55c33422b9f3357e0a55e1545155' + 'a40e3be7a4ea7048cbbab59d28fb355debdfcdc5e45244aad65ab57fa222f4a2cf3165f28cc7e1dba893a162de9c7563ef0e155fa6a77960c4d02ef622313ace' '278f5e4de3aa1170d9b4f9f212985d664f44d90ffec727febeeea1ed570046c6469558a5d123a41bf4c2fdf99dbe7832515b06f1ace423c63e2e95ba6d0ef235') validpgpkeys=('19E2D6D9B46D8DAA6288F877C24E631BABB1FE70') # Jussi Pakkanen prepare() { cd ${pkgname}-${pkgver} + # Workaround https://github.com/mesonbuild/meson/issues/8744 + patch -Np1 -i ../workaround-8744.diff + # Our containers do not allow sanitizers to run patch -Np1 -i ../skip-test.diff } @@ -61,4 +66,4 @@ package() { install -D ../arch-meson -t "${pkgdir}/usr/bin" } -# vim: ts=2 sw=2 et: +# vim: sw=2 et: diff --git a/extra/meson/skip-test.diff b/extra/meson/skip-test.diff index b0c56a429..f964ab2cd 100644 --- a/extra/meson/skip-test.diff +++ b/extra/meson/skip-test.diff @@ -2,10 +2,10 @@ 1 file changed, 1 insertion(+) diff --git c/run_unittests.py i/run_unittests.py -index 80833425f..43f647d35 100755 +index 828c80e70..7d4e448f0 100755 --- c/run_unittests.py +++ i/run_unittests.py -@@ -6455,6 +6455,7 @@ class LinuxlikeTests(BasePlatformTests): +@@ -6699,6 +6699,7 @@ class LinuxlikeTests(BasePlatformTests): raise unittest.SkipTest('asan not available on Cygwin') if is_openbsd(): raise unittest.SkipTest('-fsanitize=address is not supported on OpenBSD') diff --git a/extra/meson/workaround-8744.diff b/extra/meson/workaround-8744.diff new file mode 100644 index 000000000..f9508d9b4 --- /dev/null +++ b/extra/meson/workaround-8744.diff @@ -0,0 +1,33 @@ +diff --git i/mesonbuild/backend/backends.py w/mesonbuild/backend/backends.py +index ee5f4463a..4100c54c9 100644 +--- i/mesonbuild/backend/backends.py ++++ w/mesonbuild/backend/backends.py +@@ -23,6 +23,7 @@ import pickle + import re + import typing as T + import hashlib ++import copy + + from .. import build + from .. import dependencies +@@ -1429,7 +1430,19 @@ class Backend: + d.targets.append(i) + + def generate_custom_install_script(self, d: InstallData) -> None: +- d.install_scripts = self.build.install_scripts ++ result: T.List[ExecutableSerialisation] = [] ++ srcdir = self.environment.get_source_dir() ++ builddir = self.environment.get_build_dir() ++ for i in self.build.install_scripts: ++ fixed_args = [] ++ for a in i.cmd_args: ++ a = a.replace('@SOURCE_ROOT@', srcdir) ++ a = a.replace('@BUILD_ROOT@', builddir) ++ fixed_args.append(a) ++ es = copy.copy(i) ++ es.cmd_args = fixed_args ++ result.append(es) ++ d.install_scripts = result + + def generate_header_install(self, d: InstallData) -> None: + incroot = self.environment.get_includedir()