[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Flashing screen with cvs bootdisks



In message <20011130164615.U22264@ucsd.edu>, "John H. Robinson, IV" writes:
>there is an etc/messages.trm. i did do a make clean before building.
>
>this was the reiserfs flavour, over serial.

Right, yeah, I think I see the problem.

Can you try this patch to dbootstrap and see if it helps?

p.

Index: main.c
===================================================================
RCS file: /org/cvs.debian.org/cvs/debian-boot/boot-floppies/utilities/dbootstrap/main.c,v
retrieving revision 1.129
diff -u -r1.129 main.c
--- main.c	2001/11/27 23:24:24	1.129
+++ main.c	2001/12/01 11:13:08
@@ -737,6 +737,32 @@
 	  do {
 	    lang = boxChooseLanguageVariant (langs);
 	  } while (lang == NULL);
+	  snprintf (msgcat, PATH_MAX, "/etc/messages.%s", lang->msgcat);
+	  msgcat[PATH_MAX - 1] = '\0';
+	  DEBUGMSG ("loading message catalog %s", msgcat);
+	  
+	  if (LOAD_TRMFILE (msgcat) == 0)         /* Failed to load localized strings? */
+	  {
+	    if (LOAD_TRMFILE (TRMBACKUP) == 0)  /* Failed to load English strings as well? */
+            {
+	      problemBoxEn ("An error occured while loading application messages.", "Problem");
+	      
+	      reboot (RB_AUTOBOOT);
+	      
+	      /* when not root and debugging */
+	      boxFinished();
+	      exit(1); 
+	    }
+	    else
+	    {
+	      char message[255];
+
+	      snprintf (message, sizeof (message), "An error occured while loading localized application messages from '%s'. English messages will be used instead.", msgcat);
+	      message[254] = '\0'; /* Just in case */
+	      
+	      problemBoxEn (message, "Problem");
+	    }
+	  }
 	} else {
 	  /* Try to force the language to English */
 	  while (langs->name != NULL && strcmp(langs->name, "English"))
@@ -746,35 +772,24 @@
 	    reboot (RB_AUTOBOOT);
 	  }
 	  lang = langs->list->items[0].p;
-	}
-
-        snprintf (msgcat, PATH_MAX, "/etc/messages.%s", lang->msgcat);
-        msgcat[PATH_MAX - 1] = '\0';
-
-        DEBUGMSG ("loading message catalog %s", msgcat);
-
-        if (LOAD_TRMFILE (msgcat) == 0)         /* Failed to load localized strings? */
-        {
-            if (LOAD_TRMFILE (TRMBACKUP) == 0)  /* Failed to load English strings as well? */
-            {
-                problemBoxEn ("An error occured while loading application messages.", "Problem");
-
-                reboot (RB_AUTOBOOT);
-
-                /* when not root and debugging */
-                boxFinished();
-                exit(1); 
-            }
-            else
-            {
-                char message[255];
 
-                snprintf (message, sizeof (message), "An error occured while loading localized application messages from '%s'. English messages will be used instead.", msgcat);
-                message[254] = '\0'; /* Just in case */
-
-                problemBoxEn (message, "Problem");
-            }
+	  snprintf (msgcat, PATH_MAX, "/etc/messages.%s", lang->msgcat);
+	  msgcat[PATH_MAX - 1] = '\0';
+	  DEBUGMSG ("loading message catalog %s", msgcat);
+
+	  /* The English messages might be /etc/messages.en, or
+	     /etc/messages.trm in a single locale system */
+	  if (LOAD_TRMFILE (msgcat) == 0
+	      && LOAD_TRMFILE ("/etc/messages.trm") == 0)
+	  {
+	    problemBoxEn ("An error occurred while loading application messages", "Problem");
+	    reboot(RB_AUTOBOOT);
+	    /* when not root and debugging */
+	    boxFinished();
+	    exit(1); 
+	  }
 	}
+
         free (msgcat);
     }
 #else
@@ -863,6 +878,37 @@
 "For more information, refer to http://www.armlinux.org/strongarm.html\n";), 
 		     _("Warning"));
 #endif
+
+    /* See how much memory is fitted.  If it's less than the
+       recommended amount, say so. */
+    {
+      char *smem = NULL;
+      int status;
+      struct Arg args[] = { 
+	{ "MemTotal", 0, &smem }, 
+	{ NULL, 0, NULL } 
+      };
+      status = parsefile("/proc/meminfo", args, 2, 1);
+      if (status == 0 && smem != NULL) {
+	unsigned long mem = atol(smem), min_mem;
+	mem /= 1024;
+	/* This information comes from documentation/default.ent */
+#if defined __i386__
+	min_mem = 12;
+#elif defined __arm__ || defined __s390__ || defined __alpha__ || defined __mips__
+	min_mem = 16;
+#else
+	min_mem = 5;
+#endif
+	if (mem < min_mem) {
+	  snprintf(prtbuf, PRTBUFSIZE - 1, _(
+"Your computer seems to have only %dMB of RAM.  For this\n"
+"version of Debian, a minimum of %dMB is recommended.\n"), 
+		   mem, min_mem);
+	  wideMessageBox(prtbuf, _("Warning: Low Memory"));
+	}
+      }
+    }
 
     is_root_a_floppy ();
 




Reply to: