From d4eb421dfbf11992695da541c4dae5535235bd88 Mon Sep 17 00:00:00 2001 From: Mike Gilbert Date: Thu, 25 Nov 2021 21:28:37 -0500 Subject: dev-util/meson: fix legacy soname behavior for shared_module targets Closes: https://bugs.gentoo.org/827143 Signed-off-by: Mike Gilbert --- .../files/meson-0.60.2-check-module-linking.patch | 28 ++++++ dev-util/meson/meson-0.60.2-r1.ebuild | 105 +++++++++++++++++++++ dev-util/meson/meson-0.60.2.ebuild | 101 -------------------- 3 files changed, 133 insertions(+), 101 deletions(-) create mode 100644 dev-util/meson/files/meson-0.60.2-check-module-linking.patch create mode 100644 dev-util/meson/meson-0.60.2-r1.ebuild delete mode 100644 dev-util/meson/meson-0.60.2.ebuild (limited to 'dev-util') diff --git a/dev-util/meson/files/meson-0.60.2-check-module-linking.patch b/dev-util/meson/files/meson-0.60.2-check-module-linking.patch new file mode 100644 index 000000000000..b192a454c28a --- /dev/null +++ b/dev-util/meson/files/meson-0.60.2-check-module-linking.patch @@ -0,0 +1,28 @@ +From df7ddc7ec19886ccdc433f42379c04c1df793565 Mon Sep 17 00:00:00 2001 +From: Mike Gilbert +Date: Thu, 25 Nov 2021 21:19:32 -0500 +Subject: [PATCH] Remove premature return in build.check_module_linking() + +We want to loop over all link_targets to update +backwards_compat_want_soname if necessary. + +Fixes: ec9bdc6edb17d1d9da5df2d6525025242c119f3a +--- + mesonbuild/build.py | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/mesonbuild/build.py b/mesonbuild/build.py +index ad18a7f6a..263942556 100644 +--- a/mesonbuild/build.py ++++ b/mesonbuild/build.py +@@ -1601,7 +1601,6 @@ You probably should put it in link_with instead.''') + '\n ' + 'use shared_libary() with `override_options: [\'b_lundef=false\']` instead.') + link_target.backwards_compat_want_soname = True +- return + + class Generator(HoldableObject): + def __init__(self, exe: T.Union['Executable', programs.ExternalProgram], +-- +2.34.0 + diff --git a/dev-util/meson/meson-0.60.2-r1.ebuild b/dev-util/meson/meson-0.60.2-r1.ebuild new file mode 100644 index 000000000000..dae5370ccd0e --- /dev/null +++ b/dev-util/meson/meson-0.60.2-r1.ebuild @@ -0,0 +1,105 @@ +# Copyright 2016-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +PYTHON_COMPAT=( python3_{7,8,9,10} ) + +if [[ ${PV} = *9999* ]]; then + EGIT_REPO_URI="https://github.com/mesonbuild/meson" + inherit git-r3 +else + SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +fi + +inherit distutils-r1 toolchain-funcs + +DESCRIPTION="Open source build system" +HOMEPAGE="https://mesonbuild.com/" + +LICENSE="Apache-2.0" +SLOT="0" +IUSE="test" +RESTRICT="!test? ( test )" + +DEPEND=" + test? ( + dev-libs/glib:2 + dev-libs/gobject-introspection + dev-util/ninja + dev-vcs/git + sys-libs/zlib[static-libs(+)] + virtual/pkgconfig + ) +" + +PATCHES=( + "${FILESDIR}/meson-0.60.2-check-module-linking.patch" +) + +python_prepare_all() { + local disable_unittests=( + # ASAN and sandbox both want control over LD_PRELOAD + # https://bugs.gentoo.org/673016 + -e 's/test_generate_gir_with_address_sanitizer/_&/' + + # ASAN is unsupported on some targets + # https://bugs.gentoo.org/692822 + -e 's/test_pch_with_address_sanitizer/_&/' + + # https://github.com/mesonbuild/meson/issues/7203 + -e 's/test_templates/_&/' + + # Broken due to python2 wrapper + -e 's/test_python_module/_&/' + ) + + sed -i "${disable_unittests[@]}" run_unittests.py || die + + # Broken due to python2 script created by python_wrapper_setup + rm -r "test cases/frameworks/1 boost" || die + + distutils-r1_python_prepare_all +} + +src_test() { + tc-export PKG_CONFIG + if ${PKG_CONFIG} --exists Qt5Core && ! ${PKG_CONFIG} --exists Qt5Gui; then + ewarn "Found Qt5Core but not Qt5Gui; skipping tests" + else + # https://bugs.gentoo.org/687792 + unset PKG_CONFIG + distutils-r1_src_test + fi +} + +python_test() { + ( + # test_meson_installed + unset PYTHONDONTWRITEBYTECODE + + # test_cross_file_system_paths + unset XDG_DATA_HOME + + # 'test cases/unit/73 summary' expects 80 columns + export COLUMNS=80 + + # If JAVA_HOME is not set, meson looks for javac in PATH. + # If javac is in /usr/bin, meson assumes /usr/include is a valid + # JDK include path. Setting JAVA_HOME works around this broken + # autodetection. If no JDK is installed, we should end up with an empty + # value in JAVA_HOME, and the tests should get skipped. + export JAVA_HOME=$(java-config -O 2>/dev/null) + + ${EPYTHON} -u run_tests.py + ) || die "Testing failed with ${EPYTHON}" +} + +python_install_all() { + distutils-r1_python_install_all + + insinto /usr/share/vim/vimfiles + doins -r data/syntax-highlighting/vim/{ftdetect,indent,syntax} + insinto /usr/share/zsh/site-functions + doins data/shell-completions/zsh/_meson +} diff --git a/dev-util/meson/meson-0.60.2.ebuild b/dev-util/meson/meson-0.60.2.ebuild deleted file mode 100644 index b1532c0364e4..000000000000 --- a/dev-util/meson/meson-0.60.2.ebuild +++ /dev/null @@ -1,101 +0,0 @@ -# Copyright 2016-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 -PYTHON_COMPAT=( python3_{7,8,9,10} ) - -if [[ ${PV} = *9999* ]]; then - EGIT_REPO_URI="https://github.com/mesonbuild/meson" - inherit git-r3 -else - SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" -fi - -inherit distutils-r1 toolchain-funcs - -DESCRIPTION="Open source build system" -HOMEPAGE="https://mesonbuild.com/" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="test" -RESTRICT="!test? ( test )" - -DEPEND=" - test? ( - dev-libs/glib:2 - dev-libs/gobject-introspection - dev-util/ninja - dev-vcs/git - sys-libs/zlib[static-libs(+)] - virtual/pkgconfig - ) -" - -python_prepare_all() { - local disable_unittests=( - # ASAN and sandbox both want control over LD_PRELOAD - # https://bugs.gentoo.org/673016 - -e 's/test_generate_gir_with_address_sanitizer/_&/' - - # ASAN is unsupported on some targets - # https://bugs.gentoo.org/692822 - -e 's/test_pch_with_address_sanitizer/_&/' - - # https://github.com/mesonbuild/meson/issues/7203 - -e 's/test_templates/_&/' - - # Broken due to python2 wrapper - -e 's/test_python_module/_&/' - ) - - sed -i "${disable_unittests[@]}" run_unittests.py || die - - # Broken due to python2 script created by python_wrapper_setup - rm -r "test cases/frameworks/1 boost" || die - - distutils-r1_python_prepare_all -} - -src_test() { - tc-export PKG_CONFIG - if ${PKG_CONFIG} --exists Qt5Core && ! ${PKG_CONFIG} --exists Qt5Gui; then - ewarn "Found Qt5Core but not Qt5Gui; skipping tests" - else - # https://bugs.gentoo.org/687792 - unset PKG_CONFIG - distutils-r1_src_test - fi -} - -python_test() { - ( - # test_meson_installed - unset PYTHONDONTWRITEBYTECODE - - # test_cross_file_system_paths - unset XDG_DATA_HOME - - # 'test cases/unit/73 summary' expects 80 columns - export COLUMNS=80 - - # If JAVA_HOME is not set, meson looks for javac in PATH. - # If javac is in /usr/bin, meson assumes /usr/include is a valid - # JDK include path. Setting JAVA_HOME works around this broken - # autodetection. If no JDK is installed, we should end up with an empty - # value in JAVA_HOME, and the tests should get skipped. - export JAVA_HOME=$(java-config -O 2>/dev/null) - - ${EPYTHON} -u run_tests.py - ) || die "Testing failed with ${EPYTHON}" -} - -python_install_all() { - distutils-r1_python_install_all - - insinto /usr/share/vim/vimfiles - doins -r data/syntax-highlighting/vim/{ftdetect,indent,syntax} - insinto /usr/share/zsh/site-functions - doins data/shell-completions/zsh/_meson -} -- cgit v1.2.3-65-gdbad