From 59a7330b0d4655fc4528b97663a82a45af2fb2c3 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Wed, 13 Mar 2024 00:53:08 +0000 Subject: [PATCH] extra/meson to 1.4.0-1 --- extra/meson/.SRCINFO | 22 +++--- extra/meson/0001-Skip-broken-tests.patch | 6 +- .../meson/0002-Limit-unittests-workers.patch | 40 ----------- ...Fix-unit-tests-with-high-parallelism.patch | 67 +++++++++++++++++++ extra/meson/PKGBUILD | 18 ++--- 5 files changed, 91 insertions(+), 62 deletions(-) delete mode 100644 extra/meson/0002-Limit-unittests-workers.patch create mode 100644 extra/meson/0002-tests-Fix-unit-tests-with-high-parallelism.patch diff --git a/extra/meson/.SRCINFO b/extra/meson/.SRCINFO index 2e1a66488..42497de90 100644 --- a/extra/meson/.SRCINFO +++ b/extra/meson/.SRCINFO @@ -1,6 +1,6 @@ pkgbase = meson pkgdesc = High productivity build system - pkgver = 1.3.2 + pkgver = 1.4.0 pkgrel = 1 url = https://mesonbuild.com/ arch = any @@ -56,24 +56,24 @@ pkgbase = meson depends = ninja depends = python-tqdm depends = python-typing_extensions - source = https://github.com/mesonbuild/meson/releases/download/1.3.2/meson-1.3.2.tar.gz - source = https://github.com/mesonbuild/meson/releases/download/1.3.2/meson-1.3.2.tar.gz.asc - source = meson-reference-1.3.2.3::https://github.com/mesonbuild/meson/releases/download/1.3.2/meson-reference.3 - source = meson-reference-1.3.2.json::https://github.com/mesonbuild/meson/releases/download/1.3.2/reference_manual.json + source = https://github.com/mesonbuild/meson/releases/download/1.4.0/meson-1.4.0.tar.gz + source = https://github.com/mesonbuild/meson/releases/download/1.4.0/meson-1.4.0.tar.gz.asc + source = meson-reference-1.4.0.3::https://github.com/mesonbuild/meson/releases/download/1.4.0/meson-reference.3 + source = meson-reference-1.4.0.json::https://github.com/mesonbuild/meson/releases/download/1.4.0/reference_manual.json source = arch-meson source = cross-lib32 source = native-clang source = 0001-Skip-broken-tests.patch - source = 0002-Limit-unittests-workers.patch + source = 0002-tests-Fix-unit-tests-with-high-parallelism.patch validpgpkeys = 19E2D6D9B46D8DAA6288F877C24E631BABB1FE70 - b2sums = 72b061598a0cb22517460de4df25394a9dfbddb536c5b8e75b7267ae21292fe2a6a3ec16d64aa81cde63d33022decebcc051cf2d87d677f9b40eb2f4106a40cd + b2sums = 7f742ef870c182e552c1ff3508d65f251009d610def6a08e01fddb6c6a4ed6d608ead0d52cf8ca7d66b5bd7a4732dccd7ab5d98f141a4a61e275398885f79486 b2sums = SKIP - b2sums = 692feb16f6ef585e5b7fa46370b0ad0ed0418cf05a15fe08cc5f2945cc83425dda0232e8c30c26b3d82ce95fe1703890b0a53ee7745c78e71a1a8eb8cd376e1c - b2sums = 46b62e840f066287c74ac066e03f56b54e9c7fa1e5789dd0c93e112ff4d62194dc5be6ac39c9d17d6242105e078c05e98109aed3c4f0f7c317b549cb9ff54610 + b2sums = 8ad24592c1a9100832dead97a55d4cb358892fc1cd6aee641f9610cb6a5df211831e6cfc42e047d5e835ed53de1bb9c7d711dd1a0a8cfe18a0f85e92a1a3f925 + b2sums = 6d08a48551e4aa68b05c307dc970e74164ba689b27f7412e39840b5cea7c65addb28e7c0fb46f4a6469b8d1a6dc6b50eb4ea477cb3d25a7f09c49b86015f6052 b2sums = 70f042a7603d1139f6cef33aec028da087cacabe278fd47375e1b2315befbfde1c0501ad1ecc63d04d31b232a04f08c735d61ce59d7244521f3d270e417fb5af b2sums = 9b16477aa77a706492e26fb3ad42e90674b8f0dfe657dd3bd9ba044f921be12ceabeb0050a50a15caee4d999e1ec33ed857bd3bed9e4444d73bb4a4f06381081 b2sums = 7d88929d5a3b49d91c5c9969f19d9b47f3151706526b889515acaeda0141257d5115875ac84832e9ea46f83a7700d673adcc5db84b331cd798c70ae6e90eac1e - b2sums = ebcd0d961bdc00309aa76e93e49c7136c454d1d1838c6bf5a5b168c0a94532353d32364de16c045f14950dd5313c17f33b3d7974317ba94db161638f93de6845 - b2sums = 5847e2f1bf362c9fdaf522f0d3a6c81e67c7ac8c016e0ade5632bf23c1ea591c3659fe40f2139e97805144b3a6db6fe375977735b6fc74a7c7a6f8e581632f24 + b2sums = b0e050d6cfa7e9cb5692e6aa12185632313536bd4ad59c704cfa2b655ad52e3f34d038da3e2f01d47b16f910db8d458b69f3b2b07bd8d74b92622b00bfc7d120 + b2sums = 13bfa022f97745dd072c418c5e77b08b9105e7e357b47ab8634e45dc92a7ceaca0d7483a05b66767d97d9f3ca8e0a67e8015c08b8c466d4a083c15c68e30473f pkgname = meson diff --git a/extra/meson/0001-Skip-broken-tests.patch b/extra/meson/0001-Skip-broken-tests.patch index f74abb8ec..a5cb9c1c4 100644 --- a/extra/meson/0001-Skip-broken-tests.patch +++ b/extra/meson/0001-Skip-broken-tests.patch @@ -35,10 +35,10 @@ index f612e1d52d6d..d0e0d079a069 100644 dep = dependency('ZLIB', version : '>=1.2', method : 'cmake') diff --git a/unittests/linuxliketests.py b/unittests/linuxliketests.py -index 4fcf52e09f2c..6e07c450aa0a 100644 +index 2328107caac8..f66dc9769a8f 100644 --- a/unittests/linuxliketests.py +++ b/unittests/linuxliketests.py -@@ -360,6 +360,7 @@ class LinuxlikeTests(BasePlatformTests): +@@ -312,6 +312,7 @@ class LinuxlikeTests(BasePlatformTests): raise SkipTest('asan not available on Cygwin') if is_openbsd(): raise SkipTest('-fsanitize=address is not supported on OpenBSD') @@ -46,7 +46,7 @@ index 4fcf52e09f2c..6e07c450aa0a 100644 testdir = os.path.join(self.framework_test_dir, '7 gnome') self.init(testdir, extra_args=['-Db_sanitize=address', '-Db_lundef=false']) -@@ -1030,6 +1031,7 @@ class LinuxlikeTests(BasePlatformTests): +@@ -983,6 +984,7 @@ class LinuxlikeTests(BasePlatformTests): raise SkipTest('asan not available on Cygwin') if is_openbsd(): raise SkipTest('-fsanitize=address is not supported on OpenBSD') diff --git a/extra/meson/0002-Limit-unittests-workers.patch b/extra/meson/0002-Limit-unittests-workers.patch deleted file mode 100644 index a2510b442..000000000 --- a/extra/meson/0002-Limit-unittests-workers.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: "Jan Alexander Steffens (heftig)" -Date: Mon, 12 Feb 2024 02:51:51 +0100 -Subject: [PATCH] Limit unittests workers - -On our new 48-core/96-thread build server, the -`test_install_log_content` test fails, apparently because it runs in -parallel with `test_install_subdir_symlinks`, which modifies the -`59 install subdir` source directory. ---- - run_unittests.py | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/run_unittests.py b/run_unittests.py -index 7a2502a6e886..f43497b5f5e2 100755 ---- a/run_unittests.py -+++ b/run_unittests.py -@@ -22,6 +22,7 @@ import time - import subprocess - import os - import unittest -+import multiprocessing - - import mesonbuild.mlog - import mesonbuild.depfile -@@ -130,7 +131,13 @@ def main(): - # Don't use pytest-xdist when running single unit tests since it wastes - # time spawning a lot of processes to distribute tests to in that case. - if not running_single_tests(sys.argv, cases): -- pytest_args += ['-n', 'auto'] -+ try: -+ num_workers = multiprocessing.cpu_count() -+ except Exception as e: -+ num_workers = 2 -+ if num_workers > 64: -+ num_workers = 64 -+ pytest_args += ['-n', str(num_workers)] - except ImportError: - print('pytest-xdist not found, tests will not be distributed across CPU cores') - # Let there be colors! diff --git a/extra/meson/0002-tests-Fix-unit-tests-with-high-parallelism.patch b/extra/meson/0002-tests-Fix-unit-tests-with-high-parallelism.patch new file mode 100644 index 000000000..7faa49108 --- /dev/null +++ b/extra/meson/0002-tests-Fix-unit-tests-with-high-parallelism.patch @@ -0,0 +1,67 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" +Date: Tue, 5 Mar 2024 19:33:33 +0100 +Subject: [PATCH] tests: Fix unit tests with high parallelism + +On Arch's shiny new 48-core/96-thread build server, the +`test_install_log_content` test fails because of an unexpected +`invalid-symlink.txt` file. Apparently the test runs in parallel with +`test_install_subdir_symlinks`, which modifies the `59 install subdir` +source directory. + +To fix this, make `install_subdir_invalid_symlinks` copy the entire test +into a tmpdir before modifying it. +--- + unittests/linuxliketests.py | 39 +++++++++++++++++++------------------ + 1 file changed, 20 insertions(+), 19 deletions(-) + +diff --git a/unittests/linuxliketests.py b/unittests/linuxliketests.py +index f66dc9769a8f..c8dc0195bc72 100644 +--- a/unittests/linuxliketests.py ++++ b/unittests/linuxliketests.py +@@ -1413,25 +1413,26 @@ class LinuxlikeTests(BasePlatformTests): + Test that installation of broken symlinks works fine. + https://github.com/mesonbuild/meson/issues/3914 + ''' +- testdir = os.path.join(self.common_test_dir, testdir) +- subdir = os.path.join(testdir, subdir_path) +- with chdir(subdir): +- # Can't distribute broken symlinks in the source tree because it breaks +- # the creation of zipapps. Create it dynamically and run the test by +- # hand. +- src = '../../nonexistent.txt' +- os.symlink(src, 'invalid-symlink.txt') +- try: +- self.init(testdir) +- self.build() +- self.install() +- install_path = subdir_path.split(os.path.sep)[-1] +- link = os.path.join(self.installdir, 'usr', 'share', install_path, 'invalid-symlink.txt') +- self.assertTrue(os.path.islink(link), msg=link) +- self.assertEqual(src, os.readlink(link)) +- self.assertFalse(os.path.isfile(link), msg=link) +- finally: +- os.remove(os.path.join(subdir, 'invalid-symlink.txt')) ++ # We can't distribute broken symlinks in the source tree because it ++ # breaks the creation of zipapps. Create the symlink dynamically and run ++ # the test by hand. Do this in a tmpdir in order to not tread on ++ # parallel tests' toes. ++ with tempfile.TemporaryDirectory() as tmpdir: ++ orig_testdir = os.path.join(self.common_test_dir, testdir) ++ tmp_testdir = os.path.join(tmpdir, testdir.split(os.path.sep)[-1]) ++ shutil.copytree(orig_testdir, tmp_testdir) ++ src = '../nonexistent.txt' ++ dst = 'invalid-symlink.txt' ++ subdir = os.path.join(tmp_testdir, subdir_path) ++ os.symlink(src, os.path.join(subdir, dst)) ++ self.init(tmp_testdir) ++ self.build() ++ self.install() ++ install_path = subdir_path.split(os.path.sep)[-1] ++ link = os.path.join(self.installdir, 'usr', 'share', install_path, dst) ++ self.assertTrue(os.path.islink(link), msg=link) ++ self.assertEqual(src, os.readlink(link)) ++ self.assertFalse(os.path.isfile(link), msg=link) + + def test_install_subdir_symlinks(self): + self.install_subdir_invalid_symlinks('59 install subdir', os.path.join('sub', 'sub1')) diff --git a/extra/meson/PKGBUILD b/extra/meson/PKGBUILD index abbd1ac12..28221c8f6 100644 --- a/extra/meson/PKGBUILD +++ b/extra/meson/PKGBUILD @@ -6,7 +6,7 @@ # - disable lto in arch-meson pkgname=meson -pkgver=1.3.2 +pkgver=1.4.0 pkgrel=1 pkgdesc="High productivity build system" url="https://mesonbuild.com/" @@ -76,17 +76,17 @@ source=( cross-lib32 native-clang 0001-Skip-broken-tests.patch - 0002-Limit-unittests-workers.patch + 0002-tests-Fix-unit-tests-with-high-parallelism.patch ) -b2sums=('72b061598a0cb22517460de4df25394a9dfbddb536c5b8e75b7267ae21292fe2a6a3ec16d64aa81cde63d33022decebcc051cf2d87d677f9b40eb2f4106a40cd' +b2sums=('7f742ef870c182e552c1ff3508d65f251009d610def6a08e01fddb6c6a4ed6d608ead0d52cf8ca7d66b5bd7a4732dccd7ab5d98f141a4a61e275398885f79486' 'SKIP' - '692feb16f6ef585e5b7fa46370b0ad0ed0418cf05a15fe08cc5f2945cc83425dda0232e8c30c26b3d82ce95fe1703890b0a53ee7745c78e71a1a8eb8cd376e1c' - '46b62e840f066287c74ac066e03f56b54e9c7fa1e5789dd0c93e112ff4d62194dc5be6ac39c9d17d6242105e078c05e98109aed3c4f0f7c317b549cb9ff54610' + '8ad24592c1a9100832dead97a55d4cb358892fc1cd6aee641f9610cb6a5df211831e6cfc42e047d5e835ed53de1bb9c7d711dd1a0a8cfe18a0f85e92a1a3f925' + '6d08a48551e4aa68b05c307dc970e74164ba689b27f7412e39840b5cea7c65addb28e7c0fb46f4a6469b8d1a6dc6b50eb4ea477cb3d25a7f09c49b86015f6052' '211cee61f117fd1d582d7a613a8634f044e9e307791c4154c6da72bccd5f06856801b14bcb26157ee682b5935c48ffd2098a5fabab2232726d7758cf091c07f7' '9b16477aa77a706492e26fb3ad42e90674b8f0dfe657dd3bd9ba044f921be12ceabeb0050a50a15caee4d999e1ec33ed857bd3bed9e4444d73bb4a4f06381081' '7d88929d5a3b49d91c5c9969f19d9b47f3151706526b889515acaeda0141257d5115875ac84832e9ea46f83a7700d673adcc5db84b331cd798c70ae6e90eac1e' - 'ebcd0d961bdc00309aa76e93e49c7136c454d1d1838c6bf5a5b168c0a94532353d32364de16c045f14950dd5313c17f33b3d7974317ba94db161638f93de6845' - '5847e2f1bf362c9fdaf522f0d3a6c81e67c7ac8c016e0ade5632bf23c1ea591c3659fe40f2139e97805144b3a6db6fe375977735b6fc74a7c7a6f8e581632f24') + 'b0e050d6cfa7e9cb5692e6aa12185632313536bd4ad59c704cfa2b655ad52e3f34d038da3e2f01d47b16f910db8d458b69f3b2b07bd8d74b92622b00bfc7d120' + '13bfa022f97745dd072c418c5e77b08b9105e7e357b47ab8634e45dc92a7ceaca0d7483a05b66767d97d9f3ca8e0a67e8015c08b8c466d4a083c15c68e30473f') validpgpkeys=( 19E2D6D9B46D8DAA6288F877C24E631BABB1FE70 # Jussi Pakkanen ) @@ -96,7 +96,9 @@ prepare() { # Pass tests patch -Np1 -i ../0001-Skip-broken-tests.patch - patch -Np1 -i ../0002-Limit-unittests-workers.patch + + # https://github.com/mesonbuild/meson/pull/12937 + patch -Np1 -i ../0002-tests-Fix-unit-tests-with-high-parallelism.patch } build() {