From 933233e840b4e408813399d2ee56b3c6f581cef0 Mon Sep 17 00:00:00 2001 From: David Mohammed 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'