summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Schwartz <eschwartz@gentoo.org>2024-09-20 17:22:28 -0400
committerEli Schwartz <eschwartz@gentoo.org>2024-09-20 17:23:06 -0400
commit274cd7d5c629406c817a03eadbf1d8da50791172 (patch)
treefe826b24398fd59a3aabdea69956f6ce3561213d /dev-build
parentdev-libs/argtable: update HOMEPAGE for RedirectedUrl (diff)
downloadgentoo-274cd7d5c629406c817a03eadbf1d8da50791172.tar.gz
gentoo-274cd7d5c629406c817a03eadbf1d8da50791172.tar.bz2
gentoo-274cd7d5c629406c817a03eadbf1d8da50791172.zip
dev-build/meson: add 1.5.2
Closes: https://bugs.gentoo.org/938133 Closes: https://bugs.gentoo.org/938259 Closes: https://bugs.gentoo.org/936670 Closes: https://bugs.gentoo.org/936911 Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>
Diffstat (limited to 'dev-build')
-rw-r--r--dev-build/meson/Manifest3
-rw-r--r--dev-build/meson/meson-1.5.2.ebuild190
2 files changed, 193 insertions, 0 deletions
diff --git a/dev-build/meson/Manifest b/dev-build/meson/Manifest
index 3b6ec88f671d..96931c93b697 100644
--- a/dev-build/meson/Manifest
+++ b/dev-build/meson/Manifest
@@ -8,5 +8,8 @@ DIST meson-1.4.2.tar.gz 2227701 BLAKE2B 11d98d8c84545390bd35b393ae02db7876a38dad
DIST meson-1.4.2.tar.gz.asc 833 BLAKE2B 64ce1fc0fecdd6aa76bb89d88ff7497548d82afc00805c083a0bca7ce4cee41dc50be50368e333649ae7e863c03ea780fe24a48c525281fbbcab679b540f4254 SHA512 51d3245f9443cb398e2e8f225f00a853848bde1bfba02bae6334d47115e36ad96c8ec03244f6169c89d73162b86a73158a7f8d08d5bd6b3d28e8369ce7b55093
DIST meson-1.5.1.tar.gz 2257106 BLAKE2B 3368b209444d0873217bafee2339b395dca9fa43df68adce19029a41ad5c0eca59426ef681d174ef8b6b89d4a6c5b4f189c1ae219deed78334028d44bdb23a95 SHA512 3239d6f3d64dcedddd456dc451278a37aa6c4460708b0efdff1b04b6e8844c20f5f882060de311c59a678bebd51ee09e1906c9384d4b0c85b28015fd1713ab0a
DIST meson-1.5.1.tar.gz.asc 833 BLAKE2B c099720b102b8fff581f2043000454f5cb3593352a8b69c681cda73dae7172fb7d892dc0500e29fffe4ba7828cdcba418acea230563dc26a7a89139ab526b231 SHA512 f8210dd309a104b4169bc2eae9ff370f3ced6fe2c5dfc8f3477c9fbbed983dd6636ea05822d9345d7570e88bfe7789c6cc075e5a91d578a8376666d16ad550a3
+DIST meson-1.5.2.tar.gz 2265788 BLAKE2B bda0742cf053cb235833b347e66b8706983815fda5d62815aa6455980837e061fb0db2f7472966e6e09a199b0850477a3b448b6ad3b7db717da6b43906cbe2ac SHA512 9f601bdadaf2dae312ff02caa9dcd3fe13659a101e601417bdb908d8b91cdd4a12302433b00c188c1562287a06ada656044d79821d0beb0e0e41c63ab5d48112
+DIST meson-1.5.2.tar.gz.asc 833 BLAKE2B 0ea6af017430568b2834081a60d0153cc80cb55d835b1f570e27ae6220a163aff9f4607654fe87841df112c78763b4d45dabd45072e398cdf901762095ce52e7 SHA512 7b7c0ee2b872c83d98954079fc27665b3a9ec5464aa8decc5919ff4e1c4134d7006494bd64b901dc2ade408131ea512eefef9416f3c57d1460c9308cb6683fc8
DIST meson-reference-1.4.2.3 339324 BLAKE2B 1a4fbd8c27a8cfba773777eabd2ebaa0f76ec0c61dcfe1c7b4483737b348ff9528d68f26e68d7d40b2e1875611eed5b9a31c1cf55fed8eabb42fc1e31d9ef14b SHA512 8b8ec43e812599203ec44c08805eb6818485805c45b9c69802261eaa35efc97846a96f6472c6b1ef5f6c703e7153fd957df7b805f173ca3400a2030dfbe002ca
DIST meson-reference-1.5.1.3 341110 BLAKE2B 5267c2eea1b1281f87e63eb08aa928257dd98088b4d5c27c2785d2d8066c2c28536f7f56bf804ffe37d2f51552c91f31ff7e2729f3b2485d594a9e44a0df9ab1 SHA512 2d36e87e9bc2de0b958f4b20544b0bd9f2b0ffb646768e68fefcd5dfb8f09c24db40f27208b5f2d1f6ba02e7465f68a538ea72be118670c76e0959e090a42cf3
+DIST meson-reference-1.5.2.3 341110 BLAKE2B 0d588b796f7f2da2dcb0e7822acde6a9a461930da4bfead3cf9148fa0fac18cd0ccbc6e891f555c973836f1c16b4eae299908a838a0b6843293de8815d30fc23 SHA512 64715ce2113e362e7d67179fe13566bc8f84ce7f4e6d795b836f42455a871173fee06e3e969e2996022d7e6c9b4b5379587a4c0c3d97b4bca527fb8902d3547f
diff --git a/dev-build/meson/meson-1.5.2.ebuild b/dev-build/meson/meson-1.5.2.ebuild
new file mode 100644
index 000000000000..70a2f51176dd
--- /dev/null
+++ b/dev-build/meson/meson-1.5.2.ebuild
@@ -0,0 +1,190 @@
+# Copyright 2016-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} pypy3 )
+DISTUTILS_USE_PEP517=setuptools
+
+inherit bash-completion-r1 edo distutils-r1 flag-o-matic toolchain-funcs
+
+if [[ ${PV} = *9999* ]]; then
+ EGIT_REPO_URI="https://github.com/mesonbuild/meson"
+ inherit ninja-utils git-r3
+
+ BDEPEND="
+ ${NINJA_DEPEND}
+ $(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
+ "
+
+else
+ inherit verify-sig
+
+ MY_PV=${PV/_/}
+ MY_P=${P/_/}
+ S=${WORKDIR}/${MY_P}
+
+ SRC_URI="
+ https://github.com/mesonbuild/meson/releases/download/${MY_PV}/${MY_P}.tar.gz
+ verify-sig? ( https://github.com/mesonbuild/meson/releases/download/${MY_PV}/${MY_P}.tar.gz.asc )
+ https://github.com/mesonbuild/meson/releases/download/${MY_PV}/meson-reference.3 -> meson-reference-${MY_PV}.3
+ "
+ BDEPEND="verify-sig? ( sec-keys/openpgp-keys-jpakkane )"
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/jpakkane.gpg
+
+ if [[ ${PV} != *_rc* ]] ; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+ fi
+fi
+
+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
+ app-alternatives/ninja
+ dev-vcs/git
+ sys-libs/zlib[static-libs(+)]
+ virtual/pkgconfig
+ )
+"
+RDEPEND="
+ !<dev-build/muon-0.2.0-r2[man(-)]
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.2.1-python-path.patch
+)
+
+src_unpack() {
+ if [[ ${PV} = *9999* ]]; then
+ git-r3_src_unpack
+ else
+ default
+ use verify-sig && verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.gz{,.asc}
+ fi
+}
+
+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/_&/'
+
+ # clippy-driver fails, but only when run via portage.
+ #
+ # error[E0463]: can't find crate for `std`
+ # error: requires `sized` lang_item
+ -e 's/test_rust_clippy/_&/'
+ )
+
+ sed -i "${disable_unittests[@]}" unittests/*.py || die
+
+ # Broken due to python2 script created by python_wrapper_setup
+ rm -r "test cases/frameworks/1 boost" || die
+ # nvcc breaks on essentially any LDFLAGS
+ # https://bugs.gentoo.org/936757
+ # https://github.com/mesonbuild/meson/issues/11234
+ rm -r "test cases/cuda"/* || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_check_deps() {
+ if [[ ${PV} = *9999* ]]; then
+ python_has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
+ fi
+}
+
+python_configure_all() {
+ if [[ ${PV} = *9999* ]]; then
+ # We use the unsafe_yaml loader because strictyaml is not packaged. In
+ # theory they produce the same results, but pyyaml is faster and
+ # without safety checks.
+ edo ./meson.py setup \
+ --prefix "${EPREFIX}/usr" \
+ -Dhtml=false \
+ -Dunsafe_yaml=true \
+ docs/ docs/builddir
+ fi
+}
+
+python_compile_all() {
+ if [[ ${PV} = *9999* ]]; then
+ eninja -C docs/builddir
+ fi
+}
+
+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
+ distutils-r1_src_test
+ fi
+}
+
+python_test() {
+ (
+ # meson has its own tests for LTO support. We don't need to verify that
+ # all tests work when they happen to use it. And in particular, this
+ # breaks rust.
+ filter-lto
+
+ # remove unwanted python_wrapper_setup contents
+ # We actually do want to non-error if python2 is installed and tested.
+ remove="${T}/${EPYTHON}/bin:"
+ PATH=${PATH/${remove}/}
+
+ # test_meson_installed
+ unset PYTHONDONTWRITEBYTECODE
+
+ # https://bugs.gentoo.org/687792
+ unset PKG_CONFIG
+
+ # 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
+
+ dobashcomp data/shell-completions/bash/meson
+
+ if [[ ${PV} = *9999* ]]; then
+ DESTDIR="${ED}" eninja -C docs/builddir install
+ else
+ newman "${DISTDIR}"/meson-reference-${MY_PV}.3 meson-reference.3
+ fi
+}