Update to 0.41.2

Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
This commit is contained in:
Igor Gnatenko 2017-07-19 12:26:49 +02:00
parent 05cd86cbd8
commit 654108acf5
10 changed files with 7 additions and 329 deletions

1
.gitignore vendored
View File

@ -34,3 +34,4 @@
/meson-0.40.1.tar.gz
/meson-0.41.0.tar.gz
/meson-0.41.1.tar.gz
/meson-0.41.2.tar.gz

View File

@ -1,29 +0,0 @@
From 7c8ba60384f9c6b9bdcad0345f56d73c246ab98c Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Mon, 19 Jun 2017 19:05:42 -0400
Subject: [PATCH 1/6] Use absolute path to target dir within gnome module.
Stuff like gtkdoc may not be run in the top-level build directory, so
these paths need to be absolute.
Fixes #1950.
---
mesonbuild/modules/gnome.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
index 6ec70403..3c80a094 100644
--- a/mesonbuild/modules/gnome.py
+++ b/mesonbuild/modules/gnome.py
@@ -294,7 +294,7 @@ class GnomeModule(ExtensionModule):
else:
link_command = ['-l' + lib.name]
if isinstance(lib, build.SharedLibrary):
- libdir = state.backend.get_target_dir(lib)
+ libdir = os.path.join(state.environment.get_build_dir(), state.backend.get_target_dir(lib))
link_command.append('-L' + libdir)
# Needed for the following binutils bug:
# https://github.com/mesonbuild/meson/issues/1911
--
2.13.0

View File

@ -1,34 +0,0 @@
From 167275763b7eb418b083b2eeb489108047b5d81b Mon Sep 17 00:00:00 2001
From: Laurent Carlier <lordheavym@gmail.com>
Date: Tue, 11 Jul 2017 13:42:59 +0200
Subject: [PATCH] pkgconfig: avoid appending slash at Cflags
otherwise it can break some compilations, see https://bugs.archlinux.org/task/54763
(cherry picked from commit 0283a2fb41fb4c25be1d0078bb40ae761d47462a)
---
mesonbuild/modules/pkgconfig.py | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/mesonbuild/modules/pkgconfig.py b/mesonbuild/modules/pkgconfig.py
index 09c615ab..c044d91e 100644
--- a/mesonbuild/modules/pkgconfig.py
+++ b/mesonbuild/modules/pkgconfig.py
@@ -96,10 +96,11 @@ class PkgConfigModule(ExtensionModule):
ofile.write('Libs.private: {}\n'.format(' '.join(generate_libs_flags(priv_libs))))
ofile.write('Cflags:')
for h in subdirs:
- if h == '.':
- h = ''
ofile.write(' ')
- ofile.write(os.path.join('-I${includedir}', h))
+ if h == '.':
+ ofile.write('-I${includedir}')
+ else:
+ ofile.write(os.path.join('-I${includedir}', h))
ofile.write('\n')
def process_libs(self, libs):
--
2.13.2

View File

@ -1,27 +0,0 @@
From a07fd0cb7cab97bf3edb55e5e721397188c94e66 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Mon, 19 Jun 2017 20:52:12 -0400
Subject: [PATCH 2/6] Add build include directory to gtkdoc source paths.
This enables gtkdoc to produce documentation on files that were
generated, using configure_file, for example.
---
mesonbuild/modules/gnome.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
index 3c80a094..00e5a8cb 100644
--- a/mesonbuild/modules/gnome.py
+++ b/mesonbuild/modules/gnome.py
@@ -700,6 +700,8 @@ class GnomeModule(ExtensionModule):
for inc_dir in src_dir.get_incdirs():
header_dirs.append(os.path.join(state.environment.get_source_dir(),
src_dir.get_curdir(), inc_dir))
+ header_dirs.append(os.path.join(state.environment.get_build_dir(),
+ src_dir.get_curdir(), inc_dir))
else:
header_dirs.append(src_dir)
--
2.13.0

View File

@ -1,27 +0,0 @@
From cf01adbf77a5a739fb7be6a1f297d16c3213da94 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Mon, 19 Jun 2017 19:07:09 -0400
Subject: [PATCH 3/6] Add all internal dep rpaths to gnome module builds.
Running gtkdoc on a shared library that depends on another shared
library would fail otherwise.
---
mesonbuild/modules/gnome.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
index 00e5a8cb..7d539aa8 100644
--- a/mesonbuild/modules/gnome.py
+++ b/mesonbuild/modules/gnome.py
@@ -303,6 +303,8 @@ class GnomeModule(ExtensionModule):
for d in state.backend.determine_rpath_dirs(lib):
d = os.path.join(state.environment.get_build_dir(), d)
link_command.append('-L' + d)
+ if include_rpath:
+ link_command.append('-Wl,-rpath,' + d)
if include_rpath:
link_command.append('-Wl,-rpath,' + libdir)
if depends:
--
2.13.0

View File

@ -1,99 +0,0 @@
From 3bf44e21bba1b83c0f8698779263a5e7679d6f19 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Mon, 19 Jun 2017 19:53:58 -0400
Subject: [PATCH 4/6] Add example of generated header in docs.
---
.../frameworks/10 gtk-doc/doc/foobar-docs.sgml | 1 +
.../frameworks/10 gtk-doc/include/foo-version.h.in | 29 ++++++++++++++++++++++
.../frameworks/10 gtk-doc/include/meson.build | 10 ++++++++
test cases/frameworks/10 gtk-doc/meson.build | 4 ++-
4 files changed, 43 insertions(+), 1 deletion(-)
create mode 100644 test cases/frameworks/10 gtk-doc/include/foo-version.h.in
create mode 100644 test cases/frameworks/10 gtk-doc/include/meson.build
diff --git a/test cases/frameworks/10 gtk-doc/doc/foobar-docs.sgml b/test cases/frameworks/10 gtk-doc/doc/foobar-docs.sgml
index d23b22fe..028b8083 100644
--- a/test cases/frameworks/10 gtk-doc/doc/foobar-docs.sgml
+++ b/test cases/frameworks/10 gtk-doc/doc/foobar-docs.sgml
@@ -34,6 +34,7 @@
</para>
</partintro>
<xi:include href="xml/foo.xml"/>
+ <xi:include href="xml/foo-version.xml"/>
</reference>
</book>
diff --git a/test cases/frameworks/10 gtk-doc/include/foo-version.h.in b/test cases/frameworks/10 gtk-doc/include/foo-version.h.in
new file mode 100644
index 00000000..30751cd7
--- /dev/null
+++ b/test cases/frameworks/10 gtk-doc/include/foo-version.h.in
@@ -0,0 +1,29 @@
+#pragma once
+
+/**
+ * SECTION:version
+ * @section_id: foo-version
+ * @short_description: <filename>foo-version.h</filename>
+ * @title: Foo Versioning
+ */
+
+/**
+ * FOO_MAJOR_VERSION:
+ *
+ * The major version of foo.
+ */
+#define FOO_MAJOR_VERSION (@FOO_MAJOR_VERSION@)
+
+/**
+ * FOO_MINOR_VERSION:
+ *
+ * The minor version of foo.
+ */
+#define FOO_MINOR_VERSION (@FOO_MINOR_VERSION@)
+
+/**
+ * FOO_MICRO_VERSION:
+ *
+ * The micro version of foo.
+ */
+#define FOO_MICRO_VERSION (@FOO_MICRO_VERSION@)
diff --git a/test cases/frameworks/10 gtk-doc/include/meson.build b/test cases/frameworks/10 gtk-doc/include/meson.build
new file mode 100644
index 00000000..4c85b801
--- /dev/null
+++ b/test cases/frameworks/10 gtk-doc/include/meson.build
@@ -0,0 +1,10 @@
+cdata = configuration_data()
+parts = meson.project_version().split('.')
+cdata.set('FOO_MAJOR_VERSION', parts[0])
+cdata.set('FOO_MINOR_VERSION', parts[1])
+cdata.set('FOO_MICRO_VERSION', parts[2])
+configure_file(input : 'foo-version.h.in',
+ output : 'foo-version.h',
+ configuration : cdata,
+ install : true,
+ install_dir : get_option('includedir'))
diff --git a/test cases/frameworks/10 gtk-doc/meson.build b/test cases/frameworks/10 gtk-doc/meson.build
index 95eeefa7..4cfcca18 100644
--- a/test cases/frameworks/10 gtk-doc/meson.build
+++ b/test cases/frameworks/10 gtk-doc/meson.build
@@ -1,4 +1,4 @@
-project('gtkdoctest', 'c')
+project('gtkdoctest', 'c', version : '1.0.0')
gnome = import('gnome')
@@ -6,6 +6,8 @@ assert(gnome.gtkdoc_html_dir('foobar') == 'share/gtkdoc/html/foobar', 'Gtkdoc in
inc = include_directories('include')
+subdir('include')
+
# We have to disable this test until this bug fix has landed to
# distros https://bugzilla.gnome.org/show_bug.cgi?id=753145
error('MESON_SKIP_TEST can not enable gtk-doc test until upstream fixes have landed.')
--
2.13.0

View File

@ -1,58 +0,0 @@
From b9caaf94bc918dc8831889e1c6de5bbc9ad2a481 Mon Sep 17 00:00:00 2001
From: Nirbheek Chauhan <nirbheek@centricular.com>
Date: Mon, 17 Jul 2017 12:40:09 +0530
Subject: [PATCH 5/6] gnome.gtkdoc: Handle absolute install_dirs correctly
Must prepend DESTDIR in case it's absolute. Also document that by
default it is relative to the gtk-doc html directory.
---
docs/markdown/Gnome-module.md | 4 ++--
mesonbuild/scripts/gtkdochelper.py | 8 +++++---
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/docs/markdown/Gnome-module.md b/docs/markdown/Gnome-module.md
index 61b88ada..098f030f 100644
--- a/docs/markdown/Gnome-module.md
+++ b/docs/markdown/Gnome-module.md
@@ -134,14 +134,14 @@ This also creates two targets for translations `help-$project-update-po` and `he
### gnome.gtkdoc()
-Compiles and installs gtkdoc documentation. Takes one positional arguments; The name of the module.
+Compiles and installs gtkdoc documentation into `prefix/share/gtk-doc/html`. Takes one positional argument: The name of the module.
* `main_xml`: specifies the main XML file
* `main_sgml`: equal to `main_xml`
* `src_dir`: include_directories to include
* `dependencies`: a list of dependencies
* `install`: if true, installs the generated docs
-* `install_dir`: the directory to install the generated docs
+* `install_dir`: the directory to install the generated docs relative to the gtk-doc html dir or an absolute path (default: module name)
* `scan_args`: a list of arguments to pass to `gtkdoc-scan`
* `scanobjs_args`: a list of arguments to pass to `gtkdoc-scangobj`
* `gobject_typesfile`: a list of type files
diff --git a/mesonbuild/scripts/gtkdochelper.py b/mesonbuild/scripts/gtkdochelper.py
index a2cbf5a5..45ed96bc 100644
--- a/mesonbuild/scripts/gtkdochelper.py
+++ b/mesonbuild/scripts/gtkdochelper.py
@@ -218,12 +218,14 @@ def run(args):
options.mode)
if 'MESON_INSTALL_PREFIX' in os.environ:
- install_dir = options.install_dir if options.install_dir else options.modulename
destdir = os.environ.get('DESTDIR', '')
- installdir = destdir_join(destdir, os.environ['MESON_INSTALL_PREFIX'])
+ install_prefix = destdir_join(destdir, os.environ['MESON_INSTALL_PREFIX'])
+ install_dir = options.install_dir if options.install_dir else options.modulename
+ if os.path.isabs(install_dir):
+ install_dir = destdir_join(destdir, install_dir)
install_gtkdoc(options.builddir,
options.subdir,
- installdir,
+ install_prefix,
'share/gtk-doc/html',
install_dir)
return 0
--
2.13.0

View File

@ -1,41 +0,0 @@
From 19f39ad05952099ecb915399231aa88f9acd3b20 Mon Sep 17 00:00:00 2001
From: Nirbheek Chauhan <nirbheek@centricular.com>
Date: Mon, 17 Jul 2017 12:41:54 +0530
Subject: [PATCH 6/6] gnome module: Add -lfoo after -Lbar LDFLAGS
Otherwise they won't take effect
---
mesonbuild/modules/gnome.py | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
index 7d539aa8..6e633a70 100644
--- a/mesonbuild/modules/gnome.py
+++ b/mesonbuild/modules/gnome.py
@@ -288,11 +288,8 @@ class GnomeModule(ExtensionModule):
def _get_link_args(self, state, lib, depends=None, include_rpath=False,
use_gir_args=False):
+ link_command = []
# Construct link args
- if gir_has_extra_lib_arg() and use_gir_args:
- link_command = ['--extra-library=' + lib.name]
- else:
- link_command = ['-l' + lib.name]
if isinstance(lib, build.SharedLibrary):
libdir = os.path.join(state.environment.get_build_dir(), state.backend.get_target_dir(lib))
link_command.append('-L' + libdir)
@@ -309,6 +306,10 @@ class GnomeModule(ExtensionModule):
link_command.append('-Wl,-rpath,' + libdir)
if depends:
depends.append(lib)
+ if gir_has_extra_lib_arg() and use_gir_args:
+ link_command.append('--extra-library=' + lib.name)
+ else:
+ link_command.append('-l' + lib.name)
return link_command
def _get_dependencies_flags(self, deps, state, depends=None, include_rpath=False,
--
2.13.0

View File

@ -1,25 +1,14 @@
%global libname mesonbuild
Name: meson
Version: 0.41.1
Release: 3%{?dist}
Version: 0.41.2
Release: 1%{?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
# https://github.com/mesonbuild/meson/commit/0283a2fb41fb4c25be1d0078bb40ae761d47462a
Patch0001: 0001-pkgconfig-avoid-appending-slash-at-Cflags.patch
# various gtk-doc fixes backported from upstream
Patch0002: 0001-Use-absolute-path-to-target-dir-within-gnome-module.patch
Patch0003: 0002-Add-build-include-directory-to-gtkdoc-source-paths.patch
Patch0004: 0003-Add-all-internal-dep-rpaths-to-gnome-module-builds.patch
Patch0005: 0004-Add-example-of-generated-header-in-docs.patch
Patch0006: 0005-gnome.gtkdoc-Handle-absolute-install_dirs-correctly.patch
Patch0007: 0006-gnome-module-Add-lfoo-after-Lbar-LDFLAGS.patch
BuildArch: noarch
Obsoletes: %{name}-gui < 0.31.0-3
@ -111,6 +100,9 @@ export MESON_PRINT_TEST_OUTPUT=1
%{rpmmacrodir}/macros.%{name}
%changelog
* Wed Jul 19 2017 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.41.2-1
- Update to 0.41.2
* Tue Jul 18 2017 Kalev Lember <klember@redhat.com> - 0.41.1-3
- Backport various gtk-doc fixes from upstream

View File

@ -1 +1 @@
SHA512 (meson-0.41.1.tar.gz) = be4bf2005023ba675a7005def508920ee03bce431dad85507d7e983e0669b920e2e0bb749d0d6db92bd53e2800d50f569e09d9c35e946f73e50bf3399c5e2937
SHA512 (meson-0.41.2.tar.gz) = 6333c34bf12976cecd0b9eb9ff6a1493e6dfe38cbbe7863f20fb3dcafb10b9bbbc5daba16035f6ad4761688ff0a67a04a42a1447f54d3925c2732427b6d83f28