// -*- C++ -*- // Boost general library 'format' --------------------------- // See http://www.boost.org for updates, documentation, and revision history. // (C) Samuel Krempp 2001 // krempp@crans.ens-cachan.fr // Permission to copy, use, modify, sell and // distribute this software is granted provided this copyright notice appears // in all copies. This software is provided "as is" without express or implied // warranty, and with no claim as to its suitability for any purpose. // ideas taken from Rüdiger Loos's format class // and Karl Nelson's ofstream (also took its parsing code as basis for printf parsing) // ------------------------------------------------------------------------------ // free_funcs.hpp : implementation of the free functions declared in namespace format // ------------------------------------------------------------------------------ #ifndef BOOST_FORMAT_FUNCS_HPP #define BOOST_FORMAT_FUNCS_HPP #include "boost/format.hpp" #include "boost/throw_exception.hpp" namespace boost { namespace io { inline std::string str(const basic_format& f) // adds up all pieces of strings and converted items, and return the formatted string { return f.str(); } } // - namespace io BOOST_IO_STD ostream& operator<<( BOOST_IO_STD ostream& os, const boost::basic_format& f) // effect: "return os << str(f);" but we can try to do it faster { typedef boost::basic_format format_t; if(f.items_.size()==0) os << f.prefix_; else { if(f.cur_arg_ < f.num_args_) if( f.exceptions() & io::too_few_args_bit ) boost::throw_exception(io::too_few_args()); // not enough variables have been supplied ! if(f.style_ & format_t::special_needs) os << f.str(); else { // else we dont have to count chars output, so we dump directly to os : os << f.prefix_; for(unsigned long i=0; iroot/gnu/build/linux-container.scm
AgeCommit message (Expand)Author
2022-01-05linux-container: Handle CLONE_NEWCGROUP and use it by default....Adds low-level support for launching Linux containers with cgroup namespaces. * gnu/build/linux-container.scm (%namespaces): Add 'cgroup. (namespaces->bit-mask): Handle it. * guix/build/syscalls.scm (CLONE_NEWCGROUP): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Ryan Sundberg
2020-12-06Revert "linux-container: Correct test for unprivileged user namespace support."...This broke 'guix environment --container' on non-Debian distributions. Fixes <https://bugs.gnu.org/45066>. Reported by luhux <luhux@outlook.com>. This reverts commit 8bc5ca5160db3d82bd5b6b2b7ed80c96f42bd33e. Marius Bakke
2020-12-03linux-container: Correct test for unprivileged user namespace support....Fixes <https://bugs.gnu.org/31977>. Reported by Paul Garlick <pgarlick@tourbillion-technology.com>. * gnu/build/linux-container.scm (unprivileged-user-namespace-supported?): Return #f when the 'userns-file' does not exist. Paul Garlick
2020-10-01linux-container: Reset jailed root permissions....* gnu/build/linux-container.scm (mount-file-systems): Add 'chmod' call. * tests/containers.scm ("call-with-container, mnt namespace, root permissions"): New test. Jelle Licht
2020-09-10build: linux-container: Fix run-container....This is a follow-up of 5316dfc0f125b658e4a2acf7f00f49501663d943. Some users of run-container may expect that the container is jailed, even if there are no mounts. This is the case for some Guix tests. * gnu/build/linux-container.scm (run-container): Do not jail the container when the requested root is "/". Mathieu Othacehe
2020-09-02linux-container: Do not jail the container unconditionally....We may want to run a container inside the MNT namespace, without jailing the container. If RUN-CONTAINER is passed a null MOUNTS list, do not jail the container. * gnu/build/linux-container.scm (run-container): Do not call MOUNT-FILE-SYSTEMS if MOUNTS list is empty. Mathieu Othacehe