forked from pool/meson
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>
|
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}
|
%global flavor @BUILD_FLAVOR@%{nil}
|
||||||
%if "%{flavor}" == "test"
|
%if "%{flavor}" == "test"
|
||||||
%define name_ext -test
|
%define name_ext -test
|
||||||
@ -44,31 +50,38 @@ Patch0: meson-test-installed-bin.patch
|
|||||||
Patch1: extend-test-timeout-on-qemu-builds.patch
|
Patch1: extend-test-timeout-on-qemu-builds.patch
|
||||||
# PATCH-FIX-OPENSUSE meson-distutils.patch -- meson is ring0 and therefor setuptools is not available
|
# PATCH-FIX-OPENSUSE meson-distutils.patch -- meson is ring0 and therefor setuptools is not available
|
||||||
Patch2: meson-distutils.patch
|
Patch2: meson-distutils.patch
|
||||||
|
BuildRequires: %{python_module base >= 3.7}
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
BuildRequires: python-rpm-macros
|
BuildRequires: python-rpm-macros
|
||||||
BuildRequires: python3-base >= 3.7
|
|
||||||
%if %{with setuptools}
|
%if %{with setuptools}
|
||||||
BuildRequires: python3-setuptools
|
BuildRequires: %{python_module setuptools}
|
||||||
Requires: python3-setuptools
|
Requires: python3-setuptools
|
||||||
%endif
|
%endif
|
||||||
%if "%{flavor}" != "test"
|
%if "%{flavor}" != "test"
|
||||||
Requires: ninja >= 1.8.2
|
Requires: ninja >= 1.8.2
|
||||||
Requires: python3-base >= 3.7
|
|
||||||
# meson-gui was last used in openSUSE Leap 42.1.
|
# meson-gui was last used in openSUSE Leap 42.1.
|
||||||
Provides: meson-gui = %{version}
|
Provides: meson-gui = %{version}
|
||||||
Obsoletes: meson-gui < %{version}
|
Obsoletes: meson-gui < %{version}
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
%else
|
%else
|
||||||
ExclusiveArch: %{ix86} x86_64
|
ExclusiveArch: %{ix86} x86_64
|
||||||
|
BuildRequires: %{python_module devel}
|
||||||
BuildRequires: bison
|
BuildRequires: bison
|
||||||
BuildRequires: clang
|
BuildRequires: clang >= 15
|
||||||
BuildRequires: cups-devel
|
BuildRequires: cups-devel
|
||||||
BuildRequires: distribution-release
|
BuildRequires: distribution-release
|
||||||
BuildRequires: flex
|
BuildRequires: flex
|
||||||
BuildRequires: gcc-c++
|
%if 0%{?sle_version} >= 150400 && 0%{?sle_version} < 160000
|
||||||
BuildRequires: gcc-fortran
|
BuildRequires: gcc12-c++
|
||||||
BuildRequires: gcc-obj-c++
|
BuildRequires: gcc12-fortran
|
||||||
BuildRequires: gcc-objc
|
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: gettext
|
||||||
BuildRequires: git
|
BuildRequires: git
|
||||||
BuildRequires: gmock
|
BuildRequires: gmock
|
||||||
@ -77,7 +90,11 @@ BuildRequires: googletest-devel
|
|||||||
BuildRequires: itstool
|
BuildRequires: itstool
|
||||||
BuildRequires: java-headless
|
BuildRequires: java-headless
|
||||||
BuildRequires: libboost_log-devel
|
BuildRequires: libboost_log-devel
|
||||||
|
# This will be required to build to python311
|
||||||
BuildRequires: libboost_python3-devel
|
BuildRequires: libboost_python3-devel
|
||||||
|
BuildRequires: %{python_module devel}
|
||||||
|
BuildRequires: %{python_module gobject}
|
||||||
|
BuildRequires: %{python_module pytest-xdist}
|
||||||
BuildRequires: libboost_system-devel
|
BuildRequires: libboost_system-devel
|
||||||
BuildRequires: libboost_test-devel
|
BuildRequires: libboost_test-devel
|
||||||
BuildRequires: libboost_thread-devel
|
BuildRequires: libboost_thread-devel
|
||||||
@ -90,9 +107,6 @@ BuildRequires: llvm-devel
|
|||||||
BuildRequires: meson = %{version}
|
BuildRequires: meson = %{version}
|
||||||
BuildRequires: ninja
|
BuildRequires: ninja
|
||||||
BuildRequires: pkgconfig
|
BuildRequires: pkgconfig
|
||||||
BuildRequires: python3-devel
|
|
||||||
BuildRequires: python3-gobject
|
|
||||||
BuildRequires: python3-pytest-xdist
|
|
||||||
BuildRequires: rust
|
BuildRequires: rust
|
||||||
BuildRequires: wxWidgets-any-devel
|
BuildRequires: wxWidgets-any-devel
|
||||||
BuildRequires: zlib-devel-static
|
BuildRequires: zlib-devel-static
|
||||||
@ -114,6 +128,7 @@ BuildRequires: libboost_python-devel
|
|||||||
# Leap / SLE 15.x
|
# Leap / SLE 15.x
|
||||||
BuildRequires: python2-PyYAML
|
BuildRequires: python2-PyYAML
|
||||||
BuildRequires: python2-devel
|
BuildRequires: python2-devel
|
||||||
|
BuildRequires: python3-devel
|
||||||
%endif
|
%endif
|
||||||
%if %{with mono}
|
%if %{with mono}
|
||||||
BuildRequires: mono(csharp)
|
BuildRequires: mono(csharp)
|
||||||
@ -158,27 +173,31 @@ Vim/NeoVim.
|
|||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
# We do not have appleframeworks available at this moment - can't run the test suite for it
|
%if 0%{?sle_version} >= 150400 && 0%{?sle_version} < 160000
|
||||||
# boost is currently borked too
|
|
||||||
rm -r "test cases/frameworks/1 boost" \
|
|
||||||
"test cases/objc/2 nsstring"
|
|
||||||
|
|
||||||
# AddressSanitizer fails here because of ulimit.
|
# AddressSanitizer fails here because of ulimit.
|
||||||
sed -i "/def test_generate_gir_with_address_sanitizer/{
|
sed -i "/def test_generate_gir_with_address_sanitizer/{
|
||||||
s/$/\n raise unittest.SkipTest('ulimit')/;
|
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
|
# Remove hashbang from non-exec script
|
||||||
sed -i '1{/\/usr\/bin\/env/d;}' \
|
sed -i '1{/\/usr\/bin\/env/d;}' \
|
||||||
./mesonbuild/rewriter.py \
|
./mesonbuild/rewriter.py \
|
||||||
./mesonbuild/scripts/cmake_run_ctgt.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
|
# remove gtest check that actually works because our gtest has .pc files
|
||||||
rm -rf test\ cases/failing/85\ gtest\ dependency\ with\ version
|
rm -rf test\ cases/failing/85\ gtest\ dependency\ with\ version
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%if !%{with test}
|
%if %{without test}
|
||||||
%python3_build
|
%python_build
|
||||||
%else
|
%else
|
||||||
# Ensure we have no mesonbuild / meson in CWD, thus guaranteeing we use meson in $PATH
|
# Ensure we have no mesonbuild / meson in CWD, thus guaranteeing we use meson in $PATH
|
||||||
rm -r meson.py mesonbuild
|
rm -r meson.py mesonbuild
|
||||||
@ -186,9 +205,8 @@ rm -r meson.py mesonbuild
|
|||||||
|
|
||||||
%install
|
%install
|
||||||
# If this is the test suite, we don't need anything else but the meson package
|
# If this is the test suite, we don't need anything else but the meson package
|
||||||
%if !%{with test}
|
%if %{without test}
|
||||||
%python3_install
|
%python_install
|
||||||
%fdupes %{buildroot}%{python3_sitelib}
|
|
||||||
|
|
||||||
install -Dpm 0644 data/macros.meson \
|
install -Dpm 0644 data/macros.meson \
|
||||||
%{buildroot}%{_rpmconfigdir}/macros.d/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}
|
%if !%{with setuptools}
|
||||||
mkdir -p %{buildroot}%{_bindir}
|
mkdir -p %{buildroot}%{_bindir}
|
||||||
echo """#!%{_bindir}/python3
|
echo """#!%{_bindir}/python3
|
||||||
import sys
|
|
||||||
from mesonbuild.mesonmain import main
|
from mesonbuild.mesonmain import main
|
||||||
|
import sys
|
||||||
|
|
||||||
sys.exit(main())
|
sys.exit(main())
|
||||||
""" > %{buildroot}%{_bindir}/%{name}
|
""" > %{buildroot}%{_bindir}/%{name}
|
||||||
chmod +x %{buildroot}%{_bindir}/%{name}
|
chmod +x %{buildroot}%{_bindir}/%{name}
|
||||||
|
%{python_expand %{$python_fix_shebang}
|
||||||
|
|
||||||
# ensure egg-info is a directory
|
# ensure egg-info is a directory
|
||||||
rm %{buildroot}%{python3_sitelib}/*.egg-info
|
rm %{buildroot}%{$python_sitelib}/*.egg-info
|
||||||
cp -r meson.egg-info %{buildroot}%{python3_sitelib}/meson-%{version}-py%{python3_version}.egg-info
|
cp -r meson.egg-info %{buildroot}%{$python_sitelib}/meson-%{version}-py%{$python_version}.egg-info
|
||||||
|
}
|
||||||
|
|
||||||
# Fix missing data files with distutils
|
# Fix missing data files with distutils
|
||||||
while read line; do
|
while read line; do
|
||||||
if [[ "$line" = %{_name}/* ]]; then
|
if [[ "$line" = %{_name}/* ]]; then
|
||||||
[[ "$line" = *.py ]] && continue
|
[[ "$line" = *.py ]] && continue
|
||||||
cp "$line" "%{buildroot}%{python3_sitelib}/$line"
|
cp "$line" "%{buildroot}%{python_sitelib}/$line"
|
||||||
fi
|
fi
|
||||||
done < meson.egg-info/SOURCES.txt
|
done < meson.egg-info/SOURCES.txt
|
||||||
%endif
|
%endif
|
||||||
@ -226,17 +247,37 @@ done < meson.egg-info/SOURCES.txt
|
|||||||
|
|
||||||
%if %{with test}
|
%if %{with test}
|
||||||
%check
|
%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 LANG=C.UTF-8
|
||||||
export MESON_EXE=%{_bindir}/meson
|
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
|
%endif
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%license COPYING
|
%license COPYING
|
||||||
%if !%{with test}
|
%if !%{with test}
|
||||||
%{_bindir}/meson
|
%{_bindir}/meson
|
||||||
%{python3_sitelib}/%{_name}/
|
%{python_sitelib}/%{_name}/
|
||||||
%{python3_sitelib}/meson-*
|
%{python_sitelib}/meson-*
|
||||||
%dir %{_datadir}/polkit-1/
|
%dir %{_datadir}/polkit-1/
|
||||||
%dir %{_datadir}/polkit-1/actions/
|
%dir %{_datadir}/polkit-1/actions/
|
||||||
%{_datadir}/polkit-1/actions/com.mesonbuild.install.policy
|
%{_datadir}/polkit-1/actions/com.mesonbuild.install.policy
|
||||||
|
Loading…
Reference in New Issue
Block a user