X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=src%2Finstall%2Bsetup%2Finstall%2Fmain.c;h=ad21363f0690e5c3790d41ccd25bf59540555ebd;hb=8906905349244b1fbbb0642f8ed169d3f3a76adf;hp=33f910bff705d0822388a34c3927973077031d60;hpb=069680acc102ac9bfa6a656ecd75b3bdb65f80d1;p=people%2Fpmueller%2Fipfire-2.x.git diff --git a/src/install+setup/install/main.c b/src/install+setup/install/main.c index 33f910bff7..ad21363f06 100644 --- a/src/install+setup/install/main.c +++ b/src/install+setup/install/main.c @@ -14,7 +14,7 @@ #define CDROM_INSTALL 0 #define URL_INSTALL 1 #define DISK_INSTALL 2 -#define INST_FILECOUNT 5600 +#define INST_FILECOUNT 7000 #define UNATTENDED_CONF "/cdrom/boot/unattended.conf" int raid_disk = 0; @@ -46,40 +46,6 @@ int detect_smp() { return (cpu_count > 1); } -int generate_packages_list(char *packages, const char *rpmdir, const char *source) { - - FILE *fd=NULL; - char buffer[STRING_SIZE]; - bzero(buffer, sizeof(buffer)); - - if ((fd = fopen(source, "r")) == NULL) { - (void) fprintf(flog, "Packages file %s not found\n", source); - return -1; - } - while (fgets(buffer, sizeof(buffer), fd) != NULL) { - int length = -1; - length = strlen(buffer)-1; - if (length<=0) { - continue; - } - if (buffer[length] == '\n') { - buffer[length]='\0'; - } - length = snprintf(packages, STRING_SIZE, "%s %s/%s", strdup(packages), rpmdir, buffer); - if ((length <0) || (length >STRING_SIZE)) { - (void) fprintf(flog, "rpm command line too long: %d\n%s", length, packages); - return -1; - } - } - if (ferror(fd)) { - (void) fprintf(flog, "Error reading file\n"); - (void) fclose(fd); - return -1; - } - (void) fclose(fd); - return 0; -} - long calc_swapsize(long memory, long disk) { if (memory < 128) { return 256; @@ -102,6 +68,7 @@ int unattended_setup(struct keyvalue *unattendedkv) { char keymap[STRING_SIZE]; char language[STRING_SIZE]; char timezone[STRING_SIZE]; + char theme[STRING_SIZE]; char green_address[STRING_SIZE]; char green_netmask[STRING_SIZE]; char green_netaddress[STRING_SIZE]; @@ -114,6 +81,7 @@ int unattended_setup(struct keyvalue *unattendedkv) { findkey(unattendedkv, "KEYMAP", keymap); findkey(unattendedkv, "LANGUAGE", language); findkey(unattendedkv, "TIMEZONE", timezone); + findkey(unattendedkv, "THEME", theme); findkey(unattendedkv, "GREEN_ADDRESS", green_address); findkey(unattendedkv, "GREEN_NETMASK", green_netmask); findkey(unattendedkv, "GREEN_NETADDRESS", green_netaddress); @@ -127,6 +95,7 @@ int unattended_setup(struct keyvalue *unattendedkv) { replacekeyvalue(mainsettings, "KEYMAP", keymap); replacekeyvalue(mainsettings, "LANGUAGE", language); replacekeyvalue(mainsettings, "TIMEZONE", timezone); + replacekeyvalue(mainsettings, "THEME", theme); writekeyvalues(mainsettings, "/harddisk" CONFIG_ROOT "/main/settings"); freekeyvalues(mainsettings); @@ -222,7 +191,7 @@ int main(int argc, char *argv[]) int cdmounted = 0; /* Loop flag for inserting a cd. */ int rc = 0; char commandstring[STRING_SIZE]; - char *installtypes[] = { "CDROM", "HTTP/FTP", NULL }; + char *installtypes[] = { "CDROM/USB", "HTTP/FTP", NULL }; int installtype = CDROM_INSTALL; char insertmessage[STRING_SIZE]; char insertdevnode[STRING_SIZE]; @@ -288,23 +257,6 @@ int main(int argc, char *argv[]) fprintf(flog, "Manual FDISK selected.\n"); fdisk = 1; } - if (strstr (line, "nopcmcia") == NULL) { - fprintf(flog, "Initializing PCMCIA controllers.\n"); - pcmcia = initialize_pcmcia(); - if (pcmcia) { - fprintf (flog, "Detected PCMCIA Controller: %s.\n", pcmcia); - sprintf(commandstring, "/sbin/modprobe %s", pcmcia); - mysystem("/sbin/modprobe pcmcia_core"); - mysystem(commandstring); - mysystem("/sbin/modprobe ds"); - /* pcmcia netcard drivers are not available from Boot floppy, - * they will be loaded from Drivers floppy later */ - } else { - fprintf (flog, "Detected No PCMCIA Controller.\n"); - } - } else { - fprintf(flog, "Skipping PCMCIA detection.\n"); - } if (strstr (line, "nousb") == NULL) { fprintf(flog, "Initializing USB controllers.\n"); initialize_usb(); @@ -383,7 +335,7 @@ int main(int argc, char *argv[]) } /* read source drive letter */ - if ((handle = fopen("/source_device", "r")) == NULL) { + if ((handle = fopen("/tmp/source_device", "r")) == NULL) { errorbox(ctr[TR_ERROR_PROBING_CDROM]); goto EXIT; } @@ -505,11 +457,11 @@ int main(int argc, char *argv[]) * the disk. */ /* Don't use mysystem here so we can redirect output */ - sprintf(commandstring, "/bin/sfdisk -s /dev/%s > /disksize 2> /dev/null", harddrive); + sprintf(commandstring, "/bin/sfdisk -s /dev/%s > /tmp/disksize 2> /dev/null", harddrive); system(commandstring); /* Calculate amount of disk space */ - if ((handle = fopen("/disksize", "r"))) + if ((handle = fopen("/tmp/disksize", "r"))) { fgets(line, STRING_SIZE-1, handle); if (sscanf (line, "%s", string)) { @@ -605,9 +557,9 @@ int main(int argc, char *argv[]) } if (raid_disk) - snprintf(commandstring, STRING_SIZE, "/bin/mkreiserfs -f %sp3", hdparams.devnode); + snprintf(commandstring, STRING_SIZE, "/sbin/mkfs.reiser4 -y %sp3", hdparams.devnode); else - snprintf(commandstring, STRING_SIZE, "/bin/mkreiserfs -f %s3", hdparams.devnode); + snprintf(commandstring, STRING_SIZE, "/sbin/mkfs.reiser4 -y %s3", hdparams.devnode); if (runcommandwithstatus(commandstring, ctr[TR_MAKING_ROOT_FILESYSTEM])) { @@ -616,9 +568,9 @@ int main(int argc, char *argv[]) } if (raid_disk) - snprintf(commandstring, STRING_SIZE, "/bin/mkreiserfs -f %sp4", hdparams.devnode); + snprintf(commandstring, STRING_SIZE, "/sbin/mkfs.reiser4 -y %sp4", hdparams.devnode); else - snprintf(commandstring, STRING_SIZE, "/bin/mkreiserfs -f %s4", hdparams.devnode); + snprintf(commandstring, STRING_SIZE, "/sbin/mkfs.reiser4 -y %s4", hdparams.devnode); if (runcommandwithstatus(commandstring, ctr[TR_MAKING_LOG_FILESYSTEM])) { @@ -697,30 +649,6 @@ int main(int argc, char *argv[]) /* Rename uname */ rename ("/harddisk/bin/uname.bak", "/harddisk/bin/uname"); - /* Write PCMCIA Config */ - if (pcmcia) { - handle = fopen("/harddisk/etc/modules.conf", "a"); - if (handle != NULL) { - fprintf (handle, "# PCMCIA Settings\n"); - fprintf (handle, "alias pcmcia-controller %s\n", pcmcia); - fclose(handle); - } - } - - handle = fopen("/harddisk/etc/pcmcia.conf", "w"); - if (handle != NULL) { - if (pcmcia) { - fprintf (handle, "PCMCIA=yes\n"); - fprintf (handle, "PCIC=%s\n", pcmcia); - } else { - fprintf (handle, "PCMCIA=no\n"); - fprintf (handle, "PCIC=\n"); - } - fprintf (handle, "CARDMGR_OPTS=\n"); - fprintf (handle, "SCHEME=\n"); - fclose(handle); - } - /* *always* write disk configuration */ if (!(write_disk_configs(&hdparams))){ errorbox(ctr[TR_ERROR_WRITING_CONFIG]); @@ -733,7 +661,6 @@ int main(int argc, char *argv[]) mysystem("/bin/mount --bind /dev /harddisk/dev"); - /* if we detected SCSI then fixup */ /* doesn't really work cause it sometimes creates a ramdisk on ide systems */ /* mysystem("/bin/probecntrl.sh"); @@ -770,9 +697,8 @@ int main(int argc, char *argv[]) else sprintf(string, "root=%s3", hdparams.devnode); replace( "/harddisk/boot/grub/grub.conf", "root=ROOT", string); - mysystem( "sed -i \"s|KVERSION|$(/bin/uname -r)|\" /harddisk/boot/grub/grub.conf" ); - replace( "/harddisk/boot/grub/grubbatch", "DEVICE", hdparams.devnode); + /* restore permissions */ chmod("/harddisk/boot/grub/grubbatch", S_IXUSR | S_IRUSR | S_IXGRP | S_IRGRP | S_IXOTH | S_IROTH);