summaryrefslogtreecommitdiffstats
path: root/loader2
diff options
context:
space:
mode:
Diffstat (limited to 'loader2')
-rw-r--r--loader2/Makefile15
-rw-r--r--loader2/cdinstall.c13
-rw-r--r--loader2/dietstubs.c3
-rw-r--r--loader2/lang.c40
-rw-r--r--loader2/loader.c12
5 files changed, 52 insertions, 31 deletions
diff --git a/loader2/Makefile b/loader2/Makefile
index 3559e2559..bfdf17e50 100644
--- a/loader2/Makefile
+++ b/loader2/Makefile
@@ -40,11 +40,10 @@ SOURCES = $(subst .o,.c,$(OBJS)) loader.c
HWLIBS = -lkudzu_loader -lpci
DEBUG = -ggdb
-COPTS = $(DEBUG) -Wall -DVERSION='"$(VERSION)"'
+COPTS = $(DEBUG) -Os -Wall -DVERSION='"$(VERSION)"'
CFLAGS = $(COPTS) -ffunction-sections -D_GNU_SOURCE=1 -D_FILE_OFFSET_BITS=64 -DHAVE_LIBIO_H -DPRODUCTNAME='$(PRODUCTNAME)'
STATIC = -static
-
ifeq (1, $(USEDIET))
CFLAGS += -DGZLIB=1
DIET=diet
@@ -69,7 +68,14 @@ LANGS = $(shell awk '{ print $$2 }' ../lang-table | egrep -v '(^en$$)')
TR = $(patsubst %,tr/%.tr,$(LANGS))
TRFILES = $(patsubst %,%.tr,$(LANGS))
-all: $(BINS) loader.tr
+all: $(BINS) loader.tr font.bgf.gz
+
+font.bgf.gz: /usr/lib/bogl/font.bdf.gz /usr/bin/reduce-font
+ zcat /usr/lib/bogl/font.bdf.gz > font.bdf
+ (for I in ../po/*.po; do msgconv -t utf-8 $$I; done) | reduce-font > font-reduced.bdf
+ bdftobogl -b font.bdf > font.bgf
+ rm -f font.bdf font-reduced.bdf
+ gzip -9 -f font.bgf
loader.tr: $(TR) ../lang-table
(cd tr; ls $(TRFILES) | cpio --quiet -Hcrc -o |gzip -9) > $@
@@ -110,7 +116,7 @@ loader: loader.o $(OBJS) $(NETOBJS)
clean:
rm -f *.o *~ .depend init ctype.c mkctype \
- loader loader-pcmcia loader-local loader-network
+ loader
depend: ctype.c
$(CPP) $(CFLAGS) -DHAVE_CONFIG_H -M $(SOURCES) > .depend
@@ -123,6 +129,7 @@ install: all
done
install -m 644 loader.tr $(DESTDIR)/$(RUNTIMEDIR)/loader
install -m 644 module-info $(DESTDIR)/$(RUNTIMEDIR)/loader
+ install -m 644 font.bgf.gz $(DESTDIR)/$(RUNTIMEDIR)/loader
ifeq (.depend,$(wildcard .depend))
include .depend
diff --git a/loader2/cdinstall.c b/loader2/cdinstall.c
index d46cde15c..297d7e437 100644
--- a/loader2/cdinstall.c
+++ b/loader2/cdinstall.c
@@ -292,6 +292,17 @@ char * setupCdrom(char * location,
int foundinvalid = 0;
char * buf;
+#if 0
+ if (FL_TESTING(flags) && interactive) {
+ for (i = 0; i < kd->numKnown; i++) {
+ if (kd->known[i].class != CLASS_CDROM) continue;
+ buf = malloc(200);
+ sprintf(buf, "cdrom://%s/mnt/source", kd->known[i].name);
+ return buf;
+ }
+ }
+#endif
+
/* JKFIXME: ASSERT -- we have a cdrom device when we get here */
do {
for (i = 0; i < kd->numKnown; i++) {
@@ -369,7 +380,7 @@ char * mountCdromImage(struct installMethod * method,
moduleInfoSet modInfo, moduleList modLoaded,
moduleDeps * modDepsPtr, int flags) {
- setupCdrom(location, kd, loaderData, modInfo, modLoaded, *modDepsPtr, flags, 1);
+ return setupCdrom(location, kd, loaderData, modInfo, modLoaded, *modDepsPtr, flags, 1);
}
void setKickstartCD(struct loaderData_s * loaderData, int argc,
diff --git a/loader2/dietstubs.c b/loader2/dietstubs.c
index 755ad3ed1..ae0a3bf73 100644
--- a/loader2/dietstubs.c
+++ b/loader2/dietstubs.c
@@ -5,6 +5,9 @@
#include <setjmp.h>
#include <ctype.h>
#include <stdarg.h>
+#ifdef GZLIB
+#include "../isys/gzlib/gzlib.h"
+#endif
#define WLITE_REDEF_STDC 0
#include <wlite_wchar.h>
diff --git a/loader2/lang.c b/loader2/lang.c
index 44b7df48c..4b5d9879e 100644
--- a/loader2/lang.c
+++ b/loader2/lang.c
@@ -133,7 +133,7 @@ void loadLanguage (char * file, int flags) {
int fd, hash, rc;
char * key = getenv("LANGKEY");
- if (!key || !strcmp(key, "en_US.UTF-8")) {
+ if (!key || !strcmp(key, "en")) {
if (strings) {
free(strings), strings = NULL;
numStrings = allocedStrings = 0;
@@ -218,13 +218,18 @@ void setLanguage (char * key, int flags) {
/* returns 0 on success, 1 on failure */
extern int bterm_main(int argc, char **argv);
+
int startBterm(int flags) {
- char *args[4] = { "bterm", "-s", "-f", "/usr/lib/bogl/font.bgf.gz" };
+ char *args[4] = { "bterm", "-s", "-f", NULL };
int rc;
+
+ if (FL_TESTING(flags))
+ args[3] = "font.bgf.gz";
+ else
+ args[3] = "/etc/font.bgf.gz";
stopNewt();
rc = bterm_main(4, args);
- logMessage("returning, rc is %d", rc);
startNewt(flags);
return rc;
}
@@ -278,27 +283,7 @@ int chooseLanguage(char ** lang, int flags) {
/* this can't happen */
if (i == numLanguages) abort();
- if (!strncmp(languages[choice].key, "en", 2)) {
- char *buf;
- /* stick with the default (English) */
- unsetenv("LANG");
- unsetenv("LANGKEY");
- unsetenv("LC_ALL");
- unsetenv("LINGUAS");
- if (strings) {
- free(strings), strings = NULL;
- numStrings = allocedStrings = 0;
- }
- buf = sdupprintf(_(topLineWelcome), PRODUCTNAME);
- newtDrawRootText(0, 0, buf);
- free(buf);
- newtPushHelpLine(_(bottomHelpLine));
-
- return 0;
- }
-
/* load the language only if it is displayable */
- /* disable until working */
if (!strcmp(languages[choice].font, "bterm") && startBterm(flags)) {
newtWinMessage("Language Unavailable", "OK",
"%s display is unavailable in text mode. The "
@@ -308,9 +293,14 @@ int chooseLanguage(char ** lang, int flags) {
return 0;
} else {
setLanguage (languages[choice].key, flags);
- loadLanguage (NULL, flags);
}
-
+
+ /* clear out top line */
+ buf = alloca(80);
+ for (i=0; i < 80; i++)
+ buf[i] = ' ';
+ newtDrawRootText(0, 0, buf);
+
buf = sdupprintf(_(topLineWelcome), PRODUCTNAME);
newtDrawRootText(0, 0, buf);
free(buf);
diff --git a/loader2/loader.c b/loader2/loader.c
index 68b4c52b6..724e6913a 100644
--- a/loader2/loader.c
+++ b/loader2/loader.c
@@ -1130,6 +1130,16 @@ int main(int argc, char ** argv) {
execv(anacondaArgs[0], anacondaArgs);
perror("exec");
}
-
+#if 0
+ else {
+ char **args = anacondaArgs;
+ printf("would have run ");
+ while (*args)
+ printf("%s ", *args++);
+ printf("\n");
+ printf("LANGKEY=%s\n", getenv("LANGKEY"));
+ printf("LANG=%s\n", getenv("LANG"));
+ }
+#endif
return 1;
}