Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-tools.git;a=commitdiff;h=177e0e1490a8b2f8f8f3c4aa8e9e37182b90de5c

commit 177e0e1490a8b2f8f8f3c4aa8e9e37182b90de5c
Author: Miklos Vajna <vmik...@frugalware.org>
Date:   Thu Dec 9 03:08:58 2010 +0100

mkiso: add gui installer initrd to the menu

diff --git a/mkiso/boot.c b/mkiso/boot.c
index 1f895ee..b55d4b0 100644
--- a/mkiso/boot.c
+++ b/mkiso/boot.c
@@ -1,7 +1,7 @@
/*
*  boot.c
*
- *  Copyright (c) 2006 by Miklos Vajna <vmik...@frugalware.org>
+ *  Copyright (c) 2006, 2010 by Miklos Vajna <vmik...@frugalware.org>
*  parts are from gzip, Copyright (C) 1992-1993 by Jean-loup Gailly
*
*  This program is free software; you can redistribute it and/or modify
@@ -42,7 +42,7 @@ int gunzip_size(char *path)
return(LG(buf+4));
}

-int boot_size(char *root, char *kernel, char *initrd)
+int boot_size(char *root, char *kernel, char *initrd, char *ginitrd)
{
struct stat buf;
int ret;
@@ -52,9 +52,16 @@ int boot_size(char *root, char *kernel, char *initrd)
if(stat(path, &buf))
return(0);
ret = buf.st_size/1024;
+
snprintf(path, PATH_MAX, "%s/%s", root, initrd);
if(stat(path, &buf))
return(0);
ret += buf.st_size/1024;
+
+       snprintf(path, PATH_MAX, "%s/%s", root, ginitrd);
+       if(stat(path, &buf))
+               return(0);
+       ret += buf.st_size/1024;
+
return(ret);
}
diff --git a/mkiso/boot.h b/mkiso/boot.h
index 58354dd..4f6567b 100644
--- a/mkiso/boot.h
+++ b/mkiso/boot.h
@@ -1,7 +1,7 @@
/*
*  boot.h
*
- *  Copyright (c) 2006 by Miklos Vajna <vmik...@frugalware.org>
+ *  Copyright (c) 2006, 2010 by Miklos Vajna <vmik...@frugalware.org>
*
*  This program is free software; you can redistribute it and/or modify
*  it under the terms of the GNU General Public License as published by
@@ -20,4 +20,4 @@
*/

int gunzip_size(char *path);
-int boot_size(char *root, char *kernel, char *initrd);
+int boot_size(char *root, char *kernel, char *initrd, char *ginitrd);
diff --git a/mkiso/menu.c b/mkiso/menu.c
index 8f5d1f0..7110355 100644
--- a/mkiso/menu.c
+++ b/mkiso/menu.c
@@ -39,6 +39,7 @@ char *mkmenu(volume_t *volume)
FILE *fp;
char *kernel = detect_kernel(volume->arch);
char *ptr = g_strdup_printf("%s/boot/initrd-%s.img.gz", fst_root, volume->arch);
+       char *gptr = g_strdup_printf("%s/boot/initrd-%s-gui.img.gz", fst_root, 
volume->arch);
struct stat buf;

mkstemp(flist);
@@ -49,12 +50,14 @@ char *mkmenu(volume_t *volume)
"timeout=10\n");
if(!stat("/boot/grub/message", &buf))
fprintf(fp, "gfxmenu /boot/grub/message\n\n");
+
fprintf(fp, "title Frugalware %s (%s) - %s\n",
fst_ver, fst_codename, kernel);
fprintf(fp, "\tkernel /boot/vmlinuz-%s initrd=initrd-%s.img.gz load_ramdisk=1 
prompt_ramdisk=0 ramdisk_size=%d rw root=/dev/ram quiet\n",
kernel, volume->arch, gunzip_size(ptr)/1024);
fprintf(fp, "\tinitrd /boot/initrd-%s.img.gz\n",
volume->arch);
+
fprintf(fp, "title Frugalware %s (%s) - %s (vga fb)\n",
fst_ver, fst_codename, kernel);
fprintf(fp, "\tkernel /boot/vmlinuz-%s initrd=initrd-%s.img.gz load_ramdisk=1 
prompt_ramdisk=0 ramdisk_size=%d rw root=/dev/ram quiet vga=791\n",
@@ -62,8 +65,16 @@ char *mkmenu(volume_t *volume)
fprintf(fp, "\tinitrd /boot/initrd-%s.img.gz\n",
volume->arch);

+       fprintf(fp, "title Frugalware %s (%s) - %s (gui)\n",
+               fst_ver, fst_codename, kernel);
+       fprintf(fp, "\tkernel /boot/vmlinuz-%s initrd=initrd-%s-gui.img.gz 
load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=%d rw root=/dev/ram quiet\n",
+               kernel, volume->arch, gunzip_size(gptr)/1024);
+       fprintf(fp, "\tinitrd /boot/initrd-%s-gui.img.gz\n",
+               volume->arch);
+
fclose(fp);
free(ptr);
+       free(gptr);
free(kernel);
return(flist);
}
diff --git a/mkiso/mkiso.c b/mkiso/mkiso.c
index 0480948..7fc1798 100644
--- a/mkiso/mkiso.c
+++ b/mkiso/mkiso.c
@@ -1,7 +1,7 @@
/*
*  mkiso.c
*
- *  Copyright (c) 2006 by Miklos Vajna <vmik...@frugalware.org>
+ *  Copyright (c) 2006, 2007, 2008, 2010 by Miklos Vajna 
<vmik...@frugalware.org>
*
*  This program is free software; you can redistribute it and/or modify
*  it under the terms of the GNU General Public License as published by
@@ -260,7 +260,7 @@ int mkiso(volume_t *volume, int countonly, int stable, int 
dryrun)
int total=0, myvolume=1, bootsize;
char *fname=get_filename(fst_ver, volume->arch, volume->media, volume->serial);
char *label=get_label(fst_ver, volume->arch, volume->media, volume->serial);
-       char *flist, *cmdline = NULL, *ptr, *kptr = NULL, *iptr;
+       char *flist, *cmdline = NULL, *ptr, *kptr = NULL, *iptr, *giptr;
char cwd[PATH_MAX] = "";
FILE *fp;
char *menu = NULL, *bootmsg = NULL, *conf = NULL;
@@ -285,10 +285,13 @@ int mkiso(volume_t *volume, int countonly, int stable, 
int dryrun)
iso_add(dryrun, fp, kptr);
iptr = g_strdup_printf("boot/initrd-%s.img.gz", volume->arch);
iso_add(dryrun, fp, iptr);
+       giptr = g_strdup_printf("boot/initrd-%s-gui.img.gz", volume->arch);
+       iso_add(dryrun, fp, giptr);
// how many space is needed for the kernel & initrd?
-       bootsize = boot_size(fst_root, kptr, iptr);
+       bootsize = boot_size(fst_root, kptr, iptr, giptr);
free(kptr);
free(iptr);
+       free(giptr);
if (!strcmp(volume->arch, "i686") || !strcmp(volume->arch, "x86_64")) {
menu = mkmenu(volume);
iso_add(dryrun, fp, "boot/grub/message");
_______________________________________________
Frugalware-git mailing list
Frugalware-git@frugalware.org
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to