Linux Archive

Linux Archive (
-   Debian Development (
-   -   schroot version 1.4.0 released (

Roger Leigh 01-16-2010 05:56 PM

schroot version 1.4.0 released
Dear all,

I have released schroot stable version 1.4.0. After testing of the
1.3.x development releases in experimental, this is the first 1.4.x
stable release. This release has been uploaded to unstable, and is
also available from our public git repository at


(tag release/schroot-1.4.0, branch schroot-1.4;a=tag;h=refs/tags/release/schroot-1.4.0;a=shortlog;h=refs/heads/schroot-1.4

The major changes from the previous 1.2.x stable releases are detailed
below. Some configuration options have been deprecated and others
obsoleted. These are documented in schroot.conf(5), and the user will
be warned at runtime when deprecated or obsolete options are used.

The most important user-visible change is the new support for union
filesystems to create "scratch" writable snapshot sessions of chroots,
for which many thanks are due to Jan-Marek Glogowski for his hard work
on this feature. This is useful for situations where the LVM snapshot
chroot type was previously the only choice, such as temporary clean
build environments for sbuild/buildd chroots. A bash completion has
also been added, for which Tim Abbott must be thanked. I'd also like
to thank everyone else who contributed to this release; the full list
is at the end of this mail.

Major changes in 1.4.0:

1) Exec scripts have been removed. Unlike setup scripts, these
scripts were never used, and there are no known uses for them.
Removing them will improve the performance of schroot. The
run-exec-scripts configuration option is no longer used, but
is still permitted to be used until it is obsoleted in a
future release.

2) Setup scripts are now always run for all chroot types except
"plain". In practice, scripts were required for all types
except "plain" in order to function correctly. The ability to
configure this is not useful and so setting run-setup-scripts is
now deprecated in schroot.conf. It may still be set for backward
compatibility, but it has no effect and will be removed in the

3) Chroot configuration files in /etc/schroot/chroot.d are not
loaded if they are backup files or dpkg conffile backups.

4) Support for GCC versions prior to 3.4 has been removed.

5) System databases are copied into the chroot using the getent
program to use the appropriate name service switch (NSS) modules
to get the data, rather than just copying the files. This means
all NSS database sources are supported, including NIS and LDAP.

6) Setup script output is logged to stderr which prevents schroot
outputting to stdout when run with verbose logging enabled.

7) Most schroot features are compiled conditionally, which should
ease porting to non-Linux platforms.

8) Support for union filesystems has been added (aufs and unionfs).
This permits the use of read-only block-device, directory and
loopback chroots with a temporary writable overlay. For "scratch"
temporary chroots, this method is recommended over the existing
LVM snapshot support. It is considered to be faster, more
robust, and uses less disc space.

9) The "command-prefix" option no longer requires an absolute path
to the command. It will use the normal search path inside the
chroot to locate the command.

10) When creating a session, the users in "users", "root-users", and
groups in "groups" and "root-groups" are no longer preserved.
The user requesting access will be the sole user listed in
"users" for the session; however, if the user was in "root-users"
or "root-groups", they will be added to "root-users" instead.
This ensures that only the user creating the session will have
access, so that other users having access to the chroot will not
also automatically gain access to other users sessions.

11) Kernel personality support should now work on non-Linux
architectures such as kfreebsd.

If you have any feedback or problems with the new release, please let
the developers know at or
file bugs in the BTS. You can also find us on #debian-buildd on OFTC.

Roger Leigh

Contributors and patches:

Clytie Siddall (1):
[po] Update vi translation

Geoffrey Thomas (4):
build: Only use silent-rules if it's available
scripts/git-version: Ask git for date differently
build: Auto-detect whether -mt is needed for Boost libs
etc/setup.d/00check: Permit union chroots on the root directory

Helge Kreutzmann (1):
po: Update de translation

Holger Wansing (1):
po: Update de translation

Jan-Marek Glogowski (43):
[build] Just link schroot-mount to boost filesystem lib
[.gitignore] debian: Simplify ignore rules
[debian] schroot-dbg: Add debug symbols package
[debian] libsbuild-doc: Fix build-deps and dependencies
[debian] rules: Run check before install when building packages
[debian] rules: Use "$(MAKE) -C" in place of explicit "cd && make"
[build] Adapt boostrap from libtoolize suggestions
[build] Use $(mkinstalldirs) to create directories
[sbuild-error] Add third error detail parameter
[sbuild] chroot: Drop mount_device member
[test] Add chroot_directory test data
[sbuild] setup: Use CHROOT_DIRECTORY
[sbuild::chroot_directory] Inherit from chroot_plain
[sbuild::chroot_directory] Inherit from chroot_plain
[sbuild::chroot_fs_union] New class to add filesysten union support
[sbuild::chroot_directory] Add filesystem union support
[sbuild::chroot_loopback] Add union filesystem support
[sbuild::chroot_block_device] Add union filesystem support
[build] Add missing whitespace
[test] Add test for chroot_loopback
[build] Remove when bootstrapping
[setup] Remove plain chroot type
[sbuild] Move getcwd from to
[sbuild::chroot_loopback] Add locking
[sbuild::chroot] set_session_id sets session ID
test: Use sbuild::getcwd to get abs_testdata_dir
test: Add set_run_setup_scripts tests
test: Unify environment tests
etc/setup.d: Cleanup union handling in scripts
build: Use $(mkinstalldirs)
sbuild: Some cleanup for directory and union chroots
etc/setup.d/10mount: Reuse loopback device
sbuild::chroot Convert facets from vector to list
debian: control: Add better schroot-dbg package dependencies
sbuild::chroot: Don't write 'active' key
etc/setup.d: Cleanup union handling in scripts
sbuild::chroot_facet_union: Really use own error messages
.gitignore: Add VERSION and .gdb_history
sbuild::chroot_block_device_base: Don't lock union block devices
test: Print key and value for keyfile and env
test: Cleanup keyfile and environment tests
schroot: Document session usage relating to --chroot
doc: Fix some doxygen class headers

Ji ZhengYu (2):
[po] Update zh_CN translation
po: Update zh_CN translation

Jonathan Callen (1):
sbuild::chroot_block_device: Build correctly when LVM snapshot support is not available

LI Daobing (李道兵) (1):
[po] Add zh_CN translation

Loïc Minier (1):
[man] Fix typos in and

Nick Fortino (1):
[build] Use LIBS rather than LDFLAGS in library checks

Nicolas François (2):
[po] Update fr translation
[po] Encoding is UTF-8, not ISO-8859-1

Pedro Ribeiro (1):
[po] Update pt translation

Petr Salinger (1):
[sbuild] Order of "struct flock" members is not assumed.

Roger Leigh (352):
Only generate ChangeLog if using git
[test] Add parentheses around ambiguous statements
[po] Add pt translation.
[sbuild] chroot_config no longer uses O_NOFOLLOW
[sbuild] Add missing static_cast to stat::check_mode
[schroot] Read additional configuration from /etc/schroot/chroot.d.
[debian] Add GIT repository information to control file.
[schroot] Remove setup/50sbuild
[schroot-mount] schroot-mount-main: Create mountpoint if needed.
[NEWS] Document changes for 1.2.0
[dchroot] Remove short option for --preserve-environment
[debian] changelog: Close bugs for 1.2.0
[man] NAME section uses ASCII hyphen, not em dash
[build] Use MKDIR_P in place of MKINSTALLDIRS
[debian] Build-Depend on libboost-filesystem-dev
[debian] Close #469038
Update copyright and author contributions
[po] Update translations
[debian] control: Bump Standards-Version to 3.7.3
[debian] libsbuild-doc.doc-base: Use section Programming/C++
Bump version to 1.2.1
[po] Update translations
[scripts] Add po-notify script for translation updates
[scripts] Don't ignore po-notify
[schroot] Document /etc/schroot/chroot.d
[schroot] Don't fail if the LVM snapshot device does not exist
[sbuild] Don't fail if LVM snapshot device doesn't exist on SETUP_STOP
[sbuild] Don't fail if block device doesn't exist on SETUP_STOP
[setup] Don't clear mount options for LVM snapshots
[sbuild] Remove redundant include
[sbuild] Add "loopback" chroot type
[debian] Document loopback chroot type
Finalise version 1.2.1
[debian] Correct lintian warnings
[sbuild::auth_conv_tty] Add weak reference to the auth object
[scripts] Remove generated script po-notify
[scripts] .gitignore: Ignore po-notify
[sbuild::session] Don't inherit from sbuild::auth
[sbuild::session] Access authstat via this pointer
[csbuild] Correct variable name in doxygen comment
[schroot.conf] Update distribution names for Squeeze.
[debian] Close #516272
[sbuild::session] Fix memory leak in is_group_member
[debian] Close #517223
[dchroot] Session code uses get_auth to get authentication data
[build] Build against Boost version 1.37
[debian] control: Build-Depend on Boost 1.37
[sbuild] Remove support for GCC < 3.4 __gnu_cxx::stdio_filebuf
[debian] Close #517041
[schroot] setup: Copy NSS databases using getent
[sbuild] sbuild-run-parts: Explicitly close syslog fd
[sbuild] sbuild-util: Add is_valid_filename
[sbuild] sbuild-chroot-config: Use is_valid_filename on directory load
[debian] Close #513307
[.gitignore] Ignore log and substvars files
[debian] control: Remove duplicated word in description
[debian] Use debhelper v7 compatibility mode
[debian] control: Update to Standards Version 3.8.1
[sbuild-session] Export additional auth variables into setup environment
[debian] Close #496629
[build] Add bash completion to build
[debian] Configure and install bash completion
[debian] rules: Split configure invocation onto multiple lines
[sbuild-session] Export SCHROOT_SESSION_ID in user environment
[build] Install SCHROOT_UNPACK_DIR
[sbuild-session] Export SCHROOT_UNPACK_DIR for setup scripts
[build] Install SCHROOT_UNPACK_DIR
[setup] 05file: Use UNPACK_DIR and mount unpacked files
[build] Add checks for POSIX thread support
[build] Compile and link with POSIX thread support
[debian] Close #520713
[test] Fix test to use correct write size
[build] Add configure option to generate doxygen docs
[NEWS] Bump version to 1.3.0
[po] Update translations
[debian] Build-depend on doxygen and configure with --enable-doxygen
[.gitignore] csbuild: Ignore csbuild
[build] doc: Don't require MAINTAINER_MODE to build docs
[debian] libsbuild-doc: Install docs from debian/build
[debian] Document schroot-dbg addition
[build] Use autoreconf in place of separate autotools commands
[sbuild-log] Unify reason logging as a single function
[sbuild-log] Rename DebugLevel to debug_level
Merge branch 'master' of ssh+git://
Merge branch 'fs-union'
[debian] rules: Only mkdir debian/build if it doesn't already exist
[schroot] Document chroot_directory directory property
[test] Add new chroot_directory tests for directory property
[sbuild::chroot_directory] Add directory property to replace location
Merge branch 'fs-union'
[setup] 15killprocs: Use /bin/kill to remove bashism
[debian] Build-Depend on boost 1.38
[sbuild] chroot_mountable: Add mount_device member
[sbuild] sbuild-chroot-block-device: Update TODO item
Rearrange configuration and manual pages
[build] Remove manpages from bin/schroot/
[build] 05fsunion setup script not yet merged
[etc] Add .d suffix to exec and setup script directories
[sbuild] sbuild-session: Remove support for exec scripts
[man] Document removal of run-exec-scripts
[sbuild] basic_keyfile: Allow NULL method pointers
[sbuild] Remove run_exec_scripts
[schroot-mount] Don't log command being executed
[setup.d] Remove W: message prefix
[sbuild] run_parts: Log script output
[sbuild::chroot] Remove prototypes and member for run_exec_scripts
[sbuild] chroot_mountable: Move location property from chroot
[sbuild] chroot: Remove unused location member
[TODO] Add new items
[setup.d] 20nssdatabases: Make executable
[etc] mount-defaults: Bind mount /dev/shm
[debian] Close #526788
[schroot-mount] Act like mkdir -p rather than mkdir creating mountpoints
[sbuild::chroot_file] Move CHROOT_FILE_UNPACK_DIR from session UNPACK_DIR
[TODO] Add cleanup items for union and file chroots
[sbuild::chroot] All chroots except plain run session scripts
[sbuild::chroot_plain] Split from chroot_directory
[build] Conditionally compile block-device and lvm-snapshot support
[build] Build loopback chroot support conditionally
[build] Include correct lockdev headers for sbuild-lock
[build] Make personality support configurable
[build] Loopback chroot doesn't depend on block-device
[build] Make UUID support configurable
[sbuild] Make PAM support configurable
[sbuild::auth] Split into auth_pam and auth_null
[sbuild] Add pam prefix to all pam auth names
[debian] control: schroot-dbg is in section debug
[po] Add new source files
[po] Update English translation
[build] Make UUID support configurable
[build] Remove duplicated checks for UUID support
[build] Remove last traces of exec.d
[debian] Remove old checks for obsolete versions
[NEWS] Document major changes
[sbuild::auth] Add split auth_null and auth_pam
[sbuild::auth_pam] Add missing prototype
[schroot::main_base] Use new PAM header names
[sbuild::chroot_directory] Remove erroneously added clone_source
[sbuild::basic_keyfile] Replace last std::string usage with traits types
[TODO] Remove completed basic_keyfile string_list removal
[sbuild::chroot] Add session_id property
[test] Update chroot_directory tests
[sbuild::chroot_directory] Include correct header for parent class
Merge branch 'master' of ssh://
[setup] Simplify conditional to use cleaner syntax
[sbuild] chroot_mountable: Refactor as partial interface
[sbuild::chroot_fs_union] get_path always returns the mount location
[sbuild::chroot_mountable] Don't derive from chroot
[sbuild::chroot_source] Don't inherit from chroot
[sbuild::chroot_fs_union] Add underlay directory in addition to overlay
[sbuild::chroot_union] Rework union mounts
[sbuild::chroot_union] Synchronise with current master branch
[TODO] Add union items
[sbuild::chroot:block_device] Split into block_device_base
[sbuild::chroot_union] Add clone_source_setup
[sbuild::chroot_directory] Make chroot_union support configurable
[sbuild::chroot_source] clone_source_setup is virtual
[sbuild::chroot_directory] Add missing newline
[sbuild::chroot_loopback] Include config header for conditional building
[sbuild::chroot_loopback] Chain up to chroot::setup_env
[sbuild::chroot_directory] Set SESSION_CREATE in all cases
[sbuild::chroot_source] Move SESSION_PURGE into chroot_lvm_snapshot
[sbuild::chroot_union] Don't set SESSION_CREATE unless union in use
[test] Update tests for filesystem unions
[TODO] Add enum |= and &= operators
[man] schroot.conf.5: Document block-device union support
[debian] Close #494481
[sbuild::chroot_union] Simplify conditional logic
[test] Remove deprecated run-setup-scripts from tests
[test] Use dynamic_pointer_cast for shared_ptr types
[sbuild::chroot_union] Use dynamic_pointer_cast for tr1::shared_ptr
[test] Improve environment diagnostic
[test] Remove whitespace
[test] sbuild_chroot_loopback: Update to use current union interface
[build] Fix union configure check
[debian] Remove debian/install after running dh_prep
[sbuild] Reindent sbuild::util operator functions
[sbuild::chroot] Reindent session flags
[test] Make filesystem union tests conditional
[test] Remove obsolete run_setup_scripts checks
[sbuild::chroot_block_device_base] Simplify session flags
[sbuild::chroot_source] Re-unify source member variables and methods
[sbuild::chroot*] Remove duplicated source methods and members
[sbuild::chroot] set_run_setup_scripts is protected
[sbuild::chroot_union] Only print union details if configured
[sbuild::chroot_directory] Always chain up to union methods
[sbuild::session] Correct logic for setting mount location
[man] Disable adjustment on long line to fix groff warning
[debian] Update to Standards-Version 3.8.2
[NEWS] Document filesystem union support
[sbuild::session] Only display command/shell if verbose
[sbuild::util] Add split_string_strict
[sbuild::chroot_union] Only set keyfile keys if union is configured
[sbuild::run_parts] Fix script stream buffering
[setup] Add 99check symlink to 00check to run on setup-stop
[setup] 15killprocs adds sanity check for CHROOT_MOUNT_LOCATION
[setup] Rename 05fsunion to 05union
[setup] 10mount union mounting uses underlay directory
[sbuild::session] Don't special-case handing of union mount location
[po] Update translations
Update copyright message for 2009
[po] Update translations
[sbuild] Split chroot_plain into chroot_plain_base
[sbuild::session] Correct check for plain chroot type
[setup] 05union doesn't abort for non-union supporting chroots
[setup] 15killprocs doesn't abort if there's no mount location set
[sbuild::chroot_mountable] get|set_mount_device are pure virtual
[sbuild::chroot] get_mount_location is not virtual
[sbuild] Rename chroot_plain_base to chroot_directory_base
sbuild/ Get default environment filter from configure
[sbuild::environment] get method is const
[sbuild::chroot_block_device] Chain up to chroot in copy constructor
[sbuild::chroot_lvm_snapshot] Only inactive sessions serialise lvm-snapshot-options
[sbuild::chroot_source] Replace is_source with source_clonable
[sbuild::chroot] Make some methods public for testing
[test] Test keyfile serialisation
[TODO] Remove virtual inheritance
[test] setup_env_chroot adds common environment
[sbuild::chroot_block_device] Chain up to virtual base in all copy constructors
[sbuild::chroot_union] Display union type
[sbuild] Don't call specific clone_source_setup
[test] Test source environment
[sbuild::chroot_session] New class for session handling
[sbuild] Add support for chroot_session to all session-creating chroot types
[sbuild::chroot_session] Set base chroot active and set source options
[sbuild::chroot_union] Set SESSION_PURGE session flag if a session
[test] Add session checks to sbuild::chroot_loopback
[sbuild] sbuild::chroot inheritance is non-virtual
[sbuild] define copy constructur in classes inheriting chroot_session
[sbuild] clone_ methods satisfy testcases
[sbuild::chroot_file] Purge if active
[sbuild::chroot_file] Reindent conditional statement
[sbuild::chroot_session] set_session_active chains up to base set_active
[sbuild::chroot_session] setup_env is virtual
[test] Add tests for keyfile and environment
[doc] Update doxygen version to 1.5.9
[doc] Use .log files in place of -stamp files
[sbuild] Update doxygen comments to fix missing or broken parts
[sbuild] Enable chroot_session in session
[po] Update translations
[sbuild::chroot] setup_env is const
sbuild::chroot_facet: Add chroot_facet interface and skeleton personality facet
.gitignore: Ignore new separate chroot-* tests
sbuild::session: Search for command-prefix using search path
sbuild::keyfile_parser is a class not a struct
sbuild::basic_keyfile_parser: Constructor explicitly initialises all members
sbuild::chroot_source: Allow setting of source-* properties for non-clonable chroots
sbuild::chroot: Add initial chroot_facet support
sbuild::chroot: setup_env method is const
sbuild::chroot: Session ID detail only printed if session is active
po: Update
sbuild::chroot: Add interface to add, remove, replace and get facets
sbuild::chroot: Pass chroot as parameter to facet functions
sbuild::chroot_facet_personality: Add personality support from sbuild::chroot
sbuild::chroot: Call methods from facets in addition to virtual methods
sbuild::session: Use common name for personality facet pointer
sbuild::chroot: Add const_ptr typedef
sbuild::chroot_facet*: Add ptr typedefs and create and clone methods
sbuild::chroot_facet_session: Add new session facet
sbuild::chroot: Enable session facet
sbuild::chroot: Add clone_source virtual method
sbuild::chroot_source: Reimplement as facets
sbuild::chroot_mountable: Replace with chroot_facet_mountable
sbuild::chroot_union: Replace with chroot_facet_union
sbuild::chroot_facet: Update all facet uses to use ptr and const_ptr types
sbuild::session: Only use session_id property for cloning sessions
etc/setup.d/10mount: Don't quote mount options
build: Add git tagging code
NEWS: Update to 1.3.0-rc1
scripts/git-version: Allow hyphens in version number
po: Update for new sources
po: Update
etc/mount-defaults: Add /dev and /proc/bus/usb (but commented out)
build: Build static library by default
etc/setup.d/10mount: Comma-separate loop mount option
sbuild::chroot: clone_session is pure virtual and chroots always clone
sbuild::chroot_facet_session: Move deserialisation code from chroot_facet_source
sbuild::basic_keyfile: Ask user to update deprecated keys
sbuild::chroot_facet_mountable: Serialise mount-device to keyfile
sbuild::chroot_facet_session: Use correct class name for null method pointers
sbuild::session: Split UUID generation into support function
TODO: Remove done and add pending changes
etc/setup.d: Set file unpack directory and add extra logging
po: Add .tcc files
po: Update
sbuild::run_parts: Handle EINTR during reads
sbuild::run_parts: Correct poll conditional
man: Document NSSDATABASES
etc: Remove SBUILD script default
sbuild::chroot_facet_session: Split into chroot_facet_session_clonable
test: Add mount-device to keyfile checks
sbuild::chroot_facet_mountable: Only serialise mount-device for sessions
TODO: Distinguish between chroot, source and session
sbuild::chroot_facet_session_clonable: Remove source keyfile deprecation
build: Require automake 1.10 and use silent-rules
sbuild::chroot_facet_source_clonable: Remove source_clonable member
sbuild::session: Default child_status to EXIT_FAILURE
debian: Close #545706
build: Use MKDIR_P in place of mkinstalldirs
csbuild: Add all sbuild options and wrap sbuild
csbuild: Fail following exec failure
csbuild: Update option group description
bin: schroot_base_main: action_version prints configured options
build: Remove -mt suffix from Boost library names
sbuild: Validation of chroot properties allows strings to be empty
sbuild::chroot_facet_session: Remove unused clone_session_setup
sbuild::chroot_facet_session_clonable: Only allow session creator to access session
test: Add root-user preservation check to chroot-directory
sbuild: Add reentrant passwd and group wrappers
sbuild::stat: Support C string constructor
NEWS: Add 1.2.x changes
debian: changelog: Add 1.2.x changelog entries
NEWS: Bump version to 1.3.0
debian: Use Standards-Version 3.8.3 and Boost >= 1.39
po: Update po files and en translation
build: Replace SCHROOT_RELEASE_DATE with m4_esyscmd
po: Update en.po
debian: Remove empty lines from changelog
sbuild::session: When run with --begin-session, exit status must be success
po: Update
test: Fix sbuild-personality to support non-Linux architectures
sbuild::session: Set child_status to EXIT_SUCCESS following authentication
debian: Close #554907
NEWS: Bump version to 1.3.1
scripts: git-version uses version from NEWS
TODO: Remove completed items
NEWS: Document personality fix
Bump version to 1.3.2
debian: Close #560832
sbuild::chroot_block_device: Create session file
debian: Close #557197
20copyfiles: Allow copying of special files
debian: Close #559019
20copyfiles: Remove debug line
po: Update
sbuild::chroot: Remove obsolete EXEC_START and EXEC_STOP
sbuild::chroot_block_device: Create session file when using union
debian: Close #561033
po: Update
sbuild::dirstream: Replace with boost::filesystem
NEWS: Bump version to 1.4.0
debian: Bump version to 1.4.0 and close fixed bugs
.gitignore: Don't ignore test/sbuild-dirstream
sbuild: Remove separator argument from path functions
po: Remove from
po: Update
debian: Add ${misc:Depends}
sbuild::chroot_facet_session_clonable: Use basename correctly
schroot_base::main: Update copyright notice
po: Update copyright notice
NEWS: Finalise for 1.4.0
debian: Finalise changelog for 1.4.0-1

Tim Abbott (4):
[schroot] Add bash completion
[setup] 05lvm: Reorder lvm snapshot options to make more flexible
etc/setup.d/10mount: Properly quote do_mount calls in 10mount
etc: Update bash completion for schroot

Vincenzo Campanella (1):
po: Add it translation

.'`. Roger Leigh
: :' : Debian GNU/Linux
`. `' Printing on GNU/Linux?
`- GPG Public Key: 0x25BFB848 Please GPG sign your mail.

All times are GMT. The time now is 03:35 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.