x11-libs/xapp: add 2.8.5

Bug: https://bugs.gentoo.org/934783
Bug: https://bugs.gentoo.org/926946
Signed-off-by: Matthew S. Turnbull <sparky@bluefang-logic.com>
Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>
This commit is contained in:
Matthew S. Turnbull
2024-06-23 21:53:41 -04:00
committed by Eli Schwartz
parent f566702e87
commit 8315c6dea3
4 changed files with 308 additions and 0 deletions

View File

@@ -1,2 +1,3 @@
DIST xapp-2.6.1.tar.gz 270606 BLAKE2B 0f2572b2e9ec4056bea0fc532f5327bd6de4741719a49b68180d45ff00fcea9b760acb362fc39d3f2dc9d94001b7021267a8a84c067aa90c5a201a46be76e97c SHA512 f96006fffac67b312caba644e8da75209c443688b08254b9bb5b17eb9148e66b35a8b1fe336e8880c7b950f8fc696884d8f5d610092c2cb44357ad3bf3ef43c7
DIST xapp-2.8.2.tar.gz 272539 BLAKE2B 1e2fb92b976196c2e9f36e322656ee40252e4c358a13361a054ead88e6fa3df35a53f1b0ee594df4189a68c1739c4a040558fac533ace095536fcc1dca76954b SHA512 97d19b95626a37fc08a0a159be741de5d9bcc034484e977bd739b91bd37122fcf2f3479285d544282a92c8fa180b116db1ad5e96fe19284c62287d3c5b135163
DIST xapp-2.8.5.tar.gz 274241 BLAKE2B 86b38dcab542e934f65e2fb11a5c1e7a5e26e8c725c5c91fed7bec6e0676f40ab6fd85b0421378e4860271ef1c9954d8c5a42b465232670d3d695dcda0734e0b SHA512 133a01309f0bc33a0aa73ee86eb8900573b4ab5b84e9e503b04b246448bce0b05880403288a739c5e252a2276311afba86c9c687887dd6e8c528734e328c6ee7

View File

@@ -0,0 +1,80 @@
From db45d22173d427eee3d673dc63b60b12c206b31d Mon Sep 17 00:00:00 2001
From: Sparky Bluefang <sparky@bluefang-logic.com>
Date: Sun, 23 Jun 2024 17:10:47 -0400
Subject: [PATCH] Allow installing gi override to multiple python installations
---
meson_options.txt | 9 +++++++--
pygobject/meson.build | 33 +++++++++++++++++++++------------
2 files changed, 28 insertions(+), 14 deletions(-)
diff --git a/meson_options.txt b/meson_options.txt
index 3ea5310..ccee240 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -9,10 +9,15 @@ option('deprecated_warnings',
description: 'Show build warnings for deprecations'
)
option('py-overrides-dir',
- type : 'string',
- value : '',
+ type : 'array',
+ value : [],
description: 'Path to pygobject overrides directory'
)
+option('python_target',
+ type: 'array',
+ value: ['python3'],
+ description: 'Python installation to target to lookup if py-overrides-dir not supplied'
+)
option('status-notifier',
type: 'boolean',
value: true,
diff --git a/pygobject/meson.build b/pygobject/meson.build
index da219f7..d5ffc09 100644
--- a/pygobject/meson.build
+++ b/pygobject/meson.build
@@ -3,22 +3,31 @@ pygobject = dependency('pygobject-3.0',
required: true,
)
-override_dir = get_option('py-overrides-dir')
+override_dirs = get_option('py-overrides-dir')
-if override_dir == ''
- exec = find_program(['python3', 'python'])
+if override_dirs.length() == 0 or override_dirs[0] == ''
+ override_dirs = []
- r = run_command(exec, '-c', 'import gi;print(gi._overridesdir)', check: false)
+ pymod = import('python')
+ python_targets = get_option('python_target')
- if r.returncode() != 0
- error('Error getting the GObject Introspection override directory: ' + r.stderr())
- endif
+ foreach python_target : python_targets
+ python_install = pymod.find_installation(python_target)
- override_dir = r.stdout().strip()
+ r = run_command(python_install, '-c', 'import gi;print(gi._overridesdir)', check: false)
+
+ if r.returncode() != 0
+ error('Error getting the GObject Introspection override directory: ' + r.stderr())
+ endif
+
+ override_dirs += r.stdout().strip()
+ endforeach
endif
-message('PyGObject overrides dir: ' + override_dir)
+message('PyGObject overrides dirs: @0@'.format(override_dirs))
-install_data(['XApp.py'],
- install_dir: override_dir,
-)
+foreach override_dir : override_dirs
+ install_data(['XApp.py'],
+ install_dir: override_dir,
+ )
+endforeach

View File

@@ -0,0 +1,102 @@
From 00f52c9f025b78aefd47637e2dd2c0cc8fd44d64 Mon Sep 17 00:00:00 2001
From: Sparky Bluefang <sparky@bluefang-logic.com>
Date: Thu, 13 Jun 2024 22:49:12 -0400
Subject: [PATCH] Add option to disable building introspection and vala
bindings.
---
libxapp/meson.build | 38 ++++++++++++++++++++++----------------
meson.build | 5 ++++-
meson_options.txt | 10 ++++++++++
3 files changed, 36 insertions(+), 17 deletions(-)
diff --git a/libxapp/meson.build b/libxapp/meson.build
index d4034cb..c419b8f 100644
--- a/libxapp/meson.build
+++ b/libxapp/meson.build
@@ -119,16 +119,18 @@ libxapp_dep = declare_dependency(
sources: [ xapp_headers, dbus_headers ]
)
-gir = gnome.generate_gir(libxapp,
- namespace: 'XApp',
- nsversion: '1.0',
- sources: xapp_headers + xapp_sources + dbus_headers + xapp_enums,
- identifier_prefix: 'XApp',
- symbol_prefix: 'xapp_',
- export_packages: 'xapp',
- includes: ['GObject-2.0', 'Gtk-3.0'],
- install: true
-)
+if get_option('introspection')
+ gir = gnome.generate_gir(libxapp,
+ namespace: 'XApp',
+ nsversion: '1.0',
+ sources: xapp_headers + xapp_sources + dbus_headers + xapp_enums,
+ identifier_prefix: 'XApp',
+ symbol_prefix: 'xapp_',
+ export_packages: 'xapp',
+ includes: ['GObject-2.0', 'Gtk-3.0'],
+ install: true
+ )
+endif
pkg.generate(
libraries: libxapp,
@@ -144,12 +146,16 @@ install_data(['xapp-glade-catalog.xml'],
install_dir : join_paths(get_option('datadir'), 'glade/catalogs')
)
-gnome.generate_vapi('xapp',
- packages: ['glib-2.0', 'gio-unix-2.0', 'gtk+-3.0'],
- sources: gir[0],
- metadata_dirs: meson.current_source_dir(),
- install: true
-)
+if get_option('vapi')
+ assert(is_variable('gir'), 'vapi requires introspection to be enabled')
+
+ gnome.generate_vapi('xapp',
+ packages: ['glib-2.0', 'gio-unix-2.0', 'gtk+-3.0'],
+ sources: gir[0],
+ metadata_dirs: meson.current_source_dir(),
+ install: true
+ )
+endif
if not app_lib_only
gtk3_module = shared_module(
diff --git a/meson.build b/meson.build
index 1783747..8b72f4b 100644
--- a/meson.build
+++ b/meson.build
@@ -47,7 +47,10 @@ top_inc = include_directories('.')
subdir('libxapp')
subdir('po')
subdir('schemas')
-subdir('pygobject')
+
+if get_option('introspection')
+ subdir('pygobject')
+endif
if not app_lib_only
subdir('icons')
diff --git a/meson_options.txt b/meson_options.txt
index 3ea5310..5bfb661 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -38,3 +38,13 @@ option('xfce',
value: true,
description: 'Install xfce specific items.'
)
+option('introspection',
+ type: 'boolean',
+ value: true,
+ description: 'Enable GObject Introspection.'
+)
+option('vapi',
+ type: 'boolean',
+ value: true,
+ description: 'Enable Vala bindings.'
+)

View File

@@ -0,0 +1,125 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..13} )
VALA_USE_DEPEND="vapigen"
inherit gnome2-utils vala meson python-r1
DESCRIPTION="Cross-desktop libraries and common resources"
HOMEPAGE="https://github.com/linuxmint/xapp/"
SRC_URI="https://github.com/linuxmint/xapp/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="LGPL-3 xfce? ( GPL-3 )"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
IUSE="gtk-doc introspection mate vala xfce"
REQUIRED_USE="${PYTHON_REQUIRED_USE} vala? ( introspection )"
DEPEND="
>=dev-libs/glib-2.44.0:2
dev-libs/libdbusmenu[gtk3]
gnome-base/libgnomekbd:=
x11-libs/cairo
>=x11-libs/gdk-pixbuf-2.22.0:2[introspection?]
>=x11-libs/gtk+-3.22.0:3[introspection?]
x11-libs/libxkbfile
x11-libs/libX11
x11-libs/pango
"
RDEPEND="
${PYTHON_DEPS}
${DEPEND}
introspection? (
dev-python/pygobject:3[${PYTHON_USEDEP}]
)
"
BDEPEND="
${PYTHON_DEPS}
dev-util/gdbus-codegen
dev-util/glib-utils
sys-apps/dbus
sys-devel/gettext
gtk-doc? (
dev-util/gtk-doc
)
introspection? (
dev-python/pygobject:3[${PYTHON_USEDEP}]
)
vala? (
$(vala_depend)
)
"
PATCHES=(
# Make introspection/vala optional
# https://github.com/linuxmint/xapp/pull/184
"${FILESDIR}"/${PN}-2.8.4-optional-introspection.patch
# Allow multiple gobject installation targets
# https://github.com/linuxmint/xapp/pull/183
"${FILESDIR}"/${PN}-2.8.4-multiple-python-targets.patch
# Don't install pastebin upload wrapper
"${FILESDIR}"/0001-don-t-install-pastebin-upload-wrapper.patch
)
src_prepare() {
use vala && vala_setup
default
# Fix meson helpers
python_setup
python_fix_shebang .
}
src_configure() {
local emesonargs=(
$(meson_use gtk-doc docs)
$(meson_use introspection)
$(meson_use mate)
$(meson_use vala vapi)
$(meson_use xfce)
)
if use introspection; then
local xapp_python_targets=()
get_xapp_python_targets() {
xapp_python_targets+=("${EPYTHON}")
}
python_foreach_impl get_xapp_python_targets
emesonargs+=(
-Dpython_target="$(echo "${xapp_python_targets[@]}" | tr ' ' ,)"
)
fi
meson_src_configure
}
src_install() {
meson_src_install
if use introspection; then
python_foreach_impl python_optimize
fi
}
pkg_postinst() {
xdg_icon_cache_update
gnome2_schemas_update
}
pkg_postrm() {
xdg_icon_cache_update
gnome2_schemas_update
}