FreeBSD Bugzilla – Attachment 208160 Details for
Bug 241105
devel/meson: Update to 0.52.0
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
v1.1
bug241105.diff (text/plain), 8.65 KB, created by
Jan Beich
on 2019-10-07 22:24:10 UTC
(
hide
)
Description:
v1.1
Filename:
MIME Type:
Creator:
Jan Beich
Created:
2019-10-07 22:24:10 UTC
Size:
8.65 KB
patch
obsolete
>From 5d31b87bc58e6ae72ef94fdfe4775664e8402af2 Mon Sep 17 00:00:00 2001 >From: jbeich <jbeich@35697150-7ecd-e111-bb59-0022644237b5> >Date: Mon, 2 Sep 2019 19:55:34 +0000 >Subject: [PATCH] devel/meson: update to 0.52.0 > >- Update patches [1] >- Connect tests to the framework > >Changes: https://mesonbuild.com/Release-notes-for-0-52-0.html >Changes: https://github.com/mesonbuild/meson/compare/0.51.2...0.52.0 >PR: 241105 >Submitted by: Ting-Wei Lan [1] >Exp-run by: antoine >--- > devel/meson/Makefile | 12 ++-- > devel/meson/distinfo | 8 +-- > .../patch-mesonbuild_dependencies_base.py | 61 +++++++++++-------- > devel/meson/files/patch-run__unittests.py | 49 +++++++++++++++ > 4 files changed, 94 insertions(+), 36 deletions(-) > create mode 100644 devel/meson/files/patch-run__unittests.py > >diff --git a/devel/meson/Makefile b/devel/meson/Makefile >index 724021640e70..83543c6b83e3 100644 >--- a/devel/meson/Makefile >+++ b/devel/meson/Makefile >@@ -2,13 +2,10 @@ > # $FreeBSD$ > > PORTNAME= meson >-PORTVERSION= 0.51.2 >+PORTVERSION= 0.52.0 > CATEGORIES= devel python > MASTER_SITES= https://github.com/mesonbuild/${PORTNAME}/releases/download/${PORTVERSION}/ > >-PATCH_SITES= https://github.com/mesonbuild/${PORTNAME}/commit/ >-PATCHFILES+= efea48788ab2.patch:-p1 >- > MAINTAINER= gnome@FreeBSD.org > COMMENT= High performance build system > >@@ -16,9 +13,14 @@ LICENSE= APACHE20 > LICENSE_FILE= ${WRKSRC}/COPYING > > RUN_DEPENDS= ninja:devel/ninja >+TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest-xdist>0:devel/py-pytest-xdist@${PY_FLAVOR} > >-USES= python:3.5+ >+USES= python:3.5+ shebangfix > USE_PYTHON= autoplist distutils noflavors >+SHEBANG_FILES= mesonbuild/cmake/data/run_ctgt.py > NO_ARCH= yes > >+do-test: >+ @(cd ${TEST_WRKSRC} && ${SETENV} ${TEST_ENV} ${PYTHON_CMD} ${WRKSRC}/run_tests.py) >+ > .include <bsd.port.mk> >diff --git a/devel/meson/distinfo b/devel/meson/distinfo >index 64d7f4fd9bf8..919215ebd9c9 100644 >--- a/devel/meson/distinfo >+++ b/devel/meson/distinfo >@@ -1,5 +1,3 @@ >-TIMESTAMP = 1566836953 >-SHA256 (meson-0.51.2.tar.gz) = 23688f0fc90be623d98e80e1defeea92bbb7103bf9336a5f5b9865d36e892d76 >-SIZE (meson-0.51.2.tar.gz) = 1453251 >-SHA256 (efea48788ab2.patch) = eee556fb0cd6cbba5756bbfb508412081743cd813dd10d1b9cbc419769281d39 >-SIZE (efea48788ab2.patch) = 953 >+TIMESTAMP = 1570381541 >+SHA256 (meson-0.52.0.tar.gz) = d60f75f0dedcc4fd249dbc7519d6f3ce6df490033d276ef1cf27453ef4938d32 >+SIZE (meson-0.52.0.tar.gz) = 1507110 >diff --git a/devel/meson/files/patch-mesonbuild_dependencies_base.py b/devel/meson/files/patch-mesonbuild_dependencies_base.py >index a19109739db6..e79ecd4b7220 100644 >--- a/devel/meson/files/patch-mesonbuild_dependencies_base.py >+++ b/devel/meson/files/patch-mesonbuild_dependencies_base.py >@@ -52,31 +52,9 @@ users, without depending on the unreliable part of pkg-config output. > > Fixes https://github.com/mesonbuild/meson/issues/4271. > >---- mesonbuild/dependencies/base.py.orig >+--- mesonbuild/dependencies/base.py.orig 2019-10-06 17:01:35 UTC > +++ mesonbuild/dependencies/base.py >-@@ -706,6 +706,21 @@ def _set_cargs(self): >- (self.name, out)) >- self.compile_args = self._convert_mingw_paths(shlex.split(out)) >- >-+ def _sort_libpaths(self, libpaths, refpaths): >-+ if len(refpaths) == 0: >-+ return list(libpaths) >-+ >-+ def key_func(libpath): >-+ common_lengths = [] >-+ for refpath in refpaths: >-+ common_path = os.path.commonpath([libpath, refpath]) >-+ common_lengths.append(len(common_path)) >-+ max_length = max(common_lengths) >-+ max_index = common_lengths.index(max_length) >-+ reversed_max_length = len(refpaths[max_index]) - max_length >-+ return (max_index, reversed_max_length) >-+ return sorted(libpaths, key=key_func) >-+ >- def _search_libs(self, out, out_raw): >- ''' >- @out: PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 pkg-config --libs >-@@ -741,6 +756,22 @@ def _search_libs(self, out, out_raw): >+@@ -784,6 +784,22 @@ class PkgConfigDependency(ExternalDependency): > # Resolve the path as a compiler in the build directory would > path = os.path.join(self.env.get_build_dir(), path) > prefix_libpaths.add(path) >@@ -95,7 +73,38 @@ Fixes https://github.com/mesonbuild/meson/issues/4271. > + else: > + pkg_config_path = [] > + pkg_config_path = self._convert_mingw_paths(pkg_config_path) >-+ prefix_libpaths = self._sort_libpaths(prefix_libpaths, pkg_config_path) >++ prefix_libpaths = sort_libpaths(prefix_libpaths, pkg_config_path) > system_libpaths = OrderedSet() >- full_args = self._convert_mingw_paths(shlex.split(out)) >+ full_args = self._convert_mingw_paths(self._split_args(out)) > for arg in full_args: >+@@ -2284,6 +2300,30 @@ def _build_external_dependency_list(name, env: Environ >+ False, None, env, None, kwargs)) >+ >+ return candidates >++ >++ >++def sort_libpaths(libpaths: List[str], refpaths: List[str]) -> List[str]: >++ """Sort <libpaths> according to <refpaths> >++ >++ It is intended to be used to sort -L flags returned by pkg-config. >++ Pkg-config returns flags in random order which cannot be relied on. >++ """ >++ if len(refpaths) == 0: >++ return list(libpaths) >++ >++ def key_func(libpath): >++ common_lengths = [] >++ for refpath in refpaths: >++ try: >++ common_path = os.path.commonpath([libpath, refpath]) >++ except ValueError: >++ common_path = '' >++ common_lengths.append(len(common_path)) >++ max_length = max(common_lengths) >++ max_index = common_lengths.index(max_length) >++ reversed_max_length = len(refpaths[max_index]) - max_length >++ return (max_index, reversed_max_length) >++ return sorted(libpaths, key=key_func) >+ >+ >+ def strip_system_libdirs(environment, for_machine: MachineChoice, link_args): >diff --git a/devel/meson/files/patch-run__unittests.py b/devel/meson/files/patch-run__unittests.py >new file mode 100644 >index 000000000000..bb3edf8edd48 >--- /dev/null >+++ b/devel/meson/files/patch-run__unittests.py >@@ -0,0 +1,49 @@ >+https://github.com/mesonbuild/meson/pull/4324 >+https://github.com/mesonbuild/meson/pull/4325 >+ >+--- run_unittests.py.orig 2019-10-06 17:01:35 UTC >++++ run_unittests.py >+@@ -57,6 +57,7 @@ from mesonbuild.mesonlib import ( >+ from mesonbuild.environment import detect_ninja >+ from mesonbuild.mesonlib import MesonException, EnvironmentException >+ from mesonbuild.dependencies import PkgConfigDependency, ExternalProgram >++import mesonbuild.dependencies.base >+ from mesonbuild.build import Target >+ import mesonbuild.modules.pkgconfig >+ >+@@ -1164,7 +1165,26 @@ class InternalTests(unittest.TestCase): >+ deps = d.get_all_dependencies(target) >+ self.assertEqual(deps, expdeps) >+ >++ def test_sort_libpaths(self): >++ sort_libpaths = mesonbuild.dependencies.base.sort_libpaths >++ self.assertEqual(sort_libpaths( >++ ['/home/mesonuser/.local/lib', '/usr/local/lib', '/usr/lib'], >++ ['/home/mesonuser/.local/lib/pkgconfig', '/usr/local/lib/pkgconfig']), >++ ['/home/mesonuser/.local/lib', '/usr/local/lib', '/usr/lib']) >++ self.assertEqual(sort_libpaths( >++ ['/usr/local/lib', '/home/mesonuser/.local/lib', '/usr/lib'], >++ ['/home/mesonuser/.local/lib/pkgconfig', '/usr/local/lib/pkgconfig']), >++ ['/home/mesonuser/.local/lib', '/usr/local/lib', '/usr/lib']) >++ self.assertEqual(sort_libpaths( >++ ['/usr/lib', '/usr/local/lib', '/home/mesonuser/.local/lib'], >++ ['/home/mesonuser/.local/lib/pkgconfig', '/usr/local/lib/pkgconfig']), >++ ['/home/mesonuser/.local/lib', '/usr/local/lib', '/usr/lib']) >++ self.assertEqual(sort_libpaths( >++ ['/usr/lib', '/usr/local/lib', '/home/mesonuser/.local/lib'], >++ ['/home/mesonuser/.local/lib/pkgconfig', '/usr/local/libdata/pkgconfig']), >++ ['/home/mesonuser/.local/lib', '/usr/local/lib', '/usr/lib']) >+ >++ >+ @unittest.skipIf(is_tarball(), 'Skipping because this is a tarball release') >+ class DataTests(unittest.TestCase): >+ >+@@ -5680,7 +5700,7 @@ c = ['{0}'] >+ # Test that installed libraries works >+ self.new_builddir() >+ self.prefix = oldprefix >+- meson_args = ['-Dc_link_args=-L{}'.format(libdir), >++ meson_args = ['-Dc_link_args=-L{} -Wl,-rpath,{}'.format(libdir, libdir), >+ '--fatal-meson-warnings'] >+ testdir = os.path.join(self.unit_test_dir, '69 static link') >+ env = {'PKG_CONFIG_LIBDIR': os.path.join(libdir, 'pkgconfig')}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 241105
:
208145
|
208160
|
208161