]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/install+setup/install/main.c
Add license dialog to the installer.
[people/pmueller/ipfire-2.x.git] / src / install+setup / install / main.c
index a46de921f70bebbe9aafd46712c3c97f5a42d578..dc3ac1934029f7be773e966de70af2eedba719e5 100644 (file)
@@ -35,6 +35,9 @@ extern char *fr_tr[];
 
 int main(int argc, char *argv[])
 {
+
+       char discl_msg[40000] = "Disclaimer\n";
+
        char *langnames[] = { "Deutsch", "English", "Français", "Español", NULL };
        char *shortlangnames[] = { "de", "en", "fr", "es", NULL };
        char **langtrs[] = { de_tr, en_tr, fr_tr, es_tr, NULL };
@@ -57,7 +60,7 @@ int main(int argc, char *argv[])
        int allok_fastexit=0;
        int raid_disk = 0;
        struct keyvalue *ethernetkv = initkeyvalues();
-       FILE *handle, *cmdfile;
+       FILE *handle, *cmdfile, *copying;
        char line[STRING_SIZE];
        char string[STRING_SIZE];
        long memory = 0, disk = 0, free;
@@ -108,6 +111,16 @@ 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
@@ -135,6 +148,13 @@ int main(int argc, char *argv[])
        sprintf(message, ctr[TR_WELCOME], NAME);
        newtWinMessage(title, ctr[TR_OK], message);
 
+       if (!unattended) {
+               if (disclaimerbox(discl_msg)==0) {
+                       errorbox(ctr[TR_LICENSE_NOT_ACCEPTED]);
+                       goto EXIT;
+               }
+       }
+
        switch (mysystem("/bin/mountsource.sh")) {
            case 0:
                                break;