[go: up one dir, main page]

Skip to content

Tags

Tags give the ability to mark specific points in history as being important
  • proot-v2.1.0

    24037c59 · Prepare release v2.1. ·
    Release v2.1
    ============
    
    New features
    ------------
    
    * PRoot can now emulate some of the syscalls that are available in the
      kernel release specified by -k but that are missing in the host
      kernel.  This allows the execution of guest programs expecting a
      kernel newer than the actual one, if you encountered the famous
      "FATAL: kernel too old" or "qemu: Unsupported syscall" messages.
    
    * The current working directory isn't changed anymore if it is still
      accessible in the guest environment (binding).
    
    Fixes
    -----
    
    * Added support for architectures with no misalignment support (SH4).
    
    * Fix support for: link(2), linkat(2), symlink(2), and symlinkat(2).
    
  • v2.1

    24037c59 · Prepare release v2.1. ·
    Release v2.1
    ============
    
    New features
    ------------
    
    * PRoot can now emulate some of the syscalls that are available in the
      kernel release specified by -k but that are missing in the host
      kernel.  This allows the execution of guest programs expecting a
      kernel newer than the actual one, if you encountered the famous
      "FATAL: kernel too old" or "qemu: Unsupported syscall" messages.
    
    * The current working directory isn't changed anymore if it is still
      accessible in the guest environment (binding).
    
    Fixes
    -----
    
    * Added support for architectures with no misalignment support (SH4).
    
    * Fix support for: link(2), linkat(2), symlink(2), and symlinkat(2).
    
  • proot-v2.0.1

    4d148c2b · Prepare release v2.0.1. ·
    Release v2.0.1
    ==============
    
    * Fix a compatibility issue with QEMU v1.1
    
    * Fix the initialization of bindings that point to "/proc/self".
    
    These problems were reported by Alkino:
    
        https://github.com/cedric-vincent/PRoot/issues/3
    
  • v2.0.1

    4d148c2b · Prepare release v2.0.1. ·
    Release v2.0.1
    ==============
    
    * Fix a compatibility issue with QEMU v1.1
    
    * Fix the initialization of bindings that point to "/proc/self".
    
    These problems were reported by Alkino:
    
        https://github.com/cedric-vincent/PRoot/issues/3
    
  • proot-v2.0.0

    2c387293 · Prepare release v2.0. ·
    Release v2.0
    ============
    
    New features
    ------------
    
    * There's now a specific support to handle special symlinks in /proc.
      As of now, only the following ones are correctly handled:
    
          * /proc/self, it was already supported previously but now this
            is done consistently (i.e. not a hack);
    
          * /proc/<PID>/exe, for any <PID> monitored by PRoot; and
    
          * /proc/<PID>/fd/<FD>.
    
    * The list of supported syscalls was updated, as of Linux 3.4.1.
    
    Command-line interface changes
    ------------------------------
    
    * The path to the guest rootfs can now be specified by the new
      -r/--rootfs option.  This permits the use of shell aliases, for
      example:
    
          $ alias armedslack='proot -Q qemu-arm -r /path/to/armedslack'
          $ armedslack -v 1 -b ~/arm_cpuinfo:/proc/cpuinfo
    
      That wasn't possible previously because the path to the guest rootfs
      had to be the last option.
    
    * The -v/--verbose option now takes a parameter, and a negative
      integer makes PRoot quiet except on fatal errors.
    
    * The -h/--help option now prints a detailed message.
    
    * The -V/--version and -h/--help options now exit with success.
    
    Fix
    ---
    
    * Return correct errno if a non-final path component isn't a directory
      nor a symlink.
    
    * Fix the insertion of an item in the list of host/guest bindings.
    
    Internal changes
    ----------------
    
    This section is dedicated to PRoot developers.
    
    * File-system information is now inherited from a traced process to
      its children.  This permits the emulation of symlinks in /proc/self:
      cmdline, exe, cwd, root, ...
    
    * The execution of QEMU is now fully confined to the virtual rootfs
      namespace: it now relies on the "mixed-execution" feature, just like
      a regular host program.
    
  • v2.0

    2c387293 · Prepare release v2.0. ·
    Release v2.0
    ============
    
    New features
    ------------
    
    * There's now a specific support to handle special symlinks in /proc.
      As of now, only the following ones are correctly handled:
    
          * /proc/self, it was already supported previously but now this
            is done consistently (i.e. not a hack);
    
          * /proc/<PID>/exe, for any <PID> monitored by PRoot; and
    
          * /proc/<PID>/fd/<FD>.
    
    * The list of supported syscalls was updated, as of Linux 3.4.1.
    
    Command-line interface changes
    ------------------------------
    
    * The path to the guest rootfs can now be specified by the new
      -r/--rootfs option.  This permits the use of shell aliases, for
      example:
    
          $ alias armedslack='proot -Q qemu-arm -r /path/to/armedslack'
          $ armedslack -v 1 -b ~/arm_cpuinfo:/proc/cpuinfo
    
      That wasn't possible previously because the path to the guest rootfs
      had to be the last option.
    
    * The -v/--verbose option now takes a parameter, and a negative
      integer makes PRoot quiet except on fatal errors.
    
    * The -h/--help option now prints a detailed message.
    
    * The -V/--version and -h/--help options now exit with success.
    
    Fix
    ---
    
    * Return correct errno if a non-final path component isn't a directory
      nor a symlink.
    
    * Fix the insertion of an item in the list of host/guest bindings.
    
    Internal changes
    ----------------
    
    This section is dedicated to PRoot developers.
    
    * File-system information is now inherited from a traced process to
      its children.  This permits the emulation of symlinks in /proc/self:
      cmdline, exe, cwd, root, ...
    
    * The execution of QEMU is now fully confined to the virtual rootfs
      namespace: it now relies on the "mixed-execution" feature, just like
      a regular host program.
    
  • proot-v1.9.0

    891caf2e · Prepare release v1.9. ·
    Release v1.9
    ============
    
    Fixes
    -----
    
    * Be as transparent as possible with respect to SIGSTOP and SIGTRAP
      signals.  For instance, the Open POSIX Test Suite now reports the
      same level of success whether it is run under PRoot or not (it
      depends on the kernel version though).
    
    * Ignore terminating signals and kill all tracees on abnormal
      termination signals (^\, segmentation fault, divide by zero, ...).
      This ensures no tracee will stay alive without being monitored
      anymore.
    
    * Force utsname.machine to "i686" -- instead of "i386" -- for 32-bit
      programs running on x86_64 systems.  This improves the compatibility
      with package managers that deduce the current architecture from
      `uname -m`.
    
    * Fix x86_64 support for linkat() and fchownat().
    
    * Fix mixed-execution support, LD_LIBRARY_PATH was defined twice for
      host programs.
    
  • v1.9

    891caf2e · Prepare release v1.9. ·
    Release v1.9
    ============
    
    Fixes
    -----
    
    * Be as transparent as possible with respect to SIGSTOP and SIGTRAP
      signals.  For instance, the Open POSIX Test Suite now reports the
      same level of success whether it is run under PRoot or not (it
      depends on the kernel version though).
    
    * Ignore terminating signals and kill all tracees on abnormal
      termination signals (^\, segmentation fault, divide by zero, ...).
      This ensures no tracee will stay alive without being monitored
      anymore.
    
    * Force utsname.machine to "i686" -- instead of "i386" -- for 32-bit
      programs running on x86_64 systems.  This improves the compatibility
      with package managers that deduce the current architecture from
      `uname -m`.
    
    * Fix x86_64 support for linkat() and fchownat().
    
    * Fix mixed-execution support, LD_LIBRARY_PATH was defined twice for
      host programs.
    
  • proot-v1.8.4

    Release v1.8.4
    ==============
    
    New feature
    -----------
    
    * The -0 option now fakes success on ``chroot("/")``.  This feature is
      required by some guest package managers, like ``pacman`` -- the Arch
      Linux Package Manager.
    
    Fix
    ---
    
    * Nested bindings are now correctly supported.  For example with these
      bindings -- nested from the host point-of-view::
    
          host$ proot -b /:/host-rootfs -b /tmp ...
          guest$ ln -s /tmp/bar /tmp/foo
          # ... points to "/tmp/bar" instead of "/host-rootfs/tmp/bar"
    
      and with these bindings -- nested from the guest point-of-view::
    
          host$ proot -b /bin -b /usr/bin/find:/bin/find ...
          guest$ /bin/find
          # ... works instead of "no such file or directory"
    
    Internal changes
    ----------------
    
    This section is dedicated to PRoot developpers.
    
    * Functions to compare two pathes (equal, prefix, not comparable, ...)
      are now available, at last.
    
    * The "ignore ELF interpreter" option can be (dis|en)able with the
      ``PROOT_IGNORE_ELF_INTERPRETER`` environment variable and/or with
      the ``config.ignore_elf_interpreter`` internal variable.
    
  • v1.8.4

    Release v1.8.4
    ==============
    
    New feature
    -----------
    
    * The -0 option now fakes success on ``chroot("/")``.  This feature is
      required by some guest package managers, like ``pacman`` -- the Arch
      Linux Package Manager.
    
    Fix
    ---
    
    * Nested bindings are now correctly supported.  For example with these
      bindings -- nested from the host point-of-view::
    
          host$ proot -b /:/host-rootfs -b /tmp ...
          guest$ ln -s /tmp/bar /tmp/foo
          # ... points to "/tmp/bar" instead of "/host-rootfs/tmp/bar"
    
      and with these bindings -- nested from the guest point-of-view::
    
          host$ proot -b /bin -b /usr/bin/find:/bin/find ...
          guest$ /bin/find
          # ... works instead of "no such file or directory"
    
    Internal changes
    ----------------
    
    This section is dedicated to PRoot developpers.
    
    * Functions to compare two pathes (equal, prefix, not comparable, ...)
      are now available, at last.
    
    * The "ignore ELF interpreter" option can be (dis|en)able with the
      ``PROOT_IGNORE_ELF_INTERPRETER`` environment variable and/or with
      the ``config.ignore_elf_interpreter`` internal variable.
    
  • proot-v1.8.3

    0aad0891 · Update the roadmap. ·
    Release v1.8.3
    ==============
    
    New features
    ------------
    
    * The -0 option now fakes success on ownership changes.  This improves
      the compatibility with package managers that abort if ``chown(2)``
      fails.  Note that this is quite limited compared to ``fakeroot``.
    
    * Force utsname.machine to "i386" for 32-bit programs running on
      x86_64 systems.  This improves the compatibility with package
      managers that deduce the current architecture from `uname -m`.
    
    Fixes
    -----
    
    * Fix a regression regarding the concatenation of the ``..`` with a
      path ending with ``.``.  For intance you can now do ``ls foo`` where
      ``foo`` is a symbolic link to ``/bar/.``.
    
    * Don't return an error if the specified size for ``getcwd(2)`` and
      ``readlink(2)`` is greater than PATH_MAX.  Technically the result
      may likely be shorter than this limit.
    
  • v1.8.3

    0aad0891 · Update the roadmap. ·
    Release v1.8.3
    ==============
    
    New features
    ------------
    
    * The -0 option now fakes success on ownership changes.  This improves
      the compatibility with package managers that abort if ``chown(2)``
      fails.  Note that this is quite limited compared to ``fakeroot``.
    
    * Force utsname.machine to "i386" for 32-bit programs running on
      x86_64 systems.  This improves the compatibility with package
      managers that deduce the current architecture from `uname -m`.
    
    Fixes
    -----
    
    * Fix a regression regarding the concatenation of the ``..`` with a
      path ending with ``.``.  For intance you can now do ``ls foo`` where
      ``foo`` is a symbolic link to ``/bar/.``.
    
    * Don't return an error if the specified size for ``getcwd(2)`` and
      ``readlink(2)`` is greater than PATH_MAX.  Technically the result
      may likely be shorter than this limit.
    
  • proot-v1.8.2

    Release v1.8.2
    ==============
    
    * This is the first public release of PRoot, it's time to increase its
      maturity artificially ...  Actually it's an homage to Blink 182 ;)
    
    * User manual finally published.
    
    * PRoot can now *mix* the execution of host programs and the execution
      of guest programs emulated by QEMU.  This is useful to use programs
      that aren't available initially in the guest environment and to
      speed up build-time by using cross-compilation tools or any CPU
      independent program, like interpreters.
    
    * Absolute symlinks from bound directories that point to any bound
      directory are kept consistent: for example, given the host symlink
      ``/bin/sh -> /bin/bash``, and given the command-line option ``-b
      /bin:/foo``, the symlink will appeared as ``/foo/sh -> /foo/bash``.
    
    * Three command-line options are gone:
    
      * ``-p`` (don't block the ptrace syscall) wasn't really useful.
    
      * ``-e`` (don't use the ELF interpreter) isn't required anymore.
    
      * ``-a`` (disable the ASLR mechanism) is now the default.
    
    * Don't complain anymore when parent directories of a *recommended
      binding* (as enabled by ``-B``, ``-M`` and ``-Q`` options) can't be
      created.
    
    * Support job control under ptrace as introduced in Linux 3.0+.
    
    * ``LD_`` environment variables are now passed to the QEMUlated
      program, not to QEMU itself.  It means ``ldd`` works (there's a bug
      in QEMU/ARM though).
    
    * Many fixes and improved compatibility thanks to the Open Build
      Service instantiated at http://build.opensuse.com
    
    * Note: v0.7.1 was an experimental release.
    
  • v1.8.2

    Release v1.8.2
    ==============
    
    * This is the first public release of PRoot, it's time to increase its
      maturity artificially ...  Actually it's an homage to Blink 182 ;)
    
    * User manual finally published.
    
    * PRoot can now *mix* the execution of host programs and the execution
      of guest programs emulated by QEMU.  This is useful to use programs
      that aren't available initially in the guest environment and to
      speed up build-time by using cross-compilation tools or any CPU
      independent program, like interpreters.
    
    * Absolute symlinks from bound directories that point to any bound
      directory are kept consistent: for example, given the host symlink
      ``/bin/sh -> /bin/bash``, and given the command-line option ``-b
      /bin:/foo``, the symlink will appeared as ``/foo/sh -> /foo/bash``.
    
    * Three command-line options are gone:
    
      * ``-p`` (don't block the ptrace syscall) wasn't really useful.
    
      * ``-e`` (don't use the ELF interpreter) isn't required anymore.
    
      * ``-a`` (disable the ASLR mechanism) is now the default.
    
    * Don't complain anymore when parent directories of a *recommended
      binding* (as enabled by ``-B``, ``-M`` and ``-Q`` options) can't be
      created.
    
    * Support job control under ptrace as introduced in Linux 3.0+.
    
    * ``LD_`` environment variables are now passed to the QEMUlated
      program, not to QEMU itself.  It means ``ldd`` works (there's a bug
      in QEMU/ARM though).
    
    * Many fixes and improved compatibility thanks to the Open Build
      Service instantiated at http://build.opensuse.com
    
    * Note: v0.7.1 was an experimental release.
    
  • proot-v0.7.0

    Release v0.7.0
    ==============
    
    * Search the guest program in $PATH relatively to the guest rootfs,
      for instance you can now just write::
    
          proot /path/to/guest/rootfs/  perl
    
      instead of::
    
          proot /path/to/guest/rootfs/  /usr/bin/perl
    
    * The command-line interface was re-written from scratch, the only
      incompatible change is that QEMU options are now separated by
      spaces::
    
         proot -Q "qemu-arm -g 1234" ...
    
      instead of::
    
         proot -Q qemu-arm,-g,1234 ...
    
    * New option "-0": force syscalls "get*id" to report identity 0, aka
      "root".
    
    * Many fixes, code refactoring, new testing framework, ...
    
    Special thanks to Claire ROBINE for her contribution.
    
  • v0.7.0

    Release v0.7.0
    ==============
    
    * Search the guest program in $PATH relatively to the guest rootfs,
      for instance you can now just write::
    
          proot /path/to/guest/rootfs/  perl
    
      instead of::
    
          proot /path/to/guest/rootfs/  /usr/bin/perl
    
    * The command-line interface was re-written from scratch, the only
      incompatible change is that QEMU options are now separated by
      spaces::
    
         proot -Q "qemu-arm -g 1234" ...
    
      instead of::
    
         proot -Q qemu-arm,-g,1234 ...
    
    * New option "-0": force syscalls "get*id" to report identity 0, aka
      "root".
    
    * Many fixes, code refactoring, new testing framework, ...
    
    Special thanks to Claire ROBINE for her contribution.