#include "guestfs-internal-actions.h"
#include "guestfs_protocol.h"
-static const char *kernel_name = "vmlinuz." REPO "." host_cpu;
-static const char *initrd_name = "initramfs." REPO "." host_cpu ".img";
+static const char *kernel_name = "vmlinuz." host_cpu;
+static const char *initrd_name = "initramfs." host_cpu ".img";
static int find_path (guestfs_h *g, int (*pred) (guestfs_h *g, const char *pelem, void *data), void *data, char **pelem);
static int dir_contains_file (const char *dir, const char *file);
snprintf (cmd, len,
"febootstrap-supermin-helper%s "
"-f checksum "
- "-k '%s/kmod.whitelist' "
"'%s/supermin.d' "
host_cpu,
g->verbose ? " --verbose" : "",
- supermin_path,
supermin_path);
if (g->verbose)
const char *supermin_path, const char *checksum,
char **kernel, char **initrd, char **appliance)
{
- const char *tmpdir = guestfs___tmpdir ();
+ const char *tmpdir = guestfs_tmpdir ();
size_t len = strlen (tmpdir) + strlen (checksum) + 2;
char cachedir[len];
if (g->verbose)
guestfs___print_timestamped_message (g, "begin building supermin appliance");
- const char *tmpdir = guestfs___tmpdir ();
+ const char *tmpdir = guestfs_tmpdir ();
size_t cdlen = strlen (tmpdir) + strlen (checksum) + 2;
char cachedir[cdlen];
snprintf (cachedir, cdlen, "%s/%s", tmpdir, checksum);
run_supermin_helper (guestfs_h *g, const char *supermin_path,
const char *cachedir, size_t cdlen)
{
+ size_t pathlen = strlen (supermin_path);
+
+ const char *argv[30];
+ size_t i = 0;
+
+ char supermin_d[pathlen + 32];
+ snprintf (supermin_d, pathlen + 32, "%s/supermin.d", supermin_path);
+ char kernel[cdlen + 32];
+ snprintf (kernel, cdlen + 32, "%s/kernel", cachedir);
+ char initrd[cdlen + 32];
+ snprintf (initrd, cdlen + 32, "%s/initrd", cachedir);
+ char root[cdlen + 32];
+ snprintf (root, cdlen + 32, "%s/root", cachedir);
+
+ argv[i++] = "febootstrap-supermin-helper";
+ if (g->verbose)
+ argv[i++] = "--verbose";
+ argv[i++] = "-f";
+ argv[i++] = "ext2";
+ argv[i++] = supermin_d;
+ argv[i++] = host_cpu;
+ argv[i++] = kernel;
+ argv[i++] = initrd;
+ argv[i++] = root;
+ argv[i++] = NULL;
+
pid_t pid = fork ();
if (pid == -1) {
perrorf (g, "fork");
}
if (pid > 0) { /* Parent. */
+ if (g->verbose)
+ guestfs___print_timestamped_argv (g, argv);
+
int status;
if (waitpid (pid, &status, 0) == -1) {
perrorf (g, "waitpid");
}
}
}
-
- size_t pathlen = strlen (supermin_path);
-
- const char *argv[30];
- size_t i = 0;
-
- argv[i++] = "febootstrap-supermin-helper";
- if (g->verbose)
- argv[i++] = "--verbose";
- argv[i++] = "-f";
- argv[i++] = "ext2";
- argv[i++] = "-k";
- char whitelist[pathlen + 32];
- snprintf (whitelist, pathlen + 32, "%s/kmod.whitelist", supermin_path);
- argv[i++] = whitelist;
- char supermin_d[pathlen + 32];
- snprintf (supermin_d, pathlen + 32, "%s/supermin.d", supermin_path);
- argv[i++] = supermin_d;
- argv[i++] = host_cpu;
- char kernel[cdlen + 32];
- snprintf (kernel, cdlen + 32, "%s/kernel", cachedir);
- argv[i++] = kernel;
- char initrd[cdlen + 32];
- snprintf (initrd, cdlen + 32, "%s/initrd", cachedir);
- argv[i++] = initrd;
- char root[cdlen + 32];
- snprintf (root, cdlen + 32, "%s/root", cachedir);
- argv[i++] = root;
- argv[i++] = NULL;
-
execvp ("febootstrap-supermin-helper", (char * const *) argv);
perror ("execvp");
_exit (EXIT_FAILURE);