summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Langasek <steve.langasek@ubuntu.com>2019-01-03 21:13:04 -0800
committerSteve Langasek <steve.langasek@ubuntu.com>2019-01-03 21:13:04 -0800
commitc55c14c5c6762139ec6695d84ea0e2e917da5264 (patch)
tree9e6119760c93841b2bc3e05680ac9e4e15ae9c25
parentf3c0273b7bd2d7fdcac3fe3604cedd82afc57f49 (diff)
parentfc772e7236a7aea9c9c26b0be2ee6f3ed8ae444a (diff)
New upstream version 1.1.5
-rw-r--r--ChangeLog271
-rw-r--r--NEWS16
-rw-r--r--configure.in47
-rw-r--r--doc/man/pam.conf-syntax.xml17
-rw-r--r--libpam/Makefile.am5
-rw-r--r--libpam/pam_item.c6
-rw-r--r--modules/pam_access/Makefile.am4
-rw-r--r--modules/pam_access/pam_access.c68
-rw-r--r--modules/pam_cracklib/pam_cracklib.c38
-rw-r--r--modules/pam_echo/pam_echo.c5
-rw-r--r--modules/pam_env/pam_env.c45
-rw-r--r--modules/pam_filter/pam_filter.c4
-rw-r--r--modules/pam_group/pam_group.c281
-rw-r--r--modules/pam_lastlog/pam_lastlog.c6
-rw-r--r--modules/pam_limits/limits.conf.5.xml42
-rw-r--r--modules/pam_limits/pam_limits.8.xml25
-rw-r--r--modules/pam_limits/pam_limits.c367
-rw-r--r--modules/pam_listfile/pam_listfile.c13
-rw-r--r--modules/pam_loginuid/pam_loginuid.c3
-rw-r--r--modules/pam_namespace/argv_parse.c29
-rw-r--r--modules/pam_namespace/md5.c2
-rw-r--r--modules/pam_namespace/pam_namespace.8.xml21
-rw-r--r--modules/pam_namespace/pam_namespace.c105
-rw-r--r--modules/pam_namespace/pam_namespace.h9
-rw-r--r--modules/pam_nologin/pam_nologin.8.xml2
-rw-r--r--modules/pam_pwhistory/opasswd.c57
-rw-r--r--modules/pam_pwhistory/pam_pwhistory.8.xml4
-rw-r--r--modules/pam_pwhistory/pam_pwhistory.c21
-rw-r--r--modules/pam_securetty/pam_securetty.8.xml18
-rw-r--r--modules/pam_securetty/pam_securetty.c70
-rw-r--r--modules/pam_selinux/pam_selinux.c52
-rw-r--r--modules/pam_sepermit/pam_sepermit.c12
-rw-r--r--modules/pam_stress/pam_stress.c11
-rw-r--r--modules/pam_tally2/pam_tally2.8.xml12
-rw-r--r--modules/pam_time/pam_time.c273
-rw-r--r--modules/pam_timestamp/pam_timestamp.c6
-rw-r--r--modules/pam_unix/Makefile.am9
-rw-r--r--modules/pam_unix/md5.c2
-rw-r--r--modules/pam_unix/pam_unix_passwd.c48
-rw-r--r--modules/pam_unix/support.c37
-rw-r--r--modules/pam_unix/yppasswd_xdr.c4
-rw-r--r--modules/pam_xauth/pam_xauth.c45
-rw-r--r--po/LINGUAS1
-rw-r--r--po/Linux-PAM.pot98
-rw-r--r--po/ar.po99
-rw-r--r--po/as.po99
-rw-r--r--po/bn_IN.po99
-rw-r--r--po/ca.po99
-rw-r--r--po/cs.po99
-rw-r--r--po/da.po99
-rw-r--r--po/de.po102
-rw-r--r--po/es.po99
-rw-r--r--po/fi.po99
-rw-r--r--po/fr.po99
-rw-r--r--po/gu.po99
-rw-r--r--po/he.po99
-rw-r--r--po/hi.po99
-rw-r--r--po/hu.po99
-rw-r--r--po/it.po99
-rw-r--r--po/ja.po99
-rw-r--r--po/kk.po99
-rw-r--r--po/km.po99
-rw-r--r--po/kn.po99
-rw-r--r--po/ko.po99
-rw-r--r--po/ml.po99
-rw-r--r--po/mr.po99
-rw-r--r--po/ms.po99
-rw-r--r--po/nb.po99
-rw-r--r--po/nl.po99
-rw-r--r--po/or.po99
-rw-r--r--po/pa.po99
-rw-r--r--po/pl.po99
-rw-r--r--po/pt.po99
-rw-r--r--po/pt_BR.po99
-rw-r--r--po/ru.po99
-rw-r--r--po/si.po99
-rw-r--r--po/sk.po99
-rw-r--r--po/sr.po99
-rw-r--r--po/sr@latin.po99
-rw-r--r--po/sv.po99
-rw-r--r--po/ta.po99
-rw-r--r--po/te.po99
-rw-r--r--po/tr.po283
-rw-r--r--po/uk.po99
-rw-r--r--po/vi.po585
-rw-r--r--po/zh_CN.po99
-rw-r--r--po/zh_TW.po99
-rw-r--r--po/zu.po99
88 files changed, 4527 insertions, 2713 deletions
diff --git a/ChangeLog b/ChangeLog
index 247a4f14..d7d808b0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,274 @@
+2011-10-25 Thorsten Kukuk <kukuk@thkukuk.de>
+
+ * release version 1.1.5
+
+ * configure.in: Bump version number.
+
+ * modules/pam_tally2/pam_tally2.8.xml: Remove never used option
+ "no_lock_time".
+
+2011-10-14 Kees Cook <kees@debian.org>
+
+ * modules/pam_env/pam_env.c (_expand_arg): Abort when encountering an
+ overflowed environment variable expansion.
+ Fixes CVE-2011-3149.
+ Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/pam/+bug/874565
+
+ * modules/pam_env/pam_env.c (_assemble_line): Correctly count leading
+ whitespace.
+ Fixes CVE-2011-3148.
+ Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/pam/+bug/874469
+
+2011-10-10 Tomas Mraz <tm@t8m.info>
+
+ * modules/pam_access/pam_access.c: Add hostname resolution
+ cache.
+ (user_match): Clear the cache in fake_item.
+ (from_match): If from is not hostname, do not try to resolve it.
+ Cache the getaddrinfo() result.
+ (network_netmask_match): Cache the getaddrinfo() result.
+ (pam_sm_authenticate): Free the getaddrinfo() result.
+
+ * modules/pam_access/pam_access.c (netgroup_match): If getdomainname()
+ fails or domainname not set use NULL as domain in innetgr().
+
+2011-09-30 Tomas Mraz <tm@t8m.info>
+
+ * doc/man/pam.conf-syntax.xml: Improve documentation of the
+ sufficient and requisite control values. (Red Hat Bug #742413)
+
+2011-08-25 Tomas Mraz <tm@t8m.info>
+
+ * modules/pam_access/pam_access.c (user_match): Fix the split
+ on @ in the user field. (Red Hat Bug #732081)
+
+ * modules/pam_loginuid/pam_loginuid.c: Correct the FSF address.
+
+2011-08-23 Tomas Mraz <tm@t8m.info>
+
+ * modules/pam_env/pam_env.c (_pam_parse): Fix missing dereference.
+
+2011-06-22 Thorsten Kukuk <kukuk@thkukuk.de>
+
+ * release version 1.1.4
+
+ * configure.in: Bump version number.
+ * NEWS: Document changes since 1.1.3
+ * libpam/Makefile.am: Bump release number of shared library
+ * po/de.po: Translate new string.
+
+ * modules/pam_unix/Makefile.am (pam_unix_la_LIBADD): Reorder
+ Libraries.
+
+2011-06-21 Thorsten Kukuk <kukuk@thkukuk.de>
+
+ * modules/pam_limits/pam_limits.c: Add set_all option,
+ read limits from PID one if no limit is specified and set_all
+ is set.
+ * modules/pam_limits/pam_limits.8.xml: Document set_all option.
+ Based on Patch by Kees Cook.
+
+2011-06-15 Tomas Mraz <tm@t8m.info>
+
+ * modules/pam_sepermit/pam_sepermit.c (check_running): Avoid
+ leaking memory and dir handle on realloc failure.
+ (sepermit_unlock): Cast fcntl() and close() calls to void.
+
+ * modules/pam_pwhistory/opasswd.c (check_old_password): Do not
+ needlessly call strdupa().
+ (save_old_password): Avoid memleaks in error paths. Avoid memleak of
+ buf. Make the opasswd entry parsing more robust.
+ * modules/pam_pwhistory/pam_pwhistory.8.xml: Document the
+ special meaning of remember=0.
+
+ * modules/pam_unix/support.c (_set_ctrl): Do not crash when remember,
+ minlen, or rounds options are used with wrong module type.
+
+ * modules/pam_timestamp/pam_timestamp.c (pam_sm_authenticate): Avoid
+ memleak in error path.
+ (pam_sm_open_session): Avoid memleak and fd leak in error path.
+
+ * modules/pam_access/pam_access.c (user_match): Initialize the
+ fake_item from item.
+
+2011-06-14 Thorsten Kukuk <kukuk@thkukuk.de>
+
+ * configure.in: Check for libtirpc by default.
+ * libpam/Makefile.am: Add support for libtirpc.
+ * modules/pam_access/Makefile.am: Likewise.
+ * modules/pam_unix/Makefile.am: Likewise.
+ * modules/pam_unix/pam_unix_passwd.c: Change ifdefs for
+ new libtirpc support.
+ * modules/pam_unix/yppasswd_xdr.c: Only compile if we have rpc/rpc.h.
+
+2011-06-13 Tomas Mraz <tm@t8m.info>
+
+ * modules/pam_securetty/pam_securetty.c (securetty_perform_check): Test
+ also whether the tty is in the /sys/class/tty/console/active file.
+ * modules/pam_securetty/pam_securetty.8.xml: Document the new check of
+ /sys/class/tty/console/active/file.
+
+2011-06-07 Tomas Mraz <tm@t8m.info>
+
+ * modules/pam_namespace/pam_namespace.c (root_shared): New
+ function to detect shared / mount.
+ (pam_sm_open_session): Call the root_shared() and enable
+ private mounts based on that.
+ * modules/pam_namespace/pam_namespace.8.xml: Document the
+ automatic detection of shared / mount.
+
+2011-06-06 Tomas Mraz <tm@t8m.info>
+
+ * modules/pam_group/pam_group.c (shift_bytes): Removed.
+ (shift_buf, trim_spaces): Added new functions.
+ (read_field): Thorough rewrite of the parsing.
+ (check_account): read_field() now uses state information. No
+ extra read_field() call at the end of configuration line.
+ * modules/pam_time/pam_time.c (shift_bytes): Removed.
+ (shift_buf, trim_spaces): Added new functions.
+ (read_field): Thorough rewrite of the parsing.
+ (check_account): read_field() now uses state information. No
+ extra read_field() call at the end of configuration line.
+
+ * modules/pam_namespace/pam_namespace.h: Define the MS_PRIVATE and
+ MS_REC flags if they are not in sys/mount.h.
+
+2011-06-06 Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
+
+ * po/LINGUAS: Add vietnamese.
+ * po/vi.po: Add vietnamese translation.
+
+2011-06-02 Tomas Mraz <tm@t8m.info>
+
+ * modules/pam_namespace/pam_namespace.c (protect_dir): Add parameter
+ to always do protect mount the last directory in the path.
+ (check_inst_parent, create_polydir): Update the protect_dir() call.
+ (ns_setup): Likewise and add the MS_PRIVATE mount() call.
+ (pam_sm_open_session): Check the mount_private option.
+ * modules/pam_namespace/pam_namespace.h: Add the PAMNS_MOUNT_PRIVATE.
+ * modules/pam_namespace/pam_namespace.8.xml: Document the mount_private
+ option.
+
+ * modules/pam_cracklib/pam_cracklib.c (str_lower): Make it no-op
+ on NULL strings.
+ (password_check): Guard for NULLs returned from memory allocation.
+
+ * modules/pam_filter/pam_filter.c (process_args): Guard for error return
+ from pam_get_user().
+
+ * modules/pam_echo/pam_echo.c (replace_and_print): Guard for error return
+ from pam_get_item().
+
+2011-05-30 Thorsten Kukuk <kukuk@thkukuk.de>
+
+ * modules/pam_timestamp/pam_timestamp.c (main): Remove unsused
+ variable pretval.
+
+ * modules/pam_stress/pam_stress.c (converse): **message is const.
+ (stress_get_password): pmsg is const.
+ (pam_sm_chauthtok): Likewise.
+ * libpam/pam_item.c (pam_get_user): Make pmsg const and remove
+ casts.
+
+2011-05-30 Thorsten Kukuk <kukuk@thkukuk.de>
+
+ * modules/pam_env/pam_env.c (_pam_parse): Implement debug option.
+ Based on patch by Tomas Mraz.
+
+2011-05-24 Thorsten Kukuk <kukuk@thkukuk.de>
+
+ * modules/pam_listfile/pam_listfile.c (pam_sm_authenticate): quiet
+ option has no argument, print no missing file if quiet is set
+ [sf#3194930].
+
+2011-05-04 Thorsten Kukuk <kukuk@thkukuk.de>
+
+ * modules/pam_lastlog/pam_lastlog.c (last_login_failed): Don't
+ abort with error if btmp file does not exist.
+
+2011-03-21 Tomas Mraz <tm@t8m.info>
+
+ * modules/pam_unix/md5.c (MD5Final): Clear the whole ctx.
+
+2011-03-18 Tomas Mraz <tm@t8m.info>
+
+ * modules/pam_namespace/md5.c (MD5Final): Clear the whole ctx.
+ * modules/pam_namespace/pam_namespace.c (del_polydir): Guard for NULL poly.
+ (protect_dir): Guard for -1 passing to close().
+ (ns_setup): Likewise.
+ (pam_sm_open_session): Correctly test for SELinux enabled flag.
+
+2011-03-17 Tomas Mraz <tm@t8m.info>
+
+ * modules/pam_selinux/pam_selinux.c (config_context): Fix leak of type.
+ (manual_context): Likewise.
+ (context_from_env): Remove extraneous auditing in success case.
+
+ * modules/pam_unix/support.c (_unix_run_helper_binary): Remove extra
+ close() call.
+
+2011-02-22 Tomas Mraz <tm@t8m.info>
+
+ * modules/pam_nologin/pam_nologin.8.xml: Add missing space.
+ * modules/pam_limits/limits.conf.5.xml: Fix typo.
+
+2010-12-21 Tomas Mraz <tm@t8m.info>
+
+ * modules/pam_selinux/pam_selinux.c (mls_range_allowed): Unhardcode
+ values for security class and av permission bit.
+
+2010-12-14 Tomas Mraz <tm@t8m.info>
+
+ * modules/pam_limits/pam_limits.c (parse_uid_range): New function
+ to parse the range of uids or gids.
+ (parse_config_file): Call parse_uid_range() and if uid/gid range
+ is identified, setup the limits if the range matches. New parameters
+ containing user's uid and primary gid.
+ (pam_sm_open_session): Pass the user's uid and primary gid to
+ parse_config_file().
+ * modules/pam_limits/limits.conf.5.xml: Document the uid/gid ranges.
+
+2010-12-14 Bahadır Kandemir <bahadir@pardus.org.tr>
+
+ * po/tr.po: Updated translations.
+
+2010-11-25 Tomas Mraz <tm@t8m.info>
+
+ * modules/pam_securetty/pam_securetty.8.xml: Improve documentation
+ of the kernel console feature and the noconsole option.
+
+2010-11-24 Thorsten Kukuk <kukuk@thkukuk.de>
+
+ * modules/pam_securetty/pam_securetty.c: Parse console= kernel
+ option, add noconsole option.
+ * modules/pam_securetty/pam_securetty.8.xml: Document new behavior
+ for serial console.
+ Patch from Lennart Poettering.
+
+2010-11-24 Tomas Mraz <tm@t8m.info>
+
+ * modules/pam_limits/limits.conf.5.xml: Document the %group syntax.
+
+2010-11-18 Tomas Mraz <tm@t8m.info>
+
+ * modules/pam_limits/pam_limits.c (pam_parse,pam_sm_open_session):
+ Drop obsolete and broken option change_uid.
+ * modules/pam_limits/pam_limits.8.xml: Likewise.
+
+2010-11-16 Tomas Mraz <tm@t8m.info>
+
+ * modules/pam_pwhistory/pam_pwhistory.c (pam_sm_chauthtok): Remove
+ dead and duplicate code. Return PAM_INCOMPLETE instead of
+ PAM_CONV_AGAIN.
+
+2010-11-11 Tomas Mraz <tm@t8m.info>
+
+ * modules/pam_selinux/pam_selinux.c (pam_sm_open_session): Fix
+ potential use after free in case SELinux is misconfigured.
+
+ * modules/pam_namespace/pam_namespace.c (process_line): Fix memory
+ leak when parsing empty config file lines.
+
2010-10-28 Thorsten Kukuk <kukuk@thkukuk.de>
* release version 1.1.3
diff --git a/NEWS b/NEWS
index 26fe1bd3..81f961f1 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,21 @@
Linux-PAM NEWS -- history of user-visible changes.
+Release 1.1.5
+* pam_env: Fix CVE-2011-3148 and CVE-2011-3149
+* pam_access: Add hostname resolution cache
+* Documentation: Improvements/fixes
+
+
+Release 1.1.4
+
+* Add vietnamese translation
+* pam_namepace: Add new functionality
+* pam_securetty: Honour console= kernel option, add noconsole option
+* pam_limits: Add %group syntax, drop change_uid option, add set_all option
+* Lot of small bug fixes
+* Lot of compiler warnings fixed
+* Add support for libtirpc
+
Release 1.1.3
diff --git a/configure.in b/configure.in
index d09d753f..5058155f 100644
--- a/configure.in
+++ b/configure.in
@@ -1,7 +1,7 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT
AC_CONFIG_SRCDIR([conf/pam_conv1/pam_conv_y.y])
-AM_INIT_AUTOMAKE("Linux-PAM", 1.1.3)
+AM_INIT_AUTOMAKE("Linux-PAM", 1.1.5)
AC_PREREQ(2.61)
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4])
@@ -441,12 +441,39 @@ fi
AC_SUBST(LIBDB)
AM_CONDITIONAL([HAVE_LIBDB], [test ! -z "$LIBDB"])
-AC_CHECK_LIB([nsl],[yp_get_default_domain], LIBNSL="-lnsl", LIBNSL="")
-BACKUP_LIBS=$LIBS
-LIBS="$LIBS $LIBNSL"
-AC_CHECK_FUNCS(yp_get_default_domain getdomainname innetgr yperr_string yp_master yp_bind yp_match yp_unbind)
-LIBS=$BACKUP_LIBS
-AC_SUBST(LIBNSL)
+AC_ARG_ENABLE([nis],
+ AS_HELP_STRING([-disable-nis], [Disable building NIS/YP support in pam_unix and pam_access]))
+
+AS_IF([test "x$enable_nis" != "xno"], [
+ CFLAGS=$old_CFLAGS
+ LIBS=$old_LIBS
+
+ dnl if there's libtirpc available, prefer that over the system
+ dnl implementation.
+ PKG_CHECK_MODULES([libtirpc], [libtirpc], [
+ CFLAGS="$CFLAGS $libtirpc_CFLAGS"
+ LIBS="$LIBS $libtirpc_LIBS"
+ ], [:;])
+
+ AC_SEARCH_LIBS([yp_get_default_domain], [nsl])
+
+ AC_CHECK_FUNCS([yp_get_default_domain yperr_string yp_master yp_bind yp_match yp_unbind])
+ AC_CHECK_HEADERS([rpc/rpc.h rpcsvc/ypclnt.h rpcsvc/yp_prot.h])
+ AC_CHECK_DECLS([getrpcport], , , [
+ #if HAVE_RPC_RPC_H
+ # include <rpc/rpc.h>
+ #endif
+ ])
+
+ NIS_CFLAGS="${CFLAGS%${old_CFLAGS}}"
+ NIS_LIBS="${LIBS%${old_LIBS}}"
+
+ CFLAGS="$old_CFLAGS"
+ LIBS="$old_LIBS"
+])
+
+AC_SUBST([NIS_CFLAGS])
+AC_SUBST([NIS_LIBS])
AC_ARG_ENABLE([selinux],
AS_HELP_STRING([--disable-selinux],[do not use SELinux]),
@@ -471,7 +498,7 @@ dnl Checks for header files.
AC_HEADER_DIRENT
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
-AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/file.h sys/ioctl.h sys/time.h syslog.h net/if.h termio.h unistd.h sys/fsuid.h inittypes.h rpcsvc/ypclnt.h rpcsvc/yp_prot.h)
+AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/file.h sys/ioctl.h sys/time.h syslog.h net/if.h termio.h unistd.h sys/fsuid.h inittypes.h)
dnl For module/pam_lastlog
AC_CHECK_HEADERS(lastlog.h utmp.h utmpx.h)
@@ -491,11 +518,11 @@ AC_TYPE_GETGROUPS
AC_PROG_GCC_TRADITIONAL
AC_FUNC_MEMCMP
AC_FUNC_VPRINTF
-AC_CHECK_FUNCS(fseeko gethostname gettimeofday lckpwdf mkdir select)
+AC_CHECK_FUNCS(fseeko getdomainname gethostname gettimeofday lckpwdf mkdir select)
AC_CHECK_FUNCS(strcspn strdup strspn strstr strtol uname)
AC_CHECK_FUNCS(getutent_r getpwnam_r getpwuid_r getgrnam_r getgrgid_r getspnam_r)
AC_CHECK_FUNCS(getgrouplist getline getdelim)
-AC_CHECK_FUNCS(inet_ntop inet_pton ruserok_af)
+AC_CHECK_FUNCS(inet_ntop inet_pton innetgr ruserok_af)
AC_CHECK_FUNCS(unshare, [UNSHARE=yes], [UNSHARE=no])
AM_CONDITIONAL([HAVE_UNSHARE], [test "$UNSHARE" = yes])
diff --git a/doc/man/pam.conf-syntax.xml b/doc/man/pam.conf-syntax.xml
index bea84d91..da7cfb70 100644
--- a/doc/man/pam.conf-syntax.xml
+++ b/doc/man/pam.conf-syntax.xml
@@ -143,7 +143,8 @@
<para>
like <emphasis>required</emphasis>, however, in the case that
such a module returns a failure, control is directly returned
- to the application. The return value is that associated with
+ to the application or to the superior PAM stack.
+ The return value is that associated with
the first required or requisite module to fail. Note, this flag
can be used to protect against the possibility of a user getting
the opportunity to enter a password over an unsafe medium. It is
@@ -158,14 +159,12 @@
<term>sufficient</term>
<listitem>
<para>
- success of such a module is enough to satisfy the
- authentication requirements of the stack of modules (if a
- prior <emphasis>required</emphasis> module has failed the
- success of this one is <emphasis>ignored</emphasis>). A failure
- of this module is not deemed as fatal to satisfying the
- application that this type has succeeded. If the module succeeds
- the PAM framework returns success to the application immediately
- without trying any other modules.
+ if such a module succeeds and no prior <emphasis>required</emphasis>
+ module has failed the PAM framework returns success to
+ the application or to the superior PAM stack immediately without
+ calling any further modules in the stack. A failure of a
+ <emphasis>sufficient</emphasis> module is ignored and processing
+ of the PAM module stack continues unaffected.
</para>
</listitem>
</varlistentry>
diff --git a/libpam/Makefile.am b/libpam/Makefile.am
index 3c7ae1d6..417ca779 100644
--- a/libpam/Makefile.am
+++ b/libpam/Makefile.am
@@ -20,12 +20,13 @@ include_HEADERS = include/security/_pam_compat.h \
noinst_HEADERS = pam_prelude.h pam_private.h pam_tokens.h \
pam_modutil_private.h pam_static_modules.h
-libpam_la_LDFLAGS = -no-undefined -version-info 83:0:83
+libpam_la_LDFLAGS = -no-undefined -version-info 83:1:83
libpam_la_LIBADD = @LIBAUDIT@ $(LIBPRELUDE_LIBS) @LIBDL@
if STATIC_MODULES
libpam_la_LIBADD += $(shell ls ../modules/pam_*/*.lo) \
- @LIBDB@ @LIBCRYPT@ @LIBNSL@ @LIBCRACK@ -lutil
+ @LIBDB@ @LIBCRYPT@ $(NIS_LIBS) @LIBCRACK@ -lutil
+ AM_CFLAGS += $(NIS_CFLAGS)
endif
if HAVE_VERSIONING
libpam_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libpam.map
diff --git a/libpam/pam_item.c b/libpam/pam_item.c
index 29a81ed5..ccd69103 100644
--- a/libpam/pam_item.c
+++ b/libpam/pam_item.c
@@ -274,7 +274,8 @@ int pam_get_user(pam_handle_t *pamh, const char **user, const char *prompt)
{
const char *use_prompt;
int retval;
- struct pam_message msg,*pmsg;
+ struct pam_message msg;
+ const struct pam_message *pmsg;
struct pam_response *resp;
D(("called."));
@@ -340,8 +341,7 @@ int pam_get_user(pam_handle_t *pamh, const char **user, const char *prompt)
resp = NULL;
retval = pamh->pam_conversation->
- conv(1, (const struct pam_message **) &pmsg, &resp,
- pamh->pam_conversation->appdata_ptr);
+ conv(1, &pmsg, &resp, pamh->pam_conversation->appdata_ptr);
if (retval == PAM_CONV_AGAIN) {
/* conversation function is waiting for an event - save state */
diff --git a/modules/pam_access/Makefile.am b/modules/pam_access/Makefile.am
index b4fea7df..89222b56 100644
--- a/modules/pam_access/Makefile.am
+++ b/modules/pam_access/Makefile.am
@@ -15,14 +15,14 @@ securelibdir = $(SECUREDIR)
secureconfdir = $(SCONFIGDIR)
AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \
- -DPAM_ACCESS_CONFIG=\"$(SCONFIGDIR)/access.conf\"
+ -DPAM_ACCESS_CONFIG=\"$(SCONFIGDIR)/access.conf\" $(NIS_CFLAGS)
AM_LDFLAGS = -no-undefined -avoid-version -module
if HAVE_VERSIONING
AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map
endif
securelib_LTLIBRARIES = pam_access.la
-pam_access_la_LIBADD = -L$(top_builddir)/libpam -lpam @LIBNSL@
+pam_access_la_LIBADD = -L$(top_builddir)/libpam -lpam $(NIS_LIBS)
secureconf_DATA = access.conf
diff --git a/modules/pam_access/pam_access.c b/modules/pam_access/pam_access.c
index daee47da..2669a5ec 100644
--- a/modules/pam_access/pam_access.c
+++ b/modules/pam_access/pam_access.c
@@ -106,6 +106,8 @@ struct login_info {
const char *fs; /* field separator */
const char *sep; /* list-element separator */
int from_remote_host; /* If PAM_RHOST was used for from */
+ struct addrinfo *res; /* Cached DNS resolution of from */
+ int gai_rv; /* Cached retval of getaddrinfo */
};
/* Parse module config arguments */
@@ -168,7 +170,7 @@ static int user_match (pam_handle_t *, char *, struct login_info *);
static int group_match (pam_handle_t *, const char *, const char *, int);
static int from_match (pam_handle_t *, char *, struct login_info *);
static int string_match (pam_handle_t *, const char *, const char *, int);
-static int network_netmask_match (pam_handle_t *, const char *, const char *, int);
+static int network_netmask_match (pam_handle_t *, const char *, const char *, struct login_info *);
/* isipaddr - find out if string provided is an IP address or not */
@@ -476,12 +478,10 @@ netgroup_match (pam_handle_t *pamh, const char *netgroup,
if (getdomainname (domainname_res, sizeof (domainname_res)) == 0)
{
- if (strcmp (domainname_res, "(none)") == 0)
+ if (domainname_res[0] != '\0' && strcmp (domainname_res, "(none)") != 0)
{
- /* If domainname is not set, some systems will return "(none)" */
- domainname_res[0] = '\0';
- }
- mydomain = domainname_res;
+ mydomain = domainname_res;
+ }
}
#endif
@@ -521,14 +521,25 @@ user_match (pam_handle_t *pamh, char *tok, struct login_info *item)
* name of the user's primary group.
*/
- if (tok[0] != '@' && (at = strchr(tok + 1, '@')) != 0) {
+ /* Try to split on a pattern (@*[^@]+)(@+.*) */
+ for (at = tok; *at == '@'; ++at);
+
+ if ((at = strchr(at, '@')) != NULL) {
/* split user@host pattern */
if (item->hostname == NULL)
return NO;
+ memcpy (&fake_item, item, sizeof(fake_item));
fake_item.from = item->hostname;
+ fake_item.gai_rv = 0;
+ fake_item.res = NULL;
+ fake_item.from_remote_host = 1; /* hostname should be resolvable */
*at = 0;
- return (user_match (pamh, tok, item) &&
- from_match (pamh, at + 1, &fake_item));
+ if (!user_match (pamh, tok, item))
+ return NO;
+ rv = from_match (pamh, at + 1, &fake_item);
+ if (fake_item.gai_rv == 0 && fake_item.res)
+ freeaddrinfo(fake_item.res);
+ return rv;
} else if (tok[0] == '@') { /* netgroup */
const char *hostname = NULL;
if (tok[1] == '@') { /* add hostname to netgroup match */
@@ -612,22 +623,24 @@ from_match (pam_handle_t *pamh UNUSED, char *tok, struct login_info *item)
if ((str_len = strlen(string)) > (tok_len = strlen(tok))
&& strcasecmp(tok, string + str_len - tok_len) == 0)
return (YES);
- } else if (strcasecmp(tok, "LOCAL") == 0) { /* local: no PAM_RHOSTS */
- if (item->from_remote_host == 0)
+ } else if (item->from_remote_host == 0) { /* local: no PAM_RHOSTS */
+ if (strcasecmp(tok, "LOCAL") == 0)
return (YES);
} else if (tok[(tok_len = strlen(tok)) - 1] == '.') {
- struct addrinfo *res;
struct addrinfo hint;
memset (&hint, '\0', sizeof (hint));
hint.ai_flags = AI_CANONNAME;
hint.ai_family = AF_INET;
- if (getaddrinfo (string, NULL, &hint, &res) != 0)
+ if (item->gai_rv != 0)
+ return NO;
+ else if (!item->res &&
+ (item->gai_rv = getaddrinfo (string, NULL, &hint, &item->res)) != 0)
return NO;
else
{
- struct addrinfo *runp = res;
+ struct addrinfo *runp = item->res;
while (runp != NULL)
{
@@ -643,17 +656,15 @@ from_match (pam_handle_t *pamh UNUSED, char *tok, struct login_info *item)
if (strncmp(tok, buf, tok_len) == 0)
{
- freeaddrinfo (res);
return YES;
}
}
runp = runp->ai_next;
}
- freeaddrinfo (res);
}
} else {
/* Assume network/netmask with a IP of a host. */
- if (network_netmask_match(pamh, tok, string, item->debug))
+ if (network_netmask_match(pamh, tok, string, item))
return YES;
}
@@ -696,13 +707,13 @@ string_match (pam_handle_t *pamh, const char *tok, const char *string,
*/
static int
network_netmask_match (pam_handle_t *pamh,
- const char *tok, const char *string, int debug)
+ const char *tok, const char *string, struct login_info *item)
{
char *netmask_ptr;
char netmask_string[MAXHOSTNAMELEN + 1];
int addr_type;
- if (debug)
+ if (item->debug)
pam_syslog (pamh, LOG_DEBUG,
"network_netmask_match: tok=%s, item=%s", tok, string);
/* OK, check if tok is of type addr/mask */
@@ -747,18 +758,20 @@ network_netmask_match (pam_handle_t *pamh,
if (isipaddr(string, NULL, NULL) != YES)
{
/* Assume network/netmask with a name of a host. */
- struct addrinfo *res;
struct addrinfo hint;
memset (&hint, '\0', sizeof (hint));
hint.ai_flags = AI_CANONNAME;
hint.ai_family = AF_UNSPEC;
- if (getaddrinfo (string, NULL, &hint, &res) != 0)
+ if (item->gai_rv != 0)
+ return NO;
+ else if (!item->res &&
+ (item->gai_rv = getaddrinfo (string, NULL, &hint, &item->res)) != 0)
return NO;
else
{
- struct addrinfo *runp = res;
+ struct addrinfo *runp = item->res;
while (runp != NULL)
{
@@ -772,12 +785,10 @@ network_netmask_match (pam_handle_t *pamh,
if (are_addresses_equal(buf, tok, netmask_ptr))
{
- freeaddrinfo (res);
return YES;
}
runp = runp->ai_next;
}
- freeaddrinfo (res);
}
}
else
@@ -799,6 +810,7 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED,
const char *from;
struct passwd *user_pw;
char hostname[MAXHOSTNAMELEN + 1];
+ int rv;
/* set username */
@@ -815,6 +827,7 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED,
/*
* Bundle up the arguments to avoid unnecessary clumsiness later on.
*/
+ memset(&loginfo, '\0', sizeof(loginfo));
loginfo.user = user_pw;
loginfo.config_file = PAM_ACCESS_CONFIG;
@@ -885,7 +898,12 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED,
loginfo.hostname = NULL;
}
- if (login_access(pamh, &loginfo)) {
+ rv = login_access(pamh, &loginfo);
+
+ if (loginfo.gai_rv == 0 && loginfo.res)
+ freeaddrinfo(loginfo.res);
+
+ if (rv) {
return (PAM_SUCCESS);
} else {
pam_syslog(pamh, LOG_ERR,
diff --git a/modules/pam_cracklib/pam_cracklib.c b/modules/pam_cracklib/pam_cracklib.c
index 2e911261..1955b83f 100644
--- a/modules/pam_cracklib/pam_cracklib.c
+++ b/modules/pam_cracklib/pam_cracklib.c
@@ -473,6 +473,9 @@ static char * str_lower(char *string)
{
char *cp;
+ if (!string)
+ return NULL;
+
for (cp = string; *cp; cp++)
*cp = tolower(*cp);
return string;
@@ -492,15 +495,26 @@ static const char *password_check(struct cracklib_options *opt,
}
newmono = str_lower(x_strdup(new));
+ if (!newmono)
+ msg = _("memory allocation error");
+
usermono = str_lower(x_strdup(user));
- if (old) {
- oldmono = str_lower(x_strdup(old));
- wrapped = malloc(strlen(oldmono) * 2 + 1);
- strcpy (wrapped, oldmono);
- strcat (wrapped, oldmono);
+ if (!usermono)
+ msg = _("memory allocation error");
+
+ if (!msg && old) {
+ oldmono = str_lower(x_strdup(old));
+ if (oldmono)
+ wrapped = malloc(strlen(oldmono) * 2 + 1);
+ if (wrapped) {
+ strcpy (wrapped, oldmono);
+ strcat (wrapped, oldmono);
+ } else {
+ msg = _("memory allocation error");
+ }
}
- if (palindrome(newmono))
+ if (!msg && palindrome(newmono))
msg = _("is a palindrome");
if (!msg && oldmono && strcmp(oldmono, newmono) == 0)
@@ -524,13 +538,17 @@ static const char *password_check(struct cracklib_options *opt,
if (!msg && usercheck(opt, newmono, usermono))
msg = _("contains the user name in some form");
- memset(newmono, 0, strlen(newmono));
- free(newmono);
free(usermono);
- if (old) {
+ if (newmono) {
+ memset(newmono, 0, strlen(newmono));
+ free(newmono);
+ }
+ if (oldmono) {
memset(oldmono, 0, strlen(oldmono));
- memset(wrapped, 0, strlen(wrapped));
free(oldmono);
+ }
+ if (wrapped) {
+ memset(wrapped, 0, strlen(wrapped));
free(wrapped);
}
diff --git a/modules/pam_echo/pam_echo.c b/modules/pam_echo/pam_echo.c
index 31ebca22..043ff703 100644
--- a/modules/pam_echo/pam_echo.c
+++ b/modules/pam_echo/pam_echo.c
@@ -119,7 +119,10 @@ replace_and_print (pam_handle_t *pamh, const char *mesg)
str = &myhostname;
}
else
- pam_get_item (pamh, item, &str);
+ {
+ if (pam_get_item (pamh, item, &str) != PAM_SUCCESS)
+ str = NULL;
+ }
if (str == NULL)
str = "(null)";
for (q = str; *q != '\0' && len < length - 1; ++q)
diff --git a/modules/pam_env/pam_env.c b/modules/pam_env/pam_env.c
index 8ac8ed33..e04f5b53 100644
--- a/modules/pam_env/pam_env.c
+++ b/modules/pam_env/pam_env.c
@@ -68,8 +68,8 @@ static int _check_var(pam_handle_t *, VAR *); /* This is the real mea
static void _clean_var(VAR *);
static int _expand_arg(pam_handle_t *, char **);
static const char * _pam_get_item_byname(pam_handle_t *, const char *);
-static int _define_var(pam_handle_t *, VAR *);
-static int _undefine_var(pam_handle_t *, VAR *);
+static int _define_var(pam_handle_t *, int, VAR *);
+static int _undefine_var(pam_handle_t *, int, VAR *);
/* This is a flag used to designate an empty string */
static char quote='Z';
@@ -99,7 +99,7 @@ _pam_parse (const pam_handle_t *pamh, int argc, const char **argv,
if (!strcmp(*argv,"debug"))
ctrl |= PAM_DEBUG_ARG;
else if (!strncmp(*argv,"conffile=",9)) {
- if (*argv+9 == '\0') {
+ if ((*argv)[9] == '\0') {
pam_syslog(pamh, LOG_ERR,
"conffile= specification missing argument - ignored");
} else {
@@ -107,7 +107,7 @@ _pam_parse (const pam_handle_t *pamh, int argc, const char **argv,
D(("new Configuration File: %s", *conffile));
}
} else if (!strncmp(*argv,"envfile=",8)) {
- if (*argv+8 == '\0') {
+ if ((*argv)[8] == '\0') {
pam_syslog (pamh, LOG_ERR,
"envfile= specification missing argument - ignored");
} else {
@@ -115,7 +115,7 @@ _pam_parse (const pam_handle_t *pamh, int argc, const char **argv,
D(("new Env File: %s", *envfile));
}
} else if (!strncmp(*argv,"user_envfile=",13)) {
- if (*argv+13 == '\0') {
+ if ((*argv)[13] == '\0') {
pam_syslog (pamh, LOG_ERR,
"user_envfile= specification missing argument - ignored");
} else {
@@ -134,7 +134,7 @@ _pam_parse (const pam_handle_t *pamh, int argc, const char **argv,
}
static int
-_parse_config_file(pam_handle_t *pamh, const char *file)
+_parse_config_file(pam_handle_t *pamh, int ctrl, const char *file)
{
int retval;
char buffer[BUF_SIZE];
@@ -168,10 +168,10 @@ _parse_config_file(pam_handle_t *pamh, const char *file)
retval = _check_var(pamh, var);
if (DEFINE_VAR == retval) {
- retval = _define_var(pamh, var);
+ retval = _define_var(pamh, ctrl, var);
} else if (UNDEFINE_VAR == retval) {
- retval = _undefine_var(pamh, var);
+ retval = _undefine_var(pamh, ctrl, var);
}
}
if (PAM_SUCCESS != retval && ILLEGAL_VAR != retval
@@ -191,7 +191,7 @@ _parse_config_file(pam_handle_t *pamh, const char *file)
}
static int
-_parse_env_file(pam_handle_t *pamh, const char *file)
+_parse_env_file(pam_handle_t *pamh, int ctrl, const char *file)
{
int retval=PAM_SUCCESS, i, t;
char buffer[BUF_SIZE], *key, *mark;
@@ -267,6 +267,9 @@ _parse_env_file(pam_handle_t *pamh, const char *file)
if (retval != PAM_SUCCESS) {
D(("error setting env \"%s\"", key));
break;
+ } else if (ctrl & PAM_DEBUG_ARG) {
+ pam_syslog(pamh, LOG_DEBUG,
+ "pam_putenv(\"%s\")", key);
}
}
@@ -287,6 +290,7 @@ static int _assemble_line(FILE *f, char *buffer, int buf_len)
char *p = buffer;
char *s, *os;
int used = 0;
+ int whitespace;
/* loop broken with a 'break' when a non-'\\n' ended line is read */
@@ -309,8 +313,10 @@ static int _assemble_line(FILE *f, char *buffer, int buf_len)
/* skip leading spaces --- line may be blank */
- s = p + strspn(p, " \n\t");
+ whitespace = strspn(p, " \n\t");
+ s = p + whitespace;
if (*s && (*s != '#')) {
+ used += whitespace;
os = s;
/*
@@ -564,6 +570,7 @@ static int _expand_arg(pam_handle_t *pamh, char **value)
D(("Variable buffer overflow: <%s> + <%s>", tmp, tmpptr));
pam_syslog (pamh, LOG_ERR, "Variable buffer overflow: <%s> + <%s>",
tmp, tmpptr);
+ return PAM_BUF_ERR;
}
continue;
}
@@ -625,6 +632,7 @@ static int _expand_arg(pam_handle_t *pamh, char **value)
D(("Variable buffer overflow: <%s> + <%s>", tmp, tmpptr));
pam_syslog (pamh, LOG_ERR,
"Variable buffer overflow: <%s> + <%s>", tmp, tmpptr);
+ return PAM_BUF_ERR;
}
}
} /* if ('{' != *orig++) */
@@ -636,6 +644,7 @@ static int _expand_arg(pam_handle_t *pamh, char **value)
D(("Variable buffer overflow: <%s> + <%s>", tmp, tmpptr));
pam_syslog(pamh, LOG_ERR,
"Variable buffer overflow: <%s> + <%s>", tmp, tmpptr);
+ return PAM_BUF_ERR;
}
}
} /* for (;*orig;) */
@@ -691,7 +700,7 @@ static const char * _pam_get_item_byname(pam_handle_t *pamh, const char *name)
return itemval;
}
-static int _define_var(pam_handle_t *pamh, VAR *var)
+static int _define_var(pam_handle_t *pamh, int ctrl, VAR *var)
{
/* We have a variable to define, this is a simple function */
@@ -705,16 +714,22 @@ static int _define_var(pam_handle_t *pamh, VAR *var)
}
retval = pam_putenv(pamh, envvar);
+ if (ctrl & PAM_DEBUG_ARG) {
+ pam_syslog(pamh, LOG_DEBUG, "pam_putenv(\"%s\")", envvar);
+ }
_pam_drop(envvar);
D(("Exit."));
return retval;
}
-static int _undefine_var(pam_handle_t *pamh, VAR *var)
+static int _undefine_var(pam_handle_t *pamh, int ctrl, VAR *var)
{
/* We have a variable to undefine, this is a simple function */
D(("Called and exit."));
+ if (ctrl & PAM_DEBUG_ARG) {
+ pam_syslog(pamh, LOG_DEBUG, "remove variable \"%s\"", var->name);
+ }
return pam_putenv(pamh, var->name);
}
@@ -762,10 +777,10 @@ handle_env (pam_handle_t *pamh, int argc, const char **argv)
ctrl = _pam_parse(pamh, argc, argv, &conf_file, &env_file,
&readenv, &user_env_file, &user_readenv);
- retval = _parse_config_file(pamh, conf_file);
+ retval = _parse_config_file(pamh, ctrl, conf_file);
if(readenv && retval == PAM_SUCCESS) {
- retval = _parse_env_file(pamh, env_file);
+ retval = _parse_env_file(pamh, ctrl, env_file);
if (retval == PAM_IGNORE)
retval = PAM_SUCCESS;
}
@@ -795,7 +810,7 @@ handle_env (pam_handle_t *pamh, int argc, const char **argv)
if (pam_modutil_drop_priv(pamh, &privs, user_entry)) {
retval = PAM_SESSION_ERR;
} else {
- retval = _parse_config_file(pamh, envpath);
+ retval = _parse_config_file(pamh, ctrl, envpath);
if (pam_modutil_regain_priv(pamh, &privs))
retval = PAM_SESSION_ERR;
}
diff --git a/modules/pam_filter/pam_filter.c b/modules/pam_filter/pam_filter.c
index 41028902..57453b82 100644
--- a/modules/pam_filter/pam_filter.c
+++ b/modules/pam_filter/pam_filter.c
@@ -177,8 +177,8 @@ static int process_args(pam_handle_t *pamh
#define USER_OFFSET 5 /* strlen('USER='); */
#define USER_NAME "USER="
- pam_get_user(pamh, &user, NULL);
- if (user == NULL) {
+ if (pam_get_user(pamh, &user, NULL) != PAM_SUCCESS ||
+ user == NULL) {
user = "<unknown>";
}
size = USER_OFFSET+strlen(user);
diff --git a/modules/pam_group/pam_group.c b/modules/pam_group/pam_group.c
index 310b2622..be5f20f3 100644
--- a/modules/pam_group/pam_group.c
+++ b/modules/pam_group/pam_group.c
@@ -2,6 +2,7 @@
/*
* Written by Andrew Morgan <morgan@linux.kernel.org> 1996/7/6
+ * Field parsing rewritten by Tomas Mraz <tm@t8m.info>
*/
#include "config.h"
@@ -50,166 +51,156 @@ typedef enum { AND, OR } operator;
/* --- static functions for checking whether the user should be let in --- */
-static void shift_bytes(char *mem, int from, int by)
+static char *
+shift_buf(char *mem, int from)
{
- while (by-- > 0) {
- *mem = mem[from];
+ char *start = mem;
+ while ((*mem = mem[from]) != '\0')
++mem;
+ memset(mem, '\0', PAM_GROUP_BUFLEN - (mem - start));
+ return mem;
+}
+
+static void
+trim_spaces(char *buf, char *from)
+{
+ while (from > buf) {
+ --from;
+ if (*from == ' ')
+ *from = '\0';
+ else
+ break;
}
}
-/* This function should initially be called with buf = NULL. If
- * an error occurs, the file descriptor is closed. Subsequent
- * calls with a closed descriptor will cause buf to be deallocated.
- * Therefore, always check buf after calling this to see if an error
- * occurred.
- */
+#define STATE_NL 0 /* new line starting */
+#define STATE_COMMENT 1 /* inside comment */
+#define STATE_FIELD 2 /* field following */
+#define STATE_EOF 3 /* end of file or error */
+
static int
-read_field (const pam_handle_t *pamh, int fd, char **buf, int *from, int *to)
+read_field(const pam_handle_t *pamh, int fd, char **buf, int *from, int *state)
{
- /* is buf set ? */
+ char *to;
+ char *src;
+ int i;
+ char c;
+ int onspace;
+ /* is buf set ? */
if (! *buf) {
- *buf = (char *) malloc(PAM_GROUP_BUFLEN);
+ *buf = (char *) calloc(1, PAM_GROUP_BUFLEN+1);
if (! *buf) {
pam_syslog(pamh, LOG_ERR, "out of memory");
+ D(("no memory"));
+ *state = STATE_EOF;
return -1;
}
- *from = *to = 0;
+ *from = 0;
+ *state = STATE_NL;
fd = open(PAM_GROUP_CONF, O_RDONLY);
+ if (fd < 0) {
+ pam_syslog(pamh, LOG_ERR, "error opening %s: %m", PAM_GROUP_CONF);
+ _pam_drop(*buf);
+ *state = STATE_EOF;
+ return -1;
+ }
}
- /* do we have a file open ? return error */
-
- if (fd < 0 && *to <= 0) {
- pam_syslog(pamh, LOG_ERR, "%s not opened", PAM_GROUP_CONF);
- memset(*buf, 0, PAM_GROUP_BUFLEN);
- _pam_drop(*buf);
- return -1;
- }
-
- /* check if there was a newline last time */
-
- if ((*to > *from) && (*to > 0)
- && ((*buf)[*from] == '\0')) { /* previous line ended */
- (*from)++;
- (*buf)[0] = '\0';
- return fd;
- }
-
- /* ready for more data: first shift the buffer's remaining data */
-
- *to -= *from;
- shift_bytes(*buf, *from, *to);
- *from = 0;
- (*buf)[*to] = '\0';
-
- while (fd >= 0 && *to < PAM_GROUP_BUFLEN) {
- int i;
-
- /* now try to fill the remainder of the buffer */
+ if (*from > 0)
+ to = shift_buf(*buf, *from);
+ else
+ to = *buf;
- i = read(fd, *to + *buf, PAM_GROUP_BUFLEN - *to);
+ while (fd != -1 && to - *buf < PAM_GROUP_BUFLEN) {
+ i = pam_modutil_read(fd, to, PAM_GROUP_BUFLEN - (to - *buf));
if (i < 0) {
pam_syslog(pamh, LOG_ERR, "error reading %s: %m", PAM_GROUP_CONF);
close(fd);
+ memset(*buf, 0, PAM_GROUP_BUFLEN);
+ _pam_drop(*buf);
+ *state = STATE_EOF;
return -1;
} else if (!i) {
close(fd);
fd = -1; /* end of file reached */
- } else
- *to += i;
+ }
- /*
- * contract the buffer. Delete any comments, and replace all
- * multiple spaces with single commas
- */
+ to += i;
+ }
- i = 0;
-#ifdef DEBUG_DUMP
- D(("buffer=<%s>",*buf));
-#endif
- while (i < *to) {
- if ((*buf)[i] == ',') {
- int j;
-
- for (j=++i; j<*to && (*buf)[j] == ','; ++j);
- if (j!=i) {
- shift_bytes(i + (*buf), j-i, (*to) - j);
- *to -= j-i;
+ if (to == *buf) {
+ /* nothing previously in buf, nothing read */
+ _pam_drop(*buf);
+ *state = STATE_EOF;
+ return -1;
+ }
+
+ memset(to, '\0', PAM_GROUP_BUFLEN - (to - *buf));
+
+ to = *buf;
+ onspace = 1; /* delete any leading spaces */
+
+ for (src = to; (c=*src) != '\0'; ++src) {
+ if (*state == STATE_COMMENT && c != '\n') {
+ continue;
+ }
+
+ switch (c) {
+ case '\n':
+ *state = STATE_NL;
+ *to = '\0';
+ *from = (src - *buf) + 1;
+ trim_spaces(*buf, to);
+ return fd;
+
+ case '\t':
+ case ' ':
+ if (!onspace) {
+ onspace = 1;
+ *to++ = ' ';
}
- }
- switch ((*buf)[i]) {
- int j, c;
+ break;
+
+ case '!':
+ onspace = 1; /* ignore following spaces */
+ *to++ = '!';
+ break;
+
case '#':
- c = 0;
- for (j=i; j < *to && (c = (*buf)[j]) != '\n'; ++j);
- if (j >= *to) {
- (*buf)[*to = ++i] = '\0';
- } else if (c == '\n') {
- shift_bytes(i + (*buf), j-i, (*to) - j);
- *to -= j-i;
- ++i;
- } else {
- pam_syslog(pamh, LOG_CRIT,
- "internal error in file %s at line %d",
- __FILE__, __LINE__);
- close(fd);
- return -1;
- }
+ *state = STATE_COMMENT;
break;
+
+ case FIELD_SEPARATOR:
+ *state = STATE_FIELD;
+ *to = '\0';
+ *from = (src - *buf) + 1;
+ trim_spaces(*buf, to);
+ return fd;
+
case '\\':
- if ((*buf)[i+1] == '\n') {
- shift_bytes(i + *buf, 2, *to - (i+2));
- *to -= 2;
- } else {
- ++i; /* we don't escape non-newline characters */
+ if (src[1] == '\n') {
+ ++src; /* skip it */
+ break;
}
- break;
- case '!':
- case ' ':
- case '\t':
- if ((*buf)[i] != '!')
- (*buf)[i] = ',';
- /* delete any trailing spaces */
- for (j=++i; j < *to && ( (c = (*buf)[j]) == ' '
- || c == '\t' ); ++j);
- shift_bytes(i + *buf, j-i, (*to)-j );
- *to -= j-i;
- break;
default:
- ++i;
- }
+ *to++ = c;
+ onspace = 0;
}
+ if (src > to)
+ *src = '\0'; /* clearing */
}
- (*buf)[*to] = '\0';
-
- /* now return the next field (set the from/to markers) */
- {
- int i;
-
- for (i=0; i<*to; ++i) {
- switch ((*buf)[i]) {
- case '#':
- case '\n': /* end of the line/file */
- (*buf)[i] = '\0';
- *from = i;
- return fd;
- case FIELD_SEPARATOR: /* end of the field */
- (*buf)[i] = '\0';
- *from = ++i;
- return fd;
- }
- }
- *from = i;
- (*buf)[*from] = '\0';
+ if (*state != STATE_COMMENT) {
+ *state = STATE_COMMENT;
+ pam_syslog(pamh, LOG_ERR, "field too long - ignored");
+ **buf = '\0';
+ } else {
+ *to = '\0';
+ trim_spaces(*buf, to);
}
- if (*to <= 0) {
- D(("[end of text]"));
- *buf = NULL;
- }
+ *from = 0;
return fd;
}
@@ -582,7 +573,7 @@ static int mkgrplist(pam_handle_t *pamh, char *buf, gid_t **list, int len)
static int check_account(pam_handle_t *pamh, const char *service,
const char *tty, const char *user)
{
- int from=0,to=0,fd=-1;
+ int from=0, state=STATE_NL, fd=-1;
char *buffer=NULL;
int count=0;
TIME here_and_now;
@@ -627,7 +618,7 @@ static int check_account(pam_handle_t *pamh, const char *service,
/* here we get the service name field */
- fd = read_field(pamh,fd,&buffer,&from,&to);
+ fd = read_field(pamh, fd, &buffer, &from, &state);
if (!buffer || !buffer[0]) {
/* empty line .. ? */
continue;
@@ -635,15 +626,21 @@ static int check_account(pam_handle_t *pamh, const char *service,
++count;
D(("working on rule #%d",count));
+ if (state != STATE_FIELD) {
+ pam_syslog(pamh, LOG_ERR,
+ "%s: malformed rule #%d", PAM_GROUP_CONF, count);
+ continue;
+ }
+
good = logic_field(pamh,service, buffer, count, is_same);
D(("with service: %s", good ? "passes":"fails" ));
/* here we get the terminal name field */
- fd = read_field(pamh,fd,&buffer,&from,&to);
- if (!buffer || !buffer[0]) {
+ fd = read_field(pamh, fd, &buffer, &from, &state);
+ if (state != STATE_FIELD) {
pam_syslog(pamh, LOG_ERR,
- "%s: no tty entry #%d", PAM_GROUP_CONF, count);
+ "%s: malformed rule #%d", PAM_GROUP_CONF, count);
continue;
}
good &= logic_field(pamh,tty, buffer, count, is_same);
@@ -651,10 +648,10 @@ static int check_account(pam_handle_t *pamh, const char *service,
/* here we get the username field */
- fd = read_field(pamh,fd,&buffer,&from,&to);
- if (!buffer || !buffer[0]) {
+ fd = read_field(pamh, fd, &buffer, &from, &state);
+ if (state != STATE_FIELD) {
pam_syslog(pamh, LOG_ERR,
- "%s: no user entry #%d", PAM_GROUP_CONF, count);
+ "%s: malformed rule #%d", PAM_GROUP_CONF, count);
continue;
}
/* If buffer starts with @, we are using netgroups */
@@ -669,20 +666,20 @@ static int check_account(pam_handle_t *pamh, const char *service,
/* here we get the time field */
- fd = read_field(pamh,fd,&buffer,&from,&to);
- if (!buffer || !buffer[0]) {
+ fd = read_field(pamh, fd, &buffer, &from, &state);
+ if (state != STATE_FIELD) {
pam_syslog(pamh, LOG_ERR,
- "%s: no time entry #%d", PAM_GROUP_CONF, count);
+ "%s: malformed rule #%d", PAM_GROUP_CONF, count);
continue;
}
good &= logic_field(pamh,&here_and_now, buffer, count, check_time);
D(("with time: %s", good ? "passes":"fails" ));
- fd = read_field(pamh,fd,&buffer,&from,&to);
- if (!buffer || !buffer[0]) {
+ fd = read_field(pamh, fd, &buffer, &from, &state);
+ if (state == STATE_FIELD) {
pam_syslog(pamh, LOG_ERR,
- "%s: no listed groups for rule #%d", PAM_GROUP_CONF, count);
+ "%s: poorly terminated rule #%d", PAM_GROUP_CONF, count);
continue;
}
@@ -701,14 +698,6 @@ static int check_account(pam_handle_t *pamh, const char *service,
}
}
- /* check the line is terminated correctly */
-
- fd = read_field(pamh,fd,&buffer,&from,&to);
- if (buffer && buffer[0]) {
- pam_syslog(pamh, LOG_ERR,
- "%s: poorly terminated rule #%d", PAM_GROUP_CONF, count);
- }
-
if (good > 0) {
D(("rule #%d passed, added %d groups", count, good));
} else if (good < 0) {
@@ -717,7 +706,7 @@ static int check_account(pam_handle_t *pamh, const char *service,
D(("rule #%d failed", count));
}
- } while (buffer);
+ } while (state != STATE_EOF);
/* now set the groups for the user */
diff --git a/modules/pam_lastlog/pam_lastlog.c b/modules/pam_lastlog/pam_lastlog.c
index b44c1755..9e8da7d2 100644
--- a/modules/pam_lastlog/pam_lastlog.c
+++ b/modules/pam_lastlog/pam_lastlog.c
@@ -403,9 +403,13 @@ last_login_failed(pam_handle_t *pamh, int announce, const char *user, time_t llt
/* obtain the failed login attempt records from btmp */
fd = open(_PATH_BTMP, O_RDONLY);
if (fd < 0) {
+ int save_errno = errno;
pam_syslog(pamh, LOG_ERR, "unable to open %s: %m", _PATH_BTMP);
D(("unable to open %s file", _PATH_BTMP));
- return PAM_SERVICE_ERR;
+ if (save_errno == ENOENT)
+ return PAM_SUCCESS;
+ else
+ return PAM_SERVICE_ERR;
}
while ((retval=pam_modutil_read(fd, (void *)&ut,
diff --git a/modules/pam_limits/limits.conf.5.xml b/modules/pam_limits/limits.conf.5.xml
index a9757a7f..939fa0fe 100644
--- a/modules/pam_limits/limits.conf.5.xml
+++ b/modules/pam_limits/limits.conf.5.xml
@@ -53,7 +53,38 @@
<listitem>
<para>
the wildcard <emphasis remap='B'>%</emphasis>, for maxlogins limit only,
- can also be used with <emphasis remap='b'>%group</emphasis> syntax.
+ can also be used with <emphasis remap='B'>%group</emphasis> syntax. If the
+ <emphasis remap='B'>%</emphasis> wildcard is used alone it is identical
+ to using <emphasis remap='B'>*</emphasis> with maxsyslogins limit. With
+ a group specified after <emphasis remap='B'>%</emphasis> it limits the total
+ number of logins of all users that are member of the group.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ an uid range specified as <replaceable>&lt;min_uid&gt;</replaceable><emphasis
+ remap='B'>:</emphasis><replaceable>&lt;max_uid&gt;</replaceable>. If min_uid
+ is omitted, the match is exact for the max_uid. If max_uid is omitted, all
+ uids greater than or equal min_uid match.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ a gid range specified as <emphasis
+ remap='B'>@</emphasis><replaceable>&lt;min_gid&gt;</replaceable><emphasis
+ remap='B'>:</emphasis><replaceable>&lt;max_gid&gt;</replaceable>. If min_gid
+ is omitted, the match is exact for the max_gid. If max_gid is omitted, all
+ gids greater than or equal min_gid match. For the exact match all groups including
+ the user's supplementary groups are examined. For the range matches only
+ the user's primary group is examined.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ a gid specified as <emphasis
+ remap='B'>%:</emphasis><replaceable>&lt;gid&gt;</replaceable> applicable
+ to maxlogins limit only. It limits the total number of logins of all users
+ that are member of the group with the specified gid.
</para>
</listitem>
</itemizedlist>
@@ -182,7 +213,7 @@
<varlistentry>
<term><option>maxsyslogins</option></term>
<listitem>
- <para>maximum number of logins on system</para>
+ <para>maximum number of all logins on system</para>
</listitem>
</varlistentry>
<varlistentry>
@@ -205,7 +236,7 @@
</listitem>
</varlistentry>
<varlistentry>
- <term><option>msqqueue</option></term>
+ <term><option>msgqueue</option></term>
<listitem>
<para>maximum memory used by POSIX message queues (bytes)
(Linux 2.6 and higher)</para>
@@ -272,12 +303,15 @@
</para>
<programlisting>
* soft core 0
-* hard rss 10000
+* hard nofile 512
@student hard nproc 20
@faculty soft nproc 20
@faculty hard nproc 50
ftp hard nproc 0
@student - maxlogins 4
+:123 hard cpu 5000
+@500: soft cpu 10000
+600:700 hard locks 10
</programlisting>
</refsect1>
diff --git a/modules/pam_limits/pam_limits.8.xml b/modules/pam_limits/pam_limits.8.xml
index 0be7ef4d..663c0e7b 100644
--- a/modules/pam_limits/pam_limits.8.xml
+++ b/modules/pam_limits/pam_limits.8.xml
@@ -23,15 +23,15 @@
<cmdsynopsis id="pam_limits-cmdsynopsis">
<command>pam_limits.so</command>
<arg choice="opt">
- change_uid
- </arg>
- <arg choice="opt">
conf=<replaceable>/path/to/limits.conf</replaceable>
</arg>
<arg choice="opt">
debug
</arg>
<arg choice="opt">
+ set_all
+ </arg>
+ <arg choice="opt">
utmp_early
</arg>
<arg choice="opt">
@@ -72,35 +72,34 @@
<variablelist>
<varlistentry>
<term>
- <option>change_uid</option>
+ <option>conf=<replaceable>/path/to/limits.conf</replaceable></option>
</term>
<listitem>
<para>
- Change real uid to the user for who the limits are set up. Use this
- option if you have problems like login not forking a shell for user
- who has no processes. Be warned that something else may break when
- you do this.
+ Indicate an alternative limits.conf style configuration file to
+ override the default.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
- <option>conf=<replaceable>/path/to/limits.conf</replaceable></option>
+ <option>debug</option>
</term>
<listitem>
<para>
- Indicate an alternative limits.conf style configuration file to
- override the default.
+ Print debug information.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
- <option>debug</option>
+ <option>set_all</option>
</term>
<listitem>
<para>
- Print debug information.
+ Set the limits for which no value is specified in the
+ configuration file to the one from the process with the
+ PID 1.
</para>
</listitem>
</varlistentry>
diff --git a/modules/pam_limits/pam_limits.c b/modules/pam_limits/pam_limits.c
index f446f9e3..c1810e07 100644
--- a/modules/pam_limits/pam_limits.c
+++ b/modules/pam_limits/pam_limits.c
@@ -51,9 +51,16 @@
#define LIMITS_DEF_USER 0 /* limit was set by an user entry */
#define LIMITS_DEF_GROUP 1 /* limit was set by a group entry */
#define LIMITS_DEF_ALLGROUP 2 /* limit was set by a group entry */
-#define LIMITS_DEF_ALL 3 /* limit was set by an default entry */
-#define LIMITS_DEF_DEFAULT 4 /* limit was set by an default entry */
-#define LIMITS_DEF_NONE 5 /* this limit was not set yet */
+#define LIMITS_DEF_ALL 3 /* limit was set by an all entry */
+#define LIMITS_DEF_DEFAULT 4 /* limit was set by a default entry */
+#define LIMITS_DEF_KERNEL 5 /* limit was set from /proc/1/limits */
+#define LIMITS_DEF_NONE 6 /* this limit was not set yet */
+
+#define LIMIT_RANGE_ERR -1 /* error in specified uid/gid range */
+#define LIMIT_RANGE_NONE 0 /* no range specified */
+#define LIMIT_RANGE_ONE 1 /* exact uid/gid specified (:max_uid)*/
+#define LIMIT_RANGE_MIN 2 /* only minimum uid/gid specified (min_uid:) */
+#define LIMIT_RANGE_MM 3 /* both min and max uid/gid specified (min_uid:max_uid) */
static const char *limits_def_names[] = {
"USER",
@@ -61,6 +68,7 @@ static const char *limits_def_names[] = {
"ALLGROUP",
"ALL",
"DEFAULT",
+ "KERNEL",
"NONE",
NULL
};
@@ -103,9 +111,9 @@ struct pam_limit_s {
/* argument parsing */
#define PAM_DEBUG_ARG 0x0001
-#define PAM_DO_SETREUID 0x0002
#define PAM_UTMP_EARLY 0x0004
#define PAM_NO_AUDIT 0x0008
+#define PAM_SET_ALL 0x0010
/* Limits from globbed files. */
#define LIMITS_CONF_GLOB LIMITS_FILE_DIR
@@ -127,12 +135,12 @@ _pam_parse (const pam_handle_t *pamh, int argc, const char **argv,
ctrl |= PAM_DEBUG_ARG;
} else if (!strncmp(*argv,"conf=",5)) {
pl->conf_file = *argv+5;
- } else if (!strncmp(*argv,"change_uid",10)) {
- ctrl |= PAM_DO_SETREUID;
} else if (!strcmp(*argv,"utmp_early")) {
ctrl |= PAM_UTMP_EARLY;
} else if (!strcmp(*argv,"noaudit")) {
ctrl |= PAM_NO_AUDIT;
+ } else if (!strcmp(*argv,"set_all")) {
+ ctrl |= PAM_SET_ALL;
} else {
pam_syslog(pamh, LOG_ERR, "unknown option: %s", *argv);
}
@@ -289,7 +297,140 @@ check_logins (pam_handle_t *pamh, const char *name, int limit, int ctrl,
return 0;
}
-static int init_limits(struct pam_limit_s *pl)
+static const char *lnames[RLIM_NLIMITS] = {
+ [RLIMIT_CPU] = "Max cpu time",
+ [RLIMIT_FSIZE] = "Max file size",
+ [RLIMIT_DATA] = "Max data size",
+ [RLIMIT_STACK] = "Max stack size",
+ [RLIMIT_CORE] = "Max core file size",
+ [RLIMIT_RSS] = "Max resident set",
+ [RLIMIT_NPROC] = "Max processes",
+ [RLIMIT_NOFILE] = "Max open files",
+ [RLIMIT_MEMLOCK] = "Max locked memory",
+#ifdef RLIMIT_AS
+ [RLIMIT_AS] = "Max address space",
+#endif
+#ifdef RLIMIT_LOCKS
+ [RLIMIT_LOCKS] = "Max file locks",
+#endif
+#ifdef RLIMIT_SIGPENDING
+ [RLIMIT_SIGPENDING] = "Max pending signals",
+#endif
+#ifdef RLIMIT_MSGQUEUE
+ [RLIMIT_MSGQUEUE] = "Max msgqueue size",
+#endif
+#ifdef RLIMIT_NICE
+ [RLIMIT_NICE] = "Max nice priority",
+#endif
+#ifdef RLIMIT_RTPRIO
+ [RLIMIT_RTPRIO] = "Max realtime priority",
+#endif
+#ifdef RLIMIT_RTTIME
+ [RLIMIT_RTTIME] = "Max realtime timeout",
+#endif
+};
+
+static int str2rlimit(char *name) {
+ int i;
+ if (!name || *name == '\0')
+ return -1;
+ for(i = 0; i < RLIM_NLIMITS; i++) {
+ if (strcmp(name, lnames[i]) == 0) return i;
+ }
+ return -1;
+}
+
+static rlim_t str2rlim_t(char *value) {
+ unsigned long long rlimit = 0;
+
+ if (!value) return (rlim_t)rlimit;
+ if (strcmp(value, "unlimited") == 0) {
+ return RLIM_INFINITY;
+ }
+ rlimit = strtoull(value, NULL, 10);
+ return (rlim_t)rlimit;
+}
+
+#define LIMITS_SKIP_WHITESPACE { \
+ /* step backwards over spaces */ \
+ pos--; \
+ while (pos && line[pos] == ' ') pos--; \
+ if (!pos) continue; \
+ line[pos+1] = '\0'; \
+}
+#define LIMITS_MARK_ITEM(item) { \
+ /* step backwards over non-spaces */ \
+ pos--; \
+ while (pos && line[pos] != ' ') pos--; \
+ if (!pos) continue; \
+ item = line + pos + 1; \
+}
+
+static void parse_kernel_limits(pam_handle_t *pamh, struct pam_limit_s *pl, int ctrl)
+{
+ int i, maxlen = 0;
+ FILE *limitsfile;
+ const char *proclimits = "/proc/1/limits";
+ char line[256];
+ char *units, *hard, *soft, *name;
+
+ if (!(limitsfile = fopen(proclimits, "r"))) {
+ pam_syslog(pamh, LOG_WARNING, "Could not read %s (%s), using PAM defaults", proclimits, strerror(errno));
+ return;
+ }
+
+ while (fgets(line, 256, limitsfile)) {
+ int pos = strlen(line);
+ if (pos < 2) continue;
+
+ /* drop trailing newline */
+ if (line[pos-1] == '\n') {
+ pos--;
+ line[pos] = '\0';
+ }
+
+ /* determine formatting boundry of limits report */
+ if (!maxlen && strncmp(line, "Limit", 5) == 0) {
+ maxlen = pos;
+ continue;
+ }
+
+ if (pos == maxlen) {
+ /* step backwards over "Units" name */
+ LIMITS_SKIP_WHITESPACE;
+ LIMITS_MARK_ITEM(units);
+ }
+ else {
+ units = "";
+ }
+
+ /* step backwards over "Hard Limit" value */
+ LIMITS_SKIP_WHITESPACE;
+ LIMITS_MARK_ITEM(hard);
+
+ /* step backwards over "Soft Limit" value */
+ LIMITS_SKIP_WHITESPACE;
+ LIMITS_MARK_ITEM(soft);
+
+ /* step backwards over name of limit */
+ LIMITS_SKIP_WHITESPACE;
+ name = line;
+
+ i = str2rlimit(name);
+ if (i < 0 || i >= RLIM_NLIMITS) {
+ if (ctrl & PAM_DEBUG_ARG)
+ pam_syslog(pamh, LOG_DEBUG, "Unknown kernel rlimit '%s' ignored", name);
+ continue;
+ }
+ pl->limits[i].limit.rlim_cur = str2rlim_t(soft);
+ pl->limits[i].limit.rlim_max = str2rlim_t(hard);
+ pl->limits[i].src_soft = LIMITS_DEF_KERNEL;
+ pl->limits[i].src_hard = LIMITS_DEF_KERNEL;
+ }
+ fclose(limitsfile);
+}
+
+static int init_limits(pam_handle_t *pamh, struct pam_limit_s *pl, int ctrl)
{
int i;
int retval = PAM_SUCCESS;
@@ -310,6 +451,20 @@ static int init_limits(struct pam_limit_s *pl)
}
}
+#ifdef __linux__
+ if (ctrl & PAM_SET_ALL) {
+ parse_kernel_limits(pamh, pl, ctrl);
+
+ for(i = 0; i < RLIM_NLIMITS; i++) {
+ if (pl->limits[i].supported &&
+ (pl->limits[i].src_soft == LIMITS_DEF_NONE ||
+ pl->limits[i].src_hard == LIMITS_DEF_NONE)) {
+ pam_syslog(pamh, LOG_WARNING, "Did not find kernel RLIMIT for %s, using PAM default", rlimit2str(i));
+ }
+ }
+ }
+#endif
+
errno = 0;
pl->priority = getpriority (PRIO_PROCESS, 0);
if (pl->priority == -1 && errno != 0)
@@ -523,8 +678,57 @@ process_limit (const pam_handle_t *pamh, int source, const char *lim_type,
return;
}
-static int parse_config_file(pam_handle_t *pamh, const char *uname, int ctrl,
- struct pam_limit_s *pl)
+static int
+parse_uid_range(pam_handle_t *pamh, const char *domain,
+ uid_t *min_uid, uid_t *max_uid)
+{
+ const char *range = domain;
+ char *pmax;
+ char *endptr;
+ int rv = LIMIT_RANGE_MM;
+
+ if ((pmax=strchr(range, ':')) == NULL)
+ return LIMIT_RANGE_NONE;
+ ++pmax;
+
+ if (range[0] == '@' || range[0] == '%')
+ ++range;
+
+ if (range[0] == ':')
+ rv = LIMIT_RANGE_ONE;
+ else {
+ errno = 0;
+ *min_uid = strtoul (range, &endptr, 10);
+ if (errno != 0 || (range == endptr) || *endptr != ':') {
+ pam_syslog(pamh, LOG_DEBUG,
+ "wrong min_uid/gid value in '%s'", domain);
+ return LIMIT_RANGE_ERR;
+ }
+ }
+
+ if (*pmax == '\0') {
+ if (rv == LIMIT_RANGE_ONE)
+ return LIMIT_RANGE_ERR;
+ else
+ return LIMIT_RANGE_MIN;
+ }
+
+ errno = 0;
+ *max_uid = strtoul (pmax, &endptr, 10);
+ if (errno != 0 || (pmax == endptr) || *endptr != '\0') {
+ pam_syslog(pamh, LOG_DEBUG,
+ "wrong max_uid/gid value in '%s'", domain);
+ return LIMIT_RANGE_ERR;
+ }
+
+ if (rv == LIMIT_RANGE_ONE)
+ *min_uid = *max_uid;
+ return rv;
+}
+
+static int
+parse_config_file(pam_handle_t *pamh, const char *uname, uid_t uid, gid_t gid,
+ int ctrl, struct pam_limit_s *pl)
{
FILE *fil;
char buf[LINE_LENGTH];
@@ -546,8 +750,10 @@ static int parse_config_file(pam_handle_t *pamh, const char *uname, int ctrl,
char item[LINE_LENGTH];
char value[LINE_LENGTH];
int i;
+ int rngtype;
size_t j;
char *tptr,*line;
+ uid_t min_uid = (uid_t)-1, max_uid = (uid_t)-1;
line = buf;
/* skip the leading white space */
@@ -575,6 +781,11 @@ static int parse_config_file(pam_handle_t *pamh, const char *uname, int ctrl,
for(j=0; j < strlen(ltype); j++)
ltype[j]=tolower(ltype[j]);
+ if ((rngtype=parse_uid_range(pamh, domain, &min_uid, &max_uid)) < 0) {
+ pam_syslog(pamh, LOG_WARNING, "invalid uid range '%s' - skipped", domain);
+ continue;
+ }
+
if (i == 4) { /* a complete line */
for(j=0; j < strlen(item); j++)
item[j]=tolower(item[j]);
@@ -584,47 +795,133 @@ static int parse_config_file(pam_handle_t *pamh, const char *uname, int ctrl,
if (strcmp(uname, domain) == 0) /* this user have a limit */
process_limit(pamh, LIMITS_DEF_USER, ltype, item, value, ctrl, pl);
else if (domain[0]=='@') {
- if (ctrl & PAM_DEBUG_ARG) {
+ if (ctrl & PAM_DEBUG_ARG) {
pam_syslog(pamh, LOG_DEBUG,
"checking if %s is in group %s",
uname, domain + 1);
- }
- if (pam_modutil_user_in_group_nam_nam(pamh, uname, domain+1))
- process_limit(pamh, LIMITS_DEF_GROUP, ltype, item, value, ctrl,
+ }
+ switch(rngtype) {
+ case LIMIT_RANGE_NONE:
+ if (pam_modutil_user_in_group_nam_nam(pamh, uname, domain+1))
+ process_limit(pamh, LIMITS_DEF_GROUP, ltype, item, value, ctrl,
+ pl);
+ break;
+ case LIMIT_RANGE_ONE:
+ if (pam_modutil_user_in_group_nam_gid(pamh, uname, (gid_t)max_uid))
+ process_limit(pamh, LIMITS_DEF_GROUP, ltype, item, value, ctrl,
pl);
+ break;
+ case LIMIT_RANGE_MM:
+ if (gid > (gid_t)max_uid)
+ break;
+ /* fallthrough */
+ case LIMIT_RANGE_MIN:
+ if (gid >= (gid_t)min_uid)
+ process_limit(pamh, LIMITS_DEF_GROUP, ltype, item, value, ctrl,
+ pl);
+ }
} else if (domain[0]=='%') {
- if (ctrl & PAM_DEBUG_ARG) {
+ if (ctrl & PAM_DEBUG_ARG) {
pam_syslog(pamh, LOG_DEBUG,
"checking if %s is in group %s",
uname, domain + 1);
- }
- if (strcmp(domain,"%") == 0)
- process_limit(pamh, LIMITS_DEF_ALL, ltype, item, value, ctrl,
- pl);
- else if (pam_modutil_user_in_group_nam_nam(pamh, uname, domain+1)) {
- strcpy(pl->login_group, domain+1);
- process_limit(pamh, LIMITS_DEF_ALLGROUP, ltype, item, value, ctrl,
- pl);
}
- } else if (strcmp(domain, "*") == 0)
- process_limit(pamh, LIMITS_DEF_DEFAULT, ltype, item, value, ctrl,
- pl);
+ switch(rngtype) {
+ case LIMIT_RANGE_NONE:
+ if (strcmp(domain,"%") == 0)
+ process_limit(pamh, LIMITS_DEF_ALL, ltype, item, value, ctrl,
+ pl);
+ else if (pam_modutil_user_in_group_nam_nam(pamh, uname, domain+1)) {
+ strcpy(pl->login_group, domain+1);
+ process_limit(pamh, LIMITS_DEF_ALLGROUP, ltype, item, value, ctrl,
+ pl);
+ }
+ break;
+ case LIMIT_RANGE_ONE:
+ if (pam_modutil_user_in_group_nam_gid(pamh, uname, (gid_t)max_uid)) {
+ struct group *grp;
+ grp = pam_modutil_getgrgid(pamh, (gid_t)max_uid);
+ strncpy(pl->login_group, grp->gr_name, sizeof(pl->login_group));
+ pl->login_group[sizeof(pl->login_group)-1] = '\0';
+ process_limit(pamh, LIMITS_DEF_ALLGROUP, ltype, item, value, ctrl,
+ pl);
+ }
+ break;
+ case LIMIT_RANGE_MIN:
+ case LIMIT_RANGE_MM:
+ pam_syslog(pamh, LOG_WARNING, "range unsupported for %%group matching - ignored");
+ }
+ } else {
+ switch(rngtype) {
+ case LIMIT_RANGE_NONE:
+ if (strcmp(domain, "*") == 0)
+ process_limit(pamh, LIMITS_DEF_DEFAULT, ltype, item, value, ctrl,
+ pl);
+ break;
+ case LIMIT_RANGE_ONE:
+ if (uid != max_uid)
+ break;
+ /* fallthrough */
+ case LIMIT_RANGE_MM:
+ if (uid > max_uid)
+ break;
+ /* fallthrough */
+ case LIMIT_RANGE_MIN:
+ if (uid >= min_uid)
+ process_limit(pamh, LIMITS_DEF_USER, ltype, item, value, ctrl, pl);
+ }
+ }
} else if (i == 2 && ltype[0] == '-') { /* Probably a no-limit line */
if (strcmp(uname, domain) == 0) {
if (ctrl & PAM_DEBUG_ARG) {
pam_syslog(pamh, LOG_DEBUG, "no limits for '%s'", uname);
}
- fclose(fil);
- return PAM_IGNORE;
- } else if (domain[0] == '@' && pam_modutil_user_in_group_nam_nam(pamh, uname, domain+1)) {
+ } else if (domain[0] == '@') {
+ switch(rngtype) {
+ case LIMIT_RANGE_NONE:
+ if (!pam_modutil_user_in_group_nam_nam(pamh, uname, domain+1))
+ continue; /* next line */
+ break;
+ case LIMIT_RANGE_ONE:
+ if (!pam_modutil_user_in_group_nam_gid(pamh, uname, (gid_t)max_uid))
+ continue; /* next line */
+ break;
+ case LIMIT_RANGE_MM:
+ if (gid > (gid_t)max_uid)
+ continue; /* next line */
+ /* fallthrough */
+ case LIMIT_RANGE_MIN:
+ if (gid < (gid_t)min_uid)
+ continue; /* next line */
+ }
if (ctrl & PAM_DEBUG_ARG) {
pam_syslog(pamh, LOG_DEBUG,
"no limits for '%s' in group '%s'",
uname, domain+1);
}
- fclose(fil);
- return PAM_IGNORE;
+ } else {
+ switch(rngtype) {
+ case LIMIT_RANGE_NONE:
+ continue; /* next line */
+ case LIMIT_RANGE_ONE:
+ if (uid != max_uid)
+ continue; /* next line */
+ break;
+ case LIMIT_RANGE_MM:
+ if (uid > max_uid)
+ continue; /* next line */
+ /* fallthrough */
+ case LIMIT_RANGE_MIN:
+ if (uid >= min_uid)
+ break;
+ continue; /* next line */
+ }
+ if (ctrl & PAM_DEBUG_ARG) {
+ pam_syslog(pamh, LOG_DEBUG, "no limits for '%s'", uname);
+ }
}
+ fclose(fil);
+ return PAM_IGNORE;
} else {
pam_syslog(pamh, LOG_WARNING, "invalid line '%s' - skipped", line);
}
@@ -728,13 +1025,13 @@ pam_sm_open_session (pam_handle_t *pamh, int flags UNUSED,
return PAM_USER_UNKNOWN;
}
- retval = init_limits(pl);
+ retval = init_limits(pamh, pl, ctrl);
if (retval != PAM_SUCCESS) {
pam_syslog(pamh, LOG_WARNING, "cannot initialize");
return PAM_ABORT;
}
- retval = parse_config_file(pamh, pwd->pw_name, ctrl, pl);
+ retval = parse_config_file(pamh, pwd->pw_name, pwd->pw_uid, pwd->pw_gid, ctrl, pl);
if (retval == PAM_IGNORE) {
D(("the configuration file ('%s') has an applicable '<domain> -' entry", CONF_FILE));
return PAM_SUCCESS;
@@ -758,7 +1055,7 @@ pam_sm_open_session (pam_handle_t *pamh, int flags UNUSED,
/* Parse the *.conf files. */
for (i = 0; globbuf.gl_pathv[i] != NULL; i++) {
pl->conf_file = globbuf.gl_pathv[i];
- retval = parse_config_file(pamh, pwd->pw_name, ctrl, pl);
+ retval = parse_config_file(pamh, pwd->pw_name, pwd->pw_uid, pwd->pw_gid, ctrl, pl);
if (retval == PAM_IGNORE) {
D(("the configuration file ('%s') has an applicable '<domain> -' entry", pl->conf_file));
globfree(&globbuf);
@@ -777,10 +1074,6 @@ out:
return retval;
}
- if (ctrl & PAM_DO_SETREUID) {
- setreuid(pwd->pw_uid, -1);
- }
-
retval = setup_limits(pamh, pwd->pw_name, pwd->pw_uid, ctrl, pl);
if (retval & LOGIN_ERR)
pam_error(pamh, _("Too many logins for '%s'."), pwd->pw_name);
diff --git a/modules/pam_listfile/pam_listfile.c b/modules/pam_listfile/pam_listfile.c
index 616d2201..2af2afd8 100644
--- a/modules/pam_listfile/pam_listfile.c
+++ b/modules/pam_listfile/pam_listfile.c
@@ -78,8 +78,14 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED,
{
const char *junk;
+ /* option quiet has no value */
+ if(!strcmp(argv[i],"quiet")) {
+ quiet = 1;
+ continue;
+ }
+
memset(mybuf,'\0',sizeof(mybuf));
- memset(myval,'\0',sizeof(mybuf));
+ memset(myval,'\0',sizeof(myval));
junk = strchr(argv[i], '=');
if((junk == NULL) || (junk - argv[i]) >= (int) sizeof(mybuf)) {
pam_syslog(pamh,LOG_ERR, "Bad option: \"%s\"",
@@ -142,8 +148,6 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED,
apply_type=APPLY_TYPE_USER;
strncpy(apply_val,myval,sizeof(apply_val)-1);
}
- } else if (!strcmp(mybuf,"quiet")) {
- quiet = 1;
} else {
free(ifname);
pam_syslog(pamh,LOG_ERR, "Unknown option: %s",mybuf);
@@ -283,7 +287,8 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED,
ifname, citem, citemp, sense);
#endif
if(lstat(ifname,&fileinfo)) {
- pam_syslog(pamh,LOG_ERR, "Couldn't open %s",ifname);
+ if(!quiet)
+ pam_syslog(pamh,LOG_ERR, "Couldn't open %s",ifname);
free(ifname);
return onerr;
}
diff --git a/modules/pam_loginuid/pam_loginuid.c b/modules/pam_loginuid/pam_loginuid.c
index 4fa486c7..06479973 100644
--- a/modules/pam_loginuid/pam_loginuid.c
+++ b/modules/pam_loginuid/pam_loginuid.c
@@ -14,7 +14,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * Foundation, Inc., 51 Franklin Street, Suite 500
+ * Boston, MA 02110-1335 USA
*
* Authors:
* Steve Grubb <sgrubb@redhat.com>
diff --git a/modules/pam_namespace/argv_parse.c b/modules/pam_namespace/argv_parse.c
index acc76d74..40510542 100644
--- a/modules/pam_namespace/argv_parse.c
+++ b/modules/pam_namespace/argv_parse.c
@@ -44,15 +44,15 @@ int argv_parse(const char *in_buf, int *ret_argc, char ***ret_argv)
{
int argc = 0, max_argc = 0;
char **argv, **new_argv, *buf, ch;
- const char *cp = 0;
- char *outcp = 0;
+ const char *cp = NULL;
+ char *outcp = NULL;
int state = STATE_WHITESPACE;
buf = malloc(strlen(in_buf)+1);
if (!buf)
return -1;
- max_argc = 0; argc = 0; argv = 0;
+ argv = NULL;
outcp = buf;
for (cp = in_buf; (ch = *cp); cp++) {
if (state == STATE_WHITESPACE) {
@@ -111,23 +111,30 @@ int argv_parse(const char *in_buf, int *ret_argc, char ***ret_argv)
}
if (state != STATE_WHITESPACE)
*outcp++ = '\0';
- if (argv == 0) {
- argv = malloc(sizeof(char *));
+ if (ret_argv) {
+ if (argv == NULL) {
+ free(buf);
+ if ((argv=malloc(sizeof(char *))) == NULL)
+ return -1;
+ }
+ argv[argc] = NULL;
+ *ret_argv = argv;
+ } else {
free(buf);
+ free(argv);
}
- argv[argc] = 0;
if (ret_argc)
*ret_argc = argc;
- if (ret_argv)
- *ret_argv = argv;
return 0;
}
void argv_free(char **argv)
{
- if (*argv)
- free(*argv);
- free(argv);
+ if (argv) {
+ if (*argv)
+ free(*argv);
+ free(argv);
+ }
}
#ifdef DEBUG_ARGV_PARSE
diff --git a/modules/pam_namespace/md5.c b/modules/pam_namespace/md5.c
index 9a060d27..b23d1607 100644
--- a/modules/pam_namespace/md5.c
+++ b/modules/pam_namespace/md5.c
@@ -148,7 +148,7 @@ void MD5Name(MD5Final)(unsigned char digest[16], struct MD5Context *ctx)
MD5Name(MD5Transform)(ctx->buf, (uint32 *) ctx->in);
byteReverse((unsigned char *) ctx->buf, 4);
memcpy(digest, ctx->buf, 16);
- memset(ctx, 0, sizeof(ctx)); /* In case it's sensitive */
+ memset(ctx, 0, sizeof(*ctx)); /* In case it's sensitive */
}
/* The four core functions - F1 is optimized somewhat */
diff --git a/modules/pam_namespace/pam_namespace.8.xml b/modules/pam_namespace/pam_namespace.8.xml
index 0433f0fd..48021c80 100644
--- a/modules/pam_namespace/pam_namespace.8.xml
+++ b/modules/pam_namespace/pam_namespace.8.xml
@@ -52,6 +52,9 @@
<arg choice="opt">
use_default_context
</arg>
+ <arg choice="opt">
+ mount_private
+ </arg>
</cmdsynopsis>
</refsynopsisdiv>
@@ -234,6 +237,24 @@
</listitem>
</varlistentry>
+ <varlistentry>
+ <term>
+ <option>mount_private</option>
+ </term>
+ <listitem>
+ <para>
+ This option can be used on systems where the / mount point or
+ its submounts are made shared (for example with a
+ <command>mount --make-rshared /</command> command).
+ The module will make the polyinstantiated directory mount points
+ private. Normally the pam_namespace will try to detect the
+ shared / mount point and make the polyinstantiated directories
+ private automatically. This option has to be used just when
+ only a subtree is shared and / is not.
+ </para>
+ </listitem>
+ </varlistentry>
+
</variablelist>
</refsect1>
diff --git a/modules/pam_namespace/pam_namespace.c b/modules/pam_namespace/pam_namespace.c
index a13f9599..4a99184a 100644
--- a/modules/pam_namespace/pam_namespace.c
+++ b/modules/pam_namespace/pam_namespace.c
@@ -61,9 +61,11 @@ static void add_polydir_entry(struct instance_data *idata,
static void del_polydir(struct polydir_s *poly)
{
- free(poly->uid);
- free(poly->init_script);
- free(poly);
+ if (poly) {
+ free(poly->uid);
+ free(poly->init_script);
+ free(poly);
+ }
}
/*
@@ -307,10 +309,6 @@ static int process_line(char *line, const char *home, const char *rhome,
const char *rvar_values[] = {rhome, idata->ruser};
int len;
- poly = calloc(1, sizeof(*poly));
- if (poly == NULL)
- goto erralloc;
-
/*
* skip the leading white space
*/
@@ -337,6 +335,10 @@ static int process_line(char *line, const char *home, const char *rhome,
if (line[0] == 0)
return 0;
+ poly = calloc(1, sizeof(*poly));
+ if (poly == NULL)
+ goto erralloc;
+
/*
* Initialize and scan the five strings from the line from the
* namespace configuration file.
@@ -1001,7 +1003,7 @@ static int protect_mount(int dfd, const char *path, struct instance_data *idata)
return 0;
}
-static int protect_dir(const char *path, mode_t mode, int do_mkdir,
+static int protect_dir(const char *path, mode_t mode, int do_mkdir, int always,
struct instance_data *idata)
{
char *p = strdup(path);
@@ -1080,7 +1082,7 @@ static int protect_dir(const char *path, mode_t mode, int do_mkdir,
}
}
- if (flags & O_NOFOLLOW) {
+ if ((flags & O_NOFOLLOW) || always) {
/* we are inside user-owned dir - protect */
if (protect_mount(rv, p, idata) == -1) {
save_errno = errno;
@@ -1093,7 +1095,7 @@ static int protect_dir(const char *path, mode_t mode, int do_mkdir,
error:
save_errno = errno;
free(p);
- if (dfd != AT_FDCWD)
+ if (dfd != AT_FDCWD && dfd >= 0)
close(dfd);
errno = save_errno;
@@ -1122,7 +1124,7 @@ static int check_inst_parent(char *ipath, struct instance_data *idata)
if (trailing_slash)
*trailing_slash = '\0';
- dfd = protect_dir(inst_parent, 0, 1, idata);
+ dfd = protect_dir(inst_parent, 0, 1, 0, idata);
if (dfd == -1 || fstat(dfd, &instpbuf) < 0) {
pam_syslog(idata->pamh, LOG_ERR,
@@ -1257,7 +1259,7 @@ static int create_polydir(struct polydir_s *polyptr,
}
#endif
- rc = protect_dir(dir, mode, 1, idata);
+ rc = protect_dir(dir, mode, 1, idata->flags & PAMNS_MOUNT_PRIVATE, idata);
if (rc == -1) {
pam_syslog(idata->pamh, LOG_ERR,
"Error creating directory %s: %m", dir);
@@ -1445,7 +1447,7 @@ static int ns_setup(struct polydir_s *polyptr,
pam_syslog(idata->pamh, LOG_DEBUG,
"Set namespace for directory %s", polyptr->dir);
- retval = protect_dir(polyptr->dir, 0, 0, idata);
+ retval = protect_dir(polyptr->dir, 0, 0, idata->flags & PAMNS_MOUNT_PRIVATE, idata);
if (retval < 0 && errno != ENOENT) {
pam_syslog(idata->pamh, LOG_ERR, "Polydir %s access error: %m",
@@ -1453,8 +1455,9 @@ static int ns_setup(struct polydir_s *polyptr,
return PAM_SESSION_ERR;
}
- if (retval < 0 && (polyptr->flags & POLYDIR_CREATE)) {
- if (create_polydir(polyptr, idata) != PAM_SUCCESS)
+ if (retval < 0) {
+ if ((polyptr->flags & POLYDIR_CREATE) &&
+ create_polydir(polyptr, idata) != PAM_SUCCESS)
return PAM_SESSION_ERR;
} else {
close(retval);
@@ -1531,6 +1534,22 @@ static int ns_setup(struct polydir_s *polyptr,
goto error_out;
}
+ if (idata->flags & PAMNS_MOUNT_PRIVATE) {
+ /*
+ * Make the polyinstantiated dir private mount. This depends
+ * on making the dir a mount point in the protect_dir call.
+ */
+ if (mount(polyptr->dir, polyptr->dir, NULL, MS_PRIVATE|MS_REC, NULL) < 0) {
+ pam_syslog(idata->pamh, LOG_ERR, "Error making %s a private mount, %m",
+ polyptr->dir);
+ goto error_out;
+ }
+ if (idata->flags & PAMNS_DEBUG)
+ pam_syslog(idata->pamh, LOG_DEBUG,
+ "Polyinstantiated directory %s made as private mount", polyptr->dir);
+
+ }
+
/*
* Bind mount instance directory on top of the polyinstantiated
* directory to provide an instance of polyinstantiated directory
@@ -1871,6 +1890,53 @@ static int ctxt_based_inst_needed(void)
}
#endif
+static int root_shared(void)
+{
+ FILE *f;
+ char *line = NULL;
+ size_t n = 0;
+ int rv = 0;
+
+ f = fopen("/proc/self/mountinfo", "r");
+
+ if (f == NULL)
+ return 0;
+
+ while(getline(&line, &n, f) != -1) {
+ char *l;
+ char *sptr;
+ int i;
+
+ l = line;
+ sptr = NULL;
+ for (i = 0; i < 7; i++) {
+ char *tok;
+
+ tok = strtok_r(l, " ", &sptr);
+ l = NULL;
+ if (tok == NULL)
+ /* next mountinfo line */
+ break;
+
+ if (i == 4 && strcmp(tok, "/") != 0)
+ /* next mountinfo line */
+ break;
+
+ if (i == 6) {
+ if (strncmp(tok, "shared:", 7) == 0)
+ /* there might be more / mounts, the last one counts */
+ rv = 1;
+ else
+ rv = 0;
+ }
+ }
+ }
+
+ free(line);
+ fclose(f);
+
+ return rv;
+}
static int get_user_data(struct instance_data *idata)
{
@@ -1961,12 +2027,15 @@ PAM_EXTERN int pam_sm_open_session(pam_handle_t *pamh, int flags UNUSED,
idata.flags |= PAMNS_USE_DEFAULT_CONTEXT;
idata.flags |= PAMNS_CTXT_BASED_INST;
}
+ if (strcmp(argv[i], "mount_private") == 0) {
+ idata.flags |= PAMNS_MOUNT_PRIVATE;
+ }
if (strcmp(argv[i], "unmnt_remnt") == 0)
unmnt = UNMNT_REMNT;
if (strcmp(argv[i], "unmnt_only") == 0)
unmnt = UNMNT_ONLY;
if (strcmp(argv[i], "require_selinux") == 0) {
- if (~(idata.flags & PAMNS_SELINUX_ENABLED)) {
+ if (!(idata.flags & PAMNS_SELINUX_ENABLED)) {
pam_syslog(idata.pamh, LOG_ERR,
"selinux_required option given and selinux is disabled");
return PAM_SESSION_ERR;
@@ -1980,6 +2049,10 @@ PAM_EXTERN int pam_sm_open_session(pam_handle_t *pamh, int flags UNUSED,
if (retval != PAM_SUCCESS)
return retval;
+ if (root_shared()) {
+ idata.flags |= PAMNS_MOUNT_PRIVATE;
+ }
+
/*
* Parse namespace configuration file which lists directories to
* polyinstantiate, directory where instance directories are to
diff --git a/modules/pam_namespace/pam_namespace.h b/modules/pam_namespace/pam_namespace.h
index da21bd70..c49995c0 100644
--- a/modules/pam_namespace/pam_namespace.h
+++ b/modules/pam_namespace/pam_namespace.h
@@ -74,6 +74,14 @@
#define CLONE_NEWNS 0x00020000 /* Flag to create new namespace */
#endif
+/* mount flags for mount_private */
+#ifndef MS_REC
+#define MS_REC (1<<14)
+#endif
+#ifndef MS_PRIVATE
+#define MS_PRIVATE (1<<18)
+#endif
+
/*
* Module defines
*/
@@ -96,6 +104,7 @@
#define PAMNS_NO_UNMOUNT_ON_CLOSE 0x00010000 /* no unmount at session close */
#define PAMNS_USE_CURRENT_CONTEXT 0x00020000 /* use getcon instead of getexeccon */
#define PAMNS_USE_DEFAULT_CONTEXT 0x00040000 /* use get_default_context instead of getexeccon */
+#define PAMNS_MOUNT_PRIVATE 0x00080000 /* Make the polydir mounts private */
/* polydir flags */
#define POLYDIR_EXCLUSIVE 0x00000001 /* polyinstatiate exclusively for override uids */
diff --git a/modules/pam_nologin/pam_nologin.8.xml b/modules/pam_nologin/pam_nologin.8.xml
index 94c4887b..e4f63707 100644
--- a/modules/pam_nologin/pam_nologin.8.xml
+++ b/modules/pam_nologin/pam_nologin.8.xml
@@ -34,7 +34,7 @@
<para>
pam_nologin is a PAM module that prevents users from logging into
the system when <filename>/var/run/nologin</filename> or
- <filename>/etc/nologin</filename>exists. The contents
+ <filename>/etc/nologin</filename> exists. The contents
of the file are displayed to the user. The pam_nologin module
has no effect on the root user's ability to log in.
</para>
diff --git a/modules/pam_pwhistory/opasswd.c b/modules/pam_pwhistory/opasswd.c
index f045555f..738483ac 100644
--- a/modules/pam_pwhistory/opasswd.c
+++ b/modules/pam_pwhistory/opasswd.c
@@ -181,15 +181,13 @@ check_old_password (pam_handle_t *pamh, const char *user,
fclose (oldpf);
- if (found)
+ if (found && entry.old_passwords)
{
const char delimiters[] = ",";
char *running;
char *oldpass;
- running = strdupa (entry.old_passwords);
- if (running == NULL)
- return PAM_BUF_ERR;
+ running = entry.old_passwords;
do {
oldpass = strsep (&running, delimiters);
@@ -311,8 +309,12 @@ save_old_password (pam_handle_t *pamh, const char *user, uid_t uid,
buflen = DEFAULT_BUFLEN;
buf = malloc (buflen);
if (buf == NULL)
- return PAM_BUF_ERR;
-
+ {
+ fclose (oldpf);
+ fclose (newpf);
+ retval = PAM_BUF_ERR;
+ goto error_opasswd;
+ }
}
buf[0] = '\0';
fgets (buf, buflen - 1, oldpf);
@@ -322,7 +324,12 @@ save_old_password (pam_handle_t *pamh, const char *user, uid_t uid,
cp = buf;
save = strdup (buf); /* Copy to write the original data back. */
if (save == NULL)
- return PAM_BUF_ERR;
+ {
+ fclose (oldpf);
+ fclose (newpf);
+ retval = PAM_BUF_ERR;
+ goto error_opasswd;
+ }
if (n < 1)
break;
@@ -351,31 +358,30 @@ save_old_password (pam_handle_t *pamh, const char *user, uid_t uid,
found = 1;
/* Don't save the current password twice */
- if (entry.old_passwords)
+ if (entry.old_passwords && entry.old_passwords[0] != '\0')
{
- /* there is only one password */
- if (strcmp (entry.old_passwords, oldpass) == 0)
- goto write_old_data;
- else
+ char *last = entry.old_passwords;
+
+ cp = entry.old_passwords;
+ entry.count = 1; /* Don't believe the count */
+ while ((cp = strchr (cp, ',')) != NULL)
{
- /* check last entry */
- cp = strstr (entry.old_passwords, oldpass);
-
- if (cp && strcmp (cp, oldpass) == 0)
- { /* the end is the same, check that there
- is a "," before. */
- --cp;
- if (*cp == ',')
- goto write_old_data;
- }
+ entry.count++;
+ last = ++cp;
}
+
+ /* compare the last password */
+ if (strcmp (last, oldpass) == 0)
+ goto write_old_data;
}
+ else
+ entry.count = 0;
/* increase count. */
entry.count++;
/* check that we don't remember to many passwords. */
- while (entry.count > howmany)
+ while (entry.count > howmany && entry.count > 1)
{
char *p = strpbrk (entry.old_passwords, ",");
if (p != NULL)
@@ -383,12 +389,13 @@ save_old_password (pam_handle_t *pamh, const char *user, uid_t uid,
entry.count--;
}
- if (entry.old_passwords == NULL)
+ if (entry.count == 1)
{
if (asprintf (&out, "%s:%s:%d:%s\n",
entry.user, entry.uid, entry.count,
oldpass) < 0)
{
+ free (save);
retval = PAM_AUTHTOK_ERR;
fclose (oldpf);
fclose (newpf);
@@ -401,6 +408,7 @@ save_old_password (pam_handle_t *pamh, const char *user, uid_t uid,
entry.user, entry.uid, entry.count,
entry.old_passwords, oldpass) < 0)
{
+ free (save);
retval = PAM_AUTHTOK_ERR;
fclose (oldpf);
fclose (newpf);
@@ -493,6 +501,7 @@ save_old_password (pam_handle_t *pamh, const char *user, uid_t uid,
rename (opasswd_tmp, OLD_PASSWORDS_FILE);
error_opasswd:
unlink (opasswd_tmp);
+ free (buf);
return retval;
}
diff --git a/modules/pam_pwhistory/pam_pwhistory.8.xml b/modules/pam_pwhistory/pam_pwhistory.8.xml
index 7696353f..9e1056b2 100644
--- a/modules/pam_pwhistory/pam_pwhistory.8.xml
+++ b/modules/pam_pwhistory/pam_pwhistory.8.xml
@@ -105,7 +105,9 @@
<para>
The last <replaceable>N</replaceable> passwords for each
user are saved in <filename>/etc/security/opasswd</filename>.
- The default is <emphasis>10</emphasis>.
+ The default is <emphasis>10</emphasis>. Value of
+ <emphasis>0</emphasis> makes the module to keep the existing
+ contents of the <filename>opasswd</filename> file unchanged.
</para>
</listitem>
</varlistentry>
diff --git a/modules/pam_pwhistory/pam_pwhistory.c b/modules/pam_pwhistory/pam_pwhistory.c
index 0f6ffca3..9b588958 100644
--- a/modules/pam_pwhistory/pam_pwhistory.c
+++ b/modules/pam_pwhistory/pam_pwhistory.c
@@ -187,12 +187,13 @@ pam_sm_chauthtok (pam_handle_t *pamh, int flags, int argc, const char **argv)
{
retval = pam_get_authtok (pamh, PAM_AUTHTOK, &newpass, NULL);
if (retval != PAM_SUCCESS && retval != PAM_TRY_AGAIN)
- return retval;
+ {
+ if (retval == PAM_CONV_AGAIN)
+ retval = PAM_INCOMPLETE;
+ return retval;
+ }
tries++;
- if (newpass == NULL || retval == PAM_TRY_AGAIN)
- continue;
-
if (options.debug)
{
if (newpass)
@@ -201,12 +202,8 @@ pam_sm_chauthtok (pam_handle_t *pamh, int flags, int argc, const char **argv)
pam_syslog (pamh, LOG_DEBUG, "got no auth token");
}
- if (retval != PAM_SUCCESS || newpass == NULL)
- {
- if (retval == PAM_CONV_AGAIN)
- retval = PAM_INCOMPLETE;
- return retval;
- }
+ if (newpass == NULL || retval == PAM_TRY_AGAIN)
+ continue;
if (options.debug)
pam_syslog (pamh, LOG_DEBUG, "check against old password file");
@@ -219,7 +216,6 @@ pam_sm_chauthtok (pam_handle_t *pamh, int flags, int argc, const char **argv)
newpass = NULL;
/* Remove password item, else following module will use it */
pam_set_item (pamh, PAM_AUTHTOK, (void *) NULL);
- continue;
}
}
@@ -230,8 +226,7 @@ pam_sm_chauthtok (pam_handle_t *pamh, int flags, int argc, const char **argv)
return PAM_MAXTRIES;
}
- /* Remember new password */
- return pam_set_item (pamh, PAM_AUTHTOK, newpass);
+ return PAM_SUCCESS;
}
diff --git a/modules/pam_securetty/pam_securetty.8.xml b/modules/pam_securetty/pam_securetty.8.xml
index dd57705b..48215f5f 100644
--- a/modules/pam_securetty/pam_securetty.8.xml
+++ b/modules/pam_securetty/pam_securetty.8.xml
@@ -33,7 +33,10 @@
user is logging in on a "secure" tty, as defined by the listing
in <filename>/etc/securetty</filename>. pam_securetty also checks
to make sure that <filename>/etc/securetty</filename> is a plain
- file and not world writable.
+ file and not world writable. It will also allow root logins on
+ the tty specified with <option>console=</option> switch on the
+ kernel command line and on ttys from the
+ <filename>/sys/class/tty/console/active</filename>.
</para>
<para>
This module has no effect on non-root users and requires that the
@@ -61,6 +64,19 @@
</para>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term>
+ <option>noconsole</option>
+ </term>
+ <listitem>
+ <para>
+ Do not automatically allow root logins on the kernel console
+ device, as specified on the kernel command line or by the sys file,
+ if it is not also specified in the
+ <filename>/etc/securetty</filename> file.
+ </para>
+ </listitem>
+ </varlistentry>
</variablelist>
</refsect1>
diff --git a/modules/pam_securetty/pam_securetty.c b/modules/pam_securetty/pam_securetty.c
index a3c2010d..4e97ef59 100644
--- a/modules/pam_securetty/pam_securetty.c
+++ b/modules/pam_securetty/pam_securetty.c
@@ -2,6 +2,8 @@
#define SECURETTY_FILE "/etc/securetty"
#define TTY_PREFIX "/dev/"
+#define CMDLINE_FILE "/proc/cmdline"
+#define CONSOLEACTIVE_FILE "/sys/class/tty/console/active"
/*
* by Elliot Lee <sopwith@redhat.com>, Red Hat Software.
@@ -22,6 +24,7 @@
#include <pwd.h>
#include <string.h>
#include <ctype.h>
+#include <limits.h>
/*
* here, we make a definition for the externally accessible function
@@ -38,6 +41,7 @@
#include <security/pam_ext.h>
#define PAM_DEBUG_ARG 0x0001
+#define PAM_NOCONSOLE_ARG 0x0002
static int
_pam_parse (const pam_handle_t *pamh, int argc, const char **argv)
@@ -51,6 +55,8 @@ _pam_parse (const pam_handle_t *pamh, int argc, const char **argv)
if (!strcmp(*argv,"debug"))
ctrl |= PAM_DEBUG_ARG;
+ else if (!strcmp(*argv, "noconsole"))
+ ctrl |= PAM_NOCONSOLE_ARG;
else {
pam_syslog(pamh, LOG_ERR, "unknown option: %s", *argv);
}
@@ -144,6 +150,70 @@ securetty_perform_check (pam_handle_t *pamh, int ctrl,
}
fclose(ttyfile);
+ if (retval && !(ctrl & PAM_NOCONSOLE_ARG)) {
+ FILE *cmdlinefile;
+
+ /* Allow access from the kernel console, if enabled */
+ cmdlinefile = fopen(CMDLINE_FILE, "r");
+
+ if (cmdlinefile != NULL) {
+ char line[LINE_MAX], *p;
+
+ line[0] = 0;
+ fgets(line, sizeof(line), cmdlinefile);
+ fclose(cmdlinefile);
+
+ for (p = line; p; p = strstr(p+1, "console=")) {
+ char *e;
+
+ /* Test whether this is a beginning of a word? */
+ if (p > line && p[-1] != ' ')
+ continue;
+
+ /* Is this our console? */
+ if (strncmp(p + 8, uttyname, strlen(uttyname)))
+ continue;
+
+ /* Is there any garbage after the TTY name? */
+ e = p + 8 + strlen(uttyname);
+ if (*e == ',' || *e == ' ' || *e == '\n' || *e == 0) {
+ retval = 0;
+ break;
+ }
+ }
+ }
+ }
+ if (retval && !(ctrl & PAM_NOCONSOLE_ARG)) {
+ FILE *consoleactivefile;
+
+ /* Allow access from the active console */
+ consoleactivefile = fopen(CONSOLEACTIVE_FILE, "r");
+
+ if (consoleactivefile != NULL) {
+ char line[LINE_MAX], *p, *n;
+
+ line[0] = 0;
+ p = fgets(line, sizeof(line), consoleactivefile);
+ fclose(consoleactivefile);
+
+ if (p) {
+ /* remove the newline character at end */
+ if (line[strlen(line)-1] == '\n')
+ line[strlen(line)-1] = 0;
+
+ for (n = p; n != NULL; p = n+1) {
+ if ((n = strchr(p, ' ')) != NULL)
+ *n = '\0';
+
+ if (strcmp(p, uttyname) == 0) {
+ retval = 0;
+ break;
+ }
+ }
+ }
+ }
+ }
+
if (retval) {
pam_syslog(pamh, LOG_WARNING, "access denied: tty '%s' is not secure !",
uttyname);
diff --git a/modules/pam_selinux/pam_selinux.c b/modules/pam_selinux/pam_selinux.c
index 64fabafd..f99d433a 100644
--- a/modules/pam_selinux/pam_selinux.c
+++ b/modules/pam_selinux/pam_selinux.c
@@ -196,6 +196,7 @@ manual_context (pam_handle_t *pamh, const char *user, int debug)
goto fail_set;
if (context_type_set (new_context, type))
goto fail_set;
+ _pam_drop(type);
}
_pam_drop(response);
@@ -236,19 +237,35 @@ static int mls_range_allowed(pam_handle_t *pamh, security_context_t src, securit
{
struct av_decision avd;
int retval;
- unsigned int bit = CONTEXT__CONTAINS;
- context_t src_context = context_new (src);
- context_t dst_context = context_new (dst);
+ security_class_t class;
+ access_vector_t bit;
+ context_t src_context;
+ context_t dst_context;
+
+ class = string_to_security_class("context");
+ if (!class) {
+ pam_syslog(pamh, LOG_ERR, "Failed to translate security class context. %m");
+ return 0;
+ }
+
+ bit = string_to_av_perm(class, "contains");
+ if (!bit) {
+ pam_syslog(pamh, LOG_ERR, "Failed to translate av perm contains. %m");
+ return 0;
+ }
+
+ src_context = context_new (src);
+ dst_context = context_new (dst);
context_range_set(dst_context, context_range_get(src_context));
if (debug)
pam_syslog(pamh, LOG_NOTICE, "Checking if %s mls range valid for %s", dst, context_str(dst_context));
- retval = security_compute_av(context_str(dst_context), dst, SECCLASS_CONTEXT, bit, &avd);
+ retval = security_compute_av(context_str(dst_context), dst, class, bit, &avd);
context_free(src_context);
context_free(dst_context);
if (retval || ((bit & avd.allowed) != bit))
return 0;
-
+
return 1;
}
@@ -290,6 +307,7 @@ config_context (pam_handle_t *pamh, security_context_t defaultcon, int use_curre
goto fail_set;
if (context_type_set (new_context, type))
goto fail_set;
+ _pam_drop(type);
}
}
_pam_drop(response);
@@ -374,6 +392,7 @@ context_from_env (pam_handle_t *pamh, security_context_t defaultcon, int env_par
int mls_enabled = is_selinux_mls_enabled();
const char *env = NULL;
char *type = NULL;
+ int fail = 1;
if ((new_context = context_new(defaultcon)) == NULL)
goto fail_set;
@@ -434,9 +453,6 @@ context_from_env (pam_handle_t *pamh, security_context_t defaultcon, int env_par
/* Get the string value of the context and see if it is valid. */
if (security_check_context(newcon)) {
pam_syslog(pamh, LOG_NOTICE, "Not a valid security context %s", newcon);
- send_audit_message(pamh, 0, defaultcon, newcon);
- freecon(newcon);
- newcon = NULL;
goto fail_set;
}
@@ -446,16 +462,21 @@ context_from_env (pam_handle_t *pamh, security_context_t defaultcon, int env_par
be checked at setexeccon time */
if (mls_enabled && !mls_range_allowed(pamh, defaultcon, newcon, debug)) {
pam_syslog(pamh, LOG_NOTICE, "Security context %s is not allowed for %s", defaultcon, newcon);
- send_audit_message(pamh, 0, defaultcon, newcon);
- freecon(newcon);
- newcon = NULL;
+
+ goto fail_set;
}
+ fail = 0;
+
fail_set:
free(type);
context_free(my_context);
context_free(new_context);
- send_audit_message(pamh, 0, defaultcon, NULL);
+ if (fail) {
+ send_audit_message(pamh, 0, defaultcon, newcon);
+ freecon(newcon);
+ newcon = NULL;
+ }
return newcon;
}
@@ -642,10 +663,10 @@ pam_sm_open_session(pam_handle_t *pamh, int flags UNUSED,
if (debug)
pam_syslog(pamh, LOG_DEBUG, "Username= %s SELinux User = %s Level= %s",
username, seuser, level);
- free(seuser);
free(level);
}
if (num_contexts > 0) {
+ free(seuser);
default_user_context=strdup(contextlist[0]);
freeconary(contextlist);
if (default_user_context == NULL) {
@@ -672,7 +693,10 @@ pam_sm_open_session(pam_handle_t *pamh, int flags UNUSED,
}
}
else {
- user_context = manual_context(pamh,seuser,debug);
+ if (seuser != NULL) {
+ user_context = manual_context(pamh,seuser,debug);
+ free(seuser);
+ }
if (user_context == NULL) {
pam_syslog (pamh, LOG_ERR, "Unable to get valid context for %s",
username);
diff --git a/modules/pam_sepermit/pam_sepermit.c b/modules/pam_sepermit/pam_sepermit.c
index 8b2360b5..4879b685 100644
--- a/modules/pam_sepermit/pam_sepermit.c
+++ b/modules/pam_sepermit/pam_sepermit.c
@@ -117,6 +117,7 @@ check_running (pam_handle_t *pamh, uid_t uid, int killall, int debug)
max_pids = 256;
pid_table = malloc(max_pids * sizeof (pid_t));
if (!pid_table) {
+ (void)closedir(dir);
pam_syslog(pamh, LOG_CRIT, "Memory allocation error");
return -1;
}
@@ -126,10 +127,15 @@ check_running (pam_handle_t *pamh, uid_t uid, int killall, int debug)
continue;
if (pids == max_pids) {
- if (!(pid_table = realloc(pid_table, 2*pids*sizeof(pid_t)))) {
+ pid_t *npt;
+
+ if (!(npt = realloc(pid_table, 2*pids*sizeof(pid_t)))) {
+ free(pid_table);
+ (void)closedir(dir);
pam_syslog(pamh, LOG_CRIT, "Memory allocation error");
return -1;
}
+ pid_table = npt;
max_pids *= 2;
}
pid_table[pids++] = pid;
@@ -175,8 +181,8 @@ sepermit_unlock(pam_handle_t *pamh, void *plockfd, int error_status UNUSED)
while(check_running(pamh, lockfd->uid, 1, lockfd->debug) > 0)
continue;
- fcntl(lockfd->fd, F_SETLK, &fl);
- close(lockfd->fd);
+ (void)fcntl(lockfd->fd, F_SETLK, &fl);
+ (void)close(lockfd->fd);
free(lockfd);
}
diff --git a/modules/pam_stress/pam_stress.c b/modules/pam_stress/pam_stress.c
index 01587fea..b75a597d 100644
--- a/modules/pam_stress/pam_stress.c
+++ b/modules/pam_stress/pam_stress.c
@@ -116,7 +116,7 @@ _pam_parse (const pam_handle_t *pamh, int argc, const char **argv)
}
static int converse(pam_handle_t *pamh, int nargs
- , struct pam_message **message
+ , const struct pam_message **message
, struct pam_response **response)
{
int retval;
@@ -126,8 +126,7 @@ static int converse(pam_handle_t *pamh, int nargs
retval = pam_get_item(pamh,PAM_CONV,&void_conv);
conv = void_conv;
if (retval == PAM_SUCCESS && conv) {
- retval = conv->conv(nargs, (const struct pam_message **) message
- , response, conv->appdata_ptr);
+ retval = conv->conv(nargs, message, response, conv->appdata_ptr);
if (retval != PAM_SUCCESS) {
pam_syslog(pamh, LOG_ERR, "converse returned %d: %s",
retval, pam_strerror(pamh, retval));
@@ -159,7 +158,8 @@ static int stress_get_password(pam_handle_t *pamh, int flags
pam_syslog(pamh, LOG_WARNING, "no forwarded password");
return PAM_PERM_DENIED;
} else { /* we will have to get one */
- struct pam_message msg[1],*pmsg[1];
+ struct pam_message msg[1];
+ const struct pam_message *pmsg[1];
struct pam_response *resp;
int retval;
@@ -412,7 +412,8 @@ int pam_sm_chauthtok(pam_handle_t *pamh, int flags,
return PAM_SUCCESS;
} else if (flags & PAM_UPDATE_AUTHTOK) { /* second call */
- struct pam_message msg[3],*pmsg[3];
+ struct pam_message msg[3];
+ const struct pam_message *pmsg[3];
struct pam_response *resp;
const void *text;
char *txt=NULL;
diff --git a/modules/pam_tally2/pam_tally2.8.xml b/modules/pam_tally2/pam_tally2.8.xml
index 4ad529fd..5fecea24 100644
--- a/modules/pam_tally2/pam_tally2.8.xml
+++ b/modules/pam_tally2/pam_tally2.8.xml
@@ -238,17 +238,6 @@
</varlistentry>
<varlistentry>
<term>
- <option>no_lock_time</option>
- </term>
- <listitem>
- <para>
- Do not use the .fail_locktime field in
- <filename>/var/log/faillog</filename> for this user.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
<option>even_deny_root</option>
</term>
<listitem>
@@ -446,4 +435,3 @@ session optional pam_mail.so standard
</refsect1>
</refentry>
-
diff --git a/modules/pam_time/pam_time.c b/modules/pam_time/pam_time.c
index 7e418808..dff4a6da 100644
--- a/modules/pam_time/pam_time.c
+++ b/modules/pam_time/pam_time.c
@@ -4,6 +4,7 @@
* Written by Andrew Morgan <morgan@linux.kernel.org> 1996/6/22
* (File syntax and much other inspiration from the shadow package
* shadow-960129)
+ * Field parsing rewritten by Tomas Mraz <tm@t8m.info>
*/
#include "config.h"
@@ -23,7 +24,7 @@
#include <netdb.h>
#ifdef HAVE_LIBAUDIT
-#include <libaudit.h>
+#include <libaudit.h>
#endif
#define PAM_TIME_BUFLEN 1000
@@ -79,163 +80,157 @@ _pam_parse (const pam_handle_t *pamh, int argc, const char **argv)
/* --- static functions for checking whether the user should be let in --- */
-static void
-shift_bytes(char *mem, int from, int by)
+static char *
+shift_buf(char *mem, int from)
{
- while (by-- > 0) {
- *mem = mem[from];
+ char *start = mem;
+ while ((*mem = mem[from]) != '\0')
++mem;
+ memset(mem, '\0', PAM_TIME_BUFLEN - (mem - start));
+ return mem;
+}
+
+static void
+trim_spaces(char *buf, char *from)
+{
+ while (from > buf) {
+ --from;
+ if (*from == ' ')
+ *from = '\0';
+ else
+ break;
}
}
+#define STATE_NL 0 /* new line starting */
+#define STATE_COMMENT 1 /* inside comment */
+#define STATE_FIELD 2 /* field following */
+#define STATE_EOF 3 /* end of file or error */
+
static int
-read_field(const pam_handle_t *pamh, int fd, char **buf, int *from, int *to)
+read_field(const pam_handle_t *pamh, int fd, char **buf, int *from, int *state)
{
- /* is buf set ? */
+ char *to;
+ char *src;
+ int i;
+ char c;
+ int onspace;
+ /* is buf set ? */
if (! *buf) {
- *buf = (char *) malloc(PAM_TIME_BUFLEN);
+ *buf = (char *) calloc(1, PAM_TIME_BUFLEN+1);
if (! *buf) {
pam_syslog(pamh, LOG_ERR, "out of memory");
D(("no memory"));
+ *state = STATE_EOF;
return -1;
}
- *from = *to = 0;
+ *from = 0;
+ *state = STATE_NL;
fd = open(PAM_TIME_CONF, O_RDONLY);
+ if (fd < 0) {
+ pam_syslog(pamh, LOG_ERR, "error opening %s: %m", PAM_TIME_CONF);
+ _pam_drop(*buf);
+ *state = STATE_EOF;
+ return -1;
+ }
}
+
- /* do we have a file open ? return error */
-
- if (fd < 0 && *to <= 0) {
- pam_syslog(pamh, LOG_ERR, "error opening %s: %m", PAM_TIME_CONF);
- memset(*buf, 0, PAM_TIME_BUFLEN);
- _pam_drop(*buf);
- return -1;
- }
-
- /* check if there was a newline last time */
-
- if ((*to > *from) && (*to > 0)
- && ((*buf)[*from] == '\0')) { /* previous line ended */
- (*from)++;
- (*buf)[0] = '\0';
- return fd;
- }
-
- /* ready for more data: first shift the buffer's remaining data */
-
- *to -= *from;
- shift_bytes(*buf, *from, *to);
- *from = 0;
- (*buf)[*to] = '\0';
-
- while (fd >= 0 && *to < PAM_TIME_BUFLEN) {
- int i;
-
- /* now try to fill the remainder of the buffer */
+ if (*from > 0)
+ to = shift_buf(*buf, *from);
+ else
+ to = *buf;
- i = read(fd, *to + *buf, PAM_TIME_BUFLEN - *to);
+ while (fd != -1 && to - *buf < PAM_TIME_BUFLEN) {
+ i = pam_modutil_read(fd, to, PAM_TIME_BUFLEN - (to - *buf));
if (i < 0) {
pam_syslog(pamh, LOG_ERR, "error reading %s: %m", PAM_TIME_CONF);
close(fd);
+ memset(*buf, 0, PAM_TIME_BUFLEN);
+ _pam_drop(*buf);
+ *state = STATE_EOF;
return -1;
} else if (!i) {
close(fd);
fd = -1; /* end of file reached */
- } else
- *to += i;
+ }
- /*
- * contract the buffer. Delete any comments, and replace all
- * multiple spaces with single commas
- */
+ to += i;
+ }
- i = 0;
-#ifdef DEBUG_DUMP
- D(("buffer=<%s>",*buf));
-#endif
- while (i < *to) {
- if ((*buf)[i] == ',') {
- int j;
-
- for (j=++i; j<*to && (*buf)[j] == ','; ++j);
- if (j!=i) {
- shift_bytes(i + (*buf), j-i, (*to) - j);
- *to -= j-i;
- }
- }
- switch ((*buf)[i]) {
- int j,c;
- case '#':
- c = 0;
- for (j=i; j < *to && (c = (*buf)[j]) != '\n'; ++j);
- if (j >= *to) {
- (*buf)[*to = ++i] = '\0';
- } else if (c == '\n') {
- shift_bytes(i + (*buf), j-i, (*to) - j);
- *to -= j-i;
- ++i;
- } else {
- pam_syslog(pamh, LOG_CRIT,
- "internal error in file %s at line %d",
- __FILE__, __LINE__);
- close(fd);
- return -1;
- }
- break;
- case '\\':
- if ((*buf)[i+1] == '\n') {
- shift_bytes(i + *buf, 2, *to - (i+2));
- *to -= 2;
- } else {
- ++i; /* we don't escape non-newline characters */
- }
- break;
- case '!':
- case ' ':
- case '\t':
- if ((*buf)[i] != '!')
- (*buf)[i] = ',';
- /* delete any trailing spaces */
- for (j=++i; j < *to && ( (c = (*buf)[j]) == ' '
- || c == '\t' ); ++j);
- shift_bytes(i + *buf, j-i, (*to)-j );
- *to -= j-i;
- break;
- default:
- ++i;
- }
- }
+ if (to == *buf) {
+ /* nothing previously in buf, nothing read */
+ _pam_drop(*buf);
+ *state = STATE_EOF;
+ return -1;
}
- (*buf)[*to] = '\0';
+ memset(to, '\0', PAM_TIME_BUFLEN - (to - *buf));
- /* now return the next field (set the from/to markers) */
- {
- int i;
+ to = *buf;
+ onspace = 1; /* delete any leading spaces */
+
+ for (src = to; (c=*src) != '\0'; ++src) {
+ if (*state == STATE_COMMENT && c != '\n') {
+ continue;
+ }
+
+ switch (c) {
+ case '\n':
+ *state = STATE_NL;
+ *to = '\0';
+ *from = (src - *buf) + 1;
+ trim_spaces(*buf, to);
+ return fd;
+
+ case '\t':
+ case ' ':
+ if (!onspace) {
+ onspace = 1;
+ *to++ = ' ';
+ }
+ break;
+
+ case '!':
+ onspace = 1; /* ignore following spaces */
+ *to++ = '!';
+ break;
- for (i=0; i<*to; ++i) {
- switch ((*buf)[i]) {
case '#':
- case '\n': /* end of the line/file */
- (*buf)[i] = '\0';
- *from = i;
+ *state = STATE_COMMENT;
+ break;
+
+ case FIELD_SEPARATOR:
+ *state = STATE_FIELD;
+ *to = '\0';
+ *from = (src - *buf) + 1;
+ trim_spaces(*buf, to);
return fd;
- case FIELD_SEPARATOR: /* end of the field */
- (*buf)[i] = '\0';
- *from = ++i;
- return fd;
- }
+
+ case '\\':
+ if (src[1] == '\n') {
+ ++src; /* skip it */
+ break;
+ }
+ default:
+ *to++ = c;
+ onspace = 0;
}
- *from = i;
- (*buf)[*from] = '\0';
+ if (src > to)
+ *src = '\0'; /* clearing */
}
- if (*to <= 0) {
- D(("[end of text]"));
- *buf = NULL;
+ if (*state != STATE_COMMENT) {
+ *state = STATE_COMMENT;
+ pam_syslog(pamh, LOG_ERR, "field too long - ignored");
+ **buf = '\0';
+ } else {
+ *to = '\0';
+ trim_spaces(*buf, to);
}
+ *from = 0;
return fd;
}
@@ -511,7 +506,7 @@ static int
check_account(pam_handle_t *pamh, const char *service,
const char *tty, const char *user)
{
- int from=0,to=0,fd=-1;
+ int from=0, state=STATE_NL, fd=-1;
char *buffer=NULL;
int count=0;
TIME here_and_now;
@@ -523,23 +518,28 @@ check_account(pam_handle_t *pamh, const char *service,
/* here we get the service name field */
- fd = read_field(pamh, fd, &buffer, &from, &to);
-
+ fd = read_field(pamh, fd, &buffer, &from, &state);
if (!buffer || !buffer[0]) {
/* empty line .. ? */
continue;
}
++count;
+ if (state != STATE_FIELD) {
+ pam_syslog(pamh, LOG_ERR,
+ "%s: malformed rule #%d", PAM_TIME_CONF, count);
+ continue;
+ }
+
good = logic_field(pamh, service, buffer, count, is_same);
D(("with service: %s", good ? "passes":"fails" ));
/* here we get the terminal name field */
- fd = read_field(pamh, fd, &buffer, &from, &to);
- if (!buffer || !buffer[0]) {
+ fd = read_field(pamh, fd, &buffer, &from, &state);
+ if (state != STATE_FIELD) {
pam_syslog(pamh, LOG_ERR,
- "%s: no tty entry #%d", PAM_TIME_CONF, count);
+ "%s: malformed rule #%d", PAM_TIME_CONF, count);
continue;
}
good &= logic_field(pamh, tty, buffer, count, is_same);
@@ -547,10 +547,10 @@ check_account(pam_handle_t *pamh, const char *service,
/* here we get the username field */
- fd = read_field(pamh, fd, &buffer, &from, &to);
- if (!buffer || !buffer[0]) {
+ fd = read_field(pamh, fd, &buffer, &from, &state);
+ if (state != STATE_FIELD) {
pam_syslog(pamh, LOG_ERR,
- "%s: no user entry #%d", PAM_TIME_CONF, count);
+ "%s: malformed rule #%d", PAM_TIME_CONF, count);
continue;
}
/* If buffer starts with @, we are using netgroups */
@@ -562,23 +562,16 @@ check_account(pam_handle_t *pamh, const char *service,
/* here we get the time field */
- fd = read_field(pamh, fd, &buffer, &from, &to);
- if (!buffer || !buffer[0]) {
+ fd = read_field(pamh, fd, &buffer, &from, &state);
+ if (state == STATE_FIELD) {
pam_syslog(pamh, LOG_ERR,
- "%s: no time entry #%d", PAM_TIME_CONF, count);
+ "%s: poorly terminated rule #%d", PAM_TIME_CONF, count);
continue;
}
intime = logic_field(pamh, &here_and_now, buffer, count, check_time);
D(("with time: %s", intime ? "passes":"fails" ));
- fd = read_field(pamh, fd, &buffer, &from, &to);
- if (buffer && buffer[0]) {
- pam_syslog(pamh, LOG_ERR,
- "%s: poorly terminated rule #%d", PAM_TIME_CONF, count);
- continue;
- }
-
if (good && !intime) {
/*
* for security parse whole file.. also need to ensure
@@ -588,7 +581,7 @@ check_account(pam_handle_t *pamh, const char *service,
} else {
D(("rule passed"));
}
- } while (buffer);
+ } while (state != STATE_EOF);
return retval;
}
diff --git a/modules/pam_timestamp/pam_timestamp.c b/modules/pam_timestamp/pam_timestamp.c
index 26876769..51937333 100644
--- a/modules/pam_timestamp/pam_timestamp.c
+++ b/modules/pam_timestamp/pam_timestamp.c
@@ -483,6 +483,7 @@ pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, const char **argv)
pam_syslog(pamh, LOG_NOTICE, "timestamp file `%s' is "
"corrupted", path);
close(fd);
+ free(mac);
free(message);
return PAM_AUTH_ERR;
}
@@ -636,6 +637,8 @@ pam_sm_open_session(pam_handle_t *pamh, int flags UNUSED, int argc, const char *
"error setting ownership of `%s': %m",
path);
}
+ close(fd);
+ free(text);
return PAM_SESSION_ERR;
}
@@ -684,7 +687,7 @@ struct pam_module _pam_timestamp_modstruct = {
int
main(int argc, char **argv)
{
- int i, pretval = -1, retval = 0, dflag = 0, kflag = 0;
+ int i, retval = 0, dflag = 0, kflag = 0;
const char *target_user = NULL, *user = NULL, *tty = NULL;
struct passwd *pwd;
struct timeval tv;
@@ -826,7 +829,6 @@ main(int argc, char **argv)
select(STDOUT_FILENO + 1,
NULL, NULL, &write_fds,
&tv);
- pretval = retval;
retval = 0;
}
} while (dflag > 0);
diff --git a/modules/pam_unix/Makefile.am b/modules/pam_unix/Makefile.am
index 44b37e94..ea5a7318 100644
--- a/modules/pam_unix/Makefile.am
+++ b/modules/pam_unix/Makefile.am
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de>
+# Copyright (c) 2005, 2006, 2009, 2011 Thorsten Kukuk <kukuk@suse.de>
#
CLEANFILES = *~
@@ -18,7 +18,8 @@ secureconfdir = $(SCONFIGDIR)
AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \
-DCHKPWD_HELPER=\"$(sbindir)/unix_chkpwd\" \
- -DUPDATE_HELPER=\"$(sbindir)/unix_update\"
+ -DUPDATE_HELPER=\"$(sbindir)/unix_update\" \
+ $(NIS_CFLAGS)
if HAVE_LIBSELINUX
AM_CFLAGS += -D"WITH_SELINUX"
@@ -28,8 +29,8 @@ pam_unix_la_LDFLAGS = -no-undefined -avoid-version -module
if HAVE_VERSIONING
pam_unix_la_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map
endif
-pam_unix_la_LIBADD = @LIBNSL@ -L$(top_builddir)/libpam -lpam \
- @LIBCRYPT@ @LIBSELINUX@
+pam_unix_la_LIBADD = -L$(top_builddir)/libpam -lpam \
+ @LIBCRYPT@ @LIBSELINUX@ $(NIS_LIBS)
securelib_LTLIBRARIES = pam_unix.la
diff --git a/modules/pam_unix/md5.c b/modules/pam_unix/md5.c
index 7ee9ed00..1c622ecd 100644
--- a/modules/pam_unix/md5.c
+++ b/modules/pam_unix/md5.c
@@ -148,7 +148,7 @@ void MD5Name(MD5Final)(unsigned char digest[16], struct MD5Context *ctx)
MD5Name(MD5Transform)(ctx->buf, (uint32 *) ctx->in);
byteReverse((unsigned char *) ctx->buf, 4);
memcpy(digest, ctx->buf, 16);
- memset(ctx, 0, sizeof(ctx)); /* In case it's sensitive */
+ memset(ctx, 0, sizeof(*ctx)); /* In case it's sensitive */
}
#ifndef ASM_MD5
diff --git a/modules/pam_unix/pam_unix_passwd.c b/modules/pam_unix/pam_unix_passwd.c
index 320bc547..631df318 100644
--- a/modules/pam_unix/pam_unix_passwd.c
+++ b/modules/pam_unix/pam_unix_passwd.c
@@ -54,13 +54,6 @@
#include <ctype.h>
#include <sys/time.h>
#include <sys/stat.h>
-#include <rpc/rpc.h>
-#ifdef HAVE_RPCSVC_YP_PROT_H
-#include <rpcsvc/yp_prot.h>
-#endif
-#ifdef HAVE_RPCSVC_YPCLNT_H
-#include <rpcsvc/ypclnt.h>
-#endif
#include <signal.h>
#include <errno.h>
@@ -76,16 +69,33 @@
#include <security/pam_ext.h>
#include <security/pam_modutil.h>
-#include "yppasswd.h"
#include "md5.h"
#include "support.h"
#include "passverify.h"
#include "bigcrypt.h"
-#if !((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1))
+#if (HAVE_YP_GET_DEFAULT_DOMAIN || HAVE_GETDOMAINNAME) && HAVE_YP_MASTER
+# define HAVE_NIS
+#endif
+
+#ifdef HAVE_NIS
+# include <rpc/rpc.h>
+
+# if HAVE_RPCSVC_YP_PROT_H
+# include <rpcsvc/yp_prot.h>
+# endif
+
+# if HAVE_RPCSVC_YPCLNT_H
+# include <rpcsvc/ypclnt.h>
+# endif
+
+# include "yppasswd.h"
+
+# if !HAVE_DECL_GETRPCPORT
extern int getrpcport(const char *host, unsigned long prognum,
unsigned long versnum, unsigned int proto);
-#endif /* GNU libc 2.1 */
+# endif /* GNU libc 2.1 */
+#endif
/*
How it works:
@@ -102,9 +112,9 @@ extern int getrpcport(const char *host, unsigned long prognum,
#define MAX_PASSWD_TRIES 3
+#ifdef HAVE_NIS
static char *getNISserver(pam_handle_t *pamh, unsigned int ctrl)
{
-#if (defined(HAVE_YP_GET_DEFAULT_DOMAIN) || defined(HAVE_GETDOMAINNAME)) && defined(HAVE_YP_MASTER)
char *master;
char *domainname;
int port, err;
@@ -151,14 +161,8 @@ static char *getNISserver(pam_handle_t *pamh, unsigned int ctrl)
master, port);
}
return master;
-#else
- if (on(UNIX_DEBUG, ctrl)) {
- pam_syslog(pamh, LOG_DEBUG, "getNISserver: No NIS support available");
- }
-
- return NULL;
-#endif
}
+#endif
#ifdef WITH_SELINUX
@@ -326,6 +330,7 @@ static int _do_setpass(pam_handle_t* pamh, const char *forwho,
}
if (on(UNIX_NIS, ctrl) && _unix_comesfromsource(pamh, forwho, 0, 1)) {
+#ifdef HAVE_NIS
if ((master=getNISserver(pamh, ctrl)) != NULL) {
struct timeval timeout;
struct yppasswd yppwd;
@@ -391,6 +396,13 @@ static int _do_setpass(pam_handle_t* pamh, const char *forwho,
} else {
retval = PAM_TRY_AGAIN;
}
+#else
+ if (on(UNIX_DEBUG, ctrl)) {
+ pam_syslog(pamh, LOG_DEBUG, "No NIS support available");
+ }
+
+ retval = PAM_TRY_AGAIN;
+#endif
}
if (_unix_comesfromsource(pamh, forwho, 1, 0)) {
diff --git a/modules/pam_unix/support.c b/modules/pam_unix/support.c
index bddafd4b..cc350e58 100644
--- a/modules/pam_unix/support.c
+++ b/modules/pam_unix/support.c
@@ -83,7 +83,7 @@ int _set_ctrl(pam_handle_t *pamh, int flags, int *remember, int *rounds,
}
/* now parse the arguments to this module */
- while (argc-- > 0) {
+ for (; argc-- > 0; ++argv) {
int j;
D(("pam_unix arg: %s", *argv));
@@ -99,24 +99,37 @@ int _set_ctrl(pam_handle_t *pamh, int flags, int *remember, int *rounds,
pam_syslog(pamh, LOG_ERR,
"unrecognized option [%s]", *argv);
} else {
- ctrl &= unix_args[j].mask; /* for turning things off */
- ctrl |= unix_args[j].flag; /* for turning things on */
-
/* special cases */
- if (remember != NULL && j == UNIX_REMEMBER_PASSWD) {
+ if (j == UNIX_REMEMBER_PASSWD) {
+ if (remember == NULL) {
+ pam_syslog(pamh, LOG_ERR,
+ "option remember not allowed for this module type");
+ continue;
+ }
*remember = strtol(*argv + 9, NULL, 10);
if ((*remember == INT_MIN) || (*remember == INT_MAX))
*remember = -1;
if (*remember > 400)
*remember = 400;
- } else if (pass_min_len && j == UNIX_MIN_PASS_LEN) {
+ } else if (j == UNIX_MIN_PASS_LEN) {
+ if (pass_min_len == NULL) {
+ pam_syslog(pamh, LOG_ERR,
+ "option minlen not allowed for this module type");
+ continue;
+ }
*pass_min_len = atoi(*argv + 7);
- }
- if (rounds != NULL && j == UNIX_ALGO_ROUNDS)
+ } else if (j == UNIX_ALGO_ROUNDS) {
+ if (rounds == NULL) {
+ pam_syslog(pamh, LOG_ERR,
+ "option rounds not allowed for this module type");
+ continue;
+ }
*rounds = strtol(*argv + 7, NULL, 10);
- }
+ }
- ++argv; /* step to next argument */
+ ctrl &= unix_args[j].mask; /* for turning things off */
+ ctrl |= unix_args[j].flag; /* for turning things on */
+ }
}
if (UNIX_DES_CRYPT(ctrl)
@@ -132,7 +145,7 @@ int _set_ctrl(pam_handle_t *pamh, int flags, int *remember, int *rounds,
}
/* Set default rounds for blowfish */
- if (on(UNIX_BLOWFISH_PASS, ctrl) && off(UNIX_ALGO_ROUNDS, ctrl)) {
+ if (on(UNIX_BLOWFISH_PASS, ctrl) && off(UNIX_ALGO_ROUNDS, ctrl) && rounds != NULL) {
*rounds = 5;
set(UNIX_ALGO_ROUNDS, ctrl);
}
@@ -493,14 +506,12 @@ static int _unix_run_helper_binary(pam_handle_t *pamh, const char *passwd,
if (passwd != NULL) { /* send the password to the child */
if (write(fds[1], passwd, strlen(passwd)+1) == -1) {
pam_syslog (pamh, LOG_ERR, "Cannot send password to helper: %m");
- close(fds[1]);
retval = PAM_AUTH_ERR;
}
passwd = NULL;
} else { /* blank password */
if (write(fds[1], "", 1) == -1) {
pam_syslog (pamh, LOG_ERR, "Cannot send password to helper: %m");
- close(fds[1]);
retval = PAM_AUTH_ERR;
}
}
diff --git a/modules/pam_unix/yppasswd_xdr.c b/modules/pam_unix/yppasswd_xdr.c
index 0b95b82b..f2b86a56 100644
--- a/modules/pam_unix/yppasswd_xdr.c
+++ b/modules/pam_unix/yppasswd_xdr.c
@@ -12,6 +12,8 @@
#include "config.h"
+#ifdef HAVE_RPC_RPC_H
+
#include <rpc/rpc.h>
#include "yppasswd.h"
@@ -34,3 +36,5 @@ xdr_yppasswd(XDR * xdrs, yppasswd * objp)
return xdr_string(xdrs, &objp->oldpass, ~0)
&& xdr_xpasswd(xdrs, &objp->newpw);
}
+
+#endif
diff --git a/modules/pam_xauth/pam_xauth.c b/modules/pam_xauth/pam_xauth.c
index a64ae89f..88624b1c 100644
--- a/modules/pam_xauth/pam_xauth.c
+++ b/modules/pam_xauth/pam_xauth.c
@@ -459,24 +459,33 @@ pam_sm_open_session (pam_handle_t *pamh, int flags UNUSED,
goto cleanup;
}
- /* Check that both users are amenable to this. By default, this
- * boils down to this policy:
- * export(ruser=root): only if <user> is listed in .xauth/export
- * export(ruser=*) if <user> is listed in .xauth/export, or
- * if .xauth/export does not exist
- * import(user=*): if <ruser> is listed in .xauth/import, or
- * if .xauth/import does not exist */
- i = (getuid() != 0 || tpwd->pw_uid == 0) ? PAM_SUCCESS : PAM_PERM_DENIED;
- i = check_acl(pamh, "export", rpwd->pw_name, user, i, debug);
- if (i != PAM_SUCCESS) {
- retval = PAM_SESSION_ERR;
- goto cleanup;
- }
- i = PAM_SUCCESS;
- i = check_acl(pamh, "import", user, rpwd->pw_name, i, debug);
- if (i != PAM_SUCCESS) {
- retval = PAM_SESSION_ERR;
- goto cleanup;
+
+ /* If current user and the target user are the same, don't
+ check the ACL list, but forward X11 */
+ if (strcmp (rpwd->pw_name, tpwd->pw_name) != 0) {
+
+ /* Check that both users are amenable to this. By default, this
+ * boils down to this policy:
+ * export(ruser=root): only if <user> is listed in .xauth/export
+ * export(ruser=*) if <user> is listed in .xauth/export, or
+ * if .xauth/export does not exist
+ * import(user=*): if <ruser> is listed in .xauth/import, or
+ * if .xauth/import does not exist */
+ i = (getuid() != 0 || tpwd->pw_uid == 0) ? PAM_SUCCESS : PAM_PERM_DENIED;
+ i = check_acl(pamh, "export", rpwd->pw_name, user, i, debug);
+ if (i != PAM_SUCCESS) {
+ retval = PAM_SESSION_ERR;
+ goto cleanup;
+ }
+ i = PAM_SUCCESS;
+ i = check_acl(pamh, "import", user, rpwd->pw_name, i, debug);
+ if (i != PAM_SUCCESS) {
+ retval = PAM_SESSION_ERR;
+ goto cleanup;
+ }
+ } else {
+ if (debug)
+ pam_syslog (pamh, LOG_DEBUG, "current and target user are the same, forward X11");
}
/* Figure out where the source user's .Xauthority file is. */
diff --git a/po/LINGUAS b/po/LINGUAS
index 028bd46f..9d5f6a89 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -38,6 +38,7 @@ ta
te
tr
uk
+vi
zh_CN
zh_TW
zu
diff --git a/po/Linux-PAM.pot b/po/Linux-PAM.pot
index f4750f4f..acb38e9b 100644
--- a/po/Linux-PAM.pot
+++ b/po/Linux-PAM.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -58,7 +58,7 @@ msgstr ""
msgid "Password change aborted."
msgstr ""
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr ""
@@ -194,54 +194,60 @@ msgstr ""
msgid "Unknown PAM error"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+msgid "memory allocation error"
+msgstr ""
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr ""
@@ -262,18 +268,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr ""
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr ""
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr ""
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr ""
@@ -289,12 +295,12 @@ msgid "Welcome to your new account!"
msgstr ""
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr ""
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -303,12 +309,12 @@ msgstr[0] ""
msgstr[1] ""
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr ""
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr ""
@@ -359,8 +365,8 @@ msgstr ""
msgid "Unable to create and initialize directory '%s'."
msgstr ""
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr ""
@@ -368,43 +374,43 @@ msgstr ""
msgid "Would you like to enter a security context? [N] "
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr ""
@@ -424,20 +430,20 @@ msgstr ""
msgid "login: failure forking: %m"
msgstr ""
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr ""
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr ""
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr ""
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr ""
@@ -531,31 +537,31 @@ msgstr[1] ""
msgid "Warning: your password will expire in %d days"
msgstr ""
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr ""
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr ""
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr ""
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr ""
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr ""
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr ""
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr ""
diff --git a/po/ar.po b/po/ar.po
index 82d05c99..300feaeb 100644
--- a/po/ar.po
+++ b/po/ar.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: @PACKAGE@\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2001-07-13 15:36+0200\n"
"Last-Translator: Novell Language <language@novell.com>\n"
"Language-Team: Novell Language <language@novell.com>\n"
@@ -59,7 +59,7 @@ msgstr "النوع: "
msgid "Password change aborted."
msgstr "لم يتم تغيير كلمة السر"
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "تسجيل الدخول:"
@@ -195,54 +195,61 @@ msgstr "يحتاج التطبيق إلى استدعاء libpam مرة أخرى"
msgid "Unknown PAM error"
msgstr "خطأ PAM غير معروف"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "لا يوجد اختلاف عن كلمة السر القديمة"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "خطأ في المحادثة"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "كلمة سر يمكن قراءتها من الجهتين"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "لم يتم سوى تغيير حالة الأحرف"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "كلمة السر الجديدة شديدة الشبه بكلمة السر القديمة"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "كلمة السر شديدة البساطة"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "كلمة مرور ملتفة"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "لم يتم إدخال كلمة السر"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "لم يتم تغيير كلمة السر"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "كلمة سر سيئة: %s"
@@ -263,18 +270,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr ""
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr "%a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr "من %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr "في %.*s"
@@ -290,12 +297,12 @@ msgid "Welcome to your new account!"
msgstr "مرحبًا بك في حسابك الجديد!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, fuzzy, c-format
msgid "Last failed login:%s%s%s"
msgstr "تسجيل الدخول الأخير:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -304,12 +311,12 @@ msgstr[0] ""
msgstr[1] ""
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr ""
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "مرات تسجيل دخول كثيرة جدًا لـ '%s'."
@@ -360,8 +367,8 @@ msgstr ""
msgid "Unable to create and initialize directory '%s'."
msgstr ""
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "كلمة السر التي تم إدخالها مستخدمة بالفعل. اختر كلمة سر أخرى."
@@ -370,46 +377,46 @@ msgstr "كلمة السر التي تم إدخالها مستخدمة بالفع
msgid "Would you like to enter a security context? [N] "
msgstr "هل ترغب في إدخال سياق أمان؟ [نعم]"
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
#, fuzzy
msgid "role:"
msgstr "الدور: "
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
#, fuzzy
msgid "level:"
msgstr "المستوى: "
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "لا يصلح كسياق أمان"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, fuzzy, c-format
msgid "Default Security Context %s\n"
msgstr "تم تخصيص سياق الأمان %s"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
#, fuzzy
msgid "Would you like to enter a different role or level?"
msgstr "هل ترغب في إدخال سياق أمان؟ [نعم]"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "تم تخصيص سياق الأمان %s"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, fuzzy, c-format
msgid "Key Creation Context %s Assigned"
msgstr "تم تخصيص سياق الأمان %s"
@@ -429,20 +436,20 @@ msgstr "فشل pam_set_item()\n"
msgid "login: failure forking: %m"
msgstr "تسجيل الدخول: فشل تشعيب: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, fuzzy, c-format
msgid "Changing STRESS password for %s."
msgstr "تغيير كلمة سر STRESS لـ"
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "أدخل كلمة سر STRESS الجديدة: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "أعد كتابة كلمة سر STRESS الجديدة: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "إعادة كتابة كلمة السر غير صحيحة؛ كلمة السر لم تتغير"
@@ -538,32 +545,32 @@ msgstr[1] "تحذير: سوف تنتهي مدة صلاحية كلمة السر
msgid "Warning: your password will expire in %d days"
msgstr "تحذير: سوف تنتهي مدة صلاحية كلمة السر الخاصة بك خلال %d يوم%.2s"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "تعذر تغيير كلمة السر الخاصة بـ NIS."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "يجب اختيار كلمة سر أطول"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, fuzzy, c-format
msgid "Changing password for %s."
msgstr "تغيير كلمة سر STRESS لـ"
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "كلمة سر UNIX (الحالية): "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "يجب الانتظار فترة أطول لتغيير كلمة السر"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "أدخل كلمة سر UNIX الجديدة: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "أعد كتابة كلمة سر UNIX الجديدة: "
diff --git a/po/as.po b/po/as.po
index 234529e8..6e3289b7 100644
--- a/po/as.po
+++ b/po/as.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Linux-PAM.tip\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-04-09 19:25+0530\n"
"Last-Translator: Amitakhya Phukan <aphukan@fedoraproject.org>\n"
"Language-Team: Assamese <fedora-trans-as@redhat.com>\n"
@@ -59,7 +59,7 @@ msgstr "%s পুনঃ লিখক"
msgid "Password change aborted."
msgstr "গুপ্ত শব্দ সলনি কৰা বাতিল কৰা হ'ল ।"
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "প্ৰৱেশ:"
@@ -195,54 +195,61 @@ msgstr "অনুপ্ৰয়োগে আকৌ libpam ক মাতিব ল
msgid "Unknown PAM error"
msgstr "অজ্ঞাত PAM ভুল"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "পুৰণিটোৰ সৈতে একেই"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "সম্বাদৰ ভুল"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "এটা অনুলোম‌-বিলোম বাক্য"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "অকল কেচ সলনি কৰা"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "পৰণিটোৰ সৈতে বহুত একেই"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "বৰ সৰল"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "পকোৱা হৈছে"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "পৰ্যাপ্ত character classes নাই"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "এটাৰ পিছত এটা বহুতো একেই আখৰ আছে"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "কিবা ধৰনত ব্যৱহাৰকৰ্তাৰ নাম আছে"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "কোনো গুপ্তশব্দ দিয়া হোৱা নাই"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "গুপ্ত শব্দ অপৰিবৰ্ত্তিত"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "বেয়া গুপ্তশব্দ: %s"
@@ -263,18 +270,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s বিফল: অজ্ঞাত অৱস্থা 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " %.*s ৰ পৰা"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " %.*s ত"
@@ -290,12 +297,12 @@ msgid "Welcome to your new account!"
msgstr "আপোনাৰ নতুন হিচাপলৈ স্বাগতম!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "শেহতীয়া প্ৰৱেশ বিফল:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -304,12 +311,12 @@ msgstr[0] "শেহতীয়া সফল প্ৰৱেশৰ পিছত %d
msgstr[1] "শেহতীয়া সফল প্ৰৱেশৰ পিছত %d বিফল হোৱা প্ৰৱেশৰ চেষ্টা চলোৱা হৈছিল ।"
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr "শেহতীয়া সফল প্ৰৱেশৰ পিছত %d বিফল হোৱা প্ৰৱেশৰ চেষ্টা চলোৱা হৈছিল ।"
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "'%s' ৰ বাবে বহুতো প্ৰৱেশ ।"
@@ -360,8 +367,8 @@ msgstr "'%s' পঞ্জিকা সৃষ্টি কৰা হৈছে ।
msgid "Unable to create and initialize directory '%s'."
msgstr "%s পঞ্জিকা সৃষ্টি আৰু আৰম্ভ কৰিব পৰা নাই ।"
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "গুপ্তশব্দ ইতিমধ্যে ব্যৱহৃত । অন্য এটা বাচি লওক ।"
@@ -369,43 +376,43 @@ msgstr "গুপ্তশব্দ ইতিমধ্যে ব্যৱহৃ
msgid "Would you like to enter a security context? [N] "
msgstr "সুৰক্ষাৰ সন্দৰ্ভ নিবেশ কৰিব খোজে নেকি ? [N] "
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "ভূমিকা: "
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "স্তৰ: "
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "এটা বৈধ সুৰক্ষাৰ সন্দৰ্ভ নহয়"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "অবিকল্পিত সুৰক্ষাৰ সন্দৰ্ভ %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "বেলেগ এটা সুৰক্ষাৰ ভূমিকা বা স্তৰ নিবেশ কৰিব খোজে নেকি ?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "%s ভূমিকা বাবে অবিকল্পিত ধৰণ নাই\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "%s ৰ বাবে বৈধ সন্দৰ্ভ পোৱা ন'গ'ল"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "সুৰক্ষাৰ সন্দৰ্ভ %s নিযুক্ত কৰা হ'ল"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "চাবি নিৰ্মাণৰ সন্দৰ্ভ %s নিযুক্ত কৰা হ'ল"
@@ -425,20 +432,20 @@ msgstr "pam_set_item() কৰোঁতে বিফল\n"
msgid "login: failure forking: %m"
msgstr "প্ৰৱেশ: forking ত বিফল: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "%s ৰ বাবে STRESS গুপ্তশব্দ সলনি কৰা হৈছে ।"
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "নতুন STRESS গুপ্তশব্দ দিয়ক:"
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "নতুন STRESS গুপ্তশব্দ পুনঃ লিখক: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "সত্যৰ প্ৰতিপাদন ভুলকৈ লিখা গ'ল;গুপ্তশব্দ অপৰিবৰ্ত্তিত"
@@ -536,32 +543,32 @@ msgstr[1] "সকীয়নী: আপোনাৰ গুপ্তশব্দ %d
msgid "Warning: your password will expire in %d days"
msgstr "সকীয়নী: আপোনাৰ গুপ্তশব্দ %d দিনত অন্ত হ'ব"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "NIS গুপ্তশব্দ সলনি কৰিব পৰা নহয় ।"
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "আপুনি ইয়াতকৈ এটা দীঘল গুপ্তশব্দ নিৰ্ব্বাচন কৰিব লাগিব"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "%s ৰ বাবে গুপ্তশব্দ সলনি কৰা হৈছে ।"
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(বৰ্ত্তমানৰ) UNIX গুপ্তশব্দ: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "আপোনাৰ গুপ্তশব্দ সলনি কৰিবলৈ আপুনি আৰু কিছু পৰ অপেক্ষা কৰিব লাগিব"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "নতুন UNIX গুপ্তশব্দ দিয়ক: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "নতুন UNIX গুপ্তশব্দ পুনঃ লিখক: "
diff --git a/po/bn_IN.po b/po/bn_IN.po
index f1879ec1..3094ac8d 100644
--- a/po/bn_IN.po
+++ b/po/bn_IN.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pam.tip\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-04-08 18:30+0530\n"
"Last-Translator: Runa Bhattacharjee <runab@fedoraproject.org>\n"
"Language-Team: Bengali INDIA <fedora-trans-bn_in@redhat.com>\n"
@@ -59,7 +59,7 @@ msgstr "%s পুনরায় লিখুন"
msgid "Password change aborted."
msgstr "পাসওয়ার্ড পরিবর্তনের কর্ম পরিত্যাগ করা হয়েছে।"
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "লগ-ইন:"
@@ -195,54 +195,61 @@ msgstr "অ্যাপ্লিকেশন দ্বারা পুনরা
msgid "Unknown PAM error"
msgstr "PAM সংক্রান্ত অজানা ত্রুটি"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "পুরোনোটির অনুরূপ"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "Conversation অর্থাৎ তথ্য বিনিময়কালীন সমস্যা"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "উভমুখী শব্দ"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "শুধুমাত্র হরফের ছাঁদ পরিবর্তন করা হয়েছে"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "পুরোনো পাসওয়ার্ডের সমতূল্য"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "জটিল নয়"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "ঘোরানো হয়েছে"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "পর্যাপ্ত অক্ষর শ্রেণী উপস্থিত নেই"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "একই অক্ষর অত্যাধিক বার ক্রমাগত ব্যবহার করা হয়েছে"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "কোনো রূপে ব্যবহারকারী নাম অন্তর্ভুক্ত হয়েছে"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "কোনো পাসওয়ার্ড উল্লিখিত হয়নি"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "পাসওয়ার্ড পরিবর্তন করা হয়নি"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "পাসওয়ার্ড ভাল নয়: %s"
@@ -263,18 +270,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s বিফল: অজানা অবস্থা 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " %.*s থেকে"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " %.*s -র উপর"
@@ -290,12 +297,12 @@ msgid "Welcome to your new account!"
msgstr "নতুন অ্যাকাউন্টে স্বাগতম!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "সর্বশেষ বিফল লগ-ইন:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -304,12 +311,12 @@ msgstr[0] "সর্বশেষ সফল লগ-ইনের পরে %d-ট
msgstr[1] "সর্বশেষ সফল লগ-ইনের পরে %d-টি ব্যর্থ লগ-ইনের প্রচেষ্টা করা হয়েছে।"
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr "সর্বশেষ সফল লগ-ইনের পরে %d-টি ব্যর্থ লগ-ইনের প্রচেষ্টা করা হয়েছে।"
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "'%s'-র ক্ষেত্রে অত্যাধিক লগ-ইন"
@@ -360,8 +367,8 @@ msgstr "'%s' ডিরেক্টরি নির্মাণ করা হচ
msgid "Unable to create and initialize directory '%s'."
msgstr "ডিরেক্টরি '%s' নির্মাণ ও আরম্ভ করতে ব্যর্থ।"
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "পাসওয়ার্ড পূর্বে ব্যবহৃত হয়েছে। একটি পৃথক পাসওয়ার্ড নির্বাচন করুন।"
@@ -369,43 +376,43 @@ msgstr "পাসওয়ার্ড পূর্বে ব্যবহৃত হ
msgid "Would you like to enter a security context? [N] "
msgstr "নিরাপত্তা সংক্রান্ত context উল্লেখ করতে ইচ্ছুক কি? [N] "
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "role: "
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "level: "
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "বৈধ নিরাপত্তা সংক্রান্ত context নয়"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "ডিফল্ট Security Context %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "ভিন্ন role অথবা level লিখতে ইচ্ছুক কি?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "role %s-র জন্য কোনো ডিফল্ট type উপস্থিত নেই\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "%s-র বৈধ context প্রাপ্ত করতে ব্যর্থ"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "Security Context %s ধার্য করা হয়েছে"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "কি নির্মাণের Context %s ধার্য করা হয়েছে"
@@ -425,20 +432,20 @@ msgstr "pam_set_item() করতে ব্যর্থ\n"
msgid "login: failure forking: %m"
msgstr "লগ-ইন: fork করতে ব্যর্থ: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "%s-র STRESS পাসওয়ার্ড পরিবর্তন করা হচ্ছে।"
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "নতুন STRESS পাসওয়ার্ড লিখুন: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "নতুন STRESS পাসওয়ার্ড পুনরায় লিখুন: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "নিশ্চায়ন কাল ভুল টাইপ করা হয়েছে; পাসওয়ার্ড পরিবর্তন করা হয়নি"
@@ -538,31 +545,31 @@ msgstr[1] "সতর্কবাণী: %d দিন পরে পাসওয়
msgid "Warning: your password will expire in %d days"
msgstr "সতর্কবাণী: %d দিন পরে পাসওয়ার্ডের মেয়াদপূর্ণ হবে"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "NIS পাসওয়ার্ড পরিবর্তন করা সম্ভব হয়নি।"
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "চিহ্নিত পাসওয়ার্ডের থেকে লম্বা পাসওয়ার্ড উল্লেখ করা আবশ্যক"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "%s-র পাসওয়ার্ড পরিবর্তন করা হচ্ছে।"
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(বর্তমান) UNIX পাসওয়ার্ড: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "কিছু কাল পরে পাসওয়ার্ড পরিবর্তন করা সম্ভব হবে"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "নতুন UNIX পাসওয়ার্ড উল্লেখ করুন: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "নতুন UNIX পাসওয়ার্ড পুনরায় লিখুন: "
diff --git a/po/ca.po b/po/ca.po
index ef3a89a5..112130fa 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: linux-PAM\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-05-18 16:10+0200\n"
"Last-Translator: Albert Carabasa Giribet <albertc@asic.udl.cat>\n"
"Language-Team: Catalan <fedora@softcatala.net>\n"
@@ -71,7 +71,7 @@ msgstr "Torneu a escriure %s"
msgid "Password change aborted."
msgstr "No s'ha canviat la contrasenya."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "entrada:"
@@ -208,54 +208,61 @@ msgstr "L'aplicació necessita cridar novament libpam"
msgid "Unknown PAM error"
msgstr "Error de PAM desconegut"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "és la mateixa que l'antiga"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "Error de conversa"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "és un palíndrom"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "només canvien les majúscules i minúscules"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "és massa semblant a l'antiga"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "és massa senzilla"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "està girada"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "no hi ha suficients classes de caràcters"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "conté massa caràcters idèntics consecutius"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "conté el nom d'usuari d'alguna forma"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "No s'ha proporcionat cap contrasenya"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "No s'ha canviat la contrasenya"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "CONTRASENYA INCORRECTA: %s"
@@ -276,18 +283,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s ha fallat: estat 0x%x desconegut"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " des de %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " a %.*s"
@@ -303,12 +310,12 @@ msgid "Welcome to your new account!"
msgstr "Benvingut al vostre nou compte!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "Darrera entrada fallida:%s des de %s a %s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -317,12 +324,12 @@ msgstr[0] "S'ha intentat entrar %d cop des de l'última entrada correcta."
msgstr[1] "S'ha intentat entrar %d cops des de l'última entrada correcta."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr "S'ha intentat entrar %d cops des de l'última entrada correcta."
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "Massa entrades per a '%s'."
@@ -374,8 +381,8 @@ msgstr "Creant el directori '%s'."
msgid "Unable to create and initialize directory '%s'."
msgstr "No s'ha pogut crear i inicialitzar el directori '%s'."
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "Aquesta contrasenya ja s'ha fet servir. Trieu-ne una altra."
@@ -383,43 +390,43 @@ msgstr "Aquesta contrasenya ja s'ha fet servir. Trieu-ne una altra."
msgid "Would you like to enter a security context? [N] "
msgstr "Voleu introduïr un context de seguretat? [N] "
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "rol:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "nivell:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "No és un context de seguretat vàlid"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "Context de seguretat per defecte %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "Voleu introduir un rol o nivell diferent?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "El rol %s no disposa de cap tipus per defecte\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "No s'ha pogut obtenir el context vàlid per a %s"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "Context de seguretat %s assignat"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "Context de creació de claus %s assignat"
@@ -439,20 +446,20 @@ msgstr "s'ha produït un error en pam_set_item()\n"
msgid "login: failure forking: %m"
msgstr "entrada: ha fallat la bifurcació: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "S'està canviant la contrasenya d'STRESS per a %s."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "Introduïu la nova contrasenya d'STRESS: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "Torneu a escriure la nova contrasenya d'STRESS: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr ""
"Error d'escriptura durant la verificació; no s'ha canviat la contrasenya"
@@ -554,32 +561,32 @@ msgstr[1] "Atenció: la contrasenya venç d'aquí a %d dies"
msgid "Warning: your password will expire in %d days"
msgstr "Atenció: la contrasenya venç d'aquí a %d dies"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "No s'ha pogut canviar la contrasenya NIS."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "Heu de triar una contrasenya més llarga"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "S'està canviant la contrasenya de %s."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "contrasenya (actual) d'UNIX: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "Heu d'esperar més temps abans de canviar la contrasenya"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "Introduïu la nova contrasenya d'UNIX: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "Torneu a escriure la nova contrasenya d'UNIX: "
diff --git a/po/cs.po b/po/cs.po
index 81d519db..16011c59 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Linux-PAM\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-03-24 15:22+0100\n"
"Last-Translator: Tomas Mraz <t8m@centrum.cz>\n"
"Language-Team: cs_CZ <cs@li.org>\n"
@@ -58,7 +58,7 @@ msgstr "Opakujte %s"
msgid "Password change aborted."
msgstr "Změna hesla přerušena."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "login:"
@@ -194,54 +194,61 @@ msgstr "Aplikace musí znovu zavolat libpam"
msgid "Unknown PAM error"
msgstr "Neznámá chyba PAM"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "je stejné jako předcházející"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "Chyba konverzace"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "je palindrom"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "pouze mění velikost"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "je příliš podobné předcházejícímu"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "je příliš jednoduché"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "je posunuté"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "nemá dostatek různých druhů znaků"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "obsahuje příliš mnoho stejných znaků za sebou"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "obsahuje v nějaké formě uživatelské jméno"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "Nezadáno heslo"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "Heslo nebylo změněno"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "ŠPATNÉ HESLO: %s"
@@ -262,18 +269,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s selhal: neznámý kód stavu 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %d.%m.%Y %H:%M:%S %Z"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " z %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " na %.*s"
@@ -289,12 +296,12 @@ msgid "Welcome to your new account!"
msgstr "Vítejte na vašem novém účtu!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "Poslední neúspěšné přihlášení:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -304,12 +311,12 @@ msgstr[1] "Od posledního úspěšného došlo k %d neúspěšným pokusům o p
msgstr[2] "Od posledního úspěšného došlo k %d neúspěšným pokusům o přihlášení."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr "Od posledního úspěšného došlo k %d neúspěšným pokusům o přihlášení."
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "Příliš mnoho přihlášení pro '%s'."
@@ -360,8 +367,8 @@ msgstr "Vytváření adresáře '%s'."
msgid "Unable to create and initialize directory '%s'."
msgstr "Nezdařilo se vytvořit a inicializovat adresář '%s'."
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "Heslo již bylo použito. Zvolte jiné."
@@ -369,43 +376,43 @@ msgstr "Heslo již bylo použito. Zvolte jiné."
msgid "Would you like to enter a security context? [N] "
msgstr "Chcete zadat bezpečnostní kontext? [N] "
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "role:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "úroveň:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "Neplatný bezpečnostní kontext"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "Výchozí bezpečnostní kontext %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "Chcete zadat jinou roli nebo úroveň?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "Chybí výchozí typ pro roli %s\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "Nezdařilo se najít platný bezpečnostní kontext pro %s"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "Bezpečnostní kontext %s přidělen"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "Bezpečnostní kontext pro vytváření klíčů %s přidělen"
@@ -425,20 +432,20 @@ msgstr "chyba pam_set_item()\n"
msgid "login: failure forking: %m"
msgstr "login: chyba forku: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "Změna STRESS hesla pro %s."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "Zadejte nové STRESS heslo: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "Opakujte nové STRESS heslo: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "Chybné potvrzení. Heslo nezměněno"
@@ -538,31 +545,31 @@ msgstr[2] "Varování: Vaše heslo vyprší za %d dní"
msgid "Warning: your password will expire in %d days"
msgstr "Varování: Počet dní do vypršení hesla: %d"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "NIS heslo se nepodařilo změnit."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "Musíte zvolit delší heslo"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "Změna hesla pro %s."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(současné) UNIX heslo: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "Na změnu svého hesla musíte počkat déle"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "Zadejte nové UNIX heslo: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "Opakujte nové UNIX heslo: "
diff --git a/po/da.po b/po/da.po
index 972f9ae9..ee9df931 100644
--- a/po/da.po
+++ b/po/da.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pam\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-10-04 18:01+0200\n"
"Last-Translator: Kris Thomsen <lakristho@gmail.com>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -58,7 +58,7 @@ msgstr "Genindtast %s"
msgid "Password change aborted."
msgstr "Ændring af adgangskode afbrudt."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "logind:"
@@ -194,54 +194,61 @@ msgstr "Programmet skal kalde libpam igen"
msgid "Unknown PAM error"
msgstr "Ukendt PAM-fejl"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "er den samme som den gamle"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "Konversationsfejl"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "det staves ens forfra og bagfra"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "kun forskel i store/små bogstaver"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "ligner for meget den gamle"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "er for simpel"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "er roteret"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "ikke nok tegnklasser"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "indeholder for mange af de samme tegn"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "indeholder brugernavnet i en eller anden form"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "Ingen adgangskode angivet"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "Adgangskoden er uændret"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "DÅRLIG ADGANGSKODE: %s"
@@ -262,18 +269,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s fejlede: ukendt status 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " fra %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " på %.*s"
@@ -289,12 +296,12 @@ msgid "Welcome to your new account!"
msgstr "Velkommen til din nye konto!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "Sidste fejlende logind:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -303,12 +310,12 @@ msgstr[0] "Der var %d fejlende logindforsøg siden sidste succesfulde logind."
msgstr[1] "Der var %d fejlende logindforsøg siden sidste succesfulde logind."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr "Der var %d fejlende logindforsøg siden sidste succesfulde logind."
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "Der er for mange logind til \"%s\"."
@@ -359,8 +366,8 @@ msgstr "Opretter mappe \"%s\"."
msgid "Unable to create and initialize directory '%s'."
msgstr "Kunne ikke oprette og initialisere mappe \"%s\"."
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "Adgangskoden er allerede blevet brugt. Vælg en anden."
@@ -369,44 +376,44 @@ msgstr "Adgangskoden er allerede blevet brugt. Vælg en anden."
msgid "Would you like to enter a security context? [N] "
msgstr "Vil du angive en sikkerhedskontekst? [N] "
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "rolle:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "niveau:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "Ikke en gyldig sikkerhedskontekst"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "Standard sikkerhedskontekst %s\n"
# power-off message
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "Vil du angive en anden rolle eller niveau?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "Ingen standard type for rolle %s\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "Kunne ikke hente gyldig kontekst for %s"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "Sikkerhedskontekst %s tildelt"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "Nøgleoprettelseskontekst %s tildelt"
@@ -426,20 +433,20 @@ msgstr "pam_set_item() mislykkedes\n"
msgid "login: failure forking: %m"
msgstr "logind: fejl ved forgrening: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "Ændrer STRESS-adgangskode for %s."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "Indtast ny STRESS-adgangskode: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "Genindtast ny STRESS-adgangskode: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "Bekræftelsen blev angivet forkert; adgangskode forbliver uændret"
@@ -537,32 +544,32 @@ msgstr[1] "Advarsel: Din adgangskode udløber om %d dage"
msgid "Warning: your password will expire in %d days"
msgstr "Advarsel: din adgangskode udløber om %d dage"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "NIS-adgangskoden kunne ikke ændres."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "Du skal vælge en længere adgangskode"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "Ændrer adgangskode for %s."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(nuværende) UNIX-adgangskode: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "Du skal vente lidt længere for at ændre din adgangskode"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "Indtast ny UNIX-adgangskode: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "Genindtast ny UNIX-adgangskode: "
diff --git a/po/de.po b/po/de.po
index 2d8a2945..91569b6c 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1,5 +1,5 @@
# German translation of pam
-# Copyright (C) 2005 Linux-PAM Project
+# Copyright (C) 2005, 2011 Linux-PAM Project
# This file is distributed under the same license as the pam package.
#
# Fabian Affolter <fab@fedoraproject.org>, 2008-2009.
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Linux-PAM\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
-"PO-Revision-Date: 2009-04-17 11:53+0100\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
+"PO-Revision-Date: 2011-06-21 13:27+02:00\n"
"Last-Translator: Fabian Affolter <fab@fedoraproject.org>\n"
"Language-Team: German <fedora-trans-de@redhat.com>\n"
"MIME-Version: 1.0\n"
@@ -59,7 +59,7 @@ msgstr "Neu eingeben %s"
msgid "Password change aborted."
msgstr "Passwort Änderung wurde abgebrochen."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "Login:"
@@ -199,54 +199,60 @@ msgstr "Anwendung muss libpam wieder aufrufen"
msgid "Unknown PAM error"
msgstr "Unbekannter PAM-Fehler"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "ist das gleiche wie das Alte"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+msgid "memory allocation error"
+msgstr "Fehler beim Allozieren von Speicher"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "ist ein Palindrome"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "nur Änderungen bei der Gross-/Kleinschreibung"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "ist dem alten zu ähnlich"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "ist zu einfach"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "wurde gedreht"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "nicht genug unterschiedliche Arten von Zeichen"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "das gleiche Zeichen wurde so oft hintereinander verwendet"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "enthält den Benutzernamen in irgendeiner Form"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "Kein Passwort angegeben"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "Passwort nicht geändert"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "Schlechtes Passwort: %s"
@@ -267,18 +273,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s schlug fehl: Unbekannter Status 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %A, den %d. %B %Y, %H:%M:%S %Z"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " von %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " auf %.*s"
@@ -294,12 +300,12 @@ msgid "Welcome to your new account!"
msgstr "Willkommen in Ihrem neuen Konto!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "Letzte fehlgeschlagene Anmeldung:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -310,13 +316,13 @@ msgstr[1] ""
"Es gab %d fehlgeschlagene Versuche seit der letzten erfolgreichen Anmeldung."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr ""
"Es gab %d fehlgeschlagene Versuche seit der letzten erfolgreichen Anmeldung."
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "Zu viele Anmeldungen für '%s'."
@@ -367,8 +373,8 @@ msgstr "Erstelle Verzeichnis '%s'."
msgid "Unable to create and initialize directory '%s'."
msgstr "Verzeichnis %s kann nicht erstellt und initialisiert werden: %m"
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "Passwort wurde bereits verwendet. Wählen Sie ein anderes aus."
@@ -376,43 +382,43 @@ msgstr "Passwort wurde bereits verwendet. Wählen Sie ein anderes aus."
msgid "Would you like to enter a security context? [N] "
msgstr "Möchten Sie einen Sicherheitskontext eingeben? [N] "
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "Funktion:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "Stufe:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "Kein gültiger Sicherheitskontext"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "Standard-Sicherheitskontext %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "Wollen Sie eine andere Rolle oder Stufe eingeben?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "Keinen Standard-Typ für Rolle %s\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "Unfähig einen gültigen Kontext zu erhalten für %s"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "Sicherheitskontext %s zugewiesen"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "Schlüssel-Erzeugungskontext %s zugeordnet"
@@ -432,20 +438,20 @@ msgstr "Fehler bei pam_set_item()\n"
msgid "login: failure forking: %m"
msgstr "Anmeldung: Fehler bei Abspaltung: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "Ändern des STRESS-Passworts für %s."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "Geben Sie ein neues STRESS-Passwort ein: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "Geben Sie das neue STRESS-Passwort erneut ein: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "Bestätigungspasswort falsch eingegeben; Passwort nicht geändert"
@@ -544,32 +550,32 @@ msgstr[1] "Warnung: Ihr Passwort läuft in %d Tagen ab."
msgid "Warning: your password will expire in %d days"
msgstr "Warnung: Ihr Passwort läuft in %d Tagen ab."
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "Änderung des NIS-Passworts nicht möglich."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "Sie müssen ein längeres Passwort auswählen."
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "Ändern des Passworts für %s."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(aktuelles) UNIX-Passwort: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "Sie können Ihr Passwort noch nicht ändern"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "Geben Sie ein neues UNIX-Passwort ein: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "Geben Sie das neue UNIX-Passwort erneut ein: "
diff --git a/po/es.po b/po/es.po
index a9f8f0a3..ea9d8f0b 100644
--- a/po/es.po
+++ b/po/es.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Linux-PAM.tip.es\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-03-18 22:51-0300\n"
"Last-Translator: Domingo Becker <domingobecker@gmail.com>\n"
"Language-Team: Fedora Spanish <fedora-trans-es@redhat.com>\n"
@@ -62,7 +62,7 @@ msgstr "Reingrese %s"
msgid "Password change aborted."
msgstr "La contraseña no ha cambiado."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "inicio de sesión:"
@@ -201,54 +201,61 @@ msgstr "La aplicación debe llamar a libpam de nuevo"
msgid "Unknown PAM error"
msgstr "Error desconocido de PAM"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "es igual que la antigua"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "Error de conversación"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "es un palíndromo"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "sólo hay cambios de minúsculas y mayúsculas"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "es demasiado similar a la antigua"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "es demasiado sencilla"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "es igual pero al revés"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "no hay suficientes clases de caracteres"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "contiene demasiados carateres iguales consecutivos"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "de alguna manera contiene el nombre del usuario"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "No se ha proporcionado ninguna contraseña"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "La contraseña no ha cambiado"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "CONTRASEÑA INCORRECTA: %s"
@@ -269,18 +276,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s fallido: estado desconocido 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr "%a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr "de %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr "en %.*s"
@@ -296,12 +303,12 @@ msgid "Welcome to your new account!"
msgstr "¡Bienvenido a su nueva cuenta!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "Último inicio de sesión fallido:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -311,12 +318,12 @@ msgstr[1] ""
"Hubo %d intentos de logueo fallidos desde el último logueo exitoso. "
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr "Hubo %d intentos de logueo fallidos desde el último logueo exitoso. "
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "Hay demasiados inicios de sesión para \"%s\"."
@@ -367,8 +374,8 @@ msgstr "Creando directorio '%s'."
msgid "Unable to create and initialize directory '%s'."
msgstr "No se pudo crear e inicializar el directorio '%s'."
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "La contraseña ya se ha utilizado. Seleccione otra."
@@ -376,43 +383,43 @@ msgstr "La contraseña ya se ha utilizado. Seleccione otra."
msgid "Would you like to enter a security context? [N] "
msgstr "¿Desea introducir un contexto de seguridad? [N]"
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "función:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "nivel:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "No es un contexto de seguridad válido"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "Contexto de Seguridad Predeterminado %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "¿Desea introducir un nivel o función diferente?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "No hay tipo por defecto para la función %s\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "Imposible obtener un contexto válido para %s"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "Contexto de seguridad %s asignado"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "Contexto de Creación Clave %s Asignado"
@@ -432,20 +439,20 @@ msgstr "error en pam_set_item()\n"
msgid "login: failure forking: %m"
msgstr "inicio de sesión: error en horquilla: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "Cambiando la contraseña STRESS para %s."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "Introduzca la nueva contraseña STRESS: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "Vuelva a escribir la nueva contraseña STRESS: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "Error al escribir la verificación; la contraseña no ha cambiado"
@@ -548,32 +555,32 @@ msgstr[1] "Advertencia: la contraseña caducará dentro de %d días"
msgid "Warning: your password will expire in %d days"
msgstr "Advertencia: la contraseña caducará dentro de %d días"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "No es posible cambiar la contraseña NIS."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "Debe elegir una contraseña más larga"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "Cambiando la contraseña de %s."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(actual) contraseña de UNIX: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "Debe esperar más tiempo para cambiar la contraseña"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "Introduzca la nueva contraseña de UNIX: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "Vuelva a escribir la nueva contraseña de UNIX: "
diff --git a/po/fi.po b/po/fi.po
index 58da4b90..446b4e46 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Linux-PAM\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2006-05-04 08:30+0200\n"
"Last-Translator: Jyri Palokangas <jmp@netti.fi>\n"
"Language-Team: <yast-trans-fi@kotoistaminen.novell.fi>\n"
@@ -61,7 +61,7 @@ msgstr "tyyppi: "
msgid "Password change aborted."
msgstr "Salasanaa ei vaihdettu"
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "kirjautuminen:"
@@ -197,54 +197,61 @@ msgstr "Sovelluksen tarvitsee kutsua uudelleen libpam:ia"
msgid "Unknown PAM error"
msgstr "Tuntematon PAM-virhe"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "on sama kuin vanha"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "Keskusteluvirhe"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "on palindromi"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "vain kirjainkoko muutos"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "on liian samankaltainen vanhan kanssa"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "on liian yksinkertainen"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "on kierrätetty"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "Et antanut salasanaa"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "Salasanaa ei vaihdettu"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "HUONO SALASANA: %s"
@@ -265,18 +272,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr ""
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " koneelta %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " päätteellä %.*s"
@@ -292,12 +299,12 @@ msgid "Welcome to your new account!"
msgstr "Tervetuloa uudella käyttäjätilillä!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, fuzzy, c-format
msgid "Last failed login:%s%s%s"
msgstr "Viimeinen kirjautuminen:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -306,12 +313,12 @@ msgstr[0] ""
msgstr[1] ""
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr ""
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "Liian monta kirjautumista '%s'."
@@ -362,8 +369,8 @@ msgstr ""
msgid "Unable to create and initialize directory '%s'."
msgstr ""
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "Salasana on jo käytetty. Valitse toinen."
@@ -372,46 +379,46 @@ msgstr "Salasana on jo käytetty. Valitse toinen."
msgid "Would you like to enter a security context? [N] "
msgstr "Haluatko valita tietoturvaympäristön? [y] "
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
#, fuzzy
msgid "role:"
msgstr "rooli: "
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
#, fuzzy
msgid "level:"
msgstr "taso: "
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "Ei kelvollinen tietoturvaympäristö"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, fuzzy, c-format
msgid "Default Security Context %s\n"
msgstr "Tietoturvaympäristö %s asetettiin"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
#, fuzzy
msgid "Would you like to enter a different role or level?"
msgstr "Haluatko valita tietoturvaympäristön? [y] "
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "Tietoturvaympäristö %s asetettiin"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, fuzzy, c-format
msgid "Key Creation Context %s Assigned"
msgstr "Tietoturvaympäristö %s asetettiin"
@@ -431,20 +438,20 @@ msgstr "pam_set_item() kutsu epäonnistui\n"
msgid "login: failure forking: %m"
msgstr "sisäänkirjautuminen: virhe haarautumisessa: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, fuzzy, c-format
msgid "Changing STRESS password for %s."
msgstr "Vaihdetaan STRESS-salasana "
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "Anna uusi STRESS-salasana: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "Anna uusi STRESS-salasana uudelleen: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "Salasanat eivät ole samat; salasanaa ei vaihdettu"
@@ -542,32 +549,32 @@ msgstr[1] "Varoitus: salasanasi vanhenee %d päivässä%.2s"
msgid "Warning: your password will expire in %d days"
msgstr "Varoitus: salasanasi vanhenee %d päivässä%.2s"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "NIS-salasanaa ei voitu vaihtaa."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "Salasanan tulee olla pidempi"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, fuzzy, c-format
msgid "Changing password for %s."
msgstr "Vaihdetaan STRESS-salasana "
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(nykyinen) UNIX salasana: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "Sinun täytyy odottaa kauemmin vaihtaaksesi salasanan"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "Anna uusi UNIX-salasana: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "Anna uusi UNIX-salasana uudelleen: "
diff --git a/po/fr.po b/po/fr.po
index 1ddbaa9a..d2ad9147 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pam.fr2\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-04-15 23:00+0200\n"
"Last-Translator: Charles-Antoine Couret <cacouret@wanadoo.fr>\n"
"Language-Team: French <fedora-trans-fr@redhat.com>\n"
@@ -61,7 +61,7 @@ msgstr "Retapez %s"
msgid "Password change aborted."
msgstr "Changement du mot de passe avorté."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "login : "
@@ -206,54 +206,61 @@ msgstr "L'application doit appeler à nouveau libpam"
msgid "Unknown PAM error"
msgstr "Erreur PAM inconnue"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "est identique à l'ancien"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "Erreur de conversation"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "est un palindrome"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "changement de casse uniquement"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "ressemble trop à l'ancien"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "est trop simple"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "est inversé"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "les caractères utilisés ne sont pas suffisamment variés"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "contient trop de caractères consécutifs identiques"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "contient le nom d'utilisateur d'une certaine manière"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "Aucun mot de passe fourni"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "Mot de passe inchangé"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "MOT DE PASSE INCORRECT : %s"
@@ -274,18 +281,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s échec : statut 0x inconnu%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %A %e %B %Y à %H:%M:%S %Z"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " de %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " sur %.*s"
@@ -301,12 +308,12 @@ msgid "Welcome to your new account!"
msgstr "Bienvenue sur votre nouveau compte !"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "Dernière connexion échoué : %s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -319,14 +326,14 @@ msgstr[1] ""
"réussie."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr ""
"Il y a eu %d tentatives de connexion échouées depuis la dernière connexion "
"réussie."
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "Trop de connexions pour « %s »."
@@ -377,8 +384,8 @@ msgstr "Création du répertoire « %s »."
msgid "Unable to create and initialize directory '%s'."
msgstr "Impossible de créer et d'initialiser le répertoire « %s »."
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "Mot de passe déjà utilisé. Choisissez-en un autre."
@@ -386,43 +393,43 @@ msgstr "Mot de passe déjà utilisé. Choisissez-en un autre."
msgid "Would you like to enter a security context? [N] "
msgstr "Voulez-vous entrer un contexte de sécurité ? [N]"
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "rôle :"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "niveau :"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "Contexte de sécurité invalide"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "Contexte de sécurité par défaut %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "Voulez-vous entrer un niveau ou un rôle différent ?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "Aucun type par défaut pour le rôle %s\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "Impossible d'obtenir un contexte valide pour %s"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "Contexte de sécurité %s attribué"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "Contexte de création de clés %s attribué"
@@ -442,20 +449,20 @@ msgstr "échec de pam_set_item()\n"
msgid "login: failure forking: %m"
msgstr "login : échec d'autoclônage : %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "Changement du mot de passe STRESS pour %s."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "Entrer le nouveau mot de passe STRESS : "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "Retaper le nouveau mot de passe STRESS : "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "Vérification erronée : mot de passe inchangé"
@@ -554,32 +561,32 @@ msgstr[1] "Avertissement : votre mot de passe expire dans %d jours"
msgid "Warning: your password will expire in %d days"
msgstr "Avertissement : votre mot de passe expire dans %d jours"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "Le mot de passe NIS n'a pas pu être changé."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "Vous devez choisir un mot de passe plus long"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "Changement du mot de passe pour %s."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "Mot de passe UNIX (actuel) : "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "Vous devez encore attendre avant de changer votre mot de passe"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "Entrez le nouveau mot de passe UNIX : "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "Retapez le nouveau mot de passe UNIX : "
diff --git a/po/gu.po b/po/gu.po
index d9382506..5fd18706 100644
--- a/po/gu.po
+++ b/po/gu.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pam.default.gu\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2010-08-02 18:15+0530\n"
"Last-Translator: Sweta Kothari <swkothar@redhat.com>\n"
"Language-Team: Gujarati\n"
@@ -61,7 +61,7 @@ msgstr "%s ને પુન:ટાઇપ કરો"
msgid "Password change aborted."
msgstr "પાસવર્ડ બદલાવનો અંત આવેલ છે."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "પ્રવેશ:"
@@ -197,54 +197,61 @@ msgstr "કાર્યક્રમને libpam ફરીથી બોલાવ
msgid "Unknown PAM error"
msgstr "અજ્ઞાત PAM ભૂલ"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "એ જૂના જેવો જ છે"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "વાર્તાલાપ ભૂલ"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "એ પેલીન્ડ્રોમ છે"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "કેસ ફેરફાર માત્ર"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "એ જૂના સાથે એકદમ સરખો છે"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "એ ખૂબ સાદો છે"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "એ ફેરવાયેલ છે"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "પૂરતા અક્ષર વર્ગો નથી"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "એકપછી એક ઘણા બધા સરખા અક્ષરોને સમાવે છે"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "અમુક ફોર્મમાં વપરાશકર્તા નામ ને સમાવે છે"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "કોઈ પાસવર્ડ પૂરો પડાયેલ નથી"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "પાસવર્ડ બદલાયેલ નથી"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "ખરાબ પાસવર્ડ: %s"
@@ -265,18 +272,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s નિષ્ફળ: અજ્ઞાત પરિસ્થિતિ 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " %.*s તરફથી"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " %.*s પર"
@@ -292,12 +299,12 @@ msgid "Welcome to your new account!"
msgstr "તમારા નવા ખાતામાં તમારું સ્વાગત છે!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "છેલ્લો નિષ્ફળ થયેલ પ્રવેશ:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -306,12 +313,12 @@ msgstr[0] "છેલ્લે સફળ પ્રવેશ સુધી પ્
msgstr[1] "છેલ્લે સફળ પ્રવેશ સુધી પ્રવેશનો પ્રયત્નો કરવામાં %d નિષ્ફળ થયેલ હતુ."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr "છેલ્લે સફળ પ્રવેશ સુધી પ્રવેશનાં પ્રયત્નો કરવામાં %d નિષ્ફળ થયેલ હતુ."
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "'%s' માટે ઘણા બધા પ્રવેશો."
@@ -362,8 +369,8 @@ msgstr "ડિરેક્ટરી '%s' બનાવી રહ્યા છી
msgid "Unable to create and initialize directory '%s'."
msgstr "ડિરેક્ટરી '%s' ને શરૂ કરવામાં અને બનાવવામાં અસમર્થ."
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "પાસવર્ડ પહેલાથી જ વપરાઈ ગયેલ છે. બીજો પસંદ કરો."
@@ -371,43 +378,43 @@ msgstr "પાસવર્ડ પહેલાથી જ વપરાઈ ગય
msgid "Would you like to enter a security context? [N] "
msgstr "શું તમે સુરક્ષા સંદર્ભ દાખલ કરવા ઈચ્છો છો? [N] "
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "ભૂમિકા:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "સ્તર:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "માન્ય સુરક્ષા સંદર્ભ નથી"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "મૂળભૂત સુરક્ષા સંદર્ભ %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "શું તમે અલગ ભૂમિકા કે સ્તર દાખલ કરવા ઈચ્છો છો?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "ભૂમિકા %s માટે કોઈ મૂળભૂત પ્રકાર નથી\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "%s માટે માન્ય સંદર્ભ મેળવવામાં અસમર્થ"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "સુરક્ષા સંદર્ભ %s સોંપાયેલ"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "કી બનાવટ સંદર્ભ %s સોંપાયેલ"
@@ -427,20 +434,20 @@ msgstr "pam_set_item() કરવામાં નિષ્ફળ\n"
msgid "login: failure forking: %m"
msgstr "પ્રવેશ: ફોર્કમાં નિષ્ફળ: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "STRESS પાસવર્ડ %s માટે બદલો."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "નવો STRESS પાસવર્ડ દાખલ કરો: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "નવો STRESS પાસવર્ડ પુનઃલખો: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "ચકાસણી ખોટી-રીતે લખાઈ; પાસવર્ડ બદલાયેલ નથી"
@@ -538,31 +545,31 @@ msgstr[1] "ચેતવણી: તમારો પાસવર્ડ %d દિ
msgid "Warning: your password will expire in %d days"
msgstr "ચેતવણી: તમારો પાસવર્ડ %d દિવસોમાં નિવૃત્ત થઈ જશે"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "NIS પાસવર્ડ બદલી શક્યા નહિં."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "તમારે લાંબો પાસવર્ડ જ પસંદ કરવો જોઈએ"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "%s માટે પાસવર્ડ બદલવાનું."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(વર્તમાન) UNIX પાસવર્ડ: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "તમારો પાસવર્ડ બદલવા માટે તમારે લાંબો સમય રાહ જોવી જ પડશે"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "નવો UNIX પાસવર્ડ દાખલ કરો: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "નવો UNIX પાસવર્ડ ફરીથી લખો: "
diff --git a/po/he.po b/po/he.po
index 2c01c4dc..a60a61e1 100644
--- a/po/he.po
+++ b/po/he.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PAM\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: \n"
"Last-Translator: Elad <el.il@doom.co.il>\n"
"Language-Team: Hebrew <fedora-he-list@redhat.com>\n"
@@ -54,7 +54,7 @@ msgstr ""
msgid "Password change aborted."
msgstr "שינוי ססמה בוטל."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "כניסה:"
@@ -190,54 +190,61 @@ msgstr ""
msgid "Unknown PAM error"
msgstr "שגיאת PAM לא מוכרת"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "זהה לישנה"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "שגיאת אימות"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "פילנדרום"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "יותר מדי דומה לישנה"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "פשוטה מדי."
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "לא סופקה ססמה"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "ססמה לא שונתה"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "ססמה לא טובה: %s"
@@ -258,18 +265,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr ""
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr ""
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr ""
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr ""
@@ -285,12 +292,12 @@ msgid "Welcome to your new account!"
msgstr "ברוך הבא לחשבונך החדש!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr ""
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -299,12 +306,12 @@ msgstr[0] "היה ניסיון התחברות %d שנכשל מאז ההתחבר
msgstr[1] "היו %d ניסיונות התחברות שנכשלו מאז ההתחברות האחרונה שהצליחה."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr ""
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr ""
@@ -355,8 +362,8 @@ msgstr ""
msgid "Unable to create and initialize directory '%s'."
msgstr ""
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr ""
@@ -364,43 +371,43 @@ msgstr ""
msgid "Would you like to enter a security context? [N] "
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "תפקיד: "
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "רמה:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr ""
@@ -420,20 +427,20 @@ msgstr ""
msgid "login: failure forking: %m"
msgstr ""
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "משנה ססמת STRESS עבור %s"
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "הקלד ססמת STRESS חדשה:"
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "הקלד שוב ססמת STRESS חדשה:"
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr ""
@@ -527,31 +534,31 @@ msgstr[1] "אזהרה: הססמה שלך תפוג תוך %d ימים"
msgid "Warning: your password will expire in %d days"
msgstr "אזהרה: הססמה שלך תפוג תוך %d ימים"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "לא היה ניתן לשנות ססמת NIS."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "אתה חייב לבחור ססמה ארוכה יותר"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "משנה ססמה עבור %s.‏"
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "ססמת יוניקס (נוכחית): "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "אתה חייב לחכות יותר כדי לשנות את הססמה"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "הכנס ססמת יוניקס חדשה:"
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "נא להקליד שוב את ססמת היוניקס החדשה: "
diff --git a/po/hi.po b/po/hi.po
index 08bcaa04..0c26ff43 100644
--- a/po/hi.po
+++ b/po/hi.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pam.tip\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-06-08 12:22+0530\n"
"Last-Translator: Rajesh Ranjan <rajesh672@gmail.com>\n"
"Language-Team: Hindi <hindi.sf.net>\n"
@@ -62,7 +62,7 @@ msgstr "फिर टाइप करें %s"
msgid "Password change aborted."
msgstr "कूटशब्द परिवर्तन छोड़ा गया."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "लॉगिन:"
@@ -198,54 +198,61 @@ msgstr "अनुप्रयोग के libpam फिर आह्वान
msgid "Unknown PAM error"
msgstr "अनजान PAM त्रुटि"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "पुराने की तरह समान है"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "रूपांतरक त्रुटि"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "एक पालिनड्रोम है"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "स्थिति परिवर्तन सिर्फ"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "पुराने के बहुत समान है"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "बहुत सरल है"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "घुमाया गया है"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "पर्याप्त वर्ण वर्ग नहीं"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "कई समान वर्ण लगातार समाहित करता है"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "कुछ रूप में उपयोक्ता नाम समाहित करता है"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "कोई कूटशब्द नहीं दिया गया है"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "शब्दकूट परिवर्तित"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "खराब शब्दकूट: %s"
@@ -266,18 +273,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s विफल: अनजान स्थिति 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " %.*s से"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " %.*s पर"
@@ -293,12 +300,12 @@ msgid "Welcome to your new account!"
msgstr "नए खाता में आपका स्वागत है!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "अंतिम लॉगिन विफल:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -307,12 +314,12 @@ msgstr[0] "%d विफल लॉगिन प्रयास था अंत
msgstr[1] "%d विफल लॉगिन प्रयास थे अंतिम सफल लॉगिन के बाद."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr "%d विफल लॉगिन प्रयास थे अंतिम सफल लॉगिन के बाद."
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "'%s' के लिए बहुत लॉगिन."
@@ -363,8 +370,8 @@ msgstr "निर्देशिका '%s' बना रहा है."
msgid "Unable to create and initialize directory '%s'."
msgstr "निर्देशिका '%s' बनाने और आरंभ करने में असमर्थ."
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "शब्दकूट को पहले ही बदला जा चुका है. दूसरा चुनें."
@@ -372,43 +379,43 @@ msgstr "शब्दकूट को पहले ही बदला जा च
msgid "Would you like to enter a security context? [N] "
msgstr "क्या आप सुरक्षा संदर्भ दाखिल करना चाहते हैं? [N] "
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "भूमिका: "
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "स्तर: "
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "एक वैध सुरक्षा संदर्भ नहीं"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "तयशुदा सुरक्षा संदर्भ %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "क्या आप भिन्न भूमिका या स्तर दाखिल करना चाहेंगे?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "भूमिका %s के लिए कोई तयशुदा प्रकार नहीं\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "%s के लिए वैध संदर्भ पाने में असमर्थ"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "सुरक्षा संदर्भ %s नियत"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "कुंजी निर्माण संदर्भ %s नियत"
@@ -428,20 +435,20 @@ msgstr "pam_set_item() में विफल\n"
msgid "login: failure forking: %m"
msgstr "लॉगिन: विफल फोर्किंग: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "STRESS कूटशब्द को %s के लिए बदल रहा है."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "नया स्ट्रेस शब्दकूट दें: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "नया शब्दकूट फिर टाइप करें: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "जांच गलत टाइप किया गया; शब्दकूट बदला गया"
@@ -539,31 +546,31 @@ msgstr[1] "चेतावनी: आपका शब्दकूट %d दि
msgid "Warning: your password will expire in %d days"
msgstr "चेतावनी: आपका शब्दकूट %d दिनों में समाप्त हो जायेगा"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "NIS शब्दकूट बदला नहीं जा सका."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "आपको जरूर एक लंबा शब्दकूट चुनना चाहिए"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "%s के लिए कूटशब्द बदल रहा है"
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(मौजूदा) UNIX शब्दकूट: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "आपको अपना शब्दकूट बदलने के लिए लंबी प्रतीक्षा करनी होगी"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "नया UNIX शब्दकूट दें: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "नया UNIX शब्दकूट फिर टाइप करें: "
diff --git a/po/hu.po b/po/hu.po
index 8657e201..4fd150a6 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pam\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-03-20 20:53+0100\n"
"Last-Translator: Sulyok Péter <peti@sulyok.hu>\n"
"Language-Team: Hungarian <fedora-trans-hu@redhat.com>\n"
@@ -62,7 +62,7 @@ msgstr "Ismét %s"
msgid "Password change aborted."
msgstr "Jelszó változtatás elvetve."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "belépő:"
@@ -200,54 +200,61 @@ msgstr "Az alkalmazásnak újra meg kell hívnia a libpam modult"
msgid "Unknown PAM error"
msgstr "Ismeretlen PAM hiba"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "ugyanaz, mint a régi"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "Beszélgetési hiba"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "palindrom"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "csak a kis/nagybetűkben változott"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "túl hasonló a régihez"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "túl egyszerű"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "forgatva"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "elégtelen betűosztály"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "túl sok egymást követő betű egyezik meg"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "valahogy tartalmazza a használó nevét"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "Nincs jelszó megadva"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "Változatlan jelszó"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "ROSSZ JELSZÓ: %s"
@@ -268,18 +275,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s hiba: 0x%x ismeretlen állapot"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr "%Y. %b %e, %a %H:%M:%S %Z "
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " innen: %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr ", %.*s"
@@ -295,12 +302,12 @@ msgid "Welcome to your new account!"
msgstr "Üdvözöljük az új számláján!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "Utolsó sikertelen belépés:%s %s %s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -309,12 +316,12 @@ msgstr[0] "%d sikertelen belépés kísérlet volt az utolsó sikeres belépés
msgstr[1] "%d sikertelen belépés kísérlet volt az utolsó sikeres belépés óta."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr "%d sikertelen belépés kísérlet volt az utolsó sikeres belépés óta."
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "Túl sok belépés \"%s\" részéről."
@@ -365,8 +372,8 @@ msgstr "\"%s\" mappa teremtése"
msgid "Unable to create and initialize directory '%s'."
msgstr "„%s” mapa nem teremthető meg."
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "A jelszót már használta. Válasszon másikat!"
@@ -374,43 +381,43 @@ msgstr "A jelszót már használta. Válasszon másikat!"
msgid "Would you like to enter a security context? [N] "
msgstr "Kíván biztonsági környezetet megadni? [N]"
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "szerep:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "szint:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "Nem érvényes biztonsági környezet"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "Alapértelemezett %s biztonsági környezet\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "Kíván más szerepet vagy szintet megadni?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "Nincs alapértelmezett típus %s szerephez\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "Nincs meg %s érvényes környezete"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "%s biztonsági környezet hozzárendelve"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "%s kulcsteremtő környezet hozzárendelve"
@@ -430,20 +437,20 @@ msgstr "pam_set_item() meghiúsult\n"
msgid "login: failure forking: %m"
msgstr "bejelentkezés: elágazás hiba: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "%s STRESS jelszavának megváltoztatása."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "Új STRESS jelszó: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "Ismét az új STRESS jelszó: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "Az ellenőrző jelszó nem egyezik; a jelszó nem került módosításra"
@@ -541,32 +548,32 @@ msgstr[1] "Figyelmeztetés: a jelszava %d nap múlva lejár"
msgid "Warning: your password will expire in %d days"
msgstr "Figyelmeztetés: a jelszava %d nap múlva lejár"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "NIS jelszót nem sikerült módosítani."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "Hosszabb jelszót kell választani"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "%s jelszavának megváltoztatása."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "A (jelenlegi) UNIX jelszó: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "Tovább kell várnia a jelszó módosítására"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "Adja meg az új UNIX jelszót: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "Írja be újra a UNIX jelszót: "
diff --git a/po/it.po b/po/it.po
index 5aad52cb..0725e09d 100644
--- a/po/it.po
+++ b/po/it.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Linux-PAM.tip\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-04-20 18:31+0200\n"
"Last-Translator: mario_santagiuliana <mario at marionline.it>\n"
"Language-Team: Italian <fedora-trans-it at redhat.com>\n"
@@ -61,7 +61,7 @@ msgstr "Reimmettere %s"
msgid "Password change aborted."
msgstr "Cambio della password abortito."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "login:"
@@ -201,54 +201,61 @@ msgstr "L'applicazione richiede una nuova chiamata a libpam"
msgid "Unknown PAM error"
msgstr "Errore PAM sconosciuto"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "è la stessa di quella precedente"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "Errore di conversazione"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "è un palindromo"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "cambiano solo le maiuscole/minuscole"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "è troppo simile alla precedente"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "è troppo semplice"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "è una rotazione della precedente"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "non ha abbastanza classi di caratteri"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "contiene troppi caratteri simili consecutivi"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "contiene il nome utente in alcune forme"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "Nessuna password fornita"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "Password non modificata"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "PASSWORD ERRATA: %s"
@@ -269,18 +276,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s fallita: stato sconosciuto 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %b %e %H.%M.%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " da %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " su %.*s"
@@ -296,12 +303,12 @@ msgid "Welcome to your new account!"
msgstr "Benvenuti nel nuovo account!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "Ultimo accesso fallito:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -314,14 +321,14 @@ msgstr[1] ""
"login con successo."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr ""
"Si sono verificati alcuni tentativi di login %d falliti dall'ultimo "
"tentativo di login con successo."
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "Ci sono troppi accessi per \"%s\"."
@@ -372,8 +379,8 @@ msgstr "Creazione della directory \"%s\"."
msgid "Unable to create and initialize directory '%s'."
msgstr "Impossibile creare e inizializzare la directory '%s'"
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "Password già utilizzata. Sceglierne un'altra."
@@ -381,43 +388,43 @@ msgstr "Password già utilizzata. Sceglierne un'altra."
msgid "Would you like to enter a security context? [N] "
msgstr "Attivare un contesto di sicurezza? [N] "
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "ruolo:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "livello:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "Non è un contesto di sicurezza valido"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "Contesto di sicurezza predefinito %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "Immettere un ruolo o livello differente?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "Nessun tipo predefinito per il ruolo %s\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "Impossibile ottenere un contesto valido per %s"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "Contesto di sicurezza %s assegnato"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "Contesto di creazione chiave %s assegnato"
@@ -437,20 +444,20 @@ msgstr "Impossibile eseguire pam_set_item()\n"
msgid "login: failure forking: %m"
msgstr "login: forking fallito: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "Cambio password STRESS per %s."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "Immettere nuova password STRESS: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "Reimmettere la nuova password STRESS: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "Errore di digitazione per verifica; password non cambiata"
@@ -551,32 +558,32 @@ msgstr[1] "Avviso: la password scadrà tra %d giorni"
msgid "Warning: your password will expire in %d days"
msgstr "Avviso: la password scadrà tra %d giorni"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "Impossibile modificare la password NIS."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "Scegliere una password più lunga"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "Cambio password per %s."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "Password UNIX (corrente): "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "Attendere ancora per cambiare la password"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "Immettere nuova password UNIX: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "Reimmettere la nuova password UNIX: "
diff --git a/po/ja.po b/po/ja.po
index bf7e2bb3..a8569dc7 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ja\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-08-30 11:39+0900\n"
"Last-Translator: Kiyoto Hashida <khashida@redhat.com>\n"
"Language-Team: Japanese <jp@li.org>\n"
@@ -59,7 +59,7 @@ msgstr "%s を再入力して下さい"
msgid "Password change aborted."
msgstr "パスワードの変更は放棄されました"
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "ログイン::"
@@ -195,54 +195,61 @@ msgstr "アプリケーションはlibpamを再び呼び出す必要がありま
msgid "Unknown PAM error"
msgstr "不明なPAMエラー"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "パスワードが古いものと同じです。"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "会話エラー"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "前後どちらから読んでも同じパスワードです。"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "大文字小文字を変えただけのパスワード"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "古いものと似ています"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "簡単すぎます"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "回転しています"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "文字クラスが不十分です"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "連続的な同一文字が多く含まれ過ぎです"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "なんらかの形式のユーザー名を含みます"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "パスワードが与えられていません"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "パスワードが変更されていません"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "よくないパスワード: %s"
@@ -263,18 +270,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s 失敗: 不明な状態 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr "%a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " %.*sから開始"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr "日時 %.*s"
@@ -290,12 +297,12 @@ msgid "Welcome to your new account!"
msgstr "新しいアカウントへようこそ。"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "最後の失敗ログイン:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -303,12 +310,12 @@ msgid_plural ""
msgstr[0] "最後の正しいログインの後に %d 回の失敗ログインの試行があります"
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr "最後の正しいログインの後に %d 回の失敗ログインの試行があります。"
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "'%s'のログイン数が多すぎます。"
@@ -359,8 +366,8 @@ msgstr "ディレクトリ '%s' を作成中"
msgid "Unable to create and initialize directory '%s'."
msgstr "ディレクトリ %s を作成して初期化できません。"
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr ""
"パスワードはすでに使用されています。 別のパスワードを選択してください。"
@@ -369,43 +376,43 @@ msgstr ""
msgid "Would you like to enter a security context? [N] "
msgstr "セキュリティコンテキストを入力しますか? [N] "
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "ロール:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "レベル:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "有効なセキュリティコンテキストでありません"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "デフォルトセキュリティコンテキスト%s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "異なるロール又はレベルを入力しますか?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "ロール %s にはデフォルトタイプがありません\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "%s の為の有効なコンテキストを取得できません"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "割り当てられたセキュリティコンテキスト%s"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "キー作成コンテキスト %s が割り当てられました"
@@ -425,20 +432,20 @@ msgstr "pam_set_item()に失敗しました\n"
msgid "login: failure forking: %m"
msgstr "ログイン: いまいましい失敗: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "%s 用の STRESS パスワードを変更中"
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "新しいSTRESSパスワードを入力してください:"
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "新しいSTRESSパスワードを再入力してください:"
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "ミスタイプの確認、パスワードが変更されていません"
@@ -536,31 +543,31 @@ msgstr[0] "警告: パスワードは%d日で有効期限が切れます。"
msgid "Warning: your password will expire in %d days"
msgstr "警告: パスワードは %d 日で有効期限が切れます。"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "NISパスワードを変更できませんでした。"
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "長いパスワードを選択する必要があります"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "%s 用にパスワードを変更中"
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "現在のUNIXパスワード:"
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "パスワードを変更するには長く待つ必要があります"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "新しいUNIXパスワードを入力してください:"
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "新しいUNIX パスワードを再入力してください:"
diff --git a/po/kk.po b/po/kk.po
index 9ab467ce..bb6872d3 100644
--- a/po/kk.po
+++ b/po/kk.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Linux-PAM 1.0.3\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-02-26 13:07+0600\n"
"Last-Translator: Baurzhan M. <baurthefirst@gmail.com>\n"
"Language-Team: Kazakh <kk_KZ@googlegroups.com>\n"
@@ -57,7 +57,7 @@ msgstr "%s қайта енгізіңіз"
msgid "Password change aborted."
msgstr "Парольді өзгертуден бас тартылды."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "тіркелу:"
@@ -195,54 +195,61 @@ msgstr "Бағдарлама libpam-ды қайтадан шақыруы кер
msgid "Unknown PAM error"
msgstr "Белгісіз PAM қатесі"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "алдыңғысына сәйкес болып тұр"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "Сұхбат қатесі"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "палиндром болып тұр"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "өзгерістер таңбалардың регистрінде ғана"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "ескі парольге өте ұқсас"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "өте оңай болып тұр"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "аударылған ескі пароль"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "керек таңбалар кластары жоқ"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "құрамында бірдей таңбалардың тізбегі бар"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "құрамында пайдаланушы аты бар"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "Пароль көрсетілмеді"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "Пароль өзгертілмеді"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "ҚАТЕ ПАРОЛЬ: %s"
@@ -263,18 +270,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s қатесі: белгісіз қалып-күйі 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr "қайдан: %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr "қайда: %.*s"
@@ -290,12 +297,12 @@ msgid "Welcome to your new account!"
msgstr "Жаңа тіркелгіге қош келдіңіз!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "Соңғы сәтсіз жүйеге кіру талабы:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -303,12 +310,12 @@ msgid_plural ""
msgstr[0] "Соңғы сәтті жүйеге кіру реттен кейін %d қате талаптар болған."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr "Соңғы сәтті жүйеге кіру реттен кейін %d қате талаптар болған."
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "'%s' үшін жүйеге кіру талап саны шектен көп."
@@ -359,8 +366,8 @@ msgstr "'%s' бумасын құру."
msgid "Unable to create and initialize directory '%s'."
msgstr "%s бумасын құру мүмкін емес: %m"
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "Пароль осыған дейін қолданған. Басқасын таңдаңыз."
@@ -368,43 +375,43 @@ msgstr "Пароль осыған дейін қолданған. Басқасы
msgid "Would you like to enter a security context? [N] "
msgstr "Қауіпсіздік контексті енгізуді қалайсыз ба? [N] "
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "ролі:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "деңгейі:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "Дұрыс қауіпсіздік контексті емес"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "Бастапқы қауіпсіздік контексті %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "Басқа роль не деңгейді енгізуді қалайсыз ба?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "%s ролі үшін бастапқы түрі көрсетілмеген\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "%s үшін дұрыс контексті алу мүмкін емес"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "%s қауіпсіздік контексті орнатылды"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "%s кілттерді жасау қауіпсіздік контексті орнатылды"
@@ -424,20 +431,20 @@ msgstr "pam_set_item() орындау мүмкін емес\n"
msgid "login: failure forking: %m"
msgstr "login: үрдісті бастау мүмкін емес: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "%s үшін STRESS паролін өзгерту."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "Жаңа STRESS паролі: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "Жаңа STRESS паролін қайта енгізіңіз: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "Растау дұрыс өтпеді; пароль өзгертілмеді"
@@ -537,31 +544,31 @@ msgstr[0] "Ескерту: сіздің пароліңіздің мерзімі
msgid "Warning: your password will expire in %d days"
msgstr "Ескерту: сіздің пароліңіздің мерзімі %d күнде бітеді"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "NIS паролін өзгерту мүмкін емес"
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "Сізге ұзынырақ парольді таңдау керек"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "%s үшін парольді өзгерту."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(ағымдағы) UNIX паролі: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "Пароліңізді өзгерті үшін біраз күтуіңіз керек"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "Жаңа UNIX паролін енгізіңіз: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "Жаңа UNIX паролін қайта енгізіңіз: "
diff --git a/po/km.po b/po/km.po
index 5877c036..4424677e 100644
--- a/po/km.po
+++ b/po/km.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Linux-PAM\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2006-03-17 10:32+0700\n"
"Last-Translator: Khoem Sokhem <khoemsokhem@khmeros.info>\n"
"Language-Team: Khmer <support@khmeros.info>\n"
@@ -59,7 +59,7 @@ msgstr "ប្រភេទ ៖ "
msgid "Password change aborted."
msgstr "ពាក្យសម្ងាត់​មិន​បាន​ផ្លាស់ប្ដូរ​ឡើយ"
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "ចូល ៖"
@@ -198,54 +198,61 @@ msgstr "កម្មវិធី​ត្រូវ​តែ​ហៅ libpam ម
msgid "Unknown PAM error"
msgstr "មិន​ស្គាល់​កំហុស PAM"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "ដូច​គ្នា​នឹង​ពាក្យ​សម្ងាត់​ចាស់"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "កំហុស​សន្ទនា"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "ត្រឡប់​ចុះ​ឡើង"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "គ្រាន់​តែ​ផ្លាស់ប្ដូរ​លក្ខណៈ​អក្សរ​ប៉ុណ្ណោះ​"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "ស្រដៀង​គ្នា​ណាស់​នឹង​ពាក្យ​សម្ងាត់​ចាស់"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "សាមញ្ញ​ពេក"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "បាន​បង្វិល"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "មិន​បាន​ផ្ដល់​ពាក្យសម្ងាត់"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "ពាក្យសម្ងាត់​មិន​បាន​ផ្លាស់ប្ដូរ​ឡើយ"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "ពាក្យ​សម្ងាត់​មិន​ល្អ ៖ %s"
@@ -266,18 +273,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr ""
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " ពី %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " លើ %.*s"
@@ -293,12 +300,12 @@ msgid "Welcome to your new account!"
msgstr "សូម​ស្វាគមន៍​មក​កាន់​គណនី​ថ្មី​របស់​អ្នក !"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, fuzzy, c-format
msgid "Last failed login:%s%s%s"
msgstr "ចូល​ចុងក្រោយ ៖%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -307,12 +314,12 @@ msgstr[0] ""
msgstr[1] ""
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr ""
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "មាន​ការ​ចូល​ច្រើន​ពេក​សម្រាប់ '%s' ។"
@@ -363,8 +370,8 @@ msgstr ""
msgid "Unable to create and initialize directory '%s'."
msgstr ""
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "ពាក្យសម្ងាត់​ត្រូវ​បាន​ប្រើ​រួច​ហើយ ។ សូម​ជ្រើស​មួយ​ទៀត ។"
@@ -373,46 +380,46 @@ msgstr "ពាក្យសម្ងាត់​ត្រូវ​បាន​ប
msgid "Would you like to enter a security context? [N] "
msgstr "តើ​អ្នក​ចង់​បញ្ចូល​បរិបទ​សុវត្ថិភាព​មួយ​ឬ​ទេ ? [y] "
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
#, fuzzy
msgid "role:"
msgstr "តួនាទី ៖ "
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
#, fuzzy
msgid "level:"
msgstr "កម្រិត ៖ "
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "មិន​មែន​ជា​បរិបទ​សុវត្ថិភាព​ត្រឹមត្រូវ​មួយឡើយ"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, fuzzy, c-format
msgid "Default Security Context %s\n"
msgstr "បរិបទ​សុវត្ថិភាព %s បាន​ផ្ដល់​តម្លៃ​"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
#, fuzzy
msgid "Would you like to enter a different role or level?"
msgstr "តើ​អ្នក​ចង់​បញ្ចូល​បរិបទ​សុវត្ថិភាព​មួយ​ឬ​ទេ ? [y] "
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "បរិបទ​សុវត្ថិភាព %s បាន​ផ្ដល់​តម្លៃ​"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, fuzzy, c-format
msgid "Key Creation Context %s Assigned"
msgstr "បរិបទ​សុវត្ថិភាព %s បាន​ផ្ដល់​តម្លៃ​"
@@ -432,20 +439,20 @@ msgstr "បាន​បរាជ័យ pam_set_item()\n"
msgid "login: failure forking: %m"
msgstr "ចូល ៖ ចម្លង​ខ្លួន​ឯង​មិន​បាន​ជោគជ័យ ៖ %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, fuzzy, c-format
msgid "Changing STRESS password for %s."
msgstr "ការ​ផ្លាស់ប្ដូរ​ពាក្យ​សម្ងាត់ STRESS សម្រាប់ "
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "បញ្ចូល​ពាក្យ​សម្ងាត់ STRESS ថ្មី ៖ "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "វាយ​ពាក្យ​សម្ងាត់ STRESS ថ្មី​ម្ដង​ទៀត ៖ "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "ផ្ទៀងផ្ទាត់​អក្ខរាវិរុទ្ធ​ដែល​បាន​វាយខុស ពាក្យ​សម្ងាត់​មិន​បានផ្លាស់ប្ដូរ​"
@@ -541,32 +548,32 @@ msgstr[1] "ការ​ព្រមាន ៖ ពាក្យសម្ងាត
msgid "Warning: your password will expire in %d days"
msgstr "ការ​ព្រមាន ៖ ពាក្យសម្ងាត់​របស់​អ្នក​នឹង​ផុតកំណត់​ក្នុង​រយៈពេល %d ថ្ងៃ %.2s ។"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "មិន​អាច​ផ្លាស់ប្ដូរ​ពាក្យសម្ងាត់ NIS បាន​ឡើយ ។"
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "អ្នក​ត្រូវ​តែ​ជ្រើស​ពាក្យសម្ងាត់​វែង​ជាង​នេះ"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, fuzzy, c-format
msgid "Changing password for %s."
msgstr "ការ​ផ្លាស់ប្ដូរ​ពាក្យ​សម្ងាត់ STRESS សម្រាប់ "
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(បច្ចុប្បន្ន) ពាក្យ​សម្ងាត់ UNIX ៖"
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "អ្នក​ត្រូវ​តែ​រង់ចាំ​បន្តិច ដើម្បី​ផ្លាស់ប្ដូរ​ពាក្យសម្ងាត់​របស់​អ្នក"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "បញ្ចូល​ពាក្យ​សម្ងាត់ UNIX ថ្មី ៖ "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "វាយ​ពាក្យ​សម្ងាត់ UNIX ថ្មី​ម្ដង​ទៀត ៖ "
diff --git a/po/kn.po b/po/kn.po
index 3a4c275f..a5dc5d02 100644
--- a/po/kn.po
+++ b/po/kn.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pam.tip.kn\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-04-03 12:24+0530\n"
"Last-Translator: Shankar Prasad <svenkate@redhat.com>\n"
"Language-Team: Kannada <en@li.org>\n"
@@ -58,7 +58,7 @@ msgstr "%s ಅನ್ನು ಮರಳಿ ನಮೂದಿಸಿ"
msgid "Password change aborted."
msgstr "ಗುಪ್ತಪದ ಬದಲಾವಣೆಯನ್ನು ಸ್ಥಗಿತಗೊಳಿಸಲಾಗಿದೆ."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "ಲಾಗಿನ್:"
@@ -194,54 +194,61 @@ msgstr "ಅನ್ವಯವು libpam ಅನ್ನು ಪುನಃ ಕರೆಯ
msgid "Unknown PAM error"
msgstr "ಗೊತ್ತಿರದ PAM ದೋಷ"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "ಇದು ಹಳೆಯದರ ಹಾಗೆಯೇ ಇದೆ"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "ಸಂವಾದಾತ್ಮಕ ದೋಷ"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "ಇದು ಒಂದು ಸಮಾನ ಪೂರ್ವಾಪರವಾಗಿದೆ (palindrome)"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "ಕೇವಲ ಕೇಸ್ ಗಳ ಬದಲಾವಣೆಯಾಗಿದೆ ಅಷ್ಟೆ"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "ಇದು ಹಳೆಯದಕ್ಕೆ ಬಹಳಷ್ಟು ಹೋಲುತ್ತದೆ"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "ಇದು ಬಹಳ ಸರಳವಾಗಿದೆ"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "ಇದು ತಿರುಗಿಸಲಾಗಿದೆ"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "ಸಾಕಷ್ಟು ಕ್ಯಾರೆಕ್ಟರ್ ವರ್ಗಗಳು ಇಲ್ಲ"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "ಇದು ಒಂದೇ ಬಗೆಯ ಬಹಳಷ್ಟು ಕ್ಯಾರೆಕ್ಟರುಗಳನ್ನು ಅನುಕ್ರಮವಾಗಿ ಹೊಂದಿದೆ"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "ಇದು ಯಾವುದೊ ಒಂದು ಬಗೆಯಲ್ಲಿ ಬಳಕೆದಾರ ಹೆಸರನ್ನು ಒಳಗೊಂಡಿದೆ"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "ಯಾವುದೇ ಗುಪ್ತಪದ ನೀಡಲಾಗಿಲ್ಲ"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "ಗುಪ್ತಪದ ಬದಲಾಗಿಲ್ಲ"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "ಕೆಟ್ಟ ಗುಪ್ತಪದ: %s"
@@ -262,18 +269,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s ವಿಫಲಗೊಂಡಿದೆ: ಗೊತ್ತಿರದ ಸ್ಥಿತಿ 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " %.*s ನಿಂದ"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " %.*s ನಲ್ಲಿ"
@@ -289,12 +296,12 @@ msgid "Welcome to your new account!"
msgstr "ನಿಮ್ಮ ಹೊಸ ಖಾತೆಗೆ ಸುಸ್ವಾಗತ!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "ಕೊನೆಯ ಲಾಗಿನ್:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -303,12 +310,12 @@ msgstr[0] "ಕೊನೆಯ ಬಾರಿಯ ಯಶಸ್ವಿ ಪ್ರವೇಶ
msgstr[1] "ಕೊನೆಯ ಬಾರಿಯ ಯಶಸ್ವಿ ಪ್ರವೇಶದ ನಂತರ %d ಪ್ರವೇಶದ ಪ್ರಯತ್ನಗಳು ವಿಫಲಗೊಂಡಿದೆ."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr "ಕೊನೆಯ ಬಾರಿಯ ಯಶಸ್ವಿ ಪ್ರವೇಶದ ನಂತರ %d ಪ್ರವೇಶದ ಪ್ರಯತ್ನಗಳು ವಿಫಲಗೊಂಡಿದೆ."
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "'%s'ಗಾಗಿ ಬಹಳಷ್ಟು ಲಾಗಿನ್ನುಗಳು."
@@ -359,8 +366,8 @@ msgstr "ಕೋಶ '%s' ಅನ್ನು ರಚಿಸಲಾಗುತ್ತಿದ
msgid "Unable to create and initialize directory '%s'."
msgstr "ಕೋಶ '%s' ಅನ್ನು ರಚಿಸಲು ಹಾಗು ಆರಂಭಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ."
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "ಗುಪ್ತಪದವು ಈಗಾಗಲೆ ಬಳಸಲ್ಪಟ್ಟಿದೆ. ಬೇರೊಂದನ್ನು ಬಳಸಿ."
@@ -368,43 +375,43 @@ msgstr "ಗುಪ್ತಪದವು ಈಗಾಗಲೆ ಬಳಸಲ್ಪಟ್
msgid "Would you like to enter a security context? [N] "
msgstr "ನೀವು ಒಂದು ಸುರಕ್ಷತಾ ಸನ್ನಿವೇಶವನ್ನು ದಾಖಲಿಸಲು ಇಚ್ಛಿಸುತ್ತೀರ? [N]"
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "ಪಾತ್ರ:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "ಮಟ್ಟ:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "ಸಮಂಜಸವಾದ ಸುರಕ್ಷತಾ ಸನ್ನಿವೇಶ ಅಲ್ಲ"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "ಡೀಫಾಲ್ಟ್‍ ಸುರಕ್ಷತಾ ಸನ್ನಿವೇಶ %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "ನೀವು ನೀವು ಬೇರೊಂದು ಪಾತ್ರ ಅಥವ ಮಟ್ಟವನ್ನು ದಾಖಲಿಸಲು ಇಚ್ಛಿಸುತ್ತೀರ?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "%s ಪಾತ್ರಕ್ಕಾಗಿ ಯಾವುದೆ ಡೀಫಾಲ್ಟ್‍ ಬಗೆ ಇಲ್ಲ\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "%s ಗಾಗಿ ಮಾನ್ಯವಾದ ಸನ್ನಿವೇಶವನ್ನು ಪಡೆದುಕೊಳ್ಳಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "ಸುರಕ್ಷತಾ ಸನ್ನಿವೇಶ %s ವನ್ನು ನಿಯೋಜಿಸಲಾಗಿದೆ"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "ಕೀಲಿ ನಿರ್ಮಾಣ ಸನ್ನಿವೇಶ %s ವನ್ನು ನಿಯೋಜಿಸಲಾಗಿದೆ"
@@ -424,20 +431,20 @@ msgstr "pam_set_item() ಮಾಡುವಲ್ಲಿ ವಿಫಲತೆ\n"
msgid "login: failure forking: %m"
msgstr "ಲಾಗಿನ್: ಫೋರ್ಕಿಂಗ್ ಮಾಡುವಲ್ಲಿ ವಿಫಲತೆ:%m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "%s ಗಾಗಿ STRESS ಗುಪ್ತಪದವನ್ನು ಬದಲಾಯಿಸಲಾಗುತ್ತಿದೆ."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "ಹೊಸ STRESS ಗುಪ್ತಪದವನ್ನು ಟೈಪಿಸಿ: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "ಹೊಸ STRESS ಗುಪ್ತಪದವನ್ನು ಪುನಃ ಟೈಪಿಸಿ: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "ತಪಾಸಣೆಗೆ ಟೈಪಿಸಿದ್ದು ತಪ್ಪಾಗಿದೆ; ಗುಪ್ತಪದ ಬದಲಾಗಿಲ್ಲ"
@@ -537,31 +544,31 @@ msgstr[1] "ಎಚ್ಚರಿಕೆ: %d ದಿನಗಳಲ್ಲಿ ನಿಮ್
msgid "Warning: your password will expire in %d days"
msgstr "ಎಚ್ಚರಿಕೆ: %d ದಿನಗಳಲ್ಲಿ ನಿಮ್ಮ ಗುಪ್ತಪದದ ಅವಧಿ ಅಂತ್ಯಗೊಳ್ಳುತ್ತದೆ"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "NIS ಗುಪ್ತಪದವನ್ನು ಬದಲಾಯಿಸಲಾಗುವುದಿಲ್ಲ್ಲ."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "ನೀವು ಒಂದು ಉದ್ದವಾದ ಗುಪ್ತಪದವನ್ನು ಆರಿಸಬೇಕು"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "%s ಗಾಗಿ ಗುಪ್ತಪದವನ್ನು ಬದಲಾಯಿಸಲಾಗುತ್ತಿದೆ."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(ಪ್ರಸ್ತುತ) UNIX ಗುಪ್ತಪದ: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "ನಿಮ್ಮ ಗುಪ್ತಪದವನ್ನು ಬದಲಾಯಿಸಲು ನೀವು ಬಹಳ ಸಮಯ ಕಾಯಬೇಕು"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "ಹೊಸ UNIX ಗುಪ್ತಪದವನ್ನು ದಾಖಲಿಸಿ: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "ಹೊಸ UNIX ಗುಪ್ತಪದವನ್ನು ಪುನಃ ಟೈಪಿಸಿ: "
diff --git a/po/ko.po b/po/ko.po
index 8194293b..b49190e9 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pam.tip\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-09-04 16:29+1000\n"
"Last-Translator: Eunju Kim <eukim@redhat.com>\n"
"Language-Team: Korean <ko@li.org>\n"
@@ -58,7 +58,7 @@ msgstr "다시 입력 %s "
msgid "Password change aborted."
msgstr "암호가 변경되지 않습니다. "
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "로그인:"
@@ -194,54 +194,61 @@ msgstr "libpam을 다시 불러오려면 응용 프로그램이 필요함"
msgid "Unknown PAM error"
msgstr "알 수 없는 PAM 오류"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "이전 암호와 같음"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "인증 대화 오류"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "앞뒤 어느쪽에서 읽어도 같은 문맥임"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "대소문자만 변경"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "이전 암호와 유사함"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "너무 간단함"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "교체됨"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "문자 클래스가 부족합니다 "
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "너무 많은 동일한 문자가 연속적으로 포함되어있습니다 "
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "어떠한 형식으로 사용자 이름을 포함합니다. "
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "암호가 없음"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "암호가 변경되지 않음"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "잘못된 암호: %s"
@@ -262,18 +269,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s 실패: 알 수 없는 상태 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " %.*s에서 시작"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " 일시 %.*s"
@@ -289,12 +296,12 @@ msgid "Welcome to your new account!"
msgstr "새로운 계정을 사용해 주셔서 감사합니다!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "마지막 로그인 실패:%s%s%s "
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -302,12 +309,12 @@ msgid_plural ""
msgstr[0] "마지막 로그인 후 %d 번의 로그인 시도가 실패하였습니다. "
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr "마지막 로그인 후 %d 번의 로그인 시도가 실패하였습니다. "
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "'%s' 대해 너무 많이 로그인함."
@@ -358,8 +365,8 @@ msgstr "'%s' 디렉토리 생성 중. "
msgid "Unable to create and initialize directory '%s'."
msgstr "'%s' 디렉토리를 생성 및 초기화할 수 없습니다. "
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "이미 사용되고 있는 암호입니다. 다른 암호를 선택해 주십시오."
@@ -367,43 +374,43 @@ msgstr "이미 사용되고 있는 암호입니다. 다른 암호를 선택해
msgid "Would you like to enter a security context? [N] "
msgstr "보안 문맥을 입력하시겠습니까? [N] "
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "역할: "
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "레벨: "
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "유효한 보안 문맥이 없음"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "기본값 보안 문맥 %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "다른 역할 또는 레벨을 입력하시겠습니까? "
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "%s 역할에 대한 기본값 유형이 없음 \n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "%s에 대한 유효한 문맥을 가져올 수 없음 "
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "보안 문맥 %s 할당"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "키 생성 문맥 %s 할당 "
@@ -423,20 +430,20 @@ msgstr "pam_set_item() 실패\n"
msgid "login: failure forking: %m"
msgstr "로그인: 포크 작업(forking) 실패: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "%s에 대한 STRESS 암호 변경 "
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "새 STRESS 암호 입력:"
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "새 STRESS 암호를 재입력:"
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "암호 확인에서 잘못 입력됨; 암호가 변경되지 않음"
@@ -533,31 +540,31 @@ msgstr[0] "경고: %d일 내로 암호가 만료됩니다"
msgid "Warning: your password will expire in %d days"
msgstr "경고: %d일 내로 암호가 만료됩니다"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "NIS 암호는 변경할 수 없습니다."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "더 긴 암호를 선택해 주십시오"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "%s에 대한 암호 변경 중 "
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(현재) UNIX 암호:"
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "암호 변경을 위해 조금더 기다려 주십시오."
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "새 UNIX 암호 입력:"
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "새 UNIX 암호 재입력:"
diff --git a/po/ml.po b/po/ml.po
index d511edc1..aec67ff2 100644
--- a/po/ml.po
+++ b/po/ml.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pam.default.ml\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2010-03-24 14:41+0530\n"
"Last-Translator: \n"
"Language-Team: <en@li.org>\n"
@@ -61,7 +61,7 @@ msgstr "%s വീണ്ടും ടൈപ്പ് ചെയ്യുക"
msgid "Password change aborted."
msgstr "അടയാളവാക്ക് മാറ്റം വരുത്തുന്നതു് നിര്‍ത്തിയിരിക്കുന്നു."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "ലോഗിന്‍:"
@@ -197,54 +197,61 @@ msgstr "പ്രയോഗങ്ങള്‍ക്ക് വീണ്ടും l
msgid "Unknown PAM error"
msgstr "അപരിചിതമായ PAM പിശക്"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "പഴയത് പോലെ തന്നെയാകുന്നതു്"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "സംവാദത്തിലുളള പിശക്"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "ഒരു പാലിന്‍ഡ്രോം ആണു്"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "അക്ഷരങ്ങളുടെ വലിപ്പം മാത്രം മാറുന്നതു്"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "പഴയതിന് സാമ്യമുള്ളതു്"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "സാധാരണയുള്ളതു്"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "is rotated"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "മതിയായ ക്യാരക്ടര്‍ ക്ലാസ്സുകള്‍ ലഭ്യമല്ല"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "അടുത്തടുത്ത് ഒരേപോലുള്ള അനവധി അക്ഷരങ്ങളുണ്ടു്"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "ഉപയോക്താവിന്റെ നാമം ഏതെങ്കിലും ഒരു തരത്തിലുണ്ടു്"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "അടയാളവാക്ക് നല്‍കിയിട്ടില്ല"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "അടയാളവാക്ക് മാറ്റിയിട്ടില്ല"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "തെറ്റായ അടയാളവാക്ക്: %s"
@@ -265,18 +272,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s പരാ‍ജയപ്പെട്ടു: അപരിചിതമായ 0x%x നിലവാരം"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " %.*s-ല്‍ നിന്നും"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " %.*s-ല്‍"
@@ -292,12 +299,12 @@ msgid "Welcome to your new account!"
msgstr "നിങ്ങളുടെ പുതിയ അക്കൌണ്ടിലേക്ക് സ്വാഗതം!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "അവസാനം ലോഗിന്‍ ചെയ്തതു് പരാജയപ്പെട്ടു:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -306,12 +313,12 @@ msgstr[0] "ശരിയായി അവസാനം ലോഗിന്‍ ചെ
msgstr[1] "ശരിയായി അവസാനം ലോഗിന്‍ ചെയ്ത ശേഷം %d തവണ ലോഗിന്‍ പരാജയപ്പെട്ടു."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr "ശരിയായി അവസാനം ലോഗിന്‍ ചെയ്ത ശേഷം %d തവണ ലോഗിന്‍ പരാജയപ്പെട്ടു."
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "'%s'-ന് അനവധി ലോഗിനുകള്‍."
@@ -362,8 +369,8 @@ msgstr "'%s' ഡയറക്ടറി ഉണ്ടാക്കുന്നു."
msgid "Unable to create and initialize directory '%s'."
msgstr "%s ഡയറക്ടറി ഉണ്ടാക്കുവാനും ആരംഭിക്കുവാനും സാധ്യമായില്ല."
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "അടയാളവാക്ക് നിലവില്‍ ഉപയോഗിത്തിലുള്ളതാണ്. മറ്റൊന്ന് നല്‍കുക."
@@ -371,43 +378,43 @@ msgstr "അടയാളവാക്ക് നിലവില്‍ ഉപയോ
msgid "Would you like to enter a security context? [N] "
msgstr "നിങ്ങള്‍ക്ക് ഒരു സെക്യൂരിറ്റി കോണ്‍ടെക്സ്റ്റ് നല്‍കണമോ? [N] "
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "ജോലി:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "നില: "
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "ശരിയായ സെക്യൂരിറ്റി കോണ്‍ടെക്സ്റ്റ് അല്ല"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "സ്വതവേയുള്ള സെക്യൂരിറ്റി കോണ്‍ടെക്സ്റ്റ് %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "നിങ്ങള്‍ക്കു് മറ്റൊരു ജോലി അല്ലെങ്കില്‍ നില നല്‍കണമോ?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "%s ജോലിയ്ക്കു് സ്വതവേയുള്ള തരം ലഭ്യമല്ല\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "%s-നുള്ള ശരിയായ കോണ്‍ടെക്സ്റ്റ് ലഭ്യമല്ല"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "%s എന്ന സെക്യൂരിറ്റി കോണ്‍ടെക്സ്റ്റ് നല്‍കിയിരിക്കുന്നു"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "കീ ഉണ്ടാക്കുന്നതിനുള്ള കോണ്‍ടെക്സ്റ്റ് ആയ %s നല്‍കിയിരിക്കുന്നു"
@@ -427,20 +434,20 @@ msgstr "pam_set_item() ചെയ്യുന്നതില്‍ പരാജ
msgid "login: failure forking: %m"
msgstr "login: ഫോര്‍ക്ക് ചെയ്യുന്നതില്‍ പരാജയം: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "%s-നുളള STRESS അടയാളവാക്ക് മാറ്റുന്നു."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "പുതിയ STRESS അടയാളവാക്ക് നല്‍കുക: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "പുതിയ STRESS അടയാളവാക്ക് വീണ്ടും ടൈപ്പ് ചെയ്യുക: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "അടയാളവാക്ക് ഉറപ്പാക്കുന്നതിനായി ടൈപ്പ് ചെയ്തത് തെറ്റാണ്; അടയാളവാക്ക് മാറ്റിയിട്ടില്ല"
@@ -540,31 +547,31 @@ msgstr[1] "മുന്നറിയിപ്പ്: നിങ്ങളുടെ
msgid "Warning: your password will expire in %d days"
msgstr "മുന്നറിയിപ്പ്: നിങ്ങളുടെ അടയാളവാക്കിന്റെ കാലാവധി %d ദിവസത്തിനുള്ളില്‍ അവസാനിക്കുന്നു"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "NIS അടയാളവാക്ക് മാറ്റുവാന്‍ സാധ്യമാകുന്നില്ല."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "ഇതിലും വലിയ അടയാളവാക്ക് തിരഞ്ഞെടുക്കുക"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "%s-നുളള അടയാളവാക്ക് മാറ്റുന്നു."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(നിലവിലുളളത്) UNIX രഅടയാളവാക്ക്: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "നിങ്ങളുടെ അടയാളവാക്ക് മാറ്റുന്നതിനായി ഇനിയും കാത്തിരിക്കേണ്ടതാണ്."
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "പുതിയ UNIX അടയാളവാക്ക് നല്‍കുക: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "പുതിയ UNIX അടയാളവാക്ക് വീണ്ടും ടൈപ്പ് ചെയ്യുക: "
diff --git a/po/mr.po b/po/mr.po
index 9baf5def..1503193d 100644
--- a/po/mr.po
+++ b/po/mr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pam.tip.mr\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-04-14 11:31+0530\n"
"Last-Translator: Sandeep Shedmake <sandeep.shedmake@gmail.com>\n"
"Language-Team: marathi\n"
@@ -58,7 +58,7 @@ msgstr "%s पुन्हा प्रविष्ट करा"
msgid "Password change aborted."
msgstr "परवलीचा शब्द रद्द केले."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "दाखलन:"
@@ -194,54 +194,61 @@ msgstr "अनुप्रयोगास libpam ची आवश्चकता
msgid "Unknown PAM error"
msgstr "अपरिचीत PAM त्रुटी"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "प्रविष्ट केलेले जुण्या प्रमाणेच आहे"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "संवाद त्रुटी"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "पॅलींड्रोम आहे"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "फक्त आकार बदलाव"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "प्रविष्ट केलेले जुण्या नुरूपच आहे"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "खूपच सोपे आहे"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "स्तर बदलविले गेले"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "अतिरिक्त अक्षर गट उपलब्ध नाही"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "पाठोपाठ खूप जास्त समान अक्षर आढळले"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "कुठल्यातरी स्वरूपात वापरकर्ता नाव आढळले"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "गुप्तशब्द दिलेला नाही"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "गुप्तशब्द बदलविला नाही"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "अयोग्य गुप्तशब्द: %s"
@@ -262,18 +269,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s अपयशी: अपरिचीत स्थिती 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " %.*s पासून"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " %.*s वरील"
@@ -289,12 +296,12 @@ msgid "Welcome to your new account!"
msgstr "नवीन खात्यावर स्वागत आहे!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "शेवटचे अपयशी दाखलन:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -303,12 +310,12 @@ msgstr[0] "शेवटचे यशस्वी प्रवेश पासू
msgstr[1] "शेवटचे यशस्वी प्रवेश पासून %d अपयशी प्रवेश प्रयत्न आढळले गेले."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr "शेवटचे यशस्वी प्रवेश पासून %d अपयशी प्रवेश प्रयत्न आढळले."
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "'%s' करीता एकापेक्षा जास्त प्रवेश."
@@ -359,8 +366,8 @@ msgstr "संचयीका '%s' बनवित आहे."
msgid "Unable to create and initialize directory '%s'."
msgstr "डिरेक्ट्री '%s' बनवण्यास व प्रारंभ करण्यास अशक्य."
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "ह्या गुप्तशब्दचा आधीच वापर झाला आहे. दुसरा निवडा."
@@ -368,43 +375,43 @@ msgstr "ह्या गुप्तशब्दचा आधीच वापर
msgid "Would you like to enter a security context? [N] "
msgstr "तुम्हाला सुरक्षा संदर्भ प्रविष्ट करायला आवडेल? [N] "
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "भूमिका:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "स्तर:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "वैध सुरक्षा संदर्भ नाही"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "मुलभूत सुरक्षा संदर्भ %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "तुम्हाला अन्य भूमिका किंवा स्तर प्रविष्ट करायला आवडेल?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "भूमिका %s करीता मुलभूत प्रकार आढळले नाही\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "%s करीता वैध संदर्भ प्राप्त करू शकले नाही"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "सुरक्षा संदर्भ %s लागू केले गेले"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "कि निर्माण संदर्भ %s लागू केले गेले"
@@ -424,20 +431,20 @@ msgstr "pam_set_item() कार्यान्वीत करण्यास
msgid "login: failure forking: %m"
msgstr "दाखलन: विभाजन अपयशी: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "%s करीता STRESS गुप्तशब्द बदलवित आहे."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "नवीन STRESS गुप्तशब्द प्रविष्ट करा: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "नवीन STRESS गुप्तशब्द पुन्हा प्रविष्ट करा: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "तपासणी पूर्ण झाली नाही; गुप्तशब्द बदलविले नाही"
@@ -535,31 +542,31 @@ msgstr[1] "सावधानता: तुमचे गुप्तशब्द
msgid "Warning: your password will expire in %d days"
msgstr "सावधानता: तुमचे गुप्तशब्द %d दिवसात कालबाह्य होईल"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "NIS गुप्तशब्द बदलविले जाऊ शकत नाही."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "तुम्ही मोठा गुप्तशब्द निवडला पाहीजे"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "%s करीता गुप्तशब्द बदलवित आहे."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(चालू) UNIX गुप्तशब्द: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "तुमचा गुप्तशब्द बदलण्यासाठी तुम्हाला बराच वेळ वाट पहावी लागेल"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "नवीन UNIX गुप्तशब्द प्रविष्ट करा: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "नवीन UNIX गुप्तशब्द पुन्हा टाइप करा: "
diff --git a/po/ms.po b/po/ms.po
index d0059351..bd9362f3 100644
--- a/po/ms.po
+++ b/po/ms.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: linux-pam\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2008-09-25 23:52+0800\n"
"Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman@myrealbox.com>\n"
"Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n"
@@ -61,7 +61,7 @@ msgstr ""
msgid "Password change aborted."
msgstr "Biarkan tanpa diubah"
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
#, fuzzy
msgid "login:"
msgstr "Login:"
@@ -212,62 +212,69 @@ msgstr ""
msgid "Unknown PAM error"
msgstr "Ralat sistem tidak diketahui"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
#, fuzzy
msgid "is the same as the old one"
msgstr " --src - pakej berikut adalah pakej sumber (sama dgn -s).\n"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "Ralat KMail"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
#, fuzzy
msgid "is a palindrome"
msgstr "seadanya"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
#, fuzzy
msgid "case changes only"
msgstr "Tetapkan hanya kad \"%s\"%s"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
#, fuzzy
msgid "is too simple"
msgstr "Nama terlalu panjang"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
#, fuzzy
msgid "is rotated"
msgstr "seadanya"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
#, fuzzy
msgid "not enough character classes"
msgstr "Tidak cukup volum fizikal"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
#, fuzzy
msgid "No password supplied"
msgstr "Kata Laluan & Akaun Pengguna"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
#, fuzzy
msgid "Password unchanged"
msgstr "Biarkan tanpa diubah"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, fuzzy, c-format
msgid "BAD PASSWORD: %s"
msgstr "Katalaluan Tidak Betul"
@@ -288,18 +295,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr ""
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr ""
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, fuzzy, c-format
msgid " from %.*s"
msgstr "Dari: "
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, fuzzy, c-format
msgid " on %.*s"
msgstr "\"%s\" (pada %s)"
@@ -316,12 +323,12 @@ msgid "Welcome to your new account!"
msgstr "Menambah klien baru pada rangkaian anda"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, fuzzy, c-format
msgid "Last failed login:%s%s%s"
msgstr "Pengurus Login"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -329,12 +336,12 @@ msgid_plural ""
msgstr[0] ""
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr ""
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr ""
@@ -389,8 +396,8 @@ msgstr "Menbuat direktori initrd"
msgid "Unable to create and initialize directory '%s'."
msgstr "gagal untuk mencipta direktori %s: %s\n"
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr ""
@@ -398,47 +405,47 @@ msgstr ""
msgid "Would you like to enter a security context? [N] "
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
#, fuzzy
msgid "level:"
msgstr "Tahap 1"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
#, fuzzy
msgid "Not a valid security context"
msgstr "%s adalah nama hos yang tidak sah"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, fuzzy, c-format
msgid "Default Security Context %s\n"
msgstr "ketika mengulangtetap konteks"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, fuzzy, c-format
msgid "No default type for role %s\n"
msgstr ""
"$$ untuk hukum pertengahan pada $%d bagi `%s' tidak mempunyai jenis "
"dinyatakan"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, fuzzy, c-format
msgid "Security Context %s Assigned"
msgstr "ketika mengulangtetap konteks"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr ""
@@ -458,21 +465,21 @@ msgstr ""
msgid "login: failure forking: %m"
msgstr "Ben_arkan logmasuk luartalian"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, fuzzy, c-format
msgid "Changing STRESS password for %s."
msgstr "Greek 'astator' untuk 'menukar'"
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
#, fuzzy
msgid "Enter new STRESS password: "
msgstr "Masukkkan Katalaluan Pemuat But"
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr ""
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr ""
@@ -570,32 +577,32 @@ msgstr[1] ""
msgid "Warning: your password will expire in %d days"
msgstr ""
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr ""
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr ""
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "Menukar katalaluan untuk %s."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(semasa) katalaluan UNIX:"
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr ""
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "Masukkan katalaluan UNIX baru:"
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr ""
diff --git a/po/nb.po b/po/nb.po
index 52222340..5d46ec8b 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Linux-PAM\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2008-04-30 12:59+0200\n"
"Last-Translator: Olav Pettershagen <olav.pet@online.no>\n"
"Language-Team: <nb@li.org>\n"
@@ -58,7 +58,7 @@ msgstr ""
msgid "Password change aborted."
msgstr "Passord uendret"
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "logg inn:"
@@ -194,54 +194,61 @@ msgstr "Programmet må spørre libpam på nytt"
msgid "Unknown PAM error"
msgstr "Ukjent PAM-feil"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "er det samme som det gamle"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "Dialogfeil"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "er et palindrom"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "kun endring av små/store bokstaver"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "er for likt det gamle"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "er for enkelt"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "er rotert"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "ikke nok tegnklasser"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "Passord ikke angitt"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "Passord uendret"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "SVAKT PASSORD: %s"
@@ -262,18 +269,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s feilet: ukjent status 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " fra %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " på %.*s"
@@ -289,12 +296,12 @@ msgid "Welcome to your new account!"
msgstr "Velkommen til din nye konto!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, fuzzy, c-format
msgid "Last failed login:%s%s%s"
msgstr "Siste innlogging:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -303,12 +310,12 @@ msgstr[0] ""
msgstr[1] ""
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr ""
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "For mange innlogginger for '%s'."
@@ -359,8 +366,8 @@ msgstr "Oppretter katalog «%s»."
msgid "Unable to create and initialize directory '%s'."
msgstr "Kan ikke opprette katalog %s: %m"
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "Passordet er allerede benyttet. Velg et annet."
@@ -368,43 +375,43 @@ msgstr "Passordet er allerede benyttet. Velg et annet."
msgid "Would you like to enter a security context? [N] "
msgstr "Vil du angi sikkerhetskontekst? [N] "
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "rolle:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "nivå:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "Ikke en gyldig sikkerhetskontekst"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "Forvalgt sikkerhetskontekst %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "Vil du angi en annen rolle eller nivå?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "Ingen forvalgt type for rolle %s\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "Kan ikke finne gyldig kontekst for %s"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "Sikkerhetskontekst %s tilordnet"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "Kontekst %s for oppretting av nøkkel tilordnet"
@@ -424,20 +431,20 @@ msgstr "kunne ikke pam_set_item()\n"
msgid "login: failure forking: %m"
msgstr "login: feil under forgrening: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "Endrer STRESS-passord for %s."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "Angi nytt STRESS-passord: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "Bekreft nytt STRESS-passord: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "Bekreftelse feil skrevet; passord uendret"
@@ -533,32 +540,32 @@ msgstr[1] "Advarsel: passordet ditt vil utløpe om %d dager"
msgid "Warning: your password will expire in %d days"
msgstr "Advarsel: passordet ditt vil utløpe om %d dager"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "NIS-passord kunne ikke endres."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "Du må velge et lengre passord"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "Endrer passord for %s."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(gjeldende) UNIX-passord: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "Du må vente lenger før du kan endre passordet"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "Angi nytt UNIX-passord: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "Bekreft nytt UNIX-passord: "
diff --git a/po/nl.po b/po/nl.po
index 8022eab0..aaaa110c 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pam.tip.nl\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2010-07-13 14:11+0200\n"
"Last-Translator: Geert Warrink <geert.warrink@onsnet.nu>\n"
"Language-Team: Fedora\n"
@@ -63,7 +63,7 @@ msgstr "Voer %s opnieuw in"
msgid "Password change aborted."
msgstr "Wachtwoord wijzigen afgebroken."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "gebruikersnaam:"
@@ -199,54 +199,61 @@ msgstr "Toepassing moet libpam nogmaals aanroepen"
msgid "Unknown PAM error"
msgstr "Onbekende PAM fout"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "is hetzelfde als het oude"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "Conversatie fout"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "is een palindroom"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "alleen veranderingen in hoofd/kleine letters"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "lijkt te veel op het oude"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "is te eenvoudig"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "is omgedraaid"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "niet genoeg karakter klasses"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "bevat teveel dezelfde opeenvolgende karakters"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "bevat de gebruikersnaam in een of andere vorm"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "Geen wachtwoord opgegeven"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "Wachtwoord is niet gewijzigd"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "SLECHT WACHTWOORD: %s"
@@ -267,18 +274,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s is mislukt: onbekende status 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " van %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " op %.*s"
@@ -294,12 +301,12 @@ msgid "Welcome to your new account!"
msgstr "Welkom bij jouw nieuwe account!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "Laatste mislukte inlog:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -309,13 +316,13 @@ msgstr[1] ""
"Er waren %d mislukte inlog pogingen sinds de laatste succesvolle inlog."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr ""
"Er waren %d mislukte inlog pogingen sinds de laatste succesvolle inlog."
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "Te vaak ingelogd met '%s'."
@@ -366,8 +373,8 @@ msgstr "Aanmaken van map '%s'."
msgid "Unable to create and initialize directory '%s'."
msgstr "Niet in staat om map '%s' aan te maken."
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "Wachtwoord is al gebruikt. Kies een ander wachtwoord."
@@ -375,43 +382,43 @@ msgstr "Wachtwoord is al gebruikt. Kies een ander wachtwoord."
msgid "Would you like to enter a security context? [N] "
msgstr "Wil je een beveiliging context invoeren? [N] "
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "rol:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "niveau:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "Geen geldige beveiliging context"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "Standaard beveiliging context %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "Wil je een andere rol of een ander niveau invoeren?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "Geen standaard type voor rol %s\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "Niet in staat om geldige context voor %s te verkrijgen"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "Beveilging context %s toegewezen"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "Sleutel aanmaak context %s toegewezen"
@@ -431,20 +438,20 @@ msgstr "pam_set_item() mislukte\n"
msgid "login: failure forking: %m"
msgstr "inloggen: beginnen van nieuw proces mislukt: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "Veranderen van STRESS wachtwoord voor %s."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "Nieuw STRESS wachtwoord invoeren: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "Nieuw STRESS wachtwoord herhalen: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "Verificatie onjuist getypt; wachtwoord blijft ongewijzigd"
@@ -545,31 +552,31 @@ msgstr[1] "Waarschuwing: jouw wachtwoord zal binnen %d dagen verlopen"
msgid "Warning: your password will expire in %d days"
msgstr "Waarschuwing: jouw wachtwoord zal binnen %d dagen verlopen"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "NIS wachtwoord kon niet worden gewijzigd."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "Je moet een langer wachtwoord kiezen"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "Veranderen van wachtwoord voor %s."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(huidig) UNIX wachtwoord: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "Je moet langer wachten om jouw wachtwoord te wijzigen"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "Nieuw UNIX wachtwoord invoeren: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "Nieuw UNIX wachtwoord herhalen: "
diff --git a/po/or.po b/po/or.po
index 9a55523d..3a0d7f93 100644
--- a/po/or.po
+++ b/po/or.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pam.tip.or\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-04-01 15:07+0530\n"
"Last-Translator: Manoj Kumar Giri <mgiri@redhat.com>\n"
"Language-Team: Oriya <oriya-it@googlegroups.com>\n"
@@ -63,7 +63,7 @@ msgstr "%sକୁ ପୁନର୍ବାର ଟାଇପ କରନ୍ତୁ"
msgid "Password change aborted."
msgstr "ପ୍ରବେଶ ସଙ୍କେତ ପରିବର୍ତ୍ତିନକୁ ପ୍ରତ୍ୟାଖାନ କରାଯାଇଛି।"
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "ଲଗଇନ:"
@@ -199,54 +199,61 @@ msgstr "ପ୍ରୟୋଗ libpam କୁ ପୁନର୍ବାର ଆହ୍ବ
msgid "Unknown PAM error"
msgstr "ଅଜଣା PAM ତୃଟି"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "ପୁରୁଣା ପ୍ରବେଶ ସଙ୍କେତ ସହିତ ଏହା ସମାନ ଅଟେ"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "କଥୋପକଥନ ତୃଟି"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "ପ୍ରବେଶ ସଙ୍କେତଟି ଗୋଟିଏ ପାଲିନଡ୍ରୋମ ଅଟେ"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "କେବଳ ଅକ୍ଷର ପ୍ରକାର ପରିବର୍ତ୍ତିତ ହୋଇଥାଏ"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "ଏହା ପୂର୍ବ ପ୍ରବେଶ ସଙ୍କେତ ସହିତ ବହୁତ ସମାନ ଅଟେ"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "ଏହା ଅତି ସହଜ ଅଟେ"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "ଏହା ଘୂର୍ଣ୍ଣୟମାନ ଅଟେ"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "ଯଥେଷ୍ଟ ବର୍ଣ୍ଣ ଶ୍ରେଣୀ ନାହିଁ"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "ଅତ୍ୟଧିକ ସମାନ ଅକ୍ଷରକୁ ଲଗାତାର ଧାରଣ କରିଥାଏ"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "ଚାଳକ ନାମକୁ କୌଣସି ଉପାୟରେ ଧାରଣ କରିଥାଏ"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "କୌଣସି ପ୍ରବେଶ ସଙ୍କେତ ପ୍ରଦାନ କରାଯାଇ ନାହିଁ"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "ପ୍ରବେଶ ସଙ୍କେତ ଅପରିବର୍ତ୍ତିତ ଅଛି"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "ଖରାପ ପ୍ରବେଶ ସଙ୍କେତ: %s"
@@ -267,18 +274,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s ବିଫଳ: ଅଜଣା ଅବସ୍ଥିତି 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " %.*s ରୁ"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " %.*s ରେ"
@@ -294,12 +301,12 @@ msgid "Welcome to your new account!"
msgstr "ଆପଣଙ୍କ ନୂତନ ଖାତାରେ ଆପଣଙ୍କ ସ୍ବାଗତ!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "ଅନ୍ତିମ ବିଫଳ ଲଗଇନ:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -308,12 +315,12 @@ msgstr[0] "ଅନ୍ତିମ ସଫଳ ଲଗଇନ ପରଠାରୁ %d ଟ
msgstr[1] "ଅନ୍ତିମ ସଫଳ ଲଗଇନ ପରଠାରୁ %d ଟି ବିଫଳ ଲଗଇନ ପ୍ରଚେଷ୍ଟା କରାଯାଇଛି।"
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr "ଅନ୍ତିମ ସଫଳ ଲଗଇନ ପରଠାରୁ %d ଟି ବିଫଳ ଲଗଇନ ପ୍ରଚେଷ୍ଟା କରାଯାଇଛି।"
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "'%s' ପାଇଁ ଅତ୍ଯଧିକ ସଂଖ୍ଯକ ଲଗଇନ।"
@@ -364,8 +371,8 @@ msgstr "ଡ଼ିରେକ୍ଟୋରୀ '%s' ନିର୍ମାଣ କରୁ
msgid "Unable to create and initialize directory '%s'."
msgstr "ଡ଼ିରେକ୍ଟୋରୀ '%s'କୁ ନିର୍ମାଣ ଏବଂ ପ୍ରାରମ୍ଭ କରିବାରେ ଅସମର୍ଥ।"
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "ପ୍ରବେଶ ସଙ୍କେତଟି ପୂର୍ବରୁ ବ୍ଯବହୃତ ହେଉଛି। ଅନ୍ଯ ଗୋଟିଏ ପ୍ରବେଶ ସଙ୍କେତ ଚୟନ କରନ୍ତୁ।"
@@ -373,43 +380,43 @@ msgstr "ପ୍ରବେଶ ସଙ୍କେତଟି ପୂର୍ବରୁ ବ୍
msgid "Would you like to enter a security context? [N] "
msgstr "ଆପଣ ଗୋଟିଏ ସୁରକ୍ଷା ପ୍ରସଙ୍ଗ ଭରଣ କରିବା ପାଇଁ ଚାହୁଁଛନ୍ତି କି? [N]"
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "ଭୂମିକା:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "ସ୍ତର:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "ଏହା ଗୋଟିଏ ବୈଧ ସୁରକ୍ଷା ପ୍ରସଙ୍ଗ ନୁହେଁ"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "ପୂର୍ବନିର୍ଦ୍ଧାରିତ ସୁରକ୍ଷା ପ୍ରସଙ୍ଗ %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "ଆପଣ ଭିନ୍ନ ଏକ ଭୂମିକା କିମ୍ବା ସ୍ତର ଭରଣ କରିବା ପାଇଁ ଚାହୁଁଛନ୍ତି କି?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "ଭୂମିକା %s ପାଇଁ କୌଣସି ପୂର୍ବନିର୍ଦ୍ଧାରିତ ପ୍ରକାର ନାହିଁ \n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "%s ପାଇଁ ବୈଧ ପ୍ରସଙ୍ଗ ପାଇବାରେ ଅସମର୍ଥ"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "%s ସୁରକ୍ଷା ପ୍ରସଙ୍ଗ ନ୍ଯସ୍ତ କରାଯାଇଛି"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "କି ନିର୍ମାଣ୍ଣ ପ୍ରସଙ୍ଗ %s ନ୍ଯସ୍ତ କରାଯାଇଛି"
@@ -429,20 +436,20 @@ msgstr "pam_set_item() କରିବାରେ ବିଫଳ\n"
msgid "login: failure forking: %m"
msgstr "ଲଗଇନ: fork କରିବାରେ ବିଫଳ: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "%s ପାଇଁ STRESS ପ୍ରବେଶ ସଙ୍କେତକୁ ବଦଳାଉଛି."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "ନୂତନ STRESS ପ୍ରବେଶ ସଙ୍କେତ ଭରଣ କରନ୍ତୁ: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "ନୂତନ STRESS ପ୍ରବେଶ ସଙ୍କେତକୁ ପୁନର୍ବାର ଟାଇପ କରନ୍ତୁ: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "ଯାଞ୍ଚକରଣ ସମୟରେ ଭୂଲ ଟାଇପ କରିଛନ୍ତି, ପ୍ରବେଶ ସଙ୍କେତଟି ବଦଳି ନାହିଁ"
@@ -541,31 +548,31 @@ msgstr[1] "ଚେତାବନୀ: ଆପଣଙ୍କ ପ୍ରବେଶ ସଙ
msgid "Warning: your password will expire in %d days"
msgstr "ଚେତାବନୀ: ଆପଣଙ୍କ ପ୍ରବେଶ ସଙ୍କେତ %d ଦିନରେ ଅକାମି ହୋଇଯିବ"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "NIS ପ୍ରବେଶ ସଙ୍କେତକୁ ବଦଳାଇ ହେଲା ନାହିଁ।"
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "ଆପଣ ଗୋଟିଏ ଲମ୍ବା ପ୍ରବେଶ ସଙ୍କେତ ଚୟନ କରିବା ଉଚିତ"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "%s ପାଇଁ ପ୍ରବେଶ ସଙ୍କେତକୁ ବଦଳାଉଛି."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(ବର୍ତ୍ତମାନ ଥିବା) UNIX ପ୍ରବେଶ ସଙ୍କେତ: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "ପ୍ରବେଶ ସଙ୍କେତକୁ ବଦଳାଇବା ପାଇଁ ଆପଣ ଅଧିକ ସମୟ ଅପେକ୍ଷା କରିବା ଉଚିତ"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "ନୂତନ UNIX ପ୍ରବେଶ ସଙ୍କେତ ଭରଣ କରନ୍ତୁ: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "ନୂତନ UNIX ପ୍ରବେଶ ସଙ୍କେତକୁ ପୁନର୍ବାର ଟାଇପ କରନ୍ତୁ: "
diff --git a/po/pa.po b/po/pa.po
index 37c225d4..854c32f5 100644
--- a/po/pa.po
+++ b/po/pa.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pam.tip.pa\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-06-01 16:19+0530\n"
"Last-Translator: Jaswinder Singh <jsingh@redhat.com>\n"
"Language-Team: Punjabi <Punjabi-users@lists.sourceforge.net>\n"
@@ -59,7 +59,7 @@ msgstr "ਮੁੜ-ਲਿਖੋ %s"
msgid "Password change aborted."
msgstr "ਪਾਸਵਰਡ ਤਬਦੀਲੀ ਅਧੂਰੀ ਛੱਡੀ ਗਈ।"
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "ਲਾਗਇਨ:"
@@ -195,54 +195,61 @@ msgstr "ਕਾਰਜ ਲਈ ਫਿਰ libpam ਨੂੰ ਕਾਲ ਕਰਨ ਦ
msgid "Unknown PAM error"
msgstr "ਅਣਜਾਣ PAM ਗਲਤੀ"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "ਪੁਰਾਣੇ ਵਰਗਾ ਹੈ"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "ਤਬਦੀਲੀ ਗਲਤੀ"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "ਇੱਕ palindrome ਹੈ"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "ਸਿਰਫ ਅੱਖਰ ਤਬਦੀਲੀ"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "ਪੁਰਾਣੇ ਨਾਲ ਬਹੁਤ ਮਿਲਦਾ-ਜੁਲਦਾ ਹੈ"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "ਬਹੁਤ ਸਧਾਰਨ ਹੈ"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "ਘੁੰਮਾਇਆ ਹੈ"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "ਲੋੜੀਂਦੀਆਂ ਅੱਖਰ ਸ਼੍ਰੇਣੀਆਂ ਨਹੀਂ ਹਨ"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "ਲਗਾਤਾਰ ਬਹੁਤ ਸਾਰੇ ਮਿਲਦੇ-ਜੁਲਦੇ ਅੱਖਰ ਸ਼ਾਮਿਲ ਹਨ"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "ਕੁਸੇ ਰੂਪ ਵਿੱਚ ਉਪਭੋਗੀ ਨਾਂ ਸ਼ਾਮਿਲ ਹੈ"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "ਕੋਈ ਪਾਸਵਰਡ ਨਹੀਂ ਦਿੱਤਾ ਗਿਆ"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "ਪਾਸਵਰਡ ਨਾ-ਤਬਦੀਲ ਹੈ"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "ਗਲਤ ਪਾਸਵਰਡ: %s"
@@ -263,18 +270,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s ਫੇਲ ਹੋਇਆ: ਅਣਪਛਾਤੀ ਸਥਿਤੀ 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " from %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " on %.*s"
@@ -290,12 +297,12 @@ msgid "Welcome to your new account!"
msgstr "ਤੁਹਾਡੇ ਨਵੇਂ ਖਾਤੇ ਵਿੱਚ ਜੀ ਆਇਆਂ ਨੂੰ!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "ਆਖਰੀ ਫੇਲ ਹੋਇਆ ਲਾਗਇਨ:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -304,12 +311,12 @@ msgstr[0] "ਪਿਛਲੇ ਸਫਲਤਾਪੂਰਕ ਲਾਗਇਨ ਤੋਂ
msgstr[1] "ਪਿਛਲੇ ਸਫਲਤਾਪੂਰਕ ਲਾਗਇਨ ਤੋਂ ਬਾਇਦ %d ਫੇਲ ਲਾਗਇਨ ਕੋਸ਼ਿਸ਼ਾਂ ਹਨ।"
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr "ਪਿਛਲੇ ਸਫਲਤਾਪੂਰਕ ਲਾਗਇਨ ਤੋਂ ਬਾਇਦ %d ਫੇਲ ਲਾਗਇਨ ਕੋਸ਼ਿਸ਼ਾਂ ਹਨ।"
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "'%s' ਲਈ ਬਹੁਤ ਸਾਰੇ ਲਾਗਇਨ।"
@@ -360,8 +367,8 @@ msgstr "ਡਾਇਰੈਕਟਰੀ '%s' ਬਣਾ ਰਿਹਾ ਹੈ।"
msgid "Unable to create and initialize directory '%s'."
msgstr "ਡਾਇਰੈਕਟਰੀ '%s' ਨੂੰ ਬਣਾਉਣ ਅਤੇ ਸ਼ੁਰੂ ਕਰਨ ਵਿੱਚ ਅਸਮਰਥ।"
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "ਪਾਸਵਰਡ ਪਹਿਲਾਂ ਵੀ ਵਰਤਿਆ ਗਿਆ ਹੈ। ਵੱਖਰਾ ਚੁਣੋ।"
@@ -369,43 +376,43 @@ msgstr "ਪਾਸਵਰਡ ਪਹਿਲਾਂ ਵੀ ਵਰਤਿਆ ਗਿਆ
msgid "Would you like to enter a security context? [N] "
msgstr "ਕੀ ਤੁਸੀਂ ਇੱਕ ਸੁਰੱਖਿਆ ਪਰਸੰਗ ਦੇਣਾ ਚਾਹੁੰਦੇ ਹੋ? [N] "
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "ਰੋਲ:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "ਲੈਵਲ:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "ਇੱਕ ਠੀਕ ਸੁਰੱਖਿਆ ਪਰਸੰਗ ਨਹੀਂ"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "ਮੂਲ ਸੁਰੱਖਿਆ ਪ੍ਰਸੰਗ %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "ਕੀ ਤੁਸੀਂ ਇੱਕ ਵੱਖਰਾ ਰੋਲ ਜਾਂ ਲੈਵਲ ਦੇਣਾ ਚਾਹੁੰਦੇ ਹੋ?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "ਰੋਲ %s ਵਾਲੀ ਕੋਈ ਮੂਲ ਕਿਸਮ ਨਹੀਂ ਹੈ\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "%s ਲਈ ਯੋਗ ਪ੍ਰਸੰਗ ਲੈਣ ਵਿੱਚ ਅਸਮਰਥ"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "ਸੁਰੱਖਿਆ ਪ੍ਰਸੰਗ %s ਨਿਰਧਾਰਤ ਕੀਤਾ"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "ਕੁੰਜੀ ਬਣਾਉਣ ਪ੍ਰਸੰਗ %s ਨਿਰਧਾਰਤ ਕੀਤਾ"
@@ -425,20 +432,20 @@ msgstr "pam_set_item() ਲਈ ਫੇਲ\n"
msgid "login: failure forking: %m"
msgstr "ਲਾਗਇਨ: ਫੋਰਕਿੰਗ ਫੇਲ: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "%s ਲਈ STRESS ਪਾਸਵਰਡ ਤਬਦੀਲ ਕਰ ਰਿਹਾ ਹੈ।"
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "ਨਵਾਂ STRESS ਪਾਸਵਰਡ ਦਿਓ: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "ਨਵਾਂ STRESS ਪਾਸਵਰਡ ਮੁੜ-ਲਿਖੋ: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "ਗਲਤ-ਟਾਈਪ ਜਾਂਚ; ਪਾਸਵਰਡ ਨਾ-ਤਬਦੀਲ"
@@ -536,31 +543,31 @@ msgstr[1] "ਚੇਤਾਵਨੀ: ਤੁਹਾਡੇ ਪਾਸਵਰਡ ਦੀ
msgid "Warning: your password will expire in %d days"
msgstr "ਚੇਤਾਵਨੀ: ਤੁਹਾਡੇ ਪਾਸਵਰਡ ਦੀ ਮਿਆਦ %d ਦਿਨਾਂ ਵਿੱਚ ਪੁੱਗ ਜਾਵੇਗੀ"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "NIS ਪਾਸਵਰਡ ਤਬਦੀਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ ਹੈ।"
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "ਤੁਹਾਨੂੰ ਲੰਮੇ ਪਾਸਵਰਡ ਦੀ ਚੋਣ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "%s ਲਈ ਪਾਸਵਰਡ ਤਬਦੀਲ ਕਰ ਰਿਹਾ ਹੈ।"
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(ਮੌਜੂਦਾ) UNIX ਪਾਸਵਰਡ: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "ਤੁਹਾਨੂੰ ਲੰਬੇ ਸਮੇਂ ਲਈ ਆਪਣੇ ਪਾਸਵਰਡ ਲਈ ਉਡੀਕ ਕਰਨੀ ਪਵੇਗੀ"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "ਨਵਾਂ ਯੂਨਿਕਸ ਪਾਸਵਰਡ ਦਿਓ: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "ਨਵਾਂ ਯੂਨਿਕਸ ਪਾਸਵਰਡ ਮੁੜ-ਲਿਖੋ: "
diff --git a/po/pl.po b/po/pl.po
index bc163905..c612b543 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pl\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-09-27 13:48+0200\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <fedora-trans-pl@redhat.com>\n"
@@ -58,7 +58,7 @@ msgstr "Proszę ponownie podać %s"
msgid "Password change aborted."
msgstr "Przerwano zmianę hasła."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "login:"
@@ -195,54 +195,61 @@ msgstr "Aplikacja musi jeszcze raz wywołać libpam"
msgid "Unknown PAM error"
msgstr "Nieznany błąd PAM"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "jest identyczne ze starym"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "Błąd rozmowy"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "jest palindromem"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "ma zmienioną tylko wielkość znaków"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "jest za bardzo podobne do poprzedniego"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "jest za proste"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "jest obrócone"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "za mało klas znaków"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "zawiera za dużo takich samych znaków po sobie"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "zawiera nazwę użytkownika w pewnej formie"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "Nie podano hasła"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "Hasło nie zostało zmienione"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "BŁĘDNE HASŁO: %s"
@@ -263,18 +270,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s nie powiodło się: nieznany stan 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " z %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " na %.*s"
@@ -290,12 +297,12 @@ msgid "Welcome to your new account!"
msgstr "Witaj na swoim nowym koncie!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "Ostatnie nieudane logowanie:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -308,13 +315,13 @@ msgstr[2] ""
"Nastąpiło %d nieudanych prób zalogowania od ostatniego udanego logowania."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr ""
"Nastąpiło %d nieudanych prób zalogowania od ostatniego udanego logowania."
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "Za dużo prób zalogowania na \"%s\"."
@@ -365,8 +372,8 @@ msgstr "Tworzenie katalogu \"%s\"."
msgid "Unable to create and initialize directory '%s'."
msgstr "Nie można utworzyć i zainicjować katalogu \"%s\"."
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "Hasło było już używane. Proszę wybrać inne."
@@ -374,43 +381,43 @@ msgstr "Hasło było już używane. Proszę wybrać inne."
msgid "Would you like to enter a security context? [N] "
msgstr "Podać kontekst bezpieczeństwa? [N]"
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "rola:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "poziom:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "Nieprawidłowy kontekst bezpieczeństwa"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "Domyślny kontekst bezpieczeństwa %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "Podać inną rolę lub poziom?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "Brak domyślnego typu dla roli %s\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "Nie można uzyskać prawidłowego kontekstu dla %s"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "Kontekst bezpieczeństwa %s został przypisany"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "Kontekst tworzenia klucza %s został przypisany"
@@ -430,20 +437,20 @@ msgstr "pam_set_item() nie powiodło się\n"
msgid "login: failure forking: %m"
msgstr "login: rozdzielenie nie powiodło się: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "Zmienianie hasła STRESS dla %s."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "Proszę podać nowe hasło STRESS: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "Proszę ponownie podać hasło STRESS: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "Sprawdzenie nie powiodło się; hasło nie zostało zmienione"
@@ -543,31 +550,31 @@ msgstr[2] "Ostrzeżenie: hasło wygaśnie za %d dni"
msgid "Warning: your password will expire in %d days"
msgstr "Ostrzeżenie: hasło wygaśnie za %d dni"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "Nie można zmienić hasła NIS."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "Należy wybrać dłuższe hasło"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "Zmienianie hasła dla %s."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(obecne) hasło UNIX:"
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "Należy poczekać dłużej, aby zmienić hasło"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "Proszę podać nowe hasło UNIX: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "Proszę ponownie podać hasło UNIX: "
diff --git a/po/pt.po b/po/pt.po
index a6e8cc4b..46c80d85 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pam\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-04-09 16:42+0100\n"
"Last-Translator: Rui Gouveia <rui.gouveia@globaltek.pt>\n"
"Language-Team: pt <fedora-trans-pt@redhat.com>\n"
@@ -61,7 +61,7 @@ msgstr "Digite novamente %s"
msgid "Password change aborted."
msgstr "Alteração da senha interrompida."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "utilizador:"
@@ -198,54 +198,61 @@ msgstr "A aplicação necessita de invocar o libpam novamente"
msgid "Unknown PAM error"
msgstr "Erro PAM desconhecido"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "é igual à anterior"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "Erro de conversação"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "é um palíndromo"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "apenas muda a capitulação"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "é muito semelhante à anterior"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "é demasiado simples"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "é rodada"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "não tem classes de caracteres suficientes"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "contém demasiados caracteres iguais consecutivos"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "contém, de alguma forma, o nome do utilizador"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "Não foi fornecida uma senha"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "Senha inalterada"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "MÁ SENHA: %s"
@@ -266,18 +273,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s falhou: estado desconhecido 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " a partir de %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " em %.*s"
@@ -293,12 +300,12 @@ msgid "Welcome to your new account!"
msgstr "Bem vindo à sua nova conta!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "Último início de sessão falhado:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -311,14 +318,14 @@ msgstr[1] ""
"sessão com sucesso."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr ""
"Houve %d tentativas falhadas de início de sessão desde o último início de "
"sessão com sucesso."
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "Demasiados inícios de sessão para '%s'."
@@ -369,8 +376,8 @@ msgstr "A criar directório '%s'."
msgid "Unable to create and initialize directory '%s'."
msgstr "Não foi possível criar e inicializar o directório '%s'."
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "A senha já foi utilizada anteriormente. Escolha outra."
@@ -378,43 +385,43 @@ msgstr "A senha já foi utilizada anteriormente. Escolha outra."
msgid "Would you like to enter a security context? [N] "
msgstr "Pretende inserir um contexto de segurança? [N]"
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "Perfil: "
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "nível: "
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "Não é um contexto de segurança válido"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "Contexto de Segurança por Omissão %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "Pretende inserir um perfil ou nível diferente?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "Perfil sem tipo definido por omissão %s\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "Não foi possível obter um contexto de segurança válido para %s"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "Contexto de Segurança %s Atribuído"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "Contexto de Segurança de Chaves %s Atribuído"
@@ -434,20 +441,20 @@ msgstr "falha em pam_set_item()\n"
msgid "login: failure forking: %m"
msgstr "início de sessão: falha no 'forking': %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "A alterar a senha STRESS para %s."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "Digite a nova senha STRESS: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "Digite novamente a nova senha STRESS: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "A verificação não coincide; senha inalterada"
@@ -546,32 +553,32 @@ msgstr[1] "Aviso: a sua senha expira em %d dias"
msgid "Warning: your password will expire in %d days"
msgstr "Aviso: a sua palavra passe expira em %d dias"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "A senha NIS não pode ser alterada."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "Deve escolher uma senha mais longa"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "A alterar senha para %s."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "senha UNIX (actual): "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "Tem de esperar mais antes de poder alterar a sua senha"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "Digite a nova senha UNIX: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "Digite novamente a nova senha UNIX: "
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 1341977b..09de8a10 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Linux-PAM.tip\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-02-20 12:41-0300\n"
"Last-Translator: Taylon <taylonsilva@gmail.com>\n"
"Language-Team: Brazilian Portuguese <fedora-trans-pt_br@redhat.com>\n"
@@ -61,7 +61,7 @@ msgstr "Redigite %s"
msgid "Password change aborted."
msgstr "A alteração de senha foi abortada."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "login:"
@@ -197,54 +197,61 @@ msgstr "O aplicativo precisa chamar libpam novamente"
msgid "Unknown PAM error"
msgstr "Erro desconhecido no PAM"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "é igual à antiga senha"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "Erro de conversação"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "é um palíndromo"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "mudou apenas maiúsculas/minúsculas"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "é muito semelhante à antiga"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "é simples demais"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "foi invertida"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "classes de caractere insuficientes"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "contém muitos caracteres igual consecutivamente"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "contém o nome de usuário em algum formulário"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "Nenhuma senha informada"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "Senha inalterada"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "SENHA INCORRETA: %s"
@@ -265,18 +272,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s falhou: status desconhecido 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr "%a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr "de %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr "em %.*s"
@@ -292,12 +299,12 @@ msgid "Welcome to your new account!"
msgstr "Bem-vindo à sua nova conta!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "Falha no último login:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -306,12 +313,12 @@ msgstr[0] "Houve %d falhas de login desde o último login bem sucedido."
msgstr[1] "Houveram %d falhas de login desde o último login bem sucedido."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr "Houveram %d falhas de login desde o último login bem sucedido."
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "Há logins demais para '%s'."
@@ -362,8 +369,8 @@ msgstr "Criando o diretório '%s'."
msgid "Unable to create and initialize directory '%s'."
msgstr "Impossível criar e inicializar o diretório \"%s\"."
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "A senha já foi usada. Escolha outra."
@@ -371,43 +378,43 @@ msgstr "A senha já foi usada. Escolha outra."
msgid "Would you like to enter a security context? [N] "
msgstr "Deseja digitar um contexto de segurança? [N]"
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "função:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "nível:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "Não é um contexto de segurança válido"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "Contexto de Segurança Padrão %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "Deseja digitar uma função ou nível diferente?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "Não existe tipo padrão para a função %s\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "Impossível obter um contexto válido para %s"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "Contexto de segurança %s atribuído"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "Contexto de criação de chave %s atribuído"
@@ -427,20 +434,20 @@ msgstr "falha em pam_set_item()\n"
msgid "login: failure forking: %m"
msgstr "login: falha na bifurcação: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "Mudando senha STRESS para %s."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "Digite a nova senha STRESS:"
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "Digite novamente a nova senha STRESS:"
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "Verificação digitada incorretamente; senha inalterada"
@@ -538,32 +545,32 @@ msgstr[1] "Aviso: sua senha irá expirar em %d dias"
msgid "Warning: your password will expire in %d days"
msgstr "Aviso: sua senha irá expirar em %d dias"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "A senha NIS não pôde ser mudada."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "Escolha uma senha mais longa"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "Mudando senha para %s."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "Senha UNIX (atual):"
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "Aguarde mais tempo para mudar a senha"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "Digite a nova senha UNIX:"
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "Redigite a nova senha UNIX:"
diff --git a/po/ru.po b/po/ru.po
index 69328e33..5d656363 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ru\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-08-21 15:33+1000\n"
"Last-Translator: Yulia Poyarkova <yulia.poyarkova@redhat.com>\n"
"Language-Team: \n"
@@ -64,7 +64,7 @@ msgstr "Повторите ввод %s"
msgid "Password change aborted."
msgstr "Изменение пароля отменено."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "учетная запись:"
@@ -203,55 +203,62 @@ msgstr "Приложение должно повторно вызвать libpam
msgid "Unknown PAM error"
msgstr "Неизвестная ошибка PAM"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "совпадает со старым"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "Ошибка диалога"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "является палиндромом"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "изменения только в регистре"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "слишком похож на старый"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "слишком простой"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "является результатом чередования"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "слишком мало символов различных типов"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "содержит слишком длинную последовательность одинаковых символов"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "содержит имя пользователя"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "Пароль не указан"
# password dialog title
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "Пароль не изменен"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "НЕУДАЧНЫЙ ПАРОЛЬ: %s"
@@ -272,18 +279,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "Сбой %s. Неизвестный статус 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr "%a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr "с %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr "на %.*s"
@@ -299,12 +306,12 @@ msgid "Welcome to your new account!"
msgstr "Добро пожаловать в новую учетную запись!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "Последняя неудачная попытка входа в систему:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -314,12 +321,12 @@ msgstr[1] "Число неудачных попыток со времени по
msgstr[2] "Число неудачных попыток со времени последнего входа: %d."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr "Число неудачных попыток со времени последнего входа: %d."
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "Слишком много регистраций в системе для «%s»."
@@ -370,8 +377,8 @@ msgstr "Создание каталога %s."
msgid "Unable to create and initialize directory '%s'."
msgstr "Не удалось создать и инициализировать каталог %s."
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "Этот пароль уже был использован. Выберите другой."
@@ -380,44 +387,44 @@ msgstr "Этот пароль уже был использован. Выбери
msgid "Would you like to enter a security context? [N] "
msgstr "Ввести контекст безопасности? [N] "
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "роль:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "уровень:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "Неверный контекст безопасности"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "Контекст безопасности по умолчанию %s\n"
# power-off message
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "Хотите ввести другую роль или уровень?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "Для роли %s нет типа по умолчанию\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "Не удалось получить корректный контекст для %s"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "Контекст безопасности %s назначен"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "Контекст %s, используемый при создании ключей, назначен"
@@ -437,21 +444,21 @@ msgstr "не удалось выполнить pam_set_item()\n"
msgid "login: failure forking: %m"
msgstr "регистрация: сбой при создании нового процесса: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "Смена пароля STRESS для %s."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "Введите новый пароль STRESS: "
# Keep the newlines and spaces after ':'!
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "Повторите ввод нового пароля STRESS: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "Подтверждение введено неправильно; пароль не изменен"
@@ -557,33 +564,33 @@ msgid "Warning: your password will expire in %d days"
msgstr "Предупреждение: срок действия пароля истекает через %d дн(я)(ей)"
# password dialog title
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "Пароль NIS изменить нельзя."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "Выберите пароль большей длины"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "Смена пароля для %s."
# Keep the newlines and spaces after ':'!
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(текущий) пароль UNIX: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "До смены пароля должно пройти больше времени"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "Введите новый пароль UNIX: "
# Keep the newlines and spaces after ':'!
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "Повторите ввод нового пароля UNIX: "
diff --git a/po/si.po b/po/si.po
index 463e574d..a3f99ece 100644
--- a/po/si.po
+++ b/po/si.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: si\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2007-06-22 12:24+0530\n"
"Last-Translator: Danishka Navin <snavin@redhat.com>\n"
"Language-Team: Sinhala <en@li.org>\n"
@@ -59,7 +59,7 @@ msgstr "වර්‍ගය:"
msgid "Password change aborted."
msgstr "රහස්පදය වෙනස් නොවිනි"
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "පිවිසීම:"
@@ -195,54 +195,61 @@ msgstr "යෙදුමට පැරණි libpam ඇමතීමට අවශ
msgid "Unknown PAM error"
msgstr "නොදන්නා PAM දෝෂය"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "එය පැරණි රහස්පදය හා සමාන වේ"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "පරිවර්තන දෝෂය"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "එය පැලින්ඩ්‍රොමයකි"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "කැපිටල් සිම්පල් වෙනස්කම් පමණි"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "එය පැරණි රහස්පදය බොගොදුරට සමාන වේ"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "එය සරළ වැඩි වේ"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "භ්‍රමණය වි ඇත"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "රහස්පදය සපයා නැත"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "රහස්පදය වෙනස් නොවිනි"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "BAD PASSWORD: %s"
@@ -263,18 +270,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s අසමත් විය: නොදන්නා තත්වය 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr "%.*s වෙතින්"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr "%.*s වෙනිදා"
@@ -290,12 +297,12 @@ msgid "Welcome to your new account!"
msgstr "ඔබගේ නව ගිණුමට සාදරයෙන් පිළිගනිමු!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, fuzzy, c-format
msgid "Last failed login:%s%s%s"
msgstr "අවසාන පිවිසුම:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -304,12 +311,12 @@ msgstr[0] ""
msgstr[1] ""
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr ""
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "'%s' සඳහා බොහෝ පිවිසුම් ගණනක් ඇත."
@@ -360,8 +367,8 @@ msgstr ""
msgid "Unable to create and initialize directory '%s'."
msgstr ""
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "රහස්පදය දැනටමත් භාවිතා වේ. වෙනත් එකක් තෝරාගන්න."
@@ -370,46 +377,46 @@ msgstr "රහස්පදය දැනටමත් භාවිතා වේ.
msgid "Would you like to enter a security context? [N] "
msgstr "ඔබ ආරක්‍ෂක ප්‍රකරණයක් ඇතුළත් කිරීමට කැමති ද? [y] "
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
#, fuzzy
msgid "role:"
msgstr "කාරිය:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
#, fuzzy
msgid "level:"
msgstr "මට්ටම:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "නිරවද්‍ය ආරක්‍ෂක ප්‍රකරණයක් නොවේ"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, fuzzy, c-format
msgid "Default Security Context %s\n"
msgstr "%s ආරක්‍ෂක ප්‍රකරණය යොදවා ඇත"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
#, fuzzy
msgid "Would you like to enter a different role or level?"
msgstr "ඔබ ආරක්‍ෂක ප්‍රකරණයක් ඇතුළත් කිරීමට කැමති ද? [y] "
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "%s ආරක්‍ෂක ප්‍රකරණය යොදවා ඇත"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, fuzzy, c-format
msgid "Key Creation Context %s Assigned"
msgstr "%s ආරක්‍ෂක ප්‍රකරණය යොදවා ඇත"
@@ -429,20 +436,20 @@ msgstr "pam_set_item() අසමත් විය\n"
msgid "login: failure forking: %m"
msgstr "පිවිසුම: ෆොර්කින් බිදවැටීමක්: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, fuzzy, c-format
msgid "Changing STRESS password for %s."
msgstr "STRESS රහස්පදය වෙනස් කරමින්"
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "නව STRESS රහස්පදය ඇතුළත් කරන්න:"
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "නව STRESS රහස්පදය නැවත ඇතුළත් කරන්න:"
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "ස්ථිරකර ගැනීම සඳහා වැරදි ඇතුලත් කිරීමක්; රහස්පදය වෙනස් කළ නොහැක"
@@ -538,32 +545,32 @@ msgstr[1] "අවවාදයි: ඔබගේ රහස්පදය දින %
msgid "Warning: your password will expire in %d days"
msgstr "අවවාදයි: ඔබගේ රහස්පදය දින %d කින් කල්ඉකුත් වේ"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "NIS රහස්පදය වෙනස් කළ නොහැක."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "ඔබ විසින් දිගු රහස්පදයක් තෝරාගත යුතුම වේ"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, fuzzy, c-format
msgid "Changing password for %s."
msgstr "STRESS රහස්පදය වෙනස් කරමින්"
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(දැනට ඇති) UNIX රහස්පදය: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "ඔබගේ රහස්පදය වෙනස් කිරීමට බොහෝ වෙලාවක් රැදී සිටීය යුතුම වේ"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "නව UNIX රහස්පදය ඇතුළත් කරන්න:"
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "නව UNIX රහස්පදය නැවත ඇතුළත් කරන්න:"
diff --git a/po/sk.po b/po/sk.po
index a3c9e11f..39458d9f 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Linux-PAM\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-03-24 22:24+0100\n"
"Last-Translator: Pavol Šimo <palo.simo@gmail.com>\n"
"Language-Team: Slovak <fedora-trans-sk@redhat.com>\n"
@@ -57,7 +57,7 @@ msgstr "Opakujte %s"
msgid "Password change aborted."
msgstr "Zmena hesla zrušená."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "login:"
@@ -193,54 +193,61 @@ msgstr "Aplikácia musí znovu zavolať libpam"
msgid "Unknown PAM error"
msgstr "Neznáme chyba PAM"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "je rovnaké ako predchádzajúce"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "Chyba konverzácie"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "je palindróm"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "len zmena veľkosti"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "je príliš podobné predchádzajúcemu"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "je príliš jednoduché"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "je otočené"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "nedostatok rôznych druhov znakov"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "obsahuje príliš veľa rovnakých znakov za sebou"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "obsahuje v nejakej forme používateľské meno"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "Heslo nezadané"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "Heslo nebolo zmenené"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "NESPRÁVNE HESLO: %s"
@@ -261,18 +268,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s zlyhalo: neznámy stav 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %d.%m.%Y %H:%M:%S %Z"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " z %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " na %.*s"
@@ -288,12 +295,12 @@ msgid "Welcome to your new account!"
msgstr "Vitajte vo vašom novom účte!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "Posledné neúspešné prihlásenie:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -309,14 +316,14 @@ msgstr[2] ""
"prihlásenie."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr ""
"Od posledného úspešného prihlásenia došlo k %d neúspešným pokusom o "
"prihlásenie."
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "Príliš veľa prihlásení pre '%s'."
@@ -367,8 +374,8 @@ msgstr "Vytváranie priečinka '%s'."
msgid "Unable to create and initialize directory '%s'."
msgstr "Nedá sa vytvoriť a inicializovať priečinok '%s'."
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "Heslo už bolo použité. Zvoľte si iné."
@@ -376,43 +383,43 @@ msgstr "Heslo už bolo použité. Zvoľte si iné."
msgid "Would you like to enter a security context? [N] "
msgstr "Želáte si zadať kontext zabezpečenia? [N] "
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "rola:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "úroveň:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "Neplatný kontext zabezpečenia"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "Predvolený kontext zabezpečenia %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "Želáte si zadať inú rolu alebo úroveň?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "Chýba predvolený typ pre rolu %s\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "Nepodarilo sa získať platný kontext zabezpečenia pre %s"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "Kontext zabezpečenia %s pridelený"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "Kontext zabezpečenia pre vytváranie kľúčov %s pridelený"
@@ -432,20 +439,20 @@ msgstr "chyba pri pam_set_item()\n"
msgid "login: failure forking: %m"
msgstr "login: chyba forku: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "Zmena STRESS hesla pre %s."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "Zadajte nové STRESS heslo: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "Znovu zadajte nové STRESS heslo: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "Chybné potvrdenie; heslo nezmenené"
@@ -546,32 +553,32 @@ msgstr[2] "Upozornenie: vaše heslo vyprší za %d dní"
msgid "Warning: your password will expire in %d days"
msgstr "Upozornenie: vaše heslo vyprší za %d dní"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "Nie je možné zmeniť NIS heslo."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "Musíte si zvoliť dlhšie heslo"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "Zmena hesla pre %s."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(aktuálne) UNIX heslo: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "Na zmenu svojho hesla musíte počkať dlhšie"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "Zadajte nové UNIX heslo: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "Opakujte nové UNIX heslo: "
diff --git a/po/sr.po b/po/sr.po
index 0ad50f49..d30d950c 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Linux-PAM\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-03-25 22:53+0100\n"
"Last-Translator: Miloš Komarčević <kmilos@gmail.com>\n"
"Language-Team: Serbian (sr) <fedora-trans-sr@redhat.com>\n"
@@ -61,7 +61,7 @@ msgstr "Поново унесите %s"
msgid "Password change aborted."
msgstr "Промена лозинке је прекинута."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "пријава:"
@@ -197,54 +197,61 @@ msgstr "Програм мора поново да позове libpam"
msgid "Unknown PAM error"
msgstr "Непозната PAM грешка"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "иста је као и стара"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "Грешка у разговору"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "палиндром је"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "само промене величине слова"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "сувише је слична претходној"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "сувише је једноставна"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "изокренута је"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "нема довољно класа знакова"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "садржи превише истих знакова узастопно"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "садржи корисничко име у неком облику"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "Није понуђена лозинка"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "Лозинка није промењена"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "ЛОША ЛОЗИНКА: %s"
@@ -265,18 +272,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s неуспех: непознат статус 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %e. %b %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " са %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " на %.*s"
@@ -292,12 +299,12 @@ msgid "Welcome to your new account!"
msgstr "Добро дошли на ваш нови налог!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "Последња неуспешна пријава:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -307,12 +314,12 @@ msgstr[1] "Било је %d неуспела покушаја пријаве о
msgstr[2] "Било је %d неуспелих покушаја пријаве од последње успешне пријаве."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr "Било је %d неуспелих покушаја пријаве од последње успешне пријаве."
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "Превише пријава за „%s“."
@@ -363,8 +370,8 @@ msgstr "Правим директоријум „%s“."
msgid "Unable to create and initialize directory '%s'."
msgstr "Не могу да направим директоријум „%s“."
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "Лозинка је већ у употреби. Изаберите другу."
@@ -372,43 +379,43 @@ msgstr "Лозинка је већ у употреби. Изаберите др
msgid "Would you like to enter a security context? [N] "
msgstr "Да ли желите да унесете безбедносни контекст? [N]"
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "улога:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "ниво:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "Неисправан безбедносни контекст"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "Подразумевани безбедносни контекст %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "Да ли желите да унесете другу улогу или ниво?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "Нема подразумеване врсте за улогу %s\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "Не могу да прибавим исправан контекст за %s"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "Безбедносни контекст %s је додељен"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "Контекст прављења кључа %s је додељен"
@@ -428,20 +435,20 @@ msgstr "неуспешно извршавање функције pam_set_item()\
msgid "login: failure forking: %m"
msgstr "пријава: грешка при гранању: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "Промена STRESS лозинке за %s."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "Унесите нову STRESS лозинку: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "Поново унесите нову STRESS лозинку: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "Потврда је погрешно укуцана; лозинка није промењена"
@@ -541,31 +548,31 @@ msgstr[2] "Упозорење: ваша лозинка ће истећи кро
msgid "Warning: your password will expire in %d days"
msgstr "Упозорење: ваша лозинка ће истећи кроз %d дана"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "NIS лозинка не може бити промењена."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "Морате изабрати дужу лозинку"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "Мењам лозинку за %s."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(тренутна) UNIX лозинка: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "Морате дуже сачекати на промену лозинке"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "Унесите нову UNIX лозинку: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "Поново унесите нову UNIX лозинку: "
diff --git a/po/sr@latin.po b/po/sr@latin.po
index 4c28d868..65009238 100644
--- a/po/sr@latin.po
+++ b/po/sr@latin.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Linux-PAM\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-03-25 22:53+0100\n"
"Last-Translator: Miloš Komarčević <kmilos@gmail.com>\n"
"Language-Team: Serbian (sr) <fedora-trans-sr@redhat.com>\n"
@@ -61,7 +61,7 @@ msgstr "Ponovo unesite %s"
msgid "Password change aborted."
msgstr "Promena lozinke je prekinuta."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "prijava:"
@@ -197,54 +197,61 @@ msgstr "Program mora ponovo da pozove libpam"
msgid "Unknown PAM error"
msgstr "Nepoznata PAM greška"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "ista je kao i stara"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "Greška u razgovoru"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "palindrom je"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "samo promene veličine slova"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "suviše je slična prethodnoj"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "suviše je jednostavna"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "izokrenuta je"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "nema dovoljno klasa znakova"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "sadrži previše istih znakova uzastopno"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "sadrži korisničko ime u nekom obliku"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "Nije ponuđena lozinka"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "Lozinka nije promenjena"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "LOŠA LOZINKA: %s"
@@ -265,18 +272,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s neuspeh: nepoznat status 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %e. %b %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " sa %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " na %.*s"
@@ -292,12 +299,12 @@ msgid "Welcome to your new account!"
msgstr "Dobro došli na vaš novi nalog!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "Poslednja neuspešna prijava:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -307,12 +314,12 @@ msgstr[1] "Bilo je %d neuspela pokušaja prijave od poslednje uspešne prijave."
msgstr[2] "Bilo je %d neuspelih pokušaja prijave od poslednje uspešne prijave."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr "Bilo je %d neuspelih pokušaja prijave od poslednje uspešne prijave."
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "Previše prijava za „%s“."
@@ -363,8 +370,8 @@ msgstr "Pravim direktorijum „%s“."
msgid "Unable to create and initialize directory '%s'."
msgstr "Ne mogu da napravim direktorijum „%s“."
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "Lozinka je već u upotrebi. Izaberite drugu."
@@ -372,43 +379,43 @@ msgstr "Lozinka je već u upotrebi. Izaberite drugu."
msgid "Would you like to enter a security context? [N] "
msgstr "Da li želite da unesete bezbednosni kontekst? [N]"
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "uloga:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "nivo:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "Neispravan bezbednosni kontekst"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "Podrazumevani bezbednosni kontekst %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "Da li želite da unesete drugu ulogu ili nivo?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "Nema podrazumevane vrste za ulogu %s\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "Ne mogu da pribavim ispravan kontekst za %s"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "Bezbednosni kontekst %s je dodeljen"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "Kontekst pravljenja ključa %s je dodeljen"
@@ -428,20 +435,20 @@ msgstr "neuspešno izvršavanje funkcije pam_set_item()\n"
msgid "login: failure forking: %m"
msgstr "prijava: greška pri grananju: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "Promena STRESS lozinke za %s."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "Unesite novu STRESS lozinku: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "Ponovo unesite novu STRESS lozinku: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "Potvrda je pogrešno ukucana; lozinka nije promenjena"
@@ -541,31 +548,31 @@ msgstr[2] "Upozorenje: vaša lozinka će isteći kroz %d dana"
msgid "Warning: your password will expire in %d days"
msgstr "Upozorenje: vaša lozinka će isteći kroz %d dana"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "NIS lozinka ne može biti promenjena."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "Morate izabrati dužu lozinku"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "Menjam lozinku za %s."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(trenutna) UNIX lozinka: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "Morate duže sačekati na promenu lozinke"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "Unesite novu UNIX lozinku: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "Ponovo unesite novu UNIX lozinku: "
diff --git a/po/sv.po b/po/sv.po
index 89c4c647..011d674b 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Linux-PAM\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2010-03-25 19:44+0100\n"
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -58,7 +58,7 @@ msgstr "Ange %s igen"
msgid "Password change aborted."
msgstr "Ändring av lösenordet avbröts."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "inloggning:"
@@ -194,54 +194,61 @@ msgstr "Programmet behöver anropa libpam igen"
msgid "Unknown PAM error"
msgstr "Okänt PAM-fel"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "är samma som det gamla"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "Konversationsfel"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "är ett palindrom"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "endast ändringar i gemener och versaler"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "är för likt det gamla"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "är för enkelt"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "är roterat"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "för få teckenklasser"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "innehåller för många tecken av samma sort i följd"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "innehåller användarnamnet i någon form"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "Inget lösenord angivet"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "Oförändrat lösenord"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "DÅLIGT LÖSENORD: %s"
@@ -262,18 +269,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s misslyckades: okänd status 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %e %b %Y %H.%M.%S %Z"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " från %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " på %.*s"
@@ -289,12 +296,12 @@ msgid "Welcome to your new account!"
msgstr "Välkommen till ditt nya konto!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "Senaste misslyckade inloggning:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -307,14 +314,14 @@ msgstr[1] ""
"inloggning."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr ""
"Det har skett %d misslyckade inloggningsförsök sedan senaste korrekta "
"inloggning."
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "För många inloggningar för \"%s\"."
@@ -365,8 +372,8 @@ msgstr "Skapar katalogen \"%s\"."
msgid "Unable to create and initialize directory '%s'."
msgstr "Kunde inte skapa och initiera katalogen \"%s\"."
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "Lösenordet har redan används. Välj ett annat."
@@ -374,43 +381,43 @@ msgstr "Lösenordet har redan används. Välj ett annat."
msgid "Would you like to enter a security context? [N] "
msgstr "Vill du ange en säkerhetskontext? [N]"
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "roll:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "nivå:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "Inte en giltig säkerhetskontext"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "Standardsäkerhetskontext %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "Vill du ange en annan roll eller nivå?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "Ingen standardttyp för %s-roll\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "Kan inte hämta giltig kontext för %s"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "Säkerhetskontext %s tilldelad"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "Nyckelskapandekontext %s tilldelad"
@@ -430,20 +437,20 @@ msgstr "pam_set_item() misslyckades\n"
msgid "login: failure forking: %m"
msgstr "inloggning: fel vid grening: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "Ändrar STRESS-lösenord för %s."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "Ange nytt STRESS-lösenord: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "Ange nytt STRESS-lösenord igen: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "Felskriven verifikation, lösenord oförändrat"
@@ -541,32 +548,32 @@ msgstr[1] "Varning: ditt lösenord går ut om %d dagar"
msgid "Warning: your password will expire in %d days"
msgstr "Varning: ditt lösenord går ut om %d dagar"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "NIS-lösenord kunde inte ändras."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "Du måste välja ett längre lösenord"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "Ändrar lösenord för %s."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(nuvarande) UNIX-lösenord: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "Du måste vänta längre innan du kan ändra lösenord"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "Ange nytt UNIX-lösenord: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "Ange nytt UNIX-lösenord igen: "
diff --git a/po/ta.po b/po/ta.po
index 194d309d..863497d5 100644
--- a/po/ta.po
+++ b/po/ta.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pam.tip.ta\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-04-03 22:27+0530\n"
"Last-Translator: I. Felix <ifelix@redhat.com>\n"
"Language-Team: Tamil <fedora-trans-ta@redhat.com>\n"
@@ -62,7 +62,7 @@ msgstr "%sஐ மறு தட்டச்சு செய்"
msgid "Password change aborted."
msgstr "கடவுச்சொல் மாற்றம் கைவிடப்பட்டது."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "புகுபதிவு:"
@@ -198,54 +198,61 @@ msgstr "பயன்பாடு libpam ஐ மீண்டும் அழை
msgid "Unknown PAM error"
msgstr "தெரியாத PAM பிழை"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "இது பழையதைப் போல உள்ளது"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "உரையாடல் பிழை"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "இது ஒரு palindrome"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "எழுத்து வகை மாற்றங்கள் மட்டும்"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "இது பழையதை ஒத்தே உள்ளது"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "இது மிகவும் எளிதாக உள்ளது"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "இது சுழலக்கூடியது"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "போதிய எழுத்து வகுப்புகள் இல்லை"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "நிறைய அதே எழுத்துக்கள் தொடர்ந்து கொண்டுள்ளது"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "சில வடிவல் பயனர் பெயரை கொண்டுள்ளது"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "கடவுச்சொல் கொடுக்கப்படவில்லை"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "கடவுச்சொல் மாற்றப்படவில்லை"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "தவறான கடவுச்சொல்: %s"
@@ -266,18 +273,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s செயலிழக்கப்பட்டது: தெரியாத நிலை 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr "%.*s இலிருந்து"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " %.*s இல்"
@@ -293,12 +300,12 @@ msgid "Welcome to your new account!"
msgstr "உங்கள் புதிய கணக்கு வரவேற்கப்படுகிறீர்கள்!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "கடைசி தோல்வியடைந்த புகுபதிவு:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -307,12 +314,12 @@ msgstr[0] "கடைசி புகுபதிவிலிருந்து %
msgstr[1] "கடைசி புகுபதிவிலிருந்து %d புகுபதிவு முயற்சிகள் தோல்வியடைந்தன."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr "கடைசி புகுபதிவிலிருந்து %d புகுபதிவு முயற்சி தோல்வியடைந்தன."
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "'%s'க்கு பல புகுபதிவுகள் உள்ளன."
@@ -363,8 +370,8 @@ msgstr "அடைவு '%s'ஐ உருவாக்குகிறது."
msgid "Unable to create and initialize directory '%s'."
msgstr "அடைவு '%s'ஐ உருவாக்க மற்றும் துவக்க முடியவில்லை."
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "கடவுச்சொல் ஏற்கனவே பயன்படுத்தப்பட்டது. வேறொன்றை பயன்படுத்தவும்."
@@ -372,43 +379,43 @@ msgstr "கடவுச்சொல் ஏற்கனவே பயன்பட
msgid "Would you like to enter a security context? [N] "
msgstr "நீங்கள் ஒரு பாதுகாப்பு சூழலை உள்ளிட வேண்டுமா? [N]"
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "பங்கு:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "நிலை:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "இது சரியான பாதுகாப்பு சூழல் இல்லை"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "முன்னிருப்பு பாதுகாப்பு சூழல் %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "நீங்கள் வேறு பங்கு அல்லது நிலையை உள்ளிட வேண்டுமா?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "பங்கு %sக்கு முன்னிருப்பு வகை இல்லை\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "%sக்கு சரியான சூழல் பெற முடியவில்லை"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "பாதுகாப்பு சூழல் %s ஒதுக்கப்பட்டது"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "விசை உருவாக்க சூழல் %s ஒதுக்கப்பட்டுள்ளது"
@@ -428,20 +435,20 @@ msgstr "pam_set_item() செயலிழக்கப்பட்டது\n"
msgid "login: failure forking: %m"
msgstr "login: failure forking: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "%sக்கு STRESS கடவுச்சொல்லை மாற்றுகிறது."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "புதிய STRESS கடவுச்சொல்லை உள்ளிடவும்: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "புதிய STRESS கடவுச்சொல்லை மீண்டும் உள்ளிடவும்: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "உறுதிப்படுத்தல் முரண்பாடு; கடவுச்சொல் மாற்றப்படவில்லை"
@@ -539,31 +546,31 @@ msgstr[1] "எச்சரிக்கை: கடவுச்சொல் %d ந
msgid "Warning: your password will expire in %d days"
msgstr "எச்சரிக்கை: கடவுச்சொல் %d நாட்களில் முடிவுறும்"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "NIS கடவுச்சொல்லை மாற்ற முடியாது."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "நீங்கள் நீண்ட கடவுச்சொல்லை தேர்ந்தெடுக்க வேண்டும்"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "%sக்கு கடவுச்சொல்லை மாற்றுகிறது."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(நடப்பு) UNIX கடவுச்சொல்: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "உங்கள் கடவுச்சொல்லை மாற்ற சிறிது காத்திருக்க வேண்டும்"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "புதிய UNIX கடவுச்சொல்லை உள்ளிடவும்: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "புதிய UNIX கடவுச்சொல்லை மீண்டும் உள்ளிடவும்: "
diff --git a/po/te.po b/po/te.po
index 308469c6..227944c6 100644
--- a/po/te.po
+++ b/po/te.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pam.tip.te\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-04-14 15:14+0530\n"
"Last-Translator: Krishna Babu K <kkrothap@redhat.com>\n"
"Language-Team: Telugu <en@li.org>\n"
@@ -62,7 +62,7 @@ msgstr "తిరిగిటైపుచేయి %s"
msgid "Password change aborted."
msgstr "సంకేతపదము మార్పు తప్పించబడింది"
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "లాగిన్:"
@@ -198,54 +198,61 @@ msgstr "libpamను అనువర్తనము మరలా కాల్‌
msgid "Unknown PAM error"
msgstr "తెలియని PAM దోషము"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "ఇది పాతదేనా"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "సంభాషణా దోషము"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "పాలిండ్రోమా"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "కేస్ మార్పులు మాత్రమే"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "పాతదానికి మరీ దగ్గరపోలికగావుంది"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "మరీ సరళంగావుంది"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "ఇది పర్యాయంగానా"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "సరిపోవునంత కారెక్టర్ క్లాసెస్ లేవు"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "ఒకదానితర్వాత వొకటి అదే అక్షరాలు చాలావున్నాయి"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "ఒకరకంగా వినియోగదారి నామమును కలిగివుంది"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "ఎటువంటి సంకేతపదము యివ్వలేదు"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "సంకేతపదము మార్చలేదు"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "చెడ్డ సంకేతపదము: %s"
@@ -266,18 +273,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s విఫలమైంది: తెలియని స్థితి 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " %.*s నుండి"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " %.*s పైన"
@@ -293,12 +300,12 @@ msgid "Welcome to your new account!"
msgstr "మీ కొత్త ఖాతాకు స్వాగతము!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "చివరిగా విఫలమైన లాగిన్:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -307,12 +314,12 @@ msgstr[0] "చివరి సమర్ధవంతపు లాగిన్‌
msgstr[1] "చివరి సమర్ధవంతపు లాగిన్‌నుండి ఆక్కడ %d విఫల లాగిన్ ప్రయత్నాలు వున్నాయి."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr "చివరి సమర్ధవంతపు లాగిన్‌నుండి ఆక్కడ %d విఫల లాగిన్ ప్రయత్నాలు వున్నాయి."
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "'%s' కొరకు మరీయెక్కువ లాగిన్‌లు"
@@ -363,8 +370,8 @@ msgstr "డెరెక్టరీ '%s' సృష్టించుట."
msgid "Unable to create and initialize directory '%s'."
msgstr "డైరెక్టరీ %sను సృష్టించలేక పోయింది మరియు సిద్దీకరించలేక పోయింది."
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "సంకేతపదము యిప్పటికే వుపయోగించబడింది. మరియొకదానిని యెంచుకొనుము."
@@ -372,43 +379,43 @@ msgstr "సంకేతపదము యిప్పటికే వుపయో
msgid "Would you like to enter a security context? [N] "
msgstr "మీరు రక్షణ సందర్భమును ప్రవేశపెడదామని అనుకొంటున్నారా? [N] "
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "పాత్ర:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "స్థాయి:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "విలువైన రక్షణ సందర్భముకాదు"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "అప్రమేయ రక్షణ సందర్భము %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "మీరు విభిన్న పాత్రను లేదా స్థాయిని ప్రవేశపెడదామని అనుకుంటున్నారా?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "పాత్ర %sకొరకు యెటువంటి అప్రమేయ రకములేదు\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "%s కొరకు విలువైన సందర్భమును పొందలేకపోయింది"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "రక్షణ సందర్భము %s అప్పగించబడింది"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "కీ సృష్టీకరణ సందర్భము %s అప్పగించబడింది"
@@ -428,20 +435,20 @@ msgstr "pam_set_item() విఫలమైంది\n"
msgid "login: failure forking: %m"
msgstr "login: failure forking: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "STRESS సంకేతపదమును %sకొరకు మార్చబడింది."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "కొత్త STRESS సంకేతపదమును ప్రవేశపెట్టుము: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "కొత్త STRESS సంకేతపదమును తిరిగిటైపుచేయుము: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "తప్పుగా-చేసినటైపు నిర్ధారణ; సంకేతపదము మార్చబడలేదు"
@@ -539,31 +546,31 @@ msgstr[1] "హెచ్చరిక: మీ సంకేతపదము %d ర
msgid "Warning: your password will expire in %d days"
msgstr "హెచ్చరిక: మీ సంకేతపదము %d రోజులలో కాలముతీరుతుంది"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "NIS సంకేతపదము మార్చబడ లేకపోయింది."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "మీరు తప్పక పొడవాటి సంకేతపదమును యెంచుకొనవలెను."
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "%s కొరకు సంకేతపదమును మార్చుతోంది"
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(ప్రస్తుత) UNIX సంకేతపదము: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "మీ సంకేతపదమును మార్చుటకు మీరు ఎక్కువసేపు వేచివుండాలి"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "కొత్త UNIX సంకేతపదమును ప్రవేశపెట్టుము: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "కొత్త UNIX సంకేతపదమును తిరిగిటైపు చేయుము: "
diff --git a/po/tr.po b/po/tr.po
index 60904d47..5c1299fa 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -1,15 +1,16 @@
# translation of Linux-PAM.po to Türkçe
-# Copyright (C) YEAR Linux-PAM Project
-# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) 2010 Linux-PAM Project
+# This file is distributed under the same license as the PAM package.
#
# Koray Löker <loker@pardus.org.tr>, 2006.
+# Bahadır Kandemir <bahadir@pardus.org.tr>, 2010.
msgid ""
msgstr ""
"Project-Id-Version: Linux-PAM\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2006-05-03 19:00+0200\n"
-"Last-Translator: Koray Löker <loker@pardus.org.tr>\n"
+"Last-Translator: Bahadır Kandemir <bahadir@pardus.org.tr>\n"
"Language-Team: Türkçe <tr@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -50,16 +51,15 @@ msgid "Sorry, passwords do not match."
msgstr "Üzgünüm, parolalar birbirine uymuyor."
#: libpam/pam_get_authtok.c:133 libpam/pam_get_authtok.c:209
-#, fuzzy, c-format
+#, c-format
msgid "Retype %s"
-msgstr "tip: "
+msgstr "%s'i tekrar girin"
#: libpam/pam_get_authtok.c:153 libpam/pam_get_authtok.c:222
-#, fuzzy
msgid "Password change aborted."
-msgstr "Parola değiştirilmedi"
+msgstr "Parola değişimi iptal edildi."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "giriş:"
@@ -73,7 +73,7 @@ msgstr "Kritik hata - şimdi çıkılıyor"
#: libpam/pam_strerror.c:44
msgid "Failed to load module"
-msgstr ""
+msgstr "Modül yüklenemedi"
#: libpam/pam_strerror.c:46
msgid "Symbol not found"
@@ -89,7 +89,7 @@ msgstr "Sistem hatası"
#: libpam/pam_strerror.c:52
msgid "Memory buffer error"
-msgstr "Bellek tampo hatası"
+msgstr "Tampon bellek hatası"
#: libpam/pam_strerror.c:54
msgid "Permission denied"
@@ -105,11 +105,11 @@ msgstr "Kimlik bilgisine ulaşmak için yetersiz yetki"
#: libpam/pam_strerror.c:60
msgid "Authentication service cannot retrieve authentication info"
-msgstr "Yetkilendirme servisi yetki bilgisini getiremedi"
+msgstr "Yetkilendirme servisi yetki bilgisini alamadı"
#: libpam/pam_strerror.c:62
msgid "User not known to the underlying authentication module"
-msgstr "Kullanıcı yetki modülü altyapısında tanımlı değil"
+msgstr "Kullanıcı, yetkilendirme modülü altyapısında tanımlı değil"
#: libpam/pam_strerror.c:64
msgid "Have exhausted maximum number of retries for service"
@@ -117,7 +117,7 @@ msgstr "Servis için geçerli deneme sayısı aşıldı"
#: libpam/pam_strerror.c:66
msgid "Authentication token is no longer valid; new one required"
-msgstr "Yetki alıntı kütüğü geçersiz; yenisi gerekiyor"
+msgstr "Yetkilendirme anahtarı artık geçerli değil; yenisi gerekiyor"
#: libpam/pam_strerror.c:68
msgid "User account has expired"
@@ -125,7 +125,7 @@ msgstr "Kullanıcı hesabının süresi doldu"
#: libpam/pam_strerror.c:70
msgid "Cannot make/remove an entry for the specified session"
-msgstr "Belirlenen oturumda girdi yapılamıyor/silinemiyor"
+msgstr "Belirtilen oturum için girdi yapılamıyor/silinemiyor"
#: libpam/pam_strerror.c:72
msgid "Authentication service cannot retrieve user credentials"
@@ -137,7 +137,7 @@ msgstr "Kullanıcı kimliğinin süresi doldu"
#: libpam/pam_strerror.c:76
msgid "Failure setting user credentials"
-msgstr "Kullanıcı kimliği oluşturma başarılamadı"
+msgstr "Kullanıcı kimlik bilgileri ayarlanamadı"
#: libpam/pam_strerror.c:78
msgid "No module specific data is present"
@@ -145,7 +145,7 @@ msgstr "Modüle özgü veri yok"
#: libpam/pam_strerror.c:80
msgid "Bad item passed to pam_*_item()"
-msgstr ""
+msgstr "pam_*_item() fonksiyonuna yanlış öğe geçildi"
#: libpam/pam_strerror.c:82
msgid "Conversation error"
@@ -153,27 +153,27 @@ msgstr "Etkileşim hatası"
#: libpam/pam_strerror.c:84
msgid "Authentication token manipulation error"
-msgstr "Yetki alıntı kütüğü çalıştırma hatası"
+msgstr "Yetkilendirme anahtarı manipülasyon hatası"
#: libpam/pam_strerror.c:86
msgid "Authentication information cannot be recovered"
-msgstr "Yetki bilgisi kurtarılamadı"
+msgstr "Yetkilendirme bilgisi kurtarılamadı"
#: libpam/pam_strerror.c:88
msgid "Authentication token lock busy"
-msgstr "Yetki alıntı kütüğü kilitli"
+msgstr "Yetkilendirme anahtarının kilidi meşgul"
#: libpam/pam_strerror.c:90
msgid "Authentication token aging disabled"
-msgstr "Yetki alıntı kütüğü vadesi etkinsizleştirildi"
+msgstr "Yetkilendirme anahtarı vadesi pasifleştirildi"
#: libpam/pam_strerror.c:92
msgid "Failed preliminary check by password service"
-msgstr "Parola servisi hazırlık sağlaması başarısız oldu"
+msgstr "Parola servisi ön denetimi başarısız oldu"
#: libpam/pam_strerror.c:94
msgid "The return value should be ignored by PAM dispatch"
-msgstr ""
+msgstr "Dönüş değeri PAM dispatch tarafından gözardı edilmeli"
#: libpam/pam_strerror.c:96
msgid "Module is unknown"
@@ -181,7 +181,7 @@ msgstr "Modül bilinmiyor"
#: libpam/pam_strerror.c:98
msgid "Authentication token expired"
-msgstr "Yetki alıntı kütüğünün süresi doldu"
+msgstr "Yetkilendirme anahtarının süresi doldu"
#: libpam/pam_strerror.c:100
msgid "Conversation is waiting for event"
@@ -195,86 +195,93 @@ msgstr "Uygulamanın libpam kütüphanesini yeniden çağırması gerekiyor"
msgid "Unknown PAM error"
msgstr "Bilinmeyen PAM hatası"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "eskisi ile aynı"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "Etkileşim hatası"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "bir palindrom (iki yönden aynı şekilde okunuyor)"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "sadece büyük-küçük harf değişimi"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
-msgstr "eskisi ile çok benziyor"
+msgstr "eskisine çok benziyor"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "çok basit"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
-msgstr "çevrilmiş"
+msgstr "değiştirilmiş"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
-msgstr ""
+msgstr "yetersiz karakter sınıfı"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
-msgstr ""
+msgstr "aynı karakterleri arka arkaya içeriyor"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
-msgstr ""
+msgstr "kullanıcı adını bir biçimde içeriyor"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "Parola girilmedi"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "Parola değiştirilmedi"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
-msgstr "YANLIŞ PAROLA: %s"
+msgstr "KÖTÜ PAROLA: %s"
#: modules/pam_exec/pam_exec.c:215
#, c-format
msgid "%s failed: exit code %d"
-msgstr ""
+msgstr "%s başarısız: çıkış kodu %d"
#: modules/pam_exec/pam_exec.c:224
#, c-format
msgid "%s failed: caught signal %d%s"
-msgstr ""
+msgstr "%s başarısız: %d%s sinyali yakalandı"
#: modules/pam_exec/pam_exec.c:233
#, c-format
msgid "%s failed: unknown status 0x%x"
-msgstr ""
+msgstr "%s başarısız: bilinmeyen durum 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
-msgstr ""
+msgstr "%e %b %a %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
-msgstr " %.*s'dan"
+msgstr " %.*s makinesinden"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " %.*s üzerinde"
@@ -283,135 +290,133 @@ msgstr " %.*s üzerinde"
#: modules/pam_lastlog/pam_lastlog.c:232
#, c-format
msgid "Last login:%s%s%s"
-msgstr "Son giriş: %s%s%s"
+msgstr "Son giriş:%s%s%s"
#: modules/pam_lastlog/pam_lastlog.c:238
msgid "Welcome to your new account!"
-msgstr "Yeni hesabınıza hoşgeldiniz"
+msgstr "Yeni hesabınıza hoş geldiniz"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
-#, fuzzy, c-format
+#: modules/pam_lastlog/pam_lastlog.c:464
+#, c-format
msgid "Last failed login:%s%s%s"
-msgstr "Son giriş: %s%s%s"
+msgstr "Son başarısız giriş:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
"There were %d failed login attempts since the last successful login."
msgstr[0] ""
+"Son başarılı girişten itibaren %d başarısız kimlik doğrulama girişimi oldu."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr ""
+"Son başarılı girişten itibaren %d başarısız kimlik doğrulama girişimi oldu."
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
-msgstr "%s için fazla giriş "
+msgstr "%s için çok fazla giriş."
#: modules/pam_mail/pam_mail.c:297
msgid "No mail."
-msgstr "İleti yok"
+msgstr "İleti yok."
#: modules/pam_mail/pam_mail.c:300
msgid "You have new mail."
-msgstr "Yeni iletiniz var"
+msgstr "Yeni iletiniz var."
#: modules/pam_mail/pam_mail.c:303
msgid "You have old mail."
-msgstr "Okunmuş iletiniz var"
+msgstr "Eski/okunmuş iletiniz var."
#: modules/pam_mail/pam_mail.c:307
msgid "You have mail."
-msgstr "İletiniz var"
+msgstr "İletiniz var."
#: modules/pam_mail/pam_mail.c:314
#, c-format
msgid "You have no mail in folder %s."
-msgstr "%s dizininde iletiniz yok"
+msgstr "%s dizininde iletiniz yok."
#: modules/pam_mail/pam_mail.c:318
#, c-format
msgid "You have new mail in folder %s."
-msgstr "%s dizininde yeni iletiniz var"
+msgstr "%s dizininde yeni iletiniz var."
#: modules/pam_mail/pam_mail.c:322
#, c-format
msgid "You have old mail in folder %s."
-msgstr "%s dizininde okunmuş iletiniz var"
+msgstr "%s dizininde eski/okunmuş iletiniz var."
#: modules/pam_mail/pam_mail.c:327
#, c-format
msgid "You have mail in folder %s."
-msgstr "%s dizininde iletiniz var"
+msgstr "%s dizininde iletiniz var."
#: modules/pam_mkhomedir/pam_mkhomedir.c:113
#, c-format
msgid "Creating directory '%s'."
-msgstr ""
+msgstr "%s dizini oluşturuluyor."
#: modules/pam_mkhomedir/pam_mkhomedir.c:183
#, c-format
msgid "Unable to create and initialize directory '%s'."
-msgstr ""
+msgstr "%s dizini oluşturulamadı."
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "Parola kullanımda. Lütfen başka bir parola seçin."
#: modules/pam_selinux/pam_selinux.c:172
-#, fuzzy
msgid "Would you like to enter a security context? [N] "
-msgstr "Güvenlik bağlamı girmek ister misiniz? [e]"
+msgstr "Güvenlik bağlamı girmek ister misiniz? [H] "
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
-#, fuzzy
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
-msgstr "rol: "
+msgstr "rol:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
-#, fuzzy
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
-msgstr "seviye: "
+msgstr "seviye:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "Geçerli bir güvenlik bağlamı değil"
-#: modules/pam_selinux/pam_selinux.c:265
-#, fuzzy, c-format
+#: modules/pam_selinux/pam_selinux.c:282
+#, c-format
msgid "Default Security Context %s\n"
-msgstr "Güvenlik Bağlamı %s Atandı"
+msgstr "Öntanımlı Güvenlik Bağlamı %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
-#, fuzzy
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
-msgstr "Güvenlik bağlamı girmek ister misiniz? [e]"
+msgstr "Farklı bir rol ya da seviye girmek ister misiniz?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
-msgstr ""
+msgstr "%s rolü için öntanımlı tür yok\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
-msgstr ""
+msgstr "%s için geçerli bir bağlam alınamadı"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "Güvenlik Bağlamı %s Atandı"
-#: modules/pam_selinux/pam_selinux.c:739
-#, fuzzy, c-format
+#: modules/pam_selinux/pam_selinux.c:763
+#, c-format
msgid "Key Creation Context %s Assigned"
-msgstr "Güvenlik Bağlamı %s Atandı"
+msgstr "Anahtar Oluşturma Bağlamı %s Atandı"
#: modules/pam_selinux/pam_selinux_check.c:99
#, c-format
@@ -428,32 +433,32 @@ msgstr "pam_set_item() çalıştırılamadı\n"
msgid "login: failure forking: %m"
msgstr "giriş: çatallama yapılamadı: %m"
-#: modules/pam_stress/pam_stress.c:475
-#, fuzzy, c-format
+#: modules/pam_stress/pam_stress.c:476
+#, c-format
msgid "Changing STRESS password for %s."
-msgstr "STRESS parolası değiştiriliyor "
+msgstr "%s için STRESS parolası değiştiriliyor."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "Yeni STRESS parolası girin: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "Yeni STRESS parolasını tekrar girin: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
-msgstr "Doğrulama hatalı: parola değiştirilmedi"
+msgstr "Doğrulama hatalı; parola değiştirilmedi"
#: modules/pam_tally/pam_tally.c:541 modules/pam_tally2/pam_tally2.c:596
#, c-format
msgid "Account temporary locked (%ld seconds left)"
-msgstr ""
+msgstr "Hesap geçici bir süre kilitlendi (%ld saniye kaldı)"
#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:575
#, c-format
msgid "Account locked due to %u failed logins"
-msgstr ""
+msgstr "Hesap %u başarısız giriş yüzünden kilitlendi"
#: modules/pam_tally/pam_tally.c:777 modules/pam_tally2/pam_tally2.c:884
msgid "Authentication error"
@@ -474,12 +479,12 @@ msgstr "Bilinmeyen hata"
#: modules/pam_tally/pam_tally.c:796 modules/pam_tally2/pam_tally2.c:906
#, c-format
msgid "%s: Bad number given to --reset=\n"
-msgstr "%s: Sıfırlamak için geçersiz sayı=\n"
+msgstr "%s: --reset argümanına geçersiz sayı verildi\n"
#: modules/pam_tally/pam_tally.c:800 modules/pam_tally2/pam_tally2.c:910
#, c-format
msgid "%s: Unrecognised option %s\n"
-msgstr "%s: Tanımlanamayan seçenek %s\n"
+msgstr "%s: Tanınmayan seçenek %s\n"
#: modules/pam_tally/pam_tally.c:812
#, c-format
@@ -491,26 +496,28 @@ msgstr ""
#: modules/pam_tally/pam_tally.c:886 modules/pam_tally2/pam_tally2.c:1036
#, c-format
msgid "%s: Can't reset all users to non-zero\n"
-msgstr ""
+msgstr "%s: Tüm kullanıcılara sıfır olmayan bir değer atanamadı\n"
#: modules/pam_tally2/pam_tally2.c:937
#, c-format
msgid "Login Failures Latest failure From\n"
-msgstr ""
+msgstr "Giriş Hatalar Son hata Kim\n"
#: modules/pam_tally2/pam_tally2.c:953
-#, fuzzy, c-format
+#, c-format
msgid ""
"%s: [-f rooted-filename] [--file rooted-filename]\n"
" [-u username] [--user username]\n"
" [-r] [--reset[=n]] [--quiet]\n"
msgstr ""
-"%s: [--file DosyanınTamYolu] [--user KullanıcıAdı] [--reset[=n]] [--quiet]\n"
+"%s: [-f rooted-filename] [--file rooted-filename]\n"
+" [-u username] [--user username]\n"
+" [-r] [--reset[=n]] [--quiet]\n"
#: modules/pam_timestamp/pam_timestamp.c:345
#, c-format
msgid "Access granted (last access was %ld seconds ago)."
-msgstr ""
+msgstr "Erişim izni verildi (son erişim %ld saniye önceydi)."
#: modules/pam_unix/pam_unix_acct.c:236 modules/pam_unix/pam_unix_acct.c:258
msgid "Your account has expired; please contact your system administrator"
@@ -518,7 +525,7 @@ msgstr "Hesabınızın süresi doldu; lütfen sistem yöneticinizle bağlantıya
#: modules/pam_unix/pam_unix_acct.c:244
msgid "You are required to change your password immediately (root enforced)"
-msgstr "Parolanızı en kısa sürede değiştirmeniz gerekiyor (yönetici bildirimi)"
+msgstr "Parolanızı en kısa sürede değiştirmeniz gerekiyor (yönetici baskıs)"
#: modules/pam_unix/pam_unix_acct.c:250
msgid "You are required to change your password immediately (password aged)"
@@ -528,63 +535,39 @@ msgstr "Parolanızı en kısa sürede değiştirmeniz gerekiyor (parola eski)"
#, fuzzy, c-format
msgid "Warning: your password will expire in %d day"
msgid_plural "Warning: your password will expire in %d days"
-msgstr[0] "Dikkat: Parolanızın geçerlilik süresi %d gün%.2s sonra doluyor"
+msgstr[0] "Dikkat: Parolanızın geçerlilik süresi %d gün sonra doluyor"
#. TRANSLATORS: only used if dngettext is not supported
#: modules/pam_unix/pam_unix_acct.c:283
-#, fuzzy, c-format
+#, c-format
msgid "Warning: your password will expire in %d days"
-msgstr "Dikkat: Parolanızın geçerlilik süresi %d gün%.2s sonra doluyor"
+msgstr "Uyarı: Parolanız %d gün içinde geçerliliğini yitirecek"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "NIS parolası değiştirilemiyor"
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "Daha uzun bir parola girmelisiniz"
-#: modules/pam_unix/pam_unix_passwd.c:600
-#, fuzzy, c-format
+#: modules/pam_unix/pam_unix_passwd.c:612
+#, c-format
msgid "Changing password for %s."
-msgstr "STRESS parolası değiştiriliyor "
+msgstr "%s kullanıcısının parolası değiştiriliyor."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(geçerli) parola: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "Parolanızı değiştirmek için daha sonra denemelisiniz"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "Yeni parolayı girin: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "Yeni parolayı tekrar girin: "
-
-#~ msgid "has been already used"
-#~ msgstr "daha önce kullanıldı"
-
-#, fuzzy
-#~ msgid "Password has been used already. Choose another."
-#~ msgstr "Parola kullanımda. Lütfen başka bir parola seçin."
-
-#, fuzzy
-#~ msgid "Error translating default context."
-#~ msgstr "Öntanımlı bağlamınız %s \n"
-
-#~ msgid "Do you want to choose a different one? [n]"
-#~ msgstr "Başka bir seçim yapmak ister misiniz? [h]"
-
-#~ msgid "Enter number of choice: "
-#~ msgstr "Seçenek sayısını girin: "
-
-#, fuzzy
-#~ msgid "Warning: your password will expire in one day"
-#~ msgstr "Dikkat: Parolanızın geçerlilik süresi %d gün%.2s sonra doluyor"
-
-#~ msgid "dlopen() failure"
-#~ msgstr "dlopen() hatası"
diff --git a/po/uk.po b/po/uk.po
index 76878122..7ef3b609 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Linux-PAM.uk\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2010-03-07 13:00+0200\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <translation@linux.org.ua>\n"
@@ -60,7 +60,7 @@ msgstr "Повторне введення %s"
msgid "Password change aborted."
msgstr "Зміну пароля перервано."
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "користувач:"
@@ -196,54 +196,61 @@ msgstr "Програмі потрібно знов викликати libpam"
msgid "Unknown PAM error"
msgstr "Невідома помилка PAM"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "такий самий, як і старий"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "Помилка обміну даними"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "— це паліндром"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "тільки зміни в регістрі"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "занадто подібний до старого"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "занадто простий"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "чергується"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "недостатнє використання класів символів"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "містить забагато послідовних однакових символів"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "містить ім’я користувача з форми"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "Пароль не встановлено"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "Пароль не змінено"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "ПОГАНИЙ ПАРОЛЬ: %s"
@@ -264,18 +271,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "Помилка %s: невідомий стан 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr " %a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr " з %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr " на %.*s"
@@ -291,12 +298,12 @@ msgid "Welcome to your new account!"
msgstr "Ласкаво просимо до вашого нового запису!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "Останній невдалий вхід: %s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -312,14 +319,14 @@ msgstr[2] ""
"завершилися помилками."
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr ""
"Після останнього успішного входу було виконано %d спроби входу, які "
"завершилися помилками."
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "Забагато входів в для «%s»."
@@ -370,8 +377,8 @@ msgstr "Створення каталогу «%s»."
msgid "Unable to create and initialize directory '%s'."
msgstr "Не вдалося створити і ініціалізувати каталог «%s»."
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "Цей пароль вже використано. Виберіть інший."
@@ -379,43 +386,43 @@ msgstr "Цей пароль вже використано. Виберіть ін
msgid "Would you like to enter a security context? [N] "
msgstr "Хочете ввести контекст безпеки? [Н/N] "
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "роль:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "рівень:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "Непридатний контекст безпеки"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "Типовий контекст безпеки %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "Бажаєте ввести іншу роль або рівень?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "Для ролі %s не визначено типового типу\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "Не вдалося отримати коректний контекст для %s"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "Призначено контекст безпеки %s"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "Призначено контекст створення ключів %s"
@@ -435,20 +442,20 @@ msgstr "помилка pam_set_item()\n"
msgid "login: failure forking: %m"
msgstr "вхід: помилка розгалуження: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "Зміна пароля STRESS для %s."
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "Введіть новий пароль STRESS: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "Повторіть новий пароль STRESS: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "Перевірку не пройдено; пароль не змінено"
@@ -550,32 +557,32 @@ msgstr[2] "Попередження: ваш пароль застаріє за %
msgid "Warning: your password will expire in %d days"
msgstr "Попередження: ваш пароль застаріє за %d днів"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "Не вдалося змінити пароль NIS."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "Вам слід вибрати довший пароль"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "Зміна пароля %s."
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(поточний) пароль UNIX: "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "Ви повинні зачекати, щоб змінити ваш пароль"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "Введіть новий пароль UNIX: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "Повторіть новий пароль UNIX: "
diff --git a/po/vi.po b/po/vi.po
new file mode 100644
index 00000000..3a0fe8b3
--- /dev/null
+++ b/po/vi.po
@@ -0,0 +1,585 @@
+# Vietnamese translation for pam
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the pam package.
+# Ubuntu Vietname translators <ubuntu-l10n-vi@lists.launchpad.net>, 2009-2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: pam\n"
+"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
+"PO-Revision-Date: 2011-06-04 17:58+0700\n"
+"Last-Translator: Lê Trường An <truongan@linuxmail.org>\n"
+"Language-Team: Vietnamese <du-an-most@lists.hanoilug.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: vi\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Launchpad-Export-Date: 2011-06-04 10:52+0000\n"
+"X-Generator: Launchpad (build 13144)\n"
+
+#: libpam_misc/misc_conv.c:33
+msgid "...Time is running out...\n"
+msgstr "...Thời gian đang dần hết...\n"
+
+#: libpam_misc/misc_conv.c:34
+msgid "...Sorry, your time is up!\n"
+msgstr "...Xin lỗi, đã hết thời gian!\n"
+
+#: libpam_misc/misc_conv.c:342
+#, c-format
+msgid "erroneous conversation (%d)\n"
+msgstr "hội thoại sai (%d)\n"
+
+#: libpam/pam_get_authtok.c:39 modules/pam_exec/pam_exec.c:142
+#: modules/pam_unix/pam_unix_auth.c:157 modules/pam_userdb/pam_userdb.c:64
+msgid "Password: "
+msgstr "Mật khẩu : "
+
+#: libpam/pam_get_authtok.c:41 modules/pam_cracklib/pam_cracklib.c:66
+#, c-format
+msgid "New %s%spassword: "
+msgstr "Mật khẩu %s%s mới: "
+
+#: libpam/pam_get_authtok.c:43 modules/pam_cracklib/pam_cracklib.c:68
+#, c-format
+msgid "Retype new %s%spassword: "
+msgstr "Nhập lại mật khẩu %s%s mới: "
+
+#: libpam/pam_get_authtok.c:44 modules/pam_cracklib/pam_cracklib.c:69
+msgid "Sorry, passwords do not match."
+msgstr "Xin lỗi, mật khẩu không khớp."
+
+#: libpam/pam_get_authtok.c:133 libpam/pam_get_authtok.c:209
+#, c-format
+msgid "Retype %s"
+msgstr "Nhập lại %s"
+
+#: libpam/pam_get_authtok.c:153 libpam/pam_get_authtok.c:222
+msgid "Password change aborted."
+msgstr "Hủy bỏ việc thay đổi mật khẩu."
+
+#: libpam/pam_item.c:311
+msgid "login:"
+msgstr "Đăng nhập:"
+
+#: libpam/pam_strerror.c:40
+msgid "Success"
+msgstr "Thành công"
+
+#: libpam/pam_strerror.c:42
+msgid "Critical error - immediate abort"
+msgstr "Lỗi nghiêm trọng - hủy bỏ ngay"
+
+#: libpam/pam_strerror.c:44
+msgid "Failed to load module"
+msgstr "Không thể nạp mô-đun"
+
+#: libpam/pam_strerror.c:46
+msgid "Symbol not found"
+msgstr "Không tìm thấy biểu tượng"
+
+#: libpam/pam_strerror.c:48
+msgid "Error in service module"
+msgstr "Lỗi trong mô-đun dịch vụ"
+
+#: libpam/pam_strerror.c:50
+msgid "System error"
+msgstr "Lỗi hệ thống"
+
+#: libpam/pam_strerror.c:52
+msgid "Memory buffer error"
+msgstr "Lỗi bộ nhớ đệm"
+
+#: libpam/pam_strerror.c:54
+msgid "Permission denied"
+msgstr "Không có đủ quyền thực hiện"
+
+#: libpam/pam_strerror.c:56
+msgid "Authentication failure"
+msgstr "Xác thực thất bại"
+
+#: libpam/pam_strerror.c:58
+msgid "Insufficient credentials to access authentication data"
+msgstr "Không đủ quyền uỷ nhiệm để truy cập dữ liệu xác thực"
+
+#: libpam/pam_strerror.c:60
+msgid "Authentication service cannot retrieve authentication info"
+msgstr "Dịch vụ chứng thực không thể lấy các thông tin xác thực"
+
+#: libpam/pam_strerror.c:62
+msgid "User not known to the underlying authentication module"
+msgstr "Người dùng chưa biết đến mô-đun xác thực tiềm ẩn"
+
+#: libpam/pam_strerror.c:64
+msgid "Have exhausted maximum number of retries for service"
+msgstr "Đã hết số lần thử lại tối đa cho dịch vụ"
+
+#: libpam/pam_strerror.c:66
+msgid "Authentication token is no longer valid; new one required"
+msgstr "Dấu hiệu xác thực không còn hiệu lực; yêu cầu dấu hiệu xác thực mới"
+
+#: libpam/pam_strerror.c:68
+msgid "User account has expired"
+msgstr "Tài khoản người dùng đã hết hiệu lực"
+
+#: libpam/pam_strerror.c:70
+msgid "Cannot make/remove an entry for the specified session"
+msgstr "Không thể thực hiện hoặc loại bỏ một mục nhập cho phiên định"
+
+#: libpam/pam_strerror.c:72
+msgid "Authentication service cannot retrieve user credentials"
+msgstr "Dịch vụ chứng thực không thể lấy các chứng chỉ người dùng"
+
+#: libpam/pam_strerror.c:74
+msgid "User credentials expired"
+msgstr "Hết hạn ủy nhiệm người dùng"
+
+#: libpam/pam_strerror.c:76
+msgid "Failure setting user credentials"
+msgstr "Cài đặt ủy nhiệm người dùng thất bại"
+
+#: libpam/pam_strerror.c:78
+msgid "No module specific data is present"
+msgstr "Hiện tại không có mô-đun dữ liệu"
+
+#: libpam/pam_strerror.c:80
+msgid "Bad item passed to pam_*_item()"
+msgstr "Tình trạng hàng được thông qua để pam_ * _item ()"
+
+#: libpam/pam_strerror.c:82
+msgid "Conversation error"
+msgstr "Lỗi giao tiếp"
+
+#: libpam/pam_strerror.c:84
+msgid "Authentication token manipulation error"
+msgstr "Thao tác xác thực token lỗi"
+
+#: libpam/pam_strerror.c:86
+msgid "Authentication information cannot be recovered"
+msgstr "Xác thực thông tin không thể được phục hồi"
+
+#: libpam/pam_strerror.c:88
+msgid "Authentication token lock busy"
+msgstr "authentication token lock busy"
+
+#: libpam/pam_strerror.c:90
+msgid "Authentication token aging disabled"
+msgstr "xác thực token già tàn tật"
+
+#: libpam/pam_strerror.c:92
+msgid "Failed preliminary check by password service"
+msgstr "Không thành công sơ bộ kiểm tra bằng mật khẩu dịch vụ"
+
+#: libpam/pam_strerror.c:94
+msgid "The return value should be ignored by PAM dispatch"
+msgstr "Giá trị trả về phải được bỏ qua bởi PAM công văn"
+
+#: libpam/pam_strerror.c:96
+msgid "Module is unknown"
+msgstr "chưa biết mô-đun"
+
+#: libpam/pam_strerror.c:98
+msgid "Authentication token expired"
+msgstr "Hết hạn xác thực"
+
+#: libpam/pam_strerror.c:100
+msgid "Conversation is waiting for event"
+msgstr "Giao tiếp đang chờ kết quả"
+
+#: libpam/pam_strerror.c:102
+msgid "Application needs to call libpam again"
+msgstr "Ứng dụng cần gọi libpam lần nữa"
+
+#: libpam/pam_strerror.c:105
+msgid "Unknown PAM error"
+msgstr "Không biết lỗi PAM"
+
+#: modules/pam_cracklib/pam_cracklib.c:493
+msgid "is the same as the old one"
+msgstr "là giống như cũ"
+
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "Lỗi giao tiếp"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
+msgid "is a palindrome"
+msgstr "là một xâu palindrome"
+
+#: modules/pam_cracklib/pam_cracklib.c:521
+msgid "case changes only"
+msgstr "chỉ thay đổi chữ thường/hoa"
+
+#: modules/pam_cracklib/pam_cracklib.c:524
+msgid "is too similar to the old one"
+msgstr "quá giống cái cũ"
+
+#: modules/pam_cracklib/pam_cracklib.c:527
+msgid "is too simple"
+msgstr "quá đơn giản"
+
+#: modules/pam_cracklib/pam_cracklib.c:530
+msgid "is rotated"
+msgstr "được sử dụng lại"
+
+#: modules/pam_cracklib/pam_cracklib.c:533
+msgid "not enough character classes"
+msgstr "không đủ các lớp nhân vật"
+
+#: modules/pam_cracklib/pam_cracklib.c:536
+msgid "contains too many same characters consecutively"
+msgstr "chứa quá nhiều kí tự giống nhau liên tiếp"
+
+#: modules/pam_cracklib/pam_cracklib.c:539
+msgid "contains the user name in some form"
+msgstr "chứa tên user trong một số biểu mẫu"
+
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
+msgid "No password supplied"
+msgstr "Không có mật khẩu được cung cấp"
+
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
+msgid "Password unchanged"
+msgstr "Chưa thay đổi mật khẩu"
+
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
+#, c-format
+msgid "BAD PASSWORD: %s"
+msgstr "Mật khẩu không an toàn: %s"
+
+#: modules/pam_exec/pam_exec.c:215
+#, c-format
+msgid "%s failed: exit code %d"
+msgstr "%s thất bại: lối ra mã %d"
+
+#: modules/pam_exec/pam_exec.c:224
+#, c-format
+msgid "%s failed: caught signal %d%s"
+msgstr "%s thất bại: bắt tín hiệu %d%s"
+
+#: modules/pam_exec/pam_exec.c:233
+#, c-format
+msgid "%s failed: unknown status 0x%x"
+msgstr "%s thất bại: không rõ tình trạng 0x%x"
+
+#. TRANSLATORS: "strftime options for date of last login"
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
+msgid " %a %b %e %H:%M:%S %Z %Y"
+msgstr " %a %b %e %H:%M:%S %Z %Y"
+
+#. TRANSLATORS: " from <host>"
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
+#, c-format
+msgid " from %.*s"
+msgstr " từ %.*s"
+
+#. TRANSLATORS: " on <terminal>"
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
+#, c-format
+msgid " on %.*s"
+msgstr " trên %.*s"
+
+#. TRANSLATORS: "Last login: <date> from <host> on <terminal>"
+#: modules/pam_lastlog/pam_lastlog.c:232
+#, c-format
+msgid "Last login:%s%s%s"
+msgstr "Lần đăng nhập:%s%s%s"
+
+#: modules/pam_lastlog/pam_lastlog.c:238
+msgid "Welcome to your new account!"
+msgstr "Chào mừng bạn đến tài khoản mới của bạn!"
+
+#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
+#: modules/pam_lastlog/pam_lastlog.c:464
+#, c-format
+msgid "Last failed login:%s%s%s"
+msgstr "Lần đăng nhập thất bại trước:%s%s%s"
+
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
+#, c-format
+msgid "There was %d failed login attempt since the last successful login."
+msgid_plural ""
+"There were %d failed login attempts since the last successful login."
+msgstr[0] ""
+"Đã có %d lần đăng nhập thất bại kể từ lần đăng nhập thành công trước đó."
+
+#. TRANSLATORS: only used if dngettext is not supported
+#: modules/pam_lastlog/pam_lastlog.c:485
+#, c-format
+msgid "There were %d failed login attempts since the last successful login."
+msgstr ""
+"Có %d lần đăng nhập không thành công kể từ lần đăng nhập thành công trước."
+
+#: modules/pam_limits/pam_limits.c:1079
+#, c-format
+msgid "Too many logins for '%s'."
+msgstr "Quá nhiều lần đăng nhập cho '%s'."
+
+#: modules/pam_mail/pam_mail.c:297
+msgid "No mail."
+msgstr "Không có thư."
+
+#: modules/pam_mail/pam_mail.c:300
+msgid "You have new mail."
+msgstr "Bạn có thư mới."
+
+#: modules/pam_mail/pam_mail.c:303
+msgid "You have old mail."
+msgstr "Bạn có thư cũ."
+
+#: modules/pam_mail/pam_mail.c:307
+msgid "You have mail."
+msgstr "Bạn có thư."
+
+#: modules/pam_mail/pam_mail.c:314
+#, c-format
+msgid "You have no mail in folder %s."
+msgstr "Bạn không có thư trong thư mục %s."
+
+#: modules/pam_mail/pam_mail.c:318
+#, c-format
+msgid "You have new mail in folder %s."
+msgstr "Bạn có thư mới trong thư mục %s."
+
+#: modules/pam_mail/pam_mail.c:322
+#, c-format
+msgid "You have old mail in folder %s."
+msgstr "Bạn có thư cũ trong thư mục %s."
+
+#: modules/pam_mail/pam_mail.c:327
+#, c-format
+msgid "You have mail in folder %s."
+msgstr "Bạn có thư trong thư mục %s."
+
+#: modules/pam_mkhomedir/pam_mkhomedir.c:113
+#, c-format
+msgid "Creating directory '%s'."
+msgstr "Tạo thư mục '%s'."
+
+#: modules/pam_mkhomedir/pam_mkhomedir.c:183
+#, c-format
+msgid "Unable to create and initialize directory '%s'."
+msgstr "Không thể khởi tạo thư mục '%s'."
+
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
+msgid "Password has been already used. Choose another."
+msgstr "Mật khẩu đã được dùng. Hãy chọn mật khẩu khác."
+
+#: modules/pam_selinux/pam_selinux.c:172
+msgid "Would you like to enter a security context? [N] "
+msgstr "Bạn có muốn nhập một bối cảnh an ninh? [N] "
+
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
+msgid "role:"
+msgstr "Vai trò:"
+
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
+msgid "level:"
+msgstr "trình độ:"
+
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
+msgid "Not a valid security context"
+msgstr "Không phải là một bối cảnh an ninh hợp lệ"
+
+#: modules/pam_selinux/pam_selinux.c:282
+#, c-format
+msgid "Default Security Context %s\n"
+msgstr "Bối cảnh an ninh mặc định %s\n"
+
+#: modules/pam_selinux/pam_selinux.c:286
+msgid "Would you like to enter a different role or level?"
+msgstr "Bạn có muốn nhập một vai trò khác nhau hoặc cấp?"
+
+#: modules/pam_selinux/pam_selinux.c:302
+#, c-format
+msgid "No default type for role %s\n"
+msgstr "Không có loại mặc định cho vai trò %s\n"
+
+#: modules/pam_selinux/pam_selinux.c:688
+#, c-format
+msgid "Unable to get valid context for %s"
+msgstr "Không thể có được bối cảnh hợp lệ cho %s"
+
+#: modules/pam_selinux/pam_selinux.c:742
+#, c-format
+msgid "Security Context %s Assigned"
+msgstr "Bối cảnh an ninh %s Giao"
+
+#: modules/pam_selinux/pam_selinux.c:763
+#, c-format
+msgid "Key Creation Context %s Assigned"
+msgstr "Sáng tạo Context phím %s Giao"
+
+#: modules/pam_selinux/pam_selinux_check.c:99
+#, c-format
+msgid "failed to initialize PAM\n"
+msgstr "không thể khởi tạo PAM\n"
+
+#: modules/pam_selinux/pam_selinux_check.c:105
+#, c-format
+msgid "failed to pam_set_item()\n"
+msgstr "không pam_set_item ()\n"
+
+#: modules/pam_selinux/pam_selinux_check.c:133
+#, c-format
+msgid "login: failure forking: %m"
+msgstr "đăng nhập: thất bại forking: %m"
+
+#: modules/pam_stress/pam_stress.c:476
+#, c-format
+msgid "Changing STRESS password for %s."
+msgstr "Thay đổi mật khẩu căng thẳng cho %s."
+
+#: modules/pam_stress/pam_stress.c:490
+msgid "Enter new STRESS password: "
+msgstr "Nhập mật khẩu căng thẳng mới: "
+
+#: modules/pam_stress/pam_stress.c:493
+msgid "Retype new STRESS password: "
+msgstr "Nhập lại mật khẩu mới căng thẳng: "
+
+#: modules/pam_stress/pam_stress.c:522
+msgid "Verification mis-typed; password unchanged"
+msgstr "Mã xác nhận mis-đánh máy; mật khẩu không thay đổi"
+
+#: modules/pam_tally/pam_tally.c:541 modules/pam_tally2/pam_tally2.c:596
+#, c-format
+msgid "Account temporary locked (%ld seconds left)"
+msgstr "Tài khoản tạm thời bị khóa (%ld giây còn lại)"
+
+#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:575
+#, c-format
+msgid "Account locked due to %u failed logins"
+msgstr "Tài khoản bị khóa do đăng nhập %u không thành công"
+
+#: modules/pam_tally/pam_tally.c:777 modules/pam_tally2/pam_tally2.c:884
+msgid "Authentication error"
+msgstr "Xác thực lỗi"
+
+#: modules/pam_tally/pam_tally.c:778 modules/pam_tally2/pam_tally2.c:885
+msgid "Service error"
+msgstr "Lỗi dịch vụ"
+
+#: modules/pam_tally/pam_tally.c:779 modules/pam_tally2/pam_tally2.c:886
+msgid "Unknown user"
+msgstr "Người dùng không rõ"
+
+#: modules/pam_tally/pam_tally.c:780 modules/pam_tally2/pam_tally2.c:887
+msgid "Unknown error"
+msgstr "Lỗi không rõ"
+
+#: modules/pam_tally/pam_tally.c:796 modules/pam_tally2/pam_tally2.c:906
+#, c-format
+msgid "%s: Bad number given to --reset=\n"
+msgstr "%s: Xấu số cho --cài lại=\n"
+
+#: modules/pam_tally/pam_tally.c:800 modules/pam_tally2/pam_tally2.c:910
+#, c-format
+msgid "%s: Unrecognised option %s\n"
+msgstr "%s: Được thừa nhận lựa chọn%s\n"
+
+#: modules/pam_tally/pam_tally.c:812
+#, c-format
+msgid ""
+"%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n"
+msgstr ""
+"%s: [- tập bắt rễ-filename] [- người sử dụng tên người dùng] [- đặt lại [= "
+"n]] [- yên tĩnh]\n"
+
+#: modules/pam_tally/pam_tally.c:886 modules/pam_tally2/pam_tally2.c:1036
+#, c-format
+msgid "%s: Can't reset all users to non-zero\n"
+msgstr "%s: Không thể thiết lập lại tất cả các người dùng khác không\n"
+
+#: modules/pam_tally2/pam_tally2.c:937
+#, c-format
+msgid "Login Failures Latest failure From\n"
+msgstr "Đang nhập Thất bại Thất bại cuốie Từ \n"
+
+#: modules/pam_tally2/pam_tally2.c:953
+#, c-format
+msgid ""
+"%s: [-f rooted-filename] [--file rooted-filename]\n"
+" [-u username] [--user username]\n"
+" [-r] [--reset[=n]] [--quiet]\n"
+msgstr ""
+"%s: [-f rooted-filename] [--file rooted-filename]\n"
+" [-u username] [--user username]\n"
+" [-r] [--reset[=n]] [--quiet]\n"
+
+#: modules/pam_timestamp/pam_timestamp.c:345
+#, c-format
+msgid "Access granted (last access was %ld seconds ago)."
+msgstr "Được phép truy cập (lần truy cập trước %ld giây trước)"
+
+#: modules/pam_unix/pam_unix_acct.c:236 modules/pam_unix/pam_unix_acct.c:258
+msgid "Your account has expired; please contact your system administrator"
+msgstr ""
+"Tài khoản của bạn đã hết hạn dùng: hãy liên lạc với nhà quản trị hệ thống"
+
+#: modules/pam_unix/pam_unix_acct.c:244
+msgid "You are required to change your password immediately (root enforced)"
+msgstr "Bạn phải thay đổi ngay mật khẩu (người chủ ép buộc)"
+
+#: modules/pam_unix/pam_unix_acct.c:250
+msgid "You are required to change your password immediately (password aged)"
+msgstr "Bạn phải thay đổi ngay mật khẩu (mật khẩu quá cũ)"
+
+#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278
+#, c-format
+msgid "Warning: your password will expire in %d day"
+msgid_plural "Warning: your password will expire in %d days"
+msgstr[0] "Cảnh báo: mật khẩu của bạn sẽ hết hạn trong %d ngày"
+
+#. TRANSLATORS: only used if dngettext is not supported
+#: modules/pam_unix/pam_unix_acct.c:283
+#, c-format
+msgid "Warning: your password will expire in %d days"
+msgstr "Cảnh báo: mật khẩu của bạn sẽ hết hạn trong %d ngày"
+
+#: modules/pam_unix/pam_unix_passwd.c:390
+msgid "NIS password could not be changed."
+msgstr "NIS mật khẩu không thể được thay đổi."
+
+#: modules/pam_unix/pam_unix_passwd.c:505
+msgid "You must choose a longer password"
+msgstr "Bạn phải chọn mật khẩu dài hơn"
+
+#: modules/pam_unix/pam_unix_passwd.c:612
+#, c-format
+msgid "Changing password for %s."
+msgstr "Thay đổi mật khẩu cho %s."
+
+#: modules/pam_unix/pam_unix_passwd.c:623
+msgid "(current) UNIX password: "
+msgstr "hiện hành UNIX mật khẩu: "
+
+#: modules/pam_unix/pam_unix_passwd.c:658
+msgid "You must wait longer to change your password"
+msgstr "Bạn phải đợi thêm nữa, để thay đổi mật khẩu"
+
+#: modules/pam_unix/pam_unix_passwd.c:718
+msgid "Enter new UNIX password: "
+msgstr "Nhập mật khẩu UNIX mới: "
+
+#: modules/pam_unix/pam_unix_passwd.c:719
+msgid "Retype new UNIX password: "
+msgstr "Nhập lại mật khẩu UNIX mới: "
+
+#~ msgid "has been already used"
+#~ msgstr "đã được đã được sử dụng"
+
+#~ msgid "Unable to create directory %s: %m"
+#~ msgstr "Không thể tạo thư mục %s: %m"
+
+#~ msgid "Requested MLS level not in permitted range"
+#~ msgstr "Số MLS yêu cầu cấp không được cho phép trong phạm vi"
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 9e17654d..ceccd4a0 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pam.tip\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-04-03 12:47+1000\n"
"Last-Translator: Leah Liu <lliu@redhat.com>\n"
"Language-Team: Simplified Chinese <zh@li.org>\n"
@@ -60,7 +60,7 @@ msgstr "重新输入 %s"
msgid "Password change aborted."
msgstr "密码更改取消。"
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "登录:"
@@ -196,54 +196,61 @@ msgstr "应用程序需要再次调用 libpam"
msgid "Unknown PAM error"
msgstr "未知的 PAM 错误"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "与旧密码相同"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "转换错误"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "是回文"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "仅更改了大小写"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "与旧密码过于相似"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "过于简单"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "是旧密码的循环"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "没有足够的字符分类"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "包含过多连续相同的字符"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "以某些形式包含用户名"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "密码未提供"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "密码未更改"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "无效的密码: %s"
@@ -264,18 +271,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s 失败:未知的状态 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr "%a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr "从 %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr "%.*s 上"
@@ -291,12 +298,12 @@ msgid "Welcome to your new account!"
msgstr "欢迎使用新帐户!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "最后一次失败的登录:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -304,12 +311,12 @@ msgid_plural ""
msgstr[0] "最有一次成功登录后有 %d 次失败的登录尝试"
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr "最有一次成功登录后有 %d 次失败的登录尝试。"
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "'%s'登录过多。"
@@ -360,8 +367,8 @@ msgstr "创建目录 '%s'。"
msgid "Unable to create and initialize directory '%s'."
msgstr "无法创建和初始化目录 '%s'"
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "密码已使用。请选择其他密码。"
@@ -369,43 +376,43 @@ msgstr "密码已使用。请选择其他密码。"
msgid "Would you like to enter a security context? [N] "
msgstr "是否愿意进入安全性环境?[N]"
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "角色:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "级别:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "不是有效的安全性环境"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "默认安全性环境 %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "您是否愿意进入不同的角色或者级别?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "没有角色 %s 默认类型\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "无法为 %s 获得有效环境"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "已指派安全性环境 %s"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "已分配密钥生成环境 %s"
@@ -425,20 +432,20 @@ msgstr "未能 pam_set_item()\n"
msgid "login: failure forking: %m"
msgstr "登录:故障派生:%m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "为 %s 更改 STRESS 密码。"
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "输入新的 STRESS 密码:"
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "重新输入新的 STRESS 密码:"
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "校验类型错误;密码未更改"
@@ -534,31 +541,31 @@ msgstr[0] "警告:您的密码将在 %d 天后过期"
msgid "Warning: your password will expire in %d days"
msgstr "警告:您的密码将在 %d 天后过期"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "无法更改 NIS 密码。"
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "必须选择更长的密码"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "为 %s 更改 STRESS 密码。"
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(当前)UNIX 密码:"
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "您必须等待更长时间以更改密码"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "输入新的 UNIX 密码:"
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "重新输入新的 UNIX 密码:"
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 470d17d0..2d456a62 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pam.tip\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2009-04-06 21:21+1000\n"
"Last-Translator: Terry Chuang <tchuang@redhat.com>\n"
"Language-Team: <zh@li.org>\n"
@@ -59,7 +59,7 @@ msgstr "重新輸入 %s"
msgid "Password change aborted."
msgstr "已終止密碼變更作業。"
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "登入:"
@@ -195,54 +195,61 @@ msgstr "應用程式需要再次呼叫 libpam"
msgid "Unknown PAM error"
msgstr "未知的 PAM 錯誤"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "與舊的密碼相同"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "交談錯誤"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "是一個回文"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "僅變更大小寫"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "與舊的密碼太相似"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "太簡單"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "已旋轉"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr "字元類別不足"
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr "包含了太多連續的相同字元"
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr "包含了某些格式的用戶名稱"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "未提供密碼"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "密碼未變更"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "不良的密碼: %s"
@@ -263,18 +270,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr "%s 失敗:不明狀態 0x%x"
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr "%a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr "從 %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr "在 %.*s"
@@ -290,12 +297,12 @@ msgid "Welcome to your new account!"
msgstr "歡迎使用您的新帳號!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, c-format
msgid "Last failed login:%s%s%s"
msgstr "上一次失敗的登入:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -304,12 +311,12 @@ msgstr[0] "自從上次成功登入後有 %d 次嘗試登入失敗。"
msgstr[1] "自從上次成功登入後有 %d 次嘗試登入失敗。"
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr "自從上次成功登入後有 %d 次嘗試登入失敗。"
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "對 '%s' 進行太多次登入。"
@@ -360,8 +367,8 @@ msgstr "建立目錄「%s」。"
msgid "Unable to create and initialize directory '%s'."
msgstr "無法建立和初始化「%s」目錄。"
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "密碼已經由其他使用者使用。請選擇其他密碼。"
@@ -369,43 +376,43 @@ msgstr "密碼已經由其他使用者使用。請選擇其他密碼。"
msgid "Would you like to enter a security context? [N] "
msgstr "您是否要輸入安全性 context?[否]"
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
msgid "role:"
msgstr "角色:"
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
msgid "level:"
msgstr "層級:"
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "不是有效的安全網路位置"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, c-format
msgid "Default Security Context %s\n"
msgstr "預設的安全網路位置 %s\n"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
msgid "Would you like to enter a different role or level?"
msgstr "您是否希望輸入不同的角色或層級?"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr "%s 沒有預設的類型\n"
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr "無法取得 %s 的有效 context"
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "已指定安全網路位置 %s"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, c-format
msgid "Key Creation Context %s Assigned"
msgstr "已指建置金鑰的定安全網路位置 %s"
@@ -425,20 +432,20 @@ msgstr "pam_set_item() 失敗\n"
msgid "login: failure forking: %m"
msgstr "登入:失敗的分叉:%m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, c-format
msgid "Changing STRESS password for %s."
msgstr "正在更改 %s 的 STRESS 密碼。"
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "輸入新的 STRESS 密碼:"
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "再次輸入新的 STRESS 密碼:"
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "確認錯誤輸入;密碼未變更"
@@ -536,31 +543,31 @@ msgstr[1] "警告:您的密碼將在 %d 天之後過期。"
msgid "Warning: your password will expire in %d days"
msgstr "警告:您的密碼將在 %d 天之後過期。"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "無法變更 NIS 密碼。"
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "您必須選擇更長的密碼"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, c-format
msgid "Changing password for %s."
msgstr "正在更改 %s 的 STRESS 密碼。"
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "(目前的)UNIX 密碼:"
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "您必須久候,以更改您的密碼"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "輸入新的 UNIX 密碼:"
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "再次輸入新的 UNIX 密碼:"
diff --git a/po/zu.po b/po/zu.po
index b13afe0c..2707ab28 100644
--- a/po/zu.po
+++ b/po/zu.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Linux-PAM\n"
"Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n"
-"POT-Creation-Date: 2010-10-20 15:15+0200\n"
+"POT-Creation-Date: 2011-06-21 12:57+0200\n"
"PO-Revision-Date: 2006-11-03 12:03\n"
"Last-Translator: Novell Language <language@novell.com>\n"
"Language-Team: Novell Language <language@novell.com>\n"
@@ -55,7 +55,7 @@ msgstr "uhlobo: "
msgid "Password change aborted."
msgstr "Iphasiwedi ayishintshwanga"
-#: libpam/pam_item.c:310
+#: libpam/pam_item.c:311
msgid "login:"
msgstr "ngena:"
@@ -191,54 +191,61 @@ msgstr "Uhlelo ludinga ukubiza i-libpam futhi"
msgid "Unknown PAM error"
msgstr "Iphutha le-PAM elingaziwa"
-#: modules/pam_cracklib/pam_cracklib.c:490
+#: modules/pam_cracklib/pam_cracklib.c:493
msgid "is the same as the old one"
msgstr "iyafana nendala"
-#: modules/pam_cracklib/pam_cracklib.c:504
+#: modules/pam_cracklib/pam_cracklib.c:499
+#: modules/pam_cracklib/pam_cracklib.c:503
+#: modules/pam_cracklib/pam_cracklib.c:513
+#, fuzzy
+msgid "memory allocation error"
+msgstr "Iphutha lengxoxo"
+
+#: modules/pam_cracklib/pam_cracklib.c:518
msgid "is a palindrome"
msgstr "iyi-palindrome"
-#: modules/pam_cracklib/pam_cracklib.c:507
+#: modules/pam_cracklib/pam_cracklib.c:521
msgid "case changes only"
msgstr "kushintshe onobumba kuphela"
-#: modules/pam_cracklib/pam_cracklib.c:510
+#: modules/pam_cracklib/pam_cracklib.c:524
msgid "is too similar to the old one"
msgstr "ifana kakhulu nendala"
-#: modules/pam_cracklib/pam_cracklib.c:513
+#: modules/pam_cracklib/pam_cracklib.c:527
msgid "is too simple"
msgstr "ilula kakhulu"
-#: modules/pam_cracklib/pam_cracklib.c:516
+#: modules/pam_cracklib/pam_cracklib.c:530
msgid "is rotated"
msgstr "ijikelezisiwe"
-#: modules/pam_cracklib/pam_cracklib.c:519
+#: modules/pam_cracklib/pam_cracklib.c:533
msgid "not enough character classes"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:522
+#: modules/pam_cracklib/pam_cracklib.c:536
msgid "contains too many same characters consecutively"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:525
+#: modules/pam_cracklib/pam_cracklib.c:539
msgid "contains the user name in some form"
msgstr ""
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "No password supplied"
msgstr "Ayikho iphasiwedi enikeziwe"
-#: modules/pam_cracklib/pam_cracklib.c:555
-#: modules/pam_unix/pam_unix_passwd.c:476
+#: modules/pam_cracklib/pam_cracklib.c:573
+#: modules/pam_unix/pam_unix_passwd.c:488
msgid "Password unchanged"
msgstr "Iphasiwedi ayishintshwanga"
-#: modules/pam_cracklib/pam_cracklib.c:575
-#: modules/pam_cracklib/pam_cracklib.c:658
+#: modules/pam_cracklib/pam_cracklib.c:593
+#: modules/pam_cracklib/pam_cracklib.c:676
#, c-format
msgid "BAD PASSWORD: %s"
msgstr "IPHASIWEDI ENGASEBENZI: %s"
@@ -259,18 +266,18 @@ msgid "%s failed: unknown status 0x%x"
msgstr ""
#. TRANSLATORS: "strftime options for date of last login"
-#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:429
+#: modules/pam_lastlog/pam_lastlog.c:201 modules/pam_lastlog/pam_lastlog.c:433
msgid " %a %b %e %H:%M:%S %Z %Y"
msgstr "%a %b %e %H:%M:%S %Z %Y"
#. TRANSLATORS: " from <host>"
-#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:438
+#: modules/pam_lastlog/pam_lastlog.c:210 modules/pam_lastlog/pam_lastlog.c:442
#, c-format
msgid " from %.*s"
msgstr "kusukela %.*s"
#. TRANSLATORS: " on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:450
+#: modules/pam_lastlog/pam_lastlog.c:222 modules/pam_lastlog/pam_lastlog.c:454
#, c-format
msgid " on %.*s"
msgstr "ku-%.*s"
@@ -286,12 +293,12 @@ msgid "Welcome to your new account!"
msgstr "Uyamukelwa kwi-akhawunti yakho entsha!"
#. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>"
-#: modules/pam_lastlog/pam_lastlog.c:460
+#: modules/pam_lastlog/pam_lastlog.c:464
#, fuzzy, c-format
msgid "Last failed login:%s%s%s"
msgstr "Ukungena kokugcina:%s%s%s"
-#: modules/pam_lastlog/pam_lastlog.c:469 modules/pam_lastlog/pam_lastlog.c:476
+#: modules/pam_lastlog/pam_lastlog.c:473 modules/pam_lastlog/pam_lastlog.c:480
#, c-format
msgid "There was %d failed login attempt since the last successful login."
msgid_plural ""
@@ -300,12 +307,12 @@ msgstr[0] ""
msgstr[1] ""
#. TRANSLATORS: only used if dngettext is not supported
-#: modules/pam_lastlog/pam_lastlog.c:481
+#: modules/pam_lastlog/pam_lastlog.c:485
#, c-format
msgid "There were %d failed login attempts since the last successful login."
msgstr ""
-#: modules/pam_limits/pam_limits.c:786
+#: modules/pam_limits/pam_limits.c:1079
#, c-format
msgid "Too many logins for '%s'."
msgstr "Kuningi kakhulu ukungena kwi- '%s' osekwenziwe."
@@ -356,8 +363,8 @@ msgstr ""
msgid "Unable to create and initialize directory '%s'."
msgstr ""
-#: modules/pam_pwhistory/pam_pwhistory.c:218
-#: modules/pam_unix/pam_unix_passwd.c:497
+#: modules/pam_pwhistory/pam_pwhistory.c:215
+#: modules/pam_unix/pam_unix_passwd.c:509
msgid "Password has been already used. Choose another."
msgstr "Le phasiwedi isetshenziswa ngothile. Khetha enye."
@@ -366,46 +373,46 @@ msgstr "Le phasiwedi isetshenziswa ngothile. Khetha enye."
msgid "Would you like to enter a security context? [N] "
msgstr "Ungathanda ukufaka indawo yokuphepha (security context) [y]"
-#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:282
+#: modules/pam_selinux/pam_selinux.c:191 modules/pam_selinux/pam_selinux.c:299
#, fuzzy
msgid "role:"
msgstr "indima: "
-#: modules/pam_selinux/pam_selinux.c:204 modules/pam_selinux/pam_selinux.c:316
+#: modules/pam_selinux/pam_selinux.c:205 modules/pam_selinux/pam_selinux.c:334
#, fuzzy
msgid "level:"
msgstr "Izinga: "
-#: modules/pam_selinux/pam_selinux.c:219 modules/pam_selinux/pam_selinux.c:349
+#: modules/pam_selinux/pam_selinux.c:220 modules/pam_selinux/pam_selinux.c:367
msgid "Not a valid security context"
msgstr "Akuyona indawo yokuphepha esemthethweni"
-#: modules/pam_selinux/pam_selinux.c:265
+#: modules/pam_selinux/pam_selinux.c:282
#, fuzzy, c-format
msgid "Default Security Context %s\n"
msgstr "Indawo %s Yokuphepha Yabelwe"
-#: modules/pam_selinux/pam_selinux.c:269
+#: modules/pam_selinux/pam_selinux.c:286
#, fuzzy
msgid "Would you like to enter a different role or level?"
msgstr "Ungathanda ukufaka indawo yokuphepha (security context) [y]"
-#: modules/pam_selinux/pam_selinux.c:285
+#: modules/pam_selinux/pam_selinux.c:302
#, c-format
msgid "No default type for role %s\n"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:667
+#: modules/pam_selinux/pam_selinux.c:688
#, c-format
msgid "Unable to get valid context for %s"
msgstr ""
-#: modules/pam_selinux/pam_selinux.c:718
+#: modules/pam_selinux/pam_selinux.c:742
#, c-format
msgid "Security Context %s Assigned"
msgstr "Indawo %s Yokuphepha Yabelwe"
-#: modules/pam_selinux/pam_selinux.c:739
+#: modules/pam_selinux/pam_selinux.c:763
#, fuzzy, c-format
msgid "Key Creation Context %s Assigned"
msgstr "Indawo %s Yokuphepha Yabelwe"
@@ -425,20 +432,20 @@ msgstr "Ihlulekile ukwenza i-pam_set_item()\n"
msgid "login: failure forking: %m"
msgstr "ngena: Ihlulekile ukuhlukanisa: %m"
-#: modules/pam_stress/pam_stress.c:475
+#: modules/pam_stress/pam_stress.c:476
#, fuzzy, c-format
msgid "Changing STRESS password for %s."
msgstr "Ukushintsha iphasiwedi ye-STRESS ye-"
-#: modules/pam_stress/pam_stress.c:489
+#: modules/pam_stress/pam_stress.c:490
msgid "Enter new STRESS password: "
msgstr "Faka iphasiwedi entsha ye-STRESS: "
-#: modules/pam_stress/pam_stress.c:492
+#: modules/pam_stress/pam_stress.c:493
msgid "Retype new STRESS password: "
msgstr "Thayipha iphasiwedi entsha ye-STRESS: "
-#: modules/pam_stress/pam_stress.c:521
+#: modules/pam_stress/pam_stress.c:522
msgid "Verification mis-typed; password unchanged"
msgstr "Ukufakazela akuthayiphiwanga kahle; iphasiwedi ayishintshwanga"
@@ -541,32 +548,32 @@ msgstr[1] "Isexwayiso: Iphasiwedi yakho izophelelwa isikhathi %d usuku%.2s[T1]"
msgid "Warning: your password will expire in %d days"
msgstr "Isexwayiso: Iphasiwedi yakho izophelelwa isikhathi %d usuku%.2s[T1]"
-#: modules/pam_unix/pam_unix_passwd.c:385
+#: modules/pam_unix/pam_unix_passwd.c:390
msgid "NIS password could not be changed."
msgstr "Iphasiwedi ye-NIS ayivumanga ukushintshwa."
-#: modules/pam_unix/pam_unix_passwd.c:493
+#: modules/pam_unix/pam_unix_passwd.c:505
msgid "You must choose a longer password"
msgstr "Kumelwe ukhethe iphasiwedi ethe ukuba yinjana"
-#: modules/pam_unix/pam_unix_passwd.c:600
+#: modules/pam_unix/pam_unix_passwd.c:612
#, fuzzy, c-format
msgid "Changing password for %s."
msgstr "Ukushintsha iphasiwedi ye-STRESS ye-"
-#: modules/pam_unix/pam_unix_passwd.c:611
+#: modules/pam_unix/pam_unix_passwd.c:623
msgid "(current) UNIX password: "
msgstr "Iphasiwedi ye-UNIX (yamanje): "
-#: modules/pam_unix/pam_unix_passwd.c:646
+#: modules/pam_unix/pam_unix_passwd.c:658
msgid "You must wait longer to change your password"
msgstr "Kumelwe ulinde isikhashana ukuze ushintshe iphasiwedi yakho"
-#: modules/pam_unix/pam_unix_passwd.c:706
+#: modules/pam_unix/pam_unix_passwd.c:718
msgid "Enter new UNIX password: "
msgstr "Faka iphasiwedi entsha ye-UNIX: "
-#: modules/pam_unix/pam_unix_passwd.c:707
+#: modules/pam_unix/pam_unix_passwd.c:719
msgid "Retype new UNIX password: "
msgstr "Thayipha iphasiwedi entsha ye-UNIX: "