fi
AM_CONDITIONAL(ENABLE_SYSUSERS, [test "$have_sysusers" = "yes"])
+AC_ARG_ENABLE(gshadow, AS_HELP_STRING([--disable-gshadow], [disable shadow group support]))
+AS_IF([test "x${enable_gshadow}" != "xno"], [
+ AC_DEFINE(ENABLE_GSHADOW, 1, [shadow group support is enabled])
+])
+
# ------------------------------------------------------------------------------
have_firstboot=no
AC_ARG_ENABLE(firstboot, AS_HELP_STRING([--disable-firstboot], [disable firstboot support]))
['tpm', 'SD_BOOT_LOG_TPM'],
['ima', 'HAVE_IMA'],
['smack', 'HAVE_SMACK'],
+ ['gshadow', 'ENABLE_GSHADOW'],
]
if get_option(pair[0])
['hibernate'],
['adm group', get_option('adm-group')],
['wheel group', get_option('wheel-group')],
+ ['gshadow'],
['debug hashmap'],
['debug mmap cache'],
]
description : '/dev/kvm access mode')
option('default-kill-user-processes', type : 'boolean',
description : 'the default value for KillUserProcesses= setting')
+option('gshadow', type : 'boolean',
+ description : 'support for shadow group')
option('default-dnssec', type : 'combo',
description : 'default DNSSEC mode',
return 0;
}
+#ifdef ENABLE_GSHADOW
static int putsgent_with_members(const struct sgrp *sg, FILE *gshadow) {
char **a;
return 0;
}
+#endif
static int sync_rights(FILE *from, FILE *to) {
struct stat st;
}
static int write_temporary_gshadow(const char * gshadow_path, FILE **tmpfile, char **tmpfile_path) {
+#ifdef ENABLE_GSHADOW
_cleanup_fclose_ FILE *original = NULL, *gshadow = NULL;
_cleanup_free_ char *gshadow_tmp = NULL;
bool group_changed = false;
fail:
unlink(gshadow_tmp);
return r;
+#else
+ return 0;
+#endif
}
static int write_files(void) {