From 2dda25348b82747ed550a3bb8408e6ecd4187a24 Mon Sep 17 00:00:00 2001 From: IdrisKalp Date: Tue, 10 Dec 2019 19:28:33 +0300 Subject: [PATCH] meson move to core --- system/devel/meson/actions.py | 23 +++++ system/devel/meson/files/212a05b8.patch | 91 ++++++++++++++++++++ system/devel/meson/files/fix-tests.patch | 24 ++++++ system/devel/meson/pspec.xml | 105 +++++++++++++++++++++++ system/devel/meson/translations.xml | 8 ++ 5 files changed, 251 insertions(+) create mode 100755 system/devel/meson/actions.py create mode 100644 system/devel/meson/files/212a05b8.patch create mode 100644 system/devel/meson/files/fix-tests.patch create mode 100755 system/devel/meson/pspec.xml create mode 100755 system/devel/meson/translations.xml diff --git a/system/devel/meson/actions.py b/system/devel/meson/actions.py new file mode 100755 index 00000000..834470cc --- /dev/null +++ b/system/devel/meson/actions.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import shelltools +from pisi.actionsapi import pythonmodules +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +def build(): + pythonmodules.compile(pyVer="3") + +def install(): + pythonmodules.install(pyVer="3") + + pisitools.insinto("/usr/share/vim/vimfiles", "data/syntax-highlighting/vim/*") + pisitools.insinto("/usr/share/emacs/site-lisp", "data/syntax-highlighting/emacs/*") + pisitools.insinto("/usr/share/zsh/site-functions", "data/shell-completions/zsh/*") + pisitools.remove("/usr/share/vim/vimfiles/README") + + pisitools.dodoc("COPYING", "README*") diff --git a/system/devel/meson/files/212a05b8.patch b/system/devel/meson/files/212a05b8.patch new file mode 100644 index 00000000..d78775dd --- /dev/null +++ b/system/devel/meson/files/212a05b8.patch @@ -0,0 +1,91 @@ +From 212a05b87ed34f921dfd07142305389dbfa9bb7d Mon Sep 17 00:00:00 2001 +From: Xavier Claessens +Date: Fri, 11 Oct 2019 11:01:22 -0400 +Subject: [PATCH] Remove duplicated object files in static libraries + +When a static library link_whole to a bunch of other static libraries, +we have to extract all their objects recursively. But that could +introduce duplicated objects. ar is dumb enough to allow this without +error, but once the resulting static library is linked into an +executable or shared library, the linker will complain about duplicated +symbols. +--- + mesonbuild/backend/backends.py | 3 ++- + test cases/unit/69 static link/lib/func17.c | 4 ++++ + test cases/unit/69 static link/lib/func18.c | 6 ++++++ + test cases/unit/69 static link/lib/func19.c | 7 +++++++ + test cases/unit/69 static link/lib/meson.build | 12 ++++++++++++ + 5 files changed, 31 insertions(+), 1 deletion(-) + create mode 100644 test cases/unit/69 static link/lib/func17.c + create mode 100644 test cases/unit/69 static link/lib/func18.c + create mode 100644 test cases/unit/69 static link/lib/func19.c + +diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py +index 947be1cbef..e54809657f 100644 +--- a/mesonbuild/backend/backends.py ++++ b/mesonbuild/backend/backends.py +@@ -281,7 +281,8 @@ def relpath(self, todir, fromdir): + os.path.join('dummyprefixdir', fromdir)) + + def flatten_object_list(self, target, proj_dir_to_build_root=''): +- return self._flatten_object_list(target, target.get_objects(), proj_dir_to_build_root) ++ obj_list = self._flatten_object_list(target, target.get_objects(), proj_dir_to_build_root) ++ return list(dict.fromkeys(obj_list)) + + def _flatten_object_list(self, target, objects, proj_dir_to_build_root): + obj_list = [] +diff --git a/test cases/unit/69 static link/lib/func17.c b/test cases/unit/69 static link/lib/func17.c +new file mode 100644 +index 0000000000..d1d8ec498c +--- /dev/null ++++ b/test cases/unit/69 static link/lib/func17.c +@@ -0,0 +1,4 @@ ++int func17() ++{ ++ return 1; ++} +diff --git a/test cases/unit/69 static link/lib/func18.c b/test cases/unit/69 static link/lib/func18.c +new file mode 100644 +index 0000000000..c149085ba4 +--- /dev/null ++++ b/test cases/unit/69 static link/lib/func18.c +@@ -0,0 +1,6 @@ ++int func17(); ++ ++int func18() ++{ ++ return func17() + 1; ++} +diff --git a/test cases/unit/69 static link/lib/func19.c b/test cases/unit/69 static link/lib/func19.c +new file mode 100644 +index 0000000000..69120e4bf8 +--- /dev/null ++++ b/test cases/unit/69 static link/lib/func19.c +@@ -0,0 +1,7 @@ ++int func17(); ++int func18(); ++ ++int func19() ++{ ++ return func17() + func18(); ++} +diff --git a/test cases/unit/69 static link/lib/meson.build b/test cases/unit/69 static link/lib/meson.build +index 5f04aab6a1..8f95fc4546 100644 +--- a/test cases/unit/69 static link/lib/meson.build ++++ b/test cases/unit/69 static link/lib/meson.build +@@ -66,3 +66,15 @@ libfunc15 = static_library('func15', 'func15.c', + libfunc16 = static_library('func16', 'func16.c', + link_with : libfunc15, + install : true) ++ ++# Verify func17.c.o gets included only once into libfunc19, otherwise ++# func19-shared would failed with duplicated symbol. ++libfunc17 = static_library('func17', 'func17.c', ++ install : false) ++libfunc18 = static_library('func18', 'func18.c', ++ link_with : libfunc17, ++ install : false) ++libfunc19 = static_library('func19', 'func19.c', ++ link_whole : [libfunc17, libfunc18], ++ install : false) ++shared_library('func19-shared', link_whole : [libfunc19]) diff --git a/system/devel/meson/files/fix-tests.patch b/system/devel/meson/files/fix-tests.patch new file mode 100644 index 00000000..60845e3f --- /dev/null +++ b/system/devel/meson/files/fix-tests.patch @@ -0,0 +1,24 @@ +diff -Nuar "a/test cases/frameworks/15 llvm/meson.build" "b/test cases/frameworks/15 llvm/meson.build" +--- "a/test cases/frameworks/15 llvm/meson.build" 2017-10-08 22:22:05.000000000 +0300 ++++ "b/test cases/frameworks/15 llvm/meson.build" 2017-12-07 18:31:23.786683687 +0300 +@@ -17,5 +17,5 @@ + llvm_dep, + dependency('zlib'), + meson.get_compiler('c').find_library('dl', required : false), +- dependency('tinfo'), ++ dependency('ncursesw'), + ]) +diff -Nuar "a/test cases/frameworks/4 qt/meson.build" "b/test cases/frameworks/4 qt/meson.build" +--- "a/test cases/frameworks/4 qt/meson.build" 2017-10-08 21:47:57.000000000 +0300 ++++ "b/test cases/frameworks/4 qt/meson.build" 2017-12-07 18:33:49.091673203 +0300 +@@ -77,8 +77,9 @@ + moc_headers : 'plugin/plugin.h', + include_directories : plugin_includes + ) +- plugin = library('plugin', 'plugin/plugin.cpp', pluginpreprocess, ++ plugin = library(qt + 'plugin', 'plugin/plugin.cpp', pluginpreprocess, + include_directories : plugin_includes, + dependencies : qtcore) ++ endif + endif + endforeach diff --git a/system/devel/meson/pspec.xml b/system/devel/meson/pspec.xml new file mode 100755 index 00000000..40402d92 --- /dev/null +++ b/system/devel/meson/pspec.xml @@ -0,0 +1,105 @@ + + + + + meson + http://mesonbuild.com/ + + PisiLinux Community + admins@pisilinux.org + + Apache + app:console + High productivity build system + Yüksek verimli üretme sistemi + https://github.com/mesonbuild/meson/releases/download/0.52.1/meson-0.52.1.tar.gz + + python3-devel + python3-setuptools + + + 212a05b8.patch + + + + meson + + python3-setuptools + python3 + ninja + + + /usr/bin + /usr/lib + /usr/share + /usr/share/man + /usr/share/vim + /usr/share/doc + + + + + 2019-12.10 + 0.52.1 + Version bump. + Idris Kalp + idriskalp@gmail.com + + + 2019-11-17 + 0.52.0 + Version bump. + Mustafa Cinasal + muscnsl@gmail.com + + + 2019-10-06 + 0.51.2 + Version bump. + Mustafa Cinasal + muscnsl@gmail.com + + + 2018-11-09 + 0.48.2 + Version bump + Mustafa Cinasal + muscnsl@gmail.com + + + 2018-07-31 + 0.47.0 + Version bump + Mustafa Cinasal + muscnsl@gmail.com + + + 2018-05-13 + 0.46.0 + Version bump + Mustafa Cinasal + muscnsl@gmail.com + + + 2018-04-08 + 0.45.1 + Version bump + Mustafa Cinasal + muscnsl@gmail.com + + + 2018-02-22 + 0.44.1 + Version bump + Mustafa Cinasal + muscnsl@gmail.com + + + 2017-12-07 + 0.43.0 + First release. + PisiLinux Community + admins@pisilinux.org + + + diff --git a/system/devel/meson/translations.xml b/system/devel/meson/translations.xml new file mode 100755 index 00000000..aa3ba686 --- /dev/null +++ b/system/devel/meson/translations.xml @@ -0,0 +1,8 @@ + + + + meson + High productivity build system + Yüksek verimli üretme sistemi + +