diff options
Diffstat (limited to 'loader2')
-rw-r--r-- | loader2/Makefile | 15 | ||||
-rw-r--r-- | loader2/cdinstall.c | 13 | ||||
-rw-r--r-- | loader2/dietstubs.c | 3 | ||||
-rw-r--r-- | loader2/lang.c | 40 | ||||
-rw-r--r-- | loader2/loader.c | 12 |
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; } |