mate-desktop / pluma

A powerful text editor for MATE
http://www.mate-desktop.org
GNU General Public License v2.0
156 stars 64 forks source link

1.25.1 and gtksourceview-4 #618

Closed kloczek closed 3 years ago

kloczek commented 3 years ago

It would be really good to move to gtksourceview-4 because gtksourceview-3.0 is no longer maintained and already has been released first version of gtksourceview-5.

pluma 1.25.0 was possible to build against gtksourceview-4 using very simple patch:

--- pluma-1.22.1/configure.ac~  2019-04-27 06:54:59.000000000 +0100
+++ pluma-1.22.1/configure.ac   2019-04-27 07:03:32.738444499 +0100
@@ -151,7 +151,7 @@
 AM_CONDITIONAL(ENABLE_ENCHANT, test x"$enable_enchant" = "xyes")

 GTK_REQUIRED=3.22.0
-GTKSOURCEVIEW_REQUIRED=3.0.0
+GTKSOURCEVIEW_REQUIRED=4.0.0

 PKG_CHECK_MODULES(GMODULE,gmodule-2.0,[GMODULE_ADD="gmodule-2.0"],[GMODULE_ADD=""])
 PKG_CHECK_MODULES(PLUMA, [
@@ -161,7 +161,7 @@
        gthread-2.0 >= 2.13.0
        gio-2.0 >= 2.50.0
        gtk+-3.0 >= $GTK_REQUIRED
-       gtksourceview-3.0 >= $GTKSOURCEVIEW_REQUIRED
+       gtksourceview-4 >= $GTKSOURCEVIEW_REQUIRED
        libpeas-1.0 >= 1.2.0
        libpeas-gtk-1.0 >= 1.2.0
 ])
--- pluma-1.22.1/pluma/Makefile.am~     2019-04-23 12:05:42.000000000 +0100
+++ pluma-1.22.1/pluma/Makefile.am      2019-04-27 07:13:10.121140462 +0100
@@ -199,7 +199,7 @@
 INTROSPECTION_SCANNER_ARGS = -I$(top_srcdir) --warn-all

 Pluma-1.0.gir: pluma
-Pluma_1_0_gir_INCLUDES = Gtk-3.0 GtkSource-3.0
+Pluma_1_0_gir_INCLUDES = Gtk-3.0 GtkSource-4
 Pluma_1_0_gir_FILES = $(INST_H_FILES) $(libpluma_c_files) $(BUILT_SOURCES)
 Pluma_1_0_gir_VERSION = 1.0
 Pluma_1_0_gir_PROGRAM = $(builddir)/pluma
--- pluma-1.22.1/data/pluma.pc.in~      2019-04-23 12:05:42.000000000 +0100
+++ pluma-1.22.1/data/pluma.pc.in       2019-04-27 07:26:47.647359917 +0100
@@ -6,7 +6,7 @@

 Name: pluma
 Description: pluma
-Requires: gtksourceview-3.0 libpeas-1.0 libpeas-gtk-1.0
+Requires: gtksourceview-4 libpeas-1.0 libpeas-gtk-1.0
 Version: @VERSION@
 Cflags: -I${includedir}/pluma
 Libs: -L${libdir}

Now it fails with

make[4]: Entering directory '/home/tkloczko/rpmbuild/BUILD/pluma-1.25.1/pluma'
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I. -I./mate-submodules/libegg -I/usr/include/libxml2 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/atk-1.0 -I/usr/include/gtksourceview-4 -I/usr/include/libpeas-1.0 -I/usr/include/gobject-introspection-1.0 -pthread   -Wall -Wmissing-prototypes -I/usr/include/gobject-introspection-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include  -DDATADIR=\""/usr/share"\" -DPLUMA_DATADIR=\""/usr/share/pluma"\" -DPLUMA_LOCALEDIR=\""/usr/share/locale/"\" -DLIBDIR=\""/usr/lib64"\" -DPLUMA_LIBDIR=\""/usr/lib64/pluma"\"   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o pluma-document.lo pluma-document.c
libtool: compile:  /usr/bin/gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I. -I./mate-submodules/libegg -I/usr/include/libxml2 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/atk-1.0 -I/usr/include/gtksourceview-4 -I/usr/include/libpeas-1.0 -I/usr/include/gobject-introspection-1.0 -pthread -Wall -Wmissing-prototypes -I/usr/include/gobject-introspection-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DDATADIR=\"/usr/share\" -DPLUMA_DATADIR=\"/usr/share/pluma\" -DPLUMA_LOCALEDIR=\"/usr/share/locale/\" -DLIBDIR=\"/usr/lib64\" -DPLUMA_LIBDIR=\"/usr/lib64/pluma\" -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c pluma-document.c  -fPIC -DPIC -o .libs/pluma-document.o
In file included from /usr/include/gtksourceview-4/gtksourceview/gtksourcetypes.h:28,
                 from /usr/include/gtksourceview-4/gtksourceview/gtksourcecompletioncontext.h:29,
                 from /usr/include/gtksourceview-4/gtksourceview/gtksourcecompletionprovider.h:30,
                 from /usr/include/gtksourceview-4/gtksourceview/completion-providers/words/gtksourcecompletionwords.h:28,
                 from /usr/include/gtksourceview-4/gtksourceview/gtksource.h:23,
                 from ../pluma/pluma-document.h:38,
                 from ../pluma/pluma-view.h:36,
                 from ../pluma/pluma-tab.h:36,
                 from ../pluma/pluma-window.h:37,
                 from pluma-app.h:36,
                 from pluma-settings.h:30,
                 from pluma-document.c:43:
/usr/include/gtksourceview-4/gtksourceview/gtksourceversion.h:77:84: error: missing binary operator before token "("
   77 |         (GTK_SOURCE_MAJOR_VERSION == (major) && GTK_SOURCE_MINOR_VERSION > ((gint) (minor))) || \
      |                                                                                    ^
pluma-document.c:644:6: note: in expansion of macro ‘GTK_SOURCE_CHECK_VERSION’
  644 | #if !GTK_SOURCE_CHECK_VERSION (3, 24, 11)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~
pluma-document.c: In function ‘set_language’:
/usr/include/gtksourceview-4/gtksourceview/gtksourceversion.h:77:84: error: missing binary operator before token "("
   77 |         (GTK_SOURCE_MAJOR_VERSION == (major) && GTK_SOURCE_MINOR_VERSION > ((gint) (minor))) || \
      |                                                                                    ^
pluma-document.c:696:6: note: in expansion of macro ‘GTK_SOURCE_CHECK_VERSION’
  696 | #if !GTK_SOURCE_CHECK_VERSION (3, 24, 11)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/gtksourceview-4/gtksourceview/gtksourceversion.h:77:84: error: missing binary operator before token "("
   77 |         (GTK_SOURCE_MAJOR_VERSION == (major) && GTK_SOURCE_MINOR_VERSION > ((gint) (minor))) || \
      |                                                                                    ^
pluma-document.c:712:6: note: in expansion of macro ‘GTK_SOURCE_CHECK_VERSION’
  712 | #if !GTK_SOURCE_CHECK_VERSION (3, 24, 11)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~
make[4]: *** [Makefile:915: pluma-document.lo] Error 1