| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
The overhead is now 66 MB which is unfortunate. However 4 GB should
be enough for people who accidentally add kernel modules that are
hand-compiled with all the debuginfo information in them.
|
|
|
|
|
|
|
|
|
|
|
| |
The appliance root was 1GB. However the error message you got
if you overran this space was very obscure:
febootstrap-supermin-helper: ext2fs_file_write:
Could not allocate block in ext2 filesystem
This adds the name of the file that is failing, and replaces the error
message with something more meaningful.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Latest gcc (4.6.0) does not recognize the -all-static
option; see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46410
Using -static still results in a static init binary:
$ file helper/init
helper/init: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.32, stripped
$ ldd helper/init
not a dynamic executable
(cherry picked from commit 42a6e60307b8116dd888e9dae4960f12d895f73f)
|
|
|
|
|
| |
ArchLinux doesn't use the ordinary Linux kernel naming scheme.
(Thanks Thomas S Hatch for helping to diagnose the issue)
|
|
|
|
|
| |
Variation in the times of /dev/ptmx was causing the
appliance to be rebuilt too frequently.
|
| |
|
| |
|
|
|
|
|
| |
This is not packaged on Debian/Ubuntu, but we require it. Fail
with a useful error message if it is not available.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This complete rewrite of the building tools turns febootstrap
into a general purpose, cross-distro, supermin appliance only
build tool.
There is now only one program 'febootstrap' which is used to
build a supermin appliance from a list of packages.
Normal appliances are not supported.
The tools are incompatible with febootstrap 2.x (use the
febootstrap-2.x branch from git to get the old package).
|
|
|
|
|
|
|
|
|
| |
We weren't expanding ext2 directories and as a result we could
hit a limit when the directory grows larger than one block.
Note that this fix only applies for creating subdirectories.
For creating files (ie. ext2fs_link) we were already doing the
right thing.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bash automatically resets euid to uid when it executes. This means that the
effective user id of a program at the point it calls febootstrap-supermin-helper
will be lost if any part of execution chain involved bash. This in turn can
result in:
* the generation of an incorrect checksum, which contains the uid.
* the generation of supermin files with a mixture of owners
The -u and -g options allow the caller to pass in an explicit user and group to
run as. febootstrap-supermin-helper will set(u|g)id as appropriate.
|
|
|
|
|
| |
If usage information is displayed because of an error, it should go to stderr.
If it is displayed because the -h option was given it should go to stdout.
|
|
|
|
|
|
|
| |
Recent state of the elf-default-arch script and the hardcoded i386 arch doesn't
allow building on other arches than ix86 or x86_64. See attachment for a fix.
Can be easily extended to support additional secondary arches by adding new
patterns to the elf-default-arch script
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously in febootstrap-supermin-helper we would visit the
files in supermin.d in arbitrary (ie. readdir) order. This has
caused a series of heisenbugs where some implicit dependency
between these files has not been honoured. The latest one is
that '/etc/localtime' can be added to the appliance before '/etc'
has been created (and this operation fails).
Instead of continuing to chase these, this commit forces us to
visit the files in filename order by sorting them before visiting
them.
Note that in libguestfs, the current order is sufficient, because
the files are called:
base.img
daemon.img
hostfiles
|
| |
|
| |
|
|
|
|
|
|
| |
Use the -k whitelist option to get a kernel whitelist.
This is a bug in current febootstrap-supermin-helper.
|
|
|
|
|
|
| |
This option doesn't work yet. The commit is just for adding the
capability to pass the extra kernel/initrd/appliance parameters
through 'main.c' and 'appliance.c'.
|
|
|
|
| |
Only -f cpio is permitted by this commit.
|
|
|
|
|
|
|
|
|
| |
We create a 'writer' abstraction and (currently) a single implementation
of this which can write cpio files. All cpio-related code is moved
out of 'appliance.c' into 'cpio.c'. 'appliance.c' becomes a generic
appliance builder.
This commit should not change the semantics of the program.
|
|
|
|
|
|
| |
We are going to be writing a general appliance, not necessarily
an initrd. In the ext2 appliance case we will _also_ write an
initrd, so we shouldn't confuse the two things.
|
|
|
|
| |
This is just code movement. There is no change to the code.
|
|
This will allow us to split up the monolithic C program into
separate files for ease of modification.
This patch is just file rearrangement.
|