From 2c831b4033e2f6b5643ce50e3794b6af80fc4f5df4e36cbd607ad61452d1e596 Mon Sep 17 00:00:00 2001 From: Alexei Sorokin Date: Wed, 21 Mar 2018 21:12:14 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/meson?expand=0&rev=82 --- _multibuild | 4 + meson-fix-gcc48.patch | 46 +++- meson-restore-python3.4.patch | 119 ++++++++ meson-suse-fix-llvm-3.8.patch | 25 ++ meson-testsuite.changes | 502 ---------------------------------- meson-testsuite.spec | 208 -------------- meson.changes | 10 + meson.spec | 24 +- pre_checkin.sh | 5 - 9 files changed, 211 insertions(+), 732 deletions(-) create mode 100644 _multibuild create mode 100644 meson-restore-python3.4.patch create mode 100644 meson-suse-fix-llvm-3.8.patch delete mode 100644 meson-testsuite.changes delete mode 100644 meson-testsuite.spec delete mode 100644 pre_checkin.sh diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..7971cad --- /dev/null +++ b/_multibuild @@ -0,0 +1,4 @@ + + meson + meson-testsuite + diff --git a/meson-fix-gcc48.patch b/meson-fix-gcc48.patch index 9c4a746..c1fe097 100644 --- a/meson-fix-gcc48.patch +++ b/meson-fix-gcc48.patch @@ -1,20 +1,46 @@ -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,13 @@ 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'] ++ g_stds = ['gnu++03', 'gnu++11'] + 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', + 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'], +- 'gnu++03', 'gnu++11', 'gnu++14', 'gnu++17', 'gnu++1z'], + ['none'] + c_stds + g_stds, - 'none')} + 'none'), + 'cpp_debugstl': coredata.UserBooleanOption('cpp_debugstl', + 'STL debug mode', +--- a/mesonbuild/minit.py ++++ b/mesonbuild/minit.py +@@ -124,7 +124,7 @@ int main(int argc, char **argv) {{ + hello_c_meson_template = '''project('{project_name}', 'c', + version : '{version}', + default_options : ['warning_level=3', +- 'cpp_std=c++14']) ++ 'cpp_std=c++11']) - def get_option_compile_args(self, options): + 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++11']) + + # 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; + } diff --git a/meson-restore-python3.4.patch b/meson-restore-python3.4.patch new file mode 100644 index 0000000..bc1e292 --- /dev/null +++ b/meson-restore-python3.4.patch @@ -0,0 +1,119 @@ +--- 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,32 @@ 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) ++ # Don't convert '' into '.' ++ if not new: ++ common = '' ++ break ++ 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,26 @@ 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) ++ self.assertEqual(commonpath(['/usr', 'bin']), '') ++ self.assertEqual(commonpath(['blam', 'bin']), '') ++ 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): diff --git a/meson-suse-fix-llvm-3.8.patch b/meson-suse-fix-llvm-3.8.patch new file mode 100644 index 0000000..d8d4eb5 --- /dev/null +++ b/meson-suse-fix-llvm-3.8.patch @@ -0,0 +1,25 @@ +--- 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). diff --git a/meson-testsuite.changes b/meson-testsuite.changes deleted file mode 100644 index cc89153..0000000 --- a/meson-testsuite.changes +++ /dev/null @@ -1,502 +0,0 @@ -------------------------------------------------------------------- -Mon Mar 12 22:04:53 UTC 2018 - dimstar@opensuse.org - -- Add libjpeg-devel BuildRequires to test testsuite. - -------------------------------------------------------------------- -Mon Mar 5 17:00:19 UTC 2018 - dimstar@opensuse.org - -- Update to version 0.45.0: - + Config-Tool based dependencies can be specified in a cross - file. - + Visual Studio C# compiler support. - + Removed two deprecated features: - - The standalone find_library function has been a no-op for a - long time. From now on it's an error. - - There used to be a keywordless version of run_target, which - is no longer valid. - + Experimental FPGA support. - + Generator outputs can preserve directory structure. - + Hexadecimal string literals. - + install_data()` defaults to `{datadir}/{projectname}`. - + install_subdir() supports strip_directory. - + Integer options. - + New method meson.project_license(). - + Rust cross-compilation. - + Rust compiler-private library disambiguation. - + Project templates. - + Improve test setup selection. - + Yielding subproject option to superproject. -- Rebase meson-suse-ify-macros.patch. - -------------------------------------------------------------------- -Thu Feb 22 10:36:33 UTC 2018 - dimstar@opensuse.org - -- Update to version 0.44.1: - + Support running out-of-tree tests against a meson in PATH. - + Don't add rpaths to system libraries. - + Fix meson location detection from other meson tools. - + Various boost, pkg-config and vala related fixes. -- Testsuite changes: Remove mesonbuild directory and meson.py - again before running the test: ensure we test meson as it was - installed onto the system. - -------------------------------------------------------------------- -Mon Feb 5 15:06:54 UTC 2018 - dimstar@opensuse.org - -- Update to version 0.44.0: - + New features: - - Added warning function. - - Adds support for additional Qt5-Module keyword - moc_extra_arguments. - - Prefix-dependent defaults for sysconfdir, localstatedir and - sharedstatedir. - - An array type for user options. - - LLVM dependency supports both dynamic and static linking. - - Added if_found to subdir. - - get_unquoted() method for the configuration data object. - - Added disabler object. - - Config-Tool based dependencies gained a method to get - arbitrary options. - - Embedded Python in Windows MSI packages. -- Rebase meson-suse-ify-macros.patch, meson-fix-gcc48.patch and - meson-test-installed-bin.patch. -- Testsuite changes: - + Disable tests for static llvm: we don't ship the static libs. - + Add cmake(Qt5LinguistTools), libwmf-devel BuildRequires and - zlib-devel-static: new dependencies for various tests. - -------------------------------------------------------------------- -Wed Nov 22 17:47:29 UTC 2017 - sor.alexei@meowr.ru - -- Require python3-xml: mesonbuild/modules/qt5.py imports the xml - module (boo#1068818). - -------------------------------------------------------------------- -Mon Oct 23 12:30:03 UTC 2017 - dimstar@opensuse.org - -- Setup MPI runtime environment before running the test suite. -- Remove tests for static boost libraries from - test\ cases/frameworks/1\ boost/meson.build. - -------------------------------------------------------------------- -Thu Oct 19 15:00:49 UTC 2017 - badshah400@gmail.com - -- Update to version 0.43.0: - + Generator learned capture: Generators can now be configured to - capture the standard output. - + Can index CustomTarget objects: The CustomTarget object can - now be indexed like an array. The resulting object can be used - as a source file for other Targets, this will create a - dependency on the original CustomTarget, but will only insert - the generated file corresponding to the index value of the - CustomTarget's output keyword. - + The cross file can now be used for overriding the result of - find_program. Then issuing the command find_program('objdump') - will return the version specified in the cross file. - + Easier handling of supported compiler arguments. - + Better support for shared libraries in non-system paths: This - release adds feature parity to shared libraries that are - either in non-standard system paths or shipped as part of your - project. On systems that support rpath, Meson automatically - adds rpath entries to built targets using manually found - external libraries. - + The Wrap dependency system now supports Subversion (svn). This - support is rudimentary. The repository url has to point to a - specific (sub)directory containing the meson.build file - (typically trunk/). However, providing a revision is - supported. -- Rebase meson-test-installed-bin.patch. -- Run sed to strip the hashbang from a non-executable file; this - prevents an rpmlint warning. - -------------------------------------------------------------------- -Wed Oct 11 15:43:16 UTC 2017 - sor.alexei@meowr.ru - -- Don't use obsolete boost-devel for openSUSE Leap 15.0 and newer - (boo#1062785). - -------------------------------------------------------------------- -Mon Oct 2 14:53:40 CEST 2017 - jdelvare@suse.com - -- Update to version 0.42.1. This is a stable update with various - bug fixes. - -------------------------------------------------------------------- -Fri Sep 8 12:22:38 UTC 2017 - sor.alexei@meowr.ru - -- Rebase meson-fix-gcc48.patch (boo#1057701). - -------------------------------------------------------------------- -Tue Aug 15 11:00:02 UTC 2017 - dimstar@opensuse.org - -- Extend meson-test-installed-bin.patch: catch some more cases - where the test suite referenced meson.py from the source - directory. -- Add vulkan-devel and libpcap-devel BuildRequires for the test - suite: new dependencies. - -------------------------------------------------------------------- -Tue Aug 15 09:35:51 UTC 2017 - zaitor@opensuse.org - -- Update to version 0.42.0: - + Distribution tarballs from Mercurial repositories. Creating - distribution tarballs can now be made out of projects based on - Mercurial. As before, this remains possible only with the Ninja - backend. - + Keyword argument verification. Meson will now check the keyword - arguments used when calling any function and print a warning if - any of the keyword arguments is not known. In the future this - will become a hard error. - + Add support for Genie to Vala compiler. The Vala compiler has - an alternative syntax, Genie, that uses the .gs file extension. - Meson now recognises and uses Genie files. - + Pkgconfig support for additional cflags. The Pkgconfig module - object can add arbitrary extra cflags to the Cflags value in - the .pc file, using the "extra_cflags" keyword. - + Base options accessible via get_option(). Base options are now - accessible via the get_option() function. - + Allow crate type configuration for Rust compiler. Rust targets - now take an optional rust_crate_type keyword, allowing you to - set the crate type of the resulting artifact. Valid crate types - are dylib or cdylib for shared libraries, and rlib or staticlib - for static libraries. For more, see Rust's linkage reference. - + Simultaneous use of Address- and Undefined Behavior Sanitizers. - Both the address- and undefined behavior sanitizers can now be - used simultaneously by passing -Db_sanitize=address,undefined - to Meson. - + Unstable SIMD module. A new experimental module to compile code - with many different SIMD instruction sets and selecting the - best one at runtime. This module is unstable, meaning it's API - is subject to change in later releases. It might also be - removed altogether. - + Import libraries for executables on Windows. The new keyword - implib to executable() allows generation of an import library - for the executable. - + Added build_rpath keyword argument. You can specify - build_rpath: '/foo/bar' in build targets and the given path - will get added to the target's rpath in the build tree. It is - removed during the install step. - + Meson will print a warning when the user tries to add an rpath - linker flag manually, e.g. via link_args to a target. This is - not recommended because having multiple rpath causes them to - stomp on each other. This warning will become a hard error in - some future release. - + Vulkan dependency module. Vulkan can now be used as native - dependency. The dependency module will detect the VULKAN_SDK - environment variable or otherwise try to receive the vulkan - library and header via pkgconfig or from the system. - + Limiting the maximum number of linker processes. With the Ninja - backend it is now possible to limit the maximum number of - concurrent linker processes. This is usually only needed for - projects that have many large link steps that cause the system - to run out of memory if they are run in parallel. This limit - can be set with the new backend_max_links option. - + Disable implicit include directories. By default Meson adds the - current source and build directories to the header search path. - On some rare occasions this is not desired. Setting the - implicit_include_directories keyword argument to false these - directories are not used. - + Support for MPI dependency. MPI is now supported as a - dependency. Because dependencies are language-specific, you - must specify the requested language with the language keyword, - i.e., dependency('mpi', language='c') will request the C MPI - headers and libraries. See the MPI dependency for more - information. - + Allow excluding files or directories from install_subdir. The - install_subdir command accepts the new exclude_files and - exclude_directories keyword arguments that allow specified - files or directories to be excluded from the installed - subdirectory. - + Make all Meson functionality invokable via the main executable. - Previously Meson had multiple executables such as - mesonintrospect and mesontest. They are now invokable via the - main Meson executable like this: meson configure # - equivalent to mesonconf meson test # - equivalent to mesontest The old commands are still - available but they are deprecated and will be removed in some - future release. - + Pcap dependency detector. Meson will automatically obtain - dependency information for pcap using the pcap-config tool. It - is used like any other dependency. - + GNOME module mkenums_simple() addition. Most libraries and - applications use the same standard templates for glib-mkenums. - There is now a new mkenums_simple() convenience method that - passes those default templates to glib-mkenums and allows some - tweaks such as optional function decorators or leading - underscores. -- Rebase meson-fix-gcc48.patch and meson-test-installed-bin.patch. - -------------------------------------------------------------------- -Sat Jul 22 13:55:52 UTC 2017 - mailaender@opensuse.org - -- Update to version 0.41.2: - + Various gtkdoc fixes. - + Fix how rpath directories are handled. - + pkgconfig: avoid appending slash at Cflags. - + Fix a missing path issue causing Python traceback. - + Qt4 support. - + Skip handling non-available dependencies. - + vala: Only add --use-header for unity builds regression. - + Tag functions in asm properly. - -------------------------------------------------------------------- -Tue Jun 27 14:19:46 UTC 2017 - rodrigo.z.lourenco@tecnico.ulisboa.pt - -- Add a vim subpackage to add Meson support to Vim. - -------------------------------------------------------------------- -Fri Jun 23 21:47:40 UTC 2017 - dimstar@opensuse.org - -- Split testsuite into an own package, in order to keep the build - dep chain of meson minimal. -- Drop meson-disable-untested-code.patch: no longer required. -- Add meson-test-installed-bin.patch: use /usr/bin/meson instead of - meson.py from the source tarball. We want to test the meson - binary package we produced, not the sources directly. - -------------------------------------------------------------------- -Fri Jun 23 19:27:31 UTC 2017 - dimstar@opensuse.org - -- Update to version 0.41.1: - + wxwidgets: Fix usage of multiple dependency() calls. - + Make external library no-op when used with incompatible - target (gh#mesonbuild/meson#1941). - + Failing test for -D dedupping. - + Preserve standalone -D arguments always. - + Handle both pkg-config and pkgconf argument order - (gh#mesonbuild/meson#1934). - -------------------------------------------------------------------- -Fri Jun 23 13:56:37 UTC 2017 - dimstar@opensuse.org - -- Update meson-suse-ify-macros.patch: export LANG for all macros. - -------------------------------------------------------------------- -Mon Jun 19 12:35:49 UTC 2017 - rpm@fthiessen.de - -- Update to version 0.41.0: - * Native support for linking against LLVM using - the dependency function. - * Pkgconfig support for custom variables. - * A target for creating tarballs using 'ninja dist'. - * Support for passing arguments to Rust compiler. - * All known issues regarding reproducible builds are fixed. - * Extended template substitution in configure_file - for @BASENAME@ and @PLAINNAME@ . - * Support for capturing stdout of a command in configure_file. -- Removed SDL2 test to reduce dependencies (smaller build footprint) -- Dropped upstreamed patch meson-handle-skipped-tests.patch -- Rebased meson-suse-ify-macros.patch and meson-fix-gcc48.patch - -------------------------------------------------------------------- -Tue Jun 6 13:08:19 UTC 2017 - dimstar@opensuse.org - -- Make the build footprint smaller to enter ring1: This means we - skip a couple tests though. Removed BuildRequires: java-devel, - libqt5-qtbase-devel, mono-core, mono-devel, wxWidgets-devel, - pkgconfig(protobuf) and pkgconfig(gtk+-3.0). - -------------------------------------------------------------------- -Wed May 17 20:26:25 UTC 2017 - dimstar@opensuse.org - -- Add meson-handle-skipped-tests.patch: Actually do skip tests that - are marked as MESON_SKIP_TEST (gh#mesonbuild/meson#1804). - -------------------------------------------------------------------- -Mon May 8 07:53:20 UTC 2017 - dimstar@opensuse.org - -- Update to version 0.40.1: - + Outputs of generators can be used in custom targets in the VS - backend. - + Visual Studio 2017 support. - + Automatic initialization of subprojects that are git - submodules. - + No download mode for wraps. - + Overriding options per target. - + Compiler object get define. - + Cygwin support. - + Multiple install directories. - + Can specify method of obtaining dependencies. - + Link whole contents of static libraries. - + Unity builds only for subprojects. - + Running mesonintrospect from scripts. - -------------------------------------------------------------------- -Mon Mar 20 11:21:10 UTC 2017 - dimstar@opensuse.org - -- Add meson-disable-untested-code.patch: meson has code in the test - suite that assumes different behaviour between glib 2.51.5 (rc) - and 2.52.0 (final); this must be a wrong assumption to start with - and the test suite fails with 2.52.0. When this was added by - upstream 4 months before glib-2.52.0 was released, there must - have been no way at all to test this. We revert back to a state - like with the previous glib verison, where this test was simply - skipped (gh#mesonbuild/meson#1480). - -------------------------------------------------------------------- -Thu Mar 16 11:04:13 UTC 2017 - sor.alexei@meowr.ru - -- Update to version 0.39.1 (changes since 0.38.1): - * Allow specifying extra arguments for tests. - * Bug fixes and minor polishes. -- Add meson-fix-gcc48.patch: fix GCC 4.8 handling for - openSUSE Leap 42.x. - -------------------------------------------------------------------- -Sat Mar 4 14:50:28 UTC 2017 - dimstar@opensuse.org - -- Update to version 0.38.1: - + New Uninstall target. - + Support for arbitrary test setups. - + Intel C/C++ compiler support. - + Get values from configuration data objects. - + Python 3 module support simplified. - + Default options to subprojects. - + Set targets to be built (or not) by default. - + Add option to mesonconf to wipe cached data. - + Can specify file permissions and owner when installing data. - + has_header() checks are now faster. - + Array indexing now supports fallback values. - + Silent mode for Mesontest. -- Rebase meson-suse-ify-macros.patch. - -------------------------------------------------------------------- -Tue Jan 10 16:14:32 UTC 2017 - dimstar@opensuse.org - -- Add meson-suse-ify-macros.patch: Make the meson macros also work - on openSUSE. We do not (yet?) have separate macros for CFLAGS, - CXXFLAGS, FFLAGS and LDFLAGS, but only carry optflags. This is no - issue, since openSUSE so far only added flags that work accross - compilers/languages. This might change in the future, making the - patch obsolete. - -------------------------------------------------------------------- -Sun Jan 1 12:51:36 UTC 2017 - sor.alexei@meowr.ru - -- Update to version 0.37.1: - * No changelog available. - -------------------------------------------------------------------- -Sun Jan 1 11:38:34 UTC 2017 - jengelh@inai.de - -- Trim boasting words from descriptions. Add to description two - points from the feature list. - -------------------------------------------------------------------- -Mon Dec 19 05:55:00 UTC 2016 - dev@antergos.com - -- Update to version 0.37.0: - * Mesontest: a new testing tool that allows you to run your - tests in many different ways. - * New shared_module function allows shared modules creation. - * GNOME module now detects required programs and prints useful - errors if any are missing. - * GNOME module uses depfile support available in GLib >= 2.52.0. - * i18n module has a new merge_file() function for creating - translated files. - * LLVM IR compilation is now supported. - * .wrap files for subprojects can now include a separate push - URL to allow developers to push changes directly from a - subproject git checkout. - * Multiple version restrictions while searching for pkg-config - dependencies is now supported. - * Support for localstatedir has been added. - * You can now pass arguments to install scripts added with - meson.add_install_script(). - * Added new options sbindir and infodir that can be used for - installation. -- Remove meson-0.36.0-fix-old-pkgconfig-test.patch. - -------------------------------------------------------------------- -Sat Dec 10 20:38:23 UTC 2016 - sor.alexei@meowr.ru - -- Add meson-0.36.0-fix-old-pkgconfig-test.patch: tests/common/51: - Skip validate if pkg-config is too old (commit 2f804e9). - -------------------------------------------------------------------- -Tue Nov 22 15:04:05 UTC 2016 - dimstar@opensuse.org - -- Update to version 0.36.0: - + Add option to run under gdb. - + Always specify installed data with a File object - (gh#mesonbuild/meson#858). - + Made has_function survive optimization flags - (gh#mesonbuild/meson#1053). - + Can give many alternative names to find_program to simplify - searching. - + Can set compiler arguments in Java. -- Export SUSE_ASNEEDED=0 when running the test suite: linking the - test libraries/binaries is not done optimally. - -------------------------------------------------------------------- -Tue Oct 18 20:43:34 UTC 2016 - sor.alexei@meowr.ru - -- Update to version 0.35.1: - * No changelog available. - -------------------------------------------------------------------- -Fri Oct 14 20:46:56 UTC 2016 - zaitor@opensuse.org - -- Update to version 0.35.0: - + No changelog available from upstream. -- Changes from version 0.34.0: - + No changelog available from upstream. -- Drop meson-633.patch and meson-typelib-install.patch : Fixed - upstream. - -------------------------------------------------------------------- -Wed Aug 17 15:43:57 UTC 2016 - dimstar@opensuse.org - -- Update to version 0.33.0: - + Correctly install .typelib files to libdir. - + Add option for as-needed link option. - + Print the CFLAGS/LDFLAGS/etc inherited from the environment. - + Only append compile flags to the link flags when appropriate. -- Add meson-633.patch: Handle both DT_RPATH as well as DT_RUNPATH - when fixing rpath settings (gh#mesonbuild/meson#663). -- Add meson-typelib-install.patch: Fix installation path for - gpobject introspection typelib files. - -------------------------------------------------------------------- -Sat Jul 23 16:15:39 UTC 2016 - sor.alexei@meowr.ru - -- Update to version 0.32.0: - * No changelog available. -- Remove meson-gui package: GUI was removed upstream. - -------------------------------------------------------------------- -Mon May 9 16:47:26 UTC 2016 - jengelh@inai.de - -- Avoid unnecessary bashism in %install script (run with /bin/sh) - -------------------------------------------------------------------- -Sat May 7 07:12:54 UTC 2016 - sor.alexei@meowr.ru - -- Update to version 0.31.0. - -------------------------------------------------------------------- -Thu Feb 11 16:26:54 UTC 2016 - sor.alexei@meowr.ru - -- Update to 0.29.0. - -------------------------------------------------------------------- -Tue Dec 29 05:32:40 UTC 2015 - sor.alexei@meowr.ru - -- Update to 0.28.0. - -------------------------------------------------------------------- -Fri Dec 4 10:29:26 UTC 2015 - sor.alexei@meowr.ru - -- Update to 0.27.0. - -------------------------------------------------------------------- -Sun Sep 13 10:21:57 UTC 2015 - sor.alexei@meowr.ru - -- Update to 0.26.0. -- Use signed tarball. - -------------------------------------------------------------------- -Sun Jul 12 21:02:38 UTC 2015 - sor.alexei@meowr.ru - -- Initial package based on the work of Igor Gnatenko. diff --git a/meson-testsuite.spec b/meson-testsuite.spec deleted file mode 100644 index 70d043b..0000000 --- a/meson-testsuite.spec +++ /dev/null @@ -1,208 +0,0 @@ -# -# spec file for package meson-testsuite -# -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. -# -# 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 http://bugs.opensuse.org/ -# - - -%define testsuite 1 -%if %{testsuite} -%define name_ext -testsuite -%else -%define name_ext %{nil} -%endif -%define _name mesonbuild -Name: meson%{name_ext} -Version: 0.45.0 -Release: 0 -Summary: Python-based build system -License: Apache-2.0 -Group: Development/Tools/Building -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 dimstar@opensuse.org -- 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-fix-gcc48.patch sor.alexei@meowr.ru -- Fix GCC 4.8 handling for openSUSE Leap 42.x. -Patch1: meson-fix-gcc48.patch -# 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. -Patch100: meson-test-installed-bin.patch -BuildRequires: python3 >= 3.4 -BuildArch: noarch -%if %{testsuite} -BuildRequires: bison -BuildRequires: cups-devel -BuildRequires: flex -BuildRequires: gcc-c++ -BuildRequires: gcc-fortran -BuildRequires: gcc-obj-c++ -BuildRequires: gcc-objc -BuildRequires: gettext -BuildRequires: git -BuildRequires: gnustep-make -BuildRequires: googletest-devel -BuildRequires: gtk-doc -BuildRequires: itstool -BuildRequires: libjpeg-devel -BuildRequires: libpcap-devel -BuildRequires: libwmf-devel -BuildRequires: llvm-devel -BuildRequires: meson = %{version} -BuildRequires: ncurses-devel -BuildRequires: ninja -BuildRequires: openmpi-devel -BuildRequires: pkgconfig -BuildRequires: python3-devel -BuildRequires: python3-gobject -BuildRequires: python3-setuptools -BuildRequires: vala -BuildRequires: vulkan-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(sdl2) -BuildRequires: pkgconfig(zlib) -%if 0%{?suse_version} > 1320 -BuildRequires: libboost_log-devel -BuildRequires: libboost_system-devel -BuildRequires: libboost_test-devel -BuildRequires: libboost_thread-devel -%else -BuildRequires: boost-devel -%endif -%else -Requires: ninja -Requires: python3-xml -# meson-gui was last used in openSUSE Leap 42.1. -Provides: meson-gui = %{version} -Obsoletes: meson-gui < %{version} -%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 -%{!?vim_data_dir:%global vim_data_dir %{_datadir}/vim} -Summary: Vim support for meson.build files -Group: Productivity/Text/Editors -Requires: vim -Supplements: packageand(vim:%{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 support for meson.build files in Vim. - -%prep -%setup -q -n meson-%{version} -%patch0 -p1 -%patch1 -p1 -%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 - -# Disable test of llvm-static libs: openSUSE does not package/ship them -sed -i "s/foreach static : \[true, false\]/foreach static : \[false\]/" test\ cases/frameworks/15\ llvm/meson.build - -# We do not have gmock available at this moment - can't run the test suite for it -rm -rf "test cases/frameworks/3 gmock" \ - "test cases/objc/2 nsstring" - -# Remove hashbang from non-exec script -sed -i '1{/\/usr\/bin\/env/d;}' ./mesonbuild/rewriter.py - -%build -# If this is the test suite, we don't need anything else but the meson package -%if ! %{testsuite} -python3 setup.py build -%else -# Ensure we have no mesonbuild / meson in CWD, thus guaranteeing we use meson in $PATH -rm -rf meson.py mesonbuild -%endif - -%install -# If this is the test suite, we don't need anything else but the meson package -%if ! %{testsuite} -python3 setup.py install \ - --root=%{buildroot} --prefix=%{_prefix} - -install -Dpm 0644 data/macros.meson \ - %{buildroot}%{_rpmconfigdir}/macros.d/macros.meson - -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 %{testsuite} -%check -export LANG=C.UTF-8 -export MESON_PRINT_TEST_OUTPUT=1 -export SUSE_ASNEEDED=0 -source %{_libdir}/mpi/gcc/openmpi/bin/mpivars.sh -python3 run_tests.py -%endif - -%files -%license COPYING -%if !%{testsuite} -%{_bindir}/meson -%{_bindir}/mesonconf -%{_bindir}/mesonintrospect -%{_bindir}/mesontest -%{_bindir}/wraptool -%{python3_sitelib}/%{_name}/ -%{python3_sitelib}/meson-* -%{_rpmconfigdir}/macros.d/macros.meson -%{_mandir}/man1/meson.1%{?ext_man} -%{_mandir}/man1/mesonconf.1%{?ext_man} -%{_mandir}/man1/mesonintrospect.1%{?ext_man} -%{_mandir}/man1/mesontest.1%{?ext_man} -%{_mandir}/man1/wraptool.1%{?ext_man} -%endif - -%if !%{testsuite} -%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 diff --git a/meson.changes b/meson.changes index cc89153..47c722f 100644 --- a/meson.changes +++ b/meson.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Wed Mar 21 10:20:37 UTC 2018 - sor.alexei@meowr.ru + +- Move from pre_checkin.sh to _multibuild. +- 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.. + ------------------------------------------------------------------- Mon Mar 12 22:04:53 UTC 2018 - dimstar@opensuse.org diff --git a/meson.spec b/meson.spec index cf8ddf1..c59be85 100644 --- a/meson.spec +++ b/meson.spec @@ -16,20 +16,20 @@ # -%define testsuite 0 -%if %{testsuite} -%define name_ext -testsuite +%define flavor @BUILD_FLAVOR@ +%if "%{flavor}" == "meson-testsuite" +%define testsuite 1 %else -%define name_ext %{nil} +%define testsuite 0 %endif %define _name mesonbuild -Name: meson%{name_ext} +Name: %{flavor} Version: 0.45.0 Release: 0 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 @@ -37,6 +37,10 @@ Source2: meson.keyring Patch0: meson-suse-ify-macros.patch # PATCH-FIX-OPENSUSE meson-fix-gcc48.patch sor.alexei@meowr.ru -- Fix GCC 4.8 handling for openSUSE Leap 42.x. Patch1: meson-fix-gcc48.patch +# PATCH-FIX-POENSUSE meson-restore-python3.4.patch -- Restore Python 3.4 support (reverts commit 0538009). +Patch2: meson-restore-python3.4.patch +# PATCH-FIX-OPENSUSE meson-suse-fix-llvm-3.8.patch -- Fix LLVM 3.8 tests. +Patch3: meson-suse-fix-llvm-3.8.patch # 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. Patch100: meson-test-installed-bin.patch BuildRequires: python3 @@ -64,7 +68,7 @@ BuildRequires: ncurses-devel BuildRequires: ninja BuildRequires: openmpi-devel BuildRequires: pkgconfig -BuildRequires: python3-devel +BuildRequires: python3-devel >= 3.4 BuildRequires: python3-gobject BuildRequires: python3-setuptools BuildRequires: vala @@ -125,6 +129,8 @@ This package provides support for meson.build files in Vim. %setup -q -n meson-%{version} %patch0 -p1 %patch1 -p1 +%patch2 -p1 +%patch3 -p1 %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 +181,11 @@ python3 run_tests.py %endif %files +%if 0%{?suse_version} >= 1500 %license COPYING +%else +%doc COPYING +%endif %if !%{testsuite} %{_bindir}/meson %{_bindir}/mesonconf diff --git a/pre_checkin.sh b/pre_checkin.sh deleted file mode 100644 index a3504f3..0000000 --- a/pre_checkin.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -sed meson.spec -e "s:%define testsuite 0:%define testsuite 1:" > meson-testsuite.spec -cp meson.changes meson-testsuite.changes -