XX Xxx XXXX
- UNRELEASED
- New
statx(2)
function was added: glibc supports it since 2.28.
22 Mar 2019
- Fixed problem when tests couldn't be started with root user and glibc 2.28.
- Fixed problem with too verbose test for
debootstrap
(8) command. - Fixed problem with tests for
fts_*
functions when started onbtrfs
filesystem. - The
debootstrap
(8) command honorsFAKECHROOT_EXTRA_LIBRARY_PATH
environment variable too. - Workaround has been added for
systemd
package installed bydebootstrap
(8) command. - Better support for link-time optimizer. Run
./configure EXTRA_CFLAGS='-Wall -flto' EXTRA_LDFLAGS='-flto' AR=gcc-ar NM=gcc-nm RANLIB=gcc-ranlib
to use it.
17 Mar 2019
- The
fts64_*
functions were added: glibc supports them since 2.23. - The
renameat2
(2) function were added: glibc supports it since 2.28 andmv
command from coreutils 8.30 uses it. - The
chroot
(8) wrapper andfakechroot
(1) command can work with POSIX shell. - The
chroot
(8) wrapper allows to chroot into root directory. - The
chroot
(8) wrapper appends directories fromFAKECHROOT_EXTRA_LIBRARY_PATH
environment variable because some commands use runpath. The default value is/lib/systemd:/usr/lib/man-db
forsystemctl
(1) andman
(1) commands. - The
ldd
(1) wrapper doesn't lose a leading slash in absolute paths. - The
fakechroot
(1) command unsetsCDPATH
environment variable and swapslibfakeroot
andlibfakechroot
inLD_PRELOAD
environment variable if needed. - Can be compiled with gcc 7.1
-Wformat-truncation
. - Can be compiled with clang 5.0
-O2
and-std=c11
.
20 Nov 2016
- The
FAKECHROOT_EXCLUDE_PATH
list has to contain at most 100 elements. - The
env
(1) wrapper works with dash. - The
fakeroot
(1) works ifchroot
(8) is invoked twice. - Fixes were made for
chdir
(2). It was possible to change to a directory outside of fakechroot. - The
fakechroot
(1) command setsFAKECHROOT_CMD_ORIG
environment variable for wrapped command. - The
ldd
(1) wrapper distinguishes different paths with the same beginning. - The
ldd
(1) wrapper does not fail if the path is not existing outside fakechroot. - Can be compiled with clang 4.0.
26 Oct 2015
- The
fakechroot
(1) command accepts new option--bindir
. - The
chfn
(1) command runs correctly on Ubuntu vidid and Debian stretch. - The
env
(1) wrapper works correctly if there is variable with multilined content. - New functions
ldaddr
(3) anddl_iterate_phdr
(3) were added. Thedlopen
(3) function was fixed. Thejava
(1) command should work correctly. - New functions
posix_spawn
(3) andposix_spawnp
(3) were added. Some new applications likeclang
(1) should run properly. - Fixes were made for
lstat
(2) andlstat64
(2) functions. The ending slash is not removed by normalization of a path name. - Fixes were made for
readlink
(2) function. Thefakechroot
(1) command runs properly withlibjemalloc
library. - The tilde
~
character inFAKECHROOT_*
variables is not expanded anymore. - Fixes were made for
getpeeraddr
(3) andgetsockaddr
(3) functions.
24 Dec 2013
- Fixes were made for
fakechroot
(1) command with-h
option. - The path for function
chroot
(2) is sanitized so it works correctly when path is ended with/
. - The
make -n test
was fixed and doesn't call any command.
5 Dec 2013
- The
fakechroot
(1) command runs proper wrapper rather than original command, if it is listed onFAKECHROOT_CMD_SUBST
variable. - Fixes were made for
chroot
(8) wrapper. It scanned /etc/ld.so.conf incorrectly and now enters to physical path, avoiding symlinks. - The
chroot
(2) function allows to use more than 2048 bytes forLD_LIBRARY_PATH
environment variable.
24 Nov 2013
- The
FAKECHROOT_ELFLOADER
environment variable changes the default dynamic linker. Thefakechroot
script provides--elfloader
option. - The
FAKECHROOT_EXCLUDE_PATH
environment variable overrides the default settings. - The
ldd
(1) wrapper can work if overridden withFAKECHROOT_CMD_SUBST
environment variable. - New
env
(1) wrapper was added. It preserves fakechroot environment even for--ignore-environment
option. - The special environment
none
means that no environment settings are loaded at all. - The function
setenv
(3) andunsetenv
(3) was reimplemented, to prevent problems with binaries which brings own implementation of these functions. - New function
clearenv
(3) was added. It preserves fakechroot environment. - It is safe to use relative paths which won't escape from fake chroot.
- Fixes were made for
readline
(2) function if destination path is similar toFAKECHROOT_PATH
. - Fixes were made for
mktemp
(3) function if used on a path inFAKECHROOT_EXCLUDE_PATHS
. - The
_xftw64
(glibc) function is reenabled. It had wrong wrapper. - Fixes were made for
__realpath_chk
(glibc) function when__chk_fail
function is missing. - New functions
mkostemp
(3),mkostemp64
(3),mkostemps
(3),mkostemps64
(3),mkstemps
(3) andmkstemps64
(3) were implemented. It fixessed -i
command.
11 Dec 2011
- The fakechroot script loads additional environment settings from
configuration directory (
--config-dir
option). By default additional settings are provided forchroot
(8) anddebootstrap
(8) commands. - Wrapped
chroot
(8) command loadsld.so.conf
paths toLD_LIBRARY_PATH
environment variable. - The
debootstrap
(8) command works with default, buildd and minbase variants. - Fixes were made for
getpeeraddr
(3) andgetsockaddr
(3) functions.lwp-request
command is working correctly.
29 Sep 2011
- New function
faccessat
(2) was added. It fixestest -r
command. Thanks to Johannes Schauer. - The
popen
(3) function were reimplemented based on OpenBSD source to prevent some coredumps with newer GNU C Library.
18 Dec 2010
- The source code was refactored: all functions was moved to separated files.
- The
opendir
(3) function is compiled only if it doesn't call other function internally. It fixesopendir
(3),fts_open
(3) andftw
(3) functions. - The
fts_*
(3) functions were reimplemented based on OpenBSD source. - The
ftw_*
(3) functions were reimplemented based on GNU C Library source. - The
__opendir2
(3) function was reimplemented based on FreeBSD source. - Fixes were made for older GNU C Library and for cross-compiling environment.
30 Nov 2010
- Fixes were made for older GNU C Library.
29 Nov 2010
- Fixes were made for
realpath
(3) andftw
(3) functions.apt-ftparchive
command currently is working. - Fixes were made for
canonicalize_file_name
(3),ftw64
(3),nftw
(3) andnftw64
(3) functions. - New functions
fts_children
(3) andfts_read
(3) were added. - Lazy dynamic symbol loading was implemented. Thanks to Alexander Shishkin.
- Fixed bug when
FAKECHROOT_EXCLUDE_PATH
list was sometimes ignored. - All source code is now on LGPL license again.
10 Nov 2010
- New function
execlp
(3). Thanks to Robert Spanton. - New functions
statfs
(2) andstatvfs
(2). Thanks to Paweł Stawicki. - Better support for GNU/kFreeBSD was made.
12 Sep 2010
- Fixes were made for
getpeername
(2) andgetsockname
(2) functions.host 127.0.0.1
command currently is working. Thanks to Daniel Tschan. - Fixes were made for
canonicalize_file_name
(3) function.man-db
command currently is working. - New functions
__*_chk
(3) were added for GNU libc with fortifylevel > 0
. - New environment variable
FAKECHROOT_AF_UNIX_PATH
defines an optional prefix for unix sockets. - Better support for FreeBSD was made.
- Autoconf scripts were refactored.
- More test units were added.
25 Aug 2010
- Handle properly GNU libc
open
(2),open64
(2),openat
(2) andopenat64
(2) inline functions. - Compatibility were improved for
scandir
(3) andscandir64
(3) functions on the latest GNU libc. - Fixed
lstat
(2) function returns correctst_size
. Thanks to Daniel Baumann. - Fixed
readlink
(2) function. Correctly truncates content if buffer is too small. - Fixed
undefined symbol: rpl_malloc
error for compiled 32-bit library on 64-bit architecture by droppingAC_FUNC_MALLOC
inconfigure.ac
. - Fixed
chroot
(2) function for path which contains dot character. Thanks to Robie Basak. - New function
utimensat
(2) fixescp
command on Debian sid. - New functions
linkat
(2),mknodat
(2),mkfifoat
(2),readlinkat
(2) andsymlinkat
(2). - New functions
popen
(3) andsystem
(3) for GNU libc. dpkg-shlibdeps(1)
works again becausecd $FAKECHROOT_BASE
does not change current working directory to root directory.- New
FAKECHROOT_CMD_SUBST
environment variable handles a list of substituted commands. Thanks to Richard W.M. Jones. - New scripts ldd and ldconfig with .fakechroot suffix are installed.
- New
make test
target uses Perl'sprove
tool to run test units.
31 Mar 2009
- Fixes were made for
getpeername
(2) andgetsockname
(2) functions. Thanks to Axel Thimm and Fedora people. - Fixes were made for
execve
(2):- Always copy necessary variables to new environment.
- Do not make duplicates of environment variables. Thanks to Richard W.M. Jones.
- Fixed were made for
chroot
(2). It is possible to escape chroot. Thanks to Richard W.M. Jones. - Fixed were made for
mktemp
(2). There was a buffer overflow. Thanks to Mikhail Gusarov. - New function:
futimesat
(2). Fixestouch -m
command. - New functions:
bindtextdomain
(3),inotify_add_watch
(2). - More test units was added,
make check
works as expected.
25 Jul 2008
- Fixes were made for
__fxstatat64
(3) function which brokechown
command on i386 architecture. - Better support for FreeBSD was made.
17 Jul 2008
- Compiles with older GNU libc: readlink type of return value is detected.
- Compiles with uClibc: existence of getwd function is detected.
15 Jul 2008
- Stability and compatibility were improved for the latest libc.
- Fixes were made for latest version of coreutils.
- Fixed
readlink
(2) function to be ssize_t as it is in newer libc. - New functions:
__fxstatat
(2),__fxstatat64
(2),fchmodat
(2),fchownat
(2),__openat
(2),__openat64
(2),unlinkat
(2). It fixes last coreutils. - New functions:
mkdirat
(2),renameat
(2). - Fixed
chroot
(2) function to not change current working directory. - Fixed
chroot
(2) function to handle relative path. - Fixed
execve
(2) function to not expand argv0 and handle#!
correctly. - New
eaccess
(3) function backported from Klik. - New functions:
bind
(2),connect
(2),getpeername
(2),getsockname
(2). They supportPF_UNIX
sockets. - More memory allocation for fakechroot_init.
5 May 2007
- New environment variable
FAKECHROOT_EXCLUDE_PATH
. - Fixed
getcwd
(3). Unbreakscd
command. - Fixed
readlink
(2) function. Unbreaksreadlink
command. - Fixed
mktemp
(3) function. Unbreakspatch
andranlib
command. - The
chroot
(2) function is now recursive and allows nested chroots.