Files
2025-11-19 14:30:31 +03:00

561 lines
17 KiB
Diff

From 933233e840b4e408813399d2ee56b3c6f581cef0 Mon Sep 17 00:00:00 2001
From: David Mohammed <fossfreedom@users.noreply.github.com>
Date: Tue, 13 May 2025 23:26:22 +0100
Subject: [PATCH] Libpeas2 (#490)
* Compile wayland applets with libpeas-2
* For the python wayland applets ensure Loader=python for the plugin file
* Cleanup usage of am_cflags for compilation - this is defined at the top level meson.build
* Add takeabreak to build with libpeas2
---
...ppLauncher.plugin => AppLauncher.plugin.in} | 2 +-
.../src/budgie-app-launcher/meson.build | 9 ++++++++-
budgie-applications-menu/meson.build | 1 -
budgie-brightness-controller/meson.build | 15 ---------------
...Works.plugin => BudgieClockWorks.plugin.in} | 2 +-
budgie-clockworks/meson.build | 12 +++++++++---
.../{CountDown.plugin => CountDown.plugin.in} | 2 +-
budgie-countdown/meson.build | 10 +++++++++-
budgie-extras-daemon/meson.build | 15 ---------------
budgie-fuzzyclock/meson.build | 16 ----------------
budgie-fuzzyclock/src/meson.build | 2 +-
budgie-hotcorners/meson.build | 16 ----------------
...angaroo.plugin => BudgieKangaroo.plugin.in} | 2 +-
budgie-kangaroo/meson.build | 10 +++++++++-
budgie-quicknote/meson.build | 5 +----
budgie-recentlyused/src/meson.build | 2 +-
budgie-showtime/meson.build | 18 ------------------
...Break.plugin => BudgieTakeaBreak.plugin.in} | 2 +-
budgie-takeabreak/meson.build | 10 +++++++++-
budgie-wallstreet/meson.build | 16 ----------------
budgie-weathershow/meson.build | 16 ----------------
budgie-weathershow/src/weathershow/meson.build | 3 +--
budgie-window-shuffler/meson.build | 16 ----------------
budgie-wswitcher/meson.build | 16 ----------------
meson.build | 17 ++++++++++++++---
25 files changed, 67 insertions(+), 168 deletions(-)
rename budgie-app-launcher/src/budgie-app-launcher/{AppLauncher.plugin => AppLauncher.plugin.in} (93%)
rename budgie-clockworks/{BudgieClockWorks.plugin => BudgieClockWorks.plugin.in} (93%)
rename budgie-countdown/{CountDown.plugin => CountDown.plugin.in} (93%)
rename budgie-kangaroo/{BudgieKangaroo.plugin => BudgieKangaroo.plugin.in} (93%)
rename budgie-takeabreak/{BudgieTakeaBreak.plugin => BudgieTakeaBreak.plugin.in} (93%)
diff --git a/budgie-app-launcher/src/budgie-app-launcher/AppLauncher.plugin b/budgie-app-launcher/src/budgie-app-launcher/AppLauncher.plugin.in
similarity index 93%
rename from budgie-app-launcher/src/budgie-app-launcher/AppLauncher.plugin
rename to budgie-app-launcher/src/budgie-app-launcher/AppLauncher.plugin.in
index e0d35944..d5a8154f 100644
--- a/budgie-app-launcher/src/budgie-app-launcher/AppLauncher.plugin
+++ b/budgie-app-launcher/src/budgie-app-launcher/AppLauncher.plugin.in
@@ -1,5 +1,5 @@
[Plugin]
-Loader=python3
+Loader=@PYTHON@
Module=AppLauncher
Name=App Launcher
Description=App Launcher
diff --git a/budgie-app-launcher/src/budgie-app-launcher/meson.build b/budgie-app-launcher/src/budgie-app-launcher/meson.build
index 155ec070..61301c04 100644
--- a/budgie-app-launcher/src/budgie-app-launcher/meson.build
+++ b/budgie-app-launcher/src/budgie-app-launcher/meson.build
@@ -1,8 +1,15 @@
+configdata= configuration_data()
+configdata.set('PYTHON', python_loader)
+plugininstall = configure_file(
+ input: 'AppLauncher.plugin.in',
+ output: 'AppLauncher.plugin',
+ configuration: configdata
+)
install_data(
'App.py',
'AppButton.py',
- 'AppLauncher.plugin',
+ plugininstall,
'AppLauncher.py',
'AppLauncherApplet.py',
'ArrowButton.py',
diff --git a/budgie-applications-menu/meson.build b/budgie-applications-menu/meson.build
index 38f0c4c3..fa72e437 100644
--- a/budgie-applications-menu/meson.build
+++ b/budgie-applications-menu/meson.build
@@ -33,7 +33,6 @@ if libhandy_dep.found()
else
libhandy_dep = dependency('libhandy-0.0')
endif
-peas_dep = dependency('libpeas-gtk-1.0')
plank_dep = dependency('plank', required: false)
if plank_dep.version().version_compare('>=0.10.9')
add_project_arguments('--define=HAS_PLANK', language: 'vala')
diff --git a/budgie-brightness-controller/meson.build b/budgie-brightness-controller/meson.build
index 9025b35e..f837d8e7 100644
--- a/budgie-brightness-controller/meson.build
+++ b/budgie-brightness-controller/meson.build
@@ -1,18 +1,3 @@
-am_cflags = [
- '-fstack-protector',
- '-pedantic',
- '-Wstrict-prototypes',
- '-Wundef',
- '-Werror-implicit-function-declaration',
- '-Wformat',
- '-Wformat-security',
- '-Werror=format-security',
- '-Wconversion',
- '-Wunused-variable',
- '-Wunreachable-code',
- '-Wall',
- '-W'
-]
PLUGIN = 'budgie-brightness-controller'
LIB_INSTALL_DIR = join_paths(prefix, libdir, 'budgie-desktop', 'plugins', PLUGIN)
diff --git a/budgie-clockworks/BudgieClockWorks.plugin b/budgie-clockworks/BudgieClockWorks.plugin.in
similarity index 93%
rename from budgie-clockworks/BudgieClockWorks.plugin
rename to budgie-clockworks/BudgieClockWorks.plugin.in
index d6846e61..55de13a8 100644
--- a/budgie-clockworks/BudgieClockWorks.plugin
+++ b/budgie-clockworks/BudgieClockWorks.plugin.in
@@ -1,5 +1,5 @@
[Plugin]
-Loader=python3
+Loader=@PYTHON@
Module=budgie_clockworks
Name=ClockWorks
Description=Applet showing multiple timezones
diff --git a/budgie-clockworks/meson.build b/budgie-clockworks/meson.build
index d57431e8..af471852 100644
--- a/budgie-clockworks/meson.build
+++ b/budgie-clockworks/meson.build
@@ -1,9 +1,15 @@
-#gnome = import('gnome')
-
PLUGIN = 'budgie-clockworks'
+configdata= configuration_data()
+configdata.set('PYTHON', python_loader)
+plugininstall = configure_file(
+ input: 'BudgieClockWorks.plugin.in',
+ output: 'BudgieClockWorks.plugin',
+ configuration: configdata
+)
+
install_data(
- 'BudgieClockWorks.plugin',
+ plugininstall,
'cwtools.py',
'budgie_clockworks.py',
install_dir: join_paths(PLUGINS_INSTALL_DIR, PLUGIN)
diff --git a/budgie-countdown/CountDown.plugin b/budgie-countdown/CountDown.plugin.in
similarity index 93%
rename from budgie-countdown/CountDown.plugin
rename to budgie-countdown/CountDown.plugin.in
index cb5eed2f..61d9126e 100644
--- a/budgie-countdown/CountDown.plugin
+++ b/budgie-countdown/CountDown.plugin.in
@@ -1,5 +1,5 @@
[Plugin]
-Loader=python3
+Loader=@PYTHON@
Module=budgie-countdown
Name=Count Down
Description=Count down applet with options
diff --git a/budgie-countdown/meson.build b/budgie-countdown/meson.build
index 01d53cfa..3ffa7f81 100644
--- a/budgie-countdown/meson.build
+++ b/budgie-countdown/meson.build
@@ -2,8 +2,16 @@
PLUGIN = 'budgie-countdown'
+configdata= configuration_data()
+configdata.set('PYTHON', python_loader)
+plugininstall = configure_file(
+ input: 'CountDown.plugin.in',
+ output: 'CountDown.plugin',
+ configuration: configdata
+)
+
install_data(
- 'CountDown.plugin',
+ plugininstall,
'budgie-countdown.py',
install_dir: join_paths(PLUGINS_INSTALL_DIR, PLUGIN)
)
diff --git a/budgie-extras-daemon/meson.build b/budgie-extras-daemon/meson.build
index 5ee59d2c..09dca09e 100644
--- a/budgie-extras-daemon/meson.build
+++ b/budgie-extras-daemon/meson.build
@@ -1,18 +1,3 @@
-am_cflags = [
- '-fstack-protector',
- '-pedantic',
- '-Wstrict-prototypes',
- '-Wundef',
- '-Werror-implicit-function-declaration',
- '-Wformat',
- '-Wformat-security',
- '-Werror=format-security',
- '-Wconversion',
- '-Wunused-variable',
- '-Wunreachable-code',
- '-Wall',
- '-W',
-]
DAEMON = 'budgie-extras-daemon'
diff --git a/budgie-fuzzyclock/meson.build b/budgie-fuzzyclock/meson.build
index 0f260965..0774aa95 100644
--- a/budgie-fuzzyclock/meson.build
+++ b/budgie-fuzzyclock/meson.build
@@ -1,19 +1,3 @@
-am_cflags = [
- '-fstack-protector',
- '-pedantic',
- '-Wstrict-prototypes',
- '-Wundef',
- '-Werror-implicit-function-declaration',
- '-Wformat',
- '-Wformat-security',
- '-Werror=format-security',
- '-Wconversion',
- '-Wunused-variable',
- '-Wunreachable-code',
- '-Wall',
- '-W',
-]
-
PLUGIN = 'budgie-fuzzyclock'
LIB_INSTALL_DIR = join_paths(prefix, libdir, 'budgie-desktop', 'plugins', PLUGIN)
diff --git a/budgie-fuzzyclock/src/meson.build b/budgie-fuzzyclock/src/meson.build
index 826f3e7b..88f5f7ef 100644
--- a/budgie-fuzzyclock/src/meson.build
+++ b/budgie-fuzzyclock/src/meson.build
@@ -15,7 +15,7 @@ fuzzy_applet_deps = [
dependency('gtk+-3.0'),
budgie_dep,
dependency('gdk-3.0'),
-dependency('libpeas-gtk-1.0'),
+peas_dep,
meson.get_compiler('c').find_library('m', required: false)
]
diff --git a/budgie-hotcorners/meson.build b/budgie-hotcorners/meson.build
index 19e5b784..779f01c0 100644
--- a/budgie-hotcorners/meson.build
+++ b/budgie-hotcorners/meson.build
@@ -1,19 +1,3 @@
-am_cflags = [
- '-fstack-protector',
- '-pedantic',
- '-Wstrict-prototypes',
- '-Wundef',
- '-Werror-implicit-function-declaration',
- '-Wformat',
- '-Wformat-security',
- '-Werror=format-security',
- '-Wconversion',
- '-Wunused-variable',
- '-Wunreachable-code',
- '-Wall',
- '-W',
-]
-
substprog = find_program('subst.py')
mytarget = custom_target('hotcorners_schema',
diff --git a/budgie-kangaroo/BudgieKangaroo.plugin b/budgie-kangaroo/BudgieKangaroo.plugin.in
similarity index 93%
rename from budgie-kangaroo/BudgieKangaroo.plugin
rename to budgie-kangaroo/BudgieKangaroo.plugin.in
index b879e36d..8c1555fe 100644
--- a/budgie-kangaroo/BudgieKangaroo.plugin
+++ b/budgie-kangaroo/BudgieKangaroo.plugin.in
@@ -1,5 +1,5 @@
[Plugin]
-Loader=python3
+Loader=@PYTHON@
Module=budgie_kangaroo
Name=Kangaroo
Description=Quick directory-browser applet
diff --git a/budgie-kangaroo/meson.build b/budgie-kangaroo/meson.build
index 1719bff5..835442b1 100644
--- a/budgie-kangaroo/meson.build
+++ b/budgie-kangaroo/meson.build
@@ -2,8 +2,16 @@
PLUGIN = 'budgie-kangaroo'
+configdata= configuration_data()
+configdata.set('PYTHON', python_loader)
+plugininstall = configure_file(
+ input: 'BudgieKangaroo.plugin.in',
+ output: 'BudgieKangaroo.plugin',
+ configuration: configdata
+)
+
install_data(
- 'BudgieKangaroo.plugin',
+ plugininstall,
'budgie_kangaroo.py',
install_dir: join_paths(PLUGINS_INSTALL_DIR, PLUGIN)
)
diff --git a/budgie-quicknote/meson.build b/budgie-quicknote/meson.build
index eda08aaa..d96a2579 100644
--- a/budgie-quicknote/meson.build
+++ b/budgie-quicknote/meson.build
@@ -18,16 +18,13 @@ dependency('gtk+-3.0'),
budgie_dep,
dependency('gio-2.0'),
dependency('gdk-3.0'),
-dependency('libpeas-gtk-1.0'),
+peas_dep,
meson.get_compiler('c').find_library('m', required: false)
]
QuickNoteValaArgs = [
'--pkg=config',
'--target-glib=2.38',
- '--pkg', 'libpeas-1.0',
- '--pkg', 'gtk+-3.0',
- '--pkg', 'gio-unix-2.0',
'--vapidir=' + VAPI_DIR,
]
diff --git a/budgie-recentlyused/src/meson.build b/budgie-recentlyused/src/meson.build
index fc882310..3c161d64 100644
--- a/budgie-recentlyused/src/meson.build
+++ b/budgie-recentlyused/src/meson.build
@@ -12,7 +12,7 @@ BudgieRecentlyUsedSources = [
BudgieRecentlyUsedDependencies = [
dependency('gtk+-3.0'),
budgie_dep,
-dependency('libpeas-gtk-1.0'),
+peas_dep,
dependency('gee-0.8'),
meson.get_compiler('c').find_library('m', required: false)
]
diff --git a/budgie-showtime/meson.build b/budgie-showtime/meson.build
index e1983605..d18029c9 100644
--- a/budgie-showtime/meson.build
+++ b/budgie-showtime/meson.build
@@ -1,21 +1,3 @@
-am_cflags = [
- '-fstack-protector',
- '-pedantic',
- '-Wstrict-prototypes',
- '-Wundef',
- '-Werror-implicit-function-declaration',
- '-Wformat',
- '-Wformat-security',
- '-Werror=format-security',
- '-Wconversion',
- '-Wunused-variable',
- '-Wunreachable-code',
- '-Wall',
- '-W',
-]
-
-#add_global_arguments(am_cflags, language: 'c')
-
PLUGIN = 'budgie-showtime'
install_data('schema/org.ubuntubudgie.plugins.budgie-showtime.gschema.xml',
diff --git a/budgie-takeabreak/BudgieTakeaBreak.plugin b/budgie-takeabreak/BudgieTakeaBreak.plugin.in
similarity index 93%
rename from budgie-takeabreak/BudgieTakeaBreak.plugin
rename to budgie-takeabreak/BudgieTakeaBreak.plugin.in
index 78951216..e6db204e 100644
--- a/budgie-takeabreak/BudgieTakeaBreak.plugin
+++ b/budgie-takeabreak/BudgieTakeaBreak.plugin.in
@@ -1,5 +1,5 @@
[Plugin]
-Loader=python3
+Loader=@PYTHON@
Module=budgie_takeabreak
Name=Take a Break
Description=Take regular breaks from working
diff --git a/budgie-takeabreak/meson.build b/budgie-takeabreak/meson.build
index 317b88ba..1b456a4b 100644
--- a/budgie-takeabreak/meson.build
+++ b/budgie-takeabreak/meson.build
@@ -2,8 +2,16 @@
PLUGIN = 'budgie-takeabreak'
+configdata= configuration_data()
+configdata.set('PYTHON', python_loader)
+plugininstall = configure_file(
+ input: 'BudgieTakeaBreak.plugin.in',
+ output: 'BudgieTakeaBreak.plugin',
+ configuration: configdata
+)
+
install_data(
- 'BudgieTakeaBreak.plugin',
+ plugininstall,
'message_window',
'takeabreak_run',
'budgie_takeabreak.py',
diff --git a/budgie-wallstreet/meson.build b/budgie-wallstreet/meson.build
index 9200d246..55a03af1 100644
--- a/budgie-wallstreet/meson.build
+++ b/budgie-wallstreet/meson.build
@@ -1,19 +1,3 @@
-am_cflags = [
- '-fstack-protector',
- '-pedantic',
- '-Wstrict-prototypes',
- '-Wundef',
- '-Werror-implicit-function-declaration',
- '-Wformat',
- '-Wformat-security',
- '-Werror=format-security',
- '-Wconversion',
- '-Wunused-variable',
- '-Wunreachable-code',
- '-Wall',
- '-W',
-]
-
# Global path variable
prefix = get_option('prefix')
libdir = join_paths(prefix, get_option('libdir'))
diff --git a/budgie-weathershow/meson.build b/budgie-weathershow/meson.build
index 715f4573..0ba69dea 100644
--- a/budgie-weathershow/meson.build
+++ b/budgie-weathershow/meson.build
@@ -1,19 +1,3 @@
-am_cflags = [
- '-fstack-protector',
- '-pedantic',
- '-Wstrict-prototypes',
- '-Wundef',
- '-Werror-implicit-function-declaration',
- '-Wformat',
- '-Wformat-security',
- '-Werror=format-security',
- '-Wconversion',
- '-Wunused-variable',
- '-Wunreachable-code',
- '-Wall',
- '-W',
-]
-
# Global path variable
prefix = get_option('prefix')
libdir = join_paths(prefix, get_option('libdir'))
diff --git a/budgie-weathershow/src/weathershow/meson.build b/budgie-weathershow/src/weathershow/meson.build
index c4335822..538dcd44 100644
--- a/budgie-weathershow/src/weathershow/meson.build
+++ b/budgie-weathershow/src/weathershow/meson.build
@@ -28,9 +28,8 @@ dependency('gtk+-3.0'),
budgie_dep,
dependency('gee-0.8'),
dep_soup,
-dependency('libpeas-gtk-1.0'),
+peas_dep,
dependency('json-glib-1.0'),
-dependency('libpeas-gtk-1.0'),
meson.get_compiler('c').find_library('m', required: false)
]
diff --git a/budgie-window-shuffler/meson.build b/budgie-window-shuffler/meson.build
index 92c9d39a..4d8c4399 100644
--- a/budgie-window-shuffler/meson.build
+++ b/budgie-window-shuffler/meson.build
@@ -1,19 +1,3 @@
-am_cflags = [
- '-fstack-protector',
- '-pedantic',
- '-Wstrict-prototypes',
- '-Wundef',
- '-Werror-implicit-function-declaration',
- '-Wformat',
- '-Wformat-security',
- '-Werror=format-security',
- '-Wconversion',
- '-Wunused-variable',
- '-Wunreachable-code',
- '-Wall',
- '-W',
-]
-
# Global path variable
prefix = get_option('prefix')
libdir = join_paths(prefix, get_option('libdir'))
diff --git a/budgie-wswitcher/meson.build b/budgie-wswitcher/meson.build
index 791da7bf..1d3c21ba 100644
--- a/budgie-wswitcher/meson.build
+++ b/budgie-wswitcher/meson.build
@@ -1,19 +1,3 @@
-am_cflags = [
- '-fstack-protector',
- '-pedantic',
- '-Wstrict-prototypes',
- '-Wundef',
- '-Werror-implicit-function-declaration',
- '-Wformat',
- '-Wformat-security',
- '-Werror=format-security',
- '-Wconversion',
- '-Wunused-variable',
- '-Wunreachable-code',
- '-Wall',
- '-W',
-]
-
PLUGIN='budgie-wswitcher'
LIB_INSTALL_DIR = join_paths(prefix, libdir, 'budgie-desktop', 'plugins', PLUGIN)
diff --git a/meson.build b/meson.build
index 0b4c8072..316f5ff6 100644
--- a/meson.build
+++ b/meson.build
@@ -6,6 +6,16 @@ project('budgie-extras',
i18n = import('i18n')
+# Vala generates bad C code and missing these on gcc 14 will cause FTBFS
+# Additionally, Meson 1.4 unhides warnings from valac-generated C code,
+# which causes unreadable logspam. Reenables prior behavior.
+am_cflags = [
+ '-w',
+ '-Wno-incompatible-pointer-types',
+ '-Wno-implicit-function-declaration',
+]
+add_global_arguments(am_cflags, language: 'c')
+
message('Looking for dependencies')
vala_version_required = '0.40.0'
@@ -18,9 +28,6 @@ add_project_arguments(
language: 'c'
)
-am_cflags = []
-add_global_arguments(am_cflags, language: 'c')
-
# Global path variable
intltool = find_program('intltool-merge')
prefix = get_option('prefix')
@@ -66,8 +73,12 @@ for_wayland = get_option('for-wayland')
if for_wayland == false
budgie_dep = dependency('budgie-1.0')
+ peas_dep = dependency('libpeas-1.0')
+ python_loader = 'python3'
else
budgie_dep = dependency('budgie-2.0')
+ peas_dep = dependency('libpeas-2')
+ python_loader = 'python'
endif
SHUFFLER = 'budgie-window-shuffler'