[Pkg-shadow-commits] r407 - in branches/experimental/debian: . patches

Nicolas FRANCOIS nekral-guest at costa.debian.org
Sun Jul 24 23:22:21 UTC 2005


Author: nekral-guest
Date: 2005-07-24 23:22:19 +0000 (Sun, 24 Jul 2005)
New Revision: 407

Added:
   branches/experimental/debian/login.linda-overrides
   branches/experimental/debian/passwd.linda-overrides
   branches/experimental/debian/patches/207_id-manpages
   branches/experimental/debian/patches/361_lastlog_8_sparse
   branches/experimental/debian/patches/363_su_ignore_SIGINT
   branches/experimental/debian/patches/443_chage_exit_values
   branches/experimental/debian/patches/444_no_strip_during_install
Removed:
   branches/experimental/debian/patches/311_high-uids.dpatch
   branches/experimental/debian/patches/425_lastlog_8_sparse
   branches/experimental/debian/patches/430_su_ignore_SIGINT
Modified:
   branches/experimental/debian/changelog
   branches/experimental/debian/control
   branches/experimental/debian/login.dirs
   branches/experimental/debian/login.lintian-overrides
   branches/experimental/debian/passwd.config
   branches/experimental/debian/passwd.dirs
   branches/experimental/debian/passwd.lintian-overrides
   branches/experimental/debian/passwd.preinst
   branches/experimental/debian/patches/100_LINGUAS.dpatch
   branches/experimental/debian/patches/104_fr.dpatch
   branches/experimental/debian/patches/122_pt.dpatch
   branches/experimental/debian/patches/132_vi.dpatch
   branches/experimental/debian/patches/206_ko-manpages.dpatch
   branches/experimental/debian/patches/356_su-stop_cont-proxy
   branches/experimental/debian/patches/423_su_arguments_are_concatenated
   branches/experimental/debian/patches/426_grpck_group-gshadow_members_consistency
   branches/experimental/debian/patches/429_login_FAILLOG_ENAB
   branches/experimental/debian/patches/series
   branches/experimental/debian/rules
Log:
Merge trunk changes from revisions 351 to 406.
Updates of 1xx and 2xx patches were not tested.


Modified: branches/experimental/debian/changelog
===================================================================
--- branches/experimental/debian/changelog	2005-07-24 21:43:03 UTC (rev 406)
+++ branches/experimental/debian/changelog	2005-07-24 23:22:19 UTC (rev 407)
@@ -19,11 +19,27 @@
 
   * Debian packaging fixes:
     - moved `shadowconfig on` from .preinst to .postinst
-    Closes: #319138
+      Closes: #319138
+    - debian/passwd.linda-overrides, debian/login.linda-overrides, debian/rules:
+      Add file permissions overrides for linda similar to those we have for lintian
+    - debian/login.lintian-overrides:
+      No more file permission overrides for login
+    - debian/passwd.config:
+      let error messages from shadowconfig (and therefore underlying
+      pwck/grpck tools which use stdout for this purpose) to reach stdout
+      instead of getting into /dev/null. This helps error diagnostics and
+      supposedly Closes: #319136
   * Programs translation updates:
     - French completed.
+  * Man pages translation updates:
+    - 207_id-manpages: correct Indonesian manpages so that they do not
+      fail lexgrog tests by linda
+    - 206_ko-manpages: correct Korean manpages so that they do not
+      fail lexgrog tests by linda
+  * Debconf translation updates:
+    - Arabic updated from Arabeyes repository
 
- -- Christian Perrier <bubulle at kheops.frmug.org>  Mon, 18 Jul 2005 10:23:21 +0200
+ -- Christian Perrier <bubulle at debian.org>  Fri, 22 Jul 2005 18:42:24 +0200
 
 shadow (1:4.0.3-38) unstable; urgency=low
 
@@ -56,13 +72,20 @@
 
 shadow (1:4.0.3-37) unstable; urgency=low
 
+  * The "Camembert" release
   * Upstream bugs not fixed in upstream releases or CVS:
     - 442_useradd.8-O
       Document useradd's "-O" option
       Closes: #304934
   * Debconf translation updates:
     - Indonesian updated (sent by translator to Christian Perrier)
+    - Bulgarian updated. Closes: #317327
     - Vietnamese added (sent by translator to Christian Perrier)
+    - Wolof added (sent by translator to Christian Perrier)
+      Closes: #317532
+  * Man pages translation updates:
+    - Really remove the too outdated Korean translation of newgrp.1
+      which doesn't even mention sg
   * Programs translation updates:
     - debian/patches/117_id:
       - Indonesian translation update (sent by translator to Christian Perrier)
@@ -70,6 +93,25 @@
     - login.defs
       Fix a typo (s/dmesg/mesg/), thanks to Maximilian Attens
       Closes: #317236
+    - Fix FTBFS for GNU/Hurd and GNU/kFreeBSD
+      - securetty.kfreebsd-gnu renamed to securetty.kfreebsd
+      - securetty.netbsd-gnu renamed to securetty.netbsd
+      - securetty.gnu renamed to securetty.hurd
+      Closes: #317304
+  * Upstream bugs not fixed in upstream releases or CVS:
+    - 443_chage_exit_values
+      chage: change the exit value to 3 when chage fails because the system is
+      not shadow enabled.
+      Closes: #317012
+    - 426_grpck_group-gshadow_members_consistency
+      grpck/pwck: fix segmentation faults
+      Closes: #317366
+    - 423_su_arguments_are_concatenated, 423_su_pass_args_without_concatenation
+      revert the patch done for #276419, because it breaks pbuilder and other
+      packages.  Also document the Debian su behavior.
+      su behave differently from FreeBSD or SUN; this issue will have to be
+      handled latter (re-open #276419).
+      Closes: #317264
 
  -- Christian Perrier <bubulle at debian.org>  Wed,  6 Jul 2005 03:13:37 +0300
 

Modified: branches/experimental/debian/control
===================================================================
--- branches/experimental/debian/control	2005-07-24 21:43:03 UTC (rev 406)
+++ branches/experimental/debian/control	2005-07-24 23:22:19 UTC (rev 407)
@@ -10,7 +10,6 @@
 Architecture: any
 Depends: ${shlibs:Depends}, ${loginpam}
 Conflicts: shadow-passwd, pam-apps, suidregister (<< 0.50), debconf (<< 0.5)
-Replaces: shadow-passwd
 Replaces: manpages (<=1.15-2), manpages-de (<= 0.4-4), manpages-fr, manpages-hu, manpages-it, manpages-ja, manpages-ko, manpages-pl (<= 20020406-1)
 Section: base
 Priority: required

Modified: branches/experimental/debian/login.dirs
===================================================================
--- branches/experimental/debian/login.dirs	2005-07-24 21:43:03 UTC (rev 406)
+++ branches/experimental/debian/login.dirs	2005-07-24 23:22:19 UTC (rev 407)
@@ -1 +1,2 @@
 usr/share/lintian/overrides
+usr/share/linda/overrides

Copied: branches/experimental/debian/login.linda-overrides (from rev 406, trunk/debian/login.linda-overrides)

Modified: branches/experimental/debian/login.lintian-overrides
===================================================================
--- branches/experimental/debian/login.lintian-overrides	2005-07-24 21:43:03 UTC (rev 406)
+++ branches/experimental/debian/login.lintian-overrides	2005-07-24 23:22:19 UTC (rev 407)
@@ -1,3 +1,2 @@
 login: setuid-binary usr/bin/newgrp 4755 root/root
-login: setuid-binary bin/login 4755 root/root
 login: setuid-binary bin/su 4755 root/root

Modified: branches/experimental/debian/passwd.config
===================================================================
--- branches/experimental/debian/passwd.config	2005-07-24 21:43:03 UTC (rev 406)
+++ branches/experimental/debian/passwd.config	2005-07-24 23:22:19 UTC (rev 407)
@@ -112,9 +112,9 @@
 		# Enable shadowed passwords...or not
 		db_get passwd/shadow
 		if [ "$RET" = true ]; then
-			shadowconfig on >/dev/null
+			shadowconfig on
 		else
-			shadowconfig off >/dev/null
+			shadowconfig off
 		fi
 	;;
 	3)
@@ -192,7 +192,7 @@
 					userdefault="tbm"
 				    ;;
 				    *)
-					userdefault="$(echo $RET | sed 's/ .*//' | tr A-Z a-z)"
+					userdefault=`echo $RET | sed 's/ .*//' | tr A-Z a-z`
 				    ;;
 				esac
 				if test -n "$userdefault"; then

Modified: branches/experimental/debian/passwd.dirs
===================================================================
--- branches/experimental/debian/passwd.dirs	2005-07-24 21:43:03 UTC (rev 406)
+++ branches/experimental/debian/passwd.dirs	2005-07-24 23:22:19 UTC (rev 407)
@@ -1 +1,2 @@
 usr/share/lintian/overrides
+usr/share/linda/overrides

Copied: branches/experimental/debian/passwd.linda-overrides (from rev 406, trunk/debian/passwd.linda-overrides)

Modified: branches/experimental/debian/passwd.lintian-overrides
===================================================================
--- branches/experimental/debian/passwd.lintian-overrides	2005-07-24 21:43:03 UTC (rev 406)
+++ branches/experimental/debian/passwd.lintian-overrides	2005-07-24 23:22:19 UTC (rev 407)
@@ -9,3 +9,7 @@
 # debconf is "important", and passwd is "required". A dependency would be *bad*
 passwd: seen-flag-requires-versioned-depends config
 passwd: missing-debconf-dependency
+
+# passwd.config uses adduser but does not strictly depend on it
+# as it fallbacks to useradd
+passwd: maintainer-script-needs-depends-on-adduser config

Modified: branches/experimental/debian/passwd.preinst
===================================================================
--- branches/experimental/debian/passwd.preinst	2005-07-24 21:43:03 UTC (rev 406)
+++ branches/experimental/debian/passwd.preinst	2005-07-24 23:22:19 UTC (rev 407)
@@ -29,8 +29,7 @@
 	    if dpkg --compare-versions $2 lt 1:4.0.3 ; then
 		remove_md5 /etc/pam.d/passwd 23a5d1465bbc1e39ca6e0c32f22a75c9
 	    fi
-	    fi
-	    
+	fi
     ;;
 
     abort-upgrade)

Modified: branches/experimental/debian/patches/100_LINGUAS.dpatch
===================================================================
--- branches/experimental/debian/patches/100_LINGUAS.dpatch	2005-07-24 21:43:03 UTC (rev 406)
+++ branches/experimental/debian/patches/100_LINGUAS.dpatch	2005-07-24 23:22:19 UTC (rev 407)
@@ -32,7 +32,7 @@
  fi
  
 -ALL_LINGUAS="cs de el fr ja ko pl sv uk"
-+ALL_LINGUAS="bs ca cs da de el es eu fi fr he id it ja ko nb nn nl pl pt_BR pt ro ru sk sq sv tl tr uk vi zh_CN zh_TW"
++ALL_LINGUAS="bs ca cs da de el es eu fi fr id it ja ko nb nn nl pl pt_BR pt ro ru sk sq sv tl tr uk vi zh_CN zh_TW"
  AM_GNU_GETTEXT
  
  AC_OUTPUT([

Modified: branches/experimental/debian/patches/104_fr.dpatch
===================================================================
--- branches/experimental/debian/patches/104_fr.dpatch	2005-07-24 21:43:03 UTC (rev 406)
+++ branches/experimental/debian/patches/104_fr.dpatch	2005-07-24 23:22:19 UTC (rev 407)
@@ -25,10 +25,10 @@
 @DPATCH@
 Index: shadow-4.0.3/po/fr.po
 ===================================================================
---- shadow-4.0.3.orig/po/fr.po	2002-03-13 20:07:46.000000000 +0100
-+++ shadow-4.0.3/po/fr.po	2005-06-16 10:08:51.000000000 +0200
+--- shadow-4.0.3.orig/po/fr.po	2005-07-14 15:41:10.054193833 +0200
++++ shadow-4.0.3/po/fr.po	2005-07-18 10:21:39.612408992 +0200
 @@ -1,43 +1,52 @@
-+# translation of fr.po to 
++# translation of fr-new.po to French
 +# translation of fr.po to French
  # shadow fr.po
 -# Copyright (C) 1999 Free Software Foundation, Inc.
@@ -44,12 +44,12 @@
 -"PO-Revision-Date: 1999-07-09 20:02+0200\n"
 -"Last-Translator: Vincent Renardias <vincent at ldsol.com>\n"
 -"Language-Team: Vincent Renardias <vincent at ldsol.com>\n"
-+"Project-Id-Version: fr\n"
++"Project-Id-Version: shadow 4.0.11\n"
 +"Report-Msgid-Bugs-To: \n"
 +"POT-Creation-Date: 2005-06-16 09:25+0200\n"
-+"PO-Revision-Date: 2005-05-11 21:20+0200\n"
++"PO-Revision-Date: 2005-07-18 10:21+0200\n"
 +"Last-Translator: Jean-Luc Coulon (f5ibh) <jean-luc.coulon at wanadoo.fr>\n"
-+"Language-Team:  French <debian-l10n-french at lists.debian.org>\n"
++"Language-Team: French <debian-l10n-french at lists.debian.org>\n"
  "MIME-Version: 1.0\n"
 -"Content-Type: text/plain; charset=iso-8859-1\n"
 +"Content-Type: text/plain; charset=ISO-8859-1\n"
@@ -93,7 +93,7 @@
  
  #: libmisc/age.c:99
  msgid "  Choose a new password.\n"
-@@ -46,90 +55,124 @@
+@@ -46,58 +55,58 @@
  #: libmisc/age.c:176
  #, c-format
  msgid "Your password will expire in %ld days.\n"
@@ -171,8 +171,7 @@
  
  #: libmisc/mail.c:62 libmisc/mail.c:77
  msgid "You have new mail."
--msgstr "Vous avez des nouveaux messages."
-+msgstr "Vous avez de nouveaux messages."
+@@ -105,31 +114,64 @@
  
  #: libmisc/mail.c:73
  msgid "No mail."
@@ -185,33 +184,32 @@
 +msgstr "Vous avez du courrier."
 +
 +#: libmisc/obscure.c:164
-+#, fuzzy
 +msgid "no change"
-+msgstr "%s : aucun changement\n"
++msgstr "aucun changement"
 +
 +#: libmisc/obscure.c:173
 +msgid "a palindrome"
-+msgstr ""
++msgstr "palindrome"
 +
 +#: libmisc/obscure.c:176
 +msgid "case changes only"
-+msgstr ""
++msgstr "seulement des changements de casse"
 +
 +#: libmisc/obscure.c:179
 +msgid "too similar"
-+msgstr ""
++msgstr "trop similaire"
 +
 +#: libmisc/obscure.c:182
 +msgid "too simple"
-+msgstr ""
++msgstr "trop simple"
 +
 +#: libmisc/obscure.c:185
 +msgid "rotated"
-+msgstr ""
++msgstr "anagramme"
 +
 +#: libmisc/obscure.c:226
 +msgid "too short"
-+msgstr ""
++msgstr "trop court"
  
  #: libmisc/obscure.c:281 src/passwd.c:244
  #, c-format
@@ -244,7 +242,7 @@
  
  #: libmisc/setupenv.c:219
  msgid "No directory, logging in with HOME=/"
-@@ -138,7 +181,7 @@
+@@ -138,7 +180,7 @@
  #: libmisc/shell.c:78
  #, c-format
  msgid "Executing shell %s\n"
@@ -253,7 +251,7 @@
  
  #.
  #. * Obviously something is really wrong - I can't figure out
-@@ -153,25 +196,36 @@
+@@ -153,25 +195,37 @@
  #: libmisc/sub.c:61
  #, c-format
  msgid "Invalid root directory \"%s\"\n"
@@ -269,11 +267,12 @@
 +#: libmisc/utmp.c:57
 +msgid "No utmp entry.  You must exec \"login\" from the lowest level \"sh\""
 +msgstr ""
++"Pas d'entrée utmp. Vous devez exécuter « login » depuis le shell de plus bas "
++"niveau"
 +
 +#: libmisc/utmp.c:59
-+#, fuzzy
 +msgid "Unable to determine your tty name."
-+msgstr "%s : Impossible de déterminer votre nom d'utilisateur.\n"
++msgstr "Impossible de déterminer le nom de votre terminal (tty)"
  
 -#: libmisc/xmalloc.c:28
 +#: libmisc/xmalloc.c:26
@@ -300,7 +299,7 @@
  msgid "configuration error - unknown item '%s' (notify administrator)\n"
  msgstr ""
 -"erreur de configuration - élément '%s' inconnu (avertissez "
-+"erreur de configuration - élément « %s » inconnu (prévenez "
++"erreur de configuration - élément « %s » inconnu (avertissez "
  "l'administrateur)\n"
  
  #: lib/getdef.c:417
@@ -464,7 +463,7 @@
  
  #.
  #. * The account becomes inactive if the password is expired for more
-@@ -316,101 +368,109 @@
+@@ -316,101 +368,114 @@
  #. * number of inactive days is added. The resulting date is when the
  #. * active will be disabled.
  #.
@@ -517,14 +516,15 @@
  #, c-format
  msgid "%s: can't lock password file\n"
 -msgstr "%s: impossible de vérouiller de fichier de mots de passe\n"
-+msgstr "%s : impossible de verrouiller le fichier des mots de passe\n"
++msgstr ""
++"%s : impossible de verrouiller le fichier des mots de passe /etc/passwd\n"
  
 -#: src/chage.c:544 src/chpasswd.c:162
 +#: src/chage.c:546 src/chpasswd.c:187
  #, c-format
  msgid "%s: can't open password file\n"
 -msgstr "%s: impossible d'ouvrir le fichier de mots de passe\n"
-+msgstr "%s : impossible d'ouvrir le fichier des mots de passe\n"
++msgstr "%s : impossible d'ouvrir le fichier des mots de passe /etc/passwd\n"
  
 -#: src/chage.c:552
 +#: src/chage.c:554
@@ -546,13 +546,13 @@
  msgid "%s: can't open shadow password file"
 -msgstr "%s : impossible d'ouvrir le fichier shadow password"
 +msgstr "%s : impossible d'ouvrir le fichier des mots de passe cachés"
- 
--#: src/chage.c:674
++
 +#: src/chage.c:589
 +#, c-format
 +msgid "%s: failed to drop privileges (%s)\n"
-+msgstr ""
-+
++msgstr "%s: n'a pas pu abandonner les privilèges (%s)\n"
+ 
+-#: src/chage.c:674
 +#: src/chage.c:676
  #, c-format
  msgid "Changing the aging information for %s\n"
@@ -571,14 +571,17 @@
  #, c-format
  msgid "%s: can't update password file\n"
 -msgstr "%s : impossible de mettre à jour le fichier passwd\n"
-+msgstr "%s : impossible de mettre à jour le fichier des mots de passe\n"
++msgstr ""
++"%s : impossible de mettre à jour le fichier des mots de passe /etc/passwd\n"
  
 -#: src/chage.c:737 src/pwunconv.c:168
 +#: src/chage.c:739 src/pwunconv.c:168
  #, c-format
  msgid "%s: can't update shadow password file\n"
 -msgstr "%s : impossible de mettre à jour le fichier shadow password\n"
-+msgstr "%s : impossible de mettre à jour le fichier des mots de passe cachés\n"
++msgstr ""
++"%s : impossible de mettre à jour le fichier des mots de passe cachés /etc/"
++"shadow\n"
  
 -#: src/chage.c:789 src/chage.c:805 src/chfn.c:570 src/chsh.c:382
 +#: src/chage.c:791 src/chage.c:807 src/chfn.c:570 src/chsh.c:382
@@ -593,14 +596,15 @@
  #, c-format
  msgid "%s: can't rewrite shadow password file\n"
 -msgstr "%s : impossible de re-écrire le fichier shadow password\n"
-+msgstr "%s : impossible de réécrire le fichier des mots de passe cachés\n"
++msgstr ""
++"%s : impossible de réécrire le fichier des mots de passe cachés /etc/shadow\n"
  
 -#: src/chage.c:838
 +#: src/chage.c:840
  #, c-format
  msgid "%s: can't rewrite password file\n"
 -msgstr "%s : impossible de re-écrire le fichier password\n"
-+msgstr "%s : impossible de réécrire le fichier des mots de passe\n"
++msgstr "%s : impossible de réécrire le fichier des mots de passe /etc/passwd\n"
  
 -#: src/chage.c:857 src/chpasswd.c:343 src/groupadd.c:590 src/groupdel.c:409
 -#: src/groupmod.c:604 src/newusers.c:628 src/useradd.c:1869 src/userdel.c:849
@@ -616,7 +620,7 @@
  
  #: src/chfn.c:83
  #, c-format
-@@ -418,17 +478,20 @@
+@@ -418,17 +483,20 @@
  "Usage: %s [-f full_name] [-r room_no] [-w work_ph]\n"
  "\t[-h home_ph] [-o other] [user]\n"
  msgstr ""
@@ -640,7 +644,7 @@
  
  #: src/chfn.c:142
  msgid "Full Name"
-@@ -437,7 +500,7 @@
+@@ -437,34 +505,34 @@
  #: src/chfn.c:144
  #, c-format
  msgid "\tFull Name: %s\n"
@@ -649,7 +653,9 @@
  
  #: src/chfn.c:147
  msgid "Room Number"
-@@ -446,25 +509,25 @@
+-msgstr "No de bureau"
++msgstr "N° de bureau"
+ 
  #: src/chfn.c:149
  #, c-format
  msgid "\tRoom Number: %s\n"
@@ -680,12 +686,12 @@
  
  #: src/chfn.c:162
  msgid "Other"
-@@ -474,229 +537,238 @@
+@@ -474,229 +542,246 @@
  #: src/chfn.c:379 src/passwd.c:1115
  #, c-format
  msgid "%s: Permission denied.\n"
 -msgstr "%s: Permission refusée.\n"
-+msgstr "%s : Permission refusée.\n"
++msgstr "%s : permission refusée.\n"
  
  #: src/chfn.c:332 src/chsh.c:190 src/passwd.c:1165
  #, c-format
@@ -757,21 +763,21 @@
 +#, c-format
  msgid "Cannot change ID to root.\n"
 -msgstr "Impossible de changer l'ID en root.\n"
-+msgstr "Impossible de changer l'identifiant root.\n"
++msgstr "Impossible de devenir superutilisateur.\n"
  
  #: src/chfn.c:519 src/chsh.c:331 src/passwd.c:656 src/passwd.c:811
 +#, c-format
  msgid "Cannot lock the password file; try again later.\n"
  msgstr ""
 -"Impossible de vérouiller le fichier de mots de passe; essayez plus tard.\n"
-+"Impossible de verrouiller le fichier des mots de passe ; réessayez plus "
-+"tard.\n"
++"Impossible de verrouiller le fichier des mots de passe /etc/passwd ; "
++"réessayez plus tard.\n"
  
  #: src/chfn.c:525 src/chsh.c:337 src/passwd.c:661 src/passwd.c:816
 +#, c-format
  msgid "Cannot open the password file.\n"
 -msgstr "Impossible d'ouvrir le fichier de mots de passe.\n"
-+msgstr "Impossible d'ouvrir le fichier des mots de passe.\n"
++msgstr "Impossible d'ouvrir le fichier des mots de passe /etc/passwd.\n"
  
 -#: src/chfn.c:542 src/chsh.c:352 src/passwd.c:667 src/usermod.c:1348
 +#: src/chfn.c:542 src/chsh.c:352 src/passwd.c:667 src/usermod.c:1350
@@ -784,35 +790,38 @@
 +#, c-format
  msgid "Error updating the password entry.\n"
 -msgstr "Erreur durant la mise à jour du mot de passe.\n"
-+msgstr "Erreur lors de la mise à jour du mot de passe.\n"
++msgstr "Erreur lors de la mise à jour de l'entrée dans /etc/passwd.\n"
  
  #: src/chfn.c:585 src/chsh.c:397 src/passwd.c:755 src/passwd.c:867
 +#, c-format
  msgid "Cannot commit password file changes.\n"
 -msgstr "Impossible de valider le changement de mot de passe.\n"
-+msgstr "Impossible de valider le changement du mot de passe.\n"
++msgstr ""
++"Impossible de valider le changement du mot de passe dans /etc/passwd.\n"
  
  #: src/chfn.c:592 src/chsh.c:404
 +#, c-format
  msgid "Cannot unlock the password file.\n"
 -msgstr "Impossible de dévérouiller le fichier de mots de passe.\n"
-+msgstr "Impossible de déverrouiller le fichier des mots de passe.\n"
++msgstr ""
++"Impossible de déverrouiller le fichier des mots de passe /etc/passwd.\n"
  
 -#: src/chpasswd.c:66
--#, c-format
++#: src/chpasswd.c:70
+ #, c-format
 -msgid "usage: %s [-e]\n"
 -msgstr "usage: %s [-e]\n"
-+#: src/chpasswd.c:70
-+#, fuzzy, c-format
 +msgid "usage: %s [--encrypted] [--md5]\n"
-+msgstr "Usage : %s [-p] [nom]\n"
++msgstr "Usage : %s [--encrypted] [--md5]\n"
  
 -#: src/chpasswd.c:171 src/pwconv.c:94
 +#: src/chpasswd.c:196 src/pwconv.c:94
  #, c-format
  msgid "%s: can't lock shadow file\n"
 -msgstr "%s: impossible de vérouiller le fichier shadow\n"
-+msgstr "%s : impossible de verrouiller le fichier des mots de passe cachés\n"
++msgstr ""
++"%s : impossible de verrouiller le fichier des mots de passe cachés /etc/"
++"shadow\n"
  
 -#: src/chpasswd.c:177 src/gpasswd.c:596 src/pwconv.c:99 src/pwunconv.c:103
 +#: src/chpasswd.c:202 src/gpasswd.c:596 src/pwconv.c:99 src/pwunconv.c:103
@@ -820,42 +829,44 @@
  #, c-format
  msgid "%s: can't open shadow file\n"
 -msgstr "%s: impossible d'ouvrir le fichier shadow\n"
-+msgstr "%s : impossible d'ouvrir le fichier des mots de passe cachés\n"
++msgstr ""
++"%s : impossible d'ouvrir le fichier des mots de passe cachés /etc/shadow\n"
  
 -#: src/chpasswd.c:200 src/newusers.c:460
 +#: src/chpasswd.c:225 src/newusers.c:462
  #, c-format
  msgid "%s: line %d: line too long\n"
 -msgstr "%s: ligne %d: ligne trop longue\n"
-+msgstr "%s : ligne %d: ligne trop longue\n"
++msgstr "%s : ligne %d : ligne trop longue\n"
  
 -#: src/chpasswd.c:220
 +#: src/chpasswd.c:245
  #, c-format
  msgid "%s: line %d: missing new password\n"
 -msgstr "%s: ligne %d: nouveau mot de passe manquant\n"
-+msgstr "%s : ligne %d: nouveau mot de passe manquant\n"
++msgstr "%s : ligne %d : nouveau mot de passe manquant\n"
  
 -#: src/chpasswd.c:237
 +#: src/chpasswd.c:268
  #, c-format
  msgid "%s: line %d: unknown user %s\n"
 -msgstr "%s: ligne %d: utilisateur %s inconnu\n"
-+msgstr "%s : ligne %d: utilisateur %s inconnu\n"
++msgstr "%s : ligne %d : utilisateur %s inconnu\n"
  
 -#: src/chpasswd.c:290
 +#: src/chpasswd.c:321
  #, c-format
  msgid "%s: line %d: cannot update password entry\n"
 -msgstr "%s: ligne %d: impossible de mettre le mot de passe à jour\n"
-+msgstr "%s : ligne %d: impossible de mettre le mot de passe à jour\n"
++msgstr ""
++"%s : ligne %d : impossible de mettre à jour l'entrée dans /etc/passwd\n"
  
 -#: src/chpasswd.c:307 src/newusers.c:588
 +#: src/chpasswd.c:338 src/newusers.c:590
  #, c-format
  msgid "%s: error detected, changes ignored\n"
 -msgstr "%s: erreur détectée; changements ignorés\n"
-+msgstr "%s : erreur détectée ; changements ignorés\n"
++msgstr "%s : erreur détectée ; modifications ignorées\n"
  
 -#: src/chpasswd.c:319
 +#: src/chpasswd.c:350
@@ -863,14 +874,16 @@
  msgid "%s: error updating shadow file\n"
 -msgstr "%s: erreur lors de la mise à jour du fichier shadow\n"
 +msgstr ""
-+"%s : erreur lors de la mise à jour du fichier des mots de passe cachés\n"
++"%s : erreur lors de la mise à jour du fichier des mots de passe cachés /etc/"
++"shadow\n"
  
 -#: src/chpasswd.c:328
 +#: src/chpasswd.c:359
  #, c-format
  msgid "%s: error updating password file\n"
 -msgstr "%s: erreur lors de la mise à jour du fichier de mots de passe\n"
-+msgstr "%s : erreur lors de la mise à jour du fichier des mots de passe\n"
++msgstr ""
++"%s : erreur lors de la mise à jour du fichier des mots de passe /etc/passwd\n"
  
  #: src/chsh.c:75
  #, c-format
@@ -888,7 +901,7 @@
  #: src/chsh.c:90
  msgid "Login Shell"
 -msgstr "Shell de login"
-+msgstr "Interpréteur interactif"
++msgstr "Interpréteur de commandes initial"
  
  #: src/chsh.c:239 src/chsh.c:253
  #, c-format
@@ -906,7 +919,7 @@
  #, c-format
  msgid "%s: Invalid entry: %s\n"
 -msgstr "%s: Entrée non valide : %s\n"
-+msgstr "%s : Entrée non valable : %s\n"
++msgstr "%s : entrée non valable : %s\n"
  
  #: src/chsh.c:301
  #, c-format
@@ -980,7 +993,7 @@
  
  #: src/faillog.c:131 src/lastlog.c:96
  #, c-format
-@@ -704,8 +776,9 @@
+@@ -704,8 +789,9 @@
  msgstr "Utilisateur %s inconnu\n"
  
  #: src/faillog.c:212
@@ -991,7 +1004,7 @@
  
  #: src/faillog.c:229
  #, c-format
-@@ -715,7 +788,7 @@
+@@ -715,7 +801,7 @@
  #: src/faillog.c:233
  #, c-format
  msgid " [%lds left]"
@@ -1000,7 +1013,7 @@
  
  #: src/faillog.c:237
  #, c-format
-@@ -725,7 +798,7 @@
+@@ -725,7 +811,7 @@
  #: src/gpasswd.c:78
  #, c-format
  msgid "usage: %s [-r|-R] group\n"
@@ -1009,7 +1022,7 @@
  
  #: src/gpasswd.c:79
  #, c-format
-@@ -750,25 +823,27 @@
+@@ -750,25 +836,28 @@
  #: src/gpasswd.c:146 src/gpasswd.c:230
  #, c-format
  msgid "%s: unknown user %s\n"
@@ -1025,7 +1038,8 @@
  #, c-format
  msgid "%s: shadow group passwords required for -A\n"
 -msgstr "%s : mots de passe shadow nécessaires pour -A\n"
-+msgstr "%s : mots de passe de groupe cachés nécessaires pour -A\n"
++msgstr ""
++"%s : mots de passe cachés dans /etc/gshadow nécessaires avec l'option -A\n"
  
  #: src/gpasswd.c:294
 +#, c-format
@@ -1041,7 +1055,7 @@
  
  #: src/gpasswd.c:422
  #, c-format
-@@ -783,12 +858,12 @@
+@@ -783,12 +872,12 @@
  #: src/gpasswd.c:454
  #, c-format
  msgid "%s: unknown member %s\n"
@@ -1056,7 +1070,7 @@
  
  #.
  #. * A new password is to be entered and it must be encrypted, etc.
-@@ -799,267 +874,234 @@
+@@ -799,267 +888,244 @@
  #: src/gpasswd.c:522
  #, c-format
  msgid "Changing the password for group %s\n"
@@ -1094,7 +1108,9 @@
  #, c-format
  msgid "%s: can't get shadow lock\n"
 -msgstr "%s : impossible d'obtenir le verrou sur shadow\n"
-+msgstr "%s : impossible d'obtenir le verrou sur les mots de passe cachés\n"
++msgstr ""
++"%s : impossible d'obtenir le verrou sur le fichier des mots de passe cachés /"
++"etc/shadow\n"
  
  #: src/gpasswd.c:590
  #, c-format
@@ -1112,7 +1128,8 @@
  #, c-format
  msgid "%s: can't update shadow entry\n"
 -msgstr "%s : impossible de mettre à jour l'entrée shadow\n"
-+msgstr "%s : impossible de mettre à jour l'entrée du mot de passe caché\n"
++msgstr ""
++"%s : impossible de mettre à jour l'entrée dans le fichier /etc/shadow\n"
  
  #: src/gpasswd.c:615
  #, c-format
@@ -1124,7 +1141,8 @@
  #, c-format
  msgid "%s: can't re-write shadow file\n"
 -msgstr "%s : impossible de re-écrire le fichier shadow\n"
-+msgstr "%s : impossible de réécrire le fichier des mots de passe cachés\n"
++msgstr ""
++"%s : impossible de réécrire le fichier des mots de passe cachés /etc/shadow\n"
  
  #: src/gpasswd.c:630
  #, c-format
@@ -1221,7 +1239,7 @@
  #, c-format
  msgid "%s: cannot rewrite group file\n"
 -msgstr "%s : impossible de re-écrire le fichier group\n"
-+msgstr "%s : impossible de réécrire le fichier group\n"
++msgstr "%s : impossible de réécrire le fichier des mots de passe /etc/group\n"
  
 -#: src/groupadd.c:415 src/groupdel.c:179 src/groupmod.c:409 src/useradd.c:1437
 -#: src/userdel.c:319 src/usermod.c:722
@@ -1230,35 +1248,41 @@
  #, c-format
  msgid "%s: cannot rewrite shadow group file\n"
 -msgstr "%s : impossible de re-écrire le fichier shadow group\n"
-+msgstr "%s : impossible de réécrire le fichier des groupes cachés\n"
++msgstr ""
++"%s : impossible de réécrire le fichier des mots de passe cachés /etc/"
++"gshadow\n"
  
 -#: src/groupadd.c:433 src/groupdel.c:198 src/groupmod.c:427 src/userdel.c:403
 +#: src/groupadd.c:435 src/groupdel.c:200 src/groupmod.c:429 src/userdel.c:414
  #, c-format
  msgid "%s: unable to lock group file\n"
 -msgstr "%s : impossible de vérouiller le fichier group\n"
-+msgstr "%s : impossible de verrouiller le fichier des groupes\n"
++msgstr ""
++"%s : impossible de verrouiller le fichier des mots de passe /etc/group\n"
  
 -#: src/groupadd.c:438 src/groupdel.c:202 src/groupmod.c:432
 +#: src/groupadd.c:440 src/groupdel.c:204 src/groupmod.c:434
  #, c-format
  msgid "%s: unable to open group file\n"
 -msgstr "%s : impossible d'ouvrir le fichier group\n"
-+msgstr "%s : impossible d'ouvrir le fichier des groupes\n"
++msgstr "%s : impossible d'ouvrir le fichier des mots de passe /etc/group\n"
  
 -#: src/groupadd.c:445 src/groupdel.c:207 src/groupmod.c:439 src/userdel.c:414
 +#: src/groupadd.c:447 src/groupdel.c:209 src/groupmod.c:441 src/userdel.c:425
  #, c-format
  msgid "%s: unable to lock shadow group file\n"
 -msgstr "%s : impossible de vérouiller le fichier group\n"
-+msgstr "%s : impossible de verrouiller le fichier des groupes\n"
++msgstr ""
++"%s : impossible de verrouiller le fichier des mots de passe cachés /etc/"
++"gshadow\n"
  
 -#: src/groupadd.c:451 src/groupdel.c:212 src/groupmod.c:445
 +#: src/groupadd.c:453 src/groupdel.c:214 src/groupmod.c:447
  #, c-format
  msgid "%s: unable to open shadow group file\n"
 -msgstr "%s : impossible d'ouvrir le fichier shadow group\n"
-+msgstr "%s : impossible d'ouvrir le fichier des groupes cachés\n"
++msgstr ""
++"%s : impossible d'ouvrir le fichier des mots de passe cachés /etc/gshadow\n"
  
 -#: src/groupadd.c:562
 +#: src/groupadd.c:564
@@ -1279,7 +1303,7 @@
  #, c-format
  msgid "%s: error removing group entry\n"
 -msgstr "%s : erreur lors de retrait de l'entrée du groupe\n"
-+msgstr "%s : erreur lors de la suppression de l'entrée du groupe\n"
++msgstr "%s : erreur lors de la suppression de l'entrée dans /etc/group\n"
  
 -#: src/groupdel.c:122 src/groupmod.c:204
 +#: src/groupdel.c:124 src/groupmod.c:206
@@ -1293,7 +1317,7 @@
  #, c-format
  msgid "%s: error removing shadow group entry\n"
 -msgstr "%s : erreur lors du retrait de l'entrée shadow du groupe\n"
-+msgstr "%s : erreur lors de la suppression de l'entrée cachée du groupe\n"
++msgstr "%s : erreur lors de la suppression de l'entrée dans /etc/gshadow\n"
  
 -#: src/groupdel.c:150 src/groupmod.c:254
 +#: src/groupdel.c:152 src/groupmod.c:256
@@ -1339,7 +1363,8 @@
 -#: src/groupmems.c:125
 -msgid "Member to remove could not be found\n"
 -msgstr ""
--
++msgstr "%s : %s est le maître NIS\n"
+ 
 -#: src/groupmems.c:158
 -msgid "usage: groupmems -a username | -d username | -D | -l [-g groupname]\n"
 -msgstr ""
@@ -1359,8 +1384,7 @@
 -#: src/groupmems.c:215
 -msgid "Unable to lock group file\n"
 -msgstr "Impossible de vérouiller le fichier group\n"
-+msgstr "%s : %s est le maître NIS\n"
- 
+-
 -#: src/groupmems.c:220
 -msgid "Unable to open group file\n"
 -msgstr "Impossible d'ouvrir le fichier group\n"
@@ -1406,7 +1430,7 @@
  
  #: src/groups.c:59
  #, c-format
-@@ -1069,188 +1111,192 @@
+@@ -1069,188 +1135,204 @@
  #: src/grpck.c:87
  #, c-format
  msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
@@ -1454,7 +1478,7 @@
 +#, c-format
  msgid "invalid group file entry\n"
 -msgstr "entrée dans le fichier group non valide\n"
-+msgstr "entrée non valable dans le fichier de groupe\n"
++msgstr "entrée non valable dans le fichier /etc/group\n"
  
 -#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
 -#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
@@ -1505,7 +1529,8 @@
 +#, c-format
  msgid "invalid shadow group file entry\n"
 -msgstr "entrée non valide dans le fichier shadow group\n"
-+msgstr "entrée non valable dans le fichier des groupes cachés\n"
++msgstr ""
++"entrée non valable dans le fichier des mots de passe cachés /etc/gshadow\n"
  
  #.
  #. * Tell the user this entry is a duplicate of
@@ -1515,20 +1540,22 @@
 +#: src/grpck.c:528
  msgid "duplicate shadow group entry\n"
 -msgstr "entrée dupliquée dans le fichier shadow group\n"
-+msgstr "entrée dupliquée dans le fichier des groupes cachés\n"
++msgstr ""
++"entrée dupliquée dans le fichier des mots de passe cachés /etc/gshadow\n"
  
 -#: src/grpck.c:537
 +#: src/grpck.c:545
  msgid "no matching group file entry\n"
 -msgstr "aucune entrée dans le fichier group correspondante\n"
-+msgstr "aucune entrée correspondante dans le fichier des groupes\n"
++msgstr ""
++"aucune entrée correspondante dans le fichier des mots de passe /etc/group\n"
  
 -#: src/grpck.c:558
 +#: src/grpck.c:566
  #, c-format
  msgid "shadow group %s: no administrative user %s\n"
 -msgstr "groupe shadow %s : aucun administrateur %s\n"
-+msgstr "groupe caché %s : aucun administrateur %s\n"
++msgstr "%s dans /etc/gshadow : aucun administrateur %s\n"
  
 -#: src/grpck.c:560
 +#: src/grpck.c:568
@@ -1542,7 +1569,7 @@
  #, c-format
  msgid "shadow group %s: no user %s\n"
 -msgstr "groupe shadow %s : aucun utilisateur %s\n"
-+msgstr "groupe caché %s : aucun utilisateur %s\n"
++msgstr "%s dans /etc/gshadow : aucun utilisateur %s\n"
  
 -#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
 +#: src/grpck.c:624 src/grpck.c:630 src/pwck.c:577 src/pwck.c:585
@@ -1575,56 +1602,58 @@
  #: src/grpconv.c:60 src/grpunconv.c:56
  #, c-format
  msgid "%s: can't lock group file\n"
--msgstr ""
-+msgstr "%s : impossible de verrouiller le fichier de groupe\n"
+ msgstr ""
++"%s : impossible de verrouiller le fichier des mots de passe /etc/group\n"
  
  #: src/grpconv.c:65 src/grpunconv.c:61
  #, c-format
  msgid "%s: can't open group file\n"
 -msgstr ""
-+msgstr "%s : impossible d'ouvrir le fichier de groupe\n"
++msgstr "%s : impossible d'ouvrir le fichier des mots de passe /etc/group\n"
  
  #: src/grpconv.c:70 src/grpunconv.c:66
  #, c-format
  msgid "%s: can't lock shadow group file\n"
--msgstr ""
-+msgstr "%s : impossible de verrouiller le fichier caché de groupe\n"
+ msgstr ""
++"%s : impossible de verrouiller le fichier des mots de passe cachés /etc/"
++"gshadow\n"
  
  #: src/grpconv.c:76 src/grpunconv.c:72
  #, c-format
  msgid "%s: can't open shadow group file\n"
--msgstr ""
-+msgstr "%s : impossible d'ouvrir le fichier caché de groupe\n"
+ msgstr ""
++"%s : impossible d'ouvrir le fichier des mots de passe cachés /etc/gshadow\n"
  
  #: src/grpconv.c:94
  #, c-format
  msgid "%s: can't remove shadow group %s\n"
 -msgstr ""
-+msgstr "%s : impossible de supprimer le groupe caché %s\n"
++msgstr "%s : impossible de supprimer %s dans /etc/gshadow\n"
  
  #: src/grpconv.c:138 src/pwconv.c:153
  #, c-format
  msgid "%s: can't update shadow entry for %s\n"
 -msgstr ""
-+msgstr "%s : impossible de mettre à jour l'entrée cachée pour %s\n"
++msgstr "%s : impossible de mettre à jour l'entrée %s dans /etc/shadow\n"
  
  #: src/grpconv.c:148 src/grpunconv.c:91
  #, c-format
  msgid "%s: can't update entry for group %s\n"
 -msgstr ""
-+msgstr "%s : impossible de mettre à jour l'entrée pour le groupe %s\n"
++msgstr "%s : impossible de mettre à jour l'entrée %s dans /etc/group\n"
  
  #: src/grpconv.c:155 src/grpunconv.c:99
  #, c-format
  msgid "%s: can't update shadow group file\n"
--msgstr ""
-+msgstr "%s : impossible de mettre à jour le fichier caché de groupe\n"
+ msgstr ""
++"%s : impossible de mettre à jour le fichier des mots de passe cachés /etc/"
++"gshadow\n"
  
  #: src/grpconv.c:160 src/grpunconv.c:105
  #, c-format
  msgid "%s: can't update group file\n"
--msgstr ""
-+msgstr "%s : impossible de mettre à jour le fichier de groupe\n"
+ msgstr ""
++"%s : impossible de mettre à jour le fichier des mots de passe /etc/group\n"
  
  #: src/grpconv.c:175 src/grpunconv.c:127
  #, c-format
@@ -1635,8 +1664,9 @@
  #: src/grpunconv.c:110
  #, c-format
  msgid "%s: can't delete shadow group file\n"
--msgstr ""
-+msgstr "%s : impossible de supprimer le fichier caché de groupe\n"
+ msgstr ""
++"%s : impossible de supprimer le fichier des mots de passe cachés /etc/"
++"gshadow\n"
  
  #: src/id.c:53
 +#, c-format
@@ -1652,7 +1682,7 @@
  
  #.
  #. * Start off the group message. It will be of the format
-@@ -1261,46 +1307,52 @@
+@@ -1261,46 +1343,52 @@
  #. * corresponding name for each respective numerical value.
  #.
  #: src/id.c:169
@@ -1714,7 +1744,7 @@
  msgid ""
  "\n"
  "System closed for routine maintenance\n"
-@@ -1308,115 +1360,167 @@
+@@ -1308,115 +1396,171 @@
  "\n"
  "Système fermé pour maintenance\n"
  
@@ -1757,7 +1787,7 @@
 +#: src/login.c:722
 +#, c-format
 +msgid "login: PAM Failure, aborting: %s\n"
-+msgstr ""
++msgstr "login : échec de PAM. Abandon : %s\n"
 +
 +#: src/login.c:810
 +#, c-format
@@ -1786,11 +1816,13 @@
  
 -#: src/login.c:852
 +#: src/login.c:844
-+#, fuzzy, c-format
++#, c-format
 +msgid ""
 +"Login incorrect\n"
 +"\n"
-+msgstr "Identifiant incorrect"
++msgstr ""
++"Identifiant incorrect\n"
++"\n"
 +
 +#: src/login.c:929
  #, c-format
@@ -1812,18 +1844,20 @@
 +#: src/login.c:1159 src/sulogin.c:233
  msgid "Login incorrect"
 -msgstr "Login incorrect"
-+msgstr "Identifiant incorrect"
++msgstr "Identifiant de connexion incorrect"
 +
 +#: src/login.c:1317
 +#, c-format
 +msgid "login: failure forking: %s"
-+msgstr ""
++msgstr "login : échec du « fork » : %s"
  
 -#: src/login.c:1265
 +#: src/login.c:1387
  msgid "Warning: login re-enabled after temporary lockout.\n"
 -msgstr "Avertissement: login réactivé après une désactivation temporaire.\n"
-+msgstr "Attention : identifiant réactivé après une désactivation temporaire.\n"
++msgstr ""
++"Attention : identifiant de connexion réactivé après une désactivation "
++"temporaire.\n"
  
 -#: src/login.c:1278
 +#: src/login.c:1401
@@ -1853,7 +1887,7 @@
  
 +#: src/logoutd.c:51
 +msgid "login time exceeded\r\n"
-+msgstr ""
++msgstr "Délai de connexion dépassé\r\n"
 +
  #: src/mkpasswd.c:47
  #, c-format
@@ -1913,7 +1947,7 @@
  
  #: src/mkpasswd.c:378
  #, c-format
-@@ -1426,113 +1530,122 @@
+@@ -1426,113 +1570,123 @@
  #: src/mkpasswd.c:392
  #, c-format
  msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
@@ -1960,14 +1994,14 @@
  msgid "Sorry.\n"
 -msgstr "Désolé ;-)\n"
 +msgstr " \n"
-+
+ 
+-#: src/newgrp.c:472
 +#. error in fork()
 +#: src/newgrp.c:434
 +#, c-format
 +msgid "%s: failure forking: %s"
-+msgstr ""
- 
--#: src/newgrp.c:472
++msgstr "%s : échec du « fork » : %s"
++
 +#: src/newgrp.c:477
 +#, c-format
  msgid "too many groups\n"
@@ -2013,14 +2047,15 @@
  #, c-format
  msgid "%s: line %d: can't create GID\n"
 -msgstr "%s : ligne %d : impossible de créer le GID\n"
-+msgstr "%s : ligne %d : impossible de créer le GID\n"
++msgstr "%s : ligne %d : impossible de créer l'identifiant de groupe (GID)\n"
  
 -#: src/newusers.c:515
 +#: src/newusers.c:517
  #, c-format
  msgid "%s: line %d: can't create UID\n"
 -msgstr "%s : ligne %d : impossible de créer le GID\n"
-+msgstr "%s : ligne %d : impossible de créer l'UID\n"
++msgstr ""
++"%s : ligne %d : impossible de créer l'identifiant d'utilisateur (UID)\n"
  
 -#: src/newusers.c:528
 +#: src/newusers.c:530
@@ -2072,7 +2107,7 @@
  
  #: src/passwd.c:178
  #, c-format
-@@ -1551,22 +1664,23 @@
+@@ -1551,22 +1705,23 @@
  "L'utilisateur %s a une clé TCFS, son ancien mot de passe est nécessaire.\n"
  
  #: src/passwd.c:286
@@ -2099,7 +2134,7 @@
  
  #: src/passwd.c:333
  #, c-format
-@@ -1575,29 +1689,32 @@
+@@ -1575,29 +1730,32 @@
  "Please use a combination of upper and lower case letters and numbers.\n"
  msgstr ""
  "Entrez le nouveau mot de passe (minimum de %d, maximum de %d\n"
@@ -2138,7 +2173,7 @@
  
  #: src/passwd.c:451 src/passwd.c:469
  #, c-format
-@@ -1607,50 +1724,54 @@
+@@ -1607,50 +1765,56 @@
  #: src/passwd.c:494
  #, c-format
  msgid "Sorry, the password for %s cannot be changed yet.\n"
@@ -2178,7 +2213,7 @@
  #, c-format
  msgid "%s: Cannot execute %s"
 -msgstr "%s : Impossible d'exécuter %s"
-+msgstr "%s : Impossible d'exécuter %s"
++msgstr "%s : impossible d'exécuter %s"
  
  #: src/passwd.c:1077
  #, c-format
@@ -2197,11 +2232,13 @@
 -msgid "You may not change the password for %s.\n"
 -msgstr "Vous ne pouvez pas changer le mot de passe de %s.\n"
 +msgid "%s: You may not view or modify password information for %s.\n"
-+msgstr "%s : vous ne pouvez pas changer le mot de passe de %s.\n"
++msgstr ""
++"%s : Vous ne pouvez pas afficher ou modifier les informations de mot de "
++"passe de %s.\n"
  
  #: src/passwd.c:1242
  #, c-format
-@@ -1663,26 +1784,28 @@
+@@ -1663,26 +1827,28 @@
  msgstr "Le mot de passe pour %s est inchangé.\n"
  
  #: src/passwd.c:1297
@@ -2233,7 +2270,7 @@
  
  #.
  #. * Tell the user this entry is a duplicate of
-@@ -1690,12 +1813,12 @@
+@@ -1690,12 +1856,12 @@
  #.
  #: src/pwck.c:357
  msgid "duplicate password entry\n"
@@ -2248,7 +2285,7 @@
  
  #.
  #. * No primary group, just give a warning
-@@ -1703,12 +1826,12 @@
+@@ -1703,12 +1869,12 @@
  #: src/pwck.c:388
  #, c-format
  msgid "user %s: no group %u\n"
@@ -2263,7 +2300,7 @@
  
  #.
  #. * Login shell doesn't exist, give a warning
-@@ -1716,15 +1839,16 @@
+@@ -1716,15 +1882,17 @@
  #: src/pwck.c:420
  #, c-format
  msgid "user %s: program %s does not exist\n"
@@ -2278,68 +2315,75 @@
 +#, c-format
  msgid "invalid shadow password file entry\n"
 -msgstr "entrée shadow password non valide\n"
-+msgstr "entrée de mot de passe caché non valable\n"
++msgstr ""
++"entrée non valable dans le fichier des mots de passe cachés /etc/shadow\n"
  
  #.
  #. * Tell the user this entry is a duplicate of
-@@ -1732,7 +1856,7 @@
+@@ -1732,7 +1900,8 @@
  #.
  #: src/pwck.c:518
  msgid "duplicate shadow password entry\n"
 -msgstr "entrée shadow password dupliquée\n"
-+msgstr "entrée de mot de passe caché dupliquée\n"
++msgstr ""
++"entrée dupliquée dans le fichier des mots de passe cachés /etc/shadow\n"
  
  #.
  #. * Tell the user this entry has no matching
-@@ -1740,124 +1864,163 @@
+@@ -1740,124 +1909,169 @@
  #.
  #: src/pwck.c:542
  msgid "no matching password file entry\n"
 -msgstr "aucune entrée correspondante dans le fichier password\n"
-+msgstr "aucune entrée correspondante dans le fichier des mots de passe\n"
++msgstr ""
++"aucune entrée correspondante dans le fichier des mots de passe /etc/passwd\n"
  
  #: src/pwck.c:560
  #, c-format
  msgid "user %s: last password change in the future\n"
 -msgstr ""
 -"utilisateur %s : date du dernier changement de mot de passe dans le futur\n"
-+msgstr "utilisateur %s : dernier changement du mot de passe dans le futur\n"
++msgstr "utilisateur %s : changement du dernier mot de passe à venir\n"
  
  #: src/pwconv.c:84 src/pwunconv.c:93
  #, c-format
  msgid "%s: can't lock passwd file\n"
 -msgstr "%s : impossible de vérouiller le fichier passwd\n"
-+msgstr "%s : impossible de verrouiller le fichier des mots de passe\n"
++msgstr ""
++"%s : impossible de verrouiller le fichier des mots de passe /etc/passwd\n"
  
  #: src/pwconv.c:89 src/pwunconv.c:98
  #, c-format
  msgid "%s: can't open passwd file\n"
 -msgstr "%s : impossible d'ouvrir le fichier passwd\n"
-+msgstr "%s : impossible d'ouvrir le fichier des mots de passe\n"
++msgstr "%s : impossible d'ouvrir le fichier des mots de passe /etc/passwd\n"
  
  #: src/pwconv.c:117
  #, c-format
  msgid "%s: can't remove shadow entry for %s\n"
 -msgstr "%s : impossible d'enlever l'entrée shadow pour %s\n"
-+msgstr "%s : impossible d'enlever l'entrée cachée pour %s\n"
++msgstr "%s : impossible d'enlever l'entrée %s dans /etc/shadow\n"
  
  #: src/pwconv.c:163
  #, c-format
  msgid "%s: can't update passwd entry for %s\n"
 -msgstr "%s : impossible de mettre à jour le mot de passe de %s\n"
-+msgstr "%s : impossible de mettre à jour le mot de passe de %s\n"
++msgstr "%s : impossible de mettre à jour l'entrée %s dans /etc/shadow\n"
  
  #: src/pwconv.c:170
  #, c-format
  msgid "%s: can't update shadow file\n"
 -msgstr "%s : impossible de mettre à jour le fichier shadow\n"
-+msgstr "%s : impossible de mettre à jour le fichier des mots de passe cachés\n"
++msgstr ""
++"%s : impossible de mettre à jour le fichier des mots de passe cachés /etc/"
++"shadow\n"
  
  #: src/pwconv.c:175
  #, c-format
  msgid "%s: can't update passwd file\n"
 -msgstr "%s : impossible de mettre à jour le fichier passwd\n"
-+msgstr "%s : impossible de mettre à jour le fichier des mots de passe\n"
++msgstr ""
++"%s : impossible de mettre à jour le fichier des mots de passe /etc/passwd\n"
  
  #: src/pwunconv.c:50
  #, c-format
@@ -2357,8 +2401,10 @@
  #, c-format
  msgid "%s: can't delete shadow password file\n"
 -msgstr "%s : impossible d'effacer le fichier shadow\n"
-+msgstr "%s : impossible d'effacer le fichier des mots de passe cachés\n"
-+
++msgstr ""
++"%s : impossible d'effacer le fichier des mots de passe cachés /etc/shadow\n"
+ 
+-#: src/su.c:133
 +#: src/su.c:217 src/su.c:226
 +#, c-format
 +msgid "Command line args too long\n"
@@ -2368,8 +2414,7 @@
 +#, c-format
 +msgid "No shell\n"
 +msgstr "Pas d'interpréteur de commandes\n"
- 
--#: src/su.c:133
++
 +#: src/su.c:254
  msgid "Sorry."
 -msgstr "Désolé ;-)"
@@ -2381,8 +2426,7 @@
  msgid "%s: must be run from a terminal\n"
 -msgstr "%s : doit être lancé à partir d'un terminal\n"
 +msgstr "%s : doit être lancé à partir d'un terminal\n"
- 
--#: src/su.c:306
++
 +#: src/su.c:366
 +#, c-format
 +msgid ""
@@ -2406,24 +2450,25 @@
 +"\t\tmême·interpréteur\n"
 +"       -s, --shell=<interpréteur>\n"
 +"\t\tutiliser « interpréteur » à la place de celui par défaut de /etc/passwd\n"
-+
+ 
+-#: src/su.c:306
 +#: src/su.c:453
  #, c-format
  msgid "%s: pam_start: error %d\n"
 -msgstr "%s : pam_start : erreur %d\n"
 +msgstr "%s : pam_start : erreur %d\n"
++
++#: src/su.c:465 src/su.c:565 src/su.c:579 src/su.c:719 src/su.c:727
++#, c-format
++msgid "%s: %s\n"
++msgstr "%s : %s\n"
  
 -#: src/su.c:336
-+#: src/su.c:465 src/su.c:565 src/su.c:579 src/su.c:719 src/su.c:727
-+#, fuzzy, c-format
-+msgid "%s: %s\n"
-+msgstr "passwd : %s\n"
-+
 +#: src/su.c:483
  #, c-format
  msgid "Unknown id: %s\n"
 -msgstr "ID inconnue : %s\n"
-+msgstr "ID inconnue : %s\n"
++msgstr "identifiant inconnu : %s\n"
  
 -#: src/su.c:373 src/su.c:390
 -#, fuzzy, c-format
@@ -2437,8 +2482,7 @@
 -#: src/su.c:385
 +#: src/su.c:532
  msgid "(Enter your own password.)"
--msgstr "(Entrez votre propre mot de passe.)"
-+msgstr "(Entrez votre propre mot de passe)."
+ msgstr "(Entrez votre propre mot de passe.)"
  
 -#: src/su.c:419
 +#: src/su.c:574
@@ -2458,7 +2502,8 @@
  #: src/suauth.c:100
 +#, c-format
  msgid "Access to su to that account DENIED.\n"
- msgstr "Accès à su à partir de ce compte REFUSÉ.\n"
+-msgstr "Accès à su à partir de ce compte REFUSÉ.\n"
++msgstr "Accès à « su » à partir de ce compte REFUSÉ.\n"
  
  #: src/suauth.c:107
 +#, c-format
@@ -2489,7 +2534,7 @@
  
  #: src/sulogin.c:190
  msgid ""
-@@ -1866,520 +2029,542 @@
+@@ -1866,520 +2080,551 @@
  "(or give root password for system maintenance):"
  msgstr ""
  "\n"
@@ -2497,7 +2542,7 @@
 -"(ou donnez le mot de passe de root pour la maintenance) : "
 +"Tapez Ctrl+D pour démarrer normalement\n"
 +"(ou donnez le mot de passe du superutilisateur pour la maintenance du "
-+"système) : "
++"système) :"
  
  #. make new environment active
  #: src/sulogin.c:243
@@ -2684,28 +2729,32 @@
  #, c-format
  msgid "%s: error locking group file\n"
 -msgstr "%s : erreur lors du vérouillage du fichier de groupe\n"
-+msgstr "%s : erreur lors du verrouillage du fichier de groupe\n"
++msgstr "%s : erreur lors du verrouillage du fichier /etc/group\n"
  
 -#: src/useradd.c:855 src/usermod.c:486
 +#: src/useradd.c:857 src/usermod.c:488
  #, c-format
  msgid "%s: error opening group file\n"
 -msgstr "%s : erreur lors d'ouverture du fichier de groupe\n"
-+msgstr "%s : erreur lors d'ouverture du fichier de groupe\n"
++msgstr "%s : erreur lors d'ouverture du fichier /etc/group\n"
  
 -#: src/useradd.c:862 src/usermod.c:597
 +#: src/useradd.c:864 src/usermod.c:599
  #, c-format
  msgid "%s: error locking shadow group file\n"
 -msgstr "%s : erreur lors du vérouillage du fichier shadow group\n"
-+msgstr "%s : erreur lors du verrouillage du fichier des groupes cachés\n"
++msgstr ""
++"%s : erreur lors du verrouillage du fichier des mots de passe cachés /etc/"
++"gshadow\n"
  
 -#: src/useradd.c:867 src/usermod.c:603
 +#: src/useradd.c:869 src/usermod.c:605
  #, c-format
  msgid "%s: error opening shadow group file\n"
 -msgstr "%s : erreur lors de l'ouverture du fichier shadow group\n"
-+msgstr "%s : erreur lors de l'ouverture du fichier des groupes cachés\n"
++msgstr ""
++"%s : erreur lors de l'ouverture du fichier des mots de passe cachés /etc/"
++"gshadow\n"
  
 -#: src/useradd.c:1039
 +#: src/useradd.c:1041
@@ -2763,14 +2812,14 @@
  #, c-format
  msgid "%s: shadow passwords required for -e\n"
 -msgstr "%s : mots de passe shadow nécessaires pour -e\n"
-+msgstr "%s : mots de passe cachés nécessaires pour -e\n"
++msgstr "%s : mots de passe cachés nécessaires avec -e\n"
  
 -#: src/useradd.c:1258
 +#: src/useradd.c:1260
  #, c-format
  msgid "%s: shadow passwords required for -f\n"
 -msgstr "%s : mots de passe shadow nécessaires pour -f\n"
-+msgstr "%s : mots de passe cachés nécessaires pour -f\n"
++msgstr "%s : mots de passe cachés nécessaires avec -f\n"
  
 -#: src/useradd.c:1336
 +#: src/useradd.c:1338
@@ -2791,42 +2840,47 @@
  #, c-format
  msgid "%s: cannot rewrite password file\n"
 -msgstr "%s : impossible de reécrire le fichier de mots de passe\n"
-+msgstr "%s : impossible de réécrire le fichier des mots de passe\n"
++msgstr "%s : impossible de réécrire le fichier des mots de passe /etc/passwd\n"
  
 -#: src/useradd.c:1420 src/userdel.c:303 src/usermod.c:1262
 +#: src/useradd.c:1422 src/userdel.c:314 src/usermod.c:1264
  #, c-format
  msgid "%s: cannot rewrite shadow password file\n"
 -msgstr "%s : impossible de reécrire le fichier shadow\n"
-+msgstr "%s : impossible de réécrire le fichier des mots de passe cachés\n"
++msgstr ""
++"%s : impossible de réécrire le fichier des mots de passe cachés /etc/shadow\n"
  
 -#: src/useradd.c:1461 src/userdel.c:367 src/usermod.c:1296
 +#: src/useradd.c:1463 src/userdel.c:378 src/usermod.c:1298
  #, c-format
  msgid "%s: unable to lock password file\n"
 -msgstr "%s : impossible de vérouiller le fichier de mots de passe\n"
-+msgstr "%s : impossible de verrouiller le fichier des mots de passe\n"
++msgstr ""
++"%s : impossible de verrouiller le fichier des mots de passe /etc/passwd\n"
  
 -#: src/useradd.c:1466 src/userdel.c:372 src/usermod.c:1301
 +#: src/useradd.c:1468 src/userdel.c:383 src/usermod.c:1303
  #, c-format
  msgid "%s: unable to open password file\n"
 -msgstr "%s : impossible d'ouvrir le fichier de mots de passe\n"
-+msgstr "%s : impossible d'ouvrir le fichier des mots de passe\n"
++msgstr "%s : impossible d'ouvrir le fichier des mots de passe /etc/passwd\n"
  
 -#: src/useradd.c:1474 src/userdel.c:379 src/usermod.c:1308
 +#: src/useradd.c:1476 src/userdel.c:390 src/usermod.c:1310
  #, c-format
  msgid "%s: cannot lock shadow password file\n"
 -msgstr "%s : impossible de vérouiller le fichier de mots de passe\n"
-+msgstr "%s : impossible de verrouiller le fichier des mots de passe cachés\n"
++msgstr ""
++"%s : impossible de verrouiller le fichier des mots de passe cachés /etc/"
++"shadow\n"
  
 -#: src/useradd.c:1481 src/userdel.c:385 src/usermod.c:1314
 +#: src/useradd.c:1483 src/userdel.c:396 src/usermod.c:1316
  #, c-format
  msgid "%s: cannot open shadow password file\n"
 -msgstr "%s : impossible d'ouvrir le fichier shadow\n"
-+msgstr "%s : impossible d'ouvrir le fichier des mots de passe cachés\n"
++msgstr ""
++"%s : impossible d'ouvrir le fichier des mots de passe cachés /etc/shadow\n"
  
 -#: src/useradd.c:1580 src/usermod.c:1405
 +#: src/useradd.c:1582 src/usermod.c:1407
@@ -2840,7 +2894,7 @@
  #, c-format
  msgid "%s: error adding new password entry\n"
 -msgstr "%s : erreur lors de l'ajout de la nouvelle entrée\n"
-+msgstr "%s : erreur lors de l'ajout de la nouvelle entrée\n"
++msgstr "%s : erreur lors de l'ajout de la nouvelle entrée dans /etc/passwd\n"
  
 -#: src/useradd.c:1618
 +#: src/useradd.c:1620
@@ -2854,8 +2908,7 @@
  #, c-format
  msgid "%s: error adding new shadow password entry\n"
 -msgstr "%s : erreur lors de l'ajout de la nouvelle entrée shadow\n"
-+msgstr ""
-+"%s : erreur lors de l'ajout de la nouvelle entrée du mot de passe caché\n"
++msgstr "%s : erreur lors de l'ajout de la nouvelle entrée dans /etc/shadow\n"
  
 -#: src/useradd.c:1650 src/usermod.c:1488
 +#: src/useradd.c:1652 src/usermod.c:1490
@@ -2894,7 +2947,8 @@
  msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
  msgstr ""
 -"%s : avertissement : CREATE_HOME non supporté, utilisez -m à la place.\n"
-+"%s : attention : CREATE_HOME n'est pas supporté, veuillez utiliser -m.\n"
++"%s : attention : CREATE_HOME n'est pas pris en charge, veuillez utiliser -"
++"m.\n"
  
 -#: src/userdel.c:129
 +#: src/userdel.c:131
@@ -2908,7 +2962,7 @@
  #, c-format
  msgid "%s: error updating group entry\n"
 -msgstr "%s : erreur lors de la mise à jour de l'entrée group\n"
-+msgstr "%s : erreur lors de la mise à jour de l'entrée de groupe\n"
++msgstr "%s : erreur lors de la mise à jour de l'entrée dans /etc/group\n"
  
 -#: src/userdel.c:191 src/userdel.c:276
 +#: src/userdel.c:194 src/userdel.c:283
@@ -2950,14 +3004,15 @@
  #, c-format
  msgid "%s: cannot open group file\n"
 -msgstr "%s : impossible d'ouvrir le fichier group\n"
-+msgstr "%s : impossible d'ouvrir le fichier group\n"
++msgstr "%s : impossible d'ouvrir le fichier des groupes /etc/group\n"
  
 -#: src/userdel.c:419
 +#: src/userdel.c:430
  #, c-format
  msgid "%s: cannot open shadow group file\n"
 -msgstr "%s : impossible d'ouvrir le fichier shadow group\n"
-+msgstr "%s : impossible d'ouvrir le fichier des groupes cachés\n"
++msgstr ""
++"%s : impossible d'ouvrir le fichier des mots de passe cachés /etc/gshadow\n"
  
 -#: src/userdel.c:451 src/userdel.c:468
 +#: src/userdel.c:462 src/userdel.c:479
@@ -3021,7 +3076,7 @@
  #, c-format
  msgid "%s: warning: can't remove "
 -msgstr "%s : impossible d'enlever "
-+msgstr "%s : attention : suppression impossible "
++msgstr "%s : attention: suppression impossible "
  
 -#: src/userdel.c:758 src/usermod.c:1023
 +#: src/userdel.c:769 src/usermod.c:1025
@@ -3105,14 +3160,14 @@
  #, c-format
  msgid "%s: shadow passwords required for -e and -f\n"
 -msgstr "%s : mots de passe shadow nécessaires pour -e ou -f\n"
-+msgstr "%s : mots de passe shadow nécessaires pour -e ou -f\n"
++msgstr "%s : les mots de passe cachés sont nécessaires pour avec -e ou -f\n"
  
 -#: src/usermod.c:1239
 +#: src/usermod.c:1241
  #, c-format
  msgid "%s: uid %lu is not unique\n"
 -msgstr "%s : l'uid %lu n'est pas unique\n"
-+msgstr "%s : l'uid %lu n'est pas unique\n"
++msgstr "%s : l'identifiant d'utilisateur (UID) %lu n'est pas unique\n"
  
 -#: src/usermod.c:1392
 +#: src/usermod.c:1394
@@ -3160,8 +3215,8 @@
 +#: src/usermod.c:1480
  #, c-format
  msgid "%s: error removing shadow password entry\n"
- msgstr ""
-+"%s : erreur lors de la suppression de l'entrée cachée du mot de passe\n"
+-msgstr ""
++msgstr "%s : erreur lors de la suppression de l'entrée dans /etc/shadow\n"
  
 -#: src/usermod.c:1495
 +#: src/usermod.c:1497
@@ -3190,14 +3245,14 @@
  msgid "%s: can't chown %s\n"
 -msgstr "%s : impossible de changer le propriètaire de %s\n"
 +msgstr "%s : impossible de changer le propriétaire de %s\n"
- 
--#: src/usermod.c:1556
++
 +#: src/usermod.c:1553
 +#, c-format
 +msgid "%s: warning: failed to completely remove old home directory %s"
 +msgstr ""
-+"%s : attention : la suppression complète du répertoire personnel %s a échoué"
-+
++"%s : attention, échec de la suppression totale du répertoire personnel %s"
+ 
+-#: src/usermod.c:1556
 +#: src/usermod.c:1563
  #, c-format
  msgid "%s: cannot rename directory %s to %s\n"
@@ -3226,7 +3281,7 @@
  
  #: src/vipw.c:104
  #, c-format
-@@ -2388,49 +2573,31 @@
+@@ -2388,49 +2633,360 @@
  "%s: %s is unchanged\n"
  msgstr ""
  "\n"
@@ -3247,7 +3302,8 @@
  #, c-format
  msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 -msgstr "%s : impossible de restaurer %s : %s (vos changements sont dans %s)\n"
-+msgstr "%s : impossible de restaurer %s : %s (vos changements sont dans %s)\n"
++msgstr ""
++"%s : impossible de restaurer %s : %s (vos modifications sont dans %s)\n"
  
  #: src/vipw.c:244
 +#, c-format
@@ -3272,15 +3328,341 @@
 -
 -#~ msgid "user %s: bad UID (%d)\n"
 -#~ msgstr "utilisateur %s : mauvais UID (%d)\n"
--
++"Usage :\n"
++"« vipw » éditer /etc/passwd        « vipw -s » éditer /etc/shadow\n"
++"« vigr » éditer /etc/group         « vigr -s » éditer /etc/gshadow\n"
++
++#~ msgid ""
++#~ "%d failure since last login.\n"
++#~ "Last was %s on %s.\n"
++#~ msgid_plural ""
++#~ "%d failures since last login.\n"
++#~ "Last was %s on %s.\n"
++#~ msgstr[0] ""
++#~ "%d échec depuis la dernière connexion.\n"
++#~ "Le dernier échec était le %s sur %s.\n"
++#~ msgstr[1] ""
++#~ "%d échecs depuis la dernière connexion.\n"
++#~ "Le dernier échec était le %s sur %s.\n"
++
++#~ msgid "passwd: password updated successfully\n"
++#~ msgstr "passwd : le mot de passe a été mis à jour avec succès\n"
++
++#~ msgid ""
++#~ "Usage: chage [options] user\n"
++#~ "\n"
++#~ "Options:\n"
++#~ "  -d, --lastday LAST_DAY\tset last password change to LAST_DAY\n"
++#~ "  -E, --expiredate EXPIRE_DATE\tset account expiration date to "
++#~ "EXPIRE_DATE\n"
++#~ "  -h, --help\t\t\tdisplay this help message and exit\n"
++#~ "  -I, --inactive INACTIVE\tset password inactive after expiration\n"
++#~ "\t\t\t\tto INACTIVE\n"
++#~ "  -l, --list\t\t\tshow account aging information\n"
++#~ "  -m, --mindays MIN_DAYS\tset minimum number of days before password\n"
++#~ "\t\t\t\tchange to MIN_DAYS\n"
++#~ "  -M, --maxdays MAX_DAYS\tset maximim number of days before password\n"
++#~ "\t\t\t\tchange to MAX_DAYS\n"
++#~ "  -W, --warndays WARN_DAYS\tset expiration warning days to WARN_DAYS\n"
++#~ msgstr ""
++#~ "Usage : chage [options] utilisateur\n"
++#~ "\n"
++#~ "Options :\n"
++#~ "  -d, --lastday DERNIER_JOUR     fixer la dernière modification du mot "
++#~ "de\n"
++#~ "                                 passe à DERNIER_JOUR\n"
++#~ "  -E, --expiredate DATE_FIN_VALIDITÉ  fixer la date de fin de validité "
++#~ "du\n"
++#~ "                                 compte à DATE_FIN_VALIDITÉ\n"
++#~ "  -h, --help                     afficher ce message d'aide et quitter\n"
++#~ "  -I, --inactive INACTIF         fixer le mot de passe inactif après la "
++#~ "fin\n"
++#~ "                                 de validité à INACTIF\n"
++#~ "  -l, --list                     afficher les informations concernant la\n"
++#~ "                                 validité du compte au cours du temps\n"
++#~ "  -m, --mindays JOURS_MIN        fixer le nombre minimum de jours avant "
++#~ "la\n"
++#~ "                                 modification du mot de passe à "
++#~ "JOURS_MIN\n"
++#~ "  -M, --maxdays JOURS_MAX        fixer le nombre maximum de jours avant "
++#~ "la\n"
++#~ "                                 modification du mot de passe à "
++#~ "JOURS_MAX\n"
++#~ "  -W, --warndays JOURS_AVERTISSEMENT  fixer le nombre de jours "
++#~ "d'avertissement\n"
++#~ "                                 de fin de validité à "
++#~ "JOURS_AVERTISSEMENT\n"
++
++#~ msgid "Last password change\t\t\t\t\t: "
++#~ msgstr "Dernier changement de mot de passe\t\t\t\t\t: "
++
++#~ msgid "never\n"
++#~ msgstr "jamais\n"
++
++#~ msgid "Password expires\t\t\t\t\t: "
++#~ msgstr "Fin de validité du mot de passe\t\t\t\t\t: "
++
++#~ msgid "Password inactive\t\t\t\t\t: "
++#~ msgstr "Mot de passe désactivé\t\t\t\t\t: "
++
++#~ msgid "Account expires\t\t\t\t\t\t: "
++#~ msgstr "Fin de validité du compte\t\t\t\t\t: "
++
++#~ msgid "Minimum number of days between password change\t\t: %ld\n"
++#~ msgstr ""
++#~ "Nombre minimum de jours entre les changements de mot de passe\t\t: %ld\n"
++
++#~ msgid "Maximum number of days between password change\t\t: %ld\n"
++#~ msgstr ""
++#~ "Nombre maximum de jours entre les changements de mot de passe\t\t: %ld\n"
++
++#~ msgid "Number of days of warning before password expires\t: %ld\n"
++#~ msgstr ""
++#~ "Nombre de jours d'avertissement avant la fin de validité du mot de passe"
++#~ "\t: %ld\n"
++
++#~ msgid "%s: can't lock shadow password file\n"
++#~ msgstr ""
++#~ "%s : impossible de verrouiller le fichier des mots de passe cachés /etc/"
++#~ "shadow\n"
++
++#~ msgid "%s: can't open shadow password file\n"
++#~ msgstr ""
++#~ "%s : impossible d'ouvrir le fichier des mots de passe cachés /etc/shadow\n"
++
++#~ msgid ""
++#~ "Usage: chpasswd [options]\n"
++#~ "\n"
++#~ "Options:\n"
++#~ "  -e, --encrypted\tsupplied passwords are encrypted\n"
++#~ "  -h, --help\t\tdisplay this help message and exit\n"
++#~ "  -m, --md5\t\tuse MD5 encryption instead DES when the supplied\n"
++#~ "\t\t\tpasswords are not encrypted\n"
++#~ msgstr ""
++#~ "Usage : chpasswd [options]\n"
++#~ "\n"
++#~ "Options :\n"
++#~ "  -e, --encrypted    les mots de passe fournis sont chiffrés\n"
++#~ "  -h, --help         afficher ce message d'aide et quitter\n"
++#~ "  -m, --md5          utiliser le chiffrage MD5 à la place de DES lorsque "
++#~ "les\n"
++#~ "                     mots de passe fournis ne sont pas chiffrés\n"
++
++#~ msgid ""
++#~ "Usage: faillog [options]\n"
++#~ "\n"
++#~ "Options:\n"
++#~ "  -a, --all\t\t\tdisplay faillog records for all users\n"
++#~ "  -h, --help\t\t\tdisplay this help message and exit\n"
++#~ "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
++#~ "  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
++#~ "  -r, --reset\t\t\treset the counters of login failures\n"
++#~ "  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
++#~ "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure "
++#~ "counters\n"
++#~ "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
++#~ "\t\t\t\tfor user with LOGIN\n"
++#~ msgstr ""
++#~ "Usage : faillog [options]\n"
++#~ "\n"
++#~ "Options :\n"
++#~ "  -a, --all            afficher les enregistrements « faillog » pour "
++#~ "tous\n"
++#~ "                       les utilisateurs\n"
++#~ "  -h, --help           afficher ce message d'aide et quitter\n"
++#~ "  -l, --lock-time SEC  après une connexion refusée, verrouiller le "
++#~ "compte\n"
++#~ "                       pendant SEC secondes\n"
++#~ "  -m, --maximum MAX    positionner les compteurs de connexions refusées "
++#~ "à\n"
++#~ "                       MAX\n"
++#~ "  -r, --reset          remettre à zéro les compteurs de connexions "
++#~ "refusées\n"
++#~ "  -t, --time NB_JOURS  afficher les échecs de connexions datant de moins "
++#~ "de\n"
++#~ "                       NB_JOURS jours\n"
++#~ "  -u, --user LOGIN     afficher l'enregistrement « faillog » ou gérer "
++#~ "les\n"
++#~ "                       compteurs et les limites (si utilisé conjointement "
++#~ "aux\n"
++#~ "                       options -r, -m ou -l) d'échecs uniquement pour\n"
++#~ "                       l'utilisateur dont le compte est LOGIN\n"
++
++#~ msgid "Login       Failures Maximum Latest                   On\n"
++#~ msgstr "Identifiant Échecs   Maximum Dernier                 Sur\n"
++
++#~ msgid "Usage: %s [-r|-R] group\n"
++#~ msgstr "Usage : %s [-r|-R] groupe\n"
++
++#~ msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
++#~ msgstr "Usage : groupadd [-g gid [-o]] [-f] groupe\n"
++
++#~ msgid "%s: GID %u is not unique\n"
++#~ msgstr "%s : l'identifiant de groupe (GID) %u n'est pas unique\n"
++
++#~ msgid "%s: can't get unique GID\n"
++#~ msgstr "%s : impossible d'obtenir un identifiant de groupe (GID) unique\n"
++
++#~ msgid "%s: %s is not a valid group name\n"
++#~ msgstr "%s : %s n'est pas un nom de groupe valable\n"
++
++#~ msgid "%s: -K requires KEY=VALUE\n"
++#~ msgstr "%s : -K exige KEY=VALEUR\n"
++
++#~ msgid "Usage: groupdel group\n"
++#~ msgstr "Usage : groupdel groupe\n"
++
++#~ msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
++#~ msgstr "Usage : groupmod [-g gid [-o]] [-n nom] groupe\n"
++
++#~ msgid "%s: %u is not a unique GID\n"
++#~ msgstr "%s : %u n'est pas un identifiant de groupe (GID) unique\n"
++
++#~ msgid "Usage: id [-a]\n"
++#~ msgstr "Usage : id [-a]\n"
++
++#~ msgid "Usage: id\n"
++#~ msgstr "Usage : id\n"
++
++#~ msgid ""
++#~ "Usage: lastlog [options]\n"
++#~ "\n"
++#~ "Options:\n"
++#~ "  -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
++#~ "  -h, --help\t\tdisplay this help message and exit\n"
++#~ "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
++#~ msgstr ""
++#~ "Usage : lastlog [options]\n"
++#~ "\n"
++#~ "Options :\n"
++#~ "  -u, --user LOGIN    afficher l'enregistrement « lastlog » pour\n"
++#~ "                      l'utilisateur dont le compte est LOGIN\n"
++#~ "  -h, --help          afficher ce message d'aide et quitter\n"
++#~ "  -t, --time NB_JOURS afficher uniquement les enregistrements de\n"
++#~ "                      « lastlog » plus récents que NB_JOURS jours\n"
++
++#~ msgid "Usage: %s [-p] [name]\n"
++#~ msgstr "Usage : %s [-p] [nom]\n"
++
++#~ msgid "Usage: newgrp [-] [group]\n"
++#~ msgstr "Usage : newgrp [-] [groupe]\n"
++
++#~ msgid "Usage: sg group [[-c] command]\n"
++#~ msgstr "Usage : sg groupe [[-c] commande]\n"
++
++#~ msgid "unknown UID: %u\n"
++#~ msgstr "L'identifiant d'utilisateur (UID) %u est inconnu\n"
++
++#~ msgid "unknown GID: %lu\n"
++#~ msgstr "Identifiant de groupe (GID) inconnu : %lu\n"
++
++#~ msgid "Usage: %s [-f|-s] [name]\n"
++#~ msgstr "Usage : %s [-f|-s] [nom]\n"
++
++#~ msgid "%s: unknown GID %s\n"
++#~ msgstr "%s : l'identifiant de groupe (GID) %s est inconnu\n"
++
++#~ msgid ""
++#~ "Usage: useradd [options] LOGIN\n"
++#~ "\n"
++#~ "Options:\n"
++#~ "  -b, --base-dir BASE_DIR\tbase directory for the the new user account\n"
++#~ "\t\t\t\thome directory\n"
++#~ "  -c, --comment COMMENT\t\tset the GECOS field for the new user account\n"
++#~ "  -d, --home-dir HOME_DIR\thome directory for the new user account\n"
++#~ "  -D, --defaults\t\tprint or save modified default useradd\n"
++#~ "\t\t\t\tconfiguration\n"
++#~ "  -e, --expiredate EXPIRE_DATE\tset account expiration date to "
++#~ "EXPIRE_DATE\n"
++#~ "  -f, --inactive INACTIVE\tset password inactive after expiration\n"
++#~ "\t\t\t\tto INACTIVE\n"
++#~ "  -g, --gid GROUP\t\tforce use GROUP for the new user account\n"
++#~ "  -G, --groups GROUPS\t\tlist of supplementary groups for the new\n"
++#~ "\t\t\t\tuser account\n"
++#~ "  -h, --help\t\t\tdisplay this help message and exit\n"
++#~ "  -k, --skel SKEL_DIR \t\tspecify an alternative skel directory\n"
++#~ "  -K, --key KEY=VALUE\t\toverrides /etc/login.defs defaults\n"
++#~ "  -m, --create-home\t\tcreate home directory for the new user\n"
++#~ "\t\t\t\taccount\n"
++#~ "  -o, --non-unique\t\tallow create user with duplicate\n"
++#~ "\t\t\t\t(non-unique) UID\n"
++#~ "  -p, --password PASSWORD\tuse encrypted password for the new user\n"
++#~ "\t\t\t\taccount\n"
++#~ "  -s, --shell SHELL\t\tthe login shell for the new user account\n"
++#~ "  -u, --uid UID\t\t\tforce use the UID for the new user account\n"
++#~ msgstr ""
++#~ "Usage : useradd [options] LOGIN\n"
++#~ "\n"
++#~ "Options :\n"
++#~ "  -b, --base-dir REP_BASE     répertoire de base pour le répertoire\n"
++#~ "                              personnel du compte du nouvel utilisateur\n"
++#~ "  -c, --comment COMMENT       définir le champ « GECOS » du compte du\n"
++#~ "                              nouvel utilisateur\n"
++#~ "  -d, --home-dir REP_PERS     répertoire personnel pour le compte du\n"
++#~ "                              nouvel utilisateur\n"
++#~ "  -D, --defaults              afficher ou enregistrer la configuration "
++#~ "par\n"
++#~ "                              défaut modifiée de « useradd »\n"
++#~ "  -e, --expiredate DATE_EXPIR fixer la date de fin de validité du\n"
++#~ "                              compte à DATE_EXPIR\n"
++#~ "  -f, --inactive INACTIV      rendre le mot de passe inactif après\n"
++#~ "                              un délais de INACTIV\n"
++#~ "  -g, --gid GROUPE            forcer l'utilisation de GROUPE pour le "
++#~ "compte\n"
++#~ "                              du nouvel utilisateur\n"
++#~ "  -G, --groups GROUPS         liste des groupes supplémentaires pour le\n"
++#~ "                              compte du nouvel utilisateur\n"
++#~ "  -h, --help                  afficher ce message d'aide et quitter\n"
++#~ "  -k, --skel REP_SQEL         définir un autre répertoire « skel »\n"
++#~ "  -K, --key KEY=VALEUR        remplacer les valeurs par défaut de\n"
++#~ "                              /etc/login.defs\n"
++#~ "  -m, --create-home           créer le répertoire personnel pour le "
++#~ "compte\n"
++#~ "                              du nouvel utilisateur\n"
++#~ "  -o, --non-unique            autoriser la création d'un utilisateur\n"
++#~ "                              avec un identifiant d'utilisateur (UID)\n"
++#~ "                              dupliqué (non unique)\n"
++#~ "  -p, --password MOT_DE_PASSE utiliser un mot de passe chiffré pour le\n"
++#~ "                              compte du nouvel utilisateur\n"
++#~ "  -s, --shell INTERPRÉTEUR    interpréteur de commande initial pour le\n"
++#~ "                              compte du nouvel utilisateur\n"
++#~ "  -u, --uid UID               forcer l'utilisation de l'identifiant "
++#~ "« UID »\n"
++#~ "                              pour le compte du nouvel utilisateur\n"
++
++#~ msgid "%s: UID %u is not unique\n"
++#~ msgstr "%s : l'identifiant d'utilisateur (UID) %u n'est pas unique\n"
++
++#~ msgid "%s: can't get unique UID\n"
++#~ msgstr ""
++#~ "%s : impossible d'obtenir un identifiant d'utilisateur (UID) unique\n"
++
++#~ msgid ""
++#~ "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
++#~ msgstr ""
++#~ "Il n'y a pas de groupe dont le nom est « mail », création du répertoire "
++#~ "de dépôt de courrier avec le mode 0600.\n"
++
++#~ msgid "Can't create mail spool for user %s.\n"
++#~ msgstr ""
++#~ "Impossible de créer le répertoire de dépôt de courrier pour l'utilisateur "
++#~ "%s.\n"
++
++#~ msgid "Usage: %s [-r] name\n"
++#~ msgstr "Usage : %s [-r] nom\n"
++
++#~ msgid "Usage: %s\t[-u uid [-o]] [-g group] [[-G group,...] [-a]] \n"
++#~ msgstr "Usage : %s\t[-u uid [-o]] [-g groupe] [-G groupe,...]\n"
+ 
 -#~ msgid "%s: no aging information present\n"
 -#~ msgstr "%s : aucune information sur l'age\n"
--
++#~ msgid "[-f inactive] [-e expire] "
++#~ msgstr "[-f inactif] [-e expire] "
+ 
 -#~ msgid "group %s: bad GID (%d)\n"
 -#~ msgstr "groupe %s : mauvais GID (%d)\n"
-+"Usage :\n"
-+"« vipw » édite /etc/passwd        « vipw -s » édite /etc/shadow\n"
-+"« vigr » édite /etc/group         « vigr -s » édite /etc/gshadow\n"
++#~ msgid "%s: -a flag is ONLY allowed with the -G flag\n"
++#~ msgstr "%s : l'indicateur -a n'est autorisé qu'avec l'indicateur -G\n"
  
 -#~ msgid "%s: permission denied (shell).\n"
 -#~ msgstr "%s : permission refusée (shell).\n"

Modified: branches/experimental/debian/patches/122_pt.dpatch
===================================================================
--- branches/experimental/debian/patches/122_pt.dpatch	2005-07-24 21:43:03 UTC (rev 406)
+++ branches/experimental/debian/patches/122_pt.dpatch	2005-07-24 23:22:19 UTC (rev 407)
@@ -27,17 +27,20 @@
 Index: shadow-4.0.3/po/pt.po
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ shadow-4.0.3/po/pt.po	2005-06-16 10:00:05.000000000 +0200
-@@ -0,0 +1,2830 @@
++++ shadow-4.0.3/po/pt.po	2005-07-14 06:24:55.014842459 +0200
+@@ -0,0 +1,3022 @@
 +# Portuguese (Portugal) Translation Project (traduz at debianpt.org)
 +# Nuno Sénica <njs at av.it.pt>, 2004
++#
 +# 18-04-2005 - Miguel Figueiredo <elmig at debianpt.org> - 5f1u
++# 12-07-2005 - Miguel Figueiredo <elmig at debianpt.org> - 7u4f
++#
 +msgid ""
 +msgstr ""
-+"Project-Id-Version: shadow 4.0.7\n"
++"Project-Id-Version: shadow 4.0.8\n"
 +"Report-Msgid-Bugs-To: \n"
 +"POT-Creation-Date: 2005-06-16 09:25+0200\n"
-+"PO-Revision-Date: 2005-04-17 22:55+0000\n"
++"PO-Revision-Date: 2005-07-12 19:45+0000\n"
 +"Last-Translator: Miguel Figueiredo <elmig at debianpt.org>\n"
 +"Language-Team: Portuguese <traduz at debianpt.org>\n"
 +"MIME-Version: 1.0\n"
@@ -2570,7 +2573,8 @@
 +#: src/usermod.c:1553
 +#, c-format
 +msgid "%s: warning: failed to completely remove old home directory %s"
-+msgstr "%s: aviso: falhou ao remover completamente o directório antigo %s"
++msgstr ""
++"%s: aviso: falhou remover completamente remover o antigo directório home %s"
 +
 +#: src/usermod.c:1563
 +#, c-format
@@ -2625,24 +2629,6 @@
 +"`vigr' edita /etc/group         `vigr -s' edita /etc/gshadow\n"
 +
 +#~ msgid ""
-+#~ "Usage: chpasswd [options]\n"
-+#~ "\n"
-+#~ "Options:\n"
-+#~ "  -e, --encrypted\tsupplied passwords are encrypted\n"
-+#~ "  -h, --help\t\tdisplay this help message and exit\n"
-+#~ "  -m, --md5\t\tuse MD5 encryption instead DES when the supplied\n"
-+#~ "\t\t\tpasswords are not encrypted\n"
-+#~ msgstr ""
-+#~ "Utilização: chpasswd [opções]\n"
-+#~ "\n"
-+#~ "Opções:\n"
-+#~ "  -e, --encrypted\tas passwords fornecidas são encriptadas\n"
-+#~ "  -h, --help\t\tmostra esta mensagem de ajuda e sai\n"
-+#~ "  -m, --md5\t\tutilizar encriptação MD5 em vez de DES quando as "
-+#~ "passwords\n"
-+#~ "\t\t\tfornecidas não são encriptadas\n"
-+
-+#~ msgid ""
 +#~ "%d failure since last login.\n"
 +#~ "Last was %s on %s.\n"
 +#~ msgid_plural ""
@@ -2655,11 +2641,38 @@
 +#~ msgstr "passwd: a password foi actualizada com sucesso\n"
 +
 +#~ msgid ""
-+#~ "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
-+#~ "             [-I inactive] [-E expire] [-d last_day] user\n"
++#~ "Usage: chage [options] user\n"
++#~ "\n"
++#~ "Options:\n"
++#~ "  -d, --lastday LAST_DAY\tset last password change to LAST_DAY\n"
++#~ "  -E, --expiredate EXPIRE_DATE\tset account expiration date to "
++#~ "EXPIRE_DATE\n"
++#~ "  -h, --help\t\t\tdisplay this help message and exit\n"
++#~ "  -I, --inactive INACTIVE\tset password inactive after expiration\n"
++#~ "\t\t\t\tto INACTIVE\n"
++#~ "  -l, --list\t\t\tshow account aging information\n"
++#~ "  -m, --mindays MIN_DAYS\tset minimum number of days before password\n"
++#~ "\t\t\t\tchange to MIN_DAYS\n"
++#~ "  -M, --maxdays MAX_DAYS\tset maximim number of days before password\n"
++#~ "\t\t\t\tchange to MAX_DAYS\n"
++#~ "  -W, --warndays WARN_DAYS\tset expiration warning days to WARN_DAYS\n"
 +#~ msgstr ""
-+#~ "Utilização: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
-+#~ "                  [-I inactive] [-E expire] [-d last_day] utilizador\n"
++#~ "Utilização: chage [opções] utilizador\n"
++#~ "  -d, --lastday ÚLTIMO_DIA\t define para ÚLTIMO_DIA a última alteração de "
++#~ "password\n"
++#~ "  -E, --expiredate DATA_EXPIRA\tdefine para DATA_EXPIRA a data em que a "
++#~ "conta expira\n"
++#~ "  -h, --help\t\t\tmostra esta mensagem de ajuda e termina\n"
++#~ "  -I, --inactive INACTIVO\tdefine para INACTIVO a password inactiva após "
++#~ "expirar\n"
++#~ "\t\t\t\tpara INACTIVO\n"
++#~ "  -l, --list\t\t\tmostra informação de envelhecimento da conta\n"
++#~ "  -m, --mindays MIN_DIAS\tdefine para MIN_DIAS o número minimo de dias "
++#~ "para alterar a password\n"
++#~ "  -M, --maxdays MAX_DIAS\tdefine para MAX_DIAS o número máximo de dias "
++#~ "para alterar a password\n"
++#~ "  -W, --warndays DIAS_AVISO\tdefina para DIAS_AVISO o número de dias para "
++#~ "aviso de expirar\n"
 +
 +#~ msgid "Last password change\t\t\t\t\t: "
 +#~ msgstr "Última alteração da password\t\t\t\t\t: "
@@ -2685,17 +2698,40 @@
 +#~ msgid "Number of days of warning before password expires\t: %ld\n"
 +#~ msgstr "Número de dias de aviso antes da password expirar\t: %ld\n"
 +
-+#~ msgid "%s: permission denied.\n"
-+#~ msgstr "%s: acesso negado.\n"
++#~ msgid "%s: can't lock shadow password file\n"
++#~ msgstr ""
++#~ "%s: não é possível obter acesso exclusivo ao ficheiro de passwords "
++#~ "shadow\n"
 +
++#~ msgid "%s: can't open shadow password file\n"
++#~ msgstr "%s: não é possível abrir o ficheiro de passwords shadow\n"
++
 +#~ msgid ""
++#~ "Usage: chpasswd [options]\n"
++#~ "\n"
++#~ "Options:\n"
++#~ "  -e, --encrypted\tsupplied passwords are encrypted\n"
++#~ "  -h, --help\t\tdisplay this help message and exit\n"
++#~ "  -m, --md5\t\tuse MD5 encryption instead DES when the supplied\n"
++#~ "\t\t\tpasswords are not encrypted\n"
++#~ msgstr ""
++#~ "Utilização: chpasswd [opções]\n"
++#~ "\n"
++#~ "Opções:\n"
++#~ "  -e, --encrypted\tas passwords fornecidas são encriptadas\n"
++#~ "  -h, --help\t\tmostra esta mensagem de ajuda e sai\n"
++#~ "  -m, --md5\t\tutilizar encriptação MD5 em vez de DES quando as "
++#~ "passwords\n"
++#~ "\t\t\tfornecidas não são encriptadas\n"
++
++#~ msgid ""
 +#~ "Usage: faillog [options]\n"
 +#~ "\n"
 +#~ "Options:\n"
 +#~ "  -a, --all\t\t\tdisplay faillog records for all users\n"
 +#~ "  -h, --help\t\t\tdisplay this help message and exit\n"
 +#~ "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-+#~ "  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
++#~ "  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 +#~ "  -r, --reset\t\t\treset the counters of login failures\n"
 +#~ "  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 +#~ "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure "
@@ -2730,15 +2766,27 @@
 +#~ msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 +#~ msgstr "Utilização: groupadd [-g gid [-o]] [-f] grupo\n"
 +
++#~ msgid "%s: GID %u is not unique\n"
++#~ msgstr "%s: GID %u não é único\n"
++
++#~ msgid "%s: can't get unique GID\n"
++#~ msgstr "%s: não é possível obter um GID único\n"
++
 +#~ msgid "%s: %s is not a valid group name\n"
 +#~ msgstr "%s: %s não é um nome válido para o grupo\n"
 +
++#~ msgid "%s: -K requires KEY=VALUE\n"
++#~ msgstr "%s: -K necessita de KEY=VALUE\n"
++
 +#~ msgid "Usage: groupdel group\n"
 +#~ msgstr "Utilização: groupdel grupo\n"
 +
 +#~ msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 +#~ msgstr "Utilização: groupmod [-g gid [-o]] [-n nome] grupo\n"
 +
++#~ msgid "%s: %u is not a unique GID\n"
++#~ msgstr "%s: %u não é um GID único\n"
++
 +#~ msgid "Usage: id [-a]\n"
 +#~ msgstr "Utilização: id [-a]\n"
 +
@@ -2749,14 +2797,14 @@
 +#~ "Usage: lastlog [options]\n"
 +#~ "\n"
 +#~ "Options:\n"
-+#~ "  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
++#~ "  -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
 +#~ "  -h, --help\t\tdisplay this help message and exit\n"
 +#~ "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 +#~ msgstr ""
 +#~ "Utilização: lastlog [opções]\n"
 +#~ "\n"
 +#~ "Opções:\n"
-+#~ "  -u, --login LOGIN\tmostra o registo de lastlog para o utilizador LOGIN\n"
++#~ "  -u, --user LOGIN\tmostra o registo de lastlog para o utilizador LOGIN\n"
 +#~ "  -h, --help\t\tmostra esta mensagem e sai\n"
 +#~ "  -t, --time DIAS\tmostra apenas registos de lastlog mais recentes que "
 +#~ "DIAS\n"
@@ -2764,24 +2812,111 @@
 +#~ msgid "Usage: %s [-p] [name]\n"
 +#~ msgstr "Utilização: %s [-p] [nome]\n"
 +
-+#~ msgid "%s: the line beginning with %.16s... is too long\n"
-+#~ msgstr "%s: a linha que começa por %.16s... é demasiado longa\n"
-+
-+#~ msgid "adding record for name %s\n"
-+#~ msgstr "a adicionar o registo para o nome %s\n"
-+
-+#~ msgid "%s: error adding record for %s\n"
-+#~ msgstr "%s: erro a adicionar o registo para %s\n"
-+
 +#~ msgid "Usage: newgrp [-] [group]\n"
 +#~ msgstr "Utilização: newgrp [-] [grupo]\n"
 +
 +#~ msgid "Usage: sg group [[-c] command]\n"
 +#~ msgstr "Utilização: sg grupo [[-c] comando]\n"
 +
++#~ msgid "unknown UID: %u\n"
++#~ msgstr "GID desconhecido: %u\n"
++
++#~ msgid "unknown GID: %lu\n"
++#~ msgstr "GID desconhecido: %lu\n"
++
 +#~ msgid "Usage: %s [-f|-s] [name]\n"
 +#~ msgstr "Utilização: %s [-f|-s] [nome]\n"
 +
++#~ msgid "%s: unknown GID %s\n"
++#~ msgstr "%s: GID %s desconhecido\n"
++
++#~ msgid ""
++#~ "Usage: useradd [options] LOGIN\n"
++#~ "\n"
++#~ "Options:\n"
++#~ "  -b, --base-dir BASE_DIR\tbase directory for the the new user account\n"
++#~ "\t\t\t\thome directory\n"
++#~ "  -c, --comment COMMENT\t\tset the GECOS field for the new user account\n"
++#~ "  -d, --home-dir HOME_DIR\thome directory for the new user account\n"
++#~ "  -D, --defaults\t\tprint or save modified default useradd\n"
++#~ "\t\t\t\tconfiguration\n"
++#~ "  -e, --expiredate EXPIRE_DATE\tset account expiration date to "
++#~ "EXPIRE_DATE\n"
++#~ "  -f, --inactive INACTIVE\tset password inactive after expiration\n"
++#~ "\t\t\t\tto INACTIVE\n"
++#~ "  -g, --gid GROUP\t\tforce use GROUP for the new user account\n"
++#~ "  -G, --groups GROUPS\t\tlist of supplementary groups for the new\n"
++#~ "\t\t\t\tuser account\n"
++#~ "  -h, --help\t\t\tdisplay this help message and exit\n"
++#~ "  -k, --skel SKEL_DIR \t\tspecify an alternative skel directory\n"
++#~ "  -K, --key KEY=VALUE\t\toverrides /etc/login.defs defaults\n"
++#~ "  -m, --create-home\t\tcreate home directory for the new user\n"
++#~ "\t\t\t\taccount\n"
++#~ "  -o, --non-unique\t\tallow create user with duplicate\n"
++#~ "\t\t\t\t(non-unique) UID\n"
++#~ "  -p, --password PASSWORD\tuse encrypted password for the new user\n"
++#~ "\t\t\t\taccount\n"
++#~ "  -s, --shell SHELL\t\tthe login shell for the new user account\n"
++#~ "  -u, --uid UID\t\t\tforce use the UID for the new user account\n"
++#~ msgstr ""
++#~ "Utilização: useradd [opções] LOGIN\n"
++#~ "\n"
++#~ "Opções:\n"
++#~ "  -b, --base-dir BASE_DIR\tdirectório base para o directório home \n"
++#~ "\t\t\t\tda conta do novo utilizador\n"
++#~ "  -c, --comment COMENTÁRIO\t\tdefine o campo GECOS para a conta\n"
++#~ "\t\t\t\tdo novo utilizador  -d, --home-dir HOME_DIR\tdirectório home para "
++#~ "a conta do novo utilizador\n"
++#~ "  -D, --defaults\t\tmostra ou grava a alterada configuração \n"
++#~ "\t\t\t\tpor omissão do useradd\n"
++#~ "  -e, --expiredate EXPIRE_DATE\tdefine para EXPIRE_DATE a data em\n"
++#~ "\t\t\t\tque a conta expira\n"
++#~ "  -f, --inactive INACTIVE\tdefine a password inactiva após expirar\n"
++#~ "\t\t\t\tapós INACTIVE\n"
++#~ "  -g, --gid GRUPO\t\tforça a utilização do GRUPO para a conta do \n"
++#~ "\t\t\t\tnovo utilizador\n"
++#~ "  -G, --groups GRUPOS\t\tlista de grupos adicionais para a conta\n"
++#~ "\t\t\t\tdo novo utilizador\n"
++#~ "  -h, --help\t\t\tmostra esta mensagem e termina\n"
++#~ "  -k, --skel SKEL_DIR\t\tespecifica um directório SKEL alternativo\n"
++#~ "  -K, --key KEY=VALUE\t\tultrapassa os valores padrão de /etc/login.defs\n"
++#~ "  -m, --create-home\t\tcriar directório home para a conta\n"
++#~ "\t\t\t\tdo novo utilizador\n"
++#~ "  -o, --non-unique\t\tpermite criar utilizador com UID duplicado\n"
++#~ "\t\t\t\t(não-único)\n"
++#~ "  -p, --password PASSWORD\tutilizar password encriptada para a\n"
++#~ "\t\t\t\tconta do novo utilizador\n"
++#~ "  -s, --shell SHELL\t\tshell de login para a conta do novo utilizador\n"
++#~ "  -u, --uid UID\t\t\tforça a utilização do UID para a conta\t\t\t\tdo "
++#~ "novo utilizador\n"
++
++#~ msgid "%s: UID %u is not unique\n"
++#~ msgstr "%s: UID %u não é único\n"
++
++#~ msgid "%s: can't get unique UID\n"
++#~ msgstr "%s: não é possível obter um UID único\n"
++
++#~ msgid ""
++#~ "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
++#~ msgstr ""
++#~ "Não existe nenhum grupo chamado \"mail\", criando spool de mail com modo "
++#~ "0600.\n"
++
++#~ msgid "Can't create mail spool for user %s.\n"
++#~ msgstr "Não foi possível criar spool de mail para o utilizador %s.\n"
++
++#~ msgid "Usage: %s [-r] name\n"
++#~ msgstr "Utilização: %s [-r] nome\n"
++
++#~ msgid "Usage: %s\t[-u uid [-o]] [-g group] [[-G group,...] [-a]] \n"
++#~ msgstr "Utilização: %s\t[-u uid [-o]] [-g grupo] [-G grupo,...] \n"
++
++#~ msgid "[-f inactive] [-e expire] "
++#~ msgstr "[-f inactivo] [-e caduca] "
++
++#~ msgid "%s: -a flag is ONLY allowed with the -G flag\n"
++#~ msgstr "%s: -a flag é permitida APENAS com a flag -G\n"
++
 +#~ msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 +#~ msgstr "Utilização: useradd [-u uid [-o]] [-g grupo] [-G grupo,...] \n"
 +
@@ -2794,30 +2929,87 @@
 +#~ msgid "               [-f inactive] [-e expire]\n"
 +#~ msgstr "                    [-f inactivo] [-e caduca]\n"
 +
-+#~ msgid "               [-p passwd] name\n"
++#, fuzzy
++#~ msgid "               [-p passwd] [-K KEY=VALUE] name\n"
 +#~ msgstr "                    [-p passwd] nome\n"
 +
 +#~ msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 +#~ msgstr "            useradd -D [-g grupo] [-b base] [-s shell]\n"
 +
 +#~ msgid ""
-+#~ "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
++#~ "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
++#~ "             [-I inactive] [-E expire] [-d last_day] user\n"
 +#~ msgstr ""
-+#~ "Não existe nenhum grupo chamado \"mail\", criando spool de mail com modo "
-+#~ "0600.\n"
++#~ "Utilização: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
++#~ "                  [-I inactive] [-E expire] [-d last_day] utilizador\n"
 +
-+#~ msgid "Can't create mail spool for user %s.\n"
-+#~ msgstr "Não foi possível criar spool de mail para o utilizador %s.\n"
++#~ msgid "%s: permission denied.\n"
++#~ msgstr "%s: acesso negado.\n"
 +
-+#~ msgid "Usage: %s [-r] name\n"
-+#~ msgstr "Utilização: %s [-r] nome\n"
++#~ msgid ""
++#~ "Usage: faillog [options]\n"
++#~ "\n"
++#~ "Options:\n"
++#~ "  -a, --all\t\t\tdisplay faillog records for all users\n"
++#~ "  -h, --help\t\t\tdisplay this help message and exit\n"
++#~ "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
++#~ "  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
++#~ "  -r, --reset\t\t\treset the counters of login failures\n"
++#~ "  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
++#~ "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure "
++#~ "counters\n"
++#~ "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
++#~ "\t\t\t\tfor user with LOGIN\n"
++#~ msgstr ""
++#~ "Utilização: faillog [opções]\n"
++#~ "\n"
++#~ "Opções:\n"
++#~ "  -a, --all\t\t\tmostrar os registos de faillog para todos os "
++#~ "utilizadores\n"
++#~ "  -h, --help\t\t\tmostrar esta mensagem de ajuda e sair\n"
++#~ "  -l, --lock-time SEG\t\tapós login falhado bloquear conta por SEG "
++#~ "segundos\n"
++#~ "  -m, --maximum MAX\t\tdefinir contadores de máximo de logins falhados "
++#~ "para MAX\n"
++#~ "  -r, --reset\t\t\tesvazia os contadores de login falhados\n"
++#~ "  -t, --time DIAS\t\tmostrar registos do faillog mais recentes do que "
++#~ "DIAS\n"
++#~ "  -u, --user LOGIN\t\tmostra o registo de faillog ou contadores de "
++#~ "falhas \n"
++#~ "\t\t\t\tmantidos e limites (se utilizado com as opções -r, -m ou -l) \n"
++#~ "\t\t\t\tapenas para o utilizador com o login LOGIN\n"
 +
++#~ msgid ""
++#~ "Usage: lastlog [options]\n"
++#~ "\n"
++#~ "Options:\n"
++#~ "  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
++#~ "  -h, --help\t\tdisplay this help message and exit\n"
++#~ "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
++#~ msgstr ""
++#~ "Utilização: lastlog [opções]\n"
++#~ "\n"
++#~ "Opções:\n"
++#~ "  -u, --login LOGIN\tmostra o registo de lastlog para o utilizador LOGIN\n"
++#~ "  -h, --help\t\tmostra esta mensagem e sai\n"
++#~ "  -t, --time DIAS\tmostra apenas registos de lastlog mais recentes que "
++#~ "DIAS\n"
++
++#~ msgid "%s: the line beginning with %.16s... is too long\n"
++#~ msgstr "%s: a linha que começa por %.16s... é demasiado longa\n"
++
++#~ msgid "adding record for name %s\n"
++#~ msgstr "a adicionar o registo para o nome %s\n"
++
++#~ msgid "%s: error adding record for %s\n"
++#~ msgstr "%s: erro a adicionar o registo para %s\n"
++
++#~ msgid "               [-p passwd] name\n"
++#~ msgstr "                    [-p passwd] nome\n"
++
 +#~ msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 +#~ msgstr "Utilização: %s\t[-u uid [-o]] [-g grupo] [-G grupo,...] \n"
 +
-+#~ msgid "[-f inactive] [-e expire] "
-+#~ msgstr "[-f inactivo] [-e caduca] "
-+
 +#~ msgid "usage: %s [-e]\n"
 +#~ msgstr "utilização: %s [-e]\n"
 +

Modified: branches/experimental/debian/patches/132_vi.dpatch
===================================================================
--- branches/experimental/debian/patches/132_vi.dpatch	2005-07-24 21:43:03 UTC (rev 406)
+++ branches/experimental/debian/patches/132_vi.dpatch	2005-07-24 23:22:19 UTC (rev 407)
@@ -8,24 +8,53 @@
 Index: shadow-4.0.3/po/vi.po
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ shadow-4.0.3/po/vi.po	2005-06-28 10:39:27.000000000 -0400
-@@ -0,0 +1,2794 @@
-+# Vietnamese Translation for shadow_debian.
++++ shadow-4.0.3/po/vi.po	2005-07-14 14:05:53.088583861 +0200
+@@ -0,0 +1,2778 @@
++# Vietnamese translation for shadow.
 +# Copyright © 2005 Free Software Foundation, Inc.
 +# Clytie Siddall <clytie at riverland.net.au>, 2005.
++# 
 +msgid ""
 +msgstr ""
-+"Project-Id-Version: shadow_debian\n"
++"Project-Id-Version: shadow 1/4.0.3-37\n"
 +"Report-Msgid-Bugs-To: \n"
-+"POT-Creation-Date: 2005-06-16 09:25+0200\n"
-+"PO-Revision-Date: 2005-06-26 20:00+0930\n"
++"POT-Creation-Date: 2004-07-26 06:02-0600\n"
++"PO-Revision-Date: 2005-07-14 21:03+0930\n"
 +"Last-Translator: Clytie Siddall <clytie at riverland.net.au>\n"
 +"Language-Team: Vietnamese <gnomevi-list at lists.sourceforge.net>\n"
 +"MIME-Version: 1.0\n"
 +"Content-Type: text/plain; charset=utf-8\n"
 +"Content-Transfer-Encoding: 8bit\n"
-+"Plural-Forms: nplurals=1; plural=0;\n"
++"Plural-Forms: nplurals=1; plural=0\n"
++"X-Generator: LocFactoryEditor 1.2.2\n"
 +
++#: lib/dialchk.c:71
++msgid "Dialup Password: "
++msgstr "Mật khẩu quay số:"
++
++#: lib/getdef.c:276
++#, c-format
++msgid "Could not allocate space for config info.\n"
++msgstr "Không thể phân chia chỗ cho thông tin cấu hình.\n"
++
++#.
++#. * Item was never found.
++#.
++#: lib/getdef.c:330
++#, c-format
++msgid "configuration error - unknown item '%s' (notify administrator)\n"
++msgstr "lỗi cấu hình — không biết mục «%s» (hãy báo quản trị).\n"
++
++#: lib/getdef.c:417
++#, c-format
++msgid "error - lookup '%s' failed\n"
++msgstr "lỗi — không tra cứu «%s» được.\n"
++
++#: lib/getdef.c:425
++#, c-format
++msgid "%s not found\n"
++msgstr "không tìm thấy «%s».\n"
++
 +#: libmisc/addgrps.c:60
 +#, c-format
 +msgid "Warning: unknown group %s\n"
@@ -126,34 +155,6 @@
 +msgid "You have mail."
 +msgstr "Bạn có thư."
 +
-+#: libmisc/obscure.c:164
-+msgid "no change"
-+msgstr "chưa thay đổi gì"
-+
-+#: libmisc/obscure.c:173
-+msgid "a palindrome"
-+msgstr "một từ đọc xuôi ngược đều giống như nhau"
-+
-+#: libmisc/obscure.c:176
-+msgid "case changes only"
-+msgstr "chỉ thay đổi chữ hoa/thường"
-+
-+#: libmisc/obscure.c:179
-+msgid "too similar"
-+msgstr "quá tương tự"
-+
-+#: libmisc/obscure.c:182
-+msgid "too simple"
-+msgstr "quá đơn giản"
-+
-+#: libmisc/obscure.c:185
-+msgid "rotated"
-+msgstr "đã xoay"
-+
-+#: libmisc/obscure.c:226
-+msgid "too short"
-+msgstr "quá ngắn"
-+
 +#: libmisc/obscure.c:281 src/passwd.c:244
 +#, c-format
 +msgid "Bad password: %s.  "
@@ -169,7 +170,7 @@
 +msgid "passwd: %s\n"
 +msgstr "passwd: (mật khẩu) %s\n"
 +
-+#: libmisc/pwdcheck.c:34 libmisc/pwdcheck.c:65
++#: libmisc/pwdcheck.c:34 libmisc/pwdcheck.c:64
 +#, c-format
 +msgid "Incorrect password for %s.\n"
 +msgstr "Mật khẩu không đúng cho «%s».\n"
@@ -208,49 +209,12 @@
 +msgid "Can't change root directory to \"%s\"\n"
 +msgstr "Không thể thay đổi thư mục gốc thành «%s».\n"
 +
-+#: libmisc/utmp.c:57
-+msgid "No utmp entry.  You must exec \"login\" from the lowest level \"sh\""
-+msgstr ""
-+"Không có mục nhập «utmp». Bạn phải thực hiện «login» (đăng nhập) từ cấp thấp "
-+"nhất «sh»."
-+
-+#: libmisc/utmp.c:59
-+msgid "Unable to determine your tty name."
-+msgstr "Không thể quyết định tên «tty» của bạn."
-+
 +#: libmisc/xmalloc.c:26
 +#, c-format
 +msgid "malloc(%d) failed\n"
 +msgstr "malloc(%d) (phân chia bộ nhớ) đã thất bại.\n"
 +
-+#: lib/dialchk.c:71
-+msgid "Dialup Password: "
-+msgstr "Mật khẩu quay số:"
-+
-+#: lib/getdef.c:276
-+#, c-format
-+msgid "Could not allocate space for config info.\n"
-+msgstr "Không thể phân chia chỗ cho thông tin cấu hình.\n"
-+
 +#.
-+#. * Item was never found.
-+#.
-+#: lib/getdef.c:330
-+#, c-format
-+msgid "configuration error - unknown item '%s' (notify administrator)\n"
-+msgstr "lỗi cấu hình — không biết mục «%s» (hãy báo quản trị).\n"
-+
-+#: lib/getdef.c:417
-+#, c-format
-+msgid "error - lookup '%s' failed\n"
-+msgstr "lỗi — không tra cứu «%s» được.\n"
-+
-+#: lib/getdef.c:425
-+#, c-format
-+msgid "%s not found\n"
-+msgstr "không tìm thấy «%s».\n"
-+
-+#.
 +#. * get the password from her, and set the salt for
 +#. * the decryption from the group file.
 +#.
@@ -396,19 +360,19 @@
 +msgid "%s: permission denied\n"
 +msgstr "%s: không có đủ quyền\n"
 +
-+#: src/chage.c:514 src/chpasswd.c:143 src/groupadd.c:531 src/groupdel.c:324
++#: src/chage.c:514 src/chpasswd.c:141 src/groupadd.c:531 src/groupdel.c:324
 +#: src/groupmod.c:522 src/newusers.c:383 src/useradd.c:1756 src/userdel.c:728
 +#: src/usermod.c:1739
 +#, c-format
 +msgid "%s: PAM authentication failed\n"
 +msgstr "%s: xác thức kiểu PAM thất bại\n"
 +
-+#: src/chage.c:535 src/chpasswd.c:182
++#: src/chage.c:535 src/chpasswd.c:159
 +#, c-format
 +msgid "%s: can't lock password file\n"
 +msgstr "%s: không khóa được tập tin mật khẩu.\n"
 +
-+#: src/chage.c:546 src/chpasswd.c:187
++#: src/chage.c:546 src/chpasswd.c:164
 +#, c-format
 +msgid "%s: can't open password file\n"
 +msgstr "%s: không mở được tập tin mật khẩu.\n"
@@ -428,11 +392,6 @@
 +msgid "%s: can't open shadow password file"
 +msgstr "%s: không mở được tập tin mật khẩu bóng."
 +
-+#: src/chage.c:589
-+#, c-format
-+msgid "%s: failed to drop privileges (%s)\n"
-+msgstr "%s: không loại bỏ quyền được (%s)\n"
-+
 +#: src/chage.c:676
 +#, c-format
 +msgid "Changing the aging information for %s\n"
@@ -469,7 +428,7 @@
 +msgid "%s: can't rewrite password file\n"
 +msgstr "%s: không thể ghi lại tập tin mật khẩu.\n"
 +
-+#: src/chage.c:859 src/chpasswd.c:374 src/groupadd.c:592 src/groupdel.c:411
++#: src/chage.c:859 src/chpasswd.c:345 src/groupadd.c:592 src/groupdel.c:411
 +#: src/groupmod.c:606 src/newusers.c:630 src/useradd.c:1871 src/userdel.c:860
 +#: src/usermod.c:1818
 +#, c-format
@@ -634,55 +593,53 @@
 +msgid "Cannot unlock the password file.\n"
 +msgstr "Không thể bỏ khóa tập tin mật khẩu.\n"
 +
-+#: src/chpasswd.c:70
++#: src/chpasswd.c:68
 +#, c-format
-+msgid "usage: %s [--encrypted] [--md5]\n"
-+msgstr ""
-+"cách sử dụng: %s [--encrypted] [--md5]\n"
-+"(encrypted: được mật mã)\n"
++msgid "usage: %s [-e]\n"
++msgstr "cách sử dụng: %s [-e]\n"
 +
-+#: src/chpasswd.c:196 src/pwconv.c:94
++#: src/chpasswd.c:173 src/pwconv.c:94
 +#, c-format
 +msgid "%s: can't lock shadow file\n"
 +msgstr "%s: không khóa được tập tin bóng.\n"
 +
-+#: src/chpasswd.c:202 src/gpasswd.c:596 src/pwconv.c:99 src/pwunconv.c:103
++#: src/chpasswd.c:179 src/gpasswd.c:596 src/pwconv.c:99 src/pwunconv.c:103
 +#: src/pwunconv.c:108
 +#, c-format
 +msgid "%s: can't open shadow file\n"
 +msgstr "%s: không mở được tập tin bóng.\n"
 +
-+#: src/chpasswd.c:225 src/newusers.c:462
++#: src/chpasswd.c:202 src/newusers.c:462
 +#, c-format
 +msgid "%s: line %d: line too long\n"
 +msgstr "%s: dòng %d: dòng quá dài.\n"
 +
-+#: src/chpasswd.c:245
++#: src/chpasswd.c:222
 +#, c-format
 +msgid "%s: line %d: missing new password\n"
 +msgstr "%s: dòng %d: thiếu mật khẩu mới.\n"
 +
-+#: src/chpasswd.c:268
++#: src/chpasswd.c:239
 +#, c-format
 +msgid "%s: line %d: unknown user %s\n"
 +msgstr "%s: dòng %d: người dùng lại %s.\n"
 +
-+#: src/chpasswd.c:321
++#: src/chpasswd.c:292
 +#, c-format
 +msgid "%s: line %d: cannot update password entry\n"
 +msgstr "%s: dòng %d: không câp nhật được mục ghi mật khẩu.\n"
 +
-+#: src/chpasswd.c:338 src/newusers.c:590
++#: src/chpasswd.c:309 src/newusers.c:590
 +#, c-format
 +msgid "%s: error detected, changes ignored\n"
 +msgstr "%s: gặp lỗi thì đã bỏ qua các thay đổi.\n"
 +
-+#: src/chpasswd.c:350
++#: src/chpasswd.c:321
 +#, c-format
 +msgid "%s: error updating shadow file\n"
 +msgstr "%s: gặp lỗi khi cập nhật tập tin bóng.\n"
 +
-+#: src/chpasswd.c:359
++#: src/chpasswd.c:330
 +#, c-format
 +msgid "%s: error updating password file\n"
 +msgstr "%s: gặp lỗi khi cập nhật tập tin mật khẩu.\n"
@@ -959,13 +916,13 @@
 +"(groupadd: thêm nhóm)\n"
 +
 +#: src/groupadd.c:169 src/groupadd.c:194 src/groupmod.c:181 src/groupmod.c:230
-+#: src/useradd.c:907 src/useradd.c:972 src/usermod.c:554 src/usermod.c:697
++#: src/useradd.c:972 src/usermod.c:554 src/usermod.c:697
 +#, c-format
 +msgid "%s: error adding new group entry\n"
 +msgstr "%s: gặp lỗi khi thêm mục ghi nhóm mới.\n"
 +
-+#: src/groupadd.c:180 src/groupadd.c:205 src/groupmod.c:199 src/useradd.c:918
-+#: src/useradd.c:983 src/usermod.c:566 src/usermod.c:710
++#: src/groupadd.c:180 src/groupadd.c:205 src/groupmod.c:199 src/useradd.c:983
++#: src/usermod.c:566 src/usermod.c:710
 +#, c-format
 +msgid "%s: cannot add new dbm group entry\n"
 +msgstr "%s: không thêm được mục ghi nhóm DBM mới.\n"
@@ -1405,11 +1362,6 @@
 +msgid " on `%.100s'"
 +msgstr " vào «%.100s»"
 +
-+#: src/login.c:722
-+#, c-format
-+msgid "login: PAM Failure, aborting: %s\n"
-+msgstr "đăng nhập: lỗi PAM nên hủy bỏ: %s\n"
-+
 +#: src/login.c:810
 +#, c-format
 +msgid "TOO MANY LOGIN TRIES (%d)%s FOR `%s'"
@@ -1437,65 +1389,47 @@
 +msgid "FAILED LOGIN (%d)%s FOR `%s', %s"
 +msgstr "ĐĂNG NHẬP ĐÃ THẤT BẠI (%d)%s CHO `%s', %s"
 +
-+#: src/login.c:844
++#: src/login.c:924
 +#, c-format
 +msgid ""
-+"Login incorrect\n"
 +"\n"
-+msgstr ""
-+"Đăng nhập không đúng\n"
-+"\n"
-+
-+#: src/login.c:929
-+#, c-format
-+msgid ""
-+"\n"
 +"%s login: "
 +msgstr ""
 +"\n"
 +"«%s» đăng nhập: "
 +
-+#: src/login.c:932
++#: src/login.c:927
 +msgid "login: "
 +msgstr "đang nhập:"
 +
-+#: src/login.c:1159 src/sulogin.c:233
++#: src/login.c:1154 src/sulogin.c:233
 +msgid "Login incorrect"
 +msgstr "Đăng nhập không đúng"
 +
-+#: src/login.c:1317
-+#, c-format
-+msgid "login: failure forking: %s"
-+msgstr "đăng nhập: lỗi tạo tiến trình con: %s"
-+
-+#: src/login.c:1387
++#: src/login.c:1382
 +msgid "Warning: login re-enabled after temporary lockout.\n"
 +msgstr "Cảnh báo: đã hiệu lực lại đăng nhập sau bị khóa ra tạm thời.\n"
 +
-+#: src/login.c:1401
++#: src/login.c:1396
 +#, c-format
 +msgid "Last login: %s on %s"
 +msgstr "Đang nhập cuối cùng: %s vào %s"
 +
-+#: src/login.c:1404
++#: src/login.c:1399
 +#, c-format
 +msgid "Last login: %.19s on %s"
 +msgstr "Đang nhập cuối cùng: %.19s vào %s"
 +
-+#: src/login.c:1410
++#: src/login.c:1405
 +#, c-format
 +msgid " from %.*s"
 +msgstr " từ «%.*s»"
 +
-+#: src/login.c:1456
++#: src/login.c:1451
 +#, c-format
 +msgid "Starting rad_login\n"
 +msgstr "Đang khởi chay «rad_login»\n"
 +
-+#: src/logoutd.c:51
-+msgid "login time exceeded\r\n"
-+msgstr "thời hạn đăng nhập bị vượt quá\r\n"
-+
 +#: src/mkpasswd.c:47
 +#, c-format
 +msgid "%s: no DBM database on system - no action performed\n"
@@ -1592,12 +1526,6 @@
 +msgid "Sorry.\n"
 +msgstr "Xin lá»—i.\n"
 +
-+#. error in fork()
-+#: src/newgrp.c:434
-+#, c-format
-+msgid "%s: failure forking: %s"
-+msgstr "%s: lỗi tạo tiến trình con: %s"
-+
 +#: src/newgrp.c:477
 +#, c-format
 +msgid "too many groups\n"
@@ -1944,6 +1872,21 @@
 +msgid "%s: can't delete shadow password file\n"
 +msgstr "%s: không xóa bỏ được tập tin mật khẩu bóng.\n"
 +
++#: src/suauth.c:100
++#, c-format
++msgid "Access to su to that account DENIED.\n"
++msgstr "«su» KHÔNG đủ quyền truy cập tài khoản ấy.\n"
++
++#: src/suauth.c:107
++#, c-format
++msgid "Password authentication bypassed.\n"
++msgstr "Đã đi vòng việc xác thức mật khẩu rồi.\n"
++
++#: src/suauth.c:114
++#, c-format
++msgid "Please enter your OWN password as authentication.\n"
++msgstr "Hãy nhập mật khẩu của BẠN để xác thức.\n"
++
 +#: src/su.c:217 src/su.c:226
 +#, c-format
 +msgid "Command line args too long\n"
@@ -1992,12 +1935,6 @@
 +msgid "%s: pam_start: error %d\n"
 +msgstr "%s: pam_start: (pam bắt đầu) lỗi «%d»\n"
 +
-+# Variable: don't translate / Biến: đừng dịch
-+#: src/su.c:465 src/su.c:565 src/su.c:579 src/su.c:719 src/su.c:727
-+#, c-format
-+msgid "%s: %s\n"
-+msgstr "%s: %s\n"
-+
 +#: src/su.c:483
 +#, c-format
 +msgid "Unknown id: %s\n"
@@ -2022,21 +1959,6 @@
 +"%s: %s\n"
 +"(Bị bo qua)\n"
 +
-+#: src/suauth.c:100
-+#, c-format
-+msgid "Access to su to that account DENIED.\n"
-+msgstr "«su» KHÔNG đủ quyền truy cập tài khoản ấy.\n"
-+
-+#: src/suauth.c:107
-+#, c-format
-+msgid "Password authentication bypassed.\n"
-+msgstr "Đã đi vòng việc xác thức mật khẩu rồi.\n"
-+
-+#: src/suauth.c:114
-+#, c-format
-+msgid "Please enter your OWN password as authentication.\n"
-+msgstr "Hãy nhập mật khẩu của BẠN để xác thức.\n"
-+
 +#. must be a password file!
 +#: src/sulogin.c:132
 +#, c-format
@@ -2627,7 +2549,6 @@
 +#~ msgid "Root password:"
 +#~ msgstr "Mật khẩu chủ:"
 +
-+#, fuzzy
 +#~ msgid ""
 +#~ "You need to set a password for 'root', the system administrative account. "
 +#~ "A malicious or unqualified user with root access can have disastrous "
@@ -2635,18 +2556,15 @@
 +#~ "easy to guess. It should not be a word found in dictionaries, or a word "
 +#~ "that could be easily associated with you."
 +#~ msgstr ""
-+#~ "Bạn cần phải lập một mật khẩu cho người chủ (root), tài khoản của quản "
-+#~ "trị hệ thống. Một người dùng hiểm độc hay chưa biết cách sử dụng máy vi "
-+#~ "tính có thể gây ra kết quả rất xấu nếu có truy cập của người chủ. Như thế "
-+#~ "thì bạn nên chọn cẩn thận mật khẩu không dễ đoán. Nó không nên là một từ "
-+#~ "được tìm trong từ điển nào, hay một từ liên quan dễ dàng đến bạn, như tên "
-+#~ "đệm của bạn. Một mật khẩu tốt phối chữ, số và sự chấm câu đều, và sẽ được "
-+#~ "thay đổi một cách đều đặn. Hãy ghi chú là một chương trình ngắt mật khẩu "
-+#~ "có thể chạy qua từ điển nào được vài giây. Có thể thay đổi mật khẩu chủ "
-+#~ "bằng cách chạy chương trình 'passwd' như là người chủ."
++#~ "Bạn cần phải lập một mật khẩu cho «root» (người chủ), tài khoản quản trị "
++#~ "hệ thống. Một người dùng hiểm độc hay người dùng không có kinh nghiệm, "
++#~ "với quyền truy cập hệ thống của người chủ thì có thể gây ra kết quả tai "
++#~ "hại. Vì vậy bạn nên chọn một cách cẩn thận một mật khẩu người chủ không "
++#~ "phải dễ đoán. Đừng chọn một từ có trong từ điển nào, hay một từ liên quan "
++#~ "đến bạn một cách dễ dàng."
 +
 +#~ msgid "Note that you will not be able to see the password as you type it."
-+#~ msgstr "Ghi chú là bạn sẽ không thể thấy mật khẩu trong khi gõ nó."
++#~ msgstr "Hãy ghi chú rằng bạn sẽ không thể thấy mật khẩu này khi gõ nó."
 +
 +#~ msgid ""
 +#~ "Please enter the same root password again to verify that you have typed "
@@ -2675,12 +2593,11 @@
 +#~ "Ghi chú là bạn có thể tạo nó sau này (và tài khoản thêm nào) bằng cách "
 +#~ "gõ:\n"
 +#~ "adduser <tên_dùng>\n"
-+#~ "như là người chủ, mà tên dùng là tên cho người dùng, v.d. nguyenvan hay "
-+#~ "ngv."
++#~ "như là người chủ, mà tên dùng là tên cho người dùng, v.d. «nguyenvan» hay "
++#~ "«ngv»."
 +
-+#, fuzzy
 +#~ msgid "Full name for the new user:"
-+#~ msgstr "Hãy gõ họ tên cho người dùng mới:"
++#~ msgstr "Họ tên của người dùng mới:"
 +
 +#~ msgid ""
 +#~ "A user account will be created for you to use instead of the root account "
@@ -2689,9 +2606,18 @@
 +#~ "Sẽ tạo một tài khoản người dùng bình thường cho bạn sử dụng thay thế tài "
 +#~ "khoản người chủ, khi làm việc không phải của người chủ."
 +
-+#, fuzzy
++#~ msgid ""
++#~ "Please enter the real name of this user. This information will be used "
++#~ "for instance as default origin for emails sent by this user as well as "
++#~ "any program which displays or uses the user's real name. Your full name "
++#~ "is a reasonable choice."
++#~ msgstr ""
++#~ "Hãy nhập họ tên thật của người dùng này. Trình thư sẽ dùng thông tin này "
++#~ "(là gốc mặc định của thư do người dùng này gởi)., chương trình khác cần "
++#~ "hiển thị họ tên thật thì cũng vậy. Hãy nhập họ tên thật vào đây."
++
 +#~ msgid "Username for your account:"
-+#~ msgstr "Hãy gõ một tên dùng cho tài khoản bạn:"
++#~ msgstr "Tên người dùng cho tài khoản bạn:"
 +
 +#~ msgid ""
 +#~ "Select a username for the new account. Your first name is a reasonable "
@@ -2702,9 +2628,8 @@
 +#~ "hiệu. Tên dùng này nên bắt đầu với một chữ thường, và có thể chứa bất cứ "
 +#~ "chữ thường và số nào theo thứ tự nào cũng được."
 +
-+#, fuzzy
 +#~ msgid "Invalid username"
-+#~ msgstr "Gõ tên dùng không hợp lệ rồi."
++#~ msgstr "Tên người dùng không hợp lệ"
 +
 +#~ msgid ""
 +#~ "The user name you entered is invalid. Note that usernames must start with "
@@ -2715,17 +2640,15 @@
 +#~ "với một chữ thường, và sau đó có thể chứa bất cứ chữ thường và số nào "
 +#~ "theo thứ tự nào cũng được."
 +
-+#, fuzzy
 +#~ msgid "Choose a password for the new user:"
-+#~ msgstr "Hãy gõ mật khẩu:"
++#~ msgstr "Hãy chọn mật khẩu cho người dùng mới:"
 +
-+#, fuzzy
 +#~ msgid ""
 +#~ "A good password will contain a mixture of letters, numbers and "
 +#~ "punctuation and should be changed at regular intervals."
 +#~ msgstr ""
-+#~ "Một mật khẩu tốt sẽ chứa cả chữ, số và sự chấm câu đều theo thứ tự nào, "
-+#~ "và sẽ được thay đổi một cách đều đặn."
++#~ "Một mật khẩu tốt chứa cả chữ, số và chấm câu được trộn với nhau, và nên "
++#~ "được thay đổi theo định kỷ."
 +
 +#~ msgid "Re-enter password to verify:"
 +#~ msgstr "Hãy gỏ lại mật khẩu cần xác nhận:"
@@ -2735,21 +2658,25 @@
 +#~ "correctly."
 +#~ msgstr "Hãy gõ lại mật khầu người dùng ấy, để xác nhận đã gõ nó cho đúng."
 +
-+#, fuzzy
 +#~ msgid "Password input error"
-+#~ msgstr "Lỗi gõ mật khẩu."
++#~ msgstr "Lỗi gõ mật khẩu"
 +
 +#~ msgid "The two passwords you entered were not the same. Please try again."
 +#~ msgstr "Bạn đã gõ hai mật khẩu khác nhau. Hãy thử lại."
 +
-+#, fuzzy
 +#~ msgid "Empty password"
-+#~ msgstr "Mật khẩu chủ:"
++#~ msgstr "Mật khẩu rỗng"
 +
++#~ msgid ""
++#~ "You entered an empty password, which is not allowed. Please choose a non-"
++#~ "empty password."
++#~ msgstr ""
++#~ "Bạn đã nhập một mật khẩu rỗng: không cho phép kiểu này. Hãy chọn một mật "
++#~ "khẩu không rỗng."
++
 +#~ msgid "Enable shadow passwords?"
 +#~ msgstr "Hiệu lực mật khẩu đổ bóng (shadow passwords) không?"
 +
-+#, fuzzy
 +#~ msgid ""
 +#~ "Shadow passwords make your system more secure because nobody is able to "
 +#~ "view even encrypted passwords. The passwords are stored in a separate "
@@ -2757,15 +2684,72 @@
 +#~ "passwords is strongly recommended, except in a few cases such as NIS "
 +#~ "environments."
 +#~ msgstr ""
-+#~ "Mật khẩu đổ bóng làm cho hệ thống bạn bảo mật hơn vì không có ai có thể "
-+#~ "ngay cả mật khẩu đã mã hóa. Mọi mật khẩu được cất giữ vào một tập tin "
-+#~ "riêng chỉ đọc được do chương trình đặc biệt. Sử dụng mật khẩu đổ bóng "
-+#~ "được khuyến khích nhiều. Tuy nhiên, nếu bạn sẽ sử dụng NIS thì có lẽ sẽ "
-+#~ "gặp khó khăn."
++#~ "Mật khẩu đổ bóng (shadow passwords) tăng cấp bảo mật lên trong hệ thống "
++#~ "bạn, vì không có ai có thể xem ngay cả mật khẩu được mật mã. Các mật khẩu "
++#~ "được lưu vào một tập tin riêng mà chỉ chương trình đặc biệt có đọc được. "
++#~ "Khuyến khích nặng bạn sử dụng mật khẩu đổ bóng, trù trong vài trường hợp "
++#~ "như môi trường NIS."
 +
-+#~ msgid "usage: %s [-e]\n"
-+#~ msgstr "cách sử dụng: %s [-e]\n"
++#~ msgid "no change"
++#~ msgstr "chưa thay đổi gì"
 +
++#~ msgid "a palindrome"
++#~ msgstr "một từ đọc xuôi ngược đều giống như nhau"
++
++#~ msgid "case changes only"
++#~ msgstr "chỉ thay đổi chữ hoa/thường"
++
++#~ msgid "too similar"
++#~ msgstr "quá tương tự"
++
++#~ msgid "too simple"
++#~ msgstr "quá đơn giản"
++
++#~ msgid "rotated"
++#~ msgstr "đã xoay"
++
++#~ msgid "too short"
++#~ msgstr "quá ngắn"
++
++#~ msgid "No utmp entry.  You must exec \"login\" from the lowest level \"sh\""
++#~ msgstr ""
++#~ "Không có mục nhập «utmp». Bạn phải thực hiện «login» (đăng nhập) từ cấp "
++#~ "thấp nhất «sh»."
++
++#~ msgid "Unable to determine your tty name."
++#~ msgstr "Không thể quyết định tên «tty» của bạn."
++
++#~ msgid "%s: failed to drop privileges (%s)\n"
++#~ msgstr "%s: không loại bỏ quyền được (%s)\n"
++
++#~ msgid "usage: %s [--encrypted] [--md5]\n"
++#~ msgstr ""
++#~ "cách sử dụng: %s [--encrypted] [--md5]\n"
++#~ "(encrypted: được mật mã)\n"
++
++#~ msgid "login: PAM Failure, aborting: %s\n"
++#~ msgstr "đăng nhập: lỗi PAM nên hủy bỏ: %s\n"
++
++#~ msgid ""
++#~ "Login incorrect\n"
++#~ "\n"
++#~ msgstr ""
++#~ "Đăng nhập không đúng\n"
++#~ "\n"
++
++#~ msgid "login: failure forking: %s"
++#~ msgstr "đăng nhập: lỗi tạo tiến trình con: %s"
++
++#~ msgid "login time exceeded\r\n"
++#~ msgstr "thời hạn đăng nhập bị vượt quá\r\n"
++
++#~ msgid "%s: failure forking: %s"
++#~ msgstr "%s: lỗi tạo tiến trình con: %s"
++
++# Variable: don't translate / Biến: đừng dịch
++#~ msgid "%s: %s\n"
++#~ msgstr "%s: %s\n"
++
 +#~ msgid "Empty password was entered."
 +#~ msgstr "Đã gõ mật khẩu rỗng."
 +

Modified: branches/experimental/debian/patches/206_ko-manpages.dpatch
===================================================================
--- branches/experimental/debian/patches/206_ko-manpages.dpatch	2005-07-24 21:43:03 UTC (rev 406)
+++ branches/experimental/debian/patches/206_ko-manpages.dpatch	2005-07-24 23:22:19 UTC (rev 407)
@@ -1,34 +1,12 @@
-Index: shadow-4.0.3/man/ko/newgrp.1
+Index: shadow-4.0.3/man/ko/Makefile.am
 ===================================================================
---- shadow-4.0.3.orig/man/ko/newgrp.1	2000-04-22 14:59:03.000000000 +0200
-+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
-@@ -1,29 +0,0 @@
--.\" Original author unknown.  This man page is in the public domain.
--.\" Modified Sat Oct  9 17:46:48 1993 by faith at cs.unc.edu
--.TH NEWGRP 1 "9 October 1993" "Linux 1.2" "Linux Programmer's Manual"
--.SH NAME
--newgrp \- ÀÚ½ÅÀÌ ¼Ò¼ÓµÈ ±×·ìÀ» »õ ±×·ìÀ¸·Î ¹Ù²Û´Ù.
--.SH SYNOPSIS
--.BI "newgrp [ " group " ]"
--.SH DESCRIPTION
--.B Newgrp
--¸í·ÉÀº 
--changes the group identification of its caller, analogously to
--.BR login (1).
--¸í·ÉÀ¸·Î ·Î±×ÀÎ ÇÒ ¶§ ½Äº°µÇ´Â ±×·ìÀ» ¹Ù²Û´Ù. 
--\fIgroup\fRÀ¸·Î »ç¿ëµÉ ¼ö ÀÖ´Â °ªÀº /etc/group ÆÄÀϾȿ¡ 
--ÀÖ´Â ±×·ìÀÇ À̸§À̳ª, GID °ªÀÌ¿©¾ß Çϸç, 
--¸í·ÉÇà ÀÎÀÚ¿¡¼­ ÀÌ °ªÀ» Ưº°È÷ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é, ÇöÀç ÀÚ½ÅÀÇ 
--±×·ìÀ¸·Î ¹Ù²Û´Ù. 
--.LP
--.SH FILES
--.I /etc/group
--.br
--.I /etc/passwd
--
--.SH "SEE ALSO"
--.BR login "(1), " group (5)
--
--.SH AUTHOR
--Originally by Michael Haardt. Currently maintained by 
--Peter Orbaek (poe at daimi.aau.dk).
+--- shadow-4.0.3.orig/man/ko/Makefile.am	2002-03-13 20:02:02.000000000 +0100
++++ shadow-4.0.3/man/ko/Makefile.am	2005-07-23 13:27:47.000000000 +0200
+@@ -5,7 +5,6 @@
+ 	chfn.1 \
+ 	chsh.1 \
+ 	login.1 \
+-	newgrp.1 \
+ 	passwd.5
+ 
+ EXTRA_DIST = $(man_MANS) \

Copied: branches/experimental/debian/patches/207_id-manpages (from rev 406, trunk/debian/patches/207_id-manpages)

Deleted: branches/experimental/debian/patches/311_high-uids.dpatch
===================================================================
--- branches/experimental/debian/patches/311_high-uids.dpatch	2005-07-24 21:43:03 UTC (rev 406)
+++ branches/experimental/debian/patches/311_high-uids.dpatch	2005-07-24 23:22:19 UTC (rev 407)
@@ -1,38 +0,0 @@
-#! /bin/sh -e
-## 011_high-uids.patch by Christian Perrier <bubulle at debian.org>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Include upstream changes for high UID support in faillog and lastlog
-## DP: Debian bug #280212
-
-if [ $# -lt 1 ]; then
-    echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
-    exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch} ${2:+-d $2}"
-
-case "$1" in
-    -patch) patch -p1 ${patch_opts} < $0;;
-    -unpatch) patch -R -p1 ${patch_opts} < $0;;
-    *)
-        echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
-        exit 1;;
-esac
-
-exit 0
-
- at DPATCH@
-
---- shadow-4.0.3.ori/configure.in	2005-01-10 08:26:18.000000000 +0100
-+++ shadow-4.0.3/configure.in	2005-01-10 08:42:08.000000000 +0100
-@@ -6,7 +6,7 @@
- dnl Some hacks...
- test "$prefix" = "NONE" && prefix="/usr"
- test "$prefix" = "/usr" && exec_prefix=""
--test "$CFLAGS" = "" && CFLAGS="-O2 -Wall"
-+test "$CFLAGS" = "" && CFLAGS="-O2 -Wall -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
- test "$LDFLAGS" = "" && LDFLAGS="-s"
- 
- AM_DISABLE_SHARED

Modified: branches/experimental/debian/patches/356_su-stop_cont-proxy
===================================================================
--- branches/experimental/debian/patches/356_su-stop_cont-proxy	2005-07-24 21:43:03 UTC (rev 406)
+++ branches/experimental/debian/patches/356_su-stop_cont-proxy	2005-07-24 23:22:19 UTC (rev 407)
@@ -3,7 +3,7 @@
 	otherwise e.g. bash's "suspend" command won't work.
 
 Status wrt upstream: Fixed in upstream the same way, with slightly different
-	code inside run_shell(), since 4.0.5
+	code inside run_shell() and signal handlig, since 4.0.5
 
 Notes:	Affects only operation with CLOSE_SESSIONS=yes. When it's set to "no",
 	newgrp doesn't fork and create child process, it just calls exec(),
@@ -34,21 +34,48 @@
 	Closes: 314727
 	(suspend command from su shell fails to return to parent shell)
 
+	Upstream blocks all signals except INTR and ALRM, our code doesn't.
+	This led to problem with zsh as child shell. Zsh does not create
+	separate pgrp for itself and when suspends, it sends TSTP to parent
+	"su" process too. su had TSTP unblocked and default handler set
+	for it. I changed su.c to block TSTP (also TTIN, TTOU, QUIT and HUP,
+	-- the same as in newgrp.c)
+
+	Closes: 317747
+	(su -m / suspend / fg broken with zsh)
+
 Index: shadow-4.0.3/src/su.c
 ===================================================================
---- shadow-4.0.3.orig/src/su.c	2005-06-20 11:15:03.000000000 +0300
-+++ shadow-4.0.3/src/su.c	2005-06-20 11:35:27.000000000 +0300
-@@ -737,7 +737,7 @@
+--- shadow-4.0.3.orig/src/su.c	2005-07-11 16:12:38.000000000 +0300
++++ shadow-4.0.3/src/su.c	2005-07-11 16:18:01.000000000 +0300
+@@ -739,9 +739,14 @@
  	   around to close sessions */
  	if (getdef_bool("CLOSE_SESSIONS")) {
  		pid_t pid;
 -		int status;
 +		int status, wpid;
  
- 		signal(SIGINT, SIG_IGN);
+-		signal(SIGINT, SIG_IGN);
++		signal (SIGINT, SIG_IGN);
++		signal (SIGQUIT, SIG_IGN);
++		signal (SIGHUP, SIG_IGN);
++		signal (SIGTSTP, SIG_IGN);
++		signal (SIGTTIN, SIG_IGN);
++		signal (SIGTTOU, SIG_IGN);
  		pid = fork();
-@@ -754,7 +754,17 @@
- 			signal(SIGINT, SIG_DFL);
+ 
+ 		switch(pid) {
+@@ -753,10 +758,25 @@
+ 			pam_end(pamh, PAM_ABORT);
+ 			exit(1);
+ 		case 0: /* child */
+-			signal(SIGINT, SIG_DFL);
++			signal (SIGINT, SIG_DFL);
++			signal (SIGQUIT, SIG_DFL);
++			signal (SIGHUP, SIG_DFL);
++			signal (SIGTSTP, SIG_DFL);
++			signal (SIGTTIN, SIG_DFL);
++			signal (SIGTTOU, SIG_DFL);
  			break;
  		default: /* parent */
 -			waitpid(pid, &status, 0);

Copied: branches/experimental/debian/patches/361_lastlog_8_sparse (from rev 406, trunk/debian/patches/361_lastlog_8_sparse)

Copied: branches/experimental/debian/patches/363_su_ignore_SIGINT (from rev 406, trunk/debian/patches/363_su_ignore_SIGINT)

Modified: branches/experimental/debian/patches/423_su_arguments_are_concatenated
===================================================================
--- branches/experimental/debian/patches/423_su_arguments_are_concatenated	2005-07-24 21:43:03 UTC (rev 406)
+++ branches/experimental/debian/patches/423_su_arguments_are_concatenated	2005-07-24 23:22:19 UTC (rev 407)
@@ -1,3 +1,14 @@
+Goal: document in the source and man pages why the arguments are
+      concatenated and why they are always provided to the shell with the
+      -c option of that shell.
+Fixes: #317264
+       see also #276419
+
+Status wrt upstream: This is a Debian specific patch
+
+Note: the fix of the man page is still missing.
+      (to be taken from the trunk)
+
 Index: shadow-4.0.10/src/su.c
 ===================================================================
 --- shadow-4.0.10.orig/src/su.c	2005-07-24 10:50:14.000000000 +0200

Deleted: branches/experimental/debian/patches/425_lastlog_8_sparse
===================================================================
--- branches/experimental/debian/patches/425_lastlog_8_sparse	2005-07-24 21:43:03 UTC (rev 406)
+++ branches/experimental/debian/patches/425_lastlog_8_sparse	2005-07-24 23:22:19 UTC (rev 407)
@@ -1,45 +0,0 @@
-Goal: Document that lastlog is a sparse file, and don't need to be rotated.
-Fixes: 219321
-
-Status wrt upstream: It should be forwarded to upstream.
-
-Index: shadow-4.0.10/man/lastlog.8
-===================================================================
---- shadow-4.0.10.orig/man/lastlog.8	2005-06-16 18:01:32.000000000 +0200
-+++ shadow-4.0.10/man/lastlog.8	2005-07-09 13:41:41.000000000 +0200
-@@ -66,6 +66,13 @@
- .PP
- Large gaps in uid numbers will cause the lastlog program to run longer with no output to the screen (i\&.e\&. if mmdf=800 and last uid=170, program will appear to hang as it processes uid 171\-799)\&.
- 
-+.SH NOTE
-+The \fIlastlog\fR file is a database which contains info on the last login of
-+each user.  You should not rotate it.  It is a sparse file, so its size on the
-+disk is much smaller than the one shown by \fBls \-l\fR (which can indicate a
-+really big file if you have an high UID).  You can display its real size with
-+\fBls \-s\fR.
-+
- .SH "AUTHORS"
- 
- .PP
-Index: shadow-4.0.10/man/lastlog.8.xml
-===================================================================
---- shadow-4.0.10.orig/man/lastlog.8.xml	2005-06-16 18:01:52.000000000 +0200
-+++ shadow-4.0.10/man/lastlog.8.xml	2005-07-09 13:58:48.000000000 +0200
-@@ -110,6 +110,17 @@
-     </para>
-   </refsect1>
-   
-+  <refsect1 id='note'>
-+      <title>NOTE</title>
-+      <para>The <filename>lastlog</filename> file is a database which
-+        contains info on the last login of each user.  You should not rotate
-+        it.  It is a sparse file, so its size on the disk is much smaller
-+        than the one shown by <command>ls -l</command> (which can indicate a
-+        really big file if you have an high UID).  You can display its real
-+        size with <command>ls -s</command>.
-+      </para>
-+  </refsect1>
-+
-   <refsect1 id='authors'>
-     <title>AUTHORS</title>
-     <para>Julianne Frances Haugh (jockgrrl at ix.netcom.com)

Modified: branches/experimental/debian/patches/426_grpck_group-gshadow_members_consistency
===================================================================
--- branches/experimental/debian/patches/426_grpck_group-gshadow_members_consistency	2005-07-24 21:43:03 UTC (rev 406)
+++ branches/experimental/debian/patches/426_grpck_group-gshadow_members_consistency	2005-07-24 23:22:19 UTC (rev 407)
@@ -9,8 +9,8 @@
 
 Index: shadow-4.0.3/src/grpck.c
 ===================================================================
---- shadow-4.0.3.orig/src/grpck.c	2005-06-24 00:02:49.000000000 +0200
-+++ shadow-4.0.3/src/grpck.c	2005-06-26 22:05:06.668559000 +0200
+--- shadow-4.0.3.orig/src/grpck.c	2005-07-08 03:22:42.000000000 +0200
++++ shadow-4.0.3/src/grpck.c	2005-07-08 03:22:45.000000000 +0200
 @@ -144,7 +144,7 @@
  {
  	int arg;
@@ -29,7 +29,7 @@
  
  			__gr_del_entry (gre);
  			continue;
-@@ -432,11 +432,76 @@
+@@ -432,11 +432,78 @@
  
  			SYSLOG ((LOG_INFO, "delete member `%s' group `%s'",
  				 grp->gr_mem[i], grp->gr_name));
@@ -56,6 +56,7 @@
 +				if (yes_or_no ())
 +				{
 +					struct sgrp sg;
++					struct group gr;
 +					static char *empty = NULL;
 +					sg.sg_name   = grp->gr_name;
 +					sg.sg_passwd = grp->gr_passwd;
@@ -73,11 +74,12 @@
 +						exit (E_CANT_UPDATE);
 +					}
 +					/* remove password from /etc/group */
-+					grp->gr_passwd = SHADOW_PASSWD_STRING; /* XXX warning: const */
-+					if (!gr_update (grp)) {
++					gr = *grp;
++					gr.gr_passwd = SHADOW_PASSWD_STRING; /* XXX warning: const */
++					if (!gr_update (&gr)) {
 +						fprintf (stderr,
 +						         _("%s: can't update entry for group %s\n"),
-+						         Prog, grp->gr_name);
++						         Prog, gr.gr_name);
 +						exit (E_CANT_UPDATE);
 +					}
 +				}
@@ -107,7 +109,7 @@
  	}
  
  #ifdef	SHADOWGRP
-@@ -483,7 +548,7 @@
+@@ -483,7 +550,7 @@
  		      delete_sg:
  			SYSLOG ((LOG_INFO, "delete shadow line `%s'",
  				 sge->line));
@@ -116,7 +118,7 @@
  
  			__sgr_del_entry (sge);
  			continue;
-@@ -541,12 +606,32 @@
+@@ -541,12 +608,32 @@
  		 * Make sure this entry exists in the /etc/group file.
  		 */
  
@@ -151,7 +153,7 @@
  		}
  
  		/*
-@@ -574,7 +659,7 @@
+@@ -574,7 +661,7 @@
  			SYSLOG ((LOG_INFO,
  				 "delete admin `%s' from shadow group `%s'",
  				 sgr->sg_adm[i], sgr->sg_name));
@@ -160,7 +162,7 @@
  			delete_member (sgr->sg_adm, sgr->sg_adm[i]);
  			sge->changed = 1;
  			__sgr_set_changed ();
-@@ -603,7 +688,7 @@
+@@ -603,7 +690,7 @@
  			SYSLOG ((LOG_INFO,
  				 "delete member `%s' from shadow group `%s'",
  				 sgr->sg_mem[i], sgr->sg_name));
@@ -169,7 +171,7 @@
  			delete_member (sgr->sg_mem, sgr->sg_mem[i]);
  			sge->changed = 1;
  			__sgr_set_changed ();
-@@ -614,11 +699,11 @@
+@@ -614,11 +701,11 @@
  #endif				/* SHADOWGRP */
  
  	/*
@@ -193,7 +195,7 @@
 Index: shadow-4.0.3/src/pwck.c
 ===================================================================
 --- shadow-4.0.3.orig/src/pwck.c	2002-01-10 14:01:28.000000000 +0100
-+++ shadow-4.0.3/src/pwck.c	2005-06-26 21:51:43.068559000 +0200
++++ shadow-4.0.3/src/pwck.c	2005-07-08 08:48:15.000000000 +0200
 @@ -45,6 +45,7 @@
  
  #ifdef SHADOWPWD
@@ -202,7 +204,25 @@
  extern void __spw_del_entry (const struct commonio_entry *);
  extern struct commonio_entry *__spw_get_head (void);
  #endif
-@@ -421,6 +422,51 @@
+@@ -127,7 +128,7 @@
+ {
+ 	int arg;
+ 	int errors = 0;
+-	int deleted = 0;
++	int changed = 0;
+ 	struct commonio_entry *pfe, *tpfe;
+ 	struct passwd *pwd;
+ 	int sort_mode = 0;
+@@ -313,7 +314,7 @@
+ 		      delete_pw:
+ 			SYSLOG ((LOG_INFO, "delete passwd line `%s'",
+ 				 pfe->line));
+-			deleted++;
++			changed++;
+ 
+ 			__pw_del_entry (pfe);
+ 			continue;
+@@ -421,6 +422,55 @@
  				pwd->pw_name, pwd->pw_shell);
  			errors++;
  		}
@@ -223,6 +243,7 @@
 +				if (yes_or_no())
 +				{
 +					struct spwd sp;
++					struct passwd pw;
 +					sp.sp_namp = pwd->pw_name;
 +					sp.sp_pwdp = pwd->pw_passwd;
 +					sp.sp_min = getdef_num ("PASS_MIN_DAYS", -1);
@@ -232,6 +253,8 @@
 +					sp.sp_expire = -1;
 +					sp.sp_flag = -1;
 +					sp.sp_lstchg = time ((time_t *) 0) / (24L * 3600L);
++					changed++;
++
 +					if (!spw_update (&sp))
 +					{
 +						fprintf (stderr,
@@ -240,11 +263,12 @@
 +						exit (E_CANTUPDATE);
 +					}
 +					/* remove password from /etc/passwd */
-+					pwd->pw_passwd = SHADOW_PASSWD_STRING;/* XXX warning: const */
-+					if (!pw_update (pwd)) {
++					pw = *pwd;
++					pw.pw_passwd = SHADOW_PASSWD_STRING;/* XXX warning: const */
++					if (!pw_update (&pw)) {
 +						fprintf (stderr,
 +						         _("%s: can't update passwd entry for %s\n"),
-+						         Prog, pwd->pw_name);
++						         Prog, pw.pw_name);
 +						exit (E_CANTUPDATE);
 +					}
 +				}
@@ -254,7 +278,30 @@
  	}
  
  #ifdef	SHADOWPWD
-@@ -539,7 +585,8 @@
+@@ -433,6 +483,13 @@
+ 
+ 	for (spe = __spw_get_head (); spe; spe = spe->next) {
+ 		/*
++		 * Do not treat lines which were missing in gshadow
++		 * and were added earlier.
++		 */
++		if (spe->line == NULL)
++			continue;
++
++		/*
+ 		 * If this is a NIS line, skip it. You can't "know" what NIS
+ 		 * is going to do without directly asking NIS ...
+ 		 */
+@@ -474,7 +531,7 @@
+ 		      delete_spw:
+ 			SYSLOG ((LOG_INFO, "delete shadow line `%s'",
+ 				 spe->line));
+-			deleted++;
++			changed++;
+ 
+ 			__spw_del_entry (spe);
+ 			continue;
+@@ -539,7 +596,8 @@
  			 * /etc/passwd entry and ask them to delete it.
  			 */
  
@@ -264,3 +311,24 @@
  			printf (_("delete line `%s'? "), spe->line);
  			errors++;
  
+@@ -567,11 +625,11 @@
+ #endif
+ 
+ 	/*
+-	 * All done. If there were no deletions we can just abandon any
++	 * All done. If there were no change we can just abandon any
+ 	 * changes to the files.
+ 	 */
+ 
+-	if (deleted) {
++	if (changed) {
+ 	      write_and_bye:
+ 		if (!pw_close ()) {
+ 			fprintf (stderr, _("%s: cannot update file %s\n"),
+@@ -607,5 +665,5 @@
+ 
+ 	if (errors)
+-		printf (deleted ?
++		printf (changed ?
+ 			_("%s: the files have been updated\n") :
+ 			_("%s: no changes\n"), Prog);

Modified: branches/experimental/debian/patches/429_login_FAILLOG_ENAB
===================================================================
--- branches/experimental/debian/patches/429_login_FAILLOG_ENAB	2005-07-24 21:43:03 UTC (rev 406)
+++ branches/experimental/debian/patches/429_login_FAILLOG_ENAB	2005-07-24 23:22:19 UTC (rev 407)
@@ -1,16 +1,12 @@
-Goal: ??
+Goal: Re-enable logging and displaying failures on login when login is
+      compiled with PAM and when FAILLOG_ENAB is set to yes. And create the
+      faillog file if it does not exist on postinst (as on Woody).
 Depends: 008_login_more_LOG_UNKFAIL_ENAB
+Fixes: #192849
 
-Notes:
- * I've not found a related entry in the changelog.
- * This patch looks strang to me. It adds #ifndef USE_PAM in section already
-   enclosed by either #ifdef USE_PAM or #ifndef USE_PAM.
+Note: It could be removed if pam_tally could report the number of failures
+      preceding a successful login.
 
-   IMHO, it should ignored or rewritten.
-
- src/login.c |   15 +++++++++++++--
- 1 files changed, 13 insertions(+), 2 deletions(-)
-
 Index: shadow-4.0.10/src/login.c
 ===================================================================
 --- shadow-4.0.10.orig/src/login.c	2005-07-11 19:39:14.000000000 +0300

Deleted: branches/experimental/debian/patches/430_su_ignore_SIGINT
===================================================================
--- branches/experimental/debian/patches/430_su_ignore_SIGINT	2005-07-24 21:43:03 UTC (rev 406)
+++ branches/experimental/debian/patches/430_su_ignore_SIGINT	2005-07-24 23:22:19 UTC (rev 407)
@@ -1,33 +0,0 @@
-Goal: Ignore SIGINT while authenticating. A ^C could defeat the waiting
-      period and permit brute-force attacks.
-      Also ignore SIGQUIT.
-      
-Fixes: #52372 (SIGINT), #288827 (SIGQUIT)
-
-Status wrt upstream: It should be forwarded to upstream.
-
-Note: Even with a waiting period, a brute-force attack can be performed
-      by parralelizing attacks (or sending a KILL signal).
-      The gain in security is minor.
-
-Index: shadow-4.0.3/src/su.c
-===================================================================
---- shadow-4.0.3.orig/src/su.c	2005-06-21 23:26:13.808723000 +0200
-+++ shadow-4.0.3/src/su.c	2005-06-21 23:27:58.518723000 +0200
-@@ -538,6 +538,8 @@
- 	if (shell == 0)
- 		shell = (char *) strdup (pwent.pw_shell);
- 
-+	signal(SIGINT, SIG_IGN);
-+	signal(SIGQUIT, SIG_IGN);
- #ifdef USE_PAM
- 	ret = pam_authenticate (pamh, 0);
- 	if (ret != PAM_SUCCESS) {
-@@ -629,6 +631,7 @@
- #endif				/* !USE_PAM */
- 
- 	signal (SIGINT, SIG_DFL);
-+	signal (SIGQUIT, SIG_DFL);
- 	cp = getdef_str ((pwent.pw_uid == 0) ? "ENV_SUPATH" : "ENV_PATH");
- #if 0
- 	addenv (cp ? cp : "PATH=/bin:/usr/bin", NULL);

Copied: branches/experimental/debian/patches/443_chage_exit_values (from rev 406, trunk/debian/patches/443_chage_exit_values)
===================================================================
--- trunk/debian/patches/443_chage_exit_values	2005-07-24 21:43:03 UTC (rev 406)
+++ branches/experimental/debian/patches/443_chage_exit_values	2005-07-24 23:22:19 UTC (rev 407)
@@ -0,0 +1,41 @@
+Goal: differentiate the different failure causes by the exit value
+      This will permit to adduser to detect if chage failed because the
+      system doesn't have shadowed passwords.
+Fixes: #317012
+
+Status wrt upstream: upstream only differentiate E_SUCCESS and E_NOPERM,
+                     other values could be used (E_USAGE, E_NOTFOUND or
+                     E_PW_UPDATE - like in groupdel/userdel)
+                     I chose to only have E_SUCCESS/E_NOPERM, for future
+                     backward compatibility.
+
+Note:  upstream still has an exit (1)
+
+Index: shadow-4.0.10/src/chage.c
+===================================================================
+--- shadow-4.0.10.orig/src/chage.c	2005-07-25 01:37:49.000000000 +0300
++++ shadow-4.0.10/src/chage.c	2005-07-25 01:45:55.000000000 +0300
+@@ -81,6 +81,7 @@
+ 
+ #define E_SUCCESS	0	/* success */
+ #define E_NOPERM	1	/* permission denied */
++#define E_NOT_SHADOWED	3	/* no shadow password file */
+ 
+ /* local function prototypes */
+ static void usage (void);
+@@ -543,6 +544,15 @@
+ 	pwent = *pw;
+ 	STRFCPY (name, pwent.pw_name);
+ 
++	if (!spw_file_present()) {
++		fprintf (stderr,
++		         _("%s: the shadow password file is not present\n"),
++		         Prog);
++		SYSLOG ((LOG_ERR, "can't find the shadow password file"));
++		closelog ();
++		exit (E_NOT_SHADOWED);
++	}
++
+ 	/*
+ 	 * For shadow password files we have to lock the file and read in
+ 	 * the entries as was done for the password file. The user entries

Copied: branches/experimental/debian/patches/444_no_strip_during_install (from rev 406, trunk/debian/patches/444_no_strip_during_install)
===================================================================
--- trunk/debian/patches/444_no_strip_during_install	2005-07-24 21:43:03 UTC (rev 406)
+++ branches/experimental/debian/patches/444_no_strip_during_install	2005-07-24 23:22:19 UTC (rev 407)
@@ -0,0 +1,15 @@
+Note: not needed for 4.0.11
+
+Index: shadow-4.0.3/configure.in
+===================================================================
+--- shadow-4.0.3.orig/configure.in	2005-07-12 20:59:29.000000000 +0300
++++ shadow-4.0.3/configure.in	2005-07-12 21:01:46.000000000 +0300
+@@ -7,7 +7,7 @@
+ test "$prefix" = "NONE" && prefix="/usr"
+ test "$prefix" = "/usr" && exec_prefix=""
+ test "$CFLAGS" = "" && CFLAGS="-O2 -Wall"
+-test "$LDFLAGS" = "" && LDFLAGS="-s"
++dnl test "$LDFLAGS" = "" && LDFLAGS="-s"
+ 
+ AM_DISABLE_SHARED
+ AM_ENABLE_STATIC

Modified: branches/experimental/debian/patches/series
===================================================================
--- branches/experimental/debian/patches/series	2005-07-24 21:43:03 UTC (rev 406)
+++ branches/experimental/debian/patches/series	2005-07-24 23:22:19 UTC (rev 407)
@@ -30,7 +30,7 @@
 437_su_add_GNU_options_4
 437_su_add_GNU_options_5
 437_su_add_GNU_options_6
-430_su_ignore_SIGINT
+363_su_ignore_SIGINT
 # 008_su_check_user_earlier # not used with 437_su_add_GNU_options_4
 008_su_no_sanitize_env
 # updated, but depends on 437_su_add_GNU_options
@@ -138,10 +138,12 @@
 #422_getdate.c_generated_file 
 010_more-i18ned-messages
 # 356_su-stop_cont-proxy # depends on 439_su_PAM_session
+# NOTE: you must use only one of these 423
+# See bug #317264, #276419
 # 423_su_pass_args_without_concatenation # upstream don't suffer from this
 423_su_arguments_are_concatenated
 424_pwck.8_quiet_option
-425_lastlog_8_sparse
+# 361_lastlog_8_sparse # will be in 4.0.11
 357_newgrp-stop_cont-proxy
 426_grpck_group-gshadow_members_consistency
 427_chage_expiry_0
@@ -150,3 +152,7 @@
 444_missing_Italian_manpages
 362_warning_messages
 999_hack_build_package
+443_chage_exit_values
+# 443_chage_exit_values
+# 444_no_strip_during_install # not needed
+#207_id-manpages

Modified: branches/experimental/debian/rules
===================================================================
--- branches/experimental/debian/rules	2005-07-24 21:43:03 UTC (rev 406)
+++ branches/experimental/debian/rules	2005-07-24 23:22:19 UTC (rev 407)
@@ -1,5 +1,16 @@
 #!/usr/bin/make -f
 
+# This is the debhelper compatibility version to use.
+export DH_COMPAT=4
+ 
+CFLAGS = -g -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+  CFLAGS += -O0
+else
+  CFLAGS += -O2
+endif
+export CFLAGS
+
 config_options := --disable-shared --without-libcrack --mandir=/usr/share/man --with-libpam
 
 DEB_HOST_ARCH_OS := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
@@ -119,6 +130,9 @@
 	# Lintian overrides files
 	install -c -m 444  debian/login.lintian-overrides debian/login/usr/share/lintian/overrides/login
 	install -c -m 444  debian/passwd.lintian-overrides debian/passwd/usr/share/lintian/overrides/passwd
+	# Linda overrides files
+	install -c -m 444  debian/login.linda-overrides debian/login/usr/share/linda/overrides/login
+	install -c -m 444  debian/passwd.linda-overrides debian/passwd/usr/share/linda/overrides/passwd
 
 	dh_installdocs
 	dh_installexamples




More information about the Pkg-shadow-commits mailing list