Changes between Version 2 and Version 3 of CrossShell

Show
Ignore:
Timestamp:
2009-03-09 19:04:56 (18 months ago)
Author:
dottedmag
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • CrossShell

    v2 v3  
    11= `cross-shell` = 
    22 
    3 cross-shell is a tool invented in SLIND project, which creates rootfs without using qemu or other emulator, via ugly, but amazing hack: using ''shadow'' rootfs generated for host architecture to run scripts during installation of packages to rootfs for target architecture. 
     3== Purpose == 
    44 
    5 Description at [https://www.slind.org/Documentation:Internals_Guide SLIND wiki]. 
     5cross-shell creates rootfs for non-native CPU architectures without using qemu or other emulator. 
     6 
     7== Principle of operation == 
     8 
     9In order to run maintainer scripts during generation of rootfs, ''shadow'' rootfs for the native CPU architecture is generated. Binaries from this shadow rootfs are used when some program is about to run during generation of target rootfs. 
     10 
     11== Implementation == 
     12 
     13 * `cross-shell` package. Contains `cross-bs(1)` and `cross-shell(1)`, for bootstrapping and running programs in target rootfs. 
     14 * `libfakechroot-cross` package. Contains `libfakechroot-cross.so` library, which adjusts paths in many system calls and executes proper binaries, by using `LD_PRELOAD` mechanism. 
     15 
     16Unfortunately, this approach needs the support in other packages as well: 
     17 * `glibc` need to be patched (`debian/patches/any/rtld-allow-specifying-argv0.diff`) in order to be able to run foreign binaries correctly. See the `src/execve.c` in fakechroot-cross source code. 
     18 * `dpkg` need to be patched (`debian/patches/02-cross-shell-architecture-override.patch`), as dpkg's architecture is compiled in during build time, so it needs to be explicitly overriden. 
     19 
     20More information is at [https://www.slind.org/Documentation:Internals_Guide SLIND wiki].