From: wrobell Date: Thu, 21 Dec 2000 21:39:25 +0000 (+0000) Subject: - some patches from helixcode X-Git-Tag: gdm-2_2_2-2~8 X-Git-Url: http://git.pld-linux.org/?p=packages%2Fgdm2.20.git;a=commitdiff_plain;h=b77231480c650ab6b31d8f43df4c1cc82e9694d6 - some patches from helixcode 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 --- diff --git a/gdm-chpass.patch b/gdm-chpass.patch new file mode 100644 index 0000000..e2d570b --- /dev/null +++ b/gdm-chpass.patch @@ -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 index 0000000..bb1b0b6 --- /dev/null +++ b/gdm-daemonfixes.patch @@ -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 index 0000000..69e3de7 --- /dev/null +++ b/gdm-dumberrmsg.patch @@ -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 index 0000000..9d34d57 --- /dev/null +++ b/gdm-fdleak.patch @@ -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 index 0000000..7c91cfb --- /dev/null +++ b/gdm-fixmessages.patch @@ -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 index 0000000..5d407c7 --- /dev/null +++ b/gdm-i18n.patch @@ -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 , 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 \n" ++"Language-Team: Japanese Team \n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=euc-japan\n" ++"Content-Transfer-Encoding: 8bit\n" ++"First-Translator: Yukihiro Nakai \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 index 0000000..58f87b9 --- /dev/null +++ b/gdm-loopofdeath.patch @@ -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 index 0000000..d68859f --- /dev/null +++ b/gdm-no_questions_asked.patch @@ -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 index 0000000..a00a3d9 --- /dev/null +++ b/gdm-nonbash-shell.patch @@ -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 index 0000000..2416cf7 --- /dev/null +++ b/gdm-pipewrite.patch @@ -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 index 0000000..1b2acac --- /dev/null +++ b/gdm-rhlang.patch @@ -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 index 0000000..e34e626 --- /dev/null +++ b/gdm-system-auth.patch @@ -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 index 0000000..7551c2b --- /dev/null +++ b/gdm-tolower.patch @@ -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 index 0000000..f5518f5 --- /dev/null +++ b/gdm-usershell.patch @@ -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 index 0000000..e9b577c --- /dev/null +++ b/gdm-xdmcp.patch @@ -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 index 0000000..952eb57 --- /dev/null +++ b/gdm-ypconfigure.patch @@ -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 <&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 <&6 + fi + ++ LIBS="$LIBS $OLD_LIBS" + else + echo "$ac_t""no" 1>&6 + fi