[sssd] Fix several regressions since 1.5.x
Stephen Gallagher
sgallagh at fedoraproject.org
Thu May 24 12:23:29 UTC 2012
commit 359d341a35142dd39d4182fd31ae7d4fee51e5c6
Author: Stephen Gallagher <sgallagh at redhat.com>
Date: Thu May 24 08:23:25 2012 -0400
Fix several regressions since 1.5.x
- Ensure that the RPM creates the /var/lib/sss/mc directory
- Add support for Netscape password warning expiration control
- Rebuild against libldb 1.1.6
...ge-Kerberos-credential-cache-default-loca.patch | 3 +-
...ential-NULL-dereference-in-proxy-provider.patch | 25 +
0003-Fix-typos-in-message-and-man-pages.patch | 62 +
0004-Fixed-two-minor-memory-leaks.patch | 43 +
...name-struct-dom_sid-to-struct-sss_dom_sid.patch | 296 ++
0006-Fix-libsss_hbac-library-version.patch | 25 +
...pointer-to-body-after-body-is-reallocated.patch | 26 +
...se-sized_string-correctly-in-FQDN-domains.patch | 34 +
...llow-running-make-rpms-on-RHEL-5-machines.patch | 63 +
...db-attribute-name-not-LDAP-attribute-name.patch | 39 +
...in-memory-netgroup-cache-before-the-nowai.patch | 46 +
...positional-arguments-in-translatable-stri.patch | 264 ++
...ementation-of-Netscape-password-warning-e.patch | 204 +
...-Avoid-NULL-dereference-with-empty-keytab.patch | 45 +
...-to-syslog-when-dereference-requests-fail.patch | 27 +
0016-Update-translation-sources.patch | 4201 ++++++++++++++++++++
...-groups-Do-not-process-callback-with-_pos.patch | 58 +
0018-Fixed-issue-in-SELinux-user-maps.patch | 35 +
...fault-when-mmap-cache-cannot-be-initializ.patch | 35 +
sssd.spec | 35 +-
20 files changed, 5562 insertions(+), 4 deletions(-)
---
diff --git a/FED01-Change-Kerberos-credential-cache-default-loca.patch b/0001-FEDORA-Change-Kerberos-credential-cache-default-loca.patch
similarity index 96%
rename from FED01-Change-Kerberos-credential-cache-default-loca.patch
rename to 0001-FEDORA-Change-Kerberos-credential-cache-default-loca.patch
index 99d9267..5aad9e0 100644
--- a/FED01-Change-Kerberos-credential-cache-default-loca.patch
+++ b/0001-FEDORA-Change-Kerberos-credential-cache-default-loca.patch
@@ -1,7 +1,8 @@
From 05c49dd916dcbea2ce8f6a6b14fd54a5c67fd6db Mon Sep 17 00:00:00 2001
From: Stephen Gallagher <sgallagh at redhat.com>
Date: Wed, 22 Feb 2012 07:53:56 -0500
-Subject: [PATCH] FEDORA: Change Kerberos credential cache default location
+Subject: [PATCH 01/19] FEDORA: Change Kerberos credential cache default
+ location
On Fedora, we need to default to using /run/user/%u for credential
caches for improved security and to simplify rpc.gssd locating the
diff --git a/0002-Potential-NULL-dereference-in-proxy-provider.patch b/0002-Potential-NULL-dereference-in-proxy-provider.patch
new file mode 100644
index 0000000..b75e224
--- /dev/null
+++ b/0002-Potential-NULL-dereference-in-proxy-provider.patch
@@ -0,0 +1,25 @@
+From 0b6df55aee996a4b1e8824d1c58c5494b0c5fb0b Mon Sep 17 00:00:00 2001
+From: Ariel Barria <arielb at fedoraproject.org>
+Date: Sat, 12 May 2012 11:00:51 -0500
+Subject: [PATCH 02/19] Potential NULL dereference in proxy provider
+
+---
+ src/providers/proxy/proxy_id.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/providers/proxy/proxy_id.c b/src/providers/proxy/proxy_id.c
+index 8a8c7ca80d1b24e53c3d55d06564e719a069642a..e7d9206e5081153ef389dd25db7a32816cc44839 100644
+--- a/src/providers/proxy/proxy_id.c
++++ b/src/providers/proxy/proxy_id.c
+@@ -215,7 +215,7 @@ static int save_user(struct sysdb_ctx *sysdb, bool lowercase,
+ shell = NULL;
+ }
+
+- if (!lowercase || alias) {
++ if (lowercase || alias) {
+ attrs = sysdb_new_attrs(NULL);
+ if (!attrs) {
+ DEBUG(SSSDBG_CRIT_FAILURE, ("Allocation error ?!\n"));
+--
+1.7.10.1
+
diff --git a/0003-Fix-typos-in-message-and-man-pages.patch b/0003-Fix-typos-in-message-and-man-pages.patch
new file mode 100644
index 0000000..ced149b
--- /dev/null
+++ b/0003-Fix-typos-in-message-and-man-pages.patch
@@ -0,0 +1,62 @@
+From 47669c95501ee6adbb0700f4d4a62ae09daa21f7 Mon Sep 17 00:00:00 2001
+From: Yuri Chornoivan <yurchor at ukr.net>
+Date: Fri, 11 May 2012 23:12:19 +0300
+Subject: [PATCH 03/19] Fix typos in message and man pages.
+
+---
+ src/config/SSSDConfig.py | 2 +-
+ src/man/include/ldap_id_mapping.xml | 2 +-
+ src/man/sssd.conf.5.xml | 4 ++--
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/config/SSSDConfig.py b/src/config/SSSDConfig.py
+index a44e138f6461681709d78bbece86f6f8720ae31c..11da7cf2ba42076f3088cbbff81b69b39a0dc449 100644
+--- a/src/config/SSSDConfig.py
++++ b/src/config/SSSDConfig.py
+@@ -85,7 +85,7 @@ option_strings = {
+ 'autofs_negative_timeout' : _('Negative cache timeout length (seconds)'),
+
+ # [ssh]
+- 'ssh_hash_known_hosts': _('Whether to hash host names and adresses in the known_hosts file'),
++ 'ssh_hash_known_hosts': _('Whether to hash host names and addresses in the known_hosts file'),
+
+ # [provider]
+ 'id_provider' : _('Identity provider'),
+diff --git a/src/man/include/ldap_id_mapping.xml b/src/man/include/ldap_id_mapping.xml
+index 62e5598eb0d31fdc1185db13ae0c433b233b9ba2..75335f5032c36c01aa0bcc14d05b60ace0c22734 100644
+--- a/src/man/include/ldap_id_mapping.xml
++++ b/src/man/include/ldap_id_mapping.xml
+@@ -83,7 +83,7 @@ ldap_schema = ad
+ </para>
+ <para>
+ NOTE: This option is different from
+- <quote>id_mn</quote> in that <quote>id_min</quote>
++ <quote>id_min</quote> in that <quote>id_min</quote>
+ acts to filter the output of requests to this domain,
+ whereas this option controls the range of ID
+ assignment. This is a subtle distinction, but the
+diff --git a/src/man/sssd.conf.5.xml b/src/man/sssd.conf.5.xml
+index e283480e3a5725a1acee93c95b20d5b504393e4f..8eaeb13ce0e2af97b19b0855d8cc7f5985659214 100644
+--- a/src/man/sssd.conf.5.xml
++++ b/src/man/sssd.conf.5.xml
+@@ -521,7 +521,7 @@
+ <listitem>
+ <para>
+ The default shell to use if the provider does not
+- return one during lookup. This option supercedes
++ return one during lookup. This option supersedes
+ any other shell options if it takes effect.
+ </para>
+ <para>
+@@ -786,7 +786,7 @@
+ <term>ssh_hash_known_hosts (bool)</term>
+ <listitem>
+ <para>
+- Whether or not to hash host names and adresses in
++ Whether or not to hash host names and addresses in
+ the managed known_hosts file.
+ </para>
+ <para>
+--
+1.7.10.1
+
diff --git a/0004-Fixed-two-minor-memory-leaks.patch b/0004-Fixed-two-minor-memory-leaks.patch
new file mode 100644
index 0000000..17ecd1a
--- /dev/null
+++ b/0004-Fixed-two-minor-memory-leaks.patch
@@ -0,0 +1,43 @@
+From ac102092fe08183f916e6115fb6fef0f0a792126 Mon Sep 17 00:00:00 2001
+From: Jan Zeleny <jzeleny at redhat.com>
+Date: Mon, 14 May 2012 04:11:32 -0400
+Subject: [PATCH 04/19] Fixed two minor memory leaks
+
+---
+ src/providers/ldap/sdap.c | 5 ++++-
+ src/providers/ldap/sdap_range.c | 3 ++-
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/src/providers/ldap/sdap.c b/src/providers/ldap/sdap.c
+index 1bb513ae639c37c64cd0064066f7c69552404671..01ba418a6e50808552845f6e91db448c57adbb83 100644
+--- a/src/providers/ldap/sdap.c
++++ b/src/providers/ldap/sdap.c
+@@ -123,7 +123,10 @@ int sdap_parse_entry(TALLOC_CTX *memctx,
+ }
+
+ attrs = sysdb_new_attrs(tmp_ctx);
+- if (!attrs) return ENOMEM;
++ if (!attrs) {
++ ret = ENOMEM;
++ goto done;
++ }
+
+ str = ldap_get_dn(sh->ldap, sm->msg);
+ if (!str) {
+diff --git a/src/providers/ldap/sdap_range.c b/src/providers/ldap/sdap_range.c
+index 295b6605d15a83b7994bb440e3942f5f620cbeaf..a26443c8244bc58e609b2d9c6b4a2ded71193725 100644
+--- a/src/providers/ldap/sdap_range.c
++++ b/src/providers/ldap/sdap_range.c
+@@ -104,7 +104,8 @@ errno_t sdap_parse_range(TALLOC_CTX *mem_ctx,
+ DEBUG(SSSDBG_TRACE_LIBS,
+ ("[%s] contained the last set of values for this attribute\n",
+ attr_desc));
+- return EOK;
++ ret = EOK;
++ goto done;
+ }
+
+ *range_offset = strtouint32(end_range, &endptr, 10);
+--
+1.7.10.1
+
diff --git a/0005-Rename-struct-dom_sid-to-struct-sss_dom_sid.patch b/0005-Rename-struct-dom_sid-to-struct-sss_dom_sid.patch
new file mode 100644
index 0000000..cc3b873
--- /dev/null
+++ b/0005-Rename-struct-dom_sid-to-struct-sss_dom_sid.patch
@@ -0,0 +1,296 @@
+From 4e59e4c8f344e93a64d2bb53578c977475d76546 Mon Sep 17 00:00:00 2001
+From: Sumit Bose <sbose at redhat.com>
+Date: Mon, 14 May 2012 13:14:14 +0200
+Subject: [PATCH 05/19] Rename struct dom_sid to struct sss_dom_sid
+
+To avoid conflicts with struct dom_sid used by samba the sss_ prefix is
+added to the struct used by libsss_idmap.
+---
+ Makefile.am | 2 +-
+ src/lib/idmap/sss_idmap.c | 6 +++---
+ src/lib/idmap/sss_idmap.h | 14 +++++++-------
+ src/lib/idmap/sss_idmap_conv.c | 26 +++++++++++++-------------
+ src/tests/sss_idmap-tests.c | 16 ++++++++--------
+ 5 files changed, 32 insertions(+), 32 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 5089b8e5c9cd6bddd0ad038423101a0d29e8b18e..2e13a9777a074e628b48bbd23626d019c2e5c617 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -500,7 +500,7 @@ libsss_idmap_la_SOURCES = \
+ src/lib/idmap/sss_idmap.c \
+ src/lib/idmap/sss_idmap_conv.c
+ libsss_idmap_la_LDFLAGS = \
+- -version 1:0:1
++ -version-info 0:1:0
+
+
+ include_HEADERS = \
+diff --git a/src/lib/idmap/sss_idmap.c b/src/lib/idmap/sss_idmap.c
+index c970293bccd2385886453afdc2573e2bbbc9c7ad..c589bd458a01ecd9ba298e879e21f746a2ef50e6 100644
+--- a/src/lib/idmap/sss_idmap.c
++++ b/src/lib/idmap/sss_idmap.c
+@@ -361,7 +361,7 @@ enum idmap_error_code sss_idmap_unix_to_sid(struct sss_idmap_ctx *ctx,
+ }
+
+ enum idmap_error_code sss_idmap_dom_sid_to_unix(struct sss_idmap_ctx *ctx,
+- struct dom_sid *dom_sid,
++ struct sss_dom_sid *dom_sid,
+ uint32_t *id)
+ {
+ enum idmap_error_code err;
+@@ -407,11 +407,11 @@ done:
+
+ enum idmap_error_code sss_idmap_unix_to_dom_sid(struct sss_idmap_ctx *ctx,
+ uint32_t id,
+- struct dom_sid **_dom_sid)
++ struct sss_dom_sid **_dom_sid)
+ {
+ enum idmap_error_code err;
+ char *sid = NULL;
+- struct dom_sid *dom_sid = NULL;
++ struct sss_dom_sid *dom_sid = NULL;
+
+ CHECK_IDMAP_CTX(ctx, IDMAP_CONTEXT_INVALID);
+
+diff --git a/src/lib/idmap/sss_idmap.h b/src/lib/idmap/sss_idmap.h
+index 78e786afe680fa276e75148798a590115aec2c1b..a3ec919c8041bb151747cdb8b577dc25f64ad124 100644
+--- a/src/lib/idmap/sss_idmap.h
++++ b/src/lib/idmap/sss_idmap.h
+@@ -90,7 +90,7 @@ struct sss_idmap_range {
+ /**
+ * Opaque type for SIDs
+ */
+-struct dom_sid;
++struct sss_dom_sid;
+
+ /**
+ * Opaque type for the idmap context
+@@ -167,7 +167,7 @@ enum idmap_error_code sss_idmap_sid_to_unix(struct sss_idmap_ctx *ctx,
+ * idmap context
+ */
+ enum idmap_error_code sss_idmap_dom_sid_to_unix(struct sss_idmap_ctx *ctx,
+- struct dom_sid *dom_sid,
++ struct sss_dom_sid *dom_sid,
+ uint32_t *id);
+
+ /**
+@@ -220,7 +220,7 @@ enum idmap_error_code sss_idmap_unix_to_sid(struct sss_idmap_ctx *ctx,
+ */
+ enum idmap_error_code sss_idmap_unix_to_dom_sid(struct sss_idmap_ctx *ctx,
+ uint32_t id,
+- struct dom_sid **dom_sid);
++ struct sss_dom_sid **dom_sid);
+
+ /**
+ * @brief Translate unix UID or GID to a binary SID
+@@ -288,7 +288,7 @@ bool is_domain_sid(const char *str);
+ enum idmap_error_code sss_idmap_bin_sid_to_dom_sid(struct sss_idmap_ctx *ctx,
+ const uint8_t *bin_sid,
+ size_t length,
+- struct dom_sid **dom_sid);
++ struct sss_dom_sid **dom_sid);
+
+ /**
+ * @brief Convert binary SID to SID string
+@@ -322,7 +322,7 @@ enum idmap_error_code sss_idmap_bin_sid_to_sid(struct sss_idmap_ctx *ctx,
+ * - #IDMAP_OUT_OF_MEMORY: Failed to allocate memory for the result
+ */
+ enum idmap_error_code sss_idmap_dom_sid_to_bin_sid(struct sss_idmap_ctx *ctx,
+- struct dom_sid *dom_sid,
++ struct sss_dom_sid *dom_sid,
+ uint8_t **bin_sid,
+ size_t *length);
+
+@@ -357,7 +357,7 @@ enum idmap_error_code sss_idmap_sid_to_bin_sid(struct sss_idmap_ctx *ctx,
+ * - #IDMAP_OUT_OF_MEMORY: Failed to allocate memory for the result
+ */
+ enum idmap_error_code sss_idmap_dom_sid_to_sid(struct sss_idmap_ctx *ctx,
+- struct dom_sid *dom_sid,
++ struct sss_dom_sid *dom_sid,
+ char **sid);
+
+ /**
+@@ -374,7 +374,7 @@ enum idmap_error_code sss_idmap_dom_sid_to_sid(struct sss_idmap_ctx *ctx,
+ */
+ enum idmap_error_code sss_idmap_sid_to_dom_sid(struct sss_idmap_ctx *ctx,
+ const char *sid,
+- struct dom_sid **dom_sid);
++ struct sss_dom_sid **dom_sid);
+ /**
+ * @}
+ */
+diff --git a/src/lib/idmap/sss_idmap_conv.c b/src/lib/idmap/sss_idmap_conv.c
+index e2064f6dabf0c599ff415b9e5655c1d2d3f60dc5..df96fcc327679bedbe19fc2c8d7cc54f692a8161 100644
+--- a/src/lib/idmap/sss_idmap_conv.c
++++ b/src/lib/idmap/sss_idmap_conv.c
+@@ -33,7 +33,7 @@
+
+ #define SID_ID_AUTHS 6
+ #define SID_SUB_AUTHS 15
+-struct dom_sid {
++struct sss_dom_sid {
+ uint8_t sid_rev_num;
+ int8_t num_auths; /* [range(0,15)] */
+ uint8_t id_auth[SID_ID_AUTHS]; /* highest order byte has index 0 */
+@@ -43,19 +43,19 @@ struct dom_sid {
+ enum idmap_error_code sss_idmap_bin_sid_to_dom_sid(struct sss_idmap_ctx *ctx,
+ const uint8_t *bin_sid,
+ size_t length,
+- struct dom_sid **_dom_sid)
++ struct sss_dom_sid **_dom_sid)
+ {
+ enum idmap_error_code err;
+- struct dom_sid *dom_sid;
++ struct sss_dom_sid *dom_sid;
+ size_t i = 0;
+ size_t p = 0;
+ uint32_t val;
+
+ CHECK_IDMAP_CTX(ctx, IDMAP_CONTEXT_INVALID);
+
+- if (length > sizeof(struct dom_sid)) return IDMAP_SID_INVALID;
++ if (length > sizeof(struct sss_dom_sid)) return IDMAP_SID_INVALID;
+
+- dom_sid = ctx->alloc_func(sizeof(struct dom_sid), ctx->alloc_pvt);
++ dom_sid = ctx->alloc_func(sizeof(struct sss_dom_sid), ctx->alloc_pvt);
+ if (dom_sid == NULL) {
+ return IDMAP_OUT_OF_MEMORY;
+ }
+@@ -101,7 +101,7 @@ done:
+ }
+
+ enum idmap_error_code sss_idmap_dom_sid_to_bin_sid(struct sss_idmap_ctx *ctx,
+- struct dom_sid *dom_sid,
++ struct sss_dom_sid *dom_sid,
+ uint8_t **_bin_sid,
+ size_t *_length)
+ {
+@@ -157,7 +157,7 @@ done:
+ }
+
+ enum idmap_error_code sss_idmap_dom_sid_to_sid(struct sss_idmap_ctx *ctx,
+- struct dom_sid *dom_sid,
++ struct sss_dom_sid *dom_sid,
+ char **_sid)
+ {
+ enum idmap_error_code err;
+@@ -222,13 +222,13 @@ done:
+
+ enum idmap_error_code sss_idmap_sid_to_dom_sid(struct sss_idmap_ctx *ctx,
+ const char *sid,
+- struct dom_sid **_dom_sid)
++ struct sss_dom_sid **_dom_sid)
+ {
+ enum idmap_error_code err;
+ unsigned long ul;
+ char *r;
+ char *end;
+- struct dom_sid *dom_sid;
++ struct sss_dom_sid *dom_sid;
+
+ CHECK_IDMAP_CTX(ctx, IDMAP_CONTEXT_INVALID);
+
+@@ -236,11 +236,11 @@ enum idmap_error_code sss_idmap_sid_to_dom_sid(struct sss_idmap_ctx *ctx,
+ return IDMAP_SID_INVALID;
+ }
+
+- dom_sid = ctx->alloc_func(sizeof(struct dom_sid), ctx->alloc_pvt);
++ dom_sid = ctx->alloc_func(sizeof(struct sss_dom_sid), ctx->alloc_pvt);
+ if (dom_sid == NULL) {
+ return IDMAP_OUT_OF_MEMORY;
+ }
+- memset(dom_sid, 0, sizeof(struct dom_sid));
++ memset(dom_sid, 0, sizeof(struct sss_dom_sid));
+
+
+ if (!isdigit(sid[2])) {
+@@ -330,7 +330,7 @@ enum idmap_error_code sss_idmap_sid_to_bin_sid(struct sss_idmap_ctx *ctx,
+ size_t *_length)
+ {
+ enum idmap_error_code err;
+- struct dom_sid *dom_sid = NULL;
++ struct sss_dom_sid *dom_sid = NULL;
+ size_t length;
+ uint8_t *bin_sid = NULL;
+
+@@ -363,7 +363,7 @@ enum idmap_error_code sss_idmap_bin_sid_to_sid(struct sss_idmap_ctx *ctx,
+ char **_sid)
+ {
+ enum idmap_error_code err;
+- struct dom_sid *dom_sid = NULL;
++ struct sss_dom_sid *dom_sid = NULL;
+ char *sid = NULL;
+
+ err = sss_idmap_bin_sid_to_dom_sid(ctx, bin_sid, length, &dom_sid);
+diff --git a/src/tests/sss_idmap-tests.c b/src/tests/sss_idmap-tests.c
+index d81922f1195413674a7a2b5f8429cfe0c2c037c5..b821dfc98b806f71e4d2a11b1fb609711d3e91b7 100644
+--- a/src/tests/sss_idmap-tests.c
++++ b/src/tests/sss_idmap-tests.c
+@@ -182,7 +182,7 @@ START_TEST(idmap_test_dom_sid2uid)
+ {
+ enum idmap_error_code err;
+ uint32_t id;
+- struct dom_sid *dom_sid = NULL;
++ struct sss_dom_sid *dom_sid = NULL;
+
+ err = sss_idmap_sid_to_dom_sid(idmap_ctx, "S-1-5-21-1-2-3-1000", &dom_sid);
+ fail_unless(err == IDMAP_SUCCESS, "Failed to convert SID to SID structure");
+@@ -219,7 +219,7 @@ END_TEST
+ START_TEST(idmap_test_uid2dom_sid)
+ {
+ enum idmap_error_code err;
+- struct dom_sid *dom_sid = NULL;
++ struct sss_dom_sid *dom_sid = NULL;
+ char *sid = NULL;
+
+ err = sss_idmap_unix_to_dom_sid(idmap_ctx, 10000, &dom_sid);
+@@ -269,7 +269,7 @@ END_TEST
+
+ START_TEST(idmap_test_sid_bin2dom_sid)
+ {
+- struct dom_sid *dom_sid = NULL;
++ struct sss_dom_sid *dom_sid = NULL;
+ enum idmap_error_code err;
+ uint8_t *new_bin_sid = NULL;
+ size_t new_bin_sid_length;
+@@ -278,12 +278,12 @@ START_TEST(idmap_test_sid_bin2dom_sid)
+ test_bin_sid_length, &dom_sid);
+
+ fail_unless(err == IDMAP_SUCCESS,
+- "Failed to convert binary SID to struct dom_sid.");
++ "Failed to convert binary SID to struct sss_dom_sid.");
+
+ err = sss_idmap_dom_sid_to_bin_sid(idmap_ctx, dom_sid, &new_bin_sid,
+ &new_bin_sid_length);
+ fail_unless(err == IDMAP_SUCCESS,
+- "Failed to convert struct dom_sid to binary SID.");
++ "Failed to convert struct sss_dom_sid to binary SID.");
+
+ fail_unless(new_bin_sid_length == test_bin_sid_length,
+ "Length of binary SIDs do not match.");
+@@ -297,18 +297,18 @@ END_TEST
+
+ START_TEST(idmap_test_sid2dom_sid)
+ {
+- struct dom_sid *dom_sid = NULL;
++ struct sss_dom_sid *dom_sid = NULL;
+ enum idmap_error_code err;
+ char *new_sid = NULL;
+
+ err = sss_idmap_sid_to_dom_sid(idmap_ctx, "S-1-5-21-1-2-3-1000", &dom_sid);
+
+ fail_unless(err == IDMAP_SUCCESS,
+- "Failed to convert SID string to struct dom_sid.");
++ "Failed to convert SID string to struct sss_dom_sid.");
+
+ err = sss_idmap_dom_sid_to_sid(idmap_ctx, dom_sid, &new_sid);
+ fail_unless(err == IDMAP_SUCCESS,
+- "Failed to convert struct dom_sid to SID string.");
++ "Failed to convert struct sss_dom_sid to SID string.");
+
+ fail_unless(new_sid != NULL, "SID string not set");
+ fail_unless(strlen("S-1-5-21-1-2-3-1000") == strlen(new_sid),
+--
+1.7.10.1
+
diff --git a/0006-Fix-libsss_hbac-library-version.patch b/0006-Fix-libsss_hbac-library-version.patch
new file mode 100644
index 0000000..651a60f
--- /dev/null
+++ b/0006-Fix-libsss_hbac-library-version.patch
@@ -0,0 +1,25 @@
+From a231d0b597a79b1a9a2617f543b1fef084532c9e Mon Sep 17 00:00:00 2001
+From: Sumit Bose <sbose at redhat.com>
+Date: Mon, 14 May 2012 15:04:38 +0200
+Subject: [PATCH 06/19] Fix libsss_hbac library version
+
+---
+ Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 2e13a9777a074e628b48bbd23626d019c2e5c617..e238b3538494a254c474518a1c4ea3fae7f975c8 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -492,7 +492,7 @@ libipa_hbac_la_SOURCES = \
+ src/providers/ipa/hbac_evaluator.c \
+ src/util/sss_utf8.c
+ libipa_hbac_la_LDFLAGS = \
+- -version 1:0:1 \
++ -version-info 0:1:0 \
+ $(UNICODE_LIBS)
+
+ dist_pkgconfig_DATA += src/lib/idmap/sss_idmap.pc
+--
+1.7.10.1
+
diff --git a/0007-NSS-keep-a-pointer-to-body-after-body-is-reallocated.patch b/0007-NSS-keep-a-pointer-to-body-after-body-is-reallocated.patch
new file mode 100644
index 0000000..efcde7a
--- /dev/null
+++ b/0007-NSS-keep-a-pointer-to-body-after-body-is-reallocated.patch
@@ -0,0 +1,26 @@
+From 33c35e25ba25100dcd77562055eea2a0cb1197a9 Mon Sep 17 00:00:00 2001
+From: Jakub Hrozek <jhrozek at redhat.com>
+Date: Mon, 14 May 2012 15:53:18 +0200
+Subject: [PATCH 07/19] NSS: keep a pointer to body after body is reallocated
+
+---
+ src/responder/nss/nsssrv_cmd.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/responder/nss/nsssrv_cmd.c b/src/responder/nss/nsssrv_cmd.c
+index f36a9a322ab92144c93b8cb9041d7a28515cc85d..43e82ae3ad1d98d440c076513ffb78ed46feb949 100644
+--- a/src/responder/nss/nsssrv_cmd.c
++++ b/src/responder/nss/nsssrv_cmd.c
+@@ -1919,6 +1919,9 @@ static int fill_grent(struct sss_packet *packet,
+ num++;
+
+ if (gr_mmap_cache) {
++ /* body was reallocated, so fullname might be pointing to
++ * where body used to be, not where it is */
++ to_sized_string(&fullname, (const char *)&body[rzero+STRS_ROFFSET]);
+ ret = sss_mmap_cache_gr_store(nctx->grp_mc_ctx,
+ &fullname, &pwfield, gid, memnum,
+ (char *)&body[rzero] + STRS_ROFFSET +
+--
+1.7.10.1
+
diff --git a/0008-Use-sized_string-correctly-in-FQDN-domains.patch b/0008-Use-sized_string-correctly-in-FQDN-domains.patch
new file mode 100644
index 0000000..a8b24db
--- /dev/null
+++ b/0008-Use-sized_string-correctly-in-FQDN-domains.patch
@@ -0,0 +1,34 @@
+From f12d3379b89bb16ec8e85f496f9dbd9fba95d874 Mon Sep 17 00:00:00 2001
+From: Jakub Hrozek <jhrozek at redhat.com>
+Date: Mon, 14 May 2012 15:58:37 +0200
+Subject: [PATCH 08/19] Use sized_string correctly in FQDN domains
+
+---
+ src/responder/nss/nsssrv_cmd.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/responder/nss/nsssrv_cmd.c b/src/responder/nss/nsssrv_cmd.c
+index 43e82ae3ad1d98d440c076513ffb78ed46feb949..aa3ef3cbc0b98d3fe44e14dce212ecf1279f14f3 100644
+--- a/src/responder/nss/nsssrv_cmd.c
++++ b/src/responder/nss/nsssrv_cmd.c
+@@ -1863,7 +1863,7 @@ static int fill_grent(struct sss_packet *packet,
+ if (add_domain) {
+ ret = snprintf((char *)&body[rzero + rsize],
+ name.len + delim + dom_len,
+- namefmt, name, domain);
++ namefmt, name.str, domain);
+ if (ret >= (name.len + delim + dom_len)) {
+ /* need more space,
+ * got creative with the print format ? */
+@@ -1879,7 +1879,7 @@ static int fill_grent(struct sss_packet *packet,
+ /* retry */
+ ret = snprintf((char *)&body[rzero + rsize],
+ name.len + delim + dom_len,
+- namefmt, name, domain);
++ namefmt, name.str, domain);
+ }
+
+ if (ret != name.len + delim + dom_len - 1) {
+--
+1.7.10.1
+
diff --git a/0009-RPM-Allow-running-make-rpms-on-RHEL-5-machines.patch b/0009-RPM-Allow-running-make-rpms-on-RHEL-5-machines.patch
new file mode 100644
index 0000000..9ce0146
--- /dev/null
+++ b/0009-RPM-Allow-running-make-rpms-on-RHEL-5-machines.patch
@@ -0,0 +1,63 @@
+From 6bfc4b41bfa7291eeb54a94c4eac85c7b9357565 Mon Sep 17 00:00:00 2001
+From: Stephen Gallagher <sgallagh at redhat.com>
+Date: Tue, 15 May 2012 11:38:15 -0400
+Subject: [PATCH 09/19] RPM: Allow running 'make rpms' on RHEL 5 machines
+
+Our previous detection for this was flawed, because the %{rhel}
+macro did not exist on the version of RPM shipped with RHEL 5, but
+it worked when building for RHEL 5 through mock. This new patch
+relies on grepping /etc/redhat-release for the version
+information.
+
+https://fedorahosted.org/sssd/ticket/1206
+---
+ contrib/sssd.spec.in | 12 +++++++-----
+ 1 file changed, 7 insertions(+), 5 deletions(-)
+
+diff --git a/contrib/sssd.spec.in b/contrib/sssd.spec.in
+index e5a4ed523ef71fe5efbe5e533f0ebb52f0d7f0f9..9972ebbd752d0abbcff35639819f03a97b19327c 100644
+--- a/contrib/sssd.spec.in
++++ b/contrib/sssd.spec.in
+@@ -3,8 +3,10 @@
+ %{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
+ %endif
+
+-%if (0%{?rhel} == 5)
+-%{!?is_rhel57: %global is_rhel57 %(%{__grep} -c "5\.[^0-6]" /etc/redhat-release)}
++%global is_rhel5 %(%{__grep} -c "release 5" /etc/redhat-release)
++%global rhel5_minor %(%{__grep} -o "5.[0-9]*" /etc/redhat-release |%{__sed} -s 's/5.//')
++
++%if 0%{?is_rhel5} > 0
+ %global with_unicode_lib --with-unicode-lib=glib2
+ # we don't want to provide private python extension libs
+ %{?filter_setup:
+@@ -65,7 +67,7 @@ BuildRequires: automake
+ BuildRequires: libtool
+ BuildRequires: m4
+ %{?fedora:BuildRequires: popt-devel}
+-%if 0%{?rhel} <= 5
++%if 0%{?is_rhel5} > 0
+ BuildRequires: popt
+ %endif
+ %if 0%{?rhel} >= 6
+@@ -80,7 +82,7 @@ BuildRequires: libcollection-devel
+ BuildRequires: libini_config-devel
+ BuildRequires: dbus-devel
+ BuildRequires: dbus-libs
+-%if 0%{?is_rhel57} > 0
++%if 0%{?rhel5_minor} >= 7
+ BuildRequires: openldap24-libs-devel
+ %else
+ BuildRequires: openldap-devel
+@@ -106,7 +108,7 @@ BuildRequires: gettext-devel
+ BuildRequires: pkgconfig
+ BuildRequires: findutils
+
+-%if 0%{?rhel} == 5
++%if 0%{?is_rhel5} > 0
+ BuildRequires: glib2-devel
+ %else
+ BuildRequires: libunistring-devel
+--
+1.7.10.1
+
diff --git a/0010-Use-the-sysdb-attribute-name-not-LDAP-attribute-name.patch b/0010-Use-the-sysdb-attribute-name-not-LDAP-attribute-name.patch
new file mode 100644
index 0000000..c060e92
--- /dev/null
+++ b/0010-Use-the-sysdb-attribute-name-not-LDAP-attribute-name.patch
@@ -0,0 +1,39 @@
+From 43818e4ba2a9c6fb11344da0b68138f0501f6bfc Mon Sep 17 00:00:00 2001
+From: Jakub Hrozek <jhrozek at redhat.com>
+Date: Wed, 16 May 2012 17:03:41 +0200
+Subject: [PATCH 10/19] Use the sysdb attribute name, not LDAP attribute name
+
+---
+ src/providers/ldap/sdap_async_autofs.c | 2 +-
+ src/providers/ldap/sdap_async_groups.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/providers/ldap/sdap_async_autofs.c b/src/providers/ldap/sdap_async_autofs.c
+index 3140596efb07e8433f6e044dc2e2c8bba8735886..d8a2d0eec75c3e42cd3dc39930d20a0a51e2c541 100644
+--- a/src/providers/ldap/sdap_async_autofs.c
++++ b/src/providers/ldap/sdap_async_autofs.c
+@@ -770,7 +770,7 @@ sdap_autofs_setautomntent_save(struct tevent_req *req)
+ ret = sysdb_attrs_to_list(
+ tmp_ctx, state->entries,
+ state->entries_count,
+- state->opts->autofs_entry_map[SDAP_AT_AUTOFS_ENTRY_KEY].name,
++ state->opts->autofs_entry_map[SDAP_AT_AUTOFS_ENTRY_KEY].sys_name,
+ &ldap_entrylist);
+ if (ret != EOK) {
+ DEBUG(SSSDBG_OP_FAILURE,
+diff --git a/src/providers/ldap/sdap_async_groups.c b/src/providers/ldap/sdap_async_groups.c
+index 361525037eb270462251fe03d0c5e1df63de73f4..b48fe72eca1ab1dfe2dcb7a97a856ecef86d6f33 100644
+--- a/src/providers/ldap/sdap_async_groups.c
++++ b/src/providers/ldap/sdap_async_groups.c
+@@ -3044,7 +3044,7 @@ sdap_nested_group_process_deref_result(struct tevent_req *req)
+ } else if (dctx->deref_result[dctx->result_index]->map == \
+ state->opts->group_map) {
+ ret = sysdb_attrs_get_string(dctx->deref_result[dctx->result_index]->attrs,
+- state->opts->group_map[SDAP_AT_GROUP_NAME].name,
++ state->opts->group_map[SDAP_AT_GROUP_NAME].sys_name,
+ &tmp_name);
+ if (ret == ENOENT) {
+ DEBUG(7, ("Dereferenced a group without name, skipping ...\n"));
+--
+1.7.10.1
+
diff --git a/0011-NSS-Expire-in-memory-netgroup-cache-before-the-nowai.patch b/0011-NSS-Expire-in-memory-netgroup-cache-before-the-nowai.patch
new file mode 100644
index 0000000..3d60493
--- /dev/null
+++ b/0011-NSS-Expire-in-memory-netgroup-cache-before-the-nowai.patch
@@ -0,0 +1,46 @@
+From 977de33c57278fe0d90a3f937c58046298ab8742 Mon Sep 17 00:00:00 2001
+From: Stephen Gallagher <sgallagh at redhat.com>
+Date: Wed, 16 May 2012 14:32:29 -0400
+Subject: [PATCH 11/19] NSS: Expire in-memory netgroup cache before the nowait
+ timeout
+
+The fact that we were keeping it in memory for the full duration
+of the cache timeout meant that we would never reap the benefits
+of the midpoint cache refresh.
+
+https://fedorahosted.org/sssd/ticket/1340
+---
+ src/responder/nss/nsssrv_netgroup.c | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/src/responder/nss/nsssrv_netgroup.c b/src/responder/nss/nsssrv_netgroup.c
+index 83e79a2fae7f957264d452bbc39550cacb792774..593b7e435b1e8e504975d20a2295ce65cb60e7a0 100644
+--- a/src/responder/nss/nsssrv_netgroup.c
++++ b/src/responder/nss/nsssrv_netgroup.c
+@@ -416,6 +416,7 @@ static errno_t lookup_netgr_step(struct setent_step_ctx *step_ctx)
+ struct getent_ctx *netgr;
+ struct sysdb_ctx *sysdb;
+ char *name = NULL;
++ uint32_t lifetime;
+
+ /* Check each domain for this netgroup name */
+ while (dom) {
+@@ -531,7 +532,14 @@ static errno_t lookup_netgr_step(struct setent_step_ctx *step_ctx)
+ name, dom->name));
+ netgr->ready = true;
+ netgr->found = true;
+- set_netgr_lifetime(dom->netgroup_timeout, step_ctx, netgr);
++ if (step_ctx->nctx->cache_refresh_percent) {
++ lifetime = dom->netgroup_timeout *
++ (step_ctx->nctx->cache_refresh_percent / 100);
++ } else {
++ lifetime = dom->netgroup_timeout;
++ }
++ if (lifetime < 10) lifetime = 10;
++ set_netgr_lifetime(lifetime, step_ctx, netgr);
+ return EOK;
+ }
+
+--
+1.7.10.1
+
diff --git a/0012-Always-use-positional-arguments-in-translatable-stri.patch b/0012-Always-use-positional-arguments-in-translatable-stri.patch
new file mode 100644
index 0000000..118ae1f
--- /dev/null
+++ b/0012-Always-use-positional-arguments-in-translatable-stri.patch
@@ -0,0 +1,264 @@
+From 56f1f51468005df27198c51acc203e2fe00312f8 Mon Sep 17 00:00:00 2001
+From: Stephen Gallagher <sgallagh at redhat.com>
+Date: Thu, 17 May 2012 13:54:29 -0400
+Subject: [PATCH 12/19] Always use positional arguments in translatable
+ strings
+
+https://fedorahosted.org/sssd/ticket/1336
+---
+ src/sss_client/pam_sss.c | 4 ++--
+ src/tools/sss_cache.c | 10 +++++-----
+ src/tools/sss_groupdel.c | 2 +-
+ src/tools/sss_groupmod.c | 4 ++--
+ src/tools/sss_groupshow.c | 10 +++++-----
+ src/tools/sss_useradd.c | 6 +++---
+ src/tools/sss_userdel.c | 8 ++++----
+ src/tools/sss_usermod.c | 4 ++--
+ src/tools/tools_util.h | 2 +-
+ 9 files changed, 25 insertions(+), 25 deletions(-)
+
+diff --git a/src/sss_client/pam_sss.c b/src/sss_client/pam_sss.c
+index e25792fc012c587e2ffc804057a2b43ec6b90068..9dca7e3c7b2f773abf08d5127d63b0bfc52ed06e 100644
+--- a/src/sss_client/pam_sss.c
++++ b/src/sss_client/pam_sss.c
+@@ -637,7 +637,7 @@ static int user_info_grace_login(pam_handle_t *pamh,
+ memcpy(&grace, buf + sizeof(uint32_t), sizeof(uint32_t));
+ ret = snprintf(user_msg, sizeof(user_msg),
+ _("Your password has expired. "
+- "You have %d grace login(s) remaining."),
++ "You have %1$d grace login(s) remaining."),
+ grace);
+ if (ret < 0 || ret >= sizeof(user_msg)) {
+ D(("snprintf failed."));
+@@ -682,7 +682,7 @@ static int user_info_expire_warn(pam_handle_t *pamh,
+ }
+
+ ret = snprintf(user_msg, sizeof(user_msg),
+- _("Your password will expire in %d %s."), expire, unit);
++ _("Your password will expire in %1$d %2$s."), expire, unit);
+ if (ret < 0 || ret >= sizeof(user_msg)) {
+ D(("snprintf failed."));
+ return PAM_SYSTEM_ERR;
+diff --git a/src/tools/sss_cache.c b/src/tools/sss_cache.c
+index d0f2b28714140a068ed43d22e0b0bf75feb804e3..1b2b29fe774b58bc15bf51ec0560a681382bc66d 100644
+--- a/src/tools/sss_cache.c
++++ b/src/tools/sss_cache.c
+@@ -169,10 +169,10 @@ bool invalidate_entries(TALLOC_CTX *ctx, struct sysdb_ctx *sysdb,
+ ("Searching for %s with filter %s failed\n",
+ type_rec.type_string, filter));
+ if (name) {
+- ERROR("No such %s named %s, skipping\n",
++ ERROR("No such %1$s named %2$s, skipping\n",
+ type_rec.type_string, name);
+ } else {
+- ERROR("No objects of type %s in the cache, skipping\n",
++ ERROR("No objects of type %1$s in the cache, skipping\n",
+ type_rec.type_string);
+ }
+ return false;
+@@ -184,14 +184,14 @@ bool invalidate_entries(TALLOC_CTX *ctx, struct sysdb_ctx *sysdb,
+ if (c_name == NULL) {
+ DEBUG(SSSDBG_MINOR_FAILURE,
+ ("Something bad happened, can't find attribute %s", SYSDB_NAME));
+- ERROR("Couldn't invalidate %s", type_rec.type_string);
++ ERROR("Couldn't invalidate %1$s", type_rec.type_string);
+ iret = false;
+ } else {
+ ret = invalidate_entry(ctx, sysdb, c_name, entry_type);
+ if (ret != EOK) {
+ DEBUG(SSSDBG_MINOR_FAILURE,
+ ("Couldn't invalidate %s %s", type_rec.type_string, c_name));
+- ERROR("Couldn't invalidate %s %s", type_rec.type_string, c_name);
++ ERROR("Couldn't invalidate %1$s %2$s", type_rec.type_string, c_name);
+ iret = false;
+ }
+ }
+@@ -452,7 +452,7 @@ errno_t init_context(int argc, const char *argv[], struct cache_tool_ctx **tctx)
+ ret = init_domains(ctx, domain);
+ if (ret != EOK) {
+ if (domain) {
+- ERROR("Could not open domain %s\n", domain);
++ ERROR("Could not open domain %1$s\n", domain);
+ } else {
+ ERROR("Could not open available domains\n");
+ }
+diff --git a/src/tools/sss_groupdel.c b/src/tools/sss_groupdel.c
+index 09f73504df9039a38879ba16e7d8628741176ec8..70030cab4f38b89cfbb61d896a04903eeac311f0 100644
+--- a/src/tools/sss_groupdel.c
++++ b/src/tools/sss_groupdel.c
+@@ -98,7 +98,7 @@ int main(int argc, const char **argv)
+
+ if ((tctx->octx->gid < tctx->local->id_min) ||
+ (tctx->local->id_max && tctx->octx->gid > tctx->local->id_max)) {
+- ERROR("Group %s is outside the defined ID range for domain\n",
++ ERROR("Group %1$s is outside the defined ID range for domain\n",
+ tctx->octx->name);
+ ret = EXIT_FAILURE;
+ goto fini;
+diff --git a/src/tools/sss_groupmod.c b/src/tools/sss_groupmod.c
+index 47134aedf78354aa1107cf30e01fc1fcbe2abc4f..abab4f57f644215e130b787a176bf4b9a72d9e44 100644
+--- a/src/tools/sss_groupmod.c
++++ b/src/tools/sss_groupmod.c
+@@ -152,7 +152,7 @@ int main(int argc, const char **argv)
+ /* Check group names in the LOCAL domain */
+ ret = check_group_names(tctx, tctx->octx->addgroups, &badgroup);
+ if (ret != EOK) {
+- ERROR("Cannot find group %s in local domain, "
++ ERROR("Cannot find group %1$s in local domain, "
+ "only groups in local domain are allowed\n", badgroup);
+ ret = EXIT_FAILURE;
+ goto fini;
+@@ -179,7 +179,7 @@ int main(int argc, const char **argv)
+ /* Check group names in the LOCAL domain */
+ ret = check_group_names(tctx, tctx->octx->rmgroups, &badgroup);
+ if (ret != EOK) {
+- ERROR("Cannot find group %s in local domain, "
++ ERROR("Cannot find group %1$s in local domain, "
+ "only groups in local domain are allowed\n", badgroup);
+ ret = EXIT_FAILURE;
+ goto fini;
+diff --git a/src/tools/sss_groupshow.c b/src/tools/sss_groupshow.c
+index 764e32416b046dfc6ff2a47de37627e40b0109f0..0eecd3a9671c1aae5ced8e8fa35f4ab6a3310075 100644
+--- a/src/tools/sss_groupshow.c
++++ b/src/tools/sss_groupshow.c
+@@ -559,26 +559,26 @@ static void print_group_info(struct group_info *g, int level)
+ snprintf(fmt, 8, "%%%ds", level*PADDING_SPACES);
+ snprintf(padding, 512, fmt, "");
+
+- printf(_("%s%sGroup: %s\n"), padding,
++ printf(_("%1$s%2$sGroup: %3$s\n"), padding,
+ g->mpg ? _("Magic Private ") : "",
+ g->name);
+- printf(_("%sGID number: %d\n"), padding, g->gid);
++ printf(_("%1$sGID number: %2$d\n"), padding, g->gid);
+
+- printf(_("%sMember users: "), padding);
++ printf(_("%1$sMember users: "), padding);
+ if (g->user_members) {
+ for (i=0; g->user_members[i]; ++i) {
+ printf("%s%s", i>0 ? "," : "",
+ g->user_members[i]);
+ }
+ }
+- printf(_("\n%sIs a member of: "), padding);
++ printf(_("\n%1$sIs a member of: "), padding);
+ if (g->memberofs) {
+ for (i=0; g->memberofs[i]; ++i) {
+ printf("%s%s", i>0 ? "," : "",
+ g->memberofs[i]);
+ }
+ }
+- printf(_("\n%sMember groups: "), padding);
++ printf(_("\n%1$sMember groups: "), padding);
+ }
+
+ static void print_recursive(struct group_info **group_members, int level)
+diff --git a/src/tools/sss_useradd.c b/src/tools/sss_useradd.c
+index 5ca2612a351bb060f172434ace3bce9c7e022a1d..4df7c098e554d4b8c924961305f35492bfba3807 100644
+--- a/src/tools/sss_useradd.c
++++ b/src/tools/sss_useradd.c
+@@ -150,7 +150,7 @@ int main(int argc, const char **argv)
+ /* Check group names in the LOCAL domain */
+ ret = check_group_names(tctx, tctx->octx->addgroups, &badgroup);
+ if (ret != EOK) {
+- ERROR("Cannot find group %s in local domain\n", badgroup);
++ ERROR("Cannot find group %1$s in local domain\n", badgroup);
+ ret = EXIT_FAILURE;
+ goto fini;
+ }
+@@ -229,7 +229,7 @@ int main(int argc, const char **argv)
+ ERROR("User's home directory already exists, not copying "
+ "data from skeldir\n");
+ } else if (ret != EOK) {
+- ERROR("Cannot create user's home directory: %s\n", strerror(ret));
++ ERROR("Cannot create user's home directory: %1$s\n", strerror(ret));
+ ret = EXIT_FAILURE;
+ goto fini;
+ }
+@@ -240,7 +240,7 @@ int main(int argc, const char **argv)
+ tctx->octx->uid,
+ tctx->octx->gid);
+ if (ret != EOK) {
+- ERROR("Cannot create user's mail spool: %s\n", strerror(ret));
++ ERROR("Cannot create user's mail spool: %1$s\n", strerror(ret));
+ DEBUG(1, ("Cannot create user's mail spool: [%d][%s].\n",
+ ret, strerror(ret)));
+ ret = EXIT_FAILURE;
+diff --git a/src/tools/sss_userdel.c b/src/tools/sss_userdel.c
+index 6d5e8295877afee3106e2a9d978504697f870d46..0d1c63e4ce58544775ae28041c65443ac054ee0d 100644
+--- a/src/tools/sss_userdel.c
++++ b/src/tools/sss_userdel.c
+@@ -227,7 +227,7 @@ int main(int argc, const char **argv)
+
+ if ((tctx->octx->uid < tctx->local->id_min) ||
+ (tctx->local->id_max && tctx->octx->uid > tctx->local->id_max)) {
+- ERROR("User %s is outside the defined ID range for domain\n",
++ ERROR("User %1$s is outside the defined ID range for domain\n",
+ tctx->octx->name);
+ ret = EXIT_FAILURE;
+ goto fini;
+@@ -264,7 +264,7 @@ int main(int argc, const char **argv)
+ break;
+
+ case EOK:
+- ERROR("WARNING: The user (uid %lu) was still logged in when "
++ ERROR("WARNING: The user (uid %1$lu) was still logged in when "
+ "deleted.\n", (unsigned long) tctx->octx->uid);
+ break;
+
+@@ -281,7 +281,7 @@ int main(int argc, const char **argv)
+
+ ret = run_userdel_cmd(tctx);
+ if (ret != EOK) {
+- ERROR("The post-delete command failed: %s\n", strerror(ret));
++ ERROR("The post-delete command failed: %1$s\n", strerror(ret));
+ goto fini;
+ }
+
+@@ -295,7 +295,7 @@ int main(int argc, const char **argv)
+ if (ret == EPERM) {
+ ERROR("Not removing home dir - not owned by user\n");
+ } else if (ret != EOK) {
+- ERROR("Cannot remove homedir: %s\n", strerror(ret));
++ ERROR("Cannot remove homedir: %1$s\n", strerror(ret));
+ ret = EXIT_FAILURE;
+ goto fini;
+ }
+diff --git a/src/tools/sss_usermod.c b/src/tools/sss_usermod.c
+index dfcde9e56c632b6ddee0ec5cf375258c713ac360..b761de225de5842624d8f888bb0d7053617eb37d 100644
+--- a/src/tools/sss_usermod.c
++++ b/src/tools/sss_usermod.c
+@@ -173,7 +173,7 @@ int main(int argc, const char **argv)
+ /* Check group names in the LOCAL domain */
+ ret = check_group_names(tctx, tctx->octx->addgroups, &badgroup);
+ if (ret != EOK) {
+- ERROR("Cannot find group %s in local domain, "
++ ERROR("Cannot find group %1$s in local domain, "
+ "only groups in local domain are allowed\n", badgroup);
+ ret = EXIT_FAILURE;
+ goto fini;
+@@ -200,7 +200,7 @@ int main(int argc, const char **argv)
+ /* Check group names in the LOCAL domain */
+ ret = check_group_names(tctx, tctx->octx->rmgroups, &badgroup);
+ if (ret != EOK) {
+- ERROR("Cannot find group %s in local domain, "
++ ERROR("Cannot find group %1$s in local domain, "
+ "only groups in local domain are allowed\n", badgroup);
+ ret = EXIT_FAILURE;
+ goto fini;
+diff --git a/src/tools/tools_util.h b/src/tools/tools_util.h
+index fccd9d96bdc293f85d4af2ebcb0756a1fcc940cc..fd26b89056cf16b974102b5163e7ee76608a2d2e 100644
+--- a/src/tools/tools_util.h
++++ b/src/tools/tools_util.h
+@@ -37,7 +37,7 @@
+ val = getuid(); \
+ if (val != 0) { \
+ DEBUG(1, ("Running under %d, must be root\n", val)); \
+- ERROR("%s must be run as root\n", prg_name); \
++ ERROR("%1$s must be run as root\n", prg_name); \
+ val = EXIT_FAILURE; \
+ goto fini; \
+ } \
+--
+1.7.10.1
+
diff --git a/0013-Simple-implementation-of-Netscape-password-warning-e.patch b/0013-Simple-implementation-of-Netscape-password-warning-e.patch
new file mode 100644
index 0000000..b1b8b3a
--- /dev/null
+++ b/0013-Simple-implementation-of-Netscape-password-warning-e.patch
@@ -0,0 +1,204 @@
+From 0aac71d726bda4af3ba141bed7707512cda7fd9a Mon Sep 17 00:00:00 2001
+From: Joshua Roys <roysjosh at gmail.com>
+Date: Mon, 14 May 2012 10:23:34 -0400
+Subject: [PATCH 13/19] Simple implementation of Netscape password warning
+ expiration control
+
+---
+ src/providers/ldap/sdap_async_connection.c | 96 +++++++++++++++++++++-------
+ src/util/sss_ldap.h | 8 +++
+ 2 files changed, 82 insertions(+), 22 deletions(-)
+
+diff --git a/src/providers/ldap/sdap_async_connection.c b/src/providers/ldap/sdap_async_connection.c
+index e933e296b7df20ff8d034c2a11745b5c68b25e65..efd9cd8cc7205e4cb838523b0311ffd50805d590 100644
+--- a/src/providers/ldap/sdap_async_connection.c
++++ b/src/providers/ldap/sdap_async_connection.c
+@@ -26,6 +26,7 @@
+ #include "util/util.h"
+ #include "util/sss_krb5.h"
+ #include "util/sss_ldap.h"
++#include "util/strtonum.h"
+ #include "providers/ldap/sdap_async_private.h"
+ #include "providers/ldap/ldap_common.h"
+
+@@ -541,7 +542,9 @@ static void simple_bind_done(struct sdap_op *op,
+ struct simple_bind_state *state = tevent_req_data(req,
+ struct simple_bind_state);
+ char *errmsg = NULL;
+- int ret;
++ char *nval;
++ errno_t ret;
++ int lret;
+ LDAPControl **response_controls;
+ int c;
+ ber_int_t pp_grace;
+@@ -555,30 +558,33 @@ static void simple_bind_done(struct sdap_op *op,
+
+ state->reply = talloc_steal(state, reply);
+
+- ret = ldap_parse_result(state->sh->ldap, state->reply->msg,
++ lret = ldap_parse_result(state->sh->ldap, state->reply->msg,
+ &state->result, NULL, &errmsg, NULL,
+ &response_controls, 0);
+- if (ret != LDAP_SUCCESS) {
+- DEBUG(2, ("ldap_parse_result failed (%d)\n", state->op->msgid));
++ if (lret != LDAP_SUCCESS) {
++ DEBUG(SSSDBG_MINOR_FAILURE,
++ ("ldap_parse_result failed (%d)\n", state->op->msgid));
+ ret = EIO;
+ goto done;
+ }
+
+ if (response_controls == NULL) {
+- DEBUG(5, ("Server returned no controls.\n"));
++ DEBUG(SSSDBG_TRACE_LIBS, ("Server returned no controls.\n"));
+ state->ppolicy = NULL;
+ } else {
+ for (c = 0; response_controls[c] != NULL; c++) {
+- DEBUG(9, ("Server returned control [%s].\n",
+- response_controls[c]->ldctl_oid));
++ DEBUG(SSSDBG_TRACE_INTERNAL,
++ ("Server returned control [%s].\n",
++ response_controls[c]->ldctl_oid));
+ if (strcmp(response_controls[c]->ldctl_oid,
+ LDAP_CONTROL_PASSWORDPOLICYRESPONSE) == 0) {
+- ret = ldap_parse_passwordpolicy_control(state->sh->ldap,
++ lret = ldap_parse_passwordpolicy_control(state->sh->ldap,
+ response_controls[c],
+ &pp_expire, &pp_grace,
+ &pp_error);
+- if (ret != LDAP_SUCCESS) {
+- DEBUG(1, ("ldap_parse_passwordpolicy_control failed.\n"));
++ if (lret != LDAP_SUCCESS) {
++ DEBUG(SSSDBG_MINOR_FAILURE,
++ ("ldap_parse_passwordpolicy_control failed.\n"));
+ ret = EIO;
+ goto done;
+ }
+@@ -586,9 +592,10 @@ static void simple_bind_done(struct sdap_op *op,
+ DEBUG(7, ("Password Policy Response: expire [%d] grace [%d] "
+ "error [%s].\n", pp_expire, pp_grace,
+ ldap_passwordpolicy_err2txt(pp_error)));
+- state->ppolicy = talloc(state, struct sdap_ppolicy_data);
++ if (!state->ppolicy)
++ state->ppolicy = talloc_zero(state,
++ struct sdap_ppolicy_data);
+ if (state->ppolicy == NULL) {
+- DEBUG(1, ("talloc failed.\n"));
+ ret = ENOMEM;
+ goto done;
+ }
+@@ -596,36 +603,81 @@ static void simple_bind_done(struct sdap_op *op,
+ state->ppolicy->expire = pp_expire;
+ if (state->result == LDAP_SUCCESS) {
+ if (pp_error == PP_changeAfterReset) {
+- DEBUG(4, ("Password was reset. "
+- "User must set a new password.\n"));
++ DEBUG(SSSDBG_TRACE_LIBS,
++ ("Password was reset. "
++ "User must set a new password.\n"));
+ state->result = LDAP_X_SSSD_PASSWORD_EXPIRED;
+ } else if (pp_grace > 0) {
+- DEBUG(4, ("Password expired. "
+- "[%d] grace logins remaining.\n", pp_grace));
++ DEBUG(SSSDBG_TRACE_LIBS,
++ ("Password expired. "
++ "[%d] grace logins remaining.\n",
++ pp_grace));
+ } else if (pp_expire > 0) {
+- DEBUG(4, ("Password will expire in [%d] seconds.\n",
+- pp_expire));
++ DEBUG(SSSDBG_TRACE_LIBS,
++ ("Password will expire in [%d] seconds.\n",
++ pp_expire));
+ }
+ } else if (state->result == LDAP_INVALID_CREDENTIALS &&
+ pp_error == PP_passwordExpired) {
+- DEBUG(4,
++ DEBUG(SSSDBG_TRACE_LIBS,
+ ("Password expired user must set a new password.\n"));
+ state->result = LDAP_X_SSSD_PASSWORD_EXPIRED;
+ }
++ } else if (strcmp(response_controls[c]->ldctl_oid,
++ LDAP_CONTROL_PWEXPIRED) == 0) {
++ DEBUG(SSSDBG_TRACE_LIBS,
++ ("Password expired user must set a new password.\n"));
++ state->result = LDAP_X_SSSD_PASSWORD_EXPIRED;
++ } else if (strcmp(response_controls[c]->ldctl_oid,
++ LDAP_CONTROL_PWEXPIRING) == 0) {
++ /* ignore controls with suspiciously long values */
++ if (response_controls[c]->ldctl_value.bv_len > 32) {
++ continue;
++ }
++
++ if (!state->ppolicy) {
++ state->ppolicy = talloc(state, struct sdap_ppolicy_data);
++ }
++
++ if (state->ppolicy == NULL) {
++ ret = ENOMEM;
++ goto done;
++ }
++ /* ensure that bv_val is a null-terminated string */
++ nval = talloc_strndup(NULL,
++ response_controls[c]->ldctl_value.bv_val,
++ response_controls[c]->ldctl_value.bv_len);
++ if (nval == NULL) {
++ ret = ENOMEM;
++ goto done;
++ }
++ state->ppolicy->expire = strtouint32(nval, NULL, 10);
++ ret = errno;
++ talloc_zfree(nval);
++ if (ret != EOK) {
++ DEBUG(SSSDBG_MINOR_FAILURE,
++ ("Could not convert control response to an integer. ",
++ "[%s]\n", strerror(ret)));
++ goto done;
++ }
++
++ DEBUG(SSSDBG_TRACE_LIBS,
++ ("Password will expire in [%d] seconds.\n",
++ state->ppolicy->expire));
+ }
+ }
+ }
+
+- DEBUG(3, ("Bind result: %s(%d), %s\n",
++ DEBUG(SSSDBG_TRACE_FUNC, ("Bind result: %s(%d), %s\n",
+ sss_ldap_err2string(state->result), state->result,
+ errmsg ? errmsg : "no errmsg set"));
+
+- ret = LDAP_SUCCESS;
++ ret = EOK;
+ done:
+ ldap_controls_free(response_controls);
+ ldap_memfree(errmsg);
+
+- if (ret == LDAP_SUCCESS) {
++ if (ret == EOK) {
+ tevent_req_done(req);
+ } else {
+ tevent_req_error(req, ret);
+diff --git a/src/util/sss_ldap.h b/src/util/sss_ldap.h
+index 8a69b832965bf5ad23986a9b64cb5252cc3b1999..46829259aedcf4a4f2ba3f94fc059c343c0e9ba6 100644
+--- a/src/util/sss_ldap.h
++++ b/src/util/sss_ldap.h
+@@ -29,6 +29,14 @@
+
+ #define LDAP_X_SSSD_PASSWORD_EXPIRED 0x555D
+
++#ifndef LDAP_CONTROL_PWEXPIRED
++#define LDAP_CONTROL_PWEXPIRED "2.16.840.1.113730.3.4.4"
++#endif
++
++#ifndef LDAP_CONTROL_PWEXPIRING
++#define LDAP_CONTROL_PWEXPIRING "2.16.840.1.113730.3.4.5"
++#endif
++
+ #ifdef LDAP_OPT_DIAGNOSTIC_MESSAGE
+ #define SDAP_DIAGNOSTIC_MESSAGE LDAP_OPT_DIAGNOSTIC_MESSAGE
+ #else
+--
+1.7.10.1
+
diff --git a/0014-KRB5-Avoid-NULL-dereference-with-empty-keytab.patch b/0014-KRB5-Avoid-NULL-dereference-with-empty-keytab.patch
new file mode 100644
index 0000000..d3d9193
--- /dev/null
+++ b/0014-KRB5-Avoid-NULL-dereference-with-empty-keytab.patch
@@ -0,0 +1,45 @@
+From 0549c49a94c24672657748303fff1d33128c1c74 Mon Sep 17 00:00:00 2001
+From: Stephen Gallagher <sgallagh at redhat.com>
+Date: Mon, 21 May 2012 20:36:44 -0400
+Subject: [PATCH 14/19] KRB5: Avoid NULL-dereference with empty keytab
+
+https://fedorahosted.org/sssd/ticket/1330
+---
+ src/util/sss_krb5.c | 20 +++++++++++++-------
+ 1 file changed, 13 insertions(+), 7 deletions(-)
+
+diff --git a/src/util/sss_krb5.c b/src/util/sss_krb5.c
+index 988531995aba7fd7a2a1d801fabde19fa537e26b..81a1623ef9df340d7618bdf55c1707ce4cfb1a6a 100644
+--- a/src/util/sss_krb5.c
++++ b/src/util/sss_krb5.c
+@@ -1104,14 +1104,20 @@ sss_krb5_read_etypes_for_keytab(TALLOC_CTX *mem_ctx,
+ }
+
+ if (ret == 0) {
+- /* Sort the preferred enctypes first */
+- qsort(etypes, count, sizeof(*etypes), compare_etypes);
+- etypes = talloc_realloc(tmp_ctx, etypes, krb5_enctype, count);
+- if (etypes == NULL) {
+- ret = ENOMEM;
++ if (etypes) {
++ /* Sort the preferred enctypes first */
++ qsort(etypes, count, sizeof(*etypes), compare_etypes);
++ etypes = talloc_realloc(tmp_ctx, etypes, krb5_enctype, count);
++ if (etypes == NULL) {
++ ret = ENOMEM;
++ } else {
++ *etype_list = talloc_steal(mem_ctx, etypes);
++ *n_etype_list = count;
++ }
+ } else {
+- *etype_list = talloc_steal(mem_ctx, etypes);
+- *n_etype_list = count;
++ /* The key table was empty. There are no enctypes to match */
++ *etype_list = NULL;
++ *n_etype_list = 0;
+ }
+ }
+
+--
+1.7.10.1
+
diff --git a/0015-Warn-to-syslog-when-dereference-requests-fail.patch b/0015-Warn-to-syslog-when-dereference-requests-fail.patch
new file mode 100644
index 0000000..e5b0a40
--- /dev/null
+++ b/0015-Warn-to-syslog-when-dereference-requests-fail.patch
@@ -0,0 +1,27 @@
+From e52a31484c88d46e381238493384f26d9c95f8ff Mon Sep 17 00:00:00 2001
+From: Ariel Barria <arielb at fedoraproject.org>
+Date: Tue, 22 May 2012 07:13:21 -0500
+Subject: [PATCH 15/19] Warn to syslog when dereference requests fail
+
+---
+ src/providers/ldap/sdap_async.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/providers/ldap/sdap_async.c b/src/providers/ldap/sdap_async.c
+index a8a12c3d390a4ebee0dca81d6610be9fe240a4a6..14a27bcba2385fef5980a5a933cb7e7a9742a231 100644
+--- a/src/providers/ldap/sdap_async.c
++++ b/src/providers/ldap/sdap_async.c
+@@ -2051,8 +2051,8 @@ static void sdap_deref_search_done(struct tevent_req *subreq)
+
+ talloc_zfree(subreq);
+ if (ret != EOK) {
+- DEBUG(2, ("dereference processing failed [%d]: %s\n",
+- ret, strerror(ret)));
++ DEBUG(2, ("dereference processing failed [%d]: %s\n", ret, strerror(ret)));
++ sss_log(SSS_LOG_WARNING, "dereference processing failed : %s", strerror(ret));
+ tevent_req_error(req, ret);
+ return;
+ }
+--
+1.7.10.1
+
diff --git a/0016-Update-translation-sources.patch b/0016-Update-translation-sources.patch
new file mode 100644
index 0000000..574fdb1
--- /dev/null
+++ b/0016-Update-translation-sources.patch
@@ -0,0 +1,4201 @@
+From fcd4d3ed036573128d83e447ef4dac3b370f232c Mon Sep 17 00:00:00 2001
+From: Stephen Gallagher <sgallagh at redhat.com>
+Date: Tue, 22 May 2012 09:34:31 -0400
+Subject: [PATCH 16/19] Update translation sources
+
+---
+ po/de.po | 48 +++++++++++++-------------
+ po/es.po | 82 +++++++++++++++++++++----------------------
+ po/fr.po | 86 +++++++++++++++++++++++-----------------------
+ po/hu.po | 64 +++++++++++++++++-----------------
+ po/id.po | 64 +++++++++++++++++-----------------
+ po/it.po | 78 ++++++++++++++++++++---------------------
+ po/ja.po | 86 +++++++++++++++++++++++-----------------------
+ po/nb.po | 48 +++++++++++++-------------
+ po/nl.po | 82 +++++++++++++++++++++----------------------
+ po/pl.po | 86 +++++++++++++++++++++++-----------------------
+ po/pt.po | 82 +++++++++++++++++++++----------------------
+ po/ru.po | 80 +++++++++++++++++++++---------------------
+ po/sssd.pot | 48 +++++++++++++-------------
+ po/sv.po | 64 +++++++++++++++++-----------------
+ po/tg.po | 48 +++++++++++++-------------
+ po/uk.po | 86 +++++++++++++++++++++++-----------------------
+ po/zh_TW.po | 74 +++++++++++++++++++--------------------
+ src/man/po/cs.po | 8 ++---
+ src/man/po/es.po | 8 ++---
+ src/man/po/fr.po | 8 ++---
+ src/man/po/ja.po | 8 ++---
+ src/man/po/nl.po | 8 ++---
+ src/man/po/pt.po | 8 ++---
+ src/man/po/ru.po | 8 ++---
+ src/man/po/sssd-docs.pot | 10 +++---
+ src/man/po/tg.po | 8 ++---
+ src/man/po/uk.po | 8 ++---
+ 27 files changed, 645 insertions(+), 643 deletions(-)
+
+diff --git a/po/de.po b/po/de.po
+index edcab536e6dba2a2d21a4fa9fbe69aa462792e76..06cf016f3d2b82a4dbe8d7957d41f0ed46e955c7 100644
+--- a/po/de.po
++++ b/po/de.po
+@@ -9,7 +9,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: SSSD\n"
+ "Report-Msgid-Bugs-To: sssd-devel at lists.fedorahosted.org\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0400\n"
++"POT-Creation-Date: 2012-05-22 09:33-0400\n"
+ "PO-Revision-Date: 2012-04-20 16:09+0000\n"
+ "Last-Translator: sgallagh <sgallagh at redhat.com>\n"
+ "Language-Team: German <trans-de at lists.fedoraproject.org>\n"
+@@ -174,7 +174,7 @@ msgid ""
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:88
+-msgid "Whether to hash host names and adresses in the known_hosts file"
++msgid "Whether to hash host names and addresses in the known_hosts file"
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:91
+@@ -989,12 +989,12 @@ msgstr ""
+
+ #: src/sss_client/pam_sss.c:639
+ #, c-format
+-msgid "Your password has expired. You have %d grace login(s) remaining."
++msgid "Your password has expired. You have %1$d grace login(s) remaining."
+ msgstr ""
+
+ #: src/sss_client/pam_sss.c:685
+ #, c-format
+-msgid "Your password will expire in %d %s."
++msgid "Your password will expire in %1$d %2$s."
+ msgstr ""
+
+ #: src/sss_client/pam_sss.c:734
+@@ -1184,7 +1184,7 @@ msgstr ""
+
+ #: src/tools/sss_useradd.c:153
+ #, c-format
+-msgid "Cannot find group %s in local domain\n"
++msgid "Cannot find group %1$s in local domain\n"
+ msgstr ""
+
+ #: src/tools/sss_useradd.c:168 src/tools/sss_userdel.c:214
+@@ -1209,12 +1209,12 @@ msgstr ""
+
+ #: src/tools/sss_useradd.c:232
+ #, c-format
+-msgid "Cannot create user's home directory: %s\n"
++msgid "Cannot create user's home directory: %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_useradd.c:243
+ #, c-format
+-msgid "Cannot create user's mail spool: %s\n"
++msgid "Cannot create user's mail spool: %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_useradd.c:255
+@@ -1259,7 +1259,7 @@ msgstr ""
+
+ #: src/tools/sss_groupdel.c:101
+ #, c-format
+-msgid "Group %s is outside the defined ID range for domain\n"
++msgid "Group %1$s is outside the defined ID range for domain\n"
+ msgstr ""
+
+ #: src/tools/sss_groupdel.c:115
+@@ -1302,7 +1302,7 @@ msgstr ""
+ #: src/tools/sss_usermod.c:176 src/tools/sss_usermod.c:203
+ #, c-format
+ msgid ""
+-"Cannot find group %s in local domain, only groups in local domain are "
++"Cannot find group %1$s in local domain, only groups in local domain are "
+ "allowed\n"
+ msgstr ""
+
+@@ -1320,7 +1320,7 @@ msgstr ""
+
+ #: src/tools/sss_groupshow.c:562
+ #, c-format
+-msgid "%s%sGroup: %s\n"
++msgid "%1$s%2$sGroup: %3$s\n"
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:563
+@@ -1329,26 +1329,26 @@ msgstr ""
+
+ #: src/tools/sss_groupshow.c:565
+ #, c-format
+-msgid "%sGID number: %d\n"
++msgid "%1$sGID number: %2$d\n"
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:567
+ #, c-format
+-msgid "%sMember users: "
++msgid "%1$sMember users: "
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:574
+ #, c-format
+ msgid ""
+ "\n"
+-"%sIs a member of: "
++"%1$sIs a member of: "
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:581
+ #, c-format
+ msgid ""
+ "\n"
+-"%sMember groups: "
++"%1$sMember groups: "
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:617
+@@ -1391,7 +1391,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:230
+ #, c-format
+-msgid "User %s is outside the defined ID range for domain\n"
++msgid "User %1$s is outside the defined ID range for domain\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:255
+@@ -1400,7 +1400,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:267
+ #, c-format
+-msgid "WARNING: The user (uid %lu) was still logged in when deleted.\n"
++msgid "WARNING: The user (uid %1$lu) was still logged in when deleted.\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:272
+@@ -1413,7 +1413,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:284
+ #, c-format
+-msgid "The post-delete command failed: %s\n"
++msgid "The post-delete command failed: %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:296
+@@ -1422,7 +1422,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:298
+ #, c-format
+-msgid "Cannot remove homedir: %s\n"
++msgid "Cannot remove homedir: %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:309
+@@ -1482,22 +1482,22 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:172
+ #, c-format
+-msgid "No such %s named %s, skipping\n"
++msgid "No such %1$s named %2$s, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:175
+ #, c-format
+-msgid "No objects of type %s in the cache, skipping\n"
++msgid "No objects of type %1$s in the cache, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:187
+ #, c-format
+-msgid "Couldn't invalidate %s"
++msgid "Couldn't invalidate %1$s"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:194
+ #, c-format
+-msgid "Couldn't invalidate %s %s"
++msgid "Couldn't invalidate %1$s %2$s"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:323
+@@ -1550,7 +1550,7 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:455
+ #, c-format
+-msgid "Could not open domain %s\n"
++msgid "Could not open domain %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:457
+@@ -1571,7 +1571,7 @@ msgstr ""
+
+ #: src/tools/tools_util.h:40
+ #, c-format
+-msgid "%s must be run as root\n"
++msgid "%1$s must be run as root\n"
+ msgstr ""
+
+ #: src/util/util.h:93
+diff --git a/po/es.po b/po/es.po
+index 1877773833a3f6a626a0d7625d4c1d6fb43f60c1..bd172763fb27ba40e132b1536538e3a6564bcf10 100644
+--- a/po/es.po
++++ b/po/es.po
+@@ -12,7 +12,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: SSSD\n"
+ "Report-Msgid-Bugs-To: sssd-devel at lists.fedorahosted.org\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0400\n"
++"POT-Creation-Date: 2012-05-22 09:33-0400\n"
+ "PO-Revision-Date: 2012-04-20 16:09+0000\n"
+ "Last-Translator: sgallagh <sgallagh at redhat.com>\n"
+ "Language-Team: Spanish (Castilian) <trans-es at lists.fedoraproject.org>\n"
+@@ -199,7 +199,7 @@ msgid ""
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:88
+-msgid "Whether to hash host names and adresses in the known_hosts file"
++msgid "Whether to hash host names and addresses in the known_hosts file"
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:91
+@@ -1041,13 +1041,13 @@ msgid ", your cached password will expire at: "
+ msgstr ", su contraseña cacheada vencerá el:"
+
+ #: src/sss_client/pam_sss.c:639
+-#, c-format
+-msgid "Your password has expired. You have %d grace login(s) remaining."
++#, fuzzy, c-format
++msgid "Your password has expired. You have %1$d grace login(s) remaining."
+ msgstr "Su contraseña ha expirado. Dispone de %d ingreso(s) excepcionales. "
+
+ #: src/sss_client/pam_sss.c:685
+-#, c-format
+-msgid "Your password will expire in %d %s."
++#, fuzzy, c-format
++msgid "Your password will expire in %1$d %2$s."
+ msgstr "Su contraseña expirará en %d %s."
+
+ #: src/sss_client/pam_sss.c:734
+@@ -1237,8 +1237,8 @@ msgid "Groups must be in the same domain as user\n"
+ msgstr "Los grupos deben estar en el mismo dominio que el usuario\n"
+
+ #: src/tools/sss_useradd.c:153
+-#, c-format
+-msgid "Cannot find group %s in local domain\n"
++#, fuzzy, c-format
++msgid "Cannot find group %1$s in local domain\n"
+ msgstr "No se pudo encontrar el grupo %s en el dominio local\n"
+
+ #: src/tools/sss_useradd.c:168 src/tools/sss_userdel.c:214
+@@ -1264,13 +1264,13 @@ msgstr ""
+ "esqueleto\n"
+
+ #: src/tools/sss_useradd.c:232
+-#, c-format
+-msgid "Cannot create user's home directory: %s\n"
++#, fuzzy, c-format
++msgid "Cannot create user's home directory: %1$s\n"
+ msgstr "No se pudo crear el directorio personal del usuario: %s\n"
+
+ #: src/tools/sss_useradd.c:243
+-#, c-format
+-msgid "Cannot create user's mail spool: %s\n"
++#, fuzzy, c-format
++msgid "Cannot create user's mail spool: %1$s\n"
+ msgstr "No se pudo crear el receptor de correo del usuario: %s\n"
+
+ #: src/tools/sss_useradd.c:255
+@@ -1314,8 +1314,8 @@ msgid "Specify group to delete\n"
+ msgstr "Especifique el grupo a borrar\n"
+
+ #: src/tools/sss_groupdel.c:101
+-#, c-format
+-msgid "Group %s is outside the defined ID range for domain\n"
++#, fuzzy, c-format
++msgid "Group %1$s is outside the defined ID range for domain\n"
+ msgstr "El grupo %s está fuera del rango de ID definido para los dominios\n"
+
+ #: src/tools/sss_groupdel.c:115
+@@ -1361,9 +1361,9 @@ msgstr ""
+
+ #: src/tools/sss_groupmod.c:155 src/tools/sss_groupmod.c:182
+ #: src/tools/sss_usermod.c:176 src/tools/sss_usermod.c:203
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+-"Cannot find group %s in local domain, only groups in local domain are "
++"Cannot find group %1$s in local domain, only groups in local domain are "
+ "allowed\n"
+ msgstr ""
+ "No se pudo encontrar el grupo %s en el dominio local, solo se permiten los "
+@@ -1385,8 +1385,8 @@ msgid "Transaction error. Could not modify group.\n"
+ msgstr "Error de transacción. No se pudo modificar el grupo.\n"
+
+ #: src/tools/sss_groupshow.c:562
+-#, c-format
+-msgid "%s%sGroup: %s\n"
++#, fuzzy, c-format
++msgid "%1$s%2$sGroup: %3$s\n"
+ msgstr "%s%sGrupo: %s\n"
+
+ #: src/tools/sss_groupshow.c:563
+@@ -1394,29 +1394,29 @@ msgid "Magic Private "
+ msgstr "Magia privada"
+
+ #: src/tools/sss_groupshow.c:565
+-#, c-format
+-msgid "%sGID number: %d\n"
++#, fuzzy, c-format
++msgid "%1$sGID number: %2$d\n"
+ msgstr "%sGID número: %d\n"
+
+ #: src/tools/sss_groupshow.c:567
+-#, c-format
+-msgid "%sMember users: "
++#, fuzzy, c-format
++msgid "%1$sMember users: "
+ msgstr "%sMember usuarios: "
+
+ #: src/tools/sss_groupshow.c:574
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+ "\n"
+-"%sIs a member of: "
++"%1$sIs a member of: "
+ msgstr ""
+ "\n"
+ "%sEs miembro de: "
+
+ #: src/tools/sss_groupshow.c:581
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+ "\n"
+-"%sMember groups: "
++"%1$sMember groups: "
+ msgstr ""
+ "\n"
+ "%sGrupos de miembro: "
+@@ -1462,8 +1462,8 @@ msgid "Specify user to delete\n"
+ msgstr "Especifique el usuario a borrar\n"
+
+ #: src/tools/sss_userdel.c:230
+-#, c-format
+-msgid "User %s is outside the defined ID range for domain\n"
++#, fuzzy, c-format
++msgid "User %1$s is outside the defined ID range for domain\n"
+ msgstr "El usuario %s está fuera del rango de ID para el dominio\n"
+
+ #: src/tools/sss_userdel.c:255
+@@ -1471,8 +1471,8 @@ msgid "Cannot reset SELinux login context\n"
+ msgstr "No es posible reiniciar contexto de registro de SELinux\n"
+
+ #: src/tools/sss_userdel.c:267
+-#, c-format
+-msgid "WARNING: The user (uid %lu) was still logged in when deleted.\n"
++#, fuzzy, c-format
++msgid "WARNING: The user (uid %1$lu) was still logged in when deleted.\n"
+ msgstr ""
+ "ADVERTENCIA: El usuario (uid %lu) todavía se encontraba registrado mientras "
+ "se lo eliminaba.\n"
+@@ -1487,8 +1487,8 @@ msgid "Error while checking if the user was logged in\n"
+ msgstr "Error mientras se verificaba si el usuario se encontraba registrado\n"
+
+ #: src/tools/sss_userdel.c:284
+-#, c-format
+-msgid "The post-delete command failed: %s\n"
++#, fuzzy, c-format
++msgid "The post-delete command failed: %1$s\n"
+ msgstr "Falló el comando de post-eliminación: %s\n"
+
+ #: src/tools/sss_userdel.c:296
+@@ -1496,8 +1496,8 @@ msgid "Not removing home dir - not owned by user\n"
+ msgstr "No eliminando el directorio de inicio - no pertenece al usuario\n"
+
+ #: src/tools/sss_userdel.c:298
+-#, c-format
+-msgid "Cannot remove homedir: %s\n"
++#, fuzzy, c-format
++msgid "Cannot remove homedir: %1$s\n"
+ msgstr " Imposible eliminar el directorio de inicio: %s\n"
+
+ #: src/tools/sss_userdel.c:309
+@@ -1564,22 +1564,22 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:172
+ #, c-format
+-msgid "No such %s named %s, skipping\n"
++msgid "No such %1$s named %2$s, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:175
+ #, c-format
+-msgid "No objects of type %s in the cache, skipping\n"
++msgid "No objects of type %1$s in the cache, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:187
+ #, c-format
+-msgid "Couldn't invalidate %s"
++msgid "Couldn't invalidate %1$s"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:194
+ #, c-format
+-msgid "Couldn't invalidate %s %s"
++msgid "Couldn't invalidate %1$s %2$s"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:323
+@@ -1632,7 +1632,7 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:455
+ #, c-format
+-msgid "Could not open domain %s\n"
++msgid "Could not open domain %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:457
+@@ -1652,8 +1652,8 @@ msgid "Out of memory\n"
+ msgstr "Falta memoria\n"
+
+ #: src/tools/tools_util.h:40
+-#, c-format
+-msgid "%s must be run as root\n"
++#, fuzzy, c-format
++msgid "%1$s must be run as root\n"
+ msgstr "%s se debe ejecutar como root\n"
+
+ #: src/util/util.h:93
+diff --git a/po/fr.po b/po/fr.po
+index 5e712aaf9055f5dade46a88b5094454fa04ad6f1..2bc642d0b778db6770d127c0562784e6ef9bde15 100644
+--- a/po/fr.po
++++ b/po/fr.po
+@@ -10,7 +10,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: SSSD\n"
+ "Report-Msgid-Bugs-To: sssd-devel at lists.fedorahosted.org\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0400\n"
++"POT-Creation-Date: 2012-05-22 09:33-0400\n"
+ "PO-Revision-Date: 2012-05-08 08:54+0000\n"
+ "Last-Translator: Jérôme Fenal <jfenal at gmail.com>\n"
+ "Language-Team: French <trans-fr at lists.fedoraproject.org>\n"
+@@ -201,7 +201,7 @@ msgstr ""
+ "avant de demander au fournisseur à nouveau"
+
+ #: src/config/SSSDConfig.py:88
+-msgid "Whether to hash host names and adresses in the known_hosts file"
++msgid "Whether to hash host names and addresses in the known_hosts file"
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:91
+@@ -1037,13 +1037,13 @@ msgid ", your cached password will expire at: "
+ msgstr ", votre mot de passe en cache expirera à :"
+
+ #: src/sss_client/pam_sss.c:639
+-#, c-format
+-msgid "Your password has expired. You have %d grace login(s) remaining."
++#, fuzzy, c-format
++msgid "Your password has expired. You have %1$d grace login(s) remaining."
+ msgstr "Votre mot de passe a expiré. Il vous reste %d connexion autorisée."
+
+ #: src/sss_client/pam_sss.c:685
+-#, c-format
+-msgid "Your password will expire in %d %s."
++#, fuzzy, c-format
++msgid "Your password will expire in %1$d %2$s."
+ msgstr "Votre mot de passe expirera dans %d %s."
+
+ #: src/sss_client/pam_sss.c:734
+@@ -1233,8 +1233,8 @@ msgid "Groups must be in the same domain as user\n"
+ msgstr "Les groupes doivent être dans le même domaine que l'utilisateur\n"
+
+ #: src/tools/sss_useradd.c:153
+-#, c-format
+-msgid "Cannot find group %s in local domain\n"
++#, fuzzy, c-format
++msgid "Cannot find group %1$s in local domain\n"
+ msgstr "Impossible de trouver le groupe %s dans le domaine local\n"
+
+ #: src/tools/sss_useradd.c:168 src/tools/sss_userdel.c:214
+@@ -1260,13 +1260,13 @@ msgstr ""
+ "squelette ne sont pas copiées\n"
+
+ #: src/tools/sss_useradd.c:232
+-#, c-format
+-msgid "Cannot create user's home directory: %s\n"
++#, fuzzy, c-format
++msgid "Cannot create user's home directory: %1$s\n"
+ msgstr "Impossible de créer le répertoire de l'utilisateur : %s\n"
+
+ #: src/tools/sss_useradd.c:243
+-#, c-format
+-msgid "Cannot create user's mail spool: %s\n"
++#, fuzzy, c-format
++msgid "Cannot create user's mail spool: %1$s\n"
+ msgstr ""
+ "Impossible de créer le répertoire de gestion des mails pour l'utilisateur : "
+ "%s\n"
+@@ -1313,8 +1313,8 @@ msgid "Specify group to delete\n"
+ msgstr "Spécifier le groupe à supprimer\n"
+
+ #: src/tools/sss_groupdel.c:101
+-#, c-format
+-msgid "Group %s is outside the defined ID range for domain\n"
++#, fuzzy, c-format
++msgid "Group %1$s is outside the defined ID range for domain\n"
+ msgstr ""
+ "Le groupe %s est en dehors de la plage d'identifiants pour le domaine\n"
+
+@@ -1362,9 +1362,9 @@ msgstr ""
+
+ #: src/tools/sss_groupmod.c:155 src/tools/sss_groupmod.c:182
+ #: src/tools/sss_usermod.c:176 src/tools/sss_usermod.c:203
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+-"Cannot find group %s in local domain, only groups in local domain are "
++"Cannot find group %1$s in local domain, only groups in local domain are "
+ "allowed\n"
+ msgstr ""
+ "Impossible de trouver le groupe %s dans le domaine local, seuls les groupes "
+@@ -1387,8 +1387,8 @@ msgid "Transaction error. Could not modify group.\n"
+ msgstr "Erreur de transaction. Impossible de modifier le groupe.\n"
+
+ #: src/tools/sss_groupshow.c:562
+-#, c-format
+-msgid "%s%sGroup: %s\n"
++#, fuzzy, c-format
++msgid "%1$s%2$sGroup: %3$s\n"
+ msgstr "%s%s groupe : %s\n"
+
+ #: src/tools/sss_groupshow.c:563
+@@ -1396,29 +1396,29 @@ msgid "Magic Private "
+ msgstr "Magie privée"
+
+ #: src/tools/sss_groupshow.c:565
+-#, c-format
+-msgid "%sGID number: %d\n"
++#, fuzzy, c-format
++msgid "%1$sGID number: %2$d\n"
+ msgstr "%s GID numéro : %d\n"
+
+ #: src/tools/sss_groupshow.c:567
+-#, c-format
+-msgid "%sMember users: "
++#, fuzzy, c-format
++msgid "%1$sMember users: "
+ msgstr "%s utilisateurs membres :"
+
+ #: src/tools/sss_groupshow.c:574
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+ "\n"
+-"%sIs a member of: "
++"%1$sIs a member of: "
+ msgstr ""
+ "\n"
+ "%s est membre de :"
+
+ #: src/tools/sss_groupshow.c:581
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+ "\n"
+-"%sMember groups: "
++"%1$sMember groups: "
+ msgstr ""
+ "\n"
+ "%s groupes membres :"
+@@ -1464,8 +1464,8 @@ msgid "Specify user to delete\n"
+ msgstr "Définir l'utilisateur à supprimer\n"
+
+ #: src/tools/sss_userdel.c:230
+-#, c-format
+-msgid "User %s is outside the defined ID range for domain\n"
++#, fuzzy, c-format
++msgid "User %1$s is outside the defined ID range for domain\n"
+ msgstr ""
+ "L'utilisateur %s est en dehors de la plage d'identifiants pour le domaine\n"
+
+@@ -1474,8 +1474,8 @@ msgid "Cannot reset SELinux login context\n"
+ msgstr "Impossible de réinitialiser le contexte de connexion SELinux\n"
+
+ #: src/tools/sss_userdel.c:267
+-#, c-format
+-msgid "WARNING: The user (uid %lu) was still logged in when deleted.\n"
++#, fuzzy, c-format
++msgid "WARNING: The user (uid %1$lu) was still logged in when deleted.\n"
+ msgstr ""
+ "ATTENTION : l'utilisateur (uid %lu) était encore connecté lors de la "
+ "suppression.\n"
+@@ -1490,8 +1490,8 @@ msgid "Error while checking if the user was logged in\n"
+ msgstr "Erreur en vérifiant si l'utilisateur était connecté\n"
+
+ #: src/tools/sss_userdel.c:284
+-#, c-format
+-msgid "The post-delete command failed: %s\n"
++#, fuzzy, c-format
++msgid "The post-delete command failed: %1$s\n"
+ msgstr "La commande de post-suppression a échoué : %s\n"
+
+ #: src/tools/sss_userdel.c:296
+@@ -1501,8 +1501,8 @@ msgstr ""
+ "propriétaire\n"
+
+ #: src/tools/sss_userdel.c:298
+-#, c-format
+-msgid "Cannot remove homedir: %s\n"
++#, fuzzy, c-format
++msgid "Cannot remove homedir: %1$s\n"
+ msgstr "Impossible de supprimer le répertoire utilisateur : %s\n"
+
+ #: src/tools/sss_userdel.c:309
+@@ -1570,22 +1570,22 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:172
+ #, c-format
+-msgid "No such %s named %s, skipping\n"
++msgid "No such %1$s named %2$s, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:175
+ #, c-format
+-msgid "No objects of type %s in the cache, skipping\n"
++msgid "No objects of type %1$s in the cache, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:187
+-#, c-format
+-msgid "Couldn't invalidate %s"
++#, fuzzy, c-format
++msgid "Couldn't invalidate %1$s"
+ msgstr "Impossible d'invalider %s"
+
+ #: src/tools/sss_cache.c:194
+-#, c-format
+-msgid "Couldn't invalidate %s %s"
++#, fuzzy, c-format
++msgid "Couldn't invalidate %1$s %2$s"
+ msgstr "Impossible d'invalider %s %s"
+
+ #: src/tools/sss_cache.c:323
+@@ -1642,7 +1642,7 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:455
+ #, c-format
+-msgid "Could not open domain %s\n"
++msgid "Could not open domain %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:457
+@@ -1662,8 +1662,8 @@ msgid "Out of memory\n"
+ msgstr "Mémoire saturée\n"
+
+ #: src/tools/tools_util.h:40
+-#, c-format
+-msgid "%s must be run as root\n"
++#, fuzzy, c-format
++msgid "%1$s must be run as root\n"
+ msgstr "%s doit être exécuté en tant que root\n"
+
+ #: src/util/util.h:93
+diff --git a/po/hu.po b/po/hu.po
+index ba60733934e27550fbb78d3b2d5b0a30a6f706b1..78e2a16d76530cd737468181673b70479f436735 100644
+--- a/po/hu.po
++++ b/po/hu.po
+@@ -8,7 +8,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: SSSD\n"
+ "Report-Msgid-Bugs-To: sssd-devel at lists.fedorahosted.org\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0400\n"
++"POT-Creation-Date: 2012-05-22 09:33-0400\n"
+ "PO-Revision-Date: 2012-04-20 16:09+0000\n"
+ "Last-Translator: sgallagh <sgallagh at redhat.com>\n"
+ "Language-Team: Hungarian <trans-hu at lists.fedoraproject.org>\n"
+@@ -173,7 +173,7 @@ msgid ""
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:88
+-msgid "Whether to hash host names and adresses in the known_hosts file"
++msgid "Whether to hash host names and addresses in the known_hosts file"
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:91
+@@ -987,13 +987,13 @@ msgid ", your cached password will expire at: "
+ msgstr ", a gyorsítótárazott jelszó lejár ekkor: "
+
+ #: src/sss_client/pam_sss.c:639
+-#, c-format
+-msgid "Your password has expired. You have %d grace login(s) remaining."
++#, fuzzy, c-format
++msgid "Your password has expired. You have %1$d grace login(s) remaining."
+ msgstr "A jelszava lejárt. Még %d bejelentkezés engedélyezett."
+
+ #: src/sss_client/pam_sss.c:685
+-#, c-format
+-msgid "Your password will expire in %d %s."
++#, fuzzy, c-format
++msgid "Your password will expire in %1$d %2$s."
+ msgstr "A jelszava le fog járni %d %s múlva."
+
+ #: src/sss_client/pam_sss.c:734
+@@ -1183,7 +1183,7 @@ msgstr ""
+
+ #: src/tools/sss_useradd.c:153
+ #, c-format
+-msgid "Cannot find group %s in local domain\n"
++msgid "Cannot find group %1$s in local domain\n"
+ msgstr ""
+
+ #: src/tools/sss_useradd.c:168 src/tools/sss_userdel.c:214
+@@ -1209,14 +1209,14 @@ msgstr ""
+ "bele\n"
+
+ #: src/tools/sss_useradd.c:232
+-#, c-format
+-msgid "Cannot create user's home directory: %s\n"
++#, fuzzy, c-format
++msgid "Cannot create user's home directory: %1$s\n"
+ msgstr "Nem sikerült létrehozni a felhasználó könyvtárát: %s\n"
+
+ #: src/tools/sss_useradd.c:243
+-#, c-format
+-msgid "Cannot create user's mail spool: %s\n"
+-msgstr ""
++#, fuzzy, c-format
++msgid "Cannot create user's mail spool: %1$s\n"
++msgstr "Nem sikerült létrehozni a felhasználó könyvtárát: %s\n"
+
+ #: src/tools/sss_useradd.c:255
+ msgid "Could not allocate ID for the user - domain full?\n"
+@@ -1260,7 +1260,7 @@ msgstr ""
+
+ #: src/tools/sss_groupdel.c:101
+ #, c-format
+-msgid "Group %s is outside the defined ID range for domain\n"
++msgid "Group %1$s is outside the defined ID range for domain\n"
+ msgstr ""
+
+ #: src/tools/sss_groupdel.c:115
+@@ -1303,7 +1303,7 @@ msgstr ""
+ #: src/tools/sss_usermod.c:176 src/tools/sss_usermod.c:203
+ #, c-format
+ msgid ""
+-"Cannot find group %s in local domain, only groups in local domain are "
++"Cannot find group %1$s in local domain, only groups in local domain are "
+ "allowed\n"
+ msgstr ""
+
+@@ -1321,7 +1321,7 @@ msgstr ""
+
+ #: src/tools/sss_groupshow.c:562
+ #, c-format
+-msgid "%s%sGroup: %s\n"
++msgid "%1$s%2$sGroup: %3$s\n"
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:563
+@@ -1329,27 +1329,27 @@ msgid "Magic Private "
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:565
+-#, c-format
+-msgid "%sGID number: %d\n"
++#, fuzzy, c-format
++msgid "%1$sGID number: %2$d\n"
+ msgstr "%s GID-je: %d\n"
+
+ #: src/tools/sss_groupshow.c:567
+ #, c-format
+-msgid "%sMember users: "
++msgid "%1$sMember users: "
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:574
+ #, c-format
+ msgid ""
+ "\n"
+-"%sIs a member of: "
++"%1$sIs a member of: "
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:581
+ #, c-format
+ msgid ""
+ "\n"
+-"%sMember groups: "
++"%1$sMember groups: "
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:617
+@@ -1392,7 +1392,7 @@ msgstr "Adja meg a törlendő felhasználót\n"
+
+ #: src/tools/sss_userdel.c:230
+ #, c-format
+-msgid "User %s is outside the defined ID range for domain\n"
++msgid "User %1$s is outside the defined ID range for domain\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:255
+@@ -1401,7 +1401,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:267
+ #, c-format
+-msgid "WARNING: The user (uid %lu) was still logged in when deleted.\n"
++msgid "WARNING: The user (uid %1$lu) was still logged in when deleted.\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:272
+@@ -1414,7 +1414,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:284
+ #, c-format
+-msgid "The post-delete command failed: %s\n"
++msgid "The post-delete command failed: %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:296
+@@ -1422,8 +1422,8 @@ msgid "Not removing home dir - not owned by user\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:298
+-#, c-format
+-msgid "Cannot remove homedir: %s\n"
++#, fuzzy, c-format
++msgid "Cannot remove homedir: %1$s\n"
+ msgstr "Nem lehet eltávolítani a(z) %s könyvtárat\n"
+
+ #: src/tools/sss_userdel.c:309
+@@ -1483,22 +1483,22 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:172
+ #, c-format
+-msgid "No such %s named %s, skipping\n"
++msgid "No such %1$s named %2$s, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:175
+ #, c-format
+-msgid "No objects of type %s in the cache, skipping\n"
++msgid "No objects of type %1$s in the cache, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:187
+ #, c-format
+-msgid "Couldn't invalidate %s"
++msgid "Couldn't invalidate %1$s"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:194
+ #, c-format
+-msgid "Couldn't invalidate %s %s"
++msgid "Couldn't invalidate %1$s %2$s"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:323
+@@ -1551,7 +1551,7 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:455
+ #, c-format
+-msgid "Could not open domain %s\n"
++msgid "Could not open domain %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:457
+@@ -1571,8 +1571,8 @@ msgid "Out of memory\n"
+ msgstr "Elfogyott a memória\n"
+
+ #: src/tools/tools_util.h:40
+-#, c-format
+-msgid "%s must be run as root\n"
++#, fuzzy, c-format
++msgid "%1$s must be run as root\n"
+ msgstr "%s csak rendszergazdaként futtatható\n"
+
+ #: src/util/util.h:93
+diff --git a/po/id.po b/po/id.po
+index d5e1e22061e67756927d684b6801ecaa312c7ba9..c88f63ae2cde5efe481c4a9e0820d100c242c555 100644
+--- a/po/id.po
++++ b/po/id.po
+@@ -7,7 +7,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: SSSD\n"
+ "Report-Msgid-Bugs-To: sssd-devel at lists.fedorahosted.org\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0400\n"
++"POT-Creation-Date: 2012-05-22 09:33-0400\n"
+ "PO-Revision-Date: 2012-04-20 16:09+0000\n"
+ "Last-Translator: sgallagh <sgallagh at redhat.com>\n"
+ "Language-Team: Indonesian <trans-id at lists.fedoraproject.org>\n"
+@@ -172,7 +172,7 @@ msgid ""
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:88
+-msgid "Whether to hash host names and adresses in the known_hosts file"
++msgid "Whether to hash host names and addresses in the known_hosts file"
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:91
+@@ -987,12 +987,12 @@ msgstr ""
+
+ #: src/sss_client/pam_sss.c:639
+ #, c-format
+-msgid "Your password has expired. You have %d grace login(s) remaining."
++msgid "Your password has expired. You have %1$d grace login(s) remaining."
+ msgstr ""
+
+ #: src/sss_client/pam_sss.c:685
+ #, c-format
+-msgid "Your password will expire in %d %s."
++msgid "Your password will expire in %1$d %2$s."
+ msgstr ""
+
+ #: src/sss_client/pam_sss.c:734
+@@ -1181,8 +1181,8 @@ msgid "Groups must be in the same domain as user\n"
+ msgstr "Grup harus berada dalam domain yang sama dengan pengguna\n"
+
+ #: src/tools/sss_useradd.c:153
+-#, c-format
+-msgid "Cannot find group %s in local domain\n"
++#, fuzzy, c-format
++msgid "Cannot find group %1$s in local domain\n"
+ msgstr "Tidak dapat menemukan grup %s dalam domain lokal\n"
+
+ #: src/tools/sss_useradd.c:168 src/tools/sss_userdel.c:214
+@@ -1207,13 +1207,13 @@ msgstr ""
+ "Direktori home milik pengguna sudah ada, tidak menyalin data dari skeldir\n"
+
+ #: src/tools/sss_useradd.c:232
+-#, c-format
+-msgid "Cannot create user's home directory: %s\n"
++#, fuzzy, c-format
++msgid "Cannot create user's home directory: %1$s\n"
+ msgstr "Tidak dapat membuat direktori home milik pengguna: %s\n"
+
+ #: src/tools/sss_useradd.c:243
+-#, c-format
+-msgid "Cannot create user's mail spool: %s\n"
++#, fuzzy, c-format
++msgid "Cannot create user's mail spool: %1$s\n"
+ msgstr "Tidak dapat membuat spool mail milik pengguna: %s\n"
+
+ #: src/tools/sss_useradd.c:255
+@@ -1257,8 +1257,8 @@ msgid "Specify group to delete\n"
+ msgstr ""
+
+ #: src/tools/sss_groupdel.c:101
+-#, c-format
+-msgid "Group %s is outside the defined ID range for domain\n"
++#, fuzzy, c-format
++msgid "Group %1$s is outside the defined ID range for domain\n"
+ msgstr ""
+ "Grup %s berada di luar rentang ID yang telah didefinisikan untuk domain\n"
+
+@@ -1306,9 +1306,9 @@ msgstr ""
+
+ #: src/tools/sss_groupmod.c:155 src/tools/sss_groupmod.c:182
+ #: src/tools/sss_usermod.c:176 src/tools/sss_usermod.c:203
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+-"Cannot find group %s in local domain, only groups in local domain are "
++"Cannot find group %1$s in local domain, only groups in local domain are "
+ "allowed\n"
+ msgstr ""
+ "Tidak dapat menemukan grup %s di domain lokal, hanya grup dalam domain lokal "
+@@ -1329,7 +1329,7 @@ msgstr "Kesalahan transaksi. Tidak bisa memodifikasi grup.\n"
+
+ #: src/tools/sss_groupshow.c:562
+ #, c-format
+-msgid "%s%sGroup: %s\n"
++msgid "%1$s%2$sGroup: %3$s\n"
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:563
+@@ -1338,26 +1338,26 @@ msgstr ""
+
+ #: src/tools/sss_groupshow.c:565
+ #, c-format
+-msgid "%sGID number: %d\n"
++msgid "%1$sGID number: %2$d\n"
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:567
+ #, c-format
+-msgid "%sMember users: "
++msgid "%1$sMember users: "
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:574
+ #, c-format
+ msgid ""
+ "\n"
+-"%sIs a member of: "
++"%1$sIs a member of: "
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:581
+ #, c-format
+ msgid ""
+ "\n"
+-"%sMember groups: "
++"%1$sMember groups: "
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:617
+@@ -1399,8 +1399,8 @@ msgid "Specify user to delete\n"
+ msgstr "Tentukan pengguna yang akan dihapus\n"
+
+ #: src/tools/sss_userdel.c:230
+-#, c-format
+-msgid "User %s is outside the defined ID range for domain\n"
++#, fuzzy, c-format
++msgid "User %1$s is outside the defined ID range for domain\n"
+ msgstr ""
+ "Pengguna %s berada di luar rentang ID yang telah didefinisikan untuk domain\n"
+
+@@ -1410,7 +1410,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:267
+ #, c-format
+-msgid "WARNING: The user (uid %lu) was still logged in when deleted.\n"
++msgid "WARNING: The user (uid %1$lu) was still logged in when deleted.\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:272
+@@ -1423,7 +1423,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:284
+ #, c-format
+-msgid "The post-delete command failed: %s\n"
++msgid "The post-delete command failed: %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:296
+@@ -1431,8 +1431,8 @@ msgid "Not removing home dir - not owned by user\n"
+ msgstr "Tidak menghapus home dir - tidak dimiliki oleh pengguna\n"
+
+ #: src/tools/sss_userdel.c:298
+-#, c-format
+-msgid "Cannot remove homedir: %s\n"
++#, fuzzy, c-format
++msgid "Cannot remove homedir: %1$s\n"
+ msgstr "Tidak dapat menghapus homedir: %s\n"
+
+ #: src/tools/sss_userdel.c:309
+@@ -1498,22 +1498,22 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:172
+ #, c-format
+-msgid "No such %s named %s, skipping\n"
++msgid "No such %1$s named %2$s, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:175
+ #, c-format
+-msgid "No objects of type %s in the cache, skipping\n"
++msgid "No objects of type %1$s in the cache, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:187
+ #, c-format
+-msgid "Couldn't invalidate %s"
++msgid "Couldn't invalidate %1$s"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:194
+ #, c-format
+-msgid "Couldn't invalidate %s %s"
++msgid "Couldn't invalidate %1$s %2$s"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:323
+@@ -1566,7 +1566,7 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:455
+ #, c-format
+-msgid "Could not open domain %s\n"
++msgid "Could not open domain %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:457
+@@ -1586,8 +1586,8 @@ msgid "Out of memory\n"
+ msgstr "Kehabisan memori\n"
+
+ #: src/tools/tools_util.h:40
+-#, c-format
+-msgid "%s must be run as root\n"
++#, fuzzy, c-format
++msgid "%1$s must be run as root\n"
+ msgstr "%s harus dijalankan sebagai root\n"
+
+ #: src/util/util.h:93
+diff --git a/po/it.po b/po/it.po
+index 9864a2123f9dcf4dd6bb264c2bbd24ab5fa8ef1c..341e1c02ffdf9d10d3a11fdd495bfb1a215ecc7b 100644
+--- a/po/it.po
++++ b/po/it.po
+@@ -8,7 +8,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: SSSD\n"
+ "Report-Msgid-Bugs-To: sssd-devel at lists.fedorahosted.org\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0400\n"
++"POT-Creation-Date: 2012-05-22 09:33-0400\n"
+ "PO-Revision-Date: 2012-04-20 16:09+0000\n"
+ "Last-Translator: sgallagh <sgallagh at redhat.com>\n"
+ "Language-Team: Italian <trans-it at lists.fedoraproject.org>\n"
+@@ -176,7 +176,7 @@ msgid ""
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:88
+-msgid "Whether to hash host names and adresses in the known_hosts file"
++msgid "Whether to hash host names and addresses in the known_hosts file"
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:91
+@@ -997,13 +997,13 @@ msgid ", your cached password will expire at: "
+ msgstr ", la password in cache scadrà il: "
+
+ #: src/sss_client/pam_sss.c:639
+-#, c-format
+-msgid "Your password has expired. You have %d grace login(s) remaining."
++#, fuzzy, c-format
++msgid "Your password has expired. You have %1$d grace login(s) remaining."
+ msgstr "La password è scaduta. Hai ancora a disposizione %d login di cortesia."
+
+ #: src/sss_client/pam_sss.c:685
+-#, c-format
+-msgid "Your password will expire in %d %s."
++#, fuzzy, c-format
++msgid "Your password will expire in %1$d %2$s."
+ msgstr "La password scadrà tra %d %s"
+
+ #: src/sss_client/pam_sss.c:734
+@@ -1192,8 +1192,8 @@ msgid "Groups must be in the same domain as user\n"
+ msgstr "I gruppi devono essere nello stesso dominio dell'utente\n"
+
+ #: src/tools/sss_useradd.c:153
+-#, c-format
+-msgid "Cannot find group %s in local domain\n"
++#, fuzzy, c-format
++msgid "Cannot find group %1$s in local domain\n"
+ msgstr "Impossibile trovare il gruppo %s nel dominio locale\n"
+
+ #: src/tools/sss_useradd.c:168 src/tools/sss_userdel.c:214
+@@ -1219,13 +1219,13 @@ msgstr ""
+ "directory skeleton\n"
+
+ #: src/tools/sss_useradd.c:232
+-#, c-format
+-msgid "Cannot create user's home directory: %s\n"
++#, fuzzy, c-format
++msgid "Cannot create user's home directory: %1$s\n"
+ msgstr "Impossibile creare la directory home dell'utente: %s\n"
+
+ #: src/tools/sss_useradd.c:243
+-#, c-format
+-msgid "Cannot create user's mail spool: %s\n"
++#, fuzzy, c-format
++msgid "Cannot create user's mail spool: %1$s\n"
+ msgstr "Impossibile creare lo spool di mail dell'utente: %s\n"
+
+ #: src/tools/sss_useradd.c:255
+@@ -1269,8 +1269,8 @@ msgid "Specify group to delete\n"
+ msgstr "Specificare il gruppo da eliminare\n"
+
+ #: src/tools/sss_groupdel.c:101
+-#, c-format
+-msgid "Group %s is outside the defined ID range for domain\n"
++#, fuzzy, c-format
++msgid "Group %1$s is outside the defined ID range for domain\n"
+ msgstr ""
+ "Il gruppo %s è al di fuori del range di ID specificato per il dominio\n"
+
+@@ -1317,9 +1317,9 @@ msgstr ""
+
+ #: src/tools/sss_groupmod.c:155 src/tools/sss_groupmod.c:182
+ #: src/tools/sss_usermod.c:176 src/tools/sss_usermod.c:203
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+-"Cannot find group %s in local domain, only groups in local domain are "
++"Cannot find group %1$s in local domain, only groups in local domain are "
+ "allowed\n"
+ msgstr ""
+ "Impossibile trovare il gruppo %s nel dominio locale, solo i gruppi nel "
+@@ -1342,8 +1342,8 @@ msgid "Transaction error. Could not modify group.\n"
+ msgstr "Errore della transazione. Impossibile modificare il gruppo.\n"
+
+ #: src/tools/sss_groupshow.c:562
+-#, c-format
+-msgid "%s%sGroup: %s\n"
++#, fuzzy, c-format
++msgid "%1$s%2$sGroup: %3$s\n"
+ msgstr "%s%sGruppo: %s\n"
+
+ #: src/tools/sss_groupshow.c:563
+@@ -1351,29 +1351,29 @@ msgid "Magic Private "
+ msgstr "Magic Private "
+
+ #: src/tools/sss_groupshow.c:565
+-#, c-format
+-msgid "%sGID number: %d\n"
++#, fuzzy, c-format
++msgid "%1$sGID number: %2$d\n"
+ msgstr "%sNumero GID: %d\n"
+
+ #: src/tools/sss_groupshow.c:567
+-#, c-format
+-msgid "%sMember users: "
++#, fuzzy, c-format
++msgid "%1$sMember users: "
+ msgstr "%sUtenti membri: "
+
+ #: src/tools/sss_groupshow.c:574
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+ "\n"
+-"%sIs a member of: "
++"%1$sIs a member of: "
+ msgstr ""
+ "\n"
+ "%sE' membro di: "
+
+ #: src/tools/sss_groupshow.c:581
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+ "\n"
+-"%sMember groups: "
++"%1$sMember groups: "
+ msgstr ""
+ "\n"
+ "%sGruppi membro: "
+@@ -1419,8 +1419,8 @@ msgid "Specify user to delete\n"
+ msgstr "Specificare l'utente da cancellare\n"
+
+ #: src/tools/sss_userdel.c:230
+-#, c-format
+-msgid "User %s is outside the defined ID range for domain\n"
++#, fuzzy, c-format
++msgid "User %1$s is outside the defined ID range for domain\n"
+ msgstr "L'utente %s è all'interno del range di ID definito per il dominio\n"
+
+ #: src/tools/sss_userdel.c:255
+@@ -1429,7 +1429,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:267
+ #, c-format
+-msgid "WARNING: The user (uid %lu) was still logged in when deleted.\n"
++msgid "WARNING: The user (uid %1$lu) was still logged in when deleted.\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:272
+@@ -1442,7 +1442,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:284
+ #, c-format
+-msgid "The post-delete command failed: %s\n"
++msgid "The post-delete command failed: %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:296
+@@ -1450,8 +1450,8 @@ msgid "Not removing home dir - not owned by user\n"
+ msgstr "Home directory non eliminata - non appartiene all'utente\n"
+
+ #: src/tools/sss_userdel.c:298
+-#, c-format
+-msgid "Cannot remove homedir: %s\n"
++#, fuzzy, c-format
++msgid "Cannot remove homedir: %1$s\n"
+ msgstr "Impossibile rimuovere la home directory: %s\n"
+
+ #: src/tools/sss_userdel.c:309
+@@ -1517,22 +1517,22 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:172
+ #, c-format
+-msgid "No such %s named %s, skipping\n"
++msgid "No such %1$s named %2$s, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:175
+ #, c-format
+-msgid "No objects of type %s in the cache, skipping\n"
++msgid "No objects of type %1$s in the cache, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:187
+ #, c-format
+-msgid "Couldn't invalidate %s"
++msgid "Couldn't invalidate %1$s"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:194
+ #, c-format
+-msgid "Couldn't invalidate %s %s"
++msgid "Couldn't invalidate %1$s %2$s"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:323
+@@ -1585,7 +1585,7 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:455
+ #, c-format
+-msgid "Could not open domain %s\n"
++msgid "Could not open domain %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:457
+@@ -1605,8 +1605,8 @@ msgid "Out of memory\n"
+ msgstr "Memoria esaurita\n"
+
+ #: src/tools/tools_util.h:40
+-#, c-format
+-msgid "%s must be run as root\n"
++#, fuzzy, c-format
++msgid "%1$s must be run as root\n"
+ msgstr "%s deve essere eseguito come root\n"
+
+ #: src/util/util.h:93
+diff --git a/po/ja.po b/po/ja.po
+index 65c795c7c45caaa4edd9b50281900546e13135d3..da73a9c5afd03543fa7ed88b8dad3d132f46339c 100644
+--- a/po/ja.po
++++ b/po/ja.po
+@@ -8,7 +8,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: SSSD\n"
+ "Report-Msgid-Bugs-To: sssd-devel at lists.fedorahosted.org\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0400\n"
++"POT-Creation-Date: 2012-05-22 09:33-0400\n"
+ "PO-Revision-Date: 2012-04-23 00:36+0000\n"
+ "Last-Translator: Tomoyuki KATO <tomo at dream.daynight.jp>\n"
+ "Language-Team: Japanese <trans-ja at lists.fedoraproject.org>\n"
+@@ -178,7 +178,7 @@ msgid ""
+ msgstr "再びプロバイダーに問い合わせる前に sudo ルールをキャッシュする秒数"
+
+ #: src/config/SSSDConfig.py:88
+-msgid "Whether to hash host names and adresses in the known_hosts file"
++msgid "Whether to hash host names and addresses in the known_hosts file"
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:91
+@@ -994,14 +994,14 @@ msgid ", your cached password will expire at: "
+ msgstr "、キャッシュされたパスワードが失効します: "
+
+ #: src/sss_client/pam_sss.c:639
+-#, c-format
+-msgid "Your password has expired. You have %d grace login(s) remaining."
++#, fuzzy, c-format
++msgid "Your password has expired. You have %1$d grace login(s) remaining."
+ msgstr ""
+ "パスワードの期限が切れました。%d 回の穏やかなログインが残されています。"
+
+ #: src/sss_client/pam_sss.c:685
+-#, c-format
+-msgid "Your password will expire in %d %s."
++#, fuzzy, c-format
++msgid "Your password will expire in %1$d %2$s."
+ msgstr "あなたのパスワードは %d %s に期限が切れます。"
+
+ #: src/sss_client/pam_sss.c:734
+@@ -1191,8 +1191,8 @@ msgid "Groups must be in the same domain as user\n"
+ msgstr "グループがユーザーと同じドメインになければいけません\n"
+
+ #: src/tools/sss_useradd.c:153
+-#, c-format
+-msgid "Cannot find group %s in local domain\n"
++#, fuzzy, c-format
++msgid "Cannot find group %1$s in local domain\n"
+ msgstr "グループ %s をローカルドメインに見つけられませんでした\n"
+
+ #: src/tools/sss_useradd.c:168 src/tools/sss_userdel.c:214
+@@ -1218,13 +1218,13 @@ msgstr ""
+ "らデータをコピーしません\n"
+
+ #: src/tools/sss_useradd.c:232
+-#, c-format
+-msgid "Cannot create user's home directory: %s\n"
++#, fuzzy, c-format
++msgid "Cannot create user's home directory: %1$s\n"
+ msgstr "ユーザーのホームディレクトリーを作成できません: %s\n"
+
+ #: src/tools/sss_useradd.c:243
+-#, c-format
+-msgid "Cannot create user's mail spool: %s\n"
++#, fuzzy, c-format
++msgid "Cannot create user's mail spool: %1$s\n"
+ msgstr "ユーザーのメールスプールを作成できません: %s\n"
+
+ #: src/tools/sss_useradd.c:255
+@@ -1268,8 +1268,8 @@ msgid "Specify group to delete\n"
+ msgstr "削除するグループを指定してください\n"
+
+ #: src/tools/sss_groupdel.c:101
+-#, c-format
+-msgid "Group %s is outside the defined ID range for domain\n"
++#, fuzzy, c-format
++msgid "Group %1$s is outside the defined ID range for domain\n"
+ msgstr "グループ %s はドメインに対して定義された ID の範囲を越えています\n"
+
+ #: src/tools/sss_groupdel.c:115
+@@ -1314,9 +1314,9 @@ msgstr "メンバーグループが親グループと同じドメインにある
+
+ #: src/tools/sss_groupmod.c:155 src/tools/sss_groupmod.c:182
+ #: src/tools/sss_usermod.c:176 src/tools/sss_usermod.c:203
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+-"Cannot find group %s in local domain, only groups in local domain are "
++"Cannot find group %1$s in local domain, only groups in local domain are "
+ "allowed\n"
+ msgstr ""
+ "ローカルドメインにグループ %s が見つかりませんでした。ローカルドメインにある"
+@@ -1338,8 +1338,8 @@ msgid "Transaction error. Could not modify group.\n"
+ msgstr "トランザクションエラー。グループを変更できませんでした。\n"
+
+ #: src/tools/sss_groupshow.c:562
+-#, c-format
+-msgid "%s%sGroup: %s\n"
++#, fuzzy, c-format
++msgid "%1$s%2$sGroup: %3$s\n"
+ msgstr "%s%s グループ: %s\n"
+
+ #: src/tools/sss_groupshow.c:563
+@@ -1347,29 +1347,29 @@ msgid "Magic Private "
+ msgstr "マジックプライベート "
+
+ #: src/tools/sss_groupshow.c:565
+-#, c-format
+-msgid "%sGID number: %d\n"
++#, fuzzy, c-format
++msgid "%1$sGID number: %2$d\n"
+ msgstr "%s GID 番号: %d\n"
+
+ #: src/tools/sss_groupshow.c:567
+-#, c-format
+-msgid "%sMember users: "
++#, fuzzy, c-format
++msgid "%1$sMember users: "
+ msgstr "%s メンバーユーザー: "
+
+ #: src/tools/sss_groupshow.c:574
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+ "\n"
+-"%sIs a member of: "
++"%1$sIs a member of: "
+ msgstr ""
+ "\n"
+ "%s は次のメンバーです: "
+
+ #: src/tools/sss_groupshow.c:581
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+ "\n"
+-"%sMember groups: "
++"%1$sMember groups: "
+ msgstr ""
+ "\n"
+ "%s メンバーグループ: "
+@@ -1415,8 +1415,8 @@ msgid "Specify user to delete\n"
+ msgstr "削除するユーザーを指定する\n"
+
+ #: src/tools/sss_userdel.c:230
+-#, c-format
+-msgid "User %s is outside the defined ID range for domain\n"
++#, fuzzy, c-format
++msgid "User %1$s is outside the defined ID range for domain\n"
+ msgstr "ユーザー %s はドメインに対して定義された ID の範囲を越えています\n"
+
+ #: src/tools/sss_userdel.c:255
+@@ -1424,8 +1424,8 @@ msgid "Cannot reset SELinux login context\n"
+ msgstr "SELinux ログインコンテキストをリセットできません\n"
+
+ #: src/tools/sss_userdel.c:267
+-#, c-format
+-msgid "WARNING: The user (uid %lu) was still logged in when deleted.\n"
++#, fuzzy, c-format
++msgid "WARNING: The user (uid %1$lu) was still logged in when deleted.\n"
+ msgstr ""
+ "警告: ユーザー (uid %lu) が削除されたときにまだログインしていました。\n"
+
+@@ -1439,8 +1439,8 @@ msgid "Error while checking if the user was logged in\n"
+ msgstr "ユーザーがログインしていたかを確認中にエラーが発生しました\n"
+
+ #: src/tools/sss_userdel.c:284
+-#, c-format
+-msgid "The post-delete command failed: %s\n"
++#, fuzzy, c-format
++msgid "The post-delete command failed: %1$s\n"
+ msgstr "post-delete コマンドに失敗しました: %s\n"
+
+ #: src/tools/sss_userdel.c:296
+@@ -1449,8 +1449,8 @@ msgstr ""
+ "ホームディレクトリーを削除していません - ユーザーにより所有されていません\n"
+
+ #: src/tools/sss_userdel.c:298
+-#, c-format
+-msgid "Cannot remove homedir: %s\n"
++#, fuzzy, c-format
++msgid "Cannot remove homedir: %1$s\n"
+ msgstr "ホームディレクトリーを削除できません: %s\n"
+
+ #: src/tools/sss_userdel.c:309
+@@ -1516,22 +1516,22 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:172
+ #, c-format
+-msgid "No such %s named %s, skipping\n"
++msgid "No such %1$s named %2$s, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:175
+ #, c-format
+-msgid "No objects of type %s in the cache, skipping\n"
++msgid "No objects of type %1$s in the cache, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:187
+-#, c-format
+-msgid "Couldn't invalidate %s"
++#, fuzzy, c-format
++msgid "Couldn't invalidate %1$s"
+ msgstr "%s を無効化できませんでした"
+
+ #: src/tools/sss_cache.c:194
+-#, c-format
+-msgid "Couldn't invalidate %s %s"
++#, fuzzy, c-format
++msgid "Couldn't invalidate %1$s %2$s"
+ msgstr "%s %s を無効化できませんでした"
+
+ #: src/tools/sss_cache.c:323
+@@ -1588,7 +1588,7 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:455
+ #, c-format
+-msgid "Could not open domain %s\n"
++msgid "Could not open domain %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:457
+@@ -1608,8 +1608,8 @@ msgid "Out of memory\n"
+ msgstr "メモリー不足\n"
+
+ #: src/tools/tools_util.h:40
+-#, c-format
+-msgid "%s must be run as root\n"
++#, fuzzy, c-format
++msgid "%1$s must be run as root\n"
+ msgstr "%s は root として実行する必要があります\n"
+
+ #: src/util/util.h:93
+diff --git a/po/nb.po b/po/nb.po
+index dfc90ff226e4778aea3378e9a3219c91d6e3bb13..b808d0a7ca5629b319660e70ada18b3c1087a7e9 100644
+--- a/po/nb.po
++++ b/po/nb.po
+@@ -8,7 +8,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: SSSD\n"
+ "Report-Msgid-Bugs-To: sssd-devel at lists.fedorahosted.org\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0400\n"
++"POT-Creation-Date: 2012-05-22 09:33-0400\n"
+ "PO-Revision-Date: 2012-04-25 18:21+0000\n"
+ "Last-Translator: Kjartan Maraas <kmaraas at gnome.org>\n"
+ "Language-Team: Norwegian Bokmål <i18n-nb at lister.ping.uio.no>\n"
+@@ -173,7 +173,7 @@ msgid ""
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:88
+-msgid "Whether to hash host names and adresses in the known_hosts file"
++msgid "Whether to hash host names and addresses in the known_hosts file"
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:91
+@@ -987,12 +987,12 @@ msgstr ""
+
+ #: src/sss_client/pam_sss.c:639
+ #, c-format
+-msgid "Your password has expired. You have %d grace login(s) remaining."
++msgid "Your password has expired. You have %1$d grace login(s) remaining."
+ msgstr ""
+
+ #: src/sss_client/pam_sss.c:685
+ #, c-format
+-msgid "Your password will expire in %d %s."
++msgid "Your password will expire in %1$d %2$s."
+ msgstr ""
+
+ #: src/sss_client/pam_sss.c:734
+@@ -1182,7 +1182,7 @@ msgstr ""
+
+ #: src/tools/sss_useradd.c:153
+ #, c-format
+-msgid "Cannot find group %s in local domain\n"
++msgid "Cannot find group %1$s in local domain\n"
+ msgstr ""
+
+ #: src/tools/sss_useradd.c:168 src/tools/sss_userdel.c:214
+@@ -1207,12 +1207,12 @@ msgstr ""
+
+ #: src/tools/sss_useradd.c:232
+ #, c-format
+-msgid "Cannot create user's home directory: %s\n"
++msgid "Cannot create user's home directory: %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_useradd.c:243
+ #, c-format
+-msgid "Cannot create user's mail spool: %s\n"
++msgid "Cannot create user's mail spool: %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_useradd.c:255
+@@ -1257,7 +1257,7 @@ msgstr ""
+
+ #: src/tools/sss_groupdel.c:101
+ #, c-format
+-msgid "Group %s is outside the defined ID range for domain\n"
++msgid "Group %1$s is outside the defined ID range for domain\n"
+ msgstr ""
+
+ #: src/tools/sss_groupdel.c:115
+@@ -1300,7 +1300,7 @@ msgstr ""
+ #: src/tools/sss_usermod.c:176 src/tools/sss_usermod.c:203
+ #, c-format
+ msgid ""
+-"Cannot find group %s in local domain, only groups in local domain are "
++"Cannot find group %1$s in local domain, only groups in local domain are "
+ "allowed\n"
+ msgstr ""
+
+@@ -1318,7 +1318,7 @@ msgstr ""
+
+ #: src/tools/sss_groupshow.c:562
+ #, c-format
+-msgid "%s%sGroup: %s\n"
++msgid "%1$s%2$sGroup: %3$s\n"
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:563
+@@ -1327,26 +1327,26 @@ msgstr ""
+
+ #: src/tools/sss_groupshow.c:565
+ #, c-format
+-msgid "%sGID number: %d\n"
++msgid "%1$sGID number: %2$d\n"
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:567
+ #, c-format
+-msgid "%sMember users: "
++msgid "%1$sMember users: "
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:574
+ #, c-format
+ msgid ""
+ "\n"
+-"%sIs a member of: "
++"%1$sIs a member of: "
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:581
+ #, c-format
+ msgid ""
+ "\n"
+-"%sMember groups: "
++"%1$sMember groups: "
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:617
+@@ -1389,7 +1389,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:230
+ #, c-format
+-msgid "User %s is outside the defined ID range for domain\n"
++msgid "User %1$s is outside the defined ID range for domain\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:255
+@@ -1398,7 +1398,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:267
+ #, c-format
+-msgid "WARNING: The user (uid %lu) was still logged in when deleted.\n"
++msgid "WARNING: The user (uid %1$lu) was still logged in when deleted.\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:272
+@@ -1411,7 +1411,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:284
+ #, c-format
+-msgid "The post-delete command failed: %s\n"
++msgid "The post-delete command failed: %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:296
+@@ -1420,7 +1420,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:298
+ #, c-format
+-msgid "Cannot remove homedir: %s\n"
++msgid "Cannot remove homedir: %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:309
+@@ -1480,22 +1480,22 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:172
+ #, c-format
+-msgid "No such %s named %s, skipping\n"
++msgid "No such %1$s named %2$s, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:175
+ #, c-format
+-msgid "No objects of type %s in the cache, skipping\n"
++msgid "No objects of type %1$s in the cache, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:187
+ #, c-format
+-msgid "Couldn't invalidate %s"
++msgid "Couldn't invalidate %1$s"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:194
+ #, c-format
+-msgid "Couldn't invalidate %s %s"
++msgid "Couldn't invalidate %1$s %2$s"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:323
+@@ -1548,7 +1548,7 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:455
+ #, c-format
+-msgid "Could not open domain %s\n"
++msgid "Could not open domain %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:457
+@@ -1569,7 +1569,7 @@ msgstr ""
+
+ #: src/tools/tools_util.h:40
+ #, c-format
+-msgid "%s must be run as root\n"
++msgid "%1$s must be run as root\n"
+ msgstr ""
+
+ #: src/util/util.h:93
+diff --git a/po/nl.po b/po/nl.po
+index 4bde6a9181c16351c6e8d6e0d79989157470a944..26bc48370a9bb03664a898197c241a7073b914d7 100644
+--- a/po/nl.po
++++ b/po/nl.po
+@@ -11,7 +11,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: SSSD\n"
+ "Report-Msgid-Bugs-To: sssd-devel at lists.fedorahosted.org\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0400\n"
++"POT-Creation-Date: 2012-05-22 09:33-0400\n"
+ "PO-Revision-Date: 2012-04-20 16:09+0000\n"
+ "Last-Translator: sgallagh <sgallagh at redhat.com>\n"
+ "Language-Team: Dutch (http://www.transifex.net/projects/p/fedora/language/"
+@@ -195,7 +195,7 @@ msgstr ""
+ "provider er opnieuw om wordt gevraagd"
+
+ #: src/config/SSSDConfig.py:88
+-msgid "Whether to hash host names and adresses in the known_hosts file"
++msgid "Whether to hash host names and addresses in the known_hosts file"
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:91
+@@ -1036,13 +1036,13 @@ msgid ", your cached password will expire at: "
+ msgstr ", uw wachtwoord verloopt op:"
+
+ #: src/sss_client/pam_sss.c:639
+-#, c-format
+-msgid "Your password has expired. You have %d grace login(s) remaining."
++#, fuzzy, c-format
++msgid "Your password has expired. You have %1$d grace login(s) remaining."
+ msgstr "Uw wachtwoord is verlopen. U heeft %d genadigde login(s) over."
+
+ #: src/sss_client/pam_sss.c:685
+-#, c-format
+-msgid "Your password will expire in %d %s."
++#, fuzzy, c-format
++msgid "Your password will expire in %1$d %2$s."
+ msgstr "Uw wachtwoord verloopt in %d %s."
+
+ #: src/sss_client/pam_sss.c:734
+@@ -1232,8 +1232,8 @@ msgstr ""
+ "De groepen moeten zich in het zelfde domein als de gebruiker bevinden\n"
+
+ #: src/tools/sss_useradd.c:153
+-#, c-format
+-msgid "Cannot find group %s in local domain\n"
++#, fuzzy, c-format
++msgid "Cannot find group %1$s in local domain\n"
+ msgstr "Kan de groep %s niet vinden in het lokale domein\n"
+
+ #: src/tools/sss_useradd.c:168 src/tools/sss_userdel.c:214
+@@ -1257,13 +1257,13 @@ msgid "User's home directory already exists, not copying data from skeldir\n"
+ msgstr "De gebruikersmap bestaat reeds, voorbeeldmap niet gekopieerd\n"
+
+ #: src/tools/sss_useradd.c:232
+-#, c-format
+-msgid "Cannot create user's home directory: %s\n"
++#, fuzzy, c-format
++msgid "Cannot create user's home directory: %1$s\n"
+ msgstr "Kan de gebruikersmap niet aanmaken: %s\n"
+
+ #: src/tools/sss_useradd.c:243
+-#, c-format
+-msgid "Cannot create user's mail spool: %s\n"
++#, fuzzy, c-format
++msgid "Cannot create user's mail spool: %1$s\n"
+ msgstr "Kan het postbestand van de gebruiker niet aanmaken: %s\n"
+
+ #: src/tools/sss_useradd.c:255
+@@ -1307,8 +1307,8 @@ msgid "Specify group to delete\n"
+ msgstr "Geef groep op om te verwijderen\n"
+
+ #: src/tools/sss_groupdel.c:101
+-#, c-format
+-msgid "Group %s is outside the defined ID range for domain\n"
++#, fuzzy, c-format
++msgid "Group %1$s is outside the defined ID range for domain\n"
+ msgstr "De groep %s valt buiten het toegestane bereik voor het domein\n"
+
+ #: src/tools/sss_groupdel.c:115
+@@ -1355,9 +1355,9 @@ msgstr ""
+
+ #: src/tools/sss_groupmod.c:155 src/tools/sss_groupmod.c:182
+ #: src/tools/sss_usermod.c:176 src/tools/sss_usermod.c:203
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+-"Cannot find group %s in local domain, only groups in local domain are "
++"Cannot find group %1$s in local domain, only groups in local domain are "
+ "allowed\n"
+ msgstr ""
+ "Kan de groep %s niet vinden in het lokale domein, alleen groepen in het "
+@@ -1379,8 +1379,8 @@ msgid "Transaction error. Could not modify group.\n"
+ msgstr "Transactiefout. Kan de groep niet aanpassen.\n"
+
+ #: src/tools/sss_groupshow.c:562
+-#, c-format
+-msgid "%s%sGroup: %s\n"
++#, fuzzy, c-format
++msgid "%1$s%2$sGroup: %3$s\n"
+ msgstr "%s%sGroep:%s\n"
+
+ #: src/tools/sss_groupshow.c:563
+@@ -1388,29 +1388,29 @@ msgid "Magic Private "
+ msgstr "Magic Private "
+
+ #: src/tools/sss_groupshow.c:565
+-#, c-format
+-msgid "%sGID number: %d\n"
++#, fuzzy, c-format
++msgid "%1$sGID number: %2$d\n"
+ msgstr "%sGID nummer: %d\n"
+
+ #: src/tools/sss_groupshow.c:567
+-#, c-format
+-msgid "%sMember users: "
++#, fuzzy, c-format
++msgid "%1$sMember users: "
+ msgstr "%sLeden: "
+
+ #: src/tools/sss_groupshow.c:574
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+ "\n"
+-"%sIs a member of: "
++"%1$sIs a member of: "
+ msgstr ""
+ "\n"
+ "%sIs lid van: "
+
+ #: src/tools/sss_groupshow.c:581
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+ "\n"
+-"%sMember groups: "
++"%1$sMember groups: "
+ msgstr ""
+ "\n"
+ "%sLidgroepen: "
+@@ -1458,8 +1458,8 @@ msgid "Specify user to delete\n"
+ msgstr "Specificeer de te verwijderen gebruiker\n"
+
+ #: src/tools/sss_userdel.c:230
+-#, c-format
+-msgid "User %s is outside the defined ID range for domain\n"
++#, fuzzy, c-format
++msgid "User %1$s is outside the defined ID range for domain\n"
+ msgstr "Gebruiker %s valt buiten het toegestane ID-bereik voor het domein\n"
+
+ #: src/tools/sss_userdel.c:255
+@@ -1467,8 +1467,8 @@ msgid "Cannot reset SELinux login context\n"
+ msgstr "Kan de SELinux logincontext niet herstellen\n"
+
+ #: src/tools/sss_userdel.c:267
+-#, c-format
+-msgid "WARNING: The user (uid %lu) was still logged in when deleted.\n"
++#, fuzzy, c-format
++msgid "WARNING: The user (uid %1$lu) was still logged in when deleted.\n"
+ msgstr ""
+ "WAARSCHUWING: De gebruiker (uid %lu) was nogsteeds ingelogd tijdens het "
+ "verwijderen.\n"
+@@ -1482,8 +1482,8 @@ msgid "Error while checking if the user was logged in\n"
+ msgstr "Fout bij het controleren of de gebruiker was ingelogd\n"
+
+ #: src/tools/sss_userdel.c:284
+-#, c-format
+-msgid "The post-delete command failed: %s\n"
++#, fuzzy, c-format
++msgid "The post-delete command failed: %1$s\n"
+ msgstr "Het post-verwijder commando faalde: %s\n"
+
+ #: src/tools/sss_userdel.c:296
+@@ -1492,8 +1492,8 @@ msgstr ""
+ "De gebruikersmap wordt niet verwijderd - de gebruiker is geen eigenaar\n"
+
+ #: src/tools/sss_userdel.c:298
+-#, c-format
+-msgid "Cannot remove homedir: %s\n"
++#, fuzzy, c-format
++msgid "Cannot remove homedir: %1$s\n"
+ msgstr "Kan de gebruikersmap niet verwijderen: %s\n"
+
+ #: src/tools/sss_userdel.c:309
+@@ -1559,22 +1559,22 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:172
+ #, c-format
+-msgid "No such %s named %s, skipping\n"
++msgid "No such %1$s named %2$s, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:175
+ #, c-format
+-msgid "No objects of type %s in the cache, skipping\n"
++msgid "No objects of type %1$s in the cache, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:187
+ #, c-format
+-msgid "Couldn't invalidate %s"
++msgid "Couldn't invalidate %1$s"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:194
+ #, c-format
+-msgid "Couldn't invalidate %s %s"
++msgid "Couldn't invalidate %1$s %2$s"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:323
+@@ -1627,7 +1627,7 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:455
+ #, c-format
+-msgid "Could not open domain %s\n"
++msgid "Could not open domain %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:457
+@@ -1647,8 +1647,8 @@ msgid "Out of memory\n"
+ msgstr "Het geheugen zit vol\n"
+
+ #: src/tools/tools_util.h:40
+-#, c-format
+-msgid "%s must be run as root\n"
++#, fuzzy, c-format
++msgid "%1$s must be run as root\n"
+ msgstr "%s moet als root gestart worden\n"
+
+ #: src/util/util.h:93
+diff --git a/po/pl.po b/po/pl.po
+index f5ad70cae0811e0678ba1bb8b498507fe4954341..7c92af701b7e63f3154fc5ae11c9b06b619d2134 100644
+--- a/po/pl.po
++++ b/po/pl.po
+@@ -9,7 +9,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: SSSD\n"
+ "Report-Msgid-Bugs-To: sssd-devel at lists.fedorahosted.org\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0400\n"
++"POT-Creation-Date: 2012-05-22 09:33-0400\n"
+ "PO-Revision-Date: 2012-04-20 16:09+0000\n"
+ "Last-Translator: Piotr Drąg <piotrdrag at gmail.com>\n"
+ "Language-Team: Polish (http://www.transifex.net/projects/p/fedora/language/"
+@@ -190,7 +190,7 @@ msgstr ""
+ "zapytaniem dostawcy"
+
+ #: src/config/SSSDConfig.py:88
+-msgid "Whether to hash host names and adresses in the known_hosts file"
++msgid "Whether to hash host names and addresses in the known_hosts file"
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:91
+@@ -1024,13 +1024,13 @@ msgid ", your cached password will expire at: "
+ msgstr ", hasło w pamięci podręcznej wygaśnie za: "
+
+ #: src/sss_client/pam_sss.c:639
+-#, c-format
+-msgid "Your password has expired. You have %d grace login(s) remaining."
++#, fuzzy, c-format
++msgid "Your password has expired. You have %1$d grace login(s) remaining."
+ msgstr "Hasło wygasło. Pozostało %d możliwych logowań."
+
+ #: src/sss_client/pam_sss.c:685
+-#, c-format
+-msgid "Your password will expire in %d %s."
++#, fuzzy, c-format
++msgid "Your password will expire in %1$d %2$s."
+ msgstr "Hasło wygaśnie za %d %s."
+
+ #: src/sss_client/pam_sss.c:734
+@@ -1219,8 +1219,8 @@ msgid "Groups must be in the same domain as user\n"
+ msgstr "Grupy muszą być w tej samej domenie co użytkownik\n"
+
+ #: src/tools/sss_useradd.c:153
+-#, c-format
+-msgid "Cannot find group %s in local domain\n"
++#, fuzzy, c-format
++msgid "Cannot find group %1$s in local domain\n"
+ msgstr "Nie można odnaleźć grupy %s w lokalnej domenie\n"
+
+ #: src/tools/sss_useradd.c:168 src/tools/sss_userdel.c:214
+@@ -1246,13 +1246,13 @@ msgstr ""
+ "zostaną skopiowane\n"
+
+ #: src/tools/sss_useradd.c:232
+-#, c-format
+-msgid "Cannot create user's home directory: %s\n"
++#, fuzzy, c-format
++msgid "Cannot create user's home directory: %1$s\n"
+ msgstr "Nie można utworzyć katalogu domowego użytkownika: %s\n"
+
+ #: src/tools/sss_useradd.c:243
+-#, c-format
+-msgid "Cannot create user's mail spool: %s\n"
++#, fuzzy, c-format
++msgid "Cannot create user's mail spool: %1$s\n"
+ msgstr "Nie można utworzyć buforu poczty użytkownika: %s\n"
+
+ #: src/tools/sss_useradd.c:255
+@@ -1298,8 +1298,8 @@ msgid "Specify group to delete\n"
+ msgstr "Proszę podać grupę do usunięcia\n"
+
+ #: src/tools/sss_groupdel.c:101
+-#, c-format
+-msgid "Group %s is outside the defined ID range for domain\n"
++#, fuzzy, c-format
++msgid "Group %1$s is outside the defined ID range for domain\n"
+ msgstr "Grupa %s jest poza określonym zakresem identyfikatorów dla domeny\n"
+
+ #: src/tools/sss_groupdel.c:115
+@@ -1344,9 +1344,9 @@ msgstr "Członkowie grupy muszą być w tej samej domenie co grupa nadrzędna\n"
+
+ #: src/tools/sss_groupmod.c:155 src/tools/sss_groupmod.c:182
+ #: src/tools/sss_usermod.c:176 src/tools/sss_usermod.c:203
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+-"Cannot find group %s in local domain, only groups in local domain are "
++"Cannot find group %1$s in local domain, only groups in local domain are "
+ "allowed\n"
+ msgstr ""
+ "Nie można odnaleźć grupy %s w lokalnej domenie, tylko grupy w lokalnej "
+@@ -1369,8 +1369,8 @@ msgid "Transaction error. Could not modify group.\n"
+ msgstr "Błąd transakcji. Nie można zmodyfikować grupy.\n"
+
+ #: src/tools/sss_groupshow.c:562
+-#, c-format
+-msgid "%s%sGroup: %s\n"
++#, fuzzy, c-format
++msgid "%1$s%2$sGroup: %3$s\n"
+ msgstr "%s%sGrupa: %s\n"
+
+ #: src/tools/sss_groupshow.c:563
+@@ -1378,29 +1378,29 @@ msgid "Magic Private "
+ msgstr "Prywatne magic "
+
+ #: src/tools/sss_groupshow.c:565
+-#, c-format
+-msgid "%sGID number: %d\n"
++#, fuzzy, c-format
++msgid "%1$sGID number: %2$d\n"
+ msgstr "%sNumer GID: %d\n"
+
+ #: src/tools/sss_groupshow.c:567
+-#, c-format
+-msgid "%sMember users: "
++#, fuzzy, c-format
++msgid "%1$sMember users: "
+ msgstr "%sUżytkownicy będący członkami: "
+
+ #: src/tools/sss_groupshow.c:574
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+ "\n"
+-"%sIs a member of: "
++"%1$sIs a member of: "
+ msgstr ""
+ "\n"
+ "%sJest członkiem: "
+
+ #: src/tools/sss_groupshow.c:581
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+ "\n"
+-"%sMember groups: "
++"%1$sMember groups: "
+ msgstr ""
+ "\n"
+ "%sGrupy będące członkami: "
+@@ -1446,8 +1446,8 @@ msgid "Specify user to delete\n"
+ msgstr "Proszę podać użytkownika do usunięcia\n"
+
+ #: src/tools/sss_userdel.c:230
+-#, c-format
+-msgid "User %s is outside the defined ID range for domain\n"
++#, fuzzy, c-format
++msgid "User %1$s is outside the defined ID range for domain\n"
+ msgstr ""
+ "Użytkownik %s jest poza określonym zakresem identyfikatorów dla domeny\n"
+
+@@ -1456,8 +1456,8 @@ msgid "Cannot reset SELinux login context\n"
+ msgstr "Nie można przywrócić kontekstu loginu SELinuksa\n"
+
+ #: src/tools/sss_userdel.c:267
+-#, c-format
+-msgid "WARNING: The user (uid %lu) was still logged in when deleted.\n"
++#, fuzzy, c-format
++msgid "WARNING: The user (uid %1$lu) was still logged in when deleted.\n"
+ msgstr ""
+ "OSTRZEŻENIE: użytkownik (UID %lu) był zalogowany podczas jego usunięcia.\n"
+
+@@ -1470,8 +1470,8 @@ msgid "Error while checking if the user was logged in\n"
+ msgstr "Błąd podczas sprawdzania, czy użytkownik był zalogowany\n"
+
+ #: src/tools/sss_userdel.c:284
+-#, c-format
+-msgid "The post-delete command failed: %s\n"
++#, fuzzy, c-format
++msgid "The post-delete command failed: %1$s\n"
+ msgstr "Polecenie po usunięciu nie powiodło się: %s\n"
+
+ #: src/tools/sss_userdel.c:296
+@@ -1480,8 +1480,8 @@ msgstr ""
+ "Katalog domowy nie zostanie usunięty - użytkownik nie jest właścicielem\n"
+
+ #: src/tools/sss_userdel.c:298
+-#, c-format
+-msgid "Cannot remove homedir: %s\n"
++#, fuzzy, c-format
++msgid "Cannot remove homedir: %1$s\n"
+ msgstr "Nie można usunąć katalogu domowego: %s\n"
+
+ #: src/tools/sss_userdel.c:309
+@@ -1549,22 +1549,22 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:172
+ #, c-format
+-msgid "No such %s named %s, skipping\n"
++msgid "No such %1$s named %2$s, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:175
+ #, c-format
+-msgid "No objects of type %s in the cache, skipping\n"
++msgid "No objects of type %1$s in the cache, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:187
+-#, c-format
+-msgid "Couldn't invalidate %s"
++#, fuzzy, c-format
++msgid "Couldn't invalidate %1$s"
+ msgstr "Nie można unieważnić %s"
+
+ #: src/tools/sss_cache.c:194
+-#, c-format
+-msgid "Couldn't invalidate %s %s"
++#, fuzzy, c-format
++msgid "Couldn't invalidate %1$s %2$s"
+ msgstr "Nie można unieważnić %s %s"
+
+ #: src/tools/sss_cache.c:323
+@@ -1621,7 +1621,7 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:455
+ #, c-format
+-msgid "Could not open domain %s\n"
++msgid "Could not open domain %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:457
+@@ -1641,8 +1641,8 @@ msgid "Out of memory\n"
+ msgstr "Brak pamięci\n"
+
+ #: src/tools/tools_util.h:40
+-#, c-format
+-msgid "%s must be run as root\n"
++#, fuzzy, c-format
++msgid "%1$s must be run as root\n"
+ msgstr "%s musi zostać uruchomione jako root\n"
+
+ #: src/util/util.h:93
+diff --git a/po/pt.po b/po/pt.po
+index db2d704f719ecfcda772816849e35515f5d124f6..6edc7dc103564e8510cde7e24ea38ed998f657a6 100644
+--- a/po/pt.po
++++ b/po/pt.po
+@@ -7,7 +7,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: SSSD\n"
+ "Report-Msgid-Bugs-To: sssd-devel at lists.fedorahosted.org\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0400\n"
++"POT-Creation-Date: 2012-05-22 09:33-0400\n"
+ "PO-Revision-Date: 2012-04-20 16:09+0000\n"
+ "Last-Translator: sgallagh <sgallagh at redhat.com>\n"
+ "Language-Team: Portuguese <trans-pt at lists.fedoraproject.org>\n"
+@@ -177,7 +177,7 @@ msgid ""
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:88
+-msgid "Whether to hash host names and adresses in the known_hosts file"
++msgid "Whether to hash host names and addresses in the known_hosts file"
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:91
+@@ -997,13 +997,13 @@ msgid ", your cached password will expire at: "
+ msgstr ", a sua senha guardada em cache irá expirar em: "
+
+ #: src/sss_client/pam_sss.c:639
+-#, c-format
+-msgid "Your password has expired. You have %d grace login(s) remaining."
++#, fuzzy, c-format
++msgid "Your password has expired. You have %1$d grace login(s) remaining."
+ msgstr "A sua senha expirou. Restam-lhe %d sessões de tolerância."
+
+ #: src/sss_client/pam_sss.c:685
+-#, c-format
+-msgid "Your password will expire in %d %s."
++#, fuzzy, c-format
++msgid "Your password will expire in %1$d %2$s."
+ msgstr "A sua senha irá expirar em %d %s."
+
+ #: src/sss_client/pam_sss.c:734
+@@ -1192,8 +1192,8 @@ msgid "Groups must be in the same domain as user\n"
+ msgstr "Os grupos têm de pertencer ao mesmo domínio que o utilizador\n"
+
+ #: src/tools/sss_useradd.c:153
+-#, c-format
+-msgid "Cannot find group %s in local domain\n"
++#, fuzzy, c-format
++msgid "Cannot find group %1$s in local domain\n"
+ msgstr "Incapaz de encontrar o grupo %s no domínio local\n"
+
+ #: src/tools/sss_useradd.c:168 src/tools/sss_userdel.c:214
+@@ -1218,13 +1218,13 @@ msgstr ""
+ "A pasta pessoal do utilizador já existe. Conteúdo skeldir não copiado\n"
+
+ #: src/tools/sss_useradd.c:232
+-#, c-format
+-msgid "Cannot create user's home directory: %s\n"
++#, fuzzy, c-format
++msgid "Cannot create user's home directory: %1$s\n"
+ msgstr "Incapaz de criar pasta pessoal do utilizador: %s\n"
+
+ #: src/tools/sss_useradd.c:243
+-#, c-format
+-msgid "Cannot create user's mail spool: %s\n"
++#, fuzzy, c-format
++msgid "Cannot create user's mail spool: %1$s\n"
+ msgstr "Incapaz de criar o ficheiro de correio do utilizador: %s\n"
+
+ #: src/tools/sss_useradd.c:255
+@@ -1268,8 +1268,8 @@ msgid "Specify group to delete\n"
+ msgstr "Especifique grupo a remover\n"
+
+ #: src/tools/sss_groupdel.c:101
+-#, c-format
+-msgid "Group %s is outside the defined ID range for domain\n"
++#, fuzzy, c-format
++msgid "Group %1$s is outside the defined ID range for domain\n"
+ msgstr "O grupo %s está fora do intervalo de IDs para o domínio\n"
+
+ #: src/tools/sss_groupdel.c:115
+@@ -1314,9 +1314,9 @@ msgstr "Grupos membro têm de estar no mesmo domínio do grupo pai\n"
+
+ #: src/tools/sss_groupmod.c:155 src/tools/sss_groupmod.c:182
+ #: src/tools/sss_usermod.c:176 src/tools/sss_usermod.c:203
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+-"Cannot find group %s in local domain, only groups in local domain are "
++"Cannot find group %1$s in local domain, only groups in local domain are "
+ "allowed\n"
+ msgstr ""
+ "Grupo %s não foi encontrado no domínio local. Apenas são permitidos grupos "
+@@ -1338,8 +1338,8 @@ msgid "Transaction error. Could not modify group.\n"
+ msgstr "Erro de transacção. Não foi possível modificar o grupo.\n"
+
+ #: src/tools/sss_groupshow.c:562
+-#, c-format
+-msgid "%s%sGroup: %s\n"
++#, fuzzy, c-format
++msgid "%1$s%2$sGroup: %3$s\n"
+ msgstr "%s%sGrupo: %s\n"
+
+ #: src/tools/sss_groupshow.c:563
+@@ -1347,29 +1347,29 @@ msgid "Magic Private "
+ msgstr "\"Magic\" Privada"
+
+ #: src/tools/sss_groupshow.c:565
+-#, c-format
+-msgid "%sGID number: %d\n"
++#, fuzzy, c-format
++msgid "%1$sGID number: %2$d\n"
+ msgstr "%sNúmero GID: %d\n"
+
+ #: src/tools/sss_groupshow.c:567
+-#, c-format
+-msgid "%sMember users: "
++#, fuzzy, c-format
++msgid "%1$sMember users: "
+ msgstr "%sUtilizadores Membros: "
+
+ #: src/tools/sss_groupshow.c:574
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+ "\n"
+-"%sIs a member of: "
++"%1$sIs a member of: "
+ msgstr ""
+ "\n"
+ "%sIs um membro de: "
+
+ #: src/tools/sss_groupshow.c:581
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+ "\n"
+-"%sMember groups: "
++"%1$sMember groups: "
+ msgstr ""
+ "\n"
+ "%sGrupos Membros: "
+@@ -1415,8 +1415,8 @@ msgid "Specify user to delete\n"
+ msgstr "Especificar o utilizador a remover\n"
+
+ #: src/tools/sss_userdel.c:230
+-#, c-format
+-msgid "User %s is outside the defined ID range for domain\n"
++#, fuzzy, c-format
++msgid "User %1$s is outside the defined ID range for domain\n"
+ msgstr "O utilizador %s está fora do intervalo de IDs para o domínio\n"
+
+ #: src/tools/sss_userdel.c:255
+@@ -1424,8 +1424,8 @@ msgid "Cannot reset SELinux login context\n"
+ msgstr "Não foi possível redefinir o contexto SELinux para a sessão\n"
+
+ #: src/tools/sss_userdel.c:267
+-#, c-format
+-msgid "WARNING: The user (uid %lu) was still logged in when deleted.\n"
++#, fuzzy, c-format
++msgid "WARNING: The user (uid %1$lu) was still logged in when deleted.\n"
+ msgstr ""
+ "AVISO: O utilizador (uid %lu) ainda estava numa sessão quando foi removido.\n"
+
+@@ -1440,8 +1440,8 @@ msgid "Error while checking if the user was logged in\n"
+ msgstr "Erro ao verificar se o utilizador estava autenticado\n"
+
+ #: src/tools/sss_userdel.c:284
+-#, c-format
+-msgid "The post-delete command failed: %s\n"
++#, fuzzy, c-format
++msgid "The post-delete command failed: %1$s\n"
+ msgstr "O comando após-remoção falhou: %s\n"
+
+ #: src/tools/sss_userdel.c:296
+@@ -1449,8 +1449,8 @@ msgid "Not removing home dir - not owned by user\n"
+ msgstr "Pasta pessoal não removida - não pertence ao utilizador\n"
+
+ #: src/tools/sss_userdel.c:298
+-#, c-format
+-msgid "Cannot remove homedir: %s\n"
++#, fuzzy, c-format
++msgid "Cannot remove homedir: %1$s\n"
+ msgstr "Incapaz de remover pasta pessoal: %s\n"
+
+ #: src/tools/sss_userdel.c:309
+@@ -1516,22 +1516,22 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:172
+ #, c-format
+-msgid "No such %s named %s, skipping\n"
++msgid "No such %1$s named %2$s, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:175
+ #, c-format
+-msgid "No objects of type %s in the cache, skipping\n"
++msgid "No objects of type %1$s in the cache, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:187
+ #, c-format
+-msgid "Couldn't invalidate %s"
++msgid "Couldn't invalidate %1$s"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:194
+ #, c-format
+-msgid "Couldn't invalidate %s %s"
++msgid "Couldn't invalidate %1$s %2$s"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:323
+@@ -1584,7 +1584,7 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:455
+ #, c-format
+-msgid "Could not open domain %s\n"
++msgid "Could not open domain %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:457
+@@ -1604,8 +1604,8 @@ msgid "Out of memory\n"
+ msgstr "Memória esgotada\n"
+
+ #: src/tools/tools_util.h:40
+-#, c-format
+-msgid "%s must be run as root\n"
++#, fuzzy, c-format
++msgid "%1$s must be run as root\n"
+ msgstr "%s tem de executar como root\n"
+
+ #: src/util/util.h:93
+diff --git a/po/ru.po b/po/ru.po
+index 15abf7ccab6b83331057f5e3d13c4848253dde96..a37381f9cd51fd92d2acc575d88d32720b27c173 100644
+--- a/po/ru.po
++++ b/po/ru.po
+@@ -7,7 +7,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: SSSD\n"
+ "Report-Msgid-Bugs-To: sssd-devel at lists.fedorahosted.org\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0400\n"
++"POT-Creation-Date: 2012-05-22 09:33-0400\n"
+ "PO-Revision-Date: 2012-04-20 16:09+0000\n"
+ "Last-Translator: sgallagh <sgallagh at redhat.com>\n"
+ "Language-Team: Russian <trans-ru at lists.fedoraproject.org>\n"
+@@ -177,7 +177,7 @@ msgid ""
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:88
+-msgid "Whether to hash host names and adresses in the known_hosts file"
++msgid "Whether to hash host names and addresses in the known_hosts file"
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:91
+@@ -998,13 +998,13 @@ msgstr ", срок действия вашего кэшированного па
+
+ #: src/sss_client/pam_sss.c:639
+ #, c-format
+-msgid "Your password has expired. You have %d grace login(s) remaining."
++msgid "Your password has expired. You have %1$d grace login(s) remaining."
+ msgstr ""
+
+ #: src/sss_client/pam_sss.c:685
+-#, c-format
+-msgid "Your password will expire in %d %s."
+-msgstr ""
++#, fuzzy, c-format
++msgid "Your password will expire in %1$d %2$s."
++msgstr ", срок действия вашего кэшированного пароль истечёт:"
+
+ #: src/sss_client/pam_sss.c:734
+ msgid "Authentication is denied until: "
+@@ -1192,8 +1192,8 @@ msgid "Groups must be in the same domain as user\n"
+ msgstr "Группы должны быть в том же домене, что и пользователь\n"
+
+ #: src/tools/sss_useradd.c:153
+-#, c-format
+-msgid "Cannot find group %s in local domain\n"
++#, fuzzy, c-format
++msgid "Cannot find group %1$s in local domain\n"
+ msgstr "Не удалось найти группу %s в локальном домене\n"
+
+ #: src/tools/sss_useradd.c:168 src/tools/sss_userdel.c:214
+@@ -1219,13 +1219,13 @@ msgstr ""
+ "скелетной директории выполнено не будет\n"
+
+ #: src/tools/sss_useradd.c:232
+-#, c-format
+-msgid "Cannot create user's home directory: %s\n"
++#, fuzzy, c-format
++msgid "Cannot create user's home directory: %1$s\n"
+ msgstr "Не удалось создать домашний каталог пользователя: %s\n"
+
+ #: src/tools/sss_useradd.c:243
+-#, c-format
+-msgid "Cannot create user's mail spool: %s\n"
++#, fuzzy, c-format
++msgid "Cannot create user's mail spool: %1$s\n"
+ msgstr "Не удалось создать пользовательскую почтовую очередь: %s\n"
+
+ #: src/tools/sss_useradd.c:255
+@@ -1269,8 +1269,8 @@ msgid "Specify group to delete\n"
+ msgstr "Укажите группу для удаления\n"
+
+ #: src/tools/sss_groupdel.c:101
+-#, c-format
+-msgid "Group %s is outside the defined ID range for domain\n"
++#, fuzzy, c-format
++msgid "Group %1$s is outside the defined ID range for domain\n"
+ msgstr "Группа %s находится вне назначенного для домена диапазона ID\n"
+
+ #: src/tools/sss_groupdel.c:115
+@@ -1316,9 +1316,9 @@ msgstr ""
+
+ #: src/tools/sss_groupmod.c:155 src/tools/sss_groupmod.c:182
+ #: src/tools/sss_usermod.c:176 src/tools/sss_usermod.c:203
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+-"Cannot find group %s in local domain, only groups in local domain are "
++"Cannot find group %1$s in local domain, only groups in local domain are "
+ "allowed\n"
+ msgstr ""
+ "Не удалось найти группу %s в локальном домене, разрешены только группы "
+@@ -1338,8 +1338,8 @@ msgid "Transaction error. Could not modify group.\n"
+ msgstr "Ошибка в транзакции. Не удалось изменить группу.\n"
+
+ #: src/tools/sss_groupshow.c:562
+-#, c-format
+-msgid "%s%sGroup: %s\n"
++#, fuzzy, c-format
++msgid "%1$s%2$sGroup: %3$s\n"
+ msgstr "%s%sГруппа: %s\n"
+
+ #: src/tools/sss_groupshow.c:563
+@@ -1347,27 +1347,29 @@ msgid "Magic Private "
+ msgstr "Magic Private"
+
+ #: src/tools/sss_groupshow.c:565
+-#, c-format
+-msgid "%sGID number: %d\n"
++#, fuzzy, c-format
++msgid "%1$sGID number: %2$d\n"
+ msgstr "%sНомер GID: %d\n"
+
+ #: src/tools/sss_groupshow.c:567
+-#, c-format
+-msgid "%sMember users: "
++#, fuzzy, c-format
++msgid "%1$sMember users: "
+ msgstr "%sПользователи: "
+
+ #: src/tools/sss_groupshow.c:574
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+ "\n"
+-"%sIs a member of: "
++"%1$sIs a member of: "
+ msgstr ""
++"\n"
++"%sГруппы-участники: "
+
+ #: src/tools/sss_groupshow.c:581
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+ "\n"
+-"%sMember groups: "
++"%1$sMember groups: "
+ msgstr ""
+ "\n"
+ "%sГруппы-участники: "
+@@ -1413,8 +1415,8 @@ msgid "Specify user to delete\n"
+ msgstr "Укажите пользователя для удаления\n"
+
+ #: src/tools/sss_userdel.c:230
+-#, c-format
+-msgid "User %s is outside the defined ID range for domain\n"
++#, fuzzy, c-format
++msgid "User %1$s is outside the defined ID range for domain\n"
+ msgstr "Пользователь %s находится вне определённого диапазона ID для домена\n"
+
+ #: src/tools/sss_userdel.c:255
+@@ -1423,7 +1425,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:267
+ #, c-format
+-msgid "WARNING: The user (uid %lu) was still logged in when deleted.\n"
++msgid "WARNING: The user (uid %1$lu) was still logged in when deleted.\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:272
+@@ -1436,7 +1438,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:284
+ #, c-format
+-msgid "The post-delete command failed: %s\n"
++msgid "The post-delete command failed: %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:296
+@@ -1445,8 +1447,8 @@ msgstr ""
+ "Домашняя директория не удалена — пользователь не является её владельцем\n"
+
+ #: src/tools/sss_userdel.c:298
+-#, c-format
+-msgid "Cannot remove homedir: %s\n"
++#, fuzzy, c-format
++msgid "Cannot remove homedir: %1$s\n"
+ msgstr "Не удалось удалить домашнюю директорию: %s\n"
+
+ #: src/tools/sss_userdel.c:309
+@@ -1510,22 +1512,22 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:172
+ #, c-format
+-msgid "No such %s named %s, skipping\n"
++msgid "No such %1$s named %2$s, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:175
+ #, c-format
+-msgid "No objects of type %s in the cache, skipping\n"
++msgid "No objects of type %1$s in the cache, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:187
+ #, c-format
+-msgid "Couldn't invalidate %s"
++msgid "Couldn't invalidate %1$s"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:194
+ #, c-format
+-msgid "Couldn't invalidate %s %s"
++msgid "Couldn't invalidate %1$s %2$s"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:323
+@@ -1578,7 +1580,7 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:455
+ #, c-format
+-msgid "Could not open domain %s\n"
++msgid "Could not open domain %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:457
+@@ -1598,8 +1600,8 @@ msgid "Out of memory\n"
+ msgstr "Недостаточно памяти\n"
+
+ #: src/tools/tools_util.h:40
+-#, c-format
+-msgid "%s must be run as root\n"
++#, fuzzy, c-format
++msgid "%1$s must be run as root\n"
+ msgstr "%s должно выполняться от имени root\n"
+
+ #: src/util/util.h:93
+diff --git a/po/sssd.pot b/po/sssd.pot
+index 547053bb21bf829235998b9a4672d4fdd315773a..81da5586d0bf1fd534b52d9663d37882fdc140aa 100644
+--- a/po/sssd.pot
++++ b/po/sssd.pot
+@@ -8,7 +8,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+ "Report-Msgid-Bugs-To: sssd-devel at lists.fedorahosted.org\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0400\n"
++"POT-Creation-Date: 2012-05-22 09:33-0400\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL at li.org>\n"
+@@ -172,7 +172,7 @@ msgid ""
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:88
+-msgid "Whether to hash host names and adresses in the known_hosts file"
++msgid "Whether to hash host names and addresses in the known_hosts file"
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:91
+@@ -986,12 +986,12 @@ msgstr ""
+
+ #: src/sss_client/pam_sss.c:639
+ #, c-format
+-msgid "Your password has expired. You have %d grace login(s) remaining."
++msgid "Your password has expired. You have %1$d grace login(s) remaining."
+ msgstr ""
+
+ #: src/sss_client/pam_sss.c:685
+ #, c-format
+-msgid "Your password will expire in %d %s."
++msgid "Your password will expire in %1$d %2$s."
+ msgstr ""
+
+ #: src/sss_client/pam_sss.c:734
+@@ -1181,7 +1181,7 @@ msgstr ""
+
+ #: src/tools/sss_useradd.c:153
+ #, c-format
+-msgid "Cannot find group %s in local domain\n"
++msgid "Cannot find group %1$s in local domain\n"
+ msgstr ""
+
+ #: src/tools/sss_useradd.c:168 src/tools/sss_userdel.c:214
+@@ -1206,12 +1206,12 @@ msgstr ""
+
+ #: src/tools/sss_useradd.c:232
+ #, c-format
+-msgid "Cannot create user's home directory: %s\n"
++msgid "Cannot create user's home directory: %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_useradd.c:243
+ #, c-format
+-msgid "Cannot create user's mail spool: %s\n"
++msgid "Cannot create user's mail spool: %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_useradd.c:255
+@@ -1256,7 +1256,7 @@ msgstr ""
+
+ #: src/tools/sss_groupdel.c:101
+ #, c-format
+-msgid "Group %s is outside the defined ID range for domain\n"
++msgid "Group %1$s is outside the defined ID range for domain\n"
+ msgstr ""
+
+ #: src/tools/sss_groupdel.c:115
+@@ -1299,7 +1299,7 @@ msgstr ""
+ #: src/tools/sss_usermod.c:176 src/tools/sss_usermod.c:203
+ #, c-format
+ msgid ""
+-"Cannot find group %s in local domain, only groups in local domain are "
++"Cannot find group %1$s in local domain, only groups in local domain are "
+ "allowed\n"
+ msgstr ""
+
+@@ -1317,7 +1317,7 @@ msgstr ""
+
+ #: src/tools/sss_groupshow.c:562
+ #, c-format
+-msgid "%s%sGroup: %s\n"
++msgid "%1$s%2$sGroup: %3$s\n"
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:563
+@@ -1326,26 +1326,26 @@ msgstr ""
+
+ #: src/tools/sss_groupshow.c:565
+ #, c-format
+-msgid "%sGID number: %d\n"
++msgid "%1$sGID number: %2$d\n"
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:567
+ #, c-format
+-msgid "%sMember users: "
++msgid "%1$sMember users: "
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:574
+ #, c-format
+ msgid ""
+ "\n"
+-"%sIs a member of: "
++"%1$sIs a member of: "
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:581
+ #, c-format
+ msgid ""
+ "\n"
+-"%sMember groups: "
++"%1$sMember groups: "
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:617
+@@ -1388,7 +1388,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:230
+ #, c-format
+-msgid "User %s is outside the defined ID range for domain\n"
++msgid "User %1$s is outside the defined ID range for domain\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:255
+@@ -1397,7 +1397,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:267
+ #, c-format
+-msgid "WARNING: The user (uid %lu) was still logged in when deleted.\n"
++msgid "WARNING: The user (uid %1$lu) was still logged in when deleted.\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:272
+@@ -1410,7 +1410,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:284
+ #, c-format
+-msgid "The post-delete command failed: %s\n"
++msgid "The post-delete command failed: %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:296
+@@ -1419,7 +1419,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:298
+ #, c-format
+-msgid "Cannot remove homedir: %s\n"
++msgid "Cannot remove homedir: %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:309
+@@ -1479,22 +1479,22 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:172
+ #, c-format
+-msgid "No such %s named %s, skipping\n"
++msgid "No such %1$s named %2$s, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:175
+ #, c-format
+-msgid "No objects of type %s in the cache, skipping\n"
++msgid "No objects of type %1$s in the cache, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:187
+ #, c-format
+-msgid "Couldn't invalidate %s"
++msgid "Couldn't invalidate %1$s"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:194
+ #, c-format
+-msgid "Couldn't invalidate %s %s"
++msgid "Couldn't invalidate %1$s %2$s"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:323
+@@ -1547,7 +1547,7 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:455
+ #, c-format
+-msgid "Could not open domain %s\n"
++msgid "Could not open domain %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:457
+@@ -1568,7 +1568,7 @@ msgstr ""
+
+ #: src/tools/tools_util.h:40
+ #, c-format
+-msgid "%s must be run as root\n"
++msgid "%1$s must be run as root\n"
+ msgstr ""
+
+ #: src/util/util.h:93
+diff --git a/po/sv.po b/po/sv.po
+index 1a3356580f4b51c1ce87a02d9b187362beeda756..eb75edbe1907067215a1bbe57705d4cf8bc457f6 100644
+--- a/po/sv.po
++++ b/po/sv.po
+@@ -7,7 +7,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: SSSD\n"
+ "Report-Msgid-Bugs-To: sssd-devel at lists.fedorahosted.org\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0400\n"
++"POT-Creation-Date: 2012-05-22 09:33-0400\n"
+ "PO-Revision-Date: 2012-04-20 16:09+0000\n"
+ "Last-Translator: sgallagh <sgallagh at redhat.com>\n"
+ "Language-Team: Swedish (http://www.transifex.net/projects/p/fedora/language/"
+@@ -174,7 +174,7 @@ msgid ""
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:88
+-msgid "Whether to hash host names and adresses in the known_hosts file"
++msgid "Whether to hash host names and addresses in the known_hosts file"
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:91
+@@ -989,12 +989,12 @@ msgstr ""
+
+ #: src/sss_client/pam_sss.c:639
+ #, c-format
+-msgid "Your password has expired. You have %d grace login(s) remaining."
++msgid "Your password has expired. You have %1$d grace login(s) remaining."
+ msgstr ""
+
+ #: src/sss_client/pam_sss.c:685
+ #, c-format
+-msgid "Your password will expire in %d %s."
++msgid "Your password will expire in %1$d %2$s."
+ msgstr ""
+
+ #: src/sss_client/pam_sss.c:734
+@@ -1183,8 +1183,8 @@ msgid "Groups must be in the same domain as user\n"
+ msgstr "Grupper måste finnas i samma domän som användaren\n"
+
+ #: src/tools/sss_useradd.c:153
+-#, c-format
+-msgid "Cannot find group %s in local domain\n"
++#, fuzzy, c-format
++msgid "Cannot find group %1$s in local domain\n"
+ msgstr "Hittar inte grupp %s i den lokala domänen\n"
+
+ #: src/tools/sss_useradd.c:168 src/tools/sss_userdel.c:214
+@@ -1210,13 +1210,13 @@ msgstr ""
+ "skelettkatalogen\n"
+
+ #: src/tools/sss_useradd.c:232
+-#, c-format
+-msgid "Cannot create user's home directory: %s\n"
++#, fuzzy, c-format
++msgid "Cannot create user's home directory: %1$s\n"
+ msgstr "Kan inte skapa användarens hemkatalog: %s\n"
+
+ #: src/tools/sss_useradd.c:243
+-#, c-format
+-msgid "Cannot create user's mail spool: %s\n"
++#, fuzzy, c-format
++msgid "Cannot create user's mail spool: %1$s\n"
+ msgstr "Kan inte skapa användarens brevlåda: %s\n"
+
+ #: src/tools/sss_useradd.c:255
+@@ -1260,8 +1260,8 @@ msgid "Specify group to delete\n"
+ msgstr "Ange grupp att ta bort\n"
+
+ #: src/tools/sss_groupdel.c:101
+-#, c-format
+-msgid "Group %s is outside the defined ID range for domain\n"
++#, fuzzy, c-format
++msgid "Group %1$s is outside the defined ID range for domain\n"
+ msgstr "Grupp %s är utanför det definierade ID-intervallet för domänen\n"
+
+ #: src/tools/sss_groupdel.c:115
+@@ -1306,9 +1306,9 @@ msgstr "Medlemsgrupper måster ligga i samma domän som föräldragrupper\n"
+
+ #: src/tools/sss_groupmod.c:155 src/tools/sss_groupmod.c:182
+ #: src/tools/sss_usermod.c:176 src/tools/sss_usermod.c:203
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+-"Cannot find group %s in local domain, only groups in local domain are "
++"Cannot find group %1$s in local domain, only groups in local domain are "
+ "allowed\n"
+ msgstr ""
+ "Kan inte hitta grupp %s i den lokala domänen, endast grupper i den lokala "
+@@ -1331,7 +1331,7 @@ msgstr "Transaktionsfel. Det gick inte att ändra gruppen.\n"
+
+ #: src/tools/sss_groupshow.c:562
+ #, c-format
+-msgid "%s%sGroup: %s\n"
++msgid "%1$s%2$sGroup: %3$s\n"
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:563
+@@ -1340,26 +1340,26 @@ msgstr ""
+
+ #: src/tools/sss_groupshow.c:565
+ #, c-format
+-msgid "%sGID number: %d\n"
++msgid "%1$sGID number: %2$d\n"
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:567
+ #, c-format
+-msgid "%sMember users: "
++msgid "%1$sMember users: "
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:574
+ #, c-format
+ msgid ""
+ "\n"
+-"%sIs a member of: "
++"%1$sIs a member of: "
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:581
+ #, c-format
+ msgid ""
+ "\n"
+-"%sMember groups: "
++"%1$sMember groups: "
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:617
+@@ -1401,8 +1401,8 @@ msgid "Specify user to delete\n"
+ msgstr "Ange användare att ta bort\n"
+
+ #: src/tools/sss_userdel.c:230
+-#, c-format
+-msgid "User %s is outside the defined ID range for domain\n"
++#, fuzzy, c-format
++msgid "User %1$s is outside the defined ID range for domain\n"
+ msgstr "Användare %s är utanför det definierade ID-intervallet för domänen\n"
+
+ #: src/tools/sss_userdel.c:255
+@@ -1411,7 +1411,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:267
+ #, c-format
+-msgid "WARNING: The user (uid %lu) was still logged in when deleted.\n"
++msgid "WARNING: The user (uid %1$lu) was still logged in when deleted.\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:272
+@@ -1424,7 +1424,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:284
+ #, c-format
+-msgid "The post-delete command failed: %s\n"
++msgid "The post-delete command failed: %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:296
+@@ -1432,8 +1432,8 @@ msgid "Not removing home dir - not owned by user\n"
+ msgstr "Tar inte bort hemkatalogen - ägs inte av användaren\n"
+
+ #: src/tools/sss_userdel.c:298
+-#, c-format
+-msgid "Cannot remove homedir: %s\n"
++#, fuzzy, c-format
++msgid "Cannot remove homedir: %1$s\n"
+ msgstr "Kan inte ta bort hemkatalogen: %s\n"
+
+ #: src/tools/sss_userdel.c:309
+@@ -1499,22 +1499,22 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:172
+ #, c-format
+-msgid "No such %s named %s, skipping\n"
++msgid "No such %1$s named %2$s, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:175
+ #, c-format
+-msgid "No objects of type %s in the cache, skipping\n"
++msgid "No objects of type %1$s in the cache, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:187
+ #, c-format
+-msgid "Couldn't invalidate %s"
++msgid "Couldn't invalidate %1$s"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:194
+ #, c-format
+-msgid "Couldn't invalidate %s %s"
++msgid "Couldn't invalidate %1$s %2$s"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:323
+@@ -1567,7 +1567,7 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:455
+ #, c-format
+-msgid "Could not open domain %s\n"
++msgid "Could not open domain %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:457
+@@ -1587,8 +1587,8 @@ msgid "Out of memory\n"
+ msgstr "Slut på minne\n"
+
+ #: src/tools/tools_util.h:40
+-#, c-format
+-msgid "%s must be run as root\n"
++#, fuzzy, c-format
++msgid "%1$s must be run as root\n"
+ msgstr "%s måste köras som root\n"
+
+ #: src/util/util.h:93
+diff --git a/po/tg.po b/po/tg.po
+index 037ecf3e99127ba6bf1aa24551779f7286b7240b..d45ecfe3a0a9fe5040f57f9d6c0994fae1f56870 100644
+--- a/po/tg.po
++++ b/po/tg.po
+@@ -7,7 +7,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: SSSD\n"
+ "Report-Msgid-Bugs-To: sssd-devel at lists.fedorahosted.org\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0400\n"
++"POT-Creation-Date: 2012-05-22 09:33-0400\n"
+ "PO-Revision-Date: 2012-04-20 16:09+0000\n"
+ "Last-Translator: sgallagh <sgallagh at redhat.com>\n"
+ "Language-Team: Tajik (http://www.transifex.net/projects/p/fedora/language/"
+@@ -173,7 +173,7 @@ msgid ""
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:88
+-msgid "Whether to hash host names and adresses in the known_hosts file"
++msgid "Whether to hash host names and addresses in the known_hosts file"
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:91
+@@ -988,12 +988,12 @@ msgstr ""
+
+ #: src/sss_client/pam_sss.c:639
+ #, c-format
+-msgid "Your password has expired. You have %d grace login(s) remaining."
++msgid "Your password has expired. You have %1$d grace login(s) remaining."
+ msgstr ""
+
+ #: src/sss_client/pam_sss.c:685
+ #, c-format
+-msgid "Your password will expire in %d %s."
++msgid "Your password will expire in %1$d %2$s."
+ msgstr ""
+
+ #: src/sss_client/pam_sss.c:734
+@@ -1183,7 +1183,7 @@ msgstr ""
+
+ #: src/tools/sss_useradd.c:153
+ #, c-format
+-msgid "Cannot find group %s in local domain\n"
++msgid "Cannot find group %1$s in local domain\n"
+ msgstr ""
+
+ #: src/tools/sss_useradd.c:168 src/tools/sss_userdel.c:214
+@@ -1208,12 +1208,12 @@ msgstr ""
+
+ #: src/tools/sss_useradd.c:232
+ #, c-format
+-msgid "Cannot create user's home directory: %s\n"
++msgid "Cannot create user's home directory: %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_useradd.c:243
+ #, c-format
+-msgid "Cannot create user's mail spool: %s\n"
++msgid "Cannot create user's mail spool: %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_useradd.c:255
+@@ -1258,7 +1258,7 @@ msgstr ""
+
+ #: src/tools/sss_groupdel.c:101
+ #, c-format
+-msgid "Group %s is outside the defined ID range for domain\n"
++msgid "Group %1$s is outside the defined ID range for domain\n"
+ msgstr ""
+
+ #: src/tools/sss_groupdel.c:115
+@@ -1301,7 +1301,7 @@ msgstr ""
+ #: src/tools/sss_usermod.c:176 src/tools/sss_usermod.c:203
+ #, c-format
+ msgid ""
+-"Cannot find group %s in local domain, only groups in local domain are "
++"Cannot find group %1$s in local domain, only groups in local domain are "
+ "allowed\n"
+ msgstr ""
+
+@@ -1319,7 +1319,7 @@ msgstr ""
+
+ #: src/tools/sss_groupshow.c:562
+ #, c-format
+-msgid "%s%sGroup: %s\n"
++msgid "%1$s%2$sGroup: %3$s\n"
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:563
+@@ -1328,26 +1328,26 @@ msgstr ""
+
+ #: src/tools/sss_groupshow.c:565
+ #, c-format
+-msgid "%sGID number: %d\n"
++msgid "%1$sGID number: %2$d\n"
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:567
+ #, c-format
+-msgid "%sMember users: "
++msgid "%1$sMember users: "
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:574
+ #, c-format
+ msgid ""
+ "\n"
+-"%sIs a member of: "
++"%1$sIs a member of: "
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:581
+ #, c-format
+ msgid ""
+ "\n"
+-"%sMember groups: "
++"%1$sMember groups: "
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:617
+@@ -1390,7 +1390,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:230
+ #, c-format
+-msgid "User %s is outside the defined ID range for domain\n"
++msgid "User %1$s is outside the defined ID range for domain\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:255
+@@ -1399,7 +1399,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:267
+ #, c-format
+-msgid "WARNING: The user (uid %lu) was still logged in when deleted.\n"
++msgid "WARNING: The user (uid %1$lu) was still logged in when deleted.\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:272
+@@ -1412,7 +1412,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:284
+ #, c-format
+-msgid "The post-delete command failed: %s\n"
++msgid "The post-delete command failed: %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:296
+@@ -1421,7 +1421,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:298
+ #, c-format
+-msgid "Cannot remove homedir: %s\n"
++msgid "Cannot remove homedir: %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:309
+@@ -1481,22 +1481,22 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:172
+ #, c-format
+-msgid "No such %s named %s, skipping\n"
++msgid "No such %1$s named %2$s, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:175
+ #, c-format
+-msgid "No objects of type %s in the cache, skipping\n"
++msgid "No objects of type %1$s in the cache, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:187
+ #, c-format
+-msgid "Couldn't invalidate %s"
++msgid "Couldn't invalidate %1$s"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:194
+ #, c-format
+-msgid "Couldn't invalidate %s %s"
++msgid "Couldn't invalidate %1$s %2$s"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:323
+@@ -1549,7 +1549,7 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:455
+ #, c-format
+-msgid "Could not open domain %s\n"
++msgid "Could not open domain %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:457
+@@ -1570,7 +1570,7 @@ msgstr "Берун аз хотира\n"
+
+ #: src/tools/tools_util.h:40
+ #, c-format
+-msgid "%s must be run as root\n"
++msgid "%1$s must be run as root\n"
+ msgstr ""
+
+ #: src/util/util.h:93
+diff --git a/po/uk.po b/po/uk.po
+index f100049cc1049e13c529fcc9e45e98803c600e8f..9c210ed4219368b3399bfbe75ed687d07b40f8a3 100644
+--- a/po/uk.po
++++ b/po/uk.po
+@@ -9,7 +9,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: SSSD\n"
+ "Report-Msgid-Bugs-To: sssd-devel at lists.fedorahosted.org\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0400\n"
++"POT-Creation-Date: 2012-05-22 09:33-0400\n"
+ "PO-Revision-Date: 2012-04-20 16:09+0000\n"
+ "Last-Translator: Yuri Chornoivan <yurchor at ukr.net>\n"
+ "Language-Team: Ukrainian <trans-uk at lists.fedoraproject.org>\n"
+@@ -196,7 +196,7 @@ msgstr ""
+ "запит до служби буде надіслано знову."
+
+ #: src/config/SSSDConfig.py:88
+-msgid "Whether to hash host names and adresses in the known_hosts file"
++msgid "Whether to hash host names and addresses in the known_hosts file"
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:91
+@@ -1038,13 +1038,13 @@ msgid ", your cached password will expire at: "
+ msgstr ", строк дії вашого кешованого пароля завершиться: "
+
+ #: src/sss_client/pam_sss.c:639
+-#, c-format
+-msgid "Your password has expired. You have %d grace login(s) remaining."
++#, fuzzy, c-format
++msgid "Your password has expired. You have %1$d grace login(s) remaining."
+ msgstr "Строк дії вашого пароля вичерпано. Залишилося %d резервних входи."
+
+ #: src/sss_client/pam_sss.c:685
+-#, c-format
+-msgid "Your password will expire in %d %s."
++#, fuzzy, c-format
++msgid "Your password will expire in %1$d %2$s."
+ msgstr "Строк дії вашого пароля завершиться за %d %s."
+
+ #: src/sss_client/pam_sss.c:734
+@@ -1233,8 +1233,8 @@ msgid "Groups must be in the same domain as user\n"
+ msgstr "Групи мають належати до того самого домену, що і користувач\n"
+
+ #: src/tools/sss_useradd.c:153
+-#, c-format
+-msgid "Cannot find group %s in local domain\n"
++#, fuzzy, c-format
++msgid "Cannot find group %1$s in local domain\n"
+ msgstr "Не вдалося знайти групу %s у локальному домені\n"
+
+ #: src/tools/sss_useradd.c:168 src/tools/sss_userdel.c:214
+@@ -1261,13 +1261,13 @@ msgstr ""
+ "виконуватиметься\n"
+
+ #: src/tools/sss_useradd.c:232
+-#, c-format
+-msgid "Cannot create user's home directory: %s\n"
++#, fuzzy, c-format
++msgid "Cannot create user's home directory: %1$s\n"
+ msgstr "Не вдалося створити домашній каталог користувача: %s\n"
+
+ #: src/tools/sss_useradd.c:243
+-#, c-format
+-msgid "Cannot create user's mail spool: %s\n"
++#, fuzzy, c-format
++msgid "Cannot create user's mail spool: %1$s\n"
+ msgstr "Не вдалося створити поштовий буфер користувача: %s\n"
+
+ #: src/tools/sss_useradd.c:255
+@@ -1314,8 +1314,8 @@ msgid "Specify group to delete\n"
+ msgstr "Вкажіть групу, яку слід вилучити\n"
+
+ #: src/tools/sss_groupdel.c:101
+-#, c-format
+-msgid "Group %s is outside the defined ID range for domain\n"
++#, fuzzy, c-format
++msgid "Group %1$s is outside the defined ID range for domain\n"
+ msgstr "Група %s не належить визначеному діапазону ідентифікаторів домену\n"
+
+ #: src/tools/sss_groupdel.c:115
+@@ -1361,9 +1361,9 @@ msgstr ""
+
+ #: src/tools/sss_groupmod.c:155 src/tools/sss_groupmod.c:182
+ #: src/tools/sss_usermod.c:176 src/tools/sss_usermod.c:203
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+-"Cannot find group %s in local domain, only groups in local domain are "
++"Cannot find group %1$s in local domain, only groups in local domain are "
+ "allowed\n"
+ msgstr ""
+ "Не вдалося знайти групу %s у локальному домені, можна використовувати лише "
+@@ -1385,8 +1385,8 @@ msgid "Transaction error. Could not modify group.\n"
+ msgstr "Помилка під час виконання операції Не вдалося змінити групу.\n"
+
+ #: src/tools/sss_groupshow.c:562
+-#, c-format
+-msgid "%s%sGroup: %s\n"
++#, fuzzy, c-format
++msgid "%1$s%2$sGroup: %3$s\n"
+ msgstr "%s%sГрупа: %s\n"
+
+ #: src/tools/sss_groupshow.c:563
+@@ -1394,29 +1394,29 @@ msgid "Magic Private "
+ msgstr "Магічна приватна "
+
+ #: src/tools/sss_groupshow.c:565
+-#, c-format
+-msgid "%sGID number: %d\n"
++#, fuzzy, c-format
++msgid "%1$sGID number: %2$d\n"
+ msgstr "%sНомер GID: %d\n"
+
+ #: src/tools/sss_groupshow.c:567
+-#, c-format
+-msgid "%sMember users: "
++#, fuzzy, c-format
++msgid "%1$sMember users: "
+ msgstr "%sКористувачі-учасники: "
+
+ #: src/tools/sss_groupshow.c:574
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+ "\n"
+-"%sIs a member of: "
++"%1$sIs a member of: "
+ msgstr ""
+ "\n"
+ "%sє учасником: "
+
+ #: src/tools/sss_groupshow.c:581
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+ "\n"
+-"%sMember groups: "
++"%1$sMember groups: "
+ msgstr ""
+ "\n"
+ "%sГрупи-учасники: "
+@@ -1462,8 +1462,8 @@ msgid "Specify user to delete\n"
+ msgstr "Вкажіть користувача, запис якого слід вилучити\n"
+
+ #: src/tools/sss_userdel.c:230
+-#, c-format
+-msgid "User %s is outside the defined ID range for domain\n"
++#, fuzzy, c-format
++msgid "User %1$s is outside the defined ID range for domain\n"
+ msgstr ""
+ "Користувач %s не належить визначеному діапазону ідентифікаторів домену\n"
+
+@@ -1472,8 +1472,8 @@ msgid "Cannot reset SELinux login context\n"
+ msgstr "Не вдалося відновити початковий контекст входу SELinux\n"
+
+ #: src/tools/sss_userdel.c:267
+-#, c-format
+-msgid "WARNING: The user (uid %lu) was still logged in when deleted.\n"
++#, fuzzy, c-format
++msgid "WARNING: The user (uid %1$lu) was still logged in when deleted.\n"
+ msgstr ""
+ "ПОПЕРЕДЖЕННЯ: користувач (uid %lu) все ще працював у системі на час "
+ "вилучення його запису.\n"
+@@ -1488,8 +1488,8 @@ msgid "Error while checking if the user was logged in\n"
+ msgstr "Помилка під час перевірки входу користувача до системи\n"
+
+ #: src/tools/sss_userdel.c:284
+-#, c-format
+-msgid "The post-delete command failed: %s\n"
++#, fuzzy, c-format
++msgid "The post-delete command failed: %1$s\n"
+ msgstr "Помилка команди, яку слід було виконати після вилучення запису: %s\n"
+
+ #: src/tools/sss_userdel.c:296
+@@ -1497,8 +1497,8 @@ msgid "Not removing home dir - not owned by user\n"
+ msgstr "Домашній каталог не буде вилучено. Він не належить користувачеві.\n"
+
+ #: src/tools/sss_userdel.c:298
+-#, c-format
+-msgid "Cannot remove homedir: %s\n"
++#, fuzzy, c-format
++msgid "Cannot remove homedir: %1$s\n"
+ msgstr "Не вдалося вилучити домашній каталог: %s\n"
+
+ #: src/tools/sss_userdel.c:309
+@@ -1566,22 +1566,22 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:172
+ #, c-format
+-msgid "No such %s named %s, skipping\n"
++msgid "No such %1$s named %2$s, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:175
+ #, c-format
+-msgid "No objects of type %s in the cache, skipping\n"
++msgid "No objects of type %1$s in the cache, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:187
+-#, c-format
+-msgid "Couldn't invalidate %s"
++#, fuzzy, c-format
++msgid "Couldn't invalidate %1$s"
+ msgstr "Не вдалося скасувати визначення %s"
+
+ #: src/tools/sss_cache.c:194
+-#, c-format
+-msgid "Couldn't invalidate %s %s"
++#, fuzzy, c-format
++msgid "Couldn't invalidate %1$s %2$s"
+ msgstr "Не вдалося скасувати визначення %s %s"
+
+ #: src/tools/sss_cache.c:323
+@@ -1638,7 +1638,7 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:455
+ #, c-format
+-msgid "Could not open domain %s\n"
++msgid "Could not open domain %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:457
+@@ -1658,8 +1658,8 @@ msgid "Out of memory\n"
+ msgstr "Не вистачає пам'яті\n"
+
+ #: src/tools/tools_util.h:40
+-#, c-format
+-msgid "%s must be run as root\n"
++#, fuzzy, c-format
++msgid "%1$s must be run as root\n"
+ msgstr "%s слід виконувати від імені користувача root\n"
+
+ #: src/util/util.h:93
+diff --git a/po/zh_TW.po b/po/zh_TW.po
+index 7c253a4a41a92fc997bb3dfd7247d5fca1c54335..8b981465fab13c91e8e3c062f909eabced5ff36e 100644
+--- a/po/zh_TW.po
++++ b/po/zh_TW.po
+@@ -7,7 +7,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: SSSD\n"
+ "Report-Msgid-Bugs-To: sssd-devel at lists.fedorahosted.org\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0400\n"
++"POT-Creation-Date: 2012-05-22 09:33-0400\n"
+ "PO-Revision-Date: 2012-04-20 16:09+0000\n"
+ "Last-Translator: sgallagh <sgallagh at redhat.com>\n"
+ "Language-Team: Chinese (Taiwan) <trans-zh_TW at lists.fedoraproject.org>\n"
+@@ -172,7 +172,7 @@ msgid ""
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:88
+-msgid "Whether to hash host names and adresses in the known_hosts file"
++msgid "Whether to hash host names and addresses in the known_hosts file"
+ msgstr ""
+
+ #: src/config/SSSDConfig.py:91
+@@ -986,13 +986,13 @@ msgstr ",您快取的密碼將在此刻過期:"
+
+ #: src/sss_client/pam_sss.c:639
+ #, c-format
+-msgid "Your password has expired. You have %d grace login(s) remaining."
++msgid "Your password has expired. You have %1$d grace login(s) remaining."
+ msgstr ""
+
+ #: src/sss_client/pam_sss.c:685
+-#, c-format
+-msgid "Your password will expire in %d %s."
+-msgstr ""
++#, fuzzy, c-format
++msgid "Your password will expire in %1$d %2$s."
++msgstr ",您快取的密碼將在此刻過期:"
+
+ #: src/sss_client/pam_sss.c:734
+ msgid "Authentication is denied until: "
+@@ -1180,8 +1180,8 @@ msgid "Groups must be in the same domain as user\n"
+ msgstr "群組必須位於與使用者相同的網域內\n"
+
+ #: src/tools/sss_useradd.c:153
+-#, c-format
+-msgid "Cannot find group %s in local domain\n"
++#, fuzzy, c-format
++msgid "Cannot find group %1$s in local domain\n"
+ msgstr "在本機網域內找不到 %s 群組\n"
+
+ #: src/tools/sss_useradd.c:168 src/tools/sss_userdel.c:214
+@@ -1205,13 +1205,13 @@ msgid "User's home directory already exists, not copying data from skeldir\n"
+ msgstr "使用者的家目錄已經存在,不會從骨幹目錄複製資料\n"
+
+ #: src/tools/sss_useradd.c:232
+-#, c-format
+-msgid "Cannot create user's home directory: %s\n"
++#, fuzzy, c-format
++msgid "Cannot create user's home directory: %1$s\n"
+ msgstr "無法建立使用者的家目錄:%s\n"
+
+ #: src/tools/sss_useradd.c:243
+-#, c-format
+-msgid "Cannot create user's mail spool: %s\n"
++#, fuzzy, c-format
++msgid "Cannot create user's mail spool: %1$s\n"
+ msgstr "無法建立使用者的郵件 spool:%s\n"
+
+ #: src/tools/sss_useradd.c:255
+@@ -1255,9 +1255,9 @@ msgid "Specify group to delete\n"
+ msgstr "指定要刪除的群組\n"
+
+ #: src/tools/sss_groupdel.c:101
+-#, c-format
+-msgid "Group %s is outside the defined ID range for domain\n"
+-msgstr ""
++#, fuzzy, c-format
++msgid "Group %1$s is outside the defined ID range for domain\n"
++msgstr "使用者 %s 位於為網域所定義的 ID 範圍外\n"
+
+ #: src/tools/sss_groupdel.c:115
+ msgid ""
+@@ -1297,9 +1297,9 @@ msgstr "成員群組必須位於與親代群組相同的網域內\n"
+
+ #: src/tools/sss_groupmod.c:155 src/tools/sss_groupmod.c:182
+ #: src/tools/sss_usermod.c:176 src/tools/sss_usermod.c:203
+-#, c-format
++#, fuzzy, c-format
+ msgid ""
+-"Cannot find group %s in local domain, only groups in local domain are "
++"Cannot find group %1$s in local domain, only groups in local domain are "
+ "allowed\n"
+ msgstr "在本機網域內找不到 %s 群組,只許可本機網域內的群組\n"
+
+@@ -1316,8 +1316,8 @@ msgid "Transaction error. Could not modify group.\n"
+ msgstr "處理事項發生錯誤。無法修改群組。\n"
+
+ #: src/tools/sss_groupshow.c:562
+-#, c-format
+-msgid "%s%sGroup: %s\n"
++#, fuzzy, c-format
++msgid "%1$s%2$sGroup: %3$s\n"
+ msgstr "%s%s群組:%s\n"
+
+ #: src/tools/sss_groupshow.c:563
+@@ -1325,27 +1325,27 @@ msgid "Magic Private "
+ msgstr "魔法隱私"
+
+ #: src/tools/sss_groupshow.c:565
+-#, c-format
+-msgid "%sGID number: %d\n"
++#, fuzzy, c-format
++msgid "%1$sGID number: %2$d\n"
+ msgstr "%sGID 編號:%d\n"
+
+ #: src/tools/sss_groupshow.c:567
+ #, c-format
+-msgid "%sMember users: "
++msgid "%1$sMember users: "
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:574
+ #, c-format
+ msgid ""
+ "\n"
+-"%sIs a member of: "
++"%1$sIs a member of: "
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:581
+ #, c-format
+ msgid ""
+ "\n"
+-"%sMember groups: "
++"%1$sMember groups: "
+ msgstr ""
+
+ #: src/tools/sss_groupshow.c:617
+@@ -1387,8 +1387,8 @@ msgid "Specify user to delete\n"
+ msgstr "指定要刪除的使用者\n"
+
+ #: src/tools/sss_userdel.c:230
+-#, c-format
+-msgid "User %s is outside the defined ID range for domain\n"
++#, fuzzy, c-format
++msgid "User %1$s is outside the defined ID range for domain\n"
+ msgstr "使用者 %s 位於為網域所定義的 ID 範圍外\n"
+
+ #: src/tools/sss_userdel.c:255
+@@ -1397,7 +1397,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:267
+ #, c-format
+-msgid "WARNING: The user (uid %lu) was still logged in when deleted.\n"
++msgid "WARNING: The user (uid %1$lu) was still logged in when deleted.\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:272
+@@ -1410,7 +1410,7 @@ msgstr ""
+
+ #: src/tools/sss_userdel.c:284
+ #, c-format
+-msgid "The post-delete command failed: %s\n"
++msgid "The post-delete command failed: %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_userdel.c:296
+@@ -1418,8 +1418,8 @@ msgid "Not removing home dir - not owned by user\n"
+ msgstr "不會移除家目錄 - 並非由使用者所擁有\n"
+
+ #: src/tools/sss_userdel.c:298
+-#, c-format
+-msgid "Cannot remove homedir: %s\n"
++#, fuzzy, c-format
++msgid "Cannot remove homedir: %1$s\n"
+ msgstr "無法移除家目錄:%s\n"
+
+ #: src/tools/sss_userdel.c:309
+@@ -1479,22 +1479,22 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:172
+ #, c-format
+-msgid "No such %s named %s, skipping\n"
++msgid "No such %1$s named %2$s, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:175
+ #, c-format
+-msgid "No objects of type %s in the cache, skipping\n"
++msgid "No objects of type %1$s in the cache, skipping\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:187
+ #, c-format
+-msgid "Couldn't invalidate %s"
++msgid "Couldn't invalidate %1$s"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:194
+ #, c-format
+-msgid "Couldn't invalidate %s %s"
++msgid "Couldn't invalidate %1$s %2$s"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:323
+@@ -1547,7 +1547,7 @@ msgstr ""
+
+ #: src/tools/sss_cache.c:455
+ #, c-format
+-msgid "Could not open domain %s\n"
++msgid "Could not open domain %1$s\n"
+ msgstr ""
+
+ #: src/tools/sss_cache.c:457
+@@ -1567,8 +1567,8 @@ msgid "Out of memory\n"
+ msgstr "記憶體耗盡\n"
+
+ #: src/tools/tools_util.h:40
+-#, c-format
+-msgid "%s must be run as root\n"
++#, fuzzy, c-format
++msgid "%1$s must be run as root\n"
+ msgstr "%s 必須以 root 身分執行\n"
+
+ #: src/util/util.h:93
+diff --git a/src/man/po/cs.po b/src/man/po/cs.po
+index 086a85bb5acc019acc3df65dab150fcf011f294d..a93533bb85c37c74017834cec7c461c97a182eea 100644
+--- a/src/man/po/cs.po
++++ b/src/man/po/cs.po
+@@ -8,7 +8,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: SSSD\n"
+ "Report-Msgid-Bugs-To: sssd-devel at redhat.com\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0300\n"
++"POT-Creation-Date: 2012-05-22 09:33-0300\n"
+ "PO-Revision-Date: 2012-04-20 17:34+0000\n"
+ "Last-Translator: sgallagh <sgallagh at redhat.com>\n"
+ "Language-Team: Czech (http://www.transifex.net/projects/p/fedora/language/"
+@@ -825,7 +825,7 @@ msgstr ""
+ #: sssd.conf.5.xml:523
+ msgid ""
+ "The default shell to use if the provider does not return one during lookup. "
+-"This option supercedes any other shell options if it takes effect."
++"This option supersedes any other shell options if it takes effect."
+ msgstr ""
+
+ #. type: Content of: <reference><refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>
+@@ -1111,7 +1111,7 @@ msgstr ""
+ #. type: Content of: <reference><refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>
+ #: sssd.conf.5.xml:789
+ msgid ""
+-"Whether or not to hash host names and adresses in the managed known_hosts "
++"Whether or not to hash host names and addresses in the managed known_hosts "
+ "file."
+ msgstr ""
+
+@@ -7160,7 +7160,7 @@ msgstr ""
+ #. type: Content of: <refsect1><refsect2><refsect3><variablelist><varlistentry><listitem><para>
+ #: include/ldap_id_mapping.xml:85
+ msgid ""
+-"NOTE: This option is different from <quote>id_mn</quote> in that "
++"NOTE: This option is different from <quote>id_min</quote> in that "
+ "<quote>id_min</quote> acts to filter the output of requests to this domain, "
+ "whereas this option controls the range of ID assignment. This is a subtle "
+ "distinction, but the good general advice would be to have <quote>id_min</"
+diff --git a/src/man/po/es.po b/src/man/po/es.po
+index 1b8d0649bd40c5e1de2f89efd1a097e8457375a1..9e7f11441c05f4b305d4b24507423d48498f4027 100644
+--- a/src/man/po/es.po
++++ b/src/man/po/es.po
+@@ -11,7 +11,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: SSSD\n"
+ "Report-Msgid-Bugs-To: sssd-devel at redhat.com\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0300\n"
++"POT-Creation-Date: 2012-05-22 09:33-0300\n"
+ "PO-Revision-Date: 2012-04-20 17:34+0000\n"
+ "Last-Translator: sgallagh <sgallagh at redhat.com>\n"
+ "Language-Team: Spanish (Castilian) <trans-es at lists.fedoraproject.org>\n"
+@@ -916,7 +916,7 @@ msgstr "default_shell (cadena)"
+ #: sssd.conf.5.xml:523
+ msgid ""
+ "The default shell to use if the provider does not return one during lookup. "
+-"This option supercedes any other shell options if it takes effect."
++"This option supersedes any other shell options if it takes effect."
+ msgstr ""
+
+ #. type: Content of: <reference><refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>
+@@ -1212,7 +1212,7 @@ msgstr ""
+ #. type: Content of: <reference><refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>
+ #: sssd.conf.5.xml:789
+ msgid ""
+-"Whether or not to hash host names and adresses in the managed known_hosts "
++"Whether or not to hash host names and addresses in the managed known_hosts "
+ "file."
+ msgstr ""
+
+@@ -7564,7 +7564,7 @@ msgstr ""
+ #. type: Content of: <refsect1><refsect2><refsect3><variablelist><varlistentry><listitem><para>
+ #: include/ldap_id_mapping.xml:85
+ msgid ""
+-"NOTE: This option is different from <quote>id_mn</quote> in that "
++"NOTE: This option is different from <quote>id_min</quote> in that "
+ "<quote>id_min</quote> acts to filter the output of requests to this domain, "
+ "whereas this option controls the range of ID assignment. This is a subtle "
+ "distinction, but the good general advice would be to have <quote>id_min</"
+diff --git a/src/man/po/fr.po b/src/man/po/fr.po
+index c93dc22acdc18e1e77970131f9a90061ed1d2783..bac140c0d963ac1d5a636f3a84b50c6e2249e97c 100644
+--- a/src/man/po/fr.po
++++ b/src/man/po/fr.po
+@@ -9,7 +9,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: SSSD\n"
+ "Report-Msgid-Bugs-To: sssd-devel at redhat.com\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0300\n"
++"POT-Creation-Date: 2012-05-22 09:33-0300\n"
+ "PO-Revision-Date: 2012-04-20 17:34+0000\n"
+ "Last-Translator: sgallagh <sgallagh at redhat.com>\n"
+ "Language-Team: French <trans-fr at lists.fedoraproject.org>\n"
+@@ -967,7 +967,7 @@ msgstr "default_shell (chaîne)"
+ #: sssd.conf.5.xml:523
+ msgid ""
+ "The default shell to use if the provider does not return one during lookup. "
+-"This option supercedes any other shell options if it takes effect."
++"This option supersedes any other shell options if it takes effect."
+ msgstr ""
+
+ #. type: Content of: <reference><refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>
+@@ -1284,7 +1284,7 @@ msgstr ""
+ #. type: Content of: <reference><refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>
+ #: sssd.conf.5.xml:789
+ msgid ""
+-"Whether or not to hash host names and adresses in the managed known_hosts "
++"Whether or not to hash host names and addresses in the managed known_hosts "
+ "file."
+ msgstr ""
+
+@@ -8232,7 +8232,7 @@ msgstr ""
+ #. type: Content of: <refsect1><refsect2><refsect3><variablelist><varlistentry><listitem><para>
+ #: include/ldap_id_mapping.xml:85
+ msgid ""
+-"NOTE: This option is different from <quote>id_mn</quote> in that "
++"NOTE: This option is different from <quote>id_min</quote> in that "
+ "<quote>id_min</quote> acts to filter the output of requests to this domain, "
+ "whereas this option controls the range of ID assignment. This is a subtle "
+ "distinction, but the good general advice would be to have <quote>id_min</"
+diff --git a/src/man/po/ja.po b/src/man/po/ja.po
+index 40c9d4775e59715efc58e326698b93c077cc4b86..42eebe0ed82b1d0319f7ec719e6b9e7c6ec1c4d6 100644
+--- a/src/man/po/ja.po
++++ b/src/man/po/ja.po
+@@ -10,7 +10,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: SSSD\n"
+ "Report-Msgid-Bugs-To: sssd-devel at redhat.com\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0300\n"
++"POT-Creation-Date: 2012-05-22 09:33-0300\n"
+ "PO-Revision-Date: 2012-04-23 00:55+0000\n"
+ "Last-Translator: Tomoyuki KATO <tomo at dream.daynight.jp>\n"
+ "Language-Team: Japanese <trans-ja at lists.fedoraproject.org>\n"
+@@ -956,7 +956,7 @@ msgstr "default_shell (文字列)"
+ #: sssd.conf.5.xml:523
+ msgid ""
+ "The default shell to use if the provider does not return one during lookup. "
+-"This option supercedes any other shell options if it takes effect."
++"This option supersedes any other shell options if it takes effect."
+ msgstr ""
+
+ #. type: Content of: <reference><refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>
+@@ -1282,7 +1282,7 @@ msgstr "sss_ssh_knownhostsproxy"
+ #. type: Content of: <reference><refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>
+ #: sssd.conf.5.xml:789
+ msgid ""
+-"Whether or not to hash host names and adresses in the managed known_hosts "
++"Whether or not to hash host names and addresses in the managed known_hosts "
+ "file."
+ msgstr ""
+
+@@ -8416,7 +8416,7 @@ msgstr ""
+ #. type: Content of: <refsect1><refsect2><refsect3><variablelist><varlistentry><listitem><para>
+ #: include/ldap_id_mapping.xml:85
+ msgid ""
+-"NOTE: This option is different from <quote>id_mn</quote> in that "
++"NOTE: This option is different from <quote>id_min</quote> in that "
+ "<quote>id_min</quote> acts to filter the output of requests to this domain, "
+ "whereas this option controls the range of ID assignment. This is a subtle "
+ "distinction, but the good general advice would be to have <quote>id_min</"
+diff --git a/src/man/po/nl.po b/src/man/po/nl.po
+index 21a1b19940509ccba174b2ac854eb4c9e5abed9e..bd18147110053a76428850d73d943151f4dae14e 100644
+--- a/src/man/po/nl.po
++++ b/src/man/po/nl.po
+@@ -8,7 +8,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: SSSD\n"
+ "Report-Msgid-Bugs-To: sssd-devel at redhat.com\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0300\n"
++"POT-Creation-Date: 2012-05-22 09:33-0300\n"
+ "PO-Revision-Date: 2012-04-20 17:34+0000\n"
+ "Last-Translator: sgallagh <sgallagh at redhat.com>\n"
+ "Language-Team: Dutch (http://www.transifex.net/projects/p/fedora/language/"
+@@ -906,7 +906,7 @@ msgstr ""
+ #: sssd.conf.5.xml:523
+ msgid ""
+ "The default shell to use if the provider does not return one during lookup. "
+-"This option supercedes any other shell options if it takes effect."
++"This option supersedes any other shell options if it takes effect."
+ msgstr ""
+
+ #. type: Content of: <reference><refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>
+@@ -1198,7 +1198,7 @@ msgstr ""
+ #. type: Content of: <reference><refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>
+ #: sssd.conf.5.xml:789
+ msgid ""
+-"Whether or not to hash host names and adresses in the managed known_hosts "
++"Whether or not to hash host names and addresses in the managed known_hosts "
+ "file."
+ msgstr ""
+
+@@ -7249,7 +7249,7 @@ msgstr ""
+ #. type: Content of: <refsect1><refsect2><refsect3><variablelist><varlistentry><listitem><para>
+ #: include/ldap_id_mapping.xml:85
+ msgid ""
+-"NOTE: This option is different from <quote>id_mn</quote> in that "
++"NOTE: This option is different from <quote>id_min</quote> in that "
+ "<quote>id_min</quote> acts to filter the output of requests to this domain, "
+ "whereas this option controls the range of ID assignment. This is a subtle "
+ "distinction, but the good general advice would be to have <quote>id_min</"
+diff --git a/src/man/po/pt.po b/src/man/po/pt.po
+index be27d826e148fdb061dd1b92f790cd90df46c1cd..63d0c9caefd5d427c16b4ac90f7d0290a3c781f7 100644
+--- a/src/man/po/pt.po
++++ b/src/man/po/pt.po
+@@ -8,7 +8,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: SSSD\n"
+ "Report-Msgid-Bugs-To: sssd-devel at redhat.com\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0300\n"
++"POT-Creation-Date: 2012-05-22 09:33-0300\n"
+ "PO-Revision-Date: 2012-04-20 17:34+0000\n"
+ "Last-Translator: sgallagh <sgallagh at redhat.com>\n"
+ "Language-Team: Portuguese <trans-pt at lists.fedoraproject.org>\n"
+@@ -875,7 +875,7 @@ msgstr "default_shell (string)"
+ #: sssd.conf.5.xml:523
+ msgid ""
+ "The default shell to use if the provider does not return one during lookup. "
+-"This option supercedes any other shell options if it takes effect."
++"This option supersedes any other shell options if it takes effect."
+ msgstr ""
+
+ #. type: Content of: <reference><refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>
+@@ -1165,7 +1165,7 @@ msgstr ""
+ #. type: Content of: <reference><refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>
+ #: sssd.conf.5.xml:789
+ msgid ""
+-"Whether or not to hash host names and adresses in the managed known_hosts "
++"Whether or not to hash host names and addresses in the managed known_hosts "
+ "file."
+ msgstr ""
+
+@@ -7361,7 +7361,7 @@ msgstr ""
+ #. type: Content of: <refsect1><refsect2><refsect3><variablelist><varlistentry><listitem><para>
+ #: include/ldap_id_mapping.xml:85
+ msgid ""
+-"NOTE: This option is different from <quote>id_mn</quote> in that "
++"NOTE: This option is different from <quote>id_min</quote> in that "
+ "<quote>id_min</quote> acts to filter the output of requests to this domain, "
+ "whereas this option controls the range of ID assignment. This is a subtle "
+ "distinction, but the good general advice would be to have <quote>id_min</"
+diff --git a/src/man/po/ru.po b/src/man/po/ru.po
+index b0bb45e23b57a22dee35c04de28c8766ca96f1ce..67a38ae151e3d0a31f25b11c45fd83f6594b1453 100644
+--- a/src/man/po/ru.po
++++ b/src/man/po/ru.po
+@@ -8,7 +8,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: SSSD\n"
+ "Report-Msgid-Bugs-To: sssd-devel at redhat.com\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0300\n"
++"POT-Creation-Date: 2012-05-22 09:33-0300\n"
+ "PO-Revision-Date: 2012-04-20 17:34+0000\n"
+ "Last-Translator: sgallagh <sgallagh at redhat.com>\n"
+ "Language-Team: Russian <trans-ru at lists.fedoraproject.org>\n"
+@@ -829,7 +829,7 @@ msgstr "По умолчанию: loginShell"
+ #: sssd.conf.5.xml:523
+ msgid ""
+ "The default shell to use if the provider does not return one during lookup. "
+-"This option supercedes any other shell options if it takes effect."
++"This option supersedes any other shell options if it takes effect."
+ msgstr ""
+
+ #. type: Content of: <reference><refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>
+@@ -1117,7 +1117,7 @@ msgstr ""
+ #. type: Content of: <reference><refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>
+ #: sssd.conf.5.xml:789
+ msgid ""
+-"Whether or not to hash host names and adresses in the managed known_hosts "
++"Whether or not to hash host names and addresses in the managed known_hosts "
+ "file."
+ msgstr ""
+
+@@ -7142,7 +7142,7 @@ msgstr ""
+ #. type: Content of: <refsect1><refsect2><refsect3><variablelist><varlistentry><listitem><para>
+ #: include/ldap_id_mapping.xml:85
+ msgid ""
+-"NOTE: This option is different from <quote>id_mn</quote> in that "
++"NOTE: This option is different from <quote>id_min</quote> in that "
+ "<quote>id_min</quote> acts to filter the output of requests to this domain, "
+ "whereas this option controls the range of ID assignment. This is a subtle "
+ "distinction, but the good general advice would be to have <quote>id_min</"
+diff --git a/src/man/po/sssd-docs.pot b/src/man/po/sssd-docs.pot
+index c478138ed02f31fde66e03a4031c75a623f1d89f..829318635de82a03290ccf2f60bbe80cd8add8a9 100644
+--- a/src/man/po/sssd-docs.pot
++++ b/src/man/po/sssd-docs.pot
+@@ -6,9 +6,9 @@
+ #, fuzzy
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: sssd-docs 1.8.90\n"
++"Project-Id-Version: sssd-docs 1.8.92\n"
+ "Report-Msgid-Bugs-To: sssd-devel at redhat.com\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0300\n"
++"POT-Creation-Date: 2012-05-22 09:33-0300\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL at li.org>\n"
+@@ -792,7 +792,7 @@ msgstr ""
+ #: sssd.conf.5.xml:523
+ msgid ""
+ "The default shell to use if the provider does not return one during "
+-"lookup. This option supercedes any other shell options if it takes effect."
++"lookup. This option supersedes any other shell options if it takes effect."
+ msgstr ""
+
+ #. type: Content of: <reference><refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>
+@@ -1080,7 +1080,7 @@ msgstr ""
+ #. type: Content of: <reference><refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>
+ #: sssd.conf.5.xml:789
+ msgid ""
+-"Whether or not to hash host names and adresses in the managed known_hosts "
++"Whether or not to hash host names and addresses in the managed known_hosts "
+ "file."
+ msgstr ""
+
+@@ -7144,7 +7144,7 @@ msgstr ""
+ #. type: Content of: <refsect1><refsect2><refsect3><variablelist><varlistentry><listitem><para>
+ #: include/ldap_id_mapping.xml:85
+ msgid ""
+-"NOTE: This option is different from <quote>id_mn</quote> in that "
++"NOTE: This option is different from <quote>id_min</quote> in that "
+ "<quote>id_min</quote> acts to filter the output of requests to this domain, "
+ "whereas this option controls the range of ID assignment. This is a subtle "
+ "distinction, but the good general advice would be to have "
+diff --git a/src/man/po/tg.po b/src/man/po/tg.po
+index d2c41ac2c31498b273e3b340ba9db0f401ab0989..e3c732a1284f8fef0a2cb3da7aa5eebfd6695afd 100644
+--- a/src/man/po/tg.po
++++ b/src/man/po/tg.po
+@@ -7,7 +7,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: SSSD\n"
+ "Report-Msgid-Bugs-To: sssd-devel at redhat.com\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0300\n"
++"POT-Creation-Date: 2012-05-22 09:33-0300\n"
+ "PO-Revision-Date: 2012-04-20 17:34+0000\n"
+ "Last-Translator: sgallagh <sgallagh at redhat.com>\n"
+ "Language-Team: Tajik (http://www.transifex.net/projects/p/fedora/language/"
+@@ -824,7 +824,7 @@ msgstr ""
+ #: sssd.conf.5.xml:523
+ msgid ""
+ "The default shell to use if the provider does not return one during lookup. "
+-"This option supercedes any other shell options if it takes effect."
++"This option supersedes any other shell options if it takes effect."
+ msgstr ""
+
+ #. type: Content of: <reference><refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>
+@@ -1112,7 +1112,7 @@ msgstr ""
+ #. type: Content of: <reference><refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>
+ #: sssd.conf.5.xml:789
+ msgid ""
+-"Whether or not to hash host names and adresses in the managed known_hosts "
++"Whether or not to hash host names and addresses in the managed known_hosts "
+ "file."
+ msgstr ""
+
+@@ -7139,7 +7139,7 @@ msgstr ""
+ #. type: Content of: <refsect1><refsect2><refsect3><variablelist><varlistentry><listitem><para>
+ #: include/ldap_id_mapping.xml:85
+ msgid ""
+-"NOTE: This option is different from <quote>id_mn</quote> in that "
++"NOTE: This option is different from <quote>id_min</quote> in that "
+ "<quote>id_min</quote> acts to filter the output of requests to this domain, "
+ "whereas this option controls the range of ID assignment. This is a subtle "
+ "distinction, but the good general advice would be to have <quote>id_min</"
+diff --git a/src/man/po/uk.po b/src/man/po/uk.po
+index 28b0a82c938dd33e00112f9ca0e88b8cc6394a90..a5f31065f8c897e0d4edb97b870c9bd1c45d4f5c 100644
+--- a/src/man/po/uk.po
++++ b/src/man/po/uk.po
+@@ -9,7 +9,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: SSSD\n"
+ "Report-Msgid-Bugs-To: sssd-devel at redhat.com\n"
+-"POT-Creation-Date: 2012-05-11 14:59-0300\n"
++"POT-Creation-Date: 2012-05-22 09:33-0300\n"
+ "PO-Revision-Date: 2012-04-20 17:34+0000\n"
+ "Last-Translator: Yuri Chornoivan <yurchor at ukr.net>\n"
+ "Language-Team: Ukrainian <trans-uk at lists.fedoraproject.org>\n"
+@@ -978,7 +978,7 @@ msgstr "default_shell (рядок)"
+ #: sssd.conf.5.xml:523
+ msgid ""
+ "The default shell to use if the provider does not return one during lookup. "
+-"This option supercedes any other shell options if it takes effect."
++"This option supersedes any other shell options if it takes effect."
+ msgstr ""
+
+ #. type: Content of: <reference><refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>
+@@ -1316,7 +1316,7 @@ msgstr "sss_ssh_knownhostsproxy"
+ #. type: Content of: <reference><refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>
+ #: sssd.conf.5.xml:789
+ msgid ""
+-"Whether or not to hash host names and adresses in the managed known_hosts "
++"Whether or not to hash host names and addresses in the managed known_hosts "
+ "file."
+ msgstr ""
+
+@@ -8756,7 +8756,7 @@ msgstr ""
+ #. type: Content of: <refsect1><refsect2><refsect3><variablelist><varlistentry><listitem><para>
+ #: include/ldap_id_mapping.xml:85
+ msgid ""
+-"NOTE: This option is different from <quote>id_mn</quote> in that "
++"NOTE: This option is different from <quote>id_min</quote> in that "
+ "<quote>id_min</quote> acts to filter the output of requests to this domain, "
+ "whereas this option controls the range of ID assignment. This is a subtle "
+ "distinction, but the good general advice would be to have <quote>id_min</"
+--
+1.7.10.1
+
diff --git a/0017-LDAP-nested-groups-Do-not-process-callback-with-_pos.patch b/0017-LDAP-nested-groups-Do-not-process-callback-with-_pos.patch
new file mode 100644
index 0000000..85d5716
--- /dev/null
+++ b/0017-LDAP-nested-groups-Do-not-process-callback-with-_pos.patch
@@ -0,0 +1,58 @@
+From 04462f020ebb14c9b7a34425606f47db064f4f4a Mon Sep 17 00:00:00 2001
+From: Jakub Hrozek <jhrozek at redhat.com>
+Date: Tue, 22 May 2012 17:41:52 +0200
+Subject: [PATCH 17/19] LDAP nested groups: Do not process callback with _post
+ deep in the nested structure
+
+https://fedorahosted.org/sssd/ticket/1343
+---
+ src/providers/ldap/sdap_async_groups.c | 22 ++++++++++------------
+ 1 file changed, 10 insertions(+), 12 deletions(-)
+
+diff --git a/src/providers/ldap/sdap_async_groups.c b/src/providers/ldap/sdap_async_groups.c
+index b48fe72eca1ab1dfe2dcb7a97a856ecef86d6f33..c3cc2ac92b80a52632655be03f8386ab2e68d7b9 100644
+--- a/src/providers/ldap/sdap_async_groups.c
++++ b/src/providers/ldap/sdap_async_groups.c
+@@ -2493,14 +2493,13 @@ static errno_t sdap_nested_group_lookup_user(struct tevent_req *req,
+ ret = sdap_nested_group_process_step(req);
+ }
+
+- if (ret == EOK) {
+- /* EOK means it's complete */
+- tevent_req_done(req);
+- tevent_req_post(req, state->ev);
+- } else if (ret != EAGAIN) {
++ if (ret != EOK && ret != EAGAIN) {
++ DEBUG(SSSDBG_OP_FAILURE, ("Nested group processing failed\n"));
+ return ret;
++ } else if (ret == EOK) {
++ DEBUG(SSSDBG_TRACE_FUNC, ("All done.\n"));
++ tevent_req_done(req);
+ }
+-
+ return EOK;
+ }
+ /*
+@@ -2578,14 +2577,13 @@ static errno_t sdap_nested_group_lookup_group(struct tevent_req *req)
+ ret = sdap_nested_group_process_step(req);
+ }
+
+- if (ret == EOK) {
+- /* EOK means it's complete */
+- tevent_req_done(req);
+- tevent_req_post(req, state->ev);
+- } else if (ret != EAGAIN) {
++ if (ret != EOK && ret != EAGAIN) {
++ DEBUG(SSSDBG_OP_FAILURE, ("Nested group processing failed\n"));
+ return ret;
++ } else if (ret == EOK) {
++ DEBUG(SSSDBG_TRACE_FUNC, ("All done.\n"));
++ tevent_req_done(req);
+ }
+-
+ return EOK;
+ }
+
+--
+1.7.10.1
+
diff --git a/0018-Fixed-issue-in-SELinux-user-maps.patch b/0018-Fixed-issue-in-SELinux-user-maps.patch
new file mode 100644
index 0000000..bf6172e
--- /dev/null
+++ b/0018-Fixed-issue-in-SELinux-user-maps.patch
@@ -0,0 +1,35 @@
+From 2c3443347ea83ff5e39515bd47b632c8efa1124c Mon Sep 17 00:00:00 2001
+From: Jan Zeleny <jzeleny at redhat.com>
+Date: Tue, 15 May 2012 10:49:14 -0400
+Subject: [PATCH 18/19] Fixed issue in SELinux user maps
+
+There was an issue when IPA provider didn't set PAM_SUCCESS when
+successfully finished loading SELinux user maps. This lead to the map
+not being read in the responder.
+---
+ src/providers/ipa/ipa_session.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/providers/ipa/ipa_session.c b/src/providers/ipa/ipa_session.c
+index e23b0120e6c2ce1303f4e70190721721a99b124a..238acdde776520dbb69046b8d45ecac4569e5cbc 100644
+--- a/src/providers/ipa/ipa_session.c
++++ b/src/providers/ipa/ipa_session.c
+@@ -104,6 +104,7 @@ static void ipa_session_handler_done(struct tevent_req *req)
+ struct sysdb_attrs **maps;
+ bool in_transaction = false;
+ char *default_user;
++ struct pam_data *pd = talloc_get_type(breq->req_data, struct pam_data);
+ char *map_order;
+
+ ret = ipa_get_selinux_recv(req, breq, &map_count, &maps,
+@@ -140,6 +141,7 @@ static void ipa_session_handler_done(struct tevent_req *req)
+ in_transaction = false;
+
+
++ pd->pam_status = PAM_SUCCESS;
+ breq->fn(breq, DP_ERR_OK, EOK, "Success");
+ return;
+
+--
+1.7.10.1
+
diff --git a/0019-NSS-Fix-segfault-when-mmap-cache-cannot-be-initializ.patch b/0019-NSS-Fix-segfault-when-mmap-cache-cannot-be-initializ.patch
new file mode 100644
index 0000000..d42e495
--- /dev/null
+++ b/0019-NSS-Fix-segfault-when-mmap-cache-cannot-be-initializ.patch
@@ -0,0 +1,35 @@
+From faa68e44b8f4237cc7a99a94dadc090ae8bd003f Mon Sep 17 00:00:00 2001
+From: Stephen Gallagher <sgallagh at redhat.com>
+Date: Wed, 23 May 2012 08:35:26 -0400
+Subject: [PATCH 19/19] NSS: Fix segfault when mmap cache cannot be
+ initialized
+
+---
+ src/responder/nss/nsssrv_cmd.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/responder/nss/nsssrv_cmd.c b/src/responder/nss/nsssrv_cmd.c
+index aa3ef3cbc0b98d3fe44e14dce212ecf1279f14f3..1b444e68a2f09749a3f230905febc5efa15c8a82 100644
+--- a/src/responder/nss/nsssrv_cmd.c
++++ b/src/responder/nss/nsssrv_cmd.c
+@@ -365,7 +365,7 @@ static int fill_pwent(struct sss_packet *packet,
+
+ num++;
+
+- if (pw_mmap_cache) {
++ if (pw_mmap_cache && nctx->pwd_mc_ctx) {
+ ret = sss_mmap_cache_pw_store(nctx->pwd_mc_ctx,
+ &fullname, &pwfield,
+ uid, gid,
+@@ -1918,7 +1918,7 @@ static int fill_grent(struct sss_packet *packet,
+
+ num++;
+
+- if (gr_mmap_cache) {
++ if (gr_mmap_cache && nctx->grp_mc_ctx) {
+ /* body was reallocated, so fullname might be pointing to
+ * where body used to be, not where it is */
+ to_sized_string(&fullname, (const char *)&body[rzero+STRS_ROFFSET]);
+--
+1.7.10.1
+
diff --git a/sssd.spec b/sssd.spec
index 7538704..275bd80 100644
--- a/sssd.spec
+++ b/sssd.spec
@@ -12,11 +12,11 @@
# Determine the location of the LDB modules directory
%global ldb_modulesdir %(pkg-config --variable=modulesdir ldb)
-%global ldb_version 1.1.4
+%global ldb_version 1.1.6
Name: sssd
Version: 1.9.0
-Release: 1%{?dist}.beta1
+Release: 2%{?dist}.beta1
Group: Applications/System
Summary: System Security Services Daemon
License: GPLv3+
@@ -26,7 +26,27 @@ BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
### Patches ###
-Patch1001: FED01-Change-Kerberos-credential-cache-default-loca.patch
+#Fedora-specific: set the default credential cache location
+Patch0001: 0001-FEDORA-Change-Kerberos-credential-cache-default-loca.patch
+
+Patch0002: 0002-Potential-NULL-dereference-in-proxy-provider.patch
+Patch0003: 0003-Fix-typos-in-message-and-man-pages.patch
+Patch0004: 0004-Fixed-two-minor-memory-leaks.patch
+Patch0005: 0005-Rename-struct-dom_sid-to-struct-sss_dom_sid.patch
+Patch0006: 0006-Fix-libsss_hbac-library-version.patch
+Patch0007: 0007-NSS-keep-a-pointer-to-body-after-body-is-reallocated.patch
+Patch0008: 0008-Use-sized_string-correctly-in-FQDN-domains.patch
+Patch0009: 0009-RPM-Allow-running-make-rpms-on-RHEL-5-machines.patch
+Patch0010: 0010-Use-the-sysdb-attribute-name-not-LDAP-attribute-name.patch
+Patch0011: 0011-NSS-Expire-in-memory-netgroup-cache-before-the-nowai.patch
+Patch0012: 0012-Always-use-positional-arguments-in-translatable-stri.patch
+Patch0013: 0013-Simple-implementation-of-Netscape-password-warning-e.patch
+Patch0014: 0014-KRB5-Avoid-NULL-dereference-with-empty-keytab.patch
+Patch0015: 0015-Warn-to-syslog-when-dereference-requests-fail.patch
+Patch0016: 0016-Update-translation-sources.patch
+Patch0017: 0017-LDAP-nested-groups-Do-not-process-callback-with-_pos.patch
+Patch0018: 0018-Fixed-issue-in-SELinux-user-maps.patch
+Patch0019: 0019-NSS-Fix-segfault-when-mmap-cache-cannot-be-initializ.patch
### Dependencies ###
@@ -48,6 +68,7 @@ Requires(postun): systemd-units initscripts chkconfig /sbin/ldconfig
%global dbpath %{sssdstatedir}/db
%global pipepath %{sssdstatedir}/pipes
%global pubconfpath %{sssdstatedir}/pubconf
+%global mcachepath %{sssdstatedir}/mc
### Build Dependencies ###
@@ -213,6 +234,7 @@ autoreconf -ivf
--with-db-path=%{dbpath} \
--with-pipe-path=%{pipepath} \
--with-pubconf-path=%{pubconfpath} \
+ --with-mcache-path=%{mcachepath} \
--with-init-dir=%{_initrddir} \
--with-krb5-rcache-dir=%{_localstatedir}/cache/krb5rcache \
--enable-nsslibdir=/%{_lib} \
@@ -336,6 +358,7 @@ rm -rf $RPM_BUILD_ROOT
%attr(700,root,root) %dir %{dbpath}
%attr(755,root,root) %dir %{pipepath}
%attr(755,root,root) %dir %{pubconfpath}
+%attr(755,root,root) %dir %{mcachepath}
%attr(700,root,root) %dir %{pipepath}/private
%attr(750,root,root) %dir %{_var}/log/%{name}
%attr(700,root,root) %dir %{_sysconfdir}/sssd
@@ -486,6 +509,12 @@ fi
%postun -n libipa_hbac -p /sbin/ldconfig
%changelog
+* Thu May 24 2012 Stephen Gallagher <sgallagh at redhat.com> - 1.9.0-2.beta1
+- Fix several regressions since 1.5.x
+- Ensure that the RPM creates the /var/lib/sss/mc directory
+- Add support for Netscape password warning expiration control
+- Rebuild against libldb 1.1.6
+
* Fri May 11 2012 Stephen Gallagher <sgallagh at redhat.com> - 1.9.0-1.beta1
- New upstream release 1.9.0 beta 1
- https://fedorahosted.org/sssd/wiki/Releases/Notes-1.9.0beta1
More information about the scm-commits
mailing list