Add TODO file.
[febootstrap.git] / helper / febootstrap-supermin-helper.pod
index 7a3dbd1..6c797cb 100644 (file)
@@ -9,12 +9,13 @@ febootstrap-supermin-helper - Reconstruct initramfs from supermin appliance.
 
  febootstrap-supermin-helper -f ext2 input [...] host_cpu kernel initrd appliance
 
+ febootstrap-supermin-helper -f checksum input [...] host_cpu
+
 =head1 DESCRIPTION
 
 I<febootstrap-supermin-helper> reconstructs a bootable kernel and
 initramfs from a supermin appliance.  First you should be familiar
-with L<febootstrap(8)>, L<febootstrap-to-initramfs(8)> and
-L<febootstrap-to-supermin(8)>.
+with L<febootstrap(8)>.
 
 =head1 PARAMETERS
 
@@ -31,13 +32,16 @@ C<kernel>, C<initrd> and C<appliance> are the temporary output files
 that this script produces.  These output files are meant to be used
 just for booting the appliance, and should be deleted straight
 afterwards.  The extra C<appliance> parameter is only required when
-the format is C<ext2>.
+the format is C<ext2>.  None of these parameters are needed for
+the checksum output C<-f checksum>.
 
 =head1 OPTIONS
 
 =over 4
 
-=item B<-f fmt> | B<--format fmt>
+=item B<-f fmt>
+
+=item B<--format fmt>
 
 Select the output format for the appliance.  Possible formats are:
 
@@ -54,13 +58,28 @@ and C<initrd>, where the C<initrd> is the appliance.
 
 An ext2 filesystem.
 
-In this case you have to supply names for the C<kernel>,
-a small C<initrd> which is used just to locate the appliance,
-and the C<appliance> (the ext2 filesystem).
+In this case you have to supply names for the C<kernel>, a small
+C<initrd> which is used just to locate the appliance, and the
+C<appliance> (the ext2 filesystem).
+
+=item checksum
+
+Output a checksum.
+
+This prints a checksum which only changes when one of the input files
+changes.
+
+You can use this in order to cache the output of a previous run of
+this program: computing the checksum is much quicker than building an
+appliance, and you only need to invalidate the cache (and consequently
+rebuild the appliance) when the checksum changes.  Note that the
+host_cpu and the UID of the current user are included in the checksum.
 
 =back
 
-=item B<-k file> | B<--kmods file>
+=item B<-k file>
+
+=item B<--kmods file>
 
 If this option is specified, then C<file> should be a list of
 wildcards matching kernel module names, eg:
@@ -78,6 +97,25 @@ If this option is not specified, then every kernel module from the
 host will be included.  This is safer, but can produce rather large
 appliances which need a lot more memory to boot.
 
+=item B<-u user>
+
+=item B<--user user>
+
+=item B<-g group>
+
+=item B<--group group>
+
+Run febootstrap-supermin-helper as an alternate user and/or group.
+C<user> and C<group> can be specified as either a name, which will
+be resolved using the system name service, or a uid/gid.  Use of these
+options requires root privileges.
+
+Use of these options is required if running febootstrap-supermin-helper
+as root with the effective uid/gid set to non-root.  Bash will reset
+the effective uid/gid to the real uid/gid when invoked.  As
+febootstrap-supermin-helper uses bash in parts, this will result in the
+creation of an appliance with a mixture of ownerships.
+
 =back
 
 =head1 SPEED
@@ -100,17 +138,39 @@ list the kernel modules you really need.
 
 Minimize the appliance, removing as much extraneous junk as possible.
 
-As well as using L<febootstrap-minimize(8)> it is worth checking for
-anything that is not necessary for your particular application and
-removing it by hand.
+=back
+
+=head1 ENVIRONMENT VARIABLES
+
+=over 4
+
+=item FEBOOTSTRAP_KERNEL
+
+If this environment variable is set, then automatic selection of the
+kernel is bypassed and this kernel is used.
+
+The environment variable should point to a kernel file,
+eg. C</boot/vmlinuz-3.0.x86_64>
+
+The corresponding module path is guessed from the kernel name, but you
+can override that by setting C<FEBOOTSTRAP_MODULES>.
+
+=item FEBOOTSTRAP_MODULES
+
+If C<FEBOOTSTRAP_KERNEL> and C<FEBOOTSTRAP_MODULES> are both set, then
+automatic selection of the kernel is bypassed and the kernel and
+module path are set to these values.
+
+The environment variable should point to a module directory,
+eg. C</lib/modules/3.0.x86_64/>
+
+This has no effect if C<FEBOOTSTRAP_KERNEL> is not set.
 
 =back
 
 =head1 SEE ALSO
 
-L<febootstrap(8)>,
-L<febootstrap-to-initramfs(8)>,
-L<febootstrap-to-supermin(8)>.
+L<febootstrap(8)>.
 
 =head1 AUTHORS
 
@@ -118,7 +178,7 @@ Richard W.M. Jones <rjones @ redhat . com>
 
 =head1 COPYRIGHT
 
-(C) Copyright 2009-2010 Red Hat Inc.,
+(C) Copyright 2009-2011 Red Hat Inc.,
 L<http://people.redhat.com/~rjones/febootstrap>.
 
 This program is free software; you can redistribute it and/or modify