
 xchroot v2.7.5
 (c) copyright by Elmar Stellnberger, the original author: 2009, Jan 2010, Jan 2013, Aug 2013, Oct 2013, Dec 2019, 2020, Nov 2021, 2022, Jan 2023

  further information: www.elstel.org/com; look here for an actual contact address
  current email: estellnb@elstel.org; additional email estellnb@gmail.com

 v2.7.5
  * xauth token creation if X-connection relies on xhost +local: or xhost +SI:localuser:xxx
    necessary if xchroot changes the user and no matching xauth token is provided (like with Mageia 8)
    now completely rewritten: xauth token passing code
  - xchroot inst-root-sudo:  --quiet parameter introduced as may be used by a postinstall script: added for packaging

 v2.7.4
  * mounting singleton files into root rather than just whole directories (/etc/resolv.conf,/run/initctl)
  * mounting /dev/shm, mounting /boot/efi<->/boot/EFI
  * plain busybox xchroots
  * xchroot inst-root-sudo: sudo may not work otherwise due to regression in sudo
  * no spurious error message: detects if dbus-launch not present in root
  - default of '--on tmp': restores known to work default behaviour of v2.6 (--on mirrtmp seems buggy, apparently)
  * work in progress: --setenv, --preserve-env options: especially useful with xchroot desktop sessions

 v2.7
  * xchroot / for merely switching the user
  * new: dbus-session started by default (otherwise use --off sess)
  * --on/-off parameters to control dbus-session creation and mounts into /run/xx as well as /tmp & /var/tmp
  * more secure tmp mirroring policy (now also selectable): tmpfs on /tmp and /var/tmp only --bind-mounting /tmp/.X11-unix
  * combine XAUTHORITY if there are multiple xchroots to the same root and user
  * create XDG_RUNTIME_DIR & set environment variable, correct --noX implementation (no XAUTH passing!)
  * entire desktop sessions with xchroot, improved createstartup/.desktop file creation also with chroot-escape (/chroot/usr/share/xsession/*.dekstop)
    createstartup: source and dest .desktop files with spaces allowed; correct backslash handling in filenames
  * chroot-escape improvement: succeeds also if /dev/fd/89 closed by intermediate program, $XCHROOT_ESCAPE_XAUTHORITY propagated correctly
  * correct process cleanup for nested chroots: uses $absroot instead of $root

 v2.6: 
  * bugfix: no recursive mounts on entering chroot with -n (example: xchrot -m /mnt /mnt/debian)
  * bugfix: mountd-daemon killed: restart: remember new pid correctly without doubling content of "$MMCNFFILE" 
  * correct --noask passing for xchroot as user
  * xchroot escape
  * createstartup directly for executables rather than desktop files
  * -d option: there was a double assignment of -b for $MINMIRROR_IN and bidi-mirroring
  * corrected delsudoers for "all" pseude user
  * updated & cleaned up --help screen

 v2.5.3: important bugfixes towards 2.5 (31.12.2020)
  * user management was broken: had left $OPTARG; now corrected to $optarg
  * no openroot macro required any more: auto-sudo by xchroot
   - createstartup does now no more need bash completion and thus also runs without KDE; f.i. under Xfce 
  * corrected/improved unmounts on exit
  * xchroot /dst/deb32/bin/hostname now also works if /dst is a sudo praefix rather than /dst/deb32
  * -q switch is now no more double assigned two different functions: use -b when appropriate

 v2.5: mount-mirroring (December 2020)
  * faster child process search on exit, short sleep when user selects to poll for child termination
  * --fast unmount/mount option skipping /sys/fs/*
  * cleaner output, -vv switch, awk instead of cut & grep, faster integrated [[ instead of [/test

 v2.4.1: resolved unmounting problem (nounmount on exit, hang when invoked via cleanup)  (22.02.2020)
  * spurious but ignorable error message on chroot ./subdir removed
  * also keeping directory when current dir is already inside the chroot

 v2.4: pulseaudio support (15.12.2019)
  * openroot /dst/buster/usr/bin/xine myfile    i.e. no need to separate root directory from executable to execute inside root
  * parameters to xchroot may contain escaped spaces
  * current working directory is preserved
  * makro for desktop file creation
  * showmount may be executed as non root

 v2.3.4: improved the --quiet option (April 2018)
  * use of --userspec from chroot: no su or sudo required inside chroot any more
  * use --genuine-retval allows to retrieve the return value directly from the chroot rather than the xchroot wrapper
  * fixed recognition of short options -s and -v

 v2.3.3: enhanced user management, license (09.11.2013)
  * chrooting from one user to an other is now possible
   * resolved security issue when users of chroot environment and outside of it have different privileges 
   - idea for using getent rather than grep-ing /etc/passwd was contributed by Nick Bannon on 2013-11-08 <nick@rcpt.to> 
  * cd to home directory on startup

 v2.3.2: security + docs, license (27.10.2013)
  * addressed several security issues for using xchroot with /etc/sudoers, doc-update, more clear license
  * job control fix for newer systems (does no more get disabled when chrooting from new to old system)

 v2.3.1: aufs and unionfs support (23.10.2013)
 * updated, more distributor friendly license (now allows you to distributed modified versions of xchroot)
 * warn correctly if no X connection can be established; including the XCONNECT=noX environment variable to disable these warning
 * export XAUTHORITY also for remote hosts

 v2.3: aufs and unionfs support (28.8.2013)
 * aufs and unionfs support
  * saving, restoring and augmenting .squashfs images for use with aufs and unionfs
 * noask-option for automatic xchroot invocation; does not ask on kill (if signal causes xchroot to exit)
 * recursive xchroot; XAUTHORITY envvar inheritance error resolved ( now just using last directory name as identifier; also possible: use ':' instead of '\\')
 * various minor issues: improved cleanup, socat check; check if it will chroot to a valid root-fs, precise return values (0-255)
 * better, prospectively oss-compliant license

 v2.25 bugfixes over v.2.2 (18.8.2013)
 * su -c did loose XAUTHORITY environment variable on elder Linux distros (necessary X access)
 * open same root several times: only ask to terminate running programs on last exit
 * use SHELL from /etc/passwd or as given by --shell: different shells than bash
 * trivial error fix: $root was hardcoded in v2.2 when asking to terminate programs still running in root
 * some minor corrections when using "cleanup" after having left everything mounted


