]> git.pld-linux.org Git - packages/gdm2.20.git/commitdiff
- some patches from helixcode
authorwrobell <wrobell@pld-linux.org>
Thu, 21 Dec 2000 21:39:25 +0000 (21:39 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    gdm-chpass.patch -> 1.1
    gdm-daemonfixes.patch -> 1.1
    gdm-dumberrmsg.patch -> 1.1
    gdm-fdleak.patch -> 1.1
    gdm-fixmessages.patch -> 1.1
    gdm-i18n.patch -> 1.1
    gdm-loopofdeath.patch -> 1.1
    gdm-no_questions_asked.patch -> 1.1
    gdm-nonbash-shell.patch -> 1.1
    gdm-pipewrite.patch -> 1.1
    gdm-rhlang.patch -> 1.1
    gdm-system-auth.patch -> 1.1
    gdm-tolower.patch -> 1.1
    gdm-usershell.patch -> 1.1
    gdm-xdmcp.patch -> 1.1
    gdm-ypconfigure.patch -> 1.1

16 files changed:
gdm-chpass.patch [new file with mode: 0644]
gdm-daemonfixes.patch [new file with mode: 0644]
gdm-dumberrmsg.patch [new file with mode: 0644]
gdm-fdleak.patch [new file with mode: 0644]
gdm-fixmessages.patch [new file with mode: 0644]
gdm-i18n.patch [new file with mode: 0644]
gdm-loopofdeath.patch [new file with mode: 0644]
gdm-no_questions_asked.patch [new file with mode: 0644]
gdm-nonbash-shell.patch [new file with mode: 0644]
gdm-pipewrite.patch [new file with mode: 0644]
gdm-rhlang.patch [new file with mode: 0644]
gdm-system-auth.patch [new file with mode: 0644]
gdm-tolower.patch [new file with mode: 0644]
gdm-usershell.patch [new file with mode: 0644]
gdm-xdmcp.patch [new file with mode: 0644]
gdm-ypconfigure.patch [new file with mode: 0644]

diff --git a/gdm-chpass.patch b/gdm-chpass.patch
new file mode 100644 (file)
index 0000000..e2d570b
--- /dev/null
@@ -0,0 +1,16 @@
+--- gdm-2.0beta4/daemon/verify.c~      Wed Sep 22 20:30:47 1999
++++ gdm-2.0beta4/daemon/verify.c       Thu Apr 27 23:37:59 2000
+@@ -146,7 +146,12 @@
+       goto pamerr;
+     }
+     
+-    if ((pamerr = pam_acct_mgmt (pamh, 0)) != PAM_SUCCESS) {
++    pamerr = pam_acct_mgmt (pamh, 0);
++    if (pamerr == PAM_NEW_AUTHTOK_REQD) {
++      pamerr = pam_chauthtok(pamh, PAM_CHANGE_EXPIRED_AUTHTOK);
++    }
++
++    if (pamerr != PAM_SUCCESS) {
+       gdm_error (_("Couldn't set acct. mgmt for %s"), login);
+       goto pamerr;
+     }
diff --git a/gdm-daemonfixes.patch b/gdm-daemonfixes.patch
new file mode 100644 (file)
index 0000000..bb1b0b6
--- /dev/null
@@ -0,0 +1,36 @@
+--- gdm-2.0beta4/daemon/server.c.orig  Wed Sep 22 20:30:47 1999
++++ gdm-2.0beta4/daemon/server.c       Thu Apr 27 20:42:27 2000
+@@ -191,10 +191,11 @@
+     if (d->servpid && kill (d->servpid, 0) < 0) {
+       gdm_debug ("gdm_server_restart: Old server for %s still alive. Killing!", d->name);
+       gdm_server_stop (d);
+-      gdm_server_start (d);
+-      return;
+     }
+-    
++
++    gdm_server_start (d);
++
++#if 0    
+     /* Create new cookie */
+     gdm_auth_secure_display (d);
+     setenv ("DISPLAY", d->name, TRUE);
+@@ -243,6 +244,7 @@
+     
+     /* Wait for X server to send ready signal */
+     pause();
++#endif
+ }
+--- gdm-2.0beta2/daemon/auth.c.sopwith Thu Sep  9 22:44:40 1999
++++ gdm-2.0beta2/daemon/auth.c Thu Sep  9 22:46:26 1999
+@@ -296,7 +296,7 @@
+      * to it. So we better play it safe... */
+     if (! gdm_file_check ("gdm_auth_user_remove", user, authdir, authfile, 
+-                        FALSE, GdmUserMaxFile, GdmRelaxPerms)) {
++                        TRUE, GdmUserMaxFile, GdmRelaxPerms)) {
+       gdm_error (_("gdm_auth_user_remove: Ignoring suspiciously looking cookie file %s"), d->userauth);
+       return; 
+     }
diff --git a/gdm-dumberrmsg.patch b/gdm-dumberrmsg.patch
new file mode 100644 (file)
index 0000000..69e3de7
--- /dev/null
@@ -0,0 +1,11 @@
+--- gdm-2.0beta2/daemon/verify.c.sopwith       Sun Sep 19 17:17:50 1999
++++ gdm-2.0beta2/daemon/verify.c       Sun Sep 19 17:18:30 1999
+@@ -172,7 +172,7 @@
+  pamerr:
+     
+     if (GdmVerboseAuth)
+-      gdm_slave_greeter_ctl (GDM_MSGERR, (gchar *) pam_strerror (pamh, pamerr));
++      gdm_slave_greeter_ctl (GDM_MSGERR, _("Authentication failed"));
+     
+     pam_end (pamh, pamerr);
+     pamh = NULL;
diff --git a/gdm-fdleak.patch b/gdm-fdleak.patch
new file mode 100644 (file)
index 0000000..9d34d57
--- /dev/null
@@ -0,0 +1,10 @@
+--- gdm-2.0beta2/daemon/xdmcp.c.fdleak Mon Jun 19 15:44:18 2000
++++ gdm-2.0beta2/daemon/xdmcp.c        Mon Jun 19 15:44:31 2000
+@@ -750,6 +750,7 @@
+       if (logfd != -1) {
+           dup2 (logfd, 1);
+           dup2 (logfd, 2);
++            close (logfd);
+       }
+       else
+           gdm_error (_("gdm_xdmcp_handle_manage: Could not open logfile for display %s!"), d->name);
diff --git a/gdm-fixmessages.patch b/gdm-fixmessages.patch
new file mode 100644 (file)
index 0000000..7c91cfb
--- /dev/null
@@ -0,0 +1,50 @@
+--- gdm-2.0beta4/gui/gdmlogin.c.fixmessages    Tue Oct  3 14:28:29 2000
++++ gdm-2.0beta4/gui/gdmlogin.c        Tue Oct  3 14:29:03 2000
+@@ -64,6 +64,7 @@
+ static GtkWidget *label;
+ static GtkWidget *entry;
+ static GtkWidget *msg;
++static gboolean first_message = TRUE;
+ static GtkWidget *win;
+ static GtkWidget *sessmenu;
+ static GtkWidget *langmenu;
+@@ -812,6 +813,15 @@
+     case GDM_PROMPT:
+       g_io_channel_read (source, buf, PIPE_SIZE-1, &len);
+       buf[len-1] = '\0';
++
++      /* Turn off the message whenever the prompt changes,
++         this is sort of a hack. Also, don't turn it off
++         the first time. Yeah I know.  */
++      if (first_message)
++        first_message = FALSE;
++      else
++        gtk_label_set (GTK_LABEL(msg), "");
++
+       gtk_label_set (GTK_LABEL (label), buf);
+       gtk_widget_show (GTK_WIDGET (label));
+       gtk_entry_set_text (GTK_ENTRY (entry), "");
+@@ -824,6 +834,15 @@
+     case GDM_NOECHO:
+       g_io_channel_read (source, buf, PIPE_SIZE-1, &len);
+       buf[len-1] = '\0';
++
++      /* Turn off the message whenever the prompt changes,
++         this is sort of a hack. Also, don't turn it off
++         the first time. Yeah I know.  */
++      if (first_message)
++        first_message = FALSE;
++      else
++        gtk_label_set (GTK_LABEL(msg), "");
++
+       gtk_label_set (GTK_LABEL(label), buf);
+       gtk_widget_show (GTK_WIDGET (label));
+       gtk_entry_set_text (GTK_ENTRY (entry), "");
+@@ -1254,6 +1273,7 @@
+                     (GtkAttachOptions) (GTK_FILL), 0, 10);
+         
+     msg = gtk_label_new (_("Please enter your login"));
++    first_message = TRUE;
+     gtk_widget_set_name(msg, "Message");
+     gtk_widget_ref (msg);
+     gtk_object_set_data_full (GTK_OBJECT (login), "msg", msg,
diff --git a/gdm-i18n.patch b/gdm-i18n.patch
new file mode 100644 (file)
index 0000000..5d407c7
--- /dev/null
@@ -0,0 +1,776 @@
+--- gdm-2.0beta2/config/gdm.conf.in.i18n       Tue Oct 12 15:59:32 1999
++++ gdm-2.0beta2/config/gdm.conf.in    Tue Oct 12 15:59:32 1999
+@@ -54,7 +54,9 @@
+ Quiver=0
+ SystemMenu=1
+ Welcome=Welcome to %n
+-
++Welcome[de]=Willkommen auf %n
++Welcome[fr]=Bienvenue sur %n
++Welcome[ja]=%n ¤Ø¤è¤¦¤³¤½
+ [chooser]
+ DefaultHostImg=@pixmapdir@/nohost.png
+ HostImageDir=@datadir@/hosts/
+--- gdm-2.0beta2/gui/gdmlogin.c.i18n   Tue Oct 12 15:59:32 1999
++++ gdm-2.0beta2/gui/gdmlogin.c        Tue Oct 12 15:59:32 1999
+@@ -400,7 +400,7 @@
+     GdmLocaleFile = gnome_config_get_string (GDM_KEY_LOCFILE);
+     GdmDefaultLocale = gnome_config_get_string (GDM_KEY_LOCALE);
+     GdmSessionDir = gnome_config_get_string (GDM_KEY_SESSDIR);
+-    GdmWelcome=gnome_config_get_string (GDM_KEY_WELCOME);
++    GdmWelcome=gnome_config_get_translated_string (GDM_KEY_WELCOME);
+     GdmGtkRC = gnome_config_get_string (GDM_KEY_GTKRC);
+     GdmExclude = gnome_config_get_string (GDM_KEY_EXCLUDE);
+     GdmGlobalFaceDir = gnome_config_get_string (GDM_KEY_FACEDIR);
+@@ -1450,6 +1450,9 @@
+     gnome_sound_shutdown();
+     gnome_preferences_set_dialog_position (GTK_WIN_POS_CENTER);
+     
++    bindtextdomain (PACKAGE, GNOMELOCALEDIR);
++    textdomain (PACKAGE);
++
+     gdm_login_parse_config();
+     if (GdmBrowser)
+--- gdm-2.0beta2/po/ja.po.i18n Tue Oct 12 15:59:32 1999
++++ gdm-2.0beta2/po/ja.po      Tue Oct 12 15:59:32 1999
+@@ -0,0 +1,715 @@
++# gdm
++# Copyright (C) 1999 Free Software Foundation, Inc.
++# Yukihiro Nakai <nacai@iname.com>, 1999.
++#
++msgid ""
++msgstr ""
++"Project-Id-Version: gdm\n"
++"POT-Creation-Date: 1999-09-26 07:21+0900\n"
++"PO-Revision-Date: 1999-09-26 07:44+09:00\n"
++"Last-Translator: ITANI Eiichiro <emu@ceres.dti.ne.jp>\n"
++"Language-Team: Japanese Team <gnome@lists.hypercore.co.jp>\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=euc-japan\n"
++"Content-Transfer-Encoding: 8bit\n"
++"First-Translator: Yukihiro Nakai <nacai@iname.com>\n"
++
++#: daemon/gdm.c:166
++#, c-format
++msgid "gdm_config_parse: No configuration file: %s. Aborting."
++msgstr "gdm_config_parse: ÀßÄê¥Õ¥¡¥¤¥ë %s ¤¬¤¢¤ê¤Þ¤»¤ó¡£Ãæ»ß¤·¤Þ¤¹¡£"
++
++#: daemon/gdm.c:217
++msgid "gdm_config_parse: No greeter specified and default not found."
++msgstr "gdm_config_parse: greeter¤Î»ØÄ꤬¤Ê¤¯¡¢¥Ç¥Õ¥©¥ë¥È¤â¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£"
++
++#: daemon/gdm.c:229
++msgid "gdm_config_parse: No authdir specified and default not found."
++msgstr "gdm_config_parse: authdir¤Î»ØÄ꤬¤Ê¤¯¡¢¥Ç¥Õ¥©¥ë¥È¤â¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£"
++
++#: daemon/gdm.c:247
++msgid ""
++"gdm_config_parse: No sessions directory specified and default not found."
++msgstr ""
++"gdm_config_parse: "
++"sessions¥Ç¥£¥ì¥¯¥È¥ê¤Î»ØÄ꤬¤Ê¤¯¡¢¥Ç¥Õ¥©¥ë¥È¤â¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£"
++
++#: daemon/gdm.c:259
++msgid "gdm_config_parse: Invalid server line in config file. Ignoring!"
++msgstr ""
++"gdm_config_parse: ÀßÄê¥Õ¥¡¥¤¥ë¤ËÀµ¤·¤¯¤Ê¤¤ server ¹Ô¤¬¤¢¤ê¤Þ¤¹¤¬¡¢Ìµ»ë¤·¤Þ¤¹¡£"
++
++#: daemon/gdm.c:265
++msgid ""
++"gdm_config_parse: Xdmcp disabled and no local servers defined. Aborting!"
++msgstr ""
++"gdm_config_parse: "
++"XDMCP¤¬Ìµ¸ú¤Ç¡¢¥í¡¼¥«¥ë¥µ¡¼¥Ð¤Î»ØÄê¤â¤¢¤ê¤Þ¤»¤ó¤Î¤Ç¡¢Ãæ»ß¤·¤Þ¤¹¡£"
++
++#: daemon/gdm.c:270
++#, c-format
++msgid "gdm_config_parse: Can't find the gdm user (%s). Aborting!"
++msgstr "gdm_config_parse: gdm¥æ¡¼¥¶(%s)¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£Ãæ»ß¤·¤Þ¤¹¡£"
++
++#: daemon/gdm.c:275
++msgid "gdm_config_parse: The gdm user should not be root. Aborting!"
++msgstr "gdm_config_parse: gdm¥æ¡¼¥¶¤¬root¤Ç¤¢¤Ã¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£Ãæ»ß¤·¤Þ¤¹¡£"
++
++#: daemon/gdm.c:280
++#, c-format
++msgid "gdm_config_parse: Can't find the gdm group (%s). Aborting!"
++msgstr "gdm_config_parse: gdm¥°¥ë¡¼¥×(%s)¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£Ãæ»ß¤·¤Þ¤¹¡£"
++
++#: daemon/gdm.c:285
++msgid "gdm_config_parse: The gdm group should not be root. Aborting!"
++msgstr "gdm_config_parse: gdm¥°¥ë¡¼¥×¤¬root¤Ç¤¢¤Ã¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£Ãæ»ß¤·¤Þ¤¹¡£"
++
++#: daemon/gdm.c:292
++#, c-format
++msgid "gdm_config_parse: Authdir %s does not exist. Aborting."
++msgstr "gdm_config_parse: Authdir %s ¤¬Â¸ºß¤·¤Þ¤»¤ó¡£Ãæ»ß¤·¤Þ¤¹¡£"
++
++#: daemon/gdm.c:295
++#, c-format
++msgid "gdm_config_parse: Authdir %s is not a directory. Aborting."
++msgstr "gdm_config_parse: Authdir %s ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£Ãæ»ß¤·¤Þ¤¹¡£"
++
++#: daemon/gdm.c:298
++#, c-format
++msgid ""
++"gdm_config_parse: Authdir %s is not owned by user %s, group %s. Aborting."
++msgstr ""
++"gdm_config_parse: Authdir %s ¤Ï¥æ¡¼¥¶ %s¡¢¥°¥ë¡¼¥× %s "
++"¤Î½êÍ­¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£Ãæ»ß¤·¤Þ¤¹¡£"
++
++#: daemon/gdm.c:302
++#, c-format
++msgid ""
++"gdm_config_parse: Authdir %s has wrong permissions. Should be 750. Aborting."
++msgstr ""
++"gdm_config_parse: Authdir %s "
++"¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Ï750¤Ç¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£Ãæ»ß¤·¤Þ¤¹¡£"
++
++#: daemon/gdm.c:363
++#, c-format
++msgid "gdm_display_manage: Failed forking gdm slave process for %d"
++msgstr "gdm_display_manage: gdm(%d)¤Î¥¹¥ì¡¼¥Ö¥×¥í¥»¥¹¤òfork¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿"
++
++#: daemon/gdm.c:442
++#, c-format
++msgid "gdm_child_action: Aborting display %s"
++msgstr "gdm_child_action: ¥Ç¥£¥¹¥×¥ì¥¤ %s ¤òÃæ»ß¤·¤Æ¤Þ¤¹"
++
++#: daemon/gdm.c:447
++msgid "gdm_child_action: Master rebooting..."
++msgstr "gdm_child_action: ¥Þ¥¹¥¿¡¼¥ê¥Ö¡¼¥ÈÃæ..."
++
++#: daemon/gdm.c:453
++#, c-format
++msgid "gdm_child_action: Reboot failed: %s"
++msgstr "gdm_child_action: ¥ê¥Ö¡¼¥È¤Ë¼ºÇÔ¤·¤Þ¤·¤¿: %s"
++
++#: daemon/gdm.c:457
++msgid "gdm_child_action: Master halting..."
++msgstr "gdm_child_action: ¥Þ¥¹¥¿¡¼Ää»ßÃæ..."
++
++#: daemon/gdm.c:463
++#, c-format
++msgid "gdm_child_action: Halt failed: %s"
++msgstr "gdm_child_action: Ää»ß¤Ï¼ºÇÔ¤·¤Þ¤·¤¿: %s"
++
++#: daemon/gdm.c:560
++msgid "gdm_daemonify: fork() failed!"
++msgstr "gdm_daemonify: fork()¤Ë¼ºÇÔ¤·¤Þ¤·¤¿!"
++
++#: daemon/gdm.c:563
++#, c-format
++msgid "gdm_daemonify: setsid() failed: %s!"
++msgstr "gdm_daemonify: setsid()¤Ë¼ºÇÔ¤·¤Þ¤·¤¿: %s!"
++
++#. XDM compliant error message
++#: daemon/gdm.c:589
++msgid "Only root wants to run x^hgdm\n"
++msgstr "root¤À¤±¤¬x^Hgdm¤ò¼Â¹Ô¤Ç¤­¤Þ¤¹\n"
++
++#: daemon/gdm.c:610
++msgid ""
++"gdm already running. Aborting!\n"
++"\n"
++msgstr ""
++"gdm¤Ï¤¹¤Ç¤Ë¼Â¹ÔÃæ¤Ç¤¹¡£Ãæ»ß¤·¤Þ¤¹!\n"
++"\n"
++
++#: daemon/gdm.c:616
++#, c-format
++msgid ""
++"According to %s, gdm was already running (%d),\n"
++"but seems to have been murdered mysteriously.\n"
++msgstr ""
++"%s¤Ë¤è¤ì¤Ð¡¢gdm¤Ï¤¹¤Ç¤Ë¼Â¹ÔÃæ(%d)¤Ê¤Î¤Ç¤¹¤¬¡¢\n"
++"¤è¤¯¤ï¤«¤é¤Ê¤¤»¦¤µ¤ìÊý¤ò¤·¤¿¤è¤¦¤Ç¤¹¡£\n"
++
++#: daemon/gdm.c:638
++msgid "gdm_main: Error setting up TERM signal handler"
++msgstr "gdm_main: TERM¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄê¤Ç¤­¤Þ¤»¤ó"
++
++#: daemon/gdm.c:641
++msgid "gdm_main: Error setting up INT signal handler"
++msgstr "gdm_main: INT¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄê¤Ç¤­¤Þ¤»¤ó"
++
++#: daemon/gdm.c:649
++msgid "gdm_main: Error setting up CHLD signal handler"
++msgstr "gdm_main: CHLD¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄê¤Ç¤­¤Þ¤»¤ó"
++
++#. Really no need to clean up here - this process is a goner anyway
++#: daemon/auth.c:215 daemon/auth.c:240
++#, c-format
++msgid "gdm_auth_user_add: Could not open cookie file %s"
++msgstr "gdm_auth_user_add: ¥¯¥Ã¥­¡¼¥Õ¥¡¥¤¥ë %s ¤ò³«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£"
++
++#: daemon/auth.c:229
++#, c-format
++msgid "gdm_auth_user_add: Could not lock cookie file %s"
++msgstr "gdm_auth_user_add: ¥¯¥Ã¥­¡¼¥Õ¥¡¥¤¥ë %s ¤ò¥í¥Ã¥¯¤Ç¤­¤Þ¤»¤ó¡£"
++
++#: daemon/auth.c:300
++#, c-format
++msgid "gdm_auth_user_remove: Ignoring suspiciously looking cookie file %s"
++msgstr "gdm_auth_user_remove: ²ø¤·¤²¤Ê¥¯¥Ã¥­¡¼¥Õ¥¡¥¤¥ë %s ¤ò̵»ë¤·¤Þ¤¹¡£"
++
++#: daemon/filecheck.c:58
++#, c-format
++msgid "%s: Directory %s does not exist."
++msgstr "%s: ¥Ç¥£¥ì¥¯¥È¥ê %s ¤¬Â¸ºß¤·¤Þ¤»¤ó¡£"
++
++#: daemon/filecheck.c:64 daemon/filecheck.c:105
++#, c-format
++msgid "%s: %s is not owned by uid %d."
++msgstr "%s: %s ¤Ï uid %d ¤Î½êÍ­¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£"
++
++#: daemon/filecheck.c:70 daemon/filecheck.c:112
++#, c-format
++msgid "%s: %s is writable by group."
++msgstr "%s: %s ¤¬¥°¥ë¡¼¥×½ñ¤­¹þ¤ß²Ä¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£"
++
++#: daemon/filecheck.c:76
++#, c-format
++msgid "%s: %s is writable by other."
++msgstr "%s: %s ¤¬ other ¤Ë¤è¤ë½ñ¤­¹þ¤ß²Ä¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£"
++
++#: daemon/filecheck.c:90
++#, c-format
++msgid "%s: does not exist and must."
++msgstr "%s: Â¸ºß¤·¤Þ¤»¤ó¤¬¡¢¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£"
++
++#: daemon/filecheck.c:98
++#, c-format
++msgid "%s: %s is not a regular file."
++msgstr "%s: %s¤ÏÄ̾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£"
++
++#: daemon/filecheck.c:119
++#, c-format
++msgid "%s: %s is writable by group/other."
++msgstr "%s: %s ¤¬ group/other ¤Ë¤è¤ë½ñ¤­¹þ¤ß²Ä¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£"
++
++#: daemon/filecheck.c:126
++#, c-format
++msgid "%s: %s is bigger than sysadmin specified maximum file size."
++msgstr "%s: %s ¤¬´ÉÍý¼Ô¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿ºÇÂç¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤òĶ¤¨¤Æ¤¤¤Þ¤¹¡£"
++
++#: daemon/misc.c:128
++#, c-format
++msgid "gdm_exec_script: Failed starting: %s"
++msgstr "gdm_exec_script: µ¯Æ°¤Ë¼ºÇÔ¤·¤Þ¤·¤¿: %s"
++
++#: daemon/misc.c:132
++msgid "gdm_exec_script: Can't fork script process!"
++msgstr "gdm_exec_script: ¥¹¥¯¥ê¥×¥È¤Î¥×¥í¥»¥¹¤òfork¤Ç¤­¤Þ¤»¤ó!"
++
++#: daemon/server.c:84 daemon/server.c:208
++msgid "gdm_server_start: Error setting up USR1 signal handler"
++msgstr "gdm_server_start: USR1¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄê¤Ç¤­¤Þ¤»¤ó"
++
++#: daemon/server.c:101
++#, c-format
++msgid "gdm_server_start: Could not open logfile for display %s!"
++msgstr "gdm_server_start: ¥Ç¥£¥¹¥×¥ì¥¤%sÍÑ¤Î¥í¥°¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó!"
++
++#: daemon/server.c:130
++msgid "gdm_server_start: Error setting USR1 to SIG_IGN"
++msgstr "gdm_server_start: USR1 ¤ò SIG_IGN ¤ËÀßÄê¤Ç¤­¤Þ¤»¤ó"
++
++#: daemon/server.c:147
++#, c-format
++msgid "gdm_server_start: Xserver not found: %s"
++msgstr "gdm_slave_start: Xserver ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: %s"
++
++#: daemon/server.c:153
++msgid "gdm_server_start: Can't fork Xserver process!"
++msgstr "gdm_exec_script: Xserver ¤Î¥×¥í¥»¥¹¤òfork¤Ç¤­¤Þ¤»¤ó!"
++
++#: daemon/server.c:179
++#, c-format
++msgid "gdm_server_stop: Could not unlink auth file: %s!"
++msgstr "gdm_server_stop: Ç§¾Ú¥Õ¥¡¥¤¥ë¤òºï½ü¤Ç¤­¤Þ¤»¤ó!: %s"
++
++#: daemon/server.c:234
++msgid "gdm_server_restart: Error setting up ALARM signal handler"
++msgstr "gdm_server_restart: ALARM¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄê¤Ç¤­¤Þ¤»¤ó"
++
++#: daemon/slave.c:120
++msgid "gdm_slave_init: Error setting up TERM/INT signal handler"
++msgstr "gdm_slave_init: TERM/INT¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄê¤Ç¤­¤Þ¤»¤ó"
++
++#: daemon/slave.c:128
++msgid "gdm_slave_init: Error setting up CHLD signal handler"
++msgstr "gdm_slave_init: CHLD¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄê¤Ç¤­¤Þ¤»¤ó"
++
++#: daemon/slave.c:179
++msgid "gdm_slave_greeter: Can't init pipe to gdmgreeter"
++msgstr "gdm_slave_greeter: gdmgreeter¤È¤Î¥Ñ¥¤¥×¤ò½é´ü²½¤Ç¤­¤Þ¤»¤ó"
++
++#: daemon/slave.c:204
++#, c-format
++msgid "gdm_slave_greeter: Couldn't set groupid to %d"
++msgstr "gdm_slave_greeter: ¥°¥ë¡¼¥×ID¤ò%d¤ËÀßÄê¤Ç¤­¤Þ¤»¤ó"
++
++#: daemon/slave.c:207
++#, c-format
++msgid "gdm_slave_greeter: Couldn't set userid to %d"
++msgstr "gdm_slave_greeter: ¥æ¡¼¥¶ID¤ò%d¤ËÀßÄê¤Ç¤­¤Þ¤»¤ó"
++
++#: daemon/slave.c:217
++#, c-format
++msgid "gdm_slave_greeter: Error starting greeter on display %s"
++msgstr "gdm_slave_greeter: ¥Ç¥£¥¹¥×¥ì¥¤%s¤Çgreeter¤ò³«»Ï¤Ç¤­¤Þ¤»¤ó"
++
++#: daemon/slave.c:220
++msgid "gdm_slave_greeter: Can't fork gdmgreeter process"
++msgstr "gdm_slave_greeter: gdmgreeter¥×¥í¥»¥¹¤òfork¤Ç¤­¤Þ¤»¤ó"
++
++#: daemon/slave.c:298
++#, c-format
++msgid "gdm_slave_session_init: User '%s' not found. Aborting."
++msgstr "gdm_slave_session_init: ¥æ¡¼¥¶¡Ö%s¡×¤Ï¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£Ãæ»ß¤·¤Þ¤¹¡£"
++
++#: daemon/slave.c:323
++msgid ""
++"gdm_slave_session_init: Execution of PreSession script returned > 0. "
++"Aborting."
++msgstr ""
++"gdm_slave_session_init: "
++"PreSession¥¹¥¯¥ê¥×¥È¤¬Àµ¾ï½ªÎ»¤·¤Þ¤»¤ó¤Ç¤·¤¿¡£Ãæ»ß¤·¤Þ¤¹¡£"
++
++#: daemon/slave.c:347
++msgid "gdm_slave_session_init: Error forking user session"
++msgstr "gdm_slave_session_init: ¥æ¡¼¥¶¥»¥Ã¥·¥ç¥ó¤Îfork¤¬¤Ç¤­¤Þ¤»¤ó"
++
++#: daemon/slave.c:355
++#, c-format
++msgid "gdm_slave_session_init: Could not setgid %d. Aborting."
++msgstr "gdm_slave_session_init: setgid %d¤¬¤Ç¤­¤Þ¤»¤ó¡£Ãæ»ß¤·¤Þ¤¹¡£"
++
++#: daemon/slave.c:358
++#, c-format
++msgid "gdm_slave_session_init: initgroups() failed for %s. Aborting."
++msgstr "gdm_slave_session_init: %s¤Îinitgroups()¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£Ãæ»ß¤·¤Þ¤¹¡£"
++
++#: daemon/slave.c:361
++#, c-format
++msgid "gdm_slave_session_init: Could not become %s. Aborting."
++msgstr "gdm_slave_session_init: %s¤Ë¤Ê¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£Ãæ»ß¤·¤Þ¤¹¡£"
++
++#: daemon/slave.c:403
++#, c-format
++msgid "gdm_slave_session_init: Could not start session `%s'"
++msgstr "gdm_slave_session_init: ¥»¥Ã¥·¥ç¥ó¡Ö%s¡×¤¬³«»Ï¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿"
++
++#: daemon/slave.c:578
++#, c-format
++msgid "gdm_slave_windows_kill_ioerror_handler: Fatal X error - Restarting %s"
++msgstr ""
++"gdm_slave_windows_kill_ioerror_handler: X¤ÎÃ×̿Ū¥¨¥é¡¼¤Ç¤¹ - %s¤òºÆµ¯Æ°¤·¤Þ¤¹"
++
++#: daemon/slave.c:610
++msgid "gdm_slave_xsync_ping: Error setting up ALARM signal handler"
++msgstr "gdm_slave_xsync_ping: ALARM ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄê¤Ç¤­¤Þ¤»¤ó"
++
++#: daemon/verify.c:129 daemon/verify.c:201 gui/gdmlogin.c:1248
++msgid "Login:"
++msgstr "¥í¥°¥¤¥ó:"
++
++#: daemon/verify.c:135
++msgid "Can't find /etc/pam.d/gdm!"
++msgstr "/etc/pam.d/gdm¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó!"
++
++#: daemon/verify.c:140
++#, c-format
++msgid "Can't set PAM_TTY=%s"
++msgstr "PAM_TTY=%s¤òÀßÄê¤Ç¤­¤Þ¤»¤ó"
++
++#: daemon/verify.c:145 daemon/verify.c:222
++#, c-format
++msgid "Couldn't authenticate %s"
++msgstr "%s¤òǧ¾Ú¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿"
++
++#: daemon/verify.c:150
++#, c-format
++msgid "Couldn't set acct. mgmt for %s"
++msgstr "acct¤¬ÀßÄê¤Ç¤­¤Þ¤»¤ó¡£mgmt¤Ï%s¤Ç¤¹¡£"
++
++#: daemon/verify.c:155
++#, c-format
++msgid "Couldn't set credentials for %s"
++msgstr "%s¤Îcredential¤òÀßÄê¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿"
++
++#: daemon/verify.c:160
++#, c-format
++msgid "Couldn't open session for %s"
++msgstr "%s¤Î¥»¥Ã¥·¥ç¥ó¤ò³«¤±¤Þ¤»¤ó¤Ç¤·¤¿"
++
++#: daemon/verify.c:217
++msgid "Password:"
++msgstr "¥Ñ¥¹¥ï¡¼¥É:"
++
++#: daemon/verify.c:223
++msgid "User unknown"
++msgstr "ÉÔÌÀ¤Ê¥æ¡¼¥¶"
++
++#: daemon/verify.c:228
++#, c-format
++msgid "Root login disallowed on display '%s'"
++msgstr "root ¤Ç DISPLAY %s ¤Ë¥í¥°¥¤¥ó¤Ç¤­¤Ê¤¤¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£"
++
++#: daemon/verify.c:229
++msgid "Root login disallowed"
++msgstr "root ¤Ç¤Î¥í¥°¥¤¥ó¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
++
++#: daemon/verify.c:237
++msgid "Incorrect password"
++msgstr "¥Ñ¥¹¥ï¡¼¥É¤¬°ã¤¤¤Þ¤¹"
++
++#: daemon/verify.c:256
++msgid "gdm_verify_check: Can't find PAM configuration file for gdm"
++msgstr "gdm_verify_check: gdm ¤Î PAM ÀßÄê¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
++
++#: daemon/xdmcp.c:184
++#, c-format
++msgid "gdm_xdmcp_init: Could not get server hostname: %s!"
++msgstr "gdm_xdmcp_init: ¥µ¡¼¥Ð¤Î¥Û¥¹¥È̾¤¬¤ï¤«¤ê¤Þ¤»¤ó: %s!"
++
++#: daemon/xdmcp.c:198
++msgid "gdm_xdmcp_init: Could not create socket!"
++msgstr "gdm_xdmcp_init: ¥½¥±¥Ã¥È¤¬ºîÀ®¤Ç¤­¤Þ¤»¤ó!"
++
++#: daemon/xdmcp.c:205
++msgid "gdm_xdmcp_init: Could not bind to XDMCP socket!"
++msgstr "gdm_xdmcp_init: XDMCP¥½¥±¥Ã¥È¤Ë bind ¤Ç¤­¤Þ¤»¤ó"
++
++#: daemon/xdmcp.c:214
++msgid "gdm_xdmcp_init: Can't alloc fifopath"
++msgstr "gdm_xdmcp_init: fifopath¤ò alloc ¤Ç¤­¤Þ¤»¤ó"
++
++#: daemon/xdmcp.c:219
++msgid "gdm_xdmcp_init: Could not make FIFO for chooser"
++msgstr "gdm_xdmcp_init: chooser ÍѤΠFIFO ¤òºî¤ì¤Þ¤»¤ó"
++
++#: daemon/xdmcp.c:224
++msgid "gdm_xdmcp_init: Could not open FIFO for chooser"
++msgstr "gdm_xdmcp_init: chooser ÍѤΠFIFO ¤ò³«¤±¤Þ¤»¤ó"
++
++#: daemon/xdmcp.c:284
++msgid "gdm_xdmcp_decode: Could not create XDMCP buffer!"
++msgstr "gdm_xdmcp_decode: XDMCP ¥Ð¥Ã¥Õ¥¡¤òºîÀ®¤Ç¤­¤Þ¤»¤ó!"
++
++#: daemon/xdmcp.c:289
++msgid "gdm_xdmcp_decode: Could not read XDMCP header!"
++msgstr "gdm_xdmcp_decode: XDMCP ¥Ø¥Ã¥À¤òÆɤá¤Þ¤»¤ó!"
++
++#: daemon/xdmcp.c:294
++msgid "gdm_xdmcp_decode: Incorrect XDMCP version!"
++msgstr "gdm_xdmcp_decode: XDMCP ¤Î¥Ð¡¼¥¸¥ç¥ó¤¬Àµ¤·¤¯¤¢¤ê¤Þ¤»¤ó!"
++
++#: daemon/xdmcp.c:333
++#, c-format
++msgid "gdm_xdmcp_decode_packet: Unknown opcode from host %s"
++msgstr "gdm_xdmcp_decode_packet: ¥Û¥¹¥È %s ¤«¤éÉÔÌÀ¤Ê¥ª¥Ú¥³¡¼¥É"
++
++#: daemon/xdmcp.c:351
++msgid "gdm_xdmcp_handle_query: Could not extract authlist from packet"
++msgstr "gdm_xdmcp_handle_query: ¥Ñ¥±¥Ã¥È¤«¤éǧ¾Ú¥ê¥¹¥È¤òŸ³«¤Ç¤­¤Þ¤»¤ó"
++
++#: daemon/xdmcp.c:362
++msgid "gdm_xdmcp_handle_query: Error in checksum"
++msgstr "gdm_xdmcp_handle_query: ¥Á¥§¥Ã¥¯¥µ¥à¤Î¥¨¥é¡¼"
++
++#: daemon/xdmcp.c:433
++msgid "gdm_xdmcp_handle_forward_query: Could not read display address"
++msgstr "gdm_xdmcp_handle_forward_query: ¥Ç¥£¥¹¥×¥ì¥¤¤Î¥¢¥É¥ì¥¹¤¬¤ï¤«¤ê¤Þ¤»¤ó"
++
++#: daemon/xdmcp.c:439
++msgid "gdm_xdmcp_handle_forward_query: Could not read display port number"
++msgstr "gdm_xdmcp_handle_forward_query: ¥Ç¥£¥¹¥×¥ì¥¤¤Î¥Ý¡¼¥ÈÈֹ椬¤ï¤«¤ê¤Þ¤»¤ó"
++
++#: daemon/xdmcp.c:445
++msgid "gdm_xdmcp_handle_forward_query: Could not extract authlist from packet"
++msgstr "gdm_xdmcp_handle_forward_query: ¥Ñ¥±¥Ã¥È¤«¤éǧ¾Ú¥ê¥¹¥È¤¬Å¸³«¤Ç¤­¤Þ¤»¤ó"
++
++#: daemon/xdmcp.c:460
++msgid "gdm_xdmcp_handle_forward_query: Error in checksum"
++msgstr "gdm_xdmcp_handle_forward_query: ¥Á¥§¥Ã¥¯¥µ¥à¤Î¥¨¥é¡¼"
++
++#: daemon/xdmcp.c:523
++#, c-format
++msgid "Denied XDMCP query from host %s"
++msgstr "¥Û¥¹¥È %s ¤Î XDMCP Í×µá¤òµñÈÝ"
++
++#: daemon/xdmcp.c:525
++msgid "Display not authorized to connect"
++msgstr "¥Ç¥£¥¹¥×¥ì¥¤¤ËÀܳµö²Ä¤¬¤¢¤ê¤Þ¤»¤ó"
++
++#: daemon/xdmcp.c:558
++#, c-format
++msgid "gdm_xdmcp_handle_request: Got REQUEST from banned host %s"
++msgstr "gdm_xdmcp_handle_request: ¶Ø»ß¤µ¤ì¤¿¥Û¥¹¥È %s ¤è¤ê REQUEST ¤ò¼õ¿®"
++
++#: daemon/xdmcp.c:565
++msgid "gdm_xdmcp_handle_request: Could not read Display Number"
++msgstr "gdm_xdmcp_handle_request: ¥Ç¥£¥¹¥×¥ì¥¤Èֹ椬¤ï¤«¤ê¤Þ¤»¤ó"
++
++#: daemon/xdmcp.c:571
++msgid "gdm_xdmcp_handle_request: Could not read Connection Type"
++msgstr "gdm_xdmcp_handle_request: ÀܳÊý¼°¤¬¤ï¤«¤ê¤Þ¤»¤ó"
++
++#: daemon/xdmcp.c:577
++msgid "gdm_xdmcp_handle_request: Could not read Client Address"
++msgstr "gdm_xdmcp_handle_request: ¥¯¥é¥¤¥¢¥ó¥È¤Î¥¢¥É¥ì¥¹¤¬¤ï¤«¤ê¤Þ¤»¤ó"
++
++#: daemon/xdmcp.c:583
++msgid "gdm_xdmcp_handle_request: Could not read Authentication Names"
++msgstr "gdm_xdmcp_handle_request: Ç§¾Ú̾¤¬¤ï¤«¤ê¤Þ¤»¤ó"
++
++#: daemon/xdmcp.c:589
++msgid "gdm_xdmcp_handle_request: Could not read Authentication Data"
++msgstr "gdm_xdmcp_handle_request: Ç§¾Ú¥Ç¡¼¥¿¤¬¤ï¤«¤ê¤Þ¤»¤ó"
++
++#: daemon/xdmcp.c:595
++msgid "gdm_xdmcp_handle_request: Could not read Authorization List"
++msgstr "gdm_xdmcp_handle_request: Ç§¾Ú¥ê¥¹¥È¤¬¤ï¤«¤ê¤Þ¤»¤ó"
++
++#: daemon/xdmcp.c:606
++msgid "gdm_xdmcp_handle_request: Could not read Manufacturer ID"
++msgstr "gdm_xdmcp_handle_request: À½Â¤¼ÔID¤¬¤ï¤«¤ê¤Þ¤»¤ó"
++
++#: daemon/xdmcp.c:624
++#, c-format
++msgid "gdm_xdmcp_handle_request: Failed checksum from %s"
++msgstr "gdm_xdmcp_handle_request: %s ¤«¤é¤Î¥Á¥§¥Ã¥¯¥µ¥à¤Ë´Ö°ã¤¤"
++
++#: daemon/xdmcp.c:737
++#, c-format
++msgid "gdm_xdmcp_handle_manage: Got Manage from banned host %s"
++msgstr "gdm_xdmcp_handle_manage: ¶Ø»ß¤µ¤ì¤¿¥Û¥¹¥È %s ¤«¤é Manage ¤ò¼õ¿®"
++
++#: daemon/xdmcp.c:744
++msgid "gdm_xdmcp_handle_manage: Could not read Session ID"
++msgstr "gdm_xdmcp_handle_manage: ¥»¥Ã¥·¥ç¥óID¤¬¤ï¤«¤ê¤Þ¤»¤ó"
++
++#: daemon/xdmcp.c:750
++msgid "gdm_xdmcp_handle_manage: Could not read Display Number"
++msgstr "gdm_xdmcp_handle_manage: ¥Ç¥£¥¹¥×¥ì¥¤Èֹ椬¤ï¤«¤ê¤Þ¤»¤ó"
++
++#: daemon/xdmcp.c:759
++msgid "gdm_xdmcp_manage: Could not read Display Class"
++msgstr "gdm_xdmcp_manage: ¥Ç¥£¥¹¥×¥ì¥¤¥¯¥é¥¹¤¬¤ï¤«¤ê¤Þ¤»¤ó"
++
++#: daemon/xdmcp.c:780
++#, c-format
++msgid "gdm_xdmcp_handle_manage: Could not open logfile for display %s!"
++msgstr "gdm_xdmcp_handle_manage: ¥Ç¥£¥¹¥×¥ì¥¤%sÍÑ¤Î¥í¥°¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó!"
++
++#: daemon/xdmcp.c:852
++#, c-format
++msgid "gdm_xdmcp_handle_keepalive: Got KEEPALIVE from banned host %s"
++msgstr "gdm_xdmcp_handle_keepalive: ¶Ø»ß¤µ¤ì¤¿¥Û¥¹¥È %s ¤è¤ê KEEPALIVE ¤ò¼õ¿®"
++
++#: daemon/xdmcp.c:859
++msgid "gdm_xdmcp_handle_keepalive: Could not read Display Number"
++msgstr "gdm_xdmcp_handle_keepalive: ¥Ç¥£¥¹¥×¥ì¥¤Èֹ椬¤ï¤«¤ê¤Þ¤»¤ó"
++
++#: daemon/xdmcp.c:865
++msgid "gdm_xdmcp_handle_keepalive: Could not read Session ID"
++msgstr "gdm_xdmcp_handle_keepalive: ¥»¥Ã¥·¥ç¥óID¤¬¤ï¤«¤ê¤Þ¤»¤ó"
++
++#: gui/gdmchooser.c:342
++#, c-format
++msgid "gdm_chooser_parse_config: No configuration file: %s. Aborting."
++msgstr "gdm_chooser_parse_config: ÀßÄê¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó:%s¡£Ãæ»ß¤·¤Þ¤¹¡£"
++
++#: gui/gdmchooser.c:451
++#, c-format
++msgid "Can't open default host icon: %s"
++msgstr "¥Ç¥Õ¥©¥ë¥È¤Î¥Û¥¹¥È¥¢¥¤¥³¥ó¤ò³«¤±¤Þ¤»¤ó: %s"
++
++#. Buttons
++#: gui/gdmchooser.c:518
++msgid "Connect"
++msgstr "Àܳ"
++
++#: gui/gdmchooser.c:525
++msgid "Rescan"
++msgstr "ºÆ¥¹¥­¥ã¥ó"
++
++#: gui/gdmchooser.c:531
++msgid "Cancel"
++msgstr "¥­¥ã¥ó¥»¥ë"
++
++#: gui/gdmchooser.c:582
++msgid "gdm_signals_init: Error setting up HUP signal handler"
++msgstr "gdm_signals_init: INT¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄê¤Ç¤­¤Þ¤»¤ó"
++
++#: gui/gdmchooser.c:585
++msgid "gdm_signals_init: Error setting up INT signal handler"
++msgstr "gdm_signals_init: INT¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄê¤Ç¤­¤Þ¤»¤ó"
++
++#: gui/gdmchooser.c:588
++msgid "gdm_signals_init: Error setting up TERM signal handler"
++msgstr "gdm_signals_init: TERM¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄê¤Ç¤­¤Þ¤»¤ó"
++
++#: gui/gdmchooser.c:596 gui/gdmlogin.c:1557
++msgid "Could not set signal mask!"
++msgstr "¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÀßÄê¤Ç¤­¤Þ¤»¤ó!"
++
++#: gui/gdmlogin.c:271
++msgid "gdm_parse_enriched_string: String too long!"
++msgstr "gdm_parse_enriched_string: Ê¸»úÎó¤¬Ä¹¤¹¤®¤Þ¤¹!"
++
++#: gui/gdmlogin.c:272
++#, c-format
++msgid "Welcome to %s"
++msgstr "%s ¤Ø¤è¤¦¤³¤½"
++
++#: gui/gdmlogin.c:276
++msgid "gdm_parse_enriched_string: Could not malloc temporary buffer!"
++msgstr "gdm_parase_enriched_string: °ì»þ¥Ð¥Ã¥Õ¥¡¤òmalloc¤Ç¤­¤Þ¤»¤ó!"
++
++#: gui/gdmlogin.c:358
++msgid "Are you sure you want to reboot the machine?"
++msgstr "ËÜÅö¤Ë¥·¥¹¥Æ¥à¤òºÆµ¯Æ°¤·¤Þ¤¹¤«?"
++
++#: gui/gdmlogin.c:371
++msgid "Are you sure you want to halt the machine?"
++msgstr "ËÜÅö¤Ë¥·¥¹¥Æ¥à¤òÄä»ß¤·¤Þ¤¹¤«?"
++
++#: gui/gdmlogin.c:388
++#, c-format
++msgid "gdm_login_parse_config: No configuration file: %s. Aborting."
++msgstr "gdm_login_parse_config: ÀßÄê¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: %s¡£Ãæ»ß¤·¤Þ¤¹¡£"
++
++#: 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 ""
++"¤ªË¾¤ß¤Î¥»¥Ã¥·¥ç¥ó¥¿¥¤¥×%s¤Ï¤³¤Î¥·¥¹¥Æ¥à¤Ë¤Ï¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£\n"
++"º£¸å%s¤ò¥Ç¥Õ¥©¥ë¥È¥»¥Ã¥·¥ç¥ó¤Ë¤·¤Þ¤¹¤«?"
++
++#: 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 ""
++"¤³¤Î¥»¥Ã¥·¥ç¥ó¤Ë¤Ï%s¤¬ÁªÂò¤µ¤ì¤Þ¤·¤¿¡£¤·¤«¤·¥Ç¥Õ¥©¥ë¥È¤Ï%s¤Ç¤¹¡£\n"
++"º£¸å%s¤ò¥Ç¥Õ¥©¥ë¥È¥»¥Ã¥·¥ç¥ó¤Ë¤·¤Þ¤¹¤«?"
++
++#: gui/gdmlogin.c:631
++#, c-format
++msgid "%s session selected"
++msgstr "%s¥»¥Ã¥·¥ç¥ó¤¬ÁªÂò¤µ¤ì¤Þ¤·¤¿"
++
++#: gui/gdmlogin.c:647 gui/gdmlogin.c:750
++msgid "Last"
++msgstr "Á°²ó"
++
++#: gui/gdmlogin.c:662
++msgid "gdm_login_session_init: Session script directory not found!"
++msgstr ""
++"gdm_login_session_init: ¥»¥Ã¥·¥ç¥ó¥¹¥¯¥ê¥×¥È¤Î¥Ç¥£¥ì¥¯¥È¥ê¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó!"
++
++#: gui/gdmlogin.c:715
++msgid "No session scripts found. Aborting!"
++msgstr "¥»¥Ã¥·¥ç¥ó¥¹¥¯¥ê¥×¥È¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£Ãæ»ß¤·¤Þ¤¹¡£"
++
++#: gui/gdmlogin.c:719
++#, c-format
++msgid "No default session link found. Using %s.\n"
++msgstr "¥Ç¥Õ¥©¥ë¥È¥»¥Ã¥·¥ç¥ó¤Î¥ê¥ó¥¯¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£%s¤ò»È¤¤¤Þ¤¹¡£\n"
++
++#: gui/gdmlogin.c:733
++#, c-format
++msgid "%s language selected"
++msgstr "%s ¸À¸ì¤¬ÁªÂò¤µ¤ì¤Þ¤·¤¿"
++
++#: gui/gdmlogin.c:765
++msgid "A-M"
++msgstr "A-M"
++
++#: gui/gdmlogin.c:771
++msgid "N-Z"
++msgstr "N-Z"
++
++#: gui/gdmlogin.c:777
++msgid "Other"
++msgstr "¤½¤Î¾"
++
++#: gui/gdmlogin.c:1080
++msgid "Session"
++msgstr "¥»¥Ã¥·¥ç¥ó"
++
++#: gui/gdmlogin.c:1087
++msgid "Language"
++msgstr "¸À¸ì"
++
++#: gui/gdmlogin.c:1094
++msgid "Reboot..."
++msgstr "ºÆµ¯Æ°..."
++
++#: gui/gdmlogin.c:1101
++msgid "Halt..."
++msgstr "Ää»ß..."
++
++#: gui/gdmlogin.c:1108
++msgid "System"
++msgstr "¥·¥¹¥Æ¥à"
++
++#: gui/gdmlogin.c:1116
++#, c-format
++msgid "Can't open icon file: %s. Suspending iconify feature!"
++msgstr "¥¢¥¤¥³¥ó¥Õ¥¡¥¤¥ë¤¬³«¤±¤Þ¤»¤ó: %s ¥¢¥¤¥³¥ó²½µ¡Ç½¤Ï¸«¹ç¤ï¤»¤Þ¤¹!"
++
++#: gui/gdmlogin.c:1119
++msgid "Iconify"
++msgstr "¥¢¥¤¥³¥ó²½"
++
++#: gui/gdmlogin.c:1283
++msgid "Please enter your login"
++msgstr "¤¢¤Ê¤¿¤ÎID¤òÆþÎϤ·¤Æ²¼¤µ¤¤"
++
++#: gui/gdmlogin.c:1464
++#, c-format
++msgid "Can't open DefaultImage: %s. Suspending face browser!"
++msgstr "¥Ç¥Õ¥©¥ë¥È²èÁü¤ò³«¤±¤Þ¤»¤ó: %s ¥Õ¥§¥¤¥¹¥Ö¥é¥¦¥¶¤Ï¸«¹ç¤ï¤»¤Þ¤¹!"
++
++#: gui/gdmlogin.c:1543
++msgid "main: Error setting up HUP signal handler"
++msgstr "main: HUP¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄê¤Ç¤­¤Þ¤»¤ó"
++
++#: gui/gdmlogin.c:1546
++msgid "main: Error setting up INT signal handler"
++msgstr "main: INT¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄê¤Ç¤­¤Þ¤»¤ó"
++
++#: gui/gdmlogin.c:1549
++msgid "main: Error setting up TERM signal handler"
++msgstr "main: TERM¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄê¤Ç¤­¤Þ¤»¤ó"
+--- gdm-2.0beta2/configure.in.i18n     Tue Oct 12 15:59:32 1999
++++ gdm-2.0beta2/configure.in  Mon Jan  1 00:00:00 1990
+@@ -20,7 +20,7 @@
+ AC_SUBST(LDFLAGS)
+ dnl ## internationalization support
+-ALL_LINGUAS="da de es et fr ko no sv pl pt_BR"
++ALL_LINGUAS="da de es et fr ja ko no pl pt_BR sv"
+ AM_GNOME_GETTEXT
+ dnl ## Autentication scheme
+--- gdm-2.0beta2/configure.i18n        Tue Oct 12 15:59:32 1999
++++ gdm-2.0beta2/configure     Tue Oct 12 15:59:32 1999
+@@ -3245,7 +3245,7 @@
+-ALL_LINGUAS="da de es et fr ko no sv pl pt_BR"
++ALL_LINGUAS="da de es et fr ja ko no pl pt_BR sv"
+ echo $ac_n "checking for working const""... $ac_c" 1>&6
+ echo "configure:3251: checking for working const" >&5
+ if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
+
+
diff --git a/gdm-loopofdeath.patch b/gdm-loopofdeath.patch
new file mode 100644 (file)
index 0000000..58f87b9
--- /dev/null
@@ -0,0 +1,411 @@
+--- gdm-2.0beta2/daemon/server.c.loopofdeath   Sun Aug 13 21:22:22 2000
++++ gdm-2.0beta2/daemon/server.c       Sun Aug 13 21:23:52 2000
+@@ -58,6 +58,79 @@
+ GdmDisplay *d;
+ sigset_t mask, omask;
++static gboolean
++gdm_server_check_loop (GdmDisplay *disp)
++{
++  time_t now;
++  time_t since_last;
++  
++  now = time (NULL);
++
++  if (disp->disabled)
++    return FALSE;
++  
++  if (disp->last_start_time > now || disp->last_start_time == 0)
++    {
++      /* Reset everything if this is the first time in this
++       * function, or if the system clock got reset backward.
++       */
++      disp->last_start_time = now;
++      disp->retry_count = 1;
++
++      gdm_debug ("Resetting counts for loop of death detection");
++      
++      return TRUE;
++    }
++
++  since_last = now - disp->last_start_time;
++
++  /* If it's been at least 1.5 minutes since the last startup
++   * attempt, then we reset everything.
++   */
++
++  if (since_last >= 90)
++    {
++      disp->last_start_time = now;
++      disp->retry_count = 1;
++
++      gdm_debug ("Resetting counts for loop of death detection, 90 seconds elapsed.");
++      
++      return TRUE;
++    }
++
++  /* If we've tried too many times we bail out. i.e. this means we
++   * tried too many times in the 90-second period.
++   */
++  if (disp->retry_count > 4)
++    {
++      gchar *msg;
++      msg = g_strdup_printf (_("Failed to start X server several times in a short time period; disabling display %s"), disp->name);
++      gdm_error (msg);
++      g_free (msg);
++      disp->disabled = TRUE;
++
++      gdm_debug ("Failed to start X server after several retries; aborting.");
++      
++      exit (SERVER_ABORT);
++    }
++  
++  /* At least 8 seconds between start attempts,
++   * so you can try to kill gdm from the console
++   * in these gaps.
++   */
++  if (since_last < 8)
++    {
++      gdm_debug ("Sleeping %d seconds before next X server restart attempt",
++                 8 - since_last);
++      sleep (8 - since_last);
++      now = time (NULL);
++    }
++
++  disp->retry_count += 1;
++  disp->last_start_time = now;
++
++  return TRUE;
++}
+ void
+ gdm_server_start (GdmDisplay *disp)
+@@ -74,6 +147,11 @@
+     d = disp;
+     
+     gdm_debug ("gdm_server_start: %s", d->name);
++
++    if (!gdm_server_check_loop (disp))
++      return;
++
++    gdm_debug ("Attempting to start X server");
+     
+     /* Catch USR1 from X server */
+     usr1.sa_handler = gdm_server_usr1_handler;
+@@ -161,7 +239,7 @@
+     d->servstat = SERVER_STARTED;
+     
+     /* Wait for X server to send ready signal */
+-    pause();
++    gdm_run ();
+ }
+@@ -280,6 +358,8 @@
+     sigprocmask (SIG_BLOCK, &usr1mask, NULL);
+     
+     gdm_display_manage (d);
++
++    gdm_quit ();
+ }
+@@ -313,6 +393,10 @@
+     d->sessionid = 0;
+     d->acctime = 0;
+     d->dsp = NULL;
++
++    d->last_start_time = 0;
++    d->retry_count = 0;
++    d->disabled = FALSE;
+     
+     g_free (dname);
+     g_free (hostname);
+--- gdm-2.0beta2/daemon/gdm.h.loopofdeath      Sun Aug 13 21:22:22 2000
++++ gdm-2.0beta2/daemon/gdm.h  Sun Aug 13 21:22:22 2000
+@@ -150,6 +150,9 @@
+     pid_t sesspid;
+     pid_t slavepid;
+     time_t acctime;
++    time_t last_start_time;
++    gint retry_count;
++    gboolean disabled;
+ };
+@@ -162,6 +165,21 @@
+     time_t acctime;
+ };
++typedef gboolean (*GSignalFunc) (gint8                signal,
++                               gpointer       data);
++guint g_signal_add            (gint8          signal,
++                               GSignalFunc    function,
++                               gpointer       data);
++guint   g_signal_add_full       (gint           priority,
++                               gint8          signal,
++                               GSignalFunc    function,
++                               gpointer       data,
++                               GDestroyNotify destroy);
++void    g_signal_notify         (gint8          signal);
++
++
++void gdm_run (void);
++void gdm_quit (void);
+ #endif /* __GDM_H__ */
+--- gdm-2.0beta2/daemon/gdm.c.loopofdeath      Sun Aug 13 21:22:22 2000
++++ gdm-2.0beta2/daemon/gdm.c  Sun Aug 13 21:22:22 2000
+@@ -376,9 +376,8 @@
+     return (TRUE);
+ }
+-
+-static void 
+-gdm_child_handler (gint sig)
++void
++gdm_cleanup_children (void)
+ {
+     pid_t pid;
+     gint exitstatus = 0, status = 0;
+@@ -487,8 +486,9 @@
+           list = list->next;
+       }
+     }
+-}
++    gdm_quit ();
++}
+ static void
+ gdm_display_unmanage (GdmDisplay *d)
+@@ -524,27 +524,58 @@
+     }
+ }
++static void
++term_cleanup (void)
++{
++  sigset_t mask;
++  
++  gdm_debug ("gdm_term_handler: Got TERM/INT. Going down!");
++  
++  sigemptyset (&mask);
++  sigaddset (&mask, SIGCHLD);
++  sigprocmask (SIG_BLOCK, &mask, NULL); 
++  
++  g_slist_foreach (displays, (GFunc) gdm_display_unmanage, NULL);
++  
++  closelog();
++  unlink (GdmPidFile);
++  
++  exit (EXIT_SUCCESS);
++}
+ static void
+ gdm_term_handler (int sig)
+ {
+-    sigset_t mask;
+-
+-    gdm_debug ("gdm_term_handler: Got TERM/INT. Going down!");
++  g_signal_notify (sig);
++}
+-    sigemptyset (&mask);
+-    sigaddset (&mask, SIGCHLD);
+-    sigprocmask (SIG_BLOCK, &mask, NULL); 
++static void 
++gdm_child_handler (gint sig)
++{
++  g_signal_notify (sig);
++}
+-    g_slist_foreach (displays, (GFunc) gdm_display_unmanage, NULL);
++static gboolean
++mainloop_sig_callback (gint8 sig, gpointer data)
++{
++  switch (sig)
++    {
++    case SIGCHLD:
++      gdm_cleanup_children ();
++      break;
++
++    case SIGINT:
++    case SIGTERM:
++      term_cleanup ();
++      break;
+-    closelog();
+-    unlink (GdmPidFile);
++    default:
++      break;
++    }
+-    exit (EXIT_SUCCESS);
++  return TRUE;
+ }
+-
+ static void
+ gdm_daemonify (void)
+ {
+@@ -579,6 +610,19 @@
+     dup2 (0, 2);
+ }
++static GMainLoop *main_loop;    
++
++void
++gdm_run (void)
++{
++  g_main_run (main_loop);
++}
++
++void
++gdm_quit (void)
++{
++  g_main_quit (main_loop);
++}
+ int 
+ main (int argc, char *argv[])
+@@ -586,7 +630,6 @@
+     sigset_t mask;
+     struct sigaction term, child;
+     FILE *pf;
+-    GMainLoop *main_loop;    
+  
+     if (getuid()) {
+@@ -635,6 +678,10 @@
+       gdm_daemonify();
+     /* Signal handling */
++    g_signal_add (SIGCHLD, mainloop_sig_callback, NULL);
++    g_signal_add (SIGTERM, mainloop_sig_callback, NULL);
++    g_signal_add (SIGINT, mainloop_sig_callback, NULL);
++    
+     term.sa_handler = gdm_term_handler;
+     term.sa_flags = SA_RESTART;
+     sigemptyset (&term.sa_mask);
+@@ -674,9 +721,117 @@
+       gdm_xdmcp_run();
+     }
+-    g_main_run (main_loop);
+-
++    /* We always exit via exit(), and sadly we need to g_main_quit()
++     * at times not knowing if it's this main or a recursive one we're
++     * quitting.
++     */
++    while (1)
++      {
++        gdm_run ();
++      }
++        
+     return (EXIT_SUCCESS);
+ }
++
++/* signal main loop support */
++
++
++typedef struct _GSignalData GSignalData;
++struct _GSignalData
++{
++  guint8      index;
++  guint8      shift;
++  GSignalFunc callback;
++};
++
++static gboolean g_signal_prepare  (gpointer  source_data,
++                                 GTimeVal *current_time,
++                                 gint     *timeout);
++static gboolean g_signal_check    (gpointer  source_data,
++                                 GTimeVal *current_time);
++static gboolean g_signal_dispatch (gpointer  source_data,
++                                 GTimeVal *current_time,
++                                 gpointer  user_data);
++
++static GSourceFuncs signal_funcs = {
++  g_signal_prepare,
++  g_signal_check,
++  g_signal_dispatch,
++  g_free
++};
++static        guint32 signals_notified[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
++
++static gboolean
++g_signal_prepare (gpointer  source_data,
++                GTimeVal *current_time,
++                gint     *timeout)
++{
++  GSignalData *signal_data = source_data;
++  
++  return signals_notified[signal_data->index] & (1 << signal_data->shift);
++}
++
++static gboolean
++g_signal_check (gpointer  source_data,
++              GTimeVal *current_time)
++{
++  GSignalData *signal_data = source_data;
++  
++  return signals_notified[signal_data->index] & (1 << signal_data->shift);
++}
++
++static gboolean
++g_signal_dispatch (gpointer  source_data,
++                 GTimeVal *current_time,
++                 gpointer  user_data)
++{
++  GSignalData *signal_data = source_data;
++  
++  signals_notified[signal_data->index] &= ~(1 << signal_data->shift);
++  
++  return signal_data->callback (-128 + signal_data->index * 32 + signal_data->shift, user_data);
++}
++
++guint
++g_signal_add (gint8     signal,
++            GSignalFunc function,
++            gpointer    data)
++{
++  return g_signal_add_full (G_PRIORITY_DEFAULT, signal, function, data, NULL);
++}
++
++guint
++g_signal_add_full (gint           priority,
++                 gint8          signal,
++                 GSignalFunc    function,
++                 gpointer       data,
++                 GDestroyNotify destroy)
++{
++  GSignalData *signal_data;
++  guint s = 128 + signal;
++  
++  g_return_val_if_fail (function != NULL, 0);
++  
++  signal_data = g_new (GSignalData, 1);
++  signal_data->index = s / 32;
++  signal_data->shift = s % 32;
++  signal_data->callback = function;
++  
++  return g_source_add (priority, TRUE, &signal_funcs, signal_data, data, destroy);
++}
++
++void
++g_signal_notify (gint8 signal)
++{
++  guint index, shift;
++  guint s = 128 + signal;
++  
++  index = s / 32;
++  shift = s % 32;
++  
++  signals_notified[index] |= 1 << shift;
++}
++
++
+ /* EOF */
diff --git a/gdm-no_questions_asked.patch b/gdm-no_questions_asked.patch
new file mode 100644 (file)
index 0000000..d68859f
--- /dev/null
@@ -0,0 +1,11 @@
+--- gdm-2.0beta4/gui/gdmlogin.c~       Wed Sep 29 18:56:35 1999
++++ gdm-2.0beta4/gui/gdmlogin.c        Tue May 23 09:12:35 2000
+@@ -461,7 +461,7 @@
+     gtk_widget_set_sensitive (GTK_WIDGET (sessmenu), FALSE);
+     /* Previously saved session not found in ~user/.gnome/gdm */
+-    if (! strlen (savedsess)) {
++    if (!(savedsess && strcmp ("(null)", savedsess) && strlen (savedsess))) {
+       /* If "Last" is chosen run Default, else run user's current selection */
+       if (!strcasecmp (cursess, lastsess))
+           session = defsess;
diff --git a/gdm-nonbash-shell.patch b/gdm-nonbash-shell.patch
new file mode 100644 (file)
index 0000000..a00a3d9
--- /dev/null
@@ -0,0 +1,11 @@
+--- gdm-2.0beta4/daemon/slave.c        Mon Jul 17 13:37:05 2000
++++ gdm-2.0beta4/daemon/slave.c~       Mon Jul 17 13:15:48 2000
+@@ -456,7 +456,7 @@
+       shell = gdm_get_user_shell ();
+       shell_hyphen = g_strconcat ("-", shell, NULL);
+-      execl (shell, shell_hyphen, sesspath, NULL);
++      execl (shell, "-", "-c", sesspath, NULL);
+       
+       gdm_error (_("gdm_slave_session_start: Could not start session `%s'"), sesspath);
+       
diff --git a/gdm-pipewrite.patch b/gdm-pipewrite.patch
new file mode 100644 (file)
index 0000000..2416cf7
--- /dev/null
@@ -0,0 +1,18 @@
+--- gdm-2.0beta4/daemon/slave.c~       Wed Sep 29 18:56:35 1999
++++ gdm-2.0beta4/daemon/slave.c        Thu Apr 27 18:14:16 2000
+@@ -423,6 +423,15 @@
+       /* Restore sigmask inherited from init */
+       sigprocmask (SIG_SETMASK, &sysmask, NULL);
+       
++      for(i = 0; i < sysconf(_SC_OPEN_MAX); i++)
++        close(i);
++
++      /* No error checking here - if it's messed the best response
++           is to ignore & try to continue */
++      open("/dev/null", O_RDONLY); /* open stdin - fd 0 */
++      open("/dev/null", O_RDWR); /* open stdout - fd 1 */
++      open("/dev/null", O_RDWR); /* open stderr - fd 2 */
++
+       execl (sesspath, NULL);
+       
+       gdm_error (_("gdm_slave_session_start: Could not start session `%s'"), sesspath);
diff --git a/gdm-rhlang.patch b/gdm-rhlang.patch
new file mode 100644 (file)
index 0000000..1b2acac
--- /dev/null
@@ -0,0 +1,20 @@
+--- gdm-2.0beta4/daemon/slave.c.rhlang Tue Oct  3 13:26:23 2000
++++ gdm-2.0beta4/daemon/slave.c        Tue Oct  3 13:32:50 2000
+@@ -374,10 +374,13 @@
+       setenv ("PATH", GdmDefaultPath, TRUE);
+     /* Set locale */
+-    if (!strcasecmp (language, "english"))
+-      setenv ("LANG", "C", TRUE);
+-    else
+-      setenv ("LANG", language, TRUE);
++    if (!strcasecmp (language, "english")) {
++      setenv ("LANG",     "C", TRUE);
++      setenv ("GDM_LANG", "C", TRUE);
++    } else {
++      setenv ("LANG",     language, TRUE);
++      setenv ("GDM_LANG", language, TRUE);
++    }
+     
+     /* If script fails reset X server and restart greeter */
+     if (gdm_exec_script (d, GdmPreSession) != EXIT_SUCCESS) 
diff --git a/gdm-system-auth.patch b/gdm-system-auth.patch
new file mode 100644 (file)
index 0000000..e34e626
--- /dev/null
@@ -0,0 +1,15 @@
+--- gdm-2.0beta2/config/gdm.system-auth        Thu Jun  1 01:13:46 2000
++++ gdm-2.0beta2/config/gdm    Thu Jun  1 01:14:32 2000
+@@ -1,8 +1,7 @@
+ #%PAM-1.0
+-auth       required   /lib/security/pam_pwdb.so shadow nullok
++auth       required   /lib/security/pam_stack.so service=system-auth
+ auth       required   /lib/security/pam_nologin.so
+-account    required   /lib/security/pam_pwdb.so
++account    required   /lib/security/pam_stack.so service=system-auth
+-password   required   /lib/security/pam_cracklib.so
+-password   required   /lib/security/pam_pwdb.so shadow nullok use_authtok
+-session    required   /lib/security/pam_pwdb.so
++password   required   /lib/security/pam_stack.so service=system-auth
++session    required   /lib/security/pam_stack.so service=system-auth
+ session    optional     /lib/security/pam_console.so
diff --git a/gdm-tolower.patch b/gdm-tolower.patch
new file mode 100644 (file)
index 0000000..7551c2b
--- /dev/null
@@ -0,0 +1,10 @@
+--- gdm-2.0beta4/gui/gdmlogin.c.langfix        Wed Jun 21 16:23:52 2000
++++ gdm-2.0beta4/gui/gdmlogin.c        Wed Jun 21 16:27:33 2000
+@@ -547,6 +547,7 @@
+     }
+     else
+       language = savedlang;
++    language[0] = tolower(language[0]);
+ }
diff --git a/gdm-usershell.patch b/gdm-usershell.patch
new file mode 100644 (file)
index 0000000..f5518f5
--- /dev/null
@@ -0,0 +1,72 @@
+--- ../build/BUILD/gdm-2.0beta4/daemon/slave.c.usershell       Fri Apr 28 00:06:43 2000
++++ gdm-2.0beta4/daemon/slave.c        Fri Apr 28 00:07:56 2000
+@@ -250,6 +250,35 @@
+     gdm_slave_session_start (login);
+ }
++static gchar*
++gdm_get_user_shell(void)
++{
++      struct passwd *pw;
++      int i;
++      char *shell;
++      static char *shells [] = {
++              "/bin/bash", "/bin/zsh", "/bin/tcsh", "/bin/ksh",
++              "/bin/csh", "/bin/sh", 0
++      };
++
++#if 0
++      if ((shell = getenv ("SHELL"))){
++              return g_strconcat (shell, NULL);
++      }
++#endif
++      pw = getpwuid(getuid());
++      if (pw && pw->pw_shell) {
++              return g_strdup (pw->pw_shell);
++      } 
++
++      for (i = 0; shells [i]; i++) {
++              if (g_file_exists (shells [i])){
++                      return g_strdup (shells[i]);
++              }
++      }
++      
++      return g_strdup("/bin/sh");
++}
+ static void
+ gdm_slave_session_start (gchar *login)
+@@ -259,6 +288,7 @@
+     gchar *session, *language, *usrsess, *usrlang;
+     gboolean savesess = FALSE, savelang = FALSE, usrcfgok = FALSE, authok = FALSE;
+     gint i;
++    char *shell, *shell_hyphen;
+     pwent = getpwnam (login);
+     
+@@ -423,19 +453,16 @@
+       /* Restore sigmask inherited from init */
+       sigprocmask (SIG_SETMASK, &sysmask, NULL);
+       
+-      for(i = 0; i < sysconf(_SC_OPEN_MAX); i++)
+-        close(i);
+-
+-      /* No error checking here - if it's messed the best response
+-           is to ignore & try to continue */
+-      open("/dev/null", O_RDONLY); /* open stdin - fd 0 */
+-      open("/dev/null", O_RDWR); /* open stdout - fd 1 */
+-      open("/dev/null", O_RDWR); /* open stderr - fd 2 */
++      shell = gdm_get_user_shell ();
++      shell_hyphen = g_strconcat ("-", shell, NULL);
+-      execl (sesspath, NULL);
++      execl (shell, shell_hyphen, sesspath, NULL);
+       
+       gdm_error (_("gdm_slave_session_start: Could not start session `%s'"), sesspath);
+       
++      g_free (shell);
++      g_free (shell_hyphen);
++
+       gdm_slave_session_stop();
+       gdm_slave_session_cleanup();
+       
diff --git a/gdm-xdmcp.patch b/gdm-xdmcp.patch
new file mode 100644 (file)
index 0000000..e9b577c
--- /dev/null
@@ -0,0 +1,159 @@
+diff -Nur gdm-2.0beta4/daemon/xdmcp.c gdm-2.0beta4.new/daemon/xdmcp.c
+--- gdm-2.0beta4/daemon/xdmcp.c        Thu Sep 30 00:56:35 1999
++++ gdm-2.0beta4.new/daemon/xdmcp.c    Thu Dec 21 21:51:44 2000
+@@ -149,7 +149,7 @@
+ int gdm_xdmcp_init (void);
+ void gdm_xdmcp_run (void);
+ void gdm_xdmcp_close (void);
+-static void gdm_xdmcp_decode_packet (void);
++static gboolean 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);
+@@ -267,7 +267,7 @@
+ }
+-static void
++static gboolean
+ gdm_xdmcp_decode_packet (void)
+ {
+     struct sockaddr_in clnt_sa;
+@@ -282,17 +282,17 @@
+     
+     if (!XdmcpFill (xdmcpfd, &buf, &clnt_sa, &sa_len)) {
+       gdm_error (_("gdm_xdmcp_decode: Could not create XDMCP buffer!"));
+-      return;
++      return TRUE;
+     }
+     
+     if (!XdmcpReadHeader (&buf, &header)) {
+       gdm_error (_("gdm_xdmcp_decode: Could not read XDMCP header!"));
+-      return;
++      return TRUE;
+     }
+     
+     if (header.version != XDM_PROTOCOL_VERSION) {
+       gdm_error (_("gdm_xdmcp_decode: Incorrect XDMCP version!"));
+-      return;
++      return TRUE;
+     }
+     gdm_debug ("gdm_xdmcp_decode: Received opcode %s from client %s", 
+@@ -335,6 +335,8 @@
+                  inet_ntoa (clnt_sa.sin_addr));
+       break;
+     }
++
++    return TRUE;
+ }
+@@ -437,12 +439,15 @@
+     
+     /* Read display port */
+     if (! XdmcpReadARRAY8 (&buf, &clnt_port)) {
++      XdmcpDisposeARRAYofARRAY8 (&clnt_addr);
+       gdm_error (_("gdm_xdmcp_handle_forward_query: Could not read display port number"));
+       return;
+     }
+     
+     /* Extract array of authentication names from Xdmcp packet */
+     if (! XdmcpReadARRAYofARRAY8 (&buf, &clnt_authlist)) {
++      XdmcpDisposeARRAYofARRAY8 (&clnt_addr);
++      XdmcpDisposeARRAYofARRAY8 (&clnt_port);
+       gdm_error (_("gdm_xdmcp_handle_forward_query: Could not extract authlist from packet")); 
+       return;
+     }
+@@ -459,7 +464,7 @@
+     
+     if (len != explen) {
+       gdm_error (_("gdm_xdmcp_handle_forward_query: Error in checksum")); 
+-      return;
++      goto out;
+     }
+     
+     /* Find client port number */
+@@ -467,7 +472,7 @@
+       port = port*256+clnt_port.data[i];
+     
+     /* Find client address. Ugly, ugly. Endianness sucks... */
+-    memmove (&ia.s_addr, clnt_addr.data, clnt_addr.length);
++    memmove (&ia.s_addr, clnt_addr.data, MIN(clnt_addr.length, sizeof(ia.s_addr)));
+     
+     gdm_debug ("gdm_xdmcp_handle_forward_query: Got FORWARD_QUERY from display: %s, port %d", 
+              inet_ntoa (ia), port);
+@@ -478,14 +483,18 @@
+     disp_sa->sin_port = htons (port);
+     disp_sa->sin_addr.s_addr = ia.s_addr;
+     
+-    /* Cleanup */
+-    XdmcpDisposeARRAYofARRAY8 (&clnt_authlist);
+-    
+     /* Check with tcp_wrappers if display is allowed to access */
+     if (gdm_xdmcp_host_allow (disp_sa)) 
+       gdm_xdmcp_send_willing (disp_sa);
+     else
+       gdm_xdmcp_send_unwilling (disp_sa, FORWARD_QUERY);
++
++  out:
++    g_free(disp_sa);
++    /* Cleanup */
++    XdmcpDisposeARRAYofARRAY8 (&clnt_authlist);
++    XdmcpDisposeARRAYofARRAY8 (&clnt_port);
++    XdmcpDisposeARRAYofARRAY8 (&clnt_addr);
+ }
+@@ -512,7 +521,6 @@
+     XdmcpFlush (xdmcpfd, &buf, clnt_sa, sizeof (struct sockaddr_in));
+ }
+-
+ static void
+ gdm_xdmcp_send_unwilling (struct sockaddr_in *clnt_sa, gint type)
+ {
+@@ -540,13 +548,13 @@
+ static void
+ gdm_xdmcp_handle_request (struct sockaddr_in *clnt_sa, gint len)
+ {
+-    static CARD16 clnt_dspnum;
+-    static ARRAY16 clnt_conntyp;
+-    static ARRAYofARRAY8 clnt_addr;
+-    static ARRAY8 clnt_authname;
+-    static ARRAY8 clnt_authdata;
+-    static ARRAYofARRAY8 clnt_authorization;
+-    static ARRAY8 clnt_manufacturer;
++    CARD16 clnt_dspnum;
++    ARRAY16 clnt_conntyp;
++    ARRAYofARRAY8 clnt_addr;
++    ARRAY8 clnt_authname;
++    ARRAY8 clnt_authdata;
++    ARRAYofARRAY8 clnt_authorization;
++    ARRAY8 clnt_manufacturer;
+     gint explen;
+     gint i;
+     gboolean mitauth = FALSE;
+@@ -637,6 +645,13 @@
+       gdm_xdmcp_send_accept (clnt_sa, clnt_dspnum);
+     else
+       gdm_xdmcp_send_decline (clnt_sa);       
++
++    XdmcpDisposeARRAY8 (&clnt_authname);
++    XdmcpDisposeARRAY8 (&clnt_authdata);
++    XdmcpDisposeARRAY8 (&clnt_manufacturer);
++    XdmcpDisposeARRAYofARRAY8 (&clnt_addr);
++    XdmcpDisposeARRAYofARRAY8 (&clnt_authorization);
++    XdmcpDisposeARRAY16 (&clnt_conntyp);
+ }
+@@ -797,6 +812,8 @@
+       gdm_debug ("gdm_xdmcp_handle_manage: Failed to look up session id %d", clnt_sessid);
+       gdm_xdmcp_send_refuse (clnt_sa, clnt_sessid);
+     }
++
++    XdmcpDisposeARRAY8(&clnt_dspclass);
+ }
diff --git a/gdm-ypconfigure.patch b/gdm-ypconfigure.patch
new file mode 100644 (file)
index 0000000..952eb57
--- /dev/null
@@ -0,0 +1,67 @@
+--- gdm-2.0beta2/configure.in.sopwith  Thu Sep  9 12:12:34 1999
++++ gdm-2.0beta2/configure.in  Thu Sep  9 12:15:59 1999
+@@ -70,7 +70,10 @@
+ if test -n "$LIBWRAP_PATH"; then
+       AC_MSG_RESULT(yes)
+-      AC_CHECK_LIB(nsl, yp_get_default_domain, LIBS="$LIBS -lnsl")
++      OLD_LIBS="$LIBS"
++      LIBS=""
++      AC_CHECK_LIB(nsl, yp_get_default_domain)
++      LIBS="$LIBS $OLD_LIBS"
+ else
+       AC_MSG_RESULT(no)
+ fi
+--- gdm-2.0beta2/configure.sopwith     Thu Sep  9 12:16:07 1999
++++ gdm-2.0beta2/configure     Thu Sep  9 12:16:12 1999
+@@ -5034,8 +5034,10 @@
+ if test -n "$LIBWRAP_PATH"; then
+       echo "$ac_t""yes" 1>&6
++      OLD_LIBS="$LIBS"
++      LIBS=""
+       echo $ac_n "checking for yp_get_default_domain in -lnsl""... $ac_c" 1>&6
+-echo "configure:5039: checking for yp_get_default_domain in -lnsl" >&5
++echo "configure:5041: checking for yp_get_default_domain in -lnsl" >&5
+ ac_lib_var=`echo nsl'_'yp_get_default_domain | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -5043,7 +5045,7 @@
+   ac_save_LIBS="$LIBS"
+ LIBS="-lnsl  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 5047 "configure"
++#line 5049 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -5054,7 +5056,7 @@
+ yp_get_default_domain()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:5058: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:5060: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -5069,11 +5071,19 @@
+ fi
+ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+   echo "$ac_t""yes" 1>&6
+-  LIBS="$LIBS -lnsl"
++    ac_tr_lib=HAVE_LIB`echo nsl | sed -e 's/[^a-zA-Z0-9_]/_/g' \
++    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
++  cat >> confdefs.h <<EOF
++#define $ac_tr_lib 1
++EOF
++
++  LIBS="-lnsl $LIBS"
++
+ else
+   echo "$ac_t""no" 1>&6
+ fi
++      LIBS="$LIBS $OLD_LIBS"
+ else
+       echo "$ac_t""no" 1>&6
+ fi
This page took 0.112513 seconds and 4 git commands to generate.