summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author3 <mkp@mkp.net>1999-09-23 00:30:48 +0000
committerMartin Peterson <mkp@src.gnome.org>1999-09-23 00:30:48 +0000
commited25a765864cefb053d7fe719f0d2da30c704173 (patch)
treeed7f96d678a8b81b5757e81e07da759bbb4b2dbc
parent79b4d46e9054e12261947585f2cd8e41723a00fb (diff)
downloadgdm-ed25a765864cefb053d7fe719f0d2da30c704173.tar.gz
Ripped out some work-in-progress code that didn't make it in time for
1999-09-23 <mkp@mkp.net> * Ripped out some work-in-progress code that didn't make it in time for beta3. Postponed for beta4. * Loads of fixes. Thanks to Elliot. * daemon/filecheck.c (gdm_file_check): Log warning if critical files are missing. 1999-09-21 <mkp@mkp.net> * daemon/verify.c (gdm_verify_user): Avoid exposing usernames on getpwent() failure. GdmAllowRoot is now used for non-PAM configurations only. 1999-09-13 <mkp@mkp.net> * daemon/verify.c (gdm_verify_user): Fix root logins. 1999-09-07 <mkp@mkp.net> * gui/gdmlogin.c (gdm_login_browser_select): Fixed the obscure curuser==NULL on doubleclick bug reported by Nils/Elliot.
-rw-r--r--ChangeLog26
-rw-r--r--README2
-rw-r--r--config/Makefile.am1
-rw-r--r--config/gdm.conf.in8
-rw-r--r--config/locale.alias7
-rw-r--r--configure.in2
-rw-r--r--daemon/auth.c6
-rw-r--r--daemon/choose.c70
-rw-r--r--daemon/filecheck.c15
-rw-r--r--daemon/gdm.c23
-rw-r--r--daemon/gdm.h24
-rw-r--r--daemon/server.c5
-rw-r--r--daemon/slave.c2
-rw-r--r--daemon/verify.c58
-rw-r--r--daemon/xdmcp.c70
-rw-r--r--docs/C/gdm.sgml152
-rw-r--r--gui/gdmchooser.c15
-rw-r--r--gui/gdmlogin.c65
-rw-r--r--po/da.po262
-rw-r--r--po/de.po264
-rw-r--r--po/fr.po264
21 files changed, 753 insertions, 588 deletions
diff --git a/ChangeLog b/ChangeLog
index 33e5f0b6..c584ecc3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,27 @@
-1999-09-13 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+1999-09-23 <mkp@mkp.net>
- * gui/gdmlogin.c (gdm_login_browser_select): set curuser on
- double click.
+ * Ripped out some work-in-progress code that didn't make it in
+ time for beta3. Postponed for beta4.
+
+ * Loads of fixes. Thanks to Elliot.
+
+ * daemon/filecheck.c (gdm_file_check): Log warning if critical
+ files are missing.
+
+1999-09-21 <mkp@mkp.net>
+
+ * daemon/verify.c (gdm_verify_user): Avoid exposing usernames on
+ getpwent() failure. GdmAllowRoot is now used for non-PAM
+ configurations only.
+
+1999-09-13 <mkp@mkp.net>
+
+ * daemon/verify.c (gdm_verify_user): Fix root logins.
+
+1999-09-07 <mkp@mkp.net>
+
+ * gui/gdmlogin.c (gdm_login_browser_select): Fixed the obscure
+ curuser==NULL on doubleclick bug reported by Nils/Elliot.
1999-09-03 Zbigniew Chyla <chyla@alice.ci.pwr.wroc.pl>
diff --git a/README b/README
index 4a59b24b..05b914c7 100644
--- a/README
+++ b/README
@@ -6,7 +6,7 @@
The Gnome Display Manager is a re-implementation of the well known xdm
program.
-gdm 2.0beta2 implements all significant features required for managing
+gdm 2.0beta3 implements all significant features required for managing
local and remote displays.
gdm daemon:
diff --git a/config/Makefile.am b/config/Makefile.am
index c7a03e58..4844c487 100644
--- a/config/Makefile.am
+++ b/config/Makefile.am
@@ -27,7 +27,6 @@ gnomerc: gnomerc.in Makefile
< $(srcdir)/gnomerc.in > gnomerc.tmp \
&& mv -f gnomerc.tmp gnomerc
-noinst_SCRIPTS = Gnome gnomerc
noinst_DATA = gdm.conf
EXTRA_DIST = \
diff --git a/config/gdm.conf.in b/config/gdm.conf.in
index c8e3fcd1..ecc7b67f 100644
--- a/config/gdm.conf.in
+++ b/config/gdm.conf.in
@@ -1,8 +1,8 @@
[daemon]
-Chooser=@bindir@/gdmchooser --disable-sound
-DefaultPath=/bin:/usr/bin:/usr/bin/X11:/usr/local/bin
+Chooser=@bindir@/gdmchooser --disable-sound --disable-crash-dialog
+DefaultPath=/bin:/usr/bin:/usr/bin/X11:/usr/local/bin:@bindir@
DisplayInitDir=@sysconfdir@/gdm/Init
-Greeter=@bindir@/gdmlogin --disable-sound
+Greeter=@bindir@/gdmlogin --disable-sound --disable-crash-dialog
Group=gdm
HaltCommand=/sbin/shutdown -h now
KillInitClients=1
@@ -11,7 +11,7 @@ PidFile=/var/run/gdm.pid
PostSessionScriptDir=@sysconfdir@/gdm/PostSession/
PreSessionScriptDir=@sysconfdir@/gdm/PreSession/
RebootCommand=/sbin/shutdown -r now
-RootPath=/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11:/usr/local/bin
+RootPath=/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11:/usr/local/bin:@bindir@
ServAuthDir=@authdir@
SessionDir=@sysconfdir@/gdm/Sessions/
User=gdm
diff --git a/config/locale.alias b/config/locale.alias
index b3148a4a..18b3d511 100644
--- a/config/locale.alias
+++ b/config/locale.alias
@@ -26,11 +26,10 @@
# with the rest of us. Send it to bug-gnu-utils@prep.ai.mit.edu.
czech cs_CZ.ISO-8859-2
-danish da_DK.ISO-8859-1
dansk da_DK.ISO-8859-1
deutsch de_DE.ISO-8859-1
dutch nl_NL.ISO-8859-1
-english en.ISO-8859-1
+english en_US.ISO-8859-1
finnish fi_FI.ISO-8859-1
français fr_FR.ISO-8859-1
french fr_FR.ISO-8859-1
@@ -41,10 +40,10 @@ hungarian hu_HU.ISO-8859-2
icelandic is_IS.ISO-8859-1
italian it_CH.ISO-8859-1
japanese ja_JP.EUC
-norwegian no_NO.ISO-8859-1
+norsk no_NO.ISO-8859-1
polish pl_PL.ISO-8859-2
portuguese pt_PT.ISO-8859-1
-rumanian ro_RO.ISO-8859-2
+romanian ro_RO.ISO-8859-2
russian ru_SU.ISO-8859-5
slovak sk_SK.ISO-8859-2
slovene sl_CS.ISO-8859-2
diff --git a/configure.in b/configure.in
index 1793bc4b..10d51b6c 100644
--- a/configure.in
+++ b/configure.in
@@ -1,7 +1,7 @@
AC_INIT(daemon/gdm.h)
AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(gdm,2.0beta2)
+AM_INIT_AUTOMAKE(gdm,2.0beta3)
AM_MAINTAINER_MODE
AM_ACLOCAL_INCLUDE(macros)
diff --git a/daemon/auth.c b/daemon/auth.c
index 308cbe4f..9c76f01d 100644
--- a/daemon/auth.c
+++ b/daemon/auth.c
@@ -85,7 +85,7 @@ gdm_auth_secure_display (GdmDisplay *d)
* have to eat up old authentication cookies before baking new
* ones...
*/
- if (d->type == DISPLAY_LOCAL && d->auths) {
+ if (d->type == TYPE_LOCAL && d->auths) {
GSList *alist = d->auths;
while (alist && alist->data) {
@@ -114,7 +114,7 @@ gdm_auth_secure_display (GdmDisplay *d)
}
/* Local access */
- if (d->type == DISPLAY_LOCAL) {
+ if (d->type == TYPE_LOCAL) {
gdm_debug ("gdm_auth_secure_display: Setting up socket access");
xa = g_new0 (Xauth, 1);
@@ -189,7 +189,7 @@ gdm_auth_user_add (GdmDisplay *d, uid_t user, gchar *homedir)
FILE *af;
GSList *auths = NULL;
- if (!d || !user)
+ if (!d)
return (FALSE);
gdm_debug ("gdm_auth_user_add: Adding cookie for %d", user);
diff --git a/daemon/choose.c b/daemon/choose.c
index 5ba46085..062964dd 100644
--- a/daemon/choose.c
+++ b/daemon/choose.c
@@ -54,8 +54,8 @@ extern gint GdmMaxIndirectWait; /* Maximum age before a pending session is remov
extern void gdm_debug (gchar *, ...);
-static GdmIndirectDisplay *gdm_choose_indirect_alloc (struct in_addr *);
-static GdmIndirectDisplay *gdm_choose_indirect_lookup (struct in_addr *);
+GdmIndirectDisplay *gdm_choose_indirect_alloc (struct sockaddr_in *clnt_sa);
+GdmIndirectDisplay *gdm_choose_indirect_lookup (struct sockaddr_in *clnt_sa);
static void gdm_choose_indirect_dispose (GdmIndirectDisplay *);
gboolean gdm_choose_socket_handler (GIOChannel *source, GIOCondition cond, gint fd);
@@ -74,78 +74,80 @@ gdm_choose_socket_handler (GIOChannel *source, GIOCondition cond, gint fd)
gdm_debug ("gdm_choose_socket_handler: Read `%s'", buf);
+ /* gdm_choose_indirect_alloc (); */
+
return (TRUE);
}
-static GdmIndirectDisplay *
-gdm_choose_indirect_alloc (struct in_addr *addr)
+GdmIndirectDisplay *
+gdm_choose_indirect_alloc (struct sockaddr_in *clnt_sa)
{
- GdmIndirectDisplay *i;
+ GdmIndirectDisplay *id;
- if (!addr)
+ if (!clnt_sa)
return (NULL);
- i = g_new0 (GdmIndirectDisplay, 1);
+ id = g_new0 (GdmIndirectDisplay, 1);
- if (!i)
+ if (!id)
return (NULL);
- i->addr->s_addr = addr->s_addr;
- i->dispnum = -1;
- i->manager = NULL;
- i->acctime = time (NULL);
+ id->dsp_sa = g_new0 (struct sockaddr_in, 1);
+ memcpy (id->dsp_sa, clnt_sa, sizeof (struct sockaddr_in));
+ id->acctime = time (NULL);
- indirect = g_slist_append (indirect, i);
+ indirect = g_slist_append (indirect, id);
ipending++;
gdm_debug ("gdm_choose_display_alloc: display=%s, pending=%d ",
- inet_ntoa (*i->addr), ipending);
-
- return (i);
+ inet_ntoa (id->dsp_sa->sin_addr), ipending);
+
+ return (id);
}
-static GdmIndirectDisplay *
-gdm_choose_indirect_lookup (struct in_addr *addr)
+GdmIndirectDisplay *
+gdm_choose_indirect_lookup (struct sockaddr_in *clnt_sa)
{
GSList *ilist = indirect;
- GdmIndirectDisplay *i;
+ GdmIndirectDisplay *id;
while (ilist) {
- i = (GdmIndirectDisplay *) ilist->data;
+ id = (GdmIndirectDisplay *) ilist->data;
- if (i && time (NULL) > i->acctime + GdmMaxIndirectWait) {
+ if (id && time (NULL) > id->acctime + GdmMaxIndirectWait) {
gdm_debug ("gdm_choose_indirect_check: Disposing stale INDIRECT query from %s",
- inet_ntoa (*i->addr));
- gdm_choose_indirect_dispose (i);
+ inet_ntoa (clnt_sa->sin_addr));
+ gdm_choose_indirect_dispose (id);
}
- if (i && i->addr->s_addr == addr->s_addr)
- return (i);
+ if (id && id->dsp_sa->sin_addr.s_addr == clnt_sa->sin_addr.s_addr)
+ return (id);
ilist = ilist->next;
}
-
+
gdm_debug ("gdm_choose_indirect_lookup: Host %s not found",
- inet_ntoa (*addr));
+ inet_ntoa (clnt_sa->sin_addr));
return (NULL);
}
static void
-gdm_choose_indirect_dispose (GdmIndirectDisplay *i)
+gdm_choose_indirect_dispose (GdmIndirectDisplay *id)
{
- gdm_debug ("gdm_choose_indirect_dispose: Disposing %s", inet_ntoa (*i->addr));
+ if (!id)
+ return;
- if (i->addr)
- g_free (i->addr);
+ gdm_debug ("gdm_choose_indirect_dispose: Disposing %d",
+ inet_ntoa (id->dsp_sa->sin_addr));
- if (i->manager)
- g_free (i->manager);
+ if (id->dsp_sa)
+ g_free (id->dsp_sa);
- g_free (i);
+ g_free (id);
ipending--;
}
diff --git a/daemon/filecheck.c b/daemon/filecheck.c
index 1289a8e5..28015b2b 100644
--- a/daemon/filecheck.c
+++ b/daemon/filecheck.c
@@ -81,18 +81,21 @@ gdm_file_check (gchar *caller, uid_t user, gchar *dir, gchar *file,
/* Stat file */
if (stat (fullpath, &statbuf) == -1) {
- g_free (fullpath);
-
- /* Return true if file does not exist and that is ok */
- if (absentok)
+ /* Return true if file does not exist and that is ok */
+ if (absentok) {
+ g_free (fullpath);
return (TRUE);
- else
+ }
+ else {
+ syslog (LOG_WARNING,_("%s: does not exist and must."), caller, fullpath);
+ g_free (fullpath);
return (FALSE);
+ }
}
/* Check that it is a regular file ... */
if (! S_ISREG (statbuf.st_mode)) {
- syslog (LOG_WARNING,_("%s: %s is not a regular file."), caller, fullpath);
+ syslog (LOG_WARNING, _("%s: %s is not a regular file."), caller, fullpath);
g_free (fullpath);
return (FALSE);
}
diff --git a/daemon/gdm.c b/daemon/gdm.c
index cfed6732..2a58bc8a 100644
--- a/daemon/gdm.c
+++ b/daemon/gdm.c
@@ -45,7 +45,6 @@ extern void gdm_error (const gchar *, ...);
extern GdmDisplay *gdm_server_alloc (gint id, gchar *command);
extern void gdm_server_start (GdmDisplay *d);
extern void gdm_server_stop (GdmDisplay *d);
-extern void gdm_server_restart (GdmDisplay *d);
extern void gdm_debug (const gchar *format, ...);
extern int gdm_xdmcp_init (void);
extern void gdm_xdmcp_run (void);
@@ -109,7 +108,7 @@ gdm_display_dispose (GdmDisplay *d)
if (!d)
return;
- if (d->type == DISPLAY_XDMCP) {
+ if (d->type == TYPE_XDMCP) {
displays = g_slist_remove (displays, d);
sessions--;
}
@@ -313,7 +312,7 @@ gdm_config_parse (void)
static void
gdm_local_servers_start (GdmDisplay *d)
{
- if (d && d->type == DISPLAY_LOCAL) {
+ if (d && d->type == TYPE_LOCAL) {
gdm_debug ("gdm_local_servers_start: Starting %s", d->name);
gdm_server_start (d);
}
@@ -352,10 +351,10 @@ gdm_display_manage (GdmDisplay *d)
if (GdmXdmcp)
gdm_xdmcp_close();
- if (d->type == DISPLAY_LOCAL && d->servstat == SERVER_RUNNING)
+ if (d->type == TYPE_LOCAL && d->servstat == SERVER_RUNNING)
gdm_slave_start (d);
- if (d->type == DISPLAY_XDMCP && d->dispstat == XDMCP_MANAGED)
+ if (d->type == TYPE_XDMCP && d->dispstat == XDMCP_MANAGED)
gdm_slave_start (d);
break;
@@ -429,12 +428,12 @@ gdm_child_handler (gint sig)
case DISPLAY_REMANAGE:
- if (d->type == DISPLAY_LOCAL && d->dispstat != DISPLAY_ABORT) {
+ if (d->type == TYPE_LOCAL && d->dispstat != DISPLAY_ABORT) {
d->dispstat = DISPLAY_DEAD;
- gdm_server_restart (d);
+ gdm_server_start (d);
}
- if (d->type == DISPLAY_XDMCP)
+ if (d->type == TYPE_XDMCP)
gdm_display_unmanage (d);
break;
@@ -468,12 +467,12 @@ gdm_child_handler (gint sig)
default:
gdm_debug ("gdm_child_action: Slave process returned %d", status);
- if (d->type == DISPLAY_LOCAL && d->dispstat != DISPLAY_ABORT) {
+ if (d->type == TYPE_LOCAL && d->dispstat != DISPLAY_ABORT) {
d->dispstat = DISPLAY_DEAD;
gdm_server_start (d);
}
- if (d->type == DISPLAY_XDMCP)
+ if (d->type == TYPE_XDMCP)
gdm_display_unmanage (d);
break;
@@ -494,7 +493,7 @@ gdm_display_unmanage (GdmDisplay *d)
gdm_debug ("gdm_display_unmanage: Stopping %s", d->name);
- if (d->type == DISPLAY_LOCAL) {
+ if (d->type == TYPE_LOCAL) {
/* Kill slave and all its children */
if (d->slavepid) {
@@ -509,7 +508,7 @@ gdm_display_unmanage (GdmDisplay *d)
d->dispstat = DISPLAY_DEAD;
}
- else { /* DISPLAY_XDMCP */
+ else { /* TYPE_XDMCP */
if (d->slavepid) {
kill (d->slavepid, SIGTERM);
waitpid (d->slavepid, 0, 0);
diff --git a/daemon/gdm.h b/daemon/gdm.h
index 97899bda..3c129c06 100644
--- a/daemon/gdm.h
+++ b/daemon/gdm.h
@@ -19,8 +19,8 @@
#ifndef __GDM_H__
#define __GDM_H__
-#define DISPLAY_LOCAL 1 /* Local X server */
-#define DISPLAY_XDMCP 2 /* Remote display */
+#define TYPE_LOCAL 1 /* Local X server */
+#define TYPE_XDMCP 2 /* Remote display */
#define SERVER_SUCCESS 0 /* X server default */
#define SERVER_FAILURE 1 /* X server default */
@@ -141,10 +141,10 @@ struct _GdmDisplay {
gchar *bcookie;
gchar *name;
gchar *hostname;
- gint dispstat;
- gint dispnum;
- gint servstat;
- gint type;
+ guint8 dispstat;
+ guint16 dispnum;
+ guint8 servstat;
+ guint8 type;
pid_t greetpid;
pid_t servpid;
pid_t sesspid;
@@ -156,8 +156,16 @@ struct _GdmDisplay {
typedef struct _GdmIndirectDisplay GdmIndirectDisplay;
struct _GdmIndirectDisplay {
- struct in_addr *addr;
- gint dispnum;
+ struct sockaddr_in* dsp_sa;
+ time_t acctime;
+};
+
+
+typedef struct _GdmChooserDisplay GdmChooserDisplay;
+
+struct _GdmChooserDisplay {
+ struct sockaddr_in* dsp_sa;
+ guint16 dispnum;
gchar *manager;
time_t acctime;
};
diff --git a/daemon/server.c b/daemon/server.c
index c3a62608..e7f177b8 100644
--- a/daemon/server.c
+++ b/daemon/server.c
@@ -192,6 +192,7 @@ gdm_server_restart (GdmDisplay *d)
gdm_debug ("gdm_server_restart: Old server for %s still alive. Killing!", d->name);
gdm_server_stop (d);
gdm_server_start (d);
+ return;
}
/* Create new cookie */
@@ -218,7 +219,7 @@ gdm_server_restart (GdmDisplay *d)
gdm_debug ("gdm_server_restart: Servpid=%d", d->servpid);
kill (d->servpid, SIGHUP);
- d->servstat=SERVER_STARTED;
+ d->servstat = SERVER_STARTED;
/* We add a timeout in case the X server fails to start. This
* might happen because X servers take a while to die, close their
@@ -307,7 +308,7 @@ gdm_server_alloc (gint id, gchar *command)
d->sessionid = 0;
d->sesspid = 0;
d->slavepid = 0;
- d->type = DISPLAY_LOCAL;
+ d->type = TYPE_LOCAL;
d->sessionid = 0;
d->acctime = 0;
d->dsp = NULL;
diff --git a/daemon/slave.c b/daemon/slave.c
index 15a307a3..75256bee 100644
--- a/daemon/slave.c
+++ b/daemon/slave.c
@@ -304,7 +304,7 @@ gdm_slave_session_start (gchar *login, gchar *session, gboolean savesess, gchar
setenv ("HOME", pwent->pw_dir, TRUE);
setenv ("GDMSESSION", session, TRUE);
setenv ("SHELL", pwent->pw_shell, TRUE);
- unsetenv ("MAIL"); /* New project: setenv() and unsetenv() for lame systems */
+ putenv ("MAIL");
/* Special PATH for root */
if(pwent->pw_uid == 0)
diff --git a/daemon/verify.c b/daemon/verify.c
index fa5187e6..db395eba 100644
--- a/daemon/verify.c
+++ b/daemon/verify.c
@@ -125,33 +125,12 @@ gdm_verify_user (gchar *display)
gint pamerr, i;
gchar *login;
gchar **pamenv;
- struct passwd *pwent;
login = gdm_slave_greeter_ctl (GDM_PROMPT, _("Login:"));
if (!login)
return (NULL);
- pwent = getpwnam (login);
-
- if (!pwent) {
- gdm_error (_("Couldn't authenticate %s"), login);
-
- if (GdmVerboseAuth)
- gdm_slave_greeter_ctl (GDM_MSGERR, _("User unknown"));
-
- return (NULL);
- }
-
- if (GdmAllowRoot && pwent->pw_uid == 0) {
- gdm_error (_("Root login disallowed on display '%s'"), display);
-
- if (GdmVerboseAuth)
- gdm_slave_greeter_ctl (GDM_MSGERR, _("Root login disallowed"));
-
- return (NULL);
- }
-
if ((pamerr = pam_start ("gdm", login, &pamc, &pamh)) != PAM_SUCCESS) {
gdm_error (_("Can't find /etc/pam.d/gdm!"));
goto pamerr;
@@ -221,25 +200,7 @@ gdm_verify_user (gchar *display)
login = gdm_slave_greeter_ctl (GDM_PROMPT, _("Login:"));
pwent = getpwnam (login);
-
- if (!pwent) {
- gdm_error (_("Couldn't authenticate %s"), login);
-
- if (GdmVerboseAuth)
- gdm_slave_greeter_ctl (GDM_MSGERR, _("User unknown"));
-
- return (NULL);
- }
-
- if (GdmAllowRoot && pwent->pw_uid == 0) {
- gdm_error (_("Root login disallowed on display '%s'"), display);
-
- if (GdmVerboseAuth)
- gdm_slave_greeter_ctl (GDM_MSGERR, _("Root login disallowed"));
-
- return (NULL);
- }
-
+
ppasswd = !pwent ? NULL : pwent->pw_passwd;
#ifdef HAVE_SHADOW
@@ -254,9 +215,24 @@ gdm_verify_user (gchar *display)
#endif /* HAVE_SHADOW */
passwd = gdm_slave_greeter_ctl (GDM_NOECHO, _("Password:"));
+
+ if (GdmVerboseAuth) {
+
+ if (!pwent) {
+ gdm_error (_("Couldn't authenticate %s"), login);
+ gdm_slave_greeter_ctl (GDM_MSGERR, _("User unknown"));
+ return (NULL);
+ }
+ if (pwent->pw_uid == 0) {
+ gdm_error (_("Root login disallowed on display '%s'"), display);
+ gdm_slave_greeter_ctl (GDM_MSGERR, _("Root login disallowed"));
+ return (NULL);
+ }
+ }
+
if (!passwd || !ppasswd || strcmp (crypt (passwd, ppasswd), ppasswd)) {
-
+
if (GdmVerboseAuth)
gdm_slave_greeter_ctl (GDM_MSGERR, _("Incorrect password"));
diff --git a/daemon/xdmcp.c b/daemon/xdmcp.c
index 70d7e67f..7ae8061a 100644
--- a/daemon/xdmcp.c
+++ b/daemon/xdmcp.c
@@ -109,6 +109,7 @@ extern gint GdmMaxManageWait; /* Dispose sessions not responding with MANAGE aft
extern gint GdmMaxSessions; /* Maximum number of remote sessions */
extern gint GdmPort; /* UDP port number */
extern gint GdmIndirect; /* Honor XDMCP_INDIRECT, i.e. choosing */
+extern gint GdmMaxIndirectWait; /* Max wait between INDIRECT_QUERY and MANAGE */
/*
* We don't support XDM-AUTHENTICATION-1 and XDM-AUTHORIZATION-1.
@@ -141,12 +142,16 @@ extern gboolean gdm_auth_secure_display (GdmDisplay *d);
extern gint gdm_display_manage (GdmDisplay *d);
extern void gdm_display_dispose (GdmDisplay *d);
extern gboolean gdm_choose_socket_handler (GIOChannel *source, GIOCondition cond, gint fd);
+extern GdmIndirectDisplay *gdm_choose_indirect_alloc (struct sockaddr_in *clnt_sa);
+extern GdmIndirectDisplay *gdm_choose_indirect_lookup (struct sockaddr_in *clnt_sa);
+
int gdm_xdmcp_init (void);
void gdm_xdmcp_run (void);
void gdm_xdmcp_close (void);
static void gdm_xdmcp_decode_packet (void);
static void gdm_xdmcp_handle_query (struct sockaddr_in *clnt_sa, gint len, gint type);
+static void gdm_xdmcp_send_forward_query (GdmIndirectDisplay *id, ARRAYofARRAY8Ptr authlist);
static void gdm_xdmcp_handle_forward_query (struct sockaddr_in *clnt_sa, gint len);
static void gdm_xdmcp_handle_request (struct sockaddr_in *clnt_sa, gint len);
static void gdm_xdmcp_handle_manage (struct sockaddr_in *clnt_sa, gint len);
@@ -268,6 +273,12 @@ gdm_xdmcp_decode_packet (void)
struct sockaddr_in clnt_sa;
gint sa_len = sizeof (clnt_sa);
XdmcpHeader header;
+ static const char * const opcode_names[] = {
+ NULL,
+ "BROADCAST_QUERY", "QUERY", "INDIRECT_QUERY", "FORWARD_QUERY",
+ "WILLING", "UNWILLING", "REQUEST", "ACCEPT", "DECLINE", "MANAGE", "REFUSE",
+ "FAILED", "KEEPALIVE", "ALIVE"
+ };
if (!XdmcpFill (xdmcpfd, &buf, &clnt_sa, &sa_len)) {
gdm_error (_("gdm_xdmcp_decode: Could not create XDMCP buffer!"));
@@ -283,7 +294,10 @@ gdm_xdmcp_decode_packet (void)
gdm_error (_("gdm_xdmcp_decode: Incorrect XDMCP version!"));
return;
}
-
+
+ gdm_debug ("gdm_xdmcp_decode: Received opcode %s from client %s",
+ opcode_names[header.opcode], inet_ntoa (clnt_sa.sin_addr));
+
switch (header.opcode) {
case BROADCAST_QUERY:
@@ -349,14 +363,54 @@ gdm_xdmcp_handle_query (struct sockaddr_in *clnt_sa, gint len, gint type)
return;
}
- /* Don't negotiate authentication - Unsupported */
- XdmcpDisposeARRAYofARRAY8 (&clnt_authlist);
-
/* Check with tcp_wrappers if client is allowed to access */
- if (gdm_xdmcp_host_allow (clnt_sa))
+ if (gdm_xdmcp_host_allow (clnt_sa)) {
+
+ /* If this is an INDIRECT_QUERY, try to look up the display in
+ * the pending list. If found send a FORWARD_QUERY to the
+ * chosen manager. Otherwise alloc a new indirect display. */
+
+ if (GdmIndirect && type==INDIRECT_QUERY) {
+ GdmIndirectDisplay *id = gdm_choose_indirect_lookup (clnt_sa);
+
+ if (id)
+ if (id->acctime + GdmMaxIndirectWait < time (NULL)) /* Expired? */
+ gdm_xdmcp_send_forward_query (id, &clnt_authlist);
+ else
+ gdm_xdmcp_send_unwilling (clnt_sa, type);
+ else
+ gdm_choose_indirect_alloc (clnt_sa);
+ }
+
gdm_xdmcp_send_willing (clnt_sa);
+ }
else
gdm_xdmcp_send_unwilling (clnt_sa, type);
+
+ /* Dispose authlist from remote display */
+ XdmcpDisposeARRAYofARRAY8 (&clnt_authlist);
+}
+
+
+static void
+gdm_xdmcp_send_forward_query (GdmIndirectDisplay *id, ARRAYofARRAY8Ptr authlist)
+{
+ ARRAY8 status;
+ XdmcpHeader header;
+
+ status.data = sysid;
+ status.length = strlen (sysid);
+
+ header.opcode = (CARD16) WILLING;
+ header.length = 6 + serv_authlist.authentication.length;
+ header.length += servhost.length + status.length;
+ header.version = XDM_PROTOCOL_VERSION;
+ XdmcpWriteHeader (&buf, &header);
+
+ XdmcpWriteARRAY8 (&buf, &serv_authlist.authentication); /* Hardcoded authentication */
+ XdmcpWriteARRAY8 (&buf, &servhost);
+ XdmcpWriteARRAY8 (&buf, &status);
+ /* XdmcpFlush (xdmcpfd, &buf, clnt_sa, sizeof (struct sockaddr_in));*/
}
@@ -649,7 +703,7 @@ gdm_xdmcp_send_decline (struct sockaddr_in *clnt_sa)
authendata.data = (CARD8 *) 0;
authendata.length = (CARD16) 0;
- status.data = "Service refused";
+ status.data = "Session refused";
status.length = strlen (status.data);
header.version = XDM_PROTOCOL_VERSION;
@@ -873,7 +927,7 @@ gdm_xdmcp_display_alloc (struct sockaddr_in *clnt_sa, gint displaynum)
d->sessionid = 0;
d->sesspid = 0;
d->slavepid = 0;
- d->type = DISPLAY_XDMCP;
+ d->type = TYPE_XDMCP;
d->dispstat = XDMCP_PENDING;
d->sessionid = globsessid++;
d->acctime = time (NULL);
@@ -967,7 +1021,7 @@ gdm_xdmcp_displays_check (void)
d = (GdmDisplay *) dlist->data;
if (d &&
- d->type == DISPLAY_XDMCP &&
+ d->type == TYPE_XDMCP &&
d->dispstat == XDMCP_PENDING &&
time (NULL) > d->acctime + GdmMaxManageWait)
{
diff --git a/docs/C/gdm.sgml b/docs/C/gdm.sgml
index d28d276f..e4f83be8 100644
--- a/docs/C/gdm.sgml
+++ b/docs/C/gdm.sgml
@@ -70,7 +70,7 @@
<para>
Paths without a leading '/' are relative to the installation
- prefix. I.e. <filename>share/pixmaps/</filename> refer to
+ prefix. I.e. <filename>share/pixmaps/</filename> refers to
<filename>/usr/share/pixmaps</filename> if GDM was configured
with <filename>--prefix=/usr</filename>.
</para>
@@ -87,7 +87,7 @@
</para>
<sect1 id="overview">
- <title>Theory of Operation</title>
+ <title>Daemon Overview</title>
<para>
GDM was written with simplicity and security in mind. The
@@ -96,14 +96,14 @@
<para>
Upon startup the <filename>gdm</filename> daemon parses its config file
- <filename>gdm.conf</filename>. For each of the local displays gdm
- forks an Xserver and a slave process. The main gdm process
+ <filename>gdm.conf</filename>. For each of the local displays <filename /gdm/
+ forks an Xserver and a slave process. The main <filename /gdm/ process
will then listen to XDMCP requests from remote displays and
monitor the local display sessions.
</para>
<para>
- The gdm slave process opens the display and starts
+ The <filename /gdm/ slave process opens the display and starts
<filename>gdmlogin</filename>, the graphical login
program. <filename>gdmlogin</filename> runs as a dedicated
user and communicates asynchronously with the slave process
@@ -113,13 +113,55 @@
<para>
GDM relies heavily on the presence of PAM, Pluggable
Authentication Modules, but supports regular crypt()
- and shadow passwords.
+ and shadow passwords on legacy systems.
+ </para>
+
+ <para>
+ Remote displays can connect to the XDMCP port on the GDM
+ host. <filename /gdm/ will grant access to hosts specified in
+ the gdm service section in your TCP Wrappers configuration
+ file. GDM does not support remote display access control on
+ systems without TCP Wrappers. XDMCP support can be turned off
+ completely, however.
+ </para>
+
+ <para>
+ GDM includes several measures making it more resistant to
+ denial of service attacks on the XDMCP service. A lot of the
+ protocol parameters, handshaking timeouts etc. can be fine
+ tuned. The defaults should work for most systems, however.
+ Don't change them unless you know what you're doing.
+ </para>
+
+ <para>
+ In general GDM is very reluctant regarding reading/writing of
+ user files. For instance it refuses to touch anything but
+ regular files. Links, sockets and devices are ignored. The
+ value of the RelaxPermissions parameter determines whether GDM
+ should accept files writable by the user's group or others.
+ These are ignored by default.
+ </para>
+
+ <para>
+ All operations on user files are done with the effective
+ userid of the user. If the sanity check fails on the user's
+ <filename /.Xauthority/ file, a fallback cookie is created in
+ <filename>/tmp</filename>.
+ </para>
+
+ <para>
+ Finally, the sysadmin can specify the maximum file size GDM
+ should accept, and, if the face browser is enabled, a tunable
+ maximum icon size is also enforced. On large systems it is
+ still advised to turn off the face browser for performance
+ reasons. Looking up icons in homedirs, scaling and rendering
+ face icons can take quite a long time. YMMV.
</para>
</sect1>
</chapter>
- <chapter id="Configuration">
+ <chapter id="ConfigurationOverview">
<title>The Configuration Directory</title>
<para>
@@ -144,28 +186,37 @@
options will be described later in this chapter.
</para>
+ <para>
+ <filename /gdm.conf/ is configuration file for both <filename
+ /gdm/, <filename /gdmlogin/, and <filename /gdmchooser/ since a
+ lot of parameters overlap.
+ </para>
+
<para>
The remaining configuration is done by dropping scripts in the
subdirectories of the <filename>etc/gdm</filename> folder. This
approach makes it easy for package management systems to install
window managers and different session types without requiring
- the sysadmin/user to edit files.
+ the sysadmin to edit files.
</para>
<sect1>
<title>The Script Directories</title>
<para>
- In this section we will explain the Init, PreRoot and PostRoot
- directories as they are very similar.
+ In this section we will explain the <filename /Init/,
+ <filename /PreRoot/ and <filename /PostRoot/ directories as
+ they are very similar.
</para>
<para>
When the X server has been successfully started, GDM will try
- to run the script called Init/&lt;displayname&gt;. I.e. Init/:0 for
- the first local display. If this file is not found, GDM will
- attempt to to run Init/Default. The script will be run as root
- and GDM blocks until it terminates. Use the Init/* script for
+ to run the script called
+ <filename>Init/&lt;displayname&gt;</filename>. I.e. <filename>Init/:0</filename>
+ for the first local display. If this file is not found, GDM
+ will attempt to to run <filename>Init/Default</filename>. The
+ script will be run as root and GDM blocks until it
+ terminates. Use the <filename>Init/*</filename> script for
programs that are supposed to run alongside with the GDM login
window. xconsole for instance. Commands to set the background
etc. goes in this file too.
@@ -174,43 +225,46 @@
<para>
It is up to the sysadmin to decide whether clients started by
the Init script should be killed before starting the user
- session. This is controlled with the KillInitClient option in
+ session. This is controlled with the KillInitClients option in
<filename>gdm.conf</filename>.
</para>
<para>
When the user has been successfully authenticated, GDM tries
to run the PreSession script. Similar to the Init-scripts,
- PreSession/&lt;displayname&gt; will be executed first, if that is
- not found GDM will attempt to run PreSession/Default. The
- script will be run as root and GDM blocks until it
- terminates. Use this script for local session management or
- accounting stuff. The USER environment variable contains the
- login of the authenticated user. The script should return 0 on
- success. Any other value will cause GDM to terminate the
- current login process.
+ <filename>PreSession/&lt;displayname&gt;</filename> will be
+ executed, if this file doesn't exist, GDM will attempt to run
+ <filename>PreSession/Default</filename>. The script will be
+ run as root and GDM blocks until it terminates. Use this
+ script for local session management or accounting stuff. The
+ $USER environment variable contains the login of the
+ authenticated user. The script should return 0 on success. Any
+ other value will cause GDM to terminate the current login
+ process.
</para>
<para>
Then the session script is run. Session scripts are located in
the <filename>etc/gdm/Session</filename> directory. Which one
- GDM runs depends on the session the user chose in the
- Sessions-menu in the GDM greeter. If no session is selected
- and the user has no last session stored in his
+ GDM runs, depends on the session the user chose in the
+ Sessions-menu in the greeter. If no session is selected and
+ the user has no last session stored in his
<filename>~/.gnome/gdm</filename> file, the system will choose
or first script found or -- if
<filename>Sessions/Default</filename> exists -- this will be
- run. For instance you can create a symlink from <filename>Gnome</filename> to <filename>Default</filename> to make Gnome the default
- desktop environment.
+ run. For instance you can create a symlink from
+ <filename>Gnome</filename> to <filename>Default</filename> to
+ make Gnome the default desktop environment.
</para>
<para>
- When the user terminates his session the PostSession script
+ When the user terminates his session, the PostSession script
will be run. Operation is similar to Init and PreSession. That
is, GDM will attempt to execute the script
- PostSession/&lt;displayname&gt; and if that doesn't exist:
- PostSession/Default. Again the script will be run with root
- priviledges, the slave daemon will block and the USER
+ <filename>PostSession/&lt;displayname&gt;</filename> and if
+ that doesn't exist <filename>PostSession/Default</filename>
+ will be run. Again the script will be run with root
+ priviledges, the slave daemon will block and the $USER
environment variable will contain the name of the user who
just logged out.
</para>
@@ -472,7 +526,7 @@
<listitem>
<synopsis>UserAuthFile=.Xauthority</synopsis>
<para>
- Name of the file used for storing user cookies in.
+ Name of the file used for storing user cookies.
</para>
</listitem>
</varlistentry>
@@ -494,6 +548,11 @@
Graphical root logins are disallowed by default. Set
this value to 1 to enable priviledged user logins.
</para>
+ <para>
+ On systems that support PAM, this parameter is
+ ignored. It's up to the PAM libraries to determine
+ whether the user is on a local display or not.
+ </para>
</listitem>
</varlistentry>
@@ -657,8 +716,8 @@
<listitem>
<synopsis>MaxPendingIndirect=4</synopsis>
<para>
- Specifies the number of remote displays that can be in
- choose mode simultaneously. FIXME!
+ GDM will only provide MaxPendingIndirect displays with
+ host choosers simultaneously.
</para>
</listitem>
</varlistentry>
@@ -704,7 +763,12 @@
<listitem>
<synopsis>MaxWaitIndirect=30</synopsis>
<para>
- FIXME
+ The MaxWaitIndirect parameter determines the maximum
+ number of seconds between the time where a display
+ requests a chooser and completion of protocol
+ negotiation. If the timeout is exceeded, GDM will
+ remove the display from the pending list freeing up
+ the slot for other displays.
</para>
</listitem>
</varlistentry>
@@ -749,7 +813,7 @@
<para>
Specifies the maximum icon width (in pixels) that the
face browser will display. Icons larger than this will
- be scaled down.
+ be scaled.
</para>
</listitem>
</varlistentry>
@@ -761,7 +825,7 @@
<para>
Specifies the maximum icon height (in pixels) that the
face browser will display. Icons larger than this will
- be scaled down.
+ be scaled.
</para>
</listitem>
</varlistentry>
@@ -926,7 +990,7 @@
<varlistentry>
<term>Welcome</term>
<listitem>
- <synopsis>Welcome=Welcome to %s</synopsis>
+ <synopsis>Welcome=Welcome to %n</synopsis>
<para>
Controls which text to display next to the logo image in the
greeter. The following control chars are supported:
@@ -945,6 +1009,10 @@
</para>
<para>
+ %m machine (processor type)
+ </para>
+
+ <para>
%n Nodename (i.e. hostname without .domain)
</para>
@@ -955,11 +1023,7 @@
<para>
%s sysname (i.e. OS)
</para>
-
- <para>
- %m machine (processor type)
- </para>
-
+
</listitem>
</varlistentry>
</variablelist>
diff --git a/gui/gdmchooser.c b/gui/gdmchooser.c
index c961c8c9..7f4de0c2 100644
--- a/gui/gdmchooser.c
+++ b/gui/gdmchooser.c
@@ -658,13 +658,24 @@ gdm_chooser_host_dispose (GdmChooserHost *host)
int
main (int argc, char *argv[])
{
+ gchar **fixedargv;
+ gint fixedargc, i;
+
/* Avoid creating ~gdm/.gnome stuff */
gnome_do_not_create_directories = TRUE;
openlog ("gdmchooser", LOG_PID, LOG_DAEMON);
- gnome_init ("gdmchooser", VERSION, argc, argv);
- gnome_sound_shutdown();
+ fixedargc = argc + 1;
+ fixedargv = g_new0 (gchar *, fixedargc);
+
+ for (i=0; i < argc; i++)
+ fixedargv[i] = argv[i];
+
+ fixedargv[fixedargc-1] = "--disable-sound";
+ gnome_init ("gdmchooser", VERSION, fixedargc, fixedargv);
+ g_free (fixedargv);
+
gnome_preferences_set_dialog_position(GTK_WIN_POS_CENTER);
gdm_chooser_parse_config();
diff --git a/gui/gdmlogin.c b/gui/gdmlogin.c
index ea390c51..00d0db1e 100644
--- a/gui/gdmlogin.c
+++ b/gui/gdmlogin.c
@@ -94,12 +94,7 @@ gint maxwidth;
static void
gdm_login_done (void)
{
- gdk_keyboard_ungrab (CurrentTime);
-
- closelog();
- gtk_main_quit();
-
- exit (DISPLAY_SUCCESS);
+ _exit (DISPLAY_SUCCESS);
}
@@ -274,7 +269,7 @@ gdm_parse_enriched_string (gchar *s)
if (strlen (s) > 1023) {
syslog (LOG_ERR, _("gdm_parse_enriched_string: String too long!"));
- return (g_strconcat (_("Welcome to "), hostname, NULL));
+ return (g_strdup_printf (_("Welcome to %s"), hostname));
}
if (!(buffer = g_malloc (4096))) {
@@ -464,7 +459,7 @@ gdm_login_sesslang_lookup (void) /* Input validation sucks */
if(!curuser)
gdm_login_abort("gdm_login_sesslang_lookup: curuser==NULL. Mail <mkp@mkp.net> with " \
- "information on your PAM setup");
+ "information on your PAM and user database setup");
gtk_widget_set_sensitive (GTK_WIDGET (sessmenu), FALSE);
gtk_widget_set_sensitive (GTK_WIDGET (langmenu), FALSE);
@@ -472,6 +467,10 @@ gdm_login_sesslang_lookup (void) /* Input validation sucks */
/* Lookup verified user */
pwent = getpwnam (curuser);
+ if(!pwent)
+ gdm_login_abort("gdm_login_sesslang_lookup: pwent==NULL. Mail <mkp@mkp.net> with " \
+ "information on your PAM and user database setup");
+
dir = g_strconcat (pwent->pw_dir, "/.gnome", NULL);
fileok = gdm_file_check ("gdm_login_sesslang_lookup", pwent->pw_uid, dir, "gdm", TRUE, GdmUserMaxFile, GdmRelaxPerms);
g_free (dir);
@@ -989,6 +988,7 @@ gdm_login_browser_select (GtkWidget *widget, gint selected, GdkEvent *event)
if (!curuser)
curuser = g_strdup (gtk_entry_get_text (GTK_ENTRY (entry)));
+ gtk_widget_set_sensitive (GTK_WIDGET (entry), FALSE);
gtk_widget_set_sensitive (GTK_WIDGET (browser), FALSE);
g_print ("%s\n", gtk_entry_get_text (GTK_ENTRY (entry)));
break;
@@ -1187,6 +1187,11 @@ gdm_login_gui_init (void)
gtk_box_pack_start (GTK_BOX (bbox), GTK_WIDGET (bframe), 1, 1, 0);
gtk_box_pack_start (GTK_BOX (bbox), GTK_WIDGET (scrollbar), 0, 0, 0);
gtk_widget_show_all (GTK_WIDGET (bbox));
+
+ /* FIXME */
+ gtk_widget_set_usize (GTK_WIDGET (bbox),
+ (gint) gdk_screen_width () * 0.5,
+ (gint) gdk_screen_height () * 0.25);
}
if (GdmLogo && !access (GdmLogo, R_OK)) {
@@ -1322,17 +1327,7 @@ gdm_login_gui_init (void)
gtk_window_set_policy (GTK_WINDOW (login), 1, 1, 1);
gtk_window_position (GTK_WINDOW (login), GTK_WIN_POS_CENTER);
- if (GdmBrowser)
- gtk_widget_set_usize (GTK_WIDGET (login),
- (gint) gdk_screen_width() * 0.6,
- (gint) gdk_screen_height() * 0.8);
- else
- gtk_widget_set_usize (GTK_WIDGET (login),
- (gint) gdk_screen_width() * 0.5,
- 0);
-
gtk_widget_show_all (GTK_WIDGET (login));
- gdk_keyboard_grab (rootwin, TRUE, CurrentTime);
}
@@ -1418,18 +1413,24 @@ gdm_login_user_alloc (gchar *logname, uid_t uid, gchar *homedir)
static gint
-gdm_login_check_exclude (gchar *logname)
+gdm_login_check_exclude (struct passwd *pwent)
{
+ const char * const lockout_passes[] = { "*", "!!", NULL };
GSList *list = exclude;
+ gint i;
- while (list && list->data) {
- if (! strcasecmp (logname, (gchar *) list->data))
+ for (i=0 ; lockout_passes[i] ; i++)
+ if(! strcmp (lockout_passes[i], pwent->pw_passwd))
return (TRUE);
+
+ while (list && list->data) {
+ if (! strcasecmp (pwent->pw_name, (gchar *) list->data))
+ return (TRUE);
- list = list->next;
- }
+ list = list->next;
+ }
- return (FALSE);
+ return (FALSE);
}
@@ -1479,7 +1480,7 @@ gdm_login_users_init (void)
if (pwent->pw_shell &&
gdm_login_check_shell (pwent->pw_shell) &&
- !gdm_login_check_exclude (pwent->pw_name)) {
+ !gdm_login_check_exclude (pwent)) {
user = gdm_login_user_alloc(pwent->pw_name,
pwent->pw_uid,
@@ -1499,6 +1500,8 @@ gdm_login_users_init (void)
int
main (int argc, char *argv[])
{
+ gchar **fixedargv;
+ gint fixedargc, i;
struct sigaction hup;
sigset_t mask;
GIOChannel *ctrlch;
@@ -1508,8 +1511,16 @@ main (int argc, char *argv[])
openlog ("gdmlogin", LOG_PID, LOG_DAEMON);
- gnome_init ("gdmlogin", VERSION, argc, argv);
- gnome_sound_shutdown();
+ fixedargc = argc + 1;
+ fixedargv = g_new0 (gchar *, fixedargc);
+
+ for (i=0; i < argc; i++)
+ fixedargv[i] = argv[i];
+
+ fixedargv[fixedargc-1] = "--disable-sound";
+ gnome_init ("gdmlogin", VERSION, fixedargc, fixedargv);
+ g_free (fixedargv);
+
gnome_preferences_set_dialog_position (GTK_WIN_POS_CENTER);
gdm_login_parse_config();
diff --git a/po/da.po b/po/da.po
index a3e11303..a9c04af1 100644
--- a/po/da.po
+++ b/po/da.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: gdm-0.7.1\n"
-"POT-Creation-Date: 1999-09-01 23:49+0200\n"
+"POT-Creation-Date: 1999-09-23 01:59+0200\n"
"PO-Revision-Date: 1999-08-15 23:00+0100\n"
"Last-Translator: Birger langkjer <birger.langkjer@image.dk>\n"
"Language-Team: Danish <dltp@lists.wiktor.dk>\n"
@@ -13,117 +13,117 @@ msgstr ""
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
-#: daemon/gdm.c:167
+#: daemon/gdm.c:166
#, c-format
msgid "gdm_config_parse: No configuration file: %s. Aborting."
msgstr ""
-#: daemon/gdm.c:218
+#: daemon/gdm.c:217
msgid "gdm_config_parse: No greeter specified and default not found."
msgstr ""
-#: daemon/gdm.c:230
+#: daemon/gdm.c:229
msgid "gdm_config_parse: No authdir specified and default not found."
msgstr ""
-#: daemon/gdm.c:248
+#: daemon/gdm.c:247
msgid ""
"gdm_config_parse: No sessions directory specified and default not found."
msgstr ""
-#: daemon/gdm.c:260
+#: daemon/gdm.c:259
msgid "gdm_config_parse: Invalid server line in config file. Ignoring!"
msgstr ""
-#: daemon/gdm.c:266
+#: daemon/gdm.c:265
msgid ""
"gdm_config_parse: Xdmcp disabled and no local servers defined. Aborting!"
msgstr ""
-#: daemon/gdm.c:271
+#: daemon/gdm.c:270
#, c-format
msgid "gdm_config_parse: Can't find the gdm user (%s). Aborting!"
msgstr ""
-#: daemon/gdm.c:276
+#: daemon/gdm.c:275
msgid "gdm_config_parse: The gdm user should not be root. Aborting!"
msgstr ""
-#: daemon/gdm.c:281
+#: daemon/gdm.c:280
#, c-format
msgid "gdm_config_parse: Can't find the gdm group (%s). Aborting!"
msgstr ""
-#: daemon/gdm.c:286
+#: daemon/gdm.c:285
msgid "gdm_config_parse: The gdm group should not be root. Aborting!"
msgstr ""
-#: daemon/gdm.c:293
+#: daemon/gdm.c:292
#, c-format
msgid "gdm_config_parse: Authdir %s does not exist. Aborting."
msgstr ""
-#: daemon/gdm.c:296
+#: daemon/gdm.c:295
#, c-format
msgid "gdm_config_parse: Authdir %s is not a directory. Aborting."
msgstr ""
-#: daemon/gdm.c:299
+#: daemon/gdm.c:298
#, c-format
msgid ""
"gdm_config_parse: Authdir %s is not owned by user %s, group %s. Aborting."
msgstr ""
-#: daemon/gdm.c:303
+#: daemon/gdm.c:302
#, c-format
msgid ""
"gdm_config_parse: Authdir %s has wrong permissions. Should be 750. Aborting."
msgstr ""
-#: daemon/gdm.c:364
+#: daemon/gdm.c:363
#, c-format
msgid "gdm_display_manage: Failed forking gdm slave process for %d"
msgstr ""
-#: daemon/gdm.c:443
+#: daemon/gdm.c:442
#, c-format
msgid "gdm_child_action: Aborting display %s"
msgstr ""
-#: daemon/gdm.c:448
+#: daemon/gdm.c:447
msgid "gdm_child_action: Master rebooting..."
msgstr "gdm_child_action: Master genstarter..."
-#: daemon/gdm.c:454
+#: daemon/gdm.c:453
#, c-format
msgid "gdm_child_action: Reboot failed: %s"
msgstr "gdm_child_action: Genstart mislykkedes: %s"
-#: daemon/gdm.c:458
+#: daemon/gdm.c:457
msgid "gdm_child_action: Master halting..."
msgstr "gdm_child_action: Master slukker..."
-#: daemon/gdm.c:464
+#: daemon/gdm.c:463
#, c-format
msgid "gdm_child_action: Halt failed: %s"
msgstr "gdm_child_action: Sluk mislykkedes: %s"
-#: daemon/gdm.c:561
+#: daemon/gdm.c:560
msgid "gdm_daemonify: fork() failed!"
msgstr ""
-#: daemon/gdm.c:564
+#: daemon/gdm.c:563
#, c-format
msgid "gdm_daemonify: setsid() failed: %s!"
msgstr ""
#. XDM compliant error message
-#: daemon/gdm.c:590
+#: daemon/gdm.c:589
#, fuzzy
msgid "Only root wants to run x^hgdm\n"
msgstr "Kun root må køre gdm\n"
-#: daemon/gdm.c:611
+#: daemon/gdm.c:610
msgid ""
"gdm already running. Aborting!\n"
"\n"
@@ -131,7 +131,7 @@ msgstr ""
"gdm kører allerede. Afbryder!\n"
"\n"
-#: daemon/gdm.c:617
+#: daemon/gdm.c:616
#, fuzzy, c-format
msgid ""
"According to %s, gdm was already running (%d),\n"
@@ -140,15 +140,15 @@ msgstr ""
"gdm kørte allerede (%d) men ser ud til at være blevet myrdet på mystisk "
"vis.\n"
-#: daemon/gdm.c:639
+#: daemon/gdm.c:638
msgid "gdm_main: Error setting up TERM signal handler"
msgstr ""
-#: daemon/gdm.c:642
+#: daemon/gdm.c:641
msgid "gdm_main: Error setting up INT signal handler"
msgstr ""
-#: daemon/gdm.c:650
+#: daemon/gdm.c:649
msgid "gdm_main: Error setting up CHLD signal handler"
msgstr ""
@@ -173,12 +173,12 @@ msgstr ""
msgid "%s: Directory %s does not exist."
msgstr ""
-#: daemon/filecheck.c:64 daemon/filecheck.c:102
+#: daemon/filecheck.c:64 daemon/filecheck.c:105
#, c-format
msgid "%s: %s is not owned by uid %d."
msgstr ""
-#: daemon/filecheck.c:70 daemon/filecheck.c:109
+#: daemon/filecheck.c:70 daemon/filecheck.c:112
#, c-format
msgid "%s: %s is writable by group."
msgstr ""
@@ -188,17 +188,22 @@ msgstr ""
msgid "%s: %s is writable by other."
msgstr ""
-#: daemon/filecheck.c:95
+#: daemon/filecheck.c:90
+#, c-format
+msgid "%s: does not exist and must."
+msgstr ""
+
+#: daemon/filecheck.c:98
#, c-format
msgid "%s: %s is not a regular file."
msgstr ""
-#: daemon/filecheck.c:116
+#: daemon/filecheck.c:119
#, c-format
msgid "%s: %s is writable by group/other."
msgstr ""
-#: daemon/filecheck.c:123
+#: daemon/filecheck.c:126
#, c-format
msgid "%s: %s is bigger than sysadmin specified maximum file size."
msgstr ""
@@ -212,7 +217,7 @@ msgstr ""
msgid "gdm_exec_script: Can't fork script process!"
msgstr ""
-#: daemon/server.c:84 daemon/server.c:207
+#: daemon/server.c:84 daemon/server.c:208
msgid "gdm_server_start: Error setting up USR1 signal handler"
msgstr ""
@@ -239,7 +244,7 @@ msgstr ""
msgid "gdm_server_stop: Could not unlink auth file: %s!"
msgstr ""
-#: daemon/server.c:233
+#: daemon/server.c:234
msgid "gdm_server_restart: Error setting up ALARM signal handler"
msgstr ""
@@ -318,209 +323,209 @@ msgstr ""
msgid "gdm_slave_xsync_ping: Error setting up ALARM signal handler"
msgstr ""
-#: daemon/verify.c:130 daemon/verify.c:222 gui/gdmlogin.c:1238
+#: daemon/verify.c:129 daemon/verify.c:201 gui/gdmlogin.c:1246
msgid "Login:"
msgstr ""
-#: daemon/verify.c:138 daemon/verify.c:166 daemon/verify.c:226
-#, c-format
-msgid "Couldn't authenticate %s"
-msgstr ""
-
-#: daemon/verify.c:141 daemon/verify.c:229
-msgid "User unknown"
+#: daemon/verify.c:135
+msgid "Can't find /etc/pam.d/gdm!"
msgstr ""
-#: daemon/verify.c:147 daemon/verify.c:235
+#: daemon/verify.c:140
#, c-format
-msgid "Root login disallowed on display '%s'"
-msgstr ""
-
-#: daemon/verify.c:150 daemon/verify.c:238
-msgid "Root login disallowed"
-msgstr ""
-
-#: daemon/verify.c:156
-msgid "Can't find /etc/pam.d/gdm!"
+msgid "Can't set PAM_TTY=%s"
msgstr ""
-#: daemon/verify.c:161
+#: daemon/verify.c:145 daemon/verify.c:222
#, c-format
-msgid "Can't set PAM_TTY=%s"
+msgid "Couldn't authenticate %s"
msgstr ""
-#: daemon/verify.c:171
+#: daemon/verify.c:150
#, c-format
msgid "Couldn't set acct. mgmt for %s"
msgstr ""
-#: daemon/verify.c:176
+#: daemon/verify.c:155
#, c-format
msgid "Couldn't set credentials for %s"
msgstr ""
-#: daemon/verify.c:181
+#: daemon/verify.c:160
#, c-format
msgid "Couldn't open session for %s"
msgstr ""
-#: daemon/verify.c:256
+#: daemon/verify.c:217
msgid "Password:"
msgstr "Adgangskode:"
-#: daemon/verify.c:261
+#: daemon/verify.c:223
+msgid "User unknown"
+msgstr ""
+
+#: daemon/verify.c:228
+#, c-format
+msgid "Root login disallowed on display '%s'"
+msgstr ""
+
+#: daemon/verify.c:229
+msgid "Root login disallowed"
+msgstr ""
+
+#: daemon/verify.c:237
msgid "Incorrect password"
msgstr ""
-#: daemon/verify.c:280
+#: daemon/verify.c:256
msgid "gdm_verify_check: Can't find PAM configuration file for gdm"
msgstr ""
-#: daemon/xdmcp.c:179
+#: daemon/xdmcp.c:184
#, c-format
msgid "gdm_xdmcp_init: Could not get server hostname: %s!"
msgstr ""
-#: daemon/xdmcp.c:193
+#: daemon/xdmcp.c:198
msgid "gdm_xdmcp_init: Could not create socket!"
msgstr ""
-#: daemon/xdmcp.c:200
+#: daemon/xdmcp.c:205
msgid "gdm_xdmcp_init: Could not bind to XDMCP socket!"
msgstr ""
-#: daemon/xdmcp.c:209
+#: daemon/xdmcp.c:214
msgid "gdm_xdmcp_init: Can't alloc fifopath"
msgstr ""
-#: daemon/xdmcp.c:214
+#: daemon/xdmcp.c:219
msgid "gdm_xdmcp_init: Could not make FIFO for chooser"
msgstr ""
-#: daemon/xdmcp.c:219
+#: daemon/xdmcp.c:224
msgid "gdm_xdmcp_init: Could not open FIFO for chooser"
msgstr ""
-#: daemon/xdmcp.c:273
+#: daemon/xdmcp.c:284
msgid "gdm_xdmcp_decode: Could not create XDMCP buffer!"
msgstr ""
-#: daemon/xdmcp.c:278
+#: daemon/xdmcp.c:289
msgid "gdm_xdmcp_decode: Could not read XDMCP header!"
msgstr ""
-#: daemon/xdmcp.c:283
+#: daemon/xdmcp.c:294
msgid "gdm_xdmcp_decode: Incorrect XDMCP version!"
msgstr ""
-#: daemon/xdmcp.c:319
+#: daemon/xdmcp.c:333
#, c-format
msgid "gdm_xdmcp_decode_packet: Unknown opcode from host %s"
msgstr ""
-#: daemon/xdmcp.c:337
+#: daemon/xdmcp.c:351
msgid "gdm_xdmcp_handle_query: Could not extract authlist from packet"
msgstr ""
-#: daemon/xdmcp.c:348
+#: daemon/xdmcp.c:362
msgid "gdm_xdmcp_handle_query: Error in checksum"
msgstr ""
-#: daemon/xdmcp.c:379
+#: daemon/xdmcp.c:433
msgid "gdm_xdmcp_handle_forward_query: Could not read display address"
msgstr ""
-#: daemon/xdmcp.c:385
+#: daemon/xdmcp.c:439
msgid "gdm_xdmcp_handle_forward_query: Could not read display port number"
msgstr ""
-#: daemon/xdmcp.c:391
+#: daemon/xdmcp.c:445
msgid "gdm_xdmcp_handle_forward_query: Could not extract authlist from packet"
msgstr ""
-#: daemon/xdmcp.c:406
+#: daemon/xdmcp.c:460
msgid "gdm_xdmcp_handle_forward_query: Error in checksum"
msgstr ""
-#: daemon/xdmcp.c:469
+#: daemon/xdmcp.c:523
#, c-format
msgid "Denied XDMCP query from host %s"
msgstr ""
-#: daemon/xdmcp.c:471
+#: daemon/xdmcp.c:525
msgid "Display not authorized to connect"
msgstr ""
-#: daemon/xdmcp.c:504
+#: daemon/xdmcp.c:558
#, c-format
msgid "gdm_xdmcp_handle_request: Got REQUEST from banned host %s"
msgstr ""
-#: daemon/xdmcp.c:511
+#: daemon/xdmcp.c:565
msgid "gdm_xdmcp_handle_request: Could not read Display Number"
msgstr ""
-#: daemon/xdmcp.c:517
+#: daemon/xdmcp.c:571
msgid "gdm_xdmcp_handle_request: Could not read Connection Type"
msgstr ""
-#: daemon/xdmcp.c:523
+#: daemon/xdmcp.c:577
msgid "gdm_xdmcp_handle_request: Could not read Client Address"
msgstr ""
-#: daemon/xdmcp.c:529
+#: daemon/xdmcp.c:583
msgid "gdm_xdmcp_handle_request: Could not read Authentication Names"
msgstr ""
-#: daemon/xdmcp.c:535
+#: daemon/xdmcp.c:589
msgid "gdm_xdmcp_handle_request: Could not read Authentication Data"
msgstr ""
-#: daemon/xdmcp.c:541
+#: daemon/xdmcp.c:595
msgid "gdm_xdmcp_handle_request: Could not read Authorization List"
msgstr ""
-#: daemon/xdmcp.c:552
+#: daemon/xdmcp.c:606
msgid "gdm_xdmcp_handle_request: Could not read Manufacturer ID"
msgstr ""
-#: daemon/xdmcp.c:570
+#: daemon/xdmcp.c:624
#, c-format
msgid "gdm_xdmcp_handle_request: Failed checksum from %s"
msgstr ""
-#: daemon/xdmcp.c:683
+#: daemon/xdmcp.c:737
#, c-format
msgid "gdm_xdmcp_handle_manage: Got Manage from banned host %s"
msgstr ""
-#: daemon/xdmcp.c:690
+#: daemon/xdmcp.c:744
msgid "gdm_xdmcp_handle_manage: Could not read Session ID"
msgstr ""
-#: daemon/xdmcp.c:696
+#: daemon/xdmcp.c:750
msgid "gdm_xdmcp_handle_manage: Could not read Display Number"
msgstr ""
-#: daemon/xdmcp.c:705
+#: daemon/xdmcp.c:759
msgid "gdm_xdmcp_manage: Could not read Display Class"
msgstr ""
-#: daemon/xdmcp.c:726
+#: daemon/xdmcp.c:780
#, c-format
msgid "gdm_xdmcp_handle_manage: Could not open logfile for display %s!"
msgstr ""
-#: daemon/xdmcp.c:798
+#: daemon/xdmcp.c:852
#, c-format
msgid "gdm_xdmcp_handle_keepalive: Got KEEPALIVE from banned host %s"
msgstr ""
-#: daemon/xdmcp.c:805
+#: daemon/xdmcp.c:859
msgid "gdm_xdmcp_handle_keepalive: Could not read Display Number"
msgstr ""
-#: daemon/xdmcp.c:811
+#: daemon/xdmcp.c:865
msgid "gdm_xdmcp_handle_keepalive: Could not read Session ID"
msgstr ""
@@ -559,137 +564,138 @@ msgstr ""
msgid "gdm_signals_init: Error setting up TERM signal handler"
msgstr ""
-#: gui/gdmchooser.c:596 gui/gdmlogin.c:1541
+#: gui/gdmchooser.c:596 gui/gdmlogin.c:1555
msgid "Could not set signal mask!"
msgstr ""
-#: gui/gdmlogin.c:276
+#: gui/gdmlogin.c:271
msgid "gdm_parse_enriched_string: String too long!"
msgstr ""
-#: gui/gdmlogin.c:277
-msgid "Welcome to "
+#: gui/gdmlogin.c:272
+#, fuzzy, c-format
+msgid "Welcome to %s"
msgstr "Velkommen til "
-#: gui/gdmlogin.c:281
+#: gui/gdmlogin.c:276
msgid "gdm_parse_enriched_string: Could not malloc temporary buffer!"
msgstr ""
-#: gui/gdmlogin.c:363
+#: gui/gdmlogin.c:358
msgid "Are you sure you want to reboot the machine?"
msgstr "Er du sikker på at du vil genstarte maskinen?"
-#: gui/gdmlogin.c:376
+#: gui/gdmlogin.c:371
msgid "Are you sure you want to halt the machine?"
msgstr "Er du sikker på at du vil slukke maskinen?"
-#: gui/gdmlogin.c:393
+#: gui/gdmlogin.c:388
#, fuzzy, c-format
msgid "gdm_login_parse_config: No configuration file: %s. Aborting."
msgstr "gdm_greeter_parse_config: Ingen konfigurationsfil: %s. Afbryder."
-#: gui/gdmlogin.c:525
+#: gui/gdmlogin.c:524
#, c-format
msgid ""
"Your preferred session type %s is not installed on this machine.\n"
"Do you wish to make %s the default for future sessions?"
msgstr ""
-#: gui/gdmlogin.c:544 gui/gdmlogin.c:574
+#: gui/gdmlogin.c:543 gui/gdmlogin.c:573
#, c-format
msgid ""
"You have chosen %s for this session, but your default setting is %s.\n"
"Do you wish to make %s the default for future sessions?"
msgstr ""
-#: gui/gdmlogin.c:632
+#: gui/gdmlogin.c:631
#, c-format
msgid "%s session selected"
msgstr ""
-#: gui/gdmlogin.c:648 gui/gdmlogin.c:751
+#: gui/gdmlogin.c:647 gui/gdmlogin.c:750
msgid "Last"
msgstr ""
-#: gui/gdmlogin.c:663
+#: gui/gdmlogin.c:662
msgid "gdm_login_session_init: Session script directory not found!"
msgstr ""
-#: gui/gdmlogin.c:716
+#: gui/gdmlogin.c:715
msgid "No session scripts found. Aborting!"
msgstr "Ingen sessionsskript fundet. Afbryder!"
-#: gui/gdmlogin.c:720
+#: gui/gdmlogin.c:719
#, c-format
msgid "No default session link found. Using %s.\n"
msgstr ""
-#: gui/gdmlogin.c:734
+#: gui/gdmlogin.c:733
#, c-format
msgid "%s language selected"
msgstr ""
-#: gui/gdmlogin.c:766
+#: gui/gdmlogin.c:765
msgid "A-M"
msgstr ""
-#: gui/gdmlogin.c:772
+#: gui/gdmlogin.c:771
msgid "N-Z"
msgstr ""
-#: gui/gdmlogin.c:778
+#: gui/gdmlogin.c:777
msgid "Other"
msgstr ""
-#: gui/gdmlogin.c:1077
+#: gui/gdmlogin.c:1080
#, fuzzy
msgid "Session"
msgstr "Sessioner"
-#: gui/gdmlogin.c:1084
+#: gui/gdmlogin.c:1087
#, fuzzy
msgid "Language"
msgstr "Sprog"
-#: gui/gdmlogin.c:1091
+#: gui/gdmlogin.c:1094
msgid "Reboot..."
msgstr "Genstart..."
-#: gui/gdmlogin.c:1098
+#: gui/gdmlogin.c:1101
msgid "Halt..."
msgstr "Sluk..."
-#: gui/gdmlogin.c:1105
+#: gui/gdmlogin.c:1108
msgid "System"
msgstr ""
-#: gui/gdmlogin.c:1113
+#: gui/gdmlogin.c:1116
#, c-format
msgid "Can't open icon file: %s. Suspending iconify feature!"
msgstr "Kan ikke åbne ikonfil: %s. Afbryder ikonificerings-feature!"
-#: gui/gdmlogin.c:1116
+#: gui/gdmlogin.c:1119
msgid "Iconify"
msgstr "Ikonificer"
-#: gui/gdmlogin.c:1273
+#: gui/gdmlogin.c:1281
msgid "Please enter your login"
msgstr ""
-#: gui/gdmlogin.c:1458
+#: gui/gdmlogin.c:1462
#, fuzzy, c-format
msgid "Can't open DefaultImage: %s. Suspending face browser!"
msgstr "Kan ikke åbne ikonfil: %s. Afbryder ikonificerings-feature!"
-#: gui/gdmlogin.c:1527
+#: gui/gdmlogin.c:1541
msgid "main: Error setting up HUP signal handler"
msgstr ""
-#: gui/gdmlogin.c:1530
+#: gui/gdmlogin.c:1544
msgid "main: Error setting up INT signal handler"
msgstr ""
-#: gui/gdmlogin.c:1533
+#: gui/gdmlogin.c:1547
msgid "main: Error setting up TERM signal handler"
msgstr ""
diff --git a/po/de.po b/po/de.po
index bc953127..bedd5d7e 100644
--- a/po/de.po
+++ b/po/de.po
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: gdm2 \n"
-"POT-Creation-Date: 1999-09-01 23:49+0200\n"
+"POT-Creation-Date: 1999-09-23 01:59+0200\n"
"PO-Revision-Date: 1999-08-25 19:33+02:00\n"
"Last-Translator: Karsten Weiss <karsten@addx.au.s.shuttle.de>\n"
"Language-Team: de <de@li.org>\n"
@@ -14,71 +14,71 @@ msgstr ""
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
-#: daemon/gdm.c:167
+#: daemon/gdm.c:166
#, c-format
msgid "gdm_config_parse: No configuration file: %s. Aborting."
msgstr "gdm_config_parse: Keine Konfigurationsdatei: %s. Breche ab."
-#: daemon/gdm.c:218
+#: daemon/gdm.c:217
msgid "gdm_config_parse: No greeter specified and default not found."
msgstr ""
"gdm_config_parse: Es wurde kein Greeter angegeben und die Voreinstellung "
"nicht gefunden."
-#: daemon/gdm.c:230
+#: daemon/gdm.c:229
msgid "gdm_config_parse: No authdir specified and default not found."
msgstr ""
"gdm_config_parse: Es wurde kein authdir angegeben und die Voreinstellung "
"nicht gefunden."
-#: daemon/gdm.c:248
+#: daemon/gdm.c:247
msgid ""
"gdm_config_parse: No sessions directory specified and default not found."
msgstr ""
"gdm_config_parse: Kein Sitzungsverzeichnis angegeben und die Voreinstellung "
"nicht gefunden."
-#: daemon/gdm.c:260
+#: daemon/gdm.c:259
msgid "gdm_config_parse: Invalid server line in config file. Ignoring!"
msgstr ""
"gdm_config_parse: Ungültige Server-Zeile in Konfigurationsdatei. Ignoriere."
-#: daemon/gdm.c:266
+#: daemon/gdm.c:265
msgid ""
"gdm_config_parse: Xdmcp disabled and no local servers defined. Aborting!"
msgstr ""
"gdm_config_parse: Xdmcp abgeschalten und keine lokalen Server definiert. "
"Breche ab!"
-#: daemon/gdm.c:271
+#: daemon/gdm.c:270
#, c-format
msgid "gdm_config_parse: Can't find the gdm user (%s). Aborting!"
msgstr "gdm_config_parse: Kann den gdm-Benutzer (%s) nicht finden. Breche ab!"
-#: daemon/gdm.c:276
+#: daemon/gdm.c:275
msgid "gdm_config_parse: The gdm user should not be root. Aborting!"
msgstr "gdm_config_parse: Der gdm-Benutzer sollte nicht root sein. Breche ab."
-#: daemon/gdm.c:281
+#: daemon/gdm.c:280
#, c-format
msgid "gdm_config_parse: Can't find the gdm group (%s). Aborting!"
msgstr "gdm_config_parse: Kann die gdm-Gruppe (%s) nicht finden. Breche ab!"
-#: daemon/gdm.c:286
+#: daemon/gdm.c:285
msgid "gdm_config_parse: The gdm group should not be root. Aborting!"
msgstr "gdm_config_parse: Die gdm-Gruppe sollte nicht root sein. Breche ab."
-#: daemon/gdm.c:293
+#: daemon/gdm.c:292
#, c-format
msgid "gdm_config_parse: Authdir %s does not exist. Aborting."
msgstr "gdm_config_parse: Authdir %s existiert nicht. Breche ab."
-#: daemon/gdm.c:296
+#: daemon/gdm.c:295
#, c-format
msgid "gdm_config_parse: Authdir %s is not a directory. Aborting."
msgstr "gdm_config_parse: Authdir %s ist kein Verzeichnis. Breche ab."
-#: daemon/gdm.c:299
+#: daemon/gdm.c:298
#, c-format
msgid ""
"gdm_config_parse: Authdir %s is not owned by user %s, group %s. Aborting."
@@ -86,7 +86,7 @@ msgstr ""
"gdm_config_parse: Authdir %s gehört nicht Benutzer %s und Gruppe %s. Breche "
"ab."
-#: daemon/gdm.c:303
+#: daemon/gdm.c:302
#, c-format
msgid ""
"gdm_config_parse: Authdir %s has wrong permissions. Should be 750. Aborting."
@@ -94,50 +94,50 @@ msgstr ""
"gdm_config_parse: Authdir %s hat falsche Zugriffsrechte. Sollte 750 sein. "
"Breche ab."
-#: daemon/gdm.c:364
+#: daemon/gdm.c:363
#, c-format
msgid "gdm_display_manage: Failed forking gdm slave process for %d"
msgstr ""
"gdm_display_manage: Forken des gdm-Slave-Prozesses für %d fehlgeschlagen"
-#: daemon/gdm.c:443
+#: daemon/gdm.c:442
#, c-format
msgid "gdm_child_action: Aborting display %s"
msgstr "gdm_child_action: Breche Display %s ab"
-#: daemon/gdm.c:448
+#: daemon/gdm.c:447
msgid "gdm_child_action: Master rebooting..."
msgstr "gdm_child_action: Master bootet neu..."
-#: daemon/gdm.c:454
+#: daemon/gdm.c:453
#, c-format
msgid "gdm_child_action: Reboot failed: %s"
msgstr "gdm_child_action: Neustart fehlgeschlagen: %s"
-#: daemon/gdm.c:458
+#: daemon/gdm.c:457
msgid "gdm_child_action: Master halting..."
msgstr "gdm_child_action: Master hält an..."
-#: daemon/gdm.c:464
+#: daemon/gdm.c:463
#, c-format
msgid "gdm_child_action: Halt failed: %s"
msgstr "gdm_child_action: Anhalten fehlgeschlagen: %s"
-#: daemon/gdm.c:561
+#: daemon/gdm.c:560
msgid "gdm_daemonify: fork() failed!"
msgstr "gdm_daemonify: fork() fehlgeschlagen!"
-#: daemon/gdm.c:564
+#: daemon/gdm.c:563
#, c-format
msgid "gdm_daemonify: setsid() failed: %s!"
msgstr "gdm_daemonify: setsid() fehlgeschlagen: %s!"
#. XDM compliant error message
-#: daemon/gdm.c:590
+#: daemon/gdm.c:589
msgid "Only root wants to run x^hgdm\n"
msgstr "Nur root darf x^Hgdm starten\n"
-#: daemon/gdm.c:611
+#: daemon/gdm.c:610
msgid ""
"gdm already running. Aborting!\n"
"\n"
@@ -145,7 +145,7 @@ msgstr ""
"gdm läuft schon. Breche ab!\n"
"\n"
-#: daemon/gdm.c:617
+#: daemon/gdm.c:616
#, c-format
msgid ""
"According to %s, gdm was already running (%d),\n"
@@ -154,15 +154,15 @@ msgstr ""
"Laut %s lief gdm schon (%d),\n"
"scheint aber auf geheimnisvolle Art und Weise getötet worden zu sein.\n"
-#: daemon/gdm.c:639
+#: daemon/gdm.c:638
msgid "gdm_main: Error setting up TERM signal handler"
msgstr "gdm_main: Fehler beim Einrichten des TERM-Signalhandlers"
-#: daemon/gdm.c:642
+#: daemon/gdm.c:641
msgid "gdm_main: Error setting up INT signal handler"
msgstr "gdm_main: Fehler beim Einrichten des INT-Signalhandlers"
-#: daemon/gdm.c:650
+#: daemon/gdm.c:649
msgid "gdm_main: Error setting up CHLD signal handler"
msgstr "gdm_main: Fehler beim Einrichten des CHLD-Signalhandlers"
@@ -187,12 +187,12 @@ msgstr "gdm_auth_user_remove: Ignoriere verdächtig wirkende Cookiedatei %s"
msgid "%s: Directory %s does not exist."
msgstr "%s: Verzeichnis %s existiert nicht."
-#: daemon/filecheck.c:64 daemon/filecheck.c:102
+#: daemon/filecheck.c:64 daemon/filecheck.c:105
#, c-format
msgid "%s: %s is not owned by uid %d."
msgstr "%s: %s gehört nicht der UID %d."
-#: daemon/filecheck.c:70 daemon/filecheck.c:109
+#: daemon/filecheck.c:70 daemon/filecheck.c:112
#, c-format
msgid "%s: %s is writable by group."
msgstr "%s: %s ist beschreibbar durch Gruppe."
@@ -202,17 +202,22 @@ msgstr "%s: %s ist beschreibbar durch Gruppe."
msgid "%s: %s is writable by other."
msgstr "%s: %s ist beschreibbar durch Andere."
-#: daemon/filecheck.c:95
+#: daemon/filecheck.c:90
+#, fuzzy, c-format
+msgid "%s: does not exist and must."
+msgstr "%s: Verzeichnis %s existiert nicht."
+
+#: daemon/filecheck.c:98
#, c-format
msgid "%s: %s is not a regular file."
msgstr "%s: %s ist keine reguläre Datei."
-#: daemon/filecheck.c:116
+#: daemon/filecheck.c:119
#, c-format
msgid "%s: %s is writable by group/other."
msgstr "%s: %s ist beschreibbar durch Gruppe/Andere."
-#: daemon/filecheck.c:123
+#: daemon/filecheck.c:126
#, c-format
msgid "%s: %s is bigger than sysadmin specified maximum file size."
msgstr ""
@@ -228,7 +233,7 @@ msgstr "gdm_exec_script: Start fehlgeschlagen: %s"
msgid "gdm_exec_script: Can't fork script process!"
msgstr "gdm_exec_script: Kann Skriptprozeß nicht forken!"
-#: daemon/server.c:84 daemon/server.c:207
+#: daemon/server.c:84 daemon/server.c:208
msgid "gdm_server_start: Error setting up USR1 signal handler"
msgstr "gdm_server_start: Fehler beim Einrichten des USR1-Signalhandlers"
@@ -255,7 +260,7 @@ msgstr "gdm_server_start: Kann X-Serverprozeß nicht forken!"
msgid "gdm_server_stop: Could not unlink auth file: %s!"
msgstr "gdm_server_stop: Konnte auth-Datei nicht entfernen: %s!"
-#: daemon/server.c:233
+#: daemon/server.c:234
msgid "gdm_server_restart: Error setting up ALARM signal handler"
msgstr "gdm_server_restart: Fehler beim Einrichten des ALARM-Signalhandlers"
@@ -338,213 +343,213 @@ msgstr ""
msgid "gdm_slave_xsync_ping: Error setting up ALARM signal handler"
msgstr "gdm_slave_xsync_ping: Fehler beim Einrichten des ALARM-Signalhandlers"
-#: daemon/verify.c:130 daemon/verify.c:222 gui/gdmlogin.c:1238
+#: daemon/verify.c:129 daemon/verify.c:201 gui/gdmlogin.c:1246
msgid "Login:"
msgstr "Login:"
-#: daemon/verify.c:138 daemon/verify.c:166 daemon/verify.c:226
-#, c-format
-msgid "Couldn't authenticate %s"
-msgstr "Konnte %s nicht beglaubigen"
-
-#: daemon/verify.c:141 daemon/verify.c:229
-msgid "User unknown"
-msgstr "Benutzer unbekannt"
-
-#: daemon/verify.c:147 daemon/verify.c:235
-#, c-format
-msgid "Root login disallowed on display '%s'"
-msgstr "Root-Login auf Display '%s' verboten"
-
-#: daemon/verify.c:150 daemon/verify.c:238
-msgid "Root login disallowed"
-msgstr "Root-Login verboten"
-
-#: daemon/verify.c:156
+#: daemon/verify.c:135
msgid "Can't find /etc/pam.d/gdm!"
msgstr "Kann /etc/pam.d/gdm nicht finden!"
-#: daemon/verify.c:161
+#: daemon/verify.c:140
#, c-format
msgid "Can't set PAM_TTY=%s"
msgstr "Kann PAM_TTY=%s nicht setzen"
-#: daemon/verify.c:171
+#: daemon/verify.c:145 daemon/verify.c:222
+#, c-format
+msgid "Couldn't authenticate %s"
+msgstr "Konnte %s nicht beglaubigen"
+
+#: daemon/verify.c:150
#, c-format
msgid "Couldn't set acct. mgmt for %s"
msgstr "Konnte Accountverwaltung für %s nicht setzen"
-#: daemon/verify.c:176
+#: daemon/verify.c:155
#, c-format
msgid "Couldn't set credentials for %s"
msgstr "Konnte Berechtigungsnachweise für %s nicht setzen"
-#: daemon/verify.c:181
+#: daemon/verify.c:160
#, c-format
msgid "Couldn't open session for %s"
msgstr "Konnte Session für %s nicht öffnen"
-#: daemon/verify.c:256
+#: daemon/verify.c:217
msgid "Password:"
msgstr "Passwort:"
-#: daemon/verify.c:261
+#: daemon/verify.c:223
+msgid "User unknown"
+msgstr "Benutzer unbekannt"
+
+#: daemon/verify.c:228
+#, c-format
+msgid "Root login disallowed on display '%s'"
+msgstr "Root-Login auf Display '%s' verboten"
+
+#: daemon/verify.c:229
+msgid "Root login disallowed"
+msgstr "Root-Login verboten"
+
+#: daemon/verify.c:237
msgid "Incorrect password"
msgstr "Falsches Passwort"
-#: daemon/verify.c:280
+#: daemon/verify.c:256
msgid "gdm_verify_check: Can't find PAM configuration file for gdm"
msgstr ""
-#: daemon/xdmcp.c:179
+#: daemon/xdmcp.c:184
#, c-format
msgid "gdm_xdmcp_init: Could not get server hostname: %s!"
msgstr "gdm_xdmcp_init: Konnte Server-Rechnername nicht ermitteln: %s!"
-#: daemon/xdmcp.c:193
+#: daemon/xdmcp.c:198
msgid "gdm_xdmcp_init: Could not create socket!"
msgstr "gdm_xdmcp_init: Konnte keinen Socket erzeugen!"
-#: daemon/xdmcp.c:200
+#: daemon/xdmcp.c:205
msgid "gdm_xdmcp_init: Could not bind to XDMCP socket!"
msgstr "gdm_xdmcp_init: Konnte nicht an XDMCP-Socket binden!"
-#: daemon/xdmcp.c:209
+#: daemon/xdmcp.c:214
#, fuzzy
msgid "gdm_xdmcp_init: Can't alloc fifopath"
msgstr "gdm_xdmcp_init: Konnte keinen Socket erzeugen!"
-#: daemon/xdmcp.c:214
+#: daemon/xdmcp.c:219
#, fuzzy
msgid "gdm_xdmcp_init: Could not make FIFO for chooser"
msgstr "gdm_xdmcp_init: Konnte keinen Socket erzeugen!"
-#: daemon/xdmcp.c:219
+#: daemon/xdmcp.c:224
#, fuzzy
msgid "gdm_xdmcp_init: Could not open FIFO for chooser"
msgstr "gdm_xdmcp_init: Konnte keinen Socket erzeugen!"
-#: daemon/xdmcp.c:273
+#: daemon/xdmcp.c:284
msgid "gdm_xdmcp_decode: Could not create XDMCP buffer!"
msgstr "gdm_xdmcp_decode: Konnte keine XDMCP-Puffer erzeugen!"
-#: daemon/xdmcp.c:278
+#: daemon/xdmcp.c:289
msgid "gdm_xdmcp_decode: Could not read XDMCP header!"
msgstr "gdm_xdmcp_decode: Konnte XDMCP-Header nicht lesen!"
-#: daemon/xdmcp.c:283
+#: daemon/xdmcp.c:294
msgid "gdm_xdmcp_decode: Incorrect XDMCP version!"
msgstr "gdm_xdmcp_decode: Falsche XDMCP-Version!"
-#: daemon/xdmcp.c:319
+#: daemon/xdmcp.c:333
#, c-format
msgid "gdm_xdmcp_decode_packet: Unknown opcode from host %s"
msgstr "gdm_xdmcp_decode_packet: Unbekannter Opcode von Host %s"
-#: daemon/xdmcp.c:337
+#: daemon/xdmcp.c:351
msgid "gdm_xdmcp_handle_query: Could not extract authlist from packet"
msgstr "gdm_xdmcp_handle_query: Konnte authlist nicht aus Paket entnehmen"
-#: daemon/xdmcp.c:348
+#: daemon/xdmcp.c:362
msgid "gdm_xdmcp_handle_query: Error in checksum"
msgstr "gdm_xdmcp_handle_query: Fehler in Prüfsumme"
-#: daemon/xdmcp.c:379
+#: daemon/xdmcp.c:433
msgid "gdm_xdmcp_handle_forward_query: Could not read display address"
msgstr "gdm_xdmcp_handle_forward_query: Konnte Displayadresse nicht lesen"
-#: daemon/xdmcp.c:385
+#: daemon/xdmcp.c:439
msgid "gdm_xdmcp_handle_forward_query: Could not read display port number"
msgstr "gdm_xdmcp_handle_forward_query: Konnte Display-Portnummer nicht lesen"
-#: daemon/xdmcp.c:391
+#: daemon/xdmcp.c:445
msgid "gdm_xdmcp_handle_forward_query: Could not extract authlist from packet"
msgstr ""
"gdm_xdmcp_handle_forward_query: Konnte authlist nicht aus Paket entnehmen"
-#: daemon/xdmcp.c:406
+#: daemon/xdmcp.c:460
msgid "gdm_xdmcp_handle_forward_query: Error in checksum"
msgstr "gdm_xdmcp_handle_forward_query: Fehler in Prüfsumme"
-#: daemon/xdmcp.c:469
+#: daemon/xdmcp.c:523
#, c-format
msgid "Denied XDMCP query from host %s"
msgstr "XDMCP-Anfrage von Rechner %s abgelehnt"
-#: daemon/xdmcp.c:471
+#: daemon/xdmcp.c:525
msgid "Display not authorized to connect"
msgstr "Display ist nicht autorisiert zu verbinden"
-#: daemon/xdmcp.c:504
+#: daemon/xdmcp.c:558
#, c-format
msgid "gdm_xdmcp_handle_request: Got REQUEST from banned host %s"
msgstr "gdm_xdmcp_handle_request: REQUEST von gesperrtem Host %s bekommen"
-#: daemon/xdmcp.c:511
+#: daemon/xdmcp.c:565
msgid "gdm_xdmcp_handle_request: Could not read Display Number"
msgstr "gdm_xdmcp_handle_request: Konnte Displaynummer nicht lesen"
-#: daemon/xdmcp.c:517
+#: daemon/xdmcp.c:571
msgid "gdm_xdmcp_handle_request: Could not read Connection Type"
msgstr "gdm_xdmcp_handle_request: Konnte Verbindungstyp nicht lesen"
-#: daemon/xdmcp.c:523
+#: daemon/xdmcp.c:577
msgid "gdm_xdmcp_handle_request: Could not read Client Address"
msgstr "gdm_xdmcp_handle_request: Konnte Clientadresse nicht lesen"
-#: daemon/xdmcp.c:529
+#: daemon/xdmcp.c:583
msgid "gdm_xdmcp_handle_request: Could not read Authentication Names"
msgstr "gdm_xdmcp_handle_request: Konnte Authentikationsnamen nicht lesen"
-#: daemon/xdmcp.c:535
+#: daemon/xdmcp.c:589
msgid "gdm_xdmcp_handle_request: Could not read Authentication Data"
msgstr "gdm_xdmcp_handle_request: Konnte Authentikationsdaten nicht lesen"
-#: daemon/xdmcp.c:541
+#: daemon/xdmcp.c:595
msgid "gdm_xdmcp_handle_request: Could not read Authorization List"
msgstr "gdm_xdmcp_handle_request: Konnte Autorisationsliste nicht lesen"
-#: daemon/xdmcp.c:552
+#: daemon/xdmcp.c:606
msgid "gdm_xdmcp_handle_request: Could not read Manufacturer ID"
msgstr "gdm_xdmcp_handle_request: Konnte Manufacturer ID nicht lesen"
-#: daemon/xdmcp.c:570
+#: daemon/xdmcp.c:624
#, c-format
msgid "gdm_xdmcp_handle_request: Failed checksum from %s"
msgstr "gdm_xdmcp_handle_request: Falsche Prüfsumme von %s"
-#: daemon/xdmcp.c:683
+#: daemon/xdmcp.c:737
#, c-format
msgid "gdm_xdmcp_handle_manage: Got Manage from banned host %s"
msgstr "gdm_xdmcp_handle_manage: Manage von gesperrtem Host %s erhalten"
-#: daemon/xdmcp.c:690
+#: daemon/xdmcp.c:744
msgid "gdm_xdmcp_handle_manage: Could not read Session ID"
msgstr "gdm_xdmcp_handle_manage: Konnte Session ID nicht lesen"
-#: daemon/xdmcp.c:696
+#: daemon/xdmcp.c:750
msgid "gdm_xdmcp_handle_manage: Could not read Display Number"
msgstr "gdm_xdmcp_handle_manage: Konnte Displaynummer nicht lesen"
-#: daemon/xdmcp.c:705
+#: daemon/xdmcp.c:759
msgid "gdm_xdmcp_manage: Could not read Display Class"
msgstr "gdm_xdmcp_manage: Konnte Displayklasse nicht lesen"
-#: daemon/xdmcp.c:726
+#: daemon/xdmcp.c:780
#, c-format
msgid "gdm_xdmcp_handle_manage: Could not open logfile for display %s!"
msgstr "gdm_xdmcp_handle_manage: Konnte Logdatei für Display %s nicht öffnen!"
-#: daemon/xdmcp.c:798
+#: daemon/xdmcp.c:852
#, c-format
msgid "gdm_xdmcp_handle_keepalive: Got KEEPALIVE from banned host %s"
msgstr "gdm_xdmcp_handle_keepalive: KEEPALIVE von gesperrtem Host %s bekommen"
-#: daemon/xdmcp.c:805
+#: daemon/xdmcp.c:859
msgid "gdm_xdmcp_handle_keepalive: Could not read Display Number"
msgstr "gdm_xdmcp_handle_keepalive: Konnte Displaynummer nicht lesen"
-#: daemon/xdmcp.c:811
+#: daemon/xdmcp.c:865
msgid "gdm_xdmcp_handle_keepalive: Could not read Session ID"
msgstr "gdm_xdmcp_handle_keepalive: Konnte Session ID nicht lesen"
@@ -583,36 +588,37 @@ msgstr "gdm_signals_init: Fehler beim Einrichten des INT-Signalhandlers"
msgid "gdm_signals_init: Error setting up TERM signal handler"
msgstr "gdm_signals_init: Fehler beim Einrichten des TERM-Signalhandlers"
-#: gui/gdmchooser.c:596 gui/gdmlogin.c:1541
+#: gui/gdmchooser.c:596 gui/gdmlogin.c:1555
msgid "Could not set signal mask!"
msgstr "Konnte Signalmaske nicht setzen!"
-#: gui/gdmlogin.c:276
+#: gui/gdmlogin.c:271
msgid "gdm_parse_enriched_string: String too long!"
msgstr "gdm_parse_enriched_string: String ist zu lang!"
-#: gui/gdmlogin.c:277
-msgid "Welcome to "
+#: gui/gdmlogin.c:272
+#, fuzzy, c-format
+msgid "Welcome to %s"
msgstr "Willkommen auf "
-#: gui/gdmlogin.c:281
+#: gui/gdmlogin.c:276
msgid "gdm_parse_enriched_string: Could not malloc temporary buffer!"
msgstr "gdm_parse_enriched_string: Konnte temporären Buffer nicht allozieren!"
-#: gui/gdmlogin.c:363
+#: gui/gdmlogin.c:358
msgid "Are you sure you want to reboot the machine?"
msgstr "Sind Sie sicher, daß Sie den Rechner neu starten möchten?"
-#: gui/gdmlogin.c:376
+#: gui/gdmlogin.c:371
msgid "Are you sure you want to halt the machine?"
msgstr "Sind Sie sicher, daß Sie den Rechner anhalten möchten?"
-#: gui/gdmlogin.c:393
+#: gui/gdmlogin.c:388
#, c-format
msgid "gdm_login_parse_config: No configuration file: %s. Aborting."
msgstr "gdm_login_parse_config: Keine Konfigurationsdatei: %s. Breche ab."
-#: gui/gdmlogin.c:525
+#: gui/gdmlogin.c:524
#, c-format
msgid ""
"Your preferred session type %s is not installed on this machine.\n"
@@ -621,7 +627,7 @@ msgstr ""
"Ihr bevorzugter Sitzungstyp %s ist auf diesem Rechner nicht installiert.\n"
"Möchten Sie %s zu Ihrer Voreinstellung für zukünftige Sitzungen machen?"
-#: gui/gdmlogin.c:544 gui/gdmlogin.c:574
+#: gui/gdmlogin.c:543 gui/gdmlogin.c:573
#, c-format
msgid ""
"You have chosen %s for this session, but your default setting is %s.\n"
@@ -630,91 +636,91 @@ msgstr ""
"Sie haben %s für diese Sitzung ausgewählt. Ihre Voreinstellung ist aber %s.\n"
"Möchten Sie %s zu Ihrer Voreinstellung für zukünftige Sitzungen machen?"
-#: gui/gdmlogin.c:632
+#: gui/gdmlogin.c:631
#, c-format
msgid "%s session selected"
msgstr "Sitzung %s ausgewählt"
-#: gui/gdmlogin.c:648 gui/gdmlogin.c:751
+#: gui/gdmlogin.c:647 gui/gdmlogin.c:750
msgid "Last"
msgstr "Letzte"
-#: gui/gdmlogin.c:663
+#: gui/gdmlogin.c:662
msgid "gdm_login_session_init: Session script directory not found!"
msgstr "gdm_login_session_init: Sitzungsskript-Verzeichnis nicht gefunden!"
-#: gui/gdmlogin.c:716
+#: gui/gdmlogin.c:715
msgid "No session scripts found. Aborting!"
msgstr "Keine Sitzungs-Skripte gefunden. Breche ab!"
-#: gui/gdmlogin.c:720
+#: gui/gdmlogin.c:719
#, c-format
msgid "No default session link found. Using %s.\n"
msgstr "Keinen Link zur voreingestellten Sitzung gefunden. Benutze %s.\n"
-#: gui/gdmlogin.c:734
+#: gui/gdmlogin.c:733
#, c-format
msgid "%s language selected"
msgstr "Sprache %s ausgewählt"
-#: gui/gdmlogin.c:766
+#: gui/gdmlogin.c:765
msgid "A-M"
msgstr "A-M"
-#: gui/gdmlogin.c:772
+#: gui/gdmlogin.c:771
msgid "N-Z"
msgstr "N-Z"
-#: gui/gdmlogin.c:778
+#: gui/gdmlogin.c:777
msgid "Other"
msgstr "Andere"
-#: gui/gdmlogin.c:1077
+#: gui/gdmlogin.c:1080
msgid "Session"
msgstr "Sitzung"
-#: gui/gdmlogin.c:1084
+#: gui/gdmlogin.c:1087
msgid "Language"
msgstr "Sprache"
-#: gui/gdmlogin.c:1091
+#: gui/gdmlogin.c:1094
msgid "Reboot..."
msgstr "Neustart..."
-#: gui/gdmlogin.c:1098
+#: gui/gdmlogin.c:1101
msgid "Halt..."
msgstr "Herunterfahren..."
-#: gui/gdmlogin.c:1105
+#: gui/gdmlogin.c:1108
msgid "System"
msgstr "System"
-#: gui/gdmlogin.c:1113
+#: gui/gdmlogin.c:1116
#, c-format
msgid "Can't open icon file: %s. Suspending iconify feature!"
msgstr "Kann Icondatei nicht öffnen: %s. Minimierung nicht möglich!"
-#: gui/gdmlogin.c:1116
+#: gui/gdmlogin.c:1119
msgid "Iconify"
msgstr "Minimieren"
-#: gui/gdmlogin.c:1273
+#: gui/gdmlogin.c:1281
msgid "Please enter your login"
msgstr "Bitte geben Sie Ihr Login ein"
-#: gui/gdmlogin.c:1458
+#: gui/gdmlogin.c:1462
#, c-format
msgid "Can't open DefaultImage: %s. Suspending face browser!"
msgstr "Kann DefaultImage nicht öffnen: %s. Gesichterliste abgeschaltet!"
-#: gui/gdmlogin.c:1527
+#: gui/gdmlogin.c:1541
msgid "main: Error setting up HUP signal handler"
msgstr "main: Fehler beim Einrichten des HUP-Signalhandlers"
-#: gui/gdmlogin.c:1530
+#: gui/gdmlogin.c:1544
msgid "main: Error setting up INT signal handler"
msgstr "main: Fehler beim Einrichten des INT-Signalhandlers"
-#: gui/gdmlogin.c:1533
+#: gui/gdmlogin.c:1547
msgid "main: Error setting up TERM signal handler"
msgstr "main: Fehler beim Einrichten des TERM-Signalhandlers"
diff --git a/po/fr.po b/po/fr.po
index b4d999ce..51584b14 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: gdm VERSION\n"
-"POT-Creation-Date: 1999-09-01 23:49+0200\n"
+"POT-Creation-Date: 1999-09-23 01:59+0200\n"
"PO-Revision-Date: 1998-09-12 21:08+0200\n"
"Last-Translator: Vincent Renardias <vincent@debian.org>\n"
"Language-Team: GNOME French Team <gnomefr@gnomefr.traduc.org>\n"
@@ -14,68 +14,68 @@ msgstr ""
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
-#: daemon/gdm.c:167
+#: daemon/gdm.c:166
#, c-format
msgid "gdm_config_parse: No configuration file: %s. Aborting."
msgstr "gdm_config_parse: Pas de fichier de configuration: %s. Abandon."
-#: daemon/gdm.c:218
+#: daemon/gdm.c:217
msgid "gdm_config_parse: No greeter specified and default not found."
msgstr ""
-#: daemon/gdm.c:230
+#: daemon/gdm.c:229
msgid "gdm_config_parse: No authdir specified and default not found."
msgstr "gdm_config_parse: authdir non défini et valeur par défaut inconnue"
-#: daemon/gdm.c:248
+#: daemon/gdm.c:247
msgid ""
"gdm_config_parse: No sessions directory specified and default not found."
msgstr ""
"gdm_config_parse: Répertoire de sessions non défini et valeur par défaut "
"inconnue."
-#: daemon/gdm.c:260
+#: daemon/gdm.c:259
msgid "gdm_config_parse: Invalid server line in config file. Ignoring!"
msgstr ""
"gdm_config_parse: Ligne du server invalide dans le fichier de configuration. "
"Ignore."
-#: daemon/gdm.c:266
+#: daemon/gdm.c:265
msgid ""
"gdm_config_parse: Xdmcp disabled and no local servers defined. Aborting!"
msgstr ""
"gdm_config_parse: Xdmcp désactivé et pas de serveurs locaux définis. Abandon!"
-#: daemon/gdm.c:271
+#: daemon/gdm.c:270
#, c-format
msgid "gdm_config_parse: Can't find the gdm user (%s). Aborting!"
msgstr ""
"gdm_config_parse: Impossible de trouver l'utilisateur gdm (%s). Abandon!"
-#: daemon/gdm.c:276
+#: daemon/gdm.c:275
msgid "gdm_config_parse: The gdm user should not be root. Aborting!"
msgstr "gdm_config_parse: L'utilisateur gdm ne doit pas être root. Abandon!"
-#: daemon/gdm.c:281
+#: daemon/gdm.c:280
#, c-format
msgid "gdm_config_parse: Can't find the gdm group (%s). Aborting!"
msgstr "gdm_config_parse: Impossible de trouver le groupe gdm (%s). Abandon!"
-#: daemon/gdm.c:286
+#: daemon/gdm.c:285
msgid "gdm_config_parse: The gdm group should not be root. Aborting!"
msgstr "gdm_config_parse: Le groupe gdm ne doit pas être root. Abandon!"
-#: daemon/gdm.c:293
+#: daemon/gdm.c:292
#, c-format
msgid "gdm_config_parse: Authdir %s does not exist. Aborting."
msgstr "gdm_config_parse: Le répertoire Authdir %s n'existe pas. Abandon."
-#: daemon/gdm.c:296
+#: daemon/gdm.c:295
#, c-format
msgid "gdm_config_parse: Authdir %s is not a directory. Aborting."
msgstr "gdm_config_parse: Authdir %s n'est pas un répertoire. Abandon."
-#: daemon/gdm.c:299
+#: daemon/gdm.c:298
#, c-format
msgid ""
"gdm_config_parse: Authdir %s is not owned by user %s, group %s. Aborting."
@@ -83,7 +83,7 @@ msgstr ""
"gdm_config_parse: Le répertoire Authdir %s n'appartient pas à l'utilisateur "
"%s, du groupe %s. Abandon."
-#: daemon/gdm.c:303
+#: daemon/gdm.c:302
#, c-format
msgid ""
"gdm_config_parse: Authdir %s has wrong permissions. Should be 750. Aborting."
@@ -91,51 +91,51 @@ msgstr ""
"gdm_config_parse: Authdir %s a de mauvais droits d'accès. Les permissions "
"devraient être fixées à 750. Abandon."
-#: daemon/gdm.c:364
+#: daemon/gdm.c:363
#, c-format
msgid "gdm_display_manage: Failed forking gdm slave process for %d"
msgstr ""
"gdm_display_manage: Échec à la création du processus esclave gdm pour %d"
-#: daemon/gdm.c:443
+#: daemon/gdm.c:442
#, c-format
msgid "gdm_child_action: Aborting display %s"
msgstr "gdm_child_action: Abandon affichage %s"
-#: daemon/gdm.c:448
+#: daemon/gdm.c:447
msgid "gdm_child_action: Master rebooting..."
msgstr "gdm_child_action: Redémarrage du maître..."
-#: daemon/gdm.c:454
+#: daemon/gdm.c:453
#, c-format
msgid "gdm_child_action: Reboot failed: %s"
msgstr "gdm_child_action: Échec du redémarrage: %s"
-#: daemon/gdm.c:458
+#: daemon/gdm.c:457
msgid "gdm_child_action: Master halting..."
msgstr "gdm_child_action: Arrêt du maître..."
-#: daemon/gdm.c:464
+#: daemon/gdm.c:463
#, c-format
msgid "gdm_child_action: Halt failed: %s"
msgstr "gdm_child_action: Échec de l'arrêt: %s"
-#: daemon/gdm.c:561
+#: daemon/gdm.c:560
msgid "gdm_daemonify: fork() failed!"
msgstr "gdm_daemonify: échec du fork()!"
-#: daemon/gdm.c:564
+#: daemon/gdm.c:563
#, c-format
msgid "gdm_daemonify: setsid() failed: %s!"
msgstr "gdm_daemonify: échec de setid(): %s!"
#. XDM compliant error message
-#: daemon/gdm.c:590
+#: daemon/gdm.c:589
#, fuzzy
msgid "Only root wants to run x^hgdm\n"
msgstr "gdm fonctionne uniquement sous root\n"
-#: daemon/gdm.c:611
+#: daemon/gdm.c:610
msgid ""
"gdm already running. Aborting!\n"
"\n"
@@ -143,7 +143,7 @@ msgstr ""
"gdm est déjà lancé. Abandon!\n"
"\n"
-#: daemon/gdm.c:617
+#: daemon/gdm.c:616
#, c-format
msgid ""
"According to %s, gdm was already running (%d),\n"
@@ -152,19 +152,19 @@ msgstr ""
"Selon to %s, gdm est déjà lancé (%d),\n"
"mais semble avoir été mystérieusement supprimé.\n"
-#: daemon/gdm.c:639
+#: daemon/gdm.c:638
msgid "gdm_main: Error setting up TERM signal handler"
msgstr ""
"gdm_main: Erreur lors de la configuration de la procédure de prise en charge "
"du signal TERM"
-#: daemon/gdm.c:642
+#: daemon/gdm.c:641
msgid "gdm_main: Error setting up INT signal handler"
msgstr ""
"gdm_main: Erreur lors de la configuration de la procédure de prise en charge "
"du signal INT"
-#: daemon/gdm.c:650
+#: daemon/gdm.c:649
msgid "gdm_main: Error setting up CHLD signal handler"
msgstr ""
"gdm_main: Erreur lors de la configuration de la procédure de prise en charge "
@@ -191,12 +191,12 @@ msgstr "gdm_auth_user_remove: Erreur au démarrage du processus xauth: %s"
msgid "%s: Directory %s does not exist."
msgstr ""
-#: daemon/filecheck.c:64 daemon/filecheck.c:102
+#: daemon/filecheck.c:64 daemon/filecheck.c:105
#, c-format
msgid "%s: %s is not owned by uid %d."
msgstr "%s: %s n'appartient pas à l'uid %d. Ignore."
-#: daemon/filecheck.c:70 daemon/filecheck.c:109
+#: daemon/filecheck.c:70 daemon/filecheck.c:112
#, c-format
msgid "%s: %s is writable by group."
msgstr ""
@@ -210,19 +210,24 @@ msgstr ""
"%s: %s peut être modifié par d'autres utilisateurs. Les droits d'accès "
"devraient être 755. Ignore."
-#: daemon/filecheck.c:95
+#: daemon/filecheck.c:90
+#, c-format
+msgid "%s: does not exist and must."
+msgstr ""
+
+#: daemon/filecheck.c:98
#, c-format
msgid "%s: %s is not a regular file."
msgstr "%s: %s n'est pas un fichier. Ignore."
-#: daemon/filecheck.c:116
+#: daemon/filecheck.c:119
#, c-format
msgid "%s: %s is writable by group/other."
msgstr ""
"%s: %s peut être modifié par d'autres utilisateurs. Les droits d'accès "
"devraient être 755. Ignore."
-#: daemon/filecheck.c:123
+#: daemon/filecheck.c:126
#, c-format
msgid "%s: %s is bigger than sysadmin specified maximum file size."
msgstr ""
@@ -238,7 +243,7 @@ msgstr "gdm_exec_script: Échec du lancement: %s"
msgid "gdm_exec_script: Can't fork script process!"
msgstr "gdm_exec_script: Impossible de créer le processus de script!"
-#: daemon/server.c:84 daemon/server.c:207
+#: daemon/server.c:84 daemon/server.c:208
msgid "gdm_server_start: Error setting up USR1 signal handler"
msgstr ""
"gdm_server_start: Erreur lors de la configuration de la procédure de prise "
@@ -269,7 +274,7 @@ msgstr "gdm_server_start: Impossible de créer le processus du server X!"
msgid "gdm_server_stop: Could not unlink auth file: %s!"
msgstr "gdm_server_stop: Impossible d'effacer le fichier d'autorisations: %s!"
-#: daemon/server.c:233
+#: daemon/server.c:234
msgid "gdm_server_restart: Error setting up ALARM signal handler"
msgstr ""
"gdm_server_restart: Erreur lors de la configuration de la procédure de prise "
@@ -362,225 +367,225 @@ msgstr ""
"gdm_slave_xsync_ping: Erreur lors de la configuration de la procédure de "
"prise en charge du signal ALARM"
-#: daemon/verify.c:130 daemon/verify.c:222 gui/gdmlogin.c:1238
+#: daemon/verify.c:129 daemon/verify.c:201 gui/gdmlogin.c:1246
msgid "Login:"
msgstr "Login:"
-#: daemon/verify.c:138 daemon/verify.c:166 daemon/verify.c:226
-#, c-format
-msgid "Couldn't authenticate %s"
-msgstr "Impossible d'identifier %s"
-
-#: daemon/verify.c:141 daemon/verify.c:229
-msgid "User unknown"
-msgstr "Utilisateur inconnu"
-
-#: daemon/verify.c:147 daemon/verify.c:235
-#, c-format
-msgid "Root login disallowed on display '%s'"
-msgstr ""
-
-#: daemon/verify.c:150 daemon/verify.c:238
-msgid "Root login disallowed"
-msgstr ""
-
-#: daemon/verify.c:156
+#: daemon/verify.c:135
msgid "Can't find /etc/pam.d/gdm!"
msgstr "Impossible de trouver /etc/pam.d/gdm!"
-#: daemon/verify.c:161
+#: daemon/verify.c:140
#, c-format
msgid "Can't set PAM_TTY=%s"
msgstr "Impossible d'affecter PAM_TTY=%s"
-#: daemon/verify.c:171
+#: daemon/verify.c:145 daemon/verify.c:222
+#, c-format
+msgid "Couldn't authenticate %s"
+msgstr "Impossible d'identifier %s"
+
+#: daemon/verify.c:150
#, c-format
msgid "Couldn't set acct. mgmt for %s"
msgstr "Impossible d'obtenir l'acct. mgmt de pam pour %s"
-#: daemon/verify.c:176
+#: daemon/verify.c:155
#, c-format
msgid "Couldn't set credentials for %s"
msgstr "Impossible d'obtenir les autorisations pam (credentials) pour %s"
-#: daemon/verify.c:181
+#: daemon/verify.c:160
#, c-format
msgid "Couldn't open session for %s"
msgstr "Impossible d'ouvrir la session pour %s"
-#: daemon/verify.c:256
+#: daemon/verify.c:217
msgid "Password:"
msgstr "Mot de passe:"
-#: daemon/verify.c:261
+#: daemon/verify.c:223
+msgid "User unknown"
+msgstr "Utilisateur inconnu"
+
+#: daemon/verify.c:228
+#, c-format
+msgid "Root login disallowed on display '%s'"
+msgstr ""
+
+#: daemon/verify.c:229
+msgid "Root login disallowed"
+msgstr ""
+
+#: daemon/verify.c:237
msgid "Incorrect password"
msgstr "Mot de passe incorrect"
-#: daemon/verify.c:280
+#: daemon/verify.c:256
msgid "gdm_verify_check: Can't find PAM configuration file for gdm"
msgstr ""
-#: daemon/xdmcp.c:179
+#: daemon/xdmcp.c:184
#, c-format
msgid "gdm_xdmcp_init: Could not get server hostname: %s!"
msgstr "gdm_xdmcp_init: Impossible d'obtenir le nom du serveur: %s!"
-#: daemon/xdmcp.c:193
+#: daemon/xdmcp.c:198
msgid "gdm_xdmcp_init: Could not create socket!"
msgstr "gdm_xdmcp_init: Impossible de créer la socket!"
-#: daemon/xdmcp.c:200
+#: daemon/xdmcp.c:205
msgid "gdm_xdmcp_init: Could not bind to XDMCP socket!"
msgstr "gdm_xdmcp_init: Impossible de se rattacher à la socket XDMCP!"
-#: daemon/xdmcp.c:209
+#: daemon/xdmcp.c:214
#, fuzzy
msgid "gdm_xdmcp_init: Can't alloc fifopath"
msgstr "gdm_xdmcp_init: Impossible de créer la socket!"
-#: daemon/xdmcp.c:214
+#: daemon/xdmcp.c:219
#, fuzzy
msgid "gdm_xdmcp_init: Could not make FIFO for chooser"
msgstr "gdm_xdmcp_init: Impossible de créer la socket!"
-#: daemon/xdmcp.c:219
+#: daemon/xdmcp.c:224
#, fuzzy
msgid "gdm_xdmcp_init: Could not open FIFO for chooser"
msgstr "gdm_xdmcp_init: Impossible de créer la socket!"
-#: daemon/xdmcp.c:273
+#: daemon/xdmcp.c:284
msgid "gdm_xdmcp_decode: Could not create XDMCP buffer!"
msgstr "gdm_xdmcp_decode: Impossible de créer le buffer XDMCP!"
-#: daemon/xdmcp.c:278
+#: daemon/xdmcp.c:289
msgid "gdm_xdmcp_decode: Could not read XDMCP header!"
msgstr "gdm_xdmcp_decode: Impossible de lire l'entête XDMCP!"
-#: daemon/xdmcp.c:283
+#: daemon/xdmcp.c:294
msgid "gdm_xdmcp_decode: Incorrect XDMCP version!"
msgstr "gdm_xdmcp_decode: Version de XDMCP incorrecte!"
-#: daemon/xdmcp.c:319
+#: daemon/xdmcp.c:333
#, c-format
msgid "gdm_xdmcp_decode_packet: Unknown opcode from host %s"
msgstr "gdm_xdmcp_decode_packet: opcode inconnu pour la machine %s"
-#: daemon/xdmcp.c:337
+#: daemon/xdmcp.c:351
msgid "gdm_xdmcp_handle_query: Could not extract authlist from packet"
msgstr ""
"gdm_xdmcp_query: Impossible d'extraire la liste des machines autorisées "
"à partir des données du paquet"
-#: daemon/xdmcp.c:348
+#: daemon/xdmcp.c:362
msgid "gdm_xdmcp_handle_query: Error in checksum"
msgstr "gdm_xdmcp_query: Erreur dans la somme de contrôle"
-#: daemon/xdmcp.c:379
+#: daemon/xdmcp.c:433
msgid "gdm_xdmcp_handle_forward_query: Could not read display address"
msgstr "gdm_xdmcp_handle_request: Impossible de lire le numéro de l'écran"
-#: daemon/xdmcp.c:385
+#: daemon/xdmcp.c:439
msgid "gdm_xdmcp_handle_forward_query: Could not read display port number"
msgstr "gdm_xdmcp_handle_request: Impossible de lire le numéro de l'écran"
-#: daemon/xdmcp.c:391
+#: daemon/xdmcp.c:445
msgid "gdm_xdmcp_handle_forward_query: Could not extract authlist from packet"
msgstr ""
"gdm_xdmcp_query: Impossible d'extraire la liste des machines autorisées "
"à partir des données du paquet"
-#: daemon/xdmcp.c:406
+#: daemon/xdmcp.c:460
msgid "gdm_xdmcp_handle_forward_query: Error in checksum"
msgstr "gdm_xdmcp_query: Erreur dans la somme de contrôle"
-#: daemon/xdmcp.c:469
+#: daemon/xdmcp.c:523
#, c-format
msgid "Denied XDMCP query from host %s"
msgstr "Demande XDMCP non autorisée par la machine %s"
-#: daemon/xdmcp.c:471
+#: daemon/xdmcp.c:525
msgid "Display not authorized to connect"
msgstr "Pas d'autorisation pour se connecter à cet écran"
-#: daemon/xdmcp.c:504
+#: daemon/xdmcp.c:558
#, c-format
msgid "gdm_xdmcp_handle_request: Got REQUEST from banned host %s"
msgstr ""
"gdm_xdmcp_handle_request: Réception de REQUEST d'une machine interdite %s"
-#: daemon/xdmcp.c:511
+#: daemon/xdmcp.c:565
msgid "gdm_xdmcp_handle_request: Could not read Display Number"
msgstr "gdm_xdmcp_handle_request: Impossible de lire le numéro de l'écran"
-#: daemon/xdmcp.c:517
+#: daemon/xdmcp.c:571
msgid "gdm_xdmcp_handle_request: Could not read Connection Type"
msgstr "gdm_xdmcp_handle_request: Impossible de lire le type de connection"
-#: daemon/xdmcp.c:523
+#: daemon/xdmcp.c:577
msgid "gdm_xdmcp_handle_request: Could not read Client Address"
msgstr "gdm_xdmcp_handle_request: Impossible de lire l'adresse du client"
-#: daemon/xdmcp.c:529
+#: daemon/xdmcp.c:583
msgid "gdm_xdmcp_handle_request: Could not read Authentication Names"
msgstr ""
"gdm_xdmcp_handle_request: Impossible de lire les noms de l'authentification"
-#: daemon/xdmcp.c:535
+#: daemon/xdmcp.c:589
msgid "gdm_xdmcp_handle_request: Could not read Authentication Data"
msgstr ""
"gdm_xdmcp_handle_request: Impossible de lire les données de "
"l'authentification"
-#: daemon/xdmcp.c:541
+#: daemon/xdmcp.c:595
msgid "gdm_xdmcp_handle_request: Could not read Authorization List"
msgstr ""
"gdm_xdmcp_handle_request: Impossible de lire la liste de l'authentification"
-#: daemon/xdmcp.c:552
+#: daemon/xdmcp.c:606
msgid "gdm_xdmcp_handle_request: Could not read Manufacturer ID"
msgstr "gdm_xdmcp_handle_request: Impossible de lire l'ID du fabricant"
-#: daemon/xdmcp.c:570
+#: daemon/xdmcp.c:624
#, c-format
msgid "gdm_xdmcp_handle_request: Failed checksum from %s"
msgstr "gdm_xdmcp_handle_request: Erreur de la somme de contrôle pour %s"
-#: daemon/xdmcp.c:683
+#: daemon/xdmcp.c:737
#, c-format
msgid "gdm_xdmcp_handle_manage: Got Manage from banned host %s"
msgstr ""
"gdm_xdmcp_handle_manage: Réception de \"Manage\" d'une machine interdite %s"
-#: daemon/xdmcp.c:690
+#: daemon/xdmcp.c:744
msgid "gdm_xdmcp_handle_manage: Could not read Session ID"
msgstr "gdm_xdmcp_handle_manage: Impossible de lire l'ID de session"
-#: daemon/xdmcp.c:696
+#: daemon/xdmcp.c:750
msgid "gdm_xdmcp_handle_manage: Could not read Display Number"
msgstr "gdm_xdmcp_handle_manage: Impossible de lire le numéro de l'écran"
-#: daemon/xdmcp.c:705
+#: daemon/xdmcp.c:759
msgid "gdm_xdmcp_manage: Could not read Display Class"
msgstr "gdm_xdmcp_manage: Impossible de lire le classe de l'écran"
-#: daemon/xdmcp.c:726
+#: daemon/xdmcp.c:780
#, c-format
msgid "gdm_xdmcp_handle_manage: Could not open logfile for display %s!"
msgstr ""
"gdm_xdmcp_handle_manage: Impossible d'ouvrir le fichier d'historique pour "
"l'écran %s!"
-#: daemon/xdmcp.c:798
+#: daemon/xdmcp.c:852
#, c-format
msgid "gdm_xdmcp_handle_keepalive: Got KEEPALIVE from banned host %s"
msgstr ""
"gdm_xdmcp_handle_keepalive: Réception de KEEPALIVE d'une machine interdite %s"
-#: daemon/xdmcp.c:805
+#: daemon/xdmcp.c:859
msgid "gdm_xdmcp_handle_keepalive: Could not read Display Number"
msgstr "gdm_xdmcp_handle_keepalive: Impossible de lire de numéro de l'écran"
-#: daemon/xdmcp.c:811
+#: daemon/xdmcp.c:865
msgid "gdm_xdmcp_handle_keepalive: Could not read Session ID"
msgstr "gdm_xdmcp_handle_keepalive: Impossible de lire l'ID de session"
@@ -629,36 +634,37 @@ msgstr ""
"gdm_main: Erreur lors de la configuration de la procédure de prise en charge "
"du signal TERM"
-#: gui/gdmchooser.c:596 gui/gdmlogin.c:1541
+#: gui/gdmchooser.c:596 gui/gdmlogin.c:1555
msgid "Could not set signal mask!"
msgstr ""
-#: gui/gdmlogin.c:276
+#: gui/gdmlogin.c:271
msgid "gdm_parse_enriched_string: String too long!"
msgstr "gdm_parse_enriched_string: Chaîne trop longue!"
-#: gui/gdmlogin.c:277
-msgid "Welcome to "
+#: gui/gdmlogin.c:272
+#, fuzzy, c-format
+msgid "Welcome to %s"
msgstr "Bienvenue sur "
-#: gui/gdmlogin.c:281
+#: gui/gdmlogin.c:276
msgid "gdm_parse_enriched_string: Could not malloc temporary buffer!"
msgstr "gdm_parse_enriched_string: Impossible d'allouer un buffer temporaire!"
-#: gui/gdmlogin.c:363
+#: gui/gdmlogin.c:358
msgid "Are you sure you want to reboot the machine?"
msgstr "Voulez-vous vraiment redémarrer le système?"
-#: gui/gdmlogin.c:376
+#: gui/gdmlogin.c:371
msgid "Are you sure you want to halt the machine?"
msgstr "Voulez-vous vraiment arrêter le système?"
-#: gui/gdmlogin.c:393
+#: gui/gdmlogin.c:388
#, c-format
msgid "gdm_login_parse_config: No configuration file: %s. Aborting."
msgstr "gdm_login_parse_config: Pas de fichier de configuration: %s. Abandon."
-#: gui/gdmlogin.c:525
+#: gui/gdmlogin.c:524
#, c-format
msgid ""
"Your preferred session type %s is not installed on this machine.\n"
@@ -667,7 +673,7 @@ msgstr ""
"Votre type favori de session %s n'est pas installé sur cette machine.\n"
"Souhaitez-vous que %s devienne le type par défaut de vos futures sessions?"
-#: gui/gdmlogin.c:544 gui/gdmlogin.c:574
+#: gui/gdmlogin.c:543 gui/gdmlogin.c:573
#, c-format
msgid ""
"You have chosen %s for this session, but your default setting is %s.\n"
@@ -678,102 +684,102 @@ msgstr ""
"Souhaitez-vous faire de %s votre configuration par défaut pour vos futures "
"sessions?"
-#: gui/gdmlogin.c:632
+#: gui/gdmlogin.c:631
#, c-format
msgid "%s session selected"
msgstr "session %s sélectionnée"
-#: gui/gdmlogin.c:648 gui/gdmlogin.c:751
+#: gui/gdmlogin.c:647 gui/gdmlogin.c:750
msgid "Last"
msgstr "Précédente"
-#: gui/gdmlogin.c:663
+#: gui/gdmlogin.c:662
msgid "gdm_login_session_init: Session script directory not found!"
msgstr ""
"gdm_login_session_init: Impossible de trouver le répertoire des scripts de "
"session!"
-#: gui/gdmlogin.c:716
+#: gui/gdmlogin.c:715
msgid "No session scripts found. Aborting!"
msgstr "Aucun script de session. Abandon!"
-#: gui/gdmlogin.c:720
+#: gui/gdmlogin.c:719
#, c-format
msgid "No default session link found. Using %s.\n"
msgstr "Pas de lien vers une session par défaut. Utilisation de %s.\n"
-#: gui/gdmlogin.c:734
+#: gui/gdmlogin.c:733
#, c-format
msgid "%s language selected"
msgstr "langage %s sélectionné"
-#: gui/gdmlogin.c:766
+#: gui/gdmlogin.c:765
msgid "A-M"
msgstr "A-M"
-#: gui/gdmlogin.c:772
+#: gui/gdmlogin.c:771
msgid "N-Z"
msgstr "N-Z"
-#: gui/gdmlogin.c:778
+#: gui/gdmlogin.c:777
msgid "Other"
msgstr "Autre"
-#: gui/gdmlogin.c:1077
+#: gui/gdmlogin.c:1080
msgid "Session"
msgstr "Session"
-#: gui/gdmlogin.c:1084
+#: gui/gdmlogin.c:1087
msgid "Language"
msgstr "Langage"
-#: gui/gdmlogin.c:1091
+#: gui/gdmlogin.c:1094
msgid "Reboot..."
msgstr "Redémarrage..."
-#: gui/gdmlogin.c:1098
+#: gui/gdmlogin.c:1101
msgid "Halt..."
msgstr "Arrêt..."
-#: gui/gdmlogin.c:1105
+#: gui/gdmlogin.c:1108
msgid "System"
msgstr "Système"
-#: gui/gdmlogin.c:1113
+#: gui/gdmlogin.c:1116
#, c-format
msgid "Can't open icon file: %s. Suspending iconify feature!"
msgstr ""
"Impossible d'ouvrir le fichier icône: %s. L'utilisation des icônes est "
"suspendue!"
-#: gui/gdmlogin.c:1116
+#: gui/gdmlogin.c:1119
msgid "Iconify"
msgstr "Iconifier"
-#: gui/gdmlogin.c:1273
+#: gui/gdmlogin.c:1281
msgid "Please enter your login"
msgstr ""
-#: gui/gdmlogin.c:1458
+#: gui/gdmlogin.c:1462
#, fuzzy, c-format
msgid "Can't open DefaultImage: %s. Suspending face browser!"
msgstr ""
"Impossible d'ouvrir NofaceImageFile: %s. L'utilisation de l'outils de "
"sélection des visages est suspendue!"
-#: gui/gdmlogin.c:1527
+#: gui/gdmlogin.c:1541
msgid "main: Error setting up HUP signal handler"
msgstr ""
"main: Erreur lors de la configuration de la procédure de prise en charge du "
"signal HUP"
-#: gui/gdmlogin.c:1530
+#: gui/gdmlogin.c:1544
msgid "main: Error setting up INT signal handler"
msgstr ""
"main: Erreur lors de la configuration de la procédure de prise en charge du "
"signal INT"
-#: gui/gdmlogin.c:1533
+#: gui/gdmlogin.c:1547
msgid "main: Error setting up TERM signal handler"
msgstr ""
"main: Erreur lors de la configuration de la procédure de prise en charge du "