Skip to content
Release v2.4
============

New architectures
-----------------

* PRoot now works natively on Linux ARM64 systems (a.k.a AArch64).
  Note that PRoot/AArch64 doesn't support 32-bit binaries yet.

* PRoot/x86_64 now supports x32 binaries/rootfs.

Fixes
-----

* Paths from Unix domain sockets are now translated.  For example, it
  wasn't possible previously to use "tmux" in the guest rootfs if
  another instance were running in the host rootfs.

* When a host path is bound to a nonexistent guest path, PRoot tries
  to create this latter in the guest rootfs, for some technical
  reasons.  Previously, this "dummy" guest path was created with RWX
  permissions but this might cause troubles when re-using the rootfs
  for other purpose.  Now, this "dummy" guest path is created with
  minimal permissions, and it is also possible to avoid its creation
  by defining the PROOT_DONT_POLLUTE_ROOTFS environment variable.

Command-line interface changes
------------------------------

* The directory "/run" is removed from the list of recommended
  bindings (-B option) because this creates to much conflicts with
  programs that write in the "/run/var" directory.

* The -0 option now makes user's files appear as if they were actually
  owned by root, and it also fakes the success of any mode changes
  (chmod* syscalls).  This is typically useful to create packages
  where the files belong to the root user (it's almost always the
  case).

Internal changes
----------------

* PRoot should be even more portable now.  For instance, there's no
  need to worry about syscallee-saved registers anymore.

Thanks
------

This release was made possible thanks to, in no special order: Yvan
Roux, Jerôme Audu, Heehooman, Yann Droneaud, and James Le Cuirot.  See
"git log" for details.

Validation
----------

All the packages were built successfully on OBS.  The following tests
were ran on Slackware64 14.0 (and "current-130312" for x32) with QEMU
1.4.0.

=====================  ===========  =================  ==================
Guest distro           Options            Testsuite          Failures
=====================  ===========  =================  ==================
Slackware64 14.0                    PRoot-v2.4         OK
Slackware64 14.0       memcheck     PRoot-v2.4         OK
STLinux 2.4 SH4                     smoke tests        OK
Ubuntu 10.10 ARM                    PRoot-v2.4         OK
OpenEmbedded AArch64                smoke tests        OK
Slackware64 14.0       -r /         Perl 5.16.1        OK  2/2189  [1]_
Slackware64 14.0       -k 3.2.29    Perl 5.16.1        OK  2/2189  [1]_
Slackware 14.0 i486    -B           Perl 5.16.1        OK  3/2188  [2]_
Gentoo 20130130 x32    -B           Perl 5.16.1        OK  3/2188  [2]_
Slackware 14.0 ARM     -Q qemu-arm  Perl 5.16.1        OK  3/2188  [2]_
Slackware64 14.0       -r /         CoreUtils 8.19     OK  5/491   [3]_
Slackware64 14.0       -k 3.2.29    CoreUtils 8.19     OK  5/491   [3]_
Slackware 14.0 ARM     -Q qemu-arm  CoreUtils 8.19     OK  12/491  [4]_
Slackware64 14.0       -r /         POSIX tests 1.5.1  OK  same as native
Slackware 14.0 i486    -B           POSIX tests 1.5.1  OK  same as v2.3.1
Slackware 14.0 ARM     -Q qemu-arm  POSIX tests 1.5.1  OK  same as v2.3.1
=====================  ===========  =================  ==================

.. [1] not a regression: cpan/File-Path/t/Path.t,
       dist/ExtUtils-Command/t/eu_command.t

.. [2] not a regression: op/magic.t + [1]

.. [3] not a regression: install/basic-1, mkdir/p-3, readlink/can-e,
       readlink/can-f, readlink/can-m

.. [4] not a regression: misc/ls-misc, misc/printenv, split/fail,
       misc/stty, df/total-unprocessed, dd/skip-seek,
       dd/skip-seek-past-file, + [3]_