dev-util/gnome-builder: bump to 3.28.4

Package-Manager: Portage-2.3.48, Repoman-2.3.10
This commit is contained in:
Mart Raudsepp
2018-08-29 09:48:06 +03:00
parent 6edc7e830f
commit 72eade86ba
8 changed files with 420 additions and 0 deletions

View File

@@ -1 +1,2 @@
DIST gnome-builder-3.24.2.tar.xz 4342908 BLAKE2B 5dca80d2e948041bc096fa9a2a5d39322c6fedb0560e3e4f3c60c7b0657c7c62e89387a63f7d050c3df90d8c129485bc5495039802548b22ae268d94c14a37ae SHA512 dec133ad3c5ef96a036598ebbe684667dc44f73d8643e700f1e776cf8eb860b99c1d333f1fed5bc896cb7bdcf607eb51fedb7bb1f5b0cc662e4b2703d74140bf
DIST gnome-builder-3.28.4.tar.xz 9309060 BLAKE2B a4402452ffaf64cc767edb9cba65b74a88cb77d04ca2ffecd3b01c53382930891c2c03e2528861f4d28ca3643465b6767235e945f44cc37d2d716bcbb3ab25c8 SHA512 ef83b909f295d83478aa7d5deb8b5d8291ddf6134e147e88452cdba8ff449a2415d0381d63d3f82cf28942b1096a704de64540c8cdf5f06c21c8278c93fbbc03

View File

@@ -0,0 +1,42 @@
From 054ef6d2e47da9f41e7c24908b251d074e11a03b Mon Sep 17 00:00:00 2001
From: Christian Hergert <chergert@redhat.com>
Date: Wed, 8 Aug 2018 13:03:50 -0700
Subject: [PATCH] help: fix get_option() to check for proper value
We want to check for help docs, not sdk docs. Also, if enabled, don't be
automatic about it. Fail hard so the caller knows there is an issue.
---
doc/help/meson.build | 18 ++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)
diff --git a/doc/help/meson.build b/doc/help/meson.build
index 1336e6a26..e684f078c 100644
--- a/doc/help/meson.build
+++ b/doc/help/meson.build
@@ -1,15 +1,13 @@
-if get_option('with_docs')
+if get_option('with_help')
-sphinx = find_program(['sphinx-build-3', 'sphinx-build'], required: false)
+sphinx = find_program(['sphinx-build-3', 'sphinx-build'], required: true)
-if sphinx.found()
- custom_target('en user documentation',
- command: [sphinx, '-b', 'html', '-c', meson.current_source_dir(), meson.current_source_dir(), '@OUTPUT@'],
- output: 'en',
- build_by_default: true)
+custom_target('en user documentation',
+ command: [sphinx, '-b', 'html', '-c', meson.current_source_dir(), meson.current_source_dir(), '@OUTPUT@'],
+ output: 'en',
+ build_by_default: true
+)
-
- install_subdir(meson.current_build_dir() + '/en', install_dir: pkgdocdir_abs)
-endif
+install_subdir(meson.current_build_dir() + '/en', install_dir: pkgdocdir_abs)
endif
--
2.17.0

View File

@@ -0,0 +1,26 @@
From a66b2d99f21bff6986b0dda5b7cc9ee393be934a Mon Sep 17 00:00:00 2001
From: Mart Raudsepp <leio@gentoo.org>
Date: Wed, 29 Aug 2018 12:30:14 +0300
Subject: [PATCH] build: Fix GSETTINGS_SCHEMA_DIR envvar handling in tests
GSETTINGS_SCHEMA_DIR does not support multiple colon-separated paths.
---
src/tests/meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/tests/meson.build b/src/tests/meson.build
index 646f6f875..42c0e6d28 100644
--- a/src/tests/meson.build
+++ b/src/tests/meson.build
@@ -16,7 +16,7 @@ ide_test_env = [
'G_TEST_BUILDDIR=@0@'.format(meson.current_build_dir()),
'G_DEBUG=gc-friendly',
'GSETTINGS_BACKEND=memory',
- 'GSETTINGS_SCHEMA_DIR=@0@/data/gsettings:$(GSETTINGS_SCHEMA_DIR)'.format(meson.build_root()),
+ 'GSETTINGS_SCHEMA_DIR=@0@/data/gsettings'.format(meson.build_root()),
'PYTHONDONTWRITEBYTECODE=yes',
'MALLOC_CHECK_=2',
# 'MALLOC_PERTURB_=$((${RANDOM:-256} % 256))',
--
2.17.0

View File

@@ -0,0 +1,93 @@
From 799a378b96cad5dc9b1093604e76ed362d22f4cc Mon Sep 17 00:00:00 2001
From: Christian Hergert <chergert@redhat.com>
Date: Sun, 27 May 2018 20:19:34 -0700
Subject: [PATCH] jedi: minimal attempt to get things working again
This tries to get some of our jedi code working with recent API changes
in the jedi project.
This is just a minimal fix, and I'd expect some others may be needed for
improved functionality.
Fixes #403
---
src/plugins/jedi/jedi_plugin.py | 44 ++++++++++++++++++++++-----------
1 file changed, 29 insertions(+), 15 deletions(-)
diff --git a/src/plugins/jedi/jedi_plugin.py b/src/plugins/jedi/jedi_plugin.py
index fd8e15d68..052500da1 100644
--- a/src/plugins/jedi/jedi_plugin.py
+++ b/src/plugins/jedi/jedi_plugin.py
@@ -91,8 +91,14 @@ try:
import jedi
from jedi.evaluate.compiled import CompiledObject
from jedi.evaluate.compiled import get_special_object
- from jedi.evaluate.compiled import _create_from_name
- from jedi.evaluate.context import Context
+ try:
+ # 0.12
+ from jedi.evaluate.compiled import create_from_name
+ from jedi.evaluate.base_context import Context
+ except ImportError:
+ # Pre 0.12
+ from jedi.evaluate.compiled import _create_from_name as create_from_name
+ from jedi.evaluate.context import Context
from jedi.evaluate.docstrings import _evaluate_for_statement_string
from jedi.evaluate.imports import Importer
@@ -175,23 +181,31 @@ try:
pass
return module_list
- original_jedi_get_module = jedi.evaluate.compiled.fake.get_module
-
- def patched_jedi_get_module(obj):
- "Work around a weird bug in jedi"
- try:
- return original_jedi_get_module(obj)
- except ImportError as e:
- if e.msg == "No module named 'gi._gobject._gobject'":
- return original_jedi_get_module('gi._gobject')
+ try:
+ # Pre 0.12 workaround
+ # TODO: What needs to be fixed here for 0.12?
+ original_jedi_get_module = jedi.evaluate.compiled.fake.get_module
+ def patched_jedi_get_module(obj):
+ "Work around a weird bug in jedi"
+ try:
+ return original_jedi_get_module(obj)
+ except ImportError as e:
+ if e.msg == "No module named 'gi._gobject._gobject'":
+ return original_jedi_get_module('gi._gobject')
+ jedi.evaluate.compiled.fake.get_module = patched_jedi_get_module
+ except:
+ pass
- jedi.evaluate.compiled.fake.get_module = patched_jedi_get_module
jedi.evaluate.compiled.CompiledObject = PatchedJediCompiledObject
- jedi.evaluate.instance.CompiledBoundMethod = PatchedCompiledBoundMethod
+ try:
+ jedi.evaluate.instance.CompiledBoundMethod = PatchedCompiledBoundMethod
+ except AttributeError:
+ jedi.evaluate.context.instance.CompiledBoundMethod = PatchedCompiledBoundMethod
jedi.evaluate.imports.Importer = PatchedJediImporter
HAS_JEDI = True
-except ImportError:
+except ImportError as ex:
print("jedi not found, python auto-completion not possible.")
+ print(ex)
HAS_JEDI = False
GIR_PATH_LIST = []
@@ -376,7 +390,7 @@ class JediCompletionProvider(Ide.Object, GtkSource.CompletionProvider, Ide.Compl
return False
def do_populate(self, context):
- self.current_word = Ide.CompletionProvider.context_current_word(context)
+ self.current_word = Ide.CompletionProvider.context_current_word(context) or ''
self.current_word_lower = self.current_word.lower()
_, iter = context.get_iter()
--
2.17.0

View File

@@ -0,0 +1,57 @@
From e1d32d76231b1051a2380995f4a7822aa525375a Mon Sep 17 00:00:00 2001
From: Simon McVittie <smcv@debian.org>
Date: Wed, 11 Jul 2018 11:57:06 +0100
Subject: [PATCH] Python: Avoid identifier 'async', which became a keyword in
3.7
This is an incompatible change, but so is async becoming an identifier.
Fixes: #565
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=903558
Signed-off-by: Simon McVittie <smcv@debian.org>
---
src/libide/Ide.py | 6 +++---
src/plugins/jedi/jedi_plugin.py | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/libide/Ide.py b/src/libide/Ide.py
index 02bb61937..07d429c7a 100644
--- a/src/libide/Ide.py
+++ b/src/libide/Ide.py
@@ -41,9 +41,9 @@ class _Gio_DBusMethodInfo:
in_args = None
out_signature = None
-def DBusMethod(dbus_interface, in_signature=None, out_signature=None, async=False):
+def DBusMethod(dbus_interface, in_signature=None, out_signature=None, is_async=False):
def decorator(func):
- func._is_async = async
+ func._is_async = is_async
func._dbus_method = _Gio_DBusMethodInfo()
func._dbus_method.interface = dbus_interface
@@ -54,7 +54,7 @@ def DBusMethod(dbus_interface, in_signature=None, out_signature=None, async=Fals
in_signature_list = GLib.Variant.split_signature('('+in_signature+')')
arg_names = inspect.getargspec(func).args
arg_names.pop(0) # eat "self" argument
- if async: arg_names.pop(0) # eat "invocation"
+ if is_async: arg_names.pop(0) # eat "invocation"
if len(in_signature) != len(arg_names):
raise TypeError('specified signature %s for method %s does not match length of arguments' % (str(in_signature_list), func.func_name))
for pair in zip(in_signature_list, arg_names):
diff --git a/src/plugins/jedi/jedi_plugin.py b/src/plugins/jedi/jedi_plugin.py
index 84bd11c27..a346a342e 100644
--- a/src/plugins/jedi/jedi_plugin.py
+++ b/src/plugins/jedi/jedi_plugin.py
@@ -688,7 +688,7 @@ class JediService(Ide.DBusService):
self.queue = {}
self.handler_id = 0
- @Ide.DBusMethod('org.gnome.builder.plugins.jedi', in_signature='siis', out_signature='a(issass)', async=True)
+ @Ide.DBusMethod('org.gnome.builder.plugins.jedi', in_signature='siis', out_signature='a(issass)', is_async=True)
def CodeComplete(self, invocation, filename, line, column, content):
if filename in self.queue:
request = self.queue.pop(filename)
--
2.17.0

View File

@@ -0,0 +1,15 @@
diff --git a/src/plugins/vala-pack/meson.build b/src/plugins/vala-pack/meson.build
index dd36d351d..a8c53c6e5 100644
--- a/src/plugins/vala-pack/meson.build
+++ b/src/plugins/vala-pack/meson.build
@@ -6,8 +6,8 @@ endif
add_languages('vala')
-valac = find_program ('valac')
-libvala_version = run_command(valac, '--api-version').stdout().strip()
+valac = meson.get_compiler('vala')
+libvala_version = run_command(valac.cmd_array()[0], '--api-version').stdout().strip()
libvala = dependency('libvala-@0@'.format(libvala_version))
vala_pack_sources = [

View File

@@ -0,0 +1,185 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=( python3_{4,5,6} )
VALA_MIN_API_VERSION="0.36"
DISABLE_AUTOFORMATTING=1
FORCE_PRINT_ELOG=1
inherit gnome.org gnome2-utils llvm meson python-single-r1 readme.gentoo-r1 vala virtualx xdg
DESCRIPTION="An IDE for writing GNOME-based software"
HOMEPAGE="https://wiki.gnome.org/Apps/Builder"
# FIXME: Review licenses at some point
LICENSE="GPL-3+ GPL-2+ LGPL-3+ LGPL-2+ MIT CC-BY-SA-3.0 CC0-1.0"
SLOT="0"
KEYWORDS="~amd64"
IUSE="clang +devhelp doc +git gtk-doc sysprof vala webkit"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
# When bumping, pay attention to all the included plugins/*/meson.build (and other) build files and the requirements within.
# `grep -rI dependency * --include='meson.build'` can give a good initial idea for external deps and their double checking.
# The listed RDEPEND order shold roughly match that output as well, with toplevel one first.
# Most plugins have no extra requirements and default to enabled; we need to handle the ones with extra requirements. Many of
# them have optional runtime dependencies, for which we try to at least notify the user via DOC_CONTENTS (but not all small
# things); `grep -rI -e 'command-pattern.*=' -e 'push_arg'` can give a (spammy) idea, plus python imports in try/except.
# FIXME: with_flatpak needs flatpak.pc >=0.8.0, ${LIBGIT_DEPS} and libsoup-2.4.pc >=2.52.0
# Editorconfig needs old pcre, with vte migrating away, might want it optional or ported to pcre2?
# An introspection USE flag of a dep is required if any introspection based language plugin wants to use it (grep for gi.repository). Last full check at 3.28.4
# These are needed with either USE=git or USE=flatpak (albeit the latter isn't supported yet)
LIBGIT_DEPS="
dev-libs/libgit2[ssh,threads]
>=dev-libs/libgit2-glib-0.25.0[ssh]
"
# TODO: Handle llvm slots via llvm.eclass; see plugins/clang/meson.build
RDEPEND="
>=dev-libs/libdazzle-3.28.0[introspection,vala?]
>=dev-libs/glib-2.56.0:2
>=x11-libs/gtk+-3.22.26:3[introspection]
>=x11-libs/gtksourceview-3.24.0:3.0[introspection]
>=dev-libs/json-glib-1.2.0
>=dev-libs/jsonrpc-glib-3.28.0[vala?]
>=x11-libs/pango-1.38.0
>=dev-libs/libpeas-1.22.0[python,${PYTHON_USEDEP}]
>=dev-libs/template-glib-3.28.0[introspection,vala?]
>=x11-libs/vte-0.40.2:2.91[vala?]
>=dev-libs/libxml2-2.9.0
git? ( ${LIBGIT_DEPS} )
dev-libs/libpcre:3
webkit? ( >=net-libs/webkit-gtk-2.12.0:4=[introspection] )
>=dev-libs/gobject-introspection-1.48.0:=
>=dev-python/pygobject-3.22.0:3[${PYTHON_USEDEP}]
${PYTHON_DEPS}
clang? ( sys-devel/clang:= )
devhelp? ( >=dev-util/devhelp-3.25.1:= )
sysprof? ( >=dev-util/sysprof-3.28.0[gtk] )
vala? (
dev-lang/vala:=
$(vala_depend)
)
" # We use subslot operator dep on vala in addition to $(vala_depend), because we have _runtime_
# usage in vapa-pack plugin and need it rebuilt before removing an older vala it was built against
# TODO: runtime ctags path finding..
# FIXME: spellcheck plugin temporarily disabled due to requiring enchant-2
# >=app-text/gspell-1.2.0
# >=app-text/enchant:2
# desktop-file-utils required for tests, but we have it in deptree for xdg update-desktop-database anyway, so be explicit and unconditional
# appstream-glib needed for appdata.xml gettext translation and validation of it with appstream-util with FEATURES=test
DEPEND="${RDEPEND}
doc? ( dev-python/sphinx )
dev-libs/appstream-glib
dev-util/desktop-file-utils
>=sys-devel/gettext-0.19.8
virtual/pkgconfig
"
DOC_CONTENTS='gnome-builder can use various other dependencies on runtime to provide
extra capabilities beyond these expressed via USE flags. Some of these
that are currently available with packages include:
* dev-util/uncrustify and dev-python/autopep8 for various Code Beautifier
plugin out of the box functionality.
* dev-util/ctags with exuberant-ctags selected via "eselect ctags" for
C, C++, Python, JavaScript, CSS, HTML and Ruby autocompletion, semantic
highlighting and symbol resolving support.
* dev-python/jedi and dev-python/lxml for more accurate Python
autocompletion support.
* dev-util/valgrind for integration with valgrind.
* dev-util/meson for integration with the Meson build system.
* dev-util/cargo for integration with the Rust Cargo build system.
* dev-util/cmake for integration with the CMake build system.
* net-libs/nodejs[npm] for integration with the NPM package system.
'
# FIXME: Package gnome-code-assistance and mention here, or maybe USE flag and default enable because it's rather important
# eslint for additional diagnostics in JavaScript files (what package has this? At least something via NPM..)
# jhbuild support
# rust language server via rls; Go via go-langserver
# autotools stuff for autotools plugin; gtkmm/autoconf-archive for C++ template
# gjs/gettext/mono/PHPize stuff, but most of these are probably installed for other reasons anyways, when needed inside IDE
PATCHES=(
"${FILESDIR}"/${PV}-python37-fix.patch # async 3.7 keyword usage removal
"${FILESDIR}"/${PV}-jedi-0.12-compat.patch # preliminary jedi-0.12 compatibility from 3.29.9x/git
"${FILESDIR}"/${PV}-valac.patch # Make valapack honor VALAC env var - https://gitlab.gnome.org/GNOME/gnome-builder/merge_requests/109
"${FILESDIR}"/${PV}-fix-docs-option.patch # Fix USE=doc to work without USE=gtk-doc
"${FILESDIR}"/${PV}-fix-tests-schemadir.patch # Fix tests GSETTINGS_SCHEMA_DIR handling (or tests fail on fresh install) - https://gitlab.gnome.org/GNOME/gnome-builder/merge_requests/111
)
llvm_check_deps() {
has_version "sys-devel/clang:${LLVM_SLOT}"
}
pkg_setup() {
python-single-r1_pkg_setup
use clang && llvm_pkg_setup
}
src_prepare() {
use vala && vala_src_prepare
xdg_src_prepare
}
src_configure() {
local emesonargs=(
-Denable_tracing=false
-Denable_profiling=false # not passing -pg to CFLAGS
-Dwith_channel=other
-Dwith_editorconfig=true # needs libpcre
$(meson_use webkit with_webkit)
$(meson_use vala with_vapi)
$(meson_use doc with_help)
$(meson_use gtk-doc with_docs)
$(meson_use clang with_clang)
$(meson_use devhelp with_devhelp)
-Dwith_deviced=false
-Dwith_flatpak=false
$(meson_use git with_git)
$(meson_use webkit with_html_preview)
-Dwith_spellcheck=false # TODO: requires enchant-2
$(meson_use sysprof with_sysprof)
$(meson_use vala with_vala_pack)
)
meson_src_configure
}
src_install() {
meson_src_install
if use doc; then
rm "${ED}"/usr/share/doc/gnome-builder/en/.buildinfo || die
rm "${ED}"/usr/share/doc/gnome-builder/en/objects.inv || die
rm -r "${ED}"/usr/share/doc/gnome-builder/en/.doctrees || die
# custom docdir in build system, blocked by https://github.com/mesonbuild/meson/issues/825
mv "${ED}"/usr/share/doc/gnome-builder/en "${ED}"/usr/share/doc/${PF}/html || die
# _sources subdir left in on purpose, as HTML links to the rst files as "View page source". Additionally default docompress exclusion of /html/ already ensures they aren't compressed, thus linkable as-is.
rmdir "${ED}"/usr/share/doc/gnome-builder/ || die
fi
readme.gentoo_create_doc
}
pkg_postinst() {
xdg_pkg_postinst
gnome2_icon_cache_update
gnome2_schemas_update
readme.gentoo_print_elog
}
pkg_postrm() {
xdg_pkg_postrm
gnome2_icon_cache_update
gnome2_schemas_update
}
src_test() {
# FIXME: this should be handled at meson level upstream like epiphany does
find "${S}" -name '*.gschema.xml' -exec cp {} "${BUILD_DIR}/data/gsettings" \; || die
"${EROOT}${GLIB_COMPILE_SCHEMAS}" --allow-any-name "${BUILD_DIR}/data/gsettings" || die
virtx meson_src_test
}

View File

@@ -7,6 +7,7 @@
</maintainer>
<use>
<flag name="clang">Provide integration with <pkg>sys-devel/clang</pkg> for best possible C/C++ autocompletion, semantic highlighting, symbol resolving, and diagnostics support</flag>
<flag name="devhelp">Provide API docs browsing and integration via <pkg>dev-util/devhelp</pkg></flag>
<flag name="git">Provide support for the Git version control system via <pkg>dev-libs/libgit2-glib</pkg>
(such as setup of Git for New Project, direct cloning for Open Project and changed lines indicators in the editor gutter)</flag>
<flag name="sysprof">Provide an integrated profiler via <pkg>dev-util/sysprof</pkg></flag>