mirror of
https://github.com/void-linux/void-packages.git
synced 2025-04-23 01:27:02 +02:00
meson: update to 0.56.2.
Fix checkdepends and tests in general on musl. Add bash completions.
This commit is contained in:
parent
8f8f1aaee1
commit
70f703a82e
2 changed files with 99 additions and 7 deletions
77
srcpkgs/meson/patches/fix-unittest.patch
Normal file
77
srcpkgs/meson/patches/fix-unittest.patch
Normal file
|
@ -0,0 +1,77 @@
|
|||
commit 777cbe9c0faa018bafccf3e7adb8dad162276e35
|
||||
Author: Érico Rolim <erico.erc@gmail.com>
|
||||
Date: Mon Feb 1 00:26:49 2021 -0300
|
||||
|
||||
tests/common: fix " 37 has function" test on musl systems.
|
||||
|
||||
This commit fixes the test that asserts on whether the lchmod() function
|
||||
should have been detected as available by Meson. It does so by assuming
|
||||
that on Linux systems not using glibc, the function will be available.
|
||||
|
||||
- fix comment about lchmod on Linux: musl has implemented the function
|
||||
correctly since 2013, so the assumption in the test wasn't correct.
|
||||
Furthermore, musl doesn't use glibc's stub mechanism.
|
||||
- fix include to receive __GLIBC__ definition: including almost any
|
||||
header in glibc will end up defining __GLIBC__, since most headers
|
||||
include <features.h>. The <gnu/libc-version.h> header was probably
|
||||
chosen because of its name, but its actual purpose is defining functions
|
||||
for checking glibc version at runtime (instead of what the binary was
|
||||
built with), so it isn't necessary to use it. Since it is a completely
|
||||
non standard header, including it makes the test suite fail on musl due
|
||||
to not finding the header.
|
||||
|
||||
diff --git test cases/common/37 has function/meson.build test cases/common/37 has function/meson.build
|
||||
index 26f13d6fa..a59480c2d 100644
|
||||
--- test cases/common/39 has function/meson.build
|
||||
+++ test cases/common/39 has function/meson.build
|
||||
@@ -44,11 +44,13 @@ foreach cc : compilers
|
||||
error('Found non-existent function "hfkerhisadf".')
|
||||
endif
|
||||
|
||||
- # With glibc on Linux lchmod is a stub that will always return an error,
|
||||
- # we want to detect that and declare that the function is not available.
|
||||
- # We can't check for the C library used here of course, but if it's not
|
||||
- # implemented in glibc it's probably not implemented in any other 'slimmer'
|
||||
- # C library variants either, so the check should be safe either way hopefully.
|
||||
+ # With glibc (before 2.32, see below) on Linux, lchmod is a stub that will
|
||||
+ # always return an error, we want to detect that and declare that the
|
||||
+ # function is not available.
|
||||
+ # We can't check for the C library used here of course, but the main
|
||||
+ # alternative Linux C library (musl) doesn't use glibc's stub mechanism;
|
||||
+ # also, it has implemented lchmod since 2013, so it should be safe to check
|
||||
+ # that lchmod is available on Linux when not using glibc.
|
||||
if host_system == 'linux' or host_system == 'darwin'
|
||||
assert (cc.has_function('poll', prefix : '#include <poll.h>',
|
||||
args : unit_test_args),
|
||||
@@ -57,15 +59,24 @@ foreach cc : compilers
|
||||
has_lchmod = cc.has_function('lchmod', prefix : lchmod_prefix, args : unit_test_args)
|
||||
|
||||
if host_system == 'linux'
|
||||
- glibc_major = cc.get_define('__GLIBC__', prefix: '#include <gnu/libc-version.h>', args: unit_test_args)
|
||||
- glibc_minor = cc.get_define('__GLIBC_MINOR__', prefix: '#include <gnu/libc-version.h>', args: unit_test_args)
|
||||
- glibc_vers = '@0@.@1@'.format(glibc_major, glibc_minor)
|
||||
- message('GLIBC vetsion:', glibc_vers)
|
||||
+ # __GLIBC__ macro can be retrieved by including almost any C library header
|
||||
+ glibc_major = cc.get_define('__GLIBC__', prefix: '#include <unistd.h>', args: unit_test_args)
|
||||
+ # __GLIBC__ will only be set for glibc
|
||||
+ if glibc_major != ''
|
||||
+ glibc_print = 'hi "@0@" hi'.format(glibc_major)
|
||||
+ message(glibc_print)
|
||||
+ glibc_minor = cc.get_define('__GLIBC_MINOR__', prefix: '#include <unistd.h>', args: unit_test_args)
|
||||
+ glibc_vers = '@0@.@1@'.format(glibc_major, glibc_minor)
|
||||
+ message('GLIBC version:', glibc_vers)
|
||||
|
||||
- # lchmod was implemented in glibc 2.32 (https://sourceware.org/pipermail/libc-announce/2020/000029.html)
|
||||
- if glibc_vers.version_compare('<2.32')
|
||||
- assert (not has_lchmod, '"lchmod" check should have failed')
|
||||
+ # lchmod was implemented in glibc 2.32 (https://sourceware.org/pipermail/libc-announce/2020/000029.html)
|
||||
+ if glibc_vers.version_compare('<2.32')
|
||||
+ assert (not has_lchmod, '"lchmod" check should have failed')
|
||||
+ else
|
||||
+ assert (has_lchmod, '"lchmod" check should have succeeded')
|
||||
+ endif
|
||||
else
|
||||
+ # Other C libraries for Linux should have lchmod
|
||||
assert (has_lchmod, '"lchmod" check should have succeeded')
|
||||
endif
|
||||
else
|
|
@ -1,20 +1,33 @@
|
|||
# Template file for 'meson'
|
||||
pkgname=meson
|
||||
version=0.55.3
|
||||
revision=3
|
||||
version=0.56.2
|
||||
revision=1
|
||||
build_style=python3-module
|
||||
hostmakedepends="python3-devel python3-setuptools"
|
||||
depends="ninja python3-setuptools"
|
||||
checkdepends="glib-devel gobject-introspection libsanitizer-devel ninja
|
||||
checkdepends="glib-devel gobject-introspection ninja
|
||||
gcc-objc++ clang qt5-devel cmake llvm git pkg-config vala python-devel
|
||||
cross-arm-linux-gnueabihf"
|
||||
short_desc="Super fast build system"
|
||||
maintainer="John <me@johnnynator.dev>"
|
||||
license="Apache-2.0"
|
||||
homepage="https://mesonbuild.com"
|
||||
changelog="https://github.com/mesonbuild/$pkgname/blob/master/docs/markdown/Release-notes-for-${version%.*}.0.md"
|
||||
distfiles="https://github.com/mesonbuild/$pkgname/releases/download/$version/$pkgname-$version.tar.gz"
|
||||
checksum=6bed2a25a128bbabe97cf40f63165ebe800e4fcb46db8ab7ef5c2b5789f092a5
|
||||
changelog="https://github.com/mesonbuild/meson/blob/master/docs/markdown/Release-notes-for-${version%.*}.0.md"
|
||||
distfiles="https://github.com/mesonbuild/meson/releases/download/$version/$pkgname-$version.tar.gz"
|
||||
checksum=3cb8bdb91383f7f8da642f916e4c44066a29262caa499341e2880f010edb87f4
|
||||
|
||||
# XXX: sanitizers aren't available on musl
|
||||
if [ "$XBPS_TARGET_LIBC" = glibc ]; then
|
||||
checkdepends+=" libsanitizer-devel"
|
||||
fi
|
||||
|
||||
post_patch() {
|
||||
if [ "$XBPS_TARGET_LIBC" = musl ]; then
|
||||
vsed -e 's/test_pch_with_address_sanitizer/_&/' \
|
||||
-e 's/test_generate_gir_with_address_sanitizer/_&/' \
|
||||
-i run_unittests.py
|
||||
fi
|
||||
}
|
||||
|
||||
do_check() {
|
||||
# meson depends on trillion of things to perform actual tests
|
||||
|
@ -35,5 +48,7 @@ post_install() {
|
|||
done
|
||||
|
||||
vinstall data/syntax-highlighting/emacs/meson.el 644 usr/share/emacs/site-lisp
|
||||
vinstall data/shell-completions/zsh/_meson 644 usr/share/zsh/site-functions
|
||||
|
||||
vcompletion data/shell-completions/bash/meson bash
|
||||
vcompletion data/shell-completions/zsh/_meson zsh
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue