1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
From: Pacho Ramos <pachoramos@gmail.com>
Date: Sun, 17 May 2026 13:30:00 +0200
Subject: [PATCH] build: fix missing girepository headers when python is disabled
Commit 0cc5960f introduced support for girepository-2.0 to accommodate
newer PyGObject versions, but placed the dependency resolution and library
linkage entirely inside the `if enable_python` block.
This caused that, with -Dplugins_python=disabled, the build system skipped
the introspection dependency logic entirely.
This patch fixes the build by:
- Moving the `girepository-2.0` capability check outside the python block
so it evaluates unconditionally.
- Extracting the `girepository` and `gobject_introspection` linkage in
`shell/meson.build` out of the python block, guaranteeing the C core
always receives the correct headers regardless of python plugin status.
Fixes: https://gitlab.gnome.org/GNOME/rhythmbox/-/work_items/2135
---
meson.build | 16 +++++++++-------
shell/meson.build | 7 ++++---
2 files changed, 13 insertions(+), 10 deletions(-)
diff '--color=auto' -ur rhythmbox-3.4.9.orig/meson.build rhythmbox-3.4.9/meson.build
--- rhythmbox-3.4.9.orig/meson.build 2026-05-17 13:00:24.885964255 +0200
+++ rhythmbox-3.4.9/meson.build 2026-05-17 13:13:58.823201484 +0200
@@ -145,18 +145,20 @@
enable_python = false
enable_gir2 = false
+
+if girepository.found() and libpeas.version() > '1.36'
+ enable_gir2 = true
+ cdata.set('USE_GIREPOSITORY2', 1)
+endif
+
python_install = python.find_installation('python3', required: get_option('plugins_python'))
pygobject = dependency('pygobject-3.0', version: '>= 3.0.0', required: get_option('plugins_python'))
if python_install.found() and pygobject.found()
enable_python = true
if pygobject.version() >= '3.53.0'
- # must have girepository-2.0 and a compatible version of libpeas for this to work
- if girepository.found() and libpeas.version() > '1.36'
- enable_gir2 = true
- cdata.set('USE_GIREPOSITORY2', 1)
- else
- error('cannot mix girepository 1.0 (via libpeas) and 2.0 (via pygobject)')
+ if not enable_gir2
+ error('pygobject >= 3.53 requires girepository-2.0 and libpeas > 1.36')
endif
elif pygobject.version() >= '3.52.0'
error('rhythmbox cannot be used with pygobject 3.52 due to girepository clashes')
Sólo en rhythmbox-3.4.9: meson.build~
diff '--color=auto' -ur rhythmbox-3.4.9.orig/shell/meson.build rhythmbox-3.4.9/shell/meson.build
--- rhythmbox-3.4.9.orig/shell/meson.build 2026-05-17 13:00:24.901710142 +0200
+++ rhythmbox-3.4.9/shell/meson.build 2026-05-17 13:08:20.446570691 +0200
@@ -93,11 +93,12 @@
if enable_python
rhythmbox_core_deps += [pygobject]
- if enable_gir2
- rhythmbox_core_deps += [girepository]
- else
- rhythmbox_core_deps += [gobject_introspection]
- endif
+endif
+
+if enable_gir2
+ rhythmbox_core_deps += [girepository]
+else
+ rhythmbox_core_deps += [gobject_introspection]
endif
librhythmbox_core = shared_library('rhythmbox-core',
Sólo en rhythmbox-3.4.9/shell: meson.build~
|