[gimp] configure, meson, plug-ins: unmaintain WebkitGTK-depending plug-ins.



commit a982809c5fe82845668f05304c6c3d253117c576
Author: Jehan <jehan girinstud io>
Date:   Wed Dec 22 18:47:30 2021 +0100

    configure, meson, plug-ins: unmaintain WebkitGTK-depending plug-ins.
    
    This is an official way to declare these plug-ins as now
    unmaintained/deprecated.
    Relevant plug-ins are:
    
    1) help-browser (Displaying the docs): nowadays every desktop machine
       has a browser. Let's just use whatever is the person's default
       browser.
    2) web-page (Web screenshot): it looks to me like every browser has this
       feature by default now (I use it all the time in Firefox to get a
       full-page screenshot, never in GIMP), even on mobile, I am told. It's
       nice to have it in GIMP too, but not like absolutely necessary.
    
    On the other hand:
    
    1. It's a hell to build, with a lot of issues. We have regular issues on
       our Flatpak-s. We don't manage to build it on our CI (only locally
       apparently). Also it takes a crazy amount of time (like 90% of CI
       build-time would be webkit).
    2. From what I gather, new versions don't work on Windows anymore. Even
       MSYS2 seems to have dropped the ball and don't try anymore.
       Basically we would have a feature disparity from GIMP 3.0 (most
       platform but Windows). We don't know when it will be resolved (if
       ever) as it's been like this for years.
    
    Now why we are keeping the code around instead of just removing
    everything is that the topic tree in the help browser is useful and
    comfortable to use. Ideally we should get some equivalent to help
    browsing the help efficiently in the web docs as well (so basically
    menus, web search and alike?). So I am told to keep the code around at
    least for now to see if we can figure something out or improve the
    situation.
    Except for this point, we can consider the WebkitGTK plug-ins as
    deprecated from GIMP 3.0 on.

 configure.ac                      | 21 ++++++++++++++++-----
 meson.build                       | 21 +++++++++++++++------
 meson_options.txt                 |  2 +-
 plug-ins/common/meson.build       |  2 +-
 plug-ins/help-browser/meson.build |  2 +-
 5 files changed, 34 insertions(+), 14 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index b301d82244..728859cefc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1978,14 +1978,23 @@ AC_SUBST(mypaint_brushes_dir)
 # Check for webkit
 ##################
 
-AC_ARG_WITH(webkit, [  --without-webkit        don't build the help-browser and web-page plug-ins])
+# We disable WebkitGTK as default for now and discourage its use because
+# it is just a horror to build, is not available on Windows anymore
+# (AFAIK), and features brought are not worth the pain. We still leave
+# the code because mitch wants us to be able to look at it later, maybe
+# reinstate it through some shape or another. Yet for now, it is to be
+# considered non-existing feature for packager point of view. It is only
+# there in the hope developers get it back in shape.
+
+AC_ARG_WITH(webkit, [  --with-webkit-unmaintained build the help-browser and web-page plug-ins 
(unmaintained)])
 
 have_webkit=no
-if test "x$with_webkit" != xno; then
+if test "x$with_webkit_unmaintained" = xyes; then
   PKG_CHECK_MODULES(WEBKIT, webkit2gtk-4.0 >= webkitgtk_required_version,
     WEB_PAGE='web-page$(EXEEXT)'
     have_webkit=yes,
-    have_webkit="no (WebKit not found)")
+    [have_webkit="no (WebKit not found)"
+     add_deps_error([webkit2gtk-4.0 >= webkitgtk_required_version])])
 else
   have_webkit="no (WebKit support disabled)"
 fi
@@ -3239,7 +3248,6 @@ Optional Features:
 Optional Plug-Ins:
   Ascii Art:                 $have_libaa
   Ghostscript:               $have_gs
-  Help Browser:              $have_webkit
   JPEG 2000:                 $have_openjpeg
   JPEG XL:                   $have_jpegxl
   MNG:                       $have_libmng
@@ -3254,12 +3262,15 @@ Optional Plug-Ins:
   Lua plug-ins:              $with_lua
   Vala plug-ins:             $with_vala
   TWAIN (Win32):             $os_win32
-  Webpage:                   $have_webkit
   WMF:                       $have_libwmf
   X11 Mouse Cursor:          $have_xmc
   XPM:                       $have_libxpm
   Email:                     $have_email
 
+Unmaintained Plug-Ins (discouraged except for developers):
+  Help Browser:              $have_webkit
+  Webpage:                   $have_webkit
+
 Optional Modules:
   ALSA (MIDI Input):         $have_alsa
   Linux Input:               $have_linux_input (GUdev support: $have_libgudev)
diff --git a/meson.build b/meson.build
index 9a0dc78a05..9679059747 100644
--- a/meson.build
+++ b/meson.build
@@ -761,11 +761,18 @@ if have_vala
   endif
 endif
 
+# We disable WebkitGTK as default for now and discourage its use because
+# it is just a horror to build, is not available on Windows anymore
+# (AFAIK), and features brought are not worth the pain. We still leave
+# the code because mitch wants us to be able to look at it later, maybe
+# reinstate it through some shape or another. Yet for now, it is to be
+# considered non-existing feature for packager point of view. It is only
+# there in the hope developers get it back in shape.
 webkit_minver = '2.20.3'
-webkit = dependency('webkit2gtk-4.0', version: '>=' + webkit_minver,
-  required: get_option('webkit')
-)
-conf.set('HAVE_WEBKIT', webkit.found())
+if get_option('webkit-unmaintained')
+  webkit = dependency('webkit2gtk-4.0', version: '>=' + webkit_minver)
+endif
+conf.set('HAVE_WEBKIT', get_option('webkit-unmaintained'))
 
 poppler_minver = '0.69.0'
 poppler_data_minver = '0.4.9'
@@ -1787,7 +1794,6 @@ final_message = [
 '''Optional Plug-Ins:''',
 '''  Ascii Art:           @0@'''.format(libaa.found()),
 '''  Ghostscript:         @0@'''.format(ghostscript.found()),
-'''  Help Browser:        @0@'''.format(webkit.found()),
 '''  JPEG 2000:           @0@'''.format(openjpeg.found()),
 '''  JPEG XL:             @0@'''.format(libjxl.found()),
 '''  MNG:                 @0@'''.format(libmng.found()),
@@ -1807,12 +1813,15 @@ final_message = [
 '''  Lua plug-ins:        @0@'''.format(have_lua),
 '''  Vala plug-ins:       @0@'''.format(have_vala),
 '''  TWAIN (Win32):       @0@'''.format(platform_windows),
-'''  Webpage:             @0@'''.format(webkit.found()),
 '''  WMF:                 @0@'''.format(wmf.found()),
 '''  X11 Mouse Cursor:    @0@'''.format(xmc.found()),
 '''  XPM:                 @0@'''.format(libxpm.found()),
 '''  Email:               @0@'''.format(email_message),
 '',
+'''Unmaintained Plug-Ins (discouraged except for developers):''',
+'''  Help Browser:        @0@'''.format(get_option('webkit-unmaintained')),
+'''  Webpage:             @0@'''.format(get_option('webkit-unmaintained')),
+'',
 '''Optional Modules:''',
 '''  ALSA (MIDI Input):   @0@'''.format(alsa.found()),
 '''  Linux Input:         @0@ (GUdev support: @1@)'''
diff --git a/meson_options.txt b/meson_options.txt
index 6bb1c69afc..d8df7a6276 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -45,7 +45,7 @@ option('mng',               type: 'feature', value: 'auto', description: 'Mng su
 option('openexr',           type: 'feature', value: 'auto', description: 'Openexr support')
 option('png',               type: 'feature', value: 'auto', description: 'PNG support')
 option('print',             type: 'boolean', value: true,   description: 'Print support')
-option('webkit',            type: 'feature', value: 'auto', description: 'Help browser and webpage plugins')
+option('webkit-unmaintained',type: 'boolean', value: false,  description: 'Help browser and webpage plugins 
(unmaintained)')
 option('webp',              type: 'feature', value: 'auto', description: 'Webp support')
 option('wmf',               type: 'feature', value: 'auto', description: 'Wmf support')
 option('xcursor',           type: 'feature', value: 'auto', description: 'Xcursor support')
diff --git a/plug-ins/common/meson.build b/plug-ins/common/meson.build
index eb0b9d7569..98153b260b 100644
--- a/plug-ins/common/meson.build
+++ b/plug-ins/common/meson.build
@@ -150,7 +150,7 @@ if not platform_windows
   common_plugins_list += { 'name': 'mail', }
 endif
 
-if webkit.found()
+if get_option('webkit-unmaintained')
   common_plugins_list += { 'name': 'web-page',
     'deps': [ gtk3, gegl, gdk_pixbuf, webkit, ],
   }
diff --git a/plug-ins/help-browser/meson.build b/plug-ins/help-browser/meson.build
index a801f400ce..5f93211229 100644
--- a/plug-ins/help-browser/meson.build
+++ b/plug-ins/help-browser/meson.build
@@ -1,4 +1,4 @@
-if webkit.found()
+if get_option('webkit-unmaintained')
 
 plugin_name = 'help-browser'
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]