]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blobdiff - src/install+setup/install/main.c
Merge branch 'thirteen' of git.ipfire.org:/pub/git/ipfire-2.x into thirteen
[people/teissler/ipfire-2.x.git] / src / install+setup / install / main.c
index c181e4a8e7a09b148a55013c22abfa8e9ba7f65a..ea47593cd30e36a8f6baa75a6221ba32de1667b6 100644 (file)
@@ -14,6 +14,7 @@
  
 #define INST_FILECOUNT 10700
 #define UNATTENDED_CONF "/cdrom/boot/unattended.conf"
+#define LICENSE_FILE   "/cdrom/COPYING"
 
 #define EXT2 0
 #define EXT3 1
@@ -120,16 +121,6 @@ int main(int argc, char *argv[])
                }
        }
 
-       // Read gpl ...
-       if (! (copying = fopen("/COPYING", "r")))
-       {
-               fprintf(flog,      "Couldn't open gpl (/COPYING)\n");
-               sprintf(discl_msg, "Couldn't open gpl (/COPYING)\n");
-       } else {
-               fread(discl_msg, 1, 40000, copying);
-               fclose(copying);
-       }
-
        // Load common modules
        mysystem("/sbin/modprobe iso9660"); // CDROM
 //     mysystem("/sbin/modprobe ext2"); // Boot patition
@@ -157,11 +148,6 @@ int main(int argc, char *argv[])
        if (!unattended) {
                sprintf(message, ctr[TR_WELCOME], NAME);
                newtWinMessage(title, ctr[TR_OK], message);
-
-               if (disclaimerbox(discl_msg)==0) {
-                       errorbox(ctr[TR_LICENSE_NOT_ACCEPTED]);
-                       goto EXIT;
-               }
        }
 
        mysystem("/bin/mountsource.sh");
@@ -178,7 +164,23 @@ int main(int argc, char *argv[])
        fgets(sourcedrive, 5, handle);
        fprintf(flog, "Source drive: %s\n", sourcedrive);
        fclose(handle);
-       
+
+       if (!unattended) {
+               // Read the license file.
+               if (!(copying = fopen(LICENSE_FILE, "r"))) {
+                       sprintf(discl_msg, "Could not open license file: %s\n", LICENSE_FILE);
+                       fprintf(flog, discl_msg);
+               } else {
+                       fread(discl_msg, 1, 40000, copying);
+                       fclose(copying);
+
+                       if (disclaimerbox(discl_msg)==0) {
+                               errorbox(ctr[TR_LICENSE_NOT_ACCEPTED]);
+                               goto EXIT;
+                       }
+               }
+       }
+
        i = 0;
        while (found == 0) {
                i++;
@@ -510,6 +512,15 @@ int main(int argc, char *argv[])
 
        system("/bin/sed -e 's#/harddisk#/#g' -e 's#//#/#g'  < /proc/mounts > /harddisk/etc/mtab");
 
+       /*
+        * Generate device.map to help grub finding the device to install itself on.
+        */
+       FILE *f = NULL;
+       if (f = fopen("/harddisk/boot/grub/device.map", "w")) {
+               fprintf(f, "(hd0) %s\n", hdparams.devnode_part);
+               fclose(f);
+       }
+
        snprintf(commandstring, STRING_SIZE, 
                 "/usr/sbin/chroot /harddisk /usr/sbin/grub-install --no-floppy %s", hdparams.devnode_disk);
        if (runcommandwithstatus(commandstring, ctr[TR_INSTALLING_GRUB])) {