SHA256
7
0
forked from pool/meson

Accepting request 1306173 from home:adkorte:testing

- Add 14976.patch: check for header only Boost libraries.

OBS-URL: https://build.opensuse.org/request/show/1306173
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/meson?expand=0&rev=339
This commit is contained in:
2025-09-22 07:24:31 +00:00
committed by Git OBS Bridge
commit 2cc8c19004
15 changed files with 3158 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.osc

61
14001.patch Normal file
View File

@@ -0,0 +1,61 @@
From 8679ea9525672d74030303be062d9545c92b5840 Mon Sep 17 00:00:00 2001
From: solomoncyj <solomoncyj@gmail.com>
Date: Sun, 15 Dec 2024 21:00:42 +0800
Subject: [PATCH 1/2] feat: set up dependencies generation for fedora
---
data/macros.meson | 5 +++++
data/mesongenbuildreq.py | 16 ++++++++++++++++
2 files changed, 21 insertions(+)
create mode 100644 data/mesongenbuildreq.py
Index: meson-1.9.0/data/macros.meson
===================================================================
--- meson-1.9.0.orig/data/macros.meson
+++ meson-1.9.0/data/macros.meson
@@ -47,6 +47,11 @@
%{?qemu_user_space_build: -t 10} \
%{nil}}
+%meson_buildrequires \
+ %{shrink: python3 %{_rpmconfigdir}/mesongenbuildreq %{__meson} \
+ %{nil}}
+
+
# Declarative buildsystem, requires RPM 4.20+ to work
# https://rpm-software-management.github.io/rpm/manual/buildsystem.html
%buildsystem_meson_conf() %meson %*
Index: meson-1.9.0/data/mesongenbuildreq.py
===================================================================
--- /dev/null
+++ meson-1.9.0/data/mesongenbuildreq.py
@@ -0,0 +1,29 @@
+import subprocess
+import json
+import sys
+import os
+
+# Read ignored dependencies from ENV
+ignore_deps = set(os.environ.get("BUILDREQ_IGNORE_DEP", "").split())
+
+# Run introspection command
+deps_json = json.loads(
+ subprocess.run([sys.argv[1], "introspect", "--dependencies", "meson.build"],
+ capture_output=True, text=True).stdout
+)
+
+# Build deps dictionary while skipping ignored libraries
+deps = {entry['name']: entry['version'] for entry in deps_json if entry['name'] not in ignore_deps}
+
+# Output formatted build requirements
+for lib, versions in deps.items():
+ version_str = ' ' + ' '.join(versions) if versions else ''
+ line = []
+ for prefix in ["cmake", "pkgconfig", "qmake"]:
+ buildreq = f"{prefix}({lib}){version_str}"
+ # Strip trailing '=' if version was empty
+ if buildreq.split('=')[-1] == '' and '=' in buildreq:
+ buildreq = buildreq.split('=')[0]
+ line.append(buildreq)
+ print(f"({' or '.join(line)})")
+

89
14976.patch Normal file
View File

@@ -0,0 +1,89 @@
From 7fce7570c21899900a3a8a390c2332f602554924 Mon Sep 17 00:00:00 2001
From: Jussi Pakkanen <jussi.pakkanen@mailbox.org>
Date: Fri, 29 Aug 2025 14:57:06 +0300
Subject: [PATCH 1/2] Check for header only Boost libraries.
---
mesonbuild/dependencies/boost.py | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
diff --git a/mesonbuild/dependencies/boost.py b/mesonbuild/dependencies/boost.py
index 662f9851b18c..e153e8f130f3 100644
--- a/mesonbuild/dependencies/boost.py
+++ b/mesonbuild/dependencies/boost.py
@@ -452,6 +452,10 @@ def run_check(self, inc_dirs: T.List[BoostIncludeDir], lib_dirs: T.List[Path]) -
break
libs = sorted(set(libs))
+ any_libs_found = len(libs) > 0
+ if not any_libs_found:
+ return False
+
modules = ['boost_' + x for x in self.modules]
for inc in inc_dirs:
mlog.debug(f' - found boost {inc.version} include dir: {inc.path}')
@@ -462,7 +466,7 @@ def run_check(self, inc_dirs: T.List[BoostIncludeDir], lib_dirs: T.List[Path]) -
mlog.debug(f' - {j}')
# 3. Select the libraries matching the requested modules
- not_found: T.List[str] = []
+ not_found_as_libs: T.List[str] = []
selected_modules: T.List[BoostLibraryFile] = []
for mod in modules:
found = False
@@ -472,7 +476,21 @@ def run_check(self, inc_dirs: T.List[BoostIncludeDir], lib_dirs: T.List[Path]) -
found = True
break
if not found:
- not_found += [mod]
+ not_found_as_libs += [mod]
+
+ # If a lib is not found, but an include directory exists,
+ # assume it is a header only module.
+ not_found: T.List[str] = []
+ for boost_modulename in not_found_as_libs:
+ assert boost_modulename.startswith('boost_')
+ include_subdir = boost_modulename.replace('boost_', 'boost/', 1)
+ headerdir_found = False
+ for inc_dir in inc_dirs:
+ if (inc_dir.path / include_subdir).is_dir():
+ headerdir_found = True
+ break
+ if not headerdir_found:
+ not_found.append(boost_modulename)
# log the result
mlog.debug(' - found:')
From de29dd7b5187633e2dd774b2319636f5fc311b43 Mon Sep 17 00:00:00 2001
From: Jussi Pakkanen <jussi.pakkanen@mailbox.org>
Date: Fri, 29 Aug 2025 22:51:48 +0300
Subject: [PATCH 2/2] Boost python must have a library component.
---
mesonbuild/dependencies/boost.py | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/mesonbuild/dependencies/boost.py b/mesonbuild/dependencies/boost.py
index e153e8f130f3..fdb35d432f58 100644
--- a/mesonbuild/dependencies/boost.py
+++ b/mesonbuild/dependencies/boost.py
@@ -440,6 +440,8 @@ def run_check(self, inc_dirs: T.List[BoostIncludeDir], lib_dirs: T.List[Path]) -
mlog.debug(' - potential library dirs: {}'.format([x.as_posix() for x in lib_dirs]))
mlog.debug(' - potential include dirs: {}'.format([x.path.as_posix() for x in inc_dirs]))
+ must_have_library = ['boost_python']
+
# 2. Find all boost libraries
libs: T.List[BoostLibraryFile] = []
for i in lib_dirs:
@@ -483,6 +485,9 @@ def run_check(self, inc_dirs: T.List[BoostIncludeDir], lib_dirs: T.List[Path]) -
not_found: T.List[str] = []
for boost_modulename in not_found_as_libs:
assert boost_modulename.startswith('boost_')
+ if boost_modulename in must_have_library:
+ not_found.append(boost_modulename)
+ continue
include_subdir = boost_modulename.replace('boost_', 'boost/', 1)
headerdir_found = False
for inc_dir in inc_dirs:

3
_multibuild Normal file
View File

@@ -0,0 +1,3 @@
<multibuild>
<package>test</package>
</multibuild>

View File

@@ -0,0 +1,12 @@
Index: meson-1.7.0/data/macros.meson
===================================================================
--- meson-1.7.0.orig/data/macros.meson
+++ meson-1.7.0/data/macros.meson
@@ -44,6 +44,7 @@
-C %{_vpath_builddir} \
--num-processes %{_smp_build_ncpus} \
--print-errorlogs \
+ %{?qemu_user_space_build: -t 10} \
%{nil}}
# Declarative buildsystem, requires RPM 4.20+ to work

View File

@@ -0,0 +1,11 @@
--- a/mesonbuild/environment.py
+++ b/mesonbuild/environment.py
@@ -215,6 +215,8 @@ def get_llvm_tool_names(tool: str) -> T.List[str]:
# unless it becomes a stable release.
suffixes = [
'', # base (no suffix)
+ '-21.1', '211',
+ '-21', '21',
'-20.1', '20.1',
'-20', '20',
'-19.1', '19.1',

BIN
meson-1.9.0.tar.gz LFS Normal file

Binary file not shown.

16
meson-1.9.0.tar.gz.asc Normal file
View File

@@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEGeLW2bRtjapiiPh3wk5jG6ux/nAFAmirREoACgkQwk5jG6ux
/nBUmhAAoHEVPp23U0upYEevws83r4Pos2yAU6ULy9lHzsCRucc4HFgv0GSzBHgt
x45VbKG1xfCJ8gQl/GxlLZCySIY9NeUCBcbzLFn34PkyqxQanOgUafE72bpONsDy
+VNbRx6sNuQpFnqTPBnZ/e4q5Wi45pkxo3hVQi0h2QUChrc4wEL5y9rsi/zdkbjY
JqCTcQ3X9+APFVwZoSlcZpvyU5ZC5etTVUcMaUwdEh1M6Y/yLoksty54oeq4zl+l
PStapPuq+xHd3Gio4w1yoHlBuy9wHDdw+WqDeyUWcHq1ngCCsctvXzRDhM+tH7tR
JVEF1Smz5x8O955QFTZyv9fsmHkBsxRTrxhIw/VFh2XHyH+2WCoEreaRhwGGZk7r
v7iGxc0psK3All6VchoPzU3kvA1ZwC/u5om2Z6fkh79maBbXIr50hKuKEjZwJbnp
bQ/azeNGUROrnJWCH4X9xYoKsky6TVtK4WC4WANUSKHpxsL+coz8jMudtFu70pYo
PGIzLy3c+tXAg6zWgFJe2B1eNhORTTIYzSgi+U/dXku4eg3ipLy+UCuH8pl2AqgN
JnLGeD6pwwKyM/aRxA6j0NhD71Rfl3H+CX1GJ8j3yTUQaNDa6oH/5Z0hDf5+BJFR
jiZ+jI3SbU3gOg/DvfgS1GKyFIAMnllaLDZbikAv0+/0X7E11jI=
=gc0A
-----END PGP SIGNATURE-----

21
meson-issue-15992.patch Normal file
View File

@@ -0,0 +1,21 @@
Index: meson-1.9.0/data/macros.meson
===================================================================
--- meson-1.9.0.orig/data/macros.meson
+++ meson-1.9.0/data/macros.meson
@@ -29,14 +29,14 @@
%{shrink:%{__meson} compile \
-C %{_vpath_builddir} \
%{_smp_mflags} \
- %{?__meson_verbose:--verbose} \
+ %[ 0%{?__meson_verbose} ? "--verbose" : "" ] \
%{nil}}
%meson_install \
%{shrink:DESTDIR=%{buildroot} %{__meson} install \
-C %{_vpath_builddir} \
--no-rebuild \
- %{!?__meson_verbose:--quiet} \
+ %[ ! 0%{?__meson_verbose} ? "--quiet" : "" ] \
%{nil}}
%meson_test \

View File

@@ -0,0 +1,38 @@
Index: meson-1.0.1/run_tests.py
===================================================================
--- a/run_tests.py
+++ b/run_tests.py
@@ -196,18 +196,10 @@ def get_meson_script() -> str:
Also used by run_unittests.py to determine what meson to run when not
running in-process (which is the default).
'''
- # Is there a meson.py next to the mesonbuild currently in use?
- mesonbuild_dir = Path(mesonmain.__file__).resolve().parent.parent
- meson_script = mesonbuild_dir / 'meson.py'
- if meson_script.is_file():
- return str(meson_script)
- # Then if mesonbuild is in PYTHONPATH, meson must be in PATH
- mlog.warning('Could not find meson.py next to the mesonbuild module. '
- 'Trying system meson...')
meson_cmd = shutil.which('meson')
- if meson_cmd:
+ if meson_cmd and os.path.isfile(meson_cmd):
return meson_cmd
- raise RuntimeError(f'Could not find {meson_script!r} or a meson in PATH')
+ raise RuntimeError(f'Could not find meson in PATH')
def get_backend_args_for_dir(backend: Backend, builddir: str) -> T.List[str]:
'''
@@ -381,12 +373,6 @@ def main():
# Can't pass arguments to unit tests, so set the backend to use in the environment
env = os.environ.copy()
if not options.cross:
- cmd = mesonlib.python_command + ['run_meson_command_tests.py', '-v']
- if options.failfast:
- cmd += ['--failfast']
- returncode += subprocess_call(cmd, env=env)
- if options.failfast and returncode != 0:
- return returncode
if no_unittests:
print('Skipping all unit tests.')
print(flush=True)

2358
meson.changes Normal file

File diff suppressed because it is too large Load Diff

192
meson.keyring Normal file
View File

@@ -0,0 +1,192 @@
pub rsa4096/FEEB9428 2011-04-23 [expires: 2021-04-20]
Key fingerprint = 9518 1F4E ED14 FDF4 E41B 518D 3BF4 693B FEEB 9428
uid [ unknown] Jussi Pakkanen <jpakkane@gmail.com>
sub rsa4096/92A10C22 2011-04-23 [expires: 2021-04-20
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
Yk4Wl26lcjaUkwNEwPvTEtq3fjwKoisLbg==
=Smkh
-----END PGP PUBLIC KEY BLOCK-----
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
dxBkBtFt+g3obj4=
=AiRn
-----END PGP PUBLIC KEY BLOCK-----

295
meson.spec Normal file
View File

@@ -0,0 +1,295 @@
#
# spec file for package meson
#
# Copyright (c) 2025 SUSE LLC and contributors
# Copyright (c) 2024 Andreas Stieger <Andreas.Stieger@gmx.de>
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%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
%bcond_without test
%else
%define name_ext %{nil}
%bcond_with test
%endif
%define _name mesonbuild
%{!?vim_data_dir:%global vim_data_dir %{_datadir}/vim}
%bcond_without mono
Name: meson%{name_ext}
Version: 1.9.0
Release: 0
Summary: Python-based build system
License: Apache-2.0
Group: Development/Tools/Building
URL: https://mesonbuild.com/
Source: https://github.com/%{_name}/meson/releases/download/%{version}/meson-%{version}.tar.gz
Source1: https://github.com/%{_name}/meson/releases/download/%{version}/meson-%{version}.tar.gz.asc
Source2: meson.keyring
# PATCH-FIX-OPENSUSE meson-test-installed-bin.patch dimstar@opensuse.org -- We want the test suite to run against /usr/bin/meson coming from our meson package.
Patch0: meson-test-installed-bin.patch
# PATCH-FIX-OPENSUSE give more time to testsuites that run emulated
Patch1: extend-test-timeout-on-qemu-builds.patch
# PATCH-FEATURE-UPSTREAM -- based on https://github.com/mesonbuild/meson/pull/14001/commits
Patch2: 14001.patch
# PATCH-FIX-UPSTREAM https://github.com/mesonbuild/meson/pull/14580
Patch3: reproducible.patch
# PATCH-FIX-UPSTREAM -- rpm macros do not allow to override verbosity
Patch4: meson-issue-15992.patch
# PATCH-FIX-UPSTREAM get_llvm_tool_names-llvm21.patch -- Accept LLVM 21.1.
Patch5: get_llvm_tool_names-llvm21.patch
# PATCH-FIX-UPSTREAM - Check for header only Boost libraries
Patch6: https://github.com/mesonbuild/meson/pull/14976.patch
BuildRequires: %{python_module base >= 3.7}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
%if "%{flavor}" != "test"
Requires: ninja >= 1.8.2
# meson-gui was last used in openSUSE Leap 42.1.
Provides: meson-gui = %{version}
Obsoletes: meson-gui < %{version}
BuildArch: noarch
%else
ExclusiveArch: x86_64
BuildRequires: %{python_module devel}
BuildRequires: bison
%if 0%{?sle_version} >= 150400 && 0%{?sle_version} < 160000
BuildRequires: clang17
%else
BuildRequires: clang >= 15
%endif
BuildRequires: clang-tools >= 15
BuildRequires: cups-devel
BuildRequires: distribution-release
BuildRequires: flex
%if 0%{?sle_version} >= 150400 && 0%{?sle_version} < 160000
BuildRequires: gcc13-c++
BuildRequires: gcc13-fortran
BuildRequires: gcc13-obj-c++
BuildRequires: gcc13-objc
%else
BuildRequires: gcc-c++ >= 12
BuildRequires: gcc-fortran >= 12
BuildRequires: gcc-obj-c++ >= 12
BuildRequires: gcc-objc >= 12
%endif
BuildRequires: gettext-devel
BuildRequires: git
BuildRequires: gmock
BuildRequires: gnustep-make
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_python3-devel
BuildRequires: libboost_regex-devel
%if 0%{?suse_version} < 1600
BuildRequires: libboost_system-devel
%endif
BuildRequires: libboost_test-devel
BuildRequires: libboost_thread-devel
BuildRequires: libjpeg-devel
BuildRequires: libpcap-devel
BuildRequires: libqt5-qtbase-common-devel
BuildRequires: libqt5-qtbase-private-headers-devel
%if 0%{?sle_version} == 150400 || 0%{?sle_version} == 150500
BuildRequires: libstdc++6-devel-gcc11
%endif
BuildRequires: libwmf-devel
%if 0%{?sle_version} >= 150400 && 0%{?sle_version} < 160000
BuildRequires: llvm17-devel
%else
BuildRequires: llvm-devel
%endif
BuildRequires: meson = %{version}
BuildRequires: ninja
BuildRequires: pkgconfig
BuildRequires: rust
BuildRequires: wxWidgets-any-devel
BuildRequires: zlib-devel-static
BuildRequires: cmake(Qt5Core)
BuildRequires: cmake(Qt5Gui)
BuildRequires: cmake(Qt5LinguistTools)
BuildRequires: cmake(Qt5Widgets)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gobject-introspection-1.0)
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(gtk-doc)
BuildRequires: pkgconfig(ncurses)
BuildRequires: pkgconfig(sdl2)
BuildRequires: pkgconfig(vapigen)
BuildRequires: pkgconfig(vulkan)
BuildRequires: pkgconfig(zlib)
%if 0%{?suse_version} < 1550
BuildRequires: libboost_python-devel
# Leap / SLE 15.x
BuildRequires: python2-PyYAML
BuildRequires: python2-devel
BuildRequires: python3-devel
%endif
%if %{with mono}
BuildRequires: mono(csharp)
%endif
%endif
# meson makes use of macros that were only defined with rpm 4.15
%if (0%{?suse_version} < 1550 && 0%{?sle_version} < 150400)
Conflicts: rpm-build < 4.15
%endif
%description
Meson is a build system designed to optimise programmer productivity.
It aims to do this by providing support for software development
tools and practices, such as unit tests, coverage reports, Valgrind,
CCache and the like. Supported languages include C, C++, Fortran,
Java, Rust. Build definitions are written in a non-turing complete
Domain Specific Language.
%package vim
Summary: Vim syntax highlighting support for meson.build files
Group: Productivity/Text/Editors
Requires: vim
Supplements: (vim and %{name})
BuildArch: noarch
%description vim
Meson is a build system designed to optimise programmer productivity.
It aims to do this by providing support for software development
tools and practices, such as unit tests, coverage reports, Valgrind,
CCache and the like. Supported languages include C, C++, Fortran,
Java, Rust. Build definitions are written in a non-turing complete
Domain Specific Language.
This package provides meson.build syntax highlighting support for
Vim/NeoVim.
%prep
%autosetup -p1 -n meson-%{version}
%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')/;
}" 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 %{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
%endif
%install
# If this is the test suite, we don't need anything else but the meson package
%if %{without test}
%python_install
install -Dpm 0644 data/macros.meson \
%{buildroot}%{_rpmconfigdir}/macros.d/macros.meson
install -Dpm 0755 data//mesongenbuildreq.py \
%{buildroot}%{_rpmconfigdir}/mesongenbuildreq
install -Dpm 0644 data/syntax-highlighting/vim/ftdetect/meson.vim \
-t %{buildroot}%{vim_data_dir}/site/ftdetect/
install -Dpm 0644 data/syntax-highlighting/vim/indent/meson.vim \
-t %{buildroot}%{vim_data_dir}/site/indent/
install -Dpm 0644 data/syntax-highlighting/vim/syntax/meson.vim \
-t %{buildroot}%{vim_data_dir}/site/syntax/
%endif
%if %{with test}
%check
%if 0%{?sle_version} >= 150400 && 0%{?sle_version} < 160000
# Use gcc-13 for clang-tidy
install -d -m 0755 bin
ln -s /usr/bin/cpp-13 bin/cpp
ln -s /usr/bin/g++-13 bin/c++
ln -s /usr/bin/g++-13 bin/g++
ln -s /usr/bin/gcc-13 bin/cc
ln -s /usr/bin/gcc-13 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
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
%{python_sitelib}/%{_name}/
%{python_sitelib}/meson-*
%dir %{_datadir}/polkit-1/
%dir %{_datadir}/polkit-1/actions/
%{_datadir}/polkit-1/actions/com.mesonbuild.install.policy
%{_rpmconfigdir}/macros.d/macros.meson
%{_rpmconfigdir}/mesongenbuildreq
%{_mandir}/man1/meson.1%{?ext_man}
%files vim
%doc data/syntax-highlighting/vim/README
%dir %{vim_data_dir}/
%dir %{vim_data_dir}/site/
%dir %{vim_data_dir}/site/ftdetect/
%dir %{vim_data_dir}/site/indent/
%dir %{vim_data_dir}/site/syntax/
%{vim_data_dir}/site/ftdetect/meson.vim
%{vim_data_dir}/site/indent/meson.vim
%{vim_data_dir}/site/syntax/meson.vim
%endif
%changelog

35
reproducible.patch Normal file
View File

@@ -0,0 +1,35 @@
commit 4883b2bac4e2bb5cee49b2efdf0f77dfc2b5b77c
Author: Bernhard M. Wiedemann <bwiedemann@suse.de>
Date: Fri May 9 11:36:03 2025 +0200
macros: use smp_mflags
to avoid embedding the number of CPU cores
in the .src.rpm header's expanded SPEC field.
See also https://github.com/rpm-software-management/rpm/issues/2343
This patch was done while working on reproducible builds for openSUSE.
Index: meson-1.8.0/data/macros.meson
===================================================================
--- meson-1.8.0.orig/data/macros.meson
+++ meson-1.8.0/data/macros.meson
@@ -28,7 +28,7 @@
%meson_build \
%{shrink:%{__meson} compile \
-C %{_vpath_builddir} \
- -j %{_smp_build_ncpus} \
+ %{_smp_mflags} \
%{?__meson_verbose:--verbose} \
%{nil}}
@@ -42,7 +42,7 @@
%meson_test \
%{shrink:%{__meson} test \
-C %{_vpath_builddir} \
- --num-processes %{_smp_build_ncpus} \
+ %{_smp_mflags} \
--print-errorlogs \
%{?qemu_user_space_build: -t 10} \
%{nil}}