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
This commit is contained in:
Jehan 2024-09-18 22:54:02 +02:00
parent 8f3931a45e
commit 78665ca372
4 changed files with 22 additions and 13 deletions

View file

@ -294,10 +294,18 @@ help in that regard:
gdb or lldb for our new bug-reporting dialog gdb or lldb for our new bug-reporting dialog
"gegl:matting-levin" GEGL operation for alternative matting engine "gegl:matting-levin" GEGL operation for alternative matting engine
GJS for Javascript plug-ins GJS for Javascript plug-ins
Lua 5.1 (or LuaJIT) and LGI for Lua plug-ins
dot for "Show Image Graph" (unstable branches) dot for "Show Image Graph" (unstable branches)
xdg-desktop-portal implemented for your desktop for various D-Bus API (screenshot, color-picking…) 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 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 -Djavascript=false If for some reason you don't want to install the
JavaScript plug-ins, you can use -Djavascript=false. JavaScript plug-ins, you can use -Djavascript=false.
-Dlua=false If for some reason you don't want to install the -Dlua=true Lua binding is experimental because of stability issues.
Lua plug-ins, you can use -Dlua=false. You may test the feature by enabling it.
-Dvala-plugins=disabled If for some reason you don't want to install the -Dvala-plugins=disabled If for some reason you don't want to install the
Vala plug-ins, you can use -Dvala-plugins=disabled. Vala plug-ins, you can use -Dvala-plugins=disabled.

View file

@ -1,6 +1,6 @@
subdir('goat-exercises') 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() lua_config = configuration_data()
# For Windows, we set the binary name only. # For Windows, we set the binary name only.
# For other OSes, we use the full path (when not in a relocatable # For other OSes, we use the full path (when not in a relocatable

View file

@ -1108,11 +1108,11 @@ endif
## Lua ## Lua
have_lua = false have_lua = get_option('lua')
have_lua_output = have_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 # 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 # 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 have_lua_lgi = false
foreach lua_bin : [ 'luajit', 'lua5.1', 'lua-5.1', 'lua' ] foreach lua_bin : [ 'luajit', 'lua5.1', 'lua-5.1', 'lua' ]
@ -1165,14 +1165,13 @@ if get_option('lua').allowed()
endif endif
endforeach endforeach
have_lua = get_option('lua').enabled() or have_lua_lgi if not have_lua_lgi
if have_lua and not have_lua_lgi
lua_warning = ''' lua_warning = '''
Neither Luajit nor Lua 5.1, with lua-lgi support, was found. 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. 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 Lua example plug-in (EXPERIMENTAL) will be installed anyway but you
luajit or lua and that LGI are available at installation, otherwise should make sure that luajit or lua and that LGI are available at
installed plug-ins won't be usable. installation, otherwise Lua plug-ins won't be usable.
''' '''
warning(lua_warning) warning(lua_warning)
warnings += lua_warning warnings += lua_warning
@ -2115,7 +2114,6 @@ final_message = [
''' PDF (export): @0@'''.format(cairopdf.found()), ''' PDF (export): @0@'''.format(cairopdf.found()),
''' Print: @0@'''.format(have_print), ''' Print: @0@'''.format(have_print),
''' Javascript plug-ins: @0@'''.format(have_javascript), ''' Javascript plug-ins: @0@'''.format(have_javascript),
''' Lua plug-ins: @0@'''.format(have_lua_output),
''' Vala plug-ins: @0@'''.format(have_vala), ''' Vala plug-ins: @0@'''.format(have_vala),
''' TWAIN (Win32): @0@'''.format(platform_windows), ''' TWAIN (Win32): @0@'''.format(platform_windows),
''' WMF: @0@'''.format(wmf.found()), ''' WMF: @0@'''.format(wmf.found()),
@ -2126,6 +2124,9 @@ final_message = [
''' Email: @0@'''.format(email_message), ''' Email: @0@'''.format(email_message),
''' FITS: @0@'''.format(cfitsio_dep.found()), ''' 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):''', '''Unmaintained Plug-Ins (discouraged except for developers):''',
''' Help Browser: @0@'''.format(get_option('webkit-unmaintained')), ''' Help Browser: @0@'''.format(get_option('webkit-unmaintained')),
''' Webpage: @0@'''.format(get_option('webkit-unmaintained')), ''' Webpage: @0@'''.format(get_option('webkit-unmaintained')),

View file

@ -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('vala', type: 'feature', value: 'auto', description: 'Build VAPI and Vala plugins')
option('javascript', type: 'feature', value: 'auto', description: 'Install Javascript plug-ins') 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)')