From f0df67904c3a71479808d56f33d22274e317b085 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Tue, 19 Jul 2022 18:54:42 +0200 Subject: [PATCH] Build with gcr4 by default Use -DWITH_GCR3=ON to build with gcr3 instead. The gcr4 will replace gcr3 in the future, thus let the gcr4 be the default build option. --- CMakeLists.txt | 15 +++++++++-- config.h.in | 3 +++ .../gui/contact-editor/e-contact-editor.c | 12 ++++++--- src/smime/gui/certificate-manager.c | 27 ++++++++++++++----- src/smime/gui/e-cert-selector.c | 8 ++++-- src/smime/lib/e-cert.c | 4 +++ 6 files changed, 54 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 736428e888..21224b0606 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -75,7 +75,8 @@ add_definitions(-DSOUP_VERSION_MIN_REQUIRED=${soup_encoded_version}) set(eds_minimum_version ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}) set(enchant1_minimum_version 1.6.0) set(enchant2_minimum_version 2.2.0) -set(gcr_minimum_version 3.4) +set(gcr3_minimum_version 3.4) +set(gcr4_minimum_version 3.90.0) set(gdk_pixbuf_minimum_version 2.24.0) set(gnome_desktop_minimum_version 2.91.3) set(gsettings_desktop_schemas_minimum_version 2.91.92) @@ -252,10 +253,20 @@ else(ENABLE_GNOME_DESKTOP) set(HAVE_GNOME_DESKTOP OFF) endif(ENABLE_GNOME_DESKTOP) +add_printable_option(WITH_GCR3 "Use gcr3, instead of gcr4" OFF) + +if(WITH_GCR3) + set(GCR_DEPENDENCY gcr-3) + set(gcr_minimum_version ${gcr3_minimum_version}) +else(WITH_GCR3) + set(GCR_DEPENDENCY gcr-4-gtk3) + set(gcr_minimum_version ${gcr4_minimum_version}) +endif(WITH_GCR3) + pkg_check_modules(GNOME_PLATFORM REQUIRED cairo-gobject gail-3.0>=${gdk_minimum_version} - gcr-3>=${gcr_minimum_version} + ${GCR_DEPENDENCY}>=${gcr_minimum_version} gdk-pixbuf-2.0>=${gdk_pixbuf_minimum_version} gio-2.0>=${glib_minimum_version} ${GIO_UNIX_REQUIREMENT} diff --git a/config.h.in b/config.h.in index 0b6ea1fb1c..90f15a8394 100644 --- a/config.h.in +++ b/config.h.in @@ -122,3 +122,6 @@ /* Define if libical-glib has I_CAL_EMAIL_PARAMETER */ #cmakedefine HAVE_I_CAL_EMAIL_PARAMETER 1 + +/* Defined, when using gcr3, not gcr4 */ +#cmakedefine WITH_GCR3 1 diff --git a/src/addressbook/gui/contact-editor/e-contact-editor.c b/src/addressbook/gui/contact-editor/e-contact-editor.c index 7bda5826da..d517f5f598 100644 --- a/src/addressbook/gui/contact-editor/e-contact-editor.c +++ b/src/addressbook/gui/contact-editor/e-contact-editor.c @@ -34,7 +34,11 @@ #include #define GCR_API_SUBJECT_TO_CHANGE +#ifdef WITH_GCR3 #include +#else +#include +#endif #undef GCR_API_SUBJECT_TO_CHANGE #include "shell/e-shell.h" @@ -3536,7 +3540,7 @@ init_certs (EContactEditor *editor) GtkTreeViewColumn *column; GtkTreeSelection *selection; GtkCellRenderer *renderer; - GcrCertificateWidget *certificate_widget; + GtkWidget *certificate_widget; GtkWidget *widget; tree_view = GTK_TREE_VIEW (e_builder_get_widget (editor->priv->builder, "certs-treeview")); @@ -3568,10 +3572,10 @@ init_certs (EContactEditor *editor) gtk_tree_view_set_model (tree_view, GTK_TREE_MODEL (list_store)); - certificate_widget = gcr_certificate_widget_new (NULL); - gtk_widget_show (GTK_WIDGET (certificate_widget)); + certificate_widget = GTK_WIDGET (gcr_certificate_widget_new (NULL)); + gtk_widget_show (certificate_widget); widget = e_builder_get_widget (editor->priv->builder, "cert-preview-scw"); - gtk_container_add (GTK_CONTAINER (widget), GTK_WIDGET (certificate_widget)); + gtk_container_add (GTK_CONTAINER (widget), certificate_widget); selection = gtk_tree_view_get_selection (tree_view); gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE); diff --git a/src/smime/gui/certificate-manager.c b/src/smime/gui/certificate-manager.c index 9e630f4921..58568e5533 100644 --- a/src/smime/gui/certificate-manager.c +++ b/src/smime/gui/certificate-manager.c @@ -49,8 +49,11 @@ /* XXX Yeah, yeah... */ #define GCR_API_SUBJECT_TO_CHANGE - +#ifdef WITH_GCR3 #include +#else +#include +#endif #include "shell/e-shell.h" @@ -1235,8 +1238,7 @@ cm_prepare_certificate_widget (GcrCertificate *certificate) { GcrParser *parser; GcrParsed *parsed = NULL; - GckAttributes *attributes; - GcrCertificateWidget *certificate_widget; + GtkWidget *widget; const guchar *der_data = NULL; gsize der_length; GError *local_error = NULL; @@ -1264,13 +1266,24 @@ cm_prepare_certificate_widget (GcrCertificate *certificate) return NULL; } - attributes = gcr_parsed_get_attributes (parsed); - certificate_widget = gcr_certificate_widget_new (certificate); - gcr_certificate_widget_set_attributes (certificate_widget, attributes); + #ifdef WITH_GCR3 + { + GcrCertificateWidget *certificate_widget; + GckAttributes *attributes; + + attributes = gcr_parsed_get_attributes (parsed); + certificate_widget = gcr_certificate_widget_new (certificate); + gcr_certificate_widget_set_attributes (certificate_widget, attributes); + + widget = GTK_WIDGET (certificate_widget); + } + #else + widget = gcr_certificate_widget_new (certificate); + #endif gcr_parsed_unref (parsed); - return GTK_WIDGET (certificate_widget); + return widget; } static void diff --git a/src/smime/gui/e-cert-selector.c b/src/smime/gui/e-cert-selector.c index 77e492b1f9..4986047c01 100644 --- a/src/smime/gui/e-cert-selector.c +++ b/src/smime/gui/e-cert-selector.c @@ -39,7 +39,11 @@ #define PKCS11_H 1 #define GCR_API_SUBJECT_TO_CHANGE -#include "gcr/gcr.h" +#ifdef WITH_GCR3 +#include +#else +#include +#endif #include "smime/lib/e-cert.h" @@ -168,7 +172,7 @@ e_cert_selector_new (gint type, e_load_ui_builder_definition (builder, "smime-ui.ui"); p->combobox = e_builder_get_widget (builder, "cert_combobox"); - p->cert_widget = gcr_certificate_widget_new (NULL); + p->cert_widget = GCR_CERTIFICATE_WIDGET (gcr_certificate_widget_new (NULL)); w = e_builder_get_widget (builder, "cert_selector_vbox"); content_area = gtk_dialog_get_content_area (GTK_DIALOG (ecs)); diff --git a/src/smime/lib/e-cert.c b/src/smime/lib/e-cert.c index f6792cb352..88ffbffa83 100644 --- a/src/smime/lib/e-cert.c +++ b/src/smime/lib/e-cert.c @@ -62,7 +62,11 @@ /* XXX Yeah, yeah */ #define GCR_API_SUBJECT_TO_CHANGE +#ifdef WITH_GCR3 #include +#else +#include +#endif #define E_CERT_GET_PRIVATE(obj) \ (G_TYPE_INSTANCE_GET_PRIVATE \ -- 2.35.1