0002-build-Make-kerberos-optional.patch 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. From 783a71be49b32b2c0d92509579f425cdbf5208ac Mon Sep 17 00:00:00 2001
  2. From: Mart Raudsepp <leio@gentoo.org>
  3. Date: Sun, 12 Jul 2020 12:27:59 +0300
  4. Subject: [PATCH 2/5] build: Make kerberos optional
  5. ---
  6. meson.build | 5 +++++
  7. meson_options.txt | 1 +
  8. panels/user-accounts/cc-realm-manager.c | 9 +++++++++
  9. panels/user-accounts/meson.build | 4 ----
  10. 4 files changed, 15 insertions(+), 4 deletions(-)
  11. diff --git a/meson.build b/meson.build
  12. index 4470376db..acf68a1da 100644
  13. --- a/meson.build
  14. +++ b/meson.build
  15. @@ -262,6 +262,11 @@ config_h.set('HAVE_WACOM', enable_wacom,
  16. config_h.set('BUILD_THUNDERBOLT', host_is_linux_not_s390,
  17. description: 'Define to 1 to build the Thunderbolt panel')
  18. +# Kerberos support
  19. +krb_dep = dependency('krb5', required: get_option('kerberos'))
  20. +config_h.set('HAVE_KERBEROS', krb_dep.found(),
  21. + description: 'Define to 1 if kerberos support is available')
  22. +
  23. gnome = import('gnome')
  24. i18n = import('i18n')
  25. pkg = import('pkgconfig')
  26. diff --git a/meson_options.txt b/meson_options.txt
  27. index 2b3da02c0..5c558557d 100644
  28. --- a/meson_options.txt
  29. +++ b/meson_options.txt
  30. @@ -2,6 +2,7 @@ option('bluetooth', type: 'boolean', value: true, description: 'build with Bluet
  31. option('cheese', type: 'boolean', value: true, description: 'build with cheese webcam support')
  32. option('documentation', type: 'boolean', value: false, description: 'build documentation')
  33. option('ibus', type: 'boolean', value: true, description: 'build with IBus support')
  34. +option('kerberos', type: 'feature', value: 'auto', description: 'build with kerberos support')
  35. option('network_manager', type: 'boolean', value: true, description: 'build with NetworkManager support')
  36. option('privileged_group', type: 'string', value: 'wheel', description: 'name of group that has elevated permissions')
  37. option('snap', type: 'boolean', value: false, description: 'build with Snap support')
  38. diff --git a/panels/user-accounts/cc-realm-manager.c b/panels/user-accounts/cc-realm-manager.c
  39. index bc43e6d0f..cd1cb025d 100644
  40. --- a/panels/user-accounts/cc-realm-manager.c
  41. +++ b/panels/user-accounts/cc-realm-manager.c
  42. @@ -22,7 +22,9 @@
  43. #include "cc-realm-manager.h"
  44. +#ifdef HAVE_KERBEROS
  45. #include <krb5/krb5.h>
  46. +#endif
  47. #include <glib.h>
  48. #include <glib/gi18n.h>
  49. @@ -596,6 +598,7 @@ login_closure_free (gpointer data)
  50. g_slice_free (LoginClosure, login);
  51. }
  52. +#ifdef HAVE_KERBEROS
  53. static krb5_error_code
  54. login_perform_kinit (krb5_context k5,
  55. const gchar *realm,
  56. @@ -657,6 +660,7 @@ login_perform_kinit (krb5_context k5,
  57. return code;
  58. }
  59. +#endif
  60. static void
  61. kinit_thread_func (GTask *t,
  62. @@ -665,6 +669,7 @@ kinit_thread_func (GTask *t,
  63. GCancellable *cancellable)
  64. {
  65. g_autoptr(GTask) task = t;
  66. +#ifdef HAVE_KERBEROS
  67. LoginClosure *login = task_data;
  68. krb5_context k5 = NULL;
  69. krb5_error_code code;
  70. @@ -740,6 +745,10 @@ kinit_thread_func (GTask *t,
  71. if (k5)
  72. krb5_free_context (k5);
  73. +#else
  74. + g_task_return_new_error (task, CC_REALM_ERROR, CC_REALM_ERROR_GENERIC,
  75. + _("gnome-control-center was built without kerberos support"));
  76. +#endif
  77. }
  78. void
  79. diff --git a/panels/user-accounts/meson.build b/panels/user-accounts/meson.build
  80. index b8ee9d98e..4375d3816 100644
  81. --- a/panels/user-accounts/meson.build
  82. +++ b/panels/user-accounts/meson.build
  83. @@ -169,10 +169,6 @@ sources += gnome.mkenums_simple(
  84. 'cc-user-accounts-enum-types',
  85. sources: files(enum_headers))
  86. -# Kerberos support
  87. -krb_dep = dependency('krb5', required: false)
  88. -assert(krb_dep.found(), 'kerberos libraries not found in your path')
  89. -
  90. deps = common_deps + [
  91. accounts_dep,
  92. gdk_pixbuf_dep,
  93. --
  94. 2.26.3