Backport fixes to RPM macros

Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
This commit is contained in:
Igor Gnatenko 2016-12-13 15:35:35 +01:00
parent 41d08ee3d2
commit b44b0b0af2
3 changed files with 116 additions and 1 deletions

View File

@ -0,0 +1,66 @@
From dcd3c217121fbb09be8acecd2d866219e85ad9bd Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <i.gnatenko.brain@gmail.com>
Date: Tue, 13 Dec 2016 11:59:52 +0100
Subject: [PATCH 1/2] rpm: use meson's syntax to specify sourcedir and builddir
When user uses %meson -Denable_cool_feature=true current macro fails
because RPM adds flag after popd:
...
pushd x86_64-redhat-linux-gnu
/usr/bin/meson ... $OLDPWD/.
popd -Denable_cool_feature
Since meson can accept $srcdir and $builddir arugments we don't have
this problem with pushd/popd. It also simplifies things a bit.
Reported-by: Richard Hughes <richard@hughsie.com>
References: https://bugzilla.redhat.com/show_bug.cgi?id=1401062
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
---
data/macros.meson | 30 ++++++++++++++----------------
1 file changed, 14 insertions(+), 16 deletions(-)
diff --git a/data/macros.meson b/data/macros.meson
index 97d8a23f..5250c348 100644
--- a/data/macros.meson
+++ b/data/macros.meson
@@ -8,22 +8,20 @@
export FFLAGS="%{optflags} -I%{_fmoddir}" \
export FCFLAGS="%{optflags} -I%{_fmoddir}" \
export LDFLAGS="%{?__global_ldflags}" \
- mkdir -p %{__builddir} \
- pushd %{__builddir} \
- %{__meson} \\\
- --buildtype=plain \\\
- --prefix=%{_prefix} \\\
- --libdir=%{_libdir} \\\
- --libexecdir=%{_libexecdir} \\\
- --bindir=%{_bindir} \\\
- --includedir=%{_includedir} \\\
- --datadir=%{_datadir} \\\
- --mandir=%{_mandir} \\\
- --localedir=%{_datadir}/locale \\\
- --sysconfdir=%{_sysconfdir} \\\
- --localstatedir=%{_localstatedir} \\\
- $OLDPWD/%{__sourcedir} \
- popd
+ %{__meson} \\\
+ --buildtype=plain \\\
+ --prefix=%{_prefix} \\\
+ --libdir=%{_libdir} \\\
+ --libexecdir=%{_libexecdir} \\\
+ --bindir=%{_bindir} \\\
+ --includedir=%{_includedir} \\\
+ --datadir=%{_datadir} \\\
+ --mandir=%{_mandir} \\\
+ --localedir=%{_datadir}/locale \\\
+ --sysconfdir=%{_sysconfdir} \\\
+ --localstatedir=%{_localstatedir} \\\
+ %{__sourcedir} %{__builddir} \\\
+ %{nil}
%meson_build \
%ninja_build -C %{__builddir}
--
2.11.0

View File

@ -0,0 +1,44 @@
From 0121faf16873b500274b36955a08c6994e7f6f76 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <i.gnatenko.brain@gmail.com>
Date: Tue, 13 Dec 2016 12:29:28 +0100
Subject: [PATCH 2/2] rpm: use __global_*flags
Using RPM's %{optflags} is definitely nice, but not enough. LDFLAGS
are not there, and idea of optflags is too generic. It is supposed
to work under CC and CXX, but apparently someone forgot that there
is difference between these two.
%__global_*flags is not part of RPM itself, it's coming within
redhat-rpm-config which makes our macros file not that portable,
but anyway we already have %__global_ldflags and %ninja_build and
no one complained.
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
---
data/macros.meson | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/data/macros.meson b/data/macros.meson
index 5250c348..4eb1ab9a 100644
--- a/data/macros.meson
+++ b/data/macros.meson
@@ -3,11 +3,11 @@
%__builddir %{_target_platform}
%meson \
- export CFLAGS="%{optflags}" \
- export CXXFLAGS="%{optflags}" \
- export FFLAGS="%{optflags} -I%{_fmoddir}" \
- export FCFLAGS="%{optflags} -I%{_fmoddir}" \
- export LDFLAGS="%{?__global_ldflags}" \
+ export CFLAGS="${CFLAGS:-%__global_cflags}" \
+ export CXXFLAGS="${CXXFLAGS:-%__global_cxxflags}" \
+ export FFLAGS="${FFLAGS:-%__global_fflags}" \
+ export FCFLAGS="${FCFLAGS:-%__global_fcflags}" \
+ export LDFLAGS="${LDFLAGS:-%__global_ldflags}" \
%{__meson} \\\
--buildtype=plain \\\
--prefix=%{_prefix} \\\
--
2.11.0

View File

@ -2,12 +2,14 @@
Name: meson
Version: 0.36.0
Release: 2%{?dist}
Release: 3%{?dist}
Summary: High productivity build system
License: ASL 2.0
URL: http://mesonbuild.com/
Source0: https://github.com/mesonbuild/meson/archive/%{version}/%{name}-%{version}.tar.gz
Patch0001: 0001-rpm-use-meson-s-syntax-to-specify-sourcedir-and-buil.patch
Patch0002: 0002-rpm-use-__global_-flags.patch
BuildArch: noarch
Obsoletes: %{name}-gui < 0.31.0-3
@ -90,6 +92,9 @@ export MESON_PRINT_TEST_OUTPUT=1
%{rpmmacrodir}/macros.%{name}
%changelog
* Tue Dec 13 2016 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 0.36.0-3
- Backport fixes to RPM macros
* Sat Dec 03 2016 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 0.36.0-2
- Print test output during build