From 78665ca3723f723ac313fdaeef5b62d41ab6b48d Mon Sep 17 00:00:00 2001 From: Jehan Date: Wed, 18 Sep 2024 22:54:02 +0200 Subject: [PATCH] extensions: the lua binding (and its example plug-in) is now marked as experimental. We have too many issues with the lua binding, so until someone finds a solution, mark it officially as experimental. See discussion in: https://gitlab.gnome.org/GNOME/gimp/-/issues/11895#note_2225885 --- INSTALL.in | 14 +++++++++++--- extensions/meson.build | 2 +- meson.build | 17 +++++++++-------- meson_options.txt | 2 +- 4 files changed, 22 insertions(+), 13 deletions(-) diff --git a/INSTALL.in b/INSTALL.in index 3440018aa3..91a9ef256b 100644 --- a/INSTALL.in +++ b/INSTALL.in @@ -294,10 +294,18 @@ help in that regard: gdb or lldb for our new bug-reporting dialog "gegl:matting-levin" GEGL operation for alternative matting engine GJS for Javascript plug-ins - Lua 5.1 (or LuaJIT) and LGI for Lua plug-ins dot for "Show Image Graph" (unstable branches) xdg-desktop-portal implemented for your desktop for various D-Bus API (screenshot, color-picking…) + 24. Summary of experimental or unmaintained dependencies: + + Lua 5.1 (or LuaJIT) and LGI: Lua plug-in example is disabled by + default because of stability issues with the Lua binding. + + Webkit-GTK @WEBKITGTK_REQUIRED_VERSION@: the Help Browser and Webpage + plug-ins are disabled for lack of maintenance and issues with + Webkit-GTK + Generic instructions for configuring and compiling auto-configured @@ -397,8 +405,8 @@ These are: -Djavascript=false If for some reason you don't want to install the JavaScript plug-ins, you can use -Djavascript=false. - -Dlua=false If for some reason you don't want to install the - Lua plug-ins, you can use -Dlua=false. + -Dlua=true Lua binding is experimental because of stability issues. + You may test the feature by enabling it. -Dvala-plugins=disabled If for some reason you don't want to install the Vala plug-ins, you can use -Dvala-plugins=disabled. diff --git a/extensions/meson.build b/extensions/meson.build index 60bc0ef88f..23132c2df0 100644 --- a/extensions/meson.build +++ b/extensions/meson.build @@ -1,6 +1,6 @@ subdir('goat-exercises') -if not meson.is_cross_build() and is_variable('lua') and lua.found() and (platform_windows or not relocatable_bundle) +if have_lua and not meson.is_cross_build() and is_variable('lua') and lua.found() and (platform_windows or not relocatable_bundle) lua_config = configuration_data() # For Windows, we set the binary name only. # For other OSes, we use the full path (when not in a relocatable diff --git a/meson.build b/meson.build index dd1bcffc7e..11f4e6ff5d 100644 --- a/meson.build +++ b/meson.build @@ -1108,11 +1108,11 @@ endif ## Lua -have_lua = false +have_lua = get_option('lua') have_lua_output = have_lua # At time of writing, lua-lgi works with Lua 5.1, 5.2, 5.3 and LuaJIT2, but we # support only Lua 5.1 API. See: https://gitlab.gnome.org/GNOME/gimp/-/issues/11876 -if get_option('lua').allowed() +if have_lua have_lua_lgi = false foreach lua_bin : [ 'luajit', 'lua5.1', 'lua-5.1', 'lua' ] @@ -1165,14 +1165,13 @@ if get_option('lua').allowed() endif endforeach - have_lua = get_option('lua').enabled() or have_lua_lgi - if have_lua and not have_lua_lgi + if not have_lua_lgi lua_warning = ''' Neither Luajit nor Lua 5.1, with lua-lgi support, was found. Or you are cross-compiling so we couldn't test lua-lgi support. - Lua plug-ins will be installed anyway but you should make sure that - luajit or lua and that LGI are available at installation, otherwise - installed plug-ins won't be usable. + Lua example plug-in (EXPERIMENTAL) will be installed anyway but you + should make sure that luajit or lua and that LGI are available at + installation, otherwise Lua plug-ins won't be usable. ''' warning(lua_warning) warnings += lua_warning @@ -2115,7 +2114,6 @@ final_message = [ ''' PDF (export): @0@'''.format(cairopdf.found()), ''' Print: @0@'''.format(have_print), ''' Javascript plug-ins: @0@'''.format(have_javascript), -''' Lua plug-ins: @0@'''.format(have_lua_output), ''' Vala plug-ins: @0@'''.format(have_vala), ''' TWAIN (Win32): @0@'''.format(platform_windows), ''' WMF: @0@'''.format(wmf.found()), @@ -2126,6 +2124,9 @@ final_message = [ ''' Email: @0@'''.format(email_message), ''' FITS: @0@'''.format(cfitsio_dep.found()), '', +'''Experimental Plug-Ins (discouraged except for developers):''', +''' Lua plug-ins: @0@'''.format(have_lua_output), +'', '''Unmaintained Plug-Ins (discouraged except for developers):''', ''' Help Browser: @0@'''.format(get_option('webkit-unmaintained')), ''' Webpage: @0@'''.format(get_option('webkit-unmaintained')), diff --git a/meson_options.txt b/meson_options.txt index ad5520ce0e..93b54178b0 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -65,4 +65,4 @@ option('vector-icons', type: 'boolean', value: true, description: 'Use ve option('vala', type: 'feature', value: 'auto', description: 'Build VAPI and Vala plugins') option('javascript', type: 'feature', value: 'auto', description: 'Install Javascript plug-ins') -option('lua', type: 'feature', value: 'auto', description: 'Install Lua plug-ins') +option('lua', type: 'boolean', value: false, description: 'Install Lua plug-ins (experimental)')