Accepting request 1098665 from devel:tools:building
OBS-URL: https://build.opensuse.org/request/show/1098665 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/meson?expand=0&rev=96
This commit is contained in:
commit
1b19186e4c
@ -1,3 +1,17 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Jul 14 10:01:09 UTC 2023 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||
|
||||
- Be leaner with the build deps:
|
||||
+ Do not buildrequire python-pip and -wheel: being part of ring0
|
||||
we have to be extra careful.
|
||||
+ Use python_build/python_install instead of
|
||||
pyproject_wheel/pyproject_install.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jun 29 07:26:32 UTC 2023 - Andreas Schneider <asn@cryptomilk.org>
|
||||
|
||||
- Set pythons for Leap and Tumbleweed
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jun 6 18:22:01 UTC 2023 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||
|
||||
|
99
meson.spec
99
meson.spec
@ -16,6 +16,12 @@
|
||||
#
|
||||
|
||||
|
||||
%if 0%{?sle_version} >= 150400 && 0%{?sle_version} < 160000
|
||||
%global pythons python311
|
||||
%else
|
||||
%global pythons python3
|
||||
%endif
|
||||
|
||||
%global flavor @BUILD_FLAVOR@%{nil}
|
||||
%if "%{flavor}" == "test"
|
||||
%define name_ext -test
|
||||
@ -44,31 +50,38 @@ Patch0: meson-test-installed-bin.patch
|
||||
Patch1: extend-test-timeout-on-qemu-builds.patch
|
||||
# PATCH-FIX-OPENSUSE meson-distutils.patch -- meson is ring0 and therefor setuptools is not available
|
||||
Patch2: meson-distutils.patch
|
||||
BuildRequires: %{python_module base >= 3.7}
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: python-rpm-macros
|
||||
BuildRequires: python3-base >= 3.7
|
||||
%if %{with setuptools}
|
||||
BuildRequires: python3-setuptools
|
||||
BuildRequires: %{python_module setuptools}
|
||||
Requires: python3-setuptools
|
||||
%endif
|
||||
%if "%{flavor}" != "test"
|
||||
Requires: ninja >= 1.8.2
|
||||
Requires: python3-base >= 3.7
|
||||
# meson-gui was last used in openSUSE Leap 42.1.
|
||||
Provides: meson-gui = %{version}
|
||||
Obsoletes: meson-gui < %{version}
|
||||
BuildArch: noarch
|
||||
%else
|
||||
ExclusiveArch: %{ix86} x86_64
|
||||
BuildRequires: %{python_module devel}
|
||||
BuildRequires: bison
|
||||
BuildRequires: clang
|
||||
BuildRequires: clang >= 15
|
||||
BuildRequires: cups-devel
|
||||
BuildRequires: distribution-release
|
||||
BuildRequires: flex
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: gcc-fortran
|
||||
BuildRequires: gcc-obj-c++
|
||||
BuildRequires: gcc-objc
|
||||
%if 0%{?sle_version} >= 150400 && 0%{?sle_version} < 160000
|
||||
BuildRequires: gcc12-c++
|
||||
BuildRequires: gcc12-fortran
|
||||
BuildRequires: gcc12-obj-c++
|
||||
BuildRequires: gcc12-objc
|
||||
%else
|
||||
BuildRequires: gcc-c++ >= 12
|
||||
BuildRequires: gcc-fortran >= 12
|
||||
BuildRequires: gcc-obj-c++ >= 12
|
||||
BuildRequires: gcc-objc >= 12
|
||||
%endif
|
||||
BuildRequires: gettext
|
||||
BuildRequires: git
|
||||
BuildRequires: gmock
|
||||
@ -77,7 +90,11 @@ BuildRequires: googletest-devel
|
||||
BuildRequires: itstool
|
||||
BuildRequires: java-headless
|
||||
BuildRequires: libboost_log-devel
|
||||
# This will be required to build to python311
|
||||
BuildRequires: libboost_python3-devel
|
||||
BuildRequires: %{python_module devel}
|
||||
BuildRequires: %{python_module gobject}
|
||||
BuildRequires: %{python_module pytest-xdist}
|
||||
BuildRequires: libboost_system-devel
|
||||
BuildRequires: libboost_test-devel
|
||||
BuildRequires: libboost_thread-devel
|
||||
@ -90,9 +107,6 @@ BuildRequires: llvm-devel
|
||||
BuildRequires: meson = %{version}
|
||||
BuildRequires: ninja
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: python3-gobject
|
||||
BuildRequires: python3-pytest-xdist
|
||||
BuildRequires: rust
|
||||
BuildRequires: wxWidgets-any-devel
|
||||
BuildRequires: zlib-devel-static
|
||||
@ -114,6 +128,7 @@ BuildRequires: libboost_python-devel
|
||||
# Leap / SLE 15.x
|
||||
BuildRequires: python2-PyYAML
|
||||
BuildRequires: python2-devel
|
||||
BuildRequires: python3-devel
|
||||
%endif
|
||||
%if %{with mono}
|
||||
BuildRequires: mono(csharp)
|
||||
@ -158,27 +173,31 @@ Vim/NeoVim.
|
||||
%patch2 -p1
|
||||
%endif
|
||||
|
||||
# We do not have appleframeworks available at this moment - can't run the test suite for it
|
||||
# boost is currently borked too
|
||||
rm -r "test cases/frameworks/1 boost" \
|
||||
"test cases/objc/2 nsstring"
|
||||
|
||||
%if 0%{?sle_version} >= 150400 && 0%{?sle_version} < 160000
|
||||
# AddressSanitizer fails here because of ulimit.
|
||||
sed -i "/def test_generate_gir_with_address_sanitizer/{
|
||||
s/$/\n raise unittest.SkipTest('ulimit')/;
|
||||
}" run_unittests.py
|
||||
}" unittests/linuxliketests.py
|
||||
|
||||
# Expects modern glibc with pthread symbols in libc.so
|
||||
rm -rf test\ cases/rust/17\ staticlib\ link\ staticlib
|
||||
%endif
|
||||
|
||||
# Remove hashbang from non-exec script
|
||||
sed -i '1{/\/usr\/bin\/env/d;}' \
|
||||
./mesonbuild/rewriter.py \
|
||||
./mesonbuild/scripts/cmake_run_ctgt.py
|
||||
|
||||
# We do not have appleframeworks available at this moment - can't run the test suite for it
|
||||
# boost is currently borked too
|
||||
rm -r "test cases/frameworks/1 boost" \
|
||||
"test cases/objc/2 nsstring"
|
||||
# remove gtest check that actually works because our gtest has .pc files
|
||||
rm -rf test\ cases/failing/85\ gtest\ dependency\ with\ version
|
||||
|
||||
%build
|
||||
%if !%{with test}
|
||||
%python3_build
|
||||
%if %{without test}
|
||||
%python_build
|
||||
%else
|
||||
# Ensure we have no mesonbuild / meson in CWD, thus guaranteeing we use meson in $PATH
|
||||
rm -r meson.py mesonbuild
|
||||
@ -186,9 +205,8 @@ rm -r meson.py mesonbuild
|
||||
|
||||
%install
|
||||
# If this is the test suite, we don't need anything else but the meson package
|
||||
%if !%{with test}
|
||||
%python3_install
|
||||
%fdupes %{buildroot}%{python3_sitelib}
|
||||
%if %{without test}
|
||||
%python_install
|
||||
|
||||
install -Dpm 0644 data/macros.meson \
|
||||
%{buildroot}%{_rpmconfigdir}/macros.d/macros.meson
|
||||
@ -204,21 +222,24 @@ install -Dpm 0644 data/syntax-highlighting/vim/syntax/meson.vim \
|
||||
%if !%{with setuptools}
|
||||
mkdir -p %{buildroot}%{_bindir}
|
||||
echo """#!%{_bindir}/python3
|
||||
import sys
|
||||
from mesonbuild.mesonmain import main
|
||||
import sys
|
||||
|
||||
sys.exit(main())
|
||||
""" > %{buildroot}%{_bindir}/%{name}
|
||||
chmod +x %{buildroot}%{_bindir}/%{name}
|
||||
%{python_expand %{$python_fix_shebang}
|
||||
|
||||
# ensure egg-info is a directory
|
||||
rm %{buildroot}%{python3_sitelib}/*.egg-info
|
||||
cp -r meson.egg-info %{buildroot}%{python3_sitelib}/meson-%{version}-py%{python3_version}.egg-info
|
||||
rm %{buildroot}%{$python_sitelib}/*.egg-info
|
||||
cp -r meson.egg-info %{buildroot}%{$python_sitelib}/meson-%{version}-py%{$python_version}.egg-info
|
||||
}
|
||||
|
||||
# Fix missing data files with distutils
|
||||
while read line; do
|
||||
if [[ "$line" = %{_name}/* ]]; then
|
||||
[[ "$line" = *.py ]] && continue
|
||||
cp "$line" "%{buildroot}%{python3_sitelib}/$line"
|
||||
cp "$line" "%{buildroot}%{python_sitelib}/$line"
|
||||
fi
|
||||
done < meson.egg-info/SOURCES.txt
|
||||
%endif
|
||||
@ -226,17 +247,37 @@ done < meson.egg-info/SOURCES.txt
|
||||
|
||||
%if %{with test}
|
||||
%check
|
||||
|
||||
%if 0%{?sle_version} >= 150400 && 0%{?sle_version} < 160000
|
||||
# Use gcc-12 for clang-tidy
|
||||
install -d -m 0755 bin
|
||||
ln -s /usr/bin/cpp-12 bin/cpp
|
||||
ln -s /usr/bin/g++-12 bin/c++
|
||||
ln -s /usr/bin/g++-12 bin/g++
|
||||
ln -s /usr/bin/gcc-12 bin/cc
|
||||
ln -s /usr/bin/gcc-12 bin/gcc
|
||||
export PATH="$(pwd)/bin:${PATH}"
|
||||
c++ --version
|
||||
|
||||
# Fix shebang in test cases getting executed by ninja
|
||||
%python_expand find test\ cases -type f -name "*.py" -exec sed -i "1s@#!.*python.*@#!$(realpath %{_bindir}/$python)@" {} +
|
||||
%endif
|
||||
|
||||
export LANG=C.UTF-8
|
||||
export MESON_EXE=%{_bindir}/meson
|
||||
python3 run_tests.py --failfast
|
||||
export PYTHONDONTWRITEBYTECODE=1
|
||||
|
||||
# See prep section for removed tests
|
||||
%python_flavored_alternatives \
|
||||
%python_expand $python run_tests.py --failfast
|
||||
%endif
|
||||
|
||||
%files
|
||||
%license COPYING
|
||||
%if !%{with test}
|
||||
%{_bindir}/meson
|
||||
%{python3_sitelib}/%{_name}/
|
||||
%{python3_sitelib}/meson-*
|
||||
%{python_sitelib}/%{_name}/
|
||||
%{python_sitelib}/meson-*
|
||||
%dir %{_datadir}/polkit-1/
|
||||
%dir %{_datadir}/polkit-1/actions/
|
||||
%{_datadir}/polkit-1/actions/com.mesonbuild.install.policy
|
||||
|
Loading…
Reference in New Issue
Block a user