123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- From 783a71be49b32b2c0d92509579f425cdbf5208ac Mon Sep 17 00:00:00 2001
- From: Mart Raudsepp <leio@gentoo.org>
- Date: Sun, 12 Jul 2020 12:27:59 +0300
- Subject: [PATCH 2/5] build: Make kerberos optional
- ---
- meson.build | 5 +++++
- meson_options.txt | 1 +
- panels/user-accounts/cc-realm-manager.c | 9 +++++++++
- panels/user-accounts/meson.build | 4 ----
- 4 files changed, 15 insertions(+), 4 deletions(-)
- diff --git a/meson.build b/meson.build
- index 4470376db..acf68a1da 100644
- --- a/meson.build
- +++ b/meson.build
- @@ -262,6 +262,11 @@ config_h.set('HAVE_WACOM', enable_wacom,
- config_h.set('BUILD_THUNDERBOLT', host_is_linux_not_s390,
- description: 'Define to 1 to build the Thunderbolt panel')
-
- +# Kerberos support
- +krb_dep = dependency('krb5', required: get_option('kerberos'))
- +config_h.set('HAVE_KERBEROS', krb_dep.found(),
- + description: 'Define to 1 if kerberos support is available')
- +
- gnome = import('gnome')
- i18n = import('i18n')
- pkg = import('pkgconfig')
- diff --git a/meson_options.txt b/meson_options.txt
- index 2b3da02c0..5c558557d 100644
- --- a/meson_options.txt
- +++ b/meson_options.txt
- @@ -2,6 +2,7 @@ option('bluetooth', type: 'boolean', value: true, description: 'build with Bluet
- option('cheese', type: 'boolean', value: true, description: 'build with cheese webcam support')
- option('documentation', type: 'boolean', value: false, description: 'build documentation')
- option('ibus', type: 'boolean', value: true, description: 'build with IBus support')
- +option('kerberos', type: 'feature', value: 'auto', description: 'build with kerberos support')
- option('network_manager', type: 'boolean', value: true, description: 'build with NetworkManager support')
- option('privileged_group', type: 'string', value: 'wheel', description: 'name of group that has elevated permissions')
- option('snap', type: 'boolean', value: false, description: 'build with Snap support')
- diff --git a/panels/user-accounts/cc-realm-manager.c b/panels/user-accounts/cc-realm-manager.c
- index bc43e6d0f..cd1cb025d 100644
- --- a/panels/user-accounts/cc-realm-manager.c
- +++ b/panels/user-accounts/cc-realm-manager.c
- @@ -22,7 +22,9 @@
-
- #include "cc-realm-manager.h"
-
- +#ifdef HAVE_KERBEROS
- #include <krb5/krb5.h>
- +#endif
-
- #include <glib.h>
- #include <glib/gi18n.h>
- @@ -596,6 +598,7 @@ login_closure_free (gpointer data)
- g_slice_free (LoginClosure, login);
- }
-
- +#ifdef HAVE_KERBEROS
- static krb5_error_code
- login_perform_kinit (krb5_context k5,
- const gchar *realm,
- @@ -657,6 +660,7 @@ login_perform_kinit (krb5_context k5,
-
- return code;
- }
- +#endif
-
- static void
- kinit_thread_func (GTask *t,
- @@ -665,6 +669,7 @@ kinit_thread_func (GTask *t,
- GCancellable *cancellable)
- {
- g_autoptr(GTask) task = t;
- +#ifdef HAVE_KERBEROS
- LoginClosure *login = task_data;
- krb5_context k5 = NULL;
- krb5_error_code code;
- @@ -740,6 +745,10 @@ kinit_thread_func (GTask *t,
-
- if (k5)
- krb5_free_context (k5);
- +#else
- + g_task_return_new_error (task, CC_REALM_ERROR, CC_REALM_ERROR_GENERIC,
- + _("gnome-control-center was built without kerberos support"));
- +#endif
- }
-
- void
- diff --git a/panels/user-accounts/meson.build b/panels/user-accounts/meson.build
- index b8ee9d98e..4375d3816 100644
- --- a/panels/user-accounts/meson.build
- +++ b/panels/user-accounts/meson.build
- @@ -169,10 +169,6 @@ sources += gnome.mkenums_simple(
- 'cc-user-accounts-enum-types',
- sources: files(enum_headers))
-
- -# Kerberos support
- -krb_dep = dependency('krb5', required: false)
- -assert(krb_dep.found(), 'kerberos libraries not found in your path')
- -
- deps = common_deps + [
- accounts_dep,
- gdk_pixbuf_dep,
- --
- 2.26.3
|