Hello community,

here is the log from the commit of package meson for openSUSE:Factory checked 
in at 2018-03-24 16:10:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/meson (Old)
 and      /work/SRC/openSUSE:Factory/.meson.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "meson"

Sat Mar 24 16:10:24 2018 rev:31 rq:590397 version:0.45.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/meson/meson-testsuite.changes    2018-03-20 
21:52:06.239518450 +0100
+++ /work/SRC/openSUSE:Factory/.meson.new/meson-testsuite.changes       
2018-03-24 16:10:26.926163476 +0100
@@ -1,0 +2,16 @@
+Wed Mar 21 23:46:12 UTC 2018 - [email protected]
+
+- Only apply meson-suse-fix-llvm-3.8.patch,
+  meson-restore-python3.4.patch, meson-fix-gcc48.patch on Leap 42.x
+  or older.
+
+-------------------------------------------------------------------
+Wed Mar 21 10:20:37 UTC 2018 - [email protected]
+
+- Fix meson-fix-gcc48.patch.
+- Add meson-restore-python3.4.patch: Restore Python 3.4 support for
+  SLE 12 and openSUSE Leap 42.x.
+- Add meson-suse-fix-llvm-3.8.patch: Fix LLVM 3.8 tests for SLE 12
+  and openSUSE Leap 42.x..
+
+-------------------------------------------------------------------
meson.changes: same change

New:
----
  meson-restore-python3.4.patch
  meson-suse-fix-llvm-3.8.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ meson-testsuite.spec ++++++
--- /var/tmp/diff_new_pack.8aDbN5/_old  2018-03-24 16:10:29.022087921 +0100
+++ /var/tmp/diff_new_pack.8aDbN5/_new  2018-03-24 16:10:29.026087777 +0100
@@ -29,17 +29,21 @@
 Summary:        Python-based build system
 License:        Apache-2.0
 Group:          Development/Tools/Building
-URL:            http://mesonbuild.com/
+Url:            http://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-suse-ify-macros.patch [email protected] -- Make 
the macros non-RedHat specific: so far there are no separate {C,CXX,F}FLAGS.
 Patch0:         meson-suse-ify-macros.patch
+# PATCH-FIX-OPENSUSE meson-suse-fix-llvm-3.8.patch -- Fix LLVM 3.8 tests.
+Patch1:         meson-suse-fix-llvm-3.8.patch
+# PATCH-FIX-OPENSUSE meson-restore-python3.4.patch -- Restore Python 3.4 
support (reverts commit 0538009).
+Patch2:         meson-restore-python3.4.patch
 # PATCH-FIX-OPENSUSE meson-fix-gcc48.patch [email protected] -- Fix GCC 4.8 
handling for openSUSE Leap 42.x.
-Patch1:         meson-fix-gcc48.patch
+Patch3:         meson-fix-gcc48.patch
 # PATCH-FIX-OPENSUSE meson-test-installed-bin.patch [email protected] -- We 
want the test suite to run against /usr/bin/meson coming from our meson package.
 Patch100:       meson-test-installed-bin.patch
-BuildRequires:  python3 >= 3.4
+BuildRequires:  python3
 BuildArch:      noarch
 %if %{testsuite}
 BuildRequires:  bison
@@ -64,7 +68,7 @@
 BuildRequires:  ninja
 BuildRequires:  openmpi-devel
 BuildRequires:  pkgconfig
-BuildRequires:  python3-devel
+BuildRequires:  python3-devel >= 3.4
 BuildRequires:  python3-gobject
 BuildRequires:  python3-setuptools
 BuildRequires:  vala
@@ -79,7 +83,7 @@
 BuildRequires:  pkgconfig(gtk+-3.0)
 BuildRequires:  pkgconfig(sdl2)
 BuildRequires:  pkgconfig(zlib)
-%if 0%{?suse_version} > 1320
+%if 0%{?suse_version} >= 1500
 BuildRequires:  libboost_log-devel
 BuildRequires:  libboost_system-devel
 BuildRequires:  libboost_test-devel
@@ -124,8 +128,13 @@
 %prep
 %setup -q -n meson-%{version}
 %patch0 -p1
+%if 0%{?suse_version} < 1500
 %patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%endif
 %patch100 -p1
+
 # Remove static boost tests from test cases/frameworks/1 boost (can't use 
patch due to spaces in dirname)
 sed -i "/static/d" test\ cases/frameworks/1\ boost/meson.build
 
@@ -141,7 +150,7 @@
 
 %build
 # If this is the test suite, we don't need anything else but the meson package
-%if ! %{testsuite}
+%if !%{testsuite}
 python3 setup.py build
 %else
 # Ensure we have no mesonbuild / meson in CWD, thus guaranteeing we use meson 
in $PATH
@@ -175,7 +184,11 @@
 %endif
 
 %files
+%if 0%{?suse_version} >= 1500
 %license COPYING
+%else
+%doc COPYING
+%endif
 %if !%{testsuite}
 %{_bindir}/meson
 %{_bindir}/mesonconf

++++++ meson.spec ++++++
--- /var/tmp/diff_new_pack.8aDbN5/_old  2018-03-24 16:10:29.062086479 +0100
+++ /var/tmp/diff_new_pack.8aDbN5/_new  2018-03-24 16:10:29.094085326 +0100
@@ -1,5 +1,5 @@
 #
-# spec file for package meson
+# spec file for package meson-testsuite
 #
 # Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 #
@@ -29,14 +29,18 @@
 Summary:        Python-based build system
 License:        Apache-2.0
 Group:          Development/Tools/Building
-URL:            http://mesonbuild.com/
+Url:            http://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-suse-ify-macros.patch [email protected] -- Make 
the macros non-RedHat specific: so far there are no separate {C,CXX,F}FLAGS.
 Patch0:         meson-suse-ify-macros.patch
+# PATCH-FIX-OPENSUSE meson-suse-fix-llvm-3.8.patch -- Fix LLVM 3.8 tests.
+Patch1:         meson-suse-fix-llvm-3.8.patch
+# PATCH-FIX-OPENSUSE meson-restore-python3.4.patch -- Restore Python 3.4 
support (reverts commit 0538009).
+Patch2:         meson-restore-python3.4.patch
 # PATCH-FIX-OPENSUSE meson-fix-gcc48.patch [email protected] -- Fix GCC 4.8 
handling for openSUSE Leap 42.x.
-Patch1:         meson-fix-gcc48.patch
+Patch3:         meson-fix-gcc48.patch
 # PATCH-FIX-OPENSUSE meson-test-installed-bin.patch [email protected] -- We 
want the test suite to run against /usr/bin/meson coming from our meson package.
 Patch100:       meson-test-installed-bin.patch
 BuildRequires:  python3
@@ -64,7 +68,7 @@
 BuildRequires:  ninja
 BuildRequires:  openmpi-devel
 BuildRequires:  pkgconfig
-BuildRequires:  python3-devel
+BuildRequires:  python3-devel >= 3.4
 BuildRequires:  python3-gobject
 BuildRequires:  python3-setuptools
 BuildRequires:  vala
@@ -124,8 +128,13 @@
 %prep
 %setup -q -n meson-%{version}
 %patch0 -p1
+%if 0%{?suse_version} < 1500
 %patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%endif
 %patch100 -p1
+
 # Remove static boost tests from test cases/frameworks/1 boost (can't use 
patch due to spaces in dirname)
 sed -i "/static/d" test\ cases/frameworks/1\ boost/meson.build
 
@@ -175,7 +184,11 @@
 %endif
 
 %files
+%if 0%{?suse_version} >= 1500
 %license COPYING
+%else
+%doc COPYING
+%endif
 %if !%{testsuite}
 %{_bindir}/meson
 %{_bindir}/mesonconf


++++++ meson-fix-gcc48.patch ++++++
--- /var/tmp/diff_new_pack.8aDbN5/_old  2018-03-24 16:10:29.238080135 +0100
+++ /var/tmp/diff_new_pack.8aDbN5/_new  2018-03-24 16:10:29.238080135 +0100
@@ -1,20 +1,55 @@
-Index: meson-0.44.0/mesonbuild/compilers/cpp.py
-===================================================================
---- meson-0.44.0.orig/mesonbuild/compilers/cpp.py
-+++ meson-0.44.0/mesonbuild/compilers/cpp.py
-@@ -75,9 +75,13 @@ class ClangCPPCompiler(ClangCompiler, CP
+--- a/mesonbuild/compilers/cpp.py
++++ b/mesonbuild/compilers/cpp.py
+@@ -102,9 +102,11 @@ class GnuCPPCompiler(GnuCompiler, CPPCom
                            '3': default_warn_args + ['-Wextra', '-Wpedantic']}
  
      def get_options(self):
-+        c_stds = ['c++98', 'c++03', 'c++11']
-+        g_stds = ['gnu++11']
++        cpp_stds = ['c++98', 'c++03', 'c++11', 'c++1y', 'gnu++03', 'gnu++11', 
'gnu++1y']
 +        if version_compare(self.version, '>=5.0.0'):
-+            c_stds += ['c++14', 'c++17', 'c++1z']
-+            g_stds += ['gnu++14', 'gnu++17', 'gnu++1z']
-         return {'cpp_std': coredata.UserComboOption('cpp_std', 'C++ language 
standard to use',
++            cpp_stds += ['c++14', 'c++17', 'c++1z', 'gnu++14', 'gnu++17', 
'gnu++1z']
+         opts = {'cpp_std': coredata.UserComboOption('cpp_std', 'C++ language 
standard to use',
 -                                                    ['none', 'c++98', 
'c++03', 'c++11', 'c++14', 'c++17', 'c++1z',
--                                                     'gnu++11', 'gnu++14', 
'gnu++17', 'gnu++1z'],
-+                                                    ['none'] + c_stds + 
g_stds,
-                                                     'none')}
+-                                                     'gnu++03', 'gnu++11', 
'gnu++14', 'gnu++17', 'gnu++1z'],
++                                                    ['none'] + cpp_stds,
+                                                     'none'),
+                 'cpp_debugstl': coredata.UserBooleanOption('cpp_debugstl',
+                                                            'STL debug mode',
+--- a/mesonbuild/minit.py
++++ b/mesonbuild/minit.py
+@@ -123,8 +123,7 @@ int main(int argc, char **argv) {{
  
-     def get_option_compile_args(self, options):
+ hello_c_meson_template = '''project('{project_name}', 'c',
+   version : '{version}',
+-  default_options : ['warning_level=3',
+-                     'cpp_std=c++14'])
++  default_options : ['warning_level=3'])
+ 
+ exe = executable('{exe_name}', '{source_name}',
+   install : true)
+@@ -148,7 +147,8 @@ int main(int argc, char **argv) {{
+ 
+ hello_cpp_meson_template = '''project('{project_name}', 'cpp',
+   version : '{version}',
+-  default_options : ['warning_level=3'])
++  default_options : ['warning_level=3',
++                     'cpp_std=c++1y'])
+ 
+ exe = executable('{exe_name}', '{source_name}',
+   install : true)
+@@ -219,7 +219,7 @@ int main(int argc, char **argv) {{
+ 
+ lib_cpp_meson_template = '''project('{project_name}', 'cpp',
+   version : '{version}',
+-  default_options : ['warning_level=3', 'cpp_std=c++14'])
++  default_options : ['warning_level=3', 'cpp_std=c++1y'])
+ 
+ # These arguments are only used to build the shared library
+ # not the executables that use the library.
+--- "a/test cases/unit/16 prebuilt shared/patron.c"
++++ "b/test cases/unit/16 prebuilt shared/patron.c"
+@@ -5,4 +5,5 @@ int main(int argc, char **argv) {
+     printf("You are standing outside the Great Library of Alexandria.\n");
+     printf("You decide to go inside.\n\n");
+     alexandria_visit();
++    return 0;
+ }

++++++ meson-restore-python3.4.patch ++++++
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -26,7 +26,7 @@ from .. import compilers
 from ..compilers import CompilerArgs
 from ..linkers import ArLinker
 from ..mesonlib import File, MesonException, OrderedSet
-from ..mesonlib import get_compiler_for_source
+from ..mesonlib import get_compiler_for_source, commonpath
 from .backends import CleanTrees, InstallData
 from ..build import InvalidArguments
 
@@ -1166,8 +1166,8 @@ int dummy;
                 # Check if the vala file is in a subdir of --basedir
                 abs_srcbasedir = 
os.path.join(self.environment.get_source_dir(), target.get_subdir())
                 abs_vala_file = os.path.join(self.environment.get_build_dir(), 
vala_file)
-                if PurePath(os.path.commonpath((abs_srcbasedir, 
abs_vala_file))) == PurePath(abs_srcbasedir):
-                    vala_c_subdir = 
PurePath(abs_vala_file).parent.relative_to(abs_srcbasedir)
+                if PurePath(commonpath((abs_srcbasedir, abs_vala_file))) == 
PurePath(abs_srcbasedir):
+                    vala_c_subdir = 
str(PurePath(abs_vala_file).parent.relative_to(abs_srcbasedir))
                     vala_c_file = os.path.join(vala_c_subdir, vala_c_file)
             else:
                 path_to_target = os.path.join(self.build_to_src, 
target.get_subdir())
--- a/mesonbuild/coredata.py
+++ b/mesonbuild/coredata.py
@@ -17,7 +17,7 @@ import pickle, os, uuid
 import sys
 from pathlib import PurePath
 from collections import OrderedDict
-from .mesonlib import MesonException
+from .mesonlib import MesonException, commonpath
 from .mesonlib import default_libdir, default_libexecdir, default_prefix
 import ast
 
@@ -286,7 +286,7 @@ class CoreData:
             # commonpath will always return a path in the native format, so we
             # must use pathlib.PurePath to do the same conversion before
             # comparing.
-            if os.path.commonpath([value, prefix]) != str(PurePath(prefix)):
+            if commonpath([value, prefix]) != str(PurePath(prefix)):
                 m = 'The value of the {!r} option is {!r} which must be a ' \
                     'subdir of the prefix {!r}.\nNote that if you pass a ' \
                     'relative path, it is assumed to be a subdir of prefix.'
--- a/mesonbuild/mesonlib.py
+++ b/mesonbuild/mesonlib.py
@@ -935,6 +935,30 @@ def detect_subprojects(spdir_name, curre
                 result[basename] = [trial]
     return result
 
+def commonpath(paths):
+    '''
+    For use on Python 3.4 where os.path.commonpath is not available.
+    '''
+    if sys.version_info >= (3, 5):
+        return os.path.commonpath(paths)
+
+    import pathlib
+    if not paths:
+        raise ValueError('commonpath() arg is an empty sequence')
+    common = pathlib.PurePath(paths[0])
+    for path in paths[1:]:
+        new = []
+        path = pathlib.PurePath(path)
+        for c, p in zip(common.parts, path.parts):
+            if c != p:
+                break
+            new.append(c)
+        if not new:
+            raise ValueError("Can't mix absolute and relative paths") from None
+        new = os.path.join(*new)
+        common = pathlib.PurePath(new)
+    return str(common)
+
 class OrderedSet(collections.MutableSet):
     """A set that preserves the order in which items are added, by first
     insertion.
--- a/mesonbuild/mesonmain.py
+++ b/mesonbuild/mesonmain.py
@@ -274,8 +274,8 @@ def run_script_command(args):
     return cmdfunc(cmdargs)
 
 def run(original_args, mainfile=None):
-    if sys.version_info < (3, 5):
-        print('Meson works correctly only with python 3.5+.')
+    if sys.version_info < (3, 4):
+        print('Meson works correctly only with python 3.4+.')
         print('You have python %s.' % sys.version)
         print('Please update your environment')
         return 1
--- a/run_unittests.py
+++ b/run_unittests.py
@@ -427,6 +427,24 @@ class InternalTests(unittest.TestCase):
         kwargs = {'sources': [1, 2, 3], 'pch_sources': [4, 5, 6]}
         self.assertEqual([[1, 2, 3], [4, 5, 6]], extract(kwargs, 'sources', 
'pch_sources'))
 
+    def test_commonpath(self):
+        from os.path import sep
+        commonpath = mesonbuild.mesonlib.commonpath
+        self.assertRaises(ValueError, commonpath, [])
+        self.assertEqual(commonpath(['/usr', '/usr']), sep + 'usr')
+        self.assertEqual(commonpath(['/usr', '/usr/']), sep + 'usr')
+        self.assertEqual(commonpath(['/usr', '/usr/bin']), sep + 'usr')
+        self.assertEqual(commonpath(['/usr/', '/usr/bin']), sep + 'usr')
+        self.assertEqual(commonpath(['/usr/./', '/usr/bin']), sep + 'usr')
+        self.assertEqual(commonpath(['/usr/bin', '/usr/bin']), sep + 'usr' + 
sep + 'bin')
+        self.assertEqual(commonpath(['/usr//bin', '/usr/bin']), sep + 'usr' + 
sep + 'bin')
+        self.assertEqual(commonpath(['/usr/./bin', '/usr/bin']), sep + 'usr' + 
sep + 'bin')
+        self.assertEqual(commonpath(['/usr/local', '/usr/lib']), sep + 'usr')
+        self.assertEqual(commonpath(['/usr', '/bin']), sep)
+        prefix = '/some/path/to/prefix'
+        libdir = '/some/path/to/prefix/libdir'
+        self.assertEqual(commonpath([prefix, libdir]), str(PurePath(prefix)))
+
 
 class BasePlatformTests(unittest.TestCase):
     def setUp(self):
++++++ meson-suse-fix-llvm-3.8.patch ++++++
--- a/mesonbuild/dependencies/dev.py
+++ b/mesonbuild/dependencies/dev.py
@@ -205,10 +205,10 @@ class LLVMDependency(ConfigToolDependenc
         not for shared-linnking, we have to figure those out ourselves, because
         of course we do.
         """
-        if self.static:
-            self.link_args = self.get_config_value(
-                ['--libs', '--ldflags', '--system-libs'] + 
list(self.required_modules),
-                'link_args')
+        self.link_args = self.get_config_value(
+            ['--libs', '--ldflags', '--system-libs'] + 
list(self.required_modules),
+            'link_args')
+        """
         else:
             # llvm-config will provide arguments for static linking, so we get
             # to figure out for ourselves what to link with. We'll do that by
@@ -227,6 +227,7 @@ class LLVMDependency(ConfigToolDependenc
             else:
                 raise DependencyException(
                     'Could not find a dynamically linkable library for LLVM.')
+        """
 
     def check_components(self, modules, required=True):
         """Check for llvm components (modules in meson terms).

Reply via email to